Ejemplo n.º 1
0
    def __init__(self, rect, value=0, **kwargs):
        super(ChipPile, self).__init__(rect, **kwargs)
        self.stacking = 70, -10
        self.ignore_until_away = True
        self.arrange_function = self.animate_pop
        self._clicked_sprite = None
        self._followed_sprite = None
        self._popped_chips = list()
        self._initial_snap = None
        self._desired_pos = None
        self._selected_stack = False
        self._grabbed = False
        self._shadows = SpriteGroup()
        self._shadows_dict = dict()

        self._running_animations = dict()
        B.linkEvent('DO_DROP_STACK', self.return_stack)
        if value:
            self.add(*cash_to_chips(value))
Ejemplo n.º 2
0
    def __init__(self, rect, value=0, **kwargs):
        super(ChipPile, self).__init__(rect, **kwargs)
        self.stacking = 70, -10
        self.ignore_until_away = True
        self.arrange_function = self.animate_pop
        self._clicked_sprite = None
        self._followed_sprite = None
        self._popped_chips = list()
        self._initial_snap = None
        self._desired_pos = None
        self._selected_stack = False
        self._grabbed = False
        self._shadows = SpriteGroup()
        self._shadows_dict = dict()

        self._running_animations = dict()
        B.linkEvent('DO_DROP_STACK', self.return_stack)
        if value:
            self.add(*cash_to_chips(value))
Ejemplo n.º 3
0
 def __init__(self):
     """Initialise the bingo game"""
     #
     self.verbose = False
     self.sound_muted = prepare.ARGS['debug']
     #
     self.screen_rect = pg.Rect((0, 0), prepare.RENDER_SIZE)
     self.auto_pick = S['debug-auto-pick']
     #
     self.ui = common.ClickableGroup()
     #
     self.lobby_button = NeonButton(S['lobby-position'], 'Lobby',
                                    self.return_to_lobby)
     self.new_game_button = NeonButton(
         S['new-game-position'], 'New',
         lambda x: self.restart_game(None, None))
     #
     # The controls to allow selection of different numbers of cards
     self.card_selector = cardselector.CardSelector('card-selector', self)
     self.card_selector.linkEvent(events.E_NUM_CARDS_CHANGED,
                                  self.change_number_of_cards)
     self.ui.append(self.card_selector.ui)
     #
     self.create_card_collection()
     self.ui.extend(self.cards)
     #
     self.winning_pattern = patterns.PATTERNS[0]
     #
     self.pattern_buttons = common.DrawableGroup()
     self.debug_buttons = common.DrawableGroup()
     self.buttons = common.DrawableGroup([self.pattern_buttons])
     #
     if prepare.DEBUG:
         self.buttons.append(self.debug_buttons)
     #
     super(Bingo, self).__init__()
     #
     # The machine for picking balls
     self.ball_machine = ballmachine.BallMachine('ball-machine', self)
     self.ball_machine.start_machine()
     self.ui.append(self.ball_machine.buttons)
     #
     self.all_cards = common.DrawableGroup()
     self.all_cards.extend(self.cards)
     self.all_cards.extend(self.dealer_cards)
     #
     B.linkEvent(events.E_PLAYER_PICKED, self.player_picked)
     B.linkEvent(events.E_PLAYER_UNPICKED, self.player_unpicked)
     B.linkEvent(events.E_CARD_COMPLETE, self.card_completed)
     #
     self.current_pick_sound = 0
     self.last_pick_time = 0
Ejemplo n.º 4
0
 def __init__(self):
     """Initialise the bingo game"""
     #
     self.verbose = False
     self.sound_muted = prepare.ARGS['debug']
     #
     self.screen_rect = pg.Rect((0, 0), prepare.RENDER_SIZE)
     self.auto_pick = S['debug-auto-pick']
     #
     self.ui = common.ClickableGroup()
     #
     self.lobby_button = NeonButton(S['lobby-position'], 'Lobby', self.return_to_lobby)
     self.new_game_button = NeonButton(S['new-game-position'], 'New', lambda x: self.restart_game(None, None))
     #
     # The controls to allow selection of different numbers of cards
     self.card_selector = cardselector.CardSelector('card-selector', self)
     self.card_selector.linkEvent(events.E_NUM_CARDS_CHANGED, self.change_number_of_cards)
     self.ui.append(self.card_selector.ui)
     #
     self.create_card_collection()
     self.ui.extend(self.cards)
     #
     self.winning_pattern = patterns.PATTERNS[0]
     #
     self.pattern_buttons = common.DrawableGroup()
     self.debug_buttons = common.DrawableGroup()
     self.buttons = common.DrawableGroup([self.pattern_buttons])
     #
     if prepare.DEBUG:
         self.buttons.append(self.debug_buttons)
     #
     super(Bingo, self).__init__()
     #
     # The machine for picking balls
     self.ball_machine = ballmachine.BallMachine('ball-machine', self)
     self.ball_machine.start_machine()
     self.ui.append(self.ball_machine.buttons)
     #
     self.all_cards = common.DrawableGroup()
     self.all_cards.extend(self.cards)
     self.all_cards.extend(self.dealer_cards)
     #
     B.linkEvent(events.E_PLAYER_PICKED, self.player_picked)
     B.linkEvent(events.E_PLAYER_UNPICKED, self.player_unpicked)
     B.linkEvent(events.E_CARD_COMPLETE, self.card_completed)
     #
     self.current_pick_sound = 0
     self.last_pick_time = 0
Ejemplo n.º 5
0
    def startup(self, now, persistent):
        self.now = now
        self.persist = persistent

        # stuff that might get moved to a gui layer sometime?
        self._needs_clear = True
        self._clicked_sprite = None

        self._power = .5
        self._should_autoplay = False

        B.linkEvent('pachinko_jackpot', self.on_jackpot)
        B.linkEvent('pachinko_gutter', self.on_gutter)
        B.linkEvent('pachinko_tray', self.on_tray)

        # hack related to game states that do not finish
        try:
            self.on_tray()
        except:
            pass
        self.done = False
        try:
            self.playfield.background = None
        except AttributeError:
            pass

        # hack related to game states that do not finish
        if self.did_startup:
            return

        self.did_startup = True

        self.casino_player = self.persist['casino_player']
        self.casino_player.current_game = self.name

        self.playfield = Playfield()
        self.hud = pg.sprite.RenderUpdates()

        font = pg.font.Font(prepare.FONTS["Saniretro"], font_size)
        self.tray_count = TextSprite('', font)
        self.tray_count.rect.topleft = 960, 100
        self.hud.add(self.tray_count)
        self.on_tray()

        t = TextSprite("Press F to add 25", font)
        t.rect.topleft = 960, 170
        self.hud.add(t)

        t = TextSprite("Spacebar Shoots", font)
        t.rect.topleft = 960, 250
        self.hud.add(t)

        def lower_power():
            self.playfield.auto_power -= .01

        def raise_power():
            self.playfield.auto_power += .01

        font = pg.font.Font(prepare.FONTS["Saniretro"], 50)
        fg = pg.Color('gold2')
        text = TextSprite("- POWER", font, fg=fg)
        self.hud.add(Button(text, (1000, 370, 350, 80), lower_power))

        text = TextSprite("AUTO", font, fg=fg)
        self.auto_button = Button(text, (1000, 460, 350, 80),
                                  self.toggle_autoplay)
        self.hud.add(self.auto_button)

        text = TextSprite("+ POWER", font, fg=fg)
        self.hud.add(Button(text, (1000, 550, 350, 80), raise_power))

        b = NeonButton('lobby', (1000, 920, 0, 0), self.goto_lobby)
        self.hud.add(b)

        if 'Pachinko' not in self.casino_player.stats:
            self.casino_player.stats['Pachinko'] = OrderedDict([
                ('games played', 0),
                ('total winnings', 0),
                ('earned', 0),
                ('jackpots', 0),
                ('gutters', 0),
            ])

        self.casino_player.stats['Pachinko']['games played'] += 1
Ejemplo n.º 6
0
 def link_events(self):
     for name, f in self.interested_events:
         B.linkEvent(name, f)
Ejemplo n.º 7
0
 def link_events(self):
     for name, f in self.interested_events:
         B.linkEvent(name, f)
Ejemplo n.º 8
0
    def startup(self, now, persistent):
        self.now = now
        self.persist = persistent

        # stuff that might get moved to a gui layer sometime?
        self._needs_clear = True
        self._clicked_sprite = None

        self._power = .5
        self._should_autoplay = False

        B.linkEvent('pachinko_jackpot', self.on_jackpot)
        B.linkEvent('pachinko_gutter', self.on_gutter)
        B.linkEvent('pachinko_tray', self.on_tray)

        # hack related to game states that do not finish
        try:
            self.on_tray()
        except:
            pass
        self.done = False
        try:
            self.playfield.background = None
        except AttributeError:
            pass

        # hack related to game states that do not finish
        if self.did_startup:
            return

        self.did_startup = True

        self.casino_player = self.persist['casino_player']
        self.casino_player.current_game = self.name

        self.playfield = Playfield()
        self.hud = pg.sprite.RenderUpdates()

        font = pg.font.Font(prepare.FONTS["Saniretro"], font_size)
        self.tray_count = TextSprite('', font)
        self.tray_count.rect.topleft = 960, 100
        self.hud.add(self.tray_count)
        self.on_tray()

        t = TextSprite("Press F to add 25", font)
        t.rect.topleft = 960, 170
        self.hud.add(t)

        t = TextSprite("Spacebar Shoots", font)
        t.rect.topleft = 960, 250
        self.hud.add(t)

        def lower_power():
            self.playfield.auto_power -= .01

        def raise_power():
            self.playfield.auto_power += .01

        font = pg.font.Font(prepare.FONTS["Saniretro"], 50)
        fg = pg.Color('gold2')
        text = TextSprite("- POWER", font, fg=fg)
        self.hud.add(Button(text, (1000, 370, 350, 80), lower_power))

        text = TextSprite("AUTO", font, fg=fg)
        self.auto_button = Button(text, (1000, 460, 350, 80),
                                  self.toggle_autoplay)
        self.hud.add(self.auto_button)

        text = TextSprite("+ POWER", font, fg=fg)
        self.hud.add(Button(text, (1000, 550, 350, 80), raise_power))

        b = NeonButton('lobby', (1000, 920, 0, 0), self.goto_lobby)
        self.hud.add(b)

        if 'Pachinko' not in self.casino_player.stats:
            self.casino_player.stats['Pachinko'] = OrderedDict([
                ('games played', 0),
                ('total winnings', 0),
                ('earned', 0),
                ('jackpots', 0),
                ('gutters', 0),
            ])

        self.casino_player.stats['Pachinko']['games played'] += 1