refactor(fight/effect): 重构效果获取逻辑,将deepcopy操作移至Input结构体方法中并优化效果处理流程
This commit is contained in:
@@ -2,8 +2,11 @@ package input
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/info"
|
||||
|
||||
"blazing/modules/blazing/model"
|
||||
"reflect"
|
||||
|
||||
"github.com/mohae/deepcopy"
|
||||
)
|
||||
|
||||
type Effect interface {
|
||||
@@ -85,6 +88,27 @@ func InitSkillEffect(id int, t Effect) {
|
||||
|
||||
NodeM[id+1000000] = t
|
||||
}
|
||||
func (c *Input) geteffect(id int) (Effect, bool) {
|
||||
|
||||
//todo 获取前GetEffect
|
||||
ret, ok := NodeM[id]
|
||||
if ok {
|
||||
eff := deepcopy.Copy(ret).(Effect)
|
||||
return eff, ok
|
||||
}
|
||||
return nil, false
|
||||
//todo 获取后GetEffect
|
||||
}
|
||||
func (c *Input) GetSkillEffect(id int) (Effect, bool) {
|
||||
|
||||
ret, ok := c.geteffect(id)
|
||||
if ok {
|
||||
//todo 获取前GetEffect
|
||||
return ret, ok
|
||||
//todo 获取后GetEffect
|
||||
}
|
||||
return nil, false
|
||||
}
|
||||
func InitPropEffect(id int, t Effect) {
|
||||
|
||||
NodeM[id+2000000] = t
|
||||
@@ -118,12 +142,13 @@ func InitDamageEffect(id int, t Effect) {
|
||||
|
||||
// 1为红伤
|
||||
func (c *Input) GetDamageEffect(id int) Effect {
|
||||
|
||||
//todo 获取前GetEffect
|
||||
ret, _ := NodeM[id+4000000]
|
||||
|
||||
return ret
|
||||
//todo 获取后GetEffect
|
||||
ret, ok := c.geteffect(id + 1000000)
|
||||
if ok {
|
||||
//todo 获取前GetEffect
|
||||
return ret
|
||||
//todo 获取后GetEffect
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func InitStatusEffect(id int, t Effect) {
|
||||
@@ -132,12 +157,14 @@ func InitStatusEffect(id int, t Effect) {
|
||||
}
|
||||
|
||||
func (c *Input) GetStatusEffect(id int) (Effect, bool) {
|
||||
ret, ok := c.geteffect(id + 3000000)
|
||||
if ok {
|
||||
//todo 获取前GetEffect
|
||||
return ret, true
|
||||
//todo 获取后GetEffect
|
||||
}
|
||||
return nil, false
|
||||
|
||||
//todo 获取前GetEffect
|
||||
ret, ok := NodeM[id+3000000]
|
||||
|
||||
return ret, ok
|
||||
//todo 获取后GetEffect
|
||||
}
|
||||
func (c *Input) GetCurrAttr(id int) *model.PetInfo {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user