diff --git a/ItemList.py b/ItemList.py index bd0aec53..39c66fa8 100644 --- a/ItemList.py +++ b/ItemList.py @@ -552,19 +552,23 @@ def create_farm_locations(world, player): # and hopefully access to more permanent farm locations def create_and_fill_location(region_name, loc_description, item_name): - region = world.get_region(region_name, player) - loc = Location(player, f'{region_name} {loc_description}', 0, region) - loc.type = LocationType.Logical - loc.parent_region = region - loc.event = True - loc.locked = True - loc.address = None - - world.push_item(loc, ItemFactory(item_name, player), False) - - region.locations.append(loc) - world.dynamic_locations.append(loc) + loc = world.get_location_unsafe(f'{region_name} {loc_description}', player) + if loc: + loc.access_rule = lambda state: True + world.spoiler.suppress_spoiler_locations.append(loc.name) + else: + region = world.get_region(region_name, player) + loc = Location(player, f'{region_name} {loc_description}', 0, region) + loc.type = LocationType.Logical + loc.parent_region = region + loc.event = True + loc.locked = True + loc.address = None + world.push_item(loc, ItemFactory(item_name, player), False) + + region.locations.append(loc) + world.dynamic_locations.append(loc) return loc from Rules import set_rule, add_rule, add_bunny_rule diff --git a/Main.py b/Main.py index e7d296ce..8e7eaa97 100644 --- a/Main.py +++ b/Main.py @@ -554,6 +554,7 @@ def copy_world(world): from OverworldShuffle import categorize_world_regions for player in range(1, world.players + 1): categorize_world_regions(ret, player) + create_farm_locations(ret, player) set_rules(ret, player) return ret