package effect import ( "blazing/logic/service/fight/info" "blazing/logic/service/fight/input" "blazing/logic/service/fight/node" "github.com/alpacahq/alpacadecimal" ) // Effect 503: 若造成的伤害不足{0},则回合结束时对手损失{1}点固定体力 type Effect503 struct { node.EffectNode triggered bool damageThreshold int } func (e *Effect503) Skill_Use() bool { damageDone := e.CarrierInput().SumDamage e.damageThreshold = int(e.Args()[0].IntPart()) if damageDone.IntPart() < int64(e.damageThreshold) { e.triggered = true } return true } func (e *Effect503) Action_end_ex() bool { if e.triggered { fixedDamage := alpacadecimal.NewFromInt(int64(e.Args()[1].IntPart())) damageZone := &info.DamageZone{ Type: info.DamageType.Fixed, Damage: fixedDamage, } e.TargetInput().Damage(e.CarrierInput(), damageZone) e.triggered = false } return true } func init() { input.InitEffect(input.EffectType.Skill, 503, &Effect503{}) }