package effect import ( "blazing/logic/service/fight/info" "blazing/logic/service/fight/input" "blazing/logic/service/fight/node" ) /** * n回合,若自己先手,则m%几率让对手害怕1到3回合 */ func init() { t := &Effect117{ EffectNode: node.EffectNode{}, } input.InitEffect(input.EffectType.Skill, 117, t) } type Effect117 struct { node.EffectNode } // 默认添加回合 func (e *Effect117) SetArgs(t *input.Input, a ...int) { e.EffectNode.SetArgs(t, a...) e.EffectNode.Duration(e.EffectNode.SideEffectArgs[0]) } func (e *Effect117) OnSkill() bool { if e.Input.FightC.IsFirst(e.Input.Player) { // 概率判定 ok, _, _ := e.Input.Player.Roll(e.EffectNode.SideEffectArgs[1], 100) if !ok { return true } // 获取状态效果 eff := input.Geteffect(input.EffectType.Status, int(info.PetStatus.Fear)) if eff == nil { return true } duration := int(e.Input.FightC.GetRand().Int31n(3)) // 默认随机 1~3 回合 eff.Duration(duration) e.Ctx().Opp.AddEffect(e.Ctx().Our, eff) } return true }