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>()); }
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); }
public void StartPurchase(IPurchaseService service, BankProductData data) { service.OnPurchaseEnded(data); }