代码拉取完成,页面将自动刷新
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
//}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。