Exemple #1
0
    public void UpdateCount()
    {
        if (this.label == null)
        {
            return;
        }
        int num = 0;

        if (GameProgress.Initialized)
        {
            num = GameProgress.GetAllStars();
        }
        this.label.text = string.Format("{0}", num);
    }
    private bool IsRaceLevelUnlocked(BasePart.PartType type)
    {
        int    num = GameProgress.GetAllStars() + GameProgress.GetRaceLevelUnlockedStars();
        string currentLevelIdentifier = Singleton <GameManager> .Instance.CurrentLevelIdentifier;

        RaceLevels.LevelUnlockablePartsData levelUnlockableData = WPFMonoBehaviour.gameData.m_raceLevels.GetLevelUnlockableData(currentLevelIdentifier);
        foreach (RaceLevels.UnlockableTier unlockableTier in levelUnlockableData.m_tiers)
        {
            if (unlockableTier.m_part == type)
            {
                return(num >= unlockableTier.m_starLimit);
            }
        }
        return(true);
    }
Exemple #3
0
    private void CreatePartList(bool handleDragIcons)
    {
        this.m_scrollList.Clear();
        foreach (ConstructionUI.PartDesc partDesc in this.m_partDescs)
        {
            BasePart   part       = partDesc.part;
            GameObject gameObject = part.m_constructionIconSprite.gameObject;
            bool       flag       = true;
            int        num        = 0;
            int        num2       = 0;
            int        num3       = GameProgress.GetAllStars() + GameProgress.GetRaceLevelUnlockedStars();
            bool       flag2      = false;
            if (WPFMonoBehaviour.levelManager && WPFMonoBehaviour.levelManager.m_raceLevel && WPFMonoBehaviour.levelManager.CurrentGameMode is BaseGameMode)
            {
                string currentLevelIdentifier = Singleton <GameManager> .Instance.CurrentLevelIdentifier;
                RaceLevels.LevelUnlockablePartsData levelUnlockableData = WPFMonoBehaviour.gameData.m_raceLevels.GetLevelUnlockableData(currentLevelIdentifier);
                if (levelUnlockableData != null)
                {
                    foreach (RaceLevels.UnlockableTier unlockableTier in levelUnlockableData.m_tiers)
                    {
                        if (unlockableTier.m_part == part.m_partType)
                        {
                            if (num3 < unlockableTier.m_starLimit)
                            {
                                flag = false;
                                num  = Mathf.Max(unlockableTier.m_starLimit - num3, 0);
                                num2 = unlockableTier.m_starLimit;
                                if (this.m_unlockPartTierDialog == null)
                                {
                                    this.m_unlockPartTierDialog = UnityEngine.Object.Instantiate <GameObject>(WPFMonoBehaviour.gameData.m_unlockPartTierDialog).GetComponent <UnlockRoadHogsParts>();
                                    this.m_unlockPartTierDialog.transform.position = WPFMonoBehaviour.hudCamera.transform.position + new Vector3(0f, 0f, 10f);
                                    this.m_unlockPartTierDialog.Close();
                                    this.m_unlockPartTierDialog.onOpen += delegate()
                                    {
                                        this.m_constructionUI.DisableFunctionality = true;
                                    };
                                    this.m_unlockPartTierDialog.onClose += delegate()
                                    {
                                        this.m_constructionUI.DisableFunctionality = false;
                                    };
                                }
                            }
                            else if (!GameProgress.GetRaceLevelPartUnlocked(currentLevelIdentifier, part.m_partType.ToString()))
                            {
                                GameProgress.SetRaceLevelPartUnlocked(currentLevelIdentifier, part.m_partType.ToString(), true);
                                flag2 = true;
                            }
                            break;
                        }
                    }
                }
            }
            GameObject original    = (!flag) ? this.m_partUnavailableButtonPrefab : this.m_partButtonPrefab;
            GameObject gameObject2 = UnityEngine.Object.Instantiate <GameObject>(original);
            gameObject2.transform.parent = this.m_scrollList.transform;
            ConstructionUI.SetSortingOrder(gameObject2, 1, string.Empty);
            if (flag)
            {
                gameObject2.GetComponent <DraggableButton>().DragObject = partDesc;
                if (handleDragIcons)
                {
                    gameObject2.GetComponent <DraggableButton>().DragIconPrefab = gameObject;
                }
                gameObject2.GetComponent <DraggableButton>().DragIconScale = 1.75f;
                Transform transform = gameObject2.transform.Find("PartCount");
                transform.GetComponent <TextMesh>().text          = (partDesc.maxCount - partDesc.useCount).ToString();
                transform.GetComponent <PartCounter>().m_partType = partDesc.part.m_partType;
                transform.GetComponent <Renderer>().sortingOrder  = 1;
            }
            else
            {
                Transform transform2 = gameObject2.transform.Find("Starlimit");
                transform2.GetComponent <TextMesh>().text         = num.ToString();
                transform2.GetComponent <Renderer>().sortingOrder = 1;
                int productPrice = Singleton <VirtualCatalogManager> .Instance.GetProductPrice("road_hogs_star_unlock");

                if (productPrice > 0 && !Singleton <BuildCustomizationLoader> .Instance.IsOdyssey)
                {
                    int totalCost = (num2 - num3) * productPrice;
                    this.AddUnlockStarTierPopup(gameObject2.GetComponent <UnavailablePartButton>(), this.m_unlockPartTierDialog, num2, num3, totalCost, () => GameProgress.SnoutCoinCount() >= totalCost);
                }
            }
            GameObject gameObject3 = UnityEngine.Object.Instantiate <GameObject>(gameObject);
            gameObject3.transform.parent        = gameObject2.transform;
            gameObject3.transform.localScale    = new Vector3(1.75f, 1.75f, 1f);
            gameObject3.transform.localPosition = new Vector3(0f, 0f, -0.5f);
            ConstructionUI.SetSortingOrder(gameObject3, 1, string.Empty);
            partDesc.currentPartIcon = gameObject3.transform;
            if (flag)
            {
                gameObject2.GetComponent <DraggableButton>().Icon = gameObject3;
                if (flag2)
                {
                    GameObject gameObject4 = UnityEngine.Object.Instantiate <GameObject>(this.m_partUnlockAnimatedLock);
                    gameObject4.transform.parent        = gameObject2.transform;
                    gameObject4.transform.localPosition = new Vector3(0f, 0.6f, -1f);
                }
            }
            this.m_scrollList.AddButton(gameObject2.GetComponent <Widget>());
        }
        foreach (ConstructionUI.PartDesc partDesc2 in this.m_partDescs)
        {
            if (partDesc2 != null && !(partDesc2.part == null))
            {
                int lastUsedPartIndex = CustomizationManager.GetLastUsedPartIndex(partDesc2.part.m_partType);
                if (lastUsedPartIndex > 0)
                {
                    this.OnPartCustomized(new CustomizePartUI.PartCustomizationEvent(partDesc2.part.m_partType, lastUsedPartIndex));
                }
            }
        }
    }