コード例 #1
0
        public void AddItem(UsableItem usableItem)
        {
            if (!Items.ContainsKey(usableItem.ToString()))
            {
                Items.Add(usableItem.ToString(), new List <UsableItem>());
            }

            Items[usableItem.ToString()].Add(usableItem);
            Refresh();
        }
コード例 #2
0
 private void ChangeItem(UsableItem item, int price)
 {
     if (!_stockPrices.ContainsKey(item.ToString()))
     {
         _stockPrices.Add(item.ToString(), price);
         _shopItems.Add(item.ToString(), new List <UsableItem> {
             item
         });
     }
     else
     {
         _stockPrices[item.ToString()] = price;
         _shopItems[item.ToString()].Add(item);
     }
 }
コード例 #3
0
        public void Inventory_DecreaseDurability()
        {
            //Reset inventory
            adventurerAgent.ResetEconomyAgent();

            List <BaseItemPrices> basePrices = agentShopSubSystem.basePrices;

            for (int i = 0; i < basePrices.Count; i++)
            {
                //Sword
                UsableItem itemToAdd = basePrices[i].item;
                itemToAdd.itemDetails.ResetDurability();

                //Add to the inventory
                adventurerAgent.inventory.AddItem(itemToAdd);
                UsableItem itemInInventory = adventurerAgent.inventory.Items[itemToAdd.ToString()][0];

                //Check durability by default
                int durability = itemInInventory.itemDetails.durability;
                Assert.AreEqual(itemInInventory.itemDetails.durability, itemInInventory.itemDetails.baseDurability);

                adventurerAgent.inventory.DecreaseDurability(itemInInventory);

                //Check if it decreased
                Assert.AreEqual(durability - 1, itemInInventory.itemDetails.durability);
            }
        }
コード例 #4
0
        public new void Setup(UsableItem newItem, int newNumber)
        {
            //base.Setup(newItem, newNumber); //not adequate
            item           = newItem;
            nameLabel.text = newItem.ToString();

            SetupOthersParameters();
        }
コード例 #5
0
 public void DecreaseDurability(UsableItem item)
 {
     if (Items.ContainsKey(item.ToString()))
     {
         item.itemDetails.DecreaseDurability();
         if (item.itemDetails.Broken)
         {
             DestroyItem(item);
             OverviewVariables.ItemBroke();
         }
     }
 }
コード例 #6
0
        public void RemoveItem(UsableItem usableItem)
        {
            var key         = usableItem.ToString();
            var usableItems = Items[key];

            usableItems.RemoveAll(x => x.UniqueId == usableItem.UniqueId);

            if (usableItems.Count == 0)
            {
                Debug.Log("Remove key");
                Items.Remove(key);
            }

            Refresh();
        }
コード例 #7
0
        public void SubmitToShop(ShopAgent agent, UsableItem item)
        {
            if (agent.agentInventory.ContainsItem(item) == false)
            {
                Debug.Log("Out of range submit. Item : " + item.ToString());
                return;
            }

            var shop = GetShop(agent);

            shop.SubmitToShop(item);
            agent.agentInventory.RemoveItem(item);

            Refresh();
        }
コード例 #8
0
        public bool ContainsItem(UsableItem searchItem)
        {
            if (Items == null)
            {
                return(false);
            }

            var found = false;

            foreach (var item in Items)
            {
                if (item.Key == searchItem.ToString())
                {
                    found = true;
                }
            }

            return(found);
        }
コード例 #9
0
        public void Shop_SetPriceItem()
        {
            //Submit a sword to the shop
            CraftingChoice randomSword = listCraftingChoices[UnityEngine.Random.Range(0, listCraftingChoices.Count)];
            UsableItem     sword       = AddItemInInventory(shopAgent.agentInventory, randomSword);

            agentShopSubSystem.SubmitToShop(shopAgent, sword);

            //Check default price
            int basePrice = GetPriceByItemName(sword.itemDetails.itemName);

            Assert.AreEqual(basePrice, agentShopSubSystem.GetPrice(shopAgent, sword.itemDetails));

            //Increase Price
            int randomPositiveIncrement = UnityEngine.Random.Range(1, 50);

            agentShopSubSystem.SetCurrentPrice(shopAgent, 0, randomPositiveIncrement);
            Assert.AreEqual(basePrice + randomPositiveIncrement, agentShopSubSystem.GetPrice(shopAgent, sword.itemDetails), "Item : " + sword.ToString() + " - randomPositiveIncrement : " + randomPositiveIncrement);

            //Decrease Price
            int randomNegativeIncrement = UnityEngine.Random.Range(-50, -1);

            agentShopSubSystem.SetCurrentPrice(shopAgent, 0, randomNegativeIncrement);
            Assert.AreEqual(basePrice + randomPositiveIncrement + randomNegativeIncrement, agentShopSubSystem.GetPrice(shopAgent, sword.itemDetails));
        }