using System.Collections.Generic; public class DirectlyDamageSkill : SkillBase { public DirectlyDamageSkill(SkillConfig _skillCfg) : base(_skillCfg) { } public override void Run() { base.Run(); } public override void Cast(BattleObject _caster, BattleField _battleField, List>> damageList) { _caster.PlaySkill(skillConfig, damageList, OnSkillAnimationFinished); } protected void OnSkillAnimationFinished() { isFinished = true; } #if UNITY_EDITOR // 伤害列表理应由服务器发给客户端 这边只做粗浅模拟 public override List>> GetDamageList(BattleObject _caster, BattleField battleField) { List>> damageList = new List>>(); List affectList = GetTargetList(_caster, battleField); Dictionary> oneRoundDamage = new Dictionary>(); for (int j = 0; j < affectList.Count; j++) { BattleObject obj = affectList[j]; List tryDmgList = _caster.TryAttack(obj, skillConfig); oneRoundDamage.Add(obj.BattleObjectId, tryDmgList); } damageList.Add(oneRoundDamage); return damageList; } #endif }