Quick fixes for beta 0.5.0 release: template options and LPC logic.

This commit is contained in:
massimilianodelliubaldini
2025-02-16 12:19:49 -05:00
parent 263311d641
commit edc5f9e8a4
2 changed files with 13 additions and 6 deletions

View File

@@ -69,8 +69,9 @@ class JakAndDaxterSettings(settings.Group):
root_directory: RootDirectory = RootDirectory(
"%programfiles%/OpenGOAL-Launcher/features/jak1/mods/JakMods/archipelagoal")
auto_detect_root_directory: AutoDetectRootDirectory | bool = True
enforce_friendly_options: EnforceFriendlyOptions | bool = True
# Don't ever change these type hints again.
auto_detect_root_directory: typing.Union[AutoDetectRootDirectory, bool] = True
enforce_friendly_options: typing.Union[EnforceFriendlyOptions, bool] = True
class JakAndDaxterWebWorld(WebWorld):

View File

@@ -64,12 +64,16 @@ def build_regions(level_name: str, world: JakAndDaxterWorld) -> list[JakAndDaxte
or state.has_all({"Punch", "Punch Uppercut"}, player)))
capsule_room.add_fly_locations([327729])
# You can slide to the bottom of the city, but if you spawn down there, you have no momentum from the slide.
# So you need some kind of jump to reach this cell.
second_slide = JakAndDaxterRegion("Second Slide", player, multiworld, level_name, 31)
second_slide.add_cell_locations([46], access_rule=lambda state:
state.has_any({"Double Jump", "Jump Kick"}, player)
or state.has_all({"Punch", "Punch Uppercut"}, player))
# If you can enter the helix room, you can jump or fight your way to the top. But you need some kind of movement
# to enter it in the first place.
helix_room = JakAndDaxterRegion("Helix Chamber", player, multiworld, level_name, 30)
helix_room.add_cell_locations([46], access_rule=lambda state:
state.has_any({"Double Jump", "Jump Kick"}, player)
or state.has_all({"Punch", "Punch Uppercut"}, player))
helix_room.add_cell_locations([50], access_rule=lambda state:
state.has("Double Jump", player)
or can_fight(state, player))
@@ -109,7 +113,9 @@ def build_regions(level_name: str, world: JakAndDaxterWorld) -> list[JakAndDaxte
capsule_room.connect(main_area, rule=lambda state: # Chamber goes back to surface.
state.has("Jump Dive", player)) # (Assume one-way for sanity.)
second_slide.connect(helix_room) # Slide.
second_slide.connect(helix_room, rule=lambda state: # As stated above, you need to jump
state.has_any({"Double Jump", "Jump Kick"}, player) # across the dark eco pool before
or state.has_all({"Punch", "Punch Uppercut"}, player)) # you can climb the helix room.
helix_room.connect(quick_platforms, rule=lambda state: # Escape to get back to here.
state.has("Double Jump", player) # Capsule is a convenient exit to the level.