示例#1
0
        public void SetVisible(UsableItemDetails details, ShopAgent seller)
        {
            _shopDetails = details;
            gameObject.SetActive(true);

            _seller            = seller;
            newPriceField.text = details.ToString();
        }
示例#2
0
        public int GetNumber(UsableItemDetails item)
        {
            if (_shopItems.ContainsKey(item.itemName))
            {
                return(_shopItems[item.itemName].Count);
            }

            return(0);
        }
示例#3
0
 //Return customized price if there is one, otherwise, return the default price
 public int GetPrice(UsableItemDetails item)
 {
     if (_stockPrices.ContainsKey(item.itemName))
     {
         return(_stockPrices[item.itemName]);
     }
     if (_previousPrices.ContainsKey(item.itemName))
     {
         return(_previousPrices[item.itemName]);
     }
     return(0);
 }
示例#4
0
        /// <summary>
        /// Gy price by item name
        /// </summary>
        public int GetPriceByItemName(string itemName)
        {
            foreach (BaseItemPrices item in agentShopSubSystem.basePrices)
            {
                UsableItemDetails details = item.item.itemDetails;
                if (item.item.itemDetails.itemName == itemName)
                {
                    return(item.price);
                }
            }

            Debug.Log("Wrong Item : " + itemName);
            return(0);
        }
示例#5
0
        public void Inventory_UnarmedDetails()
        {
            //Reset inventory
            adventurerAgent.ResetEconomyAgent();

            //Unarmed
            UsableItemDetails itemDetails = adventurerAgent.inventory.Items["Unarmed"][0].itemDetails;

            Assert.AreEqual("Unarmed", itemDetails.itemName);
            Assert.AreEqual(ItemData.baseDurabilities["Unarmed"], itemDetails.baseDurability);
            Assert.AreEqual(itemDetails.durability, itemDetails.baseDurability);
            Assert.AreEqual(ItemData.baseDamages["Unarmed"], itemDetails.damage);
            Assert.AreEqual(true, itemDetails.unBreakable);
            Assert.AreEqual(false, itemDetails.Broken);
        }
        public void PurchaseItem(ShopAgent shopAgent, UsableItemDetails item, EconomyWallet wallet, AgentInventory inventory)
        {
            var shop    = GetShop(shopAgent);
            var success = shop.PurchaseItems(shopAgent.wallet, item, wallet, inventory);

            if (success)
            {
                OverviewVariables.SoldItem();

                if (item.itemName == endItem.itemDetails.itemName)
                {
                    //resetScript.ResetScript();
                }
            }
            Refresh();
        }
示例#7
0
        public bool PurchaseItems(EconomyWallet shopAgentWallet, UsableItemDetails itemDetails, EconomyWallet adventurerAgentWallet, AgentInventory inventory)
        {
            var price = _stockPrices[itemDetails.itemName];

            int GetStock()
            {
                return(_shopItems[itemDetails.itemName].Count);
            }

            if (adventurerAgentWallet.Money <= price)
            {
                Debug.Log("Not enough money : wallet " + adventurerAgentWallet.Money + "- price " + price);
                return(false);
            }

            if (GetStock() <= 0)
            {
                Debug.Log("Not enough stock");
                return(false);
            }

            inventory.AddItem(_shopItems[itemDetails.itemName][0]);
            _shopItems[itemDetails.itemName].RemoveAt(0);

            _stockPrices[itemDetails.itemName] = price;

            if (GetStock() <= 0)
            {
                _stockPrices.Remove(itemDetails.itemName);
                _shopItems.Remove(itemDetails.itemName);
                _previousPrices[itemDetails.itemName] = price;
            }
            adventurerAgentWallet.SpendMoney(price);
            shopAgentWallet.EarnMoney(price);

            return(true);
        }
示例#8
0
        public void SetCurrentPrice(UsableItemDetails item, int increment)
        {
            var price = _stockPrices[item.itemName];

            _stockPrices[item.itemName] = price + increment;
        }
示例#9
0
        public void Craft_SwordDetailsAndPrices()
        {
            List <BaseItemPrices> basePrices = agentShopSubSystem.basePrices;

            foreach (BaseItemPrices item in basePrices)
            {
                UsableItemDetails details = item.item.itemDetails;

                //Prices
                switch (details.itemName)
                {
                case "Beginner Sword":
                    Assert.AreEqual(50, item.price);
                    break;

                case "Intermediate Sword":
                    Assert.AreEqual(70, item.price);
                    break;

                case "Advanced Sword":
                    Assert.AreEqual(90, item.price);
                    break;

                case "Epic Sword":
                    Assert.AreEqual(110, item.price);
                    break;

                case "Master Sword":
                    Assert.AreEqual(140, item.price);
                    break;

                case "Ultimate Sword":
                    Assert.AreEqual(180, item.price);
                    break;

                default:
                    Assert.False(true, "Wrong Item : " + item.item.ToString() + " - price : " + item.price);
                    break;
                }

                //Details
                switch (details.itemName)
                {
                case "Beginner Sword":
                    Assert.AreEqual(7, details.damage);
                    Assert.AreEqual(10, details.baseDurability);
                    Assert.AreEqual(false, details.unBreakable);
                    break;

                case "Intermediate Sword":
                    Assert.AreEqual(9, details.damage);
                    Assert.AreEqual(12, details.baseDurability);
                    Assert.AreEqual(false, details.unBreakable);
                    break;

                case "Advanced Sword":
                    Assert.AreEqual(10, details.damage);
                    Assert.AreEqual(14, details.baseDurability);
                    Assert.AreEqual(false, details.unBreakable);
                    break;

                case "Epic Sword":
                    Assert.AreEqual(12, details.damage);
                    Assert.AreEqual(20, details.baseDurability);
                    Assert.AreEqual(false, details.unBreakable);
                    break;

                case "Master Sword":
                    Assert.AreEqual(12, details.damage);
                    Assert.AreEqual(22, details.baseDurability);
                    Assert.AreEqual(false, details.unBreakable);
                    break;

                case "Ultimate Sword":
                    Assert.AreEqual(15, details.damage);
                    Assert.AreEqual(25, details.baseDurability);
                    Assert.AreEqual(false, details.unBreakable);
                    break;

                default:
                    Assert.False(true, "Wrong Item : " + details.itemName
                                 + " - damage : " + details.damage
                                 + " - baseDurability : " + details.baseDurability
                                 + " - unBreakable : " + details.unBreakable);
                    break;
                }
            }
        }
 public int GetPrice(ShopAgent shopAgent, UsableItemDetails item)
 {
     return(GetShop(shopAgent).GetPrice(item));
 }
 public int GetNumber(ShopAgent shopAgent, UsableItemDetails item)
 {
     return(GetShop(shopAgent).GetNumber(item));
 }
 private void SetCurrentPrice(ShopAgent shopAgent, UsableItemDetails item, int increment)
 {
     GetShop(shopAgent).SetCurrentPrice(item, increment);
     Refresh();
 }