Files
bl/logic/service/fight/effect/170.go

40 lines
885 B
Go
Raw Normal View History

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"
)
// Effect 170: 若先出手则免疫当回合伤害并回复1/{0}的最大体力值
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{})
}