Fix really annoying bug on focus modes. i forgot what else i did but probably added armor

This commit is contained in:
2026-02-16 23:56:16 -08:00
parent 017be896f3
commit 1042b86d2b
15 changed files with 223 additions and 113 deletions

View File

@@ -54,7 +54,6 @@ public partial class InventoryMenu : Control, IInventoryMenu
ActionPanel.ReturnToGameAction += ActionPanel_ReturnToGameAction;
ActionPanel.AugmentMenuRequested += ActionPanel_AugmentMenuRequested;
AugmentMenu.AugmentMenuClosing += AugmentMenu_AugmentMenuClosing;
AugmentMenu.FocusMode = FocusModeEnum.None;
_player.EquipmentComponent.EquipmentChanged += EquipmentChanged;
_player.AttackComponent.CurrentAttack.Changed += AttackChanged;
_player.AttackComponent.MaximumAttack.Changed += AttackChanged;
@@ -79,9 +78,11 @@ public partial class InventoryMenu : Control, IInventoryMenu
public override void _Input(InputEvent @event)
{
if (Input.IsActionJustPressed(GameInputs.MoveUp) && _currentlySelected != ItemSlots.First())
var validSelectableItems = _player.Inventory.Items.Except(_player.Inventory.Items.OfType<IEquipableItem>().Where(x => x.Glued)).ToList();
if (Input.IsActionJustPressed(GameInputs.MoveUp) && _currentlySelected.Item.Value != validSelectableItems.First())
SfxDatabase.Instance.Play(SoundEffect.MoveUI);
if (Input.IsActionJustPressed(GameInputs.MoveDown) && _currentlySelected != ItemSlots.Last(x => x.Item.Value != null))
if (Input.IsActionJustPressed(GameInputs.MoveDown) && _currentlySelected.Item.Value != validSelectableItems.Last())
SfxDatabase.Instance.Play(SoundEffect.MoveUI);
if (Input.IsActionJustPressed(GameInputs.Interact))
SfxDatabase.Instance.Play(SoundEffect.CancelUI);
@@ -93,8 +94,6 @@ public partial class InventoryMenu : Control, IInventoryMenu
ItemSlots.ForEach(x => x.ItemPressed -= ItemPressed);
ItemSlots.ForEach(x => x.ItemSelected -= ItemSelected);
MenuPanel.Hide();
MenuPanel.FocusMode = FocusModeEnum.None;
AugmentMenu.FocusMode = FocusModeEnum.All;
SetProcessInput(false);
AugmentMenu.SetProcessInput(true);
AugmentMenu.OpenAugmentMenu(_currentlySelected.Item.Value as IAugmentItem);
@@ -136,9 +135,7 @@ public partial class InventoryMenu : Control, IInventoryMenu
_currentlySelected = null;
if (_currentlySelected == null && validSelectableItems.Count > 0)
{
_currentlySelected = ItemSlots.FirstOrDefault(x => x.Item.Value == validSelectableItems.First());
}
if (validSelectableItems.Count > 0)
_currentlySelected.FocusItem();
@@ -167,8 +164,6 @@ public partial class InventoryMenu : Control, IInventoryMenu
ItemSlots.ForEach(x => x.ItemPressed += ItemPressed);
ItemSlots.ForEach(x => x.ItemSelected += ItemSelected);
MenuPanel.Show();
MenuPanel.FocusMode = FocusModeEnum.All;
AugmentMenu.FocusMode = FocusModeEnum.None;
SetProcessInput(true);
AugmentMenu.SetProcessInput(false);
AugmentMenu.Hide();