- 移除未使用的战斗模式枚举和相关代码 - 更新 BurnEffect 结构,增加生命周期管理 - 删除多余的 Skill 结构和 Effect 相关代码 - 调整 NoteReadyToFightInfo 结构的位置
33 lines
677 B
Go
33 lines
677 B
Go
package base
|
|
|
|
import (
|
|
"blazing/logic/service/fight/battle/node"
|
|
"fmt"
|
|
)
|
|
|
|
type BurnEffect struct {
|
|
life LifeCycle
|
|
}
|
|
|
|
func NewBurnEffect(turns int) *BurnEffect {
|
|
return &BurnEffect{life: NewTurnLife(turns)}
|
|
}
|
|
|
|
func (b *BurnEffect) Trigger() node.EnumEffectTrigger {
|
|
return node.EffectTrigger.TurnEnd // 每回合结束触发掉血
|
|
}
|
|
|
|
func (b *BurnEffect) Apply(ctx *node.EffectContext, next func()) {
|
|
fmt.Printf("[%s] 在回合结束时受灼烧伤害!\n", ctx.Target)
|
|
b.life.Use() // 消耗一次触发次数(如果你定义为按次数存活)
|
|
next()
|
|
}
|
|
|
|
func (b *BurnEffect) Tick() {
|
|
b.life.Tick()
|
|
}
|
|
|
|
func (b *BurnEffect) Alive() bool {
|
|
return b.life.Alive()
|
|
}
|