public override void ItemRightClick(ItemSlot p_slot) { if (p_slot.Item == null) { return; } if (IngameController.Instance.BilateralScreen.LootScreen.IsOpen) { return; } PartyInventoryController partyInventoryController = (PartyInventoryController)m_inventory; ConversationManager conversationManager = LegacyLogic.Instance.ConversationManager; if (conversationManager.CurrentNpc != null && conversationManager.CurrentNpc.TradingInventory.IsTrading && conversationManager.CurrentNpc.StaticData.AllowItemSell) { BaseItem item = p_slot.Item; Consumable consumable = item as Consumable; Equipment equipment = item as Equipment; if (consumable != null && consumable.Counter > 1) { PopupRequest.Instance.OpenRequest(PopupRequest.ERequestType.SPLIT_ITEMS, String.Empty, LocaManager.GetText("POPUP_REQUEST_ITEMS_SELL_LABEL"), new PopupRequest.RequestCallback(ItemSellSplitterCallback)); PopupRequest.Instance.ItemSplitter.Open(PopupItemSplitter.Mode.SELL, consumable.Counter, consumable, p_slot.Index, null, -1); } else if (equipment != null && ((equipment.Prefixes.Count > 0 && equipment.Suffixes.Count > 0) || equipment.IsRelic() || !equipment.Identified)) { m_itemToSell = p_slot; PopupRequest.Instance.OpenRequest(PopupRequest.ERequestType.CONFIRM_CANCEL, String.Empty, LocaManager.GetText("POPUP_REQUEST_CONFIRM_SELL_ITEM", p_slot.Item.Name), new PopupRequest.RequestCallback(SellItemCallback)); } else { partyInventoryController.SellItem(p_slot.Item, p_slot.Index, 1); } } else if (p_slot.Item is Consumable) { partyInventoryController.ConsumeItem(p_slot.Index, LegacyLogic.Instance.WorldManager.Party.CurrentCharacter); } else if (p_slot.Item is Equipment) { DragDropManager.Instance.ShortcutRightClick(p_slot); } }
private void OnDrop() { if (UICamera.currentTouchID == -1) { if (DragDropManager.Instance.DraggedItem is ItemDragObject) { Character selectedCharacter = LegacyLogic.Instance.WorldManager.Party.SelectedCharacter; ItemDragObject itemDragObject = (ItemDragObject)DragDropManager.Instance.DraggedItem; if (itemDragObject.ItemSlot != null && !selectedCharacter.DoneTurn && !selectedCharacter.ConditionHandler.CantDoAnything()) { LegacyLogic.Instance.WorldManager.Party.SelectCharacter(selectedCharacter.Index); Int32 index = itemDragObject.ItemSlot.Index; Potion potion = itemDragObject.Item as Potion; Equipment equipment = itemDragObject.Item as Equipment; PartyInventoryController partyInventoryController = itemDragObject.ItemSlot.Parent.Inventory as PartyInventoryController; if (potion != null && partyInventoryController != null) { partyInventoryController.ConsumeItem(index, selectedCharacter.Index); } if (equipment != null) { Int32 autoSlot = (Int32)selectedCharacter.Equipment.GetAutoSlot(equipment); if (autoSlot >= 0 && selectedCharacter.Equipment.IsItemPlaceableAt(equipment, autoSlot)) { EquipCommand p_command = new EquipCommand(selectedCharacter.Equipment, partyInventoryController, selectedCharacter.Equipment.GetItemAt((EEquipSlots)autoSlot), equipment, autoSlot, index); if (LegacyLogic.Instance.UpdateManager.PartyTurnActor.CanDoCommand(p_command, LegacyLogic.Instance.WorldManager.Party.CurrentCharacter)) { LegacyLogic.Instance.CommandManager.AddCommand(p_command); } } } } } DragDropManager.Instance.CancelDragAction(); } }