diff --git a/scripts/UI/ChargeProgressBar.cs b/scripts/UI/ChargeProgressBar.cs index a4662f8..6b3eedc 100644 --- a/scripts/UI/ChargeProgressBar.cs +++ b/scripts/UI/ChargeProgressBar.cs @@ -13,7 +13,9 @@ public partial class ChargeProgressBar : ProgressBar public override void _Ready() { - Owner.ChildEnteredTree += OnNodeEntered; + Owner.ChildEnteredTree += OnNodeEntered; + Owner.TreeExiting += OnOwnerExiting; + ProgressBar.Hide(); SetupDependencies(); } @@ -24,6 +26,18 @@ public partial class ChargeProgressBar : ProgressBar ThrowComponent = throwComponent; SetupDependencies(); } + private void OnOwnerExiting() + { + if (_throwInput != null) + { + _throwInput.ChargeStarted -= OnChargeStarted; + _throwInput.ChargeStopped -= OnChargeStopped; + _throwInput.ChargeUpdated -= OnChargeUpdated; + _throwInput = null; + } + ThrowComponent = null; + } + private void SetupDependencies() { diff --git a/scripts/UI/Marketplace.cs b/scripts/UI/Marketplace.cs index 0d48a55..687f4f5 100644 --- a/scripts/UI/Marketplace.cs +++ b/scripts/UI/Marketplace.cs @@ -128,5 +128,13 @@ public partial class Marketplace : Control private void OnSkillButtonPressed(SkillButton button) { SkillUnlockerComponent.SkillManager.ToggleSkillActivation(button.Data); + + foreach (var btn in _skillButtons) + { + if (btn.Data.IsActive) + btn.Activate(); + else + btn.Deactivate(); + } } } \ No newline at end of file