public void UpdateUsefulAbilitiesDisplay(int currentGarrMissionID) { AbilityDisplay[] componentsInChildren = this.usefulAbilitiesGroup.GetComponentsInChildren <AbilityDisplay>(true); for (int i = 0; i < componentsInChildren.Length; i++) { Object.DestroyImmediate(componentsInChildren[i].get_gameObject()); } List <int> list = new List <int>(); JamGarrisonMobileMission jamGarrisonMobileMission = (JamGarrisonMobileMission)PersistentMissionData.missionDictionary.get_Item(currentGarrMissionID); for (int j = 0; j < jamGarrisonMobileMission.Encounter.Length; j++) { int num = (jamGarrisonMobileMission.Encounter[j].MechanicID.Length <= 0) ? 0 : jamGarrisonMobileMission.Encounter[j].MechanicID[0]; GarrMechanicRec record = StaticDB.garrMechanicDB.GetRecord(num); if (record == null) { Debug.LogWarning(string.Concat(new object[] { "INVALID garrMechanic ID ", num, " in mission ", jamGarrisonMobileMission.MissionRecID })); } else { int abilityToCounterMechanicType = MissionMechanic.GetAbilityToCounterMechanicType((int)record.GarrMechanicTypeID); if (!list.Contains(abilityToCounterMechanicType)) { list.Add(abilityToCounterMechanicType); } } } List <int> usefulBuffAbilitiesForFollower = MissionMechanic.GetUsefulBuffAbilitiesForFollower(this.m_followerID); List <int> list2 = Enumerable.ToList <int>(Enumerable.Union <int>(list, usefulBuffAbilitiesForFollower)); JamGarrisonFollower jamGarrisonFollower = PersistentFollowerData.followerDictionary.get_Item(this.m_followerID); int[] abilityID = jamGarrisonFollower.AbilityID; for (int k = 0; k < abilityID.Length; k++) { int num2 = abilityID[k]; using (List <int> .Enumerator enumerator = list2.GetEnumerator()) { while (enumerator.MoveNext()) { int current = enumerator.get_Current(); if (num2 == current) { GameObject gameObject = Object.Instantiate <GameObject>(this.m_abilityDisplayPrefab); gameObject.get_transform().SetParent(this.usefulAbilitiesGroup.get_transform(), false); AbilityDisplay component = gameObject.GetComponent <AbilityDisplay>(); component.SetAbility(num2, true, false, null); component.m_abilityNameText.get_gameObject().SetActive(false); } } } } }
public void UpdateUsefulAbilitiesDisplay(int currentGarrMissionID) { if (!PersistentFollowerData.followerDictionary.ContainsKey(this.m_followerID)) { return; } AbilityDisplay[] componentsInChildren = this.usefulAbilitiesGroup.GetComponentsInChildren <AbilityDisplay>(true); for (int i = 0; i < componentsInChildren.Length; i++) { Object.DestroyImmediate(componentsInChildren[i].gameObject); } List <int> list = new List <int>(); JamGarrisonMobileMission jamGarrisonMobileMission = (JamGarrisonMobileMission)PersistentMissionData.missionDictionary[currentGarrMissionID]; for (int j = 0; j < jamGarrisonMobileMission.Encounter.Length; j++) { int num = (jamGarrisonMobileMission.Encounter[j].MechanicID.Length <= 0) ? 0 : jamGarrisonMobileMission.Encounter[j].MechanicID[0]; GarrMechanicRec record = StaticDB.garrMechanicDB.GetRecord(num); if (record == null) { Debug.LogWarning(string.Concat(new object[] { "INVALID garrMechanic ID ", num, " in mission ", jamGarrisonMobileMission.MissionRecID })); } else { int abilityToCounterMechanicType = MissionMechanic.GetAbilityToCounterMechanicType((int)record.GarrMechanicTypeID); if (!list.Contains(abilityToCounterMechanicType)) { list.Add(abilityToCounterMechanicType); } } } List <int> usefulBuffAbilitiesForFollower = MissionMechanic.GetUsefulBuffAbilitiesForFollower(this.m_followerID); List <int> list2 = list.Union(usefulBuffAbilitiesForFollower).ToList <int>(); JamGarrisonFollower jamGarrisonFollower = PersistentFollowerData.followerDictionary[this.m_followerID]; foreach (int num2 in jamGarrisonFollower.AbilityID) { foreach (int num3 in list2) { if (num2 == num3) { GameObject gameObject = Object.Instantiate <GameObject>(this.m_abilityDisplayPrefab); gameObject.transform.SetParent(this.usefulAbilitiesGroup.transform, false); AbilityDisplay component = gameObject.GetComponent <AbilityDisplay>(); component.SetAbility(num2, true, false, null); component.m_abilityNameText.gameObject.SetActive(false); } } } }