Пример #1
0
    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);
    }
Пример #2
0
 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);
     }
 }
Пример #3
0
    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());
    }
Пример #4
0
    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);
    }