コード例 #1
0
        internal void SecondCellSelected(Cell cell)
        {
            if (SelectedBarricade != null)
            {
                SelectedBarricade.MoveToCell(cell);
                SelectedBarricade = null;
                SelectedCell.isSelected = false;
                cell.isSelected = false;
                Cell t = SelectedCell;
                SelectedCell = null;
                t.OnCellStateChanged(EventArgs.Empty);
                OnGameStateChanged(EventArgs.Empty);
                List<Pawn> oldpawns = currentPlayer.Pawns;
                toNextPlayer();

                foreach (Pawn p in oldpawns)
                {
                    p.CurrentCell.OnCellStateChanged(EventArgs.Empty);
                }
                foreach (Pawn p in currentPlayer.Pawns)
                {
                    p.CurrentCell.OnCellStateChanged(EventArgs.Empty);
                }
                DiceThrown = false;
                OnDiceCanBeThrown(EventArgs.Empty);
            }
            else if (cell.Barricade != null)
            {
                SelectedCell.Pawn.MoveToCell(cell);
                SelectedCell.isSelected = false;
                cell.isSelected = true;

                Cell t = SelectedCell;
                SelectedCell = cell;
                SelectedBarricade = cell.Barricade;
                t.OnCellStateChanged(EventArgs.Empty);
                cell.OnCellStateChanged(EventArgs.Empty);
                ClearPossiblities();
                OnGameStateChanged(EventArgs.Empty);
            }
            else
            {
                SelectedCell.Pawn.MoveToCell(cell);
                SelectedCell.isSelected = false;
                cell.isSelected = false;

                Cell t = SelectedCell;
                SelectedCell = null;
                t.OnCellStateChanged(EventArgs.Empty);
                cell.OnCellStateChanged(EventArgs.Empty);
                ClearPossiblities();
                List<Pawn> oldpawns = currentPlayer.Pawns;
                toNextPlayer();

                foreach (Pawn p in oldpawns)
                {
                    p.CurrentCell.OnCellStateChanged(EventArgs.Empty);
                }
                foreach (Pawn p in currentPlayer.Pawns)
                {
                    p.CurrentCell.OnCellStateChanged(EventArgs.Empty);
                }
                DiceThrown = false;
                OnDiceCanBeThrown(EventArgs.Empty);
            }
        }