[gd_scene load_steps=44 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="Script" uid="uid://dt5uj25u0g6y3" path="res://scripts/components/particles/FallParticle.cs" id="3_tu6af"] [ext_resource type="AnimationLibrary" uid="uid://cuh2kyb21hmkm" path="res://resources/animations/zombies/basic_zombie.res" id="4_02fim"] [ext_resource type="Script" uid="uid://c5v2og85t7s6j" path="res://scripts/components/zombies/behaviours/HoboBehaviour.cs" id="4_5selg"] [ext_resource type="Script" uid="uid://c3cfnrmnnuqms" path="res://addons/floatmodifiers/FloatModifiers.cs" id="4_c1y3b"] [ext_resource type="Script" uid="uid://fd4im1fmwc5n" path="res://scripts/components/Armor.cs" id="4_w8pya"] [ext_resource type="Script" uid="uid://bbw848msxb4re" path="res://scripts/components/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="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="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"] [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="CapsuleShape2D" id="CapsuleShape2D_4248q"] radius = 17.0 height = 48.0 [sub_resource type="Resource" id="Resource_qg8rq"] resource_local_to_scene = true script = ExtResource("4_c1y3b") flat_value = 10.0 percentage_value = 0.0 mult_value = 1.0 [sub_resource type="Animation" id="Animation_qv5y7"] length = 0.001 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("CanvasGroup/Sprite:self_modulate") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Color(1, 1, 1, 1)] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("Mover:_speedControlMult") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [0.0] } [sub_resource type="AnimationLibrary" id="AnimationLibrary_sq25x"] _data = { &"RESET": SubResource("Animation_qv5y7") } [sub_resource type="Animation" id="Animation_w8pya"] length = 2.0 tracks/0/type = "method" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("Mover") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(1.93333), "transitions": PackedFloat32Array(1), "values": [{ "args": [3.0], "method": &"SetSpeedMult" }] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("CanvasGroup/Sprite:self_modulate") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0, 2), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [Color(1, 1, 1, 1), Color(1, 0, 0, 1)] } tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("Mover:_speedControlMult") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { "times": PackedFloat32Array(0, 2), "transitions": PackedFloat32Array(1, 1), "update": 1, "values": [0.0, 1.0] } tracks/3/type = "method" tracks/3/imported = false tracks/3/enabled = true tracks/3/path = NodePath("RipPlayer") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = { "times": PackedFloat32Array(1.96667), "transitions": PackedFloat32Array(1), "values": [{ "args": [], "method": &"Play" }] } [sub_resource type="Animation" id="Animation_5selg"] resource_name = "walk" tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("Mover:_speedControlMult") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [1.0] } [sub_resource type="AnimationLibrary" id="AnimationLibrary_5selg"] _data = { &"can_destroy": SubResource("Animation_w8pya"), &"run": SubResource("Animation_5selg") } [sub_resource type="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) [sub_resource type="Resource" id="Resource_4248q"] resource_local_to_scene = true script = ExtResource("4_c1y3b") flat_value = 0.2 percentage_value = 0.0 mult_value = 1.0 [node name="Hobo" node_paths=PackedStringArray("_armor") instance=ExtResource("1_fnu7s")] _maxHP = 130 _armor = NodePath("CanArmor") [node name="CanvasGroup" parent="." index="0"] material = SubResource("ShaderMaterial_w8pya") [node name="Can" type="RigidBody2D" parent="CanvasGroup" index="1" node_paths=PackedStringArray("data")] collision_layer = 128 collision_mask = 64 freeze = true script = ExtResource("3_tu6af") 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) texture = SubResource("AtlasTexture_w8pya") script = ExtResource("5_ndwp0") 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"] z_index = -1 position = Vector2(-6, -63) texture = SubResource("AtlasTexture_5selg") [node name="CollisionShape2D" type="CollisionShape2D" parent="CanvasGroup/Can" index="2"] position = Vector2(-3, -40) shape = SubResource("CapsuleShape2D_4248q") [node name="Eatbox" parent="." index="2"] _damage = SubResource("Resource_qg8rq") [node name="AnimationPlayer" parent="." index="3"] libraries = { &"": SubResource("AnimationLibrary_sq25x"), &"basic_zombie": ExtResource("4_02fim"), &"hobo_zombie": SubResource("AnimationLibrary_5selg") } autoplay = "baisc_zombie/walk" speed_scale = 3.0 [node name="AnimationTree" parent="." index="4"] tree_root = SubResource("AnimationNodeStateMachine_xg3p6") advance_expression_base_node = NodePath("../Behaviour") [node name="Mover" parent="." index="5"] _speed = SubResource("Resource_4248q") [node name="CanArmor" type="Node" parent="." index="7"] script = ExtResource("4_w8pya") MaxHP = 385 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") [node name="HitPlayer" parent="." index="9"] playlist = Array[AudioStream]([ExtResource("8_4248q"), ExtResource("9_tu6af")]) channels = Array[String](["metal_hit", "hit"]) [node name="RipPlayer" type="Node" parent="." index="11"] script = ExtResource("11_7jlle") audioStream = ExtResource("12_w1b1s") 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="Behaviour" method="Trashed"]