[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [kajongg/sid] src: Server.declareKong: use meld, not tiles for client/server messages
From: Wolfgang Rohdewald <wolfgang () rohdewald ! de>
Date: 2013-10-31 21:21:07
Message-ID: E1Vbzfv-0002lj-TO () scm ! kde ! org
[Download RAW message or body]
Git commit df3fd785f0360318e30f22460de4805d8f26b329 by Wolfgang Rohdewald.
Committed on 29/10/2013 at 22:47.
Pushed by wrohdewald into branch 'sid'.
Server.declareKong: use meld, not tiles for client/server messages
M +2 -1 src/humanclient.py
M +5 -6 src/message.py
M +1 -1 src/player.py
M +11 -11 src/server.py
http://commits.kde.org/kajongg/df3fd785f0360318e30f22460de4805d8f26b329
diff --git a/src/humanclient.py b/src/humanclient.py
index f4c67f4..c537303 100644
--- a/src/humanclient.py
+++ b/src/humanclient.py
@@ -415,7 +415,8 @@ class HumanClient(Client):
@staticmethod
def __loginFailed(dummy):
"""as the name says"""
- Internal.field.startingGame = False
+ if Internal.field:
+ Internal.field.startingGame = False
def isRobotClient(self):
"""avoid using isinstance, it would import too much for kajonggserver"""
diff --git a/src/message.py b/src/message.py
index 7f485e6..a49e4ab 100644
--- a/src/message.py
+++ b/src/message.py
@@ -532,13 +532,13 @@ class MessageDeclaredKong(ServerMessage):
"""mirror the action locally"""
prompts = None
if not client.thatWasMe(move.player):
- if len(move.tiles) != 4 or move.tiles[0].istitle():
+ if len(move.meld) != 4 or move.meld[0].istitle():
# do not do this when adding a 4th tile to an exposed pung
- move.player.showConcealedTiles(move.tiles)
+ move.player.showConcealedTiles(move.meld)
else:
- move.player.showConcealedTiles(move.tiles[3:4])
+ move.player.showConcealedTiles(move.meld[3:4])
prompts = [Message.NoClaim, Message.MahJongg]
- move.exposedMeld = move.player.exposeMeld(move.tiles)
+ move.exposedMeld = move.player.exposeMeld(move.meld)
if prompts:
return client.ask(move, prompts)
@@ -547,8 +547,7 @@ class MessageRobbedTheKong(NotifyAtOnceMessage, ServerMessage):
def clientAction(self, client, move):
"""mirror the action locally"""
prevMove = client.game.lastMoves(only=[Message.DeclaredKong]).next()
- prevKong = Meld(prevMove.tiles)
- prevMove.player.robTile(prevKong[0].upper())
+ prevMove.player.robTile(prevMove.meld[0].upper())
move.player.lastSource = 'k'
client.game.addCsvTag('robbedKong', forAllPlayers=True)
diff --git a/src/player.py b/src/player.py
index 535f514..89ced5f 100644
--- a/src/player.py
+++ b/src/player.py
@@ -543,7 +543,7 @@ class PlayingPlayer(Player):
game = self.game
robbableTile = withDiscard = None
if move.message == Message.DeclaredKong:
- withDiscard = move.tiles[0].upper()
+ withDiscard = move.meld[0].upper()
if move.player != self:
robbableTile = move.exposedMeld[1] # we want it capitalized for a hidden Kong
elif move.message == Message.AskForClaims:
diff --git a/src/server.py b/src/server.py
index 012a498..3c610d6 100644
--- a/src/server.py
+++ b/src/server.py
@@ -625,7 +625,7 @@ class ServerTable(Table):
discardingPlayer = self.game.activePlayer
hasTiles.remove(lastDiscard)
meld = Meld(meldTiles)
- if len(meldTiles) != 4 and meld.meldType not in [PAIR, PUNG, KONG, CHOW]:
+ if len(meld) != 4 and meld.meldType not in [PAIR, PUNG, KONG, CHOW]:
msg = m18nE('%1 wrongly said %2 for meld %3') + 'x:' + str(meld.meldType) + meld.joined
self.abort(msg, player.name, claim.name, str(meld))
return
@@ -658,21 +658,21 @@ class ServerTable(Table):
def declareKong(self, player, meldTiles):
"""player declares a Kong, meldTiles is a list"""
- meldTiles = Meld(meldTiles)
- if not player.hasConcealedTiles(meldTiles) and not player.hasExposedPungOf(meldTiles[0]):
+ kongMeld = Meld(meldTiles)
+ if not player.hasConcealedTiles(kongMeld) and not player.hasExposedPungOf(kongMeld[0]):
# pylint: disable=star-args
msg = m18nE('declareKong:%1 wrongly said Kong for meld %2')
- args = (player.name, ''.join(meldTiles))
- logError(m18n(msg, *args))
- logError('declareKong:concealedTileNames:%s' % ''.join(player.concealedTileNames))
- logError('declareKong:concealedMelds:%s' % \
+ args = (player.name, kongMeld.joined)
+ logDebug(m18n(msg, *args))
+ logDebug('declareKong:concealedTileNames:%s' % ''.join(player.concealedTileNames))
+ logDebug('declareKong:concealedMelds:%s' % \
' '.join(x.joined for x in player.concealedMelds))
- logError('declareKong:exposedMelds:%s' % \
+ logDebug('declareKong:exposedMelds:%s' % \
' '.join(x.joined for x in player.exposedMelds))
self.abort(msg, *args)
return
- player.exposeMeld(meldTiles) # TODO: use a Meld, also for jellying. See Player.exposeMeld
- self.tellAll(player, Message.DeclaredKong, self.pickKongReplacement, tiles=meldTiles)
+ player.exposeMeld(kongMeld)
+ self.tellAll(player, Message.DeclaredKong, self.pickKongReplacement, meld=kongMeld)
def claimMahJongg(self, msg):
"""a player claims mah jongg. Check this and if correct, tell all."""
@@ -690,7 +690,7 @@ class ServerTable(Table):
robbedTheKong = lastMove.message == Message.DeclaredKong
if robbedTheKong:
player.lastSource = 'k'
- withDiscard = lastMove.tiles[0].upper()
+ withDiscard = lastMove.meld[0].upper()
lastMove.player.robTile(withDiscard)
lastMeld = Meld(lastMeld)
msgArgs = player.showConcealedMelds(concealedMelds, withDiscard)
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic