From b26b4b97f776b3e75d49c49198c37d367a8696c9 Mon Sep 17 00:00:00 2001 From: Rendo Date: Sat, 12 Jul 2025 01:58:34 +0500 Subject: [PATCH] hobo zombre --- resources/animations/zombies/basic.res | Bin 10893 -> 9491 bytes resources/animations/zombies/hobo.res | Bin 4486 -> 4735 bytes resources/animations/zombies/hobo_zombie.res | Bin 5498 -> 5564 bytes scenes/entities/Zombies/cone_zombie.tscn | 42 +- scenes/entities/Zombies/hobo.tscn | 872 +++++++++++++++++-- scenes/entities/Zombies/zombie.tscn | 587 ++++++++++++- scenes/prototype_survival.tscn | 6 +- scripts/zombies/behaviours/HoboBehaviour.cs | 2 +- 8 files changed, 1378 insertions(+), 131 deletions(-) diff --git a/resources/animations/zombies/basic.res b/resources/animations/zombies/basic.res index 1fd70a09913afe02dd1a99508cc5b325f25c95f7..fb85e90d35f8e09ddc0c9e92c8ea8ca10dd2b720 100644 GIT binary patch literal 9491 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 O_8Pn(m+;_UPyYpx-A_OO literal 4486 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 Bht2>1 diff --git a/scenes/entities/Zombies/cone_zombie.tscn b/scenes/entities/Zombies/cone_zombie.tscn index e3d0bbd..13881ac 100644 --- a/scenes/entities/Zombies/cone_zombie.tscn +++ b/scenes/entities/Zombies/cone_zombie.tscn @@ -41,7 +41,7 @@ _armor = NodePath("Armor") material = SubResource("ShaderMaterial_sat5k") [node name="RightUpperLeg" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt" index="1"] -scale = Vector2(0.999834, 0.999834) +scale = Vector2(0.999832, 0.999832) [node name="RightLowerLeg" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/RightUpperLeg" index="1"] scale = Vector2(0.999835, 0.999835) @@ -50,42 +50,43 @@ scale = Vector2(0.999835, 0.999835) scale = Vector2(0.999831, 0.999831) [node name="LeftUpperLeg" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt" index="2"] -scale = Vector2(0.999832, 0.999832) +scale = Vector2(0.999831, 0.999831) [node name="LeftLowerLeg" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/LeftUpperLeg" index="1"] -scale = Vector2(0.99983, 0.99983) +scale = Vector2(0.999831, 0.999831) [node name="LeftFoot" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/LeftUpperLeg/LeftLowerLeg" index="1"] -scale = Vector2(0.99983, 0.99983) +scale = Vector2(0.999829, 0.999829) [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.999828, 0.999828) +scale = Vector2(0.999827, 0.999827) [node name="RightLowerArm" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/RightUpperArm" index="1"] -scale = Vector2(0.999828, 0.999828) +scale = Vector2(0.999826, 0.999826) [node name="RightHand" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/RightUpperArm/RightLowerArm" index="0"] scale = Vector2(0.999828, 0.999828) [node name="Tie" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body" index="2"] -skew = -8.97646e-05 +rotation = -0.0219556 +skew = -9.19104e-05 [node name="Head" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body" index="3"] -scale = Vector2(0.999829, 0.999829) +scale = Vector2(0.999828, 0.999828) -[node name="Left_Eye" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head/HeadParticle/Head" index="1"] -position = Vector2(-4, -8.99999) +[node name="Right_Eye" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head/HeadParticle/Head" index="0"] +position = Vector2(-16, -7.99999) [node name="Jaw" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head/HeadParticle/Head" index="2"] -position = Vector2(-2.87212, 2.69138) -rotation = -0.0719238 -scale = Vector2(0.999829, 0.999829) +position = Vector2(-2.94667, 2.87129) +rotation = -0.0641243 +scale = Vector2(0.999828, 0.999828) [node name="Jaw" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head" index="1"] -scale = Vector2(0.999829, 0.999829) +scale = Vector2(0.999828, 0.999828) [node name="Hat" type="RigidBody2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head" index="4" node_paths=PackedStringArray("data")] position = Vector2(-2.5, -13.5) @@ -115,19 +116,19 @@ position = Vector2(1, -6) shape = SubResource("CircleShape2D_67t4t") [node name="LeftUpperArm" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body" index="4"] -scale = Vector2(0.999829, 0.999829) +scale = Vector2(0.999828, 0.999828) [node name="Left_Lower_Arm" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm/HandProjectile" index="0"] -rotation = -0.109137 -scale = Vector2(0.999998, 0.999998) +rotation = -0.0265831 +scale = Vector2(1, 1) [node name="Left_Hand" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm/HandProjectile/Left_Lower_Arm" index="0"] position = Vector2(-0.99983, 12.9978) -rotation = -0.0899616 -scale = Vector2(0.999656, 0.999656) +rotation = -0.0375163 +scale = Vector2(0.999657, 0.999657) [node name="LeftLowerArm" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm" index="2"] -scale = Vector2(0.999828, 0.999828) +scale = Vector2(0.99983, 0.99983) [node name="LeftHand" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm/LeftLowerArm" index="0"] scale = Vector2(0.999826, 0.999826) @@ -137,6 +138,7 @@ _damage = SubResource("Resource_w70im") [node name="Mover" parent="." index="4"] _speed = SubResource("Resource_qof5v") +_speedControlMult = 0.306946 [node name="Armor" type="Node" parent="." index="6"] script = ExtResource("3_5s7in") diff --git a/scenes/entities/Zombies/hobo.tscn b/scenes/entities/Zombies/hobo.tscn index 1b88773..de969f2 100644 --- a/scenes/entities/Zombies/hobo.tscn +++ b/scenes/entities/Zombies/hobo.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=41 format=3 uid="uid://bgqmwsb6ynm81"] +[gd_scene load_steps=63 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"] @@ -8,11 +8,14 @@ [ext_resource type="Script" uid="uid://c5v2og85t7s6j" path="res://scripts/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/Armor.cs" id="4_w8pya"] +[ext_resource type="Texture2D" uid="uid://dri70dxyks7xh" path="res://assets/sprites/zombies/hobo.png" id="5_b583s"] [ext_resource type="Script" uid="uid://bbw848msxb4re" path="res://scripts/DegradingSprite.cs" id="5_ndwp0"] [ext_resource type="Texture2D" uid="uid://8h5vg1pk32b2" path="res://assets/sprites/garbage_can1.tres" id="6_i6nje"] [ext_resource type="Texture2D" uid="uid://cogfbn4re3kob" path="res://assets/sprites/garbage_can2.tres" id="7_txjqc"] +[ext_resource type="AnimationLibrary" uid="uid://ceb3khu7rwgy8" path="res://resources/animations/zombies/basic.res" id="7_vn3j1"] [ext_resource type="AudioStream" uid="uid://bu1egfsyplpx4" path="res://assets/audio/sfx/metalhit_generic.tres" id="8_4248q"] [ext_resource type="Texture2D" uid="uid://n2j2k2aijr7j" path="res://assets/sprites/garbage_can3.tres" id="8_b583s"] +[ext_resource type="AnimationLibrary" uid="uid://c0tlm0ta4dgbk" path="res://resources/animations/zombies/hobo.res" id="8_yb81c"] [ext_resource type="AudioStream" uid="uid://w0qfwds4o3ti" path="res://assets/audio/sfx/hit_generic.tres" id="9_tu6af"] [ext_resource type="Script" uid="uid://c36bj8u7jghc7" path="res://scripts/audio/ChannelPlayer.cs" id="11_7jlle"] [ext_resource type="AudioStream" uid="uid://ch55p7qbaawtp" path="res://assets/audio/sfx/argh.tres" id="12_w1b1s"] @@ -23,6 +26,50 @@ shader = ExtResource("2_6qr4h") shader_parameter/blend_color = Color(1, 1, 1, 1) shader_parameter/amount = 0.0 +[sub_resource type="AtlasTexture" id="AtlasTexture_txjqc"] +atlas = ExtResource("5_b583s") +region = Rect2(115, 52, 17, 9) + +[sub_resource type="AtlasTexture" id="AtlasTexture_b583s"] +atlas = ExtResource("5_b583s") +region = Rect2(86, 50, 10, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_uoit3"] +atlas = ExtResource("5_b583s") +region = Rect2(115, 52, 17, 9) + +[sub_resource type="AtlasTexture" id="AtlasTexture_vn3j1"] +atlas = ExtResource("5_b583s") +region = Rect2(101, 50, 10, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_yb81c"] +atlas = ExtResource("5_b583s") +region = Rect2(117, 1, 8, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_nlwsb"] +atlas = ExtResource("5_b583s") +region = Rect2(129, 4, 7, 10) + +[sub_resource type="AtlasTexture" id="AtlasTexture_8y6c0"] +atlas = ExtResource("5_b583s") +region = Rect2(113, 22, 19, 13) + +[sub_resource type="AtlasTexture" id="AtlasTexture_nc6p3"] +atlas = ExtResource("5_b583s") +region = Rect2(80, 30, 7, 18) + +[sub_resource type="AtlasTexture" id="AtlasTexture_y0p2l"] +atlas = ExtResource("5_b583s") +region = Rect2(101, 37, 9, 11) + +[sub_resource type="AtlasTexture" id="AtlasTexture_op0h6"] +atlas = ExtResource("5_b583s") +region = Rect2(91, 32, 9, 15) + +[sub_resource type="AtlasTexture" id="AtlasTexture_0s5wm"] +atlas = ExtResource("5_b583s") +region = Rect2(137, 19, 29, 39) + [sub_resource type="AtlasTexture" id="AtlasTexture_w8pya"] atlas = ExtResource("3_6qr4h") region = Rect2(0, 15, 40, 49) @@ -35,6 +82,578 @@ region = Rect2(3, 0, 35, 11) radius = 17.0 height = 48.0 +[sub_resource type="AtlasTexture" id="AtlasTexture_pjhfy"] +atlas = ExtResource("5_b583s") +region = Rect2(80, 0, 32, 30) + +[sub_resource type="AtlasTexture" id="AtlasTexture_7cvmi"] +atlas = ExtResource("5_b583s") +region = Rect2(38, 22, 22, 13) + +[sub_resource type="AtlasTexture" id="AtlasTexture_n380g"] +atlas = ExtResource("5_b583s") +region = Rect2(34, 38, 45, 27) + +[sub_resource type="AtlasTexture" id="AtlasTexture_tebih"] +atlas = ExtResource("5_b583s") +region = Rect2(34, 0, 6, 19) + +[sub_resource type="AtlasTexture" id="AtlasTexture_auxav"] +atlas = ExtResource("5_b583s") +region = Rect2(43, 0, 9, 15) + +[sub_resource type="AtlasTexture" id="AtlasTexture_dntsa"] +atlas = ExtResource("5_b583s") +region = Rect2(55, 0, 9, 10) + +[sub_resource type="Animation" id="Animation_vn3j1"] +resource_name = "RESET" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Zombie/Butt/Body/LeftUpperArm/LeftLowerArm:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-2, 14)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Zombie/Butt/Body/LeftUpperArm/LeftLowerArm:rotation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Zombie/Butt/Body/LeftUpperArm/LeftLowerArm/LeftHand:position") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-1, 13)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Zombie/Butt/Body/LeftUpperArm/LeftLowerArm/LeftHand:rotation") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Zombie/Butt/Body/LeftUpperArm:position") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-1, -20)] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Zombie/Butt/Body/LeftUpperArm:rotation") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/6/type = "value" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("Zombie/Butt/Body/Head/LeftEye:position") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-4, -9)] +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("Zombie/Butt/Body/Head/LeftEye:rotation") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/8/type = "value" +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/path = NodePath("Zombie/Butt/Body/Head/RightEye:position") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-16, -8)] +} +tracks/9/type = "value" +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/path = NodePath("Zombie/Butt/Body/Head/RightEye:rotation") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/10/type = "value" +tracks/10/imported = false +tracks/10/enabled = true +tracks/10/path = NodePath("Zombie/Butt/Body/Head/Jaw:position") +tracks/10/interp = 1 +tracks/10/loop_wrap = true +tracks/10/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-3, 3)] +} +tracks/11/type = "value" +tracks/11/imported = false +tracks/11/enabled = true +tracks/11/path = NodePath("Zombie/Butt/Body/Head/Jaw:rotation") +tracks/11/interp = 1 +tracks/11/loop_wrap = true +tracks/11/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/12/type = "value" +tracks/12/imported = false +tracks/12/enabled = true +tracks/12/path = NodePath("Zombie/Butt/Body/RightUpperArm/RightLowerArm/RightHand:position") +tracks/12/interp = 1 +tracks/12/loop_wrap = true +tracks/12/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-1, 13)] +} +tracks/13/type = "value" +tracks/13/imported = false +tracks/13/enabled = true +tracks/13/path = NodePath("Zombie/Butt/Body/RightUpperArm/RightLowerArm/RightHand:rotation") +tracks/13/interp = 1 +tracks/13/loop_wrap = true +tracks/13/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/14/type = "value" +tracks/14/imported = false +tracks/14/enabled = true +tracks/14/path = NodePath("Zombie/Butt/Body/RightUpperArm/RightLowerArm:position") +tracks/14/interp = 1 +tracks/14/loop_wrap = true +tracks/14/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-2, 15)] +} +tracks/15/type = "value" +tracks/15/imported = false +tracks/15/enabled = true +tracks/15/path = NodePath("Zombie/Butt/Body/RightUpperArm/RightLowerArm:rotation") +tracks/15/interp = 1 +tracks/15/loop_wrap = true +tracks/15/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/16/type = "value" +tracks/16/imported = false +tracks/16/enabled = true +tracks/16/path = NodePath("Zombie/Butt/Body/RightUpperArm:position") +tracks/16/interp = 1 +tracks/16/loop_wrap = true +tracks/16/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-14, -23)] +} +tracks/17/type = "value" +tracks/17/imported = false +tracks/17/enabled = true +tracks/17/path = NodePath("Zombie/Butt/Body/RightUpperArm:rotation") +tracks/17/interp = 1 +tracks/17/loop_wrap = true +tracks/17/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/18/type = "value" +tracks/18/imported = false +tracks/18/enabled = true +tracks/18/path = NodePath("Zombie/Butt/LeftUpperLeg/LeftLowerLeg/LeftFoot:position") +tracks/18/interp = 1 +tracks/18/loop_wrap = true +tracks/18/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(6, 10)] +} +tracks/19/type = "value" +tracks/19/imported = false +tracks/19/enabled = true +tracks/19/path = NodePath("Zombie/Butt/LeftUpperLeg/LeftLowerLeg/LeftFoot:rotation") +tracks/19/interp = 1 +tracks/19/loop_wrap = true +tracks/19/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/20/type = "value" +tracks/20/imported = false +tracks/20/enabled = true +tracks/20/path = NodePath("Zombie/Butt/LeftUpperLeg/LeftLowerLeg:position") +tracks/20/interp = 1 +tracks/20/loop_wrap = true +tracks/20/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-1, 13)] +} +tracks/21/type = "value" +tracks/21/imported = false +tracks/21/enabled = true +tracks/21/path = NodePath("Zombie/Butt/LeftUpperLeg/LeftLowerLeg:rotation") +tracks/21/interp = 1 +tracks/21/loop_wrap = true +tracks/21/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/22/type = "value" +tracks/22/imported = false +tracks/22/enabled = true +tracks/22/path = NodePath("Zombie/Butt/LeftUpperLeg:position") +tracks/22/interp = 1 +tracks/22/loop_wrap = true +tracks/22/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(6, 4)] +} +tracks/23/type = "value" +tracks/23/imported = false +tracks/23/enabled = true +tracks/23/path = NodePath("Zombie/Butt/LeftUpperLeg:rotation") +tracks/23/interp = 1 +tracks/23/loop_wrap = true +tracks/23/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/24/type = "value" +tracks/24/imported = false +tracks/24/enabled = true +tracks/24/path = NodePath("Zombie/Butt/RightUpperLeg/RightLowerLeg/RightFoot:position") +tracks/24/interp = 1 +tracks/24/loop_wrap = true +tracks/24/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-2, 14)] +} +tracks/25/type = "value" +tracks/25/imported = false +tracks/25/enabled = true +tracks/25/path = NodePath("Zombie/Butt/RightUpperLeg/RightLowerLeg/RightFoot:rotation") +tracks/25/interp = 1 +tracks/25/loop_wrap = true +tracks/25/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/26/type = "value" +tracks/26/imported = false +tracks/26/enabled = true +tracks/26/path = NodePath("Zombie/Butt/RightUpperLeg/RightLowerLeg:position") +tracks/26/interp = 1 +tracks/26/loop_wrap = true +tracks/26/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-2, 12)] +} +tracks/27/type = "value" +tracks/27/imported = false +tracks/27/enabled = true +tracks/27/path = NodePath("Zombie/Butt/RightUpperLeg/RightLowerLeg:rotation") +tracks/27/interp = 1 +tracks/27/loop_wrap = true +tracks/27/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/28/type = "value" +tracks/28/imported = false +tracks/28/enabled = true +tracks/28/path = NodePath("Zombie/Butt/RightUpperLeg:position") +tracks/28/interp = 1 +tracks/28/loop_wrap = true +tracks/28/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-6, 3)] +} +tracks/29/type = "value" +tracks/29/imported = false +tracks/29/enabled = true +tracks/29/path = NodePath("Zombie/Butt/RightUpperLeg:rotation") +tracks/29/interp = 1 +tracks/29/loop_wrap = true +tracks/29/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/30/type = "value" +tracks/30/imported = false +tracks/30/enabled = true +tracks/30/path = NodePath("Zombie/Butt:position") +tracks/30/interp = 1 +tracks/30/loop_wrap = true +tracks/30/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(5, -35)] +} +tracks/31/type = "value" +tracks/31/imported = false +tracks/31/enabled = true +tracks/31/path = NodePath("Zombie/Butt:rotation") +tracks/31/interp = 1 +tracks/31/loop_wrap = true +tracks/31/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/32/type = "value" +tracks/32/imported = false +tracks/32/enabled = true +tracks/32/path = NodePath("Zombie/Butt/Body:position") +tracks/32/interp = 1 +tracks/32/loop_wrap = true +tracks/32/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(1, -2)] +} +tracks/33/type = "value" +tracks/33/imported = false +tracks/33/enabled = true +tracks/33/path = NodePath("Zombie/Butt/Body:rotation") +tracks/33/interp = 1 +tracks/33/loop_wrap = true +tracks/33/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/34/type = "value" +tracks/34/imported = false +tracks/34/enabled = true +tracks/34/path = NodePath("Zombie:position") +tracks/34/interp = 1 +tracks/34/loop_wrap = true +tracks/34/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(0, 0)] +} +tracks/35/type = "value" +tracks/35/imported = false +tracks/35/enabled = true +tracks/35/path = NodePath("Zombie:rotation") +tracks/35/interp = 1 +tracks/35/loop_wrap = true +tracks/35/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/36/type = "value" +tracks/36/imported = false +tracks/36/enabled = true +tracks/36/path = NodePath("Zombie/Butt/Body/Head:position") +tracks/36/interp = 1 +tracks/36/loop_wrap = true +tracks/36/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-10, -25)] +} +tracks/37/type = "value" +tracks/37/imported = false +tracks/37/enabled = true +tracks/37/path = NodePath("Zombie/Butt/Body/Head:rotation") +tracks/37/interp = 1 +tracks/37/loop_wrap = true +tracks/37/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/38/type = "value" +tracks/38/imported = false +tracks/38/enabled = true +tracks/38/path = NodePath("Zombie/Butt/Body/Head:visible") +tracks/38/interp = 1 +tracks/38/loop_wrap = true +tracks/38/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/39/type = "value" +tracks/39/imported = false +tracks/39/enabled = true +tracks/39/path = NodePath("Zombie/Butt/Body/Head/TrashcanLid:position") +tracks/39/interp = 1 +tracks/39/loop_wrap = true +tracks/39/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-0.0022974, -17.0131)] +} +tracks/40/type = "value" +tracks/40/imported = false +tracks/40/enabled = true +tracks/40/path = NodePath("Zombie/Butt/Body/Head/TrashcanLid:rotation") +tracks/40/interp = 1 +tracks/40/loop_wrap = true +tracks/40/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/41/type = "value" +tracks/41/imported = false +tracks/41/enabled = true +tracks/41/path = NodePath("Zombie/Butt/Body/Head/TrashcanLid:visible") +tracks/41/interp = 1 +tracks/41/loop_wrap = true +tracks/41/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/42/type = "value" +tracks/42/imported = false +tracks/42/enabled = true +tracks/42/path = NodePath("Zombie/Butt/Body/LeftUpperArm/HandProjectile/Left_Lower_Arm/Left_Hand:texture") +tracks/42/interp = 1 +tracks/42/loop_wrap = true +tracks/42/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [SubResource("AtlasTexture_dntsa")] +} +tracks/43/type = "value" +tracks/43/imported = false +tracks/43/enabled = true +tracks/43/path = NodePath("../../Mover:_speedControlMult") +tracks/43/interp = 1 +tracks/43/loop_wrap = true +tracks/43/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/44/type = "value" +tracks/44/imported = false +tracks/44/enabled = true +tracks/44/path = NodePath("Zombie/Butt/Body/LeftUpperArm/HandProjectile/Left_Lower_Arm/Left_Hand:offset") +tracks/44/interp = 1 +tracks/44/loop_wrap = true +tracks/44/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-4, -1)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_x5uj2"] +_data = { +&"RESET": SubResource("Animation_vn3j1") +} + [sub_resource type="Resource" id="Resource_qg8rq"] resource_local_to_scene = true script = ExtResource("4_c1y3b") @@ -44,77 +663,86 @@ mult_value = 1.0 [sub_resource type="AnimationNodeTimeScale" id="AnimationNodeTimeScale_2q05d"] -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_h0rfo"] -animation = &"basic_zombie_eating" - -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_nog33"] -animation = &"basic_zombie_stand" - -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_g2uel"] -animation = &"basic_zombie_walk" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_vn3j1"] +animation = &"basic/death" [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_02fim"] -animation = &"hobo_zombie/can_destroy" +animation = &"basic/stand" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_yb81c"] +animation = &"basic/eating" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_h0rfo"] +animation = &"hobo/eating_without_arms" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_nog33"] +animation = &"basic/stand" [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_c1y3b"] -animation = &"basic_zombie_walk" +animation = &"basic/walk" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_g2uel"] +animation = &"hobo/Jump_walking" [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_vxhht"] advance_mode = 2 -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_y2ivb"] +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_n380g"] +xfade_time = 0.5 advance_mode = 2 -advance_expression = "get(\"isEating\") == true" +advance_expression = "get(\"isEating\")" -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_7d3k4"] +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_nlwsb"] +xfade_time = 0.5 advance_mode = 2 -advance_expression = "get(\"isEating\") == true" +advance_expression = "get(\"isEating\") == false" -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_qg8rq"] +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_8y6c0"] +xfade_time = 0.5 advance_mode = 2 -advance_expression = "get(\"canDestroyed\") == false" +advance_expression = "get(\"isEating\")" -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_4248q"] +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_nc6p3"] +xfade_time = 0.5 advance_mode = 2 -advance_expression = "get(\"canDestroyed\") == true" +advance_expression = "get(\"isEating\") == false" -[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"] +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_y0p2l"] +break_loop_at_end = true switch_mode = 2 advance_mode = 2 -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_w1b1s"] +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_uoit3"] +xfade_time = 0.5 advance_mode = 2 -advance_expression = "get(\"canDestroyed\") == false and get(\"isEating\") == false" +advance_expression = "get(\"isEating\") == false and can_process()" -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_02fim"] +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_vn3j1"] +xfade_time = 0.5 advance_mode = 2 -advance_expression = "get(\"canDestroyed\") == true" +advance_expression = "get(\"isEating\") and can_process()" [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(-30, 35) +states/Death/node = SubResource("AnimationNodeAnimation_vn3j1") +states/Death/position = Vector2(745, 220) +states/Destroy/node = SubResource("AnimationNodeAnimation_02fim") +states/Destroy/position = Vector2(773, 67) +states/Eat/node = SubResource("AnimationNodeAnimation_yb81c") +states/Eat/position = Vector2(942, 145) +states/Eat_with_can/node = SubResource("AnimationNodeAnimation_h0rfo") +states/Eat_with_can/position = Vector2(583, 145) +states/End/position = Vector2(1185, 100) +states/Idle/node = SubResource("AnimationNodeAnimation_nog33") +states/Idle/position = Vector2(368, 100) +states/Run/node = SubResource("AnimationNodeAnimation_c1y3b") +states/Run/position = Vector2(942, -3) +states/Walk/node = SubResource("AnimationNodeAnimation_g2uel") +states/Walk/position = Vector2(583, -3) +transitions = ["Start", "Idle", SubResource("AnimationNodeStateMachineTransition_vxhht"), "Walk", "Eat_with_can", SubResource("AnimationNodeStateMachineTransition_n380g"), "Eat_with_can", "Walk", SubResource("AnimationNodeStateMachineTransition_nlwsb"), "Run", "Eat", SubResource("AnimationNodeStateMachineTransition_8y6c0"), "Eat", "Run", SubResource("AnimationNodeStateMachineTransition_nc6p3"), "Destroy", "Run", SubResource("AnimationNodeStateMachineTransition_y0p2l"), "Idle", "Walk", SubResource("AnimationNodeStateMachineTransition_uoit3"), "Idle", "Eat_with_can", SubResource("AnimationNodeStateMachineTransition_vn3j1")] +graph_offset = Vector2(274, -18) [sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_txjqc"] -graph_offset = Vector2(-447, 53) +graph_offset = Vector2(-427.399, 70.0005) nodes/TimeScale/node = SubResource("AnimationNodeTimeScale_2q05d") nodes/TimeScale/position = Vector2(60, 120) nodes/Tree/node = SubResource("AnimationNodeStateMachine_xg3p6") @@ -136,79 +764,172 @@ _effectImmunities = [ExtResource("3_b583s")] [node name="CanvasGroup" parent="." index="0"] material = SubResource("ShaderMaterial_w8pya") +[node name="Butt" parent="CanvasGroup/basic_zombie_walk/Zombie" index="0"] +scale = Vector2(0.999902, 0.999902) + +[node name="Butt" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt" index="0"] +texture = SubResource("AtlasTexture_txjqc") + [node name="RightUpperLeg" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt" index="1"] -scale = Vector2(0.999825, 0.999825) +scale = Vector2(0.999826, 0.999826) + +[node name="Right_Upper_Leg" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/RightUpperLeg" index="0"] +texture = SubResource("AtlasTexture_b583s") [node name="RightLowerLeg" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/RightUpperLeg" index="1"] -scale = Vector2(0.999829, 0.999829) +scale = Vector2(0.99983, 0.99983) [node name="RightFoot" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/RightUpperLeg/RightLowerLeg" index="0"] -scale = Vector2(0.999826, 0.999826) +scale = Vector2(0.99983, 0.99983) + +[node name="Right_Foot" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/RightUpperLeg/RightLowerLeg/RightFoot" index="0"] +texture = SubResource("AtlasTexture_uoit3") + +[node name="Right_Lower_Leg" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/RightUpperLeg/RightLowerLeg" index="1"] +texture = SubResource("AtlasTexture_vn3j1") [node name="LeftUpperLeg" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt" index="2"] scale = Vector2(0.999829, 0.999829) +[node name="Left_Upper_Leg" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/LeftUpperLeg" index="0"] +texture = SubResource("AtlasTexture_yb81c") + [node name="LeftLowerLeg" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/LeftUpperLeg" index="1"] -scale = Vector2(0.999829, 0.999829) +scale = Vector2(0.999832, 0.999832) + +[node name="Left_Lower_Leg" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/LeftUpperLeg/LeftLowerLeg" index="0"] +texture = SubResource("AtlasTexture_nlwsb") [node name="LeftFoot" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/LeftUpperLeg/LeftLowerLeg" index="1"] -scale = Vector2(0.999824, 0.999824) +scale = Vector2(0.999822, 0.999822) + +[node name="Left_Foot" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/LeftUpperLeg/LeftLowerLeg/LeftFoot" index="0"] +texture = SubResource("AtlasTexture_8y6c0") [node name="Body" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt" index="3"] -scale = Vector2(0.999829, 0.999829) +scale = Vector2(0.99983, 0.99983) [node name="RightUpperArm" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body" index="0"] -scale = Vector2(0.99983, 0.99983) +scale = Vector2(0.999829, 0.999829) + +[node name="Right_Upper_Arm" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/RightUpperArm" index="0"] +texture = SubResource("AtlasTexture_nc6p3") [node name="RightLowerArm" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/RightUpperArm" index="1"] -scale = Vector2(0.99982, 0.99982) +scale = Vector2(0.999813, 0.999813) [node name="RightHand" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/RightUpperArm/RightLowerArm" index="0"] -scale = Vector2(0.99983, 0.99983) +scale = Vector2(0.999828, 0.999828) -[node name="Head" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body" index="3"] -scale = Vector2(0.999829, 0.999829) +[node name="Right_Hand" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/RightUpperArm/RightLowerArm/RightHand" index="0"] +texture = SubResource("AtlasTexture_y0p2l") -[node name="Jaw" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head" index="1"] -scale = Vector2(0.999831, 0.999831) +[node name="Right_Lower_Arm" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/RightUpperArm/RightLowerArm" index="1"] +texture = SubResource("AtlasTexture_op0h6") -[node name="LeftUpperArm" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body" index="4"] -scale = Vector2(0.99983, 0.99983) +[node name="Body" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body" index="1"] +texture = SubResource("AtlasTexture_0s5wm") -[node name="LeftLowerArm" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm" index="1"] -scale = Vector2(0.999829, 0.999829) +[node name="Tie" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body" index="2"] +rotation = 0.0256379 -[node name="LeftHand" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm/LeftLowerArm" index="0"] -scale = Vector2(0.999829, 0.999829) +[node name="Tie" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Tie" index="0"] +visible = false -[node name="Can" type="RigidBody2D" parent="CanvasGroup" index="1" node_paths=PackedStringArray("data")] +[node name="Can" type="RigidBody2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body" index="3" node_paths=PackedStringArray("data")] +scale = Vector2(1.00027, 1.00027) collision_layer = 128 collision_mask = 64 freeze = true script = ExtResource("3_tu6af") -data = NodePath("../..") +data = NodePath("../../../../../..") maxAngle = 45.0 minTorque = -45.0 maxTorque = 45.0 Impulse = 100.0 -[node name="Sprite2D" type="Sprite2D" parent="CanvasGroup/Can" index="0" node_paths=PackedStringArray("armor")] -position = Vector2(-4, -40) +[node name="Sprite2D" type="Sprite2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Can" index="0" node_paths=PackedStringArray("armor")] +position = Vector2(-5.9999, -4.5002) texture = SubResource("AtlasTexture_w8pya") script = ExtResource("5_ndwp0") -armor = NodePath("../../../CanArmor") +armor = NodePath("../../../../../../../CanArmor") degradationStages = Array[Texture2D]([ExtResource("6_i6nje"), ExtResource("7_txjqc"), ExtResource("8_b583s")]) thresholdPercentage = Array[float]([1.0, 0.667, 0.333]) -[node name="Sprite2D2" type="Sprite2D" parent="CanvasGroup/Can" index="1"] +[node name="Sprite2D2" type="Sprite2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Can" index="1"] z_index = -1 -position = Vector2(-6, -63) +position = Vector2(-7.4999, -27.5002) texture = SubResource("AtlasTexture_5selg") -[node name="CollisionShape2D" type="CollisionShape2D" parent="CanvasGroup/Can" index="2"] -position = Vector2(-3, -40) +[node name="CollisionShape2D" type="CollisionShape2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Can" index="2"] +position = Vector2(-4.9999, -5.0002) shape = SubResource("CapsuleShape2D_4248q") +[node name="Head" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body" index="4"] +scale = Vector2(0.999826, 0.999826) + +[node name="Head" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head/HeadParticle" index="0"] +texture = SubResource("AtlasTexture_pjhfy") + +[node name="Right_Eye" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head/HeadParticle/Head" index="0"] +position = Vector2(-16, -8) + +[node name="Left_Eye" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head/HeadParticle/Head" index="1"] +position = Vector2(-4, -9) + +[node name="Jaw" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head/HeadParticle/Head" index="2"] +scale = Vector2(0.999825, 0.999825) +texture = SubResource("AtlasTexture_7cvmi") +offset = Vector2(-14, -2) + +[node name="Jaw" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head" index="1"] +scale = Vector2(0.999825, 0.999825) + +[node name="TrashcanLid" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head" index="4"] +visible = false +position = Vector2(-0.0022974, -17.0131) +scale = Vector2(0.999828, 0.999828) +rest = Transform2D(1, 0, 0, 1, -0.0022974, -17.0131) +auto_calculate_length_and_angle = false +length = 12.0 +bone_angle = 180.0 +editor_settings/show_bone_gizmo = false + +[node name="Trashcan_lid" type="Sprite2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head/TrashcanLid" index="0"] +z_index = -1 +scale = Vector2(1.00041, 1.00041) +texture = SubResource("AtlasTexture_n380g") +offset = Vector2(-0.5, -0.5) +metadata/_edit_lock_ = true + +[node name="LeftUpperArm" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body" index="5"] +scale = Vector2(0.99983, 0.99983) + +[node name="Left_Upper_Arm" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm" index="0"] +texture = SubResource("AtlasTexture_tebih") + +[node name="Left_Lower_Arm" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm/HandProjectile" index="0"] +scale = Vector2(0.999998, 0.999998) +texture = SubResource("AtlasTexture_auxav") + +[node name="Left_Hand" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm/HandProjectile/Left_Lower_Arm" index="0"] +position = Vector2(-0.99983, 12.9978) +scale = Vector2(0.999654, 0.999654) +texture = SubResource("AtlasTexture_dntsa") + +[node name="LeftLowerArm" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm" index="2"] +scale = Vector2(0.999828, 0.999828) + +[node name="LeftHand" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm/LeftLowerArm" index="0"] +scale = Vector2(0.999824, 0.999824) + +[node name="AnimationPlayer" parent="CanvasGroup/basic_zombie_walk" index="1"] +libraries = { +&"": SubResource("AnimationLibrary_x5uj2"), +&"basic": ExtResource("7_vn3j1"), +&"hobo": ExtResource("8_yb81c") +} + [node name="Eatbox" parent="." index="2"] _damage = SubResource("Resource_qg8rq") @@ -218,6 +939,7 @@ advance_expression_base_node = NodePath("../Behaviour") [node name="Mover" parent="." index="4"] _speed = SubResource("Resource_4248q") +_speedControlMult = 0.0 [node name="HitPlayer" parent="." index="6"] playlist = Array[AudioStream]([ExtResource("8_4248q"), ExtResource("9_tu6af")]) @@ -240,5 +962,5 @@ channel = "anger" metadata/_custom_type_script = "uid://c36bj8u7jghc7" [connection signal="ArmorLost" from="CanArmor" to="HitPlayer" method="Next"] -[connection signal="ArmorLost" from="CanArmor" to="CanvasGroup/Can" method="FallOff"] +[connection signal="ArmorLost" from="CanArmor" to="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Can" method="FallOff"] [connection signal="ArmorLost" from="CanArmor" to="Behaviour" method="Trashed"] diff --git a/scenes/entities/Zombies/zombie.tscn b/scenes/entities/Zombies/zombie.tscn index 4247ed2..ce60b89 100644 --- a/scenes/entities/Zombies/zombie.tscn +++ b/scenes/entities/Zombies/zombie.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=60 format=3 uid="uid://co11v3w8hbwgf"] +[gd_scene load_steps=62 format=3 uid="uid://co11v3w8hbwgf"] [ext_resource type="Script" uid="uid://dildme6epx8l4" path="res://scripts/zombies/RuntimeZombieData.cs" id="1_qq3f1"] [ext_resource type="AudioStream" uid="uid://dt13iugnnx4op" path="res://assets/audio/sfx/yuck_generic.tres" id="2_hh4qh"] @@ -12,6 +12,7 @@ [ext_resource type="Script" uid="uid://dt5uj25u0g6y3" path="res://scripts/particles/FallParticle.cs" id="7_dn8ha"] [ext_resource type="AnimationNodeStateMachine" uid="uid://dj0blope85bg7" path="res://resources/animations/zombies/basic_zombie_tree.tres" id="8_ckb7n"] [ext_resource type="Script" uid="uid://dau0tfmlfiqmo" path="res://scripts/EntityHPObserver.cs" id="8_mc1kl"] +[ext_resource type="Texture2D" uid="uid://dri70dxyks7xh" path="res://assets/sprites/zombies/hobo.png" id="9_b51fx"] [ext_resource type="AnimationLibrary" uid="uid://ceb3khu7rwgy8" path="res://resources/animations/zombies/basic.res" id="9_y6afe"] [ext_resource type="Script" uid="uid://c36bj8u7jghc7" path="res://scripts/audio/ChannelPlayer.cs" id="10_ruqsf"] [ext_resource type="Script" uid="uid://dwlwi42smgxkb" path="res://scripts/TimeScalableAnimationTree.cs" id="11_ccrjo"] @@ -196,15 +197,549 @@ region = Rect2(2, 7, 6, 19) atlas = ExtResource("6_xnora") region = Rect2(0, 32, 9, 15) -[sub_resource type="AtlasTexture" id="AtlasTexture_6y4ja"] -atlas = ExtResource("6_xnora") -region = Rect2(13, 2, 9, 10) +[sub_resource type="AtlasTexture" id="AtlasTexture_vlvtp"] +atlas = ExtResource("9_b51fx") +region = Rect2(55, 0, 9, 10) [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_ccrjo"] radius = 3.00026 height = 16.007 +[sub_resource type="Animation" id="Animation_vn3j1"] +resource_name = "RESET" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Zombie/Butt/Body/LeftUpperArm/LeftLowerArm:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-2, 14)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Zombie/Butt/Body/LeftUpperArm/LeftLowerArm:rotation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Zombie/Butt/Body/LeftUpperArm/LeftLowerArm/LeftHand:position") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-1, 13)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Zombie/Butt/Body/LeftUpperArm/LeftLowerArm/LeftHand:rotation") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Zombie/Butt/Body/LeftUpperArm:position") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-1, -20)] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Zombie/Butt/Body/LeftUpperArm:rotation") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/6/type = "value" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("Zombie/Butt/Body/Head/LeftEye:position") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-4, -9)] +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("Zombie/Butt/Body/Head/LeftEye:rotation") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/8/type = "value" +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/path = NodePath("Zombie/Butt/Body/Head/RightEye:position") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-16, -8)] +} +tracks/9/type = "value" +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/path = NodePath("Zombie/Butt/Body/Head/RightEye:rotation") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/10/type = "value" +tracks/10/imported = false +tracks/10/enabled = true +tracks/10/path = NodePath("Zombie/Butt/Body/Head/Jaw:position") +tracks/10/interp = 1 +tracks/10/loop_wrap = true +tracks/10/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-3, 3)] +} +tracks/11/type = "value" +tracks/11/imported = false +tracks/11/enabled = true +tracks/11/path = NodePath("Zombie/Butt/Body/Head/Jaw:rotation") +tracks/11/interp = 1 +tracks/11/loop_wrap = true +tracks/11/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/12/type = "value" +tracks/12/imported = false +tracks/12/enabled = true +tracks/12/path = NodePath("Zombie/Butt/Body/RightUpperArm/RightLowerArm/RightHand:position") +tracks/12/interp = 1 +tracks/12/loop_wrap = true +tracks/12/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-1, 13)] +} +tracks/13/type = "value" +tracks/13/imported = false +tracks/13/enabled = true +tracks/13/path = NodePath("Zombie/Butt/Body/RightUpperArm/RightLowerArm/RightHand:rotation") +tracks/13/interp = 1 +tracks/13/loop_wrap = true +tracks/13/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/14/type = "value" +tracks/14/imported = false +tracks/14/enabled = true +tracks/14/path = NodePath("Zombie/Butt/Body/RightUpperArm/RightLowerArm:position") +tracks/14/interp = 1 +tracks/14/loop_wrap = true +tracks/14/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-2, 15)] +} +tracks/15/type = "value" +tracks/15/imported = false +tracks/15/enabled = true +tracks/15/path = NodePath("Zombie/Butt/Body/RightUpperArm/RightLowerArm:rotation") +tracks/15/interp = 1 +tracks/15/loop_wrap = true +tracks/15/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/16/type = "value" +tracks/16/imported = false +tracks/16/enabled = true +tracks/16/path = NodePath("Zombie/Butt/Body/RightUpperArm:position") +tracks/16/interp = 1 +tracks/16/loop_wrap = true +tracks/16/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-14, -23)] +} +tracks/17/type = "value" +tracks/17/imported = false +tracks/17/enabled = true +tracks/17/path = NodePath("Zombie/Butt/Body/RightUpperArm:rotation") +tracks/17/interp = 1 +tracks/17/loop_wrap = true +tracks/17/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/18/type = "value" +tracks/18/imported = false +tracks/18/enabled = true +tracks/18/path = NodePath("Zombie/Butt/LeftUpperLeg/LeftLowerLeg/LeftFoot:position") +tracks/18/interp = 1 +tracks/18/loop_wrap = true +tracks/18/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(6, 10)] +} +tracks/19/type = "value" +tracks/19/imported = false +tracks/19/enabled = true +tracks/19/path = NodePath("Zombie/Butt/LeftUpperLeg/LeftLowerLeg/LeftFoot:rotation") +tracks/19/interp = 1 +tracks/19/loop_wrap = true +tracks/19/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/20/type = "value" +tracks/20/imported = false +tracks/20/enabled = true +tracks/20/path = NodePath("Zombie/Butt/LeftUpperLeg/LeftLowerLeg:position") +tracks/20/interp = 1 +tracks/20/loop_wrap = true +tracks/20/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-1, 13)] +} +tracks/21/type = "value" +tracks/21/imported = false +tracks/21/enabled = true +tracks/21/path = NodePath("Zombie/Butt/LeftUpperLeg/LeftLowerLeg:rotation") +tracks/21/interp = 1 +tracks/21/loop_wrap = true +tracks/21/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/22/type = "value" +tracks/22/imported = false +tracks/22/enabled = true +tracks/22/path = NodePath("Zombie/Butt/LeftUpperLeg:position") +tracks/22/interp = 1 +tracks/22/loop_wrap = true +tracks/22/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(6, 4)] +} +tracks/23/type = "value" +tracks/23/imported = false +tracks/23/enabled = true +tracks/23/path = NodePath("Zombie/Butt/LeftUpperLeg:rotation") +tracks/23/interp = 1 +tracks/23/loop_wrap = true +tracks/23/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/24/type = "value" +tracks/24/imported = false +tracks/24/enabled = true +tracks/24/path = NodePath("Zombie/Butt/RightUpperLeg/RightLowerLeg/RightFoot:position") +tracks/24/interp = 1 +tracks/24/loop_wrap = true +tracks/24/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-2, 14)] +} +tracks/25/type = "value" +tracks/25/imported = false +tracks/25/enabled = true +tracks/25/path = NodePath("Zombie/Butt/RightUpperLeg/RightLowerLeg/RightFoot:rotation") +tracks/25/interp = 1 +tracks/25/loop_wrap = true +tracks/25/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/26/type = "value" +tracks/26/imported = false +tracks/26/enabled = true +tracks/26/path = NodePath("Zombie/Butt/RightUpperLeg/RightLowerLeg:position") +tracks/26/interp = 1 +tracks/26/loop_wrap = true +tracks/26/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-2, 12)] +} +tracks/27/type = "value" +tracks/27/imported = false +tracks/27/enabled = true +tracks/27/path = NodePath("Zombie/Butt/RightUpperLeg/RightLowerLeg:rotation") +tracks/27/interp = 1 +tracks/27/loop_wrap = true +tracks/27/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/28/type = "value" +tracks/28/imported = false +tracks/28/enabled = true +tracks/28/path = NodePath("Zombie/Butt/RightUpperLeg:position") +tracks/28/interp = 1 +tracks/28/loop_wrap = true +tracks/28/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-6, 3)] +} +tracks/29/type = "value" +tracks/29/imported = false +tracks/29/enabled = true +tracks/29/path = NodePath("Zombie/Butt/RightUpperLeg:rotation") +tracks/29/interp = 1 +tracks/29/loop_wrap = true +tracks/29/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/30/type = "value" +tracks/30/imported = false +tracks/30/enabled = true +tracks/30/path = NodePath("Zombie/Butt:position") +tracks/30/interp = 1 +tracks/30/loop_wrap = true +tracks/30/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(5, -35)] +} +tracks/31/type = "value" +tracks/31/imported = false +tracks/31/enabled = true +tracks/31/path = NodePath("Zombie/Butt:rotation") +tracks/31/interp = 1 +tracks/31/loop_wrap = true +tracks/31/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/32/type = "value" +tracks/32/imported = false +tracks/32/enabled = true +tracks/32/path = NodePath("Zombie/Butt/Body:position") +tracks/32/interp = 1 +tracks/32/loop_wrap = true +tracks/32/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(1, -2)] +} +tracks/33/type = "value" +tracks/33/imported = false +tracks/33/enabled = true +tracks/33/path = NodePath("Zombie/Butt/Body:rotation") +tracks/33/interp = 1 +tracks/33/loop_wrap = true +tracks/33/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/34/type = "value" +tracks/34/imported = false +tracks/34/enabled = true +tracks/34/path = NodePath("Zombie:position") +tracks/34/interp = 1 +tracks/34/loop_wrap = true +tracks/34/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(0, 0)] +} +tracks/35/type = "value" +tracks/35/imported = false +tracks/35/enabled = true +tracks/35/path = NodePath("Zombie:rotation") +tracks/35/interp = 1 +tracks/35/loop_wrap = true +tracks/35/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/36/type = "value" +tracks/36/imported = false +tracks/36/enabled = true +tracks/36/path = NodePath("Zombie/Butt/Body/Head:position") +tracks/36/interp = 1 +tracks/36/loop_wrap = true +tracks/36/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-10, -25)] +} +tracks/37/type = "value" +tracks/37/imported = false +tracks/37/enabled = true +tracks/37/path = NodePath("Zombie/Butt/Body/Head:rotation") +tracks/37/interp = 1 +tracks/37/loop_wrap = true +tracks/37/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/38/type = "value" +tracks/38/imported = false +tracks/38/enabled = true +tracks/38/path = NodePath("Zombie/Butt/Body/Head:visible") +tracks/38/interp = 1 +tracks/38/loop_wrap = true +tracks/38/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/39/type = "value" +tracks/39/imported = false +tracks/39/enabled = true +tracks/39/path = NodePath("Zombie/Butt/Body/Head/TrashcanLid:position") +tracks/39/interp = 1 +tracks/39/loop_wrap = true +tracks/39/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-0.0022974, -17.0131)] +} +tracks/40/type = "value" +tracks/40/imported = false +tracks/40/enabled = true +tracks/40/path = NodePath("Zombie/Butt/Body/Head/TrashcanLid:rotation") +tracks/40/interp = 1 +tracks/40/loop_wrap = true +tracks/40/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/41/type = "value" +tracks/41/imported = false +tracks/41/enabled = true +tracks/41/path = NodePath("Zombie/Butt/Body/Head/TrashcanLid:visible") +tracks/41/interp = 1 +tracks/41/loop_wrap = true +tracks/41/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/42/type = "value" +tracks/42/imported = false +tracks/42/enabled = true +tracks/42/path = NodePath("Zombie/Butt/Body/LeftUpperArm/HandProjectile/Left_Lower_Arm/Left_Hand:texture") +tracks/42/interp = 1 +tracks/42/loop_wrap = true +tracks/42/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [SubResource("AtlasTexture_vlvtp")] +} +tracks/43/type = "value" +tracks/43/imported = false +tracks/43/enabled = true +tracks/43/path = NodePath("Zombie/Butt/Body/LeftUpperArm/HandProjectile/Left_Lower_Arm/Left_Hand:offset") +tracks/43/interp = 1 +tracks/43/loop_wrap = true +tracks/43/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-4, -1)] +} + [sub_resource type="AnimationLibrary" id="AnimationLibrary_x5uj2"] +_data = { +&"RESET": SubResource("Animation_vn3j1") +} [sub_resource type="RectangleShape2D" id="RectangleShape2D_hxyad"] size = Vector2(2, 48) @@ -261,8 +796,7 @@ script = ExtResource("3_rao3m") modification_stack = SubResource("SkeletonModificationStack2D_wn68q") [node name="Butt" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie"] -position = Vector2(-22, -9) -rotation = -1.03478 +position = Vector2(5, -35) scale = Vector2(0.999903, 0.999903) rest = Transform2D(1, 0, 0, 1, 5, -35) editor_settings/show_bone_gizmo = false @@ -275,7 +809,6 @@ metadata/_edit_lock_ = true [node name="RightUpperLeg" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt"] position = Vector2(-6, 3) -rotation = -0.596673 scale = Vector2(0.999834, 0.999834) rest = Transform2D(1, 0, 0, 1, -6, 3) editor_settings/show_bone_gizmo = false @@ -288,14 +821,12 @@ metadata/_edit_lock_ = true [node name="RightLowerLeg" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/RightUpperLeg"] position = Vector2(-2, 12) -rotation = 0.0335003 scale = Vector2(0.999841, 0.999841) rest = Transform2D(1, 0, 0, 1, -2, 12) editor_settings/show_bone_gizmo = false [node name="RightFoot" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/RightUpperLeg/RightLowerLeg"] position = Vector2(-2, 14) -rotation = 0.279912 scale = Vector2(0.999831, 0.999831) rest = Transform2D(1, 0, 0, 1, -2, 14) auto_calculate_length_and_angle = false @@ -318,8 +849,7 @@ metadata/_edit_lock_ = true [node name="LeftUpperLeg" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt"] position = Vector2(6, 4) -rotation = -0.0713271 -scale = Vector2(0.999834, 0.999834) +scale = Vector2(0.999835, 0.999835) rest = Transform2D(1, 0, 0, 1, 6, 4) editor_settings/show_bone_gizmo = false @@ -331,8 +861,7 @@ metadata/_edit_lock_ = true [node name="LeftLowerLeg" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/LeftUpperLeg"] position = Vector2(-1, 13) -rotation = -0.289205 -scale = Vector2(0.999834, 0.999834) +scale = Vector2(0.999835, 0.999835) rest = Transform2D(1, 0, 0, 1, -1, 13) editor_settings/show_bone_gizmo = false @@ -344,7 +873,6 @@ metadata/_edit_lock_ = true [node name="LeftFoot" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/LeftUpperLeg/LeftLowerLeg"] position = Vector2(6, 10) -rotation = -0.899995 scale = Vector2(0.999833, 0.999833) rest = Transform2D(1, 0, 0, 1, 6, 10) auto_calculate_length_and_angle = false @@ -360,16 +888,14 @@ metadata/_edit_lock_ = true [node name="Body" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt"] position = Vector2(1, -2) -rotation = -0.220732 scale = Vector2(0.999833, 0.999833) rest = Transform2D(1, 0, 0, 1, 1, -2) editor_settings/show_bone_gizmo = false [node name="RightUpperArm" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body"] z_index = -1 -position = Vector2(-11.3243, -22.8469) -rotation = -0.10805 -scale = Vector2(0.999828, 0.999828) +position = Vector2(-14, -23) +scale = Vector2(0.999827, 0.999827) rest = Transform2D(1, 0, 0, 1, -14, -23) editor_settings/show_bone_gizmo = false @@ -381,15 +907,13 @@ metadata/_edit_lock_ = true [node name="RightLowerArm" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/RightUpperArm"] position = Vector2(-2, 15) -rotation = -0.230923 -scale = Vector2(0.999829, 0.999829) +scale = Vector2(0.999828, 0.999828) rest = Transform2D(1, 0, 0, 1, -2, 15) editor_settings/show_bone_gizmo = false [node name="RightHand" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/RightUpperArm/RightLowerArm"] position = Vector2(-1, 13) -rotation = 0.0408225 -scale = Vector2(0.99983, 0.99983) +scale = Vector2(0.999829, 0.999829) rest = Transform2D(1, 0, 0, 1, -1, 13) auto_calculate_length_and_angle = false length = 8.0 @@ -417,9 +941,8 @@ metadata/_edit_lock_ = true [node name="Tie" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body"] position = Vector2(-9, -21) -rotation = 0.689549 -scale = Vector2(1, 0.5) -skew = -0.00018692 +scale = Vector2(0.999825, 0.999825) +skew = -0.000187755 rest = Transform2D(1, 0, 0, 1, -9, -21) auto_calculate_length_and_angle = false length = 24.0 @@ -434,7 +957,7 @@ metadata/_edit_lock_ = true [node name="Head" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body"] position = Vector2(-10, -25) -scale = Vector2(0.999829, 0.999829) +scale = Vector2(0.999828, 0.999828) rest = Transform2D(1, 0, 0, 1, -10, -25) editor_settings/show_bone_gizmo = false @@ -522,7 +1045,6 @@ remote_path = NodePath("../../HeadParticle/Head/Left_Eye") [node name="LeftUpperArm" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body"] position = Vector2(-1, -20) -rotation = 1.91294 scale = Vector2(0.999826, 0.999826) rest = Transform2D(1, 0, 0, 1, -1, -20) editor_settings/show_bone_gizmo = false @@ -545,8 +1067,7 @@ minTorque = -45.0 maxTorque = 45.0 [node name="Left_Lower_Arm" type="Sprite2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm/HandProjectile"] -rotation = 0.396612 -scale = Vector2(0.999999, 0.999999) +scale = Vector2(1, 1) texture = SubResource("AtlasTexture_auqeq") centered = false offset = Vector2(-5, 0) @@ -555,9 +1076,8 @@ metadata/_edit_lock_ = true [node name="Left_Hand" type="Sprite2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm/HandProjectile/Left_Lower_Arm"] show_behind_parent = true position = Vector2(-0.99983, 12.9978) -rotation = 0.28535 scale = Vector2(0.999658, 0.999658) -texture = SubResource("AtlasTexture_6y4ja") +texture = SubResource("AtlasTexture_vlvtp") centered = false offset = Vector2(-4, -1) metadata/_edit_lock_ = true @@ -572,14 +1092,12 @@ _observedEntity = NodePath("../../../../../../../..") [node name="LeftLowerArm" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm"] position = Vector2(-2, 14) -rotation = 0.396612 -scale = Vector2(0.999829, 0.999829) +scale = Vector2(0.99983, 0.99983) rest = Transform2D(1, 0, 0, 1, -2, 14) editor_settings/show_bone_gizmo = false [node name="LeftHand" type="Bone2D" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm/LeftLowerArm"] position = Vector2(-1, 13) -rotation = 0.28535 scale = Vector2(0.999828, 0.999828) rest = Transform2D(1, 0, 0, 1, -1, 13) auto_calculate_length_and_angle = false @@ -630,6 +1148,7 @@ entity = NodePath("..") [node name="Mover" type="Node" parent="."] script = ExtResource("4_u5syx") _speed = SubResource("Resource_ckb7n") +_speedControlMult = 0.100826 [node name="ChompPlayer" type="Node" parent="."] script = ExtResource("10_ruqsf") diff --git a/scenes/prototype_survival.tscn b/scenes/prototype_survival.tscn index c0f16aa..aae7f88 100644 --- a/scenes/prototype_survival.tscn +++ b/scenes/prototype_survival.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=33 format=3 uid="uid://c1335fke4thpm"] +[gd_scene load_steps=34 format=3 uid="uid://c1335fke4thpm"] [ext_resource type="Script" uid="uid://bndu1h5kgcde8" path="res://scripts/level/RuntimeLevelData.cs" id="1_tnxdx"] [ext_resource type="Texture2D" uid="uid://b0tb2hjum40aw" path="res://assets/sprites/background_summer.png" id="1_vafkg"] @@ -23,6 +23,7 @@ [ext_resource type="Script" uid="uid://c0ov2bq5er0gh" path="res://scripts/plants/LoseZone.cs" id="16_r81g1"] [ext_resource type="Script" uid="uid://812ldoyxd5n5" path="res://scripts/level/LoseCheckbox.cs" id="17_pb02i"] [ext_resource type="AudioStream" uid="uid://bxshjvvtv3fmp" path="res://assets/audio/music/playlist.tres" id="23_tsy2s"] +[ext_resource type="PackedScene" uid="uid://bgqmwsb6ynm81" path="res://scenes/entities/Zombies/hobo.tscn" id="24_63iib"] [sub_resource type="Animation" id="Animation_r81g1"] length = 0.001 @@ -412,6 +413,9 @@ stream = ExtResource("23_tsy2s") autoplay = true bus = &"MusicBus" +[node name="Hobo" parent="." instance=ExtResource("24_63iib")] +position = Vector2(730, 254) + [connection signal="pressed" from="GameOverScreen/VBoxContainer/RestartButton" to="GameOverScreen/VBoxContainer/TapPlayer" method="Play"] [connection signal="pressed" from="GameOverScreen/VBoxContainer/ExitButton" to="GameOverScreen/VBoxContainer/TapPlayer" method="Play"] [connection signal="timeout" from="SunSpawner/Timer" to="SunSpawner" method="Spawn"] diff --git a/scripts/zombies/behaviours/HoboBehaviour.cs b/scripts/zombies/behaviours/HoboBehaviour.cs index dd0dd8d..ca77019 100644 --- a/scripts/zombies/behaviours/HoboBehaviour.cs +++ b/scripts/zombies/behaviours/HoboBehaviour.cs @@ -11,7 +11,7 @@ public partial class HoboBehaviour : Node public void Trashed() { canDestroyed = true; - ((AnimationNodeStateMachinePlayback)_animationTree.Get("parameters/Tree/playback")).Travel("hobo_zombie_can_destroy"); + ((AnimationNodeStateMachinePlayback)_animationTree.Get("parameters/Tree/playback")).Travel("Destroy"); _eatBox._damage.SetMult(3.0f); } }