Implement Gospel of Escape

This commit is contained in:
2025-03-03 22:03:16 -08:00
parent 4baa492ab1
commit 14b7093e00
5 changed files with 45 additions and 17 deletions

View File

@@ -73,6 +73,9 @@ public partial class ThrowableItem : Node3D, IUsableItem
if (_throwableItemStats.ThrowableItemTags.Contains(ThrowableItemTag.CanChangeAffinity))
ChangeAffinity();
if (_throwableItemStats.ThrowableItemTags.Contains(ThrowableItemTag.WarpToExitIfFound))
WarpToExit(Player);
}
public void TeleportToRandomRoom(IEnemy enemy)
@@ -127,4 +130,17 @@ public partial class ThrowableItem : Node3D, IUsableItem
$"Inflicts {_throwableItemStats.ElementType} damage when thrown." +
$"{System.Environment.NewLine}Use item to change Affinity.";
}
private void WarpToExit(IPlayer player)
{
var exitRoom = Game.CurrentFloor.Rooms.OfType<ExitRoom>().Single();
if (exitRoom.PlayerDiscoveredRoom)
player.TeleportPlayer(exitRoom.PlayerSpawn.GlobalPosition);
}
public void WarpToExit(IEnemy enemy)
{
var exitRoom = Game.CurrentFloor.Rooms.OfType<ExitRoom>().Single();
enemy.SetEnemyGlobalPosition(exitRoom.PlayerSpawn.GlobalPosition);
}
}