|
@@ -329,168 +329,6 @@ namespace GameLogic.Hero
|
|
|
}
|
|
|
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// onlyUnLock=true, 获取已解锁的最高等级的技能
|
|
|
- /// onlyUnLock=false,获取已解锁的最高等级的技能,若都没有解锁,则获取未解锁的1级技能
|
|
|
- /// </summary>
|
|
|
- /// <param name="groupID">技能组</param>
|
|
|
- /// <param name="level">英雄等级</param>
|
|
|
- /// <param name="star">英雄星级</param>
|
|
|
- /// <param name="onlyUnLock">ture=只返回解锁的</param>
|
|
|
- /// <returns></returns>
|
|
|
- // public SkillConfig GetHighestLevelOr1(int groupID, int level, int star, bool onlyUnLock = false,bool isMonster=false)
|
|
|
- // {
|
|
|
- // SkillConfig skillConfig = new SkillConfig();
|
|
|
- //
|
|
|
- // int lv = 0;
|
|
|
- // for(int i = 0; i < PlayerManager.Instance.groupSkillDic[groupID].Count; i++)
|
|
|
- // {
|
|
|
- // SkillConfig config = PlayerManager.Instance.groupSkillDic[groupID][i];
|
|
|
- //
|
|
|
- // if (i == 0 && !onlyUnLock)
|
|
|
- // {
|
|
|
- // skillConfig = config;
|
|
|
- // }
|
|
|
- //
|
|
|
- // // if (config.isUnLock && config.skillConfig.level > lv)
|
|
|
- // if(IsUnLockSkill(level, star, config.ID,isMonster) && config.level > lv)
|
|
|
- // {
|
|
|
- // lv = config.level;
|
|
|
- // skillConfig = config;
|
|
|
- // }
|
|
|
- // }
|
|
|
- // return skillConfig;
|
|
|
- // }
|
|
|
- //
|
|
|
- /// <summary>
|
|
|
- /// 技能是否解锁
|
|
|
- /// </summary>
|
|
|
- /// <param name="level">英雄等级</param>
|
|
|
- /// <param name="star">英雄星级</param>
|
|
|
- /// <param name="skillID">技能id</param>
|
|
|
- /// <returns></returns>
|
|
|
- public bool IsUnLockSkill(int level, int star, int skillID,bool isMonster=false)
|
|
|
- {
|
|
|
- bool isUnLock = false;
|
|
|
- if (skillID == GlobalParam.Normal_Attack_Skill_Group_ID)
|
|
|
- {
|
|
|
- isUnLock = true;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- //整体可能有点绕,后面再看优化不
|
|
|
-
|
|
|
- //取技能ID的后两位,后两位是技能解锁表SkillUpConfig的ID, 取这个ID来判断,这个技能技能的解锁情况
|
|
|
- int skillUpID = skillID % 100;
|
|
|
- SkillUpConfig upConfig = ConfigComponent.Instance.Get<SkillUpConfig>(skillUpID);
|
|
|
-
|
|
|
- //取个位
|
|
|
- int gw = skillUpID % 10;
|
|
|
-
|
|
|
- int skillUpIDLevel1 = -1;
|
|
|
- //当个位>1时(表示技能等级>1),需要额外判断一下,技能的1级是否已经解锁(可能1级是星级解锁)
|
|
|
- //避免出现,技能是5星解锁解锁1级,200级解锁2级,但玩家现在4星,201级,就不该解锁2级,因为星级不够
|
|
|
- if (gw > 1)
|
|
|
- {
|
|
|
- //技能1级的解锁ID,例如: 33 - 3 + 1 = 31, 31就是技能1级的解锁条件id
|
|
|
- skillUpIDLevel1 = skillUpID - gw + 1;
|
|
|
- }
|
|
|
-
|
|
|
- //等级解锁
|
|
|
- if (upConfig.upType == 1)
|
|
|
- {
|
|
|
- SkillUpConfig skillUpConfigLevel1 = new SkillUpConfig();
|
|
|
- //准备判断,该技能1级时,是否为星级解锁
|
|
|
- if (skillUpIDLevel1 > 0)
|
|
|
- {
|
|
|
- skillUpConfigLevel1 = ConfigComponent.Instance.Get<SkillUpConfig>(skillUpIDLevel1);
|
|
|
- }
|
|
|
-
|
|
|
- //如果技能的第一级需要星级解锁,需额外判断一下星级是否达到
|
|
|
- bool isStarEnough = skillUpConfigLevel1.upType != 2 || star > skillUpConfigLevel1.upValue;
|
|
|
-
|
|
|
-
|
|
|
- if (level >= upConfig.upValue && isStarEnough)
|
|
|
- {
|
|
|
- isUnLock = true;
|
|
|
- }
|
|
|
- }
|
|
|
- //星级解锁
|
|
|
- else if (upConfig.upType == 2)
|
|
|
- {
|
|
|
- if (star >= upConfig.upValue||isMonster)
|
|
|
- {
|
|
|
- isUnLock = true;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- return isUnLock;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- public SkillUpConfig GetSkillUpConfig(int skillID)
|
|
|
- {
|
|
|
- //取技能ID的后两位,后两位是技能解锁表SkillUpConfig的ID, 取这个ID来判断,这个技能技能的解锁情况
|
|
|
- int skillUpID = skillID % 100;
|
|
|
- SkillUpConfig upConfig = ConfigComponent.Instance.Get<SkillUpConfig>(skillUpID);
|
|
|
- return upConfig;
|
|
|
- }
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- /// 根据【等级】查找是否有技能
|
|
|
- /// </summary>
|
|
|
- /// <param name="level">英雄等级</param>
|
|
|
- /// <returns></returns>
|
|
|
- // public SkillUpConfig GetSkillUpConfig4Lv(int level)
|
|
|
- // {
|
|
|
- // SkillUpConfig upConfig = new SkillUpConfig();
|
|
|
- // foreach (SkillUpConfig skillUpConfig in PlayerManager.Instance.skillUpConfigs)
|
|
|
- // {
|
|
|
- // if (skillUpConfig.upType == 1 && level == skillUpConfig.upValue)
|
|
|
- // {
|
|
|
- // return skillUpConfig;
|
|
|
- // }
|
|
|
- // }
|
|
|
- // return upConfig;
|
|
|
- // }
|
|
|
-
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- /// 根据【星级】查找是否有技能
|
|
|
- /// </summary>
|
|
|
- /// <param name="level">英雄等级</param>
|
|
|
- /// <returns></returns>
|
|
|
- // public SkillUpConfig GetSkillUpConfig4Star(int star)
|
|
|
- // {
|
|
|
- // SkillUpConfig upConfig = new SkillUpConfig();
|
|
|
- // foreach (SkillUpConfig skillUpConfig in PlayerManager.Instance.skillUpConfigs)
|
|
|
- // {
|
|
|
- // if (skillUpConfig.upType == 2 && star == skillUpConfig.upValue)
|
|
|
- // {
|
|
|
- // return skillUpConfig;
|
|
|
- // }
|
|
|
- // }
|
|
|
- // return upConfig;
|
|
|
- // }
|
|
|
-
|
|
|
- // /// <summary>
|
|
|
- // /// 判断【星级】是否可以解锁新技能
|
|
|
- // /// </summary>
|
|
|
- // /// <param name="star"></param>
|
|
|
- // /// <returns></returns>
|
|
|
- // public SkillUpConfig IsStarUpGetNewSkill(int star)
|
|
|
- // {
|
|
|
- // SkillUpConfig upConfig = new SkillUpConfig();
|
|
|
- // foreach (SkillUpConfig skillUpConfig in PlayerManager.Instance.skillUpConfigs)
|
|
|
- // {
|
|
|
- // if (skillUpConfig.upType == 2 && star == skillUpConfig.upValue)
|
|
|
- // {
|
|
|
- // return upConfig;
|
|
|
- // }
|
|
|
- // }
|
|
|
- // return upConfig;
|
|
|
- // }
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
}
|