|
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<Dictionary<int, List<int>>> damageList)
|
{
|
_caster.PlaySkill(skillConfig, damageList, OnSkillAnimationFinished);
|
}
|
|
protected void OnSkillAnimationFinished()
|
{
|
isFinished = true;
|
}
|
|
#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
|
}
|