yyl
2026-05-11 51b0f6ed9f4e1d3bb6f8144470b46908c7699a96
Main/Config/PartialConfigs/SkillConfig.Partial.cs
@@ -9,16 +9,92 @@
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;
   }
}