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

@@ -199,11 +199,16 @@ item_table: Dict[str, ItemData] = {
'Chaos Trap': ItemData('Trap', 1337186, 0, trap=True),
'Neurotoxin Trap': ItemData('Trap', 1337187, 0, trap=True),
'Bee Trap': ItemData('Trap', 1337188, 0, trap=True),
'Laser Access A': ItemData('Relic', 1337189, progression=True),
'Laser Access I': ItemData('Relic', 1337191, progression=True),
'Laser Access M': ItemData('Relic', 1337192, progression=True),
'Laser Access A': ItemData('Laser Access', 1337189, progression=True),
'Laser Access I': ItemData('Laser Access', 1337191, progression=True),
'Laser Access M': ItemData('Laser Access', 1337192, progression=True),
'Throw Stun Trap': ItemData('Trap', 1337193, 0, trap=True),
# 1337194 - 1337248 Reserved
'Lab Access Genza': ItemData('Lab Access', 1337194, progression=True),
'Lab Access Experiment': ItemData('Lab Access', 1337195, progression=True),
'Lab Access Research': ItemData('Lab Access', 1337196, progression=True),
'Lab Access Dynamo': ItemData('Lab Access', 1337197, progression=True),
'Drawbridge Key': ItemData('Key', 1337198, progression=True),
# 1337199 - 1337248 Reserved
'Max Sand': ItemData('Stat', 1337249, 14)
}
@@ -259,6 +264,17 @@ starter_progression_items: Tuple[str, ...] = (
'Mysterious Warp Beacon'
)
pyramid_start_starter_progression_items: Tuple[str, ...] = (
'Succubus Hairpin',
'Succubus Hairpin',
'Twin Pyramid Key',
'Celestial Sash',
'Lightwall',
'Modern Warp Beacon',
'Timeworn Warp Beacon',
'Mysterious Warp Beacon'
)
filler_items: Tuple[str, ...] = (
'Potion',
'Ether',
@@ -280,4 +296,4 @@ def get_item_names_per_category() -> Dict[str, Set[str]]:
for name, data in item_table.items():
categories.setdefault(data.category, set()).add(name)
return categories
return categories