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