def take_control()

in agent/decision_modules/idler.py [0:0]


    def take_control(self):
        obs = yield
        action = self.get_action()
        while action is None or not action.recognized():
            action = self.get_action()
        response = yield action
        p_valid = self._valid_detector.action_valid(action, first_sentence(response))
        if isinstance(action, StandaloneAction):
            kg.player_location.add_action_record(action, p_valid, response)
        elif isinstance(action, SingleAction):
            action.entity.add_action_record(action, p_valid, response)
        elif isinstance(action, DoubleAction):
            action.entity1.add_action_record(action, p_valid, response)
        success = (p_valid > 0.5)
        self.record(success)
        dbg("[IDLER]({}) p={:.2f} {} --> {}".format(
            "val" if success else "inv", p_valid, action, response))