From 9b69b7ab17fa88a0103c242041cf59cdaf41d308 Mon Sep 17 00:00:00 2001 From: Marco Date: Mon, 3 Mar 2025 09:20:11 +0100 Subject: [PATCH] Update health on start --- Scenes/Maps/PlayerFSMTest.tscn | 4 ++-- Scenes/test.tscn | 2 +- .../Actors/ActorResourceProvider.cs | 2 +- .../Components/Actors/PlayerDamageReceiver.cs | 19 +++++++++++++------ Scripts/Components/FSM/Player/Active.cs | 3 +++ 5 files changed, 20 insertions(+), 10 deletions(-) diff --git a/Scenes/Maps/PlayerFSMTest.tscn b/Scenes/Maps/PlayerFSMTest.tscn index a5636995..0300fbbc 100644 --- a/Scenes/Maps/PlayerFSMTest.tscn +++ b/Scenes/Maps/PlayerFSMTest.tscn @@ -33,7 +33,7 @@ [sub_resource type="Resource" id="Resource_6wo78"] script = ExtResource("4_u1i8n") EggIndex = 0 -StartingEquipment = Array[ExtResource("5_u1i8n")]([]) +StartingEquipment = [] [node name="GameScene" type="Node2D"] process_mode = 3 @@ -42,7 +42,7 @@ PlayerTemplate = ExtResource("8_c3v4x") SpawnMarkers = Dictionary[int, NodePath]({ 0: NodePath("PlayerStartPosition") }) -StartingEquipment = [ExtResource("3_6314l"), ExtResource("4_yyg8m")] +StartingEquipment = Array[ExtResource("5_u1i8n")]([ExtResource("3_6314l"), ExtResource("4_yyg8m")]) MapStartData = SubResource("Resource_6wo78") [node name="Tilemaps" type="Node2D" parent="."] diff --git a/Scenes/test.tscn b/Scenes/test.tscn index 5d6fb993..ca5a2926 100644 --- a/Scenes/test.tscn +++ b/Scenes/test.tscn @@ -477,7 +477,7 @@ SpawnMarkers = Dictionary[int, NodePath]({ 2: NodePath("Factory Tilemaps/LevelProps/BossDebugTeleporterDestination"), 255: NodePath("Factory Tilemaps/Debug Room/DebugRoomStartPosition") }) -StartingEquipment = [ExtResource("4_swym2"), ExtResource("5_nqier")] +StartingEquipment = Array[ExtResource("6_8tdlb")]([ExtResource("4_swym2"), ExtResource("5_nqier")]) MapStartData = SubResource("Resource_6sau4") metadata/_edit_lock_ = true diff --git a/Scripts/Components/Actors/ActorResourceProvider.cs b/Scripts/Components/Actors/ActorResourceProvider.cs index 8179bd7e..e6833491 100644 --- a/Scripts/Components/Actors/ActorResourceProvider.cs +++ b/Scripts/Components/Actors/ActorResourceProvider.cs @@ -30,7 +30,7 @@ public partial class ActorResourceProvider : Node2D { _currentResource = value; - if (_currentResource > MaxResource) { + if (_currentResource >= MaxResource) { _currentResource = MaxResource; EmitSignal(SignalName.ResourceMaxed, MaxResource); } diff --git a/Scripts/Components/Actors/PlayerDamageReceiver.cs b/Scripts/Components/Actors/PlayerDamageReceiver.cs index 9f86324a..8ad7203e 100644 --- a/Scripts/Components/Actors/PlayerDamageReceiver.cs +++ b/Scripts/Components/Actors/PlayerDamageReceiver.cs @@ -39,27 +39,34 @@ public partial class PlayerDamageReceiver : Area2D public void Init() { - _healthProvider.FillResource(); - _shieldProvider.FillResource(); - _healthProvider.ResourceChanged += ((value, maxValue) => { - if (!Enabled) return; + //if (!Enabled) return; EmitSignal(SignalName.HealthChanged, value, maxValue); }); _shieldProvider.ResourceChanged += ((value, maxValue) => { - if (!Enabled) return; + //if (!Enabled) return; EmitSignal(SignalName.ShieldChanged, value, maxValue); }); _healthProvider.ResourceDepleted += () => { - if (!Enabled) return; + //if (!Enabled) return; EmitSignal(SignalName.Death); }; } + + public void RefillHealth() + { + _healthProvider.FillResource(); + } + + public void RefillShield() + { + _shieldProvider.FillResource(); + } private void _on_damage_hitbox_area_entered(Area2D area) { diff --git a/Scripts/Components/FSM/Player/Active.cs b/Scripts/Components/FSM/Player/Active.cs index c0aecf7c..315ccbc9 100644 --- a/Scripts/Components/FSM/Player/Active.cs +++ b/Scripts/Components/FSM/Player/Active.cs @@ -65,6 +65,9 @@ public partial class Active : PlayerFSMState _damageReceiver.Init(); + _damageReceiver.RefillHealth(); + _damageReceiver.RefillShield(); + _activationProvider.Init(stateMachine); //_weaponProvider = stateMachine.GetNode("WeaponProvider");