from ._builtin import Page, WaitPage from otree.api import Currency as c, currency_range from .models import Constants import random import time class Instructions_3(Page): def is_displayed(self): return self.subsession.round_number == 1 class Decision1(Page): form_model = 'player' form_fields = ['decision1'] def vars_for_template(self): me = self.player return { 'round': me.round_number, } class Decision2(Page): form_model = 'player' form_fields = ['decision2'] def vars_for_template(self): me = self.player return { 'round': me.round_number, } class ResultsWaitPage(WaitPage): def after_all_players_arrive(self): for p in self.group.get_players(): p.set_payoff() class Results(Page): def vars_for_template(self): me = self.player opponent = me.other_player() dec1 = {'C1': 0, 'C2': 1, 'C3': 2} dec2 = {'B1': 1.5, 'B2': 2, 'B3': 2.5, 'B4': 4} print(opponent.payoff) return { 'round': me.round_number, 'payoff': me.payoff, 'CM': dec1[me.decision1], 'BM': dec2[me.decision2], 'CO': dec1[opponent.decision1], 'BO': dec2[opponent.decision2], 'opayoff': opponent.payoff, } class EndRound(Page): timeout_seconds = 100 def vars_for_template(self): return dict(dieroll=0, continuation_chance=0, die_threshold_plus_one=0,) def after_all_players_arrive(self): elapsed_time = time.time() - self.session.vars['start_time'] if Constants.time_limit == True and elapsed_time > Constants.time_limit_seconds: self.session.vars['alive'] = False class End(Page): def is_displayed(self): return self.session.vars['alive'] == False or self.subsession.round_number == Constants.last_round page_sequence = [ #Introduction, #Instructions_1, #Instructions_2, Instructions_3, Decision1, Decision2, ResultsWaitPage, Results, #EndRound #End ]