public void OnAddMissionLootToRewardPanel(int garrMissionID) { JamGarrisonMobileMission jamGarrisonMobileMission = (JamGarrisonMobileMission)PersistentMissionData.missionDictionary[garrMissionID]; MissionRewardDisplay.InitMissionRewards(AdventureMapPanel.instance.m_missionRewardResultsDisplayPrefab, this.m_rewardIconArea.transform, jamGarrisonMobileMission.Reward); if (jamGarrisonMobileMission.MissionState != 3) { return; } GarrMissionRec record = StaticDB.garrMissionDB.GetRecord(garrMissionID); if (record == null) { return; } if (StaticDB.rewardPackDB.GetRecord(record.OvermaxRewardPackID) == null) { return; } if (jamGarrisonMobileMission.OvermaxReward.Length > 0) { GameObject gameObject = Object.Instantiate <GameObject>(AdventureMapPanel.instance.m_missionRewardResultsDisplayPrefab); gameObject.transform.SetParent(this.m_rewardIconArea.transform, false); MissionRewardDisplay component = gameObject.GetComponent <MissionRewardDisplay>(); component.InitReward(MissionRewardDisplay.RewardType.item, jamGarrisonMobileMission.OvermaxReward[0].ItemID, (int)jamGarrisonMobileMission.OvermaxReward[0].ItemQuantity, 0, jamGarrisonMobileMission.OvermaxReward[0].ItemFileDataID); } }
public static void InitMissionRewards(GameObject prefab, Transform parent, JamGarrisonMissionReward[] rewards) { for (int i = 0; i < rewards.Length; i++) { JamGarrisonMissionReward jamGarrisonMissionReward = rewards[i]; GameObject gameObject = Object.Instantiate <GameObject>(prefab); gameObject.SetActive(true); gameObject.get_transform().SetParent(parent, false); MissionRewardDisplay component = gameObject.GetComponent <MissionRewardDisplay>(); if (jamGarrisonMissionReward.ItemID > 0) { component.InitReward(MissionRewardDisplay.RewardType.item, jamGarrisonMissionReward.ItemID, (int)jamGarrisonMissionReward.ItemQuantity, 0, jamGarrisonMissionReward.ItemFileDataID); } else if (jamGarrisonMissionReward.FollowerXP > 0u) { component.InitReward(MissionRewardDisplay.RewardType.followerXP, 0, (int)jamGarrisonMissionReward.FollowerXP, 0, 0); } else if (jamGarrisonMissionReward.CurrencyQuantity > 0u) { if (jamGarrisonMissionReward.CurrencyType == 0) { component.InitReward(MissionRewardDisplay.RewardType.gold, 0, (int)(jamGarrisonMissionReward.CurrencyQuantity / 10000u), 0, 0); } else { CurrencyTypesRec record = StaticDB.currencyTypesDB.GetRecord(jamGarrisonMissionReward.CurrencyType); int rewardQuantity = (int)((ulong)jamGarrisonMissionReward.CurrencyQuantity / (ulong)(((record.Flags & 8u) == 0u) ? 1L : 100L)); component.InitReward(MissionRewardDisplay.RewardType.currency, jamGarrisonMissionReward.CurrencyType, rewardQuantity, 0, 0); } } } }
public void ClearAndHideLootArea() { MissionRewardDisplay[] componentsInChildren = this.m_lootItemArea.GetComponentsInChildren <MissionRewardDisplay>(true); MissionRewardDisplay[] array = componentsInChildren; for (int i = 0; i < array.Length; i++) { MissionRewardDisplay missionRewardDisplay = array[i]; Object.DestroyObject(missionRewardDisplay.get_gameObject()); } this.m_lootDisplayArea.SetActive(false); }
public static void InitWorldQuestRewards(MobileWorldQuest worldQuest, GameObject prefab, Transform parent) { if (worldQuest.Item != null) { MobileWorldQuestReward[] item = worldQuest.Item; for (int i = 0; i < item.Length; i++) { MobileWorldQuestReward mobileWorldQuestReward = item[i]; GameObject gameObject = Object.Instantiate <GameObject>(prefab); gameObject.get_transform().SetParent(parent, false); MissionRewardDisplay component = gameObject.GetComponent <MissionRewardDisplay>(); component.InitReward(MissionRewardDisplay.RewardType.item, mobileWorldQuestReward.RecordID, mobileWorldQuestReward.Quantity, mobileWorldQuestReward.ItemContext, mobileWorldQuestReward.FileDataID); } } if (worldQuest.Money > 0) { GameObject gameObject2 = Object.Instantiate <GameObject>(prefab); gameObject2.get_transform().SetParent(parent, false); MissionRewardDisplay component2 = gameObject2.GetComponent <MissionRewardDisplay>(); component2.InitReward(MissionRewardDisplay.RewardType.gold, 0, worldQuest.Money / 10000, 0, 0); } if (worldQuest.Experience > 0) { GameObject gameObject3 = Object.Instantiate <GameObject>(prefab); gameObject3.get_transform().SetParent(parent, false); MissionRewardDisplay component3 = gameObject3.GetComponent <MissionRewardDisplay>(); component3.InitReward(MissionRewardDisplay.RewardType.followerXP, 0, worldQuest.Experience, 0, 0); } MobileWorldQuestReward[] currency = worldQuest.Currency; for (int j = 0; j < currency.Length; j++) { MobileWorldQuestReward mobileWorldQuestReward2 = currency[j]; GameObject gameObject4 = Object.Instantiate <GameObject>(prefab); gameObject4.get_transform().SetParent(parent, false); MissionRewardDisplay component4 = gameObject4.GetComponent <MissionRewardDisplay>(); CurrencyTypesRec record = StaticDB.currencyTypesDB.GetRecord(mobileWorldQuestReward2.RecordID); if (record != null) { int rewardQuantity = mobileWorldQuestReward2.Quantity / (((record.Flags & 8u) == 0u) ? 1 : 100); component4.InitReward(MissionRewardDisplay.RewardType.currency, mobileWorldQuestReward2.RecordID, rewardQuantity, 0, 0); } else { Debug.LogWarning(string.Concat(new object[] { "WORLD QUEST ", worldQuest.QuestID, " has bogus currency reward (id ", mobileWorldQuestReward2.RecordID, ")" })); } } }
public void HandleShipmentItemPushed(MobileClientShipmentItem item) { if (!this.m_itemResourceCostText.get_gameObject().get_activeSelf()) { return; } if (!this.m_lootDisplayArea.get_activeSelf()) { this.m_lootDisplayArea.SetActive(true); } MissionRewardDisplay missionRewardDisplay = Object.Instantiate <MissionRewardDisplay>(this.m_rewardDisplayPrefab); missionRewardDisplay.get_transform().SetParent(this.m_lootItemArea.get_transform(), false); missionRewardDisplay.InitReward(MissionRewardDisplay.RewardType.item, item.ItemID, item.Count, item.Context, item.IconFileDataID); UiAnimMgr.instance.PlayAnim("MinimapPulseAnim", missionRewardDisplay.get_transform(), Vector3.get_zero(), 1.5f, 0f); }
public void AddInventoryItems() { if (this.m_isArtifactResearch) { ItemRec record = StaticDB.itemDB.GetRecord(this.m_charShipmentRec.DummyItemID); if (record == null) { return; } MissionRewardDisplay[] componentsInChildren = this.m_lootItemArea.GetComponentsInChildren <MissionRewardDisplay>(); foreach (MissionRewardDisplay missionRewardDisplay in componentsInChildren) { Object.DestroyImmediate(missionRewardDisplay.gameObject); } for (int j = 0; j < ArtifactKnowledgeData.s_artifactKnowledgeInfo.ItemsInBags; j++) { MissionRewardDisplay missionRewardDisplay2 = Object.Instantiate <MissionRewardDisplay>(this.m_artifactResearchNotesDisplayPrefab); missionRewardDisplay2.transform.SetParent(this.m_lootItemArea.transform, false); missionRewardDisplay2.InitReward(MissionRewardDisplay.RewardType.item, record.ID, 1, 0, record.IconFileDataID); UiAnimMgr.instance.PlayAnim("ItemReadyToUseGlowLoop", missionRewardDisplay2.transform, Vector3.zero, 1.2f, 0f); } this.m_lootDisplayArea.SetActive(ArtifactKnowledgeData.s_artifactKnowledgeInfo.ItemsInBags > 0); } }
public void HandleShipmentItemPushed(MobileClientShipmentItem item) { if (!this.m_itemResourceCostText.gameObject.activeSelf) { return; } if (!this.m_lootDisplayArea.activeSelf) { this.m_lootDisplayArea.SetActive(true); } int charShipmentTypeID = this.GetCharShipmentTypeID(); MissionRewardDisplay missionRewardDisplay = null; if (this.m_isArtifactResearch) { this.HandleArtifactKnowledgeInfoAboutToChange(); MobilePlayerRequestArtifactKnowledgeInfo obj = new MobilePlayerRequestArtifactKnowledgeInfo(); Login.instance.SendToMobileServer(obj); } else if (charShipmentTypeID >= 372 && charShipmentTypeID <= 383) { missionRewardDisplay = Object.Instantiate <MissionRewardDisplay>(this.m_rewardDisplayPrefab); missionRewardDisplay.transform.SetParent(this.m_lootItemArea.transform, false); missionRewardDisplay.InitReward(MissionRewardDisplay.RewardType.currency, item.ItemID, item.Count, 0, 0); } else { missionRewardDisplay = Object.Instantiate <MissionRewardDisplay>(this.m_rewardDisplayPrefab); missionRewardDisplay.transform.SetParent(this.m_lootItemArea.transform, false); missionRewardDisplay.InitReward(MissionRewardDisplay.RewardType.item, item.ItemID, item.Count, item.Context, item.IconFileDataID); } if (missionRewardDisplay != null) { UiAnimMgr.instance.PlayAnim("MinimapPulseAnim", missionRewardDisplay.transform, Vector3.zero, 1.5f, 0f); } }
public void Init(int missionRecID) { this.garrMissionID = missionRecID; GarrMissionRec record = StaticDB.garrMissionDB.GetRecord(this.garrMissionID); if (record == null) { return; } if (!PersistentMissionData.missionDictionary.ContainsKey(this.garrMissionID)) { return; } this.missionDurationInSeconds = record.MissionDuration; JamGarrisonMobileMission jamGarrisonMobileMission = (JamGarrisonMobileMission)PersistentMissionData.missionDictionary.get_Item(this.garrMissionID); this.missionStartedTime = jamGarrisonMobileMission.StartTime; Duration duration = new Duration(record.MissionDuration, false); string text = (duration.Hours < 2) ? "<color=#ffffffff>" : "<color=#ff8600ff>"; long num = GarrisonStatus.CurrentTime() - this.missionStartedTime; long num2 = (long)this.missionDurationInSeconds - num; num2 = ((num2 <= 0L) ? 0L : num2); bool flag = jamGarrisonMobileMission.MissionState == 1 && num2 > 0L; this.missionNameText.set_text(record.Name + ((!flag) ? (" (" + text + duration.DurationString + "</color>)") : string.Empty)); this.missionLevelText.set_text(string.Empty + record.TargetLevel); this.inProgressDarkener.SetActive(flag); this.missionTimeRemainingText.get_gameObject().SetActive(flag); this.missionDurationInSeconds = record.MissionDuration; this.missionResultsText.get_gameObject().SetActive(false); this.isResultsItem = false; MissionRewardDisplay.InitMissionRewards(this.missionRewardDisplayPrefab, this.missionRewardGroup.get_transform(), jamGarrisonMobileMission.Reward); for (int i = 0; i < this.locationImages.Length; i++) { if (this.locationImages[i] != null) { this.locationImages[i].get_gameObject().SetActive(false); } } Image image = null; uint uiTextureKitID = record.UiTextureKitID; switch (uiTextureKitID) { case 101u: image = this.locationImages[1]; this.locationIndex = 1; break; case 102u: image = this.locationImages[10]; this.locationIndex = 10; break; case 103u: image = this.locationImages[3]; this.locationIndex = 3; break; case 104u: image = this.locationImages[4]; this.locationIndex = 4; break; case 105u: image = this.locationImages[9]; this.locationIndex = 9; break; case 106u: image = this.locationImages[7]; this.locationIndex = 7; break; case 107u: image = this.locationImages[8]; this.locationIndex = 8; break; default: switch (uiTextureKitID) { case 203u: image = this.locationImages[2]; this.locationIndex = 2; break; case 204u: image = this.locationImages[6]; this.locationIndex = 6; break; case 205u: image = this.locationImages[5]; this.locationIndex = 5; break; default: if (uiTextureKitID != 164u) { if (uiTextureKitID != 165u) { this.locationIndex = 0; } else { image = this.locationImages[11]; this.locationIndex = 11; } } else { image = this.locationImages[0]; this.locationIndex = 0; } break; } break; } if (image != null) { image.get_gameObject().SetActive(true); } GarrMissionTypeRec record2 = StaticDB.garrMissionTypeDB.GetRecord((int)record.GarrMissionTypeID); this.m_missionTypeImage.set_overrideSprite(TextureAtlas.instance.GetAtlasSprite((int)record2.UiTextureAtlasMemberID)); if ((record.Flags & 1u) != 0u) { this.rareMissionText.get_gameObject().SetActive(true); Color color = this.levelBG.get_color(); color.r = 0f; color.g = 0.211f; color.b = 0.506f; this.levelBG.set_color(color); } else { this.rareMissionText.get_gameObject().SetActive(false); } }
public void ShowMissionResults(int garrMissionID, int missionResultType, bool awardOvermax) { this.m_missionResultsDisplayCanvasGroupAutoFadeOut.Reset(); this.m_currentResultType = (MissionResultType)missionResultType; this.m_followerExperienceDisplayArea.SetActive(false); this.m_attemptedAutoComplete = false; this.m_garrMissionID = garrMissionID; this.m_darknessBG.SetActive(true); this.m_popupView.SetActive(true); this.m_bonusLootDisplay.SetActive(false); if (this.missionFollowerSlotGroup != null) { MissionFollowerSlot[] componentsInChildren = this.missionFollowerSlotGroup.GetComponentsInChildren <MissionFollowerSlot>(true); for (int i = 0; i < componentsInChildren.Length; i++) { if (componentsInChildren[i] != null && componentsInChildren[i] != this.missionFollowerSlotGroup.get_transform()) { Object.DestroyImmediate(componentsInChildren[i].get_gameObject()); } } } MissionEncounter[] componentsInChildren2 = this.enemyPortraitsGroup.GetComponentsInChildren <MissionEncounter>(true); for (int j = 0; j < componentsInChildren2.Length; j++) { if (componentsInChildren2[j] != null && componentsInChildren2[j] != this.enemyPortraitsGroup.get_transform()) { Object.DestroyImmediate(componentsInChildren2[j].get_gameObject()); } } if (this.treasureChestHorde != null && this.treasureChestAlliance != null) { if (GarrisonStatus.Faction() == PVP_FACTION.HORDE) { this.treasureChestHorde.SetActive(true); this.treasureChestAlliance.SetActive(false); } else { this.treasureChestHorde.SetActive(false); this.treasureChestAlliance.SetActive(true); } } JamGarrisonMobileMission jamGarrisonMobileMission = (JamGarrisonMobileMission)PersistentMissionData.missionDictionary.get_Item(garrMissionID); this.m_missionStartedTime = jamGarrisonMobileMission.StartTime; this.m_missionDurationInSeconds = jamGarrisonMobileMission.MissionDuration; for (int k = 0; k < jamGarrisonMobileMission.Encounter.Length; k++) { GameObject gameObject = Object.Instantiate <GameObject>(this.missionEncounterPrefab); gameObject.get_transform().SetParent(this.enemyPortraitsGroup.get_transform(), false); MissionEncounter component = gameObject.GetComponent <MissionEncounter>(); int garrMechanicID = (jamGarrisonMobileMission.Encounter[k].MechanicID.Length <= 0) ? 0 : jamGarrisonMobileMission.Encounter[k].MechanicID[0]; component.SetEncounter(jamGarrisonMobileMission.Encounter[k].EncounterID, garrMechanicID); } GarrMissionRec record = StaticDB.garrMissionDB.GetRecord(garrMissionID); this.missionNameText.set_text(record.Name); this.missionLocationText.set_text(record.Location); this.missioniLevelText.set_text(StaticDB.GetString("ITEM_LEVEL_ABBREVIATION", null) + " " + record.TargetItemLevel); GarrMissionTypeRec record2 = StaticDB.garrMissionTypeDB.GetRecord((int)record.GarrMissionTypeID); this.missionTypeImage.set_overrideSprite(TextureAtlas.instance.GetAtlasSprite((int)record2.UiTextureAtlasMemberID)); if (this.missionFollowerSlotGroup != null) { int num = 0; while ((long)num < (long)((ulong)record.MaxFollowers)) { GameObject gameObject2 = Object.Instantiate <GameObject>(this.missionFollowerSlotPrefab); gameObject2.get_transform().SetParent(this.missionFollowerSlotGroup.get_transform(), false); MissionFollowerSlot component2 = gameObject2.GetComponent <MissionFollowerSlot>(); component2.m_enemyPortraitsGroup = this.enemyPortraitsGroup; num++; } } if (record.UiTextureKitID > 0u) { UiTextureKitRec record3 = StaticDB.uiTextureKitDB.GetRecord((int)record.UiTextureKitID); this.m_scrollingEnvironment_Back.set_enabled(false); this.m_scrollingEnvironment_Mid.set_enabled(false); this.m_scrollingEnvironment_Fore.set_enabled(false); int uITextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("_" + record3.KitPrefix + "-Back"); if (uITextureAtlasMemberID > 0) { Sprite atlasSprite = TextureAtlas.instance.GetAtlasSprite(uITextureAtlasMemberID); if (atlasSprite != null) { this.m_scrollingEnvironment_Back.set_enabled(true); this.m_scrollingEnvironment_Back.set_sprite(atlasSprite); } } int uITextureAtlasMemberID2 = TextureAtlas.GetUITextureAtlasMemberID("_" + record3.KitPrefix + "-Mid"); if (uITextureAtlasMemberID2 > 0) { Sprite atlasSprite2 = TextureAtlas.instance.GetAtlasSprite(uITextureAtlasMemberID2); if (atlasSprite2 != null) { this.m_scrollingEnvironment_Mid.set_enabled(true); this.m_scrollingEnvironment_Mid.set_sprite(atlasSprite2); } } int uITextureAtlasMemberID3 = TextureAtlas.GetUITextureAtlasMemberID("_" + record3.KitPrefix + "-Fore"); if (uITextureAtlasMemberID3 > 0) { Sprite atlasSprite3 = TextureAtlas.instance.GetAtlasSprite(uITextureAtlasMemberID3); if (atlasSprite3 != null) { this.m_scrollingEnvironment_Fore.set_enabled(true); this.m_scrollingEnvironment_Fore.set_sprite(atlasSprite3); } } } else { Debug.LogWarning(string.Concat(new object[] { "DATA ERROR: Mission UITextureKit Not Set for mission ID:", record.ID, " - ", record.Name })); Debug.LogWarning("This means the scrolling background images will show the wrong location"); } if (this.m_lootGroupObj == null || this.m_missionRewardDisplayPrefab == null) { return; } MissionRewardDisplay[] componentsInChildren3 = this.m_lootGroupObj.GetComponentsInChildren <MissionRewardDisplay>(true); for (int l = 0; l < componentsInChildren3.Length; l++) { if (componentsInChildren3[l] != null) { Object.DestroyImmediate(componentsInChildren3[l].get_gameObject()); } } MissionFollowerSlot[] componentsInChildren4 = this.missionFollowerSlotGroup.GetComponentsInChildren <MissionFollowerSlot>(true); int num2 = 0; using (Dictionary <int, JamGarrisonFollower> .ValueCollection.Enumerator enumerator = PersistentFollowerData.followerDictionary.get_Values().GetEnumerator()) { while (enumerator.MoveNext()) { JamGarrisonFollower current = enumerator.get_Current(); if (current.CurrentMissionID == garrMissionID) { componentsInChildren4[num2++].SetFollower(current.GarrFollowerID); if (missionResultType == 1) { PersistentFollowerData.CachePreMissionFollower(current); } } } } this.UpdateMissionStatus(garrMissionID); MissionFollowerSlot[] array = componentsInChildren4; for (int m = 0; m < array.Length; m++) { MissionFollowerSlot missionFollowerSlot = array[m]; missionFollowerSlot.InitHeartPanel(); } MissionRewardDisplay.InitMissionRewards(this.m_missionRewardDisplayPrefab.get_gameObject(), this.m_lootGroupObj.get_transform(), jamGarrisonMobileMission.Reward); if (record.OvermaxRewardPackID > 0 && jamGarrisonMobileMission.OvermaxReward.Length > 0) { this.m_bonusLootDisplay.SetActive(true); JamGarrisonMissionReward jamGarrisonMissionReward = jamGarrisonMobileMission.OvermaxReward[0]; if (jamGarrisonMissionReward.ItemID > 0) { this.m_bonusMissionRewardDisplay.InitReward(MissionRewardDisplay.RewardType.item, jamGarrisonMissionReward.ItemID, (int)jamGarrisonMissionReward.ItemQuantity, 0, jamGarrisonMissionReward.ItemFileDataID); } else if (jamGarrisonMissionReward.FollowerXP > 0u) { this.m_bonusMissionRewardDisplay.InitReward(MissionRewardDisplay.RewardType.followerXP, 0, (int)jamGarrisonMissionReward.FollowerXP, 0, 0); } else if (jamGarrisonMissionReward.CurrencyQuantity > 0u) { if (jamGarrisonMissionReward.CurrencyType == 0) { this.m_bonusMissionRewardDisplay.InitReward(MissionRewardDisplay.RewardType.gold, 0, (int)(jamGarrisonMissionReward.CurrencyQuantity / 10000u), 0, 0); } else { CurrencyTypesRec record4 = StaticDB.currencyTypesDB.GetRecord(jamGarrisonMissionReward.CurrencyType); int rewardQuantity = (int)((ulong)jamGarrisonMissionReward.CurrencyQuantity / (ulong)(((record4.Flags & 8u) == 0u) ? 1L : 100L)); this.m_bonusMissionRewardDisplay.InitReward(MissionRewardDisplay.RewardType.currency, jamGarrisonMissionReward.CurrencyType, rewardQuantity, 0, 0); } } } this.m_timeUntilFadeOutMissionDetailsDisplay = this.m_missionDetailsFadeOutDelay; this.m_timeUntilShowFollowerExperienceDisplays = this.m_experienceDisplayInitialEntranceDelay; if (missionResultType == 2) { this.InitFollowerExperienceDisplays(); Main.instance.m_UISound.Play_MissionSuccess(); this.m_missionInProgressMessage.SetActive(false); this.m_missionSuccessMessage.SetActive(true); this.m_missionFailMessage.SetActive(false); if (this.m_fancyEntrance != null) { Object.DestroyImmediate(this.m_fancyEntrance); iTween.Stop(this.m_missionSuccessMessage); this.m_missionSuccessMessage.get_transform().set_localScale(Vector3.get_one()); iTween.Stop(this.m_missionFailMessage); this.m_missionFailMessage.get_transform().set_localScale(Vector3.get_one()); } this.m_missionSuccessMessage.SetActive(false); this.m_fancyEntrance = this.m_missionSuccessMessage.AddComponent <FancyEntrance>(); this.m_fancyEntrance.m_fadeInCanvasGroup = this.m_missionSuccessMessage.GetComponent <CanvasGroup>(); this.m_fancyEntrance.m_fadeInTime = this.m_messageFadeInTime; this.m_fancyEntrance.m_punchScale = this.m_messagePunchScale; this.m_fancyEntrance.m_punchScaleAmount = this.m_messagePunchScaleAmount; this.m_fancyEntrance.m_punchScaleDuration = this.m_messagePunchScaleDuration; this.m_fancyEntrance.m_timeToDelayEntrance = this.m_messageTimeToDelayEntrance; this.m_missionSuccessMessage.SetActive(true); MissionRewardDisplay[] componentsInChildren5 = this.m_lootGroupObj.GetComponentsInChildren <MissionRewardDisplay>(true); for (int n = 0; n < componentsInChildren5.Length; n++) { componentsInChildren5[n].ShowResultSuccess(this.m_lootEffectInitialDelay + this.m_lootEffectDelay * (float)n); } if (awardOvermax) { this.m_bonusMissionRewardDisplay.ShowResultSuccess(this.m_lootEffectInitialDelay + this.m_lootEffectDelay * (float)componentsInChildren5.Length); } else { this.m_bonusMissionRewardDisplay.ShowResultFail(this.m_lootEffectInitialDelay + this.m_lootEffectDelay * (float)componentsInChildren5.Length); } } if (missionResultType == 3) { this.InitFollowerExperienceDisplays(); Main.instance.m_UISound.Play_MissionFailure(); this.m_missionInProgressMessage.SetActive(false); this.m_missionSuccessMessage.SetActive(false); this.m_missionFailMessage.SetActive(true); if (this.m_fancyEntrance != null) { Object.DestroyImmediate(this.m_fancyEntrance); iTween.Stop(this.m_missionSuccessMessage); this.m_missionSuccessMessage.get_transform().set_localScale(Vector3.get_one()); iTween.Stop(this.m_missionFailMessage); this.m_missionFailMessage.get_transform().set_localScale(Vector3.get_one()); } this.m_missionFailMessage.SetActive(false); this.m_fancyEntrance = this.m_missionFailMessage.AddComponent <FancyEntrance>(); this.m_fancyEntrance.m_fadeInCanvasGroup = this.m_missionFailMessage.GetComponent <CanvasGroup>(); this.m_fancyEntrance.m_fadeInTime = this.m_messageFadeInTime; this.m_fancyEntrance.m_punchScale = this.m_messagePunchScale; this.m_fancyEntrance.m_punchScaleAmount = this.m_messagePunchScaleAmount; this.m_fancyEntrance.m_punchScaleDuration = this.m_messagePunchScaleDuration; this.m_fancyEntrance.m_timeToDelayEntrance = this.m_messageTimeToDelayEntrance; this.m_missionFailMessage.SetActive(true); MissionRewardDisplay[] componentsInChildren6 = this.m_lootGroupObj.GetComponentsInChildren <MissionRewardDisplay>(true); for (int num3 = 0; num3 < componentsInChildren6.Length; num3++) { componentsInChildren6[num3].ShowResultFail(this.m_lootEffectInitialDelay + this.m_lootEffectDelay * (float)num3); } this.m_bonusMissionRewardDisplay.ShowResultFail(this.m_lootEffectInitialDelay + this.m_lootEffectDelay * (float)componentsInChildren6.Length); } if (missionResultType == 0) { this.m_missionInProgressMessage.SetActive(true); this.m_missionSuccessMessage.SetActive(false); this.m_missionFailMessage.SetActive(false); this.m_bonusMissionRewardDisplay.ClearResults(); } if (missionResultType == 1) { this.m_missionInProgressMessage.SetActive(false); this.m_missionSuccessMessage.SetActive(false); this.m_missionFailMessage.SetActive(false); FollowerExperienceDisplay[] componentsInChildren7 = this.m_followerExperienceDisplayArea.GetComponentsInChildren <FollowerExperienceDisplay>(true); FollowerExperienceDisplay[] array2 = componentsInChildren7; for (int num4 = 0; num4 < array2.Length; num4++) { FollowerExperienceDisplay followerExperienceDisplay = array2[num4]; Object.DestroyImmediate(followerExperienceDisplay.get_gameObject()); } } if (this.m_partyBuffGroup != null) { AbilityDisplay[] componentsInChildren8 = this.m_partyBuffGroup.GetComponentsInChildren <AbilityDisplay>(true); AbilityDisplay[] array3 = componentsInChildren8; for (int num5 = 0; num5 < array3.Length; num5++) { AbilityDisplay abilityDisplay = array3[num5]; Object.DestroyImmediate(abilityDisplay.get_gameObject()); } } int num6 = 0; using (Dictionary <int, JamGarrisonFollower> .ValueCollection.Enumerator enumerator2 = PersistentFollowerData.followerDictionary.get_Values().GetEnumerator()) { while (enumerator2.MoveNext()) { JamGarrisonFollower current2 = enumerator2.get_Current(); if (current2.CurrentMissionID == garrMissionID) { int[] buffsForCurrentMission = GeneralHelpers.GetBuffsForCurrentMission(current2.GarrFollowerID, garrMissionID, this.missionFollowerSlotGroup); num6 += buffsForCurrentMission.Length; int[] array4 = buffsForCurrentMission; for (int num7 = 0; num7 < array4.Length; num7++) { int garrAbilityID = array4[num7]; GameObject gameObject3 = Object.Instantiate <GameObject>(this.m_mechanicEffectDisplayPrefab); gameObject3.get_transform().SetParent(this.m_partyBuffGroup.get_transform(), false); AbilityDisplay component3 = gameObject3.GetComponent <AbilityDisplay>(); component3.SetAbility(garrAbilityID, false, false, null); } } } } this.m_partyBuffGroup.SetActive(num6 > 0); }
public void SetMission(JamGarrisonMobileMission mission) { this.m_statusDarkener.get_gameObject().SetActive(false); this.m_statusText.get_gameObject().SetActive(false); this.m_mission = mission; GarrMissionRec record = StaticDB.garrMissionDB.GetRecord(mission.MissionRecID); if (record == null) { return; } if (this.m_missionTypeIcon != null) { GarrMissionTypeRec record2 = StaticDB.garrMissionTypeDB.GetRecord((int)record.GarrMissionTypeID); this.m_missionTypeIcon.set_sprite(TextureAtlas.instance.GetAtlasSprite((int)record2.UiTextureAtlasMemberID)); } bool flag = false; if (mission.MissionState == 1) { flag = true; this.m_statusDarkener.get_gameObject().SetActive(true); this.m_statusDarkener.set_color(new Color(0f, 0f, 0f, 0.3529412f)); this.m_statusText.get_gameObject().SetActive(true); this.m_missionTime.get_gameObject().SetActive(false); } this.m_previewMechanicsGroup.SetActive(!flag); Duration duration = new Duration(record.MissionDuration, false); string text; if (duration.DurationValue >= 28800) { text = "<color=#ff8600ff>" + duration.DurationString + "</color>"; } else { text = "<color=#BEBEBEFF>" + duration.DurationString + "</color>"; } this.m_missionTime.set_text("(" + text + ")"); this.m_missionName.set_text(record.Name); if (this.m_missionLevel != null) { if (record.TargetLevel < 110) { this.m_missionLevel.set_text(string.Empty + record.TargetLevel); } else { this.m_missionLevel.set_text(string.Concat(new object[] { string.Empty, record.TargetLevel, "\n(", record.TargetItemLevel, ")" })); } } bool flag2 = (record.Flags & 1u) != 0u; this.m_expirationText.get_gameObject().SetActive(flag2); this.m_rareMissionLabel.get_gameObject().SetActive(flag2); this.m_rareMissionHighlight.get_gameObject().SetActive(flag2); if (flag2) { this.m_missionTypeBG.set_color(new Color(0f, 0f, 1f, 0.24f)); } else { this.m_missionTypeBG.set_color(new Color(0f, 0f, 0f, 0.478f)); } this.m_missionLocation.set_enabled(false); UiTextureKitRec record3 = StaticDB.uiTextureKitDB.GetRecord((int)record.UiTextureKitID); if (record3 != null) { int uITextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID(record3.KitPrefix + "-List"); if (uITextureAtlasMemberID > 0) { Sprite atlasSprite = TextureAtlas.instance.GetAtlasSprite(uITextureAtlasMemberID); if (atlasSprite != null) { this.m_missionLocation.set_enabled(true); this.m_missionLocation.set_sprite(atlasSprite); } } } this.UpdateMechanicPreview(flag, mission); MissionRewardDisplay[] componentsInChildren = this.m_previewLootGroup.GetComponentsInChildren <MissionRewardDisplay>(true); for (int i = 0; i < componentsInChildren.Length; i++) { if (componentsInChildren[i] != null) { Object.DestroyImmediate(componentsInChildren[i].get_gameObject()); } } MissionRewardDisplay.InitMissionRewards(this.m_missionRewardDisplayPrefab.get_gameObject(), this.m_previewLootGroup.get_transform(), mission.Reward); }
public void ShowMissionResults(int garrMissionID, int missionResultType, bool awardOvermax) { GarrMissionRec record = StaticDB.garrMissionDB.GetRecord(garrMissionID); if (record == null) { return; } this.m_missionResultsDisplayCanvasGroupAutoFadeOut.Reset(); this.m_currentResultType = (MissionResultType)missionResultType; this.m_followerExperienceDisplayArea.SetActive(false); this.m_attemptedAutoComplete = false; this.m_garrMissionID = garrMissionID; this.m_darknessBG.SetActive(true); this.m_popupView.SetActive(true); this.m_bonusLootDisplay.SetActive(false); if (this.missionFollowerSlotGroup != null) { MissionFollowerSlot[] componentsInChildren = this.missionFollowerSlotGroup.GetComponentsInChildren <MissionFollowerSlot>(true); for (int i = 0; i < componentsInChildren.Length; i++) { if (componentsInChildren[i] != null && componentsInChildren[i] != this.missionFollowerSlotGroup.transform) { Object.DestroyImmediate(componentsInChildren[i].gameObject); } } } MissionEncounter[] componentsInChildren2 = this.enemyPortraitsGroup.GetComponentsInChildren <MissionEncounter>(true); for (int j = 0; j < componentsInChildren2.Length; j++) { if (componentsInChildren2[j] != null && componentsInChildren2[j] != this.enemyPortraitsGroup.transform) { Object.DestroyImmediate(componentsInChildren2[j].gameObject); } } if (this.treasureChestHorde != null && this.treasureChestAlliance != null) { if (GarrisonStatus.Faction() == PVP_FACTION.HORDE) { this.treasureChestHorde.SetActive(true); this.treasureChestAlliance.SetActive(false); } else { this.treasureChestHorde.SetActive(false); this.treasureChestAlliance.SetActive(true); } } JamGarrisonMobileMission jamGarrisonMobileMission = (JamGarrisonMobileMission)PersistentMissionData.missionDictionary[garrMissionID]; this.m_missionStartedTime = jamGarrisonMobileMission.StartTime; this.m_missionDurationInSeconds = jamGarrisonMobileMission.MissionDuration; for (int k = 0; k < jamGarrisonMobileMission.Encounter.Length; k++) { GameObject gameObject = Object.Instantiate <GameObject>(this.missionEncounterPrefab); gameObject.transform.SetParent(this.enemyPortraitsGroup.transform, false); MissionEncounter component = gameObject.GetComponent <MissionEncounter>(); int garrMechanicID = (jamGarrisonMobileMission.Encounter[k].MechanicID.Length <= 0) ? 0 : jamGarrisonMobileMission.Encounter[k].MechanicID[0]; component.SetEncounter(jamGarrisonMobileMission.Encounter[k].EncounterID, garrMechanicID); } this.missionNameText.text = record.Name; this.missionLocationText.text = record.Location; this.missioniLevelText.text = StaticDB.GetString("ITEM_LEVEL_ABBREVIATION", null) + " " + record.TargetItemLevel; GarrMissionTypeRec record2 = StaticDB.garrMissionTypeDB.GetRecord((int)record.GarrMissionTypeID); this.missionTypeImage.overrideSprite = TextureAtlas.instance.GetAtlasSprite((int)record2.UiTextureAtlasMemberID); if (this.missionFollowerSlotGroup != null) { int num = 0; while ((long)num < (long)((ulong)record.MaxFollowers)) { GameObject gameObject2 = Object.Instantiate <GameObject>(this.missionFollowerSlotPrefab); gameObject2.transform.SetParent(this.missionFollowerSlotGroup.transform, false); MissionFollowerSlot component2 = gameObject2.GetComponent <MissionFollowerSlot>(); component2.m_enemyPortraitsGroup = this.enemyPortraitsGroup; num++; } } if (record.UiTextureKitID > 0u) { UiTextureKitRec record3 = StaticDB.uiTextureKitDB.GetRecord((int)record.UiTextureKitID); this.m_scrollingEnvironment_Back.enabled = false; this.m_scrollingEnvironment_Mid.enabled = false; this.m_scrollingEnvironment_Fore.enabled = false; int uitextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("_" + record3.KitPrefix + "-Back"); if (uitextureAtlasMemberID > 0) { Sprite atlasSprite = TextureAtlas.instance.GetAtlasSprite(uitextureAtlasMemberID); if (atlasSprite != null) { this.m_scrollingEnvironment_Back.enabled = true; this.m_scrollingEnvironment_Back.sprite = atlasSprite; } } int uitextureAtlasMemberID2 = TextureAtlas.GetUITextureAtlasMemberID("_" + record3.KitPrefix + "-Mid"); if (uitextureAtlasMemberID2 > 0) { Sprite atlasSprite2 = TextureAtlas.instance.GetAtlasSprite(uitextureAtlasMemberID2); if (atlasSprite2 != null) { this.m_scrollingEnvironment_Mid.enabled = true; this.m_scrollingEnvironment_Mid.sprite = atlasSprite2; } } int uitextureAtlasMemberID3 = TextureAtlas.GetUITextureAtlasMemberID("_" + record3.KitPrefix + "-Fore"); if (uitextureAtlasMemberID3 > 0) { Sprite atlasSprite3 = TextureAtlas.instance.GetAtlasSprite(uitextureAtlasMemberID3); if (atlasSprite3 != null) { this.m_scrollingEnvironment_Fore.enabled = true; this.m_scrollingEnvironment_Fore.sprite = atlasSprite3; } } } else { Debug.LogWarning(string.Concat(new object[] { "DATA ERROR: Mission UITextureKit Not Set for mission ID:", record.ID, " - ", record.Name })); Debug.LogWarning("This means the scrolling background images will show the wrong location"); } if (this.m_lootGroupObj == null || this.m_missionRewardDisplayPrefab == null) { return; } MissionRewardDisplay[] componentsInChildren3 = this.m_lootGroupObj.GetComponentsInChildren <MissionRewardDisplay>(true); for (int l = 0; l < componentsInChildren3.Length; l++) { if (componentsInChildren3[l] != null) { Object.DestroyImmediate(componentsInChildren3[l].gameObject); } } if (missionResultType == 1) { PersistentFollowerData.ClearPreMissionFollowerData(); } List <JamGarrisonFollower> list = new List <JamGarrisonFollower>(); MissionFollowerSlot[] componentsInChildren4 = this.missionFollowerSlotGroup.GetComponentsInChildren <MissionFollowerSlot>(true); int num2 = 0; foreach (JamGarrisonFollower jamGarrisonFollower in PersistentFollowerData.followerDictionary.Values) { if (jamGarrisonFollower.CurrentMissionID == garrMissionID) { componentsInChildren4[num2++].SetFollower(jamGarrisonFollower.GarrFollowerID); if (missionResultType == 1) { PersistentFollowerData.CachePreMissionFollower(jamGarrisonFollower); } list.Add(jamGarrisonFollower); } } this.UpdateMissionStatus(garrMissionID); foreach (MissionFollowerSlot missionFollowerSlot in componentsInChildren4) { missionFollowerSlot.InitHeartPanel(); } MissionRewardDisplay.InitMissionRewards(this.m_missionRewardDisplayPrefab.gameObject, this.m_lootGroupObj.transform, jamGarrisonMobileMission.Reward); if (record.OvermaxRewardPackID > 0 && jamGarrisonMobileMission.OvermaxReward.Length > 0) { this.m_bonusLootDisplay.SetActive(true); JamGarrisonMissionReward jamGarrisonMissionReward = jamGarrisonMobileMission.OvermaxReward[0]; if (jamGarrisonMissionReward.ItemID > 0) { this.m_bonusMissionRewardDisplay.InitReward(MissionRewardDisplay.RewardType.item, jamGarrisonMissionReward.ItemID, (int)jamGarrisonMissionReward.ItemQuantity, 0, jamGarrisonMissionReward.ItemFileDataID); } else if (jamGarrisonMissionReward.FollowerXP > 0u) { this.m_bonusMissionRewardDisplay.InitReward(MissionRewardDisplay.RewardType.followerXP, 0, (int)jamGarrisonMissionReward.FollowerXP, 0, 0); } else if (jamGarrisonMissionReward.CurrencyQuantity > 0u) { if (jamGarrisonMissionReward.CurrencyType == 0) { this.m_bonusMissionRewardDisplay.InitReward(MissionRewardDisplay.RewardType.gold, 0, (int)(jamGarrisonMissionReward.CurrencyQuantity / 10000u), 0, 0); } else { CurrencyTypesRec record4 = StaticDB.currencyTypesDB.GetRecord(jamGarrisonMissionReward.CurrencyType); int rewardQuantity = (int)((ulong)jamGarrisonMissionReward.CurrencyQuantity / (ulong)(((record4.Flags & 8u) == 0u) ? 1L : 100L)); this.m_bonusMissionRewardDisplay.InitReward(MissionRewardDisplay.RewardType.currency, jamGarrisonMissionReward.CurrencyType, rewardQuantity, 0, 0); } } } this.m_timeUntilFadeOutMissionDetailsDisplay = this.m_missionDetailsFadeOutDelay; this.m_timeUntilShowFollowerExperienceDisplays = this.m_experienceDisplayInitialEntranceDelay; if (missionResultType == 2) { this.InitFollowerExperienceDisplays(); this.m_missionInProgressMessage.SetActive(false); this.m_missionSuccessMessage.SetActive(true); this.m_missionFailMessage.SetActive(false); if (this.m_fancyEntrance != null) { Object.DestroyImmediate(this.m_fancyEntrance); iTween.Stop(this.m_missionSuccessMessage); this.m_missionSuccessMessage.transform.localScale = Vector3.one; iTween.Stop(this.m_missionFailMessage); this.m_missionFailMessage.transform.localScale = Vector3.one; } this.m_missionSuccessMessage.SetActive(false); this.m_fancyEntrance = this.m_missionSuccessMessage.AddComponent <FancyEntrance>(); this.m_fancyEntrance.m_fadeInCanvasGroup = this.m_missionSuccessMessage.GetComponent <CanvasGroup>(); this.m_fancyEntrance.m_fadeInTime = this.m_messageFadeInTime; this.m_fancyEntrance.m_punchScale = this.m_messagePunchScale; this.m_fancyEntrance.m_punchScaleAmount = this.m_messagePunchScaleAmount; this.m_fancyEntrance.m_punchScaleDuration = this.m_messagePunchScaleDuration; this.m_fancyEntrance.m_timeToDelayEntrance = this.m_messageTimeToDelayEntrance; this.m_fancyEntrance.m_activateOnEnable = true; this.m_fancyEntrance.m_objectToNotifyOnBegin = base.gameObject; this.m_fancyEntrance.m_notifyOnBeginCallbackName = "OnShowSuccessMessage"; this.m_missionSuccessMessage.SetActive(true); MissionRewardDisplay[] componentsInChildren5 = this.m_lootGroupObj.GetComponentsInChildren <MissionRewardDisplay>(true); for (int n = 0; n < componentsInChildren5.Length; n++) { componentsInChildren5[n].ShowResultSuccess(this.m_lootEffectInitialDelay + this.m_lootEffectDelay * (float)n); } if (this.m_bonusLootChance > 0) { iTween.ValueTo(base.gameObject, iTween.Hash(new object[] { "name", "ShakeIt", "from", 0.3f, "to", 1f, "delay", this.m_bonusLootShakeInitialDelay, "time", this.m_bonusLootShakeDuration, "onupdate", "OnBonusLootShakeUpdate", "oncomplete", "OnBonusLootShakeComplete" })); } if (awardOvermax) { this.m_bonusMissionRewardDisplay.ShowResultSuccess(this.m_lootEffectInitialDelay + this.m_lootEffectDelay * (float)componentsInChildren5.Length); } else { this.m_bonusMissionRewardDisplay.ShowResultFail(this.m_lootEffectInitialDelay + this.m_lootEffectDelay * (float)componentsInChildren5.Length); } } if (missionResultType == 3) { this.InitFollowerExperienceDisplays(); this.m_missionInProgressMessage.SetActive(false); this.m_missionSuccessMessage.SetActive(false); this.m_missionFailMessage.SetActive(true); if (this.m_fancyEntrance != null) { Object.DestroyImmediate(this.m_fancyEntrance); iTween.Stop(this.m_missionSuccessMessage); this.m_missionSuccessMessage.transform.localScale = Vector3.one; iTween.Stop(this.m_missionFailMessage); this.m_missionFailMessage.transform.localScale = Vector3.one; } this.m_missionFailMessage.SetActive(false); this.m_fancyEntrance = this.m_missionFailMessage.AddComponent <FancyEntrance>(); this.m_fancyEntrance.m_fadeInCanvasGroup = this.m_missionFailMessage.GetComponent <CanvasGroup>(); this.m_fancyEntrance.m_fadeInTime = this.m_messageFadeInTime; this.m_fancyEntrance.m_punchScale = this.m_messagePunchScale; this.m_fancyEntrance.m_punchScaleAmount = this.m_messagePunchScaleAmount; this.m_fancyEntrance.m_punchScaleDuration = this.m_messagePunchScaleDuration; this.m_fancyEntrance.m_timeToDelayEntrance = this.m_messageTimeToDelayEntrance; this.m_fancyEntrance.m_activateOnEnable = true; this.m_fancyEntrance.m_objectToNotifyOnBegin = base.gameObject; this.m_fancyEntrance.m_notifyOnBeginCallbackName = "OnShowFailMessage"; this.m_missionFailMessage.SetActive(true); MissionRewardDisplay[] componentsInChildren6 = this.m_lootGroupObj.GetComponentsInChildren <MissionRewardDisplay>(true); for (int num3 = 0; num3 < componentsInChildren6.Length; num3++) { componentsInChildren6[num3].ShowResultFail(this.m_lootEffectInitialDelay); } this.m_bonusMissionRewardDisplay.ShowResultFail(this.m_lootEffectInitialDelay); } if (missionResultType == 0) { this.m_missionInProgressMessage.SetActive(true); this.m_missionSuccessMessage.SetActive(false); this.m_missionFailMessage.SetActive(false); this.m_bonusMissionRewardDisplay.ClearResults(); } if (missionResultType == 1) { this.m_missionInProgressMessage.SetActive(false); this.m_missionSuccessMessage.SetActive(false); this.m_missionFailMessage.SetActive(false); FollowerExperienceDisplay[] componentsInChildren7 = this.m_followerExperienceDisplayArea.GetComponentsInChildren <FollowerExperienceDisplay>(true); foreach (FollowerExperienceDisplay followerExperienceDisplay in componentsInChildren7) { Object.DestroyImmediate(followerExperienceDisplay.gameObject); } } if (this.m_partyBuffGroup == null) { return; } AbilityDisplay[] componentsInChildren8 = this.m_partyBuffGroup.GetComponentsInChildren <AbilityDisplay>(true); foreach (AbilityDisplay abilityDisplay in componentsInChildren8) { Object.DestroyImmediate(abilityDisplay.gameObject); } int adjustedMissionDuration = GeneralHelpers.GetAdjustedMissionDuration(record, list, this.enemyPortraitsGroup); int num6 = 0; foreach (JamGarrisonFollower jamGarrisonFollower2 in PersistentFollowerData.followerDictionary.Values) { if (jamGarrisonFollower2.CurrentMissionID == garrMissionID) { int[] buffsForCurrentMission = GeneralHelpers.GetBuffsForCurrentMission(jamGarrisonFollower2.GarrFollowerID, garrMissionID, this.missionFollowerSlotGroup, adjustedMissionDuration); num6 += buffsForCurrentMission.Length; foreach (int garrAbilityID in buffsForCurrentMission) { GameObject gameObject3 = Object.Instantiate <GameObject>(this.m_mechanicEffectDisplayPrefab); gameObject3.transform.SetParent(this.m_partyBuffGroup.transform, false); AbilityDisplay component3 = gameObject3.GetComponent <AbilityDisplay>(); component3.SetAbility(garrAbilityID, false, false, null); } } } if (num6 > 8) { this.m_partyBuffsText.text = string.Empty; } else { this.m_partyBuffsText.text = StaticDB.GetString("PARTY_BUFFS", null); } HorizontalLayoutGroup component4 = this.m_partyBuffGroup.GetComponent <HorizontalLayoutGroup>(); if (component4 != null) { if (num6 > 10 && Main.instance.IsNarrowScreen()) { component4.spacing = 3f; } else { component4.spacing = 6f; } } this.m_partyBuffGroup.SetActive(num6 > 0); }