package effect import ( "blazing/logic/service/fight/info" "blazing/logic/service/fight/input" "blazing/logic/service/fight/node" "github.com/alpacahq/alpacadecimal" ) /** * 消耗自身全部体力(体力降到0), 使下一只出战精灵的 battle_lv1 和 battle_lv2 能力提升1个等级 */ type Effect59 struct { node.EffectNode can bool } func init() { input.InitEffect(input.EffectType.Skill, 59, &Effect59{}) } func (e *Effect59) SetArgs(t *input.Input, a ...int) { //e.CanStack(-1)//后续的不会顶掉这个效果 e.EffectNode.SetArgs(t, a...) e.Duration(-1) //次数类,无限回合 } // 命中之后 func (e *Effect59) OnSkill() bool { e.can = true e.Ctx().Our.Damage(e.Ctx().Our, &info.DamageZone{ Type: info.DamageType.Fixed, Damage: alpacadecimal.NewFromInt(int64(e.Ctx().Our.CurrentPet.Info.MaxHp)), }) e.Ctx().Our.CurrentPet.NotAlive = true return true } func (e *Effect59) SwitchOut(in *input.Input) bool { return true } func (e *Effect59) SwitchIn(in *input.Input) bool { // 1. 检查效果是否生效(当次攻击有效) if !e.can { return true } // if in != e.Ctx().Our { return true } e.Ctx().Our.SetProp(e.Ctx().Our, int8(e.Args()[0].IntPart()), 1, info.AbilityOpType.ADD) e.Ctx().Our.SetProp(e.Ctx().Our, int8(e.Args()[1].IntPart()), 1, info.AbilityOpType.ADD) e.Alive(false) return true }