private int CreateDeriveAbilityContents(ViewAbilityData view_data)
        {
            List <ViewDeriveAbilityData> deriveAbilities = view_data.deriveAbilities;
            int num = 0;

            if (deriveAbilities != null)
            {
                for (int index = 0; index < deriveAbilities.Count; ++index)
                {
                    if (deriveAbilities[index].is_enable)
                    {
                        ArtifactDetailAbilityItem detailAbilityItem = (ArtifactDetailAbilityItem)Object.Instantiate <ArtifactDetailAbilityItem>((M0)this.mDeriveTemplate);
                        ((Component)detailAbilityItem).get_transform().SetParent(this.mDeriveParent.get_transform(), false);
                        this.mAbilityItems.Add(detailAbilityItem);
                        this.BindData(((Component)detailAbilityItem).get_gameObject(), deriveAbilities[index].ability, view_data.abilityDeriveParam);
                        detailAbilityItem.Setup(deriveAbilities[index].ability, true, deriveAbilities[index].is_enable, false, false);
                        ++num;
                    }
                }
            }
            if (num <= 0)
            {
                this.mDeriveAbilityObject.SetActive(false);
            }
            return(num);
        }
 private void CreateBaseAbilityContent(ViewAbilityData view_ability_data, bool has_derive_ability)
 {
     if (view_ability_data.baseAbility == null)
     {
         return;
     }
     this.BindData(((Component)this.mBaseAbilityItem).get_gameObject(), view_ability_data.baseAbility, view_ability_data.abilityDeriveParam);
     this.mBaseAbilityItem.Setup(view_ability_data.baseAbility, false, view_ability_data.isEnableBaseAbility, view_ability_data.isLockedBaseAbility, has_derive_ability);
 }
        public void Init(ViewAbilityData view_ability_data)
        {
            if (view_ability_data == null || view_ability_data.baseAbility == null)
            {
                return;
            }
            bool has_derive_ability = this.CreateDeriveAbilityContents(view_ability_data) > 0;

            this.CreateBaseAbilityContent(view_ability_data, has_derive_ability);
            if (this.mAbilityItems.Count > 0)
            {
                this.mAbilityItems[this.mAbilityItems.Count - 1].DestoryLastLine();
            }
            ((Component)this.mDeriveTemplate).get_gameObject().SetActive(false);
        }
        private Dictionary <string, ViewAbilityData> CreateViewData(List <AbilityParam> artifact_all_abilities, List <AbilityData> weapon_abilities, List <AbilityDeriveParam> derive_params)
        {
            Dictionary <string, ViewAbilityData> dictionary = new Dictionary <string, ViewAbilityData>();

            if (artifact_all_abilities != null)
            {
                for (int i = 0; i < artifact_all_abilities.Count; ++i)
                {
                    if (!dictionary.ContainsKey(artifact_all_abilities[i].iname))
                    {
                        bool is_enable = true;
                        if (this.IsNeedCheck)
                        {
                            is_enable = artifact_all_abilities[i].CheckEnableUseAbility(this.mCurrentUnit, this.mCurrentUnit.JobIndex);
                        }
                        bool is_locked = false;
                        if (this.IsNeedCheck && weapon_abilities != null && weapon_abilities.FindIndex((Predicate <AbilityData>)(abil_data => abil_data.Param.iname == artifact_all_abilities[i].iname)) <= -1)
                        {
                            is_locked = true;
                        }
                        ViewAbilityData viewAbilityData = new ViewAbilityData();
                        viewAbilityData.AddAbility(artifact_all_abilities[i], is_enable, is_locked);
                        dictionary.Add(artifact_all_abilities[i].iname, viewAbilityData);
                    }
                }
            }
            if (derive_params != null)
            {
                for (int index = 0; index < derive_params.Count; ++index)
                {
                    string baseAbilityIname = derive_params[index].BaseAbilityIname;
                    if (dictionary.ContainsKey(baseAbilityIname))
                    {
                        bool is_enable = true;
                        if (this.IsNeedCheck)
                        {
                            is_enable = MonoSingleton <GameManager> .Instance.MasterParam.GetAbilityParam(derive_params[index].DeriveAbilityIname).CheckEnableUseAbility(this.mCurrentUnit, this.mCurrentUnit.JobIndex);
                        }
                        dictionary[baseAbilityIname].AddAbility(baseAbilityIname, derive_params[index], derive_params[index].DeriveAbilityIname, is_enable);
                    }
                }
            }
            return(dictionary);
        }