private void InitPlayerDisplay(int playerLevel) { this.m_characterName.text = Singleton <CharacterData> .instance.CharacterName; if (Main.instance.GetLocale() == "frFR") { this.m_characterClassName.text = string.Concat(new string[] { GarrisonStatus.CharacterClassName(), " ", StaticDB.GetString("LEVEL", null), " ", playerLevel.ToString() }); } else { this.m_characterClassName.text = GeneralHelpers.TextOrderString(StaticDB.GetString("LEVEL", null), playerLevel.ToString()) + " " + GarrisonStatus.CharacterClassName(); } this.m_characterListButton.text = StaticDB.GetString("LOG_OUT", null); Sprite sprite = GeneralHelpers.LoadClassIcon(GarrisonStatus.CharacterClassID()); if (sprite != null) { this.m_classIcon.sprite = sprite; } }
private void InitTalentTree() { if (this.m_needsFullInit) { this.m_needsFullInit = false; if (GarrisonStatus.Faction() == PVP_FACTION.HORDE) { this.m_hordeBG.gameObject.SetActive(true); this.m_allianceBG.gameObject.SetActive(false); } else if (GarrisonStatus.Faction() == PVP_FACTION.ALLIANCE) { this.m_hordeBG.gameObject.SetActive(false); this.m_allianceBG.gameObject.SetActive(true); } TalentTreeItem[] componentsInChildren = this.m_talentTreeItemRoot.GetComponentsInChildren <TalentTreeItem>(true); foreach (TalentTreeItem talentTreeItem in componentsInChildren) { talentTreeItem.transform.SetParent(null); Object.Destroy(talentTreeItem.gameObject); } Image[] componentsInChildren2 = this.m_romanNumeralRoot.GetComponentsInChildren <Image>(true); foreach (Image image in componentsInChildren2) { image.transform.SetParent(null); Object.Destroy(image.gameObject); } this.m_talentTreeItems.Clear(); int lookupId = (GarrisonStatus.Faction() != PVP_FACTION.HORDE) ? 153 : 152; GarrTalentTreeRec recordFirstOrDefault = StaticDB.garrTalentTreeDB.GetRecordFirstOrDefault((GarrTalentTreeRec garrTalentTreeRec) => garrTalentTreeRec.ID == lookupId); if (recordFirstOrDefault == null) { Debug.LogError("No GarrTalentTree record found for class " + GarrisonStatus.CharacterClassID()); return; } for (int k = 0; k < (int)recordFirstOrDefault.MaxTiers; k++) { GameObject gameObject = Object.Instantiate <GameObject>(this.m_talentTreeItemPrefab); gameObject.transform.SetParent(this.m_talentTreeItemRoot.transform, false); TalentTreeItem component = gameObject.GetComponent <TalentTreeItem>(); this.m_talentTreeItems.Add(component); switch (k) { case 0: component.m_talentTier.sprite = Resources.Load <Sprite>("OrderAdvancement/Number-One"); break; case 1: component.m_talentTier.sprite = Resources.Load <Sprite>("OrderAdvancement/Number-Two"); break; case 2: component.m_talentTier.sprite = Resources.Load <Sprite>("OrderAdvancement/Number-Three"); break; case 3: component.m_talentTier.sprite = Resources.Load <Sprite>("OrderAdvancement/Number-Four"); break; case 4: component.m_talentTier.sprite = Resources.Load <Sprite>("OrderAdvancement/Number-Five"); break; case 5: component.m_talentTier.sprite = Resources.Load <Sprite>("OrderAdvancement/Number-Six"); break; case 6: component.m_talentTier.sprite = Resources.Load <Sprite>("OrderAdvancement/Number-Seven"); break; case 7: component.m_talentTier.sprite = Resources.Load <Sprite>("OrderAdvancement/Number-Eight"); break; } } foreach (GarrTalentRec garrTalentRec in StaticDB.garrTalentDB.GetRecordsByParentID(recordFirstOrDefault.ID)) { this.m_talentTreeItems[(int)garrTalentRec.Tier].SetTalent(garrTalentRec); LegionCompanionWrapper.RequestCanResearchGarrisonTalent(garrTalentRec.ID); } } foreach (TalentTreeItem talentTreeItem2 in this.m_talentTreeItems) { talentTreeItem2.UpdateVisualStates(); } }
private void InitTalentTree() { this.m_needsFullInit = false; if (GarrisonStatus.Faction() == PVP_FACTION.HORDE) { this.m_hordeBG.gameObject.SetActive(true); this.m_allianceBG.gameObject.SetActive(false); } else if (GarrisonStatus.Faction() == PVP_FACTION.ALLIANCE) { this.m_hordeBG.gameObject.SetActive(false); this.m_allianceBG.gameObject.SetActive(true); } TalentTreeItem[] componentsInChildren = this.m_talentTreeItemRoot.GetComponentsInChildren <TalentTreeItem>(true); for (int i = 0; i < (int)componentsInChildren.Length; i++) { TalentTreeItem talentTreeItem = componentsInChildren[i]; talentTreeItem.transform.SetParent(null); UnityEngine.Object.Destroy(talentTreeItem.gameObject); } Image[] imageArray = this.m_romanNumeralRoot.GetComponentsInChildren <Image>(true); for (int j = 0; j < (int)imageArray.Length; j++) { Image image = imageArray[j]; image.transform.SetParent(null); UnityEngine.Object.Destroy(image.gameObject); } this.m_talentTreeItems.Clear(); int num = (GarrisonStatus.Faction() != PVP_FACTION.HORDE ? 153 : 152); GarrTalentTreeRec recordFirstOrDefault = StaticDB.garrTalentTreeDB.GetRecordFirstOrDefault((GarrTalentTreeRec garrTalentTreeRec) => garrTalentTreeRec.ID == num); if (recordFirstOrDefault == null) { Debug.LogError(string.Concat("No GarrTalentTree record found for class ", GarrisonStatus.CharacterClassID())); return; } for (int k = 0; k < recordFirstOrDefault.MaxTiers; k++) { GameObject gameObject = UnityEngine.Object.Instantiate <GameObject>(this.m_talentTreeItemPrefab); gameObject.transform.SetParent(this.m_talentTreeItemRoot.transform, false); TalentTreeItem component = gameObject.GetComponent <TalentTreeItem>(); this.m_talentTreeItems.Add(component); switch (k) { case 0: { component.m_talentTier.sprite = Resources.Load <Sprite>("OrderAdvancement/Number-One"); break; } case 1: { component.m_talentTier.sprite = Resources.Load <Sprite>("OrderAdvancement/Number-Two"); break; } case 2: { component.m_talentTier.sprite = Resources.Load <Sprite>("OrderAdvancement/Number-Three"); break; } case 3: { component.m_talentTier.sprite = Resources.Load <Sprite>("OrderAdvancement/Number-Four"); break; } case 4: { component.m_talentTier.sprite = Resources.Load <Sprite>("OrderAdvancement/Number-Five"); break; } case 5: { component.m_talentTier.sprite = Resources.Load <Sprite>("OrderAdvancement/Number-Six"); break; } case 6: { component.m_talentTier.sprite = Resources.Load <Sprite>("OrderAdvancement/Number-Seven"); break; } case 7: { component.m_talentTier.sprite = Resources.Load <Sprite>("OrderAdvancement/Number-Eight"); break; } } } foreach (GarrTalentRec recordsByParentID in StaticDB.garrTalentDB.GetRecordsByParentID(recordFirstOrDefault.ID)) { this.m_talentTreeItems[recordsByParentID.Tier].SetTalent(recordsByParentID); LegionCompanionWrapper.RequestCanResearchGarrisonTalent(recordsByParentID.ID); } foreach (TalentTreeItem mTalentTreeItem in this.m_talentTreeItems) { mTalentTreeItem.UpdateVisualStates(); } }
public static int GetAbilityToCounterMechanicType(int garrMechanicTypeID) { Func <GarrFollowerRec, bool> matchesExpansionLevel = (GarrFollowerRec rec) => rec.GarrFollowerTypeID == 4u; Func <GarrFollowerRec, bool> matchesMyClass = (GarrFollowerRec rec) => rec.ChrClassID == GarrisonStatus.CharacterClassID() || rec.ChrClassID == 0; HashSet <int> garrFollowerXAbilities = new HashSet <int>(StaticDB.garrFollowerDB.GetRecordsWhere((GarrFollowerRec rec) => matchesExpansionLevel(rec) && matchesMyClass(rec)).SelectMany((GarrFollowerRec garrFollowerRec) => from followerXAbilityRec in StaticDB.garrFollowerXAbilityDB.GetRecordsByParentID(garrFollowerRec.ID) select followerXAbilityRec.GarrAbilityID)); GarrAbilityEffectRec recordFirstOrDefault = StaticDB.garrAbilityEffectDB.GetRecordFirstOrDefault((GarrAbilityEffectRec rec) => garrFollowerXAbilities.Contains((int)rec.GarrAbilityID) && (ulong)rec.GarrMechanicTypeID == (ulong)((long)garrMechanicTypeID)); return((int)((recordFirstOrDefault == null) ? 0u : recordFirstOrDefault.GarrAbilityID)); }
private void Start() { this.m_numReadyTroops = 0; this.m_numReadyTroopsText.text = string.Empty; this.m_numReadyTroopsTextBG.SetActive(false); int num = 0; switch (GarrisonStatus.CharacterClassID()) { case 1: { num = 6001; break; } case 2: { num = 6002; break; } case 3: { num = 5998; break; } case 4: { num = 6007; break; } case 5: { num = 5999; break; } case 6: { num = 6000; break; } case 7: { num = 0; break; } case 8: { num = 6006; break; } case 9: { num = 6003; break; } case 10: { num = 6005; break; } case 11: { num = 6004; break; } case 12: { num = 0; break; } } if (num > 0) { Sprite atlasSprite = TextureAtlas.instance.GetAtlasSprite(num); if (atlasSprite != null) { this.m_theActualButton.GetComponent <Image>().sprite = atlasSprite; } } }
public static int GetAbilityToCounterMechanicType(int garrMechanicTypeID) { Func <GarrFollowerRec, bool> garrFollowerTypeID = (GarrFollowerRec rec) => rec.GarrFollowerTypeID == (uint)GarrisonStatus.GarrisonFollowerType; Func <GarrFollowerRec, bool> func = (GarrFollowerRec rec) => (rec.ChrClassID == GarrisonStatus.CharacterClassID() ? true : rec.ChrClassID == 0); HashSet <int> nums = new HashSet <int>(StaticDB.garrFollowerDB.GetRecordsWhere((GarrFollowerRec rec) => (!garrFollowerTypeID(rec) ? false : func(rec))).SelectMany <GarrFollowerRec, int>((GarrFollowerRec garrFollowerRec) => from followerXAbilityRec in StaticDB.garrFollowerXAbilityDB.GetRecordsByParentID(garrFollowerRec.ID) select followerXAbilityRec.GarrAbilityID)); GarrAbilityEffectRec recordFirstOrDefault = StaticDB.garrAbilityEffectDB.GetRecordFirstOrDefault((GarrAbilityEffectRec rec) => (!nums.Contains((int)rec.GarrAbilityID) ? false : (ulong)rec.GarrMechanicTypeID == (long)garrMechanicTypeID)); return(recordFirstOrDefault == null ? 0 : (int)recordFirstOrDefault.GarrAbilityID); }