package effect import ( "blazing/logic/service/fight/info" "blazing/logic/service/fight/input" "github.com/gogf/gf/v2/util/grand" ) /** * n回合,若自己先手,则m%几率让对手害怕1到3回合 */ func init() { t := &Effect117{} input.InitEffect(input.EffectType.Skill, 117, t) } // Effect 117: 5回合内如果先出手,50%概率对手害怕1到3回合 type Effect117 struct { RoundEffectSideArg0Base } // 默认添加回合 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 := e.Ctx().Our.InitEffect(input.EffectType.Status, int(info.PetStatus.Fear)) if eff == nil { return true } eff.Duration(grand.Intn(3)) e.Ctx().Opp.AddEffect(e.Ctx().Our, eff) } return true }