Death and Rebirth

This commit is contained in:
Marco 2025-02-20 16:12:53 +01:00
commit be52d0e081
11 changed files with 309 additions and 83 deletions

View file

@ -28,6 +28,8 @@ public partial class Hud : CanvasLayer
[Export] private Container _itemsContainer;
[Export] private LabelSettings _labelSettings;
[Export] private Container _gameOverPanel;
[ExportGroup("Pause Menu")] [Export]
public Control PauseMenuContainer;
@ -45,11 +47,14 @@ public partial class Hud : CanvasLayer
private Dictionary<string, HudItem> _items = new();
private PauseMenu _pauseMenu;
private bool _playerDead = false;
public override void _Ready()
{
// Assuming the HUD has a Label node named "HealthLabel"
//_healthLabel = GetNode<Label>("HealthLabel");
_gameOverPanel.Hide();
}
public void ShowMessage(string text)
@ -61,23 +66,33 @@ public partial class Hud : CanvasLayer
GetNode<Timer>("MessageTimer").Start();
}
async public void ShowGameOver()
public void ShowGameOver()
{
ShowMessage("Game Over");
var messageTimer = GetNode<Timer>("MessageTimer");
await ToSignal(messageTimer, Timer.SignalName.Timeout);
var message = GetNode<Label>("Message");
message.Text = "Dodge the Creeps!";
message.Show();
await ToSignal(GetTree().CreateTimer(1.0), SceneTreeTimer.SignalName.Timeout);
GetNode<Button>("StartButton").Show();
_gameOverPanel.Show();
_playerDead = true;
// ShowMessage("Game Over");
//
// var messageTimer = GetNode<Timer>("MessageTimer");
// await ToSignal(messageTimer, Timer.SignalName.Timeout);
//
// var message = GetNode<Label>("Message");
// message.Text = "Dodge the Creeps!";
// message.Show();
//
// await ToSignal(GetTree().CreateTimer(1.0), SceneTreeTimer.SignalName.Timeout);
// GetNode<Button>("StartButton").Show();
}
public void UpdateHealth(float newHealth, float maxHealth)
{
// Hide game over if player is no longer dead
if (_playerDead && newHealth > 0)
{
_playerDead = false;
_gameOverPanel.Hide();
}
_healthLabel.Text = $"{newHealth}/{maxHealth}";
if (_healthBar != null)
{