From 6c0730e1c9ba3bc03084b3cd1676167c7c947b94 Mon Sep 17 00:00:00 2001 From: Rendo Date: Fri, 11 Jul 2025 03:27:24 +0500 Subject: [PATCH] zombie animation impl --- .../animations/zombies/basic_zombie_anim.res | Bin 0 -> 12740 bytes .../zombies/basic_zombie_eating.res | Bin 7031 -> 7028 bytes .../animations/zombies/basic_zombie_tree.tres | 26 +- .../animations/zombies/basic_zombie_walk.res | Bin 9106 -> 9093 bytes scenes/entities/Zombies/bucket_zombie.tscn | 65 +- scenes/entities/Zombies/cone_zombie.tscn | 75 +- scenes/entities/Zombies/hobo.tscn | 190 +- scenes/entities/Zombies/zombie.tscn | 2981 ++++++++++++++++- scenes/prototype_survival.tscn | 1 - scenes/templates/plant_template.tscn | 4 +- scripts/components/Entity.cs | 10 +- translations/plants.csv | 36 +- translations/plants.en.translation | Bin 1205 -> 3102 bytes translations/plants.ru.translation | Bin 4209 -> 4221 bytes 14 files changed, 3173 insertions(+), 215 deletions(-) create mode 100644 resources/animations/zombies/basic_zombie_anim.res diff --git a/resources/animations/zombies/basic_zombie_anim.res b/resources/animations/zombies/basic_zombie_anim.res new file mode 100644 index 0000000000000000000000000000000000000000..8ce4df9b2998f69afab3bb27682fb1a70fed092c GIT binary patch literal 12740 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 I`2UUn08Ee>$7f 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 DV?X*# diff --git a/resources/animations/zombies/basic_zombie_tree.tres b/resources/animations/zombies/basic_zombie_tree.tres index c8c07ab..26e010d 100644 --- a/resources/animations/zombies/basic_zombie_tree.tres +++ b/resources/animations/zombies/basic_zombie_tree.tres @@ -1,29 +1,41 @@ -[gd_resource type="AnimationNodeStateMachine" load_steps=9 format=3 uid="uid://dj0blope85bg7"] +[gd_resource type="AnimationNodeStateMachine" load_steps=10 format=3 uid="uid://dj0blope85bg7"] [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_h0rfo"] -animation = &"basic_zombie/eat" +animation = &"basic_zombie_eating" [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_nog33"] -animation = &"basic_zombie/idle" +animation = &"basic_zombie_stand" [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_g2uel"] -animation = &"basic_zombie/walk" +animation = &"basic_zombie_walk" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_w2cv7"] +animation = &"dead_lmao" [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_vxhht"] advance_mode = 2 [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_r8rju"] +xfade_time = 0.5 +break_loop_at_end = true +switch_mode = 2 advance_mode = 2 +advance_expression = "can_process()" [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_y2ivb"] +xfade_time = 0.5 +break_loop_at_end = true +switch_mode = 2 advance_mode = 2 -advance_expression = "get(\"isEating\") == true" +advance_expression = "get(\"isEating\") == true and can_process()" [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_7d3k4"] +xfade_time = 0.5 advance_mode = 2 advance_expression = "get(\"isEating\") == true" [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_kk4wi"] +xfade_time = 0.5 advance_mode = 2 advance_expression = "get(\"isEating\") == false" @@ -35,5 +47,7 @@ states/basic_zombie_idle/node = SubResource("AnimationNodeAnimation_nog33") states/basic_zombie_idle/position = Vector2(366, 100) states/basic_zombie_walk/node = SubResource("AnimationNodeAnimation_g2uel") states/basic_zombie_walk/position = Vector2(575, 35) +states/dead_lmao/node = SubResource("AnimationNodeAnimation_w2cv7") +states/dead_lmao/position = Vector2(778, 100) transitions = ["Start", "basic_zombie_idle", SubResource("AnimationNodeStateMachineTransition_vxhht"), "basic_zombie_idle", "basic_zombie_walk", SubResource("AnimationNodeStateMachineTransition_r8rju"), "basic_zombie_idle", "basic_zombie_eat", SubResource("AnimationNodeStateMachineTransition_y2ivb"), "basic_zombie_walk", "basic_zombie_eat", SubResource("AnimationNodeStateMachineTransition_7d3k4"), "basic_zombie_eat", "basic_zombie_walk", SubResource("AnimationNodeStateMachineTransition_kk4wi")] -graph_offset = Vector2(13, 26) +graph_offset = Vector2(-7, -20) diff --git a/resources/animations/zombies/basic_zombie_walk.res b/resources/animations/zombies/basic_zombie_walk.res index ab83137badc08d963cfd6dd2140c71a90bdafc1f..7bf6d2e5c1bef9850b9efe6efd9fef3664321ac7 100644 GIT binary patch delta 2136 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 OKUaPR9t;;!Q$s_8WA9}E delta 2150 zcmV-s2$}bVN0LVkQd2`i0ssI201yBGC6Nsm86E=w044(f07?S@01*QK0Ph0;0Eq+u z0Q#{#M-2w07y!l^Xp@Q!L4P)Fx>k0RDMA2K09yd(kNOkHVleY`)=-tf+m~yL^8uIb z_gC=truC+`HUqG%2R~I)wuAfoa(d!uX3x*^hvd5b9h};3sEVdGlSlne0YpulkfJD# zRA#eKLY z!fH1lR}4)}*pFbrTbIomYEwP<$#p=^ER$^xAQ4$szweZlkgtadQVoKjECv&ko(?E~ zMKVZ4hV*zsj$o{{L4fQCgt{L-dMK#^rhGBEC?Jm=I<8Ss4jeV_TW{DPx;1DF3GI%M zj8`NST`*{djFuQMUby(n^~>Mdf<+6MTcHAIDFUzMyE>(m%ri+aNhyAO!XBI&fb*#F zxHB~cDODN+Km!p;+Z+<$f)tH045kQw6@dZ@B&d=|d6lF(=6PRlPGk4{MZs6Tp8WP} zXa~rixT;cLHYsh_FK_z%uVHy{yn8w?F@ON&H`6*hY~MO{fb96?>|=SWAjbu~YH?_3 zh&9<7NvTjk#;7SJ1STQwrs88*{DPoereNa*NE?Ng+XC`w1Nh@m9w6rf{C&lLUX-Bd z;>j&}C~kW`3#zjf>l+MCnYzgdLIJO@e|-_!k8Mcz)H)JI9Zx=4>TT`pIyO#v*jQXG z-G=EalMBGM-k4^@Bzmp=g0VpJtbNYbNV2iLNbCJ-51R|mVXsl<_Dp0;7FCpqasy

Z!#r z6AmL3pmjQ)^}Y{Bn$V+zAPQ>#J=q#>WR^v`ceMW4ZP0VZ#%FH+5W9x$qa$3;RiO#; zsUo}zvzich4S)S30M_J)OVI9EV~FyO9$;(0y>Y;A`9KJ7MW-HtVtfdb;v9T{fNEV6mMfF32WSIFn`xe7b%k)bcBg38>0U!W)cVcV}1ZvbilZ~z$pLH-B* zmmSxtXUd)*aA?Y&Y=%^bMT<@$o}pANSt%9=%0!E7h=0x;+lk^3p&f8&>hs^bx~A>f zuIztQXl~r5o;WF@RmU{LgFtO+YKHiK`Vd>P=w=_L0%Z-G04jf!b$nEk|NAfNSOiJ_?+f51|2=Bl{j+;l)-GyD zs-MjLe=bk8(eh5=$^$cwLE`^-+_&;p^{{F%QQNAvbUNQtIumc823e3Qh*9?IHCM}tOl9o&i%*z&h2ZOBtvCXKoTy=O zBr^p`Y7KKC2E-tytUM9`v>cg|MiL>aoTN!%*bP!3`E`|D*r$8p?b2bzB=fTc;A_}) z{~i(CPv^(CO}=zIfxN3)UxL!U9UEvvsDGTE^``B&n3B5U6)D__XrwJ@hQ7h z7uKe`A2Kj-CNS`LP)6%@d!}>1^Zoe!94#bHl#Y!>!~0l+e#8EcImBA%?)COUdhMU- zQ*U0&i^vbCPceRPgOOHxB*6F{;gz7wewCigl>CJ?uD&VSU7sE0%;)XJw59(hYk$@K z`Kr$U`)Z;OYx&y$!y)p(AFoJ}ovz;yOW|&#p6W&4)~5gDho`1EeTC?Jb&YLJDGu~G zubPTvrbX5{=4 zXr@80XM^QD@rwhfhkJsKdoGhxLVpj53Gku=%xVd1uJDw-Cigp*G2f2tHr0065qS)c zv9&Y&7M&CN-$V~%zu|w$;15qyLS6v;O`4rEI&e1N8;$>2!XLcpeM<5cmUCHT)#BlW z#-{US-lX2Eyh@#zquqNE@Otcq+=}OuvC5`xTu+tDumlEh@r4B}q0xzjN{VeCB9mb4O`K}vk@3@9H7IBCj(ge z#1=g?;8|=os!h<6i1~s^>3@88?TkcXs;kg(swlND{a_^lg$DqF%OfjrPnrY#|NsC0 z|NsC0|I_$1v)Y$?BQ1~}n6CGvPll*8e)rU0|BVnVB`F@956&;QXfApytc5*oNv}nU zrF51QLF@|;ABwb86oXug_%r~e#^N5;n#(-7a5P~X(4$e&aff%_z<+Rw1+mGXP$)^j zV0_@<>IMZTIl)J+d1jiX=@&;h5p#iyJm4YU9ONz_5CaLQ<^eMXc+r`DEYMIgcO*|3 z$Z_hfH~K{%x-lC`nHH9B#&qI-ABmMW(FOu`XY&#@456Qo^8KcX< c`PR&4;aLwv0R*r;p9@_19hd<-0a8;#LtF0`-2eap diff --git a/scenes/entities/Zombies/bucket_zombie.tscn b/scenes/entities/Zombies/bucket_zombie.tscn index a0a21f2..66a8c37 100644 --- a/scenes/entities/Zombies/bucket_zombie.tscn +++ b/scenes/entities/Zombies/bucket_zombie.tscn @@ -34,23 +34,70 @@ mult_value = 1.0 [node name="CanvasGroup" parent="." index="0"] material = SubResource("ShaderMaterial_wdi07") -[node name="Hat" parent="CanvasGroup" index="1"] -position = Vector2(-13, -82) +[node name="Butt" parent="CanvasGroup/basic_zombie_walk/Zombie" index="0"] +scale = Vector2(0.999912, 0.999912) -[node name="Sprite" parent="CanvasGroup/Hat" index="0"] -position = Vector2(1, 0) +[node name="RightUpperLeg" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt" index="1"] +scale = Vector2(0.999828, 0.999828) + +[node name="RightLowerLeg" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/RightUpperLeg" index="1"] +scale = Vector2(0.999833, 0.999833) + +[node name="RightFoot" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/RightUpperLeg/RightLowerLeg" index="0"] +scale = Vector2(0.999831, 0.999831) + +[node name="LeftUpperLeg" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt" index="2"] +scale = Vector2(0.999834, 0.999834) + +[node name="LeftLowerLeg" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/LeftUpperLeg" index="1"] +scale = Vector2(0.999832, 0.999832) + +[node name="LeftFoot" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/LeftUpperLeg/LeftLowerLeg" index="1"] +scale = Vector2(0.999823, 0.999823) + +[node name="Body" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt" index="3"] +scale = Vector2(0.999829, 0.999829) + +[node name="RightUpperArm" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body" index="0"] +scale = Vector2(0.999824, 0.999824) + +[node name="RightLowerArm" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/RightUpperArm" index="1"] +scale = Vector2(0.999821, 0.999821) + +[node name="RightHand" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/RightUpperArm/RightLowerArm" index="0"] +scale = Vector2(0.999828, 0.999828) + +[node name="Head" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body" index="3"] +scale = Vector2(0.999828, 0.999828) + +[node name="Hat" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head/Head" index="0"] +position = Vector2(-4.00424, -6.00927) + +[node name="Sprite" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head/Head/Hat" index="0"] texture = ExtResource("3_0nlp0") degradationStages = Array[Texture]([ExtResource("3_0nlp0"), ExtResource("4_xx7fu"), ExtResource("5_v1iwd")]) +[node name="Jaw" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head" index="1"] +scale = Vector2(0.999828, 0.999828) + +[node name="LeftUpperArm" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body" index="4"] +scale = Vector2(0.999826, 0.999826) + +[node name="LeftLowerArm" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm" index="1"] +scale = Vector2(0.999829, 0.999829) + +[node name="LeftHand" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm/LeftLowerArm" index="0"] +scale = Vector2(0.999828, 0.999828) + [node name="Eatbox" parent="." index="2"] _damage = SubResource("Resource_2bm8y") -[node name="Mover" parent="." index="5"] +[node name="Mover" parent="." index="4"] _speed = SubResource("Resource_lt6ps") -[node name="Armor" parent="." index="7"] -MaxHP = 385 - -[node name="HitPlayer" parent="." index="8"] +[node name="HitPlayer" parent="." index="6"] playlist = Array[AudioStream]([ExtResource("5_lt6ps"), ExtResource("6_kedip")]) channels = Array[String](["metal_hit", "hit"]) + +[node name="Armor" parent="." index="7"] +MaxHP = 375.0 diff --git a/scenes/entities/Zombies/cone_zombie.tscn b/scenes/entities/Zombies/cone_zombie.tscn index ed27754..118f53e 100644 --- a/scenes/entities/Zombies/cone_zombie.tscn +++ b/scenes/entities/Zombies/cone_zombie.tscn @@ -40,45 +40,94 @@ _armor = NodePath("Armor") [node name="CanvasGroup" parent="." index="0"] material = SubResource("ShaderMaterial_sat5k") -[node name="Hat" type="RigidBody2D" parent="CanvasGroup" index="1" node_paths=PackedStringArray("data")] -position = Vector2(-9, -76) +[node name="RightUpperLeg" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt" index="1"] +scale = Vector2(0.999834, 0.999834) + +[node name="RightLowerLeg" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/RightUpperLeg" index="1"] +scale = Vector2(0.999838, 0.999838) + +[node name="RightFoot" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/RightUpperLeg/RightLowerLeg" index="0"] +scale = Vector2(0.999833, 0.999833) + +[node name="LeftUpperLeg" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt" index="2"] +scale = Vector2(0.999832, 0.999832) + +[node name="LeftLowerLeg" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/LeftUpperLeg" index="1"] +scale = Vector2(0.999833, 0.999833) + +[node name="LeftFoot" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/LeftUpperLeg/LeftLowerLeg" index="1"] +scale = Vector2(0.999828, 0.999828) + +[node name="Body" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt" index="3"] +scale = Vector2(0.999828, 0.999828) + +[node name="RightUpperArm" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body" index="0"] +scale = Vector2(0.999828, 0.999828) + +[node name="RightLowerArm" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/RightUpperArm" index="1"] +scale = Vector2(0.99983, 0.99983) + +[node name="RightHand" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/RightUpperArm/RightLowerArm" index="0"] +scale = Vector2(0.999829, 0.999829) + +[node name="Tie" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body" index="2"] +skew = -8.49962e-05 + +[node name="Head" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body" index="3"] +scale = Vector2(0.999828, 0.999828) + +[node name="Hat" type="RigidBody2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head/Head" index="0" node_paths=PackedStringArray("data")] +position = Vector2(-2.5, -13.5) +scale = Vector2(1.00043, 1.00043) collision_layer = 128 collision_mask = 64 mass = 0.5 center_of_mass_mode = 1 freeze = true script = ExtResource("3_w70im") -data = NodePath("../..") +data = NodePath("../../../../../../../..") maxAngle = 45.0 minTorque = -45.0 maxTorque = 45.0 Impulse = 100.0 -[node name="Sprite" type="Sprite2D" parent="CanvasGroup/Hat" index="0" node_paths=PackedStringArray("armor")] +[node name="Sprite" type="Sprite2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head/Head/Hat" index="0" node_paths=PackedStringArray("armor")] position = Vector2(-1, -12) texture = ExtResource("4_qdhik") script = ExtResource("5_ickyd") -armor = NodePath("../../../Armor") +armor = NodePath("../../../../../../../../../Armor") degradationStages = Array[Texture]([ExtResource("4_qdhik"), ExtResource("6_b6mal"), ExtResource("7_011r0")]) thresholdPercentage = Array[float]([1.0, 0.667, 0.333]) -[node name="CollisionShape2D" type="CollisionShape2D" parent="CanvasGroup/Hat" index="1"] +[node name="CollisionShape2D" type="CollisionShape2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head/Head/Hat" index="1"] position = Vector2(1, -6) shape = SubResource("CircleShape2D_67t4t") +[node name="Jaw" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head" index="1"] +scale = Vector2(0.999828, 0.999828) + +[node name="LeftUpperArm" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body" index="4"] +scale = Vector2(0.99983, 0.99983) + +[node name="LeftLowerArm" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm" index="1"] +scale = Vector2(0.999828, 0.999828) + +[node name="LeftHand" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm/LeftLowerArm" index="0"] +scale = Vector2(0.999829, 0.999829) + [node name="Eatbox" parent="." index="2"] _damage = SubResource("Resource_w70im") -[node name="Mover" parent="." index="5"] +[node name="Mover" parent="." index="4"] _speed = SubResource("Resource_qof5v") -[node name="Armor" type="Node" parent="." index="7"] -script = ExtResource("3_5s7in") -MaxHP = 130 - -[node name="HitPlayer" parent="." index="8"] +[node name="HitPlayer" parent="." index="6"] playlist = Array[AudioStream]([ExtResource("7_0amn8"), ExtResource("7_67t4t")]) channels = Array[String](["plastic_hit", "hit"]) +[node name="Armor" type="Node" parent="." index="7"] +script = ExtResource("3_5s7in") +MaxHP = 135.0 + [connection signal="ArmorLost" from="Armor" to="HitPlayer" method="Next"] -[connection signal="ArmorLost" from="Armor" to="CanvasGroup/Hat" method="FallOff"] +[connection signal="ArmorLost" from="Armor" to="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head/Head/Hat" method="FallOff"] diff --git a/scenes/entities/Zombies/hobo.tscn b/scenes/entities/Zombies/hobo.tscn index 8751989..e288cef 100644 --- a/scenes/entities/Zombies/hobo.tscn +++ b/scenes/entities/Zombies/hobo.tscn @@ -1,12 +1,10 @@ -[gd_scene load_steps=48 format=3 uid="uid://bgqmwsb6ynm81"] +[gd_scene load_steps=41 format=3 uid="uid://bgqmwsb6ynm81"] [ext_resource type="PackedScene" uid="uid://co11v3w8hbwgf" path="res://scenes/entities/Zombies/zombie.tscn" id="1_fnu7s"] [ext_resource type="Shader" uid="uid://d0eo5uuj222c4" path="res://assets/shaders/CG_color_blender.gdshader" id="2_6qr4h"] -[ext_resource type="Script" uid="uid://bcc7skl7ts6sh" path="res://scripts/systems/effects/Effect.cs" id="2_txjqc"] [ext_resource type="Texture2D" uid="uid://cse1504ao4g8e" path="res://assets/sprites/atlases/zombies/hobo.png" id="3_6qr4h"] [ext_resource type="Resource" uid="uid://dsg1vjx76ifgu" path="res://resources/effects/GarlicEffect.tres" id="3_b583s"] [ext_resource type="Script" uid="uid://dt5uj25u0g6y3" path="res://scripts/components/particles/FallParticle.cs" id="3_tu6af"] -[ext_resource type="AnimationLibrary" uid="uid://cuh2kyb21hmkm" path="res://resources/animations/zombies/basic_zombie.res" id="4_02fim"] [ext_resource type="Script" uid="uid://c5v2og85t7s6j" path="res://scripts/components/zombies/behaviours/HoboBehaviour.cs" id="4_5selg"] [ext_resource type="Script" uid="uid://c3cfnrmnnuqms" path="res://addons/floatmodifiers/FloatModifiers.cs" id="4_c1y3b"] [ext_resource type="Script" uid="uid://fd4im1fmwc5n" path="res://scripts/components/Armor.cs" id="4_w8pya"] @@ -44,130 +42,22 @@ flat_value = 10.0 percentage_value = 0.0 mult_value = 1.0 -[sub_resource type="Animation" id="Animation_qv5y7"] -length = 0.001 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("CanvasGroup/Sprite:self_modulate") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [Color(1, 1, 1, 1)] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath("Mover:_speedControlMult") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [0.0] -} - -[sub_resource type="AnimationLibrary" id="AnimationLibrary_sq25x"] -_data = { -&"RESET": SubResource("Animation_qv5y7") -} - -[sub_resource type="Animation" id="Animation_w8pya"] -length = 2.0 -tracks/0/type = "method" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("Mover") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(1.93333), -"transitions": PackedFloat32Array(1), -"values": [{ -"args": [3.0], -"method": &"SetSpeedMult" -}] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath("CanvasGroup/Sprite:self_modulate") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0, 2), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [Color(1, 1, 1, 1), Color(1, 0, 0, 1)] -} -tracks/2/type = "value" -tracks/2/imported = false -tracks/2/enabled = true -tracks/2/path = NodePath("Mover:_speedControlMult") -tracks/2/interp = 1 -tracks/2/loop_wrap = true -tracks/2/keys = { -"times": PackedFloat32Array(0, 2), -"transitions": PackedFloat32Array(1, 1), -"update": 1, -"values": [0.0, 1.0] -} -tracks/3/type = "method" -tracks/3/imported = false -tracks/3/enabled = true -tracks/3/path = NodePath("RipPlayer") -tracks/3/interp = 1 -tracks/3/loop_wrap = true -tracks/3/keys = { -"times": PackedFloat32Array(1.96667), -"transitions": PackedFloat32Array(1), -"values": [{ -"args": [], -"method": &"Play" -}] -} - -[sub_resource type="Animation" id="Animation_5selg"] -resource_name = "walk" -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("Mover:_speedControlMult") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [1.0] -} - -[sub_resource type="AnimationLibrary" id="AnimationLibrary_5selg"] -_data = { -&"can_destroy": SubResource("Animation_w8pya"), -&"run": SubResource("Animation_5selg") -} - [sub_resource type="AnimationNodeTimeScale" id="AnimationNodeTimeScale_2q05d"] [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_h0rfo"] -animation = &"basic_zombie/eat" +animation = &"basic_zombie_eating" [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_nog33"] -animation = &"basic_zombie/idle" +animation = &"basic_zombie_stand" [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_g2uel"] -animation = &"basic_zombie/walk" +animation = &"basic_zombie_walk" [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_02fim"] animation = &"hobo_zombie/can_destroy" [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_c1y3b"] -animation = &"hobo_zombie/run" +animation = &"basic_zombie_walk" [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_vxhht"] advance_mode = 2 @@ -221,7 +111,7 @@ states/hobo_zombie_can_destroy/position = Vector2(368, 206) states/hobo_zombie_run/node = SubResource("AnimationNodeAnimation_c1y3b") states/hobo_zombie_run/position = Vector2(866, 89) transitions = ["Start", "basic_zombie_idle", SubResource("AnimationNodeStateMachineTransition_vxhht"), "basic_zombie_idle", "basic_zombie_eat", SubResource("AnimationNodeStateMachineTransition_y2ivb"), "basic_zombie_walk", "basic_zombie_eat", SubResource("AnimationNodeStateMachineTransition_7d3k4"), "basic_zombie_idle", "basic_zombie_walk", SubResource("AnimationNodeStateMachineTransition_qg8rq"), "basic_zombie_idle", "hobo_zombie_run", SubResource("AnimationNodeStateMachineTransition_4248q"), "hobo_zombie_run", "basic_zombie_eat", SubResource("AnimationNodeStateMachineTransition_tu6af"), "basic_zombie_eat", "hobo_zombie_run", SubResource("AnimationNodeStateMachineTransition_yalvk"), "hobo_zombie_can_destroy", "basic_zombie_idle", SubResource("AnimationNodeStateMachineTransition_7jlle"), "basic_zombie_eat", "basic_zombie_walk", SubResource("AnimationNodeStateMachineTransition_w1b1s"), "basic_zombie_walk", "hobo_zombie_run", SubResource("AnimationNodeStateMachineTransition_02fim")] -graph_offset = Vector2(210, 91) +graph_offset = Vector2(-30, 35) [sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_txjqc"] graph_offset = Vector2(-447, 53) @@ -241,11 +131,56 @@ mult_value = 1.0 [node name="Hobo" node_paths=PackedStringArray("_armor") instance=ExtResource("1_fnu7s")] _armor = NodePath("CanArmor") MaxHP = 130.0 -_effectImmunities = Array[ExtResource("2_txjqc")]([ExtResource("3_b583s")]) +_effectImmunities = [ExtResource("3_b583s")] [node name="CanvasGroup" parent="." index="0"] material = SubResource("ShaderMaterial_w8pya") +[node name="RightUpperLeg" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt" index="1"] +scale = Vector2(0.999825, 0.999825) + +[node name="RightLowerLeg" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/RightUpperLeg" index="1"] +scale = Vector2(0.999829, 0.999829) + +[node name="RightFoot" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/RightUpperLeg/RightLowerLeg" index="0"] +scale = Vector2(0.999826, 0.999826) + +[node name="LeftUpperLeg" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt" index="2"] +scale = Vector2(0.999829, 0.999829) + +[node name="LeftLowerLeg" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/LeftUpperLeg" index="1"] +scale = Vector2(0.999829, 0.999829) + +[node name="LeftFoot" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/LeftUpperLeg/LeftLowerLeg" index="1"] +scale = Vector2(0.999824, 0.999824) + +[node name="Body" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt" index="3"] +scale = Vector2(0.999829, 0.999829) + +[node name="RightUpperArm" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body" index="0"] +scale = Vector2(0.99983, 0.99983) + +[node name="RightLowerArm" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/RightUpperArm" index="1"] +scale = Vector2(0.99982, 0.99982) + +[node name="RightHand" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/RightUpperArm/RightLowerArm" index="0"] +scale = Vector2(0.99983, 0.99983) + +[node name="Head" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body" index="3"] +scale = Vector2(0.999829, 0.999829) + +[node name="Jaw" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head" index="1"] +scale = Vector2(0.999831, 0.999831) + +[node name="LeftUpperArm" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body" index="4"] +scale = Vector2(0.99983, 0.99983) + +[node name="LeftLowerArm" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm" index="1"] +scale = Vector2(0.999829, 0.999829) + +[node name="LeftHand" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm/LeftLowerArm" index="0"] +scale = Vector2(0.999829, 0.999829) + [node name="Can" type="RigidBody2D" parent="CanvasGroup" index="1" node_paths=PackedStringArray("data")] collision_layer = 128 collision_mask = 64 @@ -277,22 +212,17 @@ shape = SubResource("CapsuleShape2D_4248q") [node name="Eatbox" parent="." index="2"] _damage = SubResource("Resource_qg8rq") -[node name="AnimationPlayer" parent="." index="3"] -libraries = { -&"": SubResource("AnimationLibrary_sq25x"), -&"basic_zombie": ExtResource("4_02fim"), -&"hobo_zombie": SubResource("AnimationLibrary_5selg") -} -autoplay = "baisc_zombie/walk" -speed_scale = 3.0 - -[node name="AnimationTree" parent="." index="4"] +[node name="AnimationTree" parent="." index="3"] tree_root = SubResource("AnimationNodeBlendTree_txjqc") advance_expression_base_node = NodePath("../Behaviour") -[node name="Mover" parent="." index="5"] +[node name="Mover" parent="." index="4"] _speed = SubResource("Resource_4248q") +[node name="HitPlayer" parent="." index="6"] +playlist = Array[AudioStream]([ExtResource("8_4248q"), ExtResource("9_tu6af")]) +channels = Array[String](["metal_hit", "hit"]) + [node name="CanArmor" type="Node" parent="." index="7"] script = ExtResource("4_w8pya") MaxHP = 385.0 @@ -303,10 +233,6 @@ script = ExtResource("4_5selg") _eatBox = NodePath("../Eatbox") _animationTree = NodePath("../AnimationTree") -[node name="HitPlayer" parent="." index="9"] -playlist = Array[AudioStream]([ExtResource("8_4248q"), ExtResource("9_tu6af")]) -channels = Array[String](["metal_hit", "hit"]) - [node name="RipPlayer" type="Node" parent="." index="11"] script = ExtResource("11_7jlle") audioStream = ExtResource("12_w1b1s") diff --git a/scenes/entities/Zombies/zombie.tscn b/scenes/entities/Zombies/zombie.tscn index 60dabed..84b9fac 100644 --- a/scenes/entities/Zombies/zombie.tscn +++ b/scenes/entities/Zombies/zombie.tscn @@ -1,14 +1,13 @@ -[gd_scene load_steps=32 format=3 uid="uid://co11v3w8hbwgf"] +[gd_scene load_steps=60 format=3 uid="uid://co11v3w8hbwgf"] [ext_resource type="Script" uid="uid://dildme6epx8l4" path="res://scripts/components/zombies/RuntimeZombieData.cs" id="1_qq3f1"] -[ext_resource type="Texture2D" uid="uid://bwdqbrnn7ygtr" path="res://assets/sprites/atlases/zombies/Зондби.png" id="2_4pdxh"] [ext_resource type="AudioStream" uid="uid://dt13iugnnx4op" path="res://assets/audio/sfx/yuck_generic.tres" id="2_hh4qh"] [ext_resource type="Shader" uid="uid://d0eo5uuj222c4" path="res://assets/shaders/CG_color_blender.gdshader" id="2_srwwe"] [ext_resource type="Script" uid="uid://dqyony6jxt2p0" path="res://scripts/components/zombies/EatBox.cs" id="3_2aulo"] [ext_resource type="AudioStream" uid="uid://bjotp63arocci" path="res://assets/audio/sfx/frozen.mp3" id="3_ltj46"] [ext_resource type="Script" uid="uid://c5vfccegyy01t" path="res://scripts/components/FlashComponent.cs" id="3_rao3m"] [ext_resource type="Script" uid="uid://7hdj2k14lfe4" path="res://scripts/components/zombies/ZombieMover.cs" id="4_u5syx"] -[ext_resource type="AnimationLibrary" uid="uid://cuh2kyb21hmkm" path="res://resources/animations/zombies/basic_zombie.res" id="6_ckb7n"] +[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="AnimationNodeStateMachine" uid="uid://dj0blope85bg7" path="res://resources/animations/zombies/basic_zombie_tree.tres" id="8_ckb7n"] [ext_resource type="Script" uid="uid://c36bj8u7jghc7" path="res://scripts/audio/ChannelPlayer.cs" id="10_ruqsf"] @@ -28,42 +27,2705 @@ shader = ExtResource("2_srwwe") shader_parameter/blend_color = Color(0.73, 0.73, 0.73, 1) shader_parameter/amount = 0.0 -[sub_resource type="RectangleShape2D" id="RectangleShape2D_hxyad"] -size = Vector2(2, 48) +[sub_resource type="SkeletonModification2DCCDIK" id="SkeletonModification2DCCDIK_wn68q"] +tip_nodepath = NodePath("Butt/Body/LeftUpperArm/LeftLowerArm/LeftHand") +ccdik_data_chain_length = 2 +joint_data/0/bone_index = 17 +joint_data/0/bone2d_node = NodePath("Butt/Body/LeftUpperArm/LeftLowerArm") +joint_data/0/rotate_from_joint = false +joint_data/0/enable_constraint = true +joint_data/0/constraint_angle_min = 0.0 +joint_data/0/constraint_angle_max = 90.0 +joint_data/0/constraint_angle_invert = false +joint_data/0/constraint_in_localspace = true +joint_data/0/editor_draw_gizmo = true +joint_data/1/bone_index = 16 +joint_data/1/bone2d_node = NodePath("Butt/Body/LeftUpperArm") +joint_data/1/rotate_from_joint = false +joint_data/1/enable_constraint = false +joint_data/1/editor_draw_gizmo = true +editor/draw_gizmo = false -[sub_resource type="Resource" id="Resource_ruqsf"] -resource_local_to_scene = true -script = ExtResource("7_b3p4o") -flat_value = 10.0 -percentage_value = 0.0 -mult_value = 1.0 +[sub_resource type="SkeletonModification2DCCDIK" id="SkeletonModification2DCCDIK_x5uj2"] +tip_nodepath = NodePath("Butt/Body/RightUpperArm/RightLowerArm/RightHand") +ccdik_data_chain_length = 2 +joint_data/0/bone_index = 8 +joint_data/0/bone2d_node = NodePath("Butt/Body/RightUpperArm") +joint_data/0/rotate_from_joint = false +joint_data/0/enable_constraint = false +joint_data/0/editor_draw_gizmo = true +joint_data/1/bone_index = 9 +joint_data/1/bone2d_node = NodePath("Butt/Body/RightUpperArm/RightLowerArm") +joint_data/1/rotate_from_joint = false +joint_data/1/enable_constraint = true +joint_data/1/constraint_angle_min = 0.0 +joint_data/1/constraint_angle_max = 90.0 +joint_data/1/constraint_angle_invert = false +joint_data/1/constraint_in_localspace = true +joint_data/1/editor_draw_gizmo = true +editor/draw_gizmo = false -[sub_resource type="RectangleShape2D" id="RectangleShape2D_r4ug6"] -size = Vector2(16, 48) +[sub_resource type="SkeletonModification2DCCDIK" id="SkeletonModification2DCCDIK_vcc72"] +tip_nodepath = NodePath("Butt/RightUpperLeg/RightLowerLeg/RightFoot") +ccdik_data_chain_length = 2 +joint_data/0/bone_index = 1 +joint_data/0/bone2d_node = NodePath("Butt/RightUpperLeg") +joint_data/0/rotate_from_joint = false +joint_data/0/enable_constraint = true +joint_data/0/constraint_angle_min = -90.0 +joint_data/0/constraint_angle_max = 90.0 +joint_data/0/constraint_angle_invert = true +joint_data/0/constraint_in_localspace = true +joint_data/0/editor_draw_gizmo = true +joint_data/1/bone_index = 2 +joint_data/1/bone2d_node = NodePath("Butt/RightUpperLeg/RightLowerLeg") +joint_data/1/rotate_from_joint = false +joint_data/1/enable_constraint = true +joint_data/1/constraint_angle_min = 0.0 +joint_data/1/constraint_angle_max = 160.0 +joint_data/1/constraint_angle_invert = false +joint_data/1/constraint_in_localspace = true +joint_data/1/editor_draw_gizmo = true +editor/draw_gizmo = false -[sub_resource type="Animation" id="Animation_qv5y7"] -length = 0.001 +[sub_resource type="SkeletonModification2DCCDIK" id="SkeletonModification2DCCDIK_kto0i"] +tip_nodepath = NodePath("Butt/LeftUpperLeg/LeftLowerLeg/LeftFoot") +ccdik_data_chain_length = 2 +joint_data/0/bone_index = 4 +joint_data/0/bone2d_node = NodePath("Butt/LeftUpperLeg") +joint_data/0/rotate_from_joint = false +joint_data/0/enable_constraint = true +joint_data/0/constraint_angle_min = -90.0 +joint_data/0/constraint_angle_max = 90.0 +joint_data/0/constraint_angle_invert = true +joint_data/0/constraint_in_localspace = true +joint_data/0/editor_draw_gizmo = true +joint_data/1/bone_index = 5 +joint_data/1/bone2d_node = NodePath("Butt/LeftUpperLeg/LeftLowerLeg") +joint_data/1/rotate_from_joint = false +joint_data/1/enable_constraint = true +joint_data/1/constraint_angle_min = -90.0 +joint_data/1/constraint_angle_max = 0.0 +joint_data/1/constraint_angle_invert = true +joint_data/1/constraint_in_localspace = true +joint_data/1/editor_draw_gizmo = true +editor/draw_gizmo = false + +[sub_resource type="SkeletonModificationStack2D" id="SkeletonModificationStack2D_wn68q"] +modification_count = 4 +modifications/0 = SubResource("SkeletonModification2DCCDIK_wn68q") +modifications/1 = SubResource("SkeletonModification2DCCDIK_x5uj2") +modifications/2 = SubResource("SkeletonModification2DCCDIK_vcc72") +modifications/3 = SubResource("SkeletonModification2DCCDIK_kto0i") + +[sub_resource type="AtlasTexture" id="AtlasTexture_jvn5w"] +atlas = ExtResource("6_xnora") +region = Rect2(15, 30, 20, 8) + +[sub_resource type="AtlasTexture" id="AtlasTexture_vmdbp"] +atlas = ExtResource("6_xnora") +region = Rect2(64, 44, 10, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_x1oyw"] +atlas = ExtResource("6_xnora") +region = Rect2(93, 50, 17, 9) + +[sub_resource type="AtlasTexture" id="AtlasTexture_vjx3c"] +atlas = ExtResource("6_xnora") +region = Rect2(79, 44, 10, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_f31xd"] +atlas = ExtResource("6_xnora") +region = Rect2(47, 33, 8, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_od8jf"] +atlas = ExtResource("6_xnora") +region = Rect2(59, 33, 7, 10) + +[sub_resource type="AtlasTexture" id="AtlasTexture_p4711"] +atlas = ExtResource("6_xnora") +region = Rect2(71, 30, 19, 13) + +[sub_resource type="AtlasTexture" id="AtlasTexture_1bk2b"] +atlas = ExtResource("6_xnora") +region = Rect2(12, 43, 6, 18) + +[sub_resource type="AtlasTexture" id="AtlasTexture_y06yv"] +atlas = ExtResource("6_xnora") +region = Rect2(36, 50, 9, 11) + +[sub_resource type="AtlasTexture" id="AtlasTexture_lu8go"] +atlas = ExtResource("6_xnora") +region = Rect2(22, 45, 8, 15) + +[sub_resource type="AtlasTexture" id="AtlasTexture_cdq7v"] +atlas = ExtResource("6_xnora") +region = Rect2(93, 8, 29, 39) + +[sub_resource type="AtlasTexture" id="AtlasTexture_e7wc3"] +atlas = ExtResource("6_xnora") +region = Rect2(72, 2, 13, 26) + +[sub_resource type="AtlasTexture" id="AtlasTexture_wn68q"] +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) + +[sub_resource type="AtlasTexture" id="AtlasTexture_kto0i"] +atlas = ExtResource("6_xnora") +region = Rect2(105, 2, 3, 4) + +[sub_resource type="AtlasTexture" id="AtlasTexture_djocr"] +atlas = ExtResource("6_xnora") +region = Rect2(2, 7, 6, 19) + +[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="Animation" id="Animation_x5uj2"] tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true -tracks/0/path = NodePath("Mover:_speedControlMult") +tracks/0/path = NodePath("Zombie/Butt/Body/LeftUpperArm/LeftLowerArm:position") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, +"values": [Vector2(-2, 14)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Zombie/Butt/Body/LeftUpperArm/LeftLowerArm:rotation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Zombie/Butt/Body/LeftUpperArm/LeftLowerArm/LeftHand:position") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-1, 13)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Zombie/Butt/Body/LeftUpperArm/LeftLowerArm/LeftHand:rotation") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Zombie/Butt/Body/LeftUpperArm:position") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-1, -20)] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Zombie/Butt/Body/LeftUpperArm:rotation") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/6/type = "value" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("Zombie/Butt/Body/Head/LeftEye:position") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-4, -9)] +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("Zombie/Butt/Body/Head/LeftEye:rotation") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/8/type = "value" +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/path = NodePath("Zombie/Butt/Body/Head/RightEye:position") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-16, -8)] +} +tracks/9/type = "value" +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/path = NodePath("Zombie/Butt/Body/Head/RightEye:rotation") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/10/type = "value" +tracks/10/imported = false +tracks/10/enabled = true +tracks/10/path = NodePath("Zombie/Butt/Body/Head/Jaw:position") +tracks/10/interp = 1 +tracks/10/loop_wrap = true +tracks/10/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-3, 3)] +} +tracks/11/type = "value" +tracks/11/imported = false +tracks/11/enabled = true +tracks/11/path = NodePath("Zombie/Butt/Body/Head/Jaw:rotation") +tracks/11/interp = 1 +tracks/11/loop_wrap = true +tracks/11/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/12/type = "value" +tracks/12/imported = false +tracks/12/enabled = true +tracks/12/path = NodePath("Zombie/Butt/Body/Tie:position") +tracks/12/interp = 1 +tracks/12/loop_wrap = true +tracks/12/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-9, -21)] +} +tracks/13/type = "value" +tracks/13/imported = false +tracks/13/enabled = true +tracks/13/path = NodePath("Zombie/Butt/Body/Tie:rotation") +tracks/13/interp = 1 +tracks/13/loop_wrap = true +tracks/13/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/14/type = "value" +tracks/14/imported = false +tracks/14/enabled = true +tracks/14/path = NodePath("Zombie/Butt/Body/RightUpperArm/RightLowerArm/RightHand:position") +tracks/14/interp = 1 +tracks/14/loop_wrap = true +tracks/14/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-1, 13)] +} +tracks/15/type = "value" +tracks/15/imported = false +tracks/15/enabled = true +tracks/15/path = NodePath("Zombie/Butt/Body/RightUpperArm/RightLowerArm/RightHand:rotation") +tracks/15/interp = 1 +tracks/15/loop_wrap = true +tracks/15/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/16/type = "value" +tracks/16/imported = false +tracks/16/enabled = true +tracks/16/path = NodePath("Zombie/Butt/Body/RightUpperArm/RightLowerArm:position") +tracks/16/interp = 1 +tracks/16/loop_wrap = true +tracks/16/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-2, 15)] +} +tracks/17/type = "value" +tracks/17/imported = false +tracks/17/enabled = true +tracks/17/path = NodePath("Zombie/Butt/Body/RightUpperArm/RightLowerArm:rotation") +tracks/17/interp = 1 +tracks/17/loop_wrap = true +tracks/17/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/18/type = "value" +tracks/18/imported = false +tracks/18/enabled = true +tracks/18/path = NodePath("Zombie/Butt/Body/RightUpperArm:position") +tracks/18/interp = 1 +tracks/18/loop_wrap = true +tracks/18/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-14, -23)] +} +tracks/19/type = "value" +tracks/19/imported = false +tracks/19/enabled = true +tracks/19/path = NodePath("Zombie/Butt/Body/RightUpperArm:rotation") +tracks/19/interp = 1 +tracks/19/loop_wrap = true +tracks/19/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/20/type = "value" +tracks/20/imported = false +tracks/20/enabled = true +tracks/20/path = NodePath("Zombie/Butt/LeftUpperLeg/LeftLowerLeg/LeftFoot:position") +tracks/20/interp = 1 +tracks/20/loop_wrap = true +tracks/20/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(6, 10)] +} +tracks/21/type = "value" +tracks/21/imported = false +tracks/21/enabled = true +tracks/21/path = NodePath("Zombie/Butt/LeftUpperLeg/LeftLowerLeg/LeftFoot:rotation") +tracks/21/interp = 1 +tracks/21/loop_wrap = true +tracks/21/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/22/type = "value" +tracks/22/imported = false +tracks/22/enabled = true +tracks/22/path = NodePath("Zombie/Butt/LeftUpperLeg/LeftLowerLeg:position") +tracks/22/interp = 1 +tracks/22/loop_wrap = true +tracks/22/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-1, 13)] +} +tracks/23/type = "value" +tracks/23/imported = false +tracks/23/enabled = true +tracks/23/path = NodePath("Zombie/Butt/LeftUpperLeg/LeftLowerLeg:rotation") +tracks/23/interp = 1 +tracks/23/loop_wrap = true +tracks/23/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/24/type = "value" +tracks/24/imported = false +tracks/24/enabled = true +tracks/24/path = NodePath("Zombie/Butt/LeftUpperLeg:position") +tracks/24/interp = 1 +tracks/24/loop_wrap = true +tracks/24/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(6, 4)] +} +tracks/25/type = "value" +tracks/25/imported = false +tracks/25/enabled = true +tracks/25/path = NodePath("Zombie/Butt/LeftUpperLeg:rotation") +tracks/25/interp = 1 +tracks/25/loop_wrap = true +tracks/25/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/26/type = "value" +tracks/26/imported = false +tracks/26/enabled = true +tracks/26/path = NodePath("Zombie/Butt/RightUpperLeg/RightLowerLeg/RightFoot:position") +tracks/26/interp = 1 +tracks/26/loop_wrap = true +tracks/26/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-2, 14)] +} +tracks/27/type = "value" +tracks/27/imported = false +tracks/27/enabled = true +tracks/27/path = NodePath("Zombie/Butt/RightUpperLeg/RightLowerLeg/RightFoot:rotation") +tracks/27/interp = 1 +tracks/27/loop_wrap = true +tracks/27/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/28/type = "value" +tracks/28/imported = false +tracks/28/enabled = true +tracks/28/path = NodePath("Zombie/Butt/RightUpperLeg/RightLowerLeg:position") +tracks/28/interp = 1 +tracks/28/loop_wrap = true +tracks/28/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-2, 12)] +} +tracks/29/type = "value" +tracks/29/imported = false +tracks/29/enabled = true +tracks/29/path = NodePath("Zombie/Butt/RightUpperLeg/RightLowerLeg:rotation") +tracks/29/interp = 1 +tracks/29/loop_wrap = true +tracks/29/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/30/type = "value" +tracks/30/imported = false +tracks/30/enabled = true +tracks/30/path = NodePath("Zombie/Butt/RightUpperLeg:position") +tracks/30/interp = 1 +tracks/30/loop_wrap = true +tracks/30/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-6, 3)] +} +tracks/31/type = "value" +tracks/31/imported = false +tracks/31/enabled = true +tracks/31/path = NodePath("Zombie/Butt/RightUpperLeg:rotation") +tracks/31/interp = 1 +tracks/31/loop_wrap = true +tracks/31/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/32/type = "value" +tracks/32/imported = false +tracks/32/enabled = true +tracks/32/path = NodePath("Zombie/Butt:position") +tracks/32/interp = 1 +tracks/32/loop_wrap = true +tracks/32/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(5, -35)] +} +tracks/33/type = "value" +tracks/33/imported = false +tracks/33/enabled = true +tracks/33/path = NodePath("Zombie/Butt:rotation") +tracks/33/interp = 1 +tracks/33/loop_wrap = true +tracks/33/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/34/type = "value" +tracks/34/imported = false +tracks/34/enabled = true +tracks/34/path = NodePath("Zombie/Butt/Body:position") +tracks/34/interp = 1 +tracks/34/loop_wrap = true +tracks/34/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(1, -2)] +} +tracks/35/type = "value" +tracks/35/imported = false +tracks/35/enabled = true +tracks/35/path = NodePath("Zombie/Butt/Body:rotation") +tracks/35/interp = 1 +tracks/35/loop_wrap = true +tracks/35/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/36/type = "value" +tracks/36/imported = false +tracks/36/enabled = true +tracks/36/path = NodePath("Zombie:position") +tracks/36/interp = 1 +tracks/36/loop_wrap = true +tracks/36/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(0, 0)] +} +tracks/37/type = "value" +tracks/37/imported = false +tracks/37/enabled = true +tracks/37/path = NodePath("Zombie:rotation") +tracks/37/interp = 1 +tracks/37/loop_wrap = true +tracks/37/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/38/type = "value" +tracks/38/imported = false +tracks/38/enabled = true +tracks/38/path = NodePath("Zombie/Butt/Body/Head:position") +tracks/38/interp = 1 +tracks/38/loop_wrap = true +tracks/38/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-10, -25)] +} +tracks/39/type = "value" +tracks/39/imported = false +tracks/39/enabled = true +tracks/39/path = NodePath("Zombie/Butt/Body/Head:rotation") +tracks/39/interp = 1 +tracks/39/loop_wrap = true +tracks/39/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/40/type = "value" +tracks/40/imported = false +tracks/40/enabled = true +tracks/40/path = NodePath("Zombie/Butt/Body/Head:visible") +tracks/40/interp = 1 +tracks/40/loop_wrap = true +tracks/40/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/41/type = "value" +tracks/41/imported = false +tracks/41/enabled = true +tracks/41/path = NodePath("Zombie/Butt/Body/Tie:scale") +tracks/41/interp = 1 +tracks/41/loop_wrap = true +tracks/41/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(1, 1)] +} +tracks/42/type = "value" +tracks/42/imported = false +tracks/42/enabled = true +tracks/42/path = NodePath("Zombie/Butt/Body/LeftUpperArm/LeftLowerArm/LeftHand/Left_Hand:texture") +tracks/42/interp = 1 +tracks/42/loop_wrap = true +tracks/42/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [SubResource("AtlasTexture_6y4ja")] +} +tracks/43/type = "value" +tracks/43/imported = false +tracks/43/enabled = true +tracks/43/path = NodePath("Zombie/Butt/Body/LeftUpperArm/LeftLowerArm/LeftHand/Left_Hand:offset") +tracks/43/interp = 1 +tracks/43/loop_wrap = true +tracks/43/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-4, -1)] +} +tracks/44/type = "value" +tracks/44/imported = false +tracks/44/enabled = true +tracks/44/path = NodePath("../../Mover:_speedControlMult") +tracks/44/interp = 1 +tracks/44/loop_wrap = true +tracks/44/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, "values": [0.0] } -[sub_resource type="AnimationLibrary" id="AnimationLibrary_sq25x"] -_data = { -&"RESET": SubResource("Animation_qv5y7") +[sub_resource type="Animation" id="Animation_vcc72"] +resource_name = "basic_zombie_walk" +length = 1.7 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Zombie/Butt:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(5, -35)] } +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Zombie/Butt:rotation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Zombie/Butt/RightUpperLeg:position") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 0.45, 0.7, 1.1, 1.4), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 0, +"values": [Vector2(-6, 3), Vector2(-6, 3), Vector2(-5, 3), Vector2(-6, 3), Vector2(-6, 4)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Zombie/Butt/RightUpperLeg:rotation") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.45, 0.7, 1.1, 1.4), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 0, +"values": [0.0, -0.47976, -0.247472, 0.324581, 0.0887587] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Zombie/Butt/RightUpperLeg/RightLowerLeg:position") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0, 0.45, 0.7), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector2(-2, 12), Vector2(-1.25072, 12.0201), Vector2(-2.0003, 12.0018)] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Zombie/Butt/RightUpperLeg/RightLowerLeg:rotation") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0, 0.45, 0.7, 1.1, 1.4), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 0, +"values": [0.0, 0.311892, 0.2129, 0.419682, 0.172512] +} +tracks/6/type = "value" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("Zombie/Butt/RightUpperLeg/RightLowerLeg/RightFoot:position") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-2, 14)] +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("Zombie/Butt/RightUpperLeg/RightLowerLeg/RightFoot:rotation") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(0, 0.45, 0.7, 1.1, 1.4), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 0, +"values": [0.0, 0.33228, 0.0473635, -0.51797, -0.180295] +} +tracks/8/type = "value" +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/path = NodePath("Zombie/Butt/LeftUpperLeg:position") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/keys = { +"times": PackedFloat32Array(0, 0.45, 0.7), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector2(6, 4), Vector2(2, 4), Vector2(1, 4)] +} +tracks/9/type = "value" +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/path = NodePath("Zombie/Butt/LeftUpperLeg:rotation") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/keys = { +"times": PackedFloat32Array(0, 0.45, 0.7), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [0.0, 0.480908, 0.301984] +} +tracks/10/type = "value" +tracks/10/imported = false +tracks/10/enabled = true +tracks/10/path = NodePath("Zombie/Butt/LeftUpperLeg/LeftLowerLeg:position") +tracks/10/interp = 1 +tracks/10/loop_wrap = true +tracks/10/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-1, 13)] +} +tracks/11/type = "value" +tracks/11/imported = false +tracks/11/enabled = true +tracks/11/path = NodePath("Zombie/Butt/LeftUpperLeg/LeftLowerLeg:rotation") +tracks/11/interp = 1 +tracks/11/loop_wrap = true +tracks/11/keys = { +"times": PackedFloat32Array(0, 0.45, 0.7), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [0.0, -0.685514, -0.119147] +} +tracks/12/type = "value" +tracks/12/imported = false +tracks/12/enabled = true +tracks/12/path = NodePath("Zombie/Butt/LeftUpperLeg/LeftLowerLeg/LeftFoot:position") +tracks/12/interp = 1 +tracks/12/loop_wrap = true +tracks/12/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(6, 10)] +} +tracks/13/type = "value" +tracks/13/imported = false +tracks/13/enabled = true +tracks/13/path = NodePath("Zombie/Butt/LeftUpperLeg/LeftLowerLeg/LeftFoot:rotation") +tracks/13/interp = 1 +tracks/13/loop_wrap = true +tracks/13/keys = { +"times": PackedFloat32Array(0, 0.45, 0.7), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [0.0, -0.379644, -0.190368] +} +tracks/14/type = "value" +tracks/14/imported = false +tracks/14/enabled = true +tracks/14/path = NodePath("Zombie/Butt/Body:position") +tracks/14/interp = 1 +tracks/14/loop_wrap = true +tracks/14/keys = { +"times": PackedFloat32Array(0, 1.4), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(1, -2), Vector2(1, -1)] +} +tracks/15/type = "value" +tracks/15/imported = false +tracks/15/enabled = true +tracks/15/path = NodePath("Zombie/Butt/Body:rotation") +tracks/15/interp = 1 +tracks/15/loop_wrap = true +tracks/15/keys = { +"times": PackedFloat32Array(0, 0.45, 0.7, 1.1, 1.4), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 0, +"values": [0.0, 0.131445, -0.0594569, -0.214663, -0.153259] +} +tracks/16/type = "value" +tracks/16/imported = false +tracks/16/enabled = true +tracks/16/path = NodePath("Zombie/Butt/Body/RightUpperArm:position") +tracks/16/interp = 1 +tracks/16/loop_wrap = true +tracks/16/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-14, -23)] +} +tracks/17/type = "value" +tracks/17/imported = false +tracks/17/enabled = true +tracks/17/path = NodePath("Zombie/Butt/Body/RightUpperArm:rotation") +tracks/17/interp = 1 +tracks/17/loop_wrap = true +tracks/17/keys = { +"times": PackedFloat32Array(0, 0.45, 0.7, 1.1, 1.4), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 0, +"values": [0.0, 0.193101, 0.161051, 0.119452, 0.0341511] +} +tracks/18/type = "value" +tracks/18/imported = false +tracks/18/enabled = true +tracks/18/path = NodePath("Zombie/Butt/Body/RightUpperArm/RightLowerArm:position") +tracks/18/interp = 1 +tracks/18/loop_wrap = true +tracks/18/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-2, 15)] +} +tracks/19/type = "value" +tracks/19/imported = false +tracks/19/enabled = true +tracks/19/path = NodePath("Zombie/Butt/Body/RightUpperArm/RightLowerArm:rotation") +tracks/19/interp = 1 +tracks/19/loop_wrap = true +tracks/19/keys = { +"times": PackedFloat32Array(0, 0.45, 0.7, 1.1), +"transitions": PackedFloat32Array(1, 1, 1, 1), +"update": 0, +"values": [0.0, 0.237135, -0.0196698, 0.180193] +} +tracks/20/type = "value" +tracks/20/imported = false +tracks/20/enabled = true +tracks/20/path = NodePath("Zombie/Butt/Body/RightUpperArm/RightLowerArm/RightHand:position") +tracks/20/interp = 1 +tracks/20/loop_wrap = true +tracks/20/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-1, 13)] +} +tracks/21/type = "value" +tracks/21/imported = false +tracks/21/enabled = true +tracks/21/path = NodePath("Zombie/Butt/Body/RightUpperArm/RightLowerArm/RightHand:rotation") +tracks/21/interp = 1 +tracks/21/loop_wrap = true +tracks/21/keys = { +"times": PackedFloat32Array(0, 0.45, 0.7), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [0.0, 0.17474, 0.0256803] +} +tracks/22/type = "value" +tracks/22/imported = false +tracks/22/enabled = true +tracks/22/path = NodePath("Zombie/Butt/Body/Tie:position") +tracks/22/interp = 1 +tracks/22/loop_wrap = true +tracks/22/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-9, -21)] +} +tracks/23/type = "value" +tracks/23/imported = false +tracks/23/enabled = true +tracks/23/path = NodePath("Zombie/Butt/Body/Tie:rotation") +tracks/23/interp = 1 +tracks/23/loop_wrap = true +tracks/23/keys = { +"times": PackedFloat32Array(0, 0.45, 1.1), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [0.0, -0.170849, 0.172666] +} +tracks/24/type = "value" +tracks/24/imported = false +tracks/24/enabled = true +tracks/24/path = NodePath("Zombie/Butt/Body/Head:position") +tracks/24/interp = 1 +tracks/24/loop_wrap = true +tracks/24/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-10, -25)] +} +tracks/25/type = "value" +tracks/25/imported = false +tracks/25/enabled = true +tracks/25/path = NodePath("Zombie/Butt/Body/Head:rotation") +tracks/25/interp = 1 +tracks/25/loop_wrap = true +tracks/25/keys = { +"times": PackedFloat32Array(0, 1.1), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, -0.102364] +} +tracks/26/type = "value" +tracks/26/imported = false +tracks/26/enabled = true +tracks/26/path = NodePath("Zombie/Butt/Body/Head/Jaw:position") +tracks/26/interp = 1 +tracks/26/loop_wrap = true +tracks/26/keys = { +"times": PackedFloat32Array(0, 0.7, 1.1), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector2(-3, 3), Vector2(-2.66995, 2.20342), Vector2(-3.00212, 2.99641)] +} +tracks/27/type = "value" +tracks/27/imported = false +tracks/27/enabled = true +tracks/27/path = NodePath("Zombie/Butt/Body/Head/Jaw:rotation") +tracks/27/interp = 1 +tracks/27/loop_wrap = true +tracks/27/keys = { +"times": PackedFloat32Array(0, 0.45, 0.7), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [0.0, -0.119339, 0.0279278] +} +tracks/28/type = "value" +tracks/28/imported = false +tracks/28/enabled = true +tracks/28/path = NodePath("Zombie/Butt/Body/Head/RightEye:position") +tracks/28/interp = 1 +tracks/28/loop_wrap = true +tracks/28/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-16, -8)] +} +tracks/29/type = "value" +tracks/29/imported = false +tracks/29/enabled = true +tracks/29/path = NodePath("Zombie/Butt/Body/Head/RightEye:rotation") +tracks/29/interp = 1 +tracks/29/loop_wrap = true +tracks/29/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/30/type = "value" +tracks/30/imported = false +tracks/30/enabled = true +tracks/30/path = NodePath("Zombie/Butt/Body/Head/LeftEye:position") +tracks/30/interp = 1 +tracks/30/loop_wrap = true +tracks/30/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-4, -9)] +} +tracks/31/type = "value" +tracks/31/imported = false +tracks/31/enabled = true +tracks/31/path = NodePath("Zombie/Butt/Body/Head/LeftEye:rotation") +tracks/31/interp = 1 +tracks/31/loop_wrap = true +tracks/31/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/32/type = "value" +tracks/32/imported = false +tracks/32/enabled = true +tracks/32/path = NodePath("Zombie/Butt/Body/LeftUpperArm:position") +tracks/32/interp = 1 +tracks/32/loop_wrap = true +tracks/32/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-1, -20)] +} +tracks/33/type = "value" +tracks/33/imported = false +tracks/33/enabled = true +tracks/33/path = NodePath("Zombie/Butt/Body/LeftUpperArm:rotation") +tracks/33/interp = 1 +tracks/33/loop_wrap = true +tracks/33/keys = { +"times": PackedFloat32Array(0, 0.45, 1.1, 1.4), +"transitions": PackedFloat32Array(1, 1, 1, 1), +"update": 0, +"values": [0.0, -0.274164, 0.193139, 0.0631989] +} +tracks/34/type = "value" +tracks/34/imported = false +tracks/34/enabled = true +tracks/34/path = NodePath("Zombie/Butt/Body/LeftUpperArm/LeftLowerArm:position") +tracks/34/interp = 1 +tracks/34/loop_wrap = true +tracks/34/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-2, 14)] +} +tracks/35/type = "value" +tracks/35/imported = false +tracks/35/enabled = true +tracks/35/path = NodePath("Zombie/Butt/Body/LeftUpperArm/LeftLowerArm:rotation") +tracks/35/interp = 1 +tracks/35/loop_wrap = true +tracks/35/keys = { +"times": PackedFloat32Array(0, 0.45, 0.7, 1.1), +"transitions": PackedFloat32Array(1, 1, 1, 1), +"update": 0, +"values": [0.0, -0.181085, 0.105937, 0.162344] +} +tracks/36/type = "value" +tracks/36/imported = false +tracks/36/enabled = true +tracks/36/path = NodePath("Zombie/Butt/Body/LeftUpperArm/LeftLowerArm/LeftHand:position") +tracks/36/interp = 1 +tracks/36/loop_wrap = true +tracks/36/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-1, 13)] +} +tracks/37/type = "value" +tracks/37/imported = false +tracks/37/enabled = true +tracks/37/path = NodePath("Zombie/Butt/Body/LeftUpperArm/LeftLowerArm/LeftHand:rotation") +tracks/37/interp = 1 +tracks/37/loop_wrap = true +tracks/37/keys = { +"times": PackedFloat32Array(0, 0.45), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, -0.149268] +} +tracks/38/type = "value" +tracks/38/imported = false +tracks/38/enabled = true +tracks/38/path = NodePath("../../Mover:_speedControlMult") +tracks/38/interp = 1 +tracks/38/loop_wrap = true +tracks/38/keys = { +"times": PackedFloat32Array(0, 0.450312, 1.7), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [0.0, 1.0, 0.0] +} + +[sub_resource type="Animation" id="Animation_wn68q"] +resource_name = "dead_lmao" +length = 2.0 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Zombie/Butt:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(-0.00833333, 0.85, 1.5, 2), +"transitions": PackedFloat32Array(1.68179, 2, 1, 1), +"update": 0, +"values": [Vector2(5, -35), Vector2(-9, -18), Vector2(-21, -18), Vector2(-22, -9)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Zombie/Butt:rotation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(-0.00833333, 0.85, 1.5, 2), +"transitions": PackedFloat32Array(1.68179, 2, 1, 1), +"update": 0, +"values": [0.0, 0.0, -0.363399, -1.03478] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Zombie/Butt/RightUpperLeg:position") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(-0.00833333), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-6, 3)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Zombie/Butt/RightUpperLeg:rotation") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(-0.00833333, 1.5, 2), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [0.0, -0.438888, -0.596673] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Zombie/Butt/RightUpperLeg/RightLowerLeg:position") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(-0.00833333), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-2, 12)] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Zombie/Butt/RightUpperLeg/RightLowerLeg:rotation") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(-0.00833333, 0.85, 1.5, 2), +"transitions": PackedFloat32Array(1.68179, 2, 1, 1), +"update": 0, +"values": [0.0, -1.57645, -0.739282, 0.0335003] +} +tracks/6/type = "value" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("Zombie/Butt/RightUpperLeg/RightLowerLeg/RightFoot:position") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(-0.00833333), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-2, 14)] +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("Zombie/Butt/RightUpperLeg/RightLowerLeg/RightFoot:rotation") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(-0.00833333, 1.5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, 0.279912] +} +tracks/8/type = "value" +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/path = NodePath("Zombie/Butt/LeftUpperLeg:position") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/keys = { +"times": PackedFloat32Array(-0.00833333), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(6, 4)] +} +tracks/9/type = "value" +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/path = NodePath("Zombie/Butt/LeftUpperLeg:rotation") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/keys = { +"times": PackedFloat32Array(0, 1.5, 2), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [0.0, -0.330352, -0.0713271] +} +tracks/10/type = "value" +tracks/10/imported = false +tracks/10/enabled = true +tracks/10/path = NodePath("Zombie/Butt/LeftUpperLeg/LeftLowerLeg:position") +tracks/10/interp = 1 +tracks/10/loop_wrap = true +tracks/10/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-1, 13)] +} +tracks/11/type = "value" +tracks/11/imported = false +tracks/11/enabled = true +tracks/11/path = NodePath("Zombie/Butt/LeftUpperLeg/LeftLowerLeg:rotation") +tracks/11/interp = 1 +tracks/11/loop_wrap = true +tracks/11/keys = { +"times": PackedFloat32Array(0, 0.85, 1.5, 2), +"transitions": PackedFloat32Array(1.68179, 2, 1, 1), +"update": 0, +"values": [0.0, -1.7825, -0.561999, -0.289205] +} +tracks/12/type = "value" +tracks/12/imported = false +tracks/12/enabled = true +tracks/12/path = NodePath("Zombie/Butt/LeftUpperLeg/LeftLowerLeg/LeftFoot:position") +tracks/12/interp = 1 +tracks/12/loop_wrap = true +tracks/12/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(6, 10)] +} +tracks/13/type = "value" +tracks/13/imported = false +tracks/13/enabled = true +tracks/13/path = NodePath("Zombie/Butt/LeftUpperLeg/LeftLowerLeg/LeftFoot:rotation") +tracks/13/interp = 1 +tracks/13/loop_wrap = true +tracks/13/keys = { +"times": PackedFloat32Array(0, 1.5, 2), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [0.0, -0.542055, -0.899995] +} +tracks/14/type = "value" +tracks/14/imported = false +tracks/14/enabled = true +tracks/14/path = NodePath("Zombie/Butt/Body:position") +tracks/14/interp = 1 +tracks/14/loop_wrap = true +tracks/14/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(1, -2)] +} +tracks/15/type = "value" +tracks/15/imported = false +tracks/15/enabled = true +tracks/15/path = NodePath("Zombie/Butt/Body:rotation") +tracks/15/interp = 1 +tracks/15/loop_wrap = true +tracks/15/keys = { +"times": PackedFloat32Array(0, 0.85, 1.5, 2), +"transitions": PackedFloat32Array(1.68179, 2, 1, 1), +"update": 0, +"values": [0.0, -0.453494, -0.45522, -0.220732] +} +tracks/16/type = "value" +tracks/16/imported = false +tracks/16/enabled = true +tracks/16/path = NodePath("Zombie/Butt/Body/RightUpperArm:position") +tracks/16/interp = 1 +tracks/16/loop_wrap = true +tracks/16/keys = { +"times": PackedFloat32Array(0, 0.85), +"transitions": PackedFloat32Array(1.68179, 2), +"update": 0, +"values": [Vector2(-14, -23), Vector2(-11.3243, -22.8469)] +} +tracks/17/type = "value" +tracks/17/imported = false +tracks/17/enabled = true +tracks/17/path = NodePath("Zombie/Butt/Body/RightUpperArm:rotation") +tracks/17/interp = 1 +tracks/17/loop_wrap = true +tracks/17/keys = { +"times": PackedFloat32Array(0, 0.85, 2), +"transitions": PackedFloat32Array(1.68179, 2, 1), +"update": 0, +"values": [0.0, 0.204776, -0.10805] +} +tracks/18/type = "value" +tracks/18/imported = false +tracks/18/enabled = true +tracks/18/path = NodePath("Zombie/Butt/Body/RightUpperArm/RightLowerArm:position") +tracks/18/interp = 1 +tracks/18/loop_wrap = true +tracks/18/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-2, 15)] +} +tracks/19/type = "value" +tracks/19/imported = false +tracks/19/enabled = true +tracks/19/path = NodePath("Zombie/Butt/Body/RightUpperArm/RightLowerArm:rotation") +tracks/19/interp = 1 +tracks/19/loop_wrap = true +tracks/19/keys = { +"times": PackedFloat32Array(0, 0.85, 1.5), +"transitions": PackedFloat32Array(1.68179, 2, 1), +"update": 0, +"values": [0.0, 0.237523, -0.230923] +} +tracks/20/type = "value" +tracks/20/imported = false +tracks/20/enabled = true +tracks/20/path = NodePath("Zombie/Butt/Body/RightUpperArm/RightLowerArm/RightHand:position") +tracks/20/interp = 1 +tracks/20/loop_wrap = true +tracks/20/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-1, 13)] +} +tracks/21/type = "value" +tracks/21/imported = false +tracks/21/enabled = true +tracks/21/path = NodePath("Zombie/Butt/Body/RightUpperArm/RightLowerArm/RightHand:rotation") +tracks/21/interp = 1 +tracks/21/loop_wrap = true +tracks/21/keys = { +"times": PackedFloat32Array(0, 0.85, 1.5), +"transitions": PackedFloat32Array(1.68179, 2, 1), +"update": 0, +"values": [0.0, 0.270356, 0.0408225] +} +tracks/22/type = "value" +tracks/22/imported = false +tracks/22/enabled = true +tracks/22/path = NodePath("Zombie/Butt/Body/Tie:position") +tracks/22/interp = 1 +tracks/22/loop_wrap = true +tracks/22/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-9, -21)] +} +tracks/23/type = "value" +tracks/23/imported = false +tracks/23/enabled = true +tracks/23/path = NodePath("Zombie/Butt/Body/Tie:rotation") +tracks/23/interp = 1 +tracks/23/loop_wrap = true +tracks/23/keys = { +"times": PackedFloat32Array(0, 0.5, 0.85, 1.5), +"transitions": PackedFloat32Array(1, 1, 2, 2.07053), +"update": 0, +"values": [0.0, 0.134183, 0.162458, 0.689549] +} +tracks/24/type = "value" +tracks/24/imported = false +tracks/24/enabled = true +tracks/24/path = NodePath("Zombie/Butt/Body/Head/Jaw:position") +tracks/24/interp = 1 +tracks/24/loop_wrap = true +tracks/24/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-3, 3)] +} +tracks/25/type = "value" +tracks/25/imported = false +tracks/25/enabled = true +tracks/25/path = NodePath("Zombie/Butt/Body/Head/Jaw:rotation") +tracks/25/interp = 1 +tracks/25/loop_wrap = true +tracks/25/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/26/type = "value" +tracks/26/imported = false +tracks/26/enabled = true +tracks/26/path = NodePath("Zombie/Butt/Body/Head/RightEye:position") +tracks/26/interp = 1 +tracks/26/loop_wrap = true +tracks/26/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-16, -8)] +} +tracks/27/type = "value" +tracks/27/imported = false +tracks/27/enabled = true +tracks/27/path = NodePath("Zombie/Butt/Body/Head/RightEye:rotation") +tracks/27/interp = 1 +tracks/27/loop_wrap = true +tracks/27/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/28/type = "value" +tracks/28/imported = false +tracks/28/enabled = true +tracks/28/path = NodePath("Zombie/Butt/Body/Head/LeftEye:position") +tracks/28/interp = 1 +tracks/28/loop_wrap = true +tracks/28/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-4, -9)] +} +tracks/29/type = "value" +tracks/29/imported = false +tracks/29/enabled = true +tracks/29/path = NodePath("Zombie/Butt/Body/Head/LeftEye:rotation") +tracks/29/interp = 1 +tracks/29/loop_wrap = true +tracks/29/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/30/type = "value" +tracks/30/imported = false +tracks/30/enabled = true +tracks/30/path = NodePath("Zombie/Butt/Body/LeftUpperArm:position") +tracks/30/interp = 1 +tracks/30/loop_wrap = true +tracks/30/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-1, -20)] +} +tracks/31/type = "value" +tracks/31/imported = false +tracks/31/enabled = true +tracks/31/path = NodePath("Zombie/Butt/Body/LeftUpperArm:rotation") +tracks/31/interp = 1 +tracks/31/loop_wrap = true +tracks/31/keys = { +"times": PackedFloat32Array(0, 0.85, 1.5, 2), +"transitions": PackedFloat32Array(1.68179, 2, 1, 1), +"update": 0, +"values": [0.0, 0.108056, 0.68476, 1.91294] +} +tracks/32/type = "value" +tracks/32/imported = false +tracks/32/enabled = true +tracks/32/path = NodePath("Zombie/Butt/Body/LeftUpperArm/LeftLowerArm:position") +tracks/32/interp = 1 +tracks/32/loop_wrap = true +tracks/32/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-2, 14)] +} +tracks/33/type = "value" +tracks/33/imported = false +tracks/33/enabled = true +tracks/33/path = NodePath("Zombie/Butt/Body/LeftUpperArm/LeftLowerArm:rotation") +tracks/33/interp = 1 +tracks/33/loop_wrap = true +tracks/33/keys = { +"times": PackedFloat32Array(0, 0.85, 1.5), +"transitions": PackedFloat32Array(1.68179, 2, 1), +"update": 0, +"values": [0.0, 0.249204, 0.396612] +} +tracks/34/type = "value" +tracks/34/imported = false +tracks/34/enabled = true +tracks/34/path = NodePath("Zombie/Butt/Body/LeftUpperArm/LeftLowerArm/LeftHand:position") +tracks/34/interp = 1 +tracks/34/loop_wrap = true +tracks/34/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-1, 13)] +} +tracks/35/type = "value" +tracks/35/imported = false +tracks/35/enabled = true +tracks/35/path = NodePath("Zombie/Butt/Body/LeftUpperArm/LeftLowerArm/LeftHand:rotation") +tracks/35/interp = 1 +tracks/35/loop_wrap = true +tracks/35/keys = { +"times": PackedFloat32Array(0, 0.85, 1.5), +"transitions": PackedFloat32Array(1.68179, 2, 1), +"update": 0, +"values": [0.0, 0.228597, 0.28535] +} +tracks/36/type = "value" +tracks/36/imported = false +tracks/36/enabled = true +tracks/36/path = NodePath("Zombie:position") +tracks/36/interp = 1 +tracks/36/loop_wrap = true +tracks/36/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(0, 0)] +} +tracks/37/type = "value" +tracks/37/imported = false +tracks/37/enabled = true +tracks/37/path = NodePath("Zombie:rotation") +tracks/37/interp = 1 +tracks/37/loop_wrap = true +tracks/37/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/38/type = "value" +tracks/38/imported = false +tracks/38/enabled = true +tracks/38/path = NodePath("Zombie/Butt/Body/Head:visible") +tracks/38/interp = 1 +tracks/38/loop_wrap = true +tracks/38/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/39/type = "value" +tracks/39/imported = false +tracks/39/enabled = true +tracks/39/path = NodePath("Zombie/Butt/Body/Tie:scale") +tracks/39/interp = 1 +tracks/39/loop_wrap = true +tracks/39/keys = { +"times": PackedFloat32Array(1.75, 2), +"transitions": PackedFloat32Array(1, 1.41421), +"update": 0, +"values": [Vector2(0.999825, 0.999825), Vector2(1, 0.5)] +} + +[sub_resource type="AtlasTexture" id="AtlasTexture_wfem3"] +atlas = ExtResource("6_xnora") +region = Rect2(24, 2, 9, 9) + +[sub_resource type="Animation" id="Animation_wfem3"] +resource_name = "basic_zombie_eating" +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Zombie/Butt:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(5, -35)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Zombie/Butt:rotation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Zombie/Butt/RightUpperLeg:position") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-6, 3)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Zombie/Butt/RightUpperLeg:rotation") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Zombie/Butt/RightUpperLeg/RightLowerLeg:position") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-2, 12)] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Zombie/Butt/RightUpperLeg/RightLowerLeg:rotation") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/6/type = "value" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("Zombie/Butt/RightUpperLeg/RightLowerLeg/RightFoot:position") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-2, 14)] +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("Zombie/Butt/RightUpperLeg/RightLowerLeg/RightFoot:rotation") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/8/type = "value" +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/path = NodePath("Zombie/Butt/LeftUpperLeg:position") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(6, 4)] +} +tracks/9/type = "value" +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/path = NodePath("Zombie/Butt/LeftUpperLeg:rotation") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/10/type = "value" +tracks/10/imported = false +tracks/10/enabled = true +tracks/10/path = NodePath("Zombie/Butt/LeftUpperLeg/LeftLowerLeg:position") +tracks/10/interp = 1 +tracks/10/loop_wrap = true +tracks/10/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-1, 13)] +} +tracks/11/type = "value" +tracks/11/imported = false +tracks/11/enabled = true +tracks/11/path = NodePath("Zombie/Butt/LeftUpperLeg/LeftLowerLeg:rotation") +tracks/11/interp = 1 +tracks/11/loop_wrap = true +tracks/11/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/12/type = "value" +tracks/12/imported = false +tracks/12/enabled = true +tracks/12/path = NodePath("Zombie/Butt/LeftUpperLeg/LeftLowerLeg/LeftFoot:position") +tracks/12/interp = 1 +tracks/12/loop_wrap = true +tracks/12/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(6, 10)] +} +tracks/13/type = "value" +tracks/13/imported = false +tracks/13/enabled = true +tracks/13/path = NodePath("Zombie/Butt/LeftUpperLeg/LeftLowerLeg/LeftFoot:rotation") +tracks/13/interp = 1 +tracks/13/loop_wrap = true +tracks/13/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/14/type = "value" +tracks/14/imported = false +tracks/14/enabled = true +tracks/14/path = NodePath("Zombie/Butt/Body:position") +tracks/14/interp = 1 +tracks/14/loop_wrap = true +tracks/14/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(1, -2)] +} +tracks/15/type = "value" +tracks/15/imported = false +tracks/15/enabled = true +tracks/15/path = NodePath("Zombie/Butt/Body:rotation") +tracks/15/interp = 1 +tracks/15/loop_wrap = true +tracks/15/keys = { +"times": PackedFloat32Array(0, 0.15, 0.35, 0.5, 0.6, 0.75), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1), +"update": 0, +"values": [0.0, 0.0818632, -0.0349066, 0.0, 0.0698132, -0.0349066] +} +tracks/16/type = "value" +tracks/16/imported = false +tracks/16/enabled = true +tracks/16/path = NodePath("Zombie/Butt/Body/RightUpperArm:position") +tracks/16/interp = 1 +tracks/16/loop_wrap = true +tracks/16/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-14, -23)] +} +tracks/17/type = "value" +tracks/17/imported = false +tracks/17/enabled = true +tracks/17/path = NodePath("Zombie/Butt/Body/RightUpperArm:rotation") +tracks/17/interp = 1 +tracks/17/loop_wrap = true +tracks/17/keys = { +"times": PackedFloat32Array(0, 0.2, 0.35, 0.6, 0.8), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 0, +"values": [0.0, 0.282039, 0.376119, 0.0520613, -0.227038] +} +tracks/18/type = "value" +tracks/18/imported = false +tracks/18/enabled = true +tracks/18/path = NodePath("Zombie/Butt/Body/RightUpperArm/RightLowerArm:position") +tracks/18/interp = 1 +tracks/18/loop_wrap = true +tracks/18/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-2, 15)] +} +tracks/19/type = "value" +tracks/19/imported = false +tracks/19/enabled = true +tracks/19/path = NodePath("Zombie/Butt/Body/RightUpperArm/RightLowerArm:rotation") +tracks/19/interp = 1 +tracks/19/loop_wrap = true +tracks/19/keys = { +"times": PackedFloat32Array(0, 0.35, 0.6, 0.8), +"transitions": PackedFloat32Array(1, 1, 1, 1), +"update": 0, +"values": [1.5708, 2.21174, 1.42591, 1.4429] +} +tracks/20/type = "value" +tracks/20/imported = false +tracks/20/enabled = true +tracks/20/path = NodePath("Zombie/Butt/Body/RightUpperArm/RightLowerArm/RightHand:position") +tracks/20/interp = 1 +tracks/20/loop_wrap = true +tracks/20/keys = { +"times": PackedFloat32Array(0, 0.35), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(-1, 13), Vector2(-0.579761, 11.6589)] +} +tracks/21/type = "value" +tracks/21/imported = false +tracks/21/enabled = true +tracks/21/path = NodePath("Zombie/Butt/Body/RightUpperArm/RightLowerArm/RightHand:rotation") +tracks/21/interp = 1 +tracks/21/loop_wrap = true +tracks/21/keys = { +"times": PackedFloat32Array(0, 0.2, 0.35, 0.6, 0.8), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 0, +"values": [0.0, 0.303203, 1.04783, 0.128023, -0.304426] +} +tracks/22/type = "value" +tracks/22/imported = false +tracks/22/enabled = true +tracks/22/path = NodePath("Zombie/Butt/Body/Tie:position") +tracks/22/interp = 1 +tracks/22/loop_wrap = true +tracks/22/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-9, -21)] +} +tracks/23/type = "value" +tracks/23/imported = false +tracks/23/enabled = true +tracks/23/path = NodePath("Zombie/Butt/Body/Tie:rotation") +tracks/23/interp = 1 +tracks/23/loop_wrap = true +tracks/23/keys = { +"times": PackedFloat32Array(0, 0.15, 0.35, 0.6, 0.75), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 0, +"values": [0.0, -0.104057, 0.106544, -0.0644312, 0.0350192] +} +tracks/24/type = "value" +tracks/24/imported = false +tracks/24/enabled = true +tracks/24/path = NodePath("Zombie/Butt/Body/Head:position") +tracks/24/interp = 1 +tracks/24/loop_wrap = true +tracks/24/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-10, -25)] +} +tracks/25/type = "value" +tracks/25/imported = false +tracks/25/enabled = true +tracks/25/path = NodePath("Zombie/Butt/Body/Head:rotation") +tracks/25/interp = 1 +tracks/25/loop_wrap = true +tracks/25/keys = { +"times": PackedFloat32Array(0, 0.25, 0.35, 0.45, 0.6, 0.75), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1), +"update": 0, +"values": [0.0, 0.0, -0.113548, 0.0, 0.0, -0.178699] +} +tracks/26/type = "value" +tracks/26/imported = false +tracks/26/enabled = true +tracks/26/path = NodePath("Zombie/Butt/Body/Head/Jaw:position") +tracks/26/interp = 1 +tracks/26/loop_wrap = true +tracks/26/keys = { +"times": PackedFloat32Array(0, 0.2, 0.35, 0.45, 0.6, 0.75), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1), +"update": 0, +"values": [Vector2(-3, 3), Vector2(-3.00274, 2.99674), Vector2(-3.00274, 1.9964), Vector2(-3.00274, 2.99674), Vector2(-3.00274, 2.99674), Vector2(-3.00274, 1.9964)] +} +tracks/27/type = "value" +tracks/27/imported = false +tracks/27/enabled = true +tracks/27/path = NodePath("Zombie/Butt/Body/Head/Jaw:rotation") +tracks/27/interp = 1 +tracks/27/loop_wrap = true +tracks/27/keys = { +"times": PackedFloat32Array(0, 0.2, 0.35, 0.6, 0.75), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 0, +"values": [0.0, -0.109226, 0.0, -0.0926703, 0.0] +} +tracks/28/type = "value" +tracks/28/imported = false +tracks/28/enabled = true +tracks/28/path = NodePath("Zombie/Butt/Body/Head/RightEye:position") +tracks/28/interp = 1 +tracks/28/loop_wrap = true +tracks/28/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-16.0072, -8.00701)] +} +tracks/29/type = "value" +tracks/29/imported = false +tracks/29/enabled = true +tracks/29/path = NodePath("Zombie/Butt/Body/Head/RightEye:rotation") +tracks/29/interp = 1 +tracks/29/loop_wrap = true +tracks/29/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/30/type = "value" +tracks/30/imported = false +tracks/30/enabled = true +tracks/30/path = NodePath("Zombie/Butt/Body/Head/LeftEye:position") +tracks/30/interp = 1 +tracks/30/loop_wrap = true +tracks/30/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-5.00342, -9.00735)] +} +tracks/31/type = "value" +tracks/31/imported = false +tracks/31/enabled = true +tracks/31/path = NodePath("Zombie/Butt/Body/Head/LeftEye:rotation") +tracks/31/interp = 1 +tracks/31/loop_wrap = true +tracks/31/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/32/type = "value" +tracks/32/imported = false +tracks/32/enabled = true +tracks/32/path = NodePath("Zombie/Butt/Body/LeftUpperArm:position") +tracks/32/interp = 1 +tracks/32/loop_wrap = true +tracks/32/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-1, -20)] +} +tracks/33/type = "value" +tracks/33/imported = false +tracks/33/enabled = true +tracks/33/path = NodePath("Zombie/Butt/Body/LeftUpperArm:rotation") +tracks/33/interp = 1 +tracks/33/loop_wrap = true +tracks/33/keys = { +"times": PackedFloat32Array(0, 0.25, 0.5, 0.75), +"transitions": PackedFloat32Array(1, 1, 1, 1), +"update": 0, +"values": [0.0, -0.375388, 0.218228, 0.628399] +} +tracks/34/type = "value" +tracks/34/imported = false +tracks/34/enabled = true +tracks/34/path = NodePath("Zombie/Butt/Body/LeftUpperArm/LeftLowerArm:position") +tracks/34/interp = 1 +tracks/34/loop_wrap = true +tracks/34/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-2, 14)] +} +tracks/35/type = "value" +tracks/35/imported = false +tracks/35/enabled = true +tracks/35/path = NodePath("Zombie/Butt/Body/LeftUpperArm/LeftLowerArm:rotation") +tracks/35/interp = 1 +tracks/35/loop_wrap = true +tracks/35/keys = { +"times": PackedFloat32Array(0, 0.25, 0.35, 0.5, 0.75), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 0, +"values": [1.5708, 1.73031, 1.36965, 1.19019, 1.43255] +} +tracks/36/type = "value" +tracks/36/imported = false +tracks/36/enabled = true +tracks/36/path = NodePath("Zombie/Butt/Body/LeftUpperArm/LeftLowerArm/LeftHand:position") +tracks/36/interp = 1 +tracks/36/loop_wrap = true +tracks/36/keys = { +"times": PackedFloat32Array(0, 0.75), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(-2.00188, 13.008), Vector2(-1.21141, 12.2038)] +} +tracks/37/type = "value" +tracks/37/imported = false +tracks/37/enabled = true +tracks/37/path = NodePath("Zombie/Butt/Body/LeftUpperArm/LeftLowerArm/LeftHand:rotation") +tracks/37/interp = 1 +tracks/37/loop_wrap = true +tracks/37/keys = { +"times": PackedFloat32Array(0, 0.25, 0.5, 0.75), +"transitions": PackedFloat32Array(1, 1, 1, 1), +"update": 0, +"values": [0.0, -0.025322, -0.077298, 0.803747] +} +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/interp = 1 +tracks/38/loop_wrap = true +tracks/38/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [SubResource("AtlasTexture_wfem3")] +} +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/interp = 1 +tracks/39/loop_wrap = true +tracks/39/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-4, 0)] +} +tracks/40/type = "value" +tracks/40/imported = false +tracks/40/enabled = true +tracks/40/path = NodePath("../../Mover:_speedControlMult") +tracks/40/interp = 1 +tracks/40/loop_wrap = true +tracks/40/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/41/type = "method" +tracks/41/imported = false +tracks/41/enabled = true +tracks/41/path = NodePath("../../ChompPlayer") +tracks/41/interp = 1 +tracks/41/loop_wrap = true +tracks/41/keys = { +"times": PackedFloat32Array(0.347597, 0.748081), +"transitions": PackedFloat32Array(1, 1), +"values": [{ +"args": [], +"method": &"Play" +}, { +"args": [], +"method": &"Play" +}] +} +tracks/42/type = "method" +tracks/42/imported = false +tracks/42/enabled = true +tracks/42/path = NodePath("../../Eatbox") +tracks/42/interp = 1 +tracks/42/loop_wrap = true +tracks/42/keys = { +"times": PackedFloat32Array(0.344634, 0.748081), +"transitions": PackedFloat32Array(1, 1), +"values": [{ +"args": [], +"method": &"Bite" +}, { +"args": [], +"method": &"Bite" +}] +} + +[sub_resource type="Animation" id="Animation_amqpj"] +resource_name = "basic_zombie_stand" +length = 0.8 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Zombie/Butt/Body/LeftUpperArm/LeftLowerArm:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-2, 14)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Zombie/Butt/Body/LeftUpperArm/LeftLowerArm:rotation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.4), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, 0.0574338] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Zombie/Butt/Body/LeftUpperArm/LeftLowerArm/LeftHand:position") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-1, 13)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Zombie/Butt/Body/LeftUpperArm/LeftLowerArm/LeftHand:rotation") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Zombie/Butt/Body/LeftUpperArm:position") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-1, -20)] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Zombie/Butt/Body/LeftUpperArm:rotation") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0, 0.4), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, 0.0580294] +} +tracks/6/type = "value" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("Zombie/Butt/Body/Head/LeftEye:position") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-4, -9)] +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("Zombie/Butt/Body/Head/LeftEye:rotation") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/8/type = "value" +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/path = NodePath("Zombie/Butt/Body/Head/RightEye:position") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-16, -8)] +} +tracks/9/type = "value" +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/path = NodePath("Zombie/Butt/Body/Head/RightEye:rotation") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/10/type = "value" +tracks/10/imported = false +tracks/10/enabled = true +tracks/10/path = NodePath("Zombie/Butt/Body/Head/Jaw:position") +tracks/10/interp = 1 +tracks/10/loop_wrap = true +tracks/10/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-3, 3)] +} +tracks/11/type = "value" +tracks/11/imported = false +tracks/11/enabled = true +tracks/11/path = NodePath("Zombie/Butt/Body/Head/Jaw:rotation") +tracks/11/interp = 1 +tracks/11/loop_wrap = true +tracks/11/keys = { +"times": PackedFloat32Array(0, 0.4), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, -0.103552] +} +tracks/12/type = "value" +tracks/12/imported = false +tracks/12/enabled = true +tracks/12/path = NodePath("Zombie/Butt/Body/Tie:position") +tracks/12/interp = 1 +tracks/12/loop_wrap = true +tracks/12/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-9, -21)] +} +tracks/13/type = "value" +tracks/13/imported = false +tracks/13/enabled = true +tracks/13/path = NodePath("Zombie/Butt/Body/Tie:rotation") +tracks/13/interp = 1 +tracks/13/loop_wrap = true +tracks/13/keys = { +"times": PackedFloat32Array(0, 0.4), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, 0.0636681] +} +tracks/14/type = "value" +tracks/14/imported = false +tracks/14/enabled = true +tracks/14/path = NodePath("Zombie/Butt/Body/RightUpperArm/RightLowerArm/RightHand:position") +tracks/14/interp = 1 +tracks/14/loop_wrap = true +tracks/14/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-1, 13)] +} +tracks/15/type = "value" +tracks/15/imported = false +tracks/15/enabled = true +tracks/15/path = NodePath("Zombie/Butt/Body/RightUpperArm/RightLowerArm/RightHand:rotation") +tracks/15/interp = 1 +tracks/15/loop_wrap = true +tracks/15/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/16/type = "value" +tracks/16/imported = false +tracks/16/enabled = true +tracks/16/path = NodePath("Zombie/Butt/Body/RightUpperArm/RightLowerArm:position") +tracks/16/interp = 1 +tracks/16/loop_wrap = true +tracks/16/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-2, 15)] +} +tracks/17/type = "value" +tracks/17/imported = false +tracks/17/enabled = true +tracks/17/path = NodePath("Zombie/Butt/Body/RightUpperArm/RightLowerArm:rotation") +tracks/17/interp = 1 +tracks/17/loop_wrap = true +tracks/17/keys = { +"times": PackedFloat32Array(0, 0.4), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, 0.0201917] +} +tracks/18/type = "value" +tracks/18/imported = false +tracks/18/enabled = true +tracks/18/path = NodePath("Zombie/Butt/Body/RightUpperArm:position") +tracks/18/interp = 1 +tracks/18/loop_wrap = true +tracks/18/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-14, -23)] +} +tracks/19/type = "value" +tracks/19/imported = false +tracks/19/enabled = true +tracks/19/path = NodePath("Zombie/Butt/Body/RightUpperArm:rotation") +tracks/19/interp = 1 +tracks/19/loop_wrap = true +tracks/19/keys = { +"times": PackedFloat32Array(0, 0.4), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, 0.0681766] +} +tracks/20/type = "value" +tracks/20/imported = false +tracks/20/enabled = true +tracks/20/path = NodePath("Zombie/Butt/LeftUpperLeg/LeftLowerLeg/LeftFoot:position") +tracks/20/interp = 1 +tracks/20/loop_wrap = true +tracks/20/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(6, 10)] +} +tracks/21/type = "value" +tracks/21/imported = false +tracks/21/enabled = true +tracks/21/path = NodePath("Zombie/Butt/LeftUpperLeg/LeftLowerLeg/LeftFoot:rotation") +tracks/21/interp = 1 +tracks/21/loop_wrap = true +tracks/21/keys = { +"times": PackedFloat32Array(0, 0.4), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, 0.0314044] +} +tracks/22/type = "value" +tracks/22/imported = false +tracks/22/enabled = true +tracks/22/path = NodePath("Zombie/Butt/LeftUpperLeg/LeftLowerLeg:position") +tracks/22/interp = 1 +tracks/22/loop_wrap = true +tracks/22/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-1, 13)] +} +tracks/23/type = "value" +tracks/23/imported = false +tracks/23/enabled = true +tracks/23/path = NodePath("Zombie/Butt/LeftUpperLeg/LeftLowerLeg:rotation") +tracks/23/interp = 1 +tracks/23/loop_wrap = true +tracks/23/keys = { +"times": PackedFloat32Array(0, 0.4), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, -0.24215] +} +tracks/24/type = "value" +tracks/24/imported = false +tracks/24/enabled = true +tracks/24/path = NodePath("Zombie/Butt/LeftUpperLeg:position") +tracks/24/interp = 1 +tracks/24/loop_wrap = true +tracks/24/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(6, 4)] +} +tracks/25/type = "value" +tracks/25/imported = false +tracks/25/enabled = true +tracks/25/path = NodePath("Zombie/Butt/LeftUpperLeg:rotation") +tracks/25/interp = 1 +tracks/25/loop_wrap = true +tracks/25/keys = { +"times": PackedFloat32Array(0, 0.4), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, 0.163163] +} +tracks/26/type = "value" +tracks/26/imported = false +tracks/26/enabled = true +tracks/26/path = NodePath("Zombie/Butt/RightUpperLeg/RightLowerLeg/RightFoot:position") +tracks/26/interp = 1 +tracks/26/loop_wrap = true +tracks/26/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-2, 14)] +} +tracks/27/type = "value" +tracks/27/imported = false +tracks/27/enabled = true +tracks/27/path = NodePath("Zombie/Butt/RightUpperLeg/RightLowerLeg/RightFoot:rotation") +tracks/27/interp = 1 +tracks/27/loop_wrap = true +tracks/27/keys = { +"times": PackedFloat32Array(0, 0.4), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, -0.163247] +} +tracks/28/type = "value" +tracks/28/imported = false +tracks/28/enabled = true +tracks/28/path = NodePath("Zombie/Butt/RightUpperLeg/RightLowerLeg:position") +tracks/28/interp = 1 +tracks/28/loop_wrap = true +tracks/28/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-2, 12)] +} +tracks/29/type = "value" +tracks/29/imported = false +tracks/29/enabled = true +tracks/29/path = NodePath("Zombie/Butt/RightUpperLeg/RightLowerLeg:rotation") +tracks/29/interp = 1 +tracks/29/loop_wrap = true +tracks/29/keys = { +"times": PackedFloat32Array(0, 0.4), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, 0.285349] +} +tracks/30/type = "value" +tracks/30/imported = false +tracks/30/enabled = true +tracks/30/path = NodePath("Zombie/Butt/RightUpperLeg:position") +tracks/30/interp = 1 +tracks/30/loop_wrap = true +tracks/30/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-6, 3)] +} +tracks/31/type = "value" +tracks/31/imported = false +tracks/31/enabled = true +tracks/31/path = NodePath("Zombie/Butt/RightUpperLeg:rotation") +tracks/31/interp = 1 +tracks/31/loop_wrap = true +tracks/31/keys = { +"times": PackedFloat32Array(0, 0.4), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, -0.0646202] +} +tracks/32/type = "value" +tracks/32/imported = false +tracks/32/enabled = true +tracks/32/path = NodePath("Zombie/Butt:position") +tracks/32/interp = 1 +tracks/32/loop_wrap = true +tracks/32/keys = { +"times": PackedFloat32Array(0, 0.4), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(5, -35), Vector2(6, -34)] +} +tracks/33/type = "value" +tracks/33/imported = false +tracks/33/enabled = true +tracks/33/path = NodePath("Zombie/Butt:rotation") +tracks/33/interp = 1 +tracks/33/loop_wrap = true +tracks/33/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/34/type = "value" +tracks/34/imported = false +tracks/34/enabled = true +tracks/34/path = NodePath("Zombie/Butt/Body:position") +tracks/34/interp = 1 +tracks/34/loop_wrap = true +tracks/34/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(1, -2)] +} +tracks/35/type = "value" +tracks/35/imported = false +tracks/35/enabled = true +tracks/35/path = NodePath("Zombie/Butt/Body:rotation") +tracks/35/interp = 1 +tracks/35/loop_wrap = true +tracks/35/keys = { +"times": PackedFloat32Array(0, 0.4), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, -0.0504377] +} +tracks/36/type = "value" +tracks/36/imported = false +tracks/36/enabled = true +tracks/36/path = NodePath("Zombie:position") +tracks/36/interp = 1 +tracks/36/loop_wrap = true +tracks/36/keys = { +"times": PackedFloat32Array(0.8), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(0, 0)] +} +tracks/37/type = "value" +tracks/37/imported = false +tracks/37/enabled = true +tracks/37/path = NodePath("Zombie:rotation") +tracks/37/interp = 1 +tracks/37/loop_wrap = true +tracks/37/keys = { +"times": PackedFloat32Array(0.8), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/38/type = "value" +tracks/38/imported = false +tracks/38/enabled = true +tracks/38/path = NodePath("../../Mover:_speedControlMult") +tracks/38/interp = 1 +tracks/38/loop_wrap = true +tracks/38/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_x5uj2"] +_data = { +&"RESET": SubResource("Animation_x5uj2"), +&"basic_zombie_eating": SubResource("Animation_wfem3"), +&"basic_zombie_stand": SubResource("Animation_amqpj"), +&"basic_zombie_walk": SubResource("Animation_vcc72"), +&"dead_lmao": SubResource("Animation_wn68q") +} + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_hxyad"] +size = Vector2(2, 48) + +[sub_resource type="Resource" id="Resource_ruqsf"] +resource_local_to_scene = true +script = ExtResource("7_b3p4o") +flat_value = 5.0 +percentage_value = 0.0 +mult_value = 1.0 + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_r4ug6"] +size = Vector2(16, 48) [sub_resource type="AnimationNodeTimeScale" id="AnimationNodeTimeScale_2q05d"] [sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_ccrjo"] +graph_offset = Vector2(-398, 63) nodes/TimeScale/node = SubResource("AnimationNodeTimeScale_2q05d") nodes/TimeScale/position = Vector2(60, 120) nodes/Tree/node = ExtResource("8_ckb7n") @@ -73,7 +2735,7 @@ node_connections = [&"TimeScale", 0, &"Tree", &"output", 0, &"TimeScale"] [sub_resource type="Resource" id="Resource_ckb7n"] resource_local_to_scene = true script = ExtResource("7_b3p4o") -flat_value = 0.2 +flat_value = 0.235 percentage_value = 0.0 mult_value = 1.0 @@ -82,20 +2744,282 @@ script = ExtResource("21_xnora") restartTreshold = -1.0 metadata/_custom_type_script = "uid://c1x4n4nqyq72f" -[node name="Zombie" type="Node2D"] +[node name="Zombie" type="Node2D" node_paths=PackedStringArray("_player", "_tree")] y_sort_enabled = true script = ExtResource("1_qq3f1") garlicSound = ExtResource("2_hh4qh") freezeSound = ExtResource("3_ltj46") MaxHP = 70.0 +_player = NodePath("CanvasGroup/basic_zombie_walk/AnimationPlayer") +_tree = NodePath("AnimationTree") [node name="CanvasGroup" type="CanvasGroup" parent="."] material = SubResource("ShaderMaterial_63ls2") script = ExtResource("3_rao3m") -[node name="Sprite" type="Sprite2D" parent="CanvasGroup"] -position = Vector2(-4, -55) -texture = ExtResource("2_4pdxh") +[node name="basic_zombie_walk" type="Node2D" parent="CanvasGroup"] + +[node name="Zombie" type="Skeleton2D" parent="CanvasGroup/basic_zombie_walk"] +modification_stack = SubResource("SkeletonModificationStack2D_wn68q") + +[node name="Butt" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie"] +position = Vector2(5, -35) +scale = Vector2(0.999912, 0.999912) +rest = Transform2D(1, 0, 0, 1, 5, -35) +editor_settings/show_bone_gizmo = false + +[node name="Butt" type="Sprite2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt"] +texture = SubResource("AtlasTexture_jvn5w") +centered = false +offset = Vector2(-10, -3) +metadata/_edit_lock_ = true + +[node name="RightUpperLeg" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt"] +position = Vector2(-6, 3) +scale = Vector2(0.999831, 0.999831) +rest = Transform2D(1, 0, 0, 1, -6, 3) +editor_settings/show_bone_gizmo = false + +[node name="Right_Upper_Leg" type="Sprite2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/RightUpperLeg"] +texture = SubResource("AtlasTexture_vmdbp") +centered = false +offset = Vector2(-6, -2) +metadata/_edit_lock_ = true + +[node name="RightLowerLeg" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/RightUpperLeg"] +position = Vector2(-2, 12) +scale = Vector2(0.999831, 0.999831) +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) +rest = Transform2D(1, 0, 0, 1, -2, 14) +auto_calculate_length_and_angle = false +length = 12.0 +bone_angle = 0.0 +editor_settings/show_bone_gizmo = false + +[node name="Right_Foot" type="Sprite2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/RightUpperLeg/RightLowerLeg/RightFoot"] +texture = SubResource("AtlasTexture_x1oyw") +centered = false +offset = Vector2(-4, -3) +metadata/_edit_lock_ = true + +[node name="Right_Lower_Leg" type="Sprite2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/RightUpperLeg/RightLowerLeg"] +position = Vector2(-18, -2) +texture = SubResource("AtlasTexture_vjx3c") +centered = false +offset = Vector2(12, 1) +metadata/_edit_lock_ = true + +[node name="LeftUpperLeg" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt"] +position = Vector2(6, 4) +scale = Vector2(0.99983, 0.99983) +rest = Transform2D(1, 0, 0, 1, 6, 4) +editor_settings/show_bone_gizmo = false + +[node name="Left_Upper_Leg" type="Sprite2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/LeftUpperLeg"] +texture = SubResource("AtlasTexture_f31xd") +centered = false +offset = Vector2(-4, -2) +metadata/_edit_lock_ = true + +[node name="LeftLowerLeg" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/LeftUpperLeg"] +position = Vector2(-1, 13) +scale = Vector2(0.999836, 0.999836) +rest = Transform2D(1, 0, 0, 1, -1, 13) +editor_settings/show_bone_gizmo = false + +[node name="Left_Lower_Leg" type="Sprite2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/LeftUpperLeg/LeftLowerLeg"] +texture = SubResource("AtlasTexture_od8jf") +centered = false +offset = Vector2(-1, 0) +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.999828, 0.999828) +rest = Transform2D(1, 0, 0, 1, 6, 10) +auto_calculate_length_and_angle = false +length = 12.0 +bone_angle = 160.0 +editor_settings/show_bone_gizmo = false + +[node name="Left_Foot" type="Sprite2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/LeftUpperLeg/LeftLowerLeg/LeftFoot"] +texture = SubResource("AtlasTexture_p4711") +centered = false +offset = Vector2(-14, -3) +metadata/_edit_lock_ = true + +[node name="Body" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt"] +position = Vector2(1, -2) +scale = Vector2(0.999829, 0.999829) +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.999826, 0.999826) +rest = Transform2D(1, 0, 0, 1, -14, -23) +editor_settings/show_bone_gizmo = false + +[node name="Right_Upper_Arm" type="Sprite2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/RightUpperArm"] +texture = SubResource("AtlasTexture_1bk2b") +centered = false +offset = Vector2(-4, -2) +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.999828, 0.999828) +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) +rest = Transform2D(1, 0, 0, 1, -1, 13) +auto_calculate_length_and_angle = false +length = 8.0 +bone_angle = 90.0 +editor_settings/show_bone_gizmo = false + +[node name="Right_Hand" type="Sprite2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/RightUpperArm/RightLowerArm/RightHand"] +texture = SubResource("AtlasTexture_y06yv") +centered = false +offset = Vector2(-4, -2) +metadata/_edit_lock_ = true + +[node name="Right_Lower_Arm" type="Sprite2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/RightUpperArm/RightLowerArm"] +texture = SubResource("AtlasTexture_lu8go") +centered = false +offset = Vector2(-5, -1) +metadata/_edit_lock_ = true + +[node name="Body" type="Sprite2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body"] +rotation = 0.00163735 +texture = SubResource("AtlasTexture_cdq7v") +centered = false +offset = Vector2(-15, -27) +metadata/_edit_lock_ = true + +[node name="Tie" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body"] +position = Vector2(-9, -21) +skew = -7.43866e-05 +rest = Transform2D(1, 0, 0, 1, -9, -21) +auto_calculate_length_and_angle = false +length = 24.0 +bone_angle = 100.0 +editor_settings/show_bone_gizmo = false + +[node name="Tie" type="Sprite2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Tie"] +texture = SubResource("AtlasTexture_e7wc3") +centered = false +offset = Vector2(-10, -1) +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) +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"] +texture = SubResource("AtlasTexture_wn68q") +centered = false +offset = Vector2(-20, -24) +metadata/_edit_lock_ = true + +[node name="Jaw" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head"] +position = Vector2(-3, 3) +scale = Vector2(0.999828, 0.999828) +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="RightEye" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head"] +position = Vector2(-16, -8) +rest = Transform2D(1, 0, 0, 1, -16, -8) +auto_calculate_length_and_angle = false +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="LeftEye" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head"] +position = Vector2(-4, -9) +rest = Transform2D(1, 0, 0, 1, -4, -9) +auto_calculate_length_and_angle = false +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="LeftUpperArm" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body"] +position = Vector2(-1, -20) +scale = Vector2(0.999828, 0.999828) +rest = Transform2D(1, 0, 0, 1, -1, -20) +editor_settings/show_bone_gizmo = false + +[node name="Left_Upper_Arm" type="Sprite2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm"] +position = Vector2(-37, 10) +texture = SubResource("AtlasTexture_djocr") +centered = false +offset = Vector2(33, -12) +metadata/_edit_lock_ = true + +[node name="LeftLowerArm" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm"] +position = Vector2(-2, 14) +scale = Vector2(0.999828, 0.999828) +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.999826, 0.999826) +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_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="AnimationPlayer" type="AnimationPlayer" parent="CanvasGroup/basic_zombie_walk"] +libraries = { +&"": SubResource("AnimationLibrary_x5uj2") +} [node name="Hitbox" type="Area2D" parent="."] collision_layer = 8 @@ -115,16 +3039,11 @@ _damage = SubResource("Resource_ruqsf") position = Vector2(-10, -24) shape = SubResource("RectangleShape2D_r4ug6") -[node name="AnimationPlayer" type="AnimationPlayer" parent="."] -libraries = { -&"": SubResource("AnimationLibrary_sq25x"), -&"basic_zombie": ExtResource("6_ckb7n") -} - [node name="AnimationTree" type="AnimationTree" parent="." node_paths=PackedStringArray("entity")] +root_node = NodePath("../CanvasGroup/basic_zombie_walk") tree_root = SubResource("AnimationNodeBlendTree_ccrjo") advance_expression_base_node = NodePath("../Eatbox") -anim_player = NodePath("../AnimationPlayer") +anim_player = NodePath("../CanvasGroup/basic_zombie_walk/AnimationPlayer") parameters/TimeScale/scale = 1.0 script = ExtResource("11_ccrjo") entity = NodePath("..") diff --git a/scenes/prototype_survival.tscn b/scenes/prototype_survival.tscn index 24ba82e..96be60b 100644 --- a/scenes/prototype_survival.tscn +++ b/scenes/prototype_survival.tscn @@ -182,7 +182,6 @@ size = Vector2(282, 399) [node name="Data" type="Node" parent="."] script = ExtResource("1_tnxdx") -SunCount = 50 [node name="Camera2D" type="Camera2D" parent="."] position = Vector2(481, 200) diff --git a/scenes/templates/plant_template.tscn b/scenes/templates/plant_template.tscn index 6404adc..68c637d 100644 --- a/scenes/templates/plant_template.tscn +++ b/scenes/templates/plant_template.tscn @@ -3,8 +3,10 @@ [ext_resource type="Script" uid="uid://dli2i6albvugt" path="res://scripts/components/plants/RuntimePlantData.cs" id="1_324sd"] [ext_resource type="Script" uid="uid://dwlwi42smgxkb" path="res://scripts/components/TimeScalableAnimationTree.cs" id="2_e75pf"] -[node name="PlantTemplate" type="Node2D"] +[node name="PlantTemplate" type="Node2D" node_paths=PackedStringArray("_player", "_tree")] script = ExtResource("1_324sd") +_player = NodePath("AnimationPlayer") +_tree = NodePath("AnimationTree") [node name="Sprite2D" type="Sprite2D" parent="."] use_parent_material = true diff --git a/scripts/components/Entity.cs b/scripts/components/Entity.cs index 01e4254..c43cae4 100644 --- a/scripts/components/Entity.cs +++ b/scripts/components/Entity.cs @@ -43,17 +43,19 @@ public partial class Entity : Node2D #endregion #region Brain + [Export] private AnimationPlayer _player; + [Export] private AnimationTree _tree; public virtual void DisableBrain() { - GetNode("AnimationPlayer").ProcessMode = ProcessModeEnum.Always; - GetNode("AnimationTree").ProcessMode = ProcessModeEnum.Always; + _player.ProcessMode = ProcessModeEnum.Always; + _tree.ProcessMode = ProcessModeEnum.Always; ProcessMode = ProcessModeEnum.Disabled; } public virtual void EnableBrain() { - GetNode("AnimationPlayer").ProcessMode = ProcessModeEnum.Inherit; - GetNode("AnimationTree").ProcessMode = ProcessModeEnum.Inherit; + _player.ProcessMode = ProcessModeEnum.Inherit; + _tree.ProcessMode = ProcessModeEnum.Inherit; ProcessMode = ProcessModeEnum.Inherit; } #endregion diff --git a/translations/plants.csv b/translations/plants.csv index f322a3b..6a635ef 100644 --- a/translations/plants.csv +++ b/translations/plants.csv @@ -1,83 +1,83 @@ keys,en,ru aloe,Aloe,Алоэ aloe_desc,"[p]Aloe heals injured plants.[/p] -[p]Health points: [color=DARK_RED]3 bites[/color][/p] +[p]Health points: [color=DARK_RED]6 bites[/color][/p] [p]Reload time: [color=DARK_RED]15 seconds[/color].[/p] [p]Ability recharge time: [color=DARK_RED]20 seconds[/color].[/p] [p]Heals plant when it has [color=DARK_RED]third[/color] of its health.[/p]","Алоэ лечит израненные растения. -Очки здоровья: [color=dark_red]3 укуса[/color]. +Очки здоровья: [color=dark_red]6 укусов[/color]. Время перезарядки: [color=dark_red]15 секунд[/color]. Время перезарядки способности: [color=dark_red]20 секунд[/color]. Лечит растения [color=DARK_RED]с третью[/color] здоровья." garlic,Garlic,Чеснок garlic_desc,"[p]Redirects zombies that bite it.[/p] -[p]Health points: [color=DARK_RED]20 bites[/color][/p] +[p]Health points: [color=DARK_RED]40 bites[/color][/p] [p]Reload time: [color=DARK_RED]15 seconds[/color].[/p]","Перенаправляет зомби, которые его кусают. -Очки здоровья: [color=DARK_RED]20 укусов[/color] +Очки здоровья: [color=DARK_RED]40 укусов[/color] Время перезарядки: [color=DARK_RED]15 секунд[/color]." peashooter,Peashooter,Горохострел peashooter_desc,"[p]Simply shoots peas at zombies on the lane[/p] -[p]Health points: [color=DARK_RED]3 bites[/color].[/p] +[p]Health points: [color=DARK_RED]6 bites[/color].[/p] [p]Reload time: [color=DARK_RED]5 seconds[/color].[/p] [p]Pea damage: [color=DARK_RED]1 pea[/color].[/p] [p]Firerate: [color=DARK_RED]1.5 seconds[/color].[/p]","Просто стреляет в зомби на линии. -Очки здоровья: [color=DARK_RED]3 укуса[/color]. +Очки здоровья: [color=DARK_RED]6 укусов[/color]. Время перезарядки: [color=DARK_RED]5 секунд[/color]. Урон от гороха: [color=DARK_RED]1 горошина[/color]. Задержка стрельбы: [color=DARK_RED]1.5 секунды[/color]." potatomine,Potato mine,Картофельная мина potatomine_desc,"[p]Explodes when stepped on. Needs some time to prime.[/p] -[p]Health points: [color=DARK_RED]2 bites[/color].[/p] +[p]Health points: [color=DARK_RED]4 bites[/color].[/p] [p]Reload time: [color=DARK_RED]25 seconds[/color].[/p] [p]Explosion damage: [color=DARK_RED]600 peas[/color].[/p] [p]Prime time: [color=DARK_RED]15 seconds[/color].[/p]","Взрывается когда на неё наступают. Требует некоторое время для роста. -Очки здоровья: [color=DARK_RED]2 Укуса[/color]. +Очки здоровья: [color=DARK_RED]4 Укуса[/color]. Время перезарядки: [color=DARK_RED]25 seconds[/color]. Урон от взрыва: [color=DARK_RED]600 горошин[/color]. Время роста: [color=DARK_RED]15 seconds[/color]." snowpea,Snowpea,Снежный горох snowpea_desc,"[p]Shoots slowing peas at zombies.[/p] -[p]Health points: [color=DARK_RED]3 bites[/color].[/p] +[p]Health points: [color=DARK_RED]6 bites[/color].[/p] [p]Reload time: [color=DARK_RED]5 seconds[/color].[/p] [p]Pea damage: [color=DARK_RED]1 pea[/color].[/p] [p]Firerate: [color=DARK_RED]1.5 seconds[/color].[/p] [p]Slow percentage: [color=STEEL_BLUE]25%[/color].[/p]","Стреляет замедляющими горошинами в зомби. -Очки здоровья: [color=DARK_RED]3 укуса[/color]. +Очки здоровья: [color=DARK_RED]6 укусов[/color]. Время перезарядки: [color=DARK_RED]5 секунд[/color]. Урон от гороха: [color=DARK_RED]1 горошина[/color]. Задержка стрельбы: [color=DARK_RED]1.5 секунды[/color]. Процент замедления: [color=STEEL_BLUE]25%[/color]." spikeweed,Spikeweed,Колючка spikeweed_desc,"[p]Attacks zombies that step on it.[/p] -[p]Health points: [color=DARK_RED]3 bites[/color].[/p] +[p]Health points: [color=DARK_RED]6 bites[/color].[/p] [p]Reload time: [color=DARK_RED]5 seconds[/color].[/p] [p]Damage per second: [color=DARK_RED]0.9 peas[/color].[/p]","Атакует наступающих на неё зомби. -Очки здоровья: [color=DARK_RED]3 укуса[/color]. +Очки здоровья: [color=DARK_RED]6 укусов[/color]. Время перезарядки: [color=DARK_RED]5 секунд[/color]. Урон в секунду: [color=DARK_RED]0.9 горошин[/color]." sunflower,Sunflower,Подсолнух sunflower_desc,"[p]Produces sun over time.[/p] -[p]Health points: [color=DARK_RED]3 bites[/color][/p] +[p]Health points: [color=DARK_RED]6 bites[/color][/p] [p]Reload time: [color=DARK_RED]5 seconds[/color].[/p] [p]Initial sun production time: [color=DARK_RED]12 seconds[/color].[/p] [p]Sun production time: [color=DARK_RED]24 seconds[/color](After first sun produced).[/p]","Производит солнце время от времени. -Очки здоровья: [color=DARK_RED]3 укуса[/color] +Очки здоровья: [color=DARK_RED]6 укусов[/color] Время перезарядки: [color=DARK_RED]5 секунд[/color]. Изначальная задержка выработки солнца: [color=DARK_RED]12 секунд[/color]. Задержка выработки солнца: [color=DARK_RED]24 секунды[/color](После первого солнца)." threepeater,Threepeater,Тристрел threepeater_desc,"[p]Shoots peas at zombies in three lanes.[/p] -[p]Health points: [color=DARK_RED]3 bites[/color].[/p] +[p]Health points: [color=DARK_RED]6 bites[/color].[/p] [p]Reload time: [color=DARK_RED]5 seconds[/color].[/p] [p]Pea damage: [color=DARK_RED]1 pea[/color] ([color=DARK_RED]3 pea[/color] when in close quarters).[/p] [p]Firerate: [color=DARK_RED]1.6 seconds[/color].[/p]","Стреляет в зомби по трём линиям. -Очки здоровья: [color=DARK_RED]3 укуса[/color]. +Очки здоровья: [color=DARK_RED]6 укусов[/color]. Время перезарядки: [color=DARK_RED]5 секунд[/color]. Урон от гороха: [color=DARK_RED]1 горошина[/color] ([color=DARK_RED]3 горошины[/color] вблизи). Задержка стрельбы: [color=DARK_RED]1.6 секунд[/color]." wallnut,Wallnut,Стенорех wallnut_desc,"[p]Absorbs zombie damage. Does nothing special[/p] -[p]Health points: [color=DARK_RED]60 bites[/color][/p] +[p]Health points: [color=DARK_RED]120 bites[/color][/p] [p]Reload time: [color=DARK_RED]20 seconds[/color].[/p]","Принимает на себя урон от зомби. Ничего интересного. -Очки здоровья: [color=DARK_RED]60 укусов[/color] +Очки здоровья: [color=DARK_RED]120 укусов[/color] Время перезарядки: [color=DARK_RED]20 секунд[/color]." diff --git a/translations/plants.en.translation b/translations/plants.en.translation index 80e6a4e00da9602b4a74c264832f6155fef0d377..d431b30050502477ceb40a06eb9acba004e1ec69 100644 GIT binary patch literal 3102 zcmc&%e`s4(6n;s%EPaX1IyH$dwhhI(6*XzrWjNDnYSSreZAdDHZrST=`qsWRO=4bZ zQ!x`{Vu!AC4hD))n2do=MGG?U4`Ed2hT5W4|M15~ohT?eMG6&p^}8?cC9hqY*5Z!` zANSsK&$;)U@0@#Y5)1|JqvWp)ErA}m5$H&!`9c0MuD3JA#)TN0<`Z#d|=wN9+l%@H@<(!-1Qid?%oVjM&XpT{(t^BEAvy%>|QhVzL60c7W&* z9C_m&=2dk5M1Q?XzW3sD74z`34zjyda+7iR^oLkb*&kEVI`4-kUm^RDHL3u`kK@1X zm^5KbDum$U>7QS(Lm)4r|1zN1v%6a+PQysyMX|46S2=S%l#W981R(C2Ia3RJvKHY( zu|GLhc7qNMT!8EofSi_UU=m8cSb~G0cR>^JS@gyYVXIj@aN=I?;Q$>M_q^v7BlWr2 z`!kkry?V2b7I#8_$WpgJH@5hKyP2TBCF0rV^gx?PH4(K{@Gboh6|>sBjj>=;zrE>; zY8#z16C;av^L1Ty?sB})F~5wl+f~9Cu38bm_>}X4HRo!1VcSZB$)@aCGiTipu9S9$ z-_$NP72~5a8^LCS!>+S_dA!ST(6!HLbS`%AS~^srHNfB>;e&W31~T+Jmo|yAU!hs= zd5o>o&ps{rHm3RLX6;%swUqLusZyo4RHg!%Q)REs=M${5s?TN=q8D@5YH&R1FKQ7N zi)@u6;nHp0cbK&b3;sX67X1P1xv6%oce<*2M11f^n{^^qG5b=tHx*mF-LhSyxCJJYGB_>q#l_KKbuZ%qBAq1V>G#V%?6r#B?)am!PG0klc`6KS_w@SB@ z9GS#ik{{rPIj&dc&ZqmpE)K}&y~*#rIQM^Y*MjQFKF$m^7CR=cxOmsn8j?a9itmpl zhPjj+Qb4e69<|b!Z}}cowWesWYN^|Nm4)y?xziACx}1eO_9I7^DR6g*3q4fY*4?18 zUC>6h_-;SjZ}_^Fmdr+N;#MhmLXp_H(V?CG&ZOKUA=ORFS2~P`pIO_p_g@|vYC*GQ z=>xp2aMzAc@pg-zp~Ocvcbui=*z+f))ZOb*(Wp8p;={@ENrf<9*MzA{IweMO!;Oe7 n`h$n|N9k$1A-uvXq`Cy_-D`Ovi#_@zspR(#`K=SgKZCyjX!${T literal 1205 zcmV;m1WNl-Q$s@n000005C8xm3;+O~1ONaiwJ-f(APb!&0EYC%N`RVm4zgvI6(*i0 zw=rV%v%5?Yn>iY4w@)_jsZb%k%1LN+5Pipc`G{(K?!6yoa${AT@=B;~Re8Q>Eh*mk z=3hcZw@I7f+m-VU9XV`e0-`JR39_u*y|F{2F-z8E~wIymt>HlF*A7v#x z*EF0&DiN!YpJXNS=>HA;e;WG_o#wzPSA&idy~Yj&tf{S6+)tO-KR(XAe|5?K>s0xF zDE~58ff$vQs`3QcBKH5+@&7gcH-Rl284!y4xbl5~t^R+DP5VcSAcI~^H^Ah0q5u2me;@dl zVX0M+!Nk5&^eBVlVM)-mfI+k;{O{dA%t;q3X^zbPpZ}+4t{4S3s;wQLldckvF4}y> z-pGLHQ93zJ7d6sS!k$QNE}I`(i=f1StJ6OhIhBan)0T&i$0=sUvwrfj5$3jiYp@oIva_UgfD9=fl!x#4xXDER6+9~$iOvSljp|o06 zz$urtF+1pXUq?G~99lFVB~?I{+2C%Y+ykg2LecZ{9joaZYYD@q$I_>rpG4G`mXbW!)e}@HmpA z9u)oG)P|F_sv7L)%a~eoII?gS#);+zAaw`*CdGNUs7**9^cob==Y-v^1`S-#t!{b| z8mjG$2aa~p#3=B>S*e~|4NS&R$JqqEw9si?(DGf;{1OuLc|~!5LQWm`1Xd!Bp<*W) zxq!m1_zO`q^cMYoNW!363@DYL*-LFgE`i4rgxMtOr8drTVZkvH>PQRcB#_zE>3Fk% zov0zLB1kDSBQmt0BBP8)w4)f zX6+hUJu16L9DY=@5zRPgnt=aX!Yq&!^&@7x=W4u3x-Ri_3hb)5^=pB{=o+B>`j`QA z;jEh<9cG=WPTkEn^!O{h!r}tNv16^#y@7Mrvst;*UjLkMtt|J8%Y0}PO&18Tu(W@Q zyH$t5d_HLE4|E~zL(4GYi3UOUWsu@m5RMH{@RO*afNDZD(*NTVKz`) z3djfHNpF^x<*+j_@B`T({3O$ye-Q@*!!e+qW0T#OHd delta 456 zcmeyX@KIsIRYu8TCI$v^1_)*Z(jeUO#rJC5(*NTVLDJ; z3djfHNpF^xrLi+G@B`T({3O$ye-;M=!x5mKBa_{j9_|M`AY(4uFi`)E^PnD6;3}}hh T