Example #1
0
 public void DisablePieceInteraction(GameObject[] pieces)
 {
     foreach (GameObject piece in pieces)
     {
         PieceInteraction pieceInteraction = piece.GetComponent <PieceInteraction>();
         pieceInteraction.enabled = false;
     }
 }
Example #2
0
        private void _processAction(BoardAction action)
        {
            _gameEngine.Board.ClearMovingUI();
            switch (action.Name)
            {
            case BoardAction.END_LEVEL:
                action.CellFrom.Piece.Stats.visible = false;
                action.CellFrom.Piece.zIndex        = ZIndex.FIGHT_UI;
                MoveAndScalePieceCallback(action.CellFrom.Piece, action.CellTo.Pos, 0.4f, new Vector3(0, -0.25f, 0),
                                          LevelComplete);
                break;

            case BoardAction.MOVE:
                if (action.CellTo)
                {
                    changeState(GameState.ANIMATING_MOVE);
                    _gameEngine.Board.MovePiece(action.CellFrom, action.CellTo);
                }

                break;

            case BoardAction.ATTACK:
                changeState(GameState.MY_TURN_FIGHTING);
                _gameEngine.Board.AttackPiece(action.CellFrom, action.CellTo);
                break;

            case BoardAction.ATTACK_HELP:
                changeState(GameState.MY_TURN_FIGHTING);
                _gameEngine.Board.AttackHelpPiece(action.CellFrom, action.CellTo);
                break;

            case BoardAction.DEFEND_HELP:
                changeState(GameState.MY_TURN_FIGHTING);
                _gameEngine.Board.DefendHelpPiece(action.CellFrom, action.CellTo);
                break;

            case BoardAction.INTERACTION:
                changeState(GameState.ANIMATING_MOVE);
                PieceInteraction.Interact(action.CellFrom, action.CellTo);
                break;
            }

            if (action.Name != BoardAction.END_LEVEL && action.CellTo)
            {
                if (action.CellTo.Piece.HasKing() || action.CellFrom.Piece.HasKing() ||
                    (action.CellTo.HasFight && action.CellTo.AttackerPiece.HasKing()))
                {
                    _gameEngine.CenterCamera(action.CellTo.transform.position);
                }
            }
        }