Skip to content

驱散系统

驱散性类型 (DispelType)

枚举值中文名能力
None无驱散默认,不能驱散其他特效
Weak弱驱散消除可弱驱散的特效
DurativeWeak持续性弱驱散持续对弱驱散目标生效
TemporaryWeak临时弱驱散暂时使弱驱散可驱的特效无效化
Strong强驱散消除需强驱散和可弱驱散的特效
DurativeStrong持续性强驱散持续对强驱散目标生效
TemporaryStrong临时强驱散暂时使所有可驱散特效无效化
Special特殊驱散只对特定特效有效

被驱散性预设 (DispelledType)

SkillSet.GetDispelledTypeByEffectType() 自动判定:

特效类型被驱散性说明
None, Item, Knockback, Unselectable, DoomCannotBeDispelled不可驱散
Stun, Freeze, Silence, Root, Fear, Sleep, Knockdown, Taunt, Invulnerable, Charm, Disarm, Confusion, Petrify, SilenceMagic, BanishStrong需强驱散
所有其他类型Weak可弱驱散

驱散逻辑

Effect.cs 中的驱散实现:

强驱散 → 能消除 DispelledType.Weak + DispelledType.Strong
弱驱散 → 只能消除 DispelledType.Weak(且有限制:部分强控制无法被弱驱散消除)
特殊驱散 → 能消除 DispelledType.Special(由具体特效决定)

驱散目标策略

  • 对敌方施加强驱散 → 移除所有 BUFF(IsDebuff = false 且可驱散的)
  • 对友方施加强驱散 → 移除所有 DEBUFF + 控制状态(IsDebuff = true 且可驱散的),非吟唱态时恢复常态
  • 对敌方施加弱驱散 → 移除可弱驱散的 BUFF
  • 对友方施加弱驱散 → 移除除完全行动不能/行动受限/战斗不能外的控制效果 + 所有软控制

基于 LGPL-3.0 许可证发布