package effect import ( "blazing/logic/service/fight/info" "blazing/logic/service/fight/input" "blazing/logic/service/fight/node" "github.com/alpacahq/alpacadecimal" ) // 455 - 当损失n点体力时,额外附加m点固定伤害 type Effect455 struct { node.EffectNode } func (e *Effect455) Skill_Use_ex() bool { // 计算受到的伤害 damageTaken := e.Ctx().Our.SumDamage // 计算应该附加的额外伤害 damageRatio := damageTaken.Div(e.Args()[0]) // 损失n点的次数 additionalDamagePerHit := alpacadecimal.NewFromInt(int64(e.Args()[1].IntPart())) // 总额外伤害 totalAdditionalDamage := additionalDamagePerHit.Mul(damageRatio) if totalAdditionalDamage.Cmp(alpacadecimal.NewFromInt(0)) > 0 { damageZone := &info.DamageZone{ Type: info.DamageType.Fixed, Damage: totalAdditionalDamage, } e.Ctx().Opp.Damage(e.Ctx().Our, damageZone) } return true } func init() { input.InitEffect(input.EffectType.NewSel, 455, &Effect455{}) }