Exemplo n.º 1
0
    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);
                    }
                }
            }
        }
    }
Exemplo n.º 2
0
    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);
                }
            }
        }
    }