Zombie death and damage indicators

This commit is contained in:
Rendo 2025-07-12 00:15:17 +05:00
commit b524f97e7f
14 changed files with 324 additions and 117 deletions

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=60 format=3 uid="uid://co11v3w8hbwgf"]
[gd_scene load_steps=65 format=3 uid="uid://co11v3w8hbwgf"]
[ext_resource type="Script" uid="uid://dildme6epx8l4" path="res://scripts/zombies/RuntimeZombieData.cs" id="1_qq3f1"]
[ext_resource type="AudioStream" uid="uid://dt13iugnnx4op" path="res://assets/audio/sfx/yuck_generic.tres" id="2_hh4qh"]
@ -9,7 +9,9 @@
[ext_resource type="Script" uid="uid://7hdj2k14lfe4" path="res://scripts/zombies/ZombieMover.cs" id="4_u5syx"]
[ext_resource type="Texture2D" uid="uid://dacgbwohpmeed" path="res://assets/sprites/zombies/basic.png" id="6_xnora"]
[ext_resource type="Script" uid="uid://c3cfnrmnnuqms" path="res://addons/floatmodifiers/FloatModifiers.cs" id="7_b3p4o"]
[ext_resource type="Script" uid="uid://dt5uj25u0g6y3" path="res://scripts/particles/FallParticle.cs" id="7_dn8ha"]
[ext_resource type="AnimationNodeStateMachine" uid="uid://dj0blope85bg7" path="res://resources/animations/zombies/basic_zombie_tree.tres" id="8_ckb7n"]
[ext_resource type="Script" uid="uid://dau0tfmlfiqmo" path="res://scripts/EntityHPObserver.cs" id="8_mc1kl"]
[ext_resource type="Script" uid="uid://c36bj8u7jghc7" path="res://scripts/audio/ChannelPlayer.cs" id="10_ruqsf"]
[ext_resource type="Script" uid="uid://dwlwi42smgxkb" path="res://scripts/TimeScalableAnimationTree.cs" id="11_ccrjo"]
[ext_resource type="AudioStream" uid="uid://dyid55nhflwyn" path="res://assets/audio/sfx/chomp_generic.tres" id="11_vjrlo"]
@ -20,6 +22,7 @@
[ext_resource type="Resource" uid="uid://dsg1vjx76ifgu" path="res://resources/effects/GarlicEffect.tres" id="18_2q05d"]
[ext_resource type="Resource" uid="uid://7uj0oe656jfx" path="res://resources/effects/SnowSlow.tres" id="19_ccrjo"]
[ext_resource type="Script" uid="uid://c1x4n4nqyq72f" path="res://scripts/audio/ChannelSettings.cs" id="21_xnora"]
[ext_resource type="Script" uid="uid://dk32ln8c2574d" path="res://scripts/ZombieKillHandler.cs" id="23_mc1kl"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_63ls2"]
resource_local_to_scene = true
@ -170,10 +173,6 @@ region = Rect2(72, 2, 13, 26)
atlas = ExtResource("6_xnora")
region = Rect2(36, 0, 32, 29)
[sub_resource type="AtlasTexture" id="AtlasTexture_x5uj2"]
atlas = ExtResource("6_xnora")
region = Rect2(15, 17, 17, 6)
[sub_resource type="AtlasTexture" id="AtlasTexture_vcc72"]
atlas = ExtResource("6_xnora")
region = Rect2(93, 3, 2, 3)
@ -182,17 +181,27 @@ region = Rect2(93, 3, 2, 3)
atlas = ExtResource("6_xnora")
region = Rect2(105, 2, 3, 4)
[sub_resource type="AtlasTexture" id="AtlasTexture_x5uj2"]
atlas = ExtResource("6_xnora")
region = Rect2(15, 17, 17, 6)
[sub_resource type="CircleShape2D" id="CircleShape2D_dn8ha"]
[sub_resource type="AtlasTexture" id="AtlasTexture_djocr"]
atlas = ExtResource("6_xnora")
region = Rect2(2, 7, 6, 19)
[sub_resource type="AtlasTexture" id="AtlasTexture_auqeq"]
atlas = ExtResource("6_xnora")
region = Rect2(0, 32, 9, 15)
[sub_resource type="AtlasTexture" id="AtlasTexture_6y4ja"]
atlas = ExtResource("6_xnora")
region = Rect2(13, 2, 9, 10)
[sub_resource type="AtlasTexture" id="AtlasTexture_auqeq"]
atlas = ExtResource("6_xnora")
region = Rect2(0, 32, 9, 15)
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_ccrjo"]
radius = 3.00026
height = 16.007
[sub_resource type="Animation" id="Animation_x5uj2"]
tracks/0/type = "value"
@ -690,7 +699,7 @@ tracks/40/keys = {
tracks/41/type = "value"
tracks/41/imported = false
tracks/41/enabled = true
tracks/41/path = NodePath("Zombie/Butt/Body/LeftUpperArm/LeftLowerArm/LeftHand/Left_Hand:texture")
tracks/41/path = NodePath("Zombie/Butt/Body/LeftUpperArm/HandProjectile/Left_Lower_Arm/Left_Hand:texture")
tracks/41/interp = 1
tracks/41/loop_wrap = true
tracks/41/keys = {
@ -702,7 +711,7 @@ tracks/41/keys = {
tracks/42/type = "value"
tracks/42/imported = false
tracks/42/enabled = true
tracks/42/path = NodePath("Zombie/Butt/Body/LeftUpperArm/LeftLowerArm/LeftHand/Left_Hand:offset")
tracks/42/path = NodePath("Zombie/Butt/Body/LeftUpperArm/HandProjectile/Left_Lower_Arm/Left_Hand:offset")
tracks/42/interp = 1
tracks/42/loop_wrap = true
tracks/42/keys = {
@ -1190,7 +1199,7 @@ tracks/37/keys = {
tracks/38/type = "value"
tracks/38/imported = false
tracks/38/enabled = true
tracks/38/path = NodePath("Zombie/Butt/Body/LeftUpperArm/LeftLowerArm/LeftHand/Left_Hand:texture")
tracks/38/path = NodePath("Zombie/Butt/Body/LeftUpperArm/HandProjectile/Left_Lower_Arm/Left_Hand:texture")
tracks/38/interp = 1
tracks/38/loop_wrap = true
tracks/38/keys = {
@ -1202,7 +1211,7 @@ tracks/38/keys = {
tracks/39/type = "value"
tracks/39/imported = false
tracks/39/enabled = true
tracks/39/path = NodePath("Zombie/Butt/Body/LeftUpperArm/LeftLowerArm/LeftHand/Left_Hand:offset")
tracks/39/path = NodePath("Zombie/Butt/Body/LeftUpperArm/HandProjectile/Left_Lower_Arm/Left_Hand:offset")
tracks/39/interp = 1
tracks/39/loop_wrap = true
tracks/39/keys = {
@ -2701,7 +2710,7 @@ size = Vector2(16, 48)
[sub_resource type="AnimationNodeTimeScale" id="AnimationNodeTimeScale_2q05d"]
[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_ccrjo"]
graph_offset = Vector2(-240, 63)
graph_offset = Vector2(-427, 26)
nodes/TimeScale/node = SubResource("AnimationNodeTimeScale_2q05d")
nodes/TimeScale/position = Vector2(60, 120)
nodes/Tree/node = ExtResource("8_ckb7n")
@ -2728,6 +2737,7 @@ freezeSound = ExtResource("3_ltj46")
MaxHP = 70.0
_player = NodePath("CanvasGroup/basic_zombie_walk/AnimationPlayer")
_tree = NodePath("AnimationTree")
metadata/_edit_vertical_guides_ = [-159.0]
[node name="CanvasGroup" type="CanvasGroup" parent="."]
material = SubResource("ShaderMaterial_63ls2")
@ -2740,7 +2750,7 @@ modification_stack = SubResource("SkeletonModificationStack2D_wn68q")
[node name="Butt" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie"]
position = Vector2(5, -35)
scale = Vector2(0.999909, 0.999909)
scale = Vector2(0.999904, 0.999904)
rest = Transform2D(1, 0, 0, 1, 5, -35)
editor_settings/show_bone_gizmo = false
@ -2764,13 +2774,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.999835, 0.999835)
scale = Vector2(0.999841, 0.999841)
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.999833, 0.999833)
scale = Vector2(0.999831, 0.999831)
rest = Transform2D(1, 0, 0, 1, -2, 14)
auto_calculate_length_and_angle = false
length = 12.0
@ -2792,7 +2802,7 @@ metadata/_edit_lock_ = true
[node name="LeftUpperLeg" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt"]
position = Vector2(6, 4)
scale = Vector2(0.999833, 0.999833)
scale = Vector2(0.999836, 0.999836)
rest = Transform2D(1, 0, 0, 1, 6, 4)
editor_settings/show_bone_gizmo = false
@ -2804,7 +2814,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.999832, 0.999832)
scale = Vector2(0.999834, 0.999834)
rest = Transform2D(1, 0, 0, 1, -1, 13)
editor_settings/show_bone_gizmo = false
@ -2816,7 +2826,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.999834, 0.999834)
scale = Vector2(0.999832, 0.999832)
rest = Transform2D(1, 0, 0, 1, 6, 10)
auto_calculate_length_and_angle = false
length = 12.0
@ -2831,14 +2841,14 @@ metadata/_edit_lock_ = true
[node name="Body" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt"]
position = Vector2(1, -2)
scale = Vector2(0.999834, 0.999834)
scale = Vector2(0.999832, 0.999832)
rest = Transform2D(1, 0, 0, 1, 1, -2)
editor_settings/show_bone_gizmo = false
[node name="RightUpperArm" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body"]
z_index = -1
position = Vector2(-14, -23)
scale = Vector2(0.999829, 0.999829)
scale = Vector2(0.999828, 0.999828)
rest = Transform2D(1, 0, 0, 1, -14, -23)
editor_settings/show_bone_gizmo = false
@ -2850,13 +2860,13 @@ metadata/_edit_lock_ = true
[node name="RightLowerArm" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/RightUpperArm"]
position = Vector2(-2, 15)
scale = Vector2(0.999827, 0.999827)
scale = Vector2(0.99983, 0.99983)
rest = Transform2D(1, 0, 0, 1, -2, 15)
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.999829, 0.999829)
scale = Vector2(0.99983, 0.99983)
rest = Transform2D(1, 0, 0, 1, -1, 13)
auto_calculate_length_and_angle = false
length = 8.0
@ -2884,7 +2894,7 @@ metadata/_edit_lock_ = true
[node name="Tie" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body"]
position = Vector2(-9, -21)
skew = -0.0001266
skew = -0.000184774
rest = Transform2D(1, 0, 0, 1, -9, -21)
auto_calculate_length_and_angle = false
length = 24.0
@ -2899,30 +2909,69 @@ metadata/_edit_lock_ = true
[node name="Head" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body"]
position = Vector2(-10, -25)
scale = Vector2(0.999826, 0.999826)
scale = Vector2(0.999829, 0.999829)
rest = Transform2D(1, 0, 0, 1, -10, -25)
editor_settings/show_bone_gizmo = false
[node name="Head" type="Sprite2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head"]
[node name="HeadParticle" type="RigidBody2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head" node_paths=PackedStringArray("data")]
collision_layer = 128
collision_mask = 64
freeze = true
script = ExtResource("7_dn8ha")
data = NodePath("../../../../../../..")
maxAngle = 45.0
minTorque = -45.0
maxTorque = 45.0
Impulse = 100.0
[node name="Head" type="Sprite2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head/HeadParticle"]
texture = SubResource("AtlasTexture_wn68q")
centered = false
offset = Vector2(-20, -24)
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)
texture = SubResource("AtlasTexture_vcc72")
centered = false
offset = Vector2(-2, -2)
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)
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(-3, 3)
scale = Vector2(0.999827, 0.999827)
texture = SubResource("AtlasTexture_x5uj2")
centered = false
offset = Vector2(-12, -2)
metadata/_edit_lock_ = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head/HeadParticle"]
position = Vector2(-4.58496, -8.21035)
shape = SubResource("CircleShape2D_dn8ha")
[node name="Observer" type="Node" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head/HeadParticle" node_paths=PackedStringArray("_observedEntity")]
script = ExtResource("8_mc1kl")
_threshold = 0.0
_observedEntity = NodePath("../../../../../../../..")
[node name="Jaw" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head"]
position = Vector2(-3, 3)
scale = Vector2(0.99983, 0.99983)
scale = Vector2(0.999827, 0.999827)
rest = Transform2D(1, 0, 0, 1, -3, 3)
auto_calculate_length_and_angle = false
length = 11.0
bone_angle = 180.0
editor_settings/show_bone_gizmo = false
[node name="Jaw" type="Sprite2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head/Jaw"]
texture = SubResource("AtlasTexture_x5uj2")
centered = false
offset = Vector2(-12, -2)
metadata/_edit_lock_ = true
[node name="RemoteTransform2D" type="RemoteTransform2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head/Jaw"]
remote_path = NodePath("../../HeadParticle/Head/Jaw")
[node name="RightEye" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head"]
position = Vector2(-16, -8)
@ -2932,11 +2981,8 @@ length = 2.0
bone_angle = 180.0
editor_settings/show_bone_gizmo = false
[node name="Right_Eye" type="Sprite2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head/RightEye"]
texture = SubResource("AtlasTexture_vcc72")
centered = false
offset = Vector2(-2, -2)
metadata/_edit_lock_ = true
[node name="RemoteTransform2D" type="RemoteTransform2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head/RightEye"]
remote_path = NodePath("../../HeadParticle/Head/Right_Eye")
[node name="LeftEye" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head"]
position = Vector2(-4, -9)
@ -2946,15 +2992,12 @@ length = 2.0
bone_angle = 180.0
editor_settings/show_bone_gizmo = false
[node name="Left_Eye" type="Sprite2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head/LeftEye"]
texture = SubResource("AtlasTexture_kto0i")
centered = false
offset = Vector2(-2, -2)
metadata/_edit_lock_ = true
[node name="RemoteTransform2D" type="RemoteTransform2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head/LeftEye"]
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.999828, 0.999828)
scale = Vector2(0.999824, 0.999824)
rest = Transform2D(1, 0, 0, 1, -1, -20)
editor_settings/show_bone_gizmo = false
@ -2965,32 +3008,63 @@ centered = false
offset = Vector2(33, -12)
metadata/_edit_lock_ = true
[node name="HandProjectile" type="RigidBody2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm" node_paths=PackedStringArray("data")]
position = Vector2(-2, 14)
collision_layer = 128
collision_mask = 64
freeze = true
script = ExtResource("7_dn8ha")
data = NodePath("../../../../../../..")
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.396612
scale = Vector2(0.999999, 0.999999)
texture = SubResource("AtlasTexture_auqeq")
centered = false
offset = Vector2(-5, 0)
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.999832, 12.9978)
rotation = 0.28535
scale = Vector2(0.999658, 0.999658)
texture = SubResource("AtlasTexture_6y4ja")
centered = false
offset = Vector2(-4, -1)
metadata/_edit_lock_ = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm/HandProjectile"]
position = Vector2(-0.00104554, 13.0063)
shape = SubResource("CapsuleShape2D_ccrjo")
[node name="Observer" type="Node" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm/HandProjectile" node_paths=PackedStringArray("_observedEntity")]
script = ExtResource("8_mc1kl")
_observedEntity = NodePath("../../../../../../../..")
[node name="LeftLowerArm" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm"]
position = Vector2(-2, 14)
scale = Vector2(0.999825, 0.999825)
scale = Vector2(0.999829, 0.999829)
rest = Transform2D(1, 0, 0, 1, -2, 14)
editor_settings/show_bone_gizmo = false
[node name="LeftHand" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm/LeftLowerArm"]
position = Vector2(-1, 13)
scale = Vector2(0.999824, 0.999824)
scale = Vector2(0.999828, 0.999828)
rest = Transform2D(1, 0, 0, 1, -1, 13)
auto_calculate_length_and_angle = false
length = 6.0
bone_angle = 90.0
editor_settings/show_bone_gizmo = false
[node name="Left_Hand" type="Sprite2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm/LeftLowerArm/LeftHand"]
texture = SubResource("AtlasTexture_6y4ja")
centered = false
offset = Vector2(-4, -1)
metadata/_edit_lock_ = true
[node name="Left_Hand_Remote" type="RemoteTransform2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm/LeftLowerArm/LeftHand"]
remote_path = NodePath("../../../HandProjectile/Left_Lower_Arm/Left_Hand")
[node name="Left_Lower_Arm" type="Sprite2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm/LeftLowerArm"]
texture = SubResource("AtlasTexture_auqeq")
centered = false
offset = Vector2(-5, 0)
metadata/_edit_lock_ = true
[node name="Left_Lower_Arm_Remote" type="RemoteTransform2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm/LeftLowerArm"]
scale = Vector2(1.00017, 1.00017)
remote_path = NodePath("../../HandProjectile/Left_Lower_Arm")
[node name="AnimationPlayer" type="AnimationPlayer" parent="CanvasGroup/basic_zombie_walk"]
libraries = {
@ -3060,8 +3134,21 @@ effectsToMap = Array[Resource]([ExtResource("18_2q05d"), ExtResource("19_ccrjo")
streamsToMapTo = Array[AudioStream]([ExtResource("2_hh4qh"), ExtResource("3_ltj46")])
streamSettings = Array[Object]([null, SubResource("Resource_dn8ha")])
[node name="DeathHandler" type="Node" parent="." node_paths=PackedStringArray("_tree", "_collider")]
script = ExtResource("23_mc1kl")
_tree = NodePath("../AnimationTree")
_collider = NodePath("../Hitbox/CollisionShape2D")
[connection signal="HasBeenKilled" from="." to="DeathHandler" method="OnKilled"]
[connection signal="OnDamaged" from="." to="HitPlayer" method="Play"]
[connection signal="OnHPChanged" from="." to="CanvasGroup" method="DamageFlash"]
[connection signal="ThresholdReached" from="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head/HeadParticle/Observer" to="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head/HeadParticle" method="FallOff"]
[connection signal="ThresholdReached" from="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head/HeadParticle/Observer" to="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head/Jaw/RemoteTransform2D" method="queue_free"]
[connection signal="ThresholdReached" from="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head/HeadParticle/Observer" to="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head/RightEye/RemoteTransform2D" method="queue_free"]
[connection signal="ThresholdReached" from="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head/HeadParticle/Observer" to="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head/LeftEye/RemoteTransform2D" method="queue_free"]
[connection signal="ThresholdReached" from="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm/HandProjectile/Observer" to="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm/HandProjectile" method="FallOff"]
[connection signal="ThresholdReached" from="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm/HandProjectile/Observer" to="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm/LeftLowerArm/LeftHand/Left_Hand_Remote" method="queue_free"]
[connection signal="ThresholdReached" from="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm/HandProjectile/Observer" to="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm/LeftLowerArm/Left_Lower_Arm_Remote" method="queue_free"]
[connection signal="area_entered" from="Eatbox" to="Eatbox" method="OnAreaEntered"]
[connection signal="area_exited" from="Eatbox" to="Eatbox" method="OnAreaExited"]
[connection signal="timeout" from="GroanPlayer/Timer" to="GroanPlayer" method="Play"]