2025-09-25 20:34:33 +00:00
|
|
|
|
package effect
|
|
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
|
"blazing/logic/service/fight/info"
|
|
|
|
|
|
"blazing/logic/service/fight/input"
|
|
|
|
|
|
"blazing/logic/service/fight/node"
|
|
|
|
|
|
)
|
|
|
|
|
|
|
2025-11-03 03:59:59 +08:00
|
|
|
|
// Effect3:能力操作类效果(重置/反转/偷取等)
|
2025-09-25 20:34:33 +00:00
|
|
|
|
type Effect3 struct {
|
|
|
|
|
|
node.EffectNode
|
2025-11-03 03:59:59 +08:00
|
|
|
|
Reverse bool
|
|
|
|
|
|
Level int8
|
|
|
|
|
|
OpType info.EnumAbilityOpType
|
2025-09-25 20:34:33 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
2025-11-03 03:59:59 +08:00
|
|
|
|
// ----------------------
|
|
|
|
|
|
// 执行时逻辑
|
|
|
|
|
|
// ----------------------
|
2025-11-11 05:54:24 +00:00
|
|
|
|
func (e *Effect3) OnSkill() bool {
|
2025-11-03 03:59:59 +08:00
|
|
|
|
|
|
|
|
|
|
// 遍历六项能力值(攻击、防御、速度等)
|
2025-09-25 20:34:33 +00:00
|
|
|
|
for i := 0; i < 6; i++ {
|
2025-11-03 03:59:59 +08:00
|
|
|
|
if e.Reverse {
|
|
|
|
|
|
// 对对手生效
|
2025-11-11 05:54:24 +00:00
|
|
|
|
e.Ctx().Opp.SetProp(e.Ctx().Our, int8(i), e.Level, e.OpType)
|
2025-09-25 20:34:33 +00:00
|
|
|
|
} else {
|
2025-11-03 03:59:59 +08:00
|
|
|
|
// 对自己生效
|
2025-11-11 05:54:24 +00:00
|
|
|
|
e.Ctx().Our.SetProp(e.Ctx().Our, int8(i), e.Level, e.OpType)
|
2025-09-25 20:34:33 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-11-03 03:59:59 +08:00
|
|
|
|
|
2025-10-26 20:56:03 +08:00
|
|
|
|
return true
|
2025-09-25 20:34:33 +00:00
|
|
|
|
}
|
2025-09-26 21:15:58 +00:00
|
|
|
|
|
2025-11-03 03:59:59 +08:00
|
|
|
|
// ----------------------
|
|
|
|
|
|
// 工厂函数
|
|
|
|
|
|
// ----------------------
|
|
|
|
|
|
func newEffect3(reverse bool, level int8, opType info.EnumAbilityOpType) *Effect3 {
|
|
|
|
|
|
return &Effect3{
|
|
|
|
|
|
Reverse: reverse,
|
|
|
|
|
|
Level: level,
|
|
|
|
|
|
OpType: opType,
|
2025-09-26 21:15:58 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-11-03 03:59:59 +08:00
|
|
|
|
// ----------------------
|
|
|
|
|
|
// 注册所有效果
|
|
|
|
|
|
// ----------------------
|
|
|
|
|
|
func init() {
|
|
|
|
|
|
effects := []struct {
|
|
|
|
|
|
id int
|
|
|
|
|
|
reverse bool
|
|
|
|
|
|
level int8
|
|
|
|
|
|
opType info.EnumAbilityOpType
|
|
|
|
|
|
}{
|
2025-11-14 23:09:16 +08:00
|
|
|
|
{3, false, -1, info.AbilityOpType.RESET}, // 解除自身能力下降状态
|
|
|
|
|
|
{33, true, 1, info.AbilityOpType.RESET}, // 消除对手能力提升状态
|
|
|
|
|
|
{63, false, 0, info.AbilityOpType.BounceWeaken}, // 将能力下降反馈给对手
|
|
|
|
|
|
{85, false, -1, info.AbilityOpType.StealStrengthen}, // 将对手提升效果转移到自己
|
|
|
|
|
|
{143, true, 1, info.AbilityOpType.Reverse}, // 反转对手能力提升为下降
|
2025-11-03 03:59:59 +08:00
|
|
|
|
}
|
2025-09-26 21:15:58 +00:00
|
|
|
|
|
2025-11-03 03:59:59 +08:00
|
|
|
|
for _, e := range effects {
|
|
|
|
|
|
input.InitEffect(input.EffectType.Skill, e.id, newEffect3(e.reverse, e.level, e.opType))
|
|
|
|
|
|
}
|
2025-09-25 20:34:33 +00:00
|
|
|
|
}
|