package effect import ( "blazing/logic/service/fight/info" "blazing/logic/service/fight/input" "blazing/logic/service/fight/node" ) // ----------------------------------------------------------- // 通用状态效果(例如 麻痹 / 中毒 / 疲惫 / 混乱 等) // ----------------------------------------------------------- type Effect1605 struct { node.EffectNode Status info.EnumPetStatus // 要施加的状态类型 } func init() { input.InitEffect(input.EffectType.Skill, 1605, &Effect1605{}) } // ----------------------------------------------------------- // 技能触发时调用 // ----------------------------------------------------------- func (e *Effect1605) OnSkill() bool { // n% 触发概率(默认 SideEffectArgs[0]) chance := e.SideEffectArgs[0] success, _, _ := e.Input.Player.Roll(chance, 100) if !success { return true } // 获取状态效果 eff := e.Ctx().Our.InitEffect(input.EffectType.Status, int(e.SideEffectArgs[1])) if eff == nil { return true } e.Ctx().Opp.AddEffect(e.Ctx().Our, eff) return true }