Files
bl/logic/service/fight/effect/579.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

34 lines
742 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/action"
"blazing/logic/service/fight/input"
"blazing/logic/service/fight/node"
)
// {
// "id": 579,
// "argsNum": 1,
// "info": "若当回合未击败对手则恢复自身最大体力的1/{0}"
// },
type Effect579 struct {
node.EffectNode
}
func (e *Effect579) Action_end() bool {
// 检查对手是否还活着
if e.Ctx().Opp.CurrentPet.Alive() {
// 恢复自身最大体力的 1/divisor
maxHp := e.Ctx().Our.CurrentPet.GetMaxHP()
// 执行治疗
e.Ctx().Our.Heal(e.Ctx().Our, &action.SelectSkillAction{}, maxHp.Div(e.Args()[0]))
}
return true
}
func init() {
input.InitEffect(input.EffectType.Skill, 579, &Effect579{})
}