diff --git a/src/server/game/mod/chess/Chess.go b/src/server/game/mod/chess/Chess.go index 3c42a208..9a8e2958 100644 --- a/src/server/game/mod/chess/Chess.go +++ b/src/server/game/mod/chess/Chess.go @@ -300,6 +300,19 @@ func (cb *ChessBorad) emitListToSlice(retireFilter bool) []int { } EM[EmitID] = max(EM[EmitID], k) } + for _, v := range cb.ChessBag.List { + EmitID := mergeDataCfg.GetEmitId(v.ChessId) + if EmitID == "" { + continue + } + if retireFilter && cb.Retire[EmitID] >= EMIT_RETIRE_START { + continue + } + if mergeDataCfg.GetEmitType(v.ChessId) == "sub" { + continue + } + EM[EmitID] = max(EM[EmitID], (v.ChessId)) + } result := make([]int, 0, len(EM)) for _, v := range EM { result = append(result, v) @@ -729,8 +742,8 @@ func (cb *ChessBorad) GetRetireReward(Id string) ([]*item.Item, error) { func (cb *ChessBorad) GetRetireProduceColor() []string { color := make([]string, 0, len(cb.Retire)) for k, v := range cb.Retire { - if v == EMIT_RETIRE_ING { - color = append(color, mergeDataCfg.GetEmitTypeByColor(k)) + if v >= EMIT_RETIRE_ING { + color = append(color, mergeDataCfg.GetEmitProduce(k)...) } } return color diff --git a/src/server/test/order_test.go b/src/server/test/order_test.go index a6941e28..f55be88d 100644 --- a/src/server/test/order_test.go +++ b/src/server/test/order_test.go @@ -52,3 +52,17 @@ func TestInitOrderItem(t *testing.T) { p1.InitOrderItem() fmt.Printf("order item:%v", OrderMod.OrderList[1].Items) } + +func TestHighOrder(t *testing.T) { + p1 := new(game.Player) + p1.InitPlayer("3625212") + OrderMod := p1.GetOrderMod() + OrderMod.OrderList = make(map[int]order.Order) + OrderMod.OrderList[1] = order.Order{ + MergeId: []int{1346}, + } + p1.AddHighOrder() + p1.AddHighOrder2() + p1.InitOrderItem() + fmt.Printf("order item:%v", OrderMod.OrderList[1].Items) +}