Files
bl/logic/service/fight/boss/NewSeIdx_409.go
昔念 fb32bb3c39 ```
feat(fight): 添加新效果类型574并优化现有战斗逻辑

- 重命名NewSel409结构体的Action_end_ex方法为Skill_Use_ex
- 将effect/523中HP检查改为Alive()方法调用
- 修复selfkill效果中的代码格式问题
- 新增效果类型574:消耗自身全部体力使下次技能必定先手、命中且暴击
- 实现Effect574的ComparePre和ActionStart方法处理先手、命中和暴击逻辑
```
2026-03-17 19:30:40 +08:00

43 lines
1013 B
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/input"
)
// 409. 致命一击时n%几率令对手进入某一种异常状态a1: n, a2: 异常状态类型)
// TODO: 需要了解如何判断致命一击
type NewSel409 struct {
NewSel0
}
func (e *NewSel409) Skill_Use_ex() bool {
//魂印特性有不在场的情况,绑定时候将精灵和特性绑定
if e.ID().GetCatchTime() != e.Ctx().Our.CurrentPet.Info.CatchTime {
return true
}
if e.Ctx().SkillEntity == nil {
return true
}
if e.Ctx().SkillEntity.Crit != 1 {
return true
}
success, _, _ := e.Input.Player.Roll(int(e.Args()[0].IntPart()), 100)
if !success {
return true
}
// 获取状态效果实例并设置参数
statusEffect := e.Ctx().Our.InitEffect(input.EffectType.Status, int(e.Args()[1].IntPart()))
if statusEffect == nil {
return true
}
// 给对手添加状态
e.Ctx().Opp.AddEffect(e.Ctx().Opp, statusEffect)
return true
}
func init() {
input.InitEffect(input.EffectType.NewSel, 409, &NewSel409{})
}