예제 #1
0
        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;
            }
        }
예제 #2
0
        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();
            }
        }
예제 #4
0
        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);
        }