private string MoveToLevel(string[] strings)
        {
            if (_game.Levels?[int.Parse(strings[0])] == null)
            {
                return("World is null, or doesn't exist!");
            }

            _game.SetMenu(new LevelTransitionMenu(int.Parse(strings[0]), true));

            return("Moved to new level");
        }
 protected internal override void HandleInput(InputHandler input)
 {
     if (!input.Attack.Clicked && !input.Menu.Clicked)
     {
         return;
     }
     if (!Enabled)
     {
         return;
     }
     if (ClickSound)
     {
         GameEffectManager.Play("test");
     }
     _game.SetMenu(new AnimatedTransitionMenu(_goto));
 }
示例#3
0
        public override void Init(McGame game, InputHandler input)
        {
            base.Init(game, input);

            var options = new List <Option>
            {
                new ChangeMenuOption("Color Test", new ColorTestMenu(this), game),
                new ChangeMenuOption("UI Object Test", new UiObjectTestMenu(this), game),
                new ActionOption("Alert Dialog", () =>
                {
                    game.SetMenu(new AlertMenu(this, new[] { "I am a test", "So am i", "But also am i" }, YesAction));
                }),
                new ChangeMenuOption("Main Menu", Parent, game)
            };

            _titleLabel = new Label(Game.UiManager, "Debug Tools", (GameConts.ScreenMiddleWidth - ("Debug Tools".Length * 8 / 2)), 15, Color.White);
            Game.UiManager.Add(_titleLabel);

            RenderScrollingListTable(options);
        }
示例#4
0
        public override void Tick()
        {
            base.Tick();

            if (InvulnerableTime > 0)
            {
                InvulnerableTime--;
            }
            Tile onTile = Level.GetTile(X >> 4, Y >> 4);

            if (onTile == Tile.StairsDown || onTile == Tile.StairsUp)
            {
                if (_onStairDelay == 0)
                {
                    ChangeLevel((onTile == Tile.StairsUp) ? 1 : -1);
                    _onStairDelay = 10;
                    return;
                }
                _onStairDelay = 10;
            }
            else
            {
                if (_onStairDelay > 0)
                {
                    _onStairDelay--;
                }
            }

            if (Stamina <= 0 && StaminaRechargeDelay == 0 && StaminaRecharge == 0)
            {
                StaminaRechargeDelay = 40;
            }

            if (StaminaRechargeDelay > 0)
            {
                StaminaRechargeDelay--;
            }

            if (StaminaRechargeDelay == 0)
            {
                StaminaRecharge++;
                if (IsSwimming())
                {
                    StaminaRecharge = 0;
                }
                while (StaminaRecharge > 10)
                {
                    StaminaRecharge -= 10;
                    if (Stamina < MaxStamina)
                    {
                        Stamina++;
                    }
                }
            }

            int xa = 0;
            int ya = 0;

            if (_input.Up.Down)
            {
                ya--;
            }
            if (_input.Down.Down)
            {
                ya++;
            }
            if (_input.Left.Down)
            {
                xa--;
            }
            if (_input.Right.Down)
            {
                xa++;
            }
            if (IsSwimming() && TickTime % 60 == 0)
            {
                if (Stamina > 0)
                {
                    Stamina--;
                }
                else
                {
                    Hurt(this, 1, Dir ^ 1);
                }
            }

            if (StaminaRechargeDelay % 2 == 0)
            {
                Move(xa, ya);
            }

            if (_input.Attack.Clicked)
            {
                if (Stamina != 0)
                {
                    Stamina--;
                    StaminaRecharge = 0;
                    Attack();
                }
            }
            if (_input.Menu.Clicked && !Use())
            {
                Game.SetMenu(new InventoryMenu(this));
            }
            if (_attackTime > 0)
            {
                _attackTime--;
            }
        }