package effect import ( "blazing/logic/service/fight/action" "blazing/logic/service/fight/info" "blazing/logic/service/fight/input" "blazing/logic/service/fight/node" ) // 155 - 恢复全部体力,消除所有能力下降,使自己进入睡眠n回合 type Effect155 struct { node.EffectNode } func (e *Effect155) OnSkill() bool { // 恢复全部体力 maxHp := e.Ctx().Our.CurrentPet.GetMaxHP() e.Ctx().Our.Heal(e.Ctx().Our, &action.SelectSkillAction{}, maxHp) // 消除所有能力下降 for i := 0; i < 6; i++ { e.Ctx().Our.SetProp(e.Ctx().Our, int8(i), -1, info.AbilityOpType.RESET) } // 使自己进入睡眠n回合 sleepEffect := e.Ctx().Our.InitEffect(input.EffectType.Status, int(info.PetStatus.Sleep)) if sleepEffect != nil { sleepEffect.Duration(int(e.Args()[0].IntPart())) // n回合 e.Ctx().Our.AddEffect(e.Ctx().Our, sleepEffect) } return true } func init() { input.InitEffect(input.EffectType.Skill, 155, &Effect155{}) }