public static PuzzleDefinition LoadFromJsonText(string jsonText)
    {
        PuzzleDefinition def = new PuzzleDefinition();

        def = JsonConvert.DeserializeObject <PuzzleDefinition>(jsonText);
        return(def);
    }
Exemple #2
0
    public PuzzleBoard(PuzzleBoardHandler handler, StageDefinition stageDefinition, PoemInstance poemInstance)
    {
        this.handler          = handler;
        this.stageDefinition  = stageDefinition;
        this.poemDefinition   = stageDefinition.PoemDefinition;
        this.puzzleDefinition = stageDefinition.PuzzleDefinition;
        this.poemInstance     = poemInstance;

        Vector2 size = TranslateBoardSize(this.puzzleDefinition.BoardSize);

        this.Width  = (int)size.x;
        this.Height = (int)size.y;

        List <string> targetCharacterIds    = ComposeTargetCharIds();
        List <string> appearingCharacterIds = GenerateAppearingCharIds(targetCharacterIds);

        this.PuzzleCharacters = new List <PuzzleCharacter>();
        currentCharacterIndex = 0;
        foreach (string appearingCharId in appearingCharacterIds)
        {
            this.PushCharacter(appearingCharId);
        }

        Debug.Log("Pushed all appearing characters.");

        try
        {
            GenerateAndEnsureMatrix(this.PuzzleCharacters);
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
Exemple #3
0
    // Start is called before the first frame update
    void Start()
    {
        ScrollRect scrollRect = puzzleSelectionToggleGroup.GetComponentInParent <ScrollRect>();
        Scrollbar  scrollbar  = scrollRect.GetComponentInChildren <Scrollbar>();

        for (int i = 0; i < puzzleDefinitions.Length; i++)
        {
            RectTransform toggleGroupRectTransform = puzzleSelectionToggleGroup.GetComponent <RectTransform>();
            GameObject    toggleGameObject         = Instantiate <GameObject>(puzzleSelectionTogglePrefab, toggleGroupRectTransform);

            RectTransform toggleRectTransform = toggleGameObject.GetComponent <RectTransform>();

            RectTransform scrollRectRectTransform = scrollRect.GetComponent <RectTransform>();
            RectTransform scrollbarRectTransform  = scrollbar.GetComponent <RectTransform>();
            float         toggleGroupWidth        = scrollRectRectTransform.rect.width - scrollbarRectTransform.rect.width;

            toggleRectTransform.anchorMin        = new Vector2(0, 1);
            toggleRectTransform.anchorMax        = new Vector2(0, 1);
            toggleRectTransform.anchoredPosition = new Vector2(toggleGroupWidth / 2, -toggleGroupWidth * i);
            toggleRectTransform.sizeDelta        = new Vector2(toggleGroupWidth, toggleGroupWidth);

            PuzzleDefinitionContainer container = toggleGameObject.GetComponent <PuzzleDefinitionContainer>();
            container.puzzle.image      = puzzleDefinitions[i].image;
            container.puzzle.revealText = puzzleDefinitions[i].revealText;

            Image   toggleImage = toggleGameObject.GetComponentInChildren <Image>();
            Vector2 imageSize   = new Vector2(container.puzzle.image.width, container.puzzle.image.height);

            toggleImage.sprite = Sprite.Create(container.puzzle.image, new Rect(new Vector2(0, 0), imageSize), new Vector2(0.5f, 0.5f));

            Toggle toggle = toggleGameObject.GetComponent <Toggle>();
            toggle.group = puzzleSelectionToggleGroup;
        }

        puzzleSelectionToggleGroup.GetComponent <RectTransform>().anchoredPosition = new Vector2(0, 0);

        currentPuzzleDefinition = puzzleDefinitions[0];

        StartNewGamePuzzle();
    }
 public Puzzle(PuzzleDefinition def)
 {
     Definition = def;
     Glyphs     = Game.Instance.puzzleDict.toGlyphs(def.Answer);
 }