Files
bl/logic/service/fight/effect/effect_131.go
昔念 b964b14f1d ```
refactor(fight): 统一DamageLock方法命名规范并修改方法签名

- 将DamageLock_ex方法重命名为DamageLockEx,统一命名规范
- 修改NewSeIdx_53、NewSeIdx_54、NewSeIdx_71的TurnEnd方法为TurnStart
- 为TurnStart方法添加fattack和sattack参数
- 修复NewSeIdx_5中的条件判断逻辑,将!ok改为ok
- 修正NewSeIdx_5中的Ctx().SkillEntity.Type为Ctx().Type
- 移除EffectNode.Alive方法中的调试打印语句
- 添加必要的action包导入
```
2026-01-06 01:34:26 +08:00

45 lines
1.4 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package effect
import (
"blazing/logic/service/fight/info"
"blazing/logic/service/fight/input"
"blazing/logic/service/fight/node"
"github.com/alpacahq/alpacadecimal"
)
/**
* 131 对方为X性则免疫当前回合伤害
* 参数说明:
* Args[0] = X性别的数值定义例如0=无性别1=雄性2=雌性,根据业务实际枚举值调整)
*/
// 初始化效果注册
func init() {
// 注册效果类型Skill与134保持一致、效果ID=131、效果实例
input.InitEffect(input.EffectType.Skill, 131, &Effect131{})
}
// Effect131 效果131的结构体嵌入基类获取通用能力
type Effect131 struct {
node.EffectNode
}
// DamageDivEx 受击前触发(核心伤害拦截节点)
// 该方法在伤害计算前执行,适合修改/清零伤害实现免疫效果
func (e *Effect131) DamageLockEx(t *info.DamageZone) bool {
// 3. 获取配置的目标性别XArgs[0]存储X性别的数值
xGender := e.Args()[0].IntPart()
// 4. 对比对手性别与目标性别,匹配则免疫伤害
// 注需确保BattlePetEntity的Gender字段类型为int/int8与xGender类型匹配
if int(e.Ctx().Opp.CurrentPet.Gender) == int(xGender) {
// 将伤害置为0实现当前回合伤害免疫
t.Damage = alpacadecimal.NewFromInt(0)
}
// 返回true表示允许后续流程继续仅修改伤害值不阻断流程
return true
}