fix problem in kong&&pong

This commit is contained in:
2020-03-20 14:14:34 +08:00
parent 60a1a2d84a
commit bcfbc8425d
+37 -3
View File
@@ -59,18 +59,23 @@ func (m *MahjongManager) gameLoop(gameRecvCh chan message.GameMsgRecv, gameSendC
case message.Pong:
m.handlePong(msg)
case message.ExposedKong:
m.handleExposedKong(msg)
case message.ConcealedKong:
m.handleConcealedKong(msg)
case message.AddedKong:
m.handleAddedKong(msg)
case message.Win:
m.handleWin(msg)
case message.Cancel:
m.handleCancel(msg)
}
// TODO:main logic here
}
}
func (m *MahjongManager) handleStart(msg message.GameMsgRecv) {
m.dealTile()
//m.dealTile()
m.dealTileTest()
availableActions := make([]int, 0)
availableActions = append(availableActions, message.Deal)
newTile := m.wall.FrontDraw()
@@ -118,7 +123,7 @@ func (m *MahjongManager) handleDiscard(msg message.GameMsgRecv) {
if m.rules.CanWin(hand, shown, msg.Tile) {
//send msg to this potential winner
msgSend := message.GameMsgSend{
MsgType: -1,
MsgType: message.GameMsgType,
TableOrder: -1,
CurrentTurn: (currentOrder + i) % 4,
CurrentTile: msg.Tile,
@@ -302,6 +307,7 @@ func (m *MahjongManager) handleExposedKong(msg message.GameMsgRecv) {
//为玩家发牌
newTile := m.wall.BackDraw()
m.playerTile[msg.TableOrder].HandTiles = append(m.playerTile[msg.TableOrder].HandTiles, newTile)
model.SortTiles(m.playerTile[msg.TableOrder].HandTiles)
//发送消息
msgSend := message.GameMsgSend{
MsgType: message.GameMsgType,
@@ -331,6 +337,7 @@ func (m *MahjongManager) handleConcealedKong(msg message.GameMsgRecv) {
//为玩家发牌
newTile := m.wall.BackDraw()
m.playerTile[msg.TableOrder].HandTiles = append(m.playerTile[msg.TableOrder].HandTiles, newTile)
model.SortTiles(m.playerTile[msg.TableOrder].HandTiles)
//发送消息
msgSend := message.GameMsgSend{
MsgType: message.GameMsgType,
@@ -363,6 +370,7 @@ func (m *MahjongManager) handleAddedKong(msg message.GameMsgRecv) {
//发牌
newTile := m.wall.BackDraw()
m.playerTile[msg.TableOrder].HandTiles = append(m.playerTile[msg.TableOrder].HandTiles, newTile)
model.SortTiles(m.playerTile[msg.TableOrder].HandTiles)
//发送消息
msgSend := message.GameMsgSend{
MsgType: message.GameMsgType,
@@ -436,6 +444,32 @@ func (m *MahjongManager) dealTile() {
m.playerTile[2].HandTiles = append(m.playerTile[2].HandTiles, m.wall.FrontDraw())
m.playerTile[3].HandTiles = append(m.playerTile[3].HandTiles, m.wall.FrontDraw())
for i := 0; i <= 3; i++ {
m.playerTile[i].SortHand()
}
}
func (m *MahjongManager) dealTileTest() {
for i:=1;i<=6;i++{
m.playerTile[0].HandTiles = append(m.playerTile[0].HandTiles, model.Tile{Suit:model.Character,Number:i})
m.playerTile[1].HandTiles = append(m.playerTile[1].HandTiles, model.Tile{Suit:model.Character,Number:i},model.Tile{Suit:model.Character,Number:i})
}
for i:=1;i<=4;i++{
m.playerTile[0].HandTiles = append(m.playerTile[0].HandTiles, model.Tile{Suit:model.Bamboo,Number:i})
m.playerTile[2].HandTiles = append(m.playerTile[2].HandTiles, model.Tile{Suit:model.Bamboo,Number:i},model.Tile{Suit:model.Bamboo,Number:i},model.Tile{Suit:model.Bamboo,Number:i})
}
m.playerTile[0].HandTiles = append(m.playerTile[0].HandTiles, model.Tile{Suit:model.Dragon,Number:1})
m.playerTile[0].HandTiles = append(m.playerTile[0].HandTiles, model.Tile{Suit:model.Dragon,Number:1})
m.playerTile[0].HandTiles = append(m.playerTile[0].HandTiles, model.Tile{Suit:model.Character,Number:1})
m.playerTile[1].HandTiles = append(m.playerTile[1].HandTiles, model.Tile{Suit:model.Dragon,Number:1})
m.playerTile[2].HandTiles = append(m.playerTile[2].HandTiles, model.Tile{Suit:model.Dragon,Number:1})
for i:=0;i<13;i++{
m.playerTile[3].HandTiles = append(m.playerTile[3].HandTiles, m.wall.FrontDraw())
}
for i := 0; i <= 3; i++ {
m.playerTile[i].SortHand()
}