Esempio n. 1
0
    //=====================================================

    void UpdateBuyPackConfirm()
    {
        if (BuyPackConfirmManager.instance.WasButtonPressed())
        {
            switch (BuyPackConfirmManager.instance.GetButtonPressed())
            {
            case 0:
                // OK
                BuyPackConfirmManager.instance.ShowPanel(false, 0);
                SetRoomMode(eRoomMode.BoosterPacks);

                // Buy card pack
                int PackType         = BuyPackConfirmManager.instance.GetPackType();
                int NumCardsInPack   = (PackType + 1) * 5;
                int DiamondsRequired = (PackType + 1) * 50;

                // Deduct diamonds
                GameDataManager.Instance.AddPlayerDiamonds(-DiamondsRequired);
                GameDataManager.Instance.BroadcastGuiData();

                // Analytics event
                Dictionary <string, object> EventDictionary = new Dictionary <string, object>();
                EventDictionary["cardsInPack"] = NumCardsInPack;
                Analytics.CustomEvent("BuyBoosterPack", EventDictionary);

                List <TradingCardHeldItem> CardsInPack = new List <TradingCardHeldItem>();
                for (int Idx = 0; Idx < NumCardsInPack; Idx++)
                {
                    TradingCardSpreadsheetItem RandomCard = new TradingCardSpreadsheetItem();

                    switch (UnityEngine.Random.Range(0, 3))
                    {
                    case 0:
                        // Return common card
                        //RandomCard = TradingCardItemsManager.GetRandomCard( eTradingCardRarity.COMMON , 30.0f , eTradingCardRarity.VERYCOMMON , 70.0f );
                        RandomCard = TradingCardItemsManager.GetRandomCard(eTradingCardRarity.COMMON, 30.0f, eTradingCardRarity.COMMON, 70.0f);
                        break;

                    case 1:
                        // Return common or uncommon card
                        RandomCard = TradingCardItemsManager.GetRandomCard(eTradingCardRarity.RARE, 100.0f, eTradingCardRarity.NULL, 0.0f);
                        break;

                    case 2:
                        // Return uncmmon or rare card
                        //RandomCard = TradingCardItemsManager.GetRandomCard( eTradingCardRarity.VERYRARE , 80.0f , eTradingCardRarity.UNIQUE , 20.0f );
                        RandomCard = TradingCardItemsManager.GetRandomCard(eTradingCardRarity.VERYRARE, 80.0f, eTradingCardRarity.VERYRARE, 20.0f);
                        break;
                    }

                    eTradingCardCondition CurCardCondition = eTradingCardCondition.MINT;
                    if (UnityEngine.Random.Range(0.0f, 100.0f) < 50.0f)
                    {
                        CurCardCondition = eTradingCardCondition.SCUFFED;
                    }

                    bool bSaveData = false;
                    if (Idx == (NumCardsInPack - 1))
                    {
                        bSaveData = true;
                    }

                    TradingCardHeldItem BoughtCard = GameDataManager.Instance.AddTradingCard(RandomCard.id, CurCardCondition, bSaveData);
                    BoughtCard.notifyTimer = UnityEngine.Random.Range(4.5f, 5.5f);

                    // If this is a teacher card unlock any NPC
                    UnlockNPC(RandomCard.id);

                    CardsInPack.Add(BoughtCard);
                }

                // Dismiss booster pack panel
                BoosterPacksManager.instance.ShowPanel(false);
                //BoosterPacksManager.instance.OnButtonPressed_Cancel();
                BookManager.instance.MarkDirty();

                // Show preview of cards
                BoosterPacksPreviewManager.instance.ShowPanel(true, CardsInPack);
                SetRoomMode(eRoomMode.BoosterPacksPreview);
                break;

            case 1:
                // Cancel
                BuyPackConfirmManager.instance.ShowPanel(false, 0);
                SetRoomMode(eRoomMode.BoosterPacks);
                break;
            }
        }
    }