mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 20:21:32 -06:00
Stardew Valley: Replace current naive entrance rando with GER (#4624)
This commit is contained in:
@@ -1,9 +1,10 @@
|
||||
import logging
|
||||
import typing
|
||||
from random import Random
|
||||
from typing import Dict, Any, Iterable, Optional, List, TextIO
|
||||
from typing import Dict, Any, Optional, List, TextIO
|
||||
|
||||
from BaseClasses import Region, Entrance, Location, Item, Tutorial, ItemClassification, MultiWorld, CollectionState
|
||||
import entrance_rando
|
||||
from BaseClasses import Region, Location, Item, Tutorial, ItemClassification, MultiWorld, CollectionState
|
||||
from Options import PerGameCommonOptions
|
||||
from worlds.AutoWorld import World, WebWorld
|
||||
from .bundles.bundle_room import BundleRoom
|
||||
@@ -21,7 +22,7 @@ from .options.forced_options import force_change_options_if_incompatible
|
||||
from .options.option_groups import sv_option_groups
|
||||
from .options.presets import sv_options_presets
|
||||
from .options.worlds_group import apply_most_restrictive_options
|
||||
from .regions import create_regions
|
||||
from .regions import create_regions, prepare_mod_data
|
||||
from .rules import set_rules
|
||||
from .stardew_rule import True_, StardewRule, HasProgressionPercent
|
||||
from .strings.ap_names.event_names import Event
|
||||
@@ -124,18 +125,13 @@ class StardewValleyWorld(World):
|
||||
self.content = create_content(self.options)
|
||||
|
||||
def create_regions(self):
|
||||
def create_region(name: str, exits: Iterable[str]) -> Region:
|
||||
region = Region(name, self.player, self.multiworld)
|
||||
region.exits = [Entrance(self.player, exit_name, region) for exit_name in exits]
|
||||
return region
|
||||
def create_region(name: str) -> Region:
|
||||
return Region(name, self.player, self.multiworld)
|
||||
|
||||
world_regions, world_entrances, self.randomized_entrances = create_regions(create_region, self.random, self.options, self.content)
|
||||
world_regions = create_regions(create_region, self.options, self.content)
|
||||
|
||||
self.logic = StardewLogic(self.player, self.options, self.content, world_regions.keys())
|
||||
self.modified_bundles = get_all_bundles(self.random,
|
||||
self.logic,
|
||||
self.content,
|
||||
self.options)
|
||||
self.modified_bundles = get_all_bundles(self.random, self.logic, self.content, self.options)
|
||||
|
||||
def add_location(name: str, code: Optional[int], region: str):
|
||||
region: Region = world_regions[region]
|
||||
@@ -308,6 +304,11 @@ class StardewValleyWorld(World):
|
||||
def set_rules(self):
|
||||
set_rules(self)
|
||||
|
||||
def connect_entrances(self) -> None:
|
||||
no_target_groups = {0: [0]}
|
||||
placement = entrance_rando.randomize_entrances(self, coupled=True, target_group_lookup=no_target_groups)
|
||||
self.randomized_entrances = prepare_mod_data(placement)
|
||||
|
||||
def generate_basic(self):
|
||||
pass
|
||||
|
||||
|
||||
Reference in New Issue
Block a user