void UpdateSelectedBlock()
    {
        if (!selectedBlock)
        {
            return;
        }

        if (selectedBlock.CanBreakApart())
        {
            GameUI.AddGameOption(selectedBlock.BreakApart, text: "Break Apart", KeyCode.Space);
        }
        else
        {
            GameUI.RemoveGameOption(KeyCode.Space);
        }

        if (highlightedBlock && selectedBlock != highlightedBlock
            //&& fusionsCompleted <= GameManager.instance.gameLevel.fusionsAllowed
            && selectedBlock.CanFuseWith(highlightedBlock) &&
            highlightedBlock.CanFuseWith(selectedBlock))
        {
            GameUI.AddGameOption(() =>
            {
                fusionsCompleted++;
                //GameUI.UpdateFusionCount();
                selectedBlock.FuseWith(highlightedBlock);
                UpdateSelectedBlock();
            }, text: "Fuse", KeyCode.E);
        }
        else
        {
            GameUI.RemoveGameOption(KeyCode.E);
        }
    }
示例#2
0
    public void LoadLevel(int index, bool playCutScene = true)
    {
        GameUI.RemoveAllGameOptions();
        GameObject prevLevel = gameLevel.gameObject;
        GameLevel  level     = Resources.Load <GameLevel>($"Levels/Level{index}");

        if (!level)
        {
            LoadHomepage();
        }
        else
        {
            GameUI.AddGameOption(RestartLevel, "Restart", KeyCode.R, false);
            gameLevel = Instantiate(level);
            gameLevel.OnCutSceneEnd.AddListener(() => playing = true);
            if (playCutScene)
            {
                gameLevel.PlayCutScene();
            }
        }
        Destroy(prevLevel);
    }
示例#3
0
 public void UnPause()
 {
     GameUI.AddGameOption(RestartLevel, "Restart", KeyCode.R, false);
     playing = true;
     gameLevel.blocks.UnPauseBlocks();
 }