예제 #1
0
파일: resolver.py 프로젝트: xisi/randovania
def resolve(
        configuration: LayoutConfiguration,
        game: GameDescription,
        patches: GamePatches,
        status_update: Optional[Callable[[str],
                                         None]] = None) -> Optional[State]:
    if status_update is None:
        status_update = lambda s: None

    logic, starting_state = logic_bootstrap(configuration, game, patches)
    debug.log_resolve_start()
    return advance_depth(starting_state, logic, status_update)
예제 #2
0
async def resolve(
        configuration: BaseConfiguration,
        patches: GamePatches,
        status_update: Optional[Callable[[str],
                                         None]] = None) -> Optional[State]:
    if status_update is None:
        status_update = _quiet_print

    starting_state, logic = setup_resolver(configuration, patches)
    debug.log_resolve_start()

    return await advance_depth(starting_state, logic, status_update)
예제 #3
0
def resolve(configuration: LayoutConfiguration,
            patches: GamePatches,
            status_update: Optional[Callable[[str], None]] = None
            ) -> Optional[State]:
    if status_update is None:
        status_update = _quiet_print

    game = data_reader.decode_data(configuration.game_data)
    event_pickup.replace_with_event_pickups(game)

    new_game, starting_state = logic_bootstrap(configuration, game, patches)
    logic = Logic(new_game, configuration)
    starting_state.resources["add_self_as_requirement_to_resources"] = 1
    debug.log_resolve_start()

    return advance_depth(starting_state, logic, status_update)
예제 #4
0
async def resolve(
        configuration: EchoesConfiguration,
        patches: GamePatches,
        status_update: Optional[Callable[[str],
                                         None]] = None) -> Optional[State]:
    if status_update is None:
        status_update = _quiet_print

    game = copy.deepcopy(
        default_database.game_description_for(configuration.game))
    event_pickup.replace_with_event_pickups(game)

    new_game, starting_state = logic_bootstrap(configuration, game, patches)
    logic = Logic(new_game, configuration)
    starting_state.resources["add_self_as_requirement_to_resources"] = 1
    debug.log_resolve_start()

    return await advance_depth(starting_state, logic, status_update)
예제 #5
0
async def resolve(
        configuration: BaseConfiguration,
        patches: GamePatches,
        status_update: Optional[Callable[[str],
                                         None]] = None) -> Optional[State]:
    if status_update is None:
        status_update = _quiet_print

    game = filtered_database.game_description_for_layout(
        configuration).get_mutable()
    derived_nodes.create_derived_nodes(game)
    bootstrap = game.game.generator.bootstrap

    game.resource_database = bootstrap.patch_resource_database(
        game.resource_database, configuration)
    event_pickup.replace_with_event_pickups(game)

    new_game, starting_state = bootstrap.logic_bootstrap(
        configuration, game, patches)
    logic = Logic(new_game, configuration)
    starting_state.resources["add_self_as_requirement_to_resources"] = 1
    debug.log_resolve_start()

    return await advance_depth(starting_state, logic, status_update)