package effect import ( "blazing/logic/service/fight/input" "blazing/logic/service/fight/node" ) // 471 - 先出手时n回合内免疫异常状态 type Effect471 struct { node.EffectNode can bool } func (e *Effect471) SetArgs(t *input.Input, a ...int) { e.EffectNode.SetArgs(t, a...) e.EffectNode.Duration(a[0]) // 持续m回合 } func init() { input.InitEffect(input.EffectType.Skill, 471, &Effect471{}) } func (e *Effect471) EFFect_Befer(in *input.Input, effEffect input.Effect) bool { if !e.can { return true } if in != e.Ctx().Opp { return true } if input.IS_Stat(effEffect) { return false } return true } func (e *Effect471) OnSkill() bool { if e.IsFirst() { // 先出手 e.can = true } return true } func init() { input.InitEffect(input.EffectType.Skill, 191, &Effect191{}) } // 191 - n回合内免疫并反弹所有受到的异常状态 type Effect191 struct { node.EffectNode } func (e *Effect191) SetArgs(t *input.Input, a ...int) { e.EffectNode.SetArgs(t, a...) e.EffectNode.Duration(a[0]) // 持续m回合 } func (e *Effect191) EFFect_Befer(in *input.Input, effEffect input.Effect) bool { if in != e.Ctx().Opp { return true } if input.IS_Stat(effEffect) { statusEffect1 := e.Ctx().Our.InitEffect(input.EffectType.Status, int(effEffect.ID().Suffix())) if statusEffect1 != nil { e.Ctx().Opp.AddEffect(e.Ctx().Our, statusEffect1) } return false } return true }