Break item on floor change whether its equipped or not

This commit is contained in:
2026-06-08 20:55:21 -07:00
parent 10a0dd69d1
commit b30a8f3eb4
3 changed files with 14 additions and 22 deletions
+7 -18
View File
@@ -421,25 +421,14 @@ public partial class Game : Node3D, IGame
.Handle((in GameState.Output.LoadNextFloor _) =>
{
EmitSignal(SignalName.OnLoadLevelRequest);
var breakableItems = _player.Inventory.Items.Where(x => x.ItemTag == ItemTag.BreaksOnFloorExit).ToList();
foreach (IEquipableItem breakableItem in breakableItems)
{
if (_player.EquipmentComponent.IsItemEquipped(breakableItem))
_player.Unequip(breakableItem);
_player.Inventory.Remove(breakableItem);
}
Task.Run(() => Save());
if (_player.EquipmentComponent.EquippedWeapon.Value.ItemTag == ItemTag.BreaksOnFloorExit)
{
var itemToDestroy = _player.EquipmentComponent.EquippedWeapon.Value;
_player.Unequip(itemToDestroy);
_player.Inventory.Remove(itemToDestroy);
}
if (_player.EquipmentComponent.EquippedArmor.Value.ItemTag == ItemTag.BreaksOnFloorExit)
{
var itemToDestroy = _player.EquipmentComponent.EquippedArmor.Value;
_player.Unequip(itemToDestroy);
_player.Inventory.Remove(itemToDestroy);
}
if (_player.EquipmentComponent.EquippedAccessory.Value.ItemTag == ItemTag.BreaksOnFloorExit)
{
var itemToDestroy = _player.EquipmentComponent.EquippedAccessory.Value;
_player.Unequip(itemToDestroy);
_player.Inventory.Remove(itemToDestroy);
}
LoadNextLevel.FadeOut();
})
.Handle((in GameState.Output.ReturnToOverworld _) =>