Esempio n. 1
0
        private PossibleMove CheckPath(int x, int y, int xoff, int yoff, BoardClass Board)
        {
            int xcur = x, ycur = y;

            var Me = Board.GetMeepleAt(x, y);

            if (Me == null)
            {
                return(null);
            }

            for (int steps = 0; steps < 100; steps++)
            {
                xcur += xoff;
                ycur += yoff;
                if (!Board.IsWalkable(xcur, ycur, false))
                {
                    break;
                }

                var Enemy = Board.GetMeepleAt(xcur, ycur);

                if (Enemy != null)
                {
                    if (Enemy.Player.ID == Me.Player.ID)
                    {
                        break;
                    }
                    if (Board.IsWalkable(xcur + xoff, ycur + yoff))
                    {
                        return(new PossibleMove()
                        {
                            FromX = x, FromY = y, ToX = xcur, ToY = ycur, ScoreValue = Board.Tiles[xcur, ycur].ScoreValue, Card = this, Destination = Board.Tiles[xcur, ycur]
                        });
                    }
                }
            }
            return(null);
        }