package effect import ( "blazing/logic/service/fight/info" "blazing/logic/service/fight/input" "blazing/logic/service/fight/node" "github.com/alpacahq/alpacadecimal" ) // 514 - 附加对手已损失体力n%的固定伤害 type Effect514 struct { node.EffectNode } func (e *Effect514) OnSkill() bool { maxHp := e.Ctx().Opp.CurrentPet.GetMaxHP() currentHp := e.Ctx().Opp.CurrentPet.GetHP() lostHp := maxHp.Sub(currentHp) damagePercent := e.Args()[0].Div(alpacadecimal.NewFromInt(100)) additionalDamage := lostHp.Mul(damagePercent) if additionalDamage.Cmp(alpacadecimal.NewFromInt(0)) > 0 { damageZone := &info.DamageZone{ Type: info.DamageType.Fixed, Damage: additionalDamage, } e.Ctx().Opp.Damage(e.Ctx().Our, damageZone) } return true } func init() { input.InitEffect(input.EffectType.NewSel, 514, &Effect514{}) }