mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 12:11:33 -06:00
Stardew Valley: Fix some determinism issues with entrance rando when playing with mods (#4812)
This commit is contained in:
@@ -21,7 +21,7 @@ def choose_content_packs(player_options: options.StardewValleyOptions):
|
||||
if player_options.special_order_locations & options.SpecialOrderLocations.value_qi:
|
||||
active_packs.append(content_packs.qi_board_content_pack)
|
||||
|
||||
for mod in player_options.mods.value:
|
||||
for mod in sorted(player_options.mods.value):
|
||||
active_packs.append(content_packs.by_mod[mod])
|
||||
|
||||
return active_packs
|
||||
|
@@ -34,7 +34,7 @@ class RegionData:
|
||||
merged_exits.extend(self.exits)
|
||||
if exits is not None:
|
||||
merged_exits.extend(exits)
|
||||
merged_exits = list(set(merged_exits))
|
||||
merged_exits = sorted(set(merged_exits))
|
||||
return RegionData(self.name, merged_exits, is_ginger_island=self.is_ginger_island)
|
||||
|
||||
def get_without_exits(self, exits_to_remove: Set[str]):
|
||||
|
@@ -521,7 +521,7 @@ def create_final_regions(world_options) -> List[RegionData]:
|
||||
final_regions.extend(vanilla_regions)
|
||||
if world_options.mods is None:
|
||||
return final_regions
|
||||
for mod in world_options.mods.value:
|
||||
for mod in sorted(world_options.mods.value):
|
||||
if mod not in ModDataList:
|
||||
continue
|
||||
for mod_region in ModDataList[mod].regions:
|
||||
@@ -747,8 +747,7 @@ def swap_one_random_connection(regions_by_name, connections_by_name, randomized_
|
||||
randomized_connections_already_shuffled = {connection: randomized_connections[connection]
|
||||
for connection in randomized_connections
|
||||
if connection != randomized_connections[connection]}
|
||||
unreachable_regions_names_leading_somewhere = tuple([region for region in unreachable_regions
|
||||
if len(regions_by_name[region].exits) > 0])
|
||||
unreachable_regions_names_leading_somewhere = [region for region in sorted(unreachable_regions) if len(regions_by_name[region].exits) > 0]
|
||||
unreachable_regions_leading_somewhere = [regions_by_name[region_name] for region_name in unreachable_regions_names_leading_somewhere]
|
||||
unreachable_regions_exits_names = [exit_name for region in unreachable_regions_leading_somewhere for exit_name in region.exits]
|
||||
unreachable_connections = [connections_by_name[exit_name] for exit_name in unreachable_regions_exits_names]
|
||||
|
@@ -2,7 +2,7 @@ import argparse
|
||||
import json
|
||||
|
||||
from .. import setup_solo_multiworld
|
||||
from ..options.presets import allsanity_mods_6_x_x
|
||||
from ..options.presets import allsanity_mods_6_x_x_exclude_disabled
|
||||
from ...options import FarmType, EntranceRandomization
|
||||
|
||||
if __name__ == "__main__":
|
||||
@@ -12,7 +12,7 @@ if __name__ == "__main__":
|
||||
args = parser.parse_args()
|
||||
seed = args.seed
|
||||
|
||||
options = allsanity_mods_6_x_x()
|
||||
options = allsanity_mods_6_x_x_exclude_disabled()
|
||||
options[FarmType.internal_name] = FarmType.option_standard
|
||||
options[EntranceRandomization.internal_name] = EntranceRandomization.option_buildings
|
||||
multi_world = setup_solo_multiworld(options, seed=seed)
|
||||
|
Reference in New Issue
Block a user