| | |
| | | using System; |
| | | using UnityEngine; |
| | | using LitJson; |
| | | using System.Linq; |
| | | |
| | | public partial class SkillConfig : ConfigBase<int, SkillConfig> |
| | | { |
| | | public SkillType skillType; |
| | | public SkillCastMode castMode; |
| | | public SkillEffectType effectType; |
| | | public SkillEffectAnchor effectAnchor; |
| | | //增益: 3 5 |
| | | // 减益: 4 6 14 |
| | | |
| | | public MotionName GetMotionName() |
| | | public static readonly int[] GainSkillType = new int[] { 3, 5 }; // 1-普通攻击 2-被动技能 3-专属技能 |
| | | |
| | | public static readonly int[] DebuffSkillType = new int[] { 4, 6, 14 }; |
| | | |
| | | public SkillType skillType; |
| | | |
| | | protected SkillSkinConfig originSkinConfig; |
| | | |
| | | //技能类型:技能等级:技能 |
| | | static Dictionary<int, Dictionary<int, SkillConfig>> skillDics = new Dictionary<int, Dictionary<int, SkillConfig>>(); |
| | | protected override void OnConfigParseCompleted() |
| | | { |
| | | return Enum.Parse<MotionName>(SkillMotionName); |
| | | base.OnConfigParseCompleted(); |
| | | |
| | | skillType = (SkillType)SkillType; |
| | | |
| | | Dictionary<int, SkillConfig> tempDic = null; |
| | | if (!skillDics.TryGetValue((int)skillType, out tempDic)) |
| | | { |
| | | tempDic = new Dictionary<int, SkillConfig>(); |
| | | 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(GainSkillType, type => type == (int)skillType); |
| | | } |
| | | |
| | | public bool IsDebuff() |
| | | { |
| | | return Array.Exists(DebuffSkillType, type => type == (int)skillType); |
| | | } |
| | | |
| | | public static SkillConfig GetSkillConfig(int skillType, int skillLv) |
| | | { |
| | | Dictionary<int, SkillConfig> tempDic = null; |
| | | if (!skillDics.TryGetValue(skillType, out tempDic)) |
| | | { |
| | | return null; |
| | | } |
| | | SkillConfig config = null; |
| | | tempDic.TryGetValue(skillLv, out config); |
| | | return config; |
| | | } |
| | | |
| | | |
| | | } |