public void SetFollower(int followerID) { this.m_garrFollowerID = followerID; if (followerID == 0) { RectTransform[] componentsInChildren = this.traitsAndAbilitiesRootObject.GetComponentsInChildren <RectTransform>(true); for (int i = 0; i < componentsInChildren.Length; i++) { if (componentsInChildren[i] != null && componentsInChildren[i] != this.traitsAndAbilitiesRootObject.transform) { Object.Destroy(componentsInChildren[i].gameObject); } } AbilityDisplay[] componentsInChildren2 = this.m_equipmentSlotsRootObject.GetComponentsInChildren <AbilityDisplay>(true); for (int j = 0; j < componentsInChildren2.Length; j++) { Object.Destroy(componentsInChildren2[j].gameObject); } } if (!PersistentFollowerData.followerDictionary.ContainsKey(followerID)) { return; } GarrFollowerRec record = StaticDB.garrFollowerDB.GetRecord(followerID); if (record == null) { return; } CreatureRec record2 = StaticDB.creatureDB.GetRecord((GarrisonStatus.Faction() != PVP_FACTION.HORDE) ? record.AllianceCreatureID : record.HordeCreatureID); if (record2 == null) { return; } WrapperGarrisonFollower follower = PersistentFollowerData.followerDictionary[followerID]; string text = "Assets/BundleAssets/PortraitIcons/cid_" + record2.ID.ToString("D8") + ".png"; Sprite sprite = AssetBundleManager.PortraitIcons.LoadAsset <Sprite>(text); if (sprite != null) { this.followerSnapshot.sprite = sprite; } RectTransform[] componentsInChildren3 = this.traitsAndAbilitiesRootObject.GetComponentsInChildren <RectTransform>(true); for (int k = 0; k < componentsInChildren3.Length; k++) { if (componentsInChildren3[k] != null && componentsInChildren3[k] != this.traitsAndAbilitiesRootObject.transform) { Object.Destroy(componentsInChildren3[k].gameObject); } } bool flag = false; for (int l = 0; l < follower.AbilityIDs.Count; l++) { GarrAbilityRec record3 = StaticDB.garrAbilityDB.GetRecord(follower.AbilityIDs[l]); if ((record3.Flags & 512u) != 0u) { if (!flag) { GameObject gameObject = Object.Instantiate <GameObject>(this.specializationHeaderPrefab); gameObject.transform.SetParent(this.traitsAndAbilitiesRootObject.transform, false); flag = true; Text component = gameObject.GetComponent <Text>(); if (component != null) { component.text = StaticDB.GetString("SPECIALIZATION", null); } } GameObject gameObject2 = Object.Instantiate <GameObject>(this.abilityDisplayPrefab); gameObject2.transform.SetParent(this.traitsAndAbilitiesRootObject.transform, false); AbilityDisplay component2 = gameObject2.GetComponent <AbilityDisplay>(); component2.SetAbility(record3.ID, false, false, null); } } bool flag2 = false; for (int m = 0; m < follower.AbilityIDs.Count; m++) { GarrAbilityRec record4 = StaticDB.garrAbilityDB.GetRecord(follower.AbilityIDs[m]); if ((record4.Flags & 1u) == 0u) { if ((record4.Flags & 512u) == 0u) { if (!flag2) { GameObject gameObject3 = Object.Instantiate <GameObject>(this.abilitiesHeaderPrefab); gameObject3.transform.SetParent(this.traitsAndAbilitiesRootObject.transform, false); flag2 = true; Text component3 = gameObject3.GetComponent <Text>(); if (component3 != null) { component3.text = StaticDB.GetString("ABILITIES", null); } } GameObject gameObject4 = Object.Instantiate <GameObject>(this.abilityDisplayPrefab); gameObject4.transform.SetParent(this.traitsAndAbilitiesRootObject.transform, false); AbilityDisplay component4 = gameObject4.GetComponent <AbilityDisplay>(); component4.SetAbility(follower.AbilityIDs[m], false, false, null); } } } if (follower.ZoneSupportSpellID > 0) { GameObject gameObject5 = Object.Instantiate <GameObject>(this.zoneSupportAbilityHeaderPrefab); gameObject5.transform.SetParent(this.traitsAndAbilitiesRootObject.transform, false); GameObject gameObject6 = Object.Instantiate <GameObject>(this.m_spellDisplayPrefab); gameObject6.transform.SetParent(this.traitsAndAbilitiesRootObject.transform, false); SpellDisplay component5 = gameObject6.GetComponent <SpellDisplay>(); component5.SetSpell(follower.ZoneSupportSpellID); Text componentInChildren = gameObject5.GetComponentInChildren <Text>(); if (componentInChildren != null) { componentInChildren.text = StaticDB.GetString("COMBAT_ALLY", null); } } bool flag3 = (follower.Flags & 8) != 0; if (flag3) { GarrStringRec record5 = StaticDB.garrStringDB.GetRecord((GarrisonStatus.Faction() != PVP_FACTION.ALLIANCE) ? record.HordeFlavorGarrStringID : record.AllianceFlavorGarrStringID); if (record5 != null) { Text text2 = Object.Instantiate <Text>(this.m_troopDescriptionPrefab); text2.transform.SetParent(this.traitsAndAbilitiesRootObject.transform, false); text2.text = record5.Text; text2.font = FontLoader.LoadStandardFont(); } } this.InitEquipmentSlots(follower); this.UpdateChampionButtons(follower); }
public void SetFollower(int followerID) { this.m_garrFollowerID = followerID; if (followerID == 0) { RectTransform[] componentsInChildren = this.traitsAndAbilitiesRootObject.GetComponentsInChildren <RectTransform>(true); for (int i = 0; i < (int)componentsInChildren.Length; i++) { if (componentsInChildren[i] != null && componentsInChildren[i] != this.traitsAndAbilitiesRootObject.transform) { UnityEngine.Object.Destroy(componentsInChildren[i].gameObject); } } AbilityDisplay[] abilityDisplayArray = this.m_equipmentSlotsRootObject.GetComponentsInChildren <AbilityDisplay>(true); for (int j = 0; j < (int)abilityDisplayArray.Length; j++) { UnityEngine.Object.Destroy(abilityDisplayArray[j].gameObject); } } if (!PersistentFollowerData.followerDictionary.ContainsKey(followerID)) { return; } GarrFollowerRec record = StaticDB.garrFollowerDB.GetRecord(followerID); if (record == null) { return; } CreatureRec creatureRec = StaticDB.creatureDB.GetRecord((GarrisonStatus.Faction() != PVP_FACTION.HORDE ? record.AllianceCreatureID : record.HordeCreatureID)); if (creatureRec == null) { return; } WrapperGarrisonFollower item = PersistentFollowerData.followerDictionary[followerID]; int d = creatureRec.ID; string str = string.Concat("Assets/BundleAssets/PortraitIcons/cid_", d.ToString("D8"), ".png"); Sprite sprite = AssetBundleManager.PortraitIcons.LoadAsset <Sprite>(str); if (sprite != null) { this.followerSnapshot.sprite = sprite; } RectTransform[] rectTransformArray = this.traitsAndAbilitiesRootObject.GetComponentsInChildren <RectTransform>(true); for (int k = 0; k < (int)rectTransformArray.Length; k++) { if (rectTransformArray[k] != null && rectTransformArray[k] != this.traitsAndAbilitiesRootObject.transform) { UnityEngine.Object.Destroy(rectTransformArray[k].gameObject); } } bool flag = false; for (int l = 0; l < item.AbilityIDs.Count; l++) { GarrAbilityRec garrAbilityRec = StaticDB.garrAbilityDB.GetRecord(item.AbilityIDs[l]); if ((garrAbilityRec.Flags & 512) != 0) { if (!flag) { GameObject gameObject = UnityEngine.Object.Instantiate <GameObject>(this.specializationHeaderPrefab); gameObject.transform.SetParent(this.traitsAndAbilitiesRootObject.transform, false); flag = true; Text component = gameObject.GetComponent <Text>(); if (component != null) { component.text = StaticDB.GetString("SPECIALIZATION", null); } } GameObject gameObject1 = UnityEngine.Object.Instantiate <GameObject>(this.abilityDisplayPrefab); gameObject1.transform.SetParent(this.traitsAndAbilitiesRootObject.transform, false); AbilityDisplay abilityDisplay = gameObject1.GetComponent <AbilityDisplay>(); abilityDisplay.SetAbility(garrAbilityRec.ID, false, false, null); } } bool flag1 = false; for (int m = 0; m < item.AbilityIDs.Count; m++) { GarrAbilityRec record1 = StaticDB.garrAbilityDB.GetRecord(item.AbilityIDs[m]); if ((record1.Flags & 1) == 0) { if ((record1.Flags & 512) == 0) { if (!flag1) { GameObject gameObject2 = UnityEngine.Object.Instantiate <GameObject>(this.abilitiesHeaderPrefab); gameObject2.transform.SetParent(this.traitsAndAbilitiesRootObject.transform, false); flag1 = true; Text text = gameObject2.GetComponent <Text>(); if (text != null) { text.text = StaticDB.GetString("ABILITIES", null); } } GameObject gameObject3 = UnityEngine.Object.Instantiate <GameObject>(this.abilityDisplayPrefab); gameObject3.transform.SetParent(this.traitsAndAbilitiesRootObject.transform, false); AbilityDisplay component1 = gameObject3.GetComponent <AbilityDisplay>(); component1.SetAbility(item.AbilityIDs[m], false, false, null); } } } if (item.ZoneSupportSpellID > 0) { GameObject gameObject4 = UnityEngine.Object.Instantiate <GameObject>(this.zoneSupportAbilityHeaderPrefab); gameObject4.transform.SetParent(this.traitsAndAbilitiesRootObject.transform, false); GameObject gameObject5 = UnityEngine.Object.Instantiate <GameObject>(this.m_spellDisplayPrefab); gameObject5.transform.SetParent(this.traitsAndAbilitiesRootObject.transform, false); gameObject5.GetComponent <SpellDisplay>().SetSpell(item.ZoneSupportSpellID); Text componentInChildren = gameObject4.GetComponentInChildren <Text>(); if (componentInChildren != null) { componentInChildren.text = StaticDB.GetString("COMBAT_ALLY", null); } } if ((item.Flags & 8) != 0) { GarrStringRec garrStringRec = StaticDB.garrStringDB.GetRecord((GarrisonStatus.Faction() != PVP_FACTION.ALLIANCE ? record.HordeFlavorGarrStringID : record.AllianceFlavorGarrStringID)); if (garrStringRec != null) { Text text1 = UnityEngine.Object.Instantiate <Text>(this.m_troopDescriptionPrefab); text1.transform.SetParent(this.traitsAndAbilitiesRootObject.transform, false); text1.text = garrStringRec.Text; text1.font = FontLoader.LoadStandardFont(); } } this.InitEquipmentSlots(item); this.UpdateChampionButtons(item); }