mirror of
https://gitlab.com/MaddoScientisto/cirnogodot.git
synced 2026-06-11 16:35:54 +00:00
Map start system
This commit is contained in:
parent
4abab60eac
commit
7acc344986
11 changed files with 323 additions and 41 deletions
85
Resources/Debug/DebugLevels.tres
Normal file
85
Resources/Debug/DebugLevels.tres
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
[gd_resource type="Resource" script_class="DebugMapSelectData" load_steps=20 format=3 uid="uid://d1lc8lhq1b05p"]
|
||||
|
||||
[ext_resource type="Script" path="res://Scripts/Resources/DebugMenu/DebugMapSelectData.cs" id="1_6kwth"]
|
||||
[ext_resource type="Script" path="res://Scripts/Resources/MapStartDataResource.cs" id="1_ov731"]
|
||||
[ext_resource type="Script" path="res://Scripts/Resources/DebugMenu/DebugMapSelectResource.cs" id="2_tnajf"]
|
||||
[ext_resource type="Resource" uid="uid://dau0s8ob7qnpc" path="res://Resources/Items/IceShotgun.tres" id="3_fydgr"]
|
||||
[ext_resource type="Resource" uid="uid://ct1fa2huvy34n" path="res://Resources/Items/Ammo1.tres" id="4_38yta"]
|
||||
[ext_resource type="Resource" uid="uid://cj5aa7btaw6q0" path="res://Resources/Items/Blue_Keycard.tres" id="5_em757"]
|
||||
[ext_resource type="Resource" uid="uid://clr1gln7nxa1o" path="res://Resources/Items/Power_Pickup.tres" id="6_sdmg8"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_tpb7s"]
|
||||
script = ExtResource("1_ov731")
|
||||
EggIndex = 0
|
||||
StartingEquipment = []
|
||||
|
||||
[sub_resource type="Resource" id="Resource_edoov"]
|
||||
script = ExtResource("2_tnajf")
|
||||
Enabled = true
|
||||
Path = "res://Scenes/test.tscn"
|
||||
_name = "Level 1"
|
||||
StartData = SubResource("Resource_tpb7s")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_1sw5g"]
|
||||
script = ExtResource("1_ov731")
|
||||
EggIndex = 255
|
||||
StartingEquipment = []
|
||||
|
||||
[sub_resource type="Resource" id="Resource_47bot"]
|
||||
script = ExtResource("2_tnajf")
|
||||
Enabled = true
|
||||
Path = "res://Scenes/test.tscn"
|
||||
_name = "Level 1 (Debug Room)"
|
||||
StartData = SubResource("Resource_1sw5g")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_o7bux"]
|
||||
script = ExtResource("1_ov731")
|
||||
EggIndex = 2
|
||||
StartingEquipment = [ExtResource("3_fydgr"), ExtResource("4_38yta"), ExtResource("5_em757"), ExtResource("6_sdmg8")]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_mgdm6"]
|
||||
script = ExtResource("2_tnajf")
|
||||
Enabled = true
|
||||
Path = "res://Scenes/test.tscn"
|
||||
_name = "Level 1 (Boss)"
|
||||
StartData = SubResource("Resource_o7bux")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_6wrc7"]
|
||||
script = ExtResource("2_tnajf")
|
||||
Enabled = true
|
||||
Path = "res://Scenes/naviogation_test.tscn"
|
||||
_name = "Navigation Test"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_x3w7w"]
|
||||
script = ExtResource("2_tnajf")
|
||||
Enabled = true
|
||||
Path = "res://Scenes/Actors/ActorEnemyTest.tscn"
|
||||
_name = "Enemy Actor Test"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_ajht5"]
|
||||
script = ExtResource("2_tnajf")
|
||||
Enabled = true
|
||||
Path = "res://Scenes/Maps/BossTestArena.tscn"
|
||||
_name = "Boss Test Arena"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_v2as6"]
|
||||
script = ExtResource("2_tnajf")
|
||||
Enabled = true
|
||||
Path = "res://Scenes/Maps/RebelBase.tscn"
|
||||
_name = "Rebel Base"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_qnbi6"]
|
||||
script = ExtResource("2_tnajf")
|
||||
Enabled = true
|
||||
Path = "res://Scenes/Cutscenes/Intro.tscn"
|
||||
_name = "Intro"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_7vmdn"]
|
||||
script = ExtResource("2_tnajf")
|
||||
Enabled = true
|
||||
Path = "res://Scenes/Maps/SimpleScene.tscn"
|
||||
_name = "Default Scene"
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_6kwth")
|
||||
Maps = Array[Object]([SubResource("Resource_edoov"), SubResource("Resource_47bot"), SubResource("Resource_mgdm6"), SubResource("Resource_6wrc7"), SubResource("Resource_x3w7w"), SubResource("Resource_ajht5"), SubResource("Resource_v2as6"), SubResource("Resource_qnbi6"), SubResource("Resource_7vmdn")])
|
||||
|
|
@ -1,7 +1,8 @@
|
|||
[gd_scene load_steps=3 format=3 uid="uid://bemu3l6b1e84y"]
|
||||
[gd_scene load_steps=4 format=3 uid="uid://bemu3l6b1e84y"]
|
||||
|
||||
[ext_resource type="Script" path="res://Scripts/UI/DebugMenu.cs" id="1_5vtnj"]
|
||||
[ext_resource type="Theme" uid="uid://dnsadvmunm76k" path="res://Resources/Styles/MainMenuButtons.tres" id="2_wqb8e"]
|
||||
[ext_resource type="Resource" uid="uid://d1lc8lhq1b05p" path="res://Resources/Debug/DebugLevels.tres" id="3_cvgqx"]
|
||||
|
||||
[node name="DebugMenu" type="VBoxContainer" node_paths=PackedStringArray("ButtonsContainer")]
|
||||
anchors_preset = 15
|
||||
|
|
@ -11,8 +12,8 @@ grow_horizontal = 2
|
|||
grow_vertical = 2
|
||||
script = ExtResource("1_5vtnj")
|
||||
ButtonTheme = ExtResource("2_wqb8e")
|
||||
Levels = Array[String](["res://Scenes/test.tscn", "res://Scenes/naviogation_test.tscn", "res://Scenes/Actors/ActorEnemyTest.tscn", "res://Scenes/Maps/BossTestArena.tscn", "res://Scenes/Maps/RebelBase.tscn", "res://Scenes/Cutscenes/Intro.tscn"])
|
||||
ButtonsContainer = NodePath("Level Select")
|
||||
Levels = ExtResource("3_cvgqx")
|
||||
ButtonsContainer = NodePath("ScrollContainer/Level Select")
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="."]
|
||||
layout_mode = 2
|
||||
|
|
@ -30,12 +31,18 @@ theme_override_font_sizes/font_size = 14
|
|||
text = "God Mode
|
||||
"
|
||||
|
||||
[node name="Level Select" type="FlowContainer" parent="."]
|
||||
[node name="ScrollContainer" type="ScrollContainer" parent="."]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
|
||||
[node name="BackButton" type="Button" parent="Level Select"]
|
||||
[node name="Level Select" type="FlowContainer" parent="ScrollContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
|
||||
[node name="BackButton" type="Button" parent="ScrollContainer/Level Select"]
|
||||
layout_mode = 2
|
||||
theme = ExtResource("2_wqb8e")
|
||||
text = "Back"
|
||||
|
||||
[connection signal="pressed" from="Level Select/BackButton" to="." method="_on_back_button_pressed"]
|
||||
[connection signal="pressed" from="ScrollContainer/Level Select/BackButton" to="." method="_on_back_button_pressed"]
|
||||
|
|
|
|||
66
Scenes/Maps/SimpleScene.tscn
Normal file
66
Scenes/Maps/SimpleScene.tscn
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
[gd_scene load_steps=11 format=4 uid="uid://prgabjxh44lf"]
|
||||
|
||||
[ext_resource type="Script" path="res://Scripts/GameManager.cs" id="1_4uv21"]
|
||||
[ext_resource type="PackedScene" uid="uid://bghghp5ep4w2j" path="res://Scenes/player.tscn" id="2_j0vja"]
|
||||
[ext_resource type="PackedScene" uid="uid://crry0rgk7a8sm" path="res://Scenes/Weapons/BaseWeapon.tscn" id="3_a16tm"]
|
||||
[ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="4_em3f4"]
|
||||
[ext_resource type="Script" path="res://Scripts/TilemapAvoidance.cs" id="5_75e1c"]
|
||||
[ext_resource type="Script" path="res://Scenes/CameraController.gd" id="11_uct4d"]
|
||||
[ext_resource type="Script" path="res://Scripts/InventoryManager.cs" id="12_hibtc"]
|
||||
[ext_resource type="PackedScene" uid="uid://dkwi1hu1bixoe" path="res://Scenes/HUD/HUD.tscn" id="13_66bei"]
|
||||
[ext_resource type="Script" path="res://Scenes/CameraTarget.gd" id="14_2aa7w"]
|
||||
[ext_resource type="Script" path="res://Scripts/AlarmManager.cs" id="15_d7e3u"]
|
||||
|
||||
[node name="GameScene" type="Node2D" node_paths=PackedStringArray("PlayerSpawnMarker")]
|
||||
script = ExtResource("1_4uv21")
|
||||
PlayerTemplate = ExtResource("2_j0vja")
|
||||
PlayerSpawnMarker = NodePath("PlayerStartPosition")
|
||||
WeaponTemplate = ExtResource("3_a16tm")
|
||||
StartingEquipment = Array[Object]([])
|
||||
|
||||
[node name="Tilemaps" type="Node2D" parent="."]
|
||||
|
||||
[node name="Floor" type="TileMapLayer" parent="Tilemaps" node_paths=PackedStringArray("_solidLayer")]
|
||||
tile_map_data = PackedByteArray("AAAEABAAAAAEAAIAAAAEABEAAAAEAAIAAAAEABIAAAAEAAIAAAAEABMAAAAEAAIAAAAEABQAAAAEAAIAAAAEABUAAAAEAAIAAAAEABYAAAAEAAIAAAAFABAAAAAEAAIAAAAFABEAAAAEAAIAAAAFABIAAAAEAAIAAAAFABMAAAAEAAIAAAAFABQAAAAEAAIAAAAFABUAAAAEAAIAAAAFABYAAAAEAAIAAAAGABAAAAAEAAIAAAAGABEAAAAEAAIAAAAGABIAAAAEAAIAAAAGABMAAAAEAAIAAAAGABQAAAAEAAIAAAAGABUAAAAEAAIAAAAGABYAAAAEAAIAAAAHABAAAAAEAAIAAAAHABEAAAAEAAIAAAAHABIAAAAEAAIAAAAHABMAAAAEAAIAAAAHABQAAAAEAAIAAAAHABUAAAAEAAIAAAAHABYAAAAEAAIAAAAIABAAAAAEAAIAAAAIABEAAAAEAAIAAAAIABIAAAAEAAIAAAAIABMAAAAEAAIAAAAIABQAAAAEAAIAAAAIABUAAAAEAAIAAAAIABYAAAAEAAIAAAAJABAAAAAEAAIAAAAJABEAAAAEAAIAAAAJABIAAAAEAAIAAAAJABMAAAAEAAIAAAAJABQAAAAEAAIAAAAJABUAAAAEAAIAAAAJABYAAAAEAAIAAAAKABAAAAAEAAIAAAAKABEAAAAEAAIAAAAKABIAAAAEAAIAAAAKABMAAAAEAAIAAAAKABQAAAAEAAIAAAAKABUAAAAEAAIAAAAKABYAAAAEAAIAAAADABAAAAAEAAIAAAADABEAAAAEAAIAAAADABIAAAAEAAIAAAADABMAAAAEAAIAAAADABQAAAAEAAIAAAADABUAAAAEAAIAAAADABYAAAAEAAIAAAADABcAAAAEAAIAAAADABgAAAAEAAIAAAAEABcAAAAEAAIAAAAEABgAAAAEAAIAAAAFABcAAAAEAAIAAAAFABgAAAAEAAIAAAAGABcAAAAEAAIAAAAGABgAAAAEAAIAAAAHABcAAAAEAAIAAAAHABgAAAAEAAIAAAAIABcAAAAEAAIAAAAIABgAAAAEAAIAAAAJABcAAAAEAAIAAAAJABgAAAAEAAIAAAAKABcAAAAEAAIAAAAKABgAAAAEAAIAAAALABAAAAAEAAIAAAALABEAAAAEAAIAAAALABIAAAAEAAIAAAALABMAAAAEAAIAAAALABQAAAAEAAIAAAALABUAAAAEAAIAAAALABYAAAAEAAIAAAALABcAAAAEAAIAAAALABgAAAAEAAIAAAA=")
|
||||
tile_set = ExtResource("4_em3f4")
|
||||
script = ExtResource("5_75e1c")
|
||||
_solidLayer = NodePath("../Solid")
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Solid" type="TileMapLayer" parent="Tilemaps" groups=["Solid"]]
|
||||
tile_map_data = PackedByteArray("AAACAA0AAAAAAAsAAAADAA0AAAABAAQAAAAEAA0AAAABAAQAAAAFAA0AAAABAAQAAAAGAA0AAAABAAQAAAAHAA0AAAABAAQAAAAIAA0AAAABAAQAAAAJAA0AAAABAAQAAAAKAA0AAAABAAQAAAALAA0AAAABAAQAAAAMAA0AAAABAAsAAAAMAA4AAAAAAAQAAAAMAA8AAAAAAAQAAAAMABAAAAAAAAQAAAAMABEAAAAAAAQAAAAMABMAAAAAAAQAAAAMABIAAAAAAAQAAAAMABQAAAAAAAQAAAAMABUAAAAAAAQAAAAMABYAAAAAAAQAAAAMABcAAAAAAAQAAAAMABgAAAAAAAQAAAAMABkAAAABAAwAAAALABkAAAABAAQAAAAKABkAAAABAAQAAAAJABkAAAABAAQAAAAIABkAAAABAAQAAAAHABkAAAABAAQAAAAGABkAAAABAAQAAAAFABkAAAABAAQAAAAEABkAAAABAAQAAAADABkAAAABAAQAAAACABkAAAAAAAwAAAACABgAAAAAAAQAAAACABYAAAAAAAQAAAACABcAAAAAAAQAAAACABUAAAAAAAQAAAACABQAAAAAAAQAAAACABIAAAAAAAQAAAACABMAAAAAAAQAAAACABEAAAAAAAQAAAACABAAAAAAAAQAAAACAA8AAAAAAAQAAAACAA4AAAAAAAQAAAADAA4AAAABAAEAAAADAA8AAAABAAEAAAAEAA4AAAABAAEAAAAEAA8AAAABAAEAAAAFAA4AAAABAAEAAAAFAA8AAAABAAEAAAAGAA4AAAABAAEAAAAGAA8AAAABAAEAAAAHAA4AAAABAAEAAAAHAA8AAAABAAEAAAAIAA4AAAABAAEAAAAIAA8AAAABAAEAAAAJAA4AAAABAAEAAAAJAA8AAAABAAEAAAAKAA4AAAABAAEAAAAKAA8AAAABAAEAAAALAA4AAAABAAEAAAALAA8AAAABAAEAAAA=")
|
||||
tile_set = ExtResource("4_em3f4")
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Props" type="TileMapLayer" parent="Tilemaps"]
|
||||
tile_set = ExtResource("4_em3f4")
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Actors" type="Node2D" parent="Tilemaps"]
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="CameraController" type="Camera2D" parent="."]
|
||||
script = ExtResource("11_uct4d")
|
||||
pixel_snap = false
|
||||
|
||||
[node name="ReferenceRect" type="ReferenceRect" parent="."]
|
||||
visible = false
|
||||
offset_left = -38.0
|
||||
offset_top = -39.0
|
||||
offset_right = 124.0
|
||||
offset_bottom = 44.0
|
||||
|
||||
[node name="InventoryManager" type="Node2D" parent="."]
|
||||
script = ExtResource("12_hibtc")
|
||||
|
||||
[node name="HUD" parent="." instance=ExtResource("13_66bei")]
|
||||
|
||||
[node name="CameraTarget" type="Node2D" parent="."]
|
||||
position = Vector2(115, 328)
|
||||
script = ExtResource("14_2aa7w")
|
||||
|
||||
[node name="PlayerStartPosition" type="Marker2D" parent="."]
|
||||
position = Vector2(111, 305)
|
||||
|
||||
[node name="AlarmManager" type="Node2D" parent="."]
|
||||
script = ExtResource("15_d7e3u")
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
[gd_scene load_steps=75 format=4 uid="uid://bv451a8wgty4u"]
|
||||
[gd_scene load_steps=78 format=4 uid="uid://bv451a8wgty4u"]
|
||||
|
||||
[ext_resource type="Script" path="res://Scripts/GameManager.cs" id="1_8tmoj"]
|
||||
[ext_resource type="PackedScene" uid="uid://bghghp5ep4w2j" path="res://Scenes/player.tscn" id="2_8mh54"]
|
||||
|
|
@ -8,8 +8,10 @@
|
|||
[ext_resource type="PackedScene" uid="uid://rp4jhx0tuh24" path="res://Scenes/fragola.tscn" id="4_s7wq6"]
|
||||
[ext_resource type="Resource" uid="uid://ct1fa2huvy34n" path="res://Resources/Items/Ammo1.tres" id="4_swym2"]
|
||||
[ext_resource type="Resource" uid="uid://cs3ihltcn2166" path="res://Resources/Items/IcicleGun.tres" id="5_nqier"]
|
||||
[ext_resource type="Resource" uid="uid://clr1gln7nxa1o" path="res://Resources/Items/Power_Pickup.tres" id="6_khabp"]
|
||||
[ext_resource type="PackedScene" uid="uid://uaf5r6cd71hu" path="res://Scenes/Props/LargeTank.tscn" id="6_nkauc"]
|
||||
[ext_resource type="Script" path="res://Scenes/CameraController.gd" id="6_t8ide"]
|
||||
[ext_resource type="Script" path="res://Scripts/Resources/MapStartDataResource.cs" id="7_l32kg"]
|
||||
[ext_resource type="PackedScene" uid="uid://crmwuwhltmdq7" path="res://Scenes/Props/MediumTank.tscn" id="7_lmrl1"]
|
||||
[ext_resource type="PackedScene" uid="uid://7cpk3c3d8cl7" path="res://Scenes/Props/MediumLiquidTank.tscn" id="8_2wpw7"]
|
||||
[ext_resource type="PackedScene" uid="uid://q7hau0tl3vsr" path="res://Scenes/Items/IcicleGun.tscn" id="10_iihys"]
|
||||
|
|
@ -63,6 +65,11 @@
|
|||
[ext_resource type="Script" path="res://Scripts/Resources/Events/ControlEnemyEvent.cs" id="52_5m7td"]
|
||||
[ext_resource type="PackedScene" uid="uid://bqjcwxene73l2" path="res://Scenes/Actors/ActorEnemyTest.tscn" id="55_chha6"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_6sau4"]
|
||||
script = ExtResource("7_l32kg")
|
||||
EggIndex = 0
|
||||
StartingEquipment = [ExtResource("6_khabp")]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_5er5x"]
|
||||
script = ExtResource("49_0si7g")
|
||||
Target = NodePath("../Factory Tilemaps/Teleporter")
|
||||
|
|
@ -122,19 +129,24 @@ ActivationType = 0
|
|||
Targets = Array[NodePath]([NodePath("../Rumia")])
|
||||
WaitForCompletion = true
|
||||
|
||||
[sub_resource type="Resource" id="Resource_o7jyd"]
|
||||
[sub_resource type="Resource" id="Resource_sl7qj"]
|
||||
resource_local_to_scene = true
|
||||
script = ExtResource("49_0si7g")
|
||||
Target = NodePath(".")
|
||||
WaitForCompletion = true
|
||||
|
||||
[node name="GameScene" type="Node2D" node_paths=PackedStringArray("PlayerSpawnMarker")]
|
||||
[node name="GameScene" type="Node2D"]
|
||||
position = Vector2(38, 39)
|
||||
script = ExtResource("1_8tmoj")
|
||||
PlayerTemplate = ExtResource("2_8mh54")
|
||||
PlayerSpawnMarker = NodePath("PlayerStartPosition")
|
||||
SpawnMarkers = {
|
||||
0: NodePath("StartPosition"),
|
||||
2: NodePath("Factory Tilemaps/BossDebugTeleporterDestination"),
|
||||
255: NodePath("Factory Tilemaps/Debug Room/DebugRoomStartPosition")
|
||||
}
|
||||
WeaponTemplate = ExtResource("3_2wlhc")
|
||||
StartingEquipment = Array[Object]([ExtResource("4_swym2"), ExtResource("5_nqier")])
|
||||
MapStartData = SubResource("Resource_6sau4")
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="Factory Tilemaps" type="Node2D" parent="."]
|
||||
|
|
@ -247,6 +259,9 @@ offset_right = 23.0
|
|||
text = "Boss Test"
|
||||
label_settings = ExtResource("14_c4c20")
|
||||
|
||||
[node name="DebugRoomStartPosition" type="Marker2D" parent="Factory Tilemaps/Debug Room"]
|
||||
position = Vector2(-741, -380)
|
||||
|
||||
[node name="LargeTank" parent="Factory Tilemaps" instance=ExtResource("6_nkauc")]
|
||||
position = Vector2(-640, 54)
|
||||
|
||||
|
|
@ -355,7 +370,6 @@ Target = NodePath("../Teleporter7")
|
|||
|
||||
[node name="BossDebugTeleporterDestination" parent="Factory Tilemaps" node_paths=PackedStringArray("Target") instance=ExtResource("30_8fdby")]
|
||||
position = Vector2(-1489, -345)
|
||||
IsEnabled = true
|
||||
Invisible = true
|
||||
Target = NodePath("../Teleporter7")
|
||||
|
||||
|
|
@ -474,12 +488,9 @@ position = Vector2(-1159, 213)
|
|||
[node name="HUD" parent="." instance=ExtResource("22_krk0o")]
|
||||
|
||||
[node name="CameraTarget" type="Node2D" parent="."]
|
||||
position = Vector2(-741, -380)
|
||||
position = Vector2(-808, -169)
|
||||
script = ExtResource("24_0c2yt")
|
||||
|
||||
[node name="PlayerStartPosition" type="Marker2D" parent="."]
|
||||
position = Vector2(-741, -380)
|
||||
|
||||
[node name="AlarmManager" type="Node2D" parent="."]
|
||||
script = ExtResource("25_rpwvt")
|
||||
|
||||
|
|
@ -586,7 +597,7 @@ Events = Array[Object]([SubResource("Resource_068l7"), SubResource("Resource_l3n
|
|||
|
||||
[node name="BossBattleStartScript" parent="." instance=ExtResource("43_kf3qc")]
|
||||
position = Vector2(-1487, -396)
|
||||
Events = Array[Object]([SubResource("Resource_4f4id"), SubResource("Resource_s2o7m"), SubResource("Resource_b1dht"), SubResource("Resource_xrgpy"), SubResource("Resource_o7jyd")])
|
||||
Events = Array[Object]([SubResource("Resource_4f4id"), SubResource("Resource_s2o7m"), SubResource("Resource_b1dht"), SubResource("Resource_xrgpy"), SubResource("Resource_sl7qj")])
|
||||
|
||||
[node name="Enemy8" parent="." instance=ExtResource("47_u1ve6")]
|
||||
position = Vector2(-968, 206)
|
||||
|
|
@ -615,3 +626,6 @@ Target = NodePath("../BulletEmitter")
|
|||
|
||||
[node name="BulletEmitter" parent="." instance=ExtResource("49_64oga")]
|
||||
position = Vector2(-728, 57)
|
||||
|
||||
[node name="StartPosition" type="Marker2D" parent="."]
|
||||
position = Vector2(-808, -167)
|
||||
|
|
|
|||
|
|
@ -23,15 +23,18 @@ public partial class GameManager : Node2D
|
|||
|
||||
[Export] public PackedScene PlayerTemplate { get; set; }
|
||||
|
||||
[Export] public Marker2D PlayerSpawnMarker { get; set; }
|
||||
[Export] public Dictionary<int, NodePath> SpawnMarkers { get; private set; } = new();
|
||||
|
||||
//[Export] public Marker2D PlayerSpawnMarker { get; set; }
|
||||
|
||||
[Export] public PackedScene WeaponTemplate { get; private set; }
|
||||
|
||||
[Export] public Array<LootItem> StartingEquipment { get; private set; }
|
||||
[Export] public Array<LootItem> StartingEquipment { get; private set; } = new();
|
||||
|
||||
private InventoryManager _inventoryManager { get; set; }
|
||||
|
||||
public MapStartData MapStartData { get; set; }
|
||||
[Export]
|
||||
public MapStartDataResource MapStartData { get; private set; }
|
||||
|
||||
//private AlarmManager _alarmManager { get; set; }
|
||||
|
||||
|
|
@ -48,7 +51,7 @@ public partial class GameManager : Node2D
|
|||
// Called when the node enters the scene tree for the first time.
|
||||
public override void _Ready()
|
||||
{
|
||||
Instance = this;
|
||||
Instance = this;
|
||||
|
||||
_hud = GetNodeOrNull<Hud>("HUD");
|
||||
if (_hud == null) GD.Print("No HUD in scene.");
|
||||
|
|
@ -81,6 +84,15 @@ public partial class GameManager : Node2D
|
|||
CallDeferred(MethodName.DelayPlayerSpawn);
|
||||
}
|
||||
|
||||
public void ApplyMapStartData(MapStartDataResource mapStartData)
|
||||
{
|
||||
MapStartData = mapStartData;
|
||||
|
||||
StartingEquipment.AddRange(mapStartData.StartingEquipment);
|
||||
|
||||
|
||||
}
|
||||
|
||||
// Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
public override void _Process(double delta)
|
||||
{
|
||||
|
|
@ -94,7 +106,7 @@ public partial class GameManager : Node2D
|
|||
{
|
||||
//await Task.Delay(500);
|
||||
|
||||
if (PlayerSpawnMarker != null)
|
||||
if (SpawnMarkers.Any())
|
||||
{
|
||||
SpawnPlayer();
|
||||
}
|
||||
|
|
@ -141,13 +153,16 @@ public partial class GameManager : Node2D
|
|||
public void SpawnPlayer()
|
||||
{
|
||||
if (_player != null) return;
|
||||
|
||||
//_player = this.CreateChild<PlayerMovement>(PlayerTemplate, PlayerSpawnMarker.Position );
|
||||
_player = PlayerTemplate.Instantiate<PlayerMovement>();
|
||||
|
||||
this.CallDeferred("add_child", _player);
|
||||
_player.Transform = this.GlobalTransform;
|
||||
|
||||
_player.GlobalPosition = PlayerSpawnMarker.Position;
|
||||
|
||||
_player.GlobalPosition = GetStartPosition();
|
||||
|
||||
//_player.GlobalPosition = PlayerSpawnMarker.Position;
|
||||
|
||||
CameraTargetPlayer();
|
||||
//
|
||||
|
|
@ -158,6 +173,22 @@ public partial class GameManager : Node2D
|
|||
// }
|
||||
}
|
||||
|
||||
private Vector2 GetStartPosition()
|
||||
{
|
||||
if (MapStartData != null)
|
||||
{
|
||||
if (SpawnMarkers.TryGetValue(MapStartData.EggIndex, out var spawnMarker))
|
||||
{
|
||||
var marker = GetNode<Node2D>(spawnMarker);
|
||||
|
||||
return marker.Position; // Why position and not globalposition? I have no idea
|
||||
}
|
||||
}
|
||||
|
||||
var m = GetNode<Node2D>(SpawnMarkers.First().Value);
|
||||
return m.GlobalPosition;
|
||||
}
|
||||
|
||||
public void CameraTargetPlayer()
|
||||
{
|
||||
if (_player is null) return;
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
using Cirno.Scripts.Resources;
|
||||
using Godot;
|
||||
|
||||
public partial class GlobalState : Node
|
||||
|
|
@ -13,8 +14,6 @@ public partial class GlobalState : Node
|
|||
Viewport root = GetTree().Root;
|
||||
// Using a negative index counts from the end, so this gets the last child node of `root`.
|
||||
CurrentScene = root.GetChild(-1);
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void GotoScene(string path)
|
||||
|
|
@ -31,7 +30,13 @@ public partial class GlobalState : Node
|
|||
CallDeferred(MethodName.DeferredGotoScene, path);
|
||||
}
|
||||
|
||||
public void DeferredGotoScene(string path)
|
||||
public void GoToScene(string path, MapStartDataResource startData)
|
||||
{
|
||||
// TODO: Implement startdata usage
|
||||
CallDeferred(MethodName.DeferredGotoScene, path, startData);
|
||||
}
|
||||
|
||||
private void DeferredGotoScene(string path, MapStartDataResource startData = null)
|
||||
{
|
||||
// It is now safe to remove the current scene.
|
||||
CurrentScene.Free();
|
||||
|
|
@ -47,11 +52,16 @@ public partial class GlobalState : Node
|
|||
|
||||
// Optionally, to make it compatible with the SceneTree.change_scene_to_file() API.
|
||||
GetTree().CurrentScene = CurrentScene;
|
||||
|
||||
if (startData is not null)
|
||||
{
|
||||
// Call deferred if it gives issues
|
||||
DeferredAddStartDataToGameManager(startData);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class MapStartData
|
||||
{
|
||||
public int EggIndex = 0;
|
||||
|
||||
private void DeferredAddStartDataToGameManager(MapStartDataResource resource)
|
||||
{
|
||||
GameManager.Instance.ApplyMapStartData(resource);
|
||||
}
|
||||
}
|
||||
|
|
@ -59,7 +59,8 @@ public partial class MainMenu : Control
|
|||
private void _on_mainmenu_button_pressed()
|
||||
{
|
||||
if (MainMenuScene != null) {
|
||||
GetTree().ChangeSceneToFile(MainMenuScene);
|
||||
GlobalState.Instance.GotoScene(MainMenuScene);
|
||||
//GetTree().ChangeSceneToFile(MainMenuScene);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
11
Scripts/Resources/DebugMenu/DebugMapSelectData.cs
Normal file
11
Scripts/Resources/DebugMenu/DebugMapSelectData.cs
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
using Godot;
|
||||
using Godot.Collections;
|
||||
|
||||
namespace Cirno.Scripts.Resources.DebugMenu;
|
||||
|
||||
[GlobalClass]
|
||||
public partial class DebugMapSelectData : Resource
|
||||
{
|
||||
[Export]
|
||||
public Array<DebugMenu.DebugMapSelectResource> Maps { get; private set; }
|
||||
}
|
||||
35
Scripts/Resources/DebugMenu/DebugMapSelectResource.cs
Normal file
35
Scripts/Resources/DebugMenu/DebugMapSelectResource.cs
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
using Godot;
|
||||
|
||||
namespace Cirno.Scripts.Resources.DebugMenu;
|
||||
|
||||
[GlobalClass]
|
||||
public partial class DebugMapSelectResource : Resource
|
||||
{
|
||||
[Export] public bool Enabled { get; private set; } = true;
|
||||
[Export] public string Path { get; private set; }
|
||||
|
||||
[Export] private string _name { get; set; }
|
||||
|
||||
[Export] public MapStartDataResource StartData { get; private set; }
|
||||
|
||||
[Export] public Texture2D Icon { get; private set; }
|
||||
|
||||
public string DisplayName
|
||||
{
|
||||
get
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(_name))
|
||||
{
|
||||
return _name;
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(Path))
|
||||
{
|
||||
return Path.Split("/")[^1].Split(".")[0];
|
||||
}
|
||||
|
||||
return string.Empty;
|
||||
}
|
||||
set => _name = value;
|
||||
}
|
||||
}
|
||||
20
Scripts/Resources/MapStartDataResource.cs
Normal file
20
Scripts/Resources/MapStartDataResource.cs
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
using System.Linq;
|
||||
using Godot;
|
||||
using Godot.Collections;
|
||||
|
||||
namespace Cirno.Scripts.Resources;
|
||||
|
||||
[GlobalClass]
|
||||
public partial class MapStartDataResource : Resource
|
||||
{
|
||||
[Export]
|
||||
public int EggIndex { get; set; }
|
||||
|
||||
[Export]
|
||||
public Array<LootItem> StartingEquipment { get; set; } = new Array<LootItem>();
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return $"EggIndex: {EggIndex}, Equipment: {string.Join("," ,StartingEquipment.Select(x => x.ItemKey))}";
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,9 @@
|
|||
using Godot;
|
||||
using System;
|
||||
using Cirno.Scripts.Resources;
|
||||
using Cirno.Scripts.Resources.DebugMenu;
|
||||
using Godot.Collections;
|
||||
using DebugMapSelectData = Cirno.Scripts.Resources.DebugMenu.DebugMapSelectData;
|
||||
|
||||
public partial class DebugMenu : Control
|
||||
{
|
||||
|
|
@ -9,7 +12,7 @@ public partial class DebugMenu : Control
|
|||
public Theme ButtonTheme { get; private set; }
|
||||
|
||||
[Export]
|
||||
public Array<string> Levels { get; set; }
|
||||
public DebugMapSelectData Levels { get; set; }
|
||||
|
||||
[Export]
|
||||
public Container ButtonsContainer { get; private set; }
|
||||
|
|
@ -20,26 +23,25 @@ public partial class DebugMenu : Control
|
|||
// Called when the node enters the scene tree for the first time.
|
||||
public override void _Ready()
|
||||
{
|
||||
foreach (var level in Levels)
|
||||
foreach (var level in Levels.Maps)
|
||||
{
|
||||
if (!level.Enabled) continue;
|
||||
var button = new Button();
|
||||
button.Text = level.Split("/")[^1].Split(".")[0];
|
||||
//button.Text = level.Split("/")[^1].Split(".")[0];
|
||||
button.Text = level.DisplayName;
|
||||
button.Icon = level.Icon;
|
||||
//button.Text = level;
|
||||
button.Theme = ButtonTheme;
|
||||
|
||||
ButtonsContainer.CallDeferred("add_child", button);
|
||||
|
||||
button.Pressed += () => ButtonOnPressed(level);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void ButtonOnPressed(string scene)
|
||||
private void ButtonOnPressed(DebugMapSelectResource scene)
|
||||
{
|
||||
GD.Print("Button was pressed, now what");
|
||||
GlobalState.Instance.GotoScene(scene);
|
||||
//GetTree().ChangeSceneToFile(scene);
|
||||
|
||||
GlobalState.Instance.GoToScene(scene.Path, scene.StartData);
|
||||
}
|
||||
|
||||
private void _on_back_button_pressed()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue