private void PrecacheMissionChances() { foreach (WrapperGarrisonMission wrapperGarrisonMission in PersistentMissionData.missionDictionary.Values) { GarrMissionRec record = StaticDB.garrMissionDB.GetRecord(wrapperGarrisonMission.MissionRecID); if (record != null && (GARR_FOLLOWER_TYPE)record.GarrFollowerTypeID == GarrisonStatus.GarrisonFollowerType) { if (wrapperGarrisonMission.MissionState == 1) { List <WrapperGarrisonFollower> list = new List <WrapperGarrisonFollower>(); foreach (WrapperGarrisonFollower item in PersistentFollowerData.followerDictionary.Values) { if (item.CurrentMissionID == wrapperGarrisonMission.MissionRecID) { list.Add(item); } } LegionCompanionWrapper.EvaluateMission(wrapperGarrisonMission.MissionRecID, (from f in list select f.GarrFollowerID).ToList <int>()); } } } }
public void UpdateMissionStatus(int garrMissionID) { MissionMechanic[] componentsInChildren = this.enemyPortraitsGroup.GetComponentsInChildren <MissionMechanic>(true); if (componentsInChildren == null) { return; } for (int i = 0; i < (int)componentsInChildren.Length; i++) { componentsInChildren[i].SetCountered(false, false, true); } AbilityDisplay[] abilityDisplayArray = this.enemyPortraitsGroup.GetComponentsInChildren <AbilityDisplay>(true); if (abilityDisplayArray == null) { return; } for (int j = 0; j < (int)abilityDisplayArray.Length; j++) { abilityDisplayArray[j].SetCountered(false, true); } MissionMechanicTypeCounter[] missionMechanicTypeCounterArray = base.gameObject.GetComponentsInChildren <MissionMechanicTypeCounter>(true); if (missionMechanicTypeCounterArray == null) { return; } for (int k = 0; k < (int)missionMechanicTypeCounterArray.Length; k++) { missionMechanicTypeCounterArray[k].usedIcon.gameObject.SetActive(false); int num = 0; while (num < (int)componentsInChildren.Length) { if (missionMechanicTypeCounterArray[k].countersMissionMechanicTypeID != componentsInChildren[num].m_missionMechanicTypeID || componentsInChildren[num].IsCountered()) { num++; } else { componentsInChildren[num].SetCountered(true, false, false); if (num < (int)abilityDisplayArray.Length) { abilityDisplayArray[num].SetCountered(true, false); } break; } } } MissionFollowerSlot[] missionFollowerSlotArray = base.gameObject.GetComponentsInChildren <MissionFollowerSlot>(true); List <WrapperGarrisonFollower> wrapperGarrisonFollowers = new List <WrapperGarrisonFollower>(); for (int l = 0; l < (int)missionFollowerSlotArray.Length; l++) { int currentGarrFollowerID = missionFollowerSlotArray[l].GetCurrentGarrFollowerID(); if (PersistentFollowerData.followerDictionary.ContainsKey(currentGarrFollowerID)) { wrapperGarrisonFollowers.Add(PersistentFollowerData.followerDictionary[currentGarrFollowerID]); } } int item = -1000; if (!MissionDataCache.missionDataDictionary.ContainsKey(this.m_garrMissionID)) { LegionCompanionWrapper.EvaluateMission(garrMissionID, ( from f in wrapperGarrisonFollowers select f.GarrFollowerID).ToList <int>()); } else { item = MissionDataCache.missionDataDictionary[this.m_garrMissionID]; } this.OnMissionSuccessChanceChanged(item); }
public void UpdateMissionStatus(int garrMissionID) { MissionMechanic[] componentsInChildren = this.enemyPortraitsGroup.GetComponentsInChildren <MissionMechanic>(true); if (componentsInChildren == null) { return; } for (int i = 0; i < componentsInChildren.Length; i++) { componentsInChildren[i].SetCountered(false, false, true); } AbilityDisplay[] componentsInChildren2 = this.enemyPortraitsGroup.GetComponentsInChildren <AbilityDisplay>(true); if (componentsInChildren2 == null) { return; } for (int j = 0; j < componentsInChildren2.Length; j++) { componentsInChildren2[j].SetCountered(false, true); } MissionMechanicTypeCounter[] componentsInChildren3 = base.gameObject.GetComponentsInChildren <MissionMechanicTypeCounter>(true); if (componentsInChildren3 == null) { return; } for (int k = 0; k < componentsInChildren3.Length; k++) { componentsInChildren3[k].usedIcon.gameObject.SetActive(false); for (int l = 0; l < componentsInChildren.Length; l++) { if (componentsInChildren3[k].countersMissionMechanicTypeID == componentsInChildren[l].m_missionMechanicTypeID && !componentsInChildren[l].IsCountered()) { componentsInChildren[l].SetCountered(true, false, false); if (l < componentsInChildren2.Length) { componentsInChildren2[l].SetCountered(true, false); } break; } } } MissionFollowerSlot[] componentsInChildren4 = base.gameObject.GetComponentsInChildren <MissionFollowerSlot>(true); List <WrapperGarrisonFollower> list = new List <WrapperGarrisonFollower>(); for (int m = 0; m < componentsInChildren4.Length; m++) { int currentGarrFollowerID = componentsInChildren4[m].GetCurrentGarrFollowerID(); if (PersistentFollowerData.followerDictionary.ContainsKey(currentGarrFollowerID)) { WrapperGarrisonFollower item = PersistentFollowerData.followerDictionary[currentGarrFollowerID]; list.Add(item); } } int chance = -1000; if (MissionDataCache.missionDataDictionary.ContainsKey(this.m_garrMissionID)) { chance = MissionDataCache.missionDataDictionary[this.m_garrMissionID]; } else { LegionCompanionWrapper.EvaluateMission(garrMissionID, (from f in list select f.GarrFollowerID).ToList <int>()); } this.OnMissionSuccessChanceChanged(chance); }