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

42 lines
860 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/info"
"blazing/logic/service/fight/input"
"blazing/logic/service/fight/node"
"github.com/alpacahq/alpacadecimal"
)
// {
// "id": 556,
// "argsNum": 0,
// "info": "命中后使自身体力降为1"
// },
type Effect556 struct {
node.EffectNode
}
func (e *Effect556) OnSkill() bool {
// 使自身体力降为1但不能低于1
currentHP := e.Ctx().Our.CurrentPet.Info.Hp
if currentHP > 1 {
// 计算需要减少的体力值使最终体力为1
damageAmount := int64(currentHP - 1)
damageZone := &info.DamageZone{
Type: info.DamageType.Fixed,
Damage: alpacadecimal.NewFromInt(damageAmount),
}
e.Ctx().Our.Damage(e.Ctx().Our, damageZone)
}
return true
}
func init() {
input.InitEffect(input.EffectType.Skill, 556, &Effect556{})
}