public static GameStorePurchaseData PurchaseData(string productCode, double quantity) { GameStorePurchaseData data = new GameStorePurchaseData(); GameStorePurchaseDataItem dataItem = new GameStorePurchaseDataItem(); dataItem.gameStorePurchaseType = ProductNetworkType.typeLocal; dataItem.product = GameProducts.Instance.GetById(productCode); dataItem.quantity = quantity; data.Add(dataItem); return(data); }
public virtual void purchase(GameStorePurchaseData data) { foreach (GameStorePurchaseDataItem item in data.items) { if (item.product != null) { if (IsPurchasing(item.product.code)) { return; } SetItemPurchasing(item.product.code, item); if (item.product.type == GameProductType.currency || item.product.type == GameProductType.access) { // do third party process and event GameStoreController.PurchaseThirdParty(item.product, item.quantity); } else { // do local or server process and event if (checkIfCanPurchase(item.product)) // has the money { GameStoreController.HandlePurchase(item.product, item.quantity); } else { GameStoreController.BroadcastPurchaseFailed( GameStorePurchaseRecord.Create(false, data, "", "Purchase Unsuccessful", "Not enough coins to purchase. Earn more coins by playing or training.", item.product.code, item.quantity)); } } } // TODO handle multiple events, for now only purchase one at a time... break; } }
public virtual void broadcastThirdPartyPurchaseStarted(GameStorePurchaseData data) { Messenger <GameStorePurchaseData> .Broadcast(GameStoreMessages.purchaseThirdPartyStarted, data); }
public virtual void purchase(string productId, double quantity) { GameStoreController.Purchase( GameStorePurchaseData.PurchaseData(productId, quantity)); }
// THIRD PARTY public virtual void onStoreThirdPartyPurchaseStarted(GameStorePurchaseData data) { }