from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants class Welcome(Page): def is_displayed(self): return self.subsession.round_number == 1 class PartOne(Page): def is_displayed(self): return self.subsession.round_number == 1 class Rounds(Page): def is_displayed(self): return self.subsession.round_number == 1 class Periods(Page): def is_displayed(self): return self.subsession.round_number == 1 class Types(Page): def is_displayed(self): return self.subsession.round_number == 1 def vars_for_template(self): return dict( other_player_role=self.player.other_player().role ) class TypeWait(Page): def is_displayed(self): return self.subsession.round_number == 1 class YourType(Page): def is_displayed(self): return self.subsession.round_number == 1 def vars_for_template(self): return dict( other_player_role=self.player.other_player().role ) class BidBag(Page): def is_displayed(self): return self.subsession.round_number == 1 class Payoff(Page): def is_displayed(self): return self.subsession.round_number == 1 class Task(Page): def is_displayed(self): return self.subsession.round_number == 1 def vars_for_template(self): return dict( other_player_role=self.player.other_player().role ) class ChanceToWin(Page): def is_displayed(self): return self.subsession.round_number == 1 class Chance(Page): def is_displayed(self): return self.subsession.round_number == 1 def vars_for_template(self): return dict( other_player_role=self.player.other_player().role ) class Start(WaitPage): def is_displayed(self): return self.subsession.round_number == 1 class StartWait(WaitPage): def is_displayed(self): return self.subsession.round_number == 1 class PRp1(Page): form_model = 'player' form_fields = ['investment', 'Perceived_investment'] def vars_for_template(self): return dict( actual_round_number=self.subsession.round_number - 3, other_player_role=self.player.other_player().role ) class PRp1Wait(WaitPage): def after_all_players_arrive(self): self.group.set_payoffs_1() class PRp2(Page): form_model = 'player' form_fields = ['investment_2', 'Perceived_investment_2'] def vars_for_template(self): return dict( actual_round_number=self.subsession.round_number - 3, other_player_role=self.player.other_player().role ) class PRp2Wait(WaitPage): def after_all_players_arrive(self): self.group.set_payoffs_2() class Results(Page): def vars_for_template(self): return dict( other_player_investment=self.player.other_player().investment, other_player_role=self.player.other_player().role, actual_round_number=self.subsession.round_number - 3 ) class Results2(Page): def vars_for_template(self): return dict( other_player_investment_2=self.player.other_player().investment_2, other_player_role=self.player.other_player().role, actual_round_number=self.subsession.round_number - 3 ) class ResultsWaitPageFinal(WaitPage): def after_all_players_arrive(self): self.group.set_payoffs_total() class Final_Results(Page): def vars_for_template(self): return dict( player_in_all_rounds_rev=reversed(self.player.in_all_rounds()) ) class PaymentWaitPage(WaitPage): def is_displayed(self): return self.subsession.round_number == Constants.num_rounds def after_all_players_arrive(self): self.group.set_payoffs_total() class Payment(Page): def is_displayed(self): return self.subsession.round_number == Constants.num_rounds def vars_for_template(self): return { 'playerpay1': self.player.in_round(5).payoff_total, 'currencypay1': self.player.in_round(5).payoff_total.to_real_world_currency(self.session), 'x' : self.participant.payoff } page_sequence = [Welcome, PartOne, Rounds, Task, ChanceToWin, Types, TypeWait, YourType, Chance, Payoff, Start,PRp1, PRp1Wait, Results, PRp2, PRp2Wait, Results2, ResultsWaitPageFinal, Final_Results, Payment ]