Various enemy debugging stuff
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user