private new void Tick() { TickCount++; if (_input.Screenshot.Clicked) { if (!TakeScreenShot) { TakeScreenShot = true; } } if ((!HasFocus()) && !IsLoadingWorld) { _input.ReleaseAll(); } else { if (_input.FullScreen.Clicked) { Gdm.IsFullScreen = !Gdm.IsFullScreen; GameConts.Instance.BaseScaling = Gdm.IsFullScreen ? 3 : 5; Gdm.ApplyChanges(); } if (_input.ConsoleKey.Clicked) { Console.ToggleOpenClose(); } if (Player != null && !Player.Removed && !_hasWon) { if (Menu == null) { GameTime++; } } _input.Tick(); if (Player != null && !Player.Removed && !_hasWon) { if (_input.CloseKey.Clicked && Menu == null) { SetMenu(new AnimatedTransitionMenu(new PauseGameMenu(null))); } } if (Console.IsVisible) { return; } if (Menu != null) { Menu.Tick(); } else { if (Player != null && Player.Removed) { _playerDeadTime++; if (_playerDeadTime > 60) { SetMenu(new GameOverMenu("Game Over :: Stats", "Goto Main Menu 'C'", false)); } } else { if (_pendingLevelChange != 0) { SetMenu(new LevelTransitionMenu(_pendingLevelChange)); _pendingLevelChange = 0; } } if (_wonTimer > 0) { if (--_wonTimer == 0) { SetMenu(new GameOverMenu("You Won :: Stats", "Goto Main Menu 'C'", true)); } } Level.Tick(); Tile.TickCount++; } } }
private void RenderGui() { if (Player != null) { if (Player.ActiveItem != null) { for (var y = 0; y < 1; y++) { for (var x = 0; x < 10; x++) { Screen.Render(x * 8 + GameConts.ScreenMiddleWidth - 40, Screen.H - 18 + y * 8, 0 + 12 * 32, Color.Get(000, 000, 000, 000), 0); } } } for (var i = 0; i < 10; i++) { Screen.Render(GameConts.ScreenMiddleWidth + i * 8 - 80, Screen.H - 9, 0 + 12 * 32, i < Player.Health ? Color.Get(-1, 200, 500, 533) : Color.Get(-1, 100, 000, 000), 0); if (Player.StaminaRechargeDelay > 0) { Screen.Render((i * 8 + GameConts.ScreenMiddleWidth) + 5, Screen.H - 9, 1 + 12 * 32, Player.StaminaRechargeDelay / 4 % 2 == 0 ? Color.Get(-1, 555, 000, 100) : Color.Get(-1, 110, 000, 100), 0); } else { Screen.Render((i * 8 + GameConts.ScreenMiddleWidth) + 5, Screen.H - 9, 1 + 12 * 32, i < Player.Stamina ? Color.Get(-1, 220, 550, 553) : Color.Get(-1, 110, 000, 000), 0); } } Player.ActiveItem?.RenderInventory(Screen, GameConts.ScreenMiddleWidth - 40, Screen.H - 18); /*if (_playerDeadTime < 60) * { * int seconds = GameTime/60; * int minutes = seconds/60; * int hours = minutes/60; * minutes %= 60; * seconds %= 60; * * var timeString = hours > 0 * ? hours + "h" + (minutes < 10 ? "0" : "") + minutes + "m" * : minutes + "m " + (seconds < 10 ? "0" : "") + seconds + "s"; * * var xx = (GameConts.Width - timeString.Length*8) + 1; * * Font.Draw(timeString, Screen, xx, 1, Color.White); * * }*/ Font.Draw(GameConts.Version, Screen, (GameConts.Width - GameConts.Version.Length * 8) / 2, 1, Color.White); } Menu?.Render(Screen); }
public void SetMenu(Menu menu) { UiManager.Clean(); Menu = menu; menu?.Init(this, _input); }