mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 20:21:32 -06:00
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:
@@ -52,11 +52,12 @@ class PreCalculatedWeights:
|
||||
self.flood_lab = False
|
||||
|
||||
self.pyramid_keys_unlock, self.present_key_unlock, self.past_key_unlock, self.time_key_unlock = \
|
||||
self.get_pyramid_keys_unlocks(options, random, self.flood_maw, self.flood_xarion)
|
||||
self.get_pyramid_keys_unlocks(options, random, self.flood_maw, self.flood_xarion, self.flood_lab)
|
||||
|
||||
@staticmethod
|
||||
def get_pyramid_keys_unlocks(options: TimespinnerOptions, random: Random,
|
||||
is_maw_flooded: bool, is_xarion_flooded: bool) -> Tuple[str, str, str, str]:
|
||||
is_maw_flooded: bool, is_xarion_flooded: bool,
|
||||
is_lab_flooded: bool) -> Tuple[str, str, str, str]:
|
||||
|
||||
present_teleportation_gates: List[str] = [
|
||||
"GateKittyBoss",
|
||||
@@ -85,10 +86,15 @@ class PreCalculatedWeights:
|
||||
if not is_maw_flooded:
|
||||
past_teleportation_gates.append("GateMaw")
|
||||
|
||||
if not is_xarion_flooded:
|
||||
present_teleportation_gates.append("GateXarion")
|
||||
if options.risky_warps:
|
||||
past_teleportation_gates.append("GateLakeSereneLeft")
|
||||
present_teleportation_gates.append("GateDadsTower")
|
||||
if not is_xarion_flooded:
|
||||
present_teleportation_gates.append("GateXarion")
|
||||
if not is_lab_flooded:
|
||||
present_teleportation_gates.append("GateLabEntrance")
|
||||
|
||||
if options.inverted:
|
||||
if options.inverted or (options.pyramid_start and not options.back_to_the_future):
|
||||
all_gates: Tuple[str, ...] = present_teleportation_gates
|
||||
else:
|
||||
all_gates: Tuple[str, ...] = past_teleportation_gates + present_teleportation_gates
|
||||
|
Reference in New Issue
Block a user