feat(fight): 调整技能效果命中逻辑与回合开始处理 - 修改了技能效果命中的判定顺序,确保暴击计算在效果添加之前执行 - 修复了回合开始时敌我双方状态结算的上下文错误 - 优化了效果缓存初始化逻辑,避免重复添加相同效果 - 增加了效果去重判断,防止完全相同的效果被重复添加 - 调整了战斗循环中结束逻辑的位置,确保广播和通道关闭正确执行 - 更新了部分日志提示信息,使其更符合实际业务含义 - 移除了部分无用代码和注释,提高
38 lines
748 B
Go
38 lines
748 B
Go
package node
|
|
|
|
import (
|
|
"blazing/logic/service/fight/action"
|
|
"blazing/logic/service/fight/info"
|
|
"blazing/logic/service/fight/input"
|
|
)
|
|
|
|
func (e *EffectNode) Compare_Pre(fattack, sattack *action.SelectSkillAction) bool {
|
|
return false
|
|
}
|
|
func (e *EffectNode) Turn_Start(ctx input.Ctx) {
|
|
//panic("not implemented") // TODO: Implement
|
|
}
|
|
func (e *EffectNode) Turn_End(ctx input.Ctx) {
|
|
|
|
if e.duration == 0 { // 保留 (负数表示永久)
|
|
|
|
e.Alive(false)
|
|
|
|
} else {
|
|
e.trunl.Do(func() {
|
|
|
|
if ctx.Input.FightC.IsFirst(ctx.Input.Player) { //如果对方先手
|
|
e.duration++
|
|
// e.Alive(true)
|
|
}
|
|
|
|
})
|
|
e.duration--
|
|
}
|
|
|
|
}
|
|
|
|
func (e *EffectNode) OnDefeat(*input.Input, *info.SkillEntity) bool {
|
|
panic("not implemented") // TODO: Implement
|
|
}
|