zombie animation impl
This commit is contained in:
parent
a3e08c02d8
commit
6c0730e1c9
14 changed files with 3173 additions and 215 deletions
BIN
resources/animations/zombies/basic_zombie_anim.res
Normal file
BIN
resources/animations/zombies/basic_zombie_anim.res
Normal file
Binary file not shown.
Binary file not shown.
|
|
@ -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)
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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"]
|
||||
|
|
|
|||
|
|
@ -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
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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]."
|
||||
|
|
|
|||
|
Binary file not shown.
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue