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); } }
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); }
public void UnPause() { GameUI.AddGameOption(RestartLevel, "Restart", KeyCode.R, false); playing = true; gameLevel.blocks.UnPauseBlocks(); }