Skip to content

Commit

Permalink
Expanded Late Basin of Vows and Late DLC (ArchipelagoMW#6)
Browse files Browse the repository at this point in the history
  • Loading branch information
Exempt-Medic authored Apr 3, 2024
1 parent 5bb391b commit 6c79f7d
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 4 deletions.
24 changes: 20 additions & 4 deletions worlds/dark_souls_3/Options.py
Original file line number Diff line number Diff line change
Expand Up @@ -308,14 +308,30 @@ class EarlySmallLothricBanner(Choice):
default = option_off


class LateBasinOfVowsOption(Toggle):
"""This option makes it so the Basin of Vows is still randomized, but guarantees you that you wont have to venture into Lothric Castle to find your Small Lothric Banner to get out of High Wall of Lothric. So you may find Basin of Vows early, but you wont have to fight Dancer to find your Small Lothric Banner."""
class LateBasinOfVowsOption(Choice):
"""This option makes it so the Basin of Vows is still randomized, but you can choose the requirements to venture into Lothric Castle.
"Off": You may have to enter Lothric Castle and the areas beyond it before finding your Small Lothric Banner.
"After Small Lothric Banner": You are guaranteed to find your Small Lothric Banner before needing to enter Lothric Castle.
"After Small Doll": You are guaranteed to find your Small Lothric Banner and your Small Doll before needing to enter Lothric Castle."""
display_name = "Late Basin of Vows"
option_off = 0
alias_false = 0
option_after_small_lothric_banner = 1
alias_true = 1
option_after_small_doll = 2


class LateDLCOption(Toggle):
"""This option makes it so you are guaranteed to find your Small Doll without having to venture off into the DLC, effectively putting anything in the DLC in logic after finding both Contraption Key and Small Doll, and being able to get into Irithyll of the Boreal Valley."""
class LateDLCOption(Choice):
"""This option makes it so the Small Doll is still randomized, but you can choose the requirements to venture into Painted World of Ariandel.
"Off": You may have to enter Ariandel and the areas beyond it before finding your Small Doll.
"After Small Doll": You are guaranteed to find your Small Doll before needing to enter Ariandel.
"After Basin": You are guaranteed to find your Small Doll and your Basin of Vows before needing to enter Ariandel."""
display_name = "Late DLC"
option_off = 0
alias_false = 0
option_after_small_doll = 1
alias_true = 1
option_after_basin = 2


class EnableDLCOption(Toggle):
Expand Down
9 changes: 9 additions & 0 deletions worlds/dark_souls_3/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -583,6 +583,9 @@ def set_rules(self) -> None:
and self._has_any_scroll(state)
))

if self.options.late_basin_of_vows > 1: # After Small Doll
self._add_entrance_rule("Lothric Castle", "Small Doll")

# DLC Access Rules Below
if self.options.enable_dlc:
self._add_entrance_rule("Painted World of Ariandel (Before Contraption)", "CD -> PW1")
Expand All @@ -601,6 +604,9 @@ def set_rules(self) -> None:
"Painted World of Ariandel (Before Contraption)",
lambda state: state.has("Small Doll", self.player) and self._has_any_scroll(state))

if self.options.late_dlc > 1: # After Basin
self._add_entrance_rule("Painted World of Ariandel (Before Contraption)", "Basin of Vows")

# Define the access rules to some specific locations
if self._is_location_available("FS: Lift Chamber Key - Leonhard"):
self._add_location_rule("HWL: Red Eye Orb - wall tower, miniboss",
Expand Down Expand Up @@ -646,6 +652,9 @@ def set_rules(self) -> None:
and self._has_any_scroll(state)
))

if self.options.late_basin_of_vows > 1: # After Small Doll
self._add_location_rule("HWL: Soul of the Dancer", "Small Doll")

self._add_location_rule([
"LC: Grand Archives Key - by Grand Archives door, after PC and AL bosses",
"LC: Gotthard Twinswords - by Grand Archives door, after PC and AL bosses"
Expand Down

0 comments on commit 6c79f7d

Please sign in to comment.