优化订单提交

This commit is contained in:
hahwu 2026-01-23 11:43:44 +08:00
parent e622273a73
commit 6acc529698
2 changed files with 39 additions and 1 deletions

View File

@ -339,14 +339,37 @@ func (cb *ChessBorad) GetEmitList() []int {
// 完成订单 移除棋子
func (cb *ChessBorad) FinishOrder(ChessId []int) error {
unlockChessList := cb.GetUnlockChessList()
unlockChessMap := make(map[int]int)
for _, v := range unlockChessList {
unlockChessMap[v]++
}
boardChess := []int{}
BagChess := []int{}
for _, v := range ChessId {
if unlockChessMap[v] > 0 {
unlockChessMap[v]--
boardChess = append(boardChess, v)
} else {
BagChess = append(BagChess, v)
}
}
for _, v := range boardChess {
err := cb.FinishOrderChess(v)
if err != nil {
return err
}
}
for _, v := range BagChess {
err := cb.FinishOrderChessByBag(v)
if err != nil {
return err
}
}
return nil
}
func (cb *ChessBorad) FinishOrderChess(Chess int) error {
for k, v := range cb.ChessList {
if v == Chess {
@ -354,13 +377,17 @@ func (cb *ChessBorad) FinishOrderChess(Chess int) error {
return nil
}
}
return fmt.Errorf("order finish board chess id%d not exist", Chess)
}
func (cb *ChessBorad) FinishOrderChessByBag(Chess int) error {
for k, v := range cb.ChessBag.List {
if v.ChessId == Chess {
cb.ChessBag.List[k] = ChessBagGrid{}
return nil
}
}
return errors.New("order finish chess id not exist")
return fmt.Errorf("order finish bag chess id%d not exist", Chess)
}
// 棋子转换

View File

@ -20,3 +20,14 @@ func TestOrderStart(t *testing.T) {
star = int(float64(star)*float64(order_facotry)/1000+0.5) * 10
fmt.Printf("star is %d", star)
}
func TestOrderFinish(t *testing.T) {
p1 := new(game.Player)
p1.InitPlayer("3625212")
game.G_GameLogicPtr.SetPlayer(p1)
ChessMod := p1.GetChessMod()
err := ChessMod.FinishOrder([]int{1, 2, 3})
if err != nil {
t.Errorf("finish order failed:%v", err)
}
}