1 Star 0 Fork 0

笑看风云/gocodes

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
pool-modify.go 2.65 KB
一键复制 编辑 原始数据 按行查看 历史
笑看风云 提交于 2023-04-10 13:51 . 简化modifyx
package modifyx
type IModify interface {
Key() string
Valid() bool
Value(old interface{}) (last interface{})
}
//
//// 由于公式的不可控,每次执行公式,版本号自动加一,即每次调用公式影响的字段,都会重新计算
//// todo: 对于某些公式只需要计算一次的情况,增加一个配置
//type IModifyFormula interface {
// IModify
// Name() string
// Args() string
//}
//
//type IModifyFloat interface {
// IModify
// Kind() string
// Value() float64
//}
//
//type Modify struct {
// // 例如: CEffectDamage/Amount
// key string
//}
//
//func (a *Modify) Valid() bool {
// return true
//}
//
//func (b *Modify) SetKey(val string) *Modify {
// b.key = val
// return b
//}
//
//func (m *Modify) Key() string {
// return m.key
//}
//
//// 修正浮点数
//type ModifyFormula struct {
// //
// Modify
// // 公式
// // Cmd arg0 arg1
// name string
// //
// args string
//}
//
//func (b *ModifyFormula) SetName(val string) *ModifyFormula {
// b.name = val
// return b
//}
//
//func (m *ModifyFormula) Name() string {
// return m.name
//}
//
//func (b *ModifyFormula) SetArgs(val string) *ModifyFormula {
// b.args = val
// return b
//}
//
//func (m *ModifyFormula) Args() string {
// return m.args
//}
//
//// 修正浮点数
//type ModifyFloat struct {
// //
// Modify
// // 修正类型
// // enums.ModifyFloatKind
// kind string
// // 修正值
// value float64
//}
//
//func (b *ModifyFloat) SetKind(val string) *ModifyFloat {
// b.kind = val
// return b
//}
//
//func (m *ModifyFloat) Kind() string {
// return m.kind
//}
//
//func (b *ModifyFloat) SetValue(val float64) *ModifyFloat {
// b.value = val
// return b
//}
//
//func (m *ModifyFloat) Value() float64 {
// return m.value
//}
//
//var formulas = map[string]func(x interface{}, cmd string, args ...string) interface{}{}
//
//func RegisterFormulas(key string, f func(x interface{}, cmd string, args ...string) interface{}) {
// formulas[key] = f
//}
//
//func CalculateModifyFormula(x float64, bonus IModifyFormula) (y float64) {
// name := bonus.Name()
// if name == "" {
// return x
// }
// f, has := formulas[name]
// if !has {
// return x
// }
// args := strings.Split(bonus.Args(), ",")
// y = f(x, name, args...).(float64)
// return
//}
//
//func CalculateModifyFloat(x float64, bonus IModifyFloat) (y float64) {
// switch bonus.Kind() {
// case "Add":
// x += bonus.Value()
// case "Sub":
// x -= bonus.Value()
// case "Mul":
// x *= bonus.Value()
// case "Div":
// x /= bonus.Value()
// case "Set":
// x = bonus.Value()
// //case enums.BonusFixFloatKind_Formula:
// // f, has := formulas[bonus.Formula]
// // if has {
// // x = f(x, params).(float64)
// // }
// }
// y = x
// return
//}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/zhongguo168a/gocodes.git
git@gitee.com:zhongguo168a/gocodes.git
zhongguo168a
gocodes
gocodes
4da1013f7e88

搜索帮助