public void OnClickMenu() { if (_DialougeController == null) { return; } _logicController.SwitchToGameMenuState(); _DialougeController.gameObject.SetActive(true); var config = new ConfirmDialougeWidgetController.Config { Text = Consts.RETURN_TO_MENU_TEXT, OnConfirm = () => { _DialougeController.gameObject.SetActive(true); if (!_logicController.DidPlayerWin()) { GameDataManager.SaveCommands(ServiceManager.Get <CommandManager>().GetCommands(), ServiceManager.Get <CubesManager>().GetCurrentCubeSize()); } GameEventsManager.BroadcastMessage(GameEventConstants.ON_RETURN_TO_MENU); }, OnClose = () => { _logicController.SwitchToPlayState(); } }; _DialougeController.Init(config); }
private IEnumerator PlayState() { _gameTime = 0.0f; while (true) { _startTime = Time.time; _gameTime += Time.deltaTime; if (CheckIfCubeIsSolved()) { GameState = GameState.Win; GameEventsManager.BroadcastMessage(GameEventConstants.ON_GAME_WON); StartCoroutine(WinState()); yield break; } yield return(null); } }
private IEnumerator Shuffle(int size) { _canControl = false; var max = size <= 4 ? Consts.MAX_SHUFFLES_SMALL : Consts.MAX_SHULLES_LARGE; var total = Random.Range(size * 2, max); int count = 0; while (count < total) { ShuffleCube(); count++; while (!_commandManager.AcceptInput()) { yield return(null); } } GameEventsManager.BroadcastMessage(GameEventConstants.ON_SHUFFLE_COMPLETE); _canControl = true; StartCoroutine(CheckMouseInput()); }
public void ShowWinMessage() { _DialougeController.gameObject.SetActive(true); var config = new ConfirmDialougeWidgetController.Config { Text = string.Format(Consts.PLAYER_WON_TEXT, _TimerWidget.GetTime()), OnConfirm = () => { _DialougeController.gameObject.SetActive(true); var cubeSize = ServiceManager.Get <CubesManager>().GetCurrentCubeSize(); if (GameDataManager.CheckIfSaveDataExists(cubeSize)) { GameDataManager.DeleteCurrentSave(cubeSize); } GameEventsManager.BroadcastMessage(GameEventConstants.ON_RETURN_TO_MENU); }, OnClose = () => { } }; _DialougeController.Init(config); }