diff --git a/src/server/conf/mergeData/MergeDataCfg.go b/src/server/conf/mergeData/MergeDataCfg.go index 5f2d79cf..205b5d5d 100644 --- a/src/server/conf/mergeData/MergeDataCfg.go +++ b/src/server/conf/mergeData/MergeDataCfg.go @@ -473,13 +473,24 @@ func DynamicLev2(Lv int, EmitId int, Color1 string, Color2 string) int { return Lv } -func DynamicAdjust(EmitId int, Color string) int { +func DynamicAdjust(EmitId int, Color string, EnergyMul int) int { data, err := gamedata.GetDataByIntKey(CFG_NAME, EmitId) if err != nil { log.Debug("DynamicLev GetOne EmitId:%v not found", EmitId) return 0 } - DynamicLv := gamedata.GetStringValue(data, "Dynamic") + DynamicLv := "" + switch EnergyMul { + case 0: + DynamicLv = gamedata.GetStringValue(data, "Dynamic") + case 1, 2: + DynamicLv = gamedata.GetStringValue(data, "Dynamic1") + case 3, 4: + DynamicLv = gamedata.GetStringValue(data, "Dynamic2") + default: + DynamicLv = gamedata.GetStringValue(data, "Dynamic3") + } + if DynamicLv == "" { return 0 } @@ -497,13 +508,23 @@ func DynamicAdjust(EmitId int, Color string) int { return 0 } -func GetAdjust(EmitId int, Color string) int { +func GetAdjust(EmitId int, Color string, EnergyMul int) int { data, err := gamedata.GetDataByIntKey(CFG_NAME, EmitId) if err != nil { log.Debug("DynamicLev GetOne EmitId:%v not found", EmitId) return 0 } - AdjustLv := gamedata.GetStringValue(data, "Dynamic") + AdjustLv := "" + switch EnergyMul { + case 0: + AdjustLv = gamedata.GetStringValue(data, "Dynamic") + case 1, 2: + AdjustLv = gamedata.GetStringValue(data, "Dynamic1") + case 3, 4: + AdjustLv = gamedata.GetStringValue(data, "Dynamic2") + default: + AdjustLv = gamedata.GetStringValue(data, "Dynamic3") + } if AdjustLv == "" { return 0 } diff --git a/src/server/game/PlayerChessMod.go b/src/server/game/PlayerChessMod.go index 7e07467a..88f3765e 100644 --- a/src/server/game/PlayerChessMod.go +++ b/src/server/game/PlayerChessMod.go @@ -316,7 +316,7 @@ func checkChess(ChessId, EnergyMul int, Emit []int) bool { } } _, Max := getChesslvRange(EmitId, EnergyMul, false) - Adjust := mergeDataCfg.GetAdjust(EmitId, ChessIdColor) + Adjust := mergeDataCfg.GetAdjust(EmitId, ChessIdColor, EnergyMul) return ChessIdLv > Max-Adjust } func getChesslvRange(Emit int, EnergyMul int, IsCharge bool) (int, int) { diff --git a/src/server/game/UnitTest.go b/src/server/game/UnitTest.go index 6f46332e..41166570 100644 --- a/src/server/game/UnitTest.go +++ b/src/server/game/UnitTest.go @@ -263,7 +263,7 @@ func UnitOrder2(p *Player, Lv, EnergyMul int) float64 { Color := mergeDataCfg.GetColorById(v1) Lv := mergeDataCfg.GetLvById(v1) EmitId := order.GetEmitByColor(Emit, Color) - AdjustLv := mergeDataCfg.GetAdjust(EmitId, Color) + AdjustLv := mergeDataCfg.GetAdjust(EmitId, Color, EnergyMul) Energy += math.Pow(2, float64(Lv-1+AdjustLv)) } } diff --git a/src/server/game/mod/charge/Charge.go b/src/server/game/mod/charge/Charge.go index b937f41f..0e3d5155 100644 --- a/src/server/game/mod/charge/Charge.go +++ b/src/server/game/mod/charge/Charge.go @@ -329,7 +329,7 @@ func (c *ChargeMod) InitChessShop(Emit []int) { continue } ChessLv := mergeDataCfg.GetLvById(c) - DynamicLv := mergeDataCfg.GetAdjust(v, p) + DynamicLv := mergeDataCfg.GetAdjust(v, p, 0) ChessLv += DynamicLv Diamond := math.Round(math.Pow(2, float64(ChessLv)) / 18) RandList = append(RandList, &Rand{ChessId: c, Diamond: int(Diamond)}) diff --git a/src/server/game/mod/charge/ChargeFunc.go b/src/server/game/mod/charge/ChargeFunc.go index 48e7482e..cd243096 100644 --- a/src/server/game/mod/charge/ChargeFunc.go +++ b/src/server/game/mod/charge/ChargeFunc.go @@ -2,7 +2,6 @@ package charge import ( "math" - mergeDataCfg "server/conf/mergeData" ) func GetChessDiamond(Lv, Type int) int { @@ -22,41 +21,41 @@ func GetChessDiamond(Lv, Type int) int { return max(1, d) } -func getChessMainRand(Color string) []*Rand { - r := make([]*Rand, 0) - for i := 6; i <= 10; i++ { - Diamond := int(math.Pow(2, float64(i-1)) / 2.5) - ChessId := mergeDataCfg.GetChessIdByLvAndColor(i, Color) - if ChessId == 0 { - continue - } - r = append(r, &Rand{ChessId: ChessId, Diamond: Diamond}) - } - return r -} +// func getChessMainRand(Color string) []*Rand { +// r := make([]*Rand, 0) +// for i := 6; i <= 10; i++ { +// Diamond := int(math.Pow(2, float64(i-1)) / 2.5) +// ChessId := mergeDataCfg.GetChessIdByLvAndColor(i, Color) +// if ChessId == 0 { +// continue +// } +// r = append(r, &Rand{ChessId: ChessId, Diamond: Diamond}) +// } +// return r +// } -func getChessSecondaryRand(Color string) []*Rand { - r := make([]*Rand, 0) - for i := 5; i <= 9; i++ { - Diamond := int((math.Pow(2, float64(i-1)) / 2.5) * 2) - ChessId := mergeDataCfg.GetChessIdByLvAndColor(i, Color) - if ChessId == 0 { - continue - } - r = append(r, &Rand{ChessId: ChessId, Diamond: Diamond}) - } - return r -} +// func getChessSecondaryRand(Color string) []*Rand { +// r := make([]*Rand, 0) +// for i := 5; i <= 9; i++ { +// Diamond := int((math.Pow(2, float64(i-1)) / 2.5) * 2) +// ChessId := mergeDataCfg.GetChessIdByLvAndColor(i, Color) +// if ChessId == 0 { +// continue +// } +// r = append(r, &Rand{ChessId: ChessId, Diamond: Diamond}) +// } +// return r +// } -func getChessSubRand(Color string) []*Rand { - r := make([]*Rand, 0) - for i := 5; i <= 9; i++ { - Diamond := int(math.Pow(2, float64(i-1))/2.5 + 6.4) - ChessId := mergeDataCfg.GetChessIdByLvAndColor(i, Color) - if ChessId == 0 { - continue - } - r = append(r, &Rand{ChessId: ChessId, Diamond: Diamond}) - } - return r -} +// func getChessSubRand(Color string) []*Rand { +// r := make([]*Rand, 0) +// for i := 5; i <= 9; i++ { +// Diamond := int(math.Pow(2, float64(i-1))/2.5 + 6.4) +// ChessId := mergeDataCfg.GetChessIdByLvAndColor(i, Color) +// if ChessId == 0 { +// continue +// } +// r = append(r, &Rand{ChessId: ChessId, Diamond: Diamond}) +// } +// return r +// } diff --git a/src/server/game/mod/order/Order.go b/src/server/game/mod/order/Order.go index 5ca9e842..24356935 100644 --- a/src/server/game/mod/order/Order.go +++ b/src/server/game/mod/order/Order.go @@ -666,7 +666,7 @@ func (o *OrderMod) ChangeEnergyMul(lv int, Emit []int, EnergyMul int, ChessList Color := mergeDataCfg.GetColorById(vv) EmitId := GetEmitByColor(Emit, Color) _, Max := getChesslvRange(EmitId, EnergyMul, o.IsCharge) - Adjust := mergeDataCfg.GetAdjust(EmitId, Color) + Adjust := mergeDataCfg.GetAdjust(EmitId, Color, EnergyMul) if Lv >= EnergyMul+1 && Lv <= Max-Adjust { continue } diff --git a/src/server/game/mod/order/OrderFunc.go b/src/server/game/mod/order/OrderFunc.go index 4c0fa88f..41847480 100644 --- a/src/server/game/mod/order/OrderFunc.go +++ b/src/server/game/mod/order/OrderFunc.go @@ -90,13 +90,13 @@ type orderConfigInfo struct { } // 订单棋子数量 -func getChessNumRand(OrderN int) map[int]int { - return map[int]int{ - 1: int(70 - 2*OrderN), - 2: int(25 + OrderN), - 3: int(5 + OrderN), - } -} +// func getChessNumRand(OrderN int) map[int]int { +// return map[int]int{ +// 1: int(70 - 2*OrderN), +// 2: int(25 + OrderN), +// 3: int(5 + OrderN), +// } +// } // 根据上一个订单难度和系数 生成订单难度 func getOrderDiffRand(Lv, Diff, OrderN int) map[int]int { @@ -737,34 +737,34 @@ func (o *OrderMod) getChessLvFromConfig1(MinEnergy, MaxEnergy, MinLv, MaxLv, Las return rand } -func (o *OrderMod) getChessLvFromConfig2(MinEnergy, MaxEnergy, MinLv, MaxLv, LastEnergy int) []int { - rand := []int{} - for _, v := range orderCfgMap { - if MinEnergy >= v.Min && MaxEnergy <= v.Max { - for _, info := range v.Pool { - if MinLv <= info.lv && MaxLv >= info.lv { - rand = append(rand, info.lv) - } - } +// func (o *OrderMod) getChessLvFromConfig2(MinEnergy, MaxEnergy, MinLv, MaxLv, LastEnergy int) []int { +// rand := []int{} +// for _, v := range orderCfgMap { +// if MinEnergy >= v.Min && MaxEnergy <= v.Max { +// for _, info := range v.Pool { +// if MinLv <= info.lv && MaxLv >= info.lv { +// rand = append(rand, info.lv) +// } +// } - } - } - return rand -} -func (o *OrderMod) getChessLvFromConfig3(MinEnergy, MaxEnergy, MinLv, MaxLv, LastEnergy int) []int { - rand := []int{} - for _, v := range orderCfgMap { - if MinEnergy >= v.Min && MaxEnergy <= v.Max { - for _, info := range v.Pool { - if MinLv <= info.lv && MaxLv >= info.lv && LastEnergy+info.energy <= MaxEnergy && LastEnergy+info.energy >= MinEnergy { - rand = append(rand, info.lv) - } - } +// } +// } +// return rand +// } +// func (o *OrderMod) getChessLvFromConfig3(MinEnergy, MaxEnergy, MinLv, MaxLv, LastEnergy int) []int { +// rand := []int{} +// for _, v := range orderCfgMap { +// if MinEnergy >= v.Min && MaxEnergy <= v.Max { +// for _, info := range v.Pool { +// if MinLv <= info.lv && MaxLv >= info.lv && LastEnergy+info.energy <= MaxEnergy && LastEnergy+info.energy >= MinEnergy { +// rand = append(rand, info.lv) +// } +// } - } - } - return rand -} +// } +// } +// return rand +// } func (o *OrderMod) ChessPoolChess(Color string, Lv int) bool { for _, v := range o.ChessPool2[Color] { @@ -949,19 +949,19 @@ func initReflectChess(Emits []int, EnergyMul int) { Start = ChessMinLv End = ChessMinLv + (ChessMaxLv-ChessMinLv+1)/3 - 1 for _, v := range Product { - Adjust := mergeDataCfg.DynamicAdjust(Emit, v) + Adjust := mergeDataCfg.DynamicAdjust(Emit, v, EnergyMul) initReflectChess2(v, Start, End, DIFF_LOW, Adjust) } Start = ChessMinLv + (ChessMaxLv-ChessMinLv+1)/3 End = ChessMinLv + (ChessMaxLv-ChessMinLv+1)/3*2 - 1 for _, v := range Product { - Adjust := mergeDataCfg.DynamicAdjust(Emit, v) + Adjust := mergeDataCfg.DynamicAdjust(Emit, v, EnergyMul) initReflectChess2(v, Start, End, DIFF_MID, Adjust) } Start = ChessMinLv + (ChessMaxLv-ChessMinLv+1)/3*2 End = ChessMaxLv for _, v := range Product { - Adjust := mergeDataCfg.DynamicAdjust(Emit, v) + Adjust := mergeDataCfg.DynamicAdjust(Emit, v, EnergyMul) initReflectChess2(v, Start, End, DIFF_HIGH, Adjust) } }