Drop item
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user