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);
            }
        }
Exemplo n.º 2
0
 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();
     }
 }