DS3: Update/Fix Excluded Locations Logging (#5220)

* DS3: Fix Excluded Locations in Spoiler Log

* Update __init__.py

* update wording

* Comment out failing code
This commit is contained in:
Exempt-Medic
2025-11-29 13:04:07 -05:00
committed by GitHub
parent 360a1384f2
commit d88fe99780

View File

@@ -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: