Implement most jewels
This commit is contained in:
@@ -109,7 +109,8 @@ public partial class InventoryMenu2 : Control, IInventoryMenu
|
||||
var item = _currentlySelected.Item.Value;
|
||||
if (_augmentMode)
|
||||
{
|
||||
//_player.AugmentItem(_augmentingJewel, item as EquipableItem);
|
||||
_player.ApplyNewAugment(_augmentingJewel, item as EquipableItem);
|
||||
_augmentMode = false;
|
||||
ResetInventoryState();
|
||||
}
|
||||
else if (item is EquipableItem equipable)
|
||||
@@ -120,18 +121,23 @@ public partial class InventoryMenu2 : Control, IInventoryMenu
|
||||
{
|
||||
_player.Equip(equipable);
|
||||
}
|
||||
foreach (var slot in ItemSlots)
|
||||
slot.SetItemEquipmentStatus(_player.EquipmentComponent.IsItemEquipped(slot.Item.Value));
|
||||
ResetInventoryState();
|
||||
}
|
||||
else if (item is Plastique plastique)
|
||||
{
|
||||
_game.SetItem(plastique);
|
||||
ResetInventoryState();
|
||||
}
|
||||
else if (item is Jewel jewel)
|
||||
{
|
||||
_augmentMode = true;
|
||||
AugmentMode(jewel);
|
||||
}
|
||||
else
|
||||
{
|
||||
_game.UseItem(_currentlySelected.Item.Value);
|
||||
ResetInventoryState();
|
||||
}
|
||||
|
||||
CloseActionMenu();
|
||||
}
|
||||
@@ -143,7 +149,7 @@ public partial class InventoryMenu2 : Control, IInventoryMenu
|
||||
_game.DropItem(_currentlySelected.Item.Value);
|
||||
CloseActionMenu();
|
||||
_gameRepo.CloseInventory();
|
||||
if (!_player.Inventory.Items.Contains(_currentlySelected.Item.Value))
|
||||
if (_currentlySelected != null && !_player.Inventory.Items.Contains(_currentlySelected.Item.Value))
|
||||
_currentlySelected = ItemSlots[previousItemInList];
|
||||
}
|
||||
|
||||
@@ -153,7 +159,7 @@ public partial class InventoryMenu2 : Control, IInventoryMenu
|
||||
_game.ThrowItem(_currentlySelected.Item.Value);
|
||||
CloseActionMenu();
|
||||
_gameRepo.CloseInventory();
|
||||
if (!_player.Inventory.Items.Contains(_currentlySelected.Item.Value))
|
||||
if (_currentlySelected != null && !_player.Inventory.Items.Contains(_currentlySelected.Item.Value))
|
||||
_currentlySelected = ItemSlots[previousItemInList];
|
||||
}
|
||||
|
||||
@@ -162,10 +168,16 @@ public partial class InventoryMenu2 : Control, IInventoryMenu
|
||||
if (ActionPanel.Visible && Input.IsActionJustPressed(GameInputs.Interact))
|
||||
{
|
||||
CloseActionMenu();
|
||||
_augmentMode = false;
|
||||
SfxDatabase.Instance.Play(SoundEffect.CancelUI);
|
||||
GetViewport().SetInputAsHandled();
|
||||
}
|
||||
else if (_augmentMode && !ActionPanel.Visible && Input.IsActionJustPressed(GameInputs.Interact))
|
||||
{
|
||||
GetViewport().SetInputAsHandled();
|
||||
_augmentMode = false;
|
||||
SfxDatabase.Instance.Play(SoundEffect.CancelUI);
|
||||
ResetInventoryState();
|
||||
}
|
||||
if (!ActionPanel.Visible && Input.IsActionJustPressed(GameInputs.MoveUp))
|
||||
{
|
||||
if (ItemSlots.First(x => x.Visible) != _currentlySelected)
|
||||
@@ -216,12 +228,20 @@ public partial class InventoryMenu2 : Control, IInventoryMenu
|
||||
{
|
||||
var itemIsEquipped = _player.EquipmentComponent.IsItemEquipped(equipable);
|
||||
InteractButton.Text = itemIsEquipped ? "Unequip" : "Equip";
|
||||
InteractButton.Disabled = itemIsEquipped && equipable.Glued;
|
||||
ThrowButton.Disabled = itemIsEquipped;
|
||||
ThrowButton.FocusMode = itemIsEquipped ? FocusModeEnum.None : FocusModeEnum.All;
|
||||
DropButton.Disabled = itemIsEquipped;
|
||||
DropButton.FocusMode = itemIsEquipped ? FocusModeEnum.None : FocusModeEnum.All;
|
||||
InteractButton.GrabFocus();
|
||||
|
||||
if ((item is Weapon weapon && _player.EquipmentComponent.EquippedWeapon.Value.Glued) ||
|
||||
(item is Armor && _player.EquipmentComponent.EquippedArmor.Value.Glued) ||
|
||||
(item is Accessory && _player.EquipmentComponent.EquippedAccessory.Value.Glued))
|
||||
{
|
||||
InteractButton.Disabled = true;
|
||||
InteractButton.FocusMode = FocusModeEnum.None;
|
||||
ThrowButton.GrabFocus();
|
||||
}
|
||||
}
|
||||
else if (item is Plastique plastique)
|
||||
{
|
||||
@@ -250,8 +270,6 @@ public partial class InventoryMenu2 : Control, IInventoryMenu
|
||||
|
||||
private void ResetInventoryState()
|
||||
{
|
||||
_augmentMode = false;
|
||||
|
||||
foreach (var item in ItemSlots)
|
||||
{
|
||||
item.Hide();
|
||||
@@ -271,18 +289,28 @@ public partial class InventoryMenu2 : Control, IInventoryMenu
|
||||
{
|
||||
var item = _player.Inventory.Items[i];
|
||||
ItemSlots[i].Item.OnNext(item);
|
||||
ItemSlots[i].FocusMode = FocusModeEnum.All;
|
||||
ItemSlots[i].Disabled = false;
|
||||
ItemSlots[i].Show();
|
||||
ItemSlots[i].SetItemEquipmentStatus(_player.EquipmentComponent.IsItemEquipped(item));
|
||||
if (item is IStackable stackable)
|
||||
ItemCountLabels[i].Text = $"x{stackable.Count.Value:D2}";
|
||||
|
||||
if (item is EquipableItem equipable && equipable.Glued)
|
||||
{
|
||||
ItemSlots[i].FocusMode = FocusModeEnum.None;
|
||||
ItemSlots[i].Disabled = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
ItemSlots[i].FocusMode = FocusModeEnum.All;
|
||||
ItemSlots[i].Disabled = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (_currentlySelected == null || _currentlySelected.Disabled || _currentlySelected.FocusMode == FocusModeEnum.None)
|
||||
_currentlySelected = ItemSlots.FirstOrDefault(x => !x.Disabled);
|
||||
|
||||
if (_currentlySelected != null)
|
||||
_currentlySelected.GrabFocus();
|
||||
else
|
||||
_currentlySelected = ItemSlots.First();
|
||||
}
|
||||
|
||||
private void Slot_FocusEntered(IItemSlot slot)
|
||||
@@ -316,7 +344,8 @@ public partial class InventoryMenu2 : Control, IInventoryMenu
|
||||
|
||||
private void CloseActionMenu()
|
||||
{
|
||||
_currentlySelected.GrabFocus();
|
||||
if (_currentlySelected != null)
|
||||
_currentlySelected.GrabFocus();
|
||||
ActionPanel.Hide();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -76,6 +76,14 @@ public partial class ItemRescueMenu : Control
|
||||
InteractButton.Pressed += InteractButton_Pressed;
|
||||
DropButton.Pressed += DropButton_Pressed;
|
||||
_currentlySelected = ItemSlot01;
|
||||
VisibilityChanged += ItemRescueMenu_VisibilityChanged;
|
||||
}
|
||||
|
||||
private void ItemRescueMenu_VisibilityChanged()
|
||||
{
|
||||
ResetInventoryState();
|
||||
_currentlySelected = ItemSlot01;
|
||||
_currentlySelected.GrabFocus();
|
||||
}
|
||||
|
||||
private void InteractButton_Pressed()
|
||||
|
||||
Reference in New Issue
Block a user