diff --git a/worlds/dark_souls_3/__init__.py b/worlds/dark_souls_3/__init__.py index a1ad2f6a70..8c9716c03d 100644 --- a/worlds/dark_souls_3/__init__.py +++ b/worlds/dark_souls_3/__init__.py @@ -90,6 +90,22 @@ class DarkSouls3World(World): self.created_regions = set() self.all_excluded_locations.update(self.options.exclude_locations.value) + # This code doesn't work because tests don't verify options + # Don't consider disabled locations to be AP-excluded + # if not self.options.enable_dlc: + # self.options.exclude_locations.value = { + # location + # for location in self.options.exclude_locations + # if not location_dictionary[location].dlc + # } + + # if not self.options.enable_ngp: + # self.options.exclude_locations.value = { + # location for + # location in self.options.exclude_locations + # if not location_dictionary[location].ngp + # } + # Inform Universal Tracker where Yhorm is being randomized to. if hasattr(self.multiworld, "re_gen_passthrough"): if "Dark Souls III" in self.multiworld.re_gen_passthrough: @@ -264,6 +280,13 @@ class DarkSouls3World(World): ): new_location.progress_type = LocationProgressType.EXCLUDED else: + # Don't consider non-randomized locations to be AP-excluded + if location.name in excluded: + excluded.remove(location.name) + # Only remove from all_excluded if excluded does not have priority over missable + if not (self.options.missable_location_behavior < self.options.excluded_location_behavior): + self.all_excluded_locations.remove(location.name) + # Don't allow missable duplicates of progression items to be expected progression. if location.name in self.missable_dupe_prog_locs: continue @@ -283,11 +306,6 @@ class DarkSouls3World(World): parent = new_region, ) new_location.place_locked_item(event_item) - if location.name in excluded: - excluded.remove(location.name) - # Only remove from all_excluded if excluded does not have priority over missable - if not (self.options.missable_location_behavior < self.options.excluded_location_behavior): - self.all_excluded_locations.remove(location.name) new_region.locations.append(new_location) @@ -1357,7 +1375,7 @@ class DarkSouls3World(World): if self.yhorm_location != default_yhorm_location: text += f"\nYhorm takes the place of {self.yhorm_location.name} in {self.player_name}'s world\n" - if self.options.excluded_location_behavior == "allow_useful": + if self.options.excluded_location_behavior != "forbid_useful": text += f"\n{self.player_name}'s world excluded: {sorted(self.all_excluded_locations)}\n" if text: