refactor: 合并同类 effect 实现到公共基类
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful
This commit is contained in:
@@ -3,23 +3,13 @@ package effect
|
||||
import (
|
||||
"blazing/logic/service/fight/info"
|
||||
"blazing/logic/service/fight/input"
|
||||
"blazing/logic/service/fight/node"
|
||||
|
||||
"github.com/alpacahq/alpacadecimal"
|
||||
)
|
||||
|
||||
// Effect 570: 免疫下{0}次受到的攻击
|
||||
type Effect570 struct {
|
||||
node.EffectNode
|
||||
remaining int
|
||||
}
|
||||
|
||||
func (e *Effect570) SetArgs(t *input.Input, a ...int) {
|
||||
e.EffectNode.SetArgs(t, a...)
|
||||
e.EffectNode.Duration(-1)
|
||||
if len(a) > 0 {
|
||||
e.remaining = a[0]
|
||||
}
|
||||
FixedDurationNeg1Arg0CountBase
|
||||
}
|
||||
|
||||
func (e *Effect570) DamageLockEx(t *info.DamageZone) bool {
|
||||
|
||||
@@ -4,10 +4,8 @@ import (
|
||||
element "blazing/common/data/Element"
|
||||
"blazing/logic/service/fight/info"
|
||||
"blazing/logic/service/fight/input"
|
||||
"blazing/logic/service/fight/node"
|
||||
|
||||
"github.com/alpacahq/alpacadecimal"
|
||||
"github.com/gogf/gf/v2/util/grand"
|
||||
)
|
||||
|
||||
/**
|
||||
@@ -21,13 +19,7 @@ func init() {
|
||||
|
||||
// Effect 41: 未在 effectInfo.json 配置说明
|
||||
type Effect41 struct {
|
||||
node.EffectNode
|
||||
}
|
||||
|
||||
func (e *Effect41) SetArgs(t *input.Input, a ...int) {
|
||||
e.EffectNode.SetArgs(t, a...)
|
||||
e.EffectNode.Duration(grand.N(int(e.Args()[0].IntPart()), int(e.Args()[1].IntPart())))
|
||||
|
||||
RandomDurationArg01Base
|
||||
}
|
||||
|
||||
// 伤害落实前触发,限制最大伤害
|
||||
|
||||
@@ -4,15 +4,13 @@ import (
|
||||
element "blazing/common/data/Element"
|
||||
"blazing/logic/service/fight/info"
|
||||
"blazing/logic/service/fight/input"
|
||||
"blazing/logic/service/fight/node"
|
||||
|
||||
"github.com/alpacahq/alpacadecimal"
|
||||
"github.com/gogf/gf/v2/util/grand"
|
||||
)
|
||||
|
||||
// Effect 42: 未在 effectInfo.json 配置说明
|
||||
type Effect42 struct {
|
||||
node.EffectNode
|
||||
RandomDurationArg01Base
|
||||
StatusID int
|
||||
}
|
||||
|
||||
@@ -34,14 +32,6 @@ func (e *Effect42) Damage_Mul(t *info.DamageZone) bool {
|
||||
//fmt.Println("Effect42_n", t.Damage)
|
||||
return true
|
||||
}
|
||||
func (e *Effect42) SetArgs(t *input.Input, a ...int) {
|
||||
|
||||
//e.CanStack(-1)//后续的不会顶掉这个效果
|
||||
e.EffectNode.SetArgs(t, a...)
|
||||
|
||||
e.Duration(grand.N(int(e.Args()[0].IntPart()), int(e.Args()[1].IntPart()))) //次数类,无限回合
|
||||
|
||||
}
|
||||
|
||||
// ---- 注册所有效果 ----
|
||||
func init() {
|
||||
|
||||
@@ -3,16 +3,13 @@ package effect
|
||||
import (
|
||||
"blazing/logic/service/fight/info"
|
||||
"blazing/logic/service/fight/input"
|
||||
"blazing/logic/service/fight/node"
|
||||
|
||||
"github.com/alpacahq/alpacadecimal"
|
||||
)
|
||||
|
||||
// Effect 46: 抵挡下{0}次对手的攻击
|
||||
type Effect46 struct {
|
||||
node.EffectNode
|
||||
//StatusID int
|
||||
conut int64
|
||||
FixedDurationNeg1Arg0CountBase
|
||||
}
|
||||
|
||||
func (e *Effect46) Damage_Shield(t *info.DamageZone) bool {
|
||||
@@ -25,25 +22,16 @@ func (e *Effect46) Damage_Shield(t *info.DamageZone) bool {
|
||||
}
|
||||
|
||||
//fmt.Println("Effect46_o", t.Damage)
|
||||
if t.Type == info.DamageType.Red {
|
||||
e.conut++
|
||||
if t.Type == info.DamageType.Red && e.remaining > 0 {
|
||||
e.remaining--
|
||||
t.Damage = alpacadecimal.Zero
|
||||
|
||||
}
|
||||
if e.Args()[0].IntPart() == e.conut {
|
||||
e.Alive(false)
|
||||
return true
|
||||
if e.remaining <= 0 {
|
||||
e.Alive(false)
|
||||
}
|
||||
}
|
||||
//fmt.Println("Effect46_n", t.Damage)
|
||||
return true
|
||||
}
|
||||
func (e *Effect46) SetArgs(t *input.Input, a ...int) {
|
||||
|
||||
//e.CanStack(-1)//后续的不会顶掉这个效果
|
||||
e.EffectNode.SetArgs(t, a...)
|
||||
e.Duration(-1) //次数类,无限回合
|
||||
|
||||
}
|
||||
|
||||
// ---- 注册所有效果 ----
|
||||
func init() {
|
||||
|
||||
@@ -2,12 +2,11 @@ package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
"blazing/logic/service/fight/node"
|
||||
)
|
||||
|
||||
// Effect 47: {0}回合内免疫能力下降状态
|
||||
type Effect47 struct {
|
||||
node.EffectNode
|
||||
RoundEffectArg0Base
|
||||
//StatusID int
|
||||
conut int
|
||||
}
|
||||
@@ -19,13 +18,6 @@ func (e *Effect47) PropBefer(in *input.Input, prop int8, level int8) bool {
|
||||
|
||||
return true
|
||||
}
|
||||
func (e *Effect47) SetArgs(t *input.Input, a ...int) {
|
||||
|
||||
//e.CanStack(-1)//后续的不会顶掉这个效果
|
||||
e.EffectNode.SetArgs(t, a...)
|
||||
e.Duration(int(e.Args()[0].IntPart())) //次数类,无限回合
|
||||
|
||||
}
|
||||
|
||||
// ---- 注册所有效果 ----
|
||||
func init() {
|
||||
|
||||
@@ -2,12 +2,11 @@ package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
"blazing/logic/service/fight/node"
|
||||
)
|
||||
|
||||
// Effect 48: {0}回合内免疫所有受到的异常状态
|
||||
type Effect48 struct {
|
||||
node.EffectNode
|
||||
RoundEffectArg0Base
|
||||
//StatusID int
|
||||
conut int
|
||||
}
|
||||
@@ -23,13 +22,6 @@ func (e *Effect48) EFFect_Befer(in *input.Input, effEffect input.Effect) bool {
|
||||
|
||||
return true
|
||||
}
|
||||
func (e *Effect48) SetArgs(t *input.Input, a ...int) {
|
||||
|
||||
//e.CanStack(-1)//后续的不会顶掉这个效果
|
||||
e.EffectNode.SetArgs(t, a...)
|
||||
e.Duration(int(e.Args()[0].IntPart())) //次数类,无限回合
|
||||
|
||||
}
|
||||
|
||||
// ---- 注册所有效果 ----
|
||||
func init() {
|
||||
|
||||
@@ -3,7 +3,6 @@ package effect
|
||||
import (
|
||||
"blazing/logic/service/fight/info"
|
||||
"blazing/logic/service/fight/input"
|
||||
"blazing/logic/service/fight/node"
|
||||
)
|
||||
|
||||
/**
|
||||
@@ -18,16 +17,9 @@ func init() {
|
||||
|
||||
// Effect 60: {0}回合内每回合都能附加{1}点固定伤害
|
||||
type Effect60 struct {
|
||||
node.EffectNode
|
||||
RoundEffectSideArg0Base
|
||||
}
|
||||
|
||||
// 默认添加回合
|
||||
func (e *Effect60) SetArgs(t *input.Input, a ...int) {
|
||||
|
||||
e.EffectNode.SetArgs(t, a...)
|
||||
e.EffectNode.Duration(e.SideEffectArgs[0])
|
||||
|
||||
}
|
||||
func (e *Effect60) OnSkill() bool {
|
||||
|
||||
if e.Ctx().SkillEntity == nil {
|
||||
|
||||
Reference in New Issue
Block a user