修改订单逻辑

This commit is contained in:
hahwu 2025-01-16 14:40:55 +08:00
parent 555d46e623
commit e3870ec10a
2 changed files with 20 additions and 29 deletions

View File

@ -111,17 +111,9 @@ func (cb *ChessBorad) ComposeChess(id int) (int, error) {
}
ChessType := mergeDataCfg.GetTypeById(id)
if ChessType == "Emitter" {
_, ok := cb.EmitList[id+1]
if ok {
cb.EmitList[id+1]++
} else {
cb.EmitList[id+1] = 1
}
if cb.EmitList[id] > 2 {
cb.EmitList[id] -= 2
} else {
delete(cb.EmitList, id)
}
cb.EmitList[id]--
cb.EmitList[id]--
}
id++
newList = append(newList, id)
@ -147,12 +139,7 @@ func (cb *ChessBorad) AddChess(id int) error {
}
ChessType := mergeDataCfg.GetTypeById(id)
if ChessType == "Emitter" {
_, ok := cb.EmitList[id]
if ok {
cb.EmitList[id]++
} else {
cb.EmitList[id] = 1
}
}
cb.ChessList = append(cb.ChessList, id)
return nil
@ -167,12 +154,7 @@ func (cb *ChessBorad) BuyChess(id int) (int, error) {
cb.ChessList = append(cb.ChessList, id)
ChessType := mergeDataCfg.GetTypeById(id)
if ChessType == "Emitter" {
_, ok := cb.EmitList[id]
if ok {
cb.EmitList[id]++
} else {
cb.EmitList[id] = 1
}
}
return CfgRecord.SellNum, nil
}
@ -235,6 +217,7 @@ func (cb *ChessBorad) RemoveChess(Id int) error {
func (cb *ChessBorad) GetEmitList() []int {
result := make([]int, 0, len(cb.EmitList))
EM := make(map[string]int)
for k, v := range cb.EmitList {
EmitID := mergeDataCfg.GetEmitId(k)
if EmitID == "" {
@ -243,9 +226,16 @@ func (cb *ChessBorad) GetEmitList() []int {
if cb.Retire[EmitID] == 2 {
continue
}
if v > 0 {
result = append(result, k)
EmitType := mergeDataCfg.GetEmitType(k)
if EmitType == "sub" {
continue
}
if v > 0 {
EM[EmitID] = max(EM[EmitID], k)
}
}
for _, v := range EM {
result = append(result, v)
}
return result
}

View File

@ -313,8 +313,6 @@ func getChessFromPoolByDiff(o *OrderMod, Diff int, Emit []int, EnergyMul int) in
EmitId := getEmitId(o, Emit)
EmitChessId := getEmitBySeries(Emit, EmitId)
ColorRand := mergeDataCfg.GetEmitProduceType(EmitChessId)
Color := GoUtil.RandStringSlice(ColorRand)
// 从棋子池中获取棋子
MinChessId := 0
for i, chess := range o.ChessPool {
@ -337,12 +335,14 @@ func getChessFromPoolByDiff(o *OrderMod, Diff int, Emit []int, EnergyMul int) in
if MinChessId != 0 {
MinChessColor := mergeDataCfg.GetColorById(MinChessId)
NewEmitChessId := getEmitByColor(Emit, MinChessColor)
ColorRand := mergeDataCfg.GetEmitProduceType(NewEmitChessId)
ChessMinLv, ChessMaxLv := getChesslvRange(NewEmitChessId, EnergyMul)
NewLev := getChessLv(ChessMinLv, ChessMaxLv, Diff)
MinChessLv := mergeDataCfg.GetLvById(MinChessId)
NewLev2 := adjustLev(NewLev, EnergyMul)
NewLev2 := mergeDataCfg.DynamicLev2(NewLev, NewEmitChessId, ColorRand[0], MinChessColor)
NewLev3 := adjustLev(NewLev2, EnergyMul)
o.ChessPool = GoUtil.DeleteEleByValue(o.ChessPool, MinChessId)
for i := NewLev2; i < MinChessLv; i++ {
for i := NewLev3; i < MinChessLv; i++ {
ChessId2 := mergeDataCfg.GetChessIdByLvAndColor(i, MinChessColor)
if ChessId2 != 0 {
o.ChessPool = append(o.ChessPool, ChessId2)
@ -351,6 +351,7 @@ func getChessFromPoolByDiff(o *OrderMod, Diff int, Emit []int, EnergyMul int) in
Chess := mergeDataCfg.GetChessIdByLvAndColor(NewLev2, MinChessColor)
return Chess
}
Color := GoUtil.RandStringSlice(ColorRand)
ChessMinLv, ChessMaxLv := getChesslvRange(EmitChessId, EnergyMul)
NewLev := getChessLv(ChessMinLv, ChessMaxLv, Diff)
NewLev1 := mergeDataCfg.DynamicLev(NewLev, EmitChessId, Color)