diff options
author | bd <bdunahu@operationnull.com> | 2025-05-22 20:24:01 -0400 |
---|---|---|
committer | bd <bdunahu@operationnull.com> | 2025-05-22 20:24:01 -0400 |
commit | a95e2ead7e3ade3c13e4e9f6e68c24df4430097a (patch) | |
tree | 49913b6b0081ec7d51a9c672437597b9cc1b6b7b | |
parent | b318529cf9c01fca4ac2e1b7c7f7fccd0be4589a (diff) |
Make WaveSpawner, Cursor, use generated paths
-rw-r--r-- | scenes/L1.tscn | 20 | ||||
-rw-r--r-- | scenes/Main.tscn | 1098 | ||||
-rw-r--r-- | scenes/map.tscn (renamed from scenes/path.tscn) | 0 | ||||
-rw-r--r-- | scenes/soldier.tscn | 7 | ||||
-rw-r--r-- | scripts/cursor.gd | 6 | ||||
-rw-r--r-- | scripts/map_generator.gd | 46 | ||||
-rw-r--r-- | scripts/path_generator.gd | 16 | ||||
-rw-r--r-- | scripts/path_spawner.gd | 7 | ||||
-rw-r--r-- | scripts/wave_spawner.gd | 35 | ||||
-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 |