[gd_scene load_steps=41 format=3 uid="uid://bgqmwsb6ynm81"] [ext_resource type="PackedScene" uid="uid://co11v3w8hbwgf" path="res://scenes/entities/Zombies/zombie.tscn" id="1_fnu7s"] [ext_resource type="Shader" uid="uid://d0eo5uuj222c4" path="res://assets/shaders/CG_color_blender.gdshader" id="2_6qr4h"] [ext_resource type="Texture2D" uid="uid://cse1504ao4g8e" path="res://assets/sprites/atlases/zombies/hobo.png" id="3_6qr4h"] [ext_resource type="Resource" uid="uid://dsg1vjx76ifgu" path="res://resources/effects/GarlicEffect.tres" id="3_b583s"] [ext_resource type="Script" uid="uid://dt5uj25u0g6y3" path="res://scripts/particles/FallParticle.cs" id="3_tu6af"] [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="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="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="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_02fim"] animation = &"hobo_zombie/can_destroy" [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_c1y3b"] animation = &"basic_zombie_walk" [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(-30, 35) [sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_txjqc"] graph_offset = Vector2(-447, 53) nodes/TimeScale/node = SubResource("AnimationNodeTimeScale_2q05d") nodes/TimeScale/position = Vector2(60, 120) nodes/Tree/node = SubResource("AnimationNodeStateMachine_xg3p6") nodes/Tree/position = Vector2(-220, 120) node_connections = [&"TimeScale", 0, &"Tree", &"output", 0, &"TimeScale"] [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")] _armor = NodePath("CanArmor") MaxHP = 130.0 _effectImmunities = [ExtResource("3_b583s")] [node name="CanvasGroup" parent="." index="0"] material = SubResource("ShaderMaterial_w8pya") [node name="RightUpperLeg" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt" index="1"] scale = Vector2(0.999825, 0.999825) [node name="RightLowerLeg" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/RightUpperLeg" index="1"] scale = Vector2(0.999829, 0.999829) [node name="RightFoot" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/RightUpperLeg/RightLowerLeg" index="0"] scale = Vector2(0.999826, 0.999826) [node name="LeftUpperLeg" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt" index="2"] scale = Vector2(0.999829, 0.999829) [node name="LeftLowerLeg" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/LeftUpperLeg" index="1"] scale = Vector2(0.999829, 0.999829) [node name="LeftFoot" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/LeftUpperLeg/LeftLowerLeg" index="1"] scale = Vector2(0.999824, 0.999824) [node name="Body" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt" index="3"] scale = Vector2(0.999829, 0.999829) [node name="RightUpperArm" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body" index="0"] scale = Vector2(0.99983, 0.99983) [node name="RightLowerArm" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/RightUpperArm" index="1"] scale = Vector2(0.99982, 0.99982) [node name="RightHand" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/RightUpperArm/RightLowerArm" index="0"] scale = Vector2(0.99983, 0.99983) [node name="Head" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body" index="3"] scale = Vector2(0.999829, 0.999829) [node name="Jaw" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/Head" index="1"] scale = Vector2(0.999831, 0.999831) [node name="LeftUpperArm" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body" index="4"] scale = Vector2(0.99983, 0.99983) [node name="LeftLowerArm" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm" index="1"] scale = Vector2(0.999829, 0.999829) [node name="LeftHand" parent="CanvasGroup/basic_zombie_walk/Zombie/Butt/Body/LeftUpperArm/LeftLowerArm" index="0"] scale = Vector2(0.999829, 0.999829) [node name="Can" type="RigidBody2D" parent="CanvasGroup" index="1" node_paths=PackedStringArray("data")] collision_layer = 128 collision_mask = 64 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="AnimationTree" parent="." index="3"] tree_root = SubResource("AnimationNodeBlendTree_txjqc") advance_expression_base_node = NodePath("../Behaviour") [node name="Mover" parent="." index="4"] _speed = SubResource("Resource_4248q") [node name="HitPlayer" parent="." index="6"] playlist = Array[AudioStream]([ExtResource("8_4248q"), ExtResource("9_tu6af")]) channels = Array[String](["metal_hit", "hit"]) [node name="CanArmor" type="Node" parent="." index="7"] script = ExtResource("4_w8pya") MaxHP = 385.0 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="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"]