[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