diff --git a/entities/Character.cs b/entities/Character.cs index 7264acd..4ba58c0 100644 --- a/entities/Character.cs +++ b/entities/Character.cs @@ -16,6 +16,8 @@ public abstract class Character : Node2D [Export] public int CurrentHealth { get; protected set; } [Export] protected int MaxHealth { get; set; } = 12; + + public static bool ShouldPlaySound = true; private CurrentAction? currentAction; private Node2D? offset; @@ -80,6 +82,7 @@ public void TakeDamage(int amountOfDamage) var oldHealth = CurrentHealth; CurrentHealth = Math.Max(CurrentHealth - amountOfDamage, 0); redness = 1; + playHitSound(); EmitSignal(nameof(HealthChanged), CurrentHealth, MaxHealth, CurrentHealth - oldHealth); if (CurrentHealth <= 0) @@ -90,6 +93,9 @@ public void TakeDamage(int amountOfDamage) private void playHitSound() { + if (!ShouldPlaySound) + return; + if (GetNode("HitSound") is not { } sound) { return; diff --git a/scenes/main/AudioButton.cs b/scenes/main/AudioButton.cs index cee8511..8fcc12d 100644 --- a/scenes/main/AudioButton.cs +++ b/scenes/main/AudioButton.cs @@ -15,6 +15,9 @@ public bool Muted { if (muted == value) return; muted = value; + + Character.ShouldPlaySound = !muted; + if (muted) { audio?.Stop(); diff --git a/scenes/main/TopHud.cs b/scenes/main/TopHud.cs index 3c45cac..42922bb 100644 --- a/scenes/main/TopHud.cs +++ b/scenes/main/TopHud.cs @@ -5,13 +5,6 @@ public sealed class TopHud : Control { private const int maxWidth = 58; - public override void _Ready() - { - - var audioButton = GetNode("AudioButton"); - // TODO: Handle clicks here???? - } - public void UpdateHealth(int newHealth, int maxHealth) { var healthFill = GetNode("HealthFill");