[gd_scene load_steps=28 format=3 uid="uid://dd3yegl1xo44m"] [ext_resource type="Script" uid="uid://bndu1h5kgcde8" path="res://scripts/level/RuntimeLevelData.cs" id="1_31ltw"] [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="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="Script" uid="uid://dpdpv2oyxdna7" path="res://scripts/gui/ExitButton.cs" id="10_nvbnq"] [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="Script" uid="uid://c0ov2bq5er0gh" path="res://scripts/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="Script" uid="uid://812ldoyxd5n5" path="res://scripts/level/LoseCheckbox.cs" id="19_482ps"] [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("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" length = 4.0 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, 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("Fade/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("Fade: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)] } [sub_resource type="AnimationLibrary" id="AnimationLibrary_pb02i"] _data = { &"RESET": SubResource("Animation_r81g1"), &"fade": SubResource("Animation_h1ksq") } [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="RectangleShape2D" id="RectangleShape2D_xsaqy"] size = Vector2(244, 399) [sub_resource type="RectangleShape2D" id="RectangleShape2D_jg5t3"] size = Vector2(282, 399) [node name="level_template" type="Node2D"] [node name="MainAnimationPlayer" type="AnimationPlayer" parent="."] process_mode = 3 [node name="Data" type="Node" parent="."] script = ExtResource("1_31ltw") SunCount = 50.0 [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="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="GUI" type="CanvasLayer" parent="."] layer = 10 [node name="ChooseYourSeeds" parent="GUI" instance=ExtResource("3_xy2c6")] metadata/_edit_lock_ = true [node name="PauseMenu" parent="GUI" instance=ExtResource("6_4bmqp")] visible = false [node name="GameOverScreen" type="CanvasLayer" parent="."] process_mode = 3 layer = 11 [node name="Fade" 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/Fade"] layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 offset_left = 141.0 offset_top = 146.0 offset_right = -143.0 offset_bottom = -137.0 grow_horizontal = 2 grow_vertical = 2 texture = ExtResource("7_482ps") [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="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("RectangleShape2D_xsaqy") [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 autostart = true [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="Checkbox" type="Area2D" parent="."] collision_mask = 24 script = ExtResource("19_482ps") [node name="CollisionShape2D" type="CollisionShape2D" parent="Checkbox"] position = Vector2(141, 199.5) shape = SubResource("RectangleShape2D_jg5t3") [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"]