Fixed teleport enemies bug (swapped Y and Z values....)

This commit is contained in:
2026-02-26 20:06:18 -08:00
parent c043c6ad04
commit 0c4a424a4d
3 changed files with 10 additions and 20 deletions

View File

@@ -20,25 +20,15 @@ public class EffectService
_map = map;
}
public void TeleportEnemiesToCurrentRoom()
public void TeleportEnemiesToCurrentRoom(List<IEnemy> enemyList)
{
var currentFloor = _game.CurrentFloor;
var rooms = currentFloor.Rooms;
var currentRoom = _map.GetPlayersCurrentRoom();
if (currentRoom is not MonsterRoom)
return;
var validRooms = rooms.OfType<MonsterRoom>().ToList();
if (currentRoom is MonsterRoom monsterRoom)
validRooms.Remove(monsterRoom);
var currentMonsterRoom = (MonsterRoom)currentRoom;
var enemyList = validRooms.SelectMany(x => x.GetEnemiesInCurrentRoom()).OfType<Enemy>();
foreach (var enemy in enemyList)
enemy.MoveEnemyToNewRoom(currentMonsterRoom);
if (currentRoom is MonsterRoom currentMonsterRoom)
{
foreach (var enemy in enemyList)
enemy.MoveEnemyToNewRoom(currentMonsterRoom);
}
}
public void KillHalfEnemiesInRoom()
@@ -48,7 +38,7 @@ public class EffectService
return;
var currentMonsterRoom = (MonsterRoom)currentRoom;
var enemyList = currentMonsterRoom.GetEnemiesInCurrentRoom().OfType<Enemy>().ToList();
var enemyList = currentMonsterRoom.GetEnemiesInCurrentRoom().OfType<IEnemy>().ToList();
var enemiesToKill = enemyList.Count / 2;
for (var i = 0; i < enemiesToKill; i++)
enemyList[i].Die();
@@ -61,7 +51,7 @@ public class EffectService
if (currentRoom is not MonsterRoom)
return;
var currentEnemies = currentRoom.EnemiesInRoom.OfType<Enemy>().ToList();
var currentEnemies = currentRoom.EnemiesInRoom.OfType<IEnemy>().ToList();
foreach (var enemy in currentEnemies)
{
enemy.OnMorph();