Files
bl/logic/service/fight/effect/471.go

76 lines
1.4 KiB
Go
Raw Normal View History

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.Input.FightC.IsFirst(e.Input.Player) { // 先出手
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
}