mirror of
https://gitlab.com/MaddoScientisto/cirnogodot.git
synced 2026-06-07 17:45:54 +00:00
room positioning and door generator
This commit is contained in:
parent
59f98ebf0e
commit
5bfffc22ad
19 changed files with 571 additions and 17 deletions
13
Resources/RogueliteMaps/Beginner1.tres
Normal file
13
Resources/RogueliteMaps/Beginner1.tres
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
[gd_resource type="Resource" script_class="RogueliteRoomResource" load_steps=2 format=3 uid="uid://dn3ai56rrxfnk"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bl2ne8w12e3a" path="res://Scripts/Resources/Roguelite/RogueliteRoomResource.cs" id="1_cyi2x"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_cyi2x")
|
||||
RoomName = &"Beginning Test 1"
|
||||
Type = 0
|
||||
ScenePath = &"uid://24wh7h2dbljf"
|
||||
Size = Vector2i(1, 1)
|
||||
DoorGridPositions = Array[Vector2i]([Vector2i(0, -1)])
|
||||
SpawnableEnemies = null
|
||||
metadata/_custom_type_script = "uid://bl2ne8w12e3a"
|
||||
17
Resources/RogueliteMaps/BigMap.tres
Normal file
17
Resources/RogueliteMaps/BigMap.tres
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
[gd_resource type="Resource" script_class="RogueliteRoomResource" load_steps=6 format=3 uid="uid://bv0mr43vcfrdh"]
|
||||
|
||||
[ext_resource type="Resource" uid="uid://cocl3qontm3be" path="res://Resources/Enemies/Base_Fairy.tres" id="1_772cf"]
|
||||
[ext_resource type="Resource" uid="uid://cqfyuurvqb8m6" path="res://Resources/Enemies/Base_Fairy_Special.tres" id="2_mabih"]
|
||||
[ext_resource type="Resource" uid="uid://qbo6avc7x64b" path="res://Resources/Enemies/Fairy_Guard.tres" id="3_lq7ck"]
|
||||
[ext_resource type="Resource" uid="uid://cfdvg162u65sr" path="res://Resources/Enemies/Thermathron.tres" id="4_xqyuw"]
|
||||
[ext_resource type="Script" uid="uid://bl2ne8w12e3a" path="res://Scripts/Resources/Roguelite/RogueliteRoomResource.cs" id="5_hvrt3"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("5_hvrt3")
|
||||
RoomName = &"Big Test"
|
||||
Type = 1
|
||||
ScenePath = &"uid://dngwjgs5bhnx7"
|
||||
Size = Vector2i(2, 2)
|
||||
DoorGridPositions = Array[Vector2i]([Vector2i(0, -1), Vector2i(0, 1), Vector2i(1, 0), Vector2i(-1, 0)])
|
||||
SpawnableEnemies = Array[Object]([ExtResource("1_772cf"), ExtResource("2_mabih"), ExtResource("3_lq7ck"), ExtResource("4_xqyuw")])
|
||||
metadata/_custom_type_script = "uid://bl2ne8w12e3a"
|
||||
17
Resources/RogueliteMaps/Boss1.tres
Normal file
17
Resources/RogueliteMaps/Boss1.tres
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
[gd_resource type="Resource" script_class="RogueliteRoomResource" load_steps=6 format=3 uid="uid://cgac12krx7vbf"]
|
||||
|
||||
[ext_resource type="Resource" uid="uid://cocl3qontm3be" path="res://Resources/Enemies/Base_Fairy.tres" id="1_j16nh"]
|
||||
[ext_resource type="Resource" uid="uid://cqfyuurvqb8m6" path="res://Resources/Enemies/Base_Fairy_Special.tres" id="2_dneml"]
|
||||
[ext_resource type="Resource" uid="uid://qbo6avc7x64b" path="res://Resources/Enemies/Fairy_Guard.tres" id="3_m2ese"]
|
||||
[ext_resource type="Resource" uid="uid://cfdvg162u65sr" path="res://Resources/Enemies/Thermathron.tres" id="4_fojtq"]
|
||||
[ext_resource type="Script" uid="uid://bl2ne8w12e3a" path="res://Scripts/Resources/Roguelite/RogueliteRoomResource.cs" id="5_2u7yj"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("5_2u7yj")
|
||||
RoomName = &"Boss"
|
||||
Type = 4
|
||||
ScenePath = &"uid://da7hmajaaiohm"
|
||||
Size = Vector2i(1, 1)
|
||||
DoorGridPositions = Array[Vector2i]([Vector2i(0, 1)])
|
||||
SpawnableEnemies = Array[Object]([ExtResource("1_j16nh"), ExtResource("2_dneml"), ExtResource("3_m2ese"), ExtResource("4_fojtq")])
|
||||
metadata/_custom_type_script = "uid://bl2ne8w12e3a"
|
||||
|
|
@ -9,7 +9,9 @@
|
|||
[resource]
|
||||
script = ExtResource("1_keg4c")
|
||||
RoomName = &"Test"
|
||||
Type = 1
|
||||
ScenePath = &"uid://da7hmajaaiohm"
|
||||
Size = Vector2(20, 10)
|
||||
Size = Vector2i(1, 1)
|
||||
DoorGridPositions = Array[Vector2i]([Vector2i(0, -1), Vector2i(0, 1), Vector2i(1, 0), Vector2i(-1, 0)])
|
||||
SpawnableEnemies = Array[Object]([ExtResource("1_qx515"), ExtResource("2_46i28"), ExtResource("3_g4rpe"), ExtResource("4_wvuta")])
|
||||
metadata/_custom_type_script = "uid://bl2ne8w12e3a"
|
||||
|
|
|
|||
|
|
@ -9,7 +9,9 @@
|
|||
[resource]
|
||||
script = ExtResource("5_myanx")
|
||||
RoomName = &"Test2"
|
||||
Type = 1
|
||||
ScenePath = &"uid://dcxrdhq1yw5c7"
|
||||
Size = Vector2(20, 10)
|
||||
Size = Vector2i(1, 1)
|
||||
DoorGridPositions = Array[Vector2i]([Vector2i(0, -1), Vector2i(0, 1), Vector2i(1, 0), Vector2i(-1, 0)])
|
||||
SpawnableEnemies = Array[Object]([ExtResource("1_1ns8k"), ExtResource("2_8dyfa"), ExtResource("3_3kq4c"), ExtResource("4_010mx")])
|
||||
metadata/_custom_type_script = "uid://bl2ne8w12e3a"
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
[gd_scene load_steps=14 format=3 uid="uid://bf1kqr3o6r6d4"]
|
||||
[gd_scene load_steps=17 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"]
|
||||
|
|
@ -6,7 +6,10 @@
|
|||
[ext_resource type="Script" uid="uid://bt2qjgnf1wc2r" path="res://Scripts/Controllers/RogueliteRoomManager.cs" id="4_jtlua"]
|
||||
[ext_resource type="Resource" uid="uid://b5x83li01qrav" path="res://Resources/RogueliteMaps/TestRGMap.tres" id="5_gwtv6"]
|
||||
[ext_resource type="Resource" uid="uid://ly8l7asedjpx" path="res://Resources/RogueliteMaps/TestRGMap2.tres" id="6_gwtv6"]
|
||||
[ext_resource type="Resource" uid="uid://dn3ai56rrxfnk" path="res://Resources/RogueliteMaps/Beginner1.tres" id="7_wbqvu"]
|
||||
[ext_resource type="Resource" uid="uid://cgac12krx7vbf" path="res://Resources/RogueliteMaps/Boss1.tres" id="8_3fyis"]
|
||||
[ext_resource type="Script" uid="uid://cfya7sndh7vy2" path="res://Scenes/CameraController.gd" id="8_y651a"]
|
||||
[ext_resource type="Resource" uid="uid://bv0mr43vcfrdh" path="res://Resources/RogueliteMaps/BigMap.tres" id="9_go1yg"]
|
||||
[ext_resource type="Script" uid="uid://c5nxsq3tyxcx6" path="res://Scripts/InventoryManager.cs" id="9_vhvs2"]
|
||||
[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"]
|
||||
|
|
@ -33,10 +36,11 @@ NavigationRegion = NodePath("NavigationRegion2D")
|
|||
[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")])
|
||||
Rooms = Array[Object]([ExtResource("5_gwtv6"), ExtResource("6_gwtv6"), ExtResource("7_wbqvu"), ExtResource("8_3fyis"), ExtResource("9_go1yg")])
|
||||
|
||||
[node name="CameraController" type="Camera2D" parent="."]
|
||||
process_mode = 1
|
||||
zoom = Vector2(0.2, 0.2)
|
||||
script = ExtResource("8_y651a")
|
||||
pixel_snap = false
|
||||
enable_smoothing = false
|
||||
|
|
@ -71,4 +75,4 @@ autoplay = true
|
|||
[node name="NavigationRegion2D" type="NavigationRegion2D" parent="."]
|
||||
navigation_polygon = SubResource("NavigationPolygon_jtlua")
|
||||
|
||||
[connection signal="ManagerReady" from="." to="Maps" method="SpawnRoomsGrid"]
|
||||
[connection signal="ManagerReady" from="." to="Maps" method="InitSpawning"]
|
||||
|
|
|
|||
59
Scenes/Maps/RogueliteMaps/Beginner1.tscn
Normal file
59
Scenes/Maps/RogueliteMaps/Beginner1.tscn
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
[gd_scene load_steps=7 format=4 uid="uid://24wh7h2dbljf"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://b2j00riayxkit" path="res://Scripts/Controllers/RogueliteRoom.cs" id="1_vhsym"]
|
||||
[ext_resource type="Resource" uid="uid://dn3ai56rrxfnk" path="res://Resources/RogueliteMaps/Beginner1.tres" id="2_vhsym"]
|
||||
[ext_resource type="PackedScene" uid="uid://l84on3kv2s52" path="res://Scenes/Door_Horizontal.tscn" id="3_pys6w"]
|
||||
[ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="3_u3c1h"]
|
||||
[ext_resource type="Script" uid="uid://krean0uywtms" path="res://Scripts/TilemapAvoidance.cs" id="4_pys6w"]
|
||||
[ext_resource type="Script" uid="uid://ddry5kjj3fr6c" path="res://Scripts/Controllers/DoorMarker.cs" id="5_mqiea"]
|
||||
|
||||
[node name="Tilemaps" type="Node2D"]
|
||||
process_mode = 1
|
||||
script = ExtResource("1_vhsym")
|
||||
RoomResource = ExtResource("2_vhsym")
|
||||
DoorPrefab = ExtResource("3_pys6w")
|
||||
|
||||
[node name="Floor" type="TileMapLayer" parent="." node_paths=PackedStringArray("_solidLayers") groups=["Solid"]]
|
||||
tile_map_data = PackedByteArray("AAAAAAIAAAAEAAAAAAAAAAMAAAAEAAAAAAAAAAQAAAAEAAAAAAAAAAUAAAAEAAAAAAAAAAYAAAAEAAAAAAAAAAcAAAAEAAAAAAAAAAgAAAAEAAAAAAAAAAkAAAAEAAAAAAABAAIAAAAEAAAAAAABAAMAAAAEAAAAAAABAAQAAAAEAAAAAAABAAUAAAAEAAAAAAABAAYAAAAEAAAAAAABAAcAAAAEAAAAAAABAAgAAAAEAAAAAAABAAkAAAAEAAAAAAACAAIAAAAEAAAAAAACAAMAAAAEAAAAAAACAAQAAAAFAAIAAAACAAUAAAAFAAIAAAACAAYAAAAFAAIAAAACAAcAAAAEAAAAAAACAAgAAAAFAAIAAAACAAkAAAAEAAAAAAADAAIAAAAEAAAAAAADAAMAAAAEAAAAAAADAAQAAAAFAAIAAAADAAUAAAAEAAAAAAADAAYAAAAFAAIAAAADAAcAAAAEAAAAAAADAAgAAAAFAAIAAAADAAkAAAAEAAAAAAAEAAIAAAAEAAAAAAAEAAMAAAAEAAAAAAAEAAQAAAAFAAIAAAAEAAUAAAAEAAAAAAAEAAYAAAAFAAIAAAAEAAcAAAAFAAIAAAAEAAgAAAAFAAIAAAAEAAkAAAAEAAAAAAAFAAIAAAAEAAAAAAAFAAMAAAAEAAAAAAAFAAQAAAAEAAAAAAAFAAUAAAAEAAAAAAAFAAYAAAAEAAAAAAAFAAcAAAAEAAAAAAAFAAgAAAAEAAAAAAAFAAkAAAAEAAAAAAAGAAIAAAAEAAAAAAAGAAMAAAAEAAAAAAAGAAQAAAAFAAIAAAAGAAUAAAAEAAAAAAAGAAYAAAAEAAAAAAAGAAcAAAAEAAAAAAAGAAgAAAAEAAAAAAAGAAkAAAAEAAAAAAAHAAIAAAAEAAAAAAAHAAMAAAAEAAAAAAAHAAQAAAAFAAIAAAAHAAUAAAAFAAIAAAAHAAYAAAAFAAIAAAAHAAcAAAAFAAIAAAAHAAgAAAAFAAIAAAAHAAkAAAAEAAAAAAAIAAIAAAAEAAAAAAAIAAMAAAAEAAAAAAAIAAQAAAAFAAIAAAAIAAUAAAAEAAAAAAAIAAYAAAAEAAAAAAAIAAcAAAAEAAAAAAAIAAgAAAAEAAAAAAAIAAkAAAAEAAAAAAAJAAIAAAAEAAAAAAAJAAMAAAAEAAAAAAAJAAQAAAAEAAAAAAAJAAUAAAAEAAAAAAAJAAYAAAAEAAAAAAAJAAcAAAAEAAAAAAAJAAgAAAAEAAAAAAAJAAkAAAAEAAAAAAAKAAIAAAAEAAAAAAAKAAMAAAAEAAAAAAAKAAQAAAAFAAIAAAAKAAUAAAAFAAIAAAAKAAYAAAAFAAIAAAAKAAcAAAAFAAIAAAAKAAgAAAAFAAIAAAAKAAkAAAAEAAAAAAALAAIAAAAEAAAAAAALAAUAAAAEAAAAAAALAAYAAAAFAAIAAAALAAcAAAAEAAAAAAALAAgAAAAEAAAAAAALAAkAAAAEAAAAAAAMAAIAAAAEAAAAAAAMAAUAAAAFAAIAAAAMAAYAAAAFAAIAAAAMAAcAAAAFAAIAAAAMAAgAAAAFAAIAAAAMAAkAAAAEAAAAAAANAAIAAAAEAAAAAAANAAMAAAAEAAAAAAANAAQAAAAEAAAAAAANAAUAAAAEAAAAAAANAAYAAAAEAAAAAAANAAcAAAAEAAAAAAANAAgAAAAEAAAAAAANAAkAAAAEAAAAAAAOAAIAAAAEAAAAAAAOAAMAAAAEAAAAAAAOAAQAAAAFAAIAAAAOAAUAAAAFAAIAAAAOAAYAAAAFAAIAAAAOAAcAAAAFAAIAAAAOAAgAAAAFAAIAAAAOAAkAAAAEAAAAAAAPAAIAAAAEAAAAAAAPAAMAAAAEAAAAAAAPAAQAAAAFAAIAAAAPAAUAAAAEAAAAAAAPAAYAAAAFAAIAAAAPAAcAAAAEAAAAAAAPAAgAAAAEAAAAAAAPAAkAAAAEAAAAAAAQAAIAAAAEAAAAAAAQAAMAAAAEAAAAAAAQAAQAAAAEAAAAAAAQAAUAAAAFAAIAAAAQAAYAAAAEAAAAAAAQAAcAAAAFAAIAAAAQAAgAAAAFAAIAAAAQAAkAAAAEAAAAAAARAAIAAAAEAAAAAAARAAMAAAAEAAAAAAARAAQAAAAEAAAAAAARAAUAAAAEAAAAAAARAAYAAAAEAAAAAAARAAcAAAAEAAAAAAARAAgAAAAEAAAAAAARAAkAAAAEAAAAAAASAAIAAAAEAAAAAAASAAMAAAAEAAAAAAASAAQAAAAFAAIAAAASAAUAAAAEAAAAAAASAAYAAAAEAAAAAAASAAcAAAAEAAAAAAASAAgAAAAEAAAAAAASAAkAAAAEAAAAAAATAAIAAAAEAAAAAAATAAMAAAAEAAAAAAATAAQAAAAEAAAAAAATAAUAAAAFAAIAAAATAAYAAAAEAAAAAAATAAcAAAAEAAAAAAATAAgAAAAEAAAAAAATAAkAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAEAAAAEAAAAAAABAAAAAAAEAAAAAAABAAEAAAAEAAAAAAACAAAAAAAEAAAAAAACAAEAAAAEAAAAAAADAAAAAAAEAAAAAAADAAEAAAAEAAAAAAAEAAAAAAAEAAAAAAAEAAEAAAAEAAAAAAAFAAAAAAAEAAAAAAAFAAEAAAAEAAAAAAAGAAAAAAAEAAAAAAAGAAEAAAAEAAAAAAAHAAAAAAAEAAAAAAAHAAEAAAAEAAAAAAAIAAAAAAAEAAAAAAAIAAEAAAAEAAAAAAAJAAAAAAAEAAAAAAAJAAEAAAAEAAAAAAAKAAAAAAAEAAAAAAAKAAEAAAAEAAAAAAALAAAAAAAEAAAAAAALAAEAAAAEAAAAAAALAAMAAAAEAAAAAAALAAQAAAAFAAIAAAAMAAAAAAAEAAAAAAAMAAEAAAAEAAAAAAAMAAMAAAAEAAAAAAAMAAQAAAAFAAIAAAANAAAAAAAEAAAAAAANAAEAAAAEAAAAAAAOAAAAAAAEAAAAAAAOAAEAAAAEAAAAAAAPAAAAAAAEAAAAAAAPAAEAAAAEAAAAAAAQAAAAAAAEAAAAAAAQAAEAAAAEAAAAAAARAAAAAAAEAAAAAAARAAEAAAAEAAAAAAASAAAAAAAEAAAAAAASAAEAAAAEAAAAAAATAAAAAAAEAAAAAAATAAEAAAAEAAAAAAA=")
|
||||
tile_set = ExtResource("3_u3c1h")
|
||||
navigation_enabled = false
|
||||
script = ExtResource("4_pys6w")
|
||||
_solidLayers = [NodePath("../Solid"), NodePath("../Props")]
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Solid" type="TileMapLayer" parent="." groups=["Solid"]]
|
||||
tile_map_data = PackedByteArray("AAATAAAAAAABAAsAAAASAAAAAAABAAQAAAARAAAAAAABAAQAAAAQAAAAAAABAAQAAAAPAAAAAAABAAQAAAAOAAAAAAABAAQAAAANAAAAAAABAAQAAAAMAAAAAAABAAQAAAALAAAAAAACAAQAAAAIAAAAAAADAAQAAAAHAAAAAAABAAQAAAAGAAAAAAABAAQAAAAFAAAAAAABAAQAAAAEAAAAAAABAAQAAAADAAAAAAABAAQAAAACAAAAAAABAAQAAAABAAAAAAABAAQAAAAAAAAAAAAAAAsAAAATAAIAAAAEAAQAAAATAAEAAAAAAAQAAAAAAAIAAAAEAAQAAAAAAAEAAAAAAAQAAAAAAAkAAAAAAAwAAAAAAAgAAAAAAAQAAAAAAAcAAAAAAAQAAAAAAAYAAAAFAAQAAAATAAkAAAABAAwAAAASAAkAAAABAAQAAAARAAkAAAABAAQAAAAQAAkAAAABAAQAAAAPAAkAAAABAAQAAAAOAAkAAAABAAQAAAANAAkAAAABAAQAAAAMAAkAAAABAAQAAAALAAkAAAACAAQAAAAIAAkAAAADAAQAAAAHAAkAAAABAAQAAAAGAAkAAAABAAQAAAAFAAkAAAABAAQAAAAEAAkAAAABAAQAAAADAAkAAAABAAQAAAACAAkAAAABAAQAAAABAAkAAAABAAQAAAATAAgAAAAAAAQAAAATAAcAAAAAAAQAAAATAAYAAAAFAAQAAAATAAMAAAAKAAgAAAATAAQAAAAKAAkAAAALAAEAAAAKAAgAAAALAAIAAAAKAAkAAAAMAAEAAAAKAAgAAAAMAAIAAAAKAAkAAAANAAEAAAAKAAgAAAANAAIAAAAKAAkAAAAOAAEAAAAKAAgAAAAOAAIAAAAKAAkAAAAPAAEAAAAKAAgAAAAPAAIAAAAKAAkAAAAQAAEAAAAKAAgAAAAQAAIAAAAKAAkAAAARAAEAAAAKAAgAAAARAAIAAAAKAAkAAAASAAEAAAAKAAgAAAASAAIAAAAKAAkAAAABAAEAAAAKAAgAAAABAAIAAAAKAAkAAAACAAEAAAAKAAgAAAACAAIAAAAKAAkAAAADAAEAAAAKAAgAAAADAAIAAAAKAAkAAAAEAAEAAAAKAAgAAAAEAAIAAAAKAAkAAAAFAAEAAAAKAAgAAAAFAAIAAAAKAAkAAAAGAAEAAAAKAAgAAAAGAAIAAAAKAAkAAAAHAAEAAAAKAAgAAAAHAAIAAAAKAAkAAAAIAAEAAAAKAAgAAAAIAAIAAAAKAAkAAAAAAAMAAAAKAAgAAAAAAAQAAAAKAAkAAAA=")
|
||||
tile_set = ExtResource("3_u3c1h")
|
||||
navigation_enabled = false
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Props" type="TileMapLayer" parent="." groups=["Solid"]]
|
||||
tile_set = ExtResource("3_u3c1h")
|
||||
navigation_enabled = false
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Actors" type="Node2D" parent="."]
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="EnemySpawners" type="Node2D" parent="."]
|
||||
|
||||
[node name="Doors" type="Node2D" parent="."]
|
||||
|
||||
[node name="North" type="Marker2D" parent="Doors"]
|
||||
position = Vector2(159, 23)
|
||||
script = ExtResource("5_mqiea")
|
||||
|
||||
[node name="South" type="Marker2D" parent="Doors"]
|
||||
position = Vector2(159.196, 149.348)
|
||||
script = ExtResource("5_mqiea")
|
||||
Direction = 1
|
||||
|
||||
[node name="East" type="Marker2D" parent="Doors"]
|
||||
position = Vector2(312, 87)
|
||||
script = ExtResource("5_mqiea")
|
||||
Direction = 2
|
||||
|
||||
[node name="West" type="Marker2D" parent="Doors"]
|
||||
position = Vector2(8.1806, 87.7693)
|
||||
script = ExtResource("5_mqiea")
|
||||
Direction = 3
|
||||
68
Scenes/Maps/RogueliteMaps/Boss1.tscn
Normal file
68
Scenes/Maps/RogueliteMaps/Boss1.tscn
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
[gd_scene load_steps=7 format=4 uid="uid://brytwc48xpj78"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://b2j00riayxkit" path="res://Scripts/Controllers/RogueliteRoom.cs" id="1_vm1u7"]
|
||||
[ext_resource type="Resource" uid="uid://cgac12krx7vbf" path="res://Resources/RogueliteMaps/Boss1.tres" id="2_vm1u7"]
|
||||
[ext_resource type="PackedScene" uid="uid://l84on3kv2s52" path="res://Scenes/Door_Horizontal.tscn" id="3_vo7cb"]
|
||||
[ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="3_wmvx8"]
|
||||
[ext_resource type="Script" uid="uid://krean0uywtms" path="res://Scripts/TilemapAvoidance.cs" id="4_vo7cb"]
|
||||
[ext_resource type="Script" uid="uid://ddry5kjj3fr6c" path="res://Scripts/Controllers/DoorMarker.cs" id="5_xjj1f"]
|
||||
|
||||
[node name="Tilemaps" type="Node2D"]
|
||||
process_mode = 1
|
||||
script = ExtResource("1_vm1u7")
|
||||
RoomResource = ExtResource("2_vm1u7")
|
||||
DoorPrefab = ExtResource("3_vo7cb")
|
||||
|
||||
[node name="Floor" type="TileMapLayer" parent="." node_paths=PackedStringArray("_solidLayers") groups=["Solid"]]
|
||||
tile_map_data = PackedByteArray("AAAAAAIAAAACAAAAAAAAAAMAAAACAAAAAAAAAAQAAAACAAAAAAAAAAUAAAACAAAAAAAAAAYAAAACAAAAAAAAAAcAAAACAAAAAAAAAAgAAAACAAAAAAAAAAkAAAACAAAAAAABAAIAAAACAAAAAAABAAMAAAACAAAAAAABAAQAAAACAAAAAAABAAUAAAACAAAAAAABAAYAAAACAAAAAAABAAcAAAACAAAAAAABAAgAAAACAAAAAAABAAkAAAACAAAAAAACAAIAAAACAAAAAAACAAMAAAACAAAAAAACAAQAAAAFAAIAAAACAAUAAAAFAAIAAAACAAYAAAAFAAIAAAACAAcAAAAFAAIAAAACAAgAAAAFAAIAAAACAAkAAAACAAAAAAADAAIAAAACAAAAAAADAAMAAAACAAAAAAADAAQAAAAFAAIAAAADAAUAAAACAAAAAAADAAYAAAAFAAIAAAADAAcAAAACAAAAAAADAAgAAAAFAAIAAAADAAkAAAACAAAAAAAEAAIAAAACAAAAAAAEAAMAAAACAAAAAAAEAAQAAAACAAAAAAAEAAUAAAAFAAIAAAAEAAYAAAACAAAAAAAEAAcAAAAFAAIAAAAEAAgAAAACAAAAAAAEAAkAAAACAAAAAAAFAAIAAAACAAAAAAAFAAMAAAACAAAAAAAFAAQAAAACAAAAAAAFAAUAAAACAAAAAAAFAAYAAAACAAAAAAAFAAcAAAACAAAAAAAFAAgAAAACAAAAAAAFAAkAAAACAAAAAAAGAAIAAAACAAAAAAAGAAMAAAACAAAAAAAGAAQAAAAFAAIAAAAGAAUAAAAFAAIAAAAGAAYAAAAFAAIAAAAGAAcAAAAFAAIAAAAGAAgAAAAFAAIAAAAGAAkAAAACAAAAAAAHAAIAAAACAAAAAAAHAAMAAAACAAAAAAAHAAQAAAAFAAIAAAAHAAUAAAACAAAAAAAHAAYAAAACAAAAAAAHAAcAAAACAAAAAAAHAAgAAAAFAAIAAAAHAAkAAAACAAAAAAAIAAIAAAACAAAAAAAIAAMAAAACAAAAAAAIAAQAAAAFAAIAAAAIAAUAAAAFAAIAAAAIAAYAAAAFAAIAAAAIAAcAAAAFAAIAAAAIAAgAAAAFAAIAAAAIAAkAAAACAAAAAAAJAAIAAAACAAAAAAAJAAMAAAACAAAAAAAJAAQAAAACAAAAAAAJAAUAAAACAAAAAAAJAAYAAAACAAAAAAAJAAcAAAACAAAAAAAJAAgAAAACAAAAAAAJAAkAAAACAAAAAAAKAAIAAAACAAAAAAAKAAMAAAACAAAAAAAKAAQAAAAFAAIAAAAKAAUAAAAFAAIAAAAKAAYAAAAFAAIAAAAKAAcAAAACAAAAAAAKAAgAAAAFAAIAAAAKAAkAAAACAAAAAAALAAIAAAACAAAAAAALAAUAAAACAAAAAAALAAYAAAAFAAIAAAALAAcAAAACAAAAAAALAAgAAAAFAAIAAAALAAkAAAACAAAAAAAMAAIAAAACAAAAAAAMAAUAAAACAAAAAAAMAAYAAAAFAAIAAAAMAAcAAAAFAAIAAAAMAAgAAAAFAAIAAAAMAAkAAAACAAAAAAANAAIAAAACAAAAAAANAAMAAAACAAAAAAANAAQAAAACAAAAAAANAAUAAAACAAAAAAANAAYAAAACAAAAAAANAAcAAAACAAAAAAANAAgAAAACAAAAAAANAAkAAAACAAAAAAAOAAIAAAACAAAAAAAOAAMAAAACAAAAAAAOAAQAAAAFAAIAAAAOAAUAAAAFAAIAAAAOAAYAAAAFAAIAAAAOAAcAAAACAAAAAAAOAAgAAAAFAAIAAAAOAAkAAAACAAAAAAAPAAIAAAACAAAAAAAPAAMAAAACAAAAAAAPAAQAAAAFAAIAAAAPAAUAAAACAAAAAAAPAAYAAAAFAAIAAAAPAAcAAAACAAAAAAAPAAgAAAAFAAIAAAAPAAkAAAACAAAAAAAQAAIAAAACAAAAAAAQAAMAAAACAAAAAAAQAAQAAAAFAAIAAAAQAAUAAAACAAAAAAAQAAYAAAAFAAIAAAAQAAcAAAAFAAIAAAAQAAgAAAAFAAIAAAAQAAkAAAACAAAAAAARAAIAAAACAAAAAAARAAMAAAACAAAAAAARAAQAAAACAAAAAAARAAUAAAACAAAAAAARAAYAAAACAAAAAAARAAcAAAACAAAAAAARAAgAAAACAAAAAAARAAkAAAACAAAAAAASAAIAAAACAAAAAAASAAMAAAACAAAAAAASAAQAAAACAAAAAAASAAUAAAACAAAAAAASAAYAAAACAAAAAAASAAcAAAACAAAAAAASAAgAAAACAAAAAAASAAkAAAACAAAAAAATAAIAAAACAAAAAAATAAMAAAACAAAAAAATAAQAAAACAAAAAAATAAUAAAACAAAAAAATAAYAAAACAAAAAAATAAcAAAACAAAAAAATAAgAAAACAAAAAAATAAkAAAACAAAAAAAAAAAAAAACAAAAAAAAAAEAAAACAAAAAAABAAAAAAACAAAAAAABAAEAAAACAAAAAAACAAAAAAACAAAAAAACAAEAAAACAAAAAAADAAAAAAACAAAAAAADAAEAAAACAAAAAAAEAAAAAAACAAAAAAAEAAEAAAACAAAAAAAFAAAAAAACAAAAAAAFAAEAAAACAAAAAAAGAAAAAAACAAAAAAAGAAEAAAACAAAAAAAHAAAAAAACAAAAAAAHAAEAAAACAAAAAAAIAAAAAAACAAAAAAAIAAEAAAACAAAAAAAJAAAAAAACAAAAAAAJAAEAAAACAAAAAAAKAAAAAAACAAAAAAAKAAEAAAACAAAAAAALAAAAAAACAAAAAAALAAEAAAACAAAAAAALAAMAAAACAAAAAAALAAQAAAAFAAIAAAAMAAAAAAACAAAAAAAMAAEAAAACAAAAAAAMAAMAAAACAAAAAAAMAAQAAAAFAAIAAAANAAAAAAACAAAAAAANAAEAAAACAAAAAAAOAAAAAAACAAAAAAAOAAEAAAACAAAAAAAPAAAAAAACAAAAAAAPAAEAAAACAAAAAAAQAAAAAAACAAAAAAAQAAEAAAACAAAAAAARAAAAAAACAAAAAAARAAEAAAACAAAAAAASAAAAAAACAAAAAAASAAEAAAACAAAAAAATAAAAAAACAAAAAAATAAEAAAACAAAAAAA=")
|
||||
tile_set = ExtResource("3_wmvx8")
|
||||
navigation_enabled = false
|
||||
script = ExtResource("4_vo7cb")
|
||||
_solidLayers = [NodePath("../Solid"), NodePath("../Props")]
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Solid" type="TileMapLayer" parent="." groups=["Solid"]]
|
||||
tile_map_data = PackedByteArray("AAATAAAAAAABAAsAAAASAAAAAAABAAQAAAARAAAAAAABAAQAAAAQAAAAAAABAAQAAAAPAAAAAAABAAQAAAAOAAAAAAABAAQAAAANAAAAAAABAAQAAAAMAAAAAAABAAQAAAALAAAAAAACAAQAAAAIAAAAAAADAAQAAAAHAAAAAAABAAQAAAAGAAAAAAABAAQAAAAFAAAAAAABAAQAAAAEAAAAAAABAAQAAAADAAAAAAABAAQAAAACAAAAAAABAAQAAAABAAAAAAABAAQAAAAAAAAAAAAAAAsAAAATAAIAAAAEAAQAAAATAAEAAAAAAAQAAAAAAAIAAAAEAAQAAAAAAAEAAAAAAAQAAAAAAAkAAAAAAAwAAAAAAAgAAAAAAAQAAAAAAAcAAAAAAAQAAAAAAAYAAAAFAAQAAAATAAkAAAABAAwAAAASAAkAAAABAAQAAAARAAkAAAABAAQAAAAQAAkAAAABAAQAAAAPAAkAAAABAAQAAAAOAAkAAAABAAQAAAANAAkAAAABAAQAAAAMAAkAAAABAAQAAAALAAkAAAACAAQAAAAIAAkAAAADAAQAAAAHAAkAAAABAAQAAAAGAAkAAAABAAQAAAAFAAkAAAABAAQAAAAEAAkAAAABAAQAAAADAAkAAAABAAQAAAACAAkAAAABAAQAAAABAAkAAAABAAQAAAATAAgAAAAAAAQAAAATAAcAAAAAAAQAAAATAAYAAAAFAAQAAAATAAMAAAALAAAAAAATAAQAAAALAAEAAAALAAEAAAALAAAAAAALAAIAAAALAAEAAAAMAAEAAAALAAAAAAAMAAIAAAALAAEAAAANAAEAAAALAAAAAAANAAIAAAALAAEAAAAOAAEAAAALAAAAAAAOAAIAAAALAAEAAAAPAAEAAAALAAAAAAAPAAIAAAALAAEAAAAQAAEAAAALAAAAAAAQAAIAAAALAAEAAAARAAEAAAALAAAAAAARAAIAAAALAAEAAAASAAEAAAALAAAAAAASAAIAAAALAAEAAAABAAEAAAALAAAAAAABAAIAAAALAAEAAAACAAEAAAALAAAAAAACAAIAAAALAAEAAAADAAEAAAALAAAAAAADAAIAAAALAAEAAAAEAAEAAAALAAAAAAAEAAIAAAALAAEAAAAFAAEAAAALAAAAAAAFAAIAAAALAAEAAAAGAAEAAAALAAAAAAAGAAIAAAALAAEAAAAHAAEAAAALAAAAAAAHAAIAAAALAAEAAAAIAAEAAAALAAAAAAAIAAIAAAALAAEAAAAAAAMAAAALAAAAAAAAAAQAAAALAAEAAAA=")
|
||||
tile_set = ExtResource("3_wmvx8")
|
||||
navigation_enabled = false
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Props" type="TileMapLayer" parent="." groups=["Solid"]]
|
||||
tile_set = ExtResource("3_wmvx8")
|
||||
navigation_enabled = false
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Actors" type="Node2D" parent="."]
|
||||
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(88, 126)
|
||||
|
||||
[node name="RogueliteEnemySpawner3" type="Marker2D" parent="EnemySpawners"]
|
||||
position = Vector2(266, 122)
|
||||
|
||||
[node name="Doors" type="Node2D" parent="."]
|
||||
|
||||
[node name="North" type="Marker2D" parent="Doors"]
|
||||
position = Vector2(159, 23)
|
||||
script = ExtResource("5_xjj1f")
|
||||
|
||||
[node name="South" type="Marker2D" parent="Doors"]
|
||||
position = Vector2(159.196, 149.348)
|
||||
script = ExtResource("5_xjj1f")
|
||||
Direction = 1
|
||||
|
||||
[node name="East" type="Marker2D" parent="Doors"]
|
||||
position = Vector2(312, 87)
|
||||
script = ExtResource("5_xjj1f")
|
||||
Direction = 2
|
||||
|
||||
[node name="West" type="Marker2D" parent="Doors"]
|
||||
position = Vector2(8.1806, 87.7693)
|
||||
script = ExtResource("5_xjj1f")
|
||||
Direction = 3
|
||||
|
|
@ -1,14 +1,17 @@
|
|||
[gd_scene load_steps=5 format=4 uid="uid://da7hmajaaiohm"]
|
||||
[gd_scene load_steps=7 format=4 uid="uid://da7hmajaaiohm"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://b2j00riayxkit" path="res://Scripts/Controllers/RogueliteRoom.cs" id="1_dm6kf"]
|
||||
[ext_resource type="Resource" uid="uid://b5x83li01qrav" path="res://Resources/RogueliteMaps/TestRGMap.tres" id="2_5s4nm"]
|
||||
[ext_resource type="PackedScene" uid="uid://l84on3kv2s52" path="res://Scenes/Door_Horizontal.tscn" id="3_sid7o"]
|
||||
[ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="5_q5p8k"]
|
||||
[ext_resource type="Script" uid="uid://krean0uywtms" path="res://Scripts/TilemapAvoidance.cs" id="6_81nvh"]
|
||||
[ext_resource type="Script" uid="uid://ddry5kjj3fr6c" path="res://Scripts/Controllers/DoorMarker.cs" id="6_b5lqw"]
|
||||
|
||||
[node name="Tilemaps" type="Node2D"]
|
||||
process_mode = 1
|
||||
script = ExtResource("1_dm6kf")
|
||||
RoomResource = ExtResource("2_5s4nm")
|
||||
DoorPrefab = ExtResource("3_sid7o")
|
||||
|
||||
[node name="Floor" type="TileMapLayer" parent="." node_paths=PackedStringArray("_solidLayers") groups=["Solid"]]
|
||||
tile_map_data = PackedByteArray("AAAAAAIAAAAEAAIAAAAAAAMAAAAEAAIAAAAAAAQAAAAEAAIAAAAAAAUAAAAEAAIAAAAAAAYAAAAEAAIAAAAAAAcAAAAEAAIAAAAAAAgAAAAEAAIAAAAAAAkAAAAEAAIAAAABAAIAAAAEAAIAAAABAAMAAAAEAAIAAAABAAQAAAAEAAIAAAABAAUAAAAEAAIAAAABAAYAAAAEAAIAAAABAAcAAAAEAAIAAAABAAgAAAAEAAIAAAABAAkAAAAEAAIAAAACAAIAAAAEAAIAAAACAAMAAAAEAAIAAAACAAQAAAAEAAIAAAACAAUAAAAEAAIAAAACAAYAAAAEAAIAAAACAAcAAAAEAAIAAAACAAgAAAAEAAIAAAACAAkAAAAEAAIAAAADAAIAAAAEAAIAAAADAAMAAAAEAAIAAAADAAQAAAAEAAIAAAADAAUAAAAEAAIAAAADAAYAAAAEAAIAAAADAAcAAAAEAAIAAAADAAgAAAAEAAIAAAADAAkAAAAEAAIAAAAEAAIAAAAEAAIAAAAEAAMAAAAEAAIAAAAEAAQAAAAEAAIAAAAEAAUAAAAEAAIAAAAEAAYAAAAEAAIAAAAEAAcAAAAEAAIAAAAEAAgAAAAEAAIAAAAEAAkAAAAEAAIAAAAFAAIAAAAEAAIAAAAFAAMAAAAEAAIAAAAFAAQAAAAEAAIAAAAFAAUAAAAEAAIAAAAFAAYAAAAEAAIAAAAFAAcAAAAEAAIAAAAFAAgAAAAEAAIAAAAFAAkAAAAEAAIAAAAGAAIAAAAEAAIAAAAGAAMAAAAEAAIAAAAGAAQAAAAEAAIAAAAGAAUAAAAEAAIAAAAGAAYAAAAEAAIAAAAGAAcAAAAEAAIAAAAGAAgAAAAEAAIAAAAGAAkAAAAEAAIAAAAHAAIAAAAEAAIAAAAHAAMAAAAEAAIAAAAHAAQAAAAEAAIAAAAHAAUAAAAEAAIAAAAHAAYAAAAEAAIAAAAHAAcAAAAEAAIAAAAHAAgAAAAEAAIAAAAHAAkAAAAEAAIAAAAIAAIAAAAEAAIAAAAIAAMAAAAEAAIAAAAIAAQAAAAEAAIAAAAIAAUAAAAEAAIAAAAIAAYAAAAEAAIAAAAIAAcAAAAEAAIAAAAIAAgAAAAEAAIAAAAIAAkAAAAEAAIAAAAJAAIAAAAEAAIAAAAJAAMAAAAEAAIAAAAJAAQAAAAEAAIAAAAJAAUAAAAEAAIAAAAJAAYAAAAEAAIAAAAJAAcAAAAEAAIAAAAJAAgAAAAEAAIAAAAJAAkAAAAEAAIAAAAKAAIAAAAEAAIAAAAKAAMAAAAEAAIAAAAKAAQAAAAEAAIAAAAKAAUAAAAEAAIAAAAKAAYAAAAEAAIAAAAKAAcAAAAEAAIAAAAKAAgAAAAEAAIAAAAKAAkAAAAEAAIAAAALAAIAAAAEAAIAAAALAAUAAAAEAAIAAAALAAYAAAAEAAIAAAALAAcAAAAEAAIAAAALAAgAAAAEAAIAAAALAAkAAAAEAAIAAAAMAAIAAAAEAAIAAAAMAAUAAAAEAAIAAAAMAAYAAAAEAAIAAAAMAAcAAAAEAAIAAAAMAAgAAAAEAAIAAAAMAAkAAAAEAAIAAAANAAIAAAAEAAIAAAANAAMAAAAEAAIAAAANAAQAAAAEAAIAAAANAAUAAAAEAAIAAAANAAYAAAAEAAIAAAANAAcAAAAEAAIAAAANAAgAAAAEAAIAAAANAAkAAAAEAAIAAAAOAAIAAAAEAAIAAAAOAAMAAAAEAAIAAAAOAAQAAAAEAAIAAAAOAAUAAAAEAAIAAAAOAAYAAAAEAAIAAAAOAAcAAAAEAAIAAAAOAAgAAAAEAAIAAAAOAAkAAAAEAAIAAAAPAAIAAAAEAAIAAAAPAAMAAAAEAAIAAAAPAAQAAAAEAAIAAAAPAAUAAAAEAAIAAAAPAAYAAAAEAAIAAAAPAAcAAAAEAAIAAAAPAAgAAAAEAAIAAAAPAAkAAAAEAAIAAAAQAAIAAAAEAAIAAAAQAAMAAAAEAAIAAAAQAAQAAAAEAAIAAAAQAAUAAAAEAAIAAAAQAAYAAAAEAAIAAAAQAAcAAAAEAAIAAAAQAAgAAAAEAAIAAAAQAAkAAAAEAAIAAAARAAIAAAAEAAIAAAARAAMAAAAEAAIAAAARAAQAAAAEAAIAAAARAAUAAAAEAAIAAAARAAYAAAAEAAIAAAARAAcAAAAEAAIAAAARAAgAAAAEAAIAAAARAAkAAAAEAAIAAAASAAIAAAAEAAIAAAASAAMAAAAEAAIAAAASAAQAAAAEAAIAAAASAAUAAAAEAAIAAAASAAYAAAAEAAIAAAASAAcAAAAEAAIAAAASAAgAAAAEAAIAAAASAAkAAAAEAAIAAAATAAIAAAAEAAIAAAATAAMAAAAEAAIAAAATAAQAAAAEAAIAAAATAAUAAAAEAAIAAAATAAYAAAAEAAIAAAATAAcAAAAEAAIAAAATAAgAAAAEAAIAAAATAAkAAAAEAAIAAAAAAAAAAAAEAAIAAAAAAAEAAAAEAAIAAAABAAAAAAAEAAIAAAABAAEAAAAEAAIAAAACAAAAAAAEAAIAAAACAAEAAAAEAAIAAAADAAAAAAAEAAIAAAADAAEAAAAEAAIAAAAEAAAAAAAEAAIAAAAEAAEAAAAEAAIAAAAFAAAAAAAEAAIAAAAFAAEAAAAEAAIAAAAGAAAAAAAEAAIAAAAGAAEAAAAEAAIAAAAHAAAAAAAEAAIAAAAHAAEAAAAEAAIAAAAIAAAAAAAEAAIAAAAIAAEAAAAEAAIAAAAJAAAAAAAEAAIAAAAJAAEAAAAEAAIAAAAKAAAAAAAEAAIAAAAKAAEAAAAEAAIAAAALAAAAAAAEAAIAAAALAAEAAAAEAAIAAAALAAMAAAAEAAIAAAALAAQAAAAEAAIAAAAMAAAAAAAEAAIAAAAMAAEAAAAEAAIAAAAMAAMAAAAEAAIAAAAMAAQAAAAEAAIAAAANAAAAAAAEAAIAAAANAAEAAAAEAAIAAAAOAAAAAAAEAAIAAAAOAAEAAAAEAAIAAAAPAAAAAAAEAAIAAAAPAAEAAAAEAAIAAAAQAAAAAAAEAAIAAAAQAAEAAAAEAAIAAAARAAAAAAAEAAIAAAARAAEAAAAEAAIAAAASAAAAAAAEAAIAAAASAAEAAAAEAAIAAAATAAAAAAAEAAIAAAATAAEAAAAEAAIAAAA=")
|
||||
|
|
@ -44,3 +47,22 @@ position = Vector2(88, 126)
|
|||
position = Vector2(266, 122)
|
||||
|
||||
[node name="Doors" type="Node2D" parent="."]
|
||||
|
||||
[node name="North" type="Marker2D" parent="Doors"]
|
||||
position = Vector2(159, 23)
|
||||
script = ExtResource("6_b5lqw")
|
||||
|
||||
[node name="South" type="Marker2D" parent="Doors"]
|
||||
position = Vector2(159.196, 149.348)
|
||||
script = ExtResource("6_b5lqw")
|
||||
Direction = 1
|
||||
|
||||
[node name="East" type="Marker2D" parent="Doors"]
|
||||
position = Vector2(312, 87)
|
||||
script = ExtResource("6_b5lqw")
|
||||
Direction = 2
|
||||
|
||||
[node name="West" type="Marker2D" parent="Doors"]
|
||||
position = Vector2(8.1806, 87.7693)
|
||||
script = ExtResource("6_b5lqw")
|
||||
Direction = 3
|
||||
|
|
|
|||
|
|
@ -1,14 +1,17 @@
|
|||
[gd_scene load_steps=5 format=4 uid="uid://dcxrdhq1yw5c7"]
|
||||
[gd_scene load_steps=7 format=4 uid="uid://dcxrdhq1yw5c7"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://b2j00riayxkit" path="res://Scripts/Controllers/RogueliteRoom.cs" id="1_cak6m"]
|
||||
[ext_resource type="Resource" uid="uid://ly8l7asedjpx" path="res://Resources/RogueliteMaps/TestRGMap2.tres" id="2_cak6m"]
|
||||
[ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="3_f7qjl"]
|
||||
[ext_resource type="PackedScene" uid="uid://l84on3kv2s52" path="res://Scenes/Door_Horizontal.tscn" id="3_wtdf1"]
|
||||
[ext_resource type="Script" uid="uid://krean0uywtms" path="res://Scripts/TilemapAvoidance.cs" id="4_wtdf1"]
|
||||
[ext_resource type="Script" uid="uid://ddry5kjj3fr6c" path="res://Scripts/Controllers/DoorMarker.cs" id="5_2djm0"]
|
||||
|
||||
[node name="Tilemaps" type="Node2D"]
|
||||
process_mode = 1
|
||||
script = ExtResource("1_cak6m")
|
||||
RoomResource = ExtResource("2_cak6m")
|
||||
DoorPrefab = ExtResource("3_wtdf1")
|
||||
|
||||
[node name="Floor" type="TileMapLayer" parent="." node_paths=PackedStringArray("_solidLayers") groups=["Solid"]]
|
||||
tile_map_data = PackedByteArray("AAAAAAIAAAAFAAAAAAAAAAMAAAAFAAAAAAAAAAQAAAAFAAAAAAAAAAUAAAAFAAAAAAAAAAYAAAAFAAAAAAAAAAcAAAAFAAAAAAAAAAgAAAAFAAAAAAAAAAkAAAAFAAAAAAABAAIAAAAFAAAAAAABAAMAAAAFAAAAAAABAAQAAAAFAAAAAAABAAUAAAAFAAAAAAABAAYAAAAFAAAAAAABAAcAAAAFAAAAAAABAAgAAAAFAAAAAAABAAkAAAAFAAAAAAACAAIAAAAFAAAAAAACAAMAAAAFAAAAAAACAAQAAAAFAAAAAAACAAUAAAAFAAAAAAACAAYAAAAFAAAAAAACAAcAAAAFAAAAAAACAAgAAAAFAAAAAAACAAkAAAAFAAAAAAADAAIAAAAFAAAAAAADAAMAAAAFAAAAAAADAAQAAAAFAAAAAAADAAUAAAAFAAAAAAADAAYAAAAFAAAAAAADAAcAAAAFAAAAAAADAAgAAAAFAAAAAAADAAkAAAAFAAAAAAAEAAIAAAAFAAAAAAAEAAMAAAAFAAAAAAAEAAQAAAAFAAAAAAAEAAUAAAAFAAAAAAAEAAYAAAAFAAAAAAAEAAcAAAAFAAAAAAAEAAgAAAAFAAAAAAAEAAkAAAAFAAAAAAAFAAIAAAAFAAAAAAAFAAMAAAAFAAAAAAAFAAQAAAAFAAAAAAAFAAUAAAAFAAAAAAAFAAYAAAAFAAAAAAAFAAcAAAAFAAAAAAAFAAgAAAAFAAAAAAAFAAkAAAAFAAAAAAAGAAIAAAAFAAAAAAAGAAMAAAAFAAAAAAAGAAQAAAAFAAAAAAAGAAUAAAAFAAAAAAAGAAYAAAAFAAAAAAAGAAcAAAAFAAAAAAAGAAgAAAAFAAAAAAAGAAkAAAAFAAAAAAAHAAIAAAAFAAAAAAAHAAMAAAAFAAAAAAAHAAQAAAAFAAAAAAAHAAUAAAAFAAAAAAAHAAYAAAAFAAAAAAAHAAcAAAAFAAAAAAAHAAgAAAAFAAAAAAAHAAkAAAAFAAAAAAAIAAIAAAAFAAAAAAAIAAMAAAAFAAAAAAAIAAQAAAAFAAAAAAAIAAUAAAAFAAAAAAAIAAYAAAAFAAAAAAAIAAcAAAAFAAAAAAAIAAgAAAAFAAAAAAAIAAkAAAAFAAAAAAAJAAIAAAAFAAAAAAAJAAMAAAAFAAAAAAAJAAQAAAAFAAAAAAAJAAgAAAAFAAAAAAAJAAkAAAAFAAAAAAAKAAIAAAAFAAAAAAAKAAMAAAAFAAAAAAAKAAQAAAAFAAAAAAAKAAgAAAAFAAAAAAAKAAkAAAAFAAAAAAALAAIAAAAFAAAAAAALAAUAAAAFAAAAAAALAAYAAAAFAAAAAAALAAcAAAAFAAAAAAALAAgAAAAFAAAAAAALAAkAAAAFAAAAAAAMAAIAAAAFAAAAAAAMAAUAAAAFAAAAAAAMAAYAAAAFAAAAAAAMAAcAAAAFAAAAAAAMAAgAAAAFAAAAAAAMAAkAAAAFAAAAAAANAAIAAAAFAAAAAAANAAMAAAAFAAAAAAANAAQAAAAFAAAAAAANAAUAAAAFAAAAAAANAAYAAAAFAAAAAAANAAcAAAAFAAAAAAANAAgAAAAFAAAAAAANAAkAAAAFAAAAAAAOAAIAAAAFAAAAAAAOAAMAAAAFAAAAAAAOAAQAAAAFAAAAAAAOAAUAAAAFAAAAAAAOAAYAAAAFAAAAAAAOAAcAAAAFAAAAAAAOAAgAAAAFAAAAAAAOAAkAAAAFAAAAAAAPAAIAAAAFAAAAAAAPAAMAAAAFAAAAAAAPAAQAAAAFAAAAAAAPAAUAAAAFAAAAAAAPAAYAAAAFAAAAAAAPAAcAAAAFAAAAAAAPAAgAAAAFAAAAAAAPAAkAAAAFAAAAAAAQAAIAAAAFAAAAAAAQAAMAAAAFAAAAAAAQAAQAAAAFAAAAAAAQAAUAAAAFAAAAAAAQAAYAAAAFAAAAAAAQAAcAAAAFAAAAAAAQAAgAAAAFAAAAAAAQAAkAAAAFAAAAAAARAAIAAAAFAAAAAAARAAMAAAAFAAAAAAARAAQAAAAFAAAAAAARAAUAAAAFAAAAAAARAAYAAAAFAAAAAAARAAcAAAAFAAAAAAARAAgAAAAFAAAAAAARAAkAAAAFAAAAAAASAAIAAAAFAAAAAAASAAMAAAAFAAAAAAASAAQAAAAFAAAAAAASAAUAAAAFAAAAAAASAAYAAAAFAAAAAAASAAcAAAAFAAAAAAASAAgAAAAFAAAAAAASAAkAAAAFAAAAAAATAAIAAAAFAAAAAAATAAMAAAAFAAAAAAATAAQAAAAFAAAAAAATAAUAAAAFAAAAAAATAAYAAAAFAAAAAAATAAcAAAAFAAAAAAATAAgAAAAFAAAAAAATAAkAAAAFAAAAAAAAAAAAAAAFAAAAAAAAAAEAAAAFAAAAAAABAAAAAAAFAAAAAAABAAEAAAAFAAAAAAACAAAAAAAFAAAAAAACAAEAAAAFAAAAAAADAAAAAAAFAAAAAAADAAEAAAAFAAAAAAAEAAAAAAAFAAAAAAAEAAEAAAAFAAAAAAAFAAAAAAAFAAAAAAAFAAEAAAAFAAAAAAAGAAAAAAAFAAAAAAAGAAEAAAAFAAAAAAAHAAAAAAAFAAAAAAAHAAEAAAAFAAAAAAAIAAAAAAAFAAAAAAAIAAEAAAAFAAAAAAAJAAAAAAAFAAAAAAAJAAEAAAAFAAAAAAAKAAAAAAAFAAAAAAAKAAEAAAAFAAAAAAALAAAAAAAFAAAAAAALAAEAAAAFAAAAAAALAAMAAAAFAAAAAAALAAQAAAAFAAAAAAAMAAAAAAAFAAAAAAAMAAEAAAAFAAAAAAAMAAMAAAAFAAAAAAAMAAQAAAAFAAAAAAANAAAAAAAFAAAAAAANAAEAAAAFAAAAAAAOAAAAAAAFAAAAAAAOAAEAAAAFAAAAAAAPAAAAAAAFAAAAAAAPAAEAAAAFAAAAAAAQAAAAAAAFAAAAAAAQAAEAAAAFAAAAAAARAAAAAAAFAAAAAAARAAEAAAAFAAAAAAASAAAAAAAFAAAAAAASAAEAAAAFAAAAAAATAAAAAAAFAAAAAAATAAEAAAAFAAAAAAAJAAUAAAAFAAAAAAAJAAYAAAAFAAAAAAAJAAcAAAAFAAAAAAAKAAUAAAAFAAAAAAAKAAYAAAAFAAAAAAAKAAcAAAAFAAAAAAA=")
|
||||
|
|
@ -45,3 +48,22 @@ position = Vector2(233, 63)
|
|||
position = Vector2(266, 122)
|
||||
|
||||
[node name="Doors" type="Node2D" parent="."]
|
||||
|
||||
[node name="North" type="Marker2D" parent="Doors"]
|
||||
position = Vector2(159, 23)
|
||||
script = ExtResource("5_2djm0")
|
||||
|
||||
[node name="South" type="Marker2D" parent="Doors"]
|
||||
position = Vector2(159.196, 149.348)
|
||||
script = ExtResource("5_2djm0")
|
||||
Direction = 1
|
||||
|
||||
[node name="East" type="Marker2D" parent="Doors"]
|
||||
position = Vector2(312, 87)
|
||||
script = ExtResource("5_2djm0")
|
||||
Direction = 2
|
||||
|
||||
[node name="West" type="Marker2D" parent="Doors"]
|
||||
position = Vector2(8.1806, 87.7693)
|
||||
script = ExtResource("5_2djm0")
|
||||
Direction = 3
|
||||
|
|
|
|||
91
Scenes/Maps/RogueliteMaps/RgBig.tscn
Normal file
91
Scenes/Maps/RogueliteMaps/RgBig.tscn
Normal file
File diff suppressed because one or more lines are too long
38
Scripts/Controllers/DoorMarker.cs
Normal file
38
Scripts/Controllers/DoorMarker.cs
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
using Godot;
|
||||
|
||||
namespace Cirno.Scripts.Controllers;
|
||||
|
||||
// [Tool]
|
||||
public partial class DoorMarker : Marker2D
|
||||
{
|
||||
[Export] public RoomDirection Direction { get; set; } = RoomDirection.North;
|
||||
[Export] public int WallIndex { get; set; } = 0; // Useful if there are multiple along a wall
|
||||
|
||||
public Vector2I GetWorldDirection()
|
||||
{
|
||||
return Direction switch
|
||||
{
|
||||
RoomDirection.North => new Vector2I(0, -1),
|
||||
RoomDirection.South => new Vector2I(0, 1),
|
||||
RoomDirection.East => new Vector2I(1, 0),
|
||||
RoomDirection.West => new Vector2I(-1, 0),
|
||||
_ => Vector2I.Zero
|
||||
};
|
||||
}
|
||||
|
||||
// public override void _Draw()
|
||||
// {
|
||||
// if (!Engine.IsEditorHint()) return;
|
||||
//
|
||||
// DrawLine(Vector2.Zero, Vector2.Up * 16, Colors.Orange, 2);
|
||||
// DrawString(GetFont("font", "Label"), new Vector2(10, -10), Direction.ToString(), HAlign.Left);
|
||||
// }
|
||||
}
|
||||
|
||||
public enum RoomDirection
|
||||
{
|
||||
North,
|
||||
South,
|
||||
East,
|
||||
West
|
||||
}
|
||||
1
Scripts/Controllers/DoorMarker.cs.uid
Normal file
1
Scripts/Controllers/DoorMarker.cs.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://ddry5kjj3fr6c
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
using System.Linq;
|
||||
using System;
|
||||
using System.Linq;
|
||||
using Cirno.Scripts.Resources;
|
||||
using Cirno.Scripts.Resources.Roguelite;
|
||||
using Godot;
|
||||
|
|
@ -9,11 +10,74 @@ namespace Cirno.Scripts.Controllers;
|
|||
public partial class RogueliteRoom : Node2D
|
||||
{
|
||||
[Export] public RogueliteRoomResource RoomResource { get; set; }
|
||||
|
||||
public Vector2I GridPosition { get; set; } // Set by dungeon manager
|
||||
|
||||
[Export] public PackedScene DoorPrefab { get; private set; }
|
||||
|
||||
private static readonly Dictionary<string, Vector2I> DirectionMap = new()
|
||||
{
|
||||
{ "North", new Vector2I(0, -1) },
|
||||
{ "South", new Vector2I(0, 1) },
|
||||
{ "East", new Vector2I(1, 0) },
|
||||
{ "West", new Vector2I(-1, 0) },
|
||||
};
|
||||
|
||||
private Array<EnemyResource> SpawnableEnemies => RoomResource.SpawnableEnemies;
|
||||
|
||||
public void Spawn()
|
||||
public RogueliteRoom Spawn(Func<Vector2I, bool> connectionChecker)
|
||||
{
|
||||
SpawnEnemies();
|
||||
HandleDoors(connectionChecker);
|
||||
return this;
|
||||
}
|
||||
|
||||
private void HandleDoors(Func<Vector2I, bool> connectionChecker)
|
||||
{
|
||||
if (!HasNode("Doors")) return;
|
||||
var doorsNode = GetNode("Doors");
|
||||
|
||||
foreach (Node child in doorsNode.GetChildren())
|
||||
{
|
||||
if (child is not DoorMarker marker) continue;
|
||||
|
||||
var baseDir = marker.GetWorldDirection();
|
||||
|
||||
// WallIndex determines the offset *along* the edge of the room
|
||||
Vector2I offset = marker.Direction switch
|
||||
{
|
||||
RoomDirection.North or RoomDirection.South => new Vector2I(marker.WallIndex, 0),
|
||||
RoomDirection.East or RoomDirection.West => new Vector2I(0, marker.WallIndex),
|
||||
_ => Vector2I.Zero
|
||||
};
|
||||
|
||||
// Combine GridPosition + offset to locate where this door aligns
|
||||
Vector2I doorEdge = GridPosition + offset;
|
||||
Vector2I neighborPos = doorEdge + baseDir;
|
||||
|
||||
bool connected = connectionChecker.Invoke(neighborPos);
|
||||
|
||||
if (!connected) continue;
|
||||
|
||||
var door = this.CreateChild<Door>(DoorPrefab, marker.GlobalPosition);
|
||||
|
||||
door.State = DoorState.Open;
|
||||
|
||||
// PackedScene prefab = hasConnection
|
||||
// ? GD.Load<PackedScene>("res://Prefabs/Door.tscn")
|
||||
// : GD.Load<PackedScene>("res://Prefabs/Wall.tscn");
|
||||
//
|
||||
// var instance = prefab.Instantiate<Node2D>();
|
||||
// AddChild(instance);
|
||||
// instance.GlobalPosition = ((Node2D)child).GlobalPosition;
|
||||
// instance.Rotation = ((Node2D)child).GlobalRotation;
|
||||
}
|
||||
}
|
||||
|
||||
private void SpawnEnemies()
|
||||
{
|
||||
if (SpawnableEnemies is null || !SpawnableEnemies.Any()) return;
|
||||
|
||||
var enemySpawners = this.GetNode("EnemySpawners").GetChildren().Cast<Marker2D>();
|
||||
|
||||
foreach (var spawner in enemySpawners)
|
||||
|
|
@ -26,6 +90,5 @@ public partial class RogueliteRoom : Node2D
|
|||
var enemyScene = GD.Load<PackedScene>(e.PrefabPath);
|
||||
var spawnedEnemy = spawner.CreateChild<Node2D>(enemyScene);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +1,6 @@
|
|||
using System.Linq;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Cirno.Scripts.Enums;
|
||||
using Cirno.Scripts.Resources.Roguelite;
|
||||
using Godot;
|
||||
using Godot.Collections;
|
||||
|
|
@ -10,13 +12,27 @@ public partial class RogueliteRoomManager : Node2D
|
|||
[Export] public Array<RogueliteRoomResource> Rooms { get; set; }
|
||||
|
||||
[Export] public Node2D SceneContainer { get; set; }
|
||||
|
||||
private Godot.Collections.Dictionary<Vector2I, RogueliteRoomResource> _grid = new();
|
||||
[Export] public int DungeonWidth = 10;
|
||||
[Export] public int DungeonHeight = 10;
|
||||
[Export] public int MaxRooms = 12;
|
||||
//[Export] public int Seed = -1;
|
||||
|
||||
[Export] public Vector2I TileSize { get; set; } = new Vector2I(16, 16);
|
||||
[Export] public Vector2I RoomSizeInTiles { get; set; } = new Vector2I(20, 10);
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
// Spawn first room
|
||||
|
||||
}
|
||||
|
||||
public void InitSpawning()
|
||||
{
|
||||
SpawnRoomsBinaryTree();
|
||||
}
|
||||
|
||||
private void SpawnRoomsGrid()
|
||||
{
|
||||
//var firstRoom = Rooms.FirstOrDefault();
|
||||
|
|
@ -30,12 +46,70 @@ public partial class RogueliteRoomManager : Node2D
|
|||
{
|
||||
var roomIndex = GD.RandRange(0, Rooms.Count - 1);
|
||||
var room = Rooms[roomIndex];
|
||||
SpawnRoom(room, origin + (room.Size * new Vector2(i, j) * tileSize));
|
||||
//SpawnRoom(room, origin + (room.Size * new Vector2(i, j) * tileSize));
|
||||
}
|
||||
}
|
||||
|
||||
//CallDeferred(MethodName.RebakeNavigationDeferred);
|
||||
}
|
||||
|
||||
private void SpawnRoomsBinaryTree()
|
||||
{
|
||||
var directions = new List<Vector2I>
|
||||
{
|
||||
new Vector2I(0, -1), // North
|
||||
new Vector2I(0, 1), // South
|
||||
new Vector2I(1, 0), // East
|
||||
new Vector2I(-1, 0), // West
|
||||
};
|
||||
|
||||
var origin = Vector2I.Zero;
|
||||
var tileSize = new Vector2(16, 16);
|
||||
var gridRoomSizeInTiles = new Vector2(20, 10);
|
||||
|
||||
var starterRooms = Rooms.Where(x => x.Type is RoomType.Starter).ToList();
|
||||
var regularRooms = Rooms.Where(x => x.Type == RoomType.Regular).ToList();
|
||||
|
||||
var starterRoom = starterRooms[GD.RandRange(0, starterRooms.Count - 1)];
|
||||
|
||||
var spawnedStartRoom = SpawnRoom(starterRoom, origin);
|
||||
MarkRoom(origin, starterRoom.Size, starterRoom);
|
||||
|
||||
Queue<(Vector2I Position, RogueliteRoomResource Room)> queue = new();
|
||||
queue.Enqueue((origin, starterRoom));
|
||||
|
||||
int spawnedRoomCount = 1;
|
||||
|
||||
while (spawnedRoomCount < MaxRooms && queue.Count > 0)
|
||||
{
|
||||
var (currentPos, currentRoom) = queue.Dequeue();
|
||||
|
||||
foreach (var dir in directions)
|
||||
{
|
||||
var offsetPos = currentPos + dir;
|
||||
|
||||
// Avoid placing rooms in occupied space
|
||||
if (_grid.ContainsKey(offsetPos)) continue;
|
||||
|
||||
var nextRoom = regularRooms[GD.RandRange(0, regularRooms.Count - 1)];
|
||||
var roomSize = nextRoom.Size;
|
||||
|
||||
// Multi-tile room placement validation
|
||||
if (!CanPlaceRoom(offsetPos, roomSize)) continue;
|
||||
|
||||
SpawnRoom(nextRoom, offsetPos);
|
||||
MarkRoom(offsetPos, roomSize, nextRoom);
|
||||
queue.Enqueue((offsetPos, nextRoom));
|
||||
spawnedRoomCount++;
|
||||
|
||||
if (spawnedRoomCount >= MaxRooms)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//SpawnSpecialRooms(rng);
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void RebakeNavigationDeferred()
|
||||
|
|
@ -43,12 +117,46 @@ public partial class RogueliteRoomManager : Node2D
|
|||
GameManager.Instance.RebakeNavigation();
|
||||
}
|
||||
|
||||
private void SpawnRoom(RogueliteRoomResource room, Vector2 position)
|
||||
private RogueliteRoom SpawnRoom(RogueliteRoomResource room, Vector2I gridPos)
|
||||
{
|
||||
var roomScene = GD.Load<PackedScene>(room.ScenePath);
|
||||
var position = gridPos * TileSize * RoomSizeInTiles;
|
||||
|
||||
var roomScene = GD.Load<PackedScene>(room.ScenePath);
|
||||
var spawnedScene = this.CreateChild<RogueliteRoom>(roomScene, position);
|
||||
|
||||
spawnedScene.Spawn();
|
||||
// for reference
|
||||
//SpawnRoom(room, origin + (room.Size * new Vector2(i, j) * tileSize));
|
||||
|
||||
return spawnedScene.Spawn(CheckConnection);
|
||||
}
|
||||
|
||||
private bool CheckConnection(Vector2I pos)
|
||||
{
|
||||
return _grid.ContainsKey(pos); // <- this is your dungeon grid dictionary
|
||||
}
|
||||
|
||||
private bool CanPlaceRoom(Vector2I origin, Vector2I size)
|
||||
{
|
||||
for (int x = 0; x < size.X; x++)
|
||||
{
|
||||
for (int y = 0; y < size.Y; y++)
|
||||
{
|
||||
var pos = origin + new Vector2I(x, y);
|
||||
if (_grid.ContainsKey(pos)) return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private void MarkRoom(Vector2I origin, Vector2I size, RogueliteRoomResource room)
|
||||
{
|
||||
for (int x = 0; x < size.X; x++)
|
||||
{
|
||||
for (int y = 0; y < size.Y; y++)
|
||||
{
|
||||
var pos = origin + new Vector2I(x, y);
|
||||
_grid[pos] = room;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
12
Scripts/Enums/DoorDirections.cs
Normal file
12
Scripts/Enums/DoorDirections.cs
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
using System;
|
||||
|
||||
namespace Cirno.Scripts.Enums;
|
||||
|
||||
[Flags]
|
||||
public enum DoorDirections
|
||||
{
|
||||
North = 1 << 1,
|
||||
South = 1 << 2,
|
||||
East = 1 << 3,
|
||||
West = 1 << 4,
|
||||
}
|
||||
10
Scripts/Enums/RoomType.cs
Normal file
10
Scripts/Enums/RoomType.cs
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
namespace Cirno.Scripts.Enums;
|
||||
|
||||
public enum RoomType
|
||||
{
|
||||
Starter,
|
||||
Regular,
|
||||
Secret,
|
||||
Shop,
|
||||
Boss
|
||||
}
|
||||
1
Scripts/Enums/RoomType.cs.uid
Normal file
1
Scripts/Enums/RoomType.cs.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://bt7u3v4hlqmsd
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
using Godot;
|
||||
using Cirno.Scripts.Enums;
|
||||
using Godot;
|
||||
using Godot.Collections;
|
||||
|
||||
namespace Cirno.Scripts.Resources.Roguelite;
|
||||
|
|
@ -7,8 +8,11 @@ namespace Cirno.Scripts.Resources.Roguelite;
|
|||
public partial class RogueliteRoomResource : Resource
|
||||
{
|
||||
[Export] public StringName RoomName { get; set; }
|
||||
[Export] public RoomType Type { get; set; } = RoomType.Regular;
|
||||
[Export] public StringName ScenePath { get; set; }
|
||||
[Export] public Vector2 Size { get; set; } = new(20, 10);
|
||||
[Export] public Vector2I Size { get; set; } = new(1, 1);
|
||||
|
||||
[Export] public Array<Vector2I> DoorGridPositions { get; set; } = [];
|
||||
|
||||
[Export] public Array<EnemyResource> SpawnableEnemies { get; set; }
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue