Implement Gospel of Escape
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user