from otree.api import * c = cu doc = '' class Constants(BaseConstants): name_in_url = 'my_trust' players_per_group = 2 num_rounds = 1 multiplier = 3 endowment = 10 class Subsession(BaseSubsession): pass def triple(group): group.tripled_amount = group.sent * Constants.multiplier def set_payoffs(group): p1 = group.get_player_by_id(1) p2 = group.get_player_by_id(2) p1.earnings = Constants.endowment - group.sent + group.sent_back p2.earnings = Constants.endowment + group.tripled_amount - group.sent_back class Group(BaseGroup): sent = models.IntegerField() sent_back = models.IntegerField() tripled_amount = models.IntegerField() class Player(BasePlayer): earnings = models.IntegerField() class Send(Page): form_model = 'group' form_fields = ['sent'] @staticmethod def is_displayed(player): group = player.group return player.id_in_group == 1 class Send_wait(WaitPage): after_all_players_arrive = triple class Send_back(Page): form_model = 'group' form_fields = ['sent_back'] @staticmethod def is_displayed(player): group = player.group return player.id_in_group == 2 class Send_back_wait(WaitPage): after_all_players_arrive = set_payoffs class Results(Page): form_model = 'player' page_sequence = [Send, Send_wait, Send_back, Send_back_wait, Results]