Files
bl/logic/service/fight/effect/85.go
昔念 7fd89800fa 1
2026-04-23 00:39:29 +08:00

42 lines
954 B
Go

package effect
import (
"blazing/logic/service/fight/input"
"blazing/logic/service/fight/node"
)
// Effect 85: 使对手的能力提升效果转化到自己身上
type Effect85 struct {
node.EffectNode
}
// ----------------------
// 执行时逻辑
// ----------------------
func (e *Effect85) OnSkill() bool {
carrier := e.CarrierInput()
opp := e.OpponentInput()
if carrier == nil || opp == nil {
return true
}
e.transferPositiveProps(carrier, opp)
return true
}
// transferPositiveProps 使用显式入参执行业务逻辑,避免嵌套结算时再从 Ctx 取到漂移后的对象。
func (e *Effect85) transferPositiveProps(carrier, opp *input.Input) {
for i, v := range opp.Prop[:] {
if v > 0 {
carrier.SetProp(carrier, int8(i), v)
opp.SetProp(carrier, int8(i), 0)
}
}
}
// ----------------------
// 注册所有效果
// ----------------------
func init() {
input.InitEffect(input.EffectType.Skill, 85, &Effect85{})
}