Speeeeeed up
This commit is contained in:
Binary file not shown.
@@ -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
|
||||
Binary file not shown.
@@ -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
Binary file not shown.
@@ -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
|
||||
Binary file not shown.
@@ -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
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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; }
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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])
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
[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"]
|
||||
[ext_resource type="Shader" path="res://src/map/map shaders/GOGROOM Water.gdshader" id="16_q4do2"]
|
||||
[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"]
|
||||
[ext_resource type="PackedScene" uid="uid://b0gwivt7cw7nd" path="res://src/enemy/enemy_types/02. michael/Michael.tscn" id="19_tkf4r"]
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -24,10 +24,24 @@ 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;
|
||||
|
||||
@@ -37,17 +51,10 @@ public partial class PauseDebugMenu : Control, IDebugMenu
|
||||
LoadNextFloorButton.Pressed += LoadNextFloorButton_Pressed;
|
||||
_itemDatabase = new ItemDatabase();
|
||||
_spawnableItems = _itemDatabase.Items;
|
||||
_spawnableEnemies = [];
|
||||
|
||||
foreach (var item in _spawnableItems)
|
||||
SpawnItemDropDown.AddItem(item.ItemName);
|
||||
|
||||
_spawnableEnemies = [.. _enemyDatabase.EnemyList];
|
||||
|
||||
foreach (var enemy in _spawnableEnemies)
|
||||
{
|
||||
var tempEnemy = enemy.Instantiate<Enemy>();
|
||||
SpawnEnemyDropDown.AddItem(tempEnemy.Name);
|
||||
}
|
||||
SpawnItemDropDown.AllowReselect = true;
|
||||
SpawnEnemyDropDown.AllowReselect = true;
|
||||
|
||||
@@ -58,7 +65,7 @@ public partial class PauseDebugMenu : Control, IDebugMenu
|
||||
private void SpawnEnemyDropDown_ItemSelected(long index)
|
||||
{
|
||||
var enemyToSpawn = _spawnableEnemies.ElementAt((int)index);
|
||||
var loadedEnemy = enemyToSpawn.Instantiate<Enemy>();
|
||||
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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user