package effect import ( "blazing/logic/service/fight/info" "blazing/logic/service/fight/input" "blazing/logic/service/fight/node" "github.com/alpacahq/alpacadecimal" ) // 479 - 损失自身n点体力,给对手造成m点固定伤害 type Effect479 struct { node.EffectNode } func (e *Effect479) OnSkill() bool { selfDamage := alpacadecimal.NewFromInt(int64(e.Args()[0].IntPart())) opponentDamage := alpacadecimal.NewFromInt(int64(e.Args()[1].IntPart())) // 检查自身体力是否低于200 currentHp := e.Ctx().Our.CurrentPet.GetHP() minHp := alpacadecimal.NewFromInt(200) if currentHp.Cmp(minHp) < 0 { // 如果自身体力不足200,保留1点体力 damageToTake := currentHp.Sub(alpacadecimal.NewFromInt(1)) damageZone := &info.DamageZone{ Type: info.DamageType.Fixed, Damage: damageToTake, } e.Ctx().Our.Damage(e.Ctx().Our, damageZone) } else { // 损失n点体力 damageZone := &info.DamageZone{ Type: info.DamageType.Fixed, Damage: selfDamage, } e.Ctx().Our.Damage(e.Ctx().Our, damageZone) } // 给对手造成m点固定伤害 damageZone := &info.DamageZone{ Type: info.DamageType.Fixed, Damage: opponentDamage, } e.Ctx().Opp.Damage(e.Ctx().Our, damageZone) return true } func init() { input.InitEffect(input.EffectType.NewSel, 479, &Effect479{}) }