#NEWLINE# def __init__( self , main_window , protocol_operations , targets ) : #NEWLINE# #INDENT# self . _operations = protocol_operations #NEWLINE# self . _operations . clear_shots ( ) #NEWLINE# self . _continue_protocol = True #NEWLINE# self . _arena_dimensions = self . _operations . get_projector_arena_dimensions ( ) #NEWLINE# self . _missed_targets = 0 #NEWLINE# self . _bad_hits = 0 #NEWLINE# self . _current_shoot_targets = [ ] #NEWLINE# self . _current_dont_shoot_targets = [ ] #NEWLINE# self . _wait_event = threading . Event ( ) #NEWLINE# self . _operations . add_shot_list_columns ( ( 'Target' , ) , [ 60 ] ) #NEWLINE# if ( not self . _operations . projector_arena_visible ( ) ) : #NEWLINE# #INDENT# self . _operations . say ( 'This protocol only works on the projector arena.' ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# self . _add_targets ( self . _current_shoot_targets , 'training_protocols/shoot_dont_shoot/shoot.target' ) #NEWLINE# self . _add_targets ( protocol_operations . _current_dont_shoot_targets , 'training_protocols/shoot_dont_shoot/dont_shoot.target' ) #NEWLINE# self . _operations . show_text_on_feed ( 'missed targets: 0\nbad hits: 0' ) #NEWLINE# self . _new_round_thread = Thread ( target = self . _new_round , name = 'new_round_thread' ) #NEWLINE# self . _new_round_thread . start ( )