42 lines
954 B
Go
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{})
|
|
}
|