cirnogodot/Scripts/Hud.cs
2025-01-28 09:17:35 +01:00

45 lines
999 B
C#

using Godot;
using System;
public partial class Hud : CanvasLayer
{
[Signal]
public delegate void StartGameEventHandler();
private Label _healthLabel;
public override void _Ready()
{
// Assuming the HUD has a Label node named "HealthLabel"
_healthLabel = GetNode<Label>("HealthLabel");
}
public void ShowMessage(string text)
{
var message = GetNode<Label>("Message");
message.Text = text;
message.Show();
GetNode<Timer>("MessageTimer").Start();
}
async 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();
}
public void UpdateHealth(float newHealth, float maxHealth)
{
_healthLabel.Text = $"{newHealth}/{maxHealth}";
}
}