示例#1
0
    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);
    }
示例#2
0
    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;
        }
    }
示例#3
0
 public virtual void broadcastThirdPartyPurchaseStarted(GameStorePurchaseData data)
 {
     Messenger <GameStorePurchaseData> .Broadcast(GameStoreMessages.purchaseThirdPartyStarted, data);
 }
示例#4
0
 public virtual void purchase(string productId, double quantity)
 {
     GameStoreController.Purchase(
         GameStorePurchaseData.PurchaseData(productId, quantity));
 }
示例#5
0
    // THIRD PARTY

    public virtual void onStoreThirdPartyPurchaseStarted(GameStorePurchaseData data)
    {
    }