def __init__(self, library=None): gui.gui_state.__init__(self) if library is None: library = cards.library("../dc-deck/pack1") self.library = library self.handle_quit = False self.pic_cards = [] self.current_index = 0 self.key_downs = [] self.deck_start_x = 0 self.card_offset = 15 self.lbl_current_card = gui.label() self.lbl_cards_count = gui.label() self.lbl_deck_name = gui.label() self.deck_combo = gui.combobox(120, 20) self.deck_combo.items.append("Pack1") self.deck_combo.items.append("Pack2") self.deck_combo.items.append("Pack3") self.deck_combo.items.append("Pack4") self.btn_back = gui.button() self.btn_back.width = 120 self.btn_back.height = 35 self.btn_back.caption = "Back" self.btn_back.add_receivers(self.back) self.tick_id = 0
def __init__(self): gui.gui_state.__init__(self) #loading superheroes self.library = cards.library("../dc-deck/pack1") self.lbl_title = gui.label() self.lbl_title.font = gui.get_big_font() self.lbl_title.text = "Game Setup" self.lbl_players_name = gui.label() self.lbl_players_name.text = "Players name" self.lbl_players_num = gui.label() self.lbl_players_num.text = "Number of players : " self.lbl_players_num.render() self.cb_players_num = gui.combobox(50, 22) self.cb_players_num.items.append("2") self.cb_players_num.items.append("3") self.cb_players_num.items.append("4") self.cb_players_num.items.append("5") self.cb_players_num.add_receiver(self.player_num_changed) self.lbl_cb_superhero_pick = gui.label() self.lbl_cb_superhero_pick.text = "Random superhero : " self.cb_superhero_pick = gui.checkbox() self.cb_superhero_pick.checked = True self.cb_superhero_pick.state_changed = self.pick_random_changed self.add(self.lbl_title) self.add(self.lbl_players_name) self.add(self.lbl_players_num) self.add(self.cb_players_num) self.add(self.lbl_cb_superhero_pick) self.add(self.cb_superhero_pick) self.tb_players = [] self.lbl_players = [] self.slider_player_superhero = [] nb_players = int(self.cb_players_num.get_item()) for i in range(5): tb = gui.textbox(180, 22) self.tb_players.append(tb) self.add(tb) lbl = gui.label(25, 22) lbl.text = str(i + 1) + " : " self.lbl_players.append(lbl) self.add(lbl) if i < nb_players: tb.visible = True lbl.visible = True else: tb.visible = False lbl.visible = False slider = gui.slider(100, 22) slider.visible = False for s in self.library.superheroes: slider.items.append(s.name) self.slider_player_superhero.append(slider) self.add(slider) self.btn_start = gui.button(180, 40) self.btn_start.caption = "Start !" self.btn_start.add_receivers(self.start_game) self.btn_back = gui.button(180, 40) self.btn_back.caption = "Back" self.btn_back.add_receivers(self.back) self.add(self.btn_start) self.add(self.btn_back)
def __init__(self, players, superhero_pick=RandomPick, players_pick={}): gui.gui_state.__init__(self) self.library = cards.library("../dc-deck/pack1") # todo need to find a more elegant way, not to hardcode this! self.game = game_object(self.library) self.players_cards = [] self.played_cards = [] self.player_widgets = [] self.supervilain_widget = None self.superhero_pick = superhero_pick self.players_pick = players_pick self.current_player = None self.lineup_width = 106 self.lineup_height = 150 self.zoom_width = 424 self.zoom_height = 600 self.choice_overlay = None for p in players: self.game.add_player(p) self.handle_quit = True self.card_zoomed = False self.zoomed_widget = None self.game.roll_players_start() if self.superhero_pick == self.RandomPick: self.game.pick_superhero() elif self.superhero_pick == self.ChosenPick: self.game.assign_superhero(players_pick) self.game.create_cards() self.supervilain_widget = card_widget(self, self.game.current_supervilain, 106, 150) self.supervilain_widget.zoom_width = 424 self.supervilain_widget.zoom_height = 600 self.add(self.supervilain_widget) current_y = 0 for p in self.game.players: widget = player_widget(p, 300, 120) widget.y = current_y self.add(widget) self.player_widgets.append(widget) current_y += widget.height self.lineups = [] self.lineups_empty_case = [] self.curse_stack = card_widget(self, self.game.curses[0], 106, 150) self.buyable_power_stack = card_widget(self, self.game.buyable_powers[0], 106, 150) self.add(self.curse_stack) self.add(self.buyable_power_stack) l_start_x = 250 l_start_y = 300 self.curse_stack.x = l_start_x - 121*2 self.curse_stack.y = l_start_y self.curse_stack.zoom_width = 424 self.curse_stack.zoom_height = 600 self.buyable_power_stack.x = l_start_x - 121 self.buyable_power_stack.y = l_start_y self.buyable_power_stack.zoom_width = 424 self.buyable_power_stack.zoom_height = 600 self.supervilain_widget.x = l_start_x - 121 self.supervilain_widget.y = l_start_y + self.buyable_power_stack.height + 10 row = 0 for i in range(len(self.game.lineups)): iw = i if row == 1: iw -= 3 widget = card_widget(self, self.game.lineups[i], 106, 150) self.lineups.append(widget) widget.x = l_start_x + 121*iw widget.y = l_start_y + row*160 widget.zoom_width = 424 widget.zoom_height = 600 if i == 2: row += 1 self.add(widget) #turn info self.lbl_current_turn = gui.label() self.lbl_current_turn.text = "%s turns" % self.game.get_current_player().name self.lbl_current_turn.x = 5 self.lbl_current_turn.y = 5 self.add(self.lbl_current_turn) self.lbl_hand = gui.label() self.lbl_hand.text = "Hand :" self.lbl_hand.x = 10 self.lbl_hand.y = 160 self.add(self.lbl_hand) self.hand_x = 70 self.hand_y = 160 self.hand_width = 91 self.hand_height = 130 self.play_x = 70 self.play_y = 20 self.play_width = 91 self.play_height = 130 #todo need a place for gained cards, or a widget that pop up on button.. self.gained_card_x = 0 self.gained_card_y = 0 #quit to main menu button self.btn_quit_game = gui.button(200, 30) self.btn_quit_game.x = 10 self.btn_quit_game.y = 10 self.btn_quit_game.caption = "Quit game" self.btn_quit_game.add_receivers(self.quit_game) self.btn_end_turn = gui.button(200, 50) self.btn_end_turn.caption = "End turn" self.btn_end_turn.add_receivers(self.end_turn) self.ta_actions = gui.textarea(400, 100) self.ta_actions.text = "Starting game" self.add(self.ta_actions) #actions bindings self.game.change_turn = self.player_turn self.game.card_played = self.played_card self.game.lineup_changed = self.apply_lineup_action self.buyable_power_stack.activated = self.buy_card self.game.drawn_card = self.drawn_card self.game.ask_player = self.ask_player self.game.game_text = self.ta_actions.append self.game.refresh_hands = self.refresh_hands self.game.start_game()
def __init__(self): gui.gui_state.__init__(self) #loading superheroes self.library = cards.library("../dc-deck/pack1") self.lbl_title = gui.label() self.lbl_title.font = gui.get_big_font() self.lbl_title.text = "Game Setup" self.lbl_players_name = gui.label() self.lbl_players_name.text = "Players name" self.lbl_players_num = gui.label() self.lbl_players_num.text = "Number of players : " self.lbl_players_num.render() self.cb_players_num = gui.combobox(50, 22) self.cb_players_num.items.append("2") self.cb_players_num.items.append("3") self.cb_players_num.items.append("4") self.cb_players_num.items.append("5") self.cb_players_num.add_receiver(self.player_num_changed) self.lbl_cb_superhero_pick = gui.label() self.lbl_cb_superhero_pick.text = "Random superhero : " self.cb_superhero_pick = gui.checkbox() self.cb_superhero_pick.checked = True self.cb_superhero_pick.state_changed = self.pick_random_changed self.add(self.lbl_title) self.add(self.lbl_players_name) self.add(self.lbl_players_num) self.add(self.cb_players_num) self.add(self.lbl_cb_superhero_pick) self.add(self.cb_superhero_pick) self.tb_players = [] self.lbl_players = [] self.slider_player_superhero = [] nb_players = int(self.cb_players_num.get_item()) for i in range(5): tb = gui.textbox(180, 22) self.tb_players.append(tb) self.add(tb) lbl = gui.label(25, 22) lbl.text = str(i+1) + " : " self.lbl_players.append(lbl) self.add(lbl) if i < nb_players: tb.visible = True lbl.visible = True else: tb.visible = False lbl.visible = False slider = gui.slider(100, 22) slider.visible = False for s in self.library.superheroes: slider.items.append(s.name) self.slider_player_superhero.append(slider) self.add(slider) self.btn_start = gui.button(180, 40) self.btn_start.caption = "Start !" self.btn_start.add_receivers(self.start_game) self.btn_back = gui.button(180, 40) self.btn_back.caption = "Back" self.btn_back.add_receivers(self.back) self.add(self.btn_start) self.add(self.btn_back)