protected override void OnCancel() { ScreenManager.AddScreen(new ConfirmDialogScreen("Do you really want to exit?", ExitGameConfirmed)); }
public override void HandleInput() { var player = World.Instance.Player; var newDirection = player.Direction; var newState = State.Idle; if (InputHandler.WasActionJustReleased(InputHandler.Action.Back)) { ScreenManager.AddScreen(new PauseMenuScreen()); } if (InputHandler.WasActionJustReleased(InputHandler.Action.Inventory)) { ScreenManager.AddScreen(new InventoryScreen()); } else { if (InputHandler.IsActionPressed(InputHandler.Action.Left)) { newDirection = Direction.Left; newState = State.Move; } if (InputHandler.IsActionPressed(InputHandler.Action.Right)) { newDirection = Direction.Right; newState = State.Move; } if (InputHandler.IsActionPressed(InputHandler.Action.Up)) { newDirection = Direction.Up; newState = State.Move; } if (InputHandler.IsActionPressed(InputHandler.Action.Down)) { newDirection = Direction.Down; newState = State.Move; } if (InputHandler.WasActionJustReleased(InputHandler.Action.Action)) { if (player.ClosestInstance != null) { var pickUpVisitor = new PickUpVisitor(World.Instance.Player); player.ClosestInstance.Accept(pickUpVisitor); if (pickUpVisitor.Success) { return; //maybe not? } var activateVisitor = new ActivateVisitor(World.Instance.Player); player.ClosestInstance.Accept(activateVisitor); if (activateVisitor.Success) { return; } if (player.ClosestInstance is CharacterInstance) { ScreenManager.AddScreen(new ConversationScreen(player.ClosestInstance as CharacterInstance)); } } } if (InputHandler.WasActionJustReleased(InputHandler.Action.Attack)) { if (player.ClosestInstance != null) { player.ClosestInstance.Accept(new MeleeAttackVisitor(World.Instance.Player)); } } } if (player.State != newState || player.Direction != newDirection) { player.Direction = newDirection; player.State = newState; player.AnimationTime = TimeSpan.Zero; } if (InputHandler.WasKeyJustReleased(Keys.F9)) { EngineVariables.ShowEntityBoundingBox = !EngineVariables.ShowEntityBoundingBox; } if (InputHandler.WasKeyJustReleased(Keys.F10)) { EngineVariables.ShowEntityCollisionBox = !EngineVariables.ShowEntityCollisionBox; } }
private void CreditsMenuSelected(object sender, EventArgs e) { ScreenManager.AddScreen(new CreditsScreen()); }
private void ExitGameMenuSelected(object sender, EventArgs e) { ScreenManager.AddScreen(new ConfirmDialogScreen("Exit game?", ExitGameConfirmed)); }