优化订单提交
This commit is contained in:
parent
e622273a73
commit
6acc529698
@ -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)
|
||||
}
|
||||
|
||||
// 棋子转换
|
||||
|
||||
@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user