package effect import ( "blazing/logic/service/fight/info" "blazing/logic/service/fight/input" "blazing/logic/service/fight/node" "github.com/alpacahq/alpacadecimal" ) /** * 有m%的几率在n回合内,每回合造成k点固定伤害 */ func init() { input.InitEffect(input.EffectType.Skill, 76, &Effect76{ EffectNode: node.EffectNode{}, }) } type Effect76 struct { node.EffectNode } func (e *Effect76) OnSkill() bool { // 概率判定 ok, _, _ := e.Input.Player.Roll(int(e.Args()[0].IntPart()), 100) if !ok { return true } e.Ctx().Opp.Damage(e.Ctx().Our, &info.DamageZone{ Type: info.DamageType.Fixed, Damage: alpacadecimal.NewFromInt(int64(e.SideEffectArgs[2])), }) return true } func (e *Effect76) SetArgs(t *input.Input, a ...int) { e.EffectNode.SetArgs(t, a...) e.EffectNode.Duration(e.EffectNode.SideEffectArgs[1]) }