void OnItemSlotClick(int slotIdx, UIItemSlot slotInstance, bool isEquipped) { if (activeSlot == null) { activeSlot = new ActiveSlot(slotIdx, slotInstance, isEquipped); slotInstance.SetSelected(true); } else { // ask character to update their inventory state if (CurrentCharacter.SwapItems(activeSlot.SlotIndex, activeSlot.IsEquipped, slotIdx, isEquipped)) { UpdateSlot(activeSlot.SlotIndex, activeSlot.IsEquipped); UpdateSlot(slotIdx, isEquipped); } activeSlot.SlotInstance.SetSelected(false); activeSlot = null; } }