mirror of
https://gitlab.com/MaddoScientisto/cirnogodot.git
synced 2026-06-22 19:43:55 +00:00
Locked Doors
This commit is contained in:
parent
e62b539a1e
commit
e25da0fe16
20 changed files with 318 additions and 61 deletions
25
Resources/Items/Generic_Keycard.tres
Normal file
25
Resources/Items/Generic_Keycard.tres
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
[gd_resource type="Resource" script_class="LootItem" load_steps=4 format=3 uid="uid://oa8s6xydriib"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://liwkh6rv1m41" path="res://Sprites/Items/GrayKeycard_Small.png" id="1_2nnia"]
|
||||||
|
[ext_resource type="Script" uid="uid://epnwjptvks3t" path="res://Scripts/Resources/LootItem.cs" id="2_munhl"]
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_munhl"]
|
||||||
|
atlas = ExtResource("1_2nnia")
|
||||||
|
region = Rect2(0, 0, 16, 16)
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
script = ExtResource("2_munhl")
|
||||||
|
ItemName = &"Generic Keycard"
|
||||||
|
ShortName = null
|
||||||
|
ItemDescription = &"Activates Gray KeyPads"
|
||||||
|
ItemKey = &"GRAY_KEY"
|
||||||
|
Item = 1
|
||||||
|
Amount = 1
|
||||||
|
Max = 99
|
||||||
|
PickupIfMaxed = false
|
||||||
|
ConsumeOnUse = true
|
||||||
|
UiType = 1
|
||||||
|
Selectable = false
|
||||||
|
AutoPickup = false
|
||||||
|
InventorySprite = SubResource("AtlasTexture_munhl")
|
||||||
|
DropScenePath = &"res://Scenes/Items/Blue_Keycard.tscn"
|
||||||
39
Resources/RogueliteMaps/Factory_Theme.tres
Normal file
39
Resources/RogueliteMaps/Factory_Theme.tres
Normal file
|
|
@ -0,0 +1,39 @@
|
||||||
|
[gd_resource type="Resource" script_class="RogueliteMapTheme" load_steps=27 format=3 uid="uid://cw6868vuvuynh"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://bwtif3if3ea0u" path="res://Scripts/Resources/RogueliteMapTheme.cs" id="1_2rtdw"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://db5dwj6nqo8fn" path="res://Scenes/Interactable/control_pad_gray_keycard.tscn" id="1_w43eq"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://l84on3kv2s52" path="res://Scenes/Door_Horizontal.tscn" id="2_y7x1u"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bs6o3htusgyjl" path="res://Scenes/Door_Horizontal_Hidden.tscn" id="3_sdu6a"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://mtn26qwp4yqy" path="res://Scenes/Items/Gray_Keycard.tscn" id="4_qjf5s"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bc64lr3vlwchq" path="res://Scenes/Door_Vertical.tscn" id="5_mt0fe"]
|
||||||
|
[ext_resource type="Resource" uid="uid://b5x83li01qrav" path="res://Resources/RogueliteMaps/TestRGMap.tres" id="5_sludw"]
|
||||||
|
[ext_resource type="Resource" uid="uid://ly8l7asedjpx" path="res://Resources/RogueliteMaps/TestRGMap2.tres" id="6_b3pjl"]
|
||||||
|
[ext_resource type="Resource" uid="uid://dn3ai56rrxfnk" path="res://Resources/RogueliteMaps/Beginner1.tres" id="7_nil27"]
|
||||||
|
[ext_resource type="Resource" uid="uid://cgac12krx7vbf" path="res://Resources/RogueliteMaps/Boss1.tres" id="8_pmfuo"]
|
||||||
|
[ext_resource type="Resource" uid="uid://bv0mr43vcfrdh" path="res://Resources/RogueliteMaps/BigMap.tres" id="9_0lwa1"]
|
||||||
|
[ext_resource type="Resource" uid="uid://ryfk7g1wqypk" path="res://Resources/RogueliteMaps/TestRGMapLong.tres" id="10_03ih2"]
|
||||||
|
[ext_resource type="Resource" uid="uid://cjtcksew0qy6d" path="res://Resources/RogueliteMaps/TestRGMapLarge.tres" id="11_modrh"]
|
||||||
|
[ext_resource type="Resource" uid="uid://cmgiqsmujujss" path="res://Resources/RogueliteMaps/TestMapLongX3.tres" id="12_exyjy"]
|
||||||
|
[ext_resource type="Resource" uid="uid://n6nb5yco60gi" path="res://Resources/RogueliteMaps/BigLarge.tres" id="13_2j670"]
|
||||||
|
[ext_resource type="Resource" uid="uid://do11fodskgasi" path="res://Resources/RogueliteMaps/RGTestRoom1.tres" id="14_rjphh"]
|
||||||
|
[ext_resource type="Resource" uid="uid://cur433g6oevmd" path="res://Resources/RogueliteMaps/RGLongAcidWalk.tres" id="15_2gg5d"]
|
||||||
|
[ext_resource type="Resource" uid="uid://cc53bb6th33hi" path="res://Resources/RogueliteMaps/RGHorizontal1x1.tres" id="16_402ix"]
|
||||||
|
[ext_resource type="Resource" uid="uid://bew4cuec4pbms" path="res://Resources/RogueliteMaps/KeyRoom1.tres" id="17_52l5g"]
|
||||||
|
[ext_resource type="Resource" uid="uid://cwtma7mxged8a" path="res://Resources/RogueliteMaps/ShopRoom1.tres" id="18_gh41q"]
|
||||||
|
[ext_resource type="Resource" uid="uid://crqgvauqarfaq" path="res://Resources/RogueliteMaps/TreasureRoom1.tres" id="19_bn1n6"]
|
||||||
|
[ext_resource type="Resource" uid="uid://bo4efv7rwowuh" path="res://Resources/RogueliteMaps/SecretRoom1.tres" id="20_0on7r"]
|
||||||
|
[ext_resource type="Resource" uid="uid://cb7gk278lmicd" path="res://Resources/RogueliteMaps/Lab2x1_1.tres" id="21_m2nxl"]
|
||||||
|
[ext_resource type="Resource" uid="uid://char0yv78vtty" path="res://Resources/RogueliteMaps/BigTest2.tres" id="22_ae3bb"]
|
||||||
|
[ext_resource type="Resource" uid="uid://bxvv82vno8ub1" path="res://Resources/RogueliteMaps/1x1_1.tres" id="23_p3lfl"]
|
||||||
|
[ext_resource type="Resource" uid="uid://d01146n5uo0gd" path="res://Resources/RogueliteMaps/1x2_1.tres" id="24_tsgja"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
script = ExtResource("1_2rtdw")
|
||||||
|
HorizontalDoorPrefab = ExtResource("2_y7x1u")
|
||||||
|
HorizontalWallPrefab = ExtResource("3_sdu6a")
|
||||||
|
VerticalDoorPrefab = ExtResource("5_mt0fe")
|
||||||
|
VerticalWallPrefab = ExtResource("5_mt0fe")
|
||||||
|
DoorLockPrefab = ExtResource("1_w43eq")
|
||||||
|
KeyCardPrefab = ExtResource("4_qjf5s")
|
||||||
|
Rooms = Array[Object]([ExtResource("5_sludw"), ExtResource("6_b3pjl"), ExtResource("7_nil27"), ExtResource("8_pmfuo"), ExtResource("9_0lwa1"), ExtResource("10_03ih2"), ExtResource("11_modrh"), ExtResource("12_exyjy"), ExtResource("13_2j670"), ExtResource("14_rjphh"), ExtResource("15_2gg5d"), ExtResource("16_402ix"), ExtResource("17_52l5g"), ExtResource("18_gh41q"), ExtResource("19_bn1n6"), ExtResource("20_0on7r"), ExtResource("23_p3lfl"), ExtResource("24_tsgja"), ExtResource("21_m2nxl"), ExtResource("22_ae3bb")])
|
||||||
|
metadata/_custom_type_script = "uid://bwtif3if3ea0u"
|
||||||
52
Scenes/Interactable/control_pad_gray_keycard.tscn
Normal file
52
Scenes/Interactable/control_pad_gray_keycard.tscn
Normal file
|
|
@ -0,0 +1,52 @@
|
||||||
|
[gd_scene load_steps=10 format=3 uid="uid://db5dwj6nqo8fn"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://6n7duf35c52l" path="res://Scripts/Interactables/RogueliteDoorLock.cs" id="1_jm4yx"]
|
||||||
|
[ext_resource type="Resource" uid="uid://oa8s6xydriib" path="res://Resources/Items/Generic_Keycard.tres" id="3_q2yjn"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://c1hcyxn2og2kq" path="res://Sprites/Actors/Key_Reader.png" id="4_bkia3"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dsf7jj36mk0xp" path="res://Sprites/Actors/KeyReaderOverlay.png" id="5_smh4i"]
|
||||||
|
|
||||||
|
[sub_resource type="CircleShape2D" id="CircleShape2D_vvpve"]
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_1r0vh"]
|
||||||
|
atlas = ExtResource("4_bkia3")
|
||||||
|
region = Rect2(0, 0, 16, 16)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_vnkqd"]
|
||||||
|
atlas = ExtResource("4_bkia3")
|
||||||
|
region = Rect2(16, 0, 16, 16)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_330vc"]
|
||||||
|
atlas = ExtResource("4_bkia3")
|
||||||
|
region = Rect2(32, 0, 16, 16)
|
||||||
|
|
||||||
|
[sub_resource type="SpriteFrames" id="SpriteFrames_ck7ns"]
|
||||||
|
animations = [{
|
||||||
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_1r0vh")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_vnkqd")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_330vc")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"default",
|
||||||
|
"speed": 5.0
|
||||||
|
}]
|
||||||
|
|
||||||
|
[node name="KeycardReaderBlue" type="Area2D" groups=["Interactable"]]
|
||||||
|
collision_layer = 4
|
||||||
|
collision_mask = 2
|
||||||
|
script = ExtResource("1_jm4yx")
|
||||||
|
Requirements = [ExtResource("3_q2yjn")]
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||||
|
shape = SubResource("CircleShape2D_vvpve")
|
||||||
|
|
||||||
|
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
|
||||||
|
sprite_frames = SubResource("SpriteFrames_ck7ns")
|
||||||
|
|
||||||
|
[node name="Sprite2D" type="Sprite2D" parent="AnimatedSprite2D"]
|
||||||
|
texture = ExtResource("5_smh4i")
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
[gd_scene load_steps=8 format=3 uid="uid://d0yes7huiyisw"]
|
[gd_scene load_steps=7 format=3 uid="uid://d0yes7huiyisw"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://dxs3ks2ucaxl4" path="res://Scenes/Items/Red_Keycard.tscn" id="1_8f4hq"]
|
[ext_resource type="PackedScene" uid="uid://dxs3ks2ucaxl4" path="res://Scenes/Items/Red_Keycard.tscn" id="1_8f4hq"]
|
||||||
[ext_resource type="Script" uid="uid://epnwjptvks3t" path="res://Scripts/Resources/LootItem.cs" id="2_as2n7"]
|
|
||||||
[ext_resource type="Resource" uid="uid://cj5aa7btaw6q0" path="res://Resources/Items/Blue_Keycard.tres" id="2_woclw"]
|
[ext_resource type="Resource" uid="uid://cj5aa7btaw6q0" path="res://Resources/Items/Blue_Keycard.tres" id="2_woclw"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bvybqletsvqgk" path="res://Sprites/Items/BlueKeycard_Small.png" id="3_k20dr"]
|
[ext_resource type="Texture2D" uid="uid://bvybqletsvqgk" path="res://Sprites/Items/BlueKeycard_Small.png" id="3_k20dr"]
|
||||||
|
|
||||||
|
|
@ -28,7 +27,7 @@ animations = [{
|
||||||
}]
|
}]
|
||||||
|
|
||||||
[node name="BlueKeycard" instance=ExtResource("1_8f4hq")]
|
[node name="BlueKeycard" instance=ExtResource("1_8f4hq")]
|
||||||
LootTable = Array[ExtResource("2_as2n7")]([ExtResource("2_woclw")])
|
LootTable = [ExtResource("2_woclw")]
|
||||||
|
|
||||||
[node name="AnimatedSprite2D" parent="." index="1"]
|
[node name="AnimatedSprite2D" parent="." index="1"]
|
||||||
sprite_frames = SubResource("SpriteFrames_gbw5v")
|
sprite_frames = SubResource("SpriteFrames_gbw5v")
|
||||||
|
|
|
||||||
35
Scenes/Items/Gray_Keycard.tscn
Normal file
35
Scenes/Items/Gray_Keycard.tscn
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
[gd_scene load_steps=7 format=3 uid="uid://mtn26qwp4yqy"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dxs3ks2ucaxl4" path="res://Scenes/Items/Red_Keycard.tscn" id="1_0bwjc"]
|
||||||
|
[ext_resource type="Resource" uid="uid://oa8s6xydriib" path="res://Resources/Items/Generic_Keycard.tres" id="3_0bwjc"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bvybqletsvqgk" path="res://Sprites/Items/BlueKeycard_Small.png" id="4_7ohj7"]
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_kprwo"]
|
||||||
|
atlas = ExtResource("4_7ohj7")
|
||||||
|
region = Rect2(0, 0, 16, 16)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_kems3"]
|
||||||
|
atlas = ExtResource("4_7ohj7")
|
||||||
|
region = Rect2(16, 0, 16, 16)
|
||||||
|
|
||||||
|
[sub_resource type="SpriteFrames" id="SpriteFrames_gbw5v"]
|
||||||
|
animations = [{
|
||||||
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_kprwo")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_kems3")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"default",
|
||||||
|
"speed": 5.0
|
||||||
|
}]
|
||||||
|
|
||||||
|
[node name="GrayKeycard" instance=ExtResource("1_0bwjc")]
|
||||||
|
LootTable = [ExtResource("3_0bwjc")]
|
||||||
|
|
||||||
|
[node name="AnimatedSprite2D" parent="." index="1"]
|
||||||
|
sprite_frames = SubResource("SpriteFrames_gbw5v")
|
||||||
|
frame = 0
|
||||||
|
frame_progress = 0.0
|
||||||
|
|
@ -1,36 +1,17 @@
|
||||||
[gd_scene load_steps=32 format=3 uid="uid://bf1kqr3o6r6d4"]
|
[gd_scene load_steps=13 format=3 uid="uid://bf1kqr3o6r6d4"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://doxmbokehw8ci" path="res://Scripts/GameManager.cs" id="1_wbqvu"]
|
[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"]
|
[ext_resource type="PackedScene" uid="uid://c4pr2707hbeph" path="res://Scenes/Actors/fsm_player.tscn" id="2_3fyis"]
|
||||||
[ext_resource type="Resource" uid="uid://6ek4lmtuij4t" path="res://Resources/Maps/Roguelite.tres" id="2_k5t51"]
|
[ext_resource type="Resource" uid="uid://6ek4lmtuij4t" path="res://Resources/Maps/Roguelite.tres" id="2_k5t51"]
|
||||||
[ext_resource type="Script" uid="uid://bt2qjgnf1wc2r" path="res://Scripts/Controllers/RogueliteRoomManager.cs" id="4_jtlua"]
|
[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://ryfk7g1wqypk" path="res://Resources/RogueliteMaps/TestRGMapLong.tres" id="5_pfafs"]
|
|
||||||
[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="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="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="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="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="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="PackedScene" uid="uid://b3tyacxxw88lx" path="res://Scenes/Utils/StreamPlayerWithName.tscn" id="13_4n7t6"]
|
||||||
[ext_resource type="Resource" uid="uid://n6nb5yco60gi" path="res://Resources/RogueliteMaps/BigLarge.tres" id="13_y651a"]
|
|
||||||
[ext_resource type="Resource" uid="uid://do11fodskgasi" path="res://Resources/RogueliteMaps/RGTestRoom1.tres" id="14_vhvs2"]
|
|
||||||
[ext_resource type="Resource" uid="uid://cur433g6oevmd" path="res://Resources/RogueliteMaps/RGLongAcidWalk.tres" id="15_6gk3e"]
|
|
||||||
[ext_resource type="Resource" uid="uid://cc53bb6th33hi" path="res://Resources/RogueliteMaps/RGHorizontal1x1.tres" id="16_4gy5m"]
|
|
||||||
[ext_resource type="Script" uid="uid://3v6q0p5krqn7" path="res://Scripts/UI/Minimap.cs" id="16_pfafs"]
|
[ext_resource type="Script" uid="uid://3v6q0p5krqn7" path="res://Scripts/UI/Minimap.cs" id="16_pfafs"]
|
||||||
[ext_resource type="Resource" uid="uid://bew4cuec4pbms" path="res://Resources/RogueliteMaps/KeyRoom1.tres" id="17_td7hx"]
|
[ext_resource type="Resource" uid="uid://cw6868vuvuynh" path="res://Resources/RogueliteMaps/Factory_Theme.tres" id="25_7gtqx"]
|
||||||
[ext_resource type="Resource" uid="uid://cwtma7mxged8a" path="res://Resources/RogueliteMaps/ShopRoom1.tres" id="18_2lxq3"]
|
|
||||||
[ext_resource type="Resource" uid="uid://crqgvauqarfaq" path="res://Resources/RogueliteMaps/TreasureRoom1.tres" id="19_6ahuq"]
|
|
||||||
[ext_resource type="Resource" uid="uid://bo4efv7rwowuh" path="res://Resources/RogueliteMaps/SecretRoom1.tres" id="20_xrp0h"]
|
|
||||||
[ext_resource type="Resource" uid="uid://cb7gk278lmicd" path="res://Resources/RogueliteMaps/Lab2x1_1.tres" id="21_2lxq3"]
|
|
||||||
[ext_resource type="Resource" uid="uid://char0yv78vtty" path="res://Resources/RogueliteMaps/BigTest2.tres" id="22_6ahuq"]
|
|
||||||
[ext_resource type="Resource" uid="uid://bxvv82vno8ub1" path="res://Resources/RogueliteMaps/1x1_1.tres" id="23_xrp0h"]
|
|
||||||
[ext_resource type="Resource" uid="uid://d01146n5uo0gd" path="res://Resources/RogueliteMaps/1x2_1.tres" id="24_e0fjr"]
|
|
||||||
|
|
||||||
[node name="GameScene" type="Node2D"]
|
[node name="GameScene" type="Node2D"]
|
||||||
process_mode = 3
|
process_mode = 3
|
||||||
|
|
@ -45,7 +26,7 @@ SpawnMarkers = Dictionary[int, NodePath]({
|
||||||
process_mode = 1
|
process_mode = 1
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
script = ExtResource("4_jtlua")
|
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"), ExtResource("12_83bvc"), ExtResource("13_y651a"), ExtResource("14_vhvs2"), ExtResource("15_6gk3e"), ExtResource("16_4gy5m"), ExtResource("17_td7hx"), ExtResource("18_2lxq3"), ExtResource("19_6ahuq"), ExtResource("20_xrp0h"), ExtResource("21_2lxq3"), ExtResource("22_6ahuq"), ExtResource("23_xrp0h"), ExtResource("24_e0fjr")])
|
MapTheme = ExtResource("25_7gtqx")
|
||||||
DungeonLength = 3
|
DungeonLength = 3
|
||||||
MaxBranchLength = 2
|
MaxBranchLength = 2
|
||||||
MaxKeys = 2
|
MaxKeys = 2
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,9 @@
|
||||||
[gd_scene load_steps=10 format=4 uid="uid://cadjkf73yep12"]
|
[gd_scene load_steps=8 format=4 uid="uid://cadjkf73yep12"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://b2j00riayxkit" path="res://Scripts/Controllers/RogueliteRoom.cs" id="1_3j8r8"]
|
[ext_resource type="Script" uid="uid://b2j00riayxkit" path="res://Scripts/Controllers/RogueliteRoom.cs" id="1_3j8r8"]
|
||||||
[ext_resource type="Resource" uid="uid://bew4cuec4pbms" path="res://Resources/RogueliteMaps/KeyRoom1.tres" id="2_3j8r8"]
|
[ext_resource type="Resource" uid="uid://bew4cuec4pbms" path="res://Resources/RogueliteMaps/KeyRoom1.tres" id="2_3j8r8"]
|
||||||
[ext_resource type="PackedScene" uid="uid://l84on3kv2s52" path="res://Scenes/Door_Horizontal.tscn" id="3_t6hxp"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://bc64lr3vlwchq" path="res://Scenes/Door_Vertical.tscn" id="4_3j8r8"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://b0k2grrc8xp1l" path="res://Scenes/Props/BigTank.tscn" id="4_hfso4"]
|
|
||||||
[ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="5_3o7os"]
|
[ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="5_3o7os"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://mtn26qwp4yqy" path="res://Scenes/Items/Gray_Keycard.tscn" id="5_7qdwd"]
|
||||||
[ext_resource type="Script" uid="uid://krean0uywtms" path="res://Scripts/TilemapAvoidance.cs" id="6_sn1r1"]
|
[ext_resource type="Script" uid="uid://krean0uywtms" path="res://Scripts/TilemapAvoidance.cs" id="6_sn1r1"]
|
||||||
|
|
||||||
[sub_resource type="NavigationPolygon" id="NavigationPolygon_rlq0q"]
|
[sub_resource type="NavigationPolygon" id="NavigationPolygon_rlq0q"]
|
||||||
|
|
@ -22,9 +20,6 @@ size = Vector2(272, 85)
|
||||||
process_mode = 1
|
process_mode = 1
|
||||||
script = ExtResource("1_3j8r8")
|
script = ExtResource("1_3j8r8")
|
||||||
RoomResource = ExtResource("2_3j8r8")
|
RoomResource = ExtResource("2_3j8r8")
|
||||||
DoorPrefab = ExtResource("3_t6hxp")
|
|
||||||
VerticalDoorPrefab = ExtResource("4_3j8r8")
|
|
||||||
WallPrefab = ExtResource("4_hfso4")
|
|
||||||
|
|
||||||
[node name="Tilemaps" type="Node2D" parent="." groups=["navigation_polygon_source_geometry_group"]]
|
[node name="Tilemaps" type="Node2D" parent="." groups=["navigation_polygon_source_geometry_group"]]
|
||||||
|
|
||||||
|
|
@ -50,6 +45,9 @@ metadata/_edit_lock_ = true
|
||||||
[node name="Actors" type="Node2D" parent="Tilemaps"]
|
[node name="Actors" type="Node2D" parent="Tilemaps"]
|
||||||
metadata/_edit_lock_ = true
|
metadata/_edit_lock_ = true
|
||||||
|
|
||||||
|
[node name="GrayKeycard" parent="Tilemaps/Actors" instance=ExtResource("5_7qdwd")]
|
||||||
|
position = Vector2(159, 93)
|
||||||
|
|
||||||
[node name="EnemySpawners" type="Node2D" parent="."]
|
[node name="EnemySpawners" type="Node2D" parent="."]
|
||||||
|
|
||||||
[node name="NavigationRegion2D" type="NavigationRegion2D" parent="."]
|
[node name="NavigationRegion2D" type="NavigationRegion2D" parent="."]
|
||||||
|
|
|
||||||
|
|
@ -64,7 +64,7 @@ public partial class ActivationProvider : Area2D
|
||||||
_errorSound?.Play();
|
_errorSound?.Play();
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
bool success = selected.Activate();
|
bool success = selected.Activate(ActivationType.Use);
|
||||||
|
|
||||||
if (success)
|
if (success)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using Cirno.Scripts.Components.FSM.Enemy;
|
using Cirno.Scripts.Components.FSM.Enemy;
|
||||||
using Cirno.Scripts.Enums;
|
using Cirno.Scripts.Enums;
|
||||||
|
using Cirno.Scripts.Interactables;
|
||||||
using Cirno.Scripts.Resources;
|
using Cirno.Scripts.Resources;
|
||||||
using Cirno.Scripts.Resources.Roguelite;
|
using Cirno.Scripts.Resources.Roguelite;
|
||||||
using Godot;
|
using Godot;
|
||||||
|
|
@ -15,6 +16,8 @@ public partial class RogueliteRoom : Node2D
|
||||||
{
|
{
|
||||||
[Export] public RogueliteRoomResource RoomResource { get; set; }
|
[Export] public RogueliteRoomResource RoomResource { get; set; }
|
||||||
|
|
||||||
|
public RogueliteMapTheme MapTheme { get; set; }
|
||||||
|
|
||||||
public Vector2I GridPosition { get; set; } // Set by dungeon manager
|
public Vector2I GridPosition { get; set; } // Set by dungeon manager
|
||||||
|
|
||||||
public Vector2I BottomLeft => GridPosition + new Vector2I(0, RoomResource.Size.Y - 1);
|
public Vector2I BottomLeft => GridPosition + new Vector2I(0, RoomResource.Size.Y - 1);
|
||||||
|
|
@ -39,11 +42,6 @@ public partial class RogueliteRoom : Node2D
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
[Export] public PackedScene DoorPrefab { get; private set; }
|
|
||||||
|
|
||||||
[Export] public PackedScene VerticalDoorPrefab { get; private set; }
|
|
||||||
[Export] public PackedScene WallPrefab { get; private set; }
|
|
||||||
|
|
||||||
private static readonly Godot.Collections.Dictionary<string, Vector2I> DirectionMap = new()
|
private static readonly Godot.Collections.Dictionary<string, Vector2I> DirectionMap = new()
|
||||||
{
|
{
|
||||||
{ "North", new Vector2I(0, -1) },
|
{ "North", new Vector2I(0, -1) },
|
||||||
|
|
@ -157,14 +155,16 @@ public partial class RogueliteRoom : Node2D
|
||||||
|
|
||||||
var door = this.CreateChildOf<Door>(marker, marker.Direction switch
|
var door = this.CreateChildOf<Door>(marker, marker.Direction switch
|
||||||
{
|
{
|
||||||
DoorDirections.North => DoorPrefab,
|
DoorDirections.North => MapTheme.HorizontalDoorPrefab,
|
||||||
DoorDirections.South => DoorPrefab,
|
DoorDirections.South => MapTheme.HorizontalDoorPrefab,
|
||||||
DoorDirections.East => VerticalDoorPrefab,
|
DoorDirections.East => MapTheme.VerticalDoorPrefab,
|
||||||
DoorDirections.West => VerticalDoorPrefab,
|
DoorDirections.West => MapTheme.VerticalDoorPrefab,
|
||||||
_ => throw new ArgumentOutOfRangeException()
|
_ => throw new ArgumentOutOfRangeException()
|
||||||
}, marker.GlobalPosition);
|
}, marker.GlobalPosition);
|
||||||
|
|
||||||
door.State = DoorState.Closed;
|
door.Close();
|
||||||
|
|
||||||
|
// door.State = DoorState.Closed;
|
||||||
if (connected)
|
if (connected)
|
||||||
{
|
{
|
||||||
_doors.Add(door);
|
_doors.Add(door);
|
||||||
|
|
@ -172,6 +172,21 @@ public partial class RogueliteRoom : Node2D
|
||||||
if (doorEdge == connection.From)
|
if (doorEdge == connection.From)
|
||||||
{
|
{
|
||||||
connection.FromDoor = door;
|
connection.FromDoor = door;
|
||||||
|
|
||||||
|
// Spawn lock if locked
|
||||||
|
if (connection.IsLocked)
|
||||||
|
{
|
||||||
|
var doorLock = door.CreateChild<RogueliteDoorLock>(MapTheme.DoorLockPrefab);
|
||||||
|
|
||||||
|
doorLock.Connection = connection;
|
||||||
|
|
||||||
|
doorLock.ZIndex += 2;
|
||||||
|
|
||||||
|
//doorLock.Targets.Add(door);
|
||||||
|
//doorLock.Targets.Add(connection.ToDoor);
|
||||||
|
doorLock.ActivationType = ActivationType.Open;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else if (doorEdge == connection.To)
|
else if (doorEdge == connection.To)
|
||||||
{
|
{
|
||||||
|
|
@ -184,6 +199,9 @@ public partial class RogueliteRoom : Node2D
|
||||||
}
|
}
|
||||||
|
|
||||||
_connections.Add(connection);
|
_connections.Add(connection);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -229,8 +247,14 @@ public partial class RogueliteRoom : Node2D
|
||||||
{
|
{
|
||||||
foreach (var connection in _connections)
|
foreach (var connection in _connections)
|
||||||
{
|
{
|
||||||
connection.FromDoor?.Open();
|
if(!connection.IsLocked)
|
||||||
connection.ToDoor?.Open();
|
{
|
||||||
|
connection.FromDoor?.Open();
|
||||||
|
}
|
||||||
|
if(!connection.IsLocked)
|
||||||
|
{
|
||||||
|
connection.ToDoor?.Open();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -238,8 +262,14 @@ public partial class RogueliteRoom : Node2D
|
||||||
{
|
{
|
||||||
foreach (var connection in _connections)
|
foreach (var connection in _connections)
|
||||||
{
|
{
|
||||||
connection.FromDoor?.Close();
|
if(!connection.IsLocked)
|
||||||
connection.ToDoor?.Close();
|
{
|
||||||
|
connection.FromDoor?.Close();
|
||||||
|
}
|
||||||
|
if(!connection.IsLocked)
|
||||||
|
{
|
||||||
|
connection.ToDoor?.Close();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using Cirno.Scripts.Enums;
|
using Cirno.Scripts.Enums;
|
||||||
|
using Cirno.Scripts.Resources;
|
||||||
using Cirno.Scripts.Resources.Roguelite;
|
using Cirno.Scripts.Resources.Roguelite;
|
||||||
using Cirno.Scripts.Utils;
|
using Cirno.Scripts.Utils;
|
||||||
using Godot;
|
using Godot;
|
||||||
|
|
@ -12,9 +13,9 @@ namespace Cirno.Scripts.Controllers;
|
||||||
|
|
||||||
public partial class RogueliteRoomManager : Node2D
|
public partial class RogueliteRoomManager : Node2D
|
||||||
{
|
{
|
||||||
[Export] public Array<RogueliteRoomResource> Rooms { get; set; }
|
//[Export] public Array<RogueliteRoomResource> Rooms { get; set; }
|
||||||
|
|
||||||
[Export] public Node2D SceneContainer { get; set; }
|
[Export] public RogueliteMapTheme MapTheme { get; set; }
|
||||||
|
|
||||||
//private Godot.Collections.Dictionary<Vector2I, RogueliteRoomResource> _grid = new();
|
//private Godot.Collections.Dictionary<Vector2I, RogueliteRoomResource> _grid = new();
|
||||||
private Godot.Collections.Dictionary<Vector2I, RogueliteRoom> _roomGrid = new();
|
private Godot.Collections.Dictionary<Vector2I, RogueliteRoom> _roomGrid = new();
|
||||||
|
|
@ -69,8 +70,8 @@ public partial class RogueliteRoomManager : Node2D
|
||||||
{
|
{
|
||||||
for (int j = 0; j < 10; j++)
|
for (int j = 0; j < 10; j++)
|
||||||
{
|
{
|
||||||
var roomIndex = GD.RandRange(0, Rooms.Count - 1);
|
var roomIndex = GD.RandRange(0, MapTheme.Rooms.Count - 1);
|
||||||
var room = Rooms[roomIndex];
|
var room = MapTheme.Rooms[roomIndex];
|
||||||
//SpawnRoom(room, origin + (room.Size * new Vector2(i, j) * tileSize));
|
//SpawnRoom(room, origin + (room.Size * new Vector2(i, j) * tileSize));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -78,15 +79,15 @@ public partial class RogueliteRoomManager : Node2D
|
||||||
//CallDeferred(MethodName.RebakeNavigationDeferred);
|
//CallDeferred(MethodName.RebakeNavigationDeferred);
|
||||||
}
|
}
|
||||||
|
|
||||||
private IEnumerable<RogueliteRoomResource> StarterRooms => Rooms.Where(x => x.Type is RoomType.Starter);
|
private IEnumerable<RogueliteRoomResource> StarterRooms => MapTheme.Rooms.Where(x => x.Type is RoomType.Starter);
|
||||||
|
|
||||||
private IEnumerable<RogueliteRoomResource> RegularRooms => Rooms.Where(x =>
|
private IEnumerable<RogueliteRoomResource> RegularRooms => MapTheme.Rooms.Where(x =>
|
||||||
x.Type is RoomType.Regular && x.HasDoors(DoorDirections.North | DoorDirections.South));
|
x.Type is RoomType.Regular && x.HasDoors(DoorDirections.North | DoorDirections.South));
|
||||||
|
|
||||||
private IEnumerable<RogueliteRoomResource> OffshootRooms => Rooms.Where(x =>
|
private IEnumerable<RogueliteRoomResource> OffshootRooms => MapTheme.Rooms.Where(x =>
|
||||||
x.Type is RoomType.Regular && x.HasDoors(DoorDirections.East | DoorDirections.West));
|
x.Type is RoomType.Regular && x.HasDoors(DoorDirections.East | DoorDirections.West));
|
||||||
|
|
||||||
private IEnumerable<RogueliteRoomResource> BossRooms => Rooms.Where(x => x.Type is RoomType.Boss);
|
private IEnumerable<RogueliteRoomResource> BossRooms => MapTheme.Rooms.Where(x => x.Type is RoomType.Boss);
|
||||||
|
|
||||||
private List<RoomConnection> _connections = new();
|
private List<RoomConnection> _connections = new();
|
||||||
|
|
||||||
|
|
@ -100,7 +101,7 @@ public partial class RogueliteRoomManager : Node2D
|
||||||
}
|
}
|
||||||
|
|
||||||
Vector2I origin = Vector2I.Zero;
|
Vector2I origin = Vector2I.Zero;
|
||||||
var starterRoom = Rooms.Where(r => r.Type == RoomType.Starter).PickRandom();
|
var starterRoom = MapTheme.Rooms.Where(r => r.Type == RoomType.Starter).PickRandom();
|
||||||
SpawnRoom(starterRoom, origin, out var spawnedBeginRoom);
|
SpawnRoom(starterRoom, origin, out var spawnedBeginRoom);
|
||||||
|
|
||||||
var randomRoomsList = RegularRooms.Shuffle(MaxRooms * 4).ToList();
|
var randomRoomsList = RegularRooms.Shuffle(MaxRooms * 4).ToList();
|
||||||
|
|
@ -372,7 +373,7 @@ public partial class RogueliteRoomManager : Node2D
|
||||||
// Spawn final room
|
// Spawn final room
|
||||||
// var finalRoomToSpawn = Rooms.Where(x => x.Type == offshootTypeToSpawn).PickRandom();
|
// var finalRoomToSpawn = Rooms.Where(x => x.Type == offshootTypeToSpawn).PickRandom();
|
||||||
|
|
||||||
var spawnedFinalRoom = TrySpawnRoom(Rooms.Where(x => x.Type == offshootTypeToSpawn).ToList(),
|
var spawnedFinalRoom = TrySpawnRoom(MapTheme.Rooms.Where(x => x.Type == offshootTypeToSpawn).ToList(),
|
||||||
lastSpawnedOffshootRoom, direction);
|
lastSpawnedOffshootRoom, direction);
|
||||||
|
|
||||||
if (spawnedFinalRoom is null)
|
if (spawnedFinalRoom is null)
|
||||||
|
|
@ -406,6 +407,7 @@ public partial class RogueliteRoomManager : Node2D
|
||||||
var roomScene = GD.Load<PackedScene>(room.ScenePath);
|
var roomScene = GD.Load<PackedScene>(room.ScenePath);
|
||||||
var spawnedScene = this.CreateChild<RogueliteRoom>(roomScene, position);
|
var spawnedScene = this.CreateChild<RogueliteRoom>(roomScene, position);
|
||||||
|
|
||||||
|
spawnedScene.MapTheme = MapTheme;
|
||||||
spawnedScene.GridPosition = gridPos;
|
spawnedScene.GridPosition = gridPos;
|
||||||
|
|
||||||
spawnedScene.Name = room.RoomName.ToString().Replace(" ", "_");
|
spawnedScene.Name = room.RoomName.ToString().Replace(" ", "_");
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,7 @@ public partial class Door : Activable
|
||||||
|
|
||||||
public virtual void Open()
|
public virtual void Open()
|
||||||
{
|
{
|
||||||
|
if (State == DoorState.Open) return;
|
||||||
// _animatedSprite.Play("Opening");
|
// _animatedSprite.Play("Opening");
|
||||||
State = DoorState.Open;
|
State = DoorState.Open;
|
||||||
CallDeferred(MethodName.DeferredDisableCollision, true);
|
CallDeferred(MethodName.DeferredDisableCollision, true);
|
||||||
|
|
@ -55,6 +56,7 @@ public partial class Door : Activable
|
||||||
|
|
||||||
public virtual void Close()
|
public virtual void Close()
|
||||||
{
|
{
|
||||||
|
if (State == DoorState.Closed) return;
|
||||||
// _animatedSprite.Play("Closing");
|
// _animatedSprite.Play("Closing");
|
||||||
State = DoorState.Closed;
|
State = DoorState.Closed;
|
||||||
CallDeferred(MethodName.DeferredDisableCollision, false);
|
CallDeferred(MethodName.DeferredDisableCollision, false);
|
||||||
|
|
|
||||||
24
Scripts/Interactables/RogueliteDoorLock.cs
Normal file
24
Scripts/Interactables/RogueliteDoorLock.cs
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
using Cirno.Scripts.Controllers;
|
||||||
|
|
||||||
|
namespace Cirno.Scripts.Interactables;
|
||||||
|
|
||||||
|
public partial class RogueliteDoorLock : Switch
|
||||||
|
{
|
||||||
|
public RoomConnection Connection { get; set; }
|
||||||
|
|
||||||
|
public override bool Activate(ActivationType activationType = ActivationType.Toggle)
|
||||||
|
{
|
||||||
|
base.Activate(activationType);
|
||||||
|
|
||||||
|
if (!MeetsRequirements()) return false;
|
||||||
|
|
||||||
|
Connection.FromDoor.Activate(activationType);
|
||||||
|
Connection.ToDoor.Activate(activationType);
|
||||||
|
|
||||||
|
InventoryManager.Instance.RemoveItem("GRAY_KEY", 1);
|
||||||
|
|
||||||
|
this.QueueFree();
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
1
Scripts/Interactables/RogueliteDoorLock.cs.uid
Normal file
1
Scripts/Interactables/RogueliteDoorLock.cs.uid
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
uid://6n7duf35c52l
|
||||||
|
|
@ -25,15 +25,25 @@ public partial class Switch : Interactable
|
||||||
|
|
||||||
public override bool Activate(ActivationType activationType = ActivationType.Toggle)
|
public override bool Activate(ActivationType activationType = ActivationType.Toggle)
|
||||||
{
|
{
|
||||||
|
ActivationType activationTypeToUse;
|
||||||
|
if (activationType is ActivationType.Use)
|
||||||
|
{
|
||||||
|
activationTypeToUse = ActivationType;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
activationTypeToUse = activationType;
|
||||||
|
}
|
||||||
|
|
||||||
if (!MeetsRequirements()) return false;
|
if (!MeetsRequirements()) return false;
|
||||||
_activationSound?.Play();
|
_activationSound?.Play();
|
||||||
|
|
||||||
EmitSignal(SignalName.OnActivated, (int)activationType);
|
EmitSignal(SignalName.OnActivated, (int)activationTypeToUse);
|
||||||
|
|
||||||
// Compatibility for old single system
|
// Compatibility for old single system
|
||||||
bool success = ActivateTarget(Target, activationType);
|
bool success = ActivateTarget(Target, activationTypeToUse);
|
||||||
|
|
||||||
return Targets.Aggregate(success, (current, target) => ActivateTarget(target, activationType) | success);
|
return Targets.Aggregate(success, (current, target) => ActivateTarget(target, activationTypeToUse) | success);
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool ActivateTarget(Node2D target, ActivationType activationType = ActivationType.Toggle)
|
private bool ActivateTarget(Node2D target, ActivationType activationType = ActivationType.Toggle)
|
||||||
|
|
|
||||||
18
Scripts/Resources/RogueliteMapTheme.cs
Normal file
18
Scripts/Resources/RogueliteMapTheme.cs
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
using Cirno.Scripts.Resources.Roguelite;
|
||||||
|
using Godot;
|
||||||
|
using Godot.Collections;
|
||||||
|
|
||||||
|
namespace Cirno.Scripts.Resources;
|
||||||
|
|
||||||
|
[GlobalClass]
|
||||||
|
public partial class RogueliteMapTheme : Resource
|
||||||
|
{
|
||||||
|
[Export] public PackedScene HorizontalDoorPrefab { get; set; }
|
||||||
|
[Export] public PackedScene HorizontalWallPrefab { get; set; }
|
||||||
|
[Export] public PackedScene VerticalDoorPrefab { get; set; }
|
||||||
|
[Export] public PackedScene VerticalWallPrefab { get; set; }
|
||||||
|
[Export] public PackedScene DoorLockPrefab { get; set; }
|
||||||
|
[Export] public PackedScene KeyCardPrefab { get; set; }
|
||||||
|
|
||||||
|
[Export] public Array<RogueliteRoomResource> Rooms { get; set; }
|
||||||
|
}
|
||||||
1
Scripts/Resources/RogueliteMapTheme.cs.uid
Normal file
1
Scripts/Resources/RogueliteMapTheme.cs.uid
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
uid://bwtif3if3ea0u
|
||||||
BIN
Sprites/Items/GrayKeycard_Small.aseprite
(Stored with Git LFS)
Normal file
BIN
Sprites/Items/GrayKeycard_Small.aseprite
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Sprites/Items/GrayKeycard_Small.gif
Normal file
BIN
Sprites/Items/GrayKeycard_Small.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 263 B |
BIN
Sprites/Items/GrayKeycard_Small.png
(Stored with Git LFS)
Normal file
BIN
Sprites/Items/GrayKeycard_Small.png
(Stored with Git LFS)
Normal file
Binary file not shown.
34
Sprites/Items/GrayKeycard_Small.png.import
Normal file
34
Sprites/Items/GrayKeycard_Small.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://liwkh6rv1m41"
|
||||||
|
path="res://.godot/imported/GrayKeycard_Small.png-78c37a83db89e8ab4ee0abe72365176d.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Sprites/Items/GrayKeycard_Small.png"
|
||||||
|
dest_files=["res://.godot/imported/GrayKeycard_Small.png-78c37a83db89e8ab4ee0abe72365176d.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
Loading…
Add table
Add a link
Reference in a new issue