def incorrect_answer(self): """ Incorrect answer given by player. """ if self.state != self.AWAIT_ANSWER: logging.error("Cannot answer, not in AWAIT_ANSWER") return if self.selected_clue.is_daily_double(): self.players[self.buzzed_player].adjust_score(-self.wager) if self.players[self.buzzed_player].score < 0: self.players[self.buzzed_player].set_score(0) else: self.players[self.buzzed_player].adjust_score(-self.selected_clue.value) self.dump_scores() # Disable all lit players. game_buttons.reset_player_lights() # Disable all game buttons game_buttons.reset_buttons() logging.debug("Incorrect answer, Going to AWAIT_BUZZ state") self.state = self.AWAIT_BUZZ # Resetting timeout to number of seconds players get to buzz in. self.timeout_start = time.time() self.buzzer_lockouts = {} self.flash_player_score = True
def on_tick(self): """ Game tick. """ if self.state == self.AWAIT_BUZZ and not self.selected_clue.is_daily_double(): # Check the buzz timeout if there is one set. if self.timeout_start != None: if time.time() - self.timeout_start > config.await_buzz_timeout: self.timeout_beep = True # Disable all lit players. game_buttons.reset_player_lights() self.state = self.DISPLAY_QUESTION elif self.state == self.AWAIT_ANSWER and not self.selected_clue.is_daily_double(): # Check the answer timeout if there is one set. if self.timeout_start != None: if time.time() - self.timeout_start > config.await_answer_timeout: # Just beep and let host select correct / incorrect self.timeout_beep = True self.timeout_start = None # Update the player lights game_buttons.send_players()
def correct_answer(self): """ Correct answer given by player. """ if self.state != self.AWAIT_ANSWER: logging.error("Cannot answer, not in AWAIT_ANSWER") return if self.selected_clue.is_daily_double(): self.players[self.buzzed_player].adjust_score(self.wager) else: self.players[self.buzzed_player].adjust_score(self.selected_clue.value) self.dump_scores() # Disable all lit players. game_buttons.reset_player_lights() # Disable all game buttons game_buttons.reset_buttons() logging.debug("Correct answer, Going to DISPLAY_QUESTION state") self.state = self.DISPLAY_QUESTION self.flash_player_score = True
def on_press(self, actor, event): """ """ if event.keyval == clutter.keysyms.Escape: clutter.main_quit() elif event.keyval == clutter.keysyms.a: # player A rings in. game_buttons.player_set(0, True) game.buzz(0) self.update() elif event.keyval == clutter.keysyms.b: # player B rings in. game_buttons.player_set(1, True) game.buzz(1) self.update() elif event.keyval == clutter.keysyms.c: # player C rings in. game_buttons.player_set(2, True) game.buzz(2) self.update() elif event.keyval == clutter.keysyms.space: if not self.final_round_overlay.is_playing(): # We do not allow for incoming space button presses when final # round overlay music is playing. # multi-purpose bar press game.bar() self.update() elif event.keyval == clutter.keysyms.x: # cancel game.cancel() self.update() elif event.keyval == clutter.keysyms.y: # correct answer game.correct_answer() self.update() elif event.keyval == clutter.keysyms.n: # incorrect answer game.incorrect_answer() self.update() elif event.keyval == clutter.keysyms.z: logging.debug('resetting player lights') game_buttons.reset_player_lights() elif event.keyval == clutter.keysyms.l: if self.category_overlay in self.get_children(): self.category_overlay.animate( clutter.LINEAR, 500, 'x', self.category_overlay.get_x() - self.get_width()) else: self.category_overlay.set_size(self.get_width(), self.get_height()) self.category_overlay.set_x(self.get_width()) self.add(self.category_overlay) self.category_overlay.animate( clutter.LINEAR, 500, 'x', self.category_overlay.get_x() - self.get_width()) elif event.keyval == clutter.keysyms.p: # DEBUG - for testing end of round condition without clicking everything. # don't leave this active in production code! for category in game.categories: for clue in category.clues: clue.state = 'selected' game.categories[0].clues[0].state = 'unanswered' elif event.keyval == clutter.keysyms.f: # Fullscreen play area. self.set_fullscreen(not self.get_fullscreen()) elif event.keyval == clutter.keysyms.s: self.flash_scores()
def on_press(self, actor, event): """ """ if event.keyval == clutter.keysyms.Escape: clutter.main_quit() elif event.keyval == clutter.keysyms.a: # player A rings in. game_buttons.player_set(0, True) game.buzz(0) self.update() elif event.keyval == clutter.keysyms.b: # player B rings in. game_buttons.player_set(1, True) game.buzz(1) self.update() elif event.keyval == clutter.keysyms.c: # player C rings in. game_buttons.player_set(2, True) game.buzz(2) self.update() elif event.keyval == clutter.keysyms.space: if not self.final_round_overlay.is_playing(): # We do not allow for incoming space button presses when final # round overlay music is playing. # multi-purpose bar press game.bar() self.update() elif event.keyval == clutter.keysyms.x: # cancel game.cancel() self.update() elif event.keyval == clutter.keysyms.y: # correct answer game.correct_answer() self.update() elif event.keyval == clutter.keysyms.n: # incorrect answer game.incorrect_answer() self.update() elif event.keyval == clutter.keysyms.z: logging.debug('resetting player lights') game_buttons.reset_player_lights() elif event.keyval == clutter.keysyms.l: if self.category_overlay in self.get_children(): self.category_overlay.animate(clutter.LINEAR, 500, 'x', self.category_overlay.get_x() - self.get_width()) else: self.category_overlay.set_size(self.get_width(), self.get_height()) self.category_overlay.set_x(self.get_width()) self.add(self.category_overlay) self.category_overlay.animate(clutter.LINEAR, 500, 'x', self.category_overlay.get_x() - self.get_width()) elif event.keyval == clutter.keysyms.p: # DEBUG - for testing end of round condition without clicking everything. # don't leave this active in production code! for category in game.categories: for clue in category.clues: clue.state = 'selected' game.categories[0].clues[0].state = 'unanswered' elif event.keyval == clutter.keysyms.f: # Fullscreen play area. self.set_fullscreen(not self.get_fullscreen()) elif event.keyval == clutter.keysyms.s: self.flash_scores()