from otree.api import Currency as c, currency_range from . import pages from ._builtin import Bot from .models import Constants class PlayerBot(Bot): def play_round(self): if self.round_number == 1: if self.player.id_in_group == 1: yield (pages.greetings_P1) yield (pages.Cake_cutting, {"cut_value": 50}) elif self.player.id_in_group == 2: yield (pages.greetings_P2) yield (pages.Cake_choose, {"choice": False}) if self.player.id_in_group == 1: assert self.player.payoff == c(120) yield (pages.Results_R_P1) elif self.player.id_in_group == 2: assert self.player.payoff == c(0) yield (pages.Results_L_P2) elif self.round_number >= 2 and self.round_number <= 5: if self.player.id_in_group == 1: yield (pages.Cake_cutting, {"cut_value": 50}) elif self.player.id_in_group == 2: yield (pages.Cake_choose, {"choice": True}) if self.player.id_in_group == 1: assert self.player.payoff == c(0) yield (pages.Results_L_P1) elif self.player.id_in_group == 2: assert self.player.payoff == c(120) yield (pages.Results_R_P2) elif self.round_number == 6: if self.player.id_in_group == 1: yield (pages.Cake_cutting_full_info, {"cut_value": 50}) elif self.player.id_in_group == 2: yield (pages.Cake_choose_full_info, {"choice": False}) if self.player.id_in_group == 1: assert self.player.payoff == c(120) yield (pages.Results_R_P1) elif self.player.id_in_group == 2: assert self.player.payoff == c(0) yield (pages.Results_L_P2) elif self.round_number == 7: if self.player.id_in_group == 1: yield (pages.Cake_cutting_full_info, {"cut_value": 50}) elif self.player.id_in_group == 2: yield (pages.Cake_choose_full_info, {"choice": True}) if self.player.id_in_group == 1: assert self.player.payoff == c(0) yield (pages.Results_L_P1) elif self.player.id_in_group == 2: assert self.player.payoff == c(120) yield (pages.Results_R_P2)