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); }
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); } }
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); }