def set_walkthrough()

in textworld/generator/maker.py [0:0]


    def set_walkthrough(self, commands: List[str]):
        with make_temp_directory() as tmpdir:
            game_file = self.compile(pjoin(tmpdir, "set_walkthrough.ulx"))
            env = textworld.start(game_file, infos=EnvInfos(last_action=True, intermediate_reward=True))
            state = env.reset()

            events = {event: event.copy() for quest in self.quests for event in quest.win_events}
            event_progressions = [ep for qp in state._game_progression.quest_progressions for ep in qp.win_events]

            done = False
            actions = []
            for i, cmd in enumerate(commands):
                if done:
                    msg = "Game has ended before finishing playing all commands."
                    raise ValueError(msg)

                events_triggered = [ep.triggered for ep in event_progressions]

                state, score, done = env.step(cmd)
                actions.append(state._last_action)

                for was_triggered, ep in zip(events_triggered, event_progressions):
                    if not was_triggered and ep.triggered:
                        events[ep.event].actions = list(actions)
                        events[ep.event].commands = commands[:i + 1]

        for k, v in events.items():
            k.actions = v.actions
            k.commands = v.commands