| | |
| | | |
| | | protected Action<int, List<HB427_tagSCUseSkill.tagSCUseSkillHurt>> onHit; |
| | | |
| | | // 缓存HurtList的List副本,避免每次onHit回调时重复ToList分配 |
| | | private List<HB427_tagSCUseSkill.tagSCUseSkillHurt> _hurtListCache; |
| | | protected List<HB427_tagSCUseSkill.tagSCUseSkillHurt> HurtListAsList |
| | | { |
| | | get |
| | | { |
| | | if (_hurtListCache == null) |
| | | _hurtListCache = new List<HB427_tagSCUseSkill.tagSCUseSkillHurt>(tagUseSkillAttack.HurtList); |
| | | return _hurtListCache; |
| | | } |
| | | } |
| | | |
| | | public SkillEffect(SkillBase _skillBase, SkillConfig _skillConfig, SkillSkinConfig _skillSkinConfig, BattleObject _caster, HB427_tagSCUseSkill _tagUseSkillAttack) |
| | | { |
| | | skillBase = _skillBase; |
| | |
| | | return isFinish && isFinishFrameEnd; |
| | | } |
| | | |
| | | #if UNITY_EDITOR |
| | | /// <summary>卡死诊断用:打印 SkillEffect 内部 isFinish / isFinishFrameEnd 等标志位。</summary> |
| | | public virtual string DumpState() |
| | | { |
| | | return $"{GetType().Name} isFinish={isFinish} isFinishFrameEnd={isFinishFrameEnd}"; |
| | | } |
| | | #endif |
| | | |
| | | public virtual void ForceFinished() |
| | | { |
| | | isFinish = true; |