Files
bl/logic/service/fight/boss/NewSeIdx_66.go
昔念 bd09013d85
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful
```
fix(fight): 修复技能效果ID配置错误

- 修复NewSeIdx_66.go中空指针检查,避免程序崩溃
- 修正effect/407.go中技能ID从138改为407
- 修正effect/440.go中技能ID从138改为440,并修复类型引用错误
- 修正effect/523.go中属性设置对象错误,从Ctx().Opp改为Ctx().Our
- 修正effect_517.go中技能ID从452改为517
```
2026-03-11 23:38:51 +08:00

49 lines
1.2 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"
)
// 66. 自身的物理攻击有n%几率使对方处于异常状态a1: n, a2: 异常状态类型)
// TODO: 实现自身的物理攻击有n%几率使对方处于异常状态a1: n, a2: 异常状态类型)的核心逻辑
type NewSel66 struct {
NewSel0
}
func (e *NewSel66) Skill_Use() bool {
if e.ID().GetCatchTime() != e.Ctx().Our.CurrentPet.Info.CatchTime {
return true
}
if e.Ctx().SkillEntity == nil {
return true
}
if e.Ctx().SkillEntity.Category() != info.Category.PHYSICAL {
return true
}
// n% 触发概率(默认 SideEffectArgs[0]
chance := e.EffectNode.SideEffectArgs[0]
success, _, _ := e.Input.Player.Roll(chance, 100)
if !success {
return true
}
var duration int
// 持续回合
duration = int(e.Input.FightC.GetRand().Int31n(2)) // 默认随机 2~3 回合
duration++
// 获取状态效果
eff := e.Ctx().Our.InitEffect(input.EffectType.Status, int(e.Args()[1].IntPart()))
if eff == nil {
return true
}
e.Ctx().Opp.AddEffect(e.Ctx().Our, eff)
return true
}
func init() {
input.InitEffect(input.EffectType.NewSel, 66, &NewSel66{})
}