示例#1
0
 private static bool CheckUnlockBySkillID(ConfigAvatarAbilityUnlock unlockConfig, AvatarDataItem avatarDataItem, bool useLeaderSkill)
 {
     for (int i = 0; i < avatarDataItem.skillDataList.Count; i++)
     {
         AvatarSkillDataItem item = avatarDataItem.skillDataList[i];
         if ((item.skillID == unlockConfig.UnlockBySkillID) && item.UnLocked)
         {
             if (item.IsLeaderSkill)
             {
                 return(useLeaderSkill);
             }
             return(true);
         }
     }
     return(false);
 }
示例#2
0
        private static void AddUnlockedAbility(AvatarActor avatarActor, ConfigAvatarAbilityUnlock unlockConfig, Dictionary <string, bool> defaultReplaceMap, float skillParam1 = 0, float skillParam2 = 0, float skillParam3 = 0)
        {
            ConfigAbility abilityConfig            = AbilityData.GetAbilityConfig(unlockConfig.AbilityName, unlockConfig.AbilityOverride);
            Dictionary <string, object> dictionary = null;
            bool flag = false;

            for (int i = 0; i < avatarActor.appliedAbilities.Count; i++)
            {
                if (avatarActor.appliedAbilities[i].Item1.AbilityName == unlockConfig.AbilityName)
                {
                    dictionary = avatarActor.appliedAbilities[i].Item2;
                    if (avatarActor.appliedAbilities[i].Item1 != abilityConfig)
                    {
                        avatarActor.appliedAbilities[i] = Tuple.Create <ConfigAbility, Dictionary <string, object> >(abilityConfig, dictionary);
                    }
                    flag = true;
                    break;
                }
            }
            if (!flag)
            {
                dictionary = avatarActor.CreateAppliedAbility(abilityConfig);
                if (unlockConfig.AbilityReplaceID != null)
                {
                    defaultReplaceMap[unlockConfig.AbilityReplaceID]        = true;
                    avatarActor.abilityIDMap[unlockConfig.AbilityReplaceID] = unlockConfig.AbilityName;
                }
            }
            if (unlockConfig.ParamSpecial1 != null)
            {
                AbilityData.SetupParamSpecial(abilityConfig, dictionary, unlockConfig.ParamSpecial1, unlockConfig.ParamMethod1, skillParam1);
            }
            if (unlockConfig.ParamSpecial2 != null)
            {
                AbilityData.SetupParamSpecial(abilityConfig, dictionary, unlockConfig.ParamSpecial2, unlockConfig.ParamMethod2, skillParam2);
            }
            if (unlockConfig.ParamSpecial3 != null)
            {
                AbilityData.SetupParamSpecial(abilityConfig, dictionary, unlockConfig.ParamSpecial3, unlockConfig.ParamMethod3, skillParam3);
            }
        }
示例#3
0
 private static bool CheckUnlockBySubSkillIDAndAddParam(ConfigAvatarAbilityUnlock unlockConfig, AvatarDataItem avatarDataItem, out AvatarSubSkillDataItem outSubSkillItem, bool useLeaderSkill)
 {
     for (int i = 0; i < avatarDataItem.skillDataList.Count; i++)
     {
         AvatarSkillDataItem item = avatarDataItem.skillDataList[i];
         if (!item.IsLeaderSkill || useLeaderSkill)
         {
             for (int j = 0; j < item.avatarSubSkillList.Count; j++)
             {
                 AvatarSubSkillDataItem item2 = item.avatarSubSkillList[j];
                 if ((item2.subSkillID == unlockConfig.UnlockBySubSkillID) && item2.UnLocked)
                 {
                     outSubSkillItem = item2;
                     return(true);
                 }
             }
         }
     }
     outSubSkillItem = null;
     return(false);
 }