Mergepoint II

This commit is contained in:
Pal
2025-09-26 04:08:37 -07:00
21 changed files with 170 additions and 2213 deletions

View File

@@ -0,0 +1,16 @@
namespace Zennysoft.Ma.Adapter;
public enum Floor
{
Overworld,
Altar,
BossFloorA,
BossFloorB,
GoddessOfGuidanceFloor,
VoidRoom,
FinalFloor,
Floor01,
Floor02,
Floor03,
Floor04,
Floor05,
}

View File

@@ -18,5 +18,5 @@ public partial record PlayerData
public partial record MapData
{
[Save("floor_list")]
public required List<string> FloorScenes { get; init; }
public required Dictionary<Floor, string> FloorScenes { get; init; }
}

View File

@@ -1,19 +0,0 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://hmx3puq627vt"
path="res://.godot/imported/CrossingTheGate.ogg-928288dfb5c09b4bfb32624fa16625df.oggvorbisstr"
[deps]
source_file="res://src/Unused and Old/CrossingTheGate.ogg"
dest_files=["res://.godot/imported/CrossingTheGate.ogg-928288dfb5c09b4bfb32624fa16625df.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

View File

@@ -1,19 +0,0 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://4e3nl0kd2vi8"
path="res://.godot/imported/Droney.ogg-f844419b0508cb66adc758c97ec21dcb.oggvorbisstr"
[deps]
source_file="res://src/Unused and Old/Droney.ogg"
dest_files=["res://.godot/imported/Droney.ogg-f844419b0508cb66adc758c97ec21dcb.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,19 +0,0 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://8srjhvr3ktjv"
path="res://.godot/imported/TarWinds.ogg-ec9634d7fbb4157da8084068a6761eee.oggvorbisstr"
[deps]
source_file="res://src/Unused and Old/TarWinds.ogg"
dest_files=["res://.godot/imported/TarWinds.ogg-ec9634d7fbb4157da8084068a6761eee.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

View File

@@ -1,19 +0,0 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://8fvgiyyje2px"
path="res://.godot/imported/UselessImmuneSystem.ogg-4b373f2a435c102bba2fec78bea9df03.oggvorbisstr"
[deps]
source_file="res://src/Unused and Old/UselessImmuneSystem.ogg"
dest_files=["res://.godot/imported/UselessImmuneSystem.ogg-4b373f2a435c102bba2fec78bea9df03.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

View File

@@ -53,8 +53,6 @@ public partial class App : Node, IApp
MainMenu.Quit += OnQuit;
_loadedScene.Changed += OnGameLoaded;
Instantiator = new Instantiator(GetTree());
AppRepo = container.GetInstance<IAppRepo>();
AppLogic = container.GetInstance<IAppLogic>();
@@ -72,7 +70,6 @@ public partial class App : Node, IApp
var scene = (PackedScene)ResourceLoader.LoadThreadedGet(sceneName);
var node = scene.Instantiate();
AddChild(node);
Instantiator.SceneTree.Paused = false;
}
public void OnReady()

View File

@@ -1,17 +1,18 @@
[gd_scene load_steps=9 format=3 uid="uid://cvk007twac22c"]
[gd_scene load_steps=10 format=3 uid="uid://cvk007twac22c"]
[ext_resource type="Script" uid="uid://cohal8w5ceneg" path="res://src/enemy/enemy_types/03. filth_eater/FilthEater.cs" id="1_fyc13"]
[ext_resource type="Resource" uid="uid://coyidduu5uhsp" path="res://src/enemy/enemy_types/03. filth_eater/FilthEaterStats.tres" id="2_p438s"]
[ext_resource type="PackedScene" uid="uid://bup8c4x1na3aw" path="res://src/enemy/enemy_types/03. filth_eater/FilthEaterModelView.tscn" id="3_rrwed"]
[ext_resource type="Script" uid="uid://dlsgyx4i1jmp3" path="res://src/enemy/EnemyLoreInfo.cs" id="4_5eid5"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_cwfph"]
radius = 1.0
[ext_resource type="PackedScene" uid="uid://pbnsngx5jvrh" path="res://src/enemy/NavigationAgentClient.tscn" id="5_veila"]
[sub_resource type="CylinderShape3D" id="CylinderShape3D_jbgmx"]
height = 5.0
radius = 1.0
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_cwfph"]
radius = 1.0
[sub_resource type="SphereShape3D" id="SphereShape3D_0y048"]
radius = 1.0
@@ -32,16 +33,6 @@ SecondaryAttackElementalType = 2
SecondaryAttackElementalDamageBonus = 1.15
_enemyStatResource = ExtResource("2_p438s")
[node name="CollisionShape" type="CollisionShape3D" parent="."]
unique_name_in_owner = true
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0)
shape = SubResource("CapsuleShape3D_cwfph")
[node name="NavAgent" type="NavigationAgent3D" parent="."]
unique_name_in_owner = true
avoidance_enabled = true
debug_path_custom_color = Color(1, 0, 0, 1)
[node name="LineOfSight" type="Area3D" parent="."]
unique_name_in_owner = true
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0)
@@ -52,6 +43,11 @@ collision_mask = 2
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, -2)
shape = SubResource("CylinderShape3D_jbgmx")
[node name="CollisionShape" type="CollisionShape3D" parent="."]
unique_name_in_owner = true
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0)
shape = SubResource("CapsuleShape3D_cwfph")
[node name="PatrolTimer" type="Timer" parent="."]
unique_name_in_owner = true
wait_time = 10.0
@@ -78,3 +74,6 @@ shape = SubResource("SphereShape3D_0y048")
[node name="EnemyModelView" parent="." instance=ExtResource("3_rrwed")]
unique_name_in_owner = true
EnemyLoreInfo = SubResource("Resource_fv5vf")
[node name="NavigationAgentClient" parent="." instance=ExtResource("5_veila")]
unique_name_in_owner = true

View File

@@ -97,7 +97,7 @@ public partial class Game : Node3D, IGame
},
MapData = new MapData()
{
FloorScenes = _map.FloorScenes
FloorScenes = []
},
RescuedItems = new RescuedItemDatabase()
{
@@ -251,7 +251,6 @@ public partial class Game : Node3D, IGame
GameRepo.Resume();
InGameUI.Show();
InGameUI.PlayerInfoUI.Activate();
_player.TeleportPlayer(_map.CurrentFloor.GetPlayerSpawnPoint());
_player.Activate();
}

View File

@@ -4,6 +4,8 @@ using Chickensoft.GodotNodeInterfaces;
using Chickensoft.SaveFileBuilder;
using Godot;
using System.Collections.Generic;
using System.Collections.Immutable;
using Zennysoft.Ma.Adapter;
namespace Zennysoft.Game.Ma;
@@ -13,7 +15,7 @@ public interface IMap : INode3D, IProvide<ISaveChunk<MapData>>
void LoadFloor();
List<string> FloorScenes { get; }
ImmutableDictionary<Floor, string> FloorScenes { get; }
IDungeonFloor CurrentFloor { get; }

View File

@@ -5,6 +5,7 @@ using Chickensoft.LogicBlocks;
using Chickensoft.SaveFileBuilder;
using Godot;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Linq;
using Zennysoft.Ma.Adapter;
@@ -31,9 +32,9 @@ public partial class Map : Node3D, IMap
#endregion
[Export]
private Godot.Collections.Array<PackedScene> _floors { get; set; } = default!;
private Godot.Collections.Array<Floor> Floors { get; set; } = default!;
public List<string> FloorScenes { get; private set; } = [];
public ImmutableDictionary<Floor, string> FloorScenes { get; private set; }
public IDungeonFloor CurrentFloor { get; private set; }
@@ -41,77 +42,76 @@ public partial class Map : Node3D, IMap
public void OnResolved()
{
MapChunk = new SaveChunk<MapData>(
onSave: (chunk) => new MapData()
{
FloorScenes = FloorScenes,
},
onLoad: (chunk, data) =>
{
FloorScenes = data.FloorScenes;
}
);
GameChunk.AddChunk(MapChunk);
GameChunk.AddChunk(MapChunk);
this.Provide();
this.Provide();
InitializeMapData();
InitializeMapData();
}
public void InitializeMapData()
{
ClearMap();
FloorScenes = [];
foreach (var floor in _floors)
FloorScenes.Add(floor.ResourcePath);
CurrentFloorNumber.OnNext(0);
ClearMap();
FloorScenes = ImmutableDictionary<Floor, string>.Empty
.Add(Floor.Overworld, $"res://src/map/overworld/Overworld.tscn")
.Add(Floor.Altar, $"res://src/map/dungeon/floors/Floor00.tscn")
.Add(Floor.BossFloorA, $"res://src/map/dungeon/rooms/Set A/15. Boss Floor A.tscn")
.Add(Floor.BossFloorB, $"res://src/map/dungeon/rooms/Set B/34. Boss Floor B.tscn")
.Add(Floor.GoddessOfGuidanceFloor, $"res://src/map/dungeon/rooms/Set B/35. Goddess of Guidance's Room.tscn")
.Add(Floor.VoidRoom, $"res://src/map/dungeon/rooms/Set B/30. Void Room.tscn")
.Add(Floor.FinalFloor, $"res://src/map/dungeon/rooms/Set B/36. Final Floor.tscn")
.Add(Floor.Floor01, $"res://src/map/dungeon/floors/Floor01.tscn")
.Add(Floor.Floor02, $"res://src/map/dungeon/floors/Floor02.tscn")
.Add(Floor.Floor03, $"res://src/map/dungeon/floors/Floor03.tscn")
.Add(Floor.Floor04, $"res://src/map/dungeon/floors/Floor04.tscn")
.Add(Floor.Floor05, $"res://src/map/dungeon/floors/Floor05.tscn");
CurrentFloorNumber.OnNext(0);
}
public void LoadMap()
{
LoadFloor();
CurrentFloor.InitializeDungeon();
var transform = GetPlayerSpawnPosition();
Player.TeleportPlayer(transform);
CurrentFloor.FloorIsLoaded = true;
LoadFloor();
CurrentFloor.InitializeDungeon();
var transform = GetPlayerSpawnPosition();
Player.TeleportPlayer(transform);
CurrentFloor.FloorIsLoaded = true;
}
private void ClearMap()
{
CurrentFloor?.CallDeferred(MethodName.QueueFree, []);
CurrentFloor?.CallDeferred(MethodName.QueueFree, []);
}
public void SpawnNextFloor()
{
ClearMap();
LoadFloor();
CurrentFloor.InitializeDungeon();
var transform = GetPlayerSpawnPosition();
Player.TeleportPlayer(transform);
CurrentFloor.FloorIsLoaded = true;
CurrentFloorNumber.OnNext(CurrentFloorNumber.Value + 1);
ClearMap();
LoadFloor();
CurrentFloor.InitializeDungeon();
var transform = GetPlayerSpawnPosition();
Player.TeleportPlayer(transform);
CurrentFloor.FloorIsLoaded = true;
CurrentFloorNumber.OnNext(CurrentFloorNumber.Value + 1);
}
public IDungeonRoom GetPlayersCurrentRoom()
{
var rooms = CurrentFloor.Rooms;
var playersRoom = rooms.SingleOrDefault(x => x.IsPlayerInRoom);
return playersRoom;
var rooms = CurrentFloor.Rooms;
var playersRoom = rooms.SingleOrDefault(x => x.IsPlayerInRoom);
return playersRoom;
}
public Transform3D GetPlayerSpawnPosition() => CurrentFloor.GetPlayerSpawnPoint();
public void LoadFloor()
{
ClearMap();
var currentFloorScene = FloorScenes.First();
var instantiator = new Instantiator(GetTree());
var loadedScene = instantiator.LoadAndInstantiate<Node3D>(currentFloorScene);
AddChild(loadedScene);
CurrentFloor = (IDungeonFloor)loadedScene;
FloorScenes.Remove(currentFloorScene);
var transform = GetPlayerSpawnPosition();
Player.TeleportPlayer(transform);
ClearMap();
FloorScenes.TryGetValue(Floors.First(), out var currentFloorScene);
var instantiator = new Instantiator(GetTree());
var loadedScene = instantiator.LoadAndInstantiate<Node3D>(currentFloorScene);
AddChild(loadedScene);
CurrentFloor = (IDungeonFloor)loadedScene;
Floors.Remove(Floors.First());
var transform = GetPlayerSpawnPosition();
Player.TeleportPlayer(transform);
}
}

View File

@@ -1,17 +1,7 @@
[gd_scene load_steps=10 format=3 uid="uid://by67pn7fdsg1m"]
[gd_scene load_steps=2 format=3 uid="uid://by67pn7fdsg1m"]
[ext_resource type="Script" uid="uid://14e8mu48ed4" path="res://src/map/Map.cs" id="1_bw70o"]
[ext_resource type="PackedScene" uid="uid://dl6h1djc27ddl" path="res://src/map/dungeon/floors/Floor00.tscn" id="2_ne2vg"]
[ext_resource type="PackedScene" uid="uid://jha0mhct0e7i" path="res://src/map/dungeon/rooms/Set B/40. Goddess of Guidance's Room - True Form.tscn" id="3_ne2vg"]
[ext_resource type="PackedScene" uid="uid://5ja3qxn8h7iw" path="res://src/map/dungeon/rooms/Set A/15. Boss Floor A.tscn" id="6_abpbr"]
[ext_resource type="PackedScene" uid="uid://dvnc26rebk6o0" path="res://src/map/overworld/Overworld.tscn" id="6_ne2vg"]
[ext_resource type="PackedScene" uid="uid://ceo7ph483io44" path="res://src/map/dungeon/rooms/Set B/34. Boss Floor B.tscn" id="7_caf7v"]
[ext_resource type="PackedScene" uid="uid://bo20ffw2ygbks" path="res://src/map/dungeon/rooms/Set B/35. Goddess of Guidance's Room.tscn" id="8_y74f3"]
[ext_resource type="PackedScene" uid="uid://dttk7gis5ibge" path="res://src/map/dungeon/rooms/Set B/30. Void Room.tscn" id="9_dbqu2"]
[ext_resource type="PackedScene" uid="uid://cyrrhoarhxlhg" path="res://src/map/dungeon/rooms/Set B/36. Final Floor.tscn" id="10_xcm54"]
[node name="Map" type="Node3D"]
script = ExtResource("1_bw70o")
_floors = Array[PackedScene]([ExtResource("7_caf7v"), ExtResource("6_abpbr"), ExtResource("6_ne2vg"), ExtResource("8_y74f3"), ExtResource("2_ne2vg"), ExtResource("9_dbqu2"), ExtResource("3_ne2vg"), ExtResource("10_xcm54")])
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
Floors = Array[int]([3, 2, 0, 4, 1, 5, 6])

View File

@@ -1,6 +1,7 @@
[gd_scene load_steps=102 format=4 uid="uid://bo20ffw2ygbks"]
[ext_resource type="Script" uid="uid://xd6tx3lifebl" path="res://src/map/dungeon/code/SpecialFloor.cs" id="1_j4ho3"]
<<<<<<< HEAD
[ext_resource type="Texture2D" uid="uid://ddrvsy7psmwig" path="res://src/map/dungeon/models/Outdated/Set B/35. Goddess of Guidance's Floor/GoG Room mirrored_DARKER_STONE_AREA_2.png" id="2_jbyuo"]
[ext_resource type="Texture2D" uid="uid://dk2cj5rcnkxnf" path="res://src/map/dungeon/models/Outdated/Set B/35. Goddess of Guidance's Floor/GoG Room mirrored_CEILING_AREA2.jpg" id="3_nadnf"]
[ext_resource type="Texture2D" uid="uid://bfr26em2xh1r1" path="res://src/map/dungeon/models/Outdated/Set B/35. Goddess of Guidance's Floor/GoG Room mirrored_STONE_PANEL_AREA2png.png" id="4_bb3ot"]
@@ -15,6 +16,22 @@
[ext_resource type="Texture2D" uid="uid://dd1jvmfs1cbbg" path="res://src/map/dungeon/models/Outdated/Set B/35. Goddess of Guidance's Floor/GoG Room mirrored_floral_single_tile.jpg" id="13_aytwf"]
[ext_resource type="Texture2D" uid="uid://nvg6i8gbgqjv" path="res://src/map/dungeon/models/Outdated/Set B/35. Goddess of Guidance's Floor/GoG Room mirrored_angkor_mural.jpg" id="14_tf4w3"]
[ext_resource type="Texture2D" uid="uid://3w1ac5fvks5v" path="res://src/map/dungeon/models/Outdated/Set B/35. Goddess of Guidance's Floor/GoG Room mirrored_area_2_big_tile.png" id="15_nduur"]
=======
[ext_resource type="Texture2D" uid="uid://ddrvsy7psmwig" path="res://src/map/dungeon/models/Set B/35. Goddess of Guidance's Floor/GoG Room mirrored_DARKER_STONE_AREA_2.png" id="2_jbyuo"]
[ext_resource type="Texture2D" uid="uid://dk2cj5rcnkxnf" path="res://src/map/dungeon/models/Set B/35. Goddess of Guidance's Floor/GoG Room mirrored_CEILING_AREA2.jpg" id="3_nadnf"]
[ext_resource type="Texture2D" uid="uid://bfr26em2xh1r1" path="res://src/map/dungeon/models/Set B/35. Goddess of Guidance's Floor/GoG Room mirrored_STONE_PANEL_AREA2png.png" id="4_bb3ot"]
[ext_resource type="Texture2D" uid="uid://bq8mvoumy8jmk" path="res://src/map/dungeon/models/Set B/35. Goddess of Guidance's Floor/GoG Room mirrored_swirled_column _AREA2.png" id="5_f7fde"]
[ext_resource type="Texture2D" uid="uid://i1x50ruj46r4" path="res://src/map/dungeon/models/Set B/35. Goddess of Guidance's Floor/GoG Room mirrored_asdasd.png" id="6_j4ho3"]
[ext_resource type="Texture2D" uid="uid://dmr6lrd2vv11p" path="res://src/map/dungeon/models/Set B/35. Goddess of Guidance's Floor/GoG Room mirrored_HAND-CYCLE-FLOOR.png" id="7_qt11j"]
[ext_resource type="Texture2D" uid="uid://000xg7ey7p71" path="res://src/map/dungeon/models/Set B/35. Goddess of Guidance's Floor/GoG Room mirrored_AREA_2_MAIN_STON2E.png" id="8_tkf4r"]
[ext_resource type="Texture2D" uid="uid://c7yaqdtmf0w4o" path="res://src/map/dungeon/models/Set B/35. Goddess of Guidance's Floor/GoG Room mirrored_swirled_column _AREA222.png" id="9_fs8fd"]
[ext_resource type="Texture2D" uid="uid://d2np2n5rkhhes" path="res://src/map/dungeon/models/Set B/35. Goddess of Guidance's Floor/GoG Room mirrored_WHITE METAL 2E.png" id="10_rfnlw"]
[ext_resource type="Texture2D" uid="uid://dti0ir01a1s87" path="res://src/map/dungeon/models/Set B/35. Goddess of Guidance's Floor/GoG Room mirrored_WHITE_layer_brick1.png" id="11_6bh8x"]
[ext_resource type="Texture2D" uid="uid://bxf4worc2uvfp" path="res://src/map/dungeon/models/Set B/35. Goddess of Guidance's Floor/GoG Room mirrored_burned-thing.png" id="12_itdxh"]
[ext_resource type="Texture2D" uid="uid://dd1jvmfs1cbbg" path="res://src/map/dungeon/models/Set B/35. Goddess of Guidance's Floor/GoG Room mirrored_floral_single_tile.jpg" id="13_aytwf"]
[ext_resource type="Texture2D" uid="uid://nvg6i8gbgqjv" path="res://src/map/dungeon/models/Set B/35. Goddess of Guidance's Floor/GoG Room mirrored_angkor_mural.jpg" id="14_tf4w3"]
[ext_resource type="Texture2D" uid="uid://3w1ac5fvks5v" path="res://src/map/dungeon/models/Set B/35. Goddess of Guidance's Floor/GoG Room mirrored_area_2_big_tile.png" id="15_nduur"]
>>>>>>> 7e9114bfd1f6c5dd447c4c4e54a2e8ccb9f38e24
[ext_resource type="Shader" uid="uid://beg8sp6kw66w8" path="res://src/map/map shaders/GOGROOM Water.gdshader" id="16_q4do2"]
[ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="17_j4ho3"]
[ext_resource type="PackedScene" uid="uid://bs56ccgosmu47" path="res://src/enemy/enemy_types/01. sproingy/Sproingy.tscn" id="18_qt11j"]

View File

@@ -1,26 +1,9 @@
[gd_scene load_steps=25 format=3 uid="uid://8f3dk16nj0dn"]
[gd_scene load_steps=8 format=3 uid="uid://8f3dk16nj0dn"]
[ext_resource type="Script" uid="uid://l1v4ppubryd3" path="res://src/ui/pause_menu/PauseDebugMenu.cs" id="1_a7f7f"]
[ext_resource type="FontFile" uid="uid://dp1k143v7cppw" path="res://src/ui/fonts/Lust_Sans_Regular.otf" id="1_dan2i"]
[ext_resource type="LabelSettings" uid="uid://wc363u5t1yi2" path="res://src/ui/label_settings/HeadingFont.tres" id="2_a7f7f"]
[ext_resource type="FontFile" uid="uid://dit3vylt7hmmx" path="res://src/ui/fonts/FT88-Regular.ttf" id="3_k06jx"]
[ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="5_274g5"]
[ext_resource type="PackedScene" uid="uid://bs56ccgosmu47" path="res://src/enemy/enemy_types/01. sproingy/Sproingy.tscn" id="6_ue0ua"]
[ext_resource type="PackedScene" uid="uid://b0gwivt7cw7nd" path="res://src/enemy/enemy_types/02. michael/Michael.tscn" id="7_gidvx"]
[ext_resource type="PackedScene" uid="uid://cvk007twac22c" path="res://src/enemy/enemy_types/03. filth_eater/FilthEater.tscn" id="8_m457y"]
[ext_resource type="PackedScene" uid="uid://bksq62muhk3h5" path="res://src/enemy/enemy_types/04. sara/Sara.tscn" id="9_i65lo"]
[ext_resource type="PackedScene" uid="uid://feegakykn3fv" path="res://src/enemy/enemy_types/05. ballos/Ballos.tscn" id="10_ct6et"]
[ext_resource type="PackedScene" uid="uid://dlw5cvutvypxn" path="res://src/enemy/enemy_types/06. chariot/Chariot.tscn" id="11_fk1r1"]
[ext_resource type="PackedScene" uid="uid://c6tqt27ql8s35" path="res://src/enemy/enemy_types/07. chinthe/Chinthe.tscn" id="12_yh23m"]
[ext_resource type="PackedScene" uid="uid://b8ewfgcjv60es" path="res://src/enemy/enemy_types/09. Agni/AgniDemon.tscn" id="13_tns3g"]
[ext_resource type="PackedScene" uid="uid://dpq17ej06uah1" path="res://src/enemy/enemy_types/9b. Aqueos Demon/AqueosDemon.tscn" id="14_fmyye"]
[ext_resource type="PackedScene" uid="uid://fosk3kt7vp8d" path="res://src/enemy/enemy_types/08a. Ambassador/Ambassador.tscn" id="15_1f6di"]
[ext_resource type="PackedScene" uid="uid://c5gbaybqm4cuk" path="res://src/enemy/enemy_types/08b. Ambassador (red)/AmbassadorRed.tscn" id="16_r6xvd"]
[ext_resource type="PackedScene" uid="uid://b4oliop60eghn" path="res://src/enemy/enemy_types/08c. Ambassador (steel)/AmbassadorSteel.tscn" id="17_bmukk"]
[ext_resource type="PackedScene" uid="uid://cmvimr0pvsgqy" path="res://src/enemy/enemy_types/10. Eden Pillar/Eden Pillar.tscn" id="18_6mn3f"]
[ext_resource type="PackedScene" uid="uid://boqjebx7yuiqy" path="res://src/enemy/enemy_types/11. Palan/Palan.tscn" id="19_gq2v4"]
[ext_resource type="PackedScene" uid="uid://5s7c4dsb1wwk" path="res://src/enemy/enemy_types/12. Shield of Heaven/ShieldOfHeaven.tscn" id="20_hd5x0"]
[ext_resource type="PackedScene" uid="uid://b3giib0jp3uod" path="res://src/enemy/enemy_types/13. gold sproingy/GoldSproingy.tscn" id="21_q6ugg"]
[sub_resource type="Theme" id="Theme_0tcdw"]
default_font = ExtResource("3_k06jx")
@@ -31,7 +14,7 @@ bg_color = Color(0.2484, 0.2484, 0.2484, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_1ctjd"]
[node name="Control" type="Control" node_paths=PackedStringArray("_enemyDatabase")]
[node name="Control" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
@@ -39,7 +22,6 @@ anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_a7f7f")
_enemyDatabase = NodePath("EnemyDatabase")
[node name="MarginContainer" type="MarginContainer" parent="."]
process_mode = 3
@@ -112,7 +94,34 @@ layout_mode = 2
focus_neighbor_top = NodePath("../SpawnItemDropDown")
focus_neighbor_bottom = NodePath(".")
theme_override_styles/normal = SubResource("StyleBoxFlat_1ctjd")
[node name="EnemyDatabase" parent="." instance=ExtResource("5_274g5")]
EnemyList = Array[PackedScene]([ExtResource("6_ue0ua"), ExtResource("7_gidvx"), ExtResource("8_m457y"), ExtResource("9_i65lo"), ExtResource("10_ct6et"), ExtResource("11_fk1r1"), ExtResource("12_yh23m"), ExtResource("13_tns3g"), ExtResource("14_fmyye"), ExtResource("15_1f6di"), ExtResource("16_r6xvd"), ExtResource("17_bmukk"), ExtResource("18_6mn3f"), ExtResource("19_gq2v4"), ExtResource("20_hd5x0"), ExtResource("21_q6ugg")])
SpawnRate = PackedFloat32Array()
item_count = 15
popup/item_0/text = "Sproingy"
popup/item_0/id = 0
popup/item_1/text = "Michael"
popup/item_1/id = 1
popup/item_2/text = "Filth Eater"
popup/item_2/id = 2
popup/item_3/text = "Sara"
popup/item_3/id = 3
popup/item_4/text = "Ballos"
popup/item_4/id = 4
popup/item_5/text = "Chariot"
popup/item_5/id = 5
popup/item_6/text = "Chinthe"
popup/item_6/id = 6
popup/item_7/text = "Ambassador Green"
popup/item_7/id = 7
popup/item_8/text = "Ambassador Red"
popup/item_8/id = 8
popup/item_9/text = "Ambassador Steel"
popup/item_9/id = 9
popup/item_10/text = "Agni"
popup/item_10/id = 10
popup/item_11/text = "Aqueos"
popup/item_11/id = 11
popup/item_12/text = "Palan"
popup/item_12/id = 12
popup/item_13/text = "Shield of Heaven"
popup/item_13/id = 13
popup/item_14/text = "Gold Sproingy"
popup/item_14/id = 14

View File

@@ -24,15 +24,30 @@ public partial class PauseDebugMenu : Control, IDebugMenu
[Node] public OptionButton SpawnEnemyDropDown { get; set; } = default!;
private ImmutableList<InventoryItem> _spawnableItems;
private ImmutableList<PackedScene> _spawnableEnemies;
[Export]
private EnemyDatabase _enemyDatabase;
private ImmutableList<string> _spawnableEnemies =
[
@"res://src/enemy/enemy_types/01. sproingy/Sproingy.tscn",
@"res://src/enemy/enemy_types/02. michael/Michael.tscn",
@"res://src/enemy/enemy_types/03. filth_eater/FilthEater.tscn",
@"res://src/enemy/enemy_types/04. sara/Sara.tscn",
@"res://src/enemy/enemy_types/05. ballos/Ballos.tscn",
@"res://src/enemy/enemy_types/06. chariot/Chariot.tscn",
@"res://src/enemy/enemy_types/07. chinthe/Chinthe.tscn",
@"res://src/enemy/enemy_types/08a. Ambassador/Ambassador.tscn",
@"res://src/enemy/enemy_types/08b. Ambassador (red)/AmbassadorRed.tscn",
@"res://src/enemy/enemy_types/08c. Ambassador (steel)/AmbassadorSteel.tscn",
@"res://src/enemy/enemy_types/09. Agni/AgniDemon.tscn",
@"res://src/enemy/enemy_types/9b. Aqueos Demon/AqueosDemon.tscn",
@"res://src/enemy/enemy_types/11. Palan/Palan.tscn",
@"res://src/enemy/enemy_types/12. Shield of Heaven/ShieldModelView.tscn",
@"res://src/enemy/enemy_types/13. gold sproingy/GoldSproingy.tscn"
];
private ItemDatabase _itemDatabase;
public override void _Ready()
{
<<<<<<< HEAD
VisibilityChanged += PauseDebugMenu_VisibilityChanged;
LoadNextFloorButton.Pressed += LoadNextFloorButton_Pressed;
_itemDatabase = new ItemDatabase();
@@ -50,6 +65,18 @@ public partial class PauseDebugMenu : Control, IDebugMenu
}
SpawnItemDropDown.AllowReselect = true;
SpawnEnemyDropDown.AllowReselect = true;
=======
VisibilityChanged += PauseDebugMenu_VisibilityChanged;
LoadNextFloorButton.Pressed += LoadNextFloorButton_Pressed;
_itemDatabase = new ItemDatabase();
_spawnableItems = _itemDatabase.Items;
foreach (var item in _spawnableItems)
SpawnItemDropDown.AddItem(item.ItemName);
SpawnItemDropDown.AllowReselect = true;
SpawnEnemyDropDown.AllowReselect = true;
>>>>>>> 7e9114bfd1f6c5dd447c4c4e54a2e8ccb9f38e24
SpawnItemDropDown.ItemSelected += SpawnItemDropDown_ItemSelected;
SpawnEnemyDropDown.ItemSelected += SpawnEnemyDropDown_ItemSelected;
@@ -57,10 +84,17 @@ public partial class PauseDebugMenu : Control, IDebugMenu
private void SpawnEnemyDropDown_ItemSelected(long index)
{
<<<<<<< HEAD
var enemyToSpawn = _spawnableEnemies.ElementAt((int)index);
var loadedEnemy = enemyToSpawn.Instantiate<Enemy>();
AddChild(loadedEnemy);
loadedEnemy.GlobalPosition = new Vector3(_player.CurrentPosition.X, _player.CurrentPosition.Y + 1, _player.CurrentPosition.Z) + (-_player.CurrentBasis.Z * 2);
=======
var enemyToSpawn = _spawnableEnemies.ElementAt((int)index);
var loadedEnemy = GD.Load<PackedScene>(enemyToSpawn).Instantiate<Enemy>();
AddChild(loadedEnemy);
loadedEnemy.GlobalPosition = new Vector3(_player.CurrentPosition.X, _player.CurrentPosition.Y + 1, _player.CurrentPosition.Z) + (-_player.CurrentBasis.Z * 2);
>>>>>>> 7e9114bfd1f6c5dd447c4c4e54a2e8ccb9f38e24
}
private void SpawnItemDropDown_ItemSelected(long index)