yyl
2025-11-20 ffd55c202987fb7122e6ce19b5e6f738e33fdf01
Main/System/Battle/Skill/DirectlyDamageSkill.cs
@@ -1,49 +1,29 @@
using System.Collections.Generic;
using UnityEngine;
using System;
using System.Linq;
public class DirectlyDamageSkill : SkillBase
{
   public DirectlyDamageSkill(SkillConfig _skillCfg) : base(_skillCfg)
   public DirectlyDamageSkill(BattleObject _caster, SkillConfig _skillCfg,
         HB427_tagSCUseSkill _vNetData, List<GameNetPackBasic> _packList, BattleField _battleField)
         : base(_caster, _skillCfg, _vNetData, _packList, _battleField)
   {
   }
   public override void Run()
   {
      base.Run();
   }
   public override void Cast(BattleObject _caster, BattleField _battleField, List<Dictionary<int, List<int>>> damageList)
   protected override void OnHitTargets(int _hitIndex, List<HB427_tagSCUseSkill.tagSCUseSkillHurt> hitList)
   {
      _caster.PlaySkill(skillConfig, damageList, OnSkillAnimationFinished);
      base.OnHitTargets(_hitIndex, hitList);
   }
   protected void OnSkillAnimationFinished()
   protected override void OnAllAttackMoveFinished()
   {
      isFinished = true;
      base.OnAllAttackMoveFinished();
      OnSkillFinished();
   }
#if UNITY_EDITOR
   //   伤害列表理应由服务器发给客户端 这边只做粗浅模拟
   public override List<Dictionary<int, List<int>>> GetDamageList(BattleObject _caster, BattleField battleField)
   {
      List<Dictionary<int, List<int>>> damageList = new List<Dictionary<int, List<int>>>();
      List<BattleObject> affectList = GetTargetList(_caster, battleField);
      Dictionary<int, List<int>> oneRoundDamage = new Dictionary<int, List<int>>();
      for (int j = 0; j < affectList.Count; j++)
      {
         BattleObject obj = affectList[j];
         List<int> tryDmgList = _caster.TryAttack(obj, skillConfig);
         oneRoundDamage.Add(obj.BattleObjectId, tryDmgList);
      }
      damageList.Add(oneRoundDamage);
      return damageList;
   }
#endif
}