diff --git a/Resources/RogueliteMaps/TestMapLongX3.tres b/Resources/RogueliteMaps/TestMapLongX3.tres new file mode 100644 index 00000000..d928a8fe --- /dev/null +++ b/Resources/RogueliteMaps/TestMapLongX3.tres @@ -0,0 +1,17 @@ +[gd_resource type="Resource" script_class="RogueliteRoomResource" load_steps=6 format=3 uid="uid://cmgiqsmujujss"] + +[ext_resource type="Resource" uid="uid://cocl3qontm3be" path="res://Resources/Enemies/Base_Fairy.tres" id="1_yoxf3"] +[ext_resource type="Resource" uid="uid://cqfyuurvqb8m6" path="res://Resources/Enemies/Base_Fairy_Special.tres" id="2_65es6"] +[ext_resource type="Resource" uid="uid://qbo6avc7x64b" path="res://Resources/Enemies/Fairy_Guard.tres" id="3_7u7l8"] +[ext_resource type="Resource" uid="uid://cfdvg162u65sr" path="res://Resources/Enemies/Thermathron.tres" id="4_4dh4i"] +[ext_resource type="Script" uid="uid://bl2ne8w12e3a" path="res://Scripts/Resources/Roguelite/RogueliteRoomResource.cs" id="5_ea8ub"] + +[resource] +script = ExtResource("5_ea8ub") +RoomName = &"Test" +Type = 1 +ScenePath = &"uid://ss7hm1utnvn1" +Size = Vector2i(1, 3) +DoorGridPositions = Array[Vector2i]([Vector2i(0, -1), Vector2i(0, 1), Vector2i(1, 0), Vector2i(-1, 0)]) +SpawnableEnemies = Array[Object]([ExtResource("1_yoxf3"), ExtResource("2_65es6"), ExtResource("3_7u7l8"), ExtResource("4_4dh4i")]) +metadata/_custom_type_script = "uid://bl2ne8w12e3a" diff --git a/Scenes/Maps/Roguelike.tscn b/Scenes/Maps/Roguelike.tscn index 4fc21045..58cb3be4 100644 --- a/Scenes/Maps/Roguelike.tscn +++ b/Scenes/Maps/Roguelike.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=19 format=3 uid="uid://bf1kqr3o6r6d4"] +[gd_scene load_steps=20 format=3 uid="uid://bf1kqr3o6r6d4"] [ext_resource type="Script" uid="uid://doxmbokehw8ci" path="res://Scripts/GameManager.cs" id="1_wbqvu"] [ext_resource type="PackedScene" uid="uid://c4pr2707hbeph" path="res://Scenes/Actors/fsm_player.tscn" id="2_3fyis"] @@ -15,6 +15,7 @@ [ext_resource type="PackedScene" uid="uid://dkwi1hu1bixoe" path="res://Scenes/HUD/HUD.tscn" id="10_6gk3e"] [ext_resource type="Script" uid="uid://bdshph801ac2i" path="res://Scenes/CameraTarget.gd" id="11_4gy5m"] [ext_resource type="Resource" uid="uid://cjtcksew0qy6d" path="res://Resources/RogueliteMaps/TestRGMapLarge.tres" id="11_68lig"] +[ext_resource type="Resource" uid="uid://cmgiqsmujujss" path="res://Resources/RogueliteMaps/TestMapLongX3.tres" id="12_83bvc"] [ext_resource type="Script" uid="uid://cnkipcolyj61w" path="res://Scripts/AlarmManager.cs" id="12_eoca5"] [ext_resource type="PackedScene" uid="uid://b3tyacxxw88lx" path="res://Scenes/Utils/StreamPlayerWithName.tscn" id="13_4n7t6"] [ext_resource type="Script" uid="uid://3v6q0p5krqn7" path="res://Scripts/UI/Minimap.cs" id="16_pfafs"] @@ -31,8 +32,7 @@ SpawnMarkers = Dictionary[int, NodePath]({ [node name="Maps" type="Node2D" parent="." groups=["navigation_polygon_source_geometry_group"]] process_mode = 1 script = ExtResource("4_jtlua") -Rooms = Array[Object]([ExtResource("5_gwtv6"), ExtResource("6_gwtv6"), ExtResource("7_wbqvu"), ExtResource("8_3fyis"), ExtResource("9_go1yg"), ExtResource("5_pfafs"), ExtResource("11_68lig")]) -DungeonLength = 8 +Rooms = Array[Object]([ExtResource("5_gwtv6"), ExtResource("6_gwtv6"), ExtResource("7_wbqvu"), ExtResource("8_3fyis"), ExtResource("9_go1yg"), ExtResource("5_pfafs"), ExtResource("11_68lig"), ExtResource("12_83bvc")]) [node name="CameraController" type="Camera2D" parent="."] process_mode = 1 diff --git a/Scenes/Maps/RogueliteMaps/RgLongx3.tscn b/Scenes/Maps/RogueliteMaps/RgLongx3.tscn new file mode 100644 index 00000000..e5829989 --- /dev/null +++ b/Scenes/Maps/RogueliteMaps/RgLongx3.tscn @@ -0,0 +1,95 @@ +[gd_scene load_steps=9 format=4 uid="uid://ss7hm1utnvn1"] + +[ext_resource type="Script" uid="uid://b2j00riayxkit" path="res://Scripts/Controllers/RogueliteRoom.cs" id="1_g0xrw"] +[ext_resource type="Resource" uid="uid://cmgiqsmujujss" path="res://Resources/RogueliteMaps/TestMapLongX3.tres" id="2_g0xrw"] +[ext_resource type="PackedScene" uid="uid://l84on3kv2s52" path="res://Scenes/Door_Horizontal.tscn" id="3_5pc34"] +[ext_resource type="PackedScene" uid="uid://b0k2grrc8xp1l" path="res://Scenes/Props/BigTank.tscn" id="4_keuv2"] +[ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="5_bsrt7"] +[ext_resource type="Script" uid="uid://krean0uywtms" path="res://Scripts/TilemapAvoidance.cs" id="6_mr604"] +[ext_resource type="Script" uid="uid://ddry5kjj3fr6c" path="res://Scripts/Controllers/DoorMarker.cs" id="7_vcw48"] + +[sub_resource type="NavigationPolygon" id="NavigationPolygon_rlq0q"] +vertices = PackedVector2Array(166, 58, 294, 58, 294, 454, 166, 454, 166, 470, 154, 470, 154, 454, 154, 58, 26, 454, 26, 58, 166, 10, 154, 10) +polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3), PackedInt32Array(3, 4, 5, 6), PackedInt32Array(0, 3, 6, 7), PackedInt32Array(6, 8, 9, 7), PackedInt32Array(10, 0, 7, 11)]) +outlines = Array[PackedVector2Array]([PackedVector2Array(17, 36, 14, 12, 47, 15, 49, 34)]) +parsed_collision_mask = 353 +source_geometry_mode = 1 + +[node name="Map" type="Node2D"] +process_mode = 1 +script = ExtResource("1_g0xrw") +RoomResource = ExtResource("2_g0xrw") +DoorPrefab = ExtResource("3_5pc34") +WallPrefab = ExtResource("4_keuv2") + +[node name="Tilemaps" type="Node2D" parent="." groups=["navigation_polygon_source_geometry_group"]] + +[node name="Floor" type="TileMapLayer" parent="Tilemaps" node_paths=PackedStringArray("_solidLayers") groups=["Solid"]] +tile_map_data = PackedByteArray("AAAAAAIAAAAMAAcAAAAAAAMAAAAMAAcAAAAAAAQAAAAMAAcAAAAAAAUAAAAMAAcAAAAAAAYAAAAMAAcAAAAAAAcAAAAMAAcAAAAAAAgAAAAMAAcAAAAAAAkAAAAMAAcAAAABAAIAAAAMAAcAAAABAAMAAAAMAAcAAAABAAQAAAAMAAcAAAABAAUAAAAMAAcAAAABAAYAAAAMAAcAAAABAAcAAAAMAAcAAAABAAgAAAAMAAcAAAABAAkAAAAMAAcAAAACAAIAAAAMAAcAAAACAAMAAAAMAAcAAAACAAQAAAAMAAcAAAACAAUAAAAMAAcAAAACAAYAAAAMAAcAAAACAAcAAAAMAAcAAAACAAgAAAAMAAcAAAACAAkAAAAMAAcAAAADAAIAAAAMAAcAAAADAAMAAAAMAAcAAAADAAQAAAAMAAcAAAADAAUAAAAMAAcAAAADAAYAAAAMAAcAAAADAAcAAAAMAAcAAAADAAgAAAAMAAcAAAADAAkAAAAMAAcAAAAEAAIAAAAMAAcAAAAEAAMAAAAMAAcAAAAEAAQAAAAMAAcAAAAEAAUAAAAMAAcAAAAEAAYAAAAMAAcAAAAEAAcAAAAMAAcAAAAEAAgAAAAMAAcAAAAEAAkAAAAMAAcAAAAFAAIAAAAMAAcAAAAFAAMAAAAMAAcAAAAFAAQAAAAMAAcAAAAFAAUAAAAMAAcAAAAFAAYAAAAMAAcAAAAFAAcAAAAMAAcAAAAFAAgAAAAMAAcAAAAFAAkAAAAMAAcAAAAGAAIAAAAMAAcAAAAGAAMAAAAMAAcAAAAGAAQAAAAMAAcAAAAGAAUAAAAMAAcAAAAGAAYAAAAMAAcAAAAGAAcAAAAMAAcAAAAGAAgAAAAMAAcAAAAGAAkAAAAMAAcAAAAHAAIAAAAMAAcAAAAHAAMAAAAMAAcAAAAHAAQAAAAMAAcAAAAHAAUAAAAMAAcAAAAHAAYAAAAMAAcAAAAHAAcAAAAMAAcAAAAHAAgAAAAMAAcAAAAHAAkAAAAMAAcAAAAIAAIAAAAMAAcAAAAIAAMAAAAMAAcAAAAIAAQAAAAMAAcAAAAIAAUAAAAMAAcAAAAIAAYAAAAMAAcAAAAIAAcAAAAMAAcAAAAIAAgAAAAMAAcAAAAIAAkAAAAMAAcAAAAJAAIAAAAMAAcAAAAJAAMAAAAMAAcAAAAJAAQAAAAMAAcAAAAJAAUAAAAMAAcAAAAJAAYAAAAMAAcAAAAJAAcAAAAMAAcAAAAJAAgAAAAMAAcAAAAJAAkAAAAMAAcAAAAKAAIAAAAMAAcAAAAKAAMAAAAMAAcAAAAKAAQAAAAMAAcAAAAKAAUAAAAMAAcAAAAKAAYAAAAMAAcAAAAKAAcAAAAMAAcAAAAKAAgAAAAMAAcAAAAKAAkAAAAMAAcAAAALAAIAAAAMAAcAAAALAAUAAAAMAAcAAAALAAYAAAAMAAcAAAALAAcAAAAMAAcAAAALAAgAAAAMAAcAAAALAAkAAAAMAAcAAAAMAAIAAAAMAAcAAAAMAAUAAAAMAAcAAAAMAAYAAAAMAAcAAAAMAAcAAAAMAAcAAAAMAAgAAAAMAAcAAAAMAAkAAAAMAAcAAAANAAIAAAAMAAcAAAANAAMAAAAMAAcAAAANAAQAAAAMAAcAAAANAAUAAAAMAAcAAAANAAYAAAAMAAcAAAANAAcAAAAMAAcAAAANAAgAAAAMAAcAAAANAAkAAAAMAAcAAAAOAAIAAAAMAAcAAAAOAAMAAAAMAAcAAAAOAAQAAAAMAAcAAAAOAAUAAAAMAAcAAAAOAAYAAAAMAAcAAAAOAAcAAAAMAAcAAAAOAAgAAAAMAAcAAAAOAAkAAAAMAAcAAAAPAAIAAAAMAAcAAAAPAAMAAAAMAAcAAAAPAAQAAAAMAAcAAAAPAAUAAAAMAAcAAAAPAAYAAAAMAAcAAAAPAAcAAAAMAAcAAAAPAAgAAAAMAAcAAAAPAAkAAAAMAAcAAAAQAAIAAAAMAAcAAAAQAAMAAAAMAAcAAAAQAAQAAAAMAAcAAAAQAAUAAAAMAAcAAAAQAAYAAAAMAAcAAAAQAAcAAAAMAAcAAAAQAAgAAAAMAAcAAAAQAAkAAAAMAAcAAAARAAIAAAAMAAcAAAARAAMAAAAMAAcAAAARAAQAAAAMAAcAAAARAAUAAAAMAAcAAAARAAYAAAAMAAcAAAARAAcAAAAMAAcAAAARAAgAAAAMAAcAAAARAAkAAAAMAAcAAAASAAIAAAAMAAcAAAASAAMAAAAMAAcAAAASAAQAAAAMAAcAAAASAAUAAAAMAAcAAAASAAYAAAAMAAcAAAASAAcAAAAMAAcAAAASAAgAAAAMAAcAAAASAAkAAAAMAAcAAAATAAIAAAAMAAcAAAATAAMAAAAMAAcAAAATAAQAAAAMAAcAAAATAAUAAAAMAAcAAAATAAYAAAAMAAcAAAATAAcAAAAMAAcAAAATAAgAAAAMAAcAAAATAAkAAAAMAAcAAAAAAAAAAAAMAAcAAAAAAAEAAAAMAAcAAAABAAAAAAAMAAcAAAABAAEAAAAMAAcAAAACAAAAAAAMAAcAAAACAAEAAAAMAAcAAAADAAAAAAAMAAcAAAADAAEAAAAMAAcAAAAEAAAAAAAMAAcAAAAEAAEAAAAMAAcAAAAFAAAAAAAMAAcAAAAFAAEAAAAMAAcAAAAGAAAAAAAMAAcAAAAGAAEAAAAMAAcAAAAHAAAAAAAMAAcAAAAHAAEAAAAMAAcAAAAIAAAAAAAMAAcAAAAIAAEAAAAMAAcAAAAJAAAAAAAMAAcAAAAJAAEAAAAMAAcAAAAKAAAAAAAMAAcAAAAKAAEAAAAMAAcAAAALAAAAAAAMAAcAAAALAAEAAAAMAAcAAAALAAMAAAAMAAcAAAALAAQAAAAMAAcAAAAMAAAAAAAMAAcAAAAMAAEAAAAMAAcAAAAMAAMAAAAMAAcAAAAMAAQAAAAMAAcAAAANAAAAAAAMAAcAAAANAAEAAAAMAAcAAAAOAAAAAAAMAAcAAAAOAAEAAAAMAAcAAAAPAAAAAAAMAAcAAAAPAAEAAAAMAAcAAAAQAAAAAAAMAAcAAAAQAAEAAAAMAAcAAAARAAAAAAAMAAcAAAARAAEAAAAMAAcAAAASAAAAAAAMAAcAAAASAAEAAAAMAAcAAAATAAAAAAAMAAcAAAATAAEAAAAMAAcAAAAAAAoAAAAMAAcAAAAAAAsAAAAMAAcAAAABAAoAAAAMAAcAAAABAAsAAAAMAAcAAAACAAoAAAAMAAcAAAACAAsAAAAMAAcAAAADAAoAAAAMAAcAAAADAAsAAAAMAAcAAAAEAAoAAAAMAAcAAAAEAAsAAAAMAAcAAAAAAAwAAAAMAAcAAAAAAA0AAAAMAAcAAAAAAA4AAAAMAAcAAAAAAA8AAAAMAAcAAAABAAwAAAAMAAcAAAABAA0AAAAMAAcAAAABAA4AAAAMAAcAAAABAA8AAAAMAAcAAAACAAwAAAAMAAcAAAACAA0AAAAMAAcAAAACAA4AAAAMAAcAAAACAA8AAAAMAAcAAAADAAwAAAAMAAcAAAADAA0AAAAMAAcAAAADAA4AAAAMAAcAAAADAA8AAAAMAAcAAAAEAAwAAAAMAAcAAAAEAA0AAAAMAAcAAAAEAA4AAAAMAAcAAAAEAA8AAAAMAAcAAAAAABAAAAAMAAcAAAAAABEAAAAMAAcAAAAAABIAAAAMAAcAAAAAABMAAAAMAAcAAAABABAAAAAMAAcAAAABABEAAAAMAAcAAAABABIAAAAMAAcAAAABABMAAAAMAAcAAAACABAAAAAMAAcAAAACABEAAAAMAAcAAAACABIAAAAMAAcAAAACABMAAAAMAAcAAAADABAAAAAMAAcAAAADABEAAAAMAAcAAAADABIAAAAMAAcAAAADABMAAAAMAAcAAAAEABAAAAAMAAcAAAAEABEAAAAMAAcAAAAEABIAAAAMAAcAAAAEABMAAAAMAAcAAAAFAAoAAAAMAAcAAAAFAAsAAAAMAAcAAAAGAAoAAAAMAAcAAAAGAAsAAAAMAAcAAAAHAAoAAAAMAAcAAAAHAAsAAAAMAAcAAAAIAAoAAAAMAAcAAAAIAAsAAAAMAAcAAAAJAAoAAAAMAAcAAAAJAAsAAAAMAAcAAAAKAAoAAAAMAAcAAAAKAAsAAAAMAAcAAAALAAoAAAAMAAcAAAALAAsAAAAMAAcAAAAMAAoAAAAMAAcAAAAMAAsAAAAMAAcAAAANAAoAAAAMAAcAAAANAAsAAAAMAAcAAAAOAAoAAAAMAAcAAAAOAAsAAAAMAAcAAAAPAAoAAAAMAAcAAAAPAAsAAAAMAAcAAAAQAAoAAAAMAAcAAAAQAAsAAAAMAAcAAAARAAoAAAAMAAcAAAARAAsAAAAMAAcAAAASAAoAAAAMAAcAAAASAAsAAAAMAAcAAAATAAoAAAAMAAcAAAATAAsAAAAMAAcAAAAFAAwAAAAMAAcAAAAFAA0AAAAMAAcAAAAFAA4AAAAMAAcAAAAFAA8AAAAMAAcAAAAGAAwAAAAMAAcAAAAGAA0AAAAMAAcAAAAGAA4AAAAMAAcAAAAGAA8AAAAMAAcAAAAHAAwAAAAMAAcAAAAHAA0AAAAMAAcAAAAHAA4AAAAMAAcAAAAHAA8AAAAMAAcAAAAIAAwAAAAMAAcAAAAIAA0AAAAMAAcAAAAIAA4AAAAMAAcAAAAIAA8AAAAMAAcAAAAJAAwAAAAMAAcAAAAJAA0AAAAMAAcAAAAJAA4AAAAMAAcAAAAJAA8AAAAMAAcAAAAKAAwAAAAMAAcAAAAKAA0AAAAMAAcAAAAKAA4AAAAMAAcAAAAKAA8AAAAMAAcAAAALAAwAAAAMAAcAAAALAA0AAAAMAAcAAAALAA4AAAAMAAcAAAALAA8AAAAMAAcAAAAMAAwAAAAMAAcAAAAMAA0AAAAMAAcAAAAMAA4AAAAMAAcAAAAMAA8AAAAMAAcAAAANAAwAAAAMAAcAAAANAA0AAAAMAAcAAAANAA4AAAAMAAcAAAANAA8AAAAMAAcAAAAOAAwAAAAMAAcAAAAOAA0AAAAMAAcAAAAOAA4AAAAMAAcAAAAOAA8AAAAMAAcAAAAPAAwAAAAMAAcAAAAPAA0AAAAMAAcAAAAPAA4AAAAMAAcAAAAPAA8AAAAMAAcAAAAQAAwAAAAMAAcAAAAQAA0AAAAMAAcAAAAQAA4AAAAMAAcAAAAQAA8AAAAMAAcAAAARAAwAAAAMAAcAAAARAA0AAAAMAAcAAAARAA4AAAAMAAcAAAARAA8AAAAMAAcAAAASAAwAAAAMAAcAAAASAA0AAAAMAAcAAAASAA4AAAAMAAcAAAASAA8AAAAMAAcAAAATAAwAAAAMAAcAAAATAA0AAAAMAAcAAAATAA4AAAAMAAcAAAATAA8AAAAMAAcAAAAFABAAAAAMAAcAAAAFABEAAAAMAAcAAAAFABIAAAAMAAcAAAAFABMAAAAMAAcAAAAGABAAAAAMAAcAAAAGABEAAAAMAAcAAAAGABIAAAAMAAcAAAAGABMAAAAMAAcAAAAHABAAAAAMAAcAAAAHABEAAAAMAAcAAAAHABIAAAAMAAcAAAAHABMAAAAMAAcAAAAIABAAAAAMAAcAAAAIABEAAAAMAAcAAAAIABIAAAAMAAcAAAAIABMAAAAMAAcAAAAJABAAAAAMAAcAAAAJABEAAAAMAAcAAAAJABIAAAAMAAcAAAAJABMAAAAMAAcAAAAKABAAAAAMAAcAAAAKABEAAAAMAAcAAAAKABIAAAAMAAcAAAAKABMAAAAMAAcAAAALABAAAAAMAAcAAAALABEAAAAMAAcAAAALABIAAAAMAAcAAAALABMAAAAMAAcAAAAMABAAAAAMAAcAAAAMABEAAAAMAAcAAAAMABIAAAAMAAcAAAAMABMAAAAMAAcAAAANABAAAAAMAAcAAAANABEAAAAMAAcAAAANABIAAAAMAAcAAAANABMAAAAMAAcAAAAOABAAAAAMAAcAAAAOABEAAAAMAAcAAAAOABIAAAAMAAcAAAAOABMAAAAMAAcAAAAPABAAAAAMAAcAAAAPABEAAAAMAAcAAAAPABIAAAAMAAcAAAAPABMAAAAMAAcAAAAQABAAAAAMAAcAAAAQABEAAAAMAAcAAAAQABIAAAAMAAcAAAAQABMAAAAMAAcAAAARABAAAAAMAAcAAAARABEAAAAMAAcAAAARABIAAAAMAAcAAAARABMAAAAMAAcAAAASABAAAAAMAAcAAAASABEAAAAMAAcAAAASABIAAAAMAAcAAAASABMAAAAMAAcAAAATABAAAAAMAAcAAAATABEAAAAMAAcAAAATABIAAAAMAAcAAAATABMAAAAMAAcAAAABABQAAAAMAAcAAAABABUAAAAMAAcAAAABABYAAAAMAAcAAAABABcAAAAMAAcAAAABABgAAAAMAAcAAAABABkAAAAMAAcAAAABABoAAAAMAAcAAAABABsAAAAMAAcAAAABABwAAAAMAAcAAAABAB0AAAAMAAcAAAACABQAAAAMAAcAAAACABUAAAAMAAcAAAACABYAAAAMAAcAAAACABcAAAAMAAcAAAACABgAAAAMAAcAAAACABkAAAAMAAcAAAACABoAAAAMAAcAAAACABsAAAAMAAcAAAACABwAAAAMAAcAAAACAB0AAAAMAAcAAAADABQAAAAMAAcAAAADABUAAAAMAAcAAAADABYAAAAMAAcAAAADABcAAAAMAAcAAAADABgAAAAMAAcAAAADABkAAAAMAAcAAAADABoAAAAMAAcAAAADABsAAAAMAAcAAAADABwAAAAMAAcAAAADAB0AAAAMAAcAAAAEABQAAAAMAAcAAAAEABUAAAAMAAcAAAAEABYAAAAMAAcAAAAEABcAAAAMAAcAAAAEABgAAAAMAAcAAAAEABkAAAAMAAcAAAAEABoAAAAMAAcAAAAEABsAAAAMAAcAAAAEABwAAAAMAAcAAAAEAB0AAAAMAAcAAAAFABQAAAAMAAcAAAAFABUAAAAMAAcAAAAFABYAAAAMAAcAAAAFABcAAAAMAAcAAAAFABgAAAAMAAcAAAAFABkAAAAMAAcAAAAFABoAAAAMAAcAAAAFABsAAAAMAAcAAAAFABwAAAAMAAcAAAAFAB0AAAAMAAcAAAAGABQAAAAMAAcAAAAGABUAAAAMAAcAAAAGABYAAAAMAAcAAAAGABcAAAAMAAcAAAAGABgAAAAMAAcAAAAGABkAAAAMAAcAAAAGABoAAAAMAAcAAAAGABsAAAAMAAcAAAAGABwAAAAMAAcAAAAGAB0AAAAMAAcAAAAHABQAAAAMAAcAAAAHABUAAAAMAAcAAAAHABYAAAAMAAcAAAAHABcAAAAMAAcAAAAHABgAAAAMAAcAAAAHABkAAAAMAAcAAAAHABoAAAAMAAcAAAAHABsAAAAMAAcAAAAHABwAAAAMAAcAAAAHAB0AAAAMAAcAAAAIABQAAAAMAAcAAAAIABUAAAAMAAcAAAAIABYAAAAMAAcAAAAIABcAAAAMAAcAAAAIABgAAAAMAAcAAAAIABkAAAAMAAcAAAAIABoAAAAMAAcAAAAIABsAAAAMAAcAAAAIABwAAAAMAAcAAAAIAB0AAAAMAAcAAAAJABQAAAAMAAcAAAAJABUAAAAMAAcAAAAJABYAAAAMAAcAAAAJABcAAAAMAAcAAAAJABgAAAAMAAcAAAAJABkAAAAMAAcAAAAJABoAAAAMAAcAAAAJABsAAAAMAAcAAAAJABwAAAAMAAcAAAAJAB0AAAAMAAcAAAAKABQAAAAMAAcAAAAKABUAAAAMAAcAAAAKABYAAAAMAAcAAAAKABcAAAAMAAcAAAAKABgAAAAMAAcAAAAKABkAAAAMAAcAAAAKABoAAAAMAAcAAAAKABsAAAAMAAcAAAAKABwAAAAMAAcAAAAKAB0AAAAMAAcAAAALABQAAAAMAAcAAAALABUAAAAMAAcAAAALABYAAAAMAAcAAAALABcAAAAMAAcAAAALABgAAAAMAAcAAAALABkAAAAMAAcAAAALABoAAAAMAAcAAAALABsAAAAMAAcAAAALABwAAAAMAAcAAAALAB0AAAAMAAcAAAAMABQAAAAMAAcAAAAMABUAAAAMAAcAAAAMABYAAAAMAAcAAAAMABcAAAAMAAcAAAAMABgAAAAMAAcAAAAMABkAAAAMAAcAAAAMABoAAAAMAAcAAAAMABsAAAAMAAcAAAAMABwAAAAMAAcAAAAMAB0AAAAMAAcAAAANABQAAAAMAAcAAAANABUAAAAMAAcAAAANABYAAAAMAAcAAAANABcAAAAMAAcAAAANABgAAAAMAAcAAAANABkAAAAMAAcAAAANABoAAAAMAAcAAAANABsAAAAMAAcAAAANABwAAAAMAAcAAAANAB0AAAAMAAcAAAAOABQAAAAMAAcAAAAOABUAAAAMAAcAAAAOABYAAAAMAAcAAAAOABcAAAAMAAcAAAAOABgAAAAMAAcAAAAOABkAAAAMAAcAAAAOABoAAAAMAAcAAAAOABsAAAAMAAcAAAAOABwAAAAMAAcAAAAOAB0AAAAMAAcAAAAPABQAAAAMAAcAAAAPABUAAAAMAAcAAAAPABYAAAAMAAcAAAAPABcAAAAMAAcAAAAPABgAAAAMAAcAAAAPABkAAAAMAAcAAAAPABoAAAAMAAcAAAAPABsAAAAMAAcAAAAPABwAAAAMAAcAAAAPAB0AAAAMAAcAAAAQABQAAAAMAAcAAAAQABUAAAAMAAcAAAAQABYAAAAMAAcAAAAQABcAAAAMAAcAAAAQABgAAAAMAAcAAAAQABkAAAAMAAcAAAAQABoAAAAMAAcAAAAQABsAAAAMAAcAAAAQABwAAAAMAAcAAAAQAB0AAAAMAAcAAAARABQAAAAMAAcAAAARABUAAAAMAAcAAAARABYAAAAMAAcAAAARABcAAAAMAAcAAAARABgAAAAMAAcAAAARABkAAAAMAAcAAAARABoAAAAMAAcAAAARABsAAAAMAAcAAAARABwAAAAMAAcAAAARAB0AAAAMAAcAAAASABQAAAAMAAcAAAASABUAAAAMAAcAAAASABYAAAAMAAcAAAASABcAAAAMAAcAAAASABgAAAAMAAcAAAASABkAAAAMAAcAAAASABoAAAAMAAcAAAASABsAAAAMAAcAAAASABwAAAAMAAcAAAASAB0AAAAMAAcAAAATABQAAAAMAAcAAAATABUAAAAMAAcAAAATABYAAAAMAAcAAAATABcAAAAMAAcAAAATABgAAAAMAAcAAAATABkAAAAMAAcAAAATABoAAAAMAAcAAAATABsAAAAMAAcAAAATABwAAAAMAAcAAAATAB0AAAAMAAcAAAAAABQAAAAMAAcAAAAAABUAAAAMAAcAAAAAABYAAAAMAAcAAAAAABcAAAAMAAcAAAAAABgAAAAMAAcAAAAAABkAAAAMAAcAAAAAABoAAAAMAAcAAAAAABsAAAAMAAcAAAAAABwAAAAMAAcAAAAAAB0AAAAMAAcAAAA=") +tile_set = ExtResource("5_bsrt7") +navigation_enabled = false +script = ExtResource("6_mr604") +_solidLayers = [NodePath("../Solid"), NodePath("../Props")] +metadata/_edit_lock_ = true + +[node name="Solid" type="TileMapLayer" parent="Tilemaps" groups=["Solid"]] +tile_map_data = PackedByteArray("AAATAAAAAAABAAsAAAASAAAAAAABAAQAAAARAAAAAAABAAQAAAAQAAAAAAABAAQAAAAPAAAAAAABAAQAAAAOAAAAAAABAAQAAAANAAAAAAABAAQAAAAMAAAAAAABAAQAAAALAAAAAAACAAQAAAAIAAAAAAADAAQAAAAHAAAAAAABAAQAAAAGAAAAAAABAAQAAAAFAAAAAAABAAQAAAAEAAAAAAABAAQAAAADAAAAAAABAAQAAAACAAAAAAABAAQAAAABAAAAAAABAAQAAAAAAAAAAAAAAAsAAAATAAIAAAAEAAQAAAATAAEAAAAAAAQAAAAAAAIAAAAEAAQAAAAAAAEAAAAAAAQAAAAAAAkAAAAEAAQAAAAAAAgAAAAAAAQAAAAAAAcAAAAAAAQAAAAAAAYAAAAFAAQAAAATAAkAAAAEAAQAAAATAAgAAAAAAAQAAAATAAcAAAAAAAQAAAATAAYAAAAFAAQAAAATAAMAAAAKAAgAAAATAAQAAAAKAAkAAAALAAEAAAAKAAgAAAALAAIAAAAKAAkAAAAMAAEAAAAKAAgAAAAMAAIAAAAKAAkAAAANAAEAAAAKAAgAAAANAAIAAAAKAAkAAAAOAAEAAAAKAAgAAAAOAAIAAAAKAAkAAAAPAAEAAAAKAAgAAAAPAAIAAAAKAAkAAAAQAAEAAAAKAAgAAAAQAAIAAAAKAAkAAAARAAEAAAAKAAgAAAARAAIAAAAKAAkAAAASAAEAAAAKAAgAAAASAAIAAAAKAAkAAAABAAEAAAAKAAgAAAABAAIAAAAKAAkAAAACAAEAAAAKAAgAAAACAAIAAAAKAAkAAAADAAEAAAAKAAgAAAADAAIAAAAKAAkAAAAEAAEAAAAKAAgAAAAEAAIAAAAKAAkAAAAFAAEAAAAKAAgAAAAFAAIAAAAKAAkAAAAGAAEAAAAKAAgAAAAGAAIAAAAKAAkAAAAHAAEAAAAKAAgAAAAHAAIAAAAKAAkAAAAIAAEAAAAKAAgAAAAIAAIAAAAKAAkAAAAAAAMAAAAKAAgAAAAAAAQAAAAKAAkAAAAAAAoAAAAFAAQAAAAAAAsAAAAAAAQAAAAAAAwAAAAEAAQAAAAAAA0AAAAKAAgAAAAAAA4AAAAKAAkAAAAAABAAAAAFAAQAAAAAABEAAAAAAAQAAAAAABIAAAAAAAQAAAAAABMAAAAAAAwAAAATAAoAAAAFAAQAAAATAAsAAAAAAAQAAAATAAwAAAAEAAQAAAATAA0AAAAKAAgAAAATAA4AAAAKAAkAAAATABAAAAAFAAQAAAATABEAAAAAAAQAAAATABIAAAAAAAQAAAATABMAAAABAAwAAAAAABQAAAAFAAQAAAAAABUAAAAAAAQAAAAAABYAAAAEAAQAAAAAABcAAAAKAAgAAAAAABgAAAAKAAkAAAAAABoAAAAFAAQAAAAAABsAAAAAAAQAAAAAABwAAAAAAAQAAAAAAB0AAAAAAAwAAAABAB0AAAABAAQAAAACAB0AAAABAAQAAAADAB0AAAABAAQAAAAEAB0AAAABAAQAAAAFAB0AAAABAAQAAAAGAB0AAAABAAQAAAAHAB0AAAABAAQAAAAIAB0AAAADAAQAAAALAB0AAAACAAQAAAAMAB0AAAABAAQAAAANAB0AAAABAAQAAAAOAB0AAAABAAQAAAAPAB0AAAABAAQAAAAQAB0AAAABAAQAAAARAB0AAAABAAQAAAASAB0AAAABAAQAAAATABQAAAAFAAQAAAATABUAAAAAAAQAAAATABYAAAAEAAQAAAATABcAAAAKAAgAAAATABgAAAAKAAkAAAATABoAAAAFAAQAAAATABsAAAAAAAQAAAATABwAAAAAAAQAAAATAB0AAAABAAwAAAA=") +tile_set = ExtResource("5_bsrt7") +navigation_enabled = false +metadata/_edit_lock_ = true + +[node name="Props" type="TileMapLayer" parent="Tilemaps" groups=["Solid"]] +tile_set = ExtResource("5_bsrt7") +navigation_enabled = false +metadata/_edit_lock_ = true + +[node name="Actors" type="Node2D" parent="Tilemaps"] +metadata/_edit_lock_ = true + +[node name="EnemySpawners" type="Node2D" parent="."] + +[node name="RogueliteEnemySpawner" type="Marker2D" parent="EnemySpawners"] +position = Vector2(57, 67) + +[node name="RogueliteEnemySpawner2" type="Marker2D" parent="EnemySpawners"] +position = Vector2(82, 185) + +[node name="RogueliteEnemySpawner3" type="Marker2D" parent="EnemySpawners"] +position = Vector2(261, 248) + +[node name="Doors" type="Node2D" parent="."] + +[node name="North" type="Marker2D" parent="Doors"] +position = Vector2(159, 23) +script = ExtResource("7_vcw48") + +[node name="South" type="Marker2D" parent="Doors"] +position = Vector2(158.671, 315.53) +script = ExtResource("7_vcw48") +Direction = 1 + +[node name="East" type="Marker2D" parent="Doors"] +position = Vector2(312, 87) +script = ExtResource("7_vcw48") +Direction = 2 + +[node name="East2" type="Marker2D" parent="Doors"] +position = Vector2(312.752, 247.02) +script = ExtResource("7_vcw48") +Direction = 2 +WallIndex = 1 + +[node name="West" type="Marker2D" parent="Doors"] +position = Vector2(8.1806, 87.7693) +script = ExtResource("7_vcw48") +Direction = 3 + +[node name="West2" type="Marker2D" parent="Doors"] +position = Vector2(9.12251, 246.487) +script = ExtResource("7_vcw48") +Direction = 3 +WallIndex = 1 + +[node name="NavigationRegion2D" type="NavigationRegion2D" parent="."] +navigation_polygon = SubResource("NavigationPolygon_rlq0q") +use_edge_connections = false diff --git a/Scripts/Controllers/RogueliteRoomManager.cs b/Scripts/Controllers/RogueliteRoomManager.cs index 44065eae..eb74d00b 100644 --- a/Scripts/Controllers/RogueliteRoomManager.cs +++ b/Scripts/Controllers/RogueliteRoomManager.cs @@ -125,7 +125,7 @@ public partial class RogueliteRoomManager : Node2D nextPos += new Vector2I(0, exit); _connections.Add(new RoomConnection(currentPos, nextPos)); - + //+ new Vector2I(0, roomToSpawn.Size.Y -1) // Reset X offset //nextPos = new Vector2I(0, nextPos.Y); diff --git a/Scripts/UI/Minimap.cs b/Scripts/UI/Minimap.cs index 3d2fe006..878d7a5d 100644 --- a/Scripts/UI/Minimap.cs +++ b/Scripts/UI/Minimap.cs @@ -97,28 +97,35 @@ public partial class Minimap : CanvasLayer private void DrawRoomConnections(List connections, Vector2I minGrid, Vector2 baseOffset) { + int spacing = (int)Separation; + foreach (var connection in connections) { // Skip if either room is missing if (!RoomGrid.ContainsKey(connection.From) || !RoomGrid.ContainsKey(connection.To)) continue; - - // // Calculate center positions of each room - // Vector2 from = baseOffset + ((connection.From - minGrid) * (CellSize + (int)Separation)) + new Vector2(CellSize / 2f, CellSize / 2f); - // Vector2 to = baseOffset + ((connection.To - minGrid) * (CellSize + (int)Separation)) + new Vector2(CellSize / 2f, Separation / 2f); - // Get relative positions of the two rooms - Vector2 fromPos = baseOffset + ((connection.From - minGrid) * (CellSize + (int)Separation)); - Vector2 toPos = baseOffset + ((connection.To - minGrid) * (CellSize + (int)Separation)); + // Convert grid coordinates to local minimap grid (relative to min) + Vector2I fromGrid = connection.From - minGrid; + Vector2I toGrid = connection.To - minGrid; - // Determine direction between rooms (assumes adjacent rooms only) - Vector2 delta = (toPos - fromPos).Normalized(); + // Center of the From cell in pixels + Vector2 fromCenter = baseOffset + + fromGrid * (CellSize + spacing) + + new Vector2(CellSize / 2f, CellSize / 2f); - // Midpoint between rooms, where the gap is - Vector2 gapCenter = (fromPos + toPos) * 0.5f + new Vector2(CellSize / 2f, CellSize / 2f); + // Center of the To cell in pixels + Vector2 toCenter = baseOffset + + toGrid * (CellSize + spacing) + + new Vector2(CellSize / 2f, CellSize / 2f); + + // The gap center between rooms + Vector2 gapCenter = (fromCenter + toCenter) * 0.5f; + + // Short line inside the separation gap + Vector2 delta = (toCenter - fromCenter).Normalized(); + Vector2 halfGap = delta * (spacing / 2f); - // Calculate endpoints of the connection line (centered in gap) - Vector2 halfGap = delta * (Separation / 2f); Vector2 lineStart = gapCenter - halfGap; Vector2 lineEnd = gapCenter + halfGap;