lcy
2025-11-05 3b2a6bb9047cfce9f501593b3669a9c1af6c5df4
Main/Config/PartialConfigs/SkillConfig.Partial.cs
@@ -12,13 +12,70 @@
public partial class SkillConfig : ConfigBase<int, SkillConfig>
{
//增益: 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;
   public SkillCastMode castMode;
   public SkillEffectType effectType;
   public SkillEffectAnchor effectAnchor;
   //技能类型:技能等级:技能
   static Dictionary<int, Dictionary<int, SkillConfig>> skillDics = new Dictionary<int, Dictionary<int, SkillConfig>>();
   protected override void OnConfigParseCompleted()
   {
      base.OnConfigParseCompleted();
      skillType = (SkillType)SkillType;
      castMode = (SkillCastMode)CastPosition;
      effectType = (SkillEffectType)EffectType;
      // #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))
      {
         tempDic = new Dictionary<int, SkillConfig>();
         skillDics.Add((int)skillType, tempDic);
      }
      tempDic[SkillLV] = this;
   }
   public bool IsGainBuff()
    {
        return Array.Exists(GainSkillType, type => type == (int)skillType);
    }
   public bool IsDebuff()
    {
        return Array.Exists(DebuffSkillType, type => type == (int)skillType);
    }
   public MotionName GetMotionName()
   {
      return Enum.Parse<MotionName>(SkillMotionName);
   }
   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;
   }
}