| | |
| | | |
| | | public class SkillRecordAction : RecordAction |
| | | { |
| | | public int SkillId; |
| | | |
| | | public SkillConfig skillConfig; |
| | | |
| | | protected SkillBase skillBase; |
| | | |
| | | protected List<Dictionary<int, List<int>>> damageList = new List<Dictionary<int, List<int>>>(); |
| | | |
| | | private bool isCast = false; |
| | | |
| | | |
| | | public SkillRecordAction(int _SkillId, BattleField _battleField, BattleObject _battleObj) |
| | | : base(RecordActionType.Skill, _battleField, _battleObj) |
| | | public SkillRecordAction(BattleField _battleField, BattleObject _caster, H0604_tagUseSkillAttack vNetData) |
| | | : base(RecordActionType.Skill, _battleField, _caster) |
| | | { |
| | | SkillId = _SkillId; |
| | | |
| | | skillConfig = SkillConfig.Get(SkillId); |
| | | |
| | | if (null == skillConfig) |
| | | { |
| | | Debug.LogError("找不到技能配置 " + SkillId); |
| | | } |
| | | |
| | | skillBase = SkillFactory.CreateSkill(skillConfig); |
| | | |
| | | // _battleObj使用了SkillId的技能 |
| | | damageList = skillBase.GetDamageList(battleObject, battleField); |
| | | } |
| | | |
| | | public SkillRecordAction(int _SkillId, BattleField _battleField, BattleObject _battleObj, List<Dictionary<int, List<int>>> _damageList) |
| | | : base(RecordActionType.Skill, _battleField, _battleObj) |
| | | { |
| | | SkillId = _SkillId; |
| | | |
| | | skillConfig = SkillConfig.Get(SkillId); |
| | | |
| | | if (null == skillConfig) |
| | | { |
| | | Debug.LogError("找不到技能配置 " + SkillId); |
| | | } |
| | | |
| | | skillBase = SkillFactory.CreateSkill(skillConfig); |
| | | |
| | | damageList = _damageList; |
| | | // _battleObj使用了SkillId的技能 |
| | | skillBase = SkillFactory.CreateSkill(_caster, vNetData, _battleField); |
| | | } |
| | | |
| | | public override bool IsFinished() |
| | |
| | | if (isCast) |
| | | return; |
| | | |
| | | if (damageList.Count > 0) |
| | | { |
| | | skillBase.Cast(battleObject, battleField, damageList); |
| | | } |
| | | else |
| | | { |
| | | skillBase.ForceFinished(); |
| | | } |
| | | skillBase.Cast(); |
| | | |
| | | isCast = true; |
| | | } |