gitee.com/zhongguo168a/gocodes@v0.0.0-20230609140523-e1828349603f/datax/modifyx/modify-modify.go (about) 1 package modifyx 2 3 type IModify interface { 4 // 被修正的字段路径 5 Path() string 6 // 修正是否生效 7 Valid(ctx interface{}) bool 8 // 修正后的值 9 Value(ctx interface{}, origin interface{}) (last interface{}) 10 } 11 12 // 13 //type IModifyFloat interface { 14 // IModify 15 // Kind() string 16 // Value() float64 17 //} 18 // 19 //type Modify struct { 20 // // 例如: CEffectDamage/Amount 21 // key string 22 //} 23 // 24 //func (a *Modify) Valid() bool { 25 // return true 26 //} 27 // 28 //func (b *Modify) SetKey(val string) *Modify { 29 // b.key = val 30 // return b 31 //} 32 // 33 //func (m *Modify) Key() string { 34 // return m.key 35 //} 36 // 37 //// 修正浮点数 38 //type ModifyFormula struct { 39 // // 40 // Modify 41 // // 公式 42 // // Cmd arg0 arg1 43 // name string 44 // // 45 // args string 46 //} 47 // 48 //func (b *ModifyFormula) SetName(val string) *ModifyFormula { 49 // b.name = val 50 // return b 51 //} 52 // 53 //func (m *ModifyFormula) Name() string { 54 // return m.name 55 //} 56 // 57 //func (b *ModifyFormula) SetArgs(val string) *ModifyFormula { 58 // b.args = val 59 // return b 60 //} 61 // 62 //func (m *ModifyFormula) Args() string { 63 // return m.args 64 //} 65 // 66 //// 修正浮点数 67 //type ModifyFloat struct { 68 // // 69 // Modify 70 // // 修正类型 71 // // enums.ModifyFloatKind 72 // kind string 73 // // 修正值 74 // value float64 75 //} 76 // 77 //func (b *ModifyFloat) SetKind(val string) *ModifyFloat { 78 // b.kind = val 79 // return b 80 //} 81 // 82 //func (m *ModifyFloat) Kind() string { 83 // return m.kind 84 //} 85 // 86 //func (b *ModifyFloat) SetValue(val float64) *ModifyFloat { 87 // b.value = val 88 // return b 89 //} 90 // 91 //func (m *ModifyFloat) Value() float64 { 92 // return m.value 93 //} 94 // 95 //var formulas = map[string]func(x interface{}, cmd string, args ...string) interface{}{} 96 // 97 //func RegisterFormulas(key string, f func(x interface{}, cmd string, args ...string) interface{}) { 98 // formulas[key] = f 99 //} 100 // 101 //func CalculateModifyFormula(x float64, bonus IModifyFormula) (y float64) { 102 // name := bonus.Name() 103 // if name == "" { 104 // return x 105 // } 106 // f, has := formulas[name] 107 // if !has { 108 // return x 109 // } 110 // args := strings.Split(bonus.Args(), ",") 111 // y = f(x, name, args...).(float64) 112 // return 113 //} 114 // 115 //func CalculateModifyFloat(x float64, bonus IModifyFloat) (y float64) { 116 // switch bonus.Kind() { 117 // case "Add": 118 // x += bonus.Value() 119 // case "Sub": 120 // x -= bonus.Value() 121 // case "Mul": 122 // x *= bonus.Value() 123 // case "Div": 124 // x /= bonus.Value() 125 // case "Set": 126 // x = bonus.Value() 127 // //case enums.BonusFixFloatKind_Formula: 128 // // f, has := formulas[bonus.Formula] 129 // // if has { 130 // // x = f(x, params).(float64) 131 // // } 132 // } 133 // y = x 134 // return 135 //}