from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants class Registration(Page): form_model = 'player' form_fields = ['player_name'] def is_displayed(self): return self.round_number == 1 def before_next_page(self): self.participant.label = self.player.player_name; self.participant.vars['credits'] = 500 class WaitPlayers(WaitPage): wait_for_all_groups = True def is_displayed(self): return self.round_number == 1 class Participants(Page): form_model = 'player' def is_displayed(self): return self.round_number == 1 class FootballerName(Page): form_model = 'player' form_fields = ['called_footballer'] def is_displayed(self): return self.player.id_in_group == 1 def before_next_page(self): self.group.called_footballer = self.player.called_footballer class WaitCalling(WaitPage): wait_for_all_groups = True class PlayerBet(Page): form_model = 'player' form_fields = ['bet'] def before_next_page(self): self.player.player_name = self.participant.label self.player.credits = self.participant.vars['credits'] class WaitBets(WaitPage): wait_for_all_groups = True after_all_players_arrive = 'set_winner' class Bets(Page): form_model = 'player' class Showdown(Page): form_model = 'player' def is_displayed(self): return self.group.showdown == True class Campione(Page): form_model = 'player' def is_displayed(self): return self.group.showdown == False class ResumeCredits(Page): form_model = 'player' def is_displayed(self): return self.group.showdown == False def before_next_page(self): participant = self.participant player = self.player if self.group.top_offer_name == self.participant.label: participant.vars['credits'] = participant.vars['credits'] - player.bet page_sequence = [Registration, WaitPlayers, Participants, FootballerName, WaitCalling, PlayerBet, WaitBets, Bets, Showdown, Campione, ResumeCredits]