newlon/scenes/templates/level_template.tscn
2025-07-22 02:11:21 +05:00

907 lines
28 KiB
Text

[gd_scene load_steps=55 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/MusicTransitioner.cs" id="36_wwgye"]
[ext_resource type="AudioStream" uid="uid://b0tyhgrhofdes" path="res://assets/audio/music/Grasswalk_filler.mp3" id="37_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
[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="AudioStreamInteractive" id="AudioStreamInteractive_4tlhg"]
clip_count = 3
clip_0/name = &"Grasswalk Standard"
clip_0/stream = ExtResource("34_tqd4v")
clip_0/auto_advance = 0
clip_1/name = &"Filler"
clip_1/stream = ExtResource("37_wwgye")
clip_1/auto_advance = 1
clip_1/next_clip = 2
clip_2/name = &"Grasswalk Cool"
clip_2/stream = ExtResource("35_4gg2g")
clip_2/auto_advance = 0
_transitions = {
Vector2i(0, 1): {
"fade_beats": 5.0,
"fade_mode": 3,
"from_time": 0,
"to_time": 1
},
Vector2i(2, 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 = 3
y_sort_enabled = true
[node name="Plants" type="Node2D" parent="Pools"]
z_index = 1
y_sort_enabled = true
[node name="Projectiles" type="Node2D" parent="Pools"]
z_index = 4
y_sort_enabled = true
[node name="Structures" type="Node2D" parent="Pools"]
z_index = 2
y_sort_enabled = true
[node name="Particles" type="Node2D" parent="Pools"]
z_index = 5
[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"]
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")]
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
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 = 2
[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="."]
[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"]