动态难度修改
This commit is contained in:
parent
808e3ebf1b
commit
0dc7af2515
@ -473,13 +473,24 @@ func DynamicLev2(Lv int, EmitId int, Color1 string, Color2 string) int {
|
|||||||
return Lv
|
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)
|
data, err := gamedata.GetDataByIntKey(CFG_NAME, EmitId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Debug("DynamicLev GetOne EmitId:%v not found", EmitId)
|
log.Debug("DynamicLev GetOne EmitId:%v not found", EmitId)
|
||||||
return 0
|
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 == "" {
|
if DynamicLv == "" {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
@ -497,13 +508,23 @@ func DynamicAdjust(EmitId int, Color string) int {
|
|||||||
return 0
|
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)
|
data, err := gamedata.GetDataByIntKey(CFG_NAME, EmitId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Debug("DynamicLev GetOne EmitId:%v not found", EmitId)
|
log.Debug("DynamicLev GetOne EmitId:%v not found", EmitId)
|
||||||
return 0
|
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 == "" {
|
if AdjustLv == "" {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|||||||
@ -316,7 +316,7 @@ func checkChess(ChessId, EnergyMul int, Emit []int) bool {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
_, Max := getChesslvRange(EmitId, EnergyMul, false)
|
_, Max := getChesslvRange(EmitId, EnergyMul, false)
|
||||||
Adjust := mergeDataCfg.GetAdjust(EmitId, ChessIdColor)
|
Adjust := mergeDataCfg.GetAdjust(EmitId, ChessIdColor, EnergyMul)
|
||||||
return ChessIdLv > Max-Adjust
|
return ChessIdLv > Max-Adjust
|
||||||
}
|
}
|
||||||
func getChesslvRange(Emit int, EnergyMul int, IsCharge bool) (int, int) {
|
func getChesslvRange(Emit int, EnergyMul int, IsCharge bool) (int, int) {
|
||||||
|
|||||||
@ -263,7 +263,7 @@ func UnitOrder2(p *Player, Lv, EnergyMul int) float64 {
|
|||||||
Color := mergeDataCfg.GetColorById(v1)
|
Color := mergeDataCfg.GetColorById(v1)
|
||||||
Lv := mergeDataCfg.GetLvById(v1)
|
Lv := mergeDataCfg.GetLvById(v1)
|
||||||
EmitId := order.GetEmitByColor(Emit, Color)
|
EmitId := order.GetEmitByColor(Emit, Color)
|
||||||
AdjustLv := mergeDataCfg.GetAdjust(EmitId, Color)
|
AdjustLv := mergeDataCfg.GetAdjust(EmitId, Color, EnergyMul)
|
||||||
Energy += math.Pow(2, float64(Lv-1+AdjustLv))
|
Energy += math.Pow(2, float64(Lv-1+AdjustLv))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -329,7 +329,7 @@ func (c *ChargeMod) InitChessShop(Emit []int) {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
ChessLv := mergeDataCfg.GetLvById(c)
|
ChessLv := mergeDataCfg.GetLvById(c)
|
||||||
DynamicLv := mergeDataCfg.GetAdjust(v, p)
|
DynamicLv := mergeDataCfg.GetAdjust(v, p, 0)
|
||||||
ChessLv += DynamicLv
|
ChessLv += DynamicLv
|
||||||
Diamond := math.Round(math.Pow(2, float64(ChessLv)) / 18)
|
Diamond := math.Round(math.Pow(2, float64(ChessLv)) / 18)
|
||||||
RandList = append(RandList, &Rand{ChessId: c, Diamond: int(Diamond)})
|
RandList = append(RandList, &Rand{ChessId: c, Diamond: int(Diamond)})
|
||||||
|
|||||||
@ -2,7 +2,6 @@ package charge
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"math"
|
"math"
|
||||||
mergeDataCfg "server/conf/mergeData"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func GetChessDiamond(Lv, Type int) int {
|
func GetChessDiamond(Lv, Type int) int {
|
||||||
@ -22,41 +21,41 @@ func GetChessDiamond(Lv, Type int) int {
|
|||||||
return max(1, d)
|
return max(1, d)
|
||||||
}
|
}
|
||||||
|
|
||||||
func getChessMainRand(Color string) []*Rand {
|
// func getChessMainRand(Color string) []*Rand {
|
||||||
r := make([]*Rand, 0)
|
// r := make([]*Rand, 0)
|
||||||
for i := 6; i <= 10; i++ {
|
// for i := 6; i <= 10; i++ {
|
||||||
Diamond := int(math.Pow(2, float64(i-1)) / 2.5)
|
// Diamond := int(math.Pow(2, float64(i-1)) / 2.5)
|
||||||
ChessId := mergeDataCfg.GetChessIdByLvAndColor(i, Color)
|
// ChessId := mergeDataCfg.GetChessIdByLvAndColor(i, Color)
|
||||||
if ChessId == 0 {
|
// if ChessId == 0 {
|
||||||
continue
|
// continue
|
||||||
}
|
// }
|
||||||
r = append(r, &Rand{ChessId: ChessId, Diamond: Diamond})
|
// r = append(r, &Rand{ChessId: ChessId, Diamond: Diamond})
|
||||||
}
|
// }
|
||||||
return r
|
// return r
|
||||||
}
|
// }
|
||||||
|
|
||||||
func getChessSecondaryRand(Color string) []*Rand {
|
// func getChessSecondaryRand(Color string) []*Rand {
|
||||||
r := make([]*Rand, 0)
|
// r := make([]*Rand, 0)
|
||||||
for i := 5; i <= 9; i++ {
|
// for i := 5; i <= 9; i++ {
|
||||||
Diamond := int((math.Pow(2, float64(i-1)) / 2.5) * 2)
|
// Diamond := int((math.Pow(2, float64(i-1)) / 2.5) * 2)
|
||||||
ChessId := mergeDataCfg.GetChessIdByLvAndColor(i, Color)
|
// ChessId := mergeDataCfg.GetChessIdByLvAndColor(i, Color)
|
||||||
if ChessId == 0 {
|
// if ChessId == 0 {
|
||||||
continue
|
// continue
|
||||||
}
|
// }
|
||||||
r = append(r, &Rand{ChessId: ChessId, Diamond: Diamond})
|
// r = append(r, &Rand{ChessId: ChessId, Diamond: Diamond})
|
||||||
}
|
// }
|
||||||
return r
|
// return r
|
||||||
}
|
// }
|
||||||
|
|
||||||
func getChessSubRand(Color string) []*Rand {
|
// func getChessSubRand(Color string) []*Rand {
|
||||||
r := make([]*Rand, 0)
|
// r := make([]*Rand, 0)
|
||||||
for i := 5; i <= 9; i++ {
|
// for i := 5; i <= 9; i++ {
|
||||||
Diamond := int(math.Pow(2, float64(i-1))/2.5 + 6.4)
|
// Diamond := int(math.Pow(2, float64(i-1))/2.5 + 6.4)
|
||||||
ChessId := mergeDataCfg.GetChessIdByLvAndColor(i, Color)
|
// ChessId := mergeDataCfg.GetChessIdByLvAndColor(i, Color)
|
||||||
if ChessId == 0 {
|
// if ChessId == 0 {
|
||||||
continue
|
// continue
|
||||||
}
|
// }
|
||||||
r = append(r, &Rand{ChessId: ChessId, Diamond: Diamond})
|
// r = append(r, &Rand{ChessId: ChessId, Diamond: Diamond})
|
||||||
}
|
// }
|
||||||
return r
|
// return r
|
||||||
}
|
// }
|
||||||
|
|||||||
@ -666,7 +666,7 @@ func (o *OrderMod) ChangeEnergyMul(lv int, Emit []int, EnergyMul int, ChessList
|
|||||||
Color := mergeDataCfg.GetColorById(vv)
|
Color := mergeDataCfg.GetColorById(vv)
|
||||||
EmitId := GetEmitByColor(Emit, Color)
|
EmitId := GetEmitByColor(Emit, Color)
|
||||||
_, Max := getChesslvRange(EmitId, EnergyMul, o.IsCharge)
|
_, Max := getChesslvRange(EmitId, EnergyMul, o.IsCharge)
|
||||||
Adjust := mergeDataCfg.GetAdjust(EmitId, Color)
|
Adjust := mergeDataCfg.GetAdjust(EmitId, Color, EnergyMul)
|
||||||
if Lv >= EnergyMul+1 && Lv <= Max-Adjust {
|
if Lv >= EnergyMul+1 && Lv <= Max-Adjust {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|||||||
@ -90,13 +90,13 @@ type orderConfigInfo struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 订单棋子数量
|
// 订单棋子数量
|
||||||
func getChessNumRand(OrderN int) map[int]int {
|
// func getChessNumRand(OrderN int) map[int]int {
|
||||||
return map[int]int{
|
// return map[int]int{
|
||||||
1: int(70 - 2*OrderN),
|
// 1: int(70 - 2*OrderN),
|
||||||
2: int(25 + OrderN),
|
// 2: int(25 + OrderN),
|
||||||
3: int(5 + OrderN),
|
// 3: int(5 + OrderN),
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
// 根据上一个订单难度和系数 生成订单难度
|
// 根据上一个订单难度和系数 生成订单难度
|
||||||
func getOrderDiffRand(Lv, Diff, OrderN int) map[int]int {
|
func getOrderDiffRand(Lv, Diff, OrderN int) map[int]int {
|
||||||
@ -737,34 +737,34 @@ func (o *OrderMod) getChessLvFromConfig1(MinEnergy, MaxEnergy, MinLv, MaxLv, Las
|
|||||||
return rand
|
return rand
|
||||||
}
|
}
|
||||||
|
|
||||||
func (o *OrderMod) getChessLvFromConfig2(MinEnergy, MaxEnergy, MinLv, MaxLv, LastEnergy int) []int {
|
// func (o *OrderMod) getChessLvFromConfig2(MinEnergy, MaxEnergy, MinLv, MaxLv, LastEnergy int) []int {
|
||||||
rand := []int{}
|
// rand := []int{}
|
||||||
for _, v := range orderCfgMap {
|
// for _, v := range orderCfgMap {
|
||||||
if MinEnergy >= v.Min && MaxEnergy <= v.Max {
|
// if MinEnergy >= v.Min && MaxEnergy <= v.Max {
|
||||||
for _, info := range v.Pool {
|
// for _, info := range v.Pool {
|
||||||
if MinLv <= info.lv && MaxLv >= info.lv {
|
// if MinLv <= info.lv && MaxLv >= info.lv {
|
||||||
rand = append(rand, info.lv)
|
// rand = append(rand, info.lv)
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
return rand
|
// return rand
|
||||||
}
|
// }
|
||||||
func (o *OrderMod) getChessLvFromConfig3(MinEnergy, MaxEnergy, MinLv, MaxLv, LastEnergy int) []int {
|
// func (o *OrderMod) getChessLvFromConfig3(MinEnergy, MaxEnergy, MinLv, MaxLv, LastEnergy int) []int {
|
||||||
rand := []int{}
|
// rand := []int{}
|
||||||
for _, v := range orderCfgMap {
|
// for _, v := range orderCfgMap {
|
||||||
if MinEnergy >= v.Min && MaxEnergy <= v.Max {
|
// if MinEnergy >= v.Min && MaxEnergy <= v.Max {
|
||||||
for _, info := range v.Pool {
|
// for _, info := range v.Pool {
|
||||||
if MinLv <= info.lv && MaxLv >= info.lv && LastEnergy+info.energy <= MaxEnergy && LastEnergy+info.energy >= MinEnergy {
|
// if MinLv <= info.lv && MaxLv >= info.lv && LastEnergy+info.energy <= MaxEnergy && LastEnergy+info.energy >= MinEnergy {
|
||||||
rand = append(rand, info.lv)
|
// rand = append(rand, info.lv)
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
return rand
|
// return rand
|
||||||
}
|
// }
|
||||||
|
|
||||||
func (o *OrderMod) ChessPoolChess(Color string, Lv int) bool {
|
func (o *OrderMod) ChessPoolChess(Color string, Lv int) bool {
|
||||||
for _, v := range o.ChessPool2[Color] {
|
for _, v := range o.ChessPool2[Color] {
|
||||||
@ -949,19 +949,19 @@ func initReflectChess(Emits []int, EnergyMul int) {
|
|||||||
Start = ChessMinLv
|
Start = ChessMinLv
|
||||||
End = ChessMinLv + (ChessMaxLv-ChessMinLv+1)/3 - 1
|
End = ChessMinLv + (ChessMaxLv-ChessMinLv+1)/3 - 1
|
||||||
for _, v := range Product {
|
for _, v := range Product {
|
||||||
Adjust := mergeDataCfg.DynamicAdjust(Emit, v)
|
Adjust := mergeDataCfg.DynamicAdjust(Emit, v, EnergyMul)
|
||||||
initReflectChess2(v, Start, End, DIFF_LOW, Adjust)
|
initReflectChess2(v, Start, End, DIFF_LOW, Adjust)
|
||||||
}
|
}
|
||||||
Start = ChessMinLv + (ChessMaxLv-ChessMinLv+1)/3
|
Start = ChessMinLv + (ChessMaxLv-ChessMinLv+1)/3
|
||||||
End = ChessMinLv + (ChessMaxLv-ChessMinLv+1)/3*2 - 1
|
End = ChessMinLv + (ChessMaxLv-ChessMinLv+1)/3*2 - 1
|
||||||
for _, v := range Product {
|
for _, v := range Product {
|
||||||
Adjust := mergeDataCfg.DynamicAdjust(Emit, v)
|
Adjust := mergeDataCfg.DynamicAdjust(Emit, v, EnergyMul)
|
||||||
initReflectChess2(v, Start, End, DIFF_MID, Adjust)
|
initReflectChess2(v, Start, End, DIFF_MID, Adjust)
|
||||||
}
|
}
|
||||||
Start = ChessMinLv + (ChessMaxLv-ChessMinLv+1)/3*2
|
Start = ChessMinLv + (ChessMaxLv-ChessMinLv+1)/3*2
|
||||||
End = ChessMaxLv
|
End = ChessMaxLv
|
||||||
for _, v := range Product {
|
for _, v := range Product {
|
||||||
Adjust := mergeDataCfg.DynamicAdjust(Emit, v)
|
Adjust := mergeDataCfg.DynamicAdjust(Emit, v, EnergyMul)
|
||||||
initReflectChess2(v, Start, End, DIFF_HIGH, Adjust)
|
initReflectChess2(v, Start, End, DIFF_HIGH, Adjust)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user