From 88ae55bdbd6990b20c033ea30e2958fb9d917f42 Mon Sep 17 00:00:00 2001 From: Goffi Date: Tue, 10 May 2011 15:46:01 +0200 Subject: [PATCH] primitivus: fixed state state change in tarot game --- frontends/src/primitivus/card_game.py | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/frontends/src/primitivus/card_game.py b/frontends/src/primitivus/card_game.py index 98931222..a5a53b29 100644 --- a/frontends/src/primitivus/card_game.py +++ b/frontends/src/primitivus/card_game.py @@ -292,15 +292,10 @@ class CardGame(QuickCardGame,urwid.WidgetWrap): """A card has been played by player""" QuickCardGame.cardsPlayed(self, player, cards) self.table.putCard(self.getPlayerLocation(player),self.played[player]) + self._checkState() self.parent.host.redraw() - - ##EVENTS## - def onClick(self, hand, card_wid): - """Called when user do an action on the hand""" - if not self.state in ['play','ecart','wait_for_ecart']: - #it's not our turn, we ignore the click - card_wid.select(False) - return + + def _checkState(self): if isinstance(self.center.widget_list[1].original_widget, Hand): #if we have a hand displayed self.center.widget_list[1] = urwid.Filler(self.table) #we show again the table if self.state == "chien": @@ -312,6 +307,16 @@ class CardGame(QuickCardGame,urwid.WidgetWrap): self.hand.sort() self.to_show = [] self.hand_wid.update(self.hand) + + + ##EVENTS## + def onClick(self, hand, card_wid): + """Called when user do an action on the hand""" + if not self.state in ['play','ecart','wait_for_ecart']: + #it's not our turn, we ignore the click + card_wid.select(False) + return + self._checkState() if self.state == "ecart": if len(self.hand_wid.getSelected()) == 6: pop_up_widget = sat_widgets.ConfirmDialog(_("Do you put these cards in chien ?"), yes_cb=self.onEcartDone, no_cb=self.parent.host.removePopUp)