fix(fight): 修复预处理效果执行方式
- 将预处理效果的执行方式从直接调用 Exec 方法改为遍历 Effects 切片 - 通过遍历每个效果并调用其 Exec 方法,确保所有预处理效果都能正确执行 - 此修改解决了可能存在的逻辑错误,保证了战斗系统的公平性和准确性
This commit is contained in:
@@ -77,9 +77,12 @@ func NewFight(i *info.NoteReadyToFightInfo, plays *socket.Player) {
|
||||
|
||||
//物理和特殊,百分比和固定伤害也算,真实伤害不分类别,故直接扣血就行,不需要计算
|
||||
if t.Category() == info.Category.PHYSICAL || t.Category() == info.Category.SPECIAL {
|
||||
c.Effects.Exec(func(e info.Effect) bool {
|
||||
return e.PreDamage() //执行预处理效果
|
||||
})
|
||||
|
||||
for _, v := range c.Effects {
|
||||
v.Exec(func(e info.Effect) bool {
|
||||
return e.PreDamage() //执行预处理效果
|
||||
})
|
||||
}
|
||||
|
||||
// Apply pre-damage effects for pet sources
|
||||
// battle.applyEffects(context, EffectTrigger.PreDamage)
|
||||
|
||||
Reference in New Issue
Block a user