コード例 #1
0
        public void ExecuteMove(GameObject pawn)
        {
            var startField = board.fields[posStartX, posStartY];
            var endField   = board.fields[posEndX, posEndY];



            TurnController.NextTurn();
            if (beat)
            {
                board.fields[beatX, beatY].PawnController.Kill();
                // beat give you next turn
                TurnController.turn = pawnController.playerPosition;
            }
            // if you could beat, but you didn't, you lose all pawns that could beat
            else
            {
                var pawnsToDie = beatOrDieChecker.CheckBeats(players[(int)startField.playerPosition].pawns);
                foreach (var pawnToKill in pawnsToDie)
                {
                    if (pawnToKill != pawnController)
                    {
                        pawnToKill.Kill();
                    }
                }
            }

            startField.Free           = true;
            startField.PawnController = null;
            endField.Free             = false;
            endField.playerPosition   = pawnController.playerPosition;
            endField.PawnController   = pawnController;

            if (queen)
            {
                pawnController.TransformToQueen();
            }

            pawn.transform.localPosition = board.CalculatePosition(posEndX, posEndY);
        }