TUNIC: Breakable Shuffle (#4489)

* Starting out

* Rules for breakable regions

* make the rest of it work, it's pr ready, boom

* Make it work in not pot shuffle

* Fix after merge

* Fix item id overlap

* Move breakable, grass, and local fill options in yaml

* Fix groups getting overwritten

* Rename, add new breakables

* Rename more stuff

* Time to rename them again

* Make it actually default for breakable shuffle

* Burn the signs down

* Fix west courtyard pot regions

* Fix fortress courtyard and beneath the fortress loc groups again

* More missing loc group conversions

* Replace instances of world.player with player, same for multiworld

* Update worlds/tunic/__init__.py

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

* Remove unused import
This commit is contained in:
Scipio Wright
2025-03-08 11:25:47 -05:00
committed by GitHub
parent ee9bcb84b7
commit 33a75fb2cb
8 changed files with 554 additions and 34 deletions

View File

@@ -855,16 +855,21 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_
regions["Fortress Courtyard Upper"].connect(
connecting_region=regions["Fortress Exterior from Overworld"])
btv_front_to_main = regions["Beneath the Vault Ladder Exit"].connect(
regions["Beneath the Vault Ladder Exit"].connect(
connecting_region=regions["Beneath the Vault Entry Spot"],
rule=lambda state: has_ladder("Ladder to Beneath the Vault", state, world))
regions["Beneath the Vault Entry Spot"].connect(
connecting_region=regions["Beneath the Vault Ladder Exit"],
rule=lambda state: has_ladder("Ladder to Beneath the Vault", state, world))
btv_front_to_main = regions["Beneath the Vault Entry Spot"].connect(
connecting_region=regions["Beneath the Vault Main"],
rule=lambda state: has_ladder("Ladder to Beneath the Vault", state, world)
and has_lantern(state, world)
rule=lambda state: has_lantern(state, world)
# there's some boxes in the way
and (has_melee(state, player) or state.has_any((gun, grapple, fire_wand, laurels), player)))
# on the reverse trip, you can lure an enemy over to break the boxes if needed
regions["Beneath the Vault Main"].connect(
connecting_region=regions["Beneath the Vault Ladder Exit"],
rule=lambda state: has_ladder("Ladder to Beneath the Vault", state, world))
connecting_region=regions["Beneath the Vault Entry Spot"])
regions["Beneath the Vault Main"].connect(
connecting_region=regions["Beneath the Vault Back"])