Exemplo n.º 1
0
 private void ItemSellSplitterCallback(PopupRequest.EResultType p_result, String p_inputString)
 {
     if (p_result == PopupRequest.EResultType.CONFIRMED)
     {
         PartyInventoryController partyInventoryController = LegacyLogic.Instance.WorldManager.Party.Inventory;
         if (partyInventoryController.GetItemAt(PopupRequest.Instance.ItemSplitter.ItemSlotIndex) != PopupRequest.Instance.ItemSplitter.Item)
         {
             partyInventoryController = LegacyLogic.Instance.WorldManager.Party.MuleInventory;
         }
         Int32 count = PopupRequest.Instance.ItemSplitter.Count;
         partyInventoryController.SellItem(PopupRequest.Instance.ItemSplitter.Item, PopupRequest.Instance.ItemSplitter.ItemSlotIndex, count);
     }
     PopupRequest.Instance.ItemSplitter.Finish();
 }
        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);
            }
        }