void CheckBoardsChange()
 {
     for (int i = 0; i < keyNames.Length; i++)
     {
         if (Input.GetButtonDown(keyNames [i]))
         {
             _cm.GoToBoard(i);
         }
     }
 }
Ejemplo n.º 2
0
    IEnumerator DoTurnRoutine(PlayerMove move)
    {
        Logger.PrepareMove(move.start, move.end, _boards);

        if (ActivePlayer.PlayerType == PlayerType.AI)
        {
            _camera.GoToBoard((int)move.end.z);

            while (IsAnimated)
            {
                yield return(null);
            }
        }

        EngineResponse response = _gameEngine.DoTurn(move.start, move.end);

        while (IsAnimated)
        {
            yield return(null);
        }

        if (response == EngineResponse.CHECK)
        {
            _overlayManager.SetLabel(Texts.GetString("CheckText"), UnityEngine.Color.red);
            Logger.LogMove(true, false);
        }
        else if (response == EngineResponse.CHECK_MATE)
        {
            State = GameManagerState.FINISHED;
            _overlayManager.SetLabel(Texts.GetString("CheckmateText"), UnityEngine.Color.red);
            Logger.LogMove(false, true);
        }
        else
        {
            if (ActivePlayerColor == Color.BLACK)
            {
                _overlayManager.SetLabel(Texts.GetString("BlackTurnText"), UnityEngine.Color.black);
            }
            else
            {
                _overlayManager.SetLabel(Texts.GetString("WhiteTurnText"), UnityEngine.Color.white);
            }
            Logger.LogMove(false, false);
        }

        while (IsAnimated)
        {
            yield return(null);
        }

        _overlayManager.SetCapturedList(Logger.CapturedPieces);

        if (State == GameManagerState.PLAYING)
        {
            foreach (var player in _players)
            {
                if (player.Color == ActivePlayerColor)
                {
                    player.DoTurn();
                    break;
                }
            }
        }
    }