Timespinner: Support new flags and settings from the randomizer (#4559)

* Timespinner: Add "no hell spiders" enemy rando option that is present in upstream settings

* Timespinner: Prism Break support tweaks (including tracker support)

* Timespinner: Add support for upstream Lock Key Amadeus flag

* Timespinner: Add support for upstream Risky Warps flag

* Timespinner: Add support for upstream Pyramid Start flag

* Timespinner: fix error in lab connectivity logic

* Timespinner: use has_all to simplify one check

Per PR suggestion.

Co-authored-by: Scipio Wright <scipiowright@gmail.com>

* Timespinner: fix apparent logic error inherited from in-rando logic

* Timespinner: adjust "Origins" location logic slightly further to account for a Risky Warps case

* Timespinner: remove the backward compat options for the recent flag additions

* Timespinner: add newly added Gate Keep option from rando

* Timespinner: adjust the laser access colours in the tracker

* Timespinner: fix an item description in the tracker

* Timespinner: based on testing feedback, put Laser Access items in their own category

* Timespinner: add support for new upstream flag Royal Roadblock

* Timespinner: also ensure the new flag gets put in slot data

* Timespinner: fix bug in universal tracker support indicating castle basement is accessible at the lower Rising Tides flooding level

* Timespinner: exclude Talaria Attachment and Timespinner Wheel from pyramid start starter progression items

* Timespinner: fix region logic for the left pyramid warp

* Timespinner: fix main Gyre access logic when Risky Warps warps you behind the lasers

* Timespinner: apply suggested spacing fix

Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>

---------

Co-authored-by: sgrunt <sgrunt1987@gmail.com>
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
This commit is contained in:
sgrunt
2025-03-08 09:54:23 -07:00
committed by GitHub
parent 33a75fb2cb
commit 5662da6f7d
10 changed files with 196 additions and 34 deletions

View File

@@ -60,6 +60,7 @@ class EnemyRando(Choice):
option_scaled = 1
option_unscaled = 2
option_ryshia = 3
option_no_hell_spiders = 4
alias_true = 1
class DamageRando(Choice):
@@ -377,6 +378,26 @@ class PrismBreak(Toggle):
"""Adds 3 Laser Access items to the item pool to remove the lasers blocking the military hangar area
instead of needing to beat the Golden Idol, Aelana, and The Maw."""
display_name = "Prism Break"
class LockKeyAmadeus(Toggle):
"""Lasers in Amadeus' Laboratory are disabled via items, rather than by de-powering the lab. Experiments will spawn in the lab."""
display_name = "Lock Key Amadeus"
class RiskyWarps(Toggle):
"""Expanded free-warp eligible locations, including Azure Queen, Xarion, Amadeus' Laboratory, and Emperor's Tower."""
display_name = "Risky Warps"
class PyramidStart(Toggle):
"""Start in ???. Takes priority over Inverted. Additional chests in Dark Forest and Pyramid. Sandman door behaves as it does in Enter Sandman."""
display_name = "Pyramid Start"
class GateKeep(Toggle):
"""The castle drawbridge starts raised, and can be lowered via item."""
display_name = "Gate Keep"
class RoyalRoadblock(Toggle):
"""The Royal Towers entrance door requires a royal orb (Plasma Orb, Plasma Geyser, or Royal Ring) to enter."""
display_name = "Royal Roadblock"
@dataclass
class TimespinnerOptions(PerGameCommonOptions, DeathLinkMixin):
@@ -415,6 +436,11 @@ class TimespinnerOptions(PerGameCommonOptions, DeathLinkMixin):
unchained_keys: UnchainedKeys
back_to_the_future: PresentAccessWithWheelAndSpindle
prism_break: PrismBreak
lock_key_amadeus: LockKeyAmadeus
risky_warps: RiskyWarps
pyramid_start: PyramidStart
gate_keep: GateKeep
royal_roadblock: RoyalRoadblock
trap_chance: TrapChance
traps: Traps