| | |
| | | public static readonly int[] DebuffSkillType = new int[] { 4, 6, 14 }; |
| | | |
| | | public SkillType skillType; |
| | | public SkillCastMode castMode; |
| | | |
| | | public SkillEffectType effectType; |
| | | protected SkillSkinConfig originSkinConfig; |
| | | |
| | | //技能类型:技能等级:技能 |
| | | static Dictionary<int, Dictionary<int, SkillConfig>> skillDics = new Dictionary<int, Dictionary<int, SkillConfig>>(); |
| | |
| | | base.OnConfigParseCompleted(); |
| | | |
| | | skillType = (SkillType)SkillType; |
| | | castMode = (SkillCastMode)CastPosition; |
| | | effectType = (SkillEffectType)EffectType; |
| | | |
| | | if (DamageDivide == null || DamageDivide.Length == 0) |
| | | { |
| | | DamageDivide = new int[1][]; |
| | | DamageDivide[0] = new int[] { 10000 }; |
| | | } |
| | | |
| | | // #if UNITY_EDITOR |
| | | // if (Launch.Instance.isOpenBattleDebug) |
| | | // { |
| | | // if (castMode == SkillCastMode.None) |
| | | // { |
| | | // castMode = SkillCastMode.Target; |
| | | // } |
| | | // } |
| | | // #endif |
| | | |
| | | Dictionary<int, SkillConfig> tempDic = null; |
| | | if (!skillDics.TryGetValue((int)skillType, out tempDic)) |
| | |
| | | skillDics.Add((int)skillType, tempDic); |
| | | } |
| | | tempDic[SkillLV] = this; |
| | | } |
| | | |
| | | public SkillSkinConfig GetSkillSkinConfig(int skinID) |
| | | { |
| | | string key = skinID.ToString() + SkillID.ToString(); |
| | | |
| | | SkillSkinConfig skillSkinConfig = SkillSkinConfig.Get(key); |
| | | |
| | | if (null == skillSkinConfig) |
| | | { |
| | | return GetOriginSkinConfig(); |
| | | } |
| | | else |
| | | { |
| | | return skillSkinConfig; |
| | | } |
| | | } |
| | | |
| | | public SkillSkinConfig GetOriginSkinConfig() |
| | | { |
| | | if (originSkinConfig == null) |
| | | { |
| | | originSkinConfig = SkillSkinConfig.Get(SkillID.ToString()); |
| | | } |
| | | if (null == originSkinConfig) |
| | | { |
| | | Debug.LogError("找不到技能皮肤配置 " + SkillID); |
| | | return null; |
| | | } |
| | | else |
| | | { |
| | | return originSkinConfig; |
| | | } |
| | | } |
| | | |
| | | public bool IsGainBuff() |
| | |
| | | { |
| | | return Array.Exists(DebuffSkillType, type => type == (int)skillType); |
| | | } |
| | | |
| | | public MotionName GetMotionName() |
| | | { |
| | | return Enum.Parse<MotionName>(SkillMotionName); |
| | | } |
| | | |
| | | public static SkillConfig GetSkillConfig(int skillType, int skillLv) |
| | | { |
| | |
| | | return config; |
| | | } |
| | | |
| | | public List<int> GetDamageDivide(int _hitIndex) |
| | | { |
| | | List<int> damageDivide = new List<int>(); |
| | | if (_hitIndex == 0 && DamageDivide.Length <= 0) |
| | | { |
| | | damageDivide.Add(10000); |
| | | } |
| | | else |
| | | { |
| | | if (DamageDivide.Length <= _hitIndex) |
| | | { |
| | | Debug.LogError("技能伤害分布配置错误 skillId: " + SkillID + " hitIndex: " + _hitIndex); |
| | | damageDivide.Add(10000); |
| | | } |
| | | else |
| | | { |
| | | damageDivide = DamageDivide[_hitIndex].ToList(); |
| | | } |
| | | } |
| | | return damageDivide; |
| | | } |
| | | |
| | | } |