Drop item

This commit is contained in:
2024-09-22 14:00:52 -07:00
parent 01477b9a0e
commit 490f0d17d2
25 changed files with 401 additions and 257 deletions

View File

@@ -262,7 +262,7 @@ public partial class InventoryMenu : Control, IInventoryMenu
var currentItem = ItemSlots.ElementAt(_currentIndex).Item;
if (currentItem is IEquipable equipable)
if (currentItem is IEquipableItem equipable)
{
var isEquipped = GameRepo.PlayerData.Inventory.IsEquipped(equipable);
UseButton.Text = isEquipped ? "Unequip" : "Equip";
@@ -335,14 +335,14 @@ public partial class InventoryMenu : Control, IInventoryMenu
itemSlot.Item = item;
ItemsPage.AddChildEx(itemSlot);
if (itemSlot.Item is IEquipable equipable && GameRepo.PlayerData.Inventory.IsEquipped(equipable))
if (itemSlot.Item is IEquipableItem equipable && GameRepo.PlayerData.Inventory.IsEquipped(equipable))
itemSlot.SetEquippedItemStyle();
}
if (ItemSlots.Any())
{
ItemSlots.ElementAt(_currentIndex).SetSelectedItemStyle();
if (ItemSlots.ElementAt(_currentIndex).Item is IEquipable equipable && GameRepo.PlayerData.Inventory.IsEquipped(equipable))
if (ItemSlots.ElementAt(_currentIndex).Item is IEquipableItem equipable && GameRepo.PlayerData.Inventory.IsEquipped(equipable))
ItemSlots.ElementAt(_currentIndex).SetEquippedSelectedItemStyle();
}
}
@@ -351,7 +351,7 @@ public partial class InventoryMenu : Control, IInventoryMenu
{
await ToSignal(GetTree().CreateTimer(0.1f), "timeout");
itemSlot.SetItemStyle();
if (itemSlot.Item is IEquipable equipable && GameRepo.PlayerData.Inventory.IsEquipped(equipable))
if (itemSlot.Item is IEquipableItem equipable && GameRepo.PlayerData.Inventory.IsEquipped(equipable))
itemSlot.SetEquippedItemStyle();
}
@@ -366,7 +366,7 @@ public partial class InventoryMenu : Control, IInventoryMenu
private async Task EquipOrUnequipItem()
{
var itemSlot = ItemSlots[_currentIndex];
if (itemSlot.Item is IEquipable equipableItem)
if (itemSlot.Item is IEquipableItem equipableItem)
{
if (GameRepo.PlayerData.Inventory.IsEquipped(equipableItem))
{
@@ -392,12 +392,11 @@ public partial class InventoryMenu : Control, IInventoryMenu
private async void UseButtonPressed()
{
var currentItem = ItemSlots[_currentIndex].Item;
if (currentItem is IEquipable)
if (currentItem is IEquipableItem)
await EquipOrUnequipItem();
else if (currentItem is ConsumableItem consumable)
else if (currentItem is IUsableItem usable)
{
GameRepo.PlayerData.Inventory.Use(consumable);
GameEventDepot.OnHealingItemConsumed(consumable.ConsumableItemInfo);
usable.Use();
if (_currentIndex >= ItemSlots.Length - 1)
_currentIndex--;
if (_currentIndex <= 0)
@@ -409,17 +408,23 @@ public partial class InventoryMenu : Control, IInventoryMenu
{
var currentItem = ItemSlots[_currentIndex].Item;
if (_currentIndex >= ItemSlots.Length - 1)
_currentIndex--;
if (_currentIndex <= 0)
_currentIndex = 0;
EmitSignal(SignalName.ClosedMenu);
GameRepo.PlayerData.Inventory.Throw(currentItem);
if (currentItem is IThrowableItem throwable)
{
throwable.Throw();
if (_currentIndex >= ItemSlots.Length - 1)
_currentIndex--;
if (_currentIndex <= 0)
_currentIndex = 0;
EmitSignal(SignalName.ClosedMenu);
}
}
private async void DropButtonPressed()
{
var currentItem = ItemSlots[_currentIndex].Item;
Game.DropItem(currentItem);
if (_currentIndex >= ItemSlots.Length - 1)
_currentIndex--;
@@ -427,7 +432,6 @@ public partial class InventoryMenu : Control, IInventoryMenu
_currentIndex = 0;
EmitSignal(SignalName.ClosedMenu);
GameRepo.PlayerData.Inventory.Drop(currentItem);
}
private enum InventoryPageNumber

View File

@@ -90,7 +90,7 @@ public partial class ItemSlot : HBoxContainer, IItemSlot
}
public void SetSelectedItemStyle()
{
if (Item is IEquipable equipableItem && GameRepo.PlayerData.Inventory.IsEquipped(equipableItem))
if (Item is IEquipableItem equipableItem && GameRepo.PlayerData.Inventory.IsEquipped(equipableItem))
{
ItemName.LabelSettings = SelectedEquippedItemFont;
//EquipBonus.LabelSettings = EquippedItemFont;