[gd_scene load_steps=57 format=3 uid="uid://dd3yegl1xo44m"] [ext_resource type="AudioStream" uid="uid://b6xb6mjdecg6a" path="res://assets/audio/sfx/level/readysetplant.mp3" id="1_4gg2g"] [ext_resource type="Script" uid="uid://bndu1h5kgcde8" path="res://scripts/level/RuntimeLevelData.cs" id="1_31ltw"] [ext_resource type="AudioStream" uid="uid://c6hteaxu7qh7d" path="res://assets/audio/sfx/level/hugewave.mp3" id="1_i7rp7"] [ext_resource type="AudioStream" uid="uid://dtnnbgiwq2vai" path="res://assets/audio/sfx/level/finalwave.mp3" id="1_xsaqy"] [ext_resource type="Script" uid="uid://bso32xkw738sy" path="res://scripts/level/PoolContainer.cs" id="2_s5sti"] [ext_resource type="PackedScene" uid="uid://devn21c7luf45" path="res://scenes/level components/field_controller.tscn" id="2_w4oj7"] [ext_resource type="Script" uid="uid://blpu7t8tf6277" path="res://scripts/particles/FallFloor.cs" id="3_4bmqp"] [ext_resource type="PackedScene" uid="uid://dpxxjfd5lv5sv" path="res://scenes/gui/choose_your_seeds.tscn" id="3_xy2c6"] [ext_resource type="PackedScene" uid="uid://cfnmspei3k4p7" path="res://scenes/gui/runtime_gui.tscn" id="4_okro4"] [ext_resource type="Texture2D" uid="uid://b0tb2hjum40aw" path="res://assets/sprites/background_summer.png" id="4_y72yf"] [ext_resource type="PackedScene" uid="uid://fm471x22n8kr" path="res://scenes/gui/pause_menu.tscn" id="6_4bmqp"] [ext_resource type="Texture2D" uid="uid://bt0slphfqhhab" path="res://assets/sprites/atlases/brain.tres" id="7_482ps"] [ext_resource type="Texture2D" uid="uid://dvldjlg0nr355" path="res://assets/sprites/atlases/atlas1.png" id="8_jg5t3"] [ext_resource type="Script" uid="uid://btqwxelqxheh3" path="res://scripts/gui/RestartButton.cs" id="9_2ybed"] [ext_resource type="PackedScene" uid="uid://c668qnmmpli5r" path="res://scenes/gui/wave_progress.tscn" id="9_7v6ps"] [ext_resource type="Script" uid="uid://dpdpv2oyxdna7" path="res://scripts/gui/ExitButton.cs" id="10_nvbnq"] [ext_resource type="AudioStream" uid="uid://o5ebedp7b2mk" path="res://assets/audio/sfx/level/losemusic.mp3" id="11_8vb7v"] [ext_resource type="Script" uid="uid://c36bj8u7jghc7" path="res://scripts/audio/ChannelPlayer.cs" id="11_p133p"] [ext_resource type="AudioStream" uid="uid://bdx83fokp6kha" path="res://assets/audio/sfx/buttonclick.mp3" id="12_6gkho"] [ext_resource type="AudioStream" uid="uid://dlso0448ug80m" path="res://assets/audio/sfx/level/winmusic.mp3" id="12_y5tw7"] [ext_resource type="Script" uid="uid://c0ov2bq5er0gh" path="res://scripts/entities/plants/LoseZone.cs" id="13_0x4ji"] [ext_resource type="Script" uid="uid://cslqjdd5wq4rc" path="res://scripts/level/SunSpawner.cs" id="14_y72yf"] [ext_resource type="PackedScene" uid="uid://bpekho7leatr5" path="res://scenes/sun.tscn" id="15_7v6ps"] [ext_resource type="PackedScene" uid="uid://jm7wm08d2mi7" path="res://scenes/level components/right_boundary_marker.tscn" id="16_s7icd"] [ext_resource type="PackedScene" uid="uid://plc2gus4ppds" path="res://scenes/level components/left_boundary_marker.tscn" id="17_8qqc4"] [ext_resource type="AudioStream" uid="uid://xx3uqvsnwyni" path="res://assets/audio/sfx/level/lightfill.mp3" id="18_i7rp7"] [ext_resource type="Script" uid="uid://812ldoyxd5n5" path="res://scripts/level/LoseCheckbox.cs" id="19_482ps"] [ext_resource type="Script" uid="uid://1lkhoh43h86m" path="res://scripts/level/GameTimer.cs" id="19_s7icd"] [ext_resource type="Script" uid="uid://84gvlkflxdhk" path="res://scripts/level/zombe_spawners/RowSpawner.cs" id="22_8qqc4"] [ext_resource type="Script" uid="uid://puqxp2xeg1r2" path="res://scripts/level/LevelRunner.cs" id="23_8vb7v"] [ext_resource type="Resource" uid="uid://kqqqjubwm37a" path="res://assets/rewards/DefaultReward.tres" id="24_7v6ps"] [ext_resource type="Script" uid="uid://bc3s06ejbotma" path="res://scripts/gui/ZombieLevelPreviewer.cs" id="24_y5tw7"] [ext_resource type="Script" uid="uid://b31mnk4enldc4" path="res://scripts/level/InitialPackedSceneSpawner.cs" id="26_i7rp7"] [ext_resource type="AudioStream" uid="uid://bwnmx7t3hcw6h" path="res://assets/audio/sfx/level/awooga.mp3" id="32_xsaqy"] [ext_resource type="AudioStream" uid="uid://cfybn7wn04frs" path="res://assets/audio/music/Grasswalk_Standard.mp3" id="34_tqd4v"] [ext_resource type="AudioStream" uid="uid://get7nh1goi1c" path="res://assets/audio/music/Grasswalk_cool.mp3" id="35_4gg2g"] [ext_resource type="Script" uid="uid://bnj5tlcpmep2o" path="res://scripts/audio/MusicTransitioner.cs" id="36_wwgye"] [ext_resource type="PackedScene" uid="uid://djfsa0pxqeoq1" path="res://scenes/gui/cursor_canvas_layer.tscn" id="38_wwgye"] [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"] } tracks/2/type = "method" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("LastWavePlayer") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "values": [{ "args": [], "method": &"Play" }] } [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] } tracks/2/type = "method" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("HugeWavePlayer") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "values": [{ "args": [], "method": &"Play" }] } [sub_resource type="Animation" id="Animation_8ajos"] resource_name = "PG_Sequence" length = 7.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.537, 3.154), "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, 7), "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.15333), "transitions": PackedFloat32Array(1), "values": [{ "args": [2], "method": &"SetLevelState" }] } tracks/6/type = "audio" tracks/6/imported = false tracks/6/enabled = true tracks/6/path = NodePath("ReadySetPlantPlayer") tracks/6/interp = 1 tracks/6/loop_wrap = true tracks/6/keys = { "clips": [{ "end_offset": 0.0, "start_offset": 0.0, "stream": ExtResource("1_4gg2g") }], "times": PackedFloat32Array(2) } tracks/6/use_blend = true [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_482ps"] distance = -9.0 [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("LooseFade: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("LooseFade/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("LooseFade: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)] } tracks/5/type = "value" tracks/5/imported = false tracks/5/enabled = true tracks/5/path = NodePath("WinFade:color") tracks/5/interp = 1 tracks/5/loop_wrap = true tracks/5/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Color(1, 1, 0.92, 0)] } [sub_resource type="Animation" id="Animation_h1ksq"] resource_name = "fade" length = 5.0 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("LooseFade:self_modulate") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0, 1), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("LooseFade/Brainz:self_modulate") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0, 1.6, 2.2), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, "values": [Color(1, 1, 1, 0), Color(1, 1, 1, 0), Color(1, 1, 1, 1)] } tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("LooseFade:visible") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { "times": PackedFloat32Array(0.0333333), "transitions": PackedFloat32Array(1), "update": 1, "values": [true] } 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.0333333), "transitions": PackedFloat32Array(1), "update": 1, "values": [true] } 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, 2.96667, 4), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, "values": [Color(1, 1, 1, 0), Color(1, 1, 1, 0), Color(1, 1, 1, 1)] } tracks/5/type = "audio" tracks/5/imported = false tracks/5/enabled = true tracks/5/path = NodePath("GameOverPlayer") tracks/5/interp = 1 tracks/5/loop_wrap = true tracks/5/keys = { "clips": [{ "end_offset": 0.0, "start_offset": 0.0, "stream": ExtResource("11_8vb7v") }], "times": PackedFloat32Array(0) } tracks/5/use_blend = true tracks/6/type = "method" tracks/6/imported = false tracks/6/enabled = true tracks/6/path = NodePath("VBoxContainer/RestartButton") tracks/6/interp = 1 tracks/6/loop_wrap = true tracks/6/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "values": [{ "args": [], "method": &"grab_focus" }] } [sub_resource type="Animation" id="Animation_y72yf"] resource_name = "win" length = 5.0 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("WinFade:color") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0, 3, 5), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, "values": [Color(1, 1, 0.92, 0), Color(1, 1, 0.92, 0), Color(1, 1, 0.92, 1)] } tracks/1/type = "audio" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("GameOverPlayer") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { "clips": [{ "end_offset": 0.0, "start_offset": 0.0, "stream": ExtResource("12_y5tw7") }], "times": PackedFloat32Array(0) } tracks/1/use_blend = true tracks/2/type = "method" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("ChannelPlayer") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { "times": PackedFloat32Array(2), "transitions": PackedFloat32Array(1), "values": [{ "args": [], "method": &"Play" }] } [sub_resource type="AnimationLibrary" id="AnimationLibrary_pb02i"] _data = { &"RESET": SubResource("Animation_r81g1"), &"loose": SubResource("Animation_h1ksq"), &"win": SubResource("Animation_y72yf") } [sub_resource type="AtlasTexture" id="AtlasTexture_y5tw7"] atlas = ExtResource("8_jg5t3") region = Rect2(255, 221, 118, 20) [sub_resource type="AtlasTexture" id="AtlasTexture_i7rp7"] atlas = ExtResource("8_jg5t3") region = Rect2(194, 221, 61, 20) [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 [sub_resource type="AudioStreamPlaylist" id="AudioStreamPlaylist_wwgye"] stream_count = 1 stream_0 = ExtResource("34_tqd4v") [sub_resource type="AudioStreamPlaylist" id="AudioStreamPlaylist_4tlhg"] stream_count = 1 stream_0 = ExtResource("35_4gg2g") [sub_resource type="AudioStreamInteractive" id="AudioStreamInteractive_4tlhg"] clip_count = 2 clip_0/name = &"Standard" clip_0/stream = SubResource("AudioStreamPlaylist_wwgye") clip_0/auto_advance = 0 clip_1/name = &"Cool" clip_1/stream = SubResource("AudioStreamPlaylist_4tlhg") clip_1/auto_advance = 0 _transitions = { Vector2i(0, 1): { "fade_beats": 5.0, "fade_mode": 3, "from_time": 0, "to_time": 0 }, Vector2i(1, 0): { "fade_beats": 5.0, "fade_mode": 4, "from_time": 0, "to_time": 0 } } [node name="StandardLevel" type="Node2D"] [node name="MainAnimationPlayer" type="AnimationPlayer" parent="."] libraries = { &"": SubResource("AnimationLibrary_yw4uo") } [node name="Data" type="Node" parent="." node_paths=PackedStringArray("levelRunner", "player")] script = ExtResource("1_31ltw") levelRunner = NodePath("../LevelRunner") player = NodePath("../MainAnimationPlayer") [node name="Camera2D" type="Camera2D" parent="."] position = Vector2(481, 200) [node name="Pools" type="Node2D" parent="." node_paths=PackedStringArray("Zombies", "Plants", "Projectiles", "Structures", "Particles")] script = ExtResource("2_s5sti") Zombies = NodePath("Zombies") Plants = NodePath("Plants") Projectiles = NodePath("Projectiles") Structures = NodePath("Structures") Particles = NodePath("Particles") [node name="Zombies" type="Node2D" parent="Pools"] z_index = 20 z_as_relative = false y_sort_enabled = true [node name="Plants" type="Node2D" parent="Pools"] z_as_relative = false y_sort_enabled = true [node name="Projectiles" type="Node2D" parent="Pools"] z_index = 30 z_as_relative = false y_sort_enabled = true [node name="Structures" type="Node2D" parent="Pools"] z_index = 10 z_as_relative = false y_sort_enabled = true [node name="Particles" type="Node2D" parent="Pools"] z_index = 40 z_as_relative = false [node name="Lines" type="Node2D" parent="."] script = ExtResource("3_4bmqp") [node name="Floor" type="StaticBody2D" parent="Lines"] position = Vector2(528, 247) collision_layer = 64 collision_mask = 0 [node name="CollisionShape2D" type="CollisionShape2D" parent="Lines/Floor"] shape = SubResource("WorldBoundaryShape2D_482ps") [node name="Floor2" type="StaticBody2D" parent="Lines"] position = Vector2(528, 306) collision_layer = 64 collision_mask = 0 [node name="CollisionShape2D" type="CollisionShape2D" parent="Lines/Floor2"] shape = SubResource("WorldBoundaryShape2D_482ps") [node name="Floor3" type="StaticBody2D" parent="Lines"] position = Vector2(528, 367) collision_layer = 64 collision_mask = 0 [node name="CollisionShape2D" type="CollisionShape2D" parent="Lines/Floor3"] shape = SubResource("WorldBoundaryShape2D_482ps") [node name="Floor4" type="StaticBody2D" parent="Lines"] position = Vector2(528, 183) collision_layer = 64 collision_mask = 0 [node name="CollisionShape2D" type="CollisionShape2D" parent="Lines/Floor4"] shape = SubResource("WorldBoundaryShape2D_482ps") [node name="Floor5" type="StaticBody2D" parent="Lines"] position = Vector2(528, 132) collision_layer = 64 collision_mask = 0 [node name="CollisionShape2D" type="CollisionShape2D" parent="Lines/Floor5"] shape = SubResource("WorldBoundaryShape2D_482ps") [node name="Background" type="CanvasLayer" parent="."] layer = -2 follow_viewport_enabled = true [node name="Background" type="Sprite2D" parent="Background"] z_index = -100 z_as_relative = false position = Vector2(500, 200) texture = ExtResource("4_y72yf") metadata/_edit_lock_ = true [node name="HUD" type="CanvasLayer" parent="."] layer = -1 [node name="RuntimeGUI" parent="HUD" instance=ExtResource("4_okro4")] focus_neighbor_bottom = NodePath("../../GUI/ChooseYourSeeds") metadata/_edit_lock_ = true [node name="Overlay" type="CanvasLayer" parent="."] layer = 6 follow_viewport_enabled = true [node name="FieldController" parent="Overlay" instance=ExtResource("2_w4oj7")] [node name="RewardLayer" type="CanvasLayer" parent="."] layer = 10 follow_viewport_enabled = true [node name="GUI" type="CanvasLayer" parent="."] layer = 10 [node name="ChooseYourSeeds" parent="GUI" instance=ExtResource("3_xy2c6")] anchors_preset = -1 anchor_top = 1.0 anchor_bottom = 2.0 size_flags_horizontal = 3 size_flags_vertical = 3 focus_neighbor_top = NodePath("../../HUD/RuntimeGUI") metadata/_edit_lock_ = true [node name="PauseMenu" parent="GUI" instance=ExtResource("6_4bmqp")] visible = false [node name="WaveProgress" parent="GUI" instance=ExtResource("9_7v6ps")] 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"] 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="GameOverScreen" type="CanvasLayer" parent="."] process_mode = 3 layer = 11 [node name="LooseFade" type="ColorRect" parent="GameOverScreen"] visible = false anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 color = Color(0, 0, 0, 1) [node name="Brainz" type="TextureRect" parent="GameOverScreen/LooseFade"] layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 offset_left = 141.0 offset_top = 125.0 offset_right = -143.0 offset_bottom = -116.0 grow_horizontal = 2 grow_vertical = 2 texture = ExtResource("7_482ps") stretch_mode = 5 [node name="WinFade" type="ColorRect" parent="GameOverScreen"] anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 mouse_filter = 2 color = Color(1, 1, 0.92, 0) [node name="AnimationPlayer" type="AnimationPlayer" parent="GameOverScreen"] libraries = { &"": SubResource("AnimationLibrary_pb02i") } [node name="VBoxContainer" type="VBoxContainer" parent="GameOverScreen"] visible = false offset_left = 230.0 offset_top = 273.0 offset_right = 372.0 offset_bottom = 365.0 [node name="RestartButton" type="Button" parent="GameOverScreen/VBoxContainer"] layout_mode = 2 icon = SubResource("AtlasTexture_y5tw7") icon_alignment = 1 script = ExtResource("9_2ybed") [node name="ExitButton" type="Button" parent="GameOverScreen/VBoxContainer"] layout_mode = 2 icon = SubResource("AtlasTexture_i7rp7") icon_alignment = 1 script = ExtResource("10_nvbnq") [node name="TapPlayer" type="Node" parent="GameOverScreen/VBoxContainer"] script = ExtResource("11_p133p") audioStream = ExtResource("12_6gkho") channel = "button" metadata/_custom_type_script = "uid://c36bj8u7jghc7" [node name="GameOverPlayer" type="AudioStreamPlayer" parent="GameOverScreen"] bus = &"SFXBus" [node name="ChannelPlayer" type="Node" parent="GameOverScreen"] script = ExtResource("11_p133p") audioStream = ExtResource("18_i7rp7") channel = "lightfill" metadata/_custom_type_script = "uid://c36bj8u7jghc7" [node name="GameOverZombie" type="CanvasLayer" parent="."] process_mode = 3 layer = 12 follow_viewport_enabled = true [node name="LoseZone" type="Node2D" parent="GameOverZombie"] script = ExtResource("13_0x4ji") [node name="Hitbox" type="Area2D" parent="GameOverZombie/LoseZone"] collision_layer = 6 [node name="CollisionShape2D" type="CollisionShape2D" parent="GameOverZombie/LoseZone/Hitbox"] position = Vector2(122, 199.5) shape = SubResource("WorldBoundaryShape2D_vbgdr") [node name="SunSpawner" type="Node" parent="."] script = ExtResource("14_y72yf") SunScene = ExtResource("15_7v6ps") [node name="Timer" type="Timer" parent="SunSpawner"] wait_time = 10.0 script = ExtResource("19_s7icd") [node name="right_boundary_marker" parent="." instance=ExtResource("16_s7icd")] position = Vector2(755, 376) [node name="LeftBoundaryMarker" parent="." instance=ExtResource("17_8qqc4")] position = Vector2(305, 76) [node name="RowSpawner" type="Node2D" parent="." node_paths=PackedStringArray("delayTimer", "runner")] position = Vector2(837, 76) script = ExtResource("22_8qqc4") delayTimer = NodePath("DelayTimer") runner = NodePath("../LevelRunner") [node name="DelayTimer" type="Timer" parent="RowSpawner"] wait_time = 2.5 [node name="LevelRunner" type="Node" parent="." node_paths=PackedStringArray("rowSpawner", "waveTimer", "player", "rewardParent")] script = ExtResource("23_8vb7v") defaultReward = ExtResource("24_7v6ps") rowSpawner = NodePath("../RowSpawner") waveTimer = NodePath("WaveTimer") approachNotificationTime = 5.0 player = NodePath("../GameOverScreen/AnimationPlayer") rewardParent = NodePath("../RewardLayer") firstWaveSound = ExtResource("32_xsaqy") [node name="WaveTimer" type="Timer" parent="LevelRunner"] one_shot = true [node name="ZombieLevelPrevewer" type="Node2D" parent="."] y_sort_enabled = true position = Vector2(855, 76) script = ExtResource("24_y5tw7") [node name="Checkbox" type="Area2D" parent="." node_paths=PackedStringArray("gameOverLayer", "fadeAnimation")] collision_mask = 24 script = ExtResource("19_482ps") gameOverLayer = NodePath("../GameOverZombie") fadeAnimation = NodePath("../GameOverScreen/AnimationPlayer") [node name="CollisionShape2D" type="CollisionShape2D" parent="Checkbox"] position = Vector2(141, 199.5) shape = SubResource("WorldBoundaryShape2D_yw4uo") [node name="InitialSpawner" type="Node" parent="."] script = ExtResource("26_i7rp7") [node name="HugeWavePlayer" type="Node" parent="."] script = ExtResource("11_p133p") audioStream = ExtResource("1_i7rp7") channel = "huge_wave" metadata/_custom_type_script = "uid://c36bj8u7jghc7" [node name="LastWavePlayer" type="Node" parent="."] script = ExtResource("11_p133p") audioStream = ExtResource("1_xsaqy") channel = "fl_wave" metadata/_custom_type_script = "uid://c36bj8u7jghc7" [node name="MusicController" type="AudioStreamPlayer" parent="."] stream = SubResource("AudioStreamInteractive_4tlhg") bus = &"MusicBus" script = ExtResource("36_wwgye") [node name="Timer" type="Timer" parent="MusicController"] wait_time = 30.0 one_shot = true ignore_time_scale = true [node name="ReadySetPlantPlayer" type="AudioStreamPlayer" parent="."] [node name="CursorCanvasLayer" parent="." instance=ExtResource("38_wwgye")] [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="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="FinalWaveInitiated" from="LevelRunner" to="MainAnimationPlayer" method="play" binds= ["FW_Sequence"]] [connection signal="HugeWaveApproachingCallback" from="LevelRunner" to="MusicController" method="OnHugeWaveApproaching"] [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"] [connection signal="timeout" from="MusicController/Timer" to="MusicController" method="OnTimerTimeout"]