Exemple #1
0
    //=============================================================================

    public void ShowPanel(bool bActive, int FairyLevel = 1, eFairy Fairy = eFairy.BLOOM)
    {
        if (bActive)
        {
            m_bButtonPressed = false;
            m_MainPanel.SetActive(true);

            FairyItemData CurFairyInfo = FairyItemsManager.GetFairyItem(Fairy);
            m_RequirementsPanel.Setup(CurFairyInfo, FairyLevel);

            m_txtFairyLevel.text = FairyLevel.ToString();

            string txtHeader = TextManager.GetText("BOUTIQUE_UPGRADEFAIRY_TITLE");
            txtHeader        = txtHeader.Replace("(FairyName)", Fairy.ToString().ToUpper());
            m_txtHeader.text = txtHeader;

            string txtLevelUp = TextManager.GetText("BOUTIQUE_UPGRADEFAIRY_LEVELUP");
            txtLevelUp        = txtLevelUp.Replace("(Cost)", String.Format("{0:n0}", CurFairyInfo.GemsRequired[FairyLevel]));
            m_txtLevelUp.text = txtLevelUp;
        }
        else
        {
            m_MainPanel.SetActive(false);
        }
    }
    //=====================================================

    public void OnBuyOutfitFairy()
    {
        int PlayerGems     = GameDataManager.Instance.PlayerGems;
        int PlayerDiamonds = GameDataManager.Instance.PlayerDiamonds;

        if (m_bBuyOutfitActive)
        {
            // Only show popup if player has enough diamonds to buy
            if (PlayerDiamonds >= m_BuyOutfit.cost)
            {
                ConfirmPurchaseManager.instance.ShowPanel(true, true, eFairy.BLOOM, m_BuyOutfit.cost);
                SetRoomMode(eRoomMode.BuyingOutfitFairy);
            }
            else
            {
                // Not enough money, show shop popup
                Instantiate(m_pfbShopPopup);
                ShopManager.instance.OnButtonPressed_ChangeType(1);
            }
        }
        else
        {
            FairyItemData CurFairyInfo = FairyItemsManager.GetFairyItem((eFairy)m_CurrentFairyIndex);

            // Only show popup if player has enough gems to buy
            if (PlayerGems >= CurFairyInfo.GemsRequired[0])
            {
                ConfirmPurchaseManager.instance.ShowPanel(true, false, (eFairy)m_CurrentFairyIndex, CurFairyInfo.GemsRequired[0]);
                SetRoomMode(eRoomMode.BuyingOutfitFairy);
            }
            else
            {
                // Not enough money, show shop popup
                Instantiate(m_pfbShopPopup);
                ShopManager.instance.OnButtonPressed_ChangeType(0);
            }
        }
    }
    //=====================================================

    void UpdateFairyRequirements()
    {
        int PlayerGems = GameDataManager.Instance.PlayerGems;

        if (UpgradeFairyManager.instance.WasButtonPressed())
        {
            switch (UpgradeFairyManager.instance.GetButtonPressed())
            {
            case 0:
                // Upgrade fairy level if we have enough diamonds
                bool bCanUpgradeFairy     = true;
                bool bRequirementsWereMet = true;
                int  UpgradeGemCost       = 0;

                FairyItemData CurFairyInfo = FairyItemsManager.GetFairyItem((eFairy)m_CurrentFairyIndex);
                FairyData     CurFairy     = GameDataManager.Instance.GetFairyData((eFairy)m_CurrentFairyIndex);
                if (CurFairy != null)
                {
                    UpgradeGemCost = CurFairyInfo.GemsRequired[CurFairy.Level + 1];

                    if (UpgradeGemCost > PlayerGems)
                    {
                        bCanUpgradeFairy = false;
                    }

                    if (GameDataManager.Instance.PlayerPopulation < CurFairyInfo.PopulationRequired[CurFairy.Level + 1])
                    {
                        bRequirementsWereMet = false;
                        bCanUpgradeFairy     = false;
                    }

                    if (GameDataManager.Instance.GetNumKeysCollected() < CurFairyInfo.KeysRequired[CurFairy.Level + 1])
                    {
                        bRequirementsWereMet = false;
                        bCanUpgradeFairy     = false;
                    }
                }
                else
                {
                    bCanUpgradeFairy = false;
                }

                if (bCanUpgradeFairy)
                {
                    CurFairy.Level++;
                    GameDataManager.Instance.SaveGameData();
                    GameDataManager.Instance.AddPlayerGems(-UpgradeGemCost);
                    GameDataManager.Instance.BroadcastGuiData();
                    UpgradeFairyManager.instance.ShowPanel(false);
                    SetRoomMode(eRoomMode.ViewingOutfits);

                    // Analytics event
                    Dictionary <string, object> EventDictionary = new Dictionary <string, object>();
                    EventDictionary["fairyID"]    = ((eFairy)m_CurrentFairyIndex).ToString();
                    EventDictionary["fairyLevel"] = CurFairy.Level;
                    Analytics.CustomEvent("UpgradeFairy", EventDictionary);
                }
                else
                {
                    UpgradeFairyManager.instance.Reset();

                    // Not enough money, show shop popup (if requirements are met)
                    if (bRequirementsWereMet)
                    {
                        Instantiate(m_pfbShopPopup);
                        ShopManager.instance.OnButtonPressed_ChangeType(0);
                    }
                }
                break;

            case 1:
                // Cancel
                UpgradeFairyManager.instance.ShowPanel(false);
                SetRoomMode(eRoomMode.ViewingOutfits);
                break;
            }
        }
    }
    //=====================================================

    void UpdateBuyingOutfitFairy()
    {
        // Twirl anim
        bool bDoTwirl = false;

        if (ConfirmPurchaseManager.instance.WasButtonPressed())
        {
            switch (ConfirmPurchaseManager.instance.GetButtonPressed())
            {
            case 0:
                // Buy outfit/fairy
                if (m_bBuyOutfitActive)
                {
                    // Outfit
                    FairyData CurFairy = GameDataManager.Instance.GetFairyData((eFairy)m_CurrentFairyIndex);
                    if (CurFairy != null)
                    {
                        CurFairy.BuyOutfit(m_BuyOutfit.id);
                        CurFairy.Outfit = m_BuyOutfit.id;
                        GameDataManager.Instance.SaveGameData();

                        // Use diamonds
                        GameDataManager.Instance.AddPlayerDiamonds(-m_BuyOutfit.cost);
                        GameDataManager.Instance.BroadcastGuiData();

                        // Analytics event
                        Dictionary <string, object> EventDictionary = new Dictionary <string, object>();
                        EventDictionary["outfitID"] = m_BuyOutfit.id;
                        Analytics.CustomEvent("BuyOutfit", EventDictionary);

                        bDoTwirl = true;
                    }
                }
                else
                {
                    // Fairy
                    GameDataManager.Instance.BuyFairy((eFairy)m_CurrentFairyIndex, true);

                    // Use gems
                    FairyItemData CurFairyInfo = FairyItemsManager.GetFairyItem((eFairy)m_CurrentFairyIndex);
                    GameDataManager.Instance.AddPlayerGems(-CurFairyInfo.GemsRequired[0]);
                    GameDataManager.Instance.BroadcastGuiData();

                    // Analytics event
                    Dictionary <string, object> EventDictionary = new Dictionary <string, object>();
                    EventDictionary["fairyID"] = ((eFairy)m_CurrentFairyIndex).ToString();
                    Analytics.CustomEvent("BuyFairy", EventDictionary);

                    bDoTwirl = true;
                }
                UpdateSelectedFairy();
                ConfirmPurchaseManager.instance.ShowPanel(false);
                SetRoomMode(eRoomMode.ViewingOutfits);
                m_bBuyOutfitActive = false;

                if (bDoTwirl)
                {
                    m_InspectOufitTimer = UnityEngine.Random.Range(3.0f, 6.0f);
                    m_CurrentFairyObj.GetComponent <Animator>().SetTrigger("IsChangingOutfit");
                }
                break;

            case 1:
                // Cancel
                ConfirmPurchaseManager.instance.ShowPanel(false);
                SetRoomMode(eRoomMode.ViewingOutfits);
                m_bBuyOutfitActive = false;
                break;
            }
        }
    }
    //=====================================================

    void UpdateViewingOutfits()
    {
        // Show selected fairy name and fairy level information/buttons
        {
            if (m_CurrentFairyIndex <= 0)
            {
                m_btnPrevFairy.SetActive(false);
            }
            else
            {
                m_btnPrevFairy.SetActive(true);
            }

            if (m_CurrentFairyIndex >= 5)
            {
                m_btnNextFairy.SetActive(false);
            }
            else
            {
                m_btnNextFairy.SetActive(true);
            }

            m_txtCurrentFairyName.text = TextManager.GetText("FAIRYNAME_" + ((eFairy)m_CurrentFairyIndex).ToString());

            // Fairy owned?
            FairyData CurFairy = GameDataManager.Instance.GetFairyData((eFairy)m_CurrentFairyIndex);
            if (CurFairy == null)
            {
                // Not owned, do we meet the requirements to buy this fairy?
                FairyItemData CurFairyInfo     = FairyItemsManager.GetFairyItem((eFairy)m_CurrentFairyIndex);
                bool          bRequirementsMet = AreRequirementsMet(CurFairyInfo);

                string txtPurchaseCost = TextManager.GetText("BOUTIQUE_PURCHASE");
                txtPurchaseCost                = txtPurchaseCost.Replace("(Cost)", CurFairyInfo.GemsRequired[0].ToString());
                m_txtPurchaseCostGems.text     = txtPurchaseCost;
                m_txtPurchaseCostDiamonds.text = txtPurchaseCost;

                if (bRequirementsMet)
                {
                    // Requirements met, show purchase button
                    m_sprPurchaseOverlayGems.SetActive(true);
                    m_sprPurchaseOverlayDiamonds.SetActive(false);

                    FairyLockedManager.instance.ShowPanel(false, CurFairyInfo);
                }
                else
                {
                    // Requirements not met, show requirements panel
                    m_sprPurchaseOverlayGems.SetActive(false);
                    m_sprPurchaseOverlayDiamonds.SetActive(false);

                    FairyLockedManager.instance.ShowPanel(true, CurFairyInfo);
                }

                // Hide all fairy levels
                foreach (GameObject Obj in m_sprFairyLevels)
                {
                    Obj.SetActive(false);
                }
                foreach (GameObject Obj in m_sprFairyLevelsLocked)
                {
                    Obj.SetActive(false);
                }
            }
            else
            {
                // Owned, show current fairy level
                m_sprPurchaseOverlayGems.SetActive(false);
                m_sprPurchaseOverlayDiamonds.SetActive(false);
                FairyLockedManager.instance.ShowPanel(false);

                int FairyLevel = CurFairy.Level;

                int Idx = 1;
                foreach (GameObject Obj in m_sprFairyLevels)
                {
                    Obj.SetActive(Idx <= FairyLevel ? true : false);
                    Idx++;
                }

                Idx = 1;
                foreach (GameObject Obj in m_sprFairyLevelsLocked)
                {
                    Obj.SetActive(Idx == (FairyLevel + 1) ? true : false);
                    Idx++;
                }

                // Buying outfit button active?
                if (m_bBuyOutfitActive)
                {
                    m_sprPurchaseOverlayGems.SetActive(false);
                    m_sprPurchaseOverlayDiamonds.SetActive(true);

                    string txtPurchaseCost = TextManager.GetText("BOUTIQUE_PURCHASE");
                    txtPurchaseCost                = txtPurchaseCost.Replace("(Cost)", m_BuyOutfit.cost.ToString());
                    m_txtPurchaseCostGems.text     = txtPurchaseCost;
                    m_txtPurchaseCostDiamonds.text = txtPurchaseCost;
                }
            }
        }

        // Random outfit inspection anim
        m_InspectOufitTimer -= Time.deltaTime;
        if (m_InspectOufitTimer < 0.0f)
        {
            m_InspectOufitTimer = UnityEngine.Random.Range(3.0f, 6.0f);
            m_CurrentFairyObj.GetComponent <Animator>().SetTrigger("IsInspectingOutfit");
        }
    }
Exemple #6
0
    //=====================================================

    void LoadLiveUpdate()
    {
        string DocPath  = PreHelpers.GetFileFolderPath();
        string FilePath = DocPath + "wfs2.zip";

        if (System.IO.File.Exists(FilePath) == false)
        {
            return;
        }

        // Read file
        FileStream fs = null;

        try
        {
            fs = new FileStream(FilePath, FileMode.Open);
        }
        catch
        {
            Debug.Log("GameData file open exception: " + FilePath);
        }

        if (fs != null)
        {
            try
            {
                // Read zip file
                ZipFile zf       = new ZipFile(fs);
                int     numFiles = 0;

                if (zf.TestArchive(true) == false)
                {
                    Debug.Log("Zip file failed integrity check!");
                    zf.IsStreamOwner = false;
                    zf.Close();
                    fs.Close();
                }
                else
                {
                    foreach (ZipEntry zipEntry in zf)
                    {
                        // Ignore directories
                        if (!zipEntry.IsFile)
                        {
                            continue;
                        }

                        String entryFileName = zipEntry.Name;

                        // Skip .DS_Store files
                        if (entryFileName.Contains("DS_Store"))
                        {
                            continue;
                        }

                        Debug.Log("Unpacking zip file entry: " + entryFileName);

                        byte[] buffer    = new byte[4096];                            // 4K is optimum
                        Stream zipStream = zf.GetInputStream(zipEntry);

                        // Manipulate the output filename here as desired.
                        string fullZipToPath = PreHelpers.GetFileFolderPath() + Path.GetFileName(entryFileName);

                        // Unzip file in buffered chunks. This is just as fast as unpacking to a buffer the full size
                        // of the file, but does not waste memory.
                        // The "using" will close the stream even if an exception occurs.
                        using (FileStream streamWriter = System.IO.File.Create(fullZipToPath))
                        {
                            StreamUtils.Copy(zipStream, streamWriter, buffer);
                        }
                        numFiles++;
                    }

                    zf.IsStreamOwner = false;
                    zf.Close();
                    fs.Close();

                    // If we've unpacked the local files (at least 13) then start using local spreadsheets data
                    Debug.Log("Zip updated with " + numFiles + " files (needs 13)");
                    if (numFiles >= 13)
                    {
                        PlayerPrefs.SetInt(PreHelpers.GetLiveDataVersionString(), 1);
                    }

                    // Reload managers
                    TextManager.Reload();
                    SettingsManager.Reload();
                    TradingCardItemsManager.Reload();
                    ClothingItemsManager.Reload();
                    FairyItemsManager.Reload();
                    WildMagicItemsManager.Reload();
                    NPCItemsManager.Reload();
                }
            }
            catch
            {
                Debug.Log("Zip file error!");
            }

            // Remove zip file
            Debug.Log("Removing zip file");
            System.IO.File.Delete(FilePath);
        }
    }