From ed747bea9e3e68b81d094a4a6a4482cf48dfff18 Mon Sep 17 00:00:00 2001 From: Rendo Date: Thu, 17 Jul 2025 02:10:47 +0500 Subject: [PATCH] proper hp calculation --- .../levels/test_level_for_execution.tres | 2 +- scenes/entities/Zombies/zombie.tscn | 47 +++++++++---------- scripts/level/LevelRunner.cs | 5 +- scripts/zombies/RuntimeZombieData.cs | 9 +++- 4 files changed, 35 insertions(+), 28 deletions(-) diff --git a/resources/levels/test_level_for_execution.tres b/resources/levels/test_level_for_execution.tres index c9a9799..70be94d 100644 --- a/resources/levels/test_level_for_execution.tres +++ b/resources/levels/test_level_for_execution.tres @@ -142,7 +142,7 @@ isHugeWave = true script = ExtResource("1_qb1ge") startSun = 50.0 wavePercentage = 0.5 -standardWaveDelay = 12.0 +standardWaveDelay = 30.0 initialWaveDelay = 20.0 waves = [SubResource("Resource_8aewt"), SubResource("Resource_hlq35"), SubResource("Resource_8miqm"), SubResource("Resource_s62qb"), SubResource("Resource_yvl2y"), SubResource("Resource_ulhin"), SubResource("Resource_cafd0"), SubResource("Resource_y8rkm"), SubResource("Resource_dbrq5")] metadata/_custom_type_script = "uid://bximdujbkj2n4" diff --git a/scenes/entities/Zombies/zombie.tscn b/scenes/entities/Zombies/zombie.tscn index c749122..b73ed79 100644 --- a/scenes/entities/Zombies/zombie.tscn +++ b/scenes/entities/Zombies/zombie.tscn @@ -821,7 +821,7 @@ metadata/_edit_lock_ = true [node name="RightUpperLeg" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt"] use_parent_material = true position = Vector2(-6, 3) -scale = Vector2(0.999833, 0.999833) +scale = Vector2(0.999832, 0.999832) rest = Transform2D(1, 0, 0, 1, -6, 3) editor_settings/show_bone_gizmo = false @@ -833,13 +833,13 @@ metadata/_edit_lock_ = true [node name="RightLowerLeg" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/RightUpperLeg"] position = Vector2(-2, 12) -scale = Vector2(0.999833, 0.999833) +scale = Vector2(0.999836, 0.999836) rest = Transform2D(1, 0, 0, 1, -2, 12) editor_settings/show_bone_gizmo = false [node name="RightFoot" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/RightUpperLeg/RightLowerLeg"] position = Vector2(-2, 14) -scale = Vector2(0.99983, 0.99983) +scale = Vector2(0.999831, 0.999831) rest = Transform2D(1, 0, 0, 1, -2, 14) auto_calculate_length_and_angle = false length = 12.0 @@ -862,7 +862,7 @@ metadata/_edit_lock_ = true [node name="LeftUpperLeg" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt"] use_parent_material = true position = Vector2(6, 4) -scale = Vector2(0.999832, 0.999832) +scale = Vector2(0.99983, 0.99983) rest = Transform2D(1, 0, 0, 1, 6, 4) editor_settings/show_bone_gizmo = false @@ -874,7 +874,7 @@ metadata/_edit_lock_ = true [node name="LeftLowerLeg" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/LeftUpperLeg"] position = Vector2(-1, 13) -scale = Vector2(0.999833, 0.999833) +scale = Vector2(0.999834, 0.999834) rest = Transform2D(1, 0, 0, 1, -1, 13) editor_settings/show_bone_gizmo = false @@ -886,7 +886,7 @@ metadata/_edit_lock_ = true [node name="LeftFoot" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/LeftUpperLeg/LeftLowerLeg"] position = Vector2(6, 10) -scale = Vector2(0.999829, 0.999829) +scale = Vector2(0.999827, 0.999827) rest = Transform2D(1, 0, 0, 1, 6, 10) auto_calculate_length_and_angle = false length = 12.0 @@ -902,7 +902,7 @@ metadata/_edit_lock_ = true [node name="Body" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt"] use_parent_material = true position = Vector2(1, -2) -scale = Vector2(0.999828, 0.999828) +scale = Vector2(0.999827, 0.999827) rest = Transform2D(1, 0, 0, 1, 1, -2) editor_settings/show_bone_gizmo = false @@ -910,7 +910,7 @@ editor_settings/show_bone_gizmo = false z_index = -1 use_parent_material = true position = Vector2(-14, -23) -scale = Vector2(0.999828, 0.999828) +scale = Vector2(0.999833, 0.999833) rest = Transform2D(1, 0, 0, 1, -14, -23) editor_settings/show_bone_gizmo = false @@ -928,7 +928,7 @@ editor_settings/show_bone_gizmo = false [node name="RightHand" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/RightUpperArm/RightLowerArm"] position = Vector2(-1, 13) -scale = Vector2(0.999827, 0.999827) +scale = Vector2(0.999834, 0.999834) rest = Transform2D(1, 0, 0, 1, -1, 13) auto_calculate_length_and_angle = false length = 8.0 @@ -956,8 +956,8 @@ metadata/_edit_lock_ = true [node name="Tie" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body"] position = Vector2(-9, -21) -rotation = -0.0192003 -skew = -0.000424743 +rotation = 0.0104011 +skew = -0.000424862 rest = Transform2D(1, 0, 0, 1, -9, -21) auto_calculate_length_and_angle = false length = 24.0 @@ -972,7 +972,7 @@ metadata/_edit_lock_ = true [node name="Head" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body"] position = Vector2(-10, -25) -scale = Vector2(0.999829, 0.999829) +scale = Vector2(0.999832, 0.999832) rest = Transform2D(1, 0, 0, 1, -10, -25) editor_settings/show_bone_gizmo = false @@ -995,7 +995,6 @@ metadata/_edit_lock_ = true [node name="Right_Eye" type="Sprite2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head/HeadParticle/Head"] position = Vector2(-16, -8) -scale = Vector2(1, 1) texture = SubResource("AtlasTexture_vcc72") centered = false offset = Vector2(-2, -2) @@ -1003,16 +1002,15 @@ metadata/_edit_lock_ = true [node name="Left_Eye" type="Sprite2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head/HeadParticle/Head"] position = Vector2(-4, -9) -scale = Vector2(1, 1) texture = SubResource("AtlasTexture_kto0i") centered = false offset = Vector2(-2, -2) metadata/_edit_lock_ = true [node name="Jaw" type="Sprite2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head/HeadParticle/Head"] -position = Vector2(-2.70063, 2.27667) -rotation = 0.0268959 -scale = Vector2(0.999829, 0.999829) +position = Vector2(-3.00013, 2.99978) +rotation = 0.00100939 +scale = Vector2(0.999832, 0.999832) texture = SubResource("AtlasTexture_x5uj2") centered = false offset = Vector2(-12, -2) @@ -1029,7 +1027,7 @@ _observedEntity = NodePath("../../../../../../../..") [node name="Jaw" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head"] position = Vector2(-3, 3) -scale = Vector2(0.999829, 0.999829) +scale = Vector2(0.999831, 0.999831) rest = Transform2D(1, 0, 0, 1, -3, 3) auto_calculate_length_and_angle = false length = 11.0 @@ -1063,7 +1061,7 @@ remote_path = NodePath("../../HeadParticle/Head/Left_Eye") [node name="LeftUpperArm" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body"] position = Vector2(-1, -20) -scale = Vector2(0.99983, 0.99983) +scale = Vector2(0.999834, 0.999834) rest = Transform2D(1, 0, 0, 1, -1, -20) editor_settings/show_bone_gizmo = false @@ -1085,8 +1083,8 @@ minTorque = -45.0 maxTorque = 45.0 [node name="Left_Lower_Arm" type="Sprite2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm/HandProjectile"] -rotation = 0.111148 -scale = Vector2(0.999996, 0.999996) +rotation = 0.0097793 +scale = Vector2(0.999998, 0.999998) texture = SubResource("AtlasTexture_auqeq") centered = false offset = Vector2(-5, 0) @@ -1095,8 +1093,8 @@ metadata/_edit_lock_ = true [node name="Left_Hand" type="Sprite2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm/HandProjectile/Left_Lower_Arm"] show_behind_parent = true position = Vector2(-0.99983, 12.9978) -rotation = -0.115002 -scale = Vector2(0.999657, 0.999657) +rotation = -0.00431598 +scale = Vector2(0.999658, 0.999658) texture = SubResource("AtlasTexture_vlvtp") centered = false offset = Vector2(-4, -1) @@ -1112,7 +1110,7 @@ _observedEntity = NodePath("../../../../../../../..") [node name="LeftLowerArm" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm"] position = Vector2(-2, 14) -scale = Vector2(0.999826, 0.999826) +scale = Vector2(0.999828, 0.999828) rest = Transform2D(1, 0, 0, 1, -2, 14) editor_settings/show_bone_gizmo = false @@ -1168,7 +1166,6 @@ entity = NodePath("..") [node name="Mover" type="Node" parent="."] script = ExtResource("4_u5syx") _speed = SubResource("Resource_ckb7n") -_speedControlMult = 2.34115 [node name="HitPlayer" type="Node" parent="."] script = ExtResource("12_he8da") diff --git a/scripts/level/LevelRunner.cs b/scripts/level/LevelRunner.cs index 814276a..639cc13 100644 --- a/scripts/level/LevelRunner.cs +++ b/scripts/level/LevelRunner.cs @@ -95,13 +95,16 @@ public partial class LevelRunner : Node zom.HPChangedMixed -= OnHPChanged; } } + waveHealthMax = 0; + waveHealth = waveHealthMax; zombies.Clear(); } public void AddZombie(RuntimeZombieData zombie) { zombies.Add(zombie); - waveHealthMax += zombie.MaxHP; + waveHealthMax += zombie.GetMaxHPMixed(); + waveHealth = waveHealthMax; zombie.HPChangedMixed += OnHPChanged; } } diff --git a/scripts/zombies/RuntimeZombieData.cs b/scripts/zombies/RuntimeZombieData.cs index 61efcd7..1f22560 100644 --- a/scripts/zombies/RuntimeZombieData.cs +++ b/scripts/zombies/RuntimeZombieData.cs @@ -55,7 +55,13 @@ public partial class RuntimeZombieData : Entity } public void HPChangedMixedInvoker(float delta) { - EmitSignal(SignalName.HPChangedMixed, delta); + EmitSignal(SignalName.HPChangedMixed, -delta); + } + public float GetMaxHPMixed() + { + if (_armor != null) + return MaxHP + _armor.MaxHP; + return MaxHP; } #region Death sequence private bool _killed = false; @@ -67,5 +73,6 @@ public partial class RuntimeZombieData : Entity EmitSignal(SignalName.HasBeenKilled,this); } + #endregion }