[gd_scene load_steps=17 format=3 uid="uid://bu0dh5ct387xu"] [ext_resource type="PackedScene" uid="uid://dd3yegl1xo44m" path="res://scenes/templates/level_template.tscn" id="1_vdv3d"] [ext_resource type="Texture2D" uid="uid://b0tb2hjum40aw" path="res://assets/sprites/background_summer.png" id="3_lsqv3"] [ext_resource type="Script" uid="uid://1lkhoh43h86m" path="res://scripts/level/GameTimer.cs" id="4_8ajos"] [ext_resource type="Script" uid="uid://84gvlkflxdhk" path="res://scripts/level/zombe_spawners/RowSpawner.cs" id="4_kn7hc"] [ext_resource type="Script" uid="uid://puqxp2xeg1r2" path="res://scripts/level/LevelRunner.cs" id="5_vbgdr"] [ext_resource type="PackedScene" uid="uid://c668qnmmpli5r" path="res://scenes/gui/wave_progress.tscn" id="6_yw4uo"] [ext_resource type="Script" uid="uid://bc3s06ejbotma" path="res://scripts/gui/ZombieLevelPreviewer.cs" id="7_8ajos"] [ext_resource type="Script" uid="uid://b31mnk4enldc4" path="res://scripts/level/InitialPackedSceneSpawner.cs" id="8_pqj5f"] [sub_resource type="Animation" id="Animation_vbgdr"] resource_name = "CYS_Sequence" length = 3.0 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("Camera2D:position") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0.666667, 1.5), "transitions": PackedFloat32Array(0.5, 1), "update": 0, "values": [Vector2(481, 200), Vector2(700, 200)] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("GUI/ChooseYourSeeds:anchor_top") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0, 2, 3), "transitions": PackedFloat32Array(1, 0.5, 1), "update": 0, "values": [1.0, 1.0, 0.0] } tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("GUI/ChooseYourSeeds:anchor_bottom") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { "times": PackedFloat32Array(0, 2, 3), "transitions": PackedFloat32Array(1, 0.5, 1), "update": 0, "values": [2.0, 2.0, 1.0] } [sub_resource type="Animation" id="Animation_lrlbv"] resource_name = "FW_Sequence" length = 3.0 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("GUI/ReadySetPlant:visible") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0, 3), "transitions": PackedFloat32Array(1, 1), "update": 1, "values": [true, false] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("GUI/ReadySetPlant:text") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, "values": ["final_wave"] } [sub_resource type="Animation" id="Animation_pqj5f"] resource_name = "HW_Sequence" length = 6.0 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("GUI/ReadySetPlant:text") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, "values": ["huge_wave"] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("GUI/ReadySetPlant:visible") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0, 6), "transitions": PackedFloat32Array(1, 1), "update": 1, "values": [true, false] } [sub_resource type="Animation" id="Animation_8ajos"] resource_name = "PG_Sequence" length = 5.0 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("GUI/ChooseYourSeeds:anchor_top") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0, 1), "transitions": PackedFloat32Array(0.5, 1), "update": 0, "values": [0.0, 1.0] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("GUI/ChooseYourSeeds:anchor_bottom") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0, 1), "transitions": PackedFloat32Array(0.5, 1), "update": 0, "values": [1.0, 2.0] } tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("Camera2D:position") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { "times": PackedFloat32Array(0.7, 1.5334), "transitions": PackedFloat32Array(0.5, 1), "update": 0, "values": [Vector2(700, 200), Vector2(481, 200)] } tracks/3/type = "value" tracks/3/imported = false tracks/3/enabled = true tracks/3/path = NodePath("GUI/ReadySetPlant:text") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = { "times": PackedFloat32Array(2, 2.667, 3.334), "transitions": PackedFloat32Array(1, 1, 1), "update": 1, "values": ["ready", "set", "plant"] } tracks/4/type = "value" tracks/4/imported = false tracks/4/enabled = true tracks/4/path = NodePath("GUI/ReadySetPlant:visible") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/keys = { "times": PackedFloat32Array(0, 2, 5), "transitions": PackedFloat32Array(1, 1, 1), "update": 1, "values": [false, true, false] } tracks/5/type = "method" tracks/5/imported = false tracks/5/enabled = true tracks/5/path = NodePath("Data") tracks/5/interp = 1 tracks/5/loop_wrap = true tracks/5/keys = { "times": PackedFloat32Array(3.33333), "transitions": PackedFloat32Array(1), "values": [{ "args": [2], "method": &"SetLevelState" }] } [sub_resource type="Animation" id="Animation_yw4uo"] length = 0.001 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("Camera2D:position") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Vector2(481, 200)] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("GUI/ChooseYourSeeds:anchor_top") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [1.0] } tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("GUI/ChooseYourSeeds:anchor_bottom") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [2.0] } tracks/3/type = "value" tracks/3/imported = false tracks/3/enabled = true tracks/3/path = NodePath("GUI/ReadySetPlant:text") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, "values": [""] } tracks/4/type = "value" tracks/4/imported = false tracks/4/enabled = true tracks/4/path = NodePath("GUI/ReadySetPlant:visible") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, "values": [false] } [sub_resource type="AnimationLibrary" id="AnimationLibrary_yw4uo"] _data = { &"CYS_Sequence": SubResource("Animation_vbgdr"), &"FW_Sequence": SubResource("Animation_lrlbv"), &"HW_Sequence": SubResource("Animation_pqj5f"), &"PG_Sequence": SubResource("Animation_8ajos"), &"RESET": SubResource("Animation_yw4uo") } [sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_vbgdr"] normal = Vector2(1, 0) distance = 135.0 [sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_yw4uo"] normal = Vector2(1, 0) distance = 139.0 [node name="StandardPlayersHouse" instance=ExtResource("1_vdv3d")] [node name="MainAnimationPlayer" parent="." index="0"] libraries = { &"": SubResource("AnimationLibrary_yw4uo") } [node name="Data" parent="." index="1" node_paths=PackedStringArray("levelRunner", "player")] levelRunner = NodePath("../LevelRunner") player = NodePath("../MainAnimationPlayer") [node name="Background" type="Sprite2D" parent="Background" index="0"] position = Vector2(500, 200) texture = ExtResource("3_lsqv3") metadata/_edit_lock_ = true [node name="ChooseYourSeeds" parent="GUI" index="0"] anchors_preset = -1 anchor_top = 1.0 anchor_bottom = 2.0 size_flags_horizontal = 3 size_flags_vertical = 3 [node name="WaveProgress" parent="GUI" index="2" instance=ExtResource("6_yw4uo")] visible = false offset_left = 443.0 offset_top = 377.0 offset_right = 443.2 offset_bottom = 377.0 [node name="ReadySetPlant" type="RichTextLabel" parent="GUI" index="3"] visible = false anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 mouse_filter = 2 bbcode_enabled = true shortcut_keys_enabled = false horizontal_alignment = 1 vertical_alignment = 1 [node name="CollisionShape2D" parent="GameOverZombie/LoseZone/Hitbox" index="0"] shape = SubResource("WorldBoundaryShape2D_vbgdr") [node name="Timer" parent="SunSpawner" index="0"] autostart = false script = ExtResource("4_8ajos") [node name="RowSpawner" type="Node2D" parent="." index="14" node_paths=PackedStringArray("delayTimer", "runner")] position = Vector2(837, 76) script = ExtResource("4_kn7hc") delayTimer = NodePath("DelayTimer") runner = NodePath("../LevelRunner") [node name="DelayTimer" type="Timer" parent="RowSpawner" index="0"] wait_time = 2.5 [node name="LevelRunner" type="Node" parent="." index="15" node_paths=PackedStringArray("rowSpawner", "waveTimer")] script = ExtResource("5_vbgdr") rowSpawner = NodePath("../RowSpawner") waveTimer = NodePath("WaveTimer") approachNotificationTime = 5.0 [node name="WaveTimer" type="Timer" parent="LevelRunner" index="0"] one_shot = true [node name="ZombieLevelPrevewer" type="Node2D" parent="." index="16"] y_sort_enabled = true position = Vector2(855, 76) script = ExtResource("7_8ajos") [node name="Checkbox" parent="." index="17" node_paths=PackedStringArray("gameOverLayer", "fadeAnimation")] gameOverLayer = NodePath("../GameOverZombie") fadeAnimation = NodePath("../GameOverScreen/AnimationPlayer") [node name="CollisionShape2D" parent="Checkbox" index="0"] shape = SubResource("WorldBoundaryShape2D_yw4uo") [node name="InitialSpawner" type="Node" parent="." index="18"] script = ExtResource("8_pqj5f") [connection signal="OnLevelStateChanged" from="Data" to="SunSpawner/Timer" method="OnLevelStateChanged"] [connection signal="OnLevelStateChanged" from="Data" to="ZombieLevelPrevewer" method="OnLevelStateChanged"] [connection signal="OnLevelStateChanged" from="Data" to="InitialSpawner" method="OnLevelStateChanged"] [connection signal="FinalWaveInitiated" from="LevelRunner" to="MainAnimationPlayer" method="play" binds= ["FW_Sequence"]] [connection signal="HugeWaveApproachingCallback" from="LevelRunner" to="MainAnimationPlayer" method="play" binds= ["HW_Sequence"]] [connection signal="HugeWaveInitiated" from="LevelRunner" to="GUI/WaveProgress" method="OnHugeWaveApproached"] [connection signal="ResourceChanged" from="LevelRunner" to="GUI/WaveProgress" method="SetLevelData"] [connection signal="WaveChanged" from="LevelRunner" to="GUI/WaveProgress" method="OnWaveChanged"]