Remove in-progress work that isn't working well

This commit is contained in:
2024-09-01 12:59:48 -07:00
parent ea99e88535
commit b1ef3dbaab
52 changed files with 1521 additions and 166 deletions

View File

@@ -25,8 +25,12 @@ public partial class DungeonRoom : Node3D, IDungeonRoom, IProvide<DungeonRoomLog
[Node] public Node3D ItemSpawnPoints { get; set; } = default!;
[Node] public Node3D EnemySpawnPoints { get; set; } = default!;
[Node] public ItemDatabase ItemDatabase { get; set; } = default!;
[Node] public EnemyDatabase EnemyDatabase { get; set; } = default!;
public DungeonRoomLogic.IBinding DungeonRoomBinding { get; set; } = default!;
public void Setup()
@@ -34,10 +38,11 @@ public partial class DungeonRoom : Node3D, IDungeonRoom, IProvide<DungeonRoomLog
DungeonRoomLogic = new DungeonRoomLogic();
DungeonRoomLogic.Set(this as IDungeonRoom);
DungeonRoomLogic.Set(GameRepo);
PopulateRoom();
SpawnItems();
SpawnEnemies();
}
private void PopulateRoom()
private void SpawnItems()
{
var itemSpawnPoints = ItemSpawnPoints.GetChildren();
var rng = new RandomNumberGenerator();
@@ -58,6 +63,26 @@ public partial class DungeonRoom : Node3D, IDungeonRoom, IProvide<DungeonRoomLog
}
}
private void SpawnEnemies()
{
var rng = new RandomNumberGenerator();
rng.Randomize();
var enemySpawnPoints = EnemySpawnPoints.GetChildren();
var numberOfEnemiesToSpawn = rng.RandiRange(1, enemySpawnPoints.Count);
foreach (Marker3D spawnPoint in enemySpawnPoints)
{
if (numberOfEnemiesToSpawn <= 0)
break;
numberOfEnemiesToSpawn--;
var enemy = EnemyDatabase.EnemyList[rng.RandWeighted(EnemyDatabase.SpawnRate)];
var instantiatedEnemy = enemy.Instantiate<Enemy>();
instantiatedEnemy.Position = spawnPoint.Position;
AddChild(instantiatedEnemy);
}
}
public void OnResolved()
{
DungeonRoomBinding = DungeonRoomLogic.Bind();