summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scenes/L1.tscn20
-rw-r--r--scenes/Main.tscn1098
-rw-r--r--scenes/map.tscn (renamed from scenes/path.tscn)0
-rw-r--r--scenes/soldier.tscn7
-rw-r--r--scripts/cursor.gd6
-rw-r--r--scripts/map_generator.gd46
-rw-r--r--scripts/path_generator.gd16
-rw-r--r--scripts/path_spawner.gd7
-rw-r--r--scripts/wave_spawner.gd35
-rw-r--r--scripts/wave_spawner.gd.uid (renamed from scripts/path_spawner.gd.uid)0
10 files changed, 85 insertions, 1150 deletions
diff --git a/scenes/L1.tscn b/scenes/L1.tscn
deleted file mode 100644
index 9ba570c..0000000
--- a/scenes/L1.tscn
+++ /dev/null
@@ -1,20 +0,0 @@
-[gd_scene load_steps=3 format=3 uid="uid://diyn84ax1s7y8"]
-
-[ext_resource type="PackedScene" uid="uid://rp5orgc6ae7j" path="res://scenes/soldier.tscn" id="2_vye67"]
-
-[sub_resource type="Curve2D" id="Curve2D_tjuek"]
-_data = {
-"points": PackedVector2Array(0, 0, 0, 0, -8, 168, 0, 0, 0, 0, 248, 168, 0, 0, 0, 0, 248, 104, 0, 0, 0, 0, 72, 104, 0, 0, 0, 0, 72, 56, 0, 0, 0, 0, 328, 56)
-}
-point_count = 6
-
-[node name="Path2D" type="Path2D"]
-z_index = 1
-curve = SubResource("Curve2D_tjuek")
-
-[node name="PathFollow2D" type="PathFollow2D" parent="."]
-position = Vector2(-8, 168)
-rotates = false
-loop = false
-
-[node name="CrawlerSoldier" parent="PathFollow2D" instance=ExtResource("2_vye67")]
diff --git a/scenes/Main.tscn b/scenes/Main.tscn
index c885bab..996f4bd 100644
--- a/scenes/Main.tscn
+++ b/scenes/Main.tscn
@@ -1,1099 +1,17 @@
-[gd_scene load_steps=8 format=4 uid="uid://chwnewu8l45kj"]
+[gd_scene load_steps=6 format=3 uid="uid://chwnewu8l45kj"]
-[ext_resource type="Texture2D" uid="uid://di2vybjsniag4" path="res://assets/tilemap.png" id="1_rvslj"]
-[ext_resource type="Script" uid="uid://i5bjnah05h14" path="res://scripts/path_spawner.gd" id="2_0bbpv"]
+[ext_resource type="Script" uid="uid://i5bjnah05h14" path="res://scripts/wave_spawner.gd" id="2_0bbpv"]
+[ext_resource type="PackedScene" uid="uid://cdgeamr56c0mx" path="res://scenes/map.tscn" id="2_vcsgt"]
[ext_resource type="PackedScene" uid="uid://cq6d7gmjbwl14" path="res://scenes/cursor.tscn" id="4_rarhs"]
[ext_resource type="Script" uid="uid://c8p74tnba8rs8" path="res://scripts/grid_manager.gd" id="4_vcsgt"]
[ext_resource type="PackedScene" uid="uid://dycgp3yept14k" path="res://scenes/ui.tscn" id="5_vcsgt"]
-[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_tjuek"]
-texture = ExtResource("1_rvslj")
-1:0/0 = 0
-2:0/0 = 0
-3:0/0 = 0
-4:0/0 = 0
-5:0/0 = 0
-6:0/0 = 0
-7:0/0 = 0
-8:0/0 = 0
-9:0/0 = 0
-10:0/0 = 0
-11:0/0 = 0
-12:0/0 = 0
-13:0/0 = 0
-14:0/0 = 0
-15:0/0 = 0
-16:0/0 = 0
-17:0/0 = 0
-18:0/0 = 0
-19:0/0 = 0
-20:0/0 = 0
-21:0/0 = 0
-22:0/0 = 0
-23:0/0 = 0
-24:0/0 = 0
-25:0/0 = 0
-26:0/0 = 0
-27:0/0 = 0
-28:0/0 = 0
-29:0/0 = 0
-30:0/0 = 0
-31:0/0 = 0
-32:0/0 = 0
-33:0/0 = 0
-34:0/0 = 0
-35:0/0 = 0
-36:0/0 = 0
-37:0/0 = 0
-38:0/0 = 0
-39:0/0 = 0
-40:0/0 = 0
-41:0/0 = 0
-42:0/0 = 0
-43:0/0 = 0
-44:0/0 = 0
-45:0/0 = 0
-46:0/0 = 0
-47:0/0 = 0
-48:0/0 = 0
-0:1/0 = 0
-1:1/0 = 0
-2:1/0 = 0
-3:1/0 = 0
-4:1/0 = 0
-5:1/0 = 0
-6:1/0 = 0
-7:1/0 = 0
-8:1/0 = 0
-9:1/0 = 0
-10:1/0 = 0
-11:1/0 = 0
-12:1/0 = 0
-13:1/0 = 0
-14:1/0 = 0
-15:1/0 = 0
-16:1/0 = 0
-17:1/0 = 0
-18:1/0 = 0
-19:1/0 = 0
-20:1/0 = 0
-21:1/0 = 0
-22:1/0 = 0
-23:1/0 = 0
-24:1/0 = 0
-25:1/0 = 0
-26:1/0 = 0
-27:1/0 = 0
-28:1/0 = 0
-29:1/0 = 0
-30:1/0 = 0
-31:1/0 = 0
-32:1/0 = 0
-33:1/0 = 0
-34:1/0 = 0
-35:1/0 = 0
-36:1/0 = 0
-37:1/0 = 0
-38:1/0 = 0
-39:1/0 = 0
-40:1/0 = 0
-41:1/0 = 0
-42:1/0 = 0
-43:1/0 = 0
-44:1/0 = 0
-45:1/0 = 0
-46:1/0 = 0
-47:1/0 = 0
-48:1/0 = 0
-0:2/0 = 0
-1:2/0 = 0
-2:2/0 = 0
-3:2/0 = 0
-4:2/0 = 0
-5:2/0 = 0
-6:2/0 = 0
-7:2/0 = 0
-8:2/0 = 0
-9:2/0 = 0
-10:2/0 = 0
-11:2/0 = 0
-12:2/0 = 0
-13:2/0 = 0
-14:2/0 = 0
-15:2/0 = 0
-16:2/0 = 0
-17:2/0 = 0
-18:2/0 = 0
-19:2/0 = 0
-20:2/0 = 0
-21:2/0 = 0
-22:2/0 = 0
-23:2/0 = 0
-24:2/0 = 0
-25:2/0 = 0
-26:2/0 = 0
-27:2/0 = 0
-28:2/0 = 0
-29:2/0 = 0
-30:2/0 = 0
-31:2/0 = 0
-32:2/0 = 0
-33:2/0 = 0
-34:2/0 = 0
-35:2/0 = 0
-36:2/0 = 0
-37:2/0 = 0
-38:2/0 = 0
-39:2/0 = 0
-40:2/0 = 0
-41:2/0 = 0
-42:2/0 = 0
-43:2/0 = 0
-44:2/0 = 0
-45:2/0 = 0
-46:2/0 = 0
-47:2/0 = 0
-48:2/0 = 0
-0:3/0 = 0
-1:3/0 = 0
-2:3/0 = 0
-3:3/0 = 0
-4:3/0 = 0
-5:3/0 = 0
-6:3/0 = 0
-7:3/0 = 0
-8:3/0 = 0
-9:3/0 = 0
-10:3/0 = 0
-11:3/0 = 0
-12:3/0 = 0
-13:3/0 = 0
-14:3/0 = 0
-15:3/0 = 0
-16:3/0 = 0
-17:3/0 = 0
-18:3/0 = 0
-19:3/0 = 0
-20:3/0 = 0
-21:3/0 = 0
-22:3/0 = 0
-23:3/0 = 0
-24:3/0 = 0
-25:3/0 = 0
-26:3/0 = 0
-27:3/0 = 0
-28:3/0 = 0
-29:3/0 = 0
-30:3/0 = 0
-31:3/0 = 0
-32:3/0 = 0
-33:3/0 = 0
-34:3/0 = 0
-35:3/0 = 0
-36:3/0 = 0
-37:3/0 = 0
-38:3/0 = 0
-39:3/0 = 0
-40:3/0 = 0
-41:3/0 = 0
-42:3/0 = 0
-43:3/0 = 0
-44:3/0 = 0
-45:3/0 = 0
-46:3/0 = 0
-47:3/0 = 0
-48:3/0 = 0
-0:4/0 = 0
-1:4/0 = 0
-2:4/0 = 0
-3:4/0 = 0
-4:4/0 = 0
-5:4/0 = 0
-6:4/0 = 0
-7:4/0 = 0
-8:4/0 = 0
-9:4/0 = 0
-10:4/0 = 0
-11:4/0 = 0
-12:4/0 = 0
-13:4/0 = 0
-14:4/0 = 0
-15:4/0 = 0
-16:4/0 = 0
-17:4/0 = 0
-18:4/0 = 0
-19:4/0 = 0
-20:4/0 = 0
-21:4/0 = 0
-22:4/0 = 0
-23:4/0 = 0
-24:4/0 = 0
-25:4/0 = 0
-26:4/0 = 0
-27:4/0 = 0
-28:4/0 = 0
-29:4/0 = 0
-30:4/0 = 0
-31:4/0 = 0
-32:4/0 = 0
-33:4/0 = 0
-34:4/0 = 0
-35:4/0 = 0
-36:4/0 = 0
-37:4/0 = 0
-38:4/0 = 0
-39:4/0 = 0
-40:4/0 = 0
-41:4/0 = 0
-42:4/0 = 0
-43:4/0 = 0
-44:4/0 = 0
-45:4/0 = 0
-46:4/0 = 0
-47:4/0 = 0
-48:4/0 = 0
-0:5/0 = 0
-1:5/0 = 0
-2:5/0 = 0
-3:5/0 = 0
-4:5/0 = 0
-5:5/0 = 0
-6:5/0 = 0
-7:5/0 = 0
-8:5/0 = 0
-9:5/0 = 0
-10:5/0 = 0
-11:5/0 = 0
-12:5/0 = 0
-13:5/0 = 0
-14:5/0 = 0
-15:5/0 = 0
-16:5/0 = 0
-17:5/0 = 0
-18:5/0 = 0
-19:5/0 = 0
-20:5/0 = 0
-21:5/0 = 0
-22:5/0 = 0
-23:5/0 = 0
-24:5/0 = 0
-25:5/0 = 0
-26:5/0 = 0
-27:5/0 = 0
-28:5/0 = 0
-29:5/0 = 0
-30:5/0 = 0
-31:5/0 = 0
-32:5/0 = 0
-33:5/0 = 0
-34:5/0 = 0
-35:5/0 = 0
-36:5/0 = 0
-37:5/0 = 0
-38:5/0 = 0
-39:5/0 = 0
-40:5/0 = 0
-41:5/0 = 0
-42:5/0 = 0
-43:5/0 = 0
-44:5/0 = 0
-45:5/0 = 0
-46:5/0 = 0
-47:5/0 = 0
-48:5/0 = 0
-0:6/0 = 0
-1:6/0 = 0
-2:6/0 = 0
-3:6/0 = 0
-4:6/0 = 0
-5:6/0 = 0
-6:6/0 = 0
-7:6/0 = 0
-8:6/0 = 0
-9:6/0 = 0
-10:6/0 = 0
-11:6/0 = 0
-12:6/0 = 0
-13:6/0 = 0
-14:6/0 = 0
-15:6/0 = 0
-16:6/0 = 0
-17:6/0 = 0
-18:6/0 = 0
-19:6/0 = 0
-20:6/0 = 0
-21:6/0 = 0
-22:6/0 = 0
-23:6/0 = 0
-24:6/0 = 0
-25:6/0 = 0
-26:6/0 = 0
-27:6/0 = 0
-28:6/0 = 0
-29:6/0 = 0
-30:6/0 = 0
-31:6/0 = 0
-32:6/0 = 0
-33:6/0 = 0
-34:6/0 = 0
-35:6/0 = 0
-36:6/0 = 0
-37:6/0 = 0
-38:6/0 = 0
-39:6/0 = 0
-40:6/0 = 0
-41:6/0 = 0
-42:6/0 = 0
-43:6/0 = 0
-44:6/0 = 0
-45:6/0 = 0
-46:6/0 = 0
-47:6/0 = 0
-48:6/0 = 0
-0:7/0 = 0
-1:7/0 = 0
-2:7/0 = 0
-3:7/0 = 0
-4:7/0 = 0
-5:7/0 = 0
-6:7/0 = 0
-7:7/0 = 0
-8:7/0 = 0
-9:7/0 = 0
-10:7/0 = 0
-11:7/0 = 0
-12:7/0 = 0
-13:7/0 = 0
-14:7/0 = 0
-15:7/0 = 0
-16:7/0 = 0
-17:7/0 = 0
-18:7/0 = 0
-19:7/0 = 0
-20:7/0 = 0
-21:7/0 = 0
-22:7/0 = 0
-23:7/0 = 0
-24:7/0 = 0
-25:7/0 = 0
-26:7/0 = 0
-27:7/0 = 0
-28:7/0 = 0
-29:7/0 = 0
-30:7/0 = 0
-31:7/0 = 0
-32:7/0 = 0
-33:7/0 = 0
-34:7/0 = 0
-35:7/0 = 0
-36:7/0 = 0
-37:7/0 = 0
-38:7/0 = 0
-39:7/0 = 0
-40:7/0 = 0
-41:7/0 = 0
-42:7/0 = 0
-43:7/0 = 0
-44:7/0 = 0
-45:7/0 = 0
-46:7/0 = 0
-47:7/0 = 0
-48:7/0 = 0
-0:8/0 = 0
-1:8/0 = 0
-2:8/0 = 0
-3:8/0 = 0
-4:8/0 = 0
-5:8/0 = 0
-6:8/0 = 0
-7:8/0 = 0
-8:8/0 = 0
-9:8/0 = 0
-10:8/0 = 0
-11:8/0 = 0
-12:8/0 = 0
-13:8/0 = 0
-14:8/0 = 0
-15:8/0 = 0
-16:8/0 = 0
-17:8/0 = 0
-18:8/0 = 0
-19:8/0 = 0
-20:8/0 = 0
-21:8/0 = 0
-22:8/0 = 0
-23:8/0 = 0
-24:8/0 = 0
-25:8/0 = 0
-26:8/0 = 0
-27:8/0 = 0
-28:8/0 = 0
-29:8/0 = 0
-30:8/0 = 0
-31:8/0 = 0
-32:8/0 = 0
-33:8/0 = 0
-34:8/0 = 0
-35:8/0 = 0
-36:8/0 = 0
-37:8/0 = 0
-38:8/0 = 0
-39:8/0 = 0
-40:8/0 = 0
-41:8/0 = 0
-42:8/0 = 0
-43:8/0 = 0
-44:8/0 = 0
-45:8/0 = 0
-46:8/0 = 0
-47:8/0 = 0
-48:8/0 = 0
-0:9/0 = 0
-1:9/0 = 0
-2:9/0 = 0
-3:9/0 = 0
-4:9/0 = 0
-5:9/0 = 0
-6:9/0 = 0
-7:9/0 = 0
-8:9/0 = 0
-9:9/0 = 0
-10:9/0 = 0
-11:9/0 = 0
-12:9/0 = 0
-13:9/0 = 0
-14:9/0 = 0
-15:9/0 = 0
-16:9/0 = 0
-17:9/0 = 0
-18:9/0 = 0
-19:9/0 = 0
-20:9/0 = 0
-21:9/0 = 0
-22:9/0 = 0
-23:9/0 = 0
-24:9/0 = 0
-25:9/0 = 0
-26:9/0 = 0
-27:9/0 = 0
-28:9/0 = 0
-29:9/0 = 0
-30:9/0 = 0
-31:9/0 = 0
-32:9/0 = 0
-33:9/0 = 0
-34:9/0 = 0
-35:9/0 = 0
-36:9/0 = 0
-37:9/0 = 0
-38:9/0 = 0
-39:9/0 = 0
-40:9/0 = 0
-41:9/0 = 0
-42:9/0 = 0
-43:9/0 = 0
-44:9/0 = 0
-45:9/0 = 0
-46:9/0 = 0
-47:9/0 = 0
-48:9/0 = 0
-0:10/0 = 0
-1:10/0 = 0
-2:10/0 = 0
-3:10/0 = 0
-4:10/0 = 0
-5:10/0 = 0
-6:10/0 = 0
-7:10/0 = 0
-8:10/0 = 0
-9:10/0 = 0
-10:10/0 = 0
-11:10/0 = 0
-12:10/0 = 0
-13:10/0 = 0
-14:10/0 = 0
-15:10/0 = 0
-16:10/0 = 0
-17:10/0 = 0
-18:10/0 = 0
-19:10/0 = 0
-20:10/0 = 0
-21:10/0 = 0
-22:10/0 = 0
-23:10/0 = 0
-24:10/0 = 0
-25:10/0 = 0
-26:10/0 = 0
-27:10/0 = 0
-28:10/0 = 0
-29:10/0 = 0
-30:10/0 = 0
-31:10/0 = 0
-32:10/0 = 0
-33:10/0 = 0
-34:10/0 = 0
-35:10/0 = 0
-36:10/0 = 0
-37:10/0 = 0
-38:10/0 = 0
-39:10/0 = 0
-40:10/0 = 0
-41:10/0 = 0
-42:10/0 = 0
-43:10/0 = 0
-44:10/0 = 0
-45:10/0 = 0
-46:10/0 = 0
-47:10/0 = 0
-48:10/0 = 0
-0:11/0 = 0
-1:11/0 = 0
-2:11/0 = 0
-3:11/0 = 0
-4:11/0 = 0
-5:11/0 = 0
-6:11/0 = 0
-7:11/0 = 0
-8:11/0 = 0
-9:11/0 = 0
-10:11/0 = 0
-11:11/0 = 0
-12:11/0 = 0
-13:11/0 = 0
-14:11/0 = 0
-15:11/0 = 0
-16:11/0 = 0
-17:11/0 = 0
-18:11/0 = 0
-19:11/0 = 0
-20:11/0 = 0
-21:11/0 = 0
-22:11/0 = 0
-23:11/0 = 0
-24:11/0 = 0
-25:11/0 = 0
-26:11/0 = 0
-27:11/0 = 0
-28:11/0 = 0
-29:11/0 = 0
-30:11/0 = 0
-31:11/0 = 0
-32:11/0 = 0
-33:11/0 = 0
-34:11/0 = 0
-35:11/0 = 0
-36:11/0 = 0
-37:11/0 = 0
-38:11/0 = 0
-39:11/0 = 0
-40:11/0 = 0
-41:11/0 = 0
-42:11/0 = 0
-43:11/0 = 0
-44:11/0 = 0
-45:11/0 = 0
-46:11/0 = 0
-47:11/0 = 0
-48:11/0 = 0
-0:12/0 = 0
-1:12/0 = 0
-2:12/0 = 0
-3:12/0 = 0
-4:12/0 = 0
-5:12/0 = 0
-6:12/0 = 0
-7:12/0 = 0
-8:12/0 = 0
-9:12/0 = 0
-10:12/0 = 0
-11:12/0 = 0
-12:12/0 = 0
-13:12/0 = 0
-14:12/0 = 0
-15:12/0 = 0
-16:12/0 = 0
-17:12/0 = 0
-18:12/0 = 0
-19:12/0 = 0
-20:12/0 = 0
-21:12/0 = 0
-22:12/0 = 0
-23:12/0 = 0
-24:12/0 = 0
-25:12/0 = 0
-26:12/0 = 0
-27:12/0 = 0
-28:12/0 = 0
-29:12/0 = 0
-30:12/0 = 0
-31:12/0 = 0
-32:12/0 = 0
-33:12/0 = 0
-34:12/0 = 0
-35:12/0 = 0
-36:12/0 = 0
-37:12/0 = 0
-38:12/0 = 0
-39:12/0 = 0
-40:12/0 = 0
-41:12/0 = 0
-42:12/0 = 0
-43:12/0 = 0
-44:12/0 = 0
-45:12/0 = 0
-46:12/0 = 0
-47:12/0 = 0
-48:12/0 = 0
-0:13/0 = 0
-1:13/0 = 0
-2:13/0 = 0
-3:13/0 = 0
-4:13/0 = 0
-5:13/0 = 0
-6:13/0 = 0
-7:13/0 = 0
-8:13/0 = 0
-9:13/0 = 0
-10:13/0 = 0
-11:13/0 = 0
-12:13/0 = 0
-13:13/0 = 0
-14:13/0 = 0
-15:13/0 = 0
-16:13/0 = 0
-17:13/0 = 0
-18:13/0 = 0
-19:13/0 = 0
-20:13/0 = 0
-21:13/0 = 0
-22:13/0 = 0
-23:13/0 = 0
-24:13/0 = 0
-25:13/0 = 0
-26:13/0 = 0
-27:13/0 = 0
-28:13/0 = 0
-29:13/0 = 0
-30:13/0 = 0
-31:13/0 = 0
-32:13/0 = 0
-33:13/0 = 0
-34:13/0 = 0
-35:13/0 = 0
-36:13/0 = 0
-37:13/0 = 0
-38:13/0 = 0
-39:13/0 = 0
-40:13/0 = 0
-41:13/0 = 0
-42:13/0 = 0
-43:13/0 = 0
-44:13/0 = 0
-45:13/0 = 0
-46:13/0 = 0
-47:13/0 = 0
-48:13/0 = 0
-0:14/0 = 0
-1:14/0 = 0
-2:14/0 = 0
-3:14/0 = 0
-4:14/0 = 0
-5:14/0 = 0
-6:14/0 = 0
-7:14/0 = 0
-8:14/0 = 0
-9:14/0 = 0
-10:14/0 = 0
-11:14/0 = 0
-12:14/0 = 0
-13:14/0 = 0
-14:14/0 = 0
-15:14/0 = 0
-16:14/0 = 0
-17:14/0 = 0
-18:14/0 = 0
-19:14/0 = 0
-20:14/0 = 0
-21:14/0 = 0
-22:14/0 = 0
-23:14/0 = 0
-24:14/0 = 0
-25:14/0 = 0
-26:14/0 = 0
-27:14/0 = 0
-28:14/0 = 0
-29:14/0 = 0
-30:14/0 = 0
-31:14/0 = 0
-32:14/0 = 0
-33:14/0 = 0
-34:14/0 = 0
-35:14/0 = 0
-36:14/0 = 0
-37:14/0 = 0
-38:14/0 = 0
-39:14/0 = 0
-40:14/0 = 0
-41:14/0 = 0
-42:14/0 = 0
-43:14/0 = 0
-44:14/0 = 0
-45:14/0 = 0
-46:14/0 = 0
-47:14/0 = 0
-48:14/0 = 0
-0:15/0 = 0
-1:15/0 = 0
-2:15/0 = 0
-3:15/0 = 0
-4:15/0 = 0
-5:15/0 = 0
-6:15/0 = 0
-7:15/0 = 0
-8:15/0 = 0
-9:15/0 = 0
-10:15/0 = 0
-11:15/0 = 0
-12:15/0 = 0
-13:15/0 = 0
-14:15/0 = 0
-15:15/0 = 0
-16:15/0 = 0
-17:15/0 = 0
-18:15/0 = 0
-19:15/0 = 0
-20:15/0 = 0
-21:15/0 = 0
-22:15/0 = 0
-23:15/0 = 0
-24:15/0 = 0
-25:15/0 = 0
-26:15/0 = 0
-27:15/0 = 0
-28:15/0 = 0
-29:15/0 = 0
-30:15/0 = 0
-31:15/0 = 0
-32:15/0 = 0
-33:15/0 = 0
-34:15/0 = 0
-35:15/0 = 0
-36:15/0 = 0
-37:15/0 = 0
-38:15/0 = 0
-39:15/0 = 0
-40:15/0 = 0
-41:15/0 = 0
-42:15/0 = 0
-43:15/0 = 0
-44:15/0 = 0
-45:15/0 = 0
-46:15/0 = 0
-47:15/0 = 0
-48:15/0 = 0
-0:16/0 = 0
-1:16/0 = 0
-2:16/0 = 0
-3:16/0 = 0
-4:16/0 = 0
-5:16/0 = 0
-6:16/0 = 0
-7:16/0 = 0
-8:16/0 = 0
-9:16/0 = 0
-10:16/0 = 0
-11:16/0 = 0
-12:16/0 = 0
-13:16/0 = 0
-14:16/0 = 0
-15:16/0 = 0
-16:16/0 = 0
-17:16/0 = 0
-18:16/0 = 0
-19:16/0 = 0
-20:16/0 = 0
-21:16/0 = 0
-22:16/0 = 0
-23:16/0 = 0
-24:16/0 = 0
-25:16/0 = 0
-26:16/0 = 0
-27:16/0 = 0
-28:16/0 = 0
-29:16/0 = 0
-30:16/0 = 0
-31:16/0 = 0
-32:16/0 = 0
-33:16/0 = 0
-34:16/0 = 0
-35:16/0 = 0
-36:16/0 = 0
-37:16/0 = 0
-38:16/0 = 0
-39:16/0 = 0
-40:16/0 = 0
-41:16/0 = 0
-42:16/0 = 0
-43:16/0 = 0
-44:16/0 = 0
-45:16/0 = 0
-46:16/0 = 0
-47:16/0 = 0
-48:16/0 = 0
-0:17/0 = 0
-1:17/0 = 0
-2:17/0 = 0
-3:17/0 = 0
-4:17/0 = 0
-5:17/0 = 0
-6:17/0 = 0
-7:17/0 = 0
-8:17/0 = 0
-9:17/0 = 0
-10:17/0 = 0
-11:17/0 = 0
-12:17/0 = 0
-13:17/0 = 0
-14:17/0 = 0
-15:17/0 = 0
-16:17/0 = 0
-17:17/0 = 0
-18:17/0 = 0
-19:17/0 = 0
-20:17/0 = 0
-21:17/0 = 0
-22:17/0 = 0
-23:17/0 = 0
-24:17/0 = 0
-25:17/0 = 0
-26:17/0 = 0
-27:17/0 = 0
-28:17/0 = 0
-29:17/0 = 0
-30:17/0 = 0
-31:17/0 = 0
-32:17/0 = 0
-33:17/0 = 0
-34:17/0 = 0
-35:17/0 = 0
-36:17/0 = 0
-37:17/0 = 0
-38:17/0 = 0
-39:17/0 = 0
-40:17/0 = 0
-41:17/0 = 0
-42:17/0 = 0
-43:17/0 = 0
-44:17/0 = 0
-45:17/0 = 0
-46:17/0 = 0
-47:17/0 = 0
-48:17/0 = 0
-0:18/0 = 0
-1:18/0 = 0
-2:18/0 = 0
-3:18/0 = 0
-4:18/0 = 0
-5:18/0 = 0
-6:18/0 = 0
-7:18/0 = 0
-8:18/0 = 0
-9:18/0 = 0
-10:18/0 = 0
-11:18/0 = 0
-12:18/0 = 0
-13:18/0 = 0
-14:18/0 = 0
-15:18/0 = 0
-16:18/0 = 0
-17:18/0 = 0
-18:18/0 = 0
-19:18/0 = 0
-20:18/0 = 0
-21:18/0 = 0
-22:18/0 = 0
-23:18/0 = 0
-24:18/0 = 0
-25:18/0 = 0
-26:18/0 = 0
-27:18/0 = 0
-28:18/0 = 0
-29:18/0 = 0
-30:18/0 = 0
-31:18/0 = 0
-32:18/0 = 0
-33:18/0 = 0
-34:18/0 = 0
-35:18/0 = 0
-36:18/0 = 0
-37:18/0 = 0
-38:18/0 = 0
-39:18/0 = 0
-40:18/0 = 0
-41:18/0 = 0
-42:18/0 = 0
-43:18/0 = 0
-44:18/0 = 0
-45:18/0 = 0
-46:18/0 = 0
-47:18/0 = 0
-48:18/0 = 0
-0:19/0 = 0
-1:19/0 = 0
-2:19/0 = 0
-3:19/0 = 0
-4:19/0 = 0
-5:19/0 = 0
-6:19/0 = 0
-7:19/0 = 0
-8:19/0 = 0
-9:19/0 = 0
-10:19/0 = 0
-11:19/0 = 0
-12:19/0 = 0
-13:19/0 = 0
-14:19/0 = 0
-15:19/0 = 0
-16:19/0 = 0
-17:19/0 = 0
-18:19/0 = 0
-19:19/0 = 0
-20:19/0 = 0
-21:19/0 = 0
-22:19/0 = 0
-23:19/0 = 0
-24:19/0 = 0
-25:19/0 = 0
-26:19/0 = 0
-27:19/0 = 0
-28:19/0 = 0
-29:19/0 = 0
-30:19/0 = 0
-31:19/0 = 0
-32:19/0 = 0
-33:19/0 = 0
-34:19/0 = 0
-35:19/0 = 0
-36:19/0 = 0
-37:19/0 = 0
-38:19/0 = 0
-39:19/0 = 0
-40:19/0 = 0
-41:19/0 = 0
-42:19/0 = 0
-43:19/0 = 0
-44:19/0 = 0
-45:19/0 = 0
-46:19/0 = 0
-47:19/0 = 0
-48:19/0 = 0
-0:20/0 = 0
-1:20/0 = 0
-2:20/0 = 0
-3:20/0 = 0
-4:20/0 = 0
-5:20/0 = 0
-6:20/0 = 0
-7:20/0 = 0
-8:20/0 = 0
-9:20/0 = 0
-10:20/0 = 0
-11:20/0 = 0
-12:20/0 = 0
-13:20/0 = 0
-14:20/0 = 0
-15:20/0 = 0
-16:20/0 = 0
-17:20/0 = 0
-18:20/0 = 0
-19:20/0 = 0
-20:20/0 = 0
-21:20/0 = 0
-22:20/0 = 0
-23:20/0 = 0
-24:20/0 = 0
-25:20/0 = 0
-26:20/0 = 0
-27:20/0 = 0
-28:20/0 = 0
-29:20/0 = 0
-30:20/0 = 0
-31:20/0 = 0
-32:20/0 = 0
-33:20/0 = 0
-34:20/0 = 0
-35:20/0 = 0
-36:20/0 = 0
-37:20/0 = 0
-38:20/0 = 0
-39:20/0 = 0
-40:20/0 = 0
-41:20/0 = 0
-42:20/0 = 0
-43:20/0 = 0
-44:20/0 = 0
-45:20/0 = 0
-46:20/0 = 0
-47:20/0 = 0
-48:20/0 = 0
-0:21/0 = 0
-1:21/0 = 0
-2:21/0 = 0
-3:21/0 = 0
-4:21/0 = 0
-5:21/0 = 0
-6:21/0 = 0
-7:21/0 = 0
-8:21/0 = 0
-9:21/0 = 0
-10:21/0 = 0
-11:21/0 = 0
-12:21/0 = 0
-13:21/0 = 0
-14:21/0 = 0
-15:21/0 = 0
-16:21/0 = 0
-17:21/0 = 0
-18:21/0 = 0
-19:21/0 = 0
-20:21/0 = 0
-21:21/0 = 0
-22:21/0 = 0
-23:21/0 = 0
-24:21/0 = 0
-25:21/0 = 0
-26:21/0 = 0
-27:21/0 = 0
-28:21/0 = 0
-29:21/0 = 0
-30:21/0 = 0
-31:21/0 = 0
-32:21/0 = 0
-33:21/0 = 0
-34:21/0 = 0
-35:21/0 = 0
-36:21/0 = 0
-37:21/0 = 0
-38:21/0 = 0
-39:21/0 = 0
-40:21/0 = 0
-41:21/0 = 0
-42:21/0 = 0
-43:21/0 = 0
-44:21/0 = 0
-45:21/0 = 0
-46:21/0 = 0
-47:21/0 = 0
-48:21/0 = 0
-0:0/0 = 0
-
-[sub_resource type="TileSet" id="TileSet_47enk"]
-sources/0 = SubResource("TileSetAtlasSource_tjuek")
-
[node name="Main" type="Node2D"]
[node name="Cursor" parent="." instance=ExtResource("4_rarhs")]
+[node name="Map" parent="." instance=ExtResource("2_vcsgt")]
+
[node name="PathSpawner" type="Node2D" parent="."]
script = ExtResource("2_0bbpv")
@@ -1101,16 +19,14 @@ script = ExtResource("2_0bbpv")
wait_time = 2.0
autostart = true
-[node name="L1" type="TileMapLayer" parent="."]
-tile_map_data = PackedByteArray("AAAAAAMAAAADAAIAAAAAAAYAAAAEAAEAAAAAAAcAAAAEAAEAAAAAAAgAAAADAAEAAAAAAAkAAAAOAAYAAAAAAAoAAAAIAAEAAGAAAAsAAAAEAAEAAAAAAAwAAAADAAEAAAAAAA0AAAAEAAIAAAABAAEAAAAOAAoAAAABAAIAAAAAAAIAAAABAAUAAAABAAEAAAABAAgAAAAEAAEAAAABAAkAAAATAAYAAAABAAoAAAAIAAEAAGABAAsAAAAAAAIAAAABAAwAAAAEAAIAAAABAA0AAAAdAAcAAAACAAEAAAAQABQAAAACAAIAAAAQABUAAAACAAMAAAABAAEAAAACAAQAAAAAAAEAAAACAAUAAAADAAIAAAACAAYAAAAFAAIAAAACAAcAAAAAAAIAAAACAAgAAAADAAIAAAACAAkAAAADAAEAAAACAAoAAAAIAAEAAGACAAsAAAADAAEAAAADAAEAAAAQABUAAAADAAIAAAARABUAAAADAAwAAAAGAAIAAAADAA0AAAABAAEAAAAEAAEAAAARABUAAAAEAAIAAAARABUAAAAEAAMAAAAJAAEAAAAEAAQAAAAIAAEAADAEAAUAAAAIAAEAADAEAAwAAAABAAEAAAAEAA0AAAADAAIAAAAFAAEAAAASABUAAAAFAAIAAAARABUAAAAFAAwAAAABAAEAAAAFAA0AAAAPAAYAAAAGAAEAAAAAAAEAAAAGAAIAAAARABUAAAAGAAMAAAAIAAEAAGAGAAoAAAAIAAEAAGAGAA0AAAADAAEAAAAHAAEAAAASABQAAAAHAAIAAAASABUAAAAHAAYAAAAIAAEAAGAHAA0AAAACAAEAAAAIAAEAAAABAAEAAAAIAAIAAAAFAAEAAAAIAA0AAAAAAAEAAAAKAAoAAAAIAAEAAGAKAAsAAAAOAAYAAAAKAAwAAAABAAEAAAAKAA0AAAAFAAIAAAALAAEAAAASAAYAAAALAAIAAAABAAEAAAALAAwAAAAAAAIAAAALAA0AAAADAAIAAAAMAAEAAAAAAAIAAAAMAAIAAAAPAAYAAAAMAAwAAAAGAAIAAAAMAA0AAAATAAYAAAANAAMAAAAIAAEAAGANAAwAAAACAAEAAAANAA0AAAASAAYAAAAOAAMAAAAIAAEAAGAOAAoAAAAIAAEAAGAOAA0AAAABAAEAAAAPAAYAAAAJAAEAAFAPAAcAAAAIAAEAAAAPAAgAAAAIAAEAAAAPAAkAAAAIAAEAAAAPAAoAAAAJAAEAADAPAAsAAAACAAEAAAAPAAwAAAAEAAEAAAAPAA0AAAAKAAUAAAAQAAwAAAASAAYAAAAQAA0AAAAJAAUAAFARAAkAAAABAAEAAAARAAoAAAACAAEAAAARAAsAAAABAAEAAAARAAwAAAABAAEAAAARAA0AAAAJAAUAAFASAAEAAAARAA8AAAASAAIAAAABAAEAAAASAAcAAAADAAAAAAASAAgAAAABAAEAAAASAAkAAAAOAAoAAAASAAoAAAAEAAEAAAASAAsAAAAKAAUAAAASAAwAAAAJAAUAAAASAA0AAAALAAUAAAATAAEAAAARAA8AAAATAAIAAAARAAkAAAATAAMAAAAIAAEAAGATAAkAAAATAAYAAAATAAoAAAAPAAYAAAATAAsAAAAJAAUAAFATAAwAAAAIAAUAAAATAA0AAAAIAAUAAAAAAAEAAAAAAAEAAAAAAAQAAAAOAAYAAAAAAA4AAAABAAMAAAABAAMAAAAGAAIAAAABAAYAAAADAAIAAAABAA4AAAABAAMAAAACAAwAAAAEAAEAAAACAA4AAAABAAMAAAADAAMAAAABAAEAAAADAAoAAAAIAAEAAGADAA4AAAABAAMAAAAEAAYAAAAJAAEAAGAEAAoAAAAIAAEAAGAEAA4AAAABAAMAAAAFAAMAAAAIAAEAAGAFAAYAAAAIAAEAAGAFAAoAAAAIAAEAAGAFAA4AAAABAAMAAAAGAAQAAAAAAAIAAAAGAAYAAAAIAAEAAGAGAAsAAAAEAAIAAAAGAA4AAAABAAMAAAAHAAMAAAAIAAEAAGAHAAcAAAABAAEAAAAHAAoAAAAIAAEAAGAHAA4AAAABAAMAAAAIAAMAAAAIAAEAAGAIAAYAAAAIAAEAAGAIAAoAAAAIAAEAAGAIAA4AAAADAAEAAAAJAAEAAAATAAYAAAAJAAMAAAAIAAEAAGAJAAYAAAAIAAEAAGAJAAoAAAAIAAEAAGAJAA4AAAABAAEAAAAKAAEAAAAFAAEAAAAKAAMAAAAIAAEAAGAKAAYAAAAIAAEAAGAKAA4AAAATAAYAAAALAAMAAAAIAAEAAGALAAYAAAAIAAEAAGALAAoAAAAIAAEAAGALAA4AAAAKAAUAAAAMAAMAAAAIAAEAAGAMAAYAAAAIAAEAAGAMAAoAAAAIAAEAAGAMAA4AAAAJAAUAAFANAAEAAAAQAA8AAAANAAQAAAAAAAIAAAANAAYAAAAIAAEAAGANAAoAAAAIAAEAAGANAA4AAAAJAAUAAFAOAAEAAAARAA8AAAAOAAQAAAATAAYAAAAOAAYAAAAIAAEAAGAOAAsAAAABAAEAAAAOAA4AAAAJAAUAAFAPAAEAAAARAA8AAAAPAAMAAAAIAAEAAGAPAA4AAAALAAUAAAAQAAEAAAARAA8AAAAQAAMAAAAIAAEAAGAQAAcAAAADAAAAAAAQAA4AAAAIAAUAAAARAAEAAAARAA8AAAARAAMAAAAIAAEAAGARAAUAAAAAAAIAAAARAAcAAAADAAAAAAARAA4AAAAIAAUAAAASAAMAAAAIAAEAAGASAA4AAAAIAAUAAAATAAQAAAARAAkAAAATAAcAAAADAAAAAAATAA4AAAAIAAUAAAA=")
-tile_set = SubResource("TileSet_47enk")
-
[node name="Defenders" type="Node" parent="."]
[node name="GridManager" type="Node" parent="."]
script = ExtResource("4_vcsgt")
[node name="PanelContainer" parent="." instance=ExtResource("5_vcsgt")]
+offset_top = 224.0
offset_right = 320.0
+offset_bottom = 241.0
[connection signal="timeout" from="PathSpawner/Timer" to="PathSpawner" method="_on_timer_timeout"]
diff --git a/scenes/path.tscn b/scenes/map.tscn
index 2e11423..2e11423 100644
--- a/scenes/path.tscn
+++ b/scenes/map.tscn
diff --git a/scenes/soldier.tscn b/scenes/soldier.tscn
index dd665e1..d6aae63 100644
--- a/scenes/soldier.tscn
+++ b/scenes/soldier.tscn
@@ -1,4 +1,4 @@
-[gd_scene load_steps=4 format=3 uid="uid://rp5orgc6ae7j"]
+[gd_scene load_steps=5 format=3 uid="uid://rp5orgc6ae7j"]
[ext_resource type="Script" uid="uid://gn1504blq1pf" path="res://scripts/soldier.gd" id="1_q2rr1"]
[ext_resource type="Texture2D" uid="uid://di2vybjsniag4" path="res://assets/tilemap.png" id="2_2oslh"]
@@ -6,6 +6,8 @@
[sub_resource type="CircleShape2D" id="CircleShape2D_220eh"]
radius = 8.06226
+[sub_resource type="Curve2D" id="Curve2D_q2rr1"]
+
[node name="CrawlerSoldier" type="CharacterBody2D"]
script = ExtResource("1_q2rr1")
@@ -16,3 +18,6 @@ shape = SubResource("CircleShape2D_220eh")
texture = ExtResource("2_2oslh")
region_enabled = true
region_rect = Rect2(432, 0, 16, 16)
+
+[node name="Node2D" type="Path2D" parent="."]
+curve = SubResource("Curve2D_q2rr1")
diff --git a/scripts/cursor.gd b/scripts/cursor.gd
index 025679b..68e2010 100644
--- a/scripts/cursor.gd
+++ b/scripts/cursor.gd
@@ -1,7 +1,7 @@
extends Node2D
@onready var grid_manager = get_node("../GridManager")
-@onready var tilemap = get_node("../L1")
+@onready var tilemap = get_node("../Map/TileMapLayer")
var tile_size : float
var max_x : float
@@ -52,9 +52,9 @@ func handle_tower(tower):
func handle_move(dir):
position += dir * tile_size
position.x = max(position.x, tile_size / 2)
- position.y = max(position.y, tile_size + tile_size / 2)
+ position.y = max(position.y, tile_size / 2)
position.x = min(position.x, max_x - (tile_size / 2))
- position.y = min(position.y, max_y - (tile_size / 2))
+ position.y = min(position.y, max_y - tile_size - (tile_size / 2))
func is_valid_placement_tile():
var tile_coords = tilemap.get_cell_atlas_coords(tilemap.local_to_map(global_position))
diff --git a/scripts/map_generator.gd b/scripts/map_generator.gd
index 328bce1..7feb4b7 100644
--- a/scripts/map_generator.gd
+++ b/scripts/map_generator.gd
@@ -6,10 +6,11 @@ extends Node2D
@onready var tile_map : TileMapLayer = $TileMapLayer
-var _pg : PathGenerator
-var path_straight_atlas_coords : Vector2i = Vector2i(8, 1)
-var path_corner_atlas_coords : Vector2i = Vector2i(9, 1)
-var path_empty_atlas_coords : Vector2i = Vector2i(0, 0)
+var _path_straight_atlas_coords : Vector2i = Vector2i(8, 1)
+var _path_corner_atlas_coords : Vector2i = Vector2i(9, 1)
+var _path_empty_atlas_coords : Vector2i = Vector2i(0, 0)
+
+var _path : Array[Vector2i]
enum TileTransform {
ROTATE_0 = 0,
@@ -19,36 +20,39 @@ enum TileTransform {
}
func _ready() -> void:
- _pg = PathGenerator.new(grid_width, grid_height)
- _display_path()
+ _generate_path()
+ _draw_path()
-func _display_path():
- var path : Array[Vector2i] = []
- while path.size() < 35:
- path = _pg.generate_path()
+func _generate_path():
+ var pg : PathGenerator = PathGenerator.new(grid_width, grid_height)
+ _path = []
+ while _path.size() < 35:
+ _path = pg.generate_path()
+ _draw_path()
- for i in path:
- var score : int = _get_tile_score(path, i)
+func _draw_path():
+ for i in _path:
+ var score : int = _get_tile_score(_path, i)
- var atlas_coords : Vector2i = path_empty_atlas_coords
+ var atlas_coords : Vector2i = _path_empty_atlas_coords
var rot : TileTransform = TileTransform.ROTATE_0
match score:
2, 8, 10:
- atlas_coords = path_straight_atlas_coords
+ atlas_coords = _path_straight_atlas_coords
rot = TileTransform.ROTATE_90
1, 4, 5:
- atlas_coords = path_straight_atlas_coords
+ atlas_coords = _path_straight_atlas_coords
3:
- atlas_coords = path_corner_atlas_coords
+ atlas_coords = _path_corner_atlas_coords
rot = TileTransform.ROTATE_270
6:
- atlas_coords = path_corner_atlas_coords
+ atlas_coords = _path_corner_atlas_coords
12:
- atlas_coords = path_corner_atlas_coords
+ atlas_coords = _path_corner_atlas_coords
rot = TileTransform.ROTATE_90
9:
- atlas_coords = path_corner_atlas_coords
+ atlas_coords = _path_corner_atlas_coords
rot = TileTransform.ROTATE_180
_display_tile(atlas_coords, rot, i)
@@ -67,3 +71,7 @@ func _get_tile_score(path : Array[Vector2i], tile : Vector2i) -> int:
score += 8 if path.has(Vector2i(x - 1, y)) else 0
return score
+
+func get_enemy_path() -> Array[Vector2i]:
+ return _path
+
diff --git a/scripts/path_generator.gd b/scripts/path_generator.gd
index 0e9719a..87fedc3 100644
--- a/scripts/path_generator.gd
+++ b/scripts/path_generator.gd
@@ -5,29 +5,27 @@ class_name PathGenerator
var _grid_width : int
var _grid_height : int
-var _path : Array[Vector2i]
-
func _init(width:int, height:int):
_grid_width = width
_grid_height = height
-func generate_path():
- _path.clear()
+func generate_path() -> Array[Vector2i]:
+ var path : Array[Vector2i]
var x : int = 0
var y : int = randi_range(1, _grid_height-2)
while x < _grid_width:
- if not _path.has(Vector2i(x,y)):
- _path.append(Vector2i(x, y))
+ if not path.has(Vector2i(x,y)):
+ path.append(Vector2i(x, y))
var choice : int = randi_range(0,2)
# every even tile goes right to leave room for towers
if choice == 0 || x % 2 == 0 || x == _grid_width - 1:
x += 1
- elif choice == 1 && y < _grid_height - 2 && !_path.has(Vector2i(x, y + 1)):
+ elif choice == 1 && y < _grid_height - 2 && !path.has(Vector2i(x, y + 1)):
y += 1
- elif choice == 2 && y > 1 && !_path.has(Vector2i(x, y - 1)):
+ elif choice == 2 && y > 1 && !path.has(Vector2i(x, y - 1)):
y -= 1
- return _path
+ return path
diff --git a/scripts/path_spawner.gd b/scripts/path_spawner.gd
deleted file mode 100644
index 9b8f663..0000000
--- a/scripts/path_spawner.gd
+++ /dev/null
@@ -1,7 +0,0 @@
-extends Node2D
-
-@onready var path = preload("res://scenes/L1.tscn")
-
-func _on_timer_timeout():
- var tmp = path.instantiate()
- add_child(tmp)
diff --git a/scripts/wave_spawner.gd b/scripts/wave_spawner.gd
new file mode 100644
index 0000000..3f63c71
--- /dev/null
+++ b/scripts/wave_spawner.gd
@@ -0,0 +1,35 @@
+extends Node2D
+
+@onready var fodder_enemy = preload("res://scenes/soldier.tscn")
+@onready var map = get_node("../Map")
+
+var curve : Curve2D
+
+func _ready() -> void:
+ curve = Curve2D.new()
+
+ var path : Array[Vector2i] = map.get_enemy_path()
+
+ # add off-screen points
+ path.insert(0, path[0] - Vector2i(1, 0))
+ path.append(path[path.size() - 1] + Vector2i(1, 0))
+
+ # adjust to grid size
+ for i in map.get_enemy_path():
+ curve.add_point(i * 16 + Vector2i.ONE * 8)
+
+func _on_timer_timeout():
+ var path = Path2D.new()
+ path.curve = curve
+
+ var follow_path = PathFollow2D.new()
+ follow_path.set_progress(0)
+ follow_path.rotates = false
+ follow_path.loop = false
+
+ var enemy = fodder_enemy.instantiate()
+
+ follow_path.add_child(enemy)
+ path.add_child(follow_path)
+
+ add_child(path)
diff --git a/scripts/path_spawner.gd.uid b/scripts/wave_spawner.gd.uid
index a6ecd6a..a6ecd6a 100644
--- a/scripts/path_spawner.gd.uid
+++ b/scripts/wave_spawner.gd.uid