zombie animation impl

This commit is contained in:
Rendo 2025-07-11 03:27:24 +05:00
commit 6c0730e1c9
14 changed files with 3173 additions and 215 deletions

Binary file not shown.

View file

@ -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)

View file

@ -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

View file

@ -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"]

View file

@ -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")

File diff suppressed because it is too large Load diff

View file

@ -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)

View file

@ -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

View file

@ -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>("AnimationPlayer").ProcessMode = ProcessModeEnum.Always;
GetNode<AnimationTree>("AnimationTree").ProcessMode = ProcessModeEnum.Always;
_player.ProcessMode = ProcessModeEnum.Always;
_tree.ProcessMode = ProcessModeEnum.Always;
ProcessMode = ProcessModeEnum.Disabled;
}
public virtual void EnableBrain()
{
GetNode<AnimationPlayer>("AnimationPlayer").ProcessMode = ProcessModeEnum.Inherit;
GetNode<AnimationTree>("AnimationTree").ProcessMode = ProcessModeEnum.Inherit;
_player.ProcessMode = ProcessModeEnum.Inherit;
_tree.ProcessMode = ProcessModeEnum.Inherit;
ProcessMode = ProcessModeEnum.Inherit;
}
#endregion

View file

@ -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]."

1 keys en ru
2 aloe Aloe Алоэ
3 aloe_desc [p]Aloe heals injured plants.[/p] [p]Health points: [color=DARK_RED]3 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] [p]Aloe heals injured plants.[/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]15 секунд[/color]. Время перезарядки способности: [color=dark_red]20 секунд[/color]. Лечит растения [color=DARK_RED]с третью[/color] здоровья. Алоэ лечит израненные растения. Очки здоровья: [color=dark_red]6 укусов[/color]. Время перезарядки: [color=dark_red]15 секунд[/color]. Время перезарядки способности: [color=dark_red]20 секунд[/color]. Лечит растения [color=DARK_RED]с третью[/color] здоровья.
4 garlic Garlic Чеснок
5 garlic_desc [p]Redirects zombies that bite it.[/p] [p]Health points: [color=DARK_RED]20 bites[/color][/p] [p]Reload time: [color=DARK_RED]15 seconds[/color].[/p] [p]Redirects zombies that bite it.[/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]15 секунд[/color]. Перенаправляет зомби, которые его кусают. Очки здоровья: [color=DARK_RED]40 укусов[/color] Время перезарядки: [color=DARK_RED]15 секунд[/color].
6 peashooter Peashooter Горохострел
7 peashooter_desc [p]Simply shoots peas at zombies on the lane[/p] [p]Health points: [color=DARK_RED]3 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]Simply shoots peas at zombies on the lane[/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]5 секунд[/color]. Урон от гороха: [color=DARK_RED]1 горошина[/color]. Задержка стрельбы: [color=DARK_RED]1.5 секунды[/color]. Просто стреляет в зомби на линии. Очки здоровья: [color=DARK_RED]6 укусов[/color]. Время перезарядки: [color=DARK_RED]5 секунд[/color]. Урон от гороха: [color=DARK_RED]1 горошина[/color]. Задержка стрельбы: [color=DARK_RED]1.5 секунды[/color].
8 potatomine Potato mine Картофельная мина
9 potatomine_desc [p]Explodes when stepped on. Needs some time to prime.[/p] [p]Health points: [color=DARK_RED]2 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] [p]Explodes when stepped on. Needs some time to prime.[/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]25 seconds[/color]. Урон от взрыва: [color=DARK_RED]600 горошин[/color]. Время роста: [color=DARK_RED]15 seconds[/color]. Взрывается когда на неё наступают. Требует некоторое время для роста. Очки здоровья: [color=DARK_RED]4 Укуса[/color]. Время перезарядки: [color=DARK_RED]25 seconds[/color]. Урон от взрыва: [color=DARK_RED]600 горошин[/color]. Время роста: [color=DARK_RED]15 seconds[/color].
10 snowpea Snowpea Снежный горох
11 snowpea_desc [p]Shoots slowing peas at zombies.[/p] [p]Health points: [color=DARK_RED]3 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] [p]Shoots slowing peas at zombies.[/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]5 секунд[/color]. Урон от гороха: [color=DARK_RED]1 горошина[/color]. Задержка стрельбы: [color=DARK_RED]1.5 секунды[/color]. Процент замедления: [color=STEEL_BLUE]25%[/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].
12 spikeweed Spikeweed Колючка
13 spikeweed_desc [p]Attacks zombies that step on it.[/p] [p]Health points: [color=DARK_RED]3 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] [p]Attacks zombies that step on it.[/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]5 секунд[/color]. Урон в секунду: [color=DARK_RED]0.9 горошин[/color]. Атакует наступающих на неё зомби. Очки здоровья: [color=DARK_RED]6 укусов[/color]. Время перезарядки: [color=DARK_RED]5 секунд[/color]. Урон в секунду: [color=DARK_RED]0.9 горошин[/color].
14 sunflower Sunflower Подсолнух
15 sunflower_desc [p]Produces sun over time.[/p] [p]Health points: [color=DARK_RED]3 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] [p]Produces sun over time.[/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]5 секунд[/color]. Изначальная задержка выработки солнца: [color=DARK_RED]12 секунд[/color]. Задержка выработки солнца: [color=DARK_RED]24 секунды[/color](После первого солнца). Производит солнце время от времени. Очки здоровья: [color=DARK_RED]6 укусов[/color] Время перезарядки: [color=DARK_RED]5 секунд[/color]. Изначальная задержка выработки солнца: [color=DARK_RED]12 секунд[/color]. Задержка выработки солнца: [color=DARK_RED]24 секунды[/color](После первого солнца).
16 threepeater Threepeater Тристрел
17 threepeater_desc [p]Shoots peas at zombies in three lanes.[/p] [p]Health points: [color=DARK_RED]3 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] [p]Shoots peas at zombies in three lanes.[/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]5 секунд[/color]. Урон от гороха: [color=DARK_RED]1 горошина[/color] ([color=DARK_RED]3 горошины[/color] вблизи). Задержка стрельбы: [color=DARK_RED]1.6 секунд[/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].
18 wallnut Wallnut Стенорех
19 wallnut_desc [p]Absorbs zombie damage. Does nothing special[/p] [p]Health points: [color=DARK_RED]60 bites[/color][/p] [p]Reload time: [color=DARK_RED]20 seconds[/color].[/p] [p]Absorbs zombie damage. Does nothing special[/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]20 секунд[/color]. Принимает на себя урон от зомби. Ничего интересного. Очки здоровья: [color=DARK_RED]120 укусов[/color] Время перезарядки: [color=DARK_RED]20 секунд[/color].
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83

Binary file not shown.

Binary file not shown.