Exemplo n.º 1
0
 public Cursor(Game game)
     : base(game)
 {
     pos = new Vector2(20, 0);
     this.game = game;
     Initialize();
     LoadContent();
     map = (BattleMap)game.Services.GetService(typeof(BattleMap));
     currentTile = SelectTile(0, 0);
     screenManager = (ScreenManager)game.Services.GetService(typeof(ScreenManager));
     gameStateManager = (GameStateManager)game.Services.GetService(typeof(GameStateManager));
     playerManager = (PlayerManager)game.Services.GetService(typeof(PlayerManager));
 }
Exemplo n.º 2
0
        public void RandomMap()
        {
            int mapTheme = random.RandomNumber(1, 1);

            switch (mapTheme)
            {
                case 1: //Grassland
                    for (int i = 0; i < height; i++)
                    {
                        for (int j = 0; j < width; j++)
                        {
                            if (random.RandomNumber(1, 100) >= 30)
                            {
                                map[i, j] = new Tile("grass");
                            }
                            else
                            {
                                map[i, j] = new Tile("dirt");
                            }
                        }
                    }
                    break;
            }
        }
Exemplo n.º 3
0
        public override void Update(GameTime gameTime)
        {
            if (gameStateManager.State == GameState.playing)
            {
                currentButtonState = GamePad.GetState(PlayerIndex.One);
                currentKeyState = Keyboard.GetState(PlayerIndex.One);

                if ((currentButtonState.DPad.Left == ButtonState.Pressed || currentButtonState.ThumbSticks.Left.X < 0 || currentKeyState.IsKeyDown(Keys.Left)))
                {
                    currentTile.TileDeselect();
                    pos.X -= 60;

                    if (buttonFlag == 0)
                    {
                        buttonFlag = 1;
                    }
                    if ((currentButtonState.DPad.Left == ButtonState.Pressed && oldButtonState.DPad.Left == ButtonState.Pressed) || (currentKeyState.IsKeyDown(Keys.Left) && oldKeyState.IsKeyDown(Keys.Left)))
                    {
                        pos.X += 60;
                    }
                    else
                    {
                        buttonFlag = 0;
                    }

                    if (pos.X < 0) pos.X = 20;
                    currentTile = SelectTile((int)pos.Y / 60, (int)pos.X / 60);
                }

                if ((currentButtonState.DPad.Right == ButtonState.Pressed || currentButtonState.ThumbSticks.Left.X > 0 || currentKeyState.IsKeyDown(Keys.Right)))
                {
                    currentTile.TileDeselect();
                    pos.X += 60;

                    if (buttonFlag == 0)
                    {
                        buttonFlag = 1;
                    }
                    if ((currentButtonState.DPad.Right == ButtonState.Pressed && oldButtonState.DPad.Right == ButtonState.Pressed) || (currentKeyState.IsKeyDown(Keys.Right) && oldKeyState.IsKeyDown(Keys.Right)))
                    {
                        pos.X -= 60;
                    }
                    else
                    {
                        buttonFlag = 0;
                    }

                    if ((int)pos.X / 60 > map.getWidth() - 1) pos.X -= 60;
                    currentTile = SelectTile((int)pos.Y / 60, (int)pos.X / 60);
                }

                if ((currentButtonState.DPad.Up == ButtonState.Pressed || currentButtonState.ThumbSticks.Left.Y > 0 || currentKeyState.IsKeyDown(Keys.Up)))
                {
                    currentTile.TileDeselect();
                    pos.Y -= 60;

                    if (buttonFlag == 0)
                    {
                        buttonFlag = 1;
                    }
                    if ((currentButtonState.DPad.Up == ButtonState.Pressed && oldButtonState.DPad.Up == ButtonState.Pressed) || (currentKeyState.IsKeyDown(Keys.Up) && oldKeyState.IsKeyDown(Keys.Up)))
                    {
                        pos.Y += 60;
                    }
                    else
                    {
                        buttonFlag = 0;
                    }

                    if (pos.Y < 0) pos.Y = 0;
                    currentTile = SelectTile((int)pos.Y / 60, (int)pos.X / 60);
                }

                if ((currentButtonState.DPad.Down == ButtonState.Pressed || currentButtonState.ThumbSticks.Left.Y < 0 || currentKeyState.IsKeyDown(Keys.Down)))
                {
                    currentTile.TileDeselect();
                    pos.Y += 60;

                    if (buttonFlag == 0)
                    {
                        buttonFlag = 1;
                    }
                    if ((currentButtonState.DPad.Down == ButtonState.Pressed && oldButtonState.DPad.Down == ButtonState.Pressed) || (currentKeyState.IsKeyDown(Keys.Down) && oldKeyState.IsKeyDown(Keys.Down)))
                    {
                        pos.Y -= 60;
                    }
                    else
                    {
                        buttonFlag = 0;
                    }

                    if ((int)pos.Y / 60 > map.getHeight() - 1) pos.Y -= 60;
                    currentTile = SelectTile((int)pos.Y / 60, (int)pos.X / 60);
                }

                if ((currentButtonState.Buttons.A == ButtonState.Pressed || currentKeyState.IsKeyDown(Keys.Space)))
                {
                    if (buttonFlag == 0)
                    {
                        buttonFlag = 1;
                    }
                    if ((currentButtonState.Buttons.A == ButtonState.Pressed && oldButtonState.Buttons.A == ButtonState.Pressed) || (currentKeyState.IsKeyDown(Keys.Space) && oldKeyState.IsKeyDown(Keys.Space)))
                    {
                        //Do Nothing
                        buttonFlag = 0;
                    }
                    else
                    {
                        selectedCharacter = map.GetSquare((int)pos.Y / 60, (int)pos.X / 60).getCurrentChar();
                        if (selectedCharacter == null && moveFlag == 0 && attackFlag == 0)
                        {
                            screenManager.AddScreen(new PopupScreen(game, null), null);
                            buttonFlag = 1;
                        }
                        if (selectedCharacter != null && moveFlag == 0 && attackFlag == 0 && selectedCharacter.PlayerIndex == playerManager.GetCurrentPlayer())
                        {
                            screenManager.AddScreen(new PopupScreen(game, selectedCharacter), null);
                            buttonFlag = 1;
                        }

                        if (moveFlag == 1 && buttonFlag == 1 && map.GetSquare((int)pos.Y / 60, (int)pos.X / 60).getCurrentChar() == null )
                        {
                            if(map.GetSquare((int)pos.X / 60, (int)pos.Y / 60).IsMovable)
                            {
                                movingCharacter.Move((int)pos.X / 60, (int)pos.Y / 60);
                                ClearBoard();
                            }
                        }

                        if (attackFlag == 1 && buttonFlag == 1 && map.GetSquare((int)pos.Y / 60, (int)pos.X / 60).getCurrentChar() != null)
                        {
                            if (map.GetSquare((int)pos.X / 60, (int)pos.Y / 60).IsAttackable)
                            {
                                attackedCharacter = map.GetSquare((int)pos.Y / 60, (int)pos.X / 60).getCurrentChar();
                                attackedCharacter.Attacked = 1;
                                attackingCharacter.Attacking = 1;
                                attackingCharacter.Attack((int)pos.Y / 60, (int)pos.X / 60);

                                screenManager.AddScreen(new BattleScreen(game, attackingCharacter, attackedCharacter), null);
                                gameStateManager.State = GameState.combat;

                                ClearBoard();
                            }
                        }
                    }
                }

                if ((currentButtonState.Buttons.B == ButtonState.Pressed || currentKeyState.IsKeyDown(Keys.B)))
                {
                    if (buttonFlag == 0)
                    {
                        buttonFlag = 1;
                    }
                    if ((currentButtonState.Buttons.A == ButtonState.Pressed && oldButtonState.Buttons.A == ButtonState.Pressed) || (currentKeyState.IsKeyDown(Keys.Space) && oldKeyState.IsKeyDown(Keys.Space)))
                    {
                        //Do Nothing
                        buttonFlag = 0;
                    }
                    if (moveFlag == 1 && buttonFlag == 1)
                    {
                        movingCharacter.HasMoved = false;
                        movingCharacter = null;
                        selectedCharacter = null;
                        moveFlag = 0;
                        buttonFlag = 0;

                         for (int i = 0; i < map.getHeight(); i++)
                         {
                            for (int j = 0; j < map.getWidth(); j++)
                            {
                                    map.GetSquare(i, j).IsMovable = false;
                            }
                         }
                    }
                    if (attackFlag == 1 && buttonFlag == 1)
                    {
                        attackingCharacter.HasAttacked = false;
                        attackingCharacter = null;
                        attackFlag = 0;
                        buttonFlag = 0;

                        for (int i = 0; i < map.getHeight(); i++)
                        {
                            for (int j = 0; j < map.getWidth(); j++)
                            {
                                map.GetSquare(i, j).IsAttackable = false;
                            }
                        }
                    }
                }

                oldButtonState = currentButtonState;
                oldKeyState = currentKeyState;
            }
            base.Update(gameTime);
        }