Audio system and rich text

This commit is contained in:
Rendo 2025-06-29 14:28:51 +05:00
commit 68cafff083
161 changed files with 1605 additions and 255 deletions

View file

@ -0,0 +1,14 @@
[gd_scene load_steps=4 format=3 uid="uid://cn0bk76pi8ehc"]
[ext_resource type="Script" uid="uid://cauc1ieq84fwg" path="res://scripts/audio/AudioSequencer.cs" id="1_41q0p"]
[ext_resource type="Script" uid="uid://c1x4n4nqyq72f" path="res://scripts/audio/ChannelSettings.cs" id="2_npxdp"]
[sub_resource type="Resource" id="Resource_iuccj"]
script = ExtResource("2_npxdp")
restartTreshold = 0.3
metadata/_custom_type_script = "uid://c1x4n4nqyq72f"
[node name="AudioSequencer" type="Node"]
process_mode = 3
script = ExtResource("1_41q0p")
standardSettings = SubResource("Resource_iuccj")

View file

@ -8,8 +8,8 @@
[ext_resource type="PackedScene" uid="uid://cfnmspei3k4p7" path="res://scenes/gui/runtime_gui.tscn" id="6_0baou"]
[ext_resource type="PackedScene" uid="uid://bpekho7leatr5" path="res://scenes/sun.tscn" id="6_ay12k"]
[ext_resource type="Script" uid="uid://cslqjdd5wq4rc" path="res://scripts/components/level/SunSpawner.cs" id="6_lkguy"]
[ext_resource type="PackedScene" uid="uid://hhjbqkjqpt7x" path="res://scenes/entities/Zombies/cone_zombie.tscn" id="9_3uwe7"]
[ext_resource type="Script" uid="uid://blpu7t8tf6277" path="res://scripts/components/particles/FallFloor.cs" id="10_q4fsb"]
[ext_resource type="PackedScene" uid="uid://bgqmwsb6ynm81" path="res://scenes/entities/Zombies/hobo.tscn" id="10_tbxxq"]
[sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_tbxxq"]
@ -31,12 +31,13 @@ metadata/_edit_lock_ = true
script = ExtResource("1_i3bf5")
SunCount = 999999
[node name="Pools" type="Node2D" parent="." node_paths=PackedStringArray("Zombies", "Plants", "Projectiles", "Structures")]
[node name="Pools" type="Node2D" parent="." node_paths=PackedStringArray("Zombies", "Plants", "Projectiles", "Structures", "Particles")]
script = ExtResource("3_1y18w")
Zombies = NodePath("Zombies")
Plants = NodePath("Plants")
Projectiles = NodePath("Projectiles")
Structures = NodePath("Structures")
Particles = NodePath("Projectiles")
[node name="Zombies" type="Node2D" parent="Pools"]
z_index = 3
@ -76,9 +77,6 @@ SunScene = ExtResource("6_ay12k")
wait_time = 5.0
autostart = true
[node name="ConeZombie" parent="." instance=ExtResource("9_3uwe7")]
position = Vector2(772, 255)
[node name="Lines" type="Node2D" parent="."]
script = ExtResource("10_q4fsb")
@ -122,4 +120,9 @@ collision_mask = 0
[node name="CollisionShape2D" type="CollisionShape2D" parent="Lines/Floor5"]
shape = SubResource("WorldBoundaryShape2D_tbxxq")
[node name="Hobo" parent="." instance=ExtResource("10_tbxxq")]
position = Vector2(755, 256)
garlicSound = null
freezeSound = null
[connection signal="timeout" from="SunSpawner/Timer" to="SunSpawner" method="Spawn"]

View file

@ -1,9 +1,11 @@
[gd_scene load_steps=8 format=3 uid="uid://xu4i6tmkv00a"]
[gd_scene load_steps=10 format=3 uid="uid://xu4i6tmkv00a"]
[ext_resource type="PackedScene" uid="uid://hhjbqkjqpt7x" path="res://scenes/entities/Zombies/cone_zombie.tscn" id="1_mwqpo"]
[ext_resource type="Shader" uid="uid://d0eo5uuj222c4" path="res://assets/shaders/CG_color_blender.gdshader" id="2_3mrqj"]
[ext_resource type="Texture2D" uid="uid://ce04l60l6mhfk" path="res://assets/sprites/bucket.tres" id="3_0nlp0"]
[ext_resource type="Script" uid="uid://c3cfnrmnnuqms" path="res://addons/floatmodifiers/FloatModifiers.cs" id="4_1s2fn"]
[ext_resource type="AudioStream" uid="uid://bu1egfsyplpx4" path="res://assets/audio/sfx/metalhit_generic.tres" id="5_lt6ps"]
[ext_resource type="AudioStream" uid="uid://w0qfwds4o3ti" path="res://assets/audio/sfx/hit_generic.tres" id="6_kedip"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_wdi07"]
resource_local_to_scene = true
@ -45,3 +47,7 @@ _speed = SubResource("Resource_lt6ps")
[node name="Armor" parent="." index="7"]
_maxHP = 385
[node name="HitPlayer" parent="." index="8"]
playlist = Array[AudioStream]([ExtResource("5_lt6ps"), ExtResource("6_kedip")])
channels = Array[String](["metal_hit", "hit"])

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=11 format=3 uid="uid://hhjbqkjqpt7x"]
[gd_scene load_steps=13 format=3 uid="uid://hhjbqkjqpt7x"]
[ext_resource type="PackedScene" uid="uid://co11v3w8hbwgf" path="res://scenes/entities/Zombies/zombie.tscn" id="1_3dq4c"]
[ext_resource type="Shader" uid="uid://d0eo5uuj222c4" path="res://assets/shaders/CG_color_blender.gdshader" id="2_2dq8e"]
@ -6,6 +6,8 @@
[ext_resource type="Script" uid="uid://dt5uj25u0g6y3" path="res://scripts/components/particles/FallParticle.cs" id="3_w70im"]
[ext_resource type="Texture2D" uid="uid://ceqvdmude7cgg" path="res://assets/sprites/cone.tres" id="4_qdhik"]
[ext_resource type="Script" uid="uid://c3cfnrmnnuqms" path="res://addons/floatmodifiers/FloatModifiers.cs" id="4_qof5v"]
[ext_resource type="AudioStream" uid="uid://bmupd3v3gvsca" path="res://assets/audio/sfx/plastichit_generic.tres" id="7_0amn8"]
[ext_resource type="AudioStream" uid="uid://w0qfwds4o3ti" path="res://assets/audio/sfx/hit_generic.tres" id="7_67t4t"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_sat5k"]
resource_local_to_scene = true
@ -35,7 +37,7 @@ _armor = NodePath("Armor")
[node name="CanvasGroup" parent="." index="0"]
material = SubResource("ShaderMaterial_sat5k")
[node name="Hat" type="RigidBody2D" parent="CanvasGroup" index="1" node_paths=PackedStringArray("data", "deathTimer")]
[node name="Hat" type="RigidBody2D" parent="CanvasGroup" index="1" node_paths=PackedStringArray("data")]
position = Vector2(-9, -76)
collision_layer = 128
collision_mask = 64
@ -44,10 +46,9 @@ center_of_mass_mode = 1
freeze = true
script = ExtResource("3_w70im")
data = NodePath("../..")
deathTimer = NodePath("Timer")
falloffImpulseMin = Vector2(0, 1)
falloffImpulseMax = Vector2(1, 0)
falloffOffsetMin = Vector2(1, 0)
maxAngle = 45.0
minTorque = -45.0
maxTorque = 45.0
Impulse = 100.0
[node name="Sprite" type="Sprite2D" parent="CanvasGroup/Hat" index="0"]
@ -58,9 +59,6 @@ texture = ExtResource("4_qdhik")
position = Vector2(1, -6)
shape = SubResource("CircleShape2D_67t4t")
[node name="Timer" type="Timer" parent="CanvasGroup/Hat" index="2"]
wait_time = 5.0
[node name="Eatbox" parent="." index="2"]
_damage = SubResource("Resource_w70im")
@ -71,5 +69,9 @@ _speed = SubResource("Resource_qof5v")
script = ExtResource("3_5s7in")
_maxHP = 130
[connection signal="timeout" from="CanvasGroup/Hat/Timer" to="CanvasGroup/Hat" method="queue_free"]
[node name="HitPlayer" parent="." index="8"]
playlist = Array[AudioStream]([ExtResource("7_0amn8"), ExtResource("7_67t4t")])
channels = Array[String](["plastic_hit", "hit"])
[connection signal="ArmorLost" from="Armor" to="HitPlayer" method="Next"]
[connection signal="ArmorLost" from="Armor" to="CanvasGroup/Hat" method="FallOff"]

View file

@ -1,12 +1,17 @@
[gd_scene load_steps=34 format=3 uid="uid://bgqmwsb6ynm81"]
[gd_scene load_steps=40 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="AudioStream" uid="uid://bu1egfsyplpx4" path="res://assets/audio/sfx/metalhit_generic.tres" id="8_4248q"]
[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
@ -22,6 +27,10 @@ region = Rect2(0, 15, 40, 49)
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")
@ -101,6 +110,20 @@ tracks/2/keys = {
"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"
@ -206,7 +229,16 @@ _armor = NodePath("CanArmor")
[node name="CanvasGroup" parent="." index="0"]
material = SubResource("ShaderMaterial_w8pya")
[node name="Can" type="Node2D" parent="CanvasGroup" index="1"]
[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"]
position = Vector2(-4, -40)
@ -217,6 +249,10 @@ 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")
@ -246,5 +282,16 @@ script = ExtResource("4_5selg")
_eatBox = NodePath("../Eatbox")
_animationTree = NodePath("../AnimationTree")
[connection signal="ArmorLost" from="CanArmor" to="CanvasGroup/Can" method="queue_free"]
[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"]

View file

@ -1,16 +1,21 @@
[gd_scene load_steps=19 format=3 uid="uid://co11v3w8hbwgf"]
[gd_scene load_steps=24 format=3 uid="uid://co11v3w8hbwgf"]
[ext_resource type="Script" uid="uid://dildme6epx8l4" path="res://scripts/components/zombies/RuntimeZombieData.cs" id="1_qq3f1"]
[ext_resource type="Texture2D" uid="uid://bwdqbrnn7ygtr" path="res://assets/sprites/atlases/zombies/Зондби.png" id="2_4pdxh"]
[ext_resource type="AudioStream" uid="uid://dt13iugnnx4op" path="res://assets/audio/sfx/yuck_generic.tres" id="2_hh4qh"]
[ext_resource type="Shader" uid="uid://d0eo5uuj222c4" path="res://assets/shaders/CG_color_blender.gdshader" id="2_srwwe"]
[ext_resource type="Script" uid="uid://dqyony6jxt2p0" path="res://scripts/components/zombies/EatBox.cs" id="3_2aulo"]
[ext_resource type="AudioStream" uid="uid://bjotp63arocci" path="res://assets/audio/sfx/frozen.mp3" id="3_ltj46"]
[ext_resource type="Script" uid="uid://c5vfccegyy01t" path="res://scripts/components/FlashComponent.cs" id="3_rao3m"]
[ext_resource type="Script" uid="uid://7hdj2k14lfe4" path="res://scripts/components/zombies/ZombieMover.cs" id="4_u5syx"]
[ext_resource type="AnimationLibrary" uid="uid://cuh2kyb21hmkm" path="res://resources/animations/zombies/basic_zombie.res" id="6_ckb7n"]
[ext_resource type="Script" uid="uid://c3cfnrmnnuqms" path="res://addons/floatmodifiers/FloatModifiers.cs" id="7_b3p4o"]
[ext_resource type="AnimationNodeStateMachine" uid="uid://dj0blope85bg7" path="res://resources/animations/zombies/basic_zombie_tree.tres" id="8_ckb7n"]
[ext_resource type="AudioStream" uid="uid://xoy5ct1t17k5" path="res://assets/audio/sfx/slap.mp3" id="8_di4dd"]
[ext_resource type="Script" uid="uid://bsg4utgc0u0vo" path="res://scripts/components/zombies/AudioDamage.cs" id="9_oxd1e"]
[ext_resource type="Script" uid="uid://c36bj8u7jghc7" path="res://scripts/audio/ChannelPlayer.cs" id="10_ruqsf"]
[ext_resource type="AudioStream" uid="uid://dyid55nhflwyn" path="res://assets/audio/sfx/chomp_generic.tres" id="11_vjrlo"]
[ext_resource type="AudioStream" uid="uid://bg76miyscfvhu" path="res://assets/audio/sfx/groan.tres" id="12_ad42i"]
[ext_resource type="Script" uid="uid://cnn0ymuhypdff" path="res://scripts/audio/ChannelPlaylist.cs" id="12_he8da"]
[ext_resource type="AudioStream" uid="uid://w0qfwds4o3ti" path="res://assets/audio/sfx/hit_generic.tres" id="12_vjrlo"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_63ls2"]
resource_local_to_scene = true
@ -62,6 +67,8 @@ mult_value = 1.0
y_sort_enabled = true
script = ExtResource("1_qq3f1")
_maxHP = 70
garlicSound = ExtResource("2_hh4qh")
freezeSound = ExtResource("3_ltj46")
[node name="CanvasGroup" type="CanvasGroup" parent="."]
material = SubResource("ShaderMaterial_63ls2")
@ -104,11 +111,35 @@ anim_player = NodePath("../AnimationPlayer")
script = ExtResource("4_u5syx")
_speed = SubResource("Resource_ckb7n")
[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("8_di4dd")
script = ExtResource("9_oxd1e")
[node name="ChompPlayer" type="Node" parent="."]
script = ExtResource("10_ruqsf")
audioStream = ExtResource("11_vjrlo")
channel = "chomp"
metadata/_custom_type_script = "uid://c36bj8u7jghc7"
[node name="HitPlayer" type="Node" parent="."]
script = ExtResource("12_he8da")
playlist = Array[AudioStream]([ExtResource("12_vjrlo")])
channels = Array[String](["hit"])
metadata/_custom_type_script = "uid://c36bj8u7jghc7"
[node name="GroanPlayer" type="Node" parent="."]
script = ExtResource("10_ruqsf")
audioStream = ExtResource("12_ad42i")
channel = "groan"
metadata/_custom_type_script = "uid://c36bj8u7jghc7"
[node name="Timer" type="Timer" parent="GroanPlayer"]
wait_time = 20.0
[node name="StartTimer" type="Timer" parent="GroanPlayer/Timer"]
wait_time = 5.0
one_shot = true
autostart = true
[connection signal="OnDamaged" from="." to="HitPlayer" method="Play"]
[connection signal="OnHPChanged" from="." to="CanvasGroup" method="DamageFlash"]
[connection signal="OnHPChanged" from="." to="AudioStreamPlayer2D" method="OnDamaged"]
[connection signal="area_entered" from="Eatbox" to="Eatbox" method="OnAreaEntered"]
[connection signal="area_exited" from="Eatbox" to="Eatbox" method="OnAreaExited"]
[connection signal="timeout" from="GroanPlayer/Timer" to="GroanPlayer" method="Play"]
[connection signal="timeout" from="GroanPlayer/Timer/StartTimer" to="GroanPlayer/Timer" method="start"]

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=19 format=3 uid="uid://dy41q1kxray5t"]
[gd_scene load_steps=21 format=3 uid="uid://dy41q1kxray5t"]
[ext_resource type="PackedScene" uid="uid://b1hjjbdwf1rtc" path="res://scenes/templates/plant_template.tscn" id="1_pyk3o"]
[ext_resource type="Texture2D" uid="uid://cksryh4w5dbbx" path="res://assets/sprites/atlases/plants/peashooter.png" id="2_14qlx"]
@ -8,6 +8,8 @@
[ext_resource type="Script" uid="uid://bdk5iqtw4xbkl" path="res://scripts/components/plants/behaviours/PeashooterBehaviour.cs" id="5_7qiua"]
[ext_resource type="Script" uid="uid://dn53jvpjyg63l" path="res://scripts/components/plants/Eyesight.cs" id="7_2bki8"]
[ext_resource type="Script" uid="uid://hccb0aee0x0o" path="res://scripts/components/plants/PlantEyesightLimiter.cs" id="8_nl4jc"]
[ext_resource type="Script" uid="uid://c36bj8u7jghc7" path="res://scripts/audio/ChannelPlayer.cs" id="9_mbbd7"]
[ext_resource type="AudioStream" uid="uid://dsv81mvrdg3w3" path="res://assets/audio/sfx/throw_generic.tres" id="10_q58jr"]
[sub_resource type="Animation" id="Animation_a2y0j"]
length = 0.001
@ -101,8 +103,12 @@ script = ExtResource("7_2bki8")
shape = SubResource("SegmentShape2D_8iovl")
script = ExtResource("8_nl4jc")
[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="." index="6"]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox" index="0"]
position = Vector2(0, 5)
shape = SubResource("RectangleShape2D_r7xnh")
[node name="ChannelPlayer" type="Node" parent="." index="7"]
script = ExtResource("9_mbbd7")
audioStream = ExtResource("10_q58jr")
channel = "pea_shoot"
metadata/_custom_type_script = "uid://c36bj8u7jghc7"

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=21 format=3 uid="uid://b5x35v3w2u8dx"]
[gd_scene load_steps=24 format=3 uid="uid://b5x35v3w2u8dx"]
[ext_resource type="PackedScene" uid="uid://b1hjjbdwf1rtc" path="res://scenes/templates/plant_template.tscn" id="1_dj7ul"]
[ext_resource type="Texture2D" uid="uid://c77o6ba0mw7a3" path="res://assets/sprites/atlases/plants/potato_mine.png" id="2_sneas"]
@ -6,6 +6,9 @@
[ext_resource type="AnimationLibrary" uid="uid://bjlbdvr6f0r7e" path="res://resources/animations/plants/potato_mine.res" id="3_7tqmj"]
[ext_resource type="Script" uid="uid://c7qfh4py0uulo" path="res://scripts/components/plants/behaviours/PotatomineBehaviour.cs" id="4_twx65"]
[ext_resource type="PackedScene" uid="uid://ckanq33rao1ur" path="res://scenes/particles/potato_explosion.tscn" id="5_px4r0"]
[ext_resource type="Script" uid="uid://c36bj8u7jghc7" path="res://scripts/audio/ChannelPlayer.cs" id="7_b1j2f"]
[ext_resource type="AudioStream" uid="uid://dltjtpyfr1so0" path="res://assets/audio/sfx/potato_mine.mp3" id="8_3vqdc"]
[ext_resource type="AudioStream" uid="uid://b27om1bw1x04e" path="res://assets/audio/sfx/dirt_rise.mp3" id="9_3vqdc"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_6uutc"]
animation = &"potato_mine/explode"
@ -103,6 +106,12 @@ particles = ExtResource("5_px4r0")
position = Vector2(0, 9)
shape = SubResource("CircleShape2D_wvns6")
[node name="ExplosionPlayer" type="Node" parent="ExplosionBox" index="1"]
script = ExtResource("7_b1j2f")
audioStream = ExtResource("8_3vqdc")
channel = "explosion"
metadata/_custom_type_script = "uid://c36bj8u7jghc7"
[node name="PrimeTimer" type="Timer" parent="." index="5"]
wait_time = 15.0
one_shot = true
@ -123,5 +132,11 @@ position = Vector2(0, 16.5)
shape = SubResource("RectangleShape2D_ti2g4")
disabled = true
[node name="ChannelPlayer" type="Node" parent="." index="8"]
script = ExtResource("7_b1j2f")
audioStream = ExtResource("9_3vqdc")
channel = "plant_rise"
metadata/_custom_type_script = "uid://c36bj8u7jghc7"
[connection signal="area_entered" from="Detectionbox" to="Behaviour" method="OnAreaEntered"]
[connection signal="timeout" from="PrimeTimer" to="Behaviour" method="Prime"]

View file

@ -31,7 +31,7 @@ size = Vector2(49, 38)
texture = ExtResource("2_ffrjr")
hframes = 10
vframes = 2
frame = 3
frame = 6
[node name="AnimationPlayer" parent="." index="1"]
libraries = {
@ -46,9 +46,7 @@ parameters/blend_position = 0.0
script = ExtResource("3_uhpn7")
_tree = NodePath("../AnimationTree")
[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="." index="4"]
[node name="Hitbox" parent="." index="5"]
[node name="Hitbox" parent="." index="4"]
collision_layer = 4
collision_mask = 8
script = ExtResource("3_hqtbm")

View file

@ -1,8 +1,7 @@
[gd_scene load_steps=12 format=3 uid="uid://eegv1qihfv2q"]
[gd_scene load_steps=11 format=3 uid="uid://eegv1qihfv2q"]
[ext_resource type="PackedScene" uid="uid://dy41q1kxray5t" path="res://scenes/entities/plants/peashooter.tscn" id="1_muntu"]
[ext_resource type="Script" uid="uid://djpc0kvagpadv" path="res://scripts/components/plants/ThreepeaterShooter.cs" id="2_ieami"]
[ext_resource type="AudioStream" uid="uid://dp6k7xiptn68n" path="res://assets/audio/sfx/pop.mp3" id="2_j7h7q"]
[ext_resource type="Script" uid="uid://hccb0aee0x0o" path="res://scripts/components/plants/PlantEyesightLimiter.cs" id="3_dqn6w"]
[sub_resource type="Animation" id="Animation_a2y0j"]
@ -73,21 +72,20 @@ tracks/1/keys = {
"method": &"Shoot"
}]
}
tracks/2/type = "audio"
tracks/2/type = "method"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("AudioStreamPlayer2D")
tracks/2/path = NodePath("ChannelPlayer")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 0.0,
"stream": ExtResource("2_j7h7q")
}],
"times": PackedFloat32Array(0.25)
"times": PackedFloat32Array(0.25),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"Play"
}]
}
tracks/2/use_blend = true
[sub_resource type="AnimationLibrary" id="AnimationLibrary_pqbws"]
resource_local_to_scene = true

View file

@ -28,13 +28,13 @@ blend_mode = 1
size = Vector2(33, 46)
[node name="Wallnut" instance=ExtResource("1_fluxn")]
_maxHP = 450
_maxHP = 600
[node name="Sprite2D" parent="." index="0"]
texture = ExtResource("2_o5tda")
hframes = 12
vframes = 3
frame = 4
frame = 3
[node name="AnimationPlayer" parent="." index="1"]
libraries = {

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=15 format=3 uid="uid://dpxxjfd5lv5sv"]
[gd_scene load_steps=16 format=3 uid="uid://dpxxjfd5lv5sv"]
[ext_resource type="Theme" uid="uid://e8n88g31w7x7" path="res://resources/themes/ChooseYourSeeds.tres" id="1_bfo8i"]
[ext_resource type="Texture2D" uid="uid://dr8a0rx42o3qy" path="res://assets/sprites/gui/ChooseYourSeeds/PlantFrame.tres" id="2_so2bw"]
@ -7,6 +7,8 @@
[ext_resource type="Script" uid="uid://eq3ecja30mlj" path="res://scripts/components/gui/choose_your_seeds/GridLoader.cs" id="4_i7sou"]
[ext_resource type="PackedScene" uid="uid://10b1egek6upx" path="res://scenes/gui/level_run_button.tscn" id="5_n80ic"]
[ext_resource type="Script" uid="uid://d26waisd3v488" path="res://scripts/components/gui/choose_your_seeds/LevelRunButton.cs" id="7_k6b6g"]
[ext_resource type="Script" uid="uid://c36bj8u7jghc7" path="res://scripts/audio/ChannelPlayer.cs" id="8_v7xff"]
[ext_resource type="AudioStream" uid="uid://bdx83fokp6kha" path="res://assets/audio/sfx/buttonclick.mp3" id="9_v7xff"]
[sub_resource type="Animation" id="Animation_0rps3"]
resource_name = "Hide"
@ -104,9 +106,6 @@ viewport_path = NodePath("Panel/MarginContainer/VBoxContainer/HBoxContainer/Fram
font_size = 24
font_color = Color(0, 0, 0, 1)
[sub_resource type="LabelSettings" id="LabelSettings_ln6r7"]
font_color = Color(0, 0, 0, 1)
[node name="ChooseYourSeeds" type="Control"]
process_mode = 3
layout_mode = 3
@ -197,11 +196,11 @@ layout_mode = 2
label_settings = SubResource("LabelSettings_fmc0y")
horizontal_alignment = 1
[node name="Description" type="Label" parent="Panel/MarginContainer/VBoxContainer/HBoxContainer/PanelContainer/ScrollContainer/VBoxContainer"]
[node name="Description" type="RichTextLabel" parent="Panel/MarginContainer/VBoxContainer/HBoxContainer/PanelContainer/ScrollContainer/VBoxContainer"]
layout_mode = 2
text = "
"
label_settings = SubResource("LabelSettings_ln6r7")
theme_override_colors/default_color = Color(0, 0, 0, 1)
bbcode_enabled = true
fit_content = true
[node name="ScrollContainer" type="ScrollContainer" parent="Panel/MarginContainer/VBoxContainer"]
layout_mode = 2
@ -222,3 +221,11 @@ offset_right = -16.16
offset_bottom = -16.016
script = ExtResource("7_k6b6g")
_player = NodePath("../../AnimationPlayer")
[node name="ChannelPlayer" type="Node" parent="."]
script = ExtResource("8_v7xff")
audioStream = ExtResource("9_v7xff")
channel = "button"
metadata/_custom_type_script = "uid://c36bj8u7jghc7"
[connection signal="pressed" from="Panel/LevelRunButton" to="ChannelPlayer" method="Play"]

View file

@ -1,8 +1,10 @@
[gd_scene load_steps=9 format=3 uid="uid://fm471x22n8kr"]
[gd_scene load_steps=11 format=3 uid="uid://fm471x22n8kr"]
[ext_resource type="Texture2D" uid="uid://dvldjlg0nr355" path="res://assets/sprites/atlases/atlas1.png" id="1_loim0"]
[ext_resource type="Script" uid="uid://gvwhpjoame6m" path="res://scripts/components/gui/PauseMenu.cs" id="2_4vp8g"]
[ext_resource type="AudioStream" uid="uid://co33ajpc1a1qm" path="res://assets/audio/zo.mp3" id="3_e3p60"]
[ext_resource type="Script" uid="uid://c36bj8u7jghc7" path="res://scripts/audio/ChannelPlayer.cs" id="3_4vp8g"]
[ext_resource type="Script" uid="uid://ciccaxqo70s13" path="res://scripts/audio/AudioSlider.cs" id="3_e3p60"]
[ext_resource type="AudioStream" uid="uid://bdx83fokp6kha" path="res://assets/audio/sfx/buttonclick.mp3" id="4_e3p60"]
[sub_resource type="AtlasTexture" id="AtlasTexture_tifvb"]
atlas = ExtResource("1_loim0")
@ -32,9 +34,9 @@ grow_horizontal = 2
grow_vertical = 2
mouse_filter = 0
theme_override_constants/margin_left = 150
theme_override_constants/margin_top = 60
theme_override_constants/margin_top = 40
theme_override_constants/margin_right = 150
theme_override_constants/margin_bottom = 100
theme_override_constants/margin_bottom = 60
[node name="Pause" type="NinePatchRect" parent="."]
process_mode = 3
@ -70,6 +72,37 @@ label_settings = SubResource("LabelSettings_or0he")
horizontal_alignment = 1
metadata/_edit_use_anchors_ = true
[node name="SFXVolume" type="HBoxContainer" parent="Pause/MarginContainer/Buttons"]
layout_mode = 2
[node name="Label" type="Label" parent="Pause/MarginContainer/Buttons/SFXVolume"]
layout_mode = 2
text = "SFX"
[node name="HSlider" type="HSlider" parent="Pause/MarginContainer/Buttons/SFXVolume"]
layout_mode = 2
size_flags_horizontal = 3
max_value = 1.0
step = 0.01
value = 1.0
script = ExtResource("3_e3p60")
[node name="MusicVolume" type="HBoxContainer" parent="Pause/MarginContainer/Buttons"]
layout_mode = 2
[node name="Label" type="Label" parent="Pause/MarginContainer/Buttons/MusicVolume"]
layout_mode = 2
text = "Music"
[node name="HSlider" type="HSlider" parent="Pause/MarginContainer/Buttons/MusicVolume"]
layout_mode = 2
size_flags_horizontal = 3
max_value = 1.0
step = 0.01
value = 1.0
script = ExtResource("3_e3p60")
affects = 1
[node name="ContinueButton" type="Button" parent="Pause/MarginContainer/Buttons"]
layout_mode = 2
icon = SubResource("AtlasTexture_4k24j")
@ -85,9 +118,15 @@ layout_mode = 2
icon = SubResource("AtlasTexture_y3stn")
icon_alignment = 1
[node name="Audio" type="AudioStreamPlayer" parent="Pause"]
stream = ExtResource("3_e3p60")
[node name="ButtonPlayer" type="Node" parent="Pause/MarginContainer/Buttons"]
script = ExtResource("3_4vp8g")
audioStream = ExtResource("4_e3p60")
channel = "button"
metadata/_custom_type_script = "uid://c36bj8u7jghc7"
[connection signal="pressed" from="Pause/MarginContainer/Buttons/ContinueButton" to="Pause" method="Continue"]
[connection signal="pressed" from="Pause/MarginContainer/Buttons/ContinueButton" to="Pause/MarginContainer/Buttons/ButtonPlayer" method="Play"]
[connection signal="pressed" from="Pause/MarginContainer/Buttons/RestartButton" to="Pause" method="Restart"]
[connection signal="pressed" from="Pause/MarginContainer/Buttons/RestartButton" to="Pause/MarginContainer/Buttons/ButtonPlayer" method="Play"]
[connection signal="pressed" from="Pause/MarginContainer/Buttons/ExitButton" to="Pause" method="Exit"]
[connection signal="pressed" from="Pause/MarginContainer/Buttons/ExitButton" to="Pause/MarginContainer/Buttons/ButtonPlayer" method="Play"]

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=13 format=3 uid="uid://cfnmspei3k4p7"]
[gd_scene load_steps=16 format=3 uid="uid://cfnmspei3k4p7"]
[ext_resource type="PackedScene" uid="uid://ky35veswaytr" path="res://scenes/gui/sun_counter.tscn" id="1_le3od"]
[ext_resource type="Theme" uid="uid://b8l285cjcgeyi" path="res://resources/themes/GameStyle.tres" id="1_xf6ra"]
@ -8,6 +8,9 @@
[ext_resource type="PackedScene" uid="uid://cgm7td1hgs0rr" path="res://scenes/gui/fast_forward_button.tscn" id="4_66uy4"]
[ext_resource type="PackedScene" uid="uid://u5l3jd00s8vd" path="res://scenes/gui/pause_button.tscn" id="5_jyq78"]
[ext_resource type="PackedScene" uid="uid://b4lx8adw6rbqs" path="res://scenes/particles/dirt_explosion.tscn" id="6_5jtun"]
[ext_resource type="Script" uid="uid://c36bj8u7jghc7" path="res://scripts/audio/ChannelPlayer.cs" id="7_5kkbf"]
[ext_resource type="AudioStream" uid="uid://dfbg6dxg4actb" path="res://assets/audio/sfx/shovel.mp3" id="8_xq48m"]
[ext_resource type="AudioStream" uid="uid://ckja8ym50y0d4" path="res://assets/audio/sfx/pause.mp3" id="11_cti1a"]
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_ps2iw"]
texture = ExtResource("2_eg3hk")
@ -115,13 +118,30 @@ size_flags_horizontal = 1
size_flags_vertical = 4
particles = ExtResource("6_5jtun")
[node name="ChannelPlayer" type="Node" parent="MarginContainer/Control/Hotbar/ShovelButton"]
script = ExtResource("7_5kkbf")
audioStream = ExtResource("8_xq48m")
channel = "shovel"
metadata/_custom_type_script = "uid://c36bj8u7jghc7"
[node name="FastForwardButton" parent="MarginContainer/Control/Hotbar" node_paths=PackedStringArray("flashAnimator") instance=ExtResource("4_66uy4")]
layout_mode = 2
flashAnimator = NodePath("../../../../FastForwardEffect/AnimationPlayer")
[node name="ChannelPlayer" type="Node" parent="MarginContainer/Control/Hotbar/FastForwardButton"]
script = ExtResource("7_5kkbf")
channel = "fastfw"
metadata/_custom_type_script = "uid://c36bj8u7jghc7"
[node name="PauseButton" parent="MarginContainer/Control/Hotbar" instance=ExtResource("5_jyq78")]
layout_mode = 2
[node name="ChannelPlayer" type="Node" parent="MarginContainer/Control/Hotbar/PauseButton"]
script = ExtResource("7_5kkbf")
audioStream = ExtResource("11_cti1a")
channel = "pause"
metadata/_custom_type_script = "uid://c36bj8u7jghc7"
[node name="FastForwardEffect" type="ColorRect" parent="."]
z_index = 1
layout_mode = 1
@ -138,3 +158,6 @@ metadata/_edit_lock_ = true
libraries = {
&"": SubResource("AnimationLibrary_myv2j")
}
[connection signal="pressed" from="MarginContainer/Control/Hotbar/ShovelButton" to="MarginContainer/Control/Hotbar/ShovelButton/ChannelPlayer" method="Play"]
[connection signal="pressed" from="MarginContainer/Control/Hotbar/PauseButton" to="MarginContainer/Control/Hotbar/PauseButton/ChannelPlayer" method="Play"]

View file

@ -1,8 +1,10 @@
[gd_scene load_steps=5 format=3 uid="uid://devn21c7luf45"]
[gd_scene load_steps=7 format=3 uid="uid://devn21c7luf45"]
[ext_resource type="Shader" uid="uid://mt7vheq5modk" path="res://assets/shaders/greyscale.gdshader" id="1_d73yj"]
[ext_resource type="Script" uid="uid://bj7rw2f6qu1lg" path="res://scripts/components/level/PlantField.cs" id="2_84bqh"]
[ext_resource type="PackedScene" uid="uid://b4lx8adw6rbqs" path="res://scenes/particles/dirt_explosion.tscn" id="3_ddnu6"]
[ext_resource type="Script" uid="uid://c36bj8u7jghc7" path="res://scripts/audio/ChannelPlayer.cs" id="4_w40vd"]
[ext_resource type="AudioStream" uid="uid://ciepttpel6dxb" path="res://assets/audio/gui/plant_generic.tres" id="5_2x1ty"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_0miwm"]
shader = ExtResource("1_d73yj")
@ -16,3 +18,9 @@ particles = ExtResource("3_ddnu6")
[node name="Preview" type="Node2D" parent="."]
process_mode = 4
use_parent_material = true
[node name="PlantPlayer" type="Node" parent="."]
script = ExtResource("4_w40vd")
audioStream = ExtResource("5_2x1ty")
channel = "plant"
metadata/_custom_type_script = "uid://c36bj8u7jghc7"

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=30 format=3 uid="uid://c1335fke4thpm"]
[gd_scene load_steps=33 format=3 uid="uid://c1335fke4thpm"]
[ext_resource type="Script" uid="uid://bndu1h5kgcde8" path="res://scripts/components/level/RuntimeLevelData.cs" id="1_tnxdx"]
[ext_resource type="Texture2D" uid="uid://b0tb2hjum40aw" path="res://assets/sprites/background_summer.png" id="1_vafkg"]
@ -17,9 +17,75 @@
[ext_resource type="Script" uid="uid://btqwxelqxheh3" path="res://scripts/components/gui/RestartButton.cs" id="10_4il7a"]
[ext_resource type="PackedScene" uid="uid://plc2gus4ppds" path="res://scenes/level components/left_boundary_marker.tscn" id="10_5h8lk"]
[ext_resource type="Script" uid="uid://dpdpv2oyxdna7" path="res://scripts/components/gui/ExitButton.cs" id="11_q1dn6"]
[ext_resource type="Script" uid="uid://c36bj8u7jghc7" path="res://scripts/audio/ChannelPlayer.cs" id="12_4il7a"]
[ext_resource type="Script" uid="uid://blpu7t8tf6277" path="res://scripts/components/particles/FallFloor.cs" id="13_5h8lk"]
[ext_resource type="AudioStream" uid="uid://bdx83fokp6kha" path="res://assets/audio/sfx/buttonclick.mp3" id="13_q1dn6"]
[ext_resource type="Script" uid="uid://c0ov2bq5er0gh" path="res://scripts/components/plants/LoseZone.cs" id="16_r81g1"]
[ext_resource type="Script" uid="uid://812ldoyxd5n5" path="res://scripts/components/level/LoseCheckbox.cs" id="17_pb02i"]
[ext_resource type="AudioStream" uid="uid://bxshjvvtv3fmp" path="res://assets/audio/music/playlist.tres" id="23_tsy2s"]
[sub_resource type="Animation" id="Animation_r81g1"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Fade: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("Fade/Brainz:self_modulate")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Fade:visible")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("VBoxContainer:visible")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("VBoxContainer:modulate")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
[sub_resource type="Animation" id="Animation_h1ksq"]
resource_name = "fade"
@ -85,69 +151,6 @@ tracks/4/keys = {
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
}
[sub_resource type="Animation" id="Animation_r81g1"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Fade: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("Fade/Brainz:self_modulate")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Fade:visible")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("VBoxContainer:visible")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("VBoxContainer:modulate")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_pb02i"]
_data = {
&"RESET": SubResource("Animation_r81g1"),
@ -285,6 +288,12 @@ icon = SubResource("AtlasTexture_63iib")
icon_alignment = 1
script = ExtResource("11_q1dn6")
[node name="TapPlayer" type="Node" parent="GameOverScreen/VBoxContainer"]
script = ExtResource("12_4il7a")
audioStream = ExtResource("13_q1dn6")
channel = "button"
metadata/_custom_type_script = "uid://c36bj8u7jghc7"
[node name="GameOverZombie" type="CanvasLayer" parent="."]
process_mode = 3
layer = 12
@ -392,6 +401,13 @@ fadeAnimation = NodePath("../GameOverScreen/AnimationPlayer")
position = Vector2(141, 199.5)
shape = SubResource("RectangleShape2D_r81g1")
[node name="MusicPlayer" type="AudioStreamPlayer" parent="."]
stream = ExtResource("23_tsy2s")
autoplay = true
bus = &"MusicBus"
[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"]
[connection signal="timeout" from="ZombieSequencer/Timer" to="ZombieSequencer" method="FormSquad"]
[connection signal="timeout" from="SurvivalAI/Timer" to="SurvivalAI" method="SummonWave"]

View file

@ -1,8 +1,10 @@
[gd_scene load_steps=13 format=3 uid="uid://bpekho7leatr5"]
[gd_scene load_steps=15 format=3 uid="uid://bpekho7leatr5"]
[ext_resource type="Shader" uid="uid://bk8uy5se3fo0" path="res://assets/shaders/shared_outline.gdshader" id="1_jcu1f"]
[ext_resource type="Script" uid="uid://qgeovvluk8yj" path="res://scripts/Sun.cs" id="2_m8xcj"]
[ext_resource type="Texture2D" uid="uid://bkmphus5wjadi" path="res://assets/sprites/atlases/sun_atlas.png" id="2_phn3y"]
[ext_resource type="Script" uid="uid://c36bj8u7jghc7" path="res://scripts/audio/ChannelPlayer.cs" id="4_t1pnj"]
[ext_resource type="AudioStream" uid="uid://c0cq80nvld37p" path="res://assets/audio/sfx/sun.mp3" id="5_i8fpp"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_u0o5k"]
shader = ExtResource("1_jcu1f")
@ -171,4 +173,10 @@ offset_bottom = 19.0
mouse_filter = 1
mouse_default_cursor_shape = 2
[node name="SunPlayer" type="Node" parent="."]
script = ExtResource("4_t1pnj")
audioStream = ExtResource("5_i8fpp")
channel = "sun"
metadata/_custom_type_script = "uid://c36bj8u7jghc7"
[connection signal="timeout" from="DeathTimer" to="." method="queue_free"]