Example #1
0
    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
Example #2
0
    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
Example #3
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)
Example #4
0
    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()
Example #5
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)