public void OnInventorySlotClick(UiSlot uiSlot) { RefreshPrevSelectedSlot(); if (_prevSelectedSlot == uiSlot) { if (uiSlot.ItemModel.Item is ConsumableItem) { if (uiSlot.ItemModel.Amount == 1) { uiSlot.SetActiveSlot(false); } UseItem(uiSlot.ItemModel); } else { uiSlot.SetActiveSlot(false); } } else if (_prevSelectedSlot == null) { if (uiSlot.ItemModel != null) { uiSlot.SetActiveSlot(true); } } else { if (uiSlot.ItemModel == null || uiSlot.ItemModel.Item == null) { if (_prevSelectedSlot.ItemModel.Amount == 1) { _prevSelectedSlot.SetActiveSlot(false); } uiSlot.SetData(_gameManager, HolderObjectFactory.GetItem(_prevSelectedSlot.ItemModel.Item.GetType(), 1)); _prevSelectedSlot.ChangeAmount(1); } else if (uiSlot.ItemModel.Item.GetType() == _prevSelectedSlot.ItemModel.Item.GetType() && (uiSlot.ItemModel.Item.Durability == null || !uiSlot.ItemModel.Item.ShowDurability)) { if (_prevSelectedSlot.ItemModel.Amount == 1) { _prevSelectedSlot.SetActiveSlot(false); } _gameManager.PlayerModel.ChangeItemAmount(uiSlot, -1); _gameManager.PlayerModel.ChangeItemAmount(_prevSelectedSlot, 1); } else { var curModel = uiSlot.ItemModel; uiSlot.SetData(_gameManager, _prevSelectedSlot.ItemModel); _prevSelectedSlot.SetData(_gameManager, curModel); _prevSelectedSlot.SetActiveSlot(false); } } }