Various enemy debugging stuff

This commit is contained in:
2025-04-10 02:10:49 -07:00
parent 753ba60f0f
commit 078bfb9e45
15 changed files with 909 additions and 789 deletions

View File

@@ -1,6 +1,7 @@
using Chickensoft.AutoInject;
using Chickensoft.Introspection;
using Godot;
using System;
using System.Collections.Immutable;
using System.Linq;
using Zennysoft.Ma.Adapter;
@@ -23,33 +24,41 @@ public partial class PauseDebugMenu : Control, IDebugMenu
[Node] public OptionButton SpawnEnemyDropDown { get; set; } = default!;
private ImmutableList<InventoryItem> _spawnableItems;
private ImmutableList<PackedScene> _spawnableEnemies;
private ImmutableList<string> _spawnableEnemies;
[Export]
private EnemyDatabase _enemyDatabase;
private ItemDatabase _itemDatabase;
private string _sproingyScene = @"res://src/enemy/enemy_types/01. sproingy/Sproingy.tscn";
private string _michaelScene = @"res://src/enemy/enemy_types/02. michael/Michael.tscn";
private string _filthEaterScene = @"res://src/enemy/enemy_types/03. filth_eater/FilthEater.tscn";
public override void _Ready()
{
VisibilityChanged += PauseDebugMenu_VisibilityChanged;
LoadNextFloorButton.Pressed += LoadNextFloorButton_Pressed;
_itemDatabase = new ItemDatabase();
_spawnableItems = _itemDatabase.Items;
_spawnableEnemies = [];
foreach (var item in _spawnableItems)
SpawnItemDropDown.AddItem(item.ItemName, _spawnableItems.IndexOf(item));
SpawnItemDropDown.AddItem(item.ItemName);
_spawnableEnemies = [.. _enemyDatabase.EnemyList];
foreach (var enemy in _spawnableEnemies)
{
var tempEnemy = enemy.Instantiate<Enemy>();
SpawnEnemyDropDown.AddItem(tempEnemy.Name);
}
SpawnItemDropDown.ItemSelected += SpawnItemDropDown_ItemSelected;
_spawnableEnemies = [_sproingyScene, _michaelScene, _filthEaterScene];
SpawnEnemyDropDown.ItemSelected += SpawnEnemyDropDown_ItemSelected;
}
private void SpawnEnemyDropDown_ItemSelected(long index)
{
var enemyToSpawn = _spawnableEnemies.ElementAt((int)index);
var loadedEnemy = enemyToSpawn.Instantiate<Enemy>();
loadedEnemy.GlobalPosition = new Vector3(_player.CurrentPosition.X, _player.CurrentPosition.Y + 1, _player.CurrentPosition.Z) + (-_player.CurrentBasis.Z * 2);
AddChild(loadedEnemy);
}
private void SpawnItemDropDown_ItemSelected(long index)