Mercurial > libervia-web
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]: