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{}) }