private void OnPartCustomized(CustomizePartUI.PartCustomizationEvent data) { if (this.m_partDescs == null) { return; } foreach (ConstructionUI.PartDesc partDesc in this.m_partDescs) { if (partDesc.part.m_partType == data.customizedPart) { partDesc.part = WPFMonoBehaviour.gameData.GetCustomPart(partDesc.part.m_partType, data.customPartIndex); GameObject gameObject = partDesc.part.m_constructionIconSprite.gameObject; partDesc.part.customPartIndex = data.customPartIndex; if (partDesc.currentPartIcon != null && gameObject != null) { GameObject gameObject2 = UnityEngine.Object.Instantiate <GameObject>(gameObject); gameObject2.transform.parent = partDesc.currentPartIcon.parent; gameObject2.transform.localScale = new Vector3(1.75f, 1.75f, 1f); gameObject2.transform.localPosition = new Vector3(0f, 0f, -0.5f); ConstructionUI.SetSortingOrder(gameObject2, 1, string.Empty); UnityEngine.Object.Destroy(partDesc.currentPartIcon.gameObject); partDesc.currentPartIcon = gameObject2.transform; if (partDesc.currentPartIcon.parent != null && partDesc.currentPartIcon.parent.GetComponent <DraggableButton>() != null) { partDesc.currentPartIcon.parent.GetComponent <DraggableButton>().Icon = gameObject2; } } } } }
private void OnDestroy() { if (this.constructionUI != null) { ConstructionUI constructionUI = this.constructionUI; constructionUI.OnPartsUnlocked = (Action)Delegate.Remove(constructionUI.OnPartsUnlocked, new Action(this.OnPartsUnlocked)); } EventManager.Disconnect(new EventManager.OnEvent <PartSelectedEvent>(this.OnPartSelected)); EventManager.Disconnect(new EventManager.OnEvent <LootCrateOpenDialog.LootCrateDelivered>(this.OnLootCrateDelivered)); }
private void Start() { this.constructionUI = UnityEngine.Object.FindObjectOfType <ConstructionUI>(); EventManager.Connect(new EventManager.OnEvent <PartSelectedEvent>(this.OnPartSelected)); EventManager.Connect(new EventManager.OnEvent <LootCrateOpenDialog.LootCrateDelivered>(this.OnLootCrateDelivered)); this.CreatePartListing(); this.UpdateNewTagState(); if (this.constructionUI != null) { ConstructionUI constructionUI = this.constructionUI; constructionUI.OnPartsUnlocked = (Action)Delegate.Combine(constructionUI.OnPartsUnlocked, new Action(this.OnPartsUnlocked)); } }
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)); } } } }
public void SetConstructionUI(ConstructionUI constructionUI) { this.m_constructionUI = constructionUI; }