//-------------------------------------------------------- // [Author]: YYL // [ Date ]: 2025年7月11日 //-------------------------------------------------------- using System.Collections.Generic; using System.IO; using System.Threading; using System; using UnityEngine; using LitJson; using System.Linq; public partial class SkillConfig : ConfigBase { //增益: 3 5 // 减益: 4 6 14 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> skillDics = new Dictionary>(); protected override void OnConfigParseCompleted() { base.OnConfigParseCompleted(); skillType = (SkillType)SkillType; Dictionary tempDic = null; if (!skillDics.TryGetValue((int)skillType, out tempDic)) { tempDic = new Dictionary(); 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 tempDic = null; if (!skillDics.TryGetValue(skillType, out tempDic)) { return null; } SkillConfig config = null; tempDic.TryGetValue(skillLv, out config); return config; } }