Exemplo n.º 1
0
 protected override void OnCancel()
 {
     ScreenManager.AddScreen(new ConfirmDialogScreen("Do you really want to exit?", ExitGameConfirmed));
 }
Exemplo n.º 2
0
        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;
            }
        }
Exemplo n.º 3
0
 private void CreditsMenuSelected(object sender, EventArgs e)
 {
     ScreenManager.AddScreen(new CreditsScreen());
 }
Exemplo n.º 4
0
 private void ExitGameMenuSelected(object sender, EventArgs e)
 {
     ScreenManager.AddScreen(new ConfirmDialogScreen("Exit game?", ExitGameConfirmed));
 }