Example #1
0
 public void PurchaseProduct(BankProductData product)
 {
     if (Application.isEditor)
     {
         new EditorStoreProvider().StartPurchase(this, product);
     }
 }
        public void Setup()
        {
            BankProductData product = resourceService.GetBankProduct(productId);

            if (product == null)
            {
                throw new UnityException($"Not exists product with id {productId}");
            }

            if (!string.IsNullOrEmpty(product.nameId))
            {
                nameText.text = resourceService.GetString(product.nameId);
            }
            else
            {
                nameText.text = string.Empty;
            }

            if (!string.IsNullOrEmpty(product.discountData.id))
            {
                iconImage.overrideSprite = resourceService.GetSprite(product.discountData.id, product.discountData.iconPath);
                oldPriceText.text        = $"{product.discountData.oldPrice}$";
            }
            else
            {
                iconImage.overrideSprite = resourceService.transparent;
                oldPriceText.text        = string.Empty;
            }

            for (int i = 0; i < rewardDescriptionTexts.Length; i++)
            {
                if (i < product.rewards.Count)
                {
                    var dropItem = product.rewards[i];
                    if (dropItem.type == DropType.item && dropItem.itemData != null)
                    {
                        rewardDescriptionTexts[i].text = $"{dropItem.count} {resourceService.GetString(dropItem.itemData.nameId)}";
                    }
                    else
                    {
                        rewardDescriptionTexts[i].text = string.Empty;
                    }
                }
                else
                {
                    rewardDescriptionTexts[i].text = string.Empty;
                }
            }

            priceText.text = $"{product.realPrice}$";
            buyButton.SetListener(() => {
                engine.GetService <IPurchaseService>().PurchaseProduct(product);
            }, engine.GetService <IAudioService>());
        }
Example #3
0
        public void OnPurchaseEnded(BankProductData product)
        {
            List <DropItem> dropItems = new List <DropItem>();

            if (!PriceData.IsNone(product.price))
            {
                var extendedPrice = product.price.Extend(product.bonus);
                dropItems.Add(extendedPrice.ToDropItem());
            }

            if (product.rewards.Count > 0)
            {
                dropItems.AddRange(product.rewards);
            }

            engine.Cast <RavenhillEngine>().DropItems(dropItems);
        }
Example #4
0
 public void StartPurchase(IPurchaseService service, BankProductData data)
 {
     service.OnPurchaseEnded(data);
 }