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; } }
//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; } }
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); }
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; }
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; }
public void Update(GameTime gameTime, InputService input) { if (null != _update) _update.Update(gameTime, input); }
public void Update(GameTime gameTime, InputService input) { uIService.SetMouseX((int)input.Mouse.Position.X); uIService.SetMouseY((int)input.Mouse.Position.Y); }
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; } }