Make Flop_Mucked work with the 0-52 card encoding.
This commit is contained in:
parent
053bfb9cee
commit
e00887b865
|
@ -37,7 +37,7 @@ import Configuration
|
||||||
import Database
|
import Database
|
||||||
import Card
|
import Card
|
||||||
|
|
||||||
class Aux_Window:
|
class Aux_Window(object):
|
||||||
def __init__(self, hud, params, config):
|
def __init__(self, hud, params, config):
|
||||||
self.hud = hud
|
self.hud = hud
|
||||||
self.params = params
|
self.params = params
|
||||||
|
@ -94,9 +94,11 @@ class Aux_Window:
|
||||||
return (card[0], card[1].upper())
|
return (card[0], card[1].upper())
|
||||||
|
|
||||||
def has_cards(self, cards):
|
def has_cards(self, cards):
|
||||||
|
"""Returns the number of cards in the list."""
|
||||||
|
n = 0
|
||||||
for c in cards:
|
for c in cards:
|
||||||
if c in set('shdc'): return True
|
if c != None and c > 0: n = n + 1
|
||||||
return False
|
return n
|
||||||
|
|
||||||
class Stud_mucked(Aux_Window):
|
class Stud_mucked(Aux_Window):
|
||||||
def __init__(self, hud, config, params):
|
def __init__(self, hud, config, params):
|
||||||
|
@ -329,21 +331,26 @@ class Stud_cards:
|
||||||
self.seen_cards[(c, r)].set_from_pixbuf(self.card_images[0])
|
self.seen_cards[(c, r)].set_from_pixbuf(self.card_images[0])
|
||||||
self.eb[(c, r)].set_tooltip_text('')
|
self.eb[(c, r)].set_tooltip_text('')
|
||||||
|
|
||||||
class Flop_Mucked(Aux_Window):
|
class Aux_Seats(Aux_Window):
|
||||||
"""Aux_Window class for displaying mucked cards for flop games."""
|
"""A super class to display an aux_window at each seat."""
|
||||||
|
|
||||||
def __init__(self, hud, config, params):
|
def __init__(self, hud, config, params):
|
||||||
self.hud = hud # hud object that this aux window supports
|
self.hud = hud # hud object that this aux window supports
|
||||||
self.config = config # configuration object for this aux window to use
|
self.config = config # configuration object for this aux window to use
|
||||||
self.params = params # dict aux params from config
|
self.params = params # dict aux params from config
|
||||||
self.positions = {} # dict of window positions
|
self.positions = {} # dict of window positions
|
||||||
# self.rel_positions = {} # dict of window positions, relative to the table origin
|
self.displayed = False
|
||||||
self.displayed_cards = False
|
|
||||||
self.timer_on = False # bool = Ture if the timeout for removing the cards is on
|
self.timer_on = False # bool = Ture if the timeout for removing the cards is on
|
||||||
|
|
||||||
|
class Flop_Mucked(Aux_Seats):
|
||||||
|
"""Aux_Window class for displaying mucked cards for flop games."""
|
||||||
|
|
||||||
|
def __init__(self, hud, config, params):
|
||||||
|
super(Flop_Mucked, self).__init__(hud, config, params)
|
||||||
self.card_images = self.get_card_images()
|
self.card_images = self.get_card_images()
|
||||||
|
|
||||||
def create(self):
|
def create(self):
|
||||||
self.adj = self.hud.adj_seats(0, self.config)
|
self.adj = self.hud.adj_seats(0, self.config) # move adj_seats to aux and get rid of it in Hud.py
|
||||||
loc = self.config.get_aux_locations(self.params['name'], int(self.hud.max))
|
loc = self.config.get_aux_locations(self.params['name'], int(self.hud.max))
|
||||||
|
|
||||||
self.m_windows = {} # windows to put the card images in
|
self.m_windows = {} # windows to put the card images in
|
||||||
|
@ -364,7 +371,7 @@ class Flop_Mucked(Aux_Window):
|
||||||
self.eb[i].connect("button_press_event", self.button_press_cb)
|
self.eb[i].connect("button_press_event", self.button_press_cb)
|
||||||
self.m_windows[i].connect("configure_event", self.configure_event_cb, i)
|
self.m_windows[i].connect("configure_event", self.configure_event_cb, i)
|
||||||
self.m_windows[i].add(self.eb[i])
|
self.m_windows[i].add(self.eb[i])
|
||||||
self.seen_cards[i] = gtk.image_new_from_pixbuf(self.card_images[('B', 'H')])
|
self.seen_cards[i] = gtk.image_new_from_pixbuf(self.card_images[0])
|
||||||
self.eb[i].add(self.seen_cards[i])
|
self.eb[i].add(self.seen_cards[i])
|
||||||
self.positions[i] = (int(x) + self.hud.table.x, int(y) + self.hud.table.y)
|
self.positions[i] = (int(x) + self.hud.table.x, int(y) + self.hud.table.y)
|
||||||
# self.rel_positions[i] = (int(x), int(y))
|
# self.rel_positions[i] = (int(x), int(y))
|
||||||
|
@ -373,35 +380,40 @@ class Flop_Mucked(Aux_Window):
|
||||||
self.m_windows[i].show_all()
|
self.m_windows[i].show_all()
|
||||||
self.m_windows[i].hide()
|
self.m_windows[i].hide()
|
||||||
|
|
||||||
|
def create_contents(self, i):
|
||||||
|
"""Create the widgets for showing the contents of the Aux_seats window."""
|
||||||
|
|
||||||
def update_gui(self, new_hand_id):
|
def update_gui(self, new_hand_id):
|
||||||
"""Prepare and show the mucked cards."""
|
"""Prepare and show the mucked cards."""
|
||||||
if self.displayed_cards:
|
if self.displayed:
|
||||||
self.hide_mucked_cards()
|
self.hide_mucked_cards()
|
||||||
self.displayed_cards = False
|
self.displayed = False
|
||||||
for (i, cards) in self.hud.cards.iteritems():
|
for (i, cards) in self.hud.cards.iteritems():
|
||||||
if self.has_cards(cards):
|
n_cards = self.has_cards(cards)
|
||||||
|
if n_cards > 0:
|
||||||
# scratch is a working pixbuf, used to assemble the image
|
# scratch is a working pixbuf, used to assemble the image
|
||||||
scratch = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, True, 8,
|
scratch = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, True, 8,
|
||||||
int(self.params['card_wd'])*len(cards)/2,
|
int(self.params['card_wd'])*n_cards,
|
||||||
int(self.params['card_ht']))
|
int(self.params['card_ht']))
|
||||||
x = 0 # x coord where the next card starts in scratch
|
x = 0 # x coord where the next card starts in scratch
|
||||||
for card in [cards[k:k+2] for k in xrange(0, len(cards), 2)]:
|
for card in cards:
|
||||||
# concatenate each card image to scratch
|
# concatenate each card image to scratch
|
||||||
self.card_images[self.split_cards(card)].copy_area(0, 0,
|
if card == None or card ==0:
|
||||||
|
break
|
||||||
|
self.card_images[card].copy_area(0, 0,
|
||||||
int(self.params['card_wd']), int(self.params['card_ht']),
|
int(self.params['card_wd']), int(self.params['card_ht']),
|
||||||
scratch, x, 0)
|
scratch, x, 0)
|
||||||
x = x + int(self.params['card_wd'])
|
x = x + int(self.params['card_wd'])
|
||||||
self.seen_cards[i].set_from_pixbuf(scratch)
|
self.seen_cards[i].set_from_pixbuf(scratch)
|
||||||
# self.m_windows[i].show_all()
|
|
||||||
self.m_windows[i].resize(1,1)
|
self.m_windows[i].resize(1,1)
|
||||||
self.m_windows[i].show()
|
self.m_windows[i].show()
|
||||||
self.m_windows[i].move(self.positions[i][0], self.positions[i][1]) # here is where I move back
|
self.m_windows[i].move(self.positions[i][0], self.positions[i][1]) # here is where I move back
|
||||||
self.displayed_cards = True
|
self.displayed = True
|
||||||
|
|
||||||
for stats in self.hud.stat_dict.itervalues():
|
for stats in self.hud.stat_dict.itervalues():
|
||||||
self.eb[stats['seat']].set_tooltip_text(stats['screen_name'])
|
self.eb[stats['seat']].set_tooltip_text(stats['screen_name'])
|
||||||
|
|
||||||
if self.displayed_cards and float(self.params['timeout']) > 0:
|
if self.displayed and float(self.params['timeout']) > 0:
|
||||||
self.timer_on = True
|
self.timer_on = True
|
||||||
gobject.timeout_add(int(1000*float(self.params['timeout'])), self.timed_out)
|
gobject.timeout_add(int(1000*float(self.params['timeout'])), self.timed_out)
|
||||||
|
|
||||||
|
@ -425,7 +437,7 @@ class Flop_Mucked(Aux_Window):
|
||||||
"""Hide the mucked card windows."""
|
"""Hide the mucked card windows."""
|
||||||
for (i, w) in self.m_windows.iteritems():
|
for (i, w) in self.m_windows.iteritems():
|
||||||
w.hide()
|
w.hide()
|
||||||
self.displayed_cards = False
|
self.displayed = False
|
||||||
|
|
||||||
def button_press_cb(self, widget, event, *args):
|
def button_press_cb(self, widget, event, *args):
|
||||||
"""Handle button clicks in the event boxes."""
|
"""Handle button clicks in the event boxes."""
|
||||||
|
@ -458,7 +470,7 @@ class Flop_Mucked(Aux_Window):
|
||||||
for (i, cards) in self.hud.cards.iteritems():
|
for (i, cards) in self.hud.cards.iteritems():
|
||||||
self.m_windows[i].show()
|
self.m_windows[i].show()
|
||||||
self.m_windows[i].move(self.positions[i][0], self.positions[i][1]) # here is where I move back
|
self.m_windows[i].move(self.positions[i][0], self.positions[i][1]) # here is where I move back
|
||||||
self.displayed_cards = True
|
self.displayed = True
|
||||||
|
|
||||||
def save_layout(self, *args):
|
def save_layout(self, *args):
|
||||||
"""Save new layout back to the aux element in the config file."""
|
"""Save new layout back to the aux element in the config file."""
|
||||||
|
|
Loading…
Reference in New Issue
Block a user