Files
bl/logic/service/fight/effect/170.go
昔念 9538ef2ab7
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful
```
fix(fight/effect): 修复技能回复血量计算错误

将技能回复血量的计算参数从 Args()[1] 改为 Args()[0],
确保正确使用第一个参数进行最大体力值的除法运算。
```
2026-03-16 22:36:20 +08:00

40 lines
877 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/info"
"blazing/logic/service/fight/input"
"blazing/logic/service/fight/node"
"github.com/alpacahq/alpacadecimal"
)
// 170 - 若先出手则免疫当回合伤害并回复1/n的最大体力值
type Effect170 struct {
node.EffectNode
}
func (e *Effect170) Skill_Use() bool {
if e.IsFirst() { // 先出手
// 回复1/n的最大体力值
maxHp := e.Ctx().Our.CurrentPet.GetMaxHP()
healAmount := maxHp.Div(e.Args()[0]) // 1/n
e.Ctx().Our.Heal(e.Ctx().Our, &action.SelectSkillAction{}, healAmount)
}
return true
}
func (e *Effect170) DamageLockEx(t *info.DamageZone) bool {
if e.IsFirst() && t.Type == info.DamageType.Red { // 先出手
t.Damage = alpacadecimal.Zero
}
return true
}
func init() {
input.InitEffect(input.EffectType.Skill, 170, &Effect170{})
}