from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants import time from main.scenarios import GraphType, VehicleType class Trolley(Page): form_model = 'player' form_fields = ['x_left_initial', 'y_left_initial', 'x_right_initial', 'y_right_initial', 'x_left', 'y_left', 'x_right', 'y_right'] def vars_for_template(self): p = self.player people_left = p.people_left people_right = p.people_right people_middle = p.people_middle vehicle_left = p.vehicle_left vehicle_right = p.vehicle_right user_left = vehicle_left + str(people_left) + "L.png" user_right = vehicle_right + str(people_right) + "R.png" user_middle = "AV" + str(people_middle) + ".png" skulls_left = range(0, people_left) skulls_right = range(0, people_right) return dict( user_left=user_left, user_middle=user_middle, user_right=user_right, people_left=people_left, people_right=people_right, people_middle=people_middle, skulls_left=skulls_left, skulls_right=skulls_right, is_biker=(vehicle_right == VehicleType.BIKE.value), graph1=p.graph1, graph2=p.graph2, fatality=GraphType.FATALITY.value, accident=GraphType.ACCIDENT.value, no_graph=GraphType.NONE.value ) def before_next_page(self): if 'start_trolley' in self.participant.vars: self.player.duration_decision = round(time.time() - self.participant.vars['start_trolley'], 2) if self.timeout_happened: p = self.player p.x_right = None p.x_left = None p.y_left = None p.y_right = None page_sequence = [Trolley]