perf: 优化战斗逻辑性能与内存分配
This commit is contained in:
@@ -24,6 +24,7 @@ type EffectNode struct {
|
||||
canStack bool // 最大叠加层数 ,正常都是不允许叠加的,除了衰弱特殊效果 ,异常和能力的叠层
|
||||
isFirst bool
|
||||
SideEffectArgs []int // 附加效果参数
|
||||
cachedArgs []alpacadecimal.Decimal
|
||||
// owner bool //是否作用自身
|
||||
Success bool // 是否执行成功 成功XXX,失败XXX
|
||||
arget bool // 传出作用对象,默认0是自身,1是作用于对面
|
||||
@@ -240,18 +241,22 @@ func (e *EffectNode) SetArgs(t *input.Input, a ...int) {
|
||||
e.Input = t
|
||||
if len(a) > 0 {
|
||||
e.SideEffectArgs = a
|
||||
e.cachedArgs = e.cachedArgs[:0]
|
||||
for _, v := range a {
|
||||
e.cachedArgs = append(e.cachedArgs, alpacadecimal.NewFromInt(int64(v)))
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
func (e *EffectNode) Args() []alpacadecimal.Decimal {
|
||||
var ret []alpacadecimal.Decimal
|
||||
|
||||
for _, v := range e.SideEffectArgs {
|
||||
ret = append(ret, alpacadecimal.NewFromInt(int64(v)))
|
||||
|
||||
if len(e.cachedArgs) == len(e.SideEffectArgs) {
|
||||
return e.cachedArgs
|
||||
}
|
||||
|
||||
return ret
|
||||
e.cachedArgs = e.cachedArgs[:0]
|
||||
for _, v := range e.SideEffectArgs {
|
||||
e.cachedArgs = append(e.cachedArgs, alpacadecimal.NewFromInt(int64(v)))
|
||||
}
|
||||
return e.cachedArgs
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user