TUNIC: Fix a few missing tricks in logic (#4132)

* Add missing connection to the furnace entry by west garden

* Add missing connection to the furnace entry by west garden

* Add missing hard ls for ruined passage door

* Allow shield for LS

* Split PR into two

* Split PR into two

* Split PR into two

* Add dark tomb ice grapple through the wall
This commit is contained in:
Scipio Wright 2024-11-18 08:39:58 -05:00 committed by GitHub
parent 4b80b786e2
commit 01c6037562
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 9 additions and 6 deletions

View File

@ -807,7 +807,7 @@ traversal_requirements: Dict[str, Dict[str, List[List[str]]]] = {
[],
# drop a rudeling, icebolt or ice bomb
"Overworld to West Garden from Furnace":
[["IG3"]],
[["IG3"], ["LS1"]],
},
"East Overworld": {
"Above Ruined Passage":

View File

@ -501,9 +501,11 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_
regions["Dark Tomb Upper"].connect(
connecting_region=regions["Dark Tomb Entry Point"])
# ice grapple through the wall, get the little secret sound to trigger
regions["Dark Tomb Upper"].connect(
connecting_region=regions["Dark Tomb Main"],
rule=lambda state: has_ladder("Ladder in Dark Tomb", state, world))
rule=lambda state: has_ladder("Ladder in Dark Tomb", state, world)
or has_ice_grapple_logic(False, IceGrappling.option_hard, state, world))
regions["Dark Tomb Main"].connect(
connecting_region=regions["Dark Tomb Upper"],
rule=lambda state: has_ladder("Ladder in Dark Tomb", state, world))
@ -779,12 +781,10 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_
regions["Fortress East Shortcut Upper"].connect(
connecting_region=regions["Fortress East Shortcut Lower"])
# nmg: can ice grapple upwards
regions["Fortress East Shortcut Lower"].connect(
connecting_region=regions["Fortress East Shortcut Upper"],
rule=lambda state: has_ice_grapple_logic(True, IceGrappling.option_easy, state, world))
# nmg: ice grapple through the big gold door, can do it both ways
regions["Eastern Vault Fortress"].connect(
connecting_region=regions["Eastern Vault Fortress Gold Door"],
rule=lambda state: state.has_all({"Activate Eastern Vault West Fuses",
@ -807,7 +807,6 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_
regions["Fortress Hero's Grave Region"].connect(
connecting_region=regions["Fortress Grave Path"])
# nmg: ice grapple from upper grave path to lower
regions["Fortress Grave Path Upper"].connect(
connecting_region=regions["Fortress Grave Path"],
rule=lambda state: has_ice_grapple_logic(True, IceGrappling.option_easy, state, world))
@ -1139,6 +1138,9 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_
for portal_dest in region_info.portals:
ls_connect(ladder_region, "Overworld Redux, " + portal_dest)
# convenient staircase means this one is easy difficulty, even though there's an elevation change
ls_connect("LS Elev 0", "Overworld Redux, Furnace_gyro_west")
# connect ls elevation regions to regions where you can get an enemy to knock you down, also well rail
if options.ladder_storage >= LadderStorage.option_medium:
for ladder_region, region_info in ow_ladder_groups.items():
@ -1154,6 +1156,7 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_
if options.ladder_storage >= LadderStorage.option_hard:
ls_connect("LS Elev 1", "Overworld Redux, EastFiligreeCache_")
ls_connect("LS Elev 2", "Overworld Redux, Town_FiligreeRoom_")
ls_connect("LS Elev 2", "Overworld Redux, Ruins Passage_west")
ls_connect("LS Elev 3", "Overworld Redux, Overworld Interiors_house")
ls_connect("LS Elev 5", "Overworld Redux, Temple_main")

View File

@ -17,7 +17,7 @@ ow_ladder_groups: Dict[str, OWLadderInfo] = {
["Overworld Beach"]),
# also the east filigree room
"LS Elev 1": OWLadderInfo({"Ladders near Weathervane", "Ladders in Overworld Town", "Ladder to Swamp"},
["Furnace_gyro_lower", "Swamp Redux 2_wall"],
["Furnace_gyro_lower", "Furnace_gyro_west", "Swamp Redux 2_wall"],
["Overworld Tunnel Turret"]),
# also the fountain filigree room and ruined passage door
"LS Elev 2": OWLadderInfo({"Ladders near Weathervane", "Ladders to West Bell"},