From ad8ecb875a3e665583c93981f543ad4e47efa2bc Mon Sep 17 00:00:00 2001 From: Rendo Date: Sun, 22 Jun 2025 23:30:37 +0500 Subject: [PATCH] Changed zombie speed from int to floatmod, added hobo --- resources/animations/zombies/basic_zombie.res | Bin 0 -> 633 bytes scenes/entities/Zombies/hobo.tscn | 209 ++++++++++++++++++ scenes/entities/Zombies/zombie.tscn | 168 +++++--------- scripts/components/zombies/EatBox.cs | 17 +- scripts/components/zombies/ZombieMover.cs | 36 +-- .../behaviours/BasicZombieBehaviour.cs | 19 -- .../behaviours/BasicZombieBehaviour.cs.uid | 1 - .../zombies/behaviours/HoboBehaviour.cs | 17 ++ .../zombies/behaviours/HoboBehaviour.cs.uid | 1 + 9 files changed, 310 insertions(+), 158 deletions(-) create mode 100644 resources/animations/zombies/basic_zombie.res create mode 100644 scenes/entities/Zombies/hobo.tscn delete mode 100644 scripts/components/zombies/behaviours/BasicZombieBehaviour.cs delete mode 100644 scripts/components/zombies/behaviours/BasicZombieBehaviour.cs.uid create mode 100644 scripts/components/zombies/behaviours/HoboBehaviour.cs create mode 100644 scripts/components/zombies/behaviours/HoboBehaviour.cs.uid diff --git a/resources/animations/zombies/basic_zombie.res b/resources/animations/zombies/basic_zombie.res new file mode 100644 index 0000000000000000000000000000000000000000..2f0e0ba639d64beee6a4132b8cebb6cab25b854a GIT binary patch literal 633 zcmV-<0*3ukQ$s@n000005C8zn2LJ$J0ssIgwJ-f(%Lcs?00tOSJy30u4rmZF(-w?* z2~<_hJ530N)2#g_%eVL5Yi!fB+*>Yy`dw9)z*dK=M7btJUA$vNYyBTa8)5%wKLtJj zI{-xh>-H(!_`+RN#a2#NbZQrC;#~f3Id4haU=pEL4F3iEU+@koR+t!}h#2u7z&Wf8 zH4QMf*4Lng|CRq37k|9*xa4if@u*d@b&$ek+Z^R<9bd`mBq7brQtru{VSWDxoGsJ1 z1)EydwA3ZH=l=j-7N3$aYCLKT3^D3`85K@WPFS?=&*5`9f?91Vl;$?*MG$Ffnkj`$ zzB6*Jd7huU!DKu1An9&0aF?*v(o5u9>F z?w?-Bf&=(Id}s~}vNw3jh87664v4@-r+_1sQgX}wb1CvZCShw2Np-~!P{DWBf+7A= zvCd?jan;NEZ^u(XC+0G1dkyN5pE3T57)Y>jalwt97{;OB;tVAGbiclVSiX-;98{hq zFzOE_ps%S&<3s$hP?CuY+lGBe5?7EtwlHuyDbqz2X>0+XVO{jQd2`i^HU+$ literal 0 HcmV?d00001 diff --git a/scenes/entities/Zombies/hobo.tscn b/scenes/entities/Zombies/hobo.tscn new file mode 100644 index 0000000..45f26a4 --- /dev/null +++ b/scenes/entities/Zombies/hobo.tscn @@ -0,0 +1,209 @@ +[gd_scene load_steps=31 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="Texture2D" uid="uid://cse1504ao4g8e" path="res://assets/sprites/atlases/zombies/hobo.png" id="3_6qr4h"] +[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://fd4im1fmwc5n" path="res://scripts/components/Armor.cs" id="4_w8pya"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_w8pya"] +resource_local_to_scene = true +shader = ExtResource("2_6qr4h") +shader_parameter/blend_color = Color(1, 1, 1, 1) +shader_parameter/amount = 0.0 + +[sub_resource type="AtlasTexture" id="AtlasTexture_w8pya"] +atlas = ExtResource("3_6qr4h") +region = Rect2(0, 15, 40, 49) + +[sub_resource type="AtlasTexture" id="AtlasTexture_5selg"] +atlas = ExtResource("3_6qr4h") +region = Rect2(3, 0, 35, 11) + +[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)] +} + +[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(0, 1.93333), +"transitions": PackedFloat32Array(1, 1), +"values": [{ +"args": [0.0], +"method": &"SetSpeedMult" +}, { +"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)] +} + +[sub_resource type="Animation" id="Animation_5selg"] +resource_name = "walk" +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(0), +"transitions": PackedFloat32Array(1), +"values": [{ +"args": [0.1], +"method": &"SetSpeedFlat" +}] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_5selg"] +_data = { +&"can_destroy": SubResource("Animation_w8pya"), +&"run": SubResource("Animation_5selg") +} + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_h0rfo"] +animation = &"basic_zombie/eat" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_nog33"] +animation = &"basic_zombie/idle" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_g2uel"] +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" + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_vxhht"] +advance_mode = 2 + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_y2ivb"] +advance_mode = 2 +advance_expression = "get(\"isEating\") == true" + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_7d3k4"] +advance_mode = 2 +advance_expression = "get(\"isEating\") == true" + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_qg8rq"] +advance_mode = 2 +advance_expression = "get(\"canDestroyed\") == false" + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_4248q"] +advance_mode = 2 +advance_expression = "get(\"canDestroyed\") == true" + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_tu6af"] +advance_mode = 2 +advance_expression = "get(\"isEating\") == true" + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_yalvk"] +advance_mode = 2 +advance_expression = "get(\"canDestroyed\") == true and get(\"isEating\") == false" + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_7jlle"] +switch_mode = 2 +advance_mode = 2 + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_w1b1s"] +advance_mode = 2 +advance_expression = "get(\"canDestroyed\") == false and get(\"isEating\") == false" + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_02fim"] +advance_mode = 2 +advance_expression = "get(\"canDestroyed\") == true" + +[sub_resource type="AnimationNodeStateMachine" id="AnimationNodeStateMachine_xg3p6"] +states/End/position = Vector2(1183, 100) +states/basic_zombie_eat/node = SubResource("AnimationNodeAnimation_h0rfo") +states/basic_zombie_eat/position = Vector2(711, 206) +states/basic_zombie_idle/node = SubResource("AnimationNodeAnimation_nog33") +states/basic_zombie_idle/position = Vector2(368, 100) +states/basic_zombie_walk/node = SubResource("AnimationNodeAnimation_g2uel") +states/basic_zombie_walk/position = Vector2(711, -21) +states/hobo_zombie_can_destroy/node = SubResource("AnimationNodeAnimation_02fim") +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(55, -28) + +[node name="Hobo" node_paths=PackedStringArray("_armor") instance=ExtResource("1_fnu7s")] +_armor = NodePath("CanArmor") + +[node name="CanvasGroup" parent="." index="0"] +material = SubResource("ShaderMaterial_w8pya") + +[node name="Can" type="Node2D" parent="CanvasGroup" index="1"] + +[node name="Sprite2D" type="Sprite2D" parent="CanvasGroup/Can" index="0"] +position = Vector2(3, -40) +texture = SubResource("AtlasTexture_w8pya") + +[node name="Sprite2D2" type="Sprite2D" parent="CanvasGroup/Can" index="1"] +z_index = -1 +position = Vector2(1, -63) +texture = SubResource("AtlasTexture_5selg") + +[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"] +tree_root = SubResource("AnimationNodeStateMachine_xg3p6") +advance_expression_base_node = NodePath("../Behaviour") + +[node name="CanArmor" type="Node" parent="." index="7"] +script = ExtResource("4_w8pya") +_maxHP = 100 +metadata/_custom_type_script = "uid://fd4im1fmwc5n" + +[node name="Behaviour" type="Node" parent="." index="8" node_paths=PackedStringArray("_eatBox", "_animationTree")] +script = ExtResource("4_5selg") +_eatBox = NodePath("../Eatbox") +_animationTree = NodePath("../AnimationTree") + +[connection signal="ArmorLost" from="CanArmor" to="CanvasGroup/Can" method="queue_free"] +[connection signal="ArmorLost" from="CanArmor" to="Behaviour" method="Trashed"] diff --git a/scenes/entities/Zombies/zombie.tscn b/scenes/entities/Zombies/zombie.tscn index 657c657..fdbe125 100644 --- a/scenes/entities/Zombies/zombie.tscn +++ b/scenes/entities/Zombies/zombie.tscn @@ -1,132 +1,62 @@ -[gd_scene load_steps=28 format=3 uid="uid://co11v3w8hbwgf"] +[gd_scene load_steps=27 format=3 uid="uid://co11v3w8hbwgf"] -[ext_resource type="Script" path="res://scripts/components/zombies/RuntimeZombieData.cs" id="1_qq3f1"] +[ext_resource type="Script" uid="uid://dildme6epx8l4" path="res://scripts/components/zombies/RuntimeZombieData.cs" id="1_qq3f1"] [ext_resource type="Texture2D" uid="uid://bwwbkybryi6k0" path="res://assets/sprites/zombie.tres" id="2_4pdxh"] -[ext_resource type="Shader" path="res://assets/shaders/CG_color_blender.gdshader" id="2_srwwe"] -[ext_resource type="Script" path="res://scripts/components/zombies/EatBox.cs" id="3_2aulo"] -[ext_resource type="Script" path="res://scripts/components/FlashComponent.cs" id="3_rao3m"] -[ext_resource type="Script" path="res://scripts/components/zombies/ZombieMover.cs" id="4_u5syx"] -[ext_resource type="Script" path="res://scripts/components/zombies/behaviours/BasicZombieBehaviour.cs" id="5_2pvkr"] +[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="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="Script" uid="uid://c3cfnrmnnuqms" path="res://addons/floatmodifiers/FloatModifiers.cs" id="7_b3p4o"] [ext_resource type="AudioStream" uid="uid://xoy5ct1t17k5" path="res://assets/audio/sfx/slap.mp3" id="8_di4dd"] -[ext_resource type="Script" path="res://scripts/components/zombies/AudioDamage.cs" id="9_oxd1e"] +[ext_resource type="Script" uid="uid://bsg4utgc0u0vo" path="res://scripts/components/zombies/AudioDamage.cs" id="9_oxd1e"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_63ls2"] resource_local_to_scene = true shader = ExtResource("2_srwwe") shader_parameter/blend_color = Color(1, 1, 1, 1) -shader_parameter/amount = null +shader_parameter/amount = 0.0 [sub_resource type="RectangleShape2D" id="RectangleShape2D_hxyad"] -size = Vector2(2, 84) +size = Vector2(2, 48) + +[sub_resource type="Resource" id="Resource_ruqsf"] +script = ExtResource("7_b3p4o") +flat_value = 10.0 +percentage_value = 0.0 +mult_value = 1.0 [sub_resource type="RectangleShape2D" id="RectangleShape2D_r4ug6"] size = Vector2(16, 48) [sub_resource type="Animation" id="Animation_qv5y7"] length = 0.001 -tracks/0/type = "method" +tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true -tracks/0/path = NodePath("Mover") +tracks/0/path = NodePath("AnimationTree:parameters/conditions/no_can") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), -"values": [{ -"args": [0.0], -"method": &"SetSpeed" -}] +"update": 1, +"values": [false] } [sub_resource type="AnimationLibrary" id="AnimationLibrary_sq25x"] _data = { -"RESET": SubResource("Animation_qv5y7") -} - -[sub_resource type="Animation" id="Animation_fwldj"] -resource_name = "eat" -loop_mode = 1 -step = 0.1 -tracks/0/type = "method" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("Eatbox") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0.5), -"transitions": PackedFloat32Array(1), -"values": [{ -"args": [], -"method": &"Bite" -}] -} -tracks/1/type = "method" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath("Mover") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"values": [{ -"args": [0.0], -"method": &"SetSpeed" -}] -} - -[sub_resource type="Animation" id="Animation_lrgn8"] -resource_name = "idle" -loop_mode = 1 -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(0), -"transitions": PackedFloat32Array(1), -"values": [{ -"args": [0.0], -"method": &"SetSpeed" -}] -} - -[sub_resource type="Animation" id="Animation_ebhxh"] -resource_name = "walk" -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(0), -"transitions": PackedFloat32Array(1), -"values": [{ -"args": [0.5], -"method": &"SetSpeed" -}] -} - -[sub_resource type="AnimationLibrary" id="AnimationLibrary_5ci4h"] -_data = { -"eat": SubResource("Animation_fwldj"), -"idle": SubResource("Animation_lrgn8"), -"walk": SubResource("Animation_ebhxh") +&"RESET": SubResource("Animation_qv5y7") } [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_h0rfo"] -animation = &"baisc_zombie/eat" +animation = &"basic_zombie/eat" [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_nog33"] -animation = &"baisc_zombie/idle" +animation = &"basic_zombie/idle" [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_g2uel"] -animation = &"baisc_zombie/walk" +animation = &"basic_zombie/walk" [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_vxhht"] advance_mode = 2 @@ -136,28 +66,35 @@ advance_mode = 2 [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_y2ivb"] advance_mode = 2 -advance_condition = &"eat" +advance_expression = "get(\"isEating\") == true" [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_7d3k4"] advance_mode = 2 -advance_condition = &"eat" +advance_expression = "get(\"isEating\") == true" [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_kk4wi"] advance_mode = 2 -advance_condition = &"end_eat" +advance_expression = "get(\"isEating\") == false" [sub_resource type="AnimationNodeStateMachine" id="AnimationNodeStateMachine_qep5j"] states/End/position = Vector2(1183, 100) -states/baisc_zombie_eat/node = SubResource("AnimationNodeAnimation_h0rfo") -states/baisc_zombie_eat/position = Vector2(575, 185) -states/baisc_zombie_idle/node = SubResource("AnimationNodeAnimation_nog33") -states/baisc_zombie_idle/position = Vector2(368, 100) -states/baisc_zombie_walk/node = SubResource("AnimationNodeAnimation_g2uel") -states/baisc_zombie_walk/position = Vector2(575, 35) -transitions = ["Start", "baisc_zombie_idle", SubResource("AnimationNodeStateMachineTransition_vxhht"), "baisc_zombie_idle", "baisc_zombie_walk", SubResource("AnimationNodeStateMachineTransition_r8rju"), "baisc_zombie_idle", "baisc_zombie_eat", SubResource("AnimationNodeStateMachineTransition_y2ivb"), "baisc_zombie_walk", "baisc_zombie_eat", SubResource("AnimationNodeStateMachineTransition_7d3k4"), "baisc_zombie_eat", "baisc_zombie_walk", SubResource("AnimationNodeStateMachineTransition_kk4wi")] -graph_offset = Vector2(-17, -2) +states/basic_zombie_eat/node = SubResource("AnimationNodeAnimation_h0rfo") +states/basic_zombie_eat/position = Vector2(575, 185) +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) +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) + +[sub_resource type="Resource" id="Resource_ckb7n"] +script = ExtResource("7_b3p4o") +flat_value = 0.1 +percentage_value = 0.0 +mult_value = 1.0 [node name="Zombie" type="Node2D"] +y_sort_enabled = true script = ExtResource("1_qq3f1") _maxHP = 100 @@ -174,15 +111,14 @@ collision_layer = 8 collision_mask = 0 [node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox"] -position = Vector2(2, -42) +position = Vector2(2, -24) shape = SubResource("RectangleShape2D_hxyad") -[node name="Eatbox" type="Area2D" parent="." node_paths=PackedStringArray("_animationTree")] +[node name="Eatbox" type="Area2D" parent="."] collision_layer = 0 collision_mask = 2 script = ExtResource("3_2aulo") -_damage = 10 -_animationTree = NodePath("../AnimationTree") +_damage = SubResource("Resource_ruqsf") [node name="CollisionShape2D" type="CollisionShape2D" parent="Eatbox"] position = Vector2(-10, -24) @@ -190,22 +126,18 @@ shape = SubResource("RectangleShape2D_r4ug6") [node name="AnimationPlayer" type="AnimationPlayer" parent="."] libraries = { -"": SubResource("AnimationLibrary_sq25x"), -"baisc_zombie": SubResource("AnimationLibrary_5ci4h") +&"": SubResource("AnimationLibrary_sq25x"), +&"basic_zombie": ExtResource("6_ckb7n") } [node name="AnimationTree" type="AnimationTree" parent="."] tree_root = SubResource("AnimationNodeStateMachine_qep5j") +advance_expression_base_node = NodePath("../Eatbox") anim_player = NodePath("../AnimationPlayer") -parameters/conditions/eat = false -parameters/conditions/end_eat = false [node name="Mover" type="Node" parent="."] script = ExtResource("4_u5syx") -_speedMultiplier = 0.25 - -[node name="Behaviour" type="Node" parent="."] -script = ExtResource("5_2pvkr") +_speed = SubResource("Resource_ckb7n") [node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."] stream = ExtResource("8_di4dd") diff --git a/scripts/components/zombies/EatBox.cs b/scripts/components/zombies/EatBox.cs index 6645255..dd05bb7 100644 --- a/scripts/components/zombies/EatBox.cs +++ b/scripts/components/zombies/EatBox.cs @@ -8,26 +8,30 @@ public partial class EatBox : Area2D { // Rewrite this class completely when field system will be introduced. - [Export] private int _damage; - [Export] private AnimationTree _animationTree; + [Export] private FloatModifiers _damage; private RuntimePlantData plant; + public bool isEating = false; public void Bite() { if (GetParent().AbleToEat) - plant?.TakeDamage(_damage,GetParent()); + { + plant?.TakeDamage((int)_damage.GetValue(), GetParent()); + } + } public void OnAreaEntered(Area2D area) { var parent = area.GetParent(); + GD.Print(parent.Name); if (parent != null && parent is RuntimePlantData plantData) { plant = plantData; - _animationTree.Set("parameters/conditions/eat", true); - _animationTree.Set("parameters/conditions/end_eat", false); + isEating = true; + } } @@ -38,8 +42,7 @@ public partial class EatBox : Area2D if (parent == plant) { plant = null; - _animationTree.Set("parameters/conditions/eat", false); - _animationTree.Set("parameters/conditions/end_eat", true); + isEating = false; } } } diff --git a/scripts/components/zombies/ZombieMover.cs b/scripts/components/zombies/ZombieMover.cs index 7cd3beb..891e193 100644 --- a/scripts/components/zombies/ZombieMover.cs +++ b/scripts/components/zombies/ZombieMover.cs @@ -4,30 +4,40 @@ namespace Newlon.Components.Zombies; public partial class ZombieMover : Node { - [Export(hintString: "suffix:tile/sec")] - private float _speedMultiplier = 1.0f; - - private float _speed = 1; - + [Export] + private FloatModifiers _speed; private Node2D _zombie; public override void _Ready() { _zombie = GetParent(); + _speed = (FloatModifiers)_speed.Duplicate(); } public override void _PhysicsProcess(double delta) { - _zombie.Position -= _zombie.Transform.X - * _speed - * (float)delta - * Utility.TileWidth - * GetParent().LocalTimescale - * _speedMultiplier; + _zombie.Position -= _zombie.Transform.X + * (float)delta + * Utility.TileWidth + * GetParent().LocalTimescale + * _speed.GetValue(); + GD.Print(_speed.GetMult()); } - public void SetSpeed(float speed) + public void SetSpeedFlat(float speed) { - _speed = speed; + _speed.SetFlat(speed); + } + public void SetSpeedPercentage(float speed) + { + _speed.SetPercentage(speed); + } + public void SetSpeedMult(float speed) + { + _speed.SetMult(speed); + } + public void AddMult(float amount) + { + _speed.ChangeMult(amount); } } diff --git a/scripts/components/zombies/behaviours/BasicZombieBehaviour.cs b/scripts/components/zombies/behaviours/BasicZombieBehaviour.cs deleted file mode 100644 index 5f52db2..0000000 --- a/scripts/components/zombies/behaviours/BasicZombieBehaviour.cs +++ /dev/null @@ -1,19 +0,0 @@ -using Godot; - -namespace Newlon.Components.Zombies.Behaviours; - -public partial class BasicZombieBehaviour : Node -{ - [Export] private AnimationTree _animationTree; - public void StartEating() - { - _animationTree.Set("parameters/conditions/eat",true); - _animationTree.Set("parameters/conditions/end_eat", false); - GD.Print("StartEating"); - } - public void EndEating() - { - _animationTree.Set("parameters/conditions/eat", false); - _animationTree.Set("parameters/conditions/end_eat", true); - } -} diff --git a/scripts/components/zombies/behaviours/BasicZombieBehaviour.cs.uid b/scripts/components/zombies/behaviours/BasicZombieBehaviour.cs.uid deleted file mode 100644 index b6dc54c..0000000 --- a/scripts/components/zombies/behaviours/BasicZombieBehaviour.cs.uid +++ /dev/null @@ -1 +0,0 @@ -uid://cgf61r46dgh4m diff --git a/scripts/components/zombies/behaviours/HoboBehaviour.cs b/scripts/components/zombies/behaviours/HoboBehaviour.cs new file mode 100644 index 0000000..c149d37 --- /dev/null +++ b/scripts/components/zombies/behaviours/HoboBehaviour.cs @@ -0,0 +1,17 @@ +using Godot; + +namespace Newlon.Components.Zombies.Behaviours; + +public partial class HoboBehaviour : Node +{ + [Export] private EatBox _eatBox; + [Export] private AnimationTree _animationTree; + public bool isEating => _eatBox.isEating; + public bool canDestroyed = false; + public void Trashed() + { + canDestroyed = true; + ((AnimationNodeStateMachinePlayback)_animationTree.Get("parameters/playback")).Travel("hobo_zombie_can_destroy"); + _animationTree.Set("parameters/eat_Tree/blend/blend_amount", 1.0); + } +} diff --git a/scripts/components/zombies/behaviours/HoboBehaviour.cs.uid b/scripts/components/zombies/behaviours/HoboBehaviour.cs.uid new file mode 100644 index 0000000..2e1b8ab --- /dev/null +++ b/scripts/components/zombies/behaviours/HoboBehaviour.cs.uid @@ -0,0 +1 @@ +uid://c5v2og85t7s6j