Example #1
0
        public override void Update(GameTime gameTime, InputService input)
        {
            if (input.Keyboard.KeyPress(Microsoft.Xna.Framework.Input.Keys.Down))
            {
                selectedItem += 1;
            }
            else if (input.Keyboard.KeyPress(Microsoft.Xna.Framework.Input.Keys.Up))
            {
                selectedItem -= 1;
            }
            selectedItem = (selectedItem + menuItems.Length) % menuItems.Length;

            if (input.Keyboard.KeyPress(Microsoft.Xna.Framework.Input.Keys.Enter))
            {
                var item = menuItems[selectedItem];
                if (item == "Resume")
                {
                    Rock.Screen.Remove();
                    return;
                }
                else if (item == "Quit to Menu")
                {
                    while (Rock.Screen.Second != null) Rock.Screen.Remove();
                    return;
                }
            }

            if (input.Keyboard.KeyPress(Microsoft.Xna.Framework.Input.Keys.Escape))
            {
                Rock.Screen.Remove();
                return;
            }
        }
Example #2
0
        //Rectangle butNewGame = new Rectangle(14, 14, 140, 24);
        public override void Update(GameTime gameTime, InputService input)
        {
            var ui = Rock.Instance.GetService<UIService>() as UIService;
            //if (ui.Clicked(butNewGame, input))
            //{
            //    Rock.Screen.Show(Builder.SCR_GAME_MAIN);
            //    return;
            //}

            if (input.Keyboard.KeyPress(Microsoft.Xna.Framework.Input.Keys.Down))
            {
                selectedItem += 1;
            }
            else if (input.Keyboard.KeyPress(Microsoft.Xna.Framework.Input.Keys.Up))
            {
                selectedItem -= 1;
            }
            selectedItem = (selectedItem + menuItems.Length) % menuItems.Length;

            if (input.Keyboard.KeyPress(Microsoft.Xna.Framework.Input.Keys.Enter))
            {
                var item = menuItems[selectedItem];
                if (item == "New Game")
                {
                    Rock.Screen.Show(Builder.SCR_GAME_MAIN);
                    return;
                }
            }

            if (input.Keyboard.KeyPress(Microsoft.Xna.Framework.Input.Keys.F1))
            {
                Rock.Screen.Show(Builder.SCR_DEBUG_SPRITESHEET);
                return;
            }
        }
 public override void Update(GameTime gameTime, InputService input)
 {
     if (input.Keyboard.KeyPress(Microsoft.Xna.Framework.Input.Keys.F1))
     {
         Rock.Screen.Remove();
         return;
     }
 }
Example #4
0
        public override void Update(GameTime gameTime, InputService input)
        {
            if (input.Keyboard.KeyPress(Microsoft.Xna.Framework.Input.Keys.Escape))
            {
                Rock.Screen.Show(Builder.SCR_GAME_PAUSE);
                return;
            }

            _map.Update(gameTime);
        }
Example #5
0
        public bool Hovering(Rectangle buttonRegion, InputService input)
        {
            mousePosition.X = (int)input.Mouse.Position.X;
            mousePosition.Y = (int)input.Mouse.Position.Y;

            if (buttonRegion.Contains(MousePosition))
            {
                return true;
            }

            return false;
        }
Example #6
0
        public bool Clicked(Rectangle buttonRegion, InputService input)
        {
            mousePosition.X = (int)input.Mouse.Position.X;
            mousePosition.Y = (int)input.Mouse.Position.Y;

            if (buttonRegion.Contains(MousePosition) && input.Mouse.LeftPressed)
            {
                return true;
            }

            return false;
        }
Example #7
0
 public void Update(GameTime gameTime, InputService input)
 {
     if (null != _update) _update.Update(gameTime, input);
 }
Example #8
0
 public void Update(GameTime gameTime, InputService input)
 {
     uIService.SetMouseX((int)input.Mouse.Position.X);
     uIService.SetMouseY((int)input.Mouse.Position.Y);
 }
Example #9
0
        public override void Update(GameTime gameTime, InputService input)
        {
            switch (comState)
            {
                case CombatState.PreCombat:
                    //TODO: pre fight stuff, priority hit if needs be
                    comState = CombatState.TurnManage;
                    break;
                case CombatState.TurnManage:
                    //Player chooses action, time progresses, eventually player chooses enxt action
                    //based on speed stat
                    if (turState == TurnState.Delay)
                    {
                        delaySpan = delaySpan.Subtract(new TimeSpan(0, 0, 0, 0, gameTime.ElapsedGameTime.Milliseconds));
                        if (delaySpan.TotalMilliseconds <= 0)
                        {
                            turState = TurnState.Waiting;
                        }
                    }
                    else if (turState == TurnState.Waiting)
                    {
                        if (_combatService.Enemy.First().Stats.HPCurrent <= 0)
                        {
                            DelayMessage = "Your enemy has fainted! You won!";
                            comState = CombatState.FinalCombat;
                            delaySpan = new TimeSpan(0, 0, 0, 0, delayMilliToAdd);
                            _combatService.Player.AddExp(_combatService.Enemy.First().Stats.Level);
                            return;
                        }
                        else if (_combatService.Player.GetPlayer().Stats.HPCurrent <= 0)
                        {
                            DelayMessage = "You have died! You lost!";
                            comState = CombatState.FinalCombat;
                            delaySpan = new TimeSpan(0, 0, 0, 0, delayMilliToAdd);
                            return;
                        }

                        bool moveHappened = false;
                        while (!moveHappened)
                        {
                            playerSpeedNext -= 1;
                            enemySpeedNext -= 1;
                            if (playerSpeedNext <= 0)
                            {
                                playerSpeedNext += _combatService.Player.GetPlayer().Stats.Get(EntityStatsContainer.AT_SPEED);
                                turState = TurnState.ChooseAction; //Players turn
                                currentMenu = 0; //Always start at the top yo
                                moveHappened = true;
                            }
                            else if (enemySpeedNext <= 0)
                            {
                                enemySpeedNext += _combatService.Enemy.First().Stats.Get(EntityStatsContainer.AT_SPEED);
                                turState = TurnState.Delay;
                                _combatService.Enemy.First().TakeCombatTurn(_combatService);
                                Delay(_combatService.Enemy.First().CombatMessage);
                                moveHappened = true;
                            }
                        }
                    }
                    else if (turState == TurnState.ChooseAction)
                    {
                        if (input.Keyboard.KeyPress(Microsoft.Xna.Framework.Input.Keys.Up))
                        {
                            menuPositions[currentMenu] -= 1;
                        }
                        else if (input.Keyboard.KeyPress(Microsoft.Xna.Framework.Input.Keys.Down))
                        {
                            menuPositions[currentMenu] += 1;
                        }

                        menuPositions[currentMenu] = (menuPositions[currentMenu] + menuItems[currentMenu].Length) % menuItems[currentMenu].Length;

                        if (input.Keyboard.KeyPress(Microsoft.Xna.Framework.Input.Keys.Enter))
                        {
                            switch (currentMenu)
                            {
                                case 0: //Main menu
                                    switch (menuPositions[currentMenu])
                                    {
                                        case 0: //melee default
                                            selectedAttack = AttackID.Default;
                                            currentMenu = 3; //Target select!
                                            break;
                                        case 1:
                                            //Choose skill page
                                            menuItems[4] = (from item in _combatService.Player.GetPlayer().Stats.SkillsList
                                                            select item.ToString()).ToArray();
                                            currentMenu = 4;
                                            break;
                                        case 2:
                                            break;
                                        case 3:
                                            {
                                                int roll = rndm.Next(2);
                                                if (roll == 0)
                                                {
                                                    Delay("You failed to flee!");
                                                }
                                                else
                                                {
                                                    Rock.Screen.Remove();
                                                    return;
                                                }
                                            }
                                            break;
                                    }
                                    break;
                                case 1: //Skills menu
                                    break;
                                case 2: //Items menu
                                    break;
                                case 3: //Target selection menu
                                    {
                                        //TODO: self targeting / etc
                                        AttackResult res;
                                        if (menuPositions[3] < 4)
                                        {
                                            //enemy!
                                            var target = _combatService.Enemy.Get((Party.PartySlot)menuPositions[3]);
                                            res = _combatService.Attack(_combatService.Player.GetPlayer(), target, selectedAttack);
                                        }
                                        else
                                        {
                                            //teammate
                                            var target = _combatService.Player.Get((Party.PartySlot)(menuPositions[3] - 4));
                                            res = _combatService.Attack(_combatService.Player.GetPlayer(), target, selectedAttack);
                                        }

                                        if (res == AttackResult.Hit)
                                        {
                                            Delay("Your attack hits!");
                                        }
                                        else if (res == AttackResult.Critical)
                                        {
                                            Delay("Your attack hits for a critical!");
                                        }
                                        else if (res == AttackResult.Miss)
                                        {
                                            Delay("Your attack misses!");
                                        }
                                    }
                                    break;

                                case 4:
                                    {
                                        selectedAttack = _combatService.Player.GetPlayer().Stats.SkillsList[menuPositions[4]];
                                        currentMenu = 3; //target select!
                                    }
                                    break;
                            }
                        }
                    }
                    break;
                case CombatState.FinalCombat:
                    {
                        delaySpan = delaySpan.Subtract(new TimeSpan(0, 0, 0, 0, gameTime.ElapsedGameTime.Milliseconds));
                        if (delaySpan.TotalMilliseconds <= 0)
                        {
                            if (_combatService.Player.MessageStack.Count > 0)
                            {
                                DelayMessage = _combatService.Player.MessageStack.Pop();
                                delaySpan = new TimeSpan(0, 0, 0, 0, delayMilliToAdd * 2);
                            }
                            else
                            {
                                Rock.Screen.Remove();
                                return;
                            }
                        }
                    }
                    break;
            }
        }