优化订单提交
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 {
|
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 {
|
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)
|
err := cb.FinishOrderChess(v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
for _, v := range BagChess {
|
||||||
|
err := cb.FinishOrderChessByBag(v)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cb *ChessBorad) FinishOrderChess(Chess int) error {
|
func (cb *ChessBorad) FinishOrderChess(Chess int) error {
|
||||||
for k, v := range cb.ChessList {
|
for k, v := range cb.ChessList {
|
||||||
if v == Chess {
|
if v == Chess {
|
||||||
@ -354,13 +377,17 @@ func (cb *ChessBorad) FinishOrderChess(Chess int) error {
|
|||||||
return nil
|
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 {
|
for k, v := range cb.ChessBag.List {
|
||||||
if v.ChessId == Chess {
|
if v.ChessId == Chess {
|
||||||
cb.ChessBag.List[k] = ChessBagGrid{}
|
cb.ChessBag.List[k] = ChessBagGrid{}
|
||||||
return nil
|
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
|
star = int(float64(star)*float64(order_facotry)/1000+0.5) * 10
|
||||||
fmt.Printf("star is %d", star)
|
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