from otree.api import Currency as c, currency_range, expect, Bot from . import * import random class PlayerBot(Bot): def play_round(self): if self.player.round_number == 1: yield P00_Welcome #if self.player.round_number == 1 or self.player.round_number == C.WEAK_TO_STRONG_CHANGE_ROUND: # yield P01_OutsideOptionType if self.player.subsession.treatment_name == 'Barg1': yield Submission(P02_Bargaining_B1, check_html=False) if self.player.subsession.treatment_name == 'Barg2': yield Submission(P02_Bargaining_B2, check_html=False) if self.player.subsession.treatment_name in C.TREATMENTS_M: answers_P02_Bargaining1_O1_O2_SO1_SO2 = {} answers_P02_Bargaining1_O1_O2_SO1_SO2['submission_1_objects_A'] = random.randint(1,self.player.subsession.objects_A) yield Submission(P02_Bargaining1_O1_O2_SO1_SO2, answers_P02_Bargaining1_O1_O2_SO1_SO2) if self.player.subsession.treatment_name in C.TREATMENTS_M and self.player.timed_out == 0 and self.player.group.get_player_by_id( self.player.player_matched ).timed_out == 0 and self.player.breakdown_happened == 0: answers_P03_Mechanism1_O1_O2_SO1_SO2 = {} answers_P03_Mechanism1_O1_O2_SO1_SO2['accepted_suggestion_1'] = random.randint(0,1) yield Submission(P03_Mechanism1_O1_O2_SO1_SO2, answers_P03_Mechanism1_O1_O2_SO1_SO2) if self.player.subsession.treatment_name in C.TREATMENTS_S and self.player.timed_out == 0 and self.player.group.get_player_by_id( self.player.player_matched ).timed_out == 0 and self.player.second_chance == 1: answers_P04_Bargaining2_SO1_SO2 = {} answers_P04_Bargaining2_SO1_SO2['submission_2_objects_A'] = random.randint(1,self.player.subsession.objects_A) yield Submission(P04_Bargaining2_SO1_SO2, answers_P04_Bargaining2_SO1_SO2) if self.player.subsession.treatment_name in C.TREATMENTS_S and self.player.timed_out == 0 and self.player.group.get_player_by_id( self.player.player_matched ).timed_out == 0 and self.player.second_chance == 1 and self.player.breakdown_happened == 0: answers_P05_Mechanism2_SO1_SO2 = {} answers_P05_Mechanism2_SO1_SO2['accepted_suggestion_2'] = random.randint(0,1) yield Submission(P05_Mechanism2_SO1_SO2, answers_P05_Mechanism2_SO1_SO2) if self.player.subsession.treatment_name == 'Barg1': yield P06_Results_B1 if self.player.subsession.treatment_name == 'Barg2': yield P06_Results_B2 if self.player.subsession.treatment_name == 'ODR1': yield P06_Results_O1 if self.player.subsession.treatment_name == 'ODR2': yield P06_Results_O2 if self.player.subsession.treatment_name == 'SeqODR1': yield P06_Results_SO1 if self.player.subsession.treatment_name == 'SeqODR2': yield P06_Results_SO2 if self.player.round_number == C.NUM_ROUNDS: yield P07_FinalResults