示例#1
0
        public void DropItem(Character player, bool isWeapon, int inventoryIndex, int[] square)
        {
            int currentlyAllowedSquares = player.SquaresToMove;
            Items item;

            if (currentlyAllowedSquares >= dropItem)
            {
                currentlyAllowedSquares -= dropItem;

                if (isWeapon)
                {
                    item = player.weapons[inventoryIndex];
                    player.weapons[inventoryIndex] = null;
                    grid[square[0], square[1]].itemList.Add(item);
                }
                else
                {
                    item = player.inventory.ElementAt(inventoryIndex);
                    player.inventory.RemoveAt(inventoryIndex);
                    grid[square[0], square[1]].itemList.Add(item);
                }
            }
            else
            {
                Console.WriteLine("Player Does not currently have enough squares to Drop Item at Index " + inventoryIndex);
            }
        }
示例#2
0
        public void MoveCharacter(Character player, int[] currentLocation, int[] moveTo)
        {
            //moveTo = new int[2];
            //moveTo[0] = 7;
            //moveTo[1] = 9;

            int selectedX = moveTo[0];
            int selectedY = moveTo[1];

            if (grid[selectedX, selectedY].c != null)
            {
                Console.WriteLine("Square Occupied");
                return;
            }

            int currentX = currentLocation[0];
            int currentY = currentLocation[1];

            int xSquaresToMove = moveTo[0] - currentLocation[0];
            int ySquaresToMove = moveTo[1] - currentLocation[1];

            int xSquaresBeforeDiagonal = xSquaresToMove;
            int ySquaresBeforeDiagonal = ySquaresToMove;

            int diagonalSquaresThisTurn = 0;

            int squaresPerTurn = player.SquaresToMove;
            int currentlyAllowedSquares = squaresPerTurn;

            int attemptedSquaresToMove = 0;

            for (int i = 0; i < xSquaresBeforeDiagonal; i++)
            {
                if (ySquaresToMove > 0)
                {
                    --xSquaresToMove;
                    --ySquaresToMove;
                    ++diagonalSquaresThisTurn;
                }
            }

            for (int i = 1; i < diagonalSquaresThisTurn; i++)
            {
                if (i % 2 == 0)
                {
                    if ((attemptedSquaresToMove + 2) <= squaresPerTurn)
                    {
                        attemptedSquaresToMove += 2;
                        currentlyAllowedSquares -= 2;
                    }
                    else
                    {
                        int k = (diagonalSquaresThisTurn - i);

                        i = diagonalSquaresThisTurn;

                        xSquaresToMove += k;
                        ySquaresToMove += k;
                    }
                }
                else
                {
                    if ((attemptedSquaresToMove + 1) <= squaresPerTurn)
                    {
                        ++attemptedSquaresToMove;
                        currentlyAllowedSquares -= 1;
                    }
                    else
                    {
                        int k = (diagonalSquaresThisTurn - i);

                        i = diagonalSquaresThisTurn;

                        xSquaresToMove += k;
                        ySquaresToMove += k;

                    }
                }
            }

            if (currentlyAllowedSquares != 0 && xSquaresToMove > 0)
            {
                for (int i = xSquaresToMove; i > 0; i--)
                {
                    if (currentlyAllowedSquares > 0)
                    {
                        --xSquaresToMove;
                        --currentlyAllowedSquares;
                    }
                    else
                    {
                        i = 0;
                    }
                }
            }

            if (currentlyAllowedSquares != 0 && ySquaresToMove > 0)
            {
                for (int i = ySquaresToMove; i > 0; i--)
                {
                    if (currentlyAllowedSquares > 0)
                    {
                        --ySquaresToMove;
                        --currentlyAllowedSquares;
                    }
                    else
                    {
                        i = 0;
                    }
                }
            }

            if (xSquaresToMove == 0 && ySquaresToMove == 0)
            {
                grid[selectedX, selectedY].c = player;
                grid[currentX, currentY].c = null;

                Console.WriteLine("Move Successful");
            }
            else
            {
                Console.WriteLine("Impossible of movement");
            }
        }
示例#3
0
 public void StartTurn(Character player)
 {
     int squares = player.SquaresToMove;
 }
示例#4
0
 public void genChar(int i)
 {
     c = new Character();
     c.Inititative = i;
 }
示例#5
0
        public void PickUpItem(Character player, Items item, bool isWeapon, int[] square)
        {
            int currentlyAllowedSquares = player.SquaresToMove;

            if (currentlyAllowedSquares >= pickUpItem)
            {
                currentlyAllowedSquares -= pickUpItem;

                if (isWeapon)
                {
                    for (int i = 5; i > 0; i--)
                    {
                        if (i == 5 && player.weapons[4] != null)
                        {
                            return;
                        }
                        else if (i == 1)
                        {
                            player.weapons[0] = item;
                            grid[square[0], square[1]].itemList.Remove(item);
                            return;
                        }
                        else if (player.weapons[i - 1] == null)
                        {

                        }
                        else if (player.weapons[i - 1] != null)
                        {
                            player.weapons[i] = item;
                            grid[square[0], square[1]].itemList.Remove(item);
                            return;
                        }
                    }
                }
                else
                {
                    player.inventory.Add(item);
                    grid[square[0], square[1]].itemList.Remove(item);
                }
            }
        }
示例#6
0
        public void MoveCharacter(Character player, int[] currentLocation, int[] moveTo)
        {
            int selectedX = moveTo[0];
            int selectedY = moveTo[1];

            if (grid[selectedX, selectedY].c != null)
            {
                Console.WriteLine("Character at [" + currentLocation[0] + ", " + currentLocation[1] + "] Requested to \nmove to [" + moveTo[0] + ", " + moveTo[1] + "] which was an occupied square \n\n");
                return;
            }

            int currentX = currentLocation[0];
            int currentY = currentLocation[1];

            int xSquaresToMove = moveTo[0] - currentLocation[0];
            int ySquaresToMove = moveTo[1] - currentLocation[1];

            int xSquaresBeforeDiagonal = xSquaresToMove;
            int ySquaresBeforeDiagonal = ySquaresToMove;

            int diagonalSquaresThisTurn = 0;

            int squaresPerTurn = player.SquaresToMove;
            int currentlyAllowedSquares = squaresPerTurn;

            int attemptedSquaresToMove = 0;

            for (int i = 0; i < xSquaresBeforeDiagonal; i++)
            {
                if (ySquaresToMove > 0)
                {
                    --xSquaresToMove;
                    --ySquaresToMove;
                    ++diagonalSquaresThisTurn;
                }
            }

            for (int i = 1; i < diagonalSquaresThisTurn; i++)
            {
                if (i % 2 == 0)
                {
                    if ((attemptedSquaresToMove + 2) <= squaresPerTurn)
                    {
                        attemptedSquaresToMove += 2;
                        currentlyAllowedSquares -= 2;
                    }
                    else
                    {
                        int k = (diagonalSquaresThisTurn - i);

                        i = diagonalSquaresThisTurn;

                        xSquaresToMove += k;
                        ySquaresToMove += k;
                    }
                }
                else
                {
                    if ((attemptedSquaresToMove + 1) <= squaresPerTurn)
                    {
                        ++attemptedSquaresToMove;
                        currentlyAllowedSquares -= 1;
                    }
                    else
                    {
                        int k = (diagonalSquaresThisTurn - i);

                        i = diagonalSquaresThisTurn;

                        xSquaresToMove += k;
                        ySquaresToMove += k;

                    }
                }
            }

            if (currentlyAllowedSquares != 0 && xSquaresToMove > 0)
            {
                for (int i = xSquaresToMove; i > 0; i--)
                {
                    if (currentlyAllowedSquares > 0)
                    {
                        --xSquaresToMove;
                        --currentlyAllowedSquares;
                    }
                    else
                    {
                        i = 0;
                    }
                }
            }

            if (currentlyAllowedSquares != 0 && ySquaresToMove > 0)
            {
                for (int i = ySquaresToMove; i > 0; i--)
                {
                    if (currentlyAllowedSquares > 0)
                    {
                        --ySquaresToMove;
                        --currentlyAllowedSquares;
                    }
                    else
                    {
                        i = 0;
                    }
                }
            }

            if (xSquaresToMove == 0 && ySquaresToMove == 0)
            {
                grid[selectedX, selectedY].c = player;
                grid[currentX, currentY].c = null;

                Console.WriteLine("Character at [" + currentLocation[0] + ", " + currentLocation[1] + "] Requested to\n move to [" + moveTo[0] + ", " + moveTo[1] + "] and was granted the movement \n\n");

            }
            else
            {
                Console.WriteLine("Character at [" + currentLocation[0] + ", " + currentLocation[1] + "] Requested to\n move to [" + moveTo[0] + ", " + moveTo[1] + "] and was denied due to lack of squares possible per turn");
                Console.WriteLine("Squares per turn:" + player.SquaresToMove.ToString());
                Console.WriteLine("\n\n");
            }
        }
示例#7
0
        public void MakeUnAimedRangeAttack(Character player)
        {
            int totalSquares = player.SquaresToMove;
            int currentlyAvailableSquares = player.SquaresToMove;

            if ((totalSquares / 2) > currentlyAvailableSquares)
            {
                Console.WriteLine("Player does not have enough squares to perform this action");
            }
            else
            {
                currentlyAvailableSquares -= (totalSquares / 2);

                /*
                 * Kind of need david's logic in order to do this.
                 *
                 */
            }
        }
示例#8
0
        public void GiveItem(Character giver, Character givee, int inventoryIndex, bool isWeapon)
        {
            Items item;
            int currentlyAllowedSquares = giver.SquaresToMove;

            if (currentlyAllowedSquares >= giveItem)
            {
                currentlyAllowedSquares -= giveItem;
                if (isWeapon)
                {
                    item = giver.weapons[inventoryIndex];
                    for (int i = 5; i > 0; i--)
                    {
                        if (i == 5 && givee.weapons[4] != null)
                        {
                            return;
                        }
                        else if (i == 1)
                        {
                            givee.weapons[0] = item;
                            giver.weapons[inventoryIndex] = null;
                            return;
                        }
                        else if (givee.weapons[i - 1] == null)
                        {

                        }
                        else if (givee.weapons[i - 1] != null)
                        {
                            givee.weapons[i] = item;
                            giver.weapons[inventoryIndex] = null;
                            return;
                        }
                    }
                }
                else
                {
                    item = giver.inventory.ElementAt(inventoryIndex);
                    givee.inventory.Add(item);
                    giver.inventory.RemoveAt(inventoryIndex);
                }
            }
            else
            {
                Console.WriteLine("The Giver does not have enought available squares to perform said action");
            }
        }
示例#9
0
 public void genChar()
 {
     c = new Character();
     c.Inititative = UnitMovement.Program.setCharacterInitiative();
 }