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); }