diff libervia.py @ 37:b306aa090438

Tarot game: game launching (first hand showed), and contract selection
author Goffi <goffi@goffi.org>
date Wed, 18 May 2011 01:45:28 +0200
parents 1d406077b49b
children 7bea2ae0c4fb
line wrap: on
line diff
--- a/libervia.py	Tue May 17 01:33:12 2011 +0200
+++ b/libervia.py	Wed May 18 01:45:28 2011 +0200
@@ -66,7 +66,7 @@
     def __init__(self):
         LiberviaJsonProxy.__init__(self, "/json_api",
                         ["getContacts", "sendMessage", "sendMblog", "getMblogNodes", "getProfileJid", "getHistory",
-                         "getPresenceStatus", "getRoomJoined", "launchTarotGame", "getTarotCardsPaths"])
+                         "getPresenceStatus", "getRoomJoined", "launchTarotGame", "getTarotCardsPaths", "tarotGameReady", "tarotGameContratChoosed"])
 
 class BridgeSignals(LiberviaJsonProxy):
     def __init__(self):
@@ -169,6 +169,9 @@
             self._roomUserLeftCb(*args)
         elif name == 'tarotGameStarted':
             self._tarotGameStartedCb(*args)
+        elif name == 'tarotGameNew' or \
+             name == 'tarotGameChooseContrat':
+            self._tarotGameGenericCb(name, args[0], args[1:])
 
     def _getProfileJidCB(self, jid):
         self.whoami = JID(jid)
@@ -177,8 +180,6 @@
         #and the rooms where we are
         self.bridge.call('getRoomJoined', self._getRoomJoinedCB)
 
-
-
     ## Signals callbacks ##
 
     def _personalEventCb(self, sender, event_type, data, profile):
@@ -240,6 +241,11 @@
             if isinstance(panel,ChatPanel) and panel.type == 'group' and panel.target.bare == room_jid:
                 panel.startGame("Tarot", referee, players)
 
+    def _tarotGameGenericCb(self, event_name, room_jid, args):
+        for panel in self.mpanels + self.other_panels:
+            if isinstance(panel,ChatPanel) and panel.type == 'group' and panel.target.bare == room_jid:
+                getattr(panel.getGame("Tarot"), event_name)(*args) 
+
     def _getPresenceStatusCB(self, presence_data):
         for entity in presence_data:
             for resource in presence_data[entity]: