예제 #1
0
        // NGuiInvGrid
        public static bool TransferItemStackToBagAndBeltNoUpdate(
            NGuiInvGrid _bag,
            NGuiInvGrid _belt,
            ref InventoryField _itemStack,
            HashSet <int> _modifiedBagSlots,
            HashSet <int> _modifiedBeltSlots)
        {
            if (_itemStack.md0002())
            {
                return(false);
            }
            bool flag = _belt.TransferItemStackNoUpdate(ref _itemStack, _modifiedBeltSlots, false);

            if (_itemStack.md0002())
            {
                return(flag);
            }
            flag = (_bag.TransferItemStackNoUpdate(ref _itemStack, _modifiedBagSlots, false) || flag);
            if (_itemStack.md0002())
            {
                return(flag);
            }
            flag = (_belt.TransferItemStackNoUpdate(ref _itemStack, _modifiedBeltSlots, true) || flag);
            if (_itemStack.md0002())
            {
                return(flag);
            }
            return(_bag.TransferItemStackNoUpdate(ref _itemStack, _modifiedBagSlots, true) || flag);
        }
예제 #2
0
 // NGuiDragAndDropItem
 public static bool MoveItemToQuickTakeTarget(ref NGuiDragAndDropItem dragAndDropItem, int _itemCount)
 {
     if (dragAndDropItem.md000c() != null && dragAndDropItem.md000c().grid.UiGridQuickTake != null)
     {
         NGuiDragAndDropContainer nGuiDragAndDropContainer = dragAndDropItem.md000c();
         int stackNumber = ItemBase.list[dragAndDropItem.itemStack.itemValue.type].StackNumber;
         int num         = (_itemCount <= stackNumber) ? _itemCount : stackNumber;
         int num2        = dragAndDropItem.itemStack.count - num;
         dragAndDropItem.itemStack.count = num;
         dragAndDropItem.md0006();
         NGuiInvGrid containerInv = NGUIWindowManager.Instance.GetWindow(EnumNGUIWindow.LootContainer).GetComponentInChildren <NGuiInvGrid>();
         if (NGUITools.GetActive(containerInv) && containerInv != nGuiDragAndDropContainer.grid)
         {
             containerInv.AddItemStack(ref dragAndDropItem.itemStack, true);
         }
         else
         {
             if (dragAndDropItem.itemStack.count > 0 && nGuiDragAndDropContainer.grid.UiGridQuickTake2 != null)
             {
                 nGuiDragAndDropContainer.grid.UiGridQuickTake2.AddItemStack(ref dragAndDropItem.itemStack, false);
             }
             if (dragAndDropItem.itemStack.count > 0 && nGuiDragAndDropContainer.grid.UiGridQuickTake != null)
             {
                 nGuiDragAndDropContainer.grid.UiGridQuickTake.AddItemStack(ref dragAndDropItem.itemStack, false);
             }
             if (dragAndDropItem.itemStack.count > 0)
             {
                 if (dragAndDropItem.itemStack.count > 0 && nGuiDragAndDropContainer.grid.UiGridQuickTake2 != null)
                 {
                     nGuiDragAndDropContainer.grid.UiGridQuickTake2.AddItemStack(ref dragAndDropItem.itemStack, true);
                 }
                 if (dragAndDropItem.itemStack.count > 0 && nGuiDragAndDropContainer.grid.UiGridQuickTake != null)
                 {
                     nGuiDragAndDropContainer.grid.UiGridQuickTake.AddItemStack(ref dragAndDropItem.itemStack, true);
                     num2 += dragAndDropItem.itemStack.count;
                 }
             }
         }
         if (dragAndDropItem.itemStack.count == 0 && nGuiDragAndDropContainer != null)
         {
             nGuiDragAndDropContainer.grid.OnItemRemoved(nGuiDragAndDropContainer.Index);
         }
         else
         {
             num2 = dragAndDropItem.itemStack.count;
         }
         if (num2 == 0)
         {
             UnityEngine.Object.Destroy(dragAndDropItem.transform.gameObject);
             return(true);
         }
         InventoryField inventoryField = new InventoryField(dragAndDropItem.itemStack.itemValue, num2);
         NGuiInvGrid.SetItemInSlot(nGuiDragAndDropContainer.grid, nGuiDragAndDropContainer.gameObject, inventoryField);
         nGuiDragAndDropContainer.grid.OnItemAdded(nGuiDragAndDropContainer.Index, inventoryField);
     }
     return(false);
 }
예제 #3
0
 public Woodman(int locationX, int locationY)
 {
     this.locationX = locationX;
     this.locationY = locationY;
     for (var i = 0; i < Inventory.Length; i++)
     {
         Inventory[i]      = new InventoryField();
         Inventory[i].wood = false;
         Inventory[i].coal = false;
     }
 }
예제 #4
0
 public void ShowInventory(Warrior warrior)
 {
     for (int i = 0; i < InventoryField.childCount; i++)
     {
         Destroy(InventoryField.GetChild(i).gameObject);
     }
     if (warrior.Weapon != null)
     {
         GameObject cardGO = Instantiate(WeaponCardPref, InventoryField, false);
         cardGO.GetComponent <WeaponCardVM>().ShowCard(warrior.Weapon);
     }
 }
예제 #5
0
        private void ListRecipes(int mode, string arg1, string arg2)           //arg1 "All" or "query string"  - arg2 output type
        {
            int    num1 = 0;
            int    num2 = 0;
            string msg1, msg2 = "";

            Recipe[] allRecipes = CraftingManager.GetAllRecipes();
            SendResult(arg2, "## Recipes List ##");
            for (int i = 0; i < allRecipes.Length; i++)
            {
                Recipe recipe = allRecipes [i];
                if ((mode == 0 && recipe.GetName().ToLower().Contains(arg1)) || (mode == 1))                     //list recipes names
                {
                    num1++;
                    SendResult(arg2, string.Concat(new object[] {
                        num1,
                        ". ",
                        recipe.GetName()
                    }));
                }
                if ((mode == 2 && recipe.GetName().ToLower().Contains(arg1)) || (mode == 3))                     //list recipes Names And properties
                {
                    num2++;
                    SendResult(arg2, "**" + recipe.GetName() + "**");
                    msg1 = string.Concat(
                        new object[] {
                        num2, ". ", recipe.GetName(),
                        ", count= ", recipe.count,
                        ", scrapable= ", recipe.scrapable,
                        (recipe.tooltip == null) ? string.Empty : (", tooltip= " + recipe.tooltip),
                        (recipe.craftingArea == null || recipe.craftingArea.Length <= 0) ? string.Empty : (", craftingArea= " + recipe.craftingArea),
                        (recipe.craftingTime <= 0f) ? string.Empty : (", craftingTime= " + recipe.craftingTime.ToString())
                    });
                    SendResult(arg2, msg1);
                    SendResult(arg2, "**Ingredients**");
                    foreach (Vector2i current in recipe.ingredients.Keys)                      //ingredients
                    {
                        InventoryField inventoryField = recipe.ingredients[current];
                        msg2 = string.Concat(
                            new object[] {
                            "Name= ", ItemBase.list[inventoryField.itemValue.type].GetItemName(),
                            ", count= ", inventoryField.count,
                            (recipe.craftingArea == null || !recipe.craftingArea.Equals("campfire")) ? (", gridPosition= " + current) : string.Empty
                        });
                        SendResult(arg2, msg2);
                    }
                    SendResult(arg2, "****");
                }
            }
            SendResult(arg2, string.Concat("Listed ", (num1 >= num2) ? num1 : num2, " matching recipes."));
            return;
        }