def __evaluate_inspect(condition_tmp: Condition = None, game_status_tmp: GameStatus = None): evaluated = False LoggingController.logger.debug( "Evaluating: " + str(inspect.currentframe().f_code.co_name)) # verify size of elements in the condition if len(condition_tmp.list) >= 2: inspect_type = condition_tmp.list[0] artifact_id = condition_tmp.list[1] store_name = condition_tmp.list[2] fourth_element = condition_tmp.list[3] if (len(condition_tmp.list) == 3) else None fifth_element = condition_tmp.list[4] if (len(condition_tmp.list) == 4) else None player = fourth_element if ( fifth_element is not None and Helpers.is_player( game_status_tmp, fourth_element)) else None role = fifth_element if (player is None and Helpers.is_role( game_status_tmp, fourth_element)) else None commitment_timing = fifth_element if (fifth_element is not None) else None data = { 'inspect_type': inspect_type, 'artifact_id': artifact_id, 'store_name': store_name, 'player': player, 'role': role, 'commitment_timing': commitment_timing } if inspect_type in InspectEvaluator.__options: evaluated = InspectEvaluator.__options[inspect_type].__func__( data, evaluated, game_status_tmp) return evaluated
def __evaluate_move(effect_tmp: Effect = None, game_status_tmp: GameStatus = None): LoggingController.logger.debug( "Evaluating: " + str(inspect.currentframe().f_code.co_name)) # verify size of elements in the condition if len(effect_tmp.list) >= 3: permit_mandate = effect_tmp.list[0] which_move = effect_tmp.list[1] move_name = effect_tmp.list[2] fourth_element = None artifact = None player = None role = None if len(effect_tmp.list) == 4: fourth_element = effect_tmp.list[3] if Helpers.is_player(game_status_tmp, fourth_element): player = fourth_element elif Helpers.is_role(game_status_tmp, fourth_element): role = fourth_element if player is None and role is None: artifact = fourth_element elif len(effect_tmp.list) == 5: artifact = effect_tmp.list[3] player_or_role = effect_tmp.list[4] if Helpers.is_player(game_status_tmp, player_or_role): player = fourth_element elif Helpers.is_role(game_status_tmp, player_or_role): role = fourth_element data = { 'permit_mandate': permit_mandate, 'which_move': which_move, 'move_name': move_name, 'artifact': artifact, 'player': player, 'role': role } if permit_mandate in MoveEvaluator.__options: game_status_tmp = MoveEvaluator.__options[ permit_mandate].__func__(game_status_tmp, data) return game_status_tmp