TUNIC: The Big Refactor (#5195)
* Make it actually return false if it gets to the backup lists and fails them
* Fix stuff after merge
* Add outlet regions, create new regions as needed for them
* Put together part of decoupled and direction pairs
* make direction pairs work
* Make decoupled work
* Make fixed shop work again
* Fix a few minor bugs
* Fix a few minor bugs
* Fix plando
* god i love programming
* Reorder portal list
* Update portal sorter for variable shops
* Add missing parameter
* Some cleanup of prints and functions
* Fix typo
* it's aliiiiiive
* Make seed groups not sync decoupled
* Add test with full-shop plando
* Fix bug with vanilla portals
* Handle plando connections and direction pair errors
* Update plando checking for decoupled
* Fix typo
* Fix exception text to be shorter
* Add some more comments
* Add todo note
* Remove unused safety thing
* Remove extra plando connections definition in options
* Make seed groups in decoupled with overlapping but not fully overlapped plando connections interact nicely without messing with what the entrances look like in the spoiler log
* Fix weird edge case that is technically user error
* Add note to fixed shop
* Fix parsing shop names in UT
* Remove debug print
* Actually make UT work
* multiworld. to world.
* Fix typo from merge
* Make it so the shops show up in the entrance hints
* Fix bug in ladder storage rules
* Remove blank line
* # Conflicts:
# worlds/tunic/__init__.py
# worlds/tunic/er_data.py
# worlds/tunic/er_rules.py
# worlds/tunic/er_scripts.py
# worlds/tunic/rules.py
# worlds/tunic/test/test_access.py
* Fix issues after merge
* Update plando connections stuff in docs
* Make early bushes only contain grass
* Fix library mistake
* Backport changes to grass rando (#20)
* Backport changes to grass rando
* add_rule instead of set_rule for the special cases, add special cases for back of swamp laurels area cause I should've made a new region for the swamp upper entrance
* Remove item name group for grass
* Update grass rando option descriptions
- Also ignore grass fill for single player games
* Ignore grass fill option for solo rando
* Update er_rules.py
* Fix pre fill issue
* Remove duplicate option
* Add excluded grass locations back
* Hide grass fill option from simple ui options page
* Check for start with sword before setting grass rules
* Update worlds/tunic/options.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* has_stick -> has_melee
* has_stick -> has_melee
* Add a failsafe for direction pairing
* Fix playthrough crash bug
* Remove init from logicmixin
* Updates per code review (thanks hesto)
* has_stick to has_melee in newer update
* has_stick to has_melee in newer update
* Exclude grass from get_filler_item_name
- non-grass rando games were accidentally seeing grass items get shuffled in as filler, which is funny but probably shouldn't happen
* Update worlds/tunic/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Apply suggestions from code review
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* change the rest of grass_fill to local_fill
* Filter out grass from filler_items
* remove -> discard
* Update worlds/tunic/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Starting out
* Rules for breakable regions
* # Conflicts:
# worlds/tunic/__init__.py
# worlds/tunic/combat_logic.py
# worlds/tunic/er_data.py
# worlds/tunic/er_rules.py
# worlds/tunic/er_scripts.py
* Cleanup more stuff after merge
* Revert "Cleanup more stuff after merge"
This reverts commit a6ee9a93da8f2fcc4413de6df6927b246017889d.
* Revert "# Conflicts:"
This reverts commit c74ccd74a45b6ad6b9abe6e339d115a0c98baf30.
* Cleanup more stuff after merge
* change has_stick to has_melee
* Update grass list with combat logic regions
* More fixes from combat logic merge
* Fix some dumb stuff (#21)
* Reorganize pre fill for grass
* make the rest of it work, it's pr ready, boom
* Make it work in not pot shuffle
* Merge grass rando
* multiworld -> world get_location, use has_any
* Swap out region for West Garden Before Terry grass
* Adjust west garden rules to add west combat region
* Adjust grass regions for south checkpoint grass
* Adjust grass regions for after terry grass
* Adjust grass regions for west combat grass
* Adjust grass regions for dagger house grass
* Adjust grass regions for south checkpoint grass, adjust regions and rules for some related locations
* Finish the remainder of the west garden grass, reformat ruined atoll a little
* More hex quest updates
- Implement page ability shuffle for hex quest
- Fix keys behind bosses if hex goal is less than 3
- Added check to fix conflicting hex quest options
- Add option to slot data
* Change option comparison
* Change option checking and fix some stuff
- also keep prayer first on low hex counts
* Update option defaulting
* Update option checking
* Fix option assignment again
* Merge in hex hunt
* Merge in changes
* Clean up imports
* Add ability type to UT stuff
* merge it all
* Make local fill work across pot and grass (to be adjusted later)
* Make separate pools for the grass and non-grass fills
* Fix id overlap
* Update option description
* Fix default
* Reorder localfill option desc
* Load the purgatory ones in
* Adjustments after merge
* Fully remove logicrules
* Fix UT support with fixed shop option
* Add breakable shuffle to the ut stuff
* Make it load in a specific number of locations
* Add Silent's spoiler log ability thing
* Fix for groups
* Fix for groups
* Fix typo
* Fix hex quest UT support
* Use .get
* UT fixes, classification fixes
* Rename some locations
* Adjust guard house names
* Adjust guard house names
* Rework create_item
* Fix for plando connections
* Rename, add new breakables
* Rename more stuff
* Time to rename them again
* Fix issue with fixed shop + decoupled
* Put in an exception to catch that error in the future
* Update create_item to match main
* Update spoiler log lines for hex abilities
* Burn the signs down
* Bring over the combat logic fix
* Merge in combat logic fix
* Silly static method thing
* Move a few areas to before well instead of east forest
* Add an all_random hidden option for dev stuff
* Port over changes from main
* Fix west courtyard pot regions
* Remove debug prints
* Fix fortress courtyard and beneath the fortress loc groups again
* Add exception handling to deal with duplicate apworlds
* Fix typo
* More missing loc group conversions
* Initial fuse shuffle stuff
* Fix gun missing from combat_items, add new for combat logic cache, very slight refactor of check_combat_reqs to let it do the changeover in a less complicated fashion, fix area being a boss area rather than non-boss area for a check
* Add fuse shuffle logic
* reorder atoll statue rule
* Update traversal reqs
* Remove fuse shuffle from temple door
* Combine rules and option checking
* Add bell shuffle; fix fuse location groups
* Fix portal rules not requiring prayer
* Merge the grass laurels exit grass PR
* Merge in fortress bridge PR
* Do a little clean up
* Fix a regression
* Update after merge
* Some more stuff
* More Silent changes
* Update more info section in game info page
* Fix rules for atoll and swamp fuses
* Precollect cathedral fuse in ER
* actually just make the fuse useful instead of progression
* Add it to the swamp and cath rules too
* Fix cath fuse name
* Minor fixes and edits
* Some UT stuff
* Fix a couple more groups
* Move a bunch of UT stuff to its own file
* Fix up a couple UT things
* Couple minor ER fixes
* Formatting change
* UT poptracker stuff enabled since it's optional in one of the releases
* Add author string to world class
* Adjust local fill option name
* Update ut_stuff to match the PR
* Add exception handling for UT with old apworld
* Fix missing tracker_world
* Remove extra entrance from cath main -> elevator
Entry <-> Elev exists,
Entry <-> Main exists
So no connection is needed between Main and Elev
* Fix so that decoupled doesn't incorrectly use get_portal_info and get_paired_portal
* Fix so that decoupled doesn't incorrectly use get_portal_info and get_paired_portal
* Update for breakables poptracker
* Backup and warnings instead
* Update typing
* Delete old regions and rules, move stuff to logic_helpers and constants
* Delete now much less useful tests
* Fix breakables map tracking
* Add more comments to init
* Add todo to grass.py
* Fix up tests
* Pull out fuse and bell shuffle
* Pull out fuse and bell shuffle
* Update worlds/tunic/options.py
Co-authored-by: qwint <qwint.42@gmail.com>
* Update worlds/tunic/logic_helpers.py
Co-authored-by: qwint <qwint.42@gmail.com>
* {} -> () in state functions
* {} -> () in state functions
* Change {} -> () in state functions, use constant for gun
* Remove floating constants in er_data
* Finish hard deprecating FixedShop
* Finish hard deprecating FixedShop
* Fix zig skip showing up in decoupled fixed shop
---------
Co-authored-by: silent-destroyer <osilentdestroyer@gmail.com>
Co-authored-by: Silent <110704408+silent-destroyer@users.noreply.github.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: qwint <qwint.42@gmail.com>
2025-09-04 18:44:32 -04:00
|
|
|
from typing import NamedTuple
|
|
|
|
|
|
TUNIC: Fuse and Bell Shuffle (#5420)
* Making the fix better (thanks medic)
* Make it actually return false if it gets to the backup lists and fails them
* Fix stuff after merge
* Add outlet regions, create new regions as needed for them
* Put together part of decoupled and direction pairs
* make direction pairs work
* Make decoupled work
* Make fixed shop work again
* Fix a few minor bugs
* Fix a few minor bugs
* Fix plando
* god i love programming
* Reorder portal list
* Update portal sorter for variable shops
* Add missing parameter
* Some cleanup of prints and functions
* Fix typo
* it's aliiiiiive
* Make seed groups not sync decoupled
* Add test with full-shop plando
* Fix bug with vanilla portals
* Handle plando connections and direction pair errors
* Update plando checking for decoupled
* Fix typo
* Fix exception text to be shorter
* Add some more comments
* Add todo note
* Remove unused safety thing
* Remove extra plando connections definition in options
* Make seed groups in decoupled with overlapping but not fully overlapped plando connections interact nicely without messing with what the entrances look like in the spoiler log
* Fix weird edge case that is technically user error
* Add note to fixed shop
* Fix parsing shop names in UT
* Remove debug print
* Actually make UT work
* multiworld. to world.
* Fix typo from merge
* Make it so the shops show up in the entrance hints
* Fix bug in ladder storage rules
* Remove blank line
* # Conflicts:
# worlds/tunic/__init__.py
# worlds/tunic/er_data.py
# worlds/tunic/er_rules.py
# worlds/tunic/er_scripts.py
# worlds/tunic/rules.py
# worlds/tunic/test/test_access.py
* Fix issues after merge
* Update plando connections stuff in docs
* Make early bushes only contain grass
* Fix library mistake
* Backport changes to grass rando (#20)
* Backport changes to grass rando
* add_rule instead of set_rule for the special cases, add special cases for back of swamp laurels area cause I should've made a new region for the swamp upper entrance
* Remove item name group for grass
* Update grass rando option descriptions
- Also ignore grass fill for single player games
* Ignore grass fill option for solo rando
* Update er_rules.py
* Fix pre fill issue
* Remove duplicate option
* Add excluded grass locations back
* Hide grass fill option from simple ui options page
* Check for start with sword before setting grass rules
* Update worlds/tunic/options.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* has_stick -> has_melee
* has_stick -> has_melee
* Add a failsafe for direction pairing
* Fix playthrough crash bug
* Remove init from logicmixin
* Updates per code review (thanks hesto)
* has_stick to has_melee in newer update
* has_stick to has_melee in newer update
* Exclude grass from get_filler_item_name
- non-grass rando games were accidentally seeing grass items get shuffled in as filler, which is funny but probably shouldn't happen
* Update worlds/tunic/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Apply suggestions from code review
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* change the rest of grass_fill to local_fill
* Filter out grass from filler_items
* remove -> discard
* Update worlds/tunic/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Starting out
* Rules for breakable regions
* # Conflicts:
# worlds/tunic/__init__.py
# worlds/tunic/combat_logic.py
# worlds/tunic/er_data.py
# worlds/tunic/er_rules.py
# worlds/tunic/er_scripts.py
* Cleanup more stuff after merge
* Revert "Cleanup more stuff after merge"
This reverts commit a6ee9a93da8f2fcc4413de6df6927b246017889d.
* Revert "# Conflicts:"
This reverts commit c74ccd74a45b6ad6b9abe6e339d115a0c98baf30.
* Cleanup more stuff after merge
* change has_stick to has_melee
* Update grass list with combat logic regions
* More fixes from combat logic merge
* Fix some dumb stuff (#21)
* Reorganize pre fill for grass
* make the rest of it work, it's pr ready, boom
* Make it work in not pot shuffle
* Merge grass rando
* multiworld -> world get_location, use has_any
* Swap out region for West Garden Before Terry grass
* Adjust west garden rules to add west combat region
* Adjust grass regions for south checkpoint grass
* Adjust grass regions for after terry grass
* Adjust grass regions for west combat grass
* Adjust grass regions for dagger house grass
* Adjust grass regions for south checkpoint grass, adjust regions and rules for some related locations
* Finish the remainder of the west garden grass, reformat ruined atoll a little
* More hex quest updates
- Implement page ability shuffle for hex quest
- Fix keys behind bosses if hex goal is less than 3
- Added check to fix conflicting hex quest options
- Add option to slot data
* Change option comparison
* Change option checking and fix some stuff
- also keep prayer first on low hex counts
* Update option defaulting
* Update option checking
* Fix option assignment again
* Merge in hex hunt
* Merge in changes
* Clean up imports
* Add ability type to UT stuff
* merge it all
* Make local fill work across pot and grass (to be adjusted later)
* Make separate pools for the grass and non-grass fills
* Fix id overlap
* Update option description
* Fix default
* Reorder localfill option desc
* Load the purgatory ones in
* Adjustments after merge
* Fully remove logicrules
* Fix UT support with fixed shop option
* Add breakable shuffle to the ut stuff
* Make it load in a specific number of locations
* Add Silent's spoiler log ability thing
* Fix for groups
* Fix for groups
* Fix typo
* Fix hex quest UT support
* Use .get
* UT fixes, classification fixes
* Rename some locations
* Adjust guard house names
* Adjust guard house names
* Rework create_item
* Fix for plando connections
* Rename, add new breakables
* Rename more stuff
* Time to rename them again
* Fix issue with fixed shop + decoupled
* Put in an exception to catch that error in the future
* Update create_item to match main
* Update spoiler log lines for hex abilities
* Burn the signs down
* Bring over the combat logic fix
* Merge in combat logic fix
* Silly static method thing
* Move a few areas to before well instead of east forest
* Add an all_random hidden option for dev stuff
* Port over changes from main
* Fix west courtyard pot regions
* Remove debug prints
* Fix fortress courtyard and beneath the fortress loc groups again
* Add exception handling to deal with duplicate apworlds
* Fix typo
* More missing loc group conversions
* Initial fuse shuffle stuff
* Fix gun missing from combat_items, add new for combat logic cache, very slight refactor of check_combat_reqs to let it do the changeover in a less complicated fashion, fix area being a boss area rather than non-boss area for a check
* Add fuse shuffle logic
* reorder atoll statue rule
* Update traversal reqs
* Remove fuse shuffle from temple door
* Combine rules and option checking
* Add bell shuffle; fix fuse location groups
* Fix portal rules not requiring prayer
* Merge the grass laurels exit grass PR
* Merge in fortress bridge PR
* Do a little clean up
* Fix a regression
* Update after merge
* Some more stuff
* More Silent changes
* Update more info section in game info page
* Fix rules for atoll and swamp fuses
* Precollect cathedral fuse in ER
* actually just make the fuse useful instead of progression
* Add it to the swamp and cath rules too
* Fix cath fuse name
* Minor fixes and edits
* Some UT stuff
* Fix a couple more groups
* Move a bunch of UT stuff to its own file
* Fix up a couple UT things
* Couple minor ER fixes
* Formatting change
* UT poptracker stuff enabled since it's optional in one of the releases
* Add author string to world class
* Adjust local fill option name
* Update ut_stuff to match the PR
* Add exception handling for UT with old apworld
* Fix missing tracker_world
* Remove extra entrance from cath main -> elevator
Entry <-> Elev exists,
Entry <-> Main exists
So no connection is needed between Main and Elev
* Fix so that decoupled doesn't incorrectly use get_portal_info and get_paired_portal
* Fix so that decoupled doesn't incorrectly use get_portal_info and get_paired_portal
* Update for breakables poptracker
* Backup and warnings instead
* Update typing
* Delete old regions and rules, move stuff to logic_helpers and constants
* Delete now much less useful tests
* Fix breakables map tracking
* Add more comments to init
* Add todo to grass.py
* Fix up tests
* Fully remove fixed_shop
* Finish hard deprecating FixedShop
* Fix zig skip showing up in decoupled fixed shop
* Make local_fill show up on the website
* Merge with main
* Fixes after merge
* More fixes after merge
* oh right that's why it was there, circular imports
* Swap {} to ()
* Add fuse and bell shuffle to seed groups since they're logically significant for entrance pairing
---------
Co-authored-by: silent-destroyer <osilentdestroyer@gmail.com>
Co-authored-by: Silent <110704408+silent-destroyer@users.noreply.github.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
2025-09-30 15:39:41 -04:00
|
|
|
from .bells import bell_location_table
|
2025-03-08 11:25:47 -05:00
|
|
|
from .breakables import breakable_location_table
|
TUNIC: The Big Refactor (#5195)
* Make it actually return false if it gets to the backup lists and fails them
* Fix stuff after merge
* Add outlet regions, create new regions as needed for them
* Put together part of decoupled and direction pairs
* make direction pairs work
* Make decoupled work
* Make fixed shop work again
* Fix a few minor bugs
* Fix a few minor bugs
* Fix plando
* god i love programming
* Reorder portal list
* Update portal sorter for variable shops
* Add missing parameter
* Some cleanup of prints and functions
* Fix typo
* it's aliiiiiive
* Make seed groups not sync decoupled
* Add test with full-shop plando
* Fix bug with vanilla portals
* Handle plando connections and direction pair errors
* Update plando checking for decoupled
* Fix typo
* Fix exception text to be shorter
* Add some more comments
* Add todo note
* Remove unused safety thing
* Remove extra plando connections definition in options
* Make seed groups in decoupled with overlapping but not fully overlapped plando connections interact nicely without messing with what the entrances look like in the spoiler log
* Fix weird edge case that is technically user error
* Add note to fixed shop
* Fix parsing shop names in UT
* Remove debug print
* Actually make UT work
* multiworld. to world.
* Fix typo from merge
* Make it so the shops show up in the entrance hints
* Fix bug in ladder storage rules
* Remove blank line
* # Conflicts:
# worlds/tunic/__init__.py
# worlds/tunic/er_data.py
# worlds/tunic/er_rules.py
# worlds/tunic/er_scripts.py
# worlds/tunic/rules.py
# worlds/tunic/test/test_access.py
* Fix issues after merge
* Update plando connections stuff in docs
* Make early bushes only contain grass
* Fix library mistake
* Backport changes to grass rando (#20)
* Backport changes to grass rando
* add_rule instead of set_rule for the special cases, add special cases for back of swamp laurels area cause I should've made a new region for the swamp upper entrance
* Remove item name group for grass
* Update grass rando option descriptions
- Also ignore grass fill for single player games
* Ignore grass fill option for solo rando
* Update er_rules.py
* Fix pre fill issue
* Remove duplicate option
* Add excluded grass locations back
* Hide grass fill option from simple ui options page
* Check for start with sword before setting grass rules
* Update worlds/tunic/options.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* has_stick -> has_melee
* has_stick -> has_melee
* Add a failsafe for direction pairing
* Fix playthrough crash bug
* Remove init from logicmixin
* Updates per code review (thanks hesto)
* has_stick to has_melee in newer update
* has_stick to has_melee in newer update
* Exclude grass from get_filler_item_name
- non-grass rando games were accidentally seeing grass items get shuffled in as filler, which is funny but probably shouldn't happen
* Update worlds/tunic/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Apply suggestions from code review
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* change the rest of grass_fill to local_fill
* Filter out grass from filler_items
* remove -> discard
* Update worlds/tunic/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Starting out
* Rules for breakable regions
* # Conflicts:
# worlds/tunic/__init__.py
# worlds/tunic/combat_logic.py
# worlds/tunic/er_data.py
# worlds/tunic/er_rules.py
# worlds/tunic/er_scripts.py
* Cleanup more stuff after merge
* Revert "Cleanup more stuff after merge"
This reverts commit a6ee9a93da8f2fcc4413de6df6927b246017889d.
* Revert "# Conflicts:"
This reverts commit c74ccd74a45b6ad6b9abe6e339d115a0c98baf30.
* Cleanup more stuff after merge
* change has_stick to has_melee
* Update grass list with combat logic regions
* More fixes from combat logic merge
* Fix some dumb stuff (#21)
* Reorganize pre fill for grass
* make the rest of it work, it's pr ready, boom
* Make it work in not pot shuffle
* Merge grass rando
* multiworld -> world get_location, use has_any
* Swap out region for West Garden Before Terry grass
* Adjust west garden rules to add west combat region
* Adjust grass regions for south checkpoint grass
* Adjust grass regions for after terry grass
* Adjust grass regions for west combat grass
* Adjust grass regions for dagger house grass
* Adjust grass regions for south checkpoint grass, adjust regions and rules for some related locations
* Finish the remainder of the west garden grass, reformat ruined atoll a little
* More hex quest updates
- Implement page ability shuffle for hex quest
- Fix keys behind bosses if hex goal is less than 3
- Added check to fix conflicting hex quest options
- Add option to slot data
* Change option comparison
* Change option checking and fix some stuff
- also keep prayer first on low hex counts
* Update option defaulting
* Update option checking
* Fix option assignment again
* Merge in hex hunt
* Merge in changes
* Clean up imports
* Add ability type to UT stuff
* merge it all
* Make local fill work across pot and grass (to be adjusted later)
* Make separate pools for the grass and non-grass fills
* Fix id overlap
* Update option description
* Fix default
* Reorder localfill option desc
* Load the purgatory ones in
* Adjustments after merge
* Fully remove logicrules
* Fix UT support with fixed shop option
* Add breakable shuffle to the ut stuff
* Make it load in a specific number of locations
* Add Silent's spoiler log ability thing
* Fix for groups
* Fix for groups
* Fix typo
* Fix hex quest UT support
* Use .get
* UT fixes, classification fixes
* Rename some locations
* Adjust guard house names
* Adjust guard house names
* Rework create_item
* Fix for plando connections
* Rename, add new breakables
* Rename more stuff
* Time to rename them again
* Fix issue with fixed shop + decoupled
* Put in an exception to catch that error in the future
* Update create_item to match main
* Update spoiler log lines for hex abilities
* Burn the signs down
* Bring over the combat logic fix
* Merge in combat logic fix
* Silly static method thing
* Move a few areas to before well instead of east forest
* Add an all_random hidden option for dev stuff
* Port over changes from main
* Fix west courtyard pot regions
* Remove debug prints
* Fix fortress courtyard and beneath the fortress loc groups again
* Add exception handling to deal with duplicate apworlds
* Fix typo
* More missing loc group conversions
* Initial fuse shuffle stuff
* Fix gun missing from combat_items, add new for combat logic cache, very slight refactor of check_combat_reqs to let it do the changeover in a less complicated fashion, fix area being a boss area rather than non-boss area for a check
* Add fuse shuffle logic
* reorder atoll statue rule
* Update traversal reqs
* Remove fuse shuffle from temple door
* Combine rules and option checking
* Add bell shuffle; fix fuse location groups
* Fix portal rules not requiring prayer
* Merge the grass laurels exit grass PR
* Merge in fortress bridge PR
* Do a little clean up
* Fix a regression
* Update after merge
* Some more stuff
* More Silent changes
* Update more info section in game info page
* Fix rules for atoll and swamp fuses
* Precollect cathedral fuse in ER
* actually just make the fuse useful instead of progression
* Add it to the swamp and cath rules too
* Fix cath fuse name
* Minor fixes and edits
* Some UT stuff
* Fix a couple more groups
* Move a bunch of UT stuff to its own file
* Fix up a couple UT things
* Couple minor ER fixes
* Formatting change
* UT poptracker stuff enabled since it's optional in one of the releases
* Add author string to world class
* Adjust local fill option name
* Update ut_stuff to match the PR
* Add exception handling for UT with old apworld
* Fix missing tracker_world
* Remove extra entrance from cath main -> elevator
Entry <-> Elev exists,
Entry <-> Main exists
So no connection is needed between Main and Elev
* Fix so that decoupled doesn't incorrectly use get_portal_info and get_paired_portal
* Fix so that decoupled doesn't incorrectly use get_portal_info and get_paired_portal
* Update for breakables poptracker
* Backup and warnings instead
* Update typing
* Delete old regions and rules, move stuff to logic_helpers and constants
* Delete now much less useful tests
* Fix breakables map tracking
* Add more comments to init
* Add todo to grass.py
* Fix up tests
* Pull out fuse and bell shuffle
* Pull out fuse and bell shuffle
* Update worlds/tunic/options.py
Co-authored-by: qwint <qwint.42@gmail.com>
* Update worlds/tunic/logic_helpers.py
Co-authored-by: qwint <qwint.42@gmail.com>
* {} -> () in state functions
* {} -> () in state functions
* Change {} -> () in state functions, use constant for gun
* Remove floating constants in er_data
* Finish hard deprecating FixedShop
* Finish hard deprecating FixedShop
* Fix zig skip showing up in decoupled fixed shop
---------
Co-authored-by: silent-destroyer <osilentdestroyer@gmail.com>
Co-authored-by: Silent <110704408+silent-destroyer@users.noreply.github.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: qwint <qwint.42@gmail.com>
2025-09-04 18:44:32 -04:00
|
|
|
from .constants import base_id
|
TUNIC: Fuse and Bell Shuffle (#5420)
* Making the fix better (thanks medic)
* Make it actually return false if it gets to the backup lists and fails them
* Fix stuff after merge
* Add outlet regions, create new regions as needed for them
* Put together part of decoupled and direction pairs
* make direction pairs work
* Make decoupled work
* Make fixed shop work again
* Fix a few minor bugs
* Fix a few minor bugs
* Fix plando
* god i love programming
* Reorder portal list
* Update portal sorter for variable shops
* Add missing parameter
* Some cleanup of prints and functions
* Fix typo
* it's aliiiiiive
* Make seed groups not sync decoupled
* Add test with full-shop plando
* Fix bug with vanilla portals
* Handle plando connections and direction pair errors
* Update plando checking for decoupled
* Fix typo
* Fix exception text to be shorter
* Add some more comments
* Add todo note
* Remove unused safety thing
* Remove extra plando connections definition in options
* Make seed groups in decoupled with overlapping but not fully overlapped plando connections interact nicely without messing with what the entrances look like in the spoiler log
* Fix weird edge case that is technically user error
* Add note to fixed shop
* Fix parsing shop names in UT
* Remove debug print
* Actually make UT work
* multiworld. to world.
* Fix typo from merge
* Make it so the shops show up in the entrance hints
* Fix bug in ladder storage rules
* Remove blank line
* # Conflicts:
# worlds/tunic/__init__.py
# worlds/tunic/er_data.py
# worlds/tunic/er_rules.py
# worlds/tunic/er_scripts.py
# worlds/tunic/rules.py
# worlds/tunic/test/test_access.py
* Fix issues after merge
* Update plando connections stuff in docs
* Make early bushes only contain grass
* Fix library mistake
* Backport changes to grass rando (#20)
* Backport changes to grass rando
* add_rule instead of set_rule for the special cases, add special cases for back of swamp laurels area cause I should've made a new region for the swamp upper entrance
* Remove item name group for grass
* Update grass rando option descriptions
- Also ignore grass fill for single player games
* Ignore grass fill option for solo rando
* Update er_rules.py
* Fix pre fill issue
* Remove duplicate option
* Add excluded grass locations back
* Hide grass fill option from simple ui options page
* Check for start with sword before setting grass rules
* Update worlds/tunic/options.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* has_stick -> has_melee
* has_stick -> has_melee
* Add a failsafe for direction pairing
* Fix playthrough crash bug
* Remove init from logicmixin
* Updates per code review (thanks hesto)
* has_stick to has_melee in newer update
* has_stick to has_melee in newer update
* Exclude grass from get_filler_item_name
- non-grass rando games were accidentally seeing grass items get shuffled in as filler, which is funny but probably shouldn't happen
* Update worlds/tunic/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Apply suggestions from code review
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* change the rest of grass_fill to local_fill
* Filter out grass from filler_items
* remove -> discard
* Update worlds/tunic/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Starting out
* Rules for breakable regions
* # Conflicts:
# worlds/tunic/__init__.py
# worlds/tunic/combat_logic.py
# worlds/tunic/er_data.py
# worlds/tunic/er_rules.py
# worlds/tunic/er_scripts.py
* Cleanup more stuff after merge
* Revert "Cleanup more stuff after merge"
This reverts commit a6ee9a93da8f2fcc4413de6df6927b246017889d.
* Revert "# Conflicts:"
This reverts commit c74ccd74a45b6ad6b9abe6e339d115a0c98baf30.
* Cleanup more stuff after merge
* change has_stick to has_melee
* Update grass list with combat logic regions
* More fixes from combat logic merge
* Fix some dumb stuff (#21)
* Reorganize pre fill for grass
* make the rest of it work, it's pr ready, boom
* Make it work in not pot shuffle
* Merge grass rando
* multiworld -> world get_location, use has_any
* Swap out region for West Garden Before Terry grass
* Adjust west garden rules to add west combat region
* Adjust grass regions for south checkpoint grass
* Adjust grass regions for after terry grass
* Adjust grass regions for west combat grass
* Adjust grass regions for dagger house grass
* Adjust grass regions for south checkpoint grass, adjust regions and rules for some related locations
* Finish the remainder of the west garden grass, reformat ruined atoll a little
* More hex quest updates
- Implement page ability shuffle for hex quest
- Fix keys behind bosses if hex goal is less than 3
- Added check to fix conflicting hex quest options
- Add option to slot data
* Change option comparison
* Change option checking and fix some stuff
- also keep prayer first on low hex counts
* Update option defaulting
* Update option checking
* Fix option assignment again
* Merge in hex hunt
* Merge in changes
* Clean up imports
* Add ability type to UT stuff
* merge it all
* Make local fill work across pot and grass (to be adjusted later)
* Make separate pools for the grass and non-grass fills
* Fix id overlap
* Update option description
* Fix default
* Reorder localfill option desc
* Load the purgatory ones in
* Adjustments after merge
* Fully remove logicrules
* Fix UT support with fixed shop option
* Add breakable shuffle to the ut stuff
* Make it load in a specific number of locations
* Add Silent's spoiler log ability thing
* Fix for groups
* Fix for groups
* Fix typo
* Fix hex quest UT support
* Use .get
* UT fixes, classification fixes
* Rename some locations
* Adjust guard house names
* Adjust guard house names
* Rework create_item
* Fix for plando connections
* Rename, add new breakables
* Rename more stuff
* Time to rename them again
* Fix issue with fixed shop + decoupled
* Put in an exception to catch that error in the future
* Update create_item to match main
* Update spoiler log lines for hex abilities
* Burn the signs down
* Bring over the combat logic fix
* Merge in combat logic fix
* Silly static method thing
* Move a few areas to before well instead of east forest
* Add an all_random hidden option for dev stuff
* Port over changes from main
* Fix west courtyard pot regions
* Remove debug prints
* Fix fortress courtyard and beneath the fortress loc groups again
* Add exception handling to deal with duplicate apworlds
* Fix typo
* More missing loc group conversions
* Initial fuse shuffle stuff
* Fix gun missing from combat_items, add new for combat logic cache, very slight refactor of check_combat_reqs to let it do the changeover in a less complicated fashion, fix area being a boss area rather than non-boss area for a check
* Add fuse shuffle logic
* reorder atoll statue rule
* Update traversal reqs
* Remove fuse shuffle from temple door
* Combine rules and option checking
* Add bell shuffle; fix fuse location groups
* Fix portal rules not requiring prayer
* Merge the grass laurels exit grass PR
* Merge in fortress bridge PR
* Do a little clean up
* Fix a regression
* Update after merge
* Some more stuff
* More Silent changes
* Update more info section in game info page
* Fix rules for atoll and swamp fuses
* Precollect cathedral fuse in ER
* actually just make the fuse useful instead of progression
* Add it to the swamp and cath rules too
* Fix cath fuse name
* Minor fixes and edits
* Some UT stuff
* Fix a couple more groups
* Move a bunch of UT stuff to its own file
* Fix up a couple UT things
* Couple minor ER fixes
* Formatting change
* UT poptracker stuff enabled since it's optional in one of the releases
* Add author string to world class
* Adjust local fill option name
* Update ut_stuff to match the PR
* Add exception handling for UT with old apworld
* Fix missing tracker_world
* Remove extra entrance from cath main -> elevator
Entry <-> Elev exists,
Entry <-> Main exists
So no connection is needed between Main and Elev
* Fix so that decoupled doesn't incorrectly use get_portal_info and get_paired_portal
* Fix so that decoupled doesn't incorrectly use get_portal_info and get_paired_portal
* Update for breakables poptracker
* Backup and warnings instead
* Update typing
* Delete old regions and rules, move stuff to logic_helpers and constants
* Delete now much less useful tests
* Fix breakables map tracking
* Add more comments to init
* Add todo to grass.py
* Fix up tests
* Fully remove fixed_shop
* Finish hard deprecating FixedShop
* Fix zig skip showing up in decoupled fixed shop
* Make local_fill show up on the website
* Merge with main
* Fixes after merge
* More fixes after merge
* oh right that's why it was there, circular imports
* Swap {} to ()
* Add fuse and bell shuffle to seed groups since they're logically significant for entrance pairing
---------
Co-authored-by: silent-destroyer <osilentdestroyer@gmail.com>
Co-authored-by: Silent <110704408+silent-destroyer@users.noreply.github.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
2025-09-30 15:39:41 -04:00
|
|
|
from .fuses import fuse_location_table
|
TUNIC: The Big Refactor (#5195)
* Make it actually return false if it gets to the backup lists and fails them
* Fix stuff after merge
* Add outlet regions, create new regions as needed for them
* Put together part of decoupled and direction pairs
* make direction pairs work
* Make decoupled work
* Make fixed shop work again
* Fix a few minor bugs
* Fix a few minor bugs
* Fix plando
* god i love programming
* Reorder portal list
* Update portal sorter for variable shops
* Add missing parameter
* Some cleanup of prints and functions
* Fix typo
* it's aliiiiiive
* Make seed groups not sync decoupled
* Add test with full-shop plando
* Fix bug with vanilla portals
* Handle plando connections and direction pair errors
* Update plando checking for decoupled
* Fix typo
* Fix exception text to be shorter
* Add some more comments
* Add todo note
* Remove unused safety thing
* Remove extra plando connections definition in options
* Make seed groups in decoupled with overlapping but not fully overlapped plando connections interact nicely without messing with what the entrances look like in the spoiler log
* Fix weird edge case that is technically user error
* Add note to fixed shop
* Fix parsing shop names in UT
* Remove debug print
* Actually make UT work
* multiworld. to world.
* Fix typo from merge
* Make it so the shops show up in the entrance hints
* Fix bug in ladder storage rules
* Remove blank line
* # Conflicts:
# worlds/tunic/__init__.py
# worlds/tunic/er_data.py
# worlds/tunic/er_rules.py
# worlds/tunic/er_scripts.py
# worlds/tunic/rules.py
# worlds/tunic/test/test_access.py
* Fix issues after merge
* Update plando connections stuff in docs
* Make early bushes only contain grass
* Fix library mistake
* Backport changes to grass rando (#20)
* Backport changes to grass rando
* add_rule instead of set_rule for the special cases, add special cases for back of swamp laurels area cause I should've made a new region for the swamp upper entrance
* Remove item name group for grass
* Update grass rando option descriptions
- Also ignore grass fill for single player games
* Ignore grass fill option for solo rando
* Update er_rules.py
* Fix pre fill issue
* Remove duplicate option
* Add excluded grass locations back
* Hide grass fill option from simple ui options page
* Check for start with sword before setting grass rules
* Update worlds/tunic/options.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* has_stick -> has_melee
* has_stick -> has_melee
* Add a failsafe for direction pairing
* Fix playthrough crash bug
* Remove init from logicmixin
* Updates per code review (thanks hesto)
* has_stick to has_melee in newer update
* has_stick to has_melee in newer update
* Exclude grass from get_filler_item_name
- non-grass rando games were accidentally seeing grass items get shuffled in as filler, which is funny but probably shouldn't happen
* Update worlds/tunic/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Apply suggestions from code review
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* change the rest of grass_fill to local_fill
* Filter out grass from filler_items
* remove -> discard
* Update worlds/tunic/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Starting out
* Rules for breakable regions
* # Conflicts:
# worlds/tunic/__init__.py
# worlds/tunic/combat_logic.py
# worlds/tunic/er_data.py
# worlds/tunic/er_rules.py
# worlds/tunic/er_scripts.py
* Cleanup more stuff after merge
* Revert "Cleanup more stuff after merge"
This reverts commit a6ee9a93da8f2fcc4413de6df6927b246017889d.
* Revert "# Conflicts:"
This reverts commit c74ccd74a45b6ad6b9abe6e339d115a0c98baf30.
* Cleanup more stuff after merge
* change has_stick to has_melee
* Update grass list with combat logic regions
* More fixes from combat logic merge
* Fix some dumb stuff (#21)
* Reorganize pre fill for grass
* make the rest of it work, it's pr ready, boom
* Make it work in not pot shuffle
* Merge grass rando
* multiworld -> world get_location, use has_any
* Swap out region for West Garden Before Terry grass
* Adjust west garden rules to add west combat region
* Adjust grass regions for south checkpoint grass
* Adjust grass regions for after terry grass
* Adjust grass regions for west combat grass
* Adjust grass regions for dagger house grass
* Adjust grass regions for south checkpoint grass, adjust regions and rules for some related locations
* Finish the remainder of the west garden grass, reformat ruined atoll a little
* More hex quest updates
- Implement page ability shuffle for hex quest
- Fix keys behind bosses if hex goal is less than 3
- Added check to fix conflicting hex quest options
- Add option to slot data
* Change option comparison
* Change option checking and fix some stuff
- also keep prayer first on low hex counts
* Update option defaulting
* Update option checking
* Fix option assignment again
* Merge in hex hunt
* Merge in changes
* Clean up imports
* Add ability type to UT stuff
* merge it all
* Make local fill work across pot and grass (to be adjusted later)
* Make separate pools for the grass and non-grass fills
* Fix id overlap
* Update option description
* Fix default
* Reorder localfill option desc
* Load the purgatory ones in
* Adjustments after merge
* Fully remove logicrules
* Fix UT support with fixed shop option
* Add breakable shuffle to the ut stuff
* Make it load in a specific number of locations
* Add Silent's spoiler log ability thing
* Fix for groups
* Fix for groups
* Fix typo
* Fix hex quest UT support
* Use .get
* UT fixes, classification fixes
* Rename some locations
* Adjust guard house names
* Adjust guard house names
* Rework create_item
* Fix for plando connections
* Rename, add new breakables
* Rename more stuff
* Time to rename them again
* Fix issue with fixed shop + decoupled
* Put in an exception to catch that error in the future
* Update create_item to match main
* Update spoiler log lines for hex abilities
* Burn the signs down
* Bring over the combat logic fix
* Merge in combat logic fix
* Silly static method thing
* Move a few areas to before well instead of east forest
* Add an all_random hidden option for dev stuff
* Port over changes from main
* Fix west courtyard pot regions
* Remove debug prints
* Fix fortress courtyard and beneath the fortress loc groups again
* Add exception handling to deal with duplicate apworlds
* Fix typo
* More missing loc group conversions
* Initial fuse shuffle stuff
* Fix gun missing from combat_items, add new for combat logic cache, very slight refactor of check_combat_reqs to let it do the changeover in a less complicated fashion, fix area being a boss area rather than non-boss area for a check
* Add fuse shuffle logic
* reorder atoll statue rule
* Update traversal reqs
* Remove fuse shuffle from temple door
* Combine rules and option checking
* Add bell shuffle; fix fuse location groups
* Fix portal rules not requiring prayer
* Merge the grass laurels exit grass PR
* Merge in fortress bridge PR
* Do a little clean up
* Fix a regression
* Update after merge
* Some more stuff
* More Silent changes
* Update more info section in game info page
* Fix rules for atoll and swamp fuses
* Precollect cathedral fuse in ER
* actually just make the fuse useful instead of progression
* Add it to the swamp and cath rules too
* Fix cath fuse name
* Minor fixes and edits
* Some UT stuff
* Fix a couple more groups
* Move a bunch of UT stuff to its own file
* Fix up a couple UT things
* Couple minor ER fixes
* Formatting change
* UT poptracker stuff enabled since it's optional in one of the releases
* Add author string to world class
* Adjust local fill option name
* Update ut_stuff to match the PR
* Add exception handling for UT with old apworld
* Fix missing tracker_world
* Remove extra entrance from cath main -> elevator
Entry <-> Elev exists,
Entry <-> Main exists
So no connection is needed between Main and Elev
* Fix so that decoupled doesn't incorrectly use get_portal_info and get_paired_portal
* Fix so that decoupled doesn't incorrectly use get_portal_info and get_paired_portal
* Update for breakables poptracker
* Backup and warnings instead
* Update typing
* Delete old regions and rules, move stuff to logic_helpers and constants
* Delete now much less useful tests
* Fix breakables map tracking
* Add more comments to init
* Add todo to grass.py
* Fix up tests
* Pull out fuse and bell shuffle
* Pull out fuse and bell shuffle
* Update worlds/tunic/options.py
Co-authored-by: qwint <qwint.42@gmail.com>
* Update worlds/tunic/logic_helpers.py
Co-authored-by: qwint <qwint.42@gmail.com>
* {} -> () in state functions
* {} -> () in state functions
* Change {} -> () in state functions, use constant for gun
* Remove floating constants in er_data
* Finish hard deprecating FixedShop
* Finish hard deprecating FixedShop
* Fix zig skip showing up in decoupled fixed shop
---------
Co-authored-by: silent-destroyer <osilentdestroyer@gmail.com>
Co-authored-by: Silent <110704408+silent-destroyer@users.noreply.github.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: qwint <qwint.42@gmail.com>
2025-09-04 18:44:32 -04:00
|
|
|
from .grass import grass_location_table
|
2024-01-12 14:32:15 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
class TunicLocationData(NamedTuple):
|
|
|
|
|
region: str
|
|
|
|
|
er_region: str # entrance rando region
|
TUNIC: The Big Refactor (#5195)
* Make it actually return false if it gets to the backup lists and fails them
* Fix stuff after merge
* Add outlet regions, create new regions as needed for them
* Put together part of decoupled and direction pairs
* make direction pairs work
* Make decoupled work
* Make fixed shop work again
* Fix a few minor bugs
* Fix a few minor bugs
* Fix plando
* god i love programming
* Reorder portal list
* Update portal sorter for variable shops
* Add missing parameter
* Some cleanup of prints and functions
* Fix typo
* it's aliiiiiive
* Make seed groups not sync decoupled
* Add test with full-shop plando
* Fix bug with vanilla portals
* Handle plando connections and direction pair errors
* Update plando checking for decoupled
* Fix typo
* Fix exception text to be shorter
* Add some more comments
* Add todo note
* Remove unused safety thing
* Remove extra plando connections definition in options
* Make seed groups in decoupled with overlapping but not fully overlapped plando connections interact nicely without messing with what the entrances look like in the spoiler log
* Fix weird edge case that is technically user error
* Add note to fixed shop
* Fix parsing shop names in UT
* Remove debug print
* Actually make UT work
* multiworld. to world.
* Fix typo from merge
* Make it so the shops show up in the entrance hints
* Fix bug in ladder storage rules
* Remove blank line
* # Conflicts:
# worlds/tunic/__init__.py
# worlds/tunic/er_data.py
# worlds/tunic/er_rules.py
# worlds/tunic/er_scripts.py
# worlds/tunic/rules.py
# worlds/tunic/test/test_access.py
* Fix issues after merge
* Update plando connections stuff in docs
* Make early bushes only contain grass
* Fix library mistake
* Backport changes to grass rando (#20)
* Backport changes to grass rando
* add_rule instead of set_rule for the special cases, add special cases for back of swamp laurels area cause I should've made a new region for the swamp upper entrance
* Remove item name group for grass
* Update grass rando option descriptions
- Also ignore grass fill for single player games
* Ignore grass fill option for solo rando
* Update er_rules.py
* Fix pre fill issue
* Remove duplicate option
* Add excluded grass locations back
* Hide grass fill option from simple ui options page
* Check for start with sword before setting grass rules
* Update worlds/tunic/options.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* has_stick -> has_melee
* has_stick -> has_melee
* Add a failsafe for direction pairing
* Fix playthrough crash bug
* Remove init from logicmixin
* Updates per code review (thanks hesto)
* has_stick to has_melee in newer update
* has_stick to has_melee in newer update
* Exclude grass from get_filler_item_name
- non-grass rando games were accidentally seeing grass items get shuffled in as filler, which is funny but probably shouldn't happen
* Update worlds/tunic/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Apply suggestions from code review
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* change the rest of grass_fill to local_fill
* Filter out grass from filler_items
* remove -> discard
* Update worlds/tunic/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Starting out
* Rules for breakable regions
* # Conflicts:
# worlds/tunic/__init__.py
# worlds/tunic/combat_logic.py
# worlds/tunic/er_data.py
# worlds/tunic/er_rules.py
# worlds/tunic/er_scripts.py
* Cleanup more stuff after merge
* Revert "Cleanup more stuff after merge"
This reverts commit a6ee9a93da8f2fcc4413de6df6927b246017889d.
* Revert "# Conflicts:"
This reverts commit c74ccd74a45b6ad6b9abe6e339d115a0c98baf30.
* Cleanup more stuff after merge
* change has_stick to has_melee
* Update grass list with combat logic regions
* More fixes from combat logic merge
* Fix some dumb stuff (#21)
* Reorganize pre fill for grass
* make the rest of it work, it's pr ready, boom
* Make it work in not pot shuffle
* Merge grass rando
* multiworld -> world get_location, use has_any
* Swap out region for West Garden Before Terry grass
* Adjust west garden rules to add west combat region
* Adjust grass regions for south checkpoint grass
* Adjust grass regions for after terry grass
* Adjust grass regions for west combat grass
* Adjust grass regions for dagger house grass
* Adjust grass regions for south checkpoint grass, adjust regions and rules for some related locations
* Finish the remainder of the west garden grass, reformat ruined atoll a little
* More hex quest updates
- Implement page ability shuffle for hex quest
- Fix keys behind bosses if hex goal is less than 3
- Added check to fix conflicting hex quest options
- Add option to slot data
* Change option comparison
* Change option checking and fix some stuff
- also keep prayer first on low hex counts
* Update option defaulting
* Update option checking
* Fix option assignment again
* Merge in hex hunt
* Merge in changes
* Clean up imports
* Add ability type to UT stuff
* merge it all
* Make local fill work across pot and grass (to be adjusted later)
* Make separate pools for the grass and non-grass fills
* Fix id overlap
* Update option description
* Fix default
* Reorder localfill option desc
* Load the purgatory ones in
* Adjustments after merge
* Fully remove logicrules
* Fix UT support with fixed shop option
* Add breakable shuffle to the ut stuff
* Make it load in a specific number of locations
* Add Silent's spoiler log ability thing
* Fix for groups
* Fix for groups
* Fix typo
* Fix hex quest UT support
* Use .get
* UT fixes, classification fixes
* Rename some locations
* Adjust guard house names
* Adjust guard house names
* Rework create_item
* Fix for plando connections
* Rename, add new breakables
* Rename more stuff
* Time to rename them again
* Fix issue with fixed shop + decoupled
* Put in an exception to catch that error in the future
* Update create_item to match main
* Update spoiler log lines for hex abilities
* Burn the signs down
* Bring over the combat logic fix
* Merge in combat logic fix
* Silly static method thing
* Move a few areas to before well instead of east forest
* Add an all_random hidden option for dev stuff
* Port over changes from main
* Fix west courtyard pot regions
* Remove debug prints
* Fix fortress courtyard and beneath the fortress loc groups again
* Add exception handling to deal with duplicate apworlds
* Fix typo
* More missing loc group conversions
* Initial fuse shuffle stuff
* Fix gun missing from combat_items, add new for combat logic cache, very slight refactor of check_combat_reqs to let it do the changeover in a less complicated fashion, fix area being a boss area rather than non-boss area for a check
* Add fuse shuffle logic
* reorder atoll statue rule
* Update traversal reqs
* Remove fuse shuffle from temple door
* Combine rules and option checking
* Add bell shuffle; fix fuse location groups
* Fix portal rules not requiring prayer
* Merge the grass laurels exit grass PR
* Merge in fortress bridge PR
* Do a little clean up
* Fix a regression
* Update after merge
* Some more stuff
* More Silent changes
* Update more info section in game info page
* Fix rules for atoll and swamp fuses
* Precollect cathedral fuse in ER
* actually just make the fuse useful instead of progression
* Add it to the swamp and cath rules too
* Fix cath fuse name
* Minor fixes and edits
* Some UT stuff
* Fix a couple more groups
* Move a bunch of UT stuff to its own file
* Fix up a couple UT things
* Couple minor ER fixes
* Formatting change
* UT poptracker stuff enabled since it's optional in one of the releases
* Add author string to world class
* Adjust local fill option name
* Update ut_stuff to match the PR
* Add exception handling for UT with old apworld
* Fix missing tracker_world
* Remove extra entrance from cath main -> elevator
Entry <-> Elev exists,
Entry <-> Main exists
So no connection is needed between Main and Elev
* Fix so that decoupled doesn't incorrectly use get_portal_info and get_paired_portal
* Fix so that decoupled doesn't incorrectly use get_portal_info and get_paired_portal
* Update for breakables poptracker
* Backup and warnings instead
* Update typing
* Delete old regions and rules, move stuff to logic_helpers and constants
* Delete now much less useful tests
* Fix breakables map tracking
* Add more comments to init
* Add todo to grass.py
* Fix up tests
* Pull out fuse and bell shuffle
* Pull out fuse and bell shuffle
* Update worlds/tunic/options.py
Co-authored-by: qwint <qwint.42@gmail.com>
* Update worlds/tunic/logic_helpers.py
Co-authored-by: qwint <qwint.42@gmail.com>
* {} -> () in state functions
* {} -> () in state functions
* Change {} -> () in state functions, use constant for gun
* Remove floating constants in er_data
* Finish hard deprecating FixedShop
* Finish hard deprecating FixedShop
* Fix zig skip showing up in decoupled fixed shop
---------
Co-authored-by: silent-destroyer <osilentdestroyer@gmail.com>
Co-authored-by: Silent <110704408+silent-destroyer@users.noreply.github.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: qwint <qwint.42@gmail.com>
2025-09-04 18:44:32 -04:00
|
|
|
location_group: str | None = None
|
2024-01-12 14:32:15 -05:00
|
|
|
|
|
|
|
|
|
TUNIC: The Big Refactor (#5195)
* Make it actually return false if it gets to the backup lists and fails them
* Fix stuff after merge
* Add outlet regions, create new regions as needed for them
* Put together part of decoupled and direction pairs
* make direction pairs work
* Make decoupled work
* Make fixed shop work again
* Fix a few minor bugs
* Fix a few minor bugs
* Fix plando
* god i love programming
* Reorder portal list
* Update portal sorter for variable shops
* Add missing parameter
* Some cleanup of prints and functions
* Fix typo
* it's aliiiiiive
* Make seed groups not sync decoupled
* Add test with full-shop plando
* Fix bug with vanilla portals
* Handle plando connections and direction pair errors
* Update plando checking for decoupled
* Fix typo
* Fix exception text to be shorter
* Add some more comments
* Add todo note
* Remove unused safety thing
* Remove extra plando connections definition in options
* Make seed groups in decoupled with overlapping but not fully overlapped plando connections interact nicely without messing with what the entrances look like in the spoiler log
* Fix weird edge case that is technically user error
* Add note to fixed shop
* Fix parsing shop names in UT
* Remove debug print
* Actually make UT work
* multiworld. to world.
* Fix typo from merge
* Make it so the shops show up in the entrance hints
* Fix bug in ladder storage rules
* Remove blank line
* # Conflicts:
# worlds/tunic/__init__.py
# worlds/tunic/er_data.py
# worlds/tunic/er_rules.py
# worlds/tunic/er_scripts.py
# worlds/tunic/rules.py
# worlds/tunic/test/test_access.py
* Fix issues after merge
* Update plando connections stuff in docs
* Make early bushes only contain grass
* Fix library mistake
* Backport changes to grass rando (#20)
* Backport changes to grass rando
* add_rule instead of set_rule for the special cases, add special cases for back of swamp laurels area cause I should've made a new region for the swamp upper entrance
* Remove item name group for grass
* Update grass rando option descriptions
- Also ignore grass fill for single player games
* Ignore grass fill option for solo rando
* Update er_rules.py
* Fix pre fill issue
* Remove duplicate option
* Add excluded grass locations back
* Hide grass fill option from simple ui options page
* Check for start with sword before setting grass rules
* Update worlds/tunic/options.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* has_stick -> has_melee
* has_stick -> has_melee
* Add a failsafe for direction pairing
* Fix playthrough crash bug
* Remove init from logicmixin
* Updates per code review (thanks hesto)
* has_stick to has_melee in newer update
* has_stick to has_melee in newer update
* Exclude grass from get_filler_item_name
- non-grass rando games were accidentally seeing grass items get shuffled in as filler, which is funny but probably shouldn't happen
* Update worlds/tunic/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Apply suggestions from code review
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* change the rest of grass_fill to local_fill
* Filter out grass from filler_items
* remove -> discard
* Update worlds/tunic/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Starting out
* Rules for breakable regions
* # Conflicts:
# worlds/tunic/__init__.py
# worlds/tunic/combat_logic.py
# worlds/tunic/er_data.py
# worlds/tunic/er_rules.py
# worlds/tunic/er_scripts.py
* Cleanup more stuff after merge
* Revert "Cleanup more stuff after merge"
This reverts commit a6ee9a93da8f2fcc4413de6df6927b246017889d.
* Revert "# Conflicts:"
This reverts commit c74ccd74a45b6ad6b9abe6e339d115a0c98baf30.
* Cleanup more stuff after merge
* change has_stick to has_melee
* Update grass list with combat logic regions
* More fixes from combat logic merge
* Fix some dumb stuff (#21)
* Reorganize pre fill for grass
* make the rest of it work, it's pr ready, boom
* Make it work in not pot shuffle
* Merge grass rando
* multiworld -> world get_location, use has_any
* Swap out region for West Garden Before Terry grass
* Adjust west garden rules to add west combat region
* Adjust grass regions for south checkpoint grass
* Adjust grass regions for after terry grass
* Adjust grass regions for west combat grass
* Adjust grass regions for dagger house grass
* Adjust grass regions for south checkpoint grass, adjust regions and rules for some related locations
* Finish the remainder of the west garden grass, reformat ruined atoll a little
* More hex quest updates
- Implement page ability shuffle for hex quest
- Fix keys behind bosses if hex goal is less than 3
- Added check to fix conflicting hex quest options
- Add option to slot data
* Change option comparison
* Change option checking and fix some stuff
- also keep prayer first on low hex counts
* Update option defaulting
* Update option checking
* Fix option assignment again
* Merge in hex hunt
* Merge in changes
* Clean up imports
* Add ability type to UT stuff
* merge it all
* Make local fill work across pot and grass (to be adjusted later)
* Make separate pools for the grass and non-grass fills
* Fix id overlap
* Update option description
* Fix default
* Reorder localfill option desc
* Load the purgatory ones in
* Adjustments after merge
* Fully remove logicrules
* Fix UT support with fixed shop option
* Add breakable shuffle to the ut stuff
* Make it load in a specific number of locations
* Add Silent's spoiler log ability thing
* Fix for groups
* Fix for groups
* Fix typo
* Fix hex quest UT support
* Use .get
* UT fixes, classification fixes
* Rename some locations
* Adjust guard house names
* Adjust guard house names
* Rework create_item
* Fix for plando connections
* Rename, add new breakables
* Rename more stuff
* Time to rename them again
* Fix issue with fixed shop + decoupled
* Put in an exception to catch that error in the future
* Update create_item to match main
* Update spoiler log lines for hex abilities
* Burn the signs down
* Bring over the combat logic fix
* Merge in combat logic fix
* Silly static method thing
* Move a few areas to before well instead of east forest
* Add an all_random hidden option for dev stuff
* Port over changes from main
* Fix west courtyard pot regions
* Remove debug prints
* Fix fortress courtyard and beneath the fortress loc groups again
* Add exception handling to deal with duplicate apworlds
* Fix typo
* More missing loc group conversions
* Initial fuse shuffle stuff
* Fix gun missing from combat_items, add new for combat logic cache, very slight refactor of check_combat_reqs to let it do the changeover in a less complicated fashion, fix area being a boss area rather than non-boss area for a check
* Add fuse shuffle logic
* reorder atoll statue rule
* Update traversal reqs
* Remove fuse shuffle from temple door
* Combine rules and option checking
* Add bell shuffle; fix fuse location groups
* Fix portal rules not requiring prayer
* Merge the grass laurels exit grass PR
* Merge in fortress bridge PR
* Do a little clean up
* Fix a regression
* Update after merge
* Some more stuff
* More Silent changes
* Update more info section in game info page
* Fix rules for atoll and swamp fuses
* Precollect cathedral fuse in ER
* actually just make the fuse useful instead of progression
* Add it to the swamp and cath rules too
* Fix cath fuse name
* Minor fixes and edits
* Some UT stuff
* Fix a couple more groups
* Move a bunch of UT stuff to its own file
* Fix up a couple UT things
* Couple minor ER fixes
* Formatting change
* UT poptracker stuff enabled since it's optional in one of the releases
* Add author string to world class
* Adjust local fill option name
* Update ut_stuff to match the PR
* Add exception handling for UT with old apworld
* Fix missing tracker_world
* Remove extra entrance from cath main -> elevator
Entry <-> Elev exists,
Entry <-> Main exists
So no connection is needed between Main and Elev
* Fix so that decoupled doesn't incorrectly use get_portal_info and get_paired_portal
* Fix so that decoupled doesn't incorrectly use get_portal_info and get_paired_portal
* Update for breakables poptracker
* Backup and warnings instead
* Update typing
* Delete old regions and rules, move stuff to logic_helpers and constants
* Delete now much less useful tests
* Fix breakables map tracking
* Add more comments to init
* Add todo to grass.py
* Fix up tests
* Pull out fuse and bell shuffle
* Pull out fuse and bell shuffle
* Update worlds/tunic/options.py
Co-authored-by: qwint <qwint.42@gmail.com>
* Update worlds/tunic/logic_helpers.py
Co-authored-by: qwint <qwint.42@gmail.com>
* {} -> () in state functions
* {} -> () in state functions
* Change {} -> () in state functions, use constant for gun
* Remove floating constants in er_data
* Finish hard deprecating FixedShop
* Finish hard deprecating FixedShop
* Fix zig skip showing up in decoupled fixed shop
---------
Co-authored-by: silent-destroyer <osilentdestroyer@gmail.com>
Co-authored-by: Silent <110704408+silent-destroyer@users.noreply.github.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: qwint <qwint.42@gmail.com>
2025-09-04 18:44:32 -04:00
|
|
|
location_table: dict[str, TunicLocationData] = {
|
2024-01-12 14:32:15 -05:00
|
|
|
"Beneath the Well - [Powered Secret Room] Chest": TunicLocationData("Beneath the Well", "Beneath the Well Back"),
|
|
|
|
|
"Beneath the Well - [Entryway] Chest": TunicLocationData("Beneath the Well", "Beneath the Well Main"),
|
|
|
|
|
"Beneath the Well - [Third Room] Beneath Platform Chest": TunicLocationData("Beneath the Well", "Beneath the Well Main"),
|
|
|
|
|
"Beneath the Well - [Third Room] Tentacle Chest": TunicLocationData("Beneath the Well", "Beneath the Well Main"),
|
|
|
|
|
"Beneath the Well - [Entryway] Obscured Behind Waterfall": TunicLocationData("Beneath the Well", "Beneath the Well Main"),
|
|
|
|
|
"Beneath the Well - [Save Room] Upper Floor Chest 1": TunicLocationData("Beneath the Well", "Beneath the Well Back"),
|
|
|
|
|
"Beneath the Well - [Save Room] Upper Floor Chest 2": TunicLocationData("Beneath the Well", "Beneath the Well Back"),
|
|
|
|
|
"Beneath the Well - [Second Room] Underwater Chest": TunicLocationData("Beneath the Well", "Beneath the Well Main"),
|
|
|
|
|
"Beneath the Well - [Back Corridor] Right Secret": TunicLocationData("Beneath the Well", "Beneath the Well Main"),
|
|
|
|
|
"Beneath the Well - [Back Corridor] Left Secret": TunicLocationData("Beneath the Well", "Beneath the Well Main"),
|
|
|
|
|
"Beneath the Well - [Second Room] Obscured Behind Waterfall": TunicLocationData("Beneath the Well", "Beneath the Well Main"),
|
2024-03-21 11:50:07 -04:00
|
|
|
"Beneath the Well - [Side Room] Chest By Pots": TunicLocationData("Beneath the Well", "Beneath the Well Back"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Beneath the Well - [Side Room] Chest By Phrends": TunicLocationData("Beneath the Well", "Beneath the Well Back"),
|
|
|
|
|
"Beneath the Well - [Second Room] Page": TunicLocationData("Beneath the Well", "Beneath the Well Main"),
|
2024-03-21 11:50:07 -04:00
|
|
|
"Dark Tomb Checkpoint - [Passage To Dark Tomb] Page Pickup": TunicLocationData("Overworld", "Dark Tomb Checkpoint"),
|
2024-12-15 16:40:36 -05:00
|
|
|
"Cathedral - [1F] Guarded By Lasers": TunicLocationData("Cathedral", "Cathedral Main"),
|
|
|
|
|
"Cathedral - [1F] Near Spikes": TunicLocationData("Cathedral", "Cathedral Entry"), # entry because special rules
|
|
|
|
|
"Cathedral - [2F] Bird Room": TunicLocationData("Cathedral", "Cathedral Main"),
|
|
|
|
|
"Cathedral - [2F] Entryway Upper Walkway": TunicLocationData("Cathedral", "Cathedral Main"),
|
|
|
|
|
"Cathedral - [1F] Library": TunicLocationData("Cathedral", "Cathedral Entry"),
|
|
|
|
|
"Cathedral - [2F] Library": TunicLocationData("Cathedral", "Cathedral Main"),
|
|
|
|
|
"Cathedral - [2F] Guarded By Lasers": TunicLocationData("Cathedral", "Cathedral Main"),
|
|
|
|
|
"Cathedral - [2F] Bird Room Secret": TunicLocationData("Cathedral", "Cathedral Main"),
|
|
|
|
|
"Cathedral - [1F] Library Secret": TunicLocationData("Cathedral", "Cathedral Entry"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Dark Tomb - Spike Maze Near Exit": TunicLocationData("Dark Tomb", "Dark Tomb Main"),
|
2024-12-15 16:40:36 -05:00
|
|
|
"Dark Tomb - 2nd Laser Room": TunicLocationData("Dark Tomb", "Dark Tomb Dark Exit"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Dark Tomb - 1st Laser Room": TunicLocationData("Dark Tomb", "Dark Tomb Main"),
|
|
|
|
|
"Dark Tomb - Spike Maze Upper Walkway": TunicLocationData("Dark Tomb", "Dark Tomb Main"),
|
2024-03-21 11:50:07 -04:00
|
|
|
"Dark Tomb - Skulls Chest": TunicLocationData("Dark Tomb", "Dark Tomb Upper"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Dark Tomb - Spike Maze Near Stairs": TunicLocationData("Dark Tomb", "Dark Tomb Main"),
|
|
|
|
|
"Dark Tomb - 1st Laser Room Obscured": TunicLocationData("Dark Tomb", "Dark Tomb Main"),
|
2024-12-19 23:45:29 -05:00
|
|
|
"Guardhouse 2 - Upper Floor": TunicLocationData("East Forest", "Guard House 2 Upper after bushes"),
|
2024-03-21 11:50:07 -04:00
|
|
|
"Guardhouse 2 - Bottom Floor Secret": TunicLocationData("East Forest", "Guard House 2 Lower"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Guardhouse 1 - Upper Floor Obscured": TunicLocationData("East Forest", "Guard House 1 East"),
|
|
|
|
|
"Guardhouse 1 - Upper Floor": TunicLocationData("East Forest", "Guard House 1 East"),
|
2024-05-02 04:02:59 -04:00
|
|
|
"East Forest - Dancing Fox Spirit Holy Cross": TunicLocationData("East Forest", "East Forest Dance Fox Spot", location_group="Holy Cross"),
|
|
|
|
|
"East Forest - Golden Obelisk Holy Cross": TunicLocationData("East Forest", "Lower Forest", location_group="Holy Cross"),
|
2024-09-08 08:42:59 -04:00
|
|
|
"East Forest - Ice Rod Grapple Chest": TunicLocationData("East Forest", "Lower Forest"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"East Forest - Above Save Point": TunicLocationData("East Forest", "East Forest"),
|
|
|
|
|
"East Forest - Above Save Point Obscured": TunicLocationData("East Forest", "East Forest"),
|
|
|
|
|
"East Forest - From Guardhouse 1 Chest": TunicLocationData("East Forest", "East Forest Dance Fox Spot"),
|
|
|
|
|
"East Forest - Near Save Point": TunicLocationData("East Forest", "East Forest"),
|
2024-03-21 11:50:07 -04:00
|
|
|
"East Forest - Beneath Spider Chest": TunicLocationData("East Forest", "Lower Forest"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"East Forest - Near Telescope": TunicLocationData("East Forest", "East Forest"),
|
2024-03-21 11:50:07 -04:00
|
|
|
"East Forest - Spider Chest": TunicLocationData("East Forest", "Lower Forest"),
|
|
|
|
|
"East Forest - Lower Dash Chest": TunicLocationData("East Forest", "Lower Forest"),
|
|
|
|
|
"East Forest - Lower Grapple Chest": TunicLocationData("East Forest", "Lower Forest"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"East Forest - Bombable Wall": TunicLocationData("East Forest", "East Forest"),
|
|
|
|
|
"East Forest - Page On Teleporter": TunicLocationData("East Forest", "East Forest"),
|
|
|
|
|
"Forest Belltower - Near Save Point": TunicLocationData("East Forest", "Forest Belltower Lower"),
|
|
|
|
|
"Forest Belltower - After Guard Captain": TunicLocationData("East Forest", "Forest Belltower Upper"),
|
|
|
|
|
"Forest Belltower - Obscured Near Bell Top Floor": TunicLocationData("East Forest", "Forest Belltower Upper"),
|
|
|
|
|
"Forest Belltower - Obscured Beneath Bell Bottom Floor": TunicLocationData("East Forest", "Forest Belltower Main"),
|
|
|
|
|
"Forest Belltower - Page Pickup": TunicLocationData("East Forest", "Forest Belltower Main"),
|
2024-05-02 04:02:59 -04:00
|
|
|
"Forest Grave Path - Holy Cross Code by Grave": TunicLocationData("East Forest", "Forest Grave Path by Grave", location_group="Holy Cross"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Forest Grave Path - Above Gate": TunicLocationData("East Forest", "Forest Grave Path Main"),
|
|
|
|
|
"Forest Grave Path - Obscured Chest": TunicLocationData("East Forest", "Forest Grave Path Main"),
|
|
|
|
|
"Forest Grave Path - Upper Walkway": TunicLocationData("East Forest", "Forest Grave Path Upper"),
|
|
|
|
|
"Forest Grave Path - Sword Pickup": TunicLocationData("East Forest", "Forest Grave Path by Grave"),
|
2024-05-02 04:02:59 -04:00
|
|
|
"Hero's Grave - Tooth Relic": TunicLocationData("East Forest", "Hero Relic - East Forest"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Fortress Courtyard - From East Belltower": TunicLocationData("East Forest", "Fortress Exterior from East Forest"),
|
|
|
|
|
"Fortress Leaf Piles - Secret Chest": TunicLocationData("Eastern Vault Fortress", "Fortress Leaf Piles"),
|
|
|
|
|
"Fortress Arena - Hexagon Red": TunicLocationData("Eastern Vault Fortress", "Fortress Arena"),
|
2024-05-02 04:02:59 -04:00
|
|
|
"Fortress Arena - Siege Engine/Vault Key Pickup": TunicLocationData("Eastern Vault Fortress", "Fortress Arena", location_group="Bosses"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Fortress East Shortcut - Chest Near Slimes": TunicLocationData("Eastern Vault Fortress", "Fortress East Shortcut Lower"),
|
2024-05-02 04:02:59 -04:00
|
|
|
"Eastern Vault Fortress - [West Wing] Candles Holy Cross": TunicLocationData("Eastern Vault Fortress", "Eastern Vault Fortress", location_group="Holy Cross"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Eastern Vault Fortress - [West Wing] Dark Room Chest 1": TunicLocationData("Eastern Vault Fortress", "Eastern Vault Fortress"),
|
|
|
|
|
"Eastern Vault Fortress - [West Wing] Dark Room Chest 2": TunicLocationData("Eastern Vault Fortress", "Eastern Vault Fortress"),
|
|
|
|
|
"Eastern Vault Fortress - [East Wing] Bombable Wall": TunicLocationData("Eastern Vault Fortress", "Eastern Vault Fortress"),
|
|
|
|
|
"Eastern Vault Fortress - [West Wing] Page Pickup": TunicLocationData("Eastern Vault Fortress", "Eastern Vault Fortress"),
|
|
|
|
|
"Fortress Grave Path - Upper Walkway": TunicLocationData("Eastern Vault Fortress", "Fortress Grave Path Upper"),
|
2024-12-15 16:40:36 -05:00
|
|
|
"Fortress Grave Path - Chest Right of Grave": TunicLocationData("Eastern Vault Fortress", "Fortress Grave Path by Grave"),
|
|
|
|
|
"Fortress Grave Path - Obscured Chest Left of Grave": TunicLocationData("Eastern Vault Fortress", "Fortress Grave Path by Grave"),
|
2024-05-02 04:02:59 -04:00
|
|
|
"Hero's Grave - Flowers Relic": TunicLocationData("Eastern Vault Fortress", "Hero Relic - Fortress"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Beneath the Fortress - Bridge": TunicLocationData("Beneath the Vault", "Beneath the Vault Back"),
|
|
|
|
|
"Beneath the Fortress - Cell Chest 1": TunicLocationData("Beneath the Vault", "Beneath the Vault Back"),
|
2024-05-19 19:01:24 -04:00
|
|
|
"Beneath the Fortress - Obscured Behind Waterfall": TunicLocationData("Beneath the Vault", "Beneath the Vault Main"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Beneath the Fortress - Back Room Chest": TunicLocationData("Beneath the Vault", "Beneath the Vault Back"),
|
|
|
|
|
"Beneath the Fortress - Cell Chest 2": TunicLocationData("Beneath the Vault", "Beneath the Vault Back"),
|
2024-12-15 16:40:36 -05:00
|
|
|
"Frog's Domain - Near Vault": TunicLocationData("Frog's Domain", "Frog's Domain Main"),
|
|
|
|
|
"Frog's Domain - Slorm Room": TunicLocationData("Frog's Domain", "Frog's Domain Main"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Frog's Domain - Escape Chest": TunicLocationData("Frog's Domain", "Frog's Domain Back"),
|
2024-12-15 16:40:36 -05:00
|
|
|
"Frog's Domain - Grapple Above Hot Tub": TunicLocationData("Frog's Domain", "Frog's Domain Front"),
|
|
|
|
|
"Frog's Domain - Above Vault": TunicLocationData("Frog's Domain", "Frog's Domain Front"),
|
|
|
|
|
"Frog's Domain - Main Room Top Floor": TunicLocationData("Frog's Domain", "Frog's Domain Main"),
|
|
|
|
|
"Frog's Domain - Main Room Bottom Floor": TunicLocationData("Frog's Domain", "Frog's Domain Main"),
|
|
|
|
|
"Frog's Domain - Side Room Secret Passage": TunicLocationData("Frog's Domain", "Frog's Domain Main"),
|
|
|
|
|
"Frog's Domain - Side Room Chest": TunicLocationData("Frog's Domain", "Frog's Domain Main"),
|
|
|
|
|
"Frog's Domain - Side Room Grapple Secret": TunicLocationData("Frog's Domain", "Frog's Domain Front"),
|
|
|
|
|
"Frog's Domain - Magic Orb Pickup": TunicLocationData("Frog's Domain", "Frog's Domain Main"),
|
2024-05-02 04:02:59 -04:00
|
|
|
"Librarian - Hexagon Green": TunicLocationData("Library", "Library Arena", location_group="Bosses"),
|
|
|
|
|
"Library Hall - Holy Cross Chest": TunicLocationData("Library", "Library Hall", location_group="Holy Cross"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Library Lab - Chest By Shrine 2": TunicLocationData("Library", "Library Lab"),
|
|
|
|
|
"Library Lab - Chest By Shrine 1": TunicLocationData("Library", "Library Lab"),
|
|
|
|
|
"Library Lab - Chest By Shrine 3": TunicLocationData("Library", "Library Lab"),
|
|
|
|
|
"Library Lab - Behind Chalkboard by Fuse": TunicLocationData("Library", "Library Lab"),
|
|
|
|
|
"Library Lab - Page 3": TunicLocationData("Library", "Library Lab"),
|
|
|
|
|
"Library Lab - Page 1": TunicLocationData("Library", "Library Lab"),
|
|
|
|
|
"Library Lab - Page 2": TunicLocationData("Library", "Library Lab"),
|
2024-05-02 04:02:59 -04:00
|
|
|
"Hero's Grave - Mushroom Relic": TunicLocationData("Library", "Hero Relic - Library"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Lower Mountain - Page Before Door": TunicLocationData("Overworld", "Lower Mountain"),
|
|
|
|
|
"Changing Room - Normal Chest": TunicLocationData("Overworld", "Changing Room"),
|
|
|
|
|
"Fortress Courtyard - Chest Near Cave": TunicLocationData("Overworld", "Fortress Exterior near cave"),
|
|
|
|
|
"Fortress Courtyard - Near Fuse": TunicLocationData("Overworld", "Fortress Exterior from Overworld"),
|
|
|
|
|
"Fortress Courtyard - Below Walkway": TunicLocationData("Overworld", "Fortress Exterior from Overworld"),
|
|
|
|
|
"Fortress Courtyard - Page Near Cave": TunicLocationData("Overworld", "Fortress Exterior near cave"),
|
|
|
|
|
"West Furnace - Lantern Pickup": TunicLocationData("Overworld", "Furnace Fuse"),
|
|
|
|
|
"Maze Cave - Maze Room Chest": TunicLocationData("Overworld", "Maze Cave"),
|
|
|
|
|
"Old House - Normal Chest": TunicLocationData("Overworld", "Old House Front"),
|
|
|
|
|
"Old House - Shield Pickup": TunicLocationData("Overworld", "Old House Front"),
|
|
|
|
|
"Overworld - [West] Obscured Behind Windmill": TunicLocationData("Overworld", "Overworld"),
|
2024-03-21 11:50:07 -04:00
|
|
|
"Overworld - [South] Beach Chest": TunicLocationData("Overworld", "Overworld Beach"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Overworld - [West] Obscured Near Well": TunicLocationData("Overworld", "Overworld"),
|
|
|
|
|
"Overworld - [Central] Bombable Wall": TunicLocationData("Overworld", "Overworld"),
|
|
|
|
|
"Overworld - [Northwest] Chest Near Turret": TunicLocationData("Overworld", "Overworld"),
|
2024-03-21 11:50:07 -04:00
|
|
|
"Overworld - [East] Chest Near Pots": TunicLocationData("Overworld", "East Overworld"),
|
|
|
|
|
"Overworld - [Northwest] Chest Near Golden Obelisk": TunicLocationData("Overworld", "Overworld above Quarry Entrance"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Overworld - [Southwest] South Chest Near Guard": TunicLocationData("Overworld", "Overworld"),
|
2024-03-21 11:50:07 -04:00
|
|
|
"Overworld - [Southwest] West Beach Guarded By Turret": TunicLocationData("Overworld", "Overworld Beach"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Overworld - [Southwest] Chest Guarded By Turret": TunicLocationData("Overworld", "Overworld"),
|
|
|
|
|
"Overworld - [Northwest] Shadowy Corner Chest": TunicLocationData("Overworld", "Overworld"),
|
2024-12-15 16:40:36 -05:00
|
|
|
"Overworld - [Southwest] Obscured In Tunnel To Beach": TunicLocationData("Overworld", "Overworld Tunnel to Beach"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Overworld - [Southwest] Grapple Chest Over Walkway": TunicLocationData("Overworld", "Overworld"),
|
2024-03-21 11:50:07 -04:00
|
|
|
"Overworld - [Northwest] Chest Beneath Quarry Gate": TunicLocationData("Overworld", "Overworld after Envoy"),
|
|
|
|
|
"Overworld - [Southeast] Chest Near Swamp": TunicLocationData("Overworld", "Overworld Swamp Lower Entry"),
|
|
|
|
|
"Overworld - [Southwest] From West Garden": TunicLocationData("Overworld", "Overworld Beach"),
|
|
|
|
|
"Overworld - [East] Grapple Chest": TunicLocationData("Overworld", "Overworld above Patrol Cave"),
|
|
|
|
|
"Overworld - [Southwest] West Beach Guarded By Turret 2": TunicLocationData("Overworld", "Overworld Beach"),
|
|
|
|
|
"Overworld - [Southwest] Beach Chest Near Flowers": TunicLocationData("Overworld", "Overworld Beach"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Overworld - [Southwest] Bombable Wall Near Fountain": TunicLocationData("Overworld", "Overworld"),
|
|
|
|
|
"Overworld - [West] Chest After Bell": TunicLocationData("Overworld", "Overworld Belltower"),
|
2024-03-21 11:50:07 -04:00
|
|
|
"Overworld - [Southwest] Tunnel Guarded By Turret": TunicLocationData("Overworld", "Overworld Tunnel Turret"),
|
2024-04-14 22:14:16 -04:00
|
|
|
"Overworld - [East] Between Ladders Near Ruined Passage": TunicLocationData("Overworld", "After Ruined Passage"),
|
2024-03-21 11:50:07 -04:00
|
|
|
"Overworld - [Northeast] Chest Above Patrol Cave": TunicLocationData("Overworld", "Upper Overworld"),
|
|
|
|
|
"Overworld - [Southwest] Beach Chest Beneath Guard": TunicLocationData("Overworld", "Overworld Beach"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Overworld - [Central] Chest Across From Well": TunicLocationData("Overworld", "Overworld"),
|
|
|
|
|
"Overworld - [Northwest] Chest Near Quarry Gate": TunicLocationData("Overworld", "Overworld"),
|
2024-03-21 11:50:07 -04:00
|
|
|
"Overworld - [East] Chest In Trees": TunicLocationData("Overworld", "Above Ruined Passage"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Overworld - [West] Chest Behind Moss Wall": TunicLocationData("Overworld", "Overworld"),
|
2024-03-21 11:50:07 -04:00
|
|
|
"Overworld - [South] Beach Page": TunicLocationData("Overworld", "Overworld Beach"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Overworld - [Southeast] Page on Pillar by Swamp": TunicLocationData("Overworld", "Overworld"),
|
|
|
|
|
"Overworld - [Southwest] Key Pickup": TunicLocationData("Overworld", "Overworld"),
|
|
|
|
|
"Overworld - [West] Key Pickup": TunicLocationData("Overworld", "Overworld"),
|
2024-03-21 11:50:07 -04:00
|
|
|
"Overworld - [East] Page Near Secret Shop": TunicLocationData("Overworld", "East Overworld"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Overworld - [Southwest] Fountain Page": TunicLocationData("Overworld", "Overworld"),
|
|
|
|
|
"Overworld - [Northwest] Page on Pillar by Dark Tomb": TunicLocationData("Overworld", "Overworld"),
|
2024-03-21 11:50:07 -04:00
|
|
|
"Overworld - [Northwest] Fire Wand Pickup": TunicLocationData("Overworld", "Upper Overworld"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Overworld - [West] Page On Teleporter": TunicLocationData("Overworld", "Overworld"),
|
2024-12-15 16:40:36 -05:00
|
|
|
"Overworld - [Northwest] Page By Well": TunicLocationData("Overworld", "Overworld Well Entry Area"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Patrol Cave - Normal Chest": TunicLocationData("Overworld", "Patrol Cave"),
|
|
|
|
|
"Ruined Shop - Chest 1": TunicLocationData("Overworld", "Ruined Shop"),
|
|
|
|
|
"Ruined Shop - Chest 2": TunicLocationData("Overworld", "Ruined Shop"),
|
|
|
|
|
"Ruined Shop - Chest 3": TunicLocationData("Overworld", "Ruined Shop"),
|
|
|
|
|
"Ruined Passage - Page Pickup": TunicLocationData("Overworld", "Ruined Passage"),
|
2024-05-02 04:02:59 -04:00
|
|
|
"Shop - Potion 1": TunicLocationData("Overworld", "Shop"),
|
|
|
|
|
"Shop - Potion 2": TunicLocationData("Overworld", "Shop"),
|
|
|
|
|
"Shop - Coin 1": TunicLocationData("Overworld", "Shop"),
|
|
|
|
|
"Shop - Coin 2": TunicLocationData("Overworld", "Shop"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Special Shop - Secret Page Pickup": TunicLocationData("Overworld", "Special Shop"),
|
|
|
|
|
"Stick House - Stick Chest": TunicLocationData("Overworld", "Stick House"),
|
|
|
|
|
"Sealed Temple - Page Pickup": TunicLocationData("Overworld", "Sealed Temple"),
|
|
|
|
|
"Hourglass Cave - Hourglass Chest": TunicLocationData("Overworld", "Hourglass Cave"),
|
|
|
|
|
"Far Shore - Secret Chest": TunicLocationData("Overworld", "Far Shore"),
|
2024-03-21 11:50:07 -04:00
|
|
|
"Far Shore - Page Pickup": TunicLocationData("Overworld", "Far Shore to Spawn Region"),
|
2024-05-02 04:02:59 -04:00
|
|
|
"Coins in the Well - 10 Coins": TunicLocationData("Overworld", "Overworld", location_group="Well"),
|
|
|
|
|
"Coins in the Well - 15 Coins": TunicLocationData("Overworld", "Overworld", location_group="Well"),
|
|
|
|
|
"Coins in the Well - 3 Coins": TunicLocationData("Overworld", "Overworld", location_group="Well"),
|
|
|
|
|
"Coins in the Well - 6 Coins": TunicLocationData("Overworld", "Overworld", location_group="Well"),
|
|
|
|
|
"Secret Gathering Place - 20 Fairy Reward": TunicLocationData("Overworld", "Secret Gathering Place", location_group="Fairies"),
|
|
|
|
|
"Secret Gathering Place - 10 Fairy Reward": TunicLocationData("Overworld", "Secret Gathering Place", location_group="Fairies"),
|
|
|
|
|
"Overworld - [West] Moss Wall Holy Cross": TunicLocationData("Overworld Holy Cross", "Overworld Holy Cross", location_group="Holy Cross"),
|
|
|
|
|
"Overworld - [Southwest] Flowers Holy Cross": TunicLocationData("Overworld Holy Cross", "Overworld Beach", location_group="Holy Cross"),
|
|
|
|
|
"Overworld - [Southwest] Fountain Holy Cross": TunicLocationData("Overworld Holy Cross", "Overworld Holy Cross", location_group="Holy Cross"),
|
|
|
|
|
"Overworld - [Northeast] Flowers Holy Cross": TunicLocationData("Overworld Holy Cross", "East Overworld", location_group="Holy Cross"),
|
|
|
|
|
"Overworld - [East] Weathervane Holy Cross": TunicLocationData("Overworld Holy Cross", "East Overworld", location_group="Holy Cross"),
|
|
|
|
|
"Overworld - [West] Windmill Holy Cross": TunicLocationData("Overworld Holy Cross", "Overworld Holy Cross", location_group="Holy Cross"),
|
|
|
|
|
"Overworld - [Southwest] Haiku Holy Cross": TunicLocationData("Overworld Holy Cross", "Overworld Beach", location_group="Holy Cross"),
|
|
|
|
|
"Overworld - [West] Windchimes Holy Cross": TunicLocationData("Overworld Holy Cross", "Overworld Holy Cross", location_group="Holy Cross"),
|
|
|
|
|
"Overworld - [South] Starting Platform Holy Cross": TunicLocationData("Overworld Holy Cross", "Overworld Holy Cross", location_group="Holy Cross"),
|
|
|
|
|
"Overworld - [Northwest] Golden Obelisk Page": TunicLocationData("Overworld Holy Cross", "Upper Overworld", location_group="Holy Cross"),
|
|
|
|
|
"Old House - Holy Cross Door Page": TunicLocationData("Overworld Holy Cross", "Old House Back", location_group="Holy Cross"),
|
|
|
|
|
"Cube Cave - Holy Cross Chest": TunicLocationData("Overworld Holy Cross", "Cube Cave", location_group="Holy Cross"),
|
|
|
|
|
"Southeast Cross Door - Chest 3": TunicLocationData("Overworld Holy Cross", "Southeast Cross Room", location_group="Holy Cross"),
|
|
|
|
|
"Southeast Cross Door - Chest 2": TunicLocationData("Overworld Holy Cross", "Southeast Cross Room", location_group="Holy Cross"),
|
|
|
|
|
"Southeast Cross Door - Chest 1": TunicLocationData("Overworld Holy Cross", "Southeast Cross Room", location_group="Holy Cross"),
|
|
|
|
|
"Maze Cave - Maze Room Holy Cross": TunicLocationData("Overworld Holy Cross", "Maze Cave", location_group="Holy Cross"),
|
|
|
|
|
"Caustic Light Cave - Holy Cross Chest": TunicLocationData("Overworld Holy Cross", "Caustic Light Cave", location_group="Holy Cross"),
|
|
|
|
|
"Old House - Holy Cross Chest": TunicLocationData("Overworld Holy Cross", "Old House Front", location_group="Holy Cross"),
|
|
|
|
|
"Patrol Cave - Holy Cross Chest": TunicLocationData("Overworld Holy Cross", "Patrol Cave", location_group="Holy Cross"),
|
|
|
|
|
"Ruined Passage - Holy Cross Chest": TunicLocationData("Overworld Holy Cross", "Ruined Passage", location_group="Holy Cross"),
|
|
|
|
|
"Hourglass Cave - Holy Cross Chest": TunicLocationData("Overworld Holy Cross", "Hourglass Cave Tower", location_group="Holy Cross"),
|
|
|
|
|
"Sealed Temple - Holy Cross Chest": TunicLocationData("Overworld Holy Cross", "Sealed Temple", location_group="Holy Cross"),
|
|
|
|
|
"Fountain Cross Door - Page Pickup": TunicLocationData("Overworld Holy Cross", "Fountain Cross Room", location_group="Holy Cross"),
|
|
|
|
|
"Secret Gathering Place - Holy Cross Chest": TunicLocationData("Overworld Holy Cross", "Secret Gathering Place", location_group="Holy Cross"),
|
|
|
|
|
"Top of the Mountain - Page At The Peak": TunicLocationData("Overworld Holy Cross", "Top of the Mountain", location_group="Holy Cross"),
|
2025-02-23 11:02:30 -05:00
|
|
|
"Monastery - Monastery Chest": TunicLocationData("Monastery Back", "Monastery Back"),
|
2024-05-02 04:02:59 -04:00
|
|
|
"Quarry - [Back Entrance] Bushes Holy Cross": TunicLocationData("Quarry Back", "Quarry Back", location_group="Holy Cross"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Quarry - [Back Entrance] Chest": TunicLocationData("Quarry Back", "Quarry Back"),
|
2024-07-22 18:43:41 -04:00
|
|
|
"Quarry - [Central] Near Shortcut Ladder": TunicLocationData("Quarry Back", "Quarry Back"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Quarry - [East] Near Telescope": TunicLocationData("Quarry", "Quarry"),
|
|
|
|
|
"Quarry - [East] Upper Floor": TunicLocationData("Quarry", "Quarry"),
|
2024-07-22 18:43:41 -04:00
|
|
|
"Quarry - [Central] Below Entry Walkway": TunicLocationData("Quarry Back", "Quarry Back"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Quarry - [East] Obscured Near Winding Staircase": TunicLocationData("Quarry", "Quarry"),
|
|
|
|
|
"Quarry - [East] Obscured Beneath Scaffolding": TunicLocationData("Quarry", "Quarry"),
|
|
|
|
|
"Quarry - [East] Obscured Near Telescope": TunicLocationData("Quarry", "Quarry"),
|
|
|
|
|
"Quarry - [Back Entrance] Obscured Behind Wall": TunicLocationData("Quarry Back", "Quarry Back"),
|
2024-07-22 18:43:41 -04:00
|
|
|
"Quarry - [Central] Obscured Below Entry Walkway": TunicLocationData("Quarry Back", "Quarry Back"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Quarry - [Central] Top Floor Overhang": TunicLocationData("Quarry", "Quarry"),
|
|
|
|
|
"Quarry - [East] Near Bridge": TunicLocationData("Quarry", "Quarry"),
|
2025-02-23 11:02:30 -05:00
|
|
|
"Quarry - [Central] Above Ladder": TunicLocationData("Monastery", "Quarry Monastery Entry"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Quarry - [Central] Obscured Behind Staircase": TunicLocationData("Quarry", "Quarry"),
|
2025-02-23 11:02:30 -05:00
|
|
|
"Quarry - [Central] Above Ladder Dash Chest": TunicLocationData("Monastery", "Quarry Monastery Entry"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Quarry - [West] Upper Area Bombable Wall": TunicLocationData("Quarry Back", "Quarry Back"),
|
|
|
|
|
"Quarry - [East] Bombable Wall": TunicLocationData("Quarry", "Quarry"),
|
2025-02-23 11:02:30 -05:00
|
|
|
"Hero's Grave - Ash Relic": TunicLocationData("Monastery Back", "Hero Relic - Quarry"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Quarry - [West] Shooting Range Secret Path": TunicLocationData("Lower Quarry", "Lower Quarry"),
|
|
|
|
|
"Quarry - [West] Near Shooting Range": TunicLocationData("Lower Quarry", "Lower Quarry"),
|
|
|
|
|
"Quarry - [West] Below Shooting Range": TunicLocationData("Lower Quarry", "Lower Quarry"),
|
2024-03-21 11:50:07 -04:00
|
|
|
"Quarry - [Lowlands] Below Broken Ladder": TunicLocationData("Lower Quarry", "Even Lower Quarry"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Quarry - [West] Upper Area Near Waterfall": TunicLocationData("Lower Quarry", "Lower Quarry"),
|
2024-03-21 11:50:07 -04:00
|
|
|
"Quarry - [Lowlands] Upper Walkway": TunicLocationData("Lower Quarry", "Even Lower Quarry"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Quarry - [West] Lower Area Below Bridge": TunicLocationData("Lower Quarry", "Lower Quarry"),
|
|
|
|
|
"Quarry - [West] Lower Area Isolated Chest": TunicLocationData("Lower Quarry", "Lower Quarry"),
|
2024-12-15 16:40:36 -05:00
|
|
|
"Quarry - [Lowlands] Near Elevator": TunicLocationData("Lower Quarry", "Even Lower Quarry Isolated Chest"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Quarry - [West] Lower Area After Bridge": TunicLocationData("Lower Quarry", "Lower Quarry"),
|
|
|
|
|
"Rooted Ziggurat Upper - Near Bridge Switch": TunicLocationData("Rooted Ziggurat", "Rooted Ziggurat Upper Front"),
|
|
|
|
|
"Rooted Ziggurat Upper - Beneath Bridge To Administrator": TunicLocationData("Rooted Ziggurat", "Rooted Ziggurat Upper Back"),
|
|
|
|
|
"Rooted Ziggurat Tower - Inside Tower": TunicLocationData("Rooted Ziggurat", "Rooted Ziggurat Middle Top"),
|
2024-12-15 16:40:36 -05:00
|
|
|
"Rooted Ziggurat Lower - Near Corpses": TunicLocationData("Rooted Ziggurat", "Rooted Ziggurat Lower Entry"),
|
|
|
|
|
"Rooted Ziggurat Lower - Spider Ambush": TunicLocationData("Rooted Ziggurat", "Rooted Ziggurat Lower Entry"),
|
|
|
|
|
"Rooted Ziggurat Lower - Left Of Checkpoint Before Fuse": TunicLocationData("Rooted Ziggurat", "Rooted Ziggurat Lower Mid Checkpoint"),
|
TUNIC: The Big Refactor (#5195)
* Make it actually return false if it gets to the backup lists and fails them
* Fix stuff after merge
* Add outlet regions, create new regions as needed for them
* Put together part of decoupled and direction pairs
* make direction pairs work
* Make decoupled work
* Make fixed shop work again
* Fix a few minor bugs
* Fix a few minor bugs
* Fix plando
* god i love programming
* Reorder portal list
* Update portal sorter for variable shops
* Add missing parameter
* Some cleanup of prints and functions
* Fix typo
* it's aliiiiiive
* Make seed groups not sync decoupled
* Add test with full-shop plando
* Fix bug with vanilla portals
* Handle plando connections and direction pair errors
* Update plando checking for decoupled
* Fix typo
* Fix exception text to be shorter
* Add some more comments
* Add todo note
* Remove unused safety thing
* Remove extra plando connections definition in options
* Make seed groups in decoupled with overlapping but not fully overlapped plando connections interact nicely without messing with what the entrances look like in the spoiler log
* Fix weird edge case that is technically user error
* Add note to fixed shop
* Fix parsing shop names in UT
* Remove debug print
* Actually make UT work
* multiworld. to world.
* Fix typo from merge
* Make it so the shops show up in the entrance hints
* Fix bug in ladder storage rules
* Remove blank line
* # Conflicts:
# worlds/tunic/__init__.py
# worlds/tunic/er_data.py
# worlds/tunic/er_rules.py
# worlds/tunic/er_scripts.py
# worlds/tunic/rules.py
# worlds/tunic/test/test_access.py
* Fix issues after merge
* Update plando connections stuff in docs
* Make early bushes only contain grass
* Fix library mistake
* Backport changes to grass rando (#20)
* Backport changes to grass rando
* add_rule instead of set_rule for the special cases, add special cases for back of swamp laurels area cause I should've made a new region for the swamp upper entrance
* Remove item name group for grass
* Update grass rando option descriptions
- Also ignore grass fill for single player games
* Ignore grass fill option for solo rando
* Update er_rules.py
* Fix pre fill issue
* Remove duplicate option
* Add excluded grass locations back
* Hide grass fill option from simple ui options page
* Check for start with sword before setting grass rules
* Update worlds/tunic/options.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* has_stick -> has_melee
* has_stick -> has_melee
* Add a failsafe for direction pairing
* Fix playthrough crash bug
* Remove init from logicmixin
* Updates per code review (thanks hesto)
* has_stick to has_melee in newer update
* has_stick to has_melee in newer update
* Exclude grass from get_filler_item_name
- non-grass rando games were accidentally seeing grass items get shuffled in as filler, which is funny but probably shouldn't happen
* Update worlds/tunic/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Apply suggestions from code review
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* change the rest of grass_fill to local_fill
* Filter out grass from filler_items
* remove -> discard
* Update worlds/tunic/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Starting out
* Rules for breakable regions
* # Conflicts:
# worlds/tunic/__init__.py
# worlds/tunic/combat_logic.py
# worlds/tunic/er_data.py
# worlds/tunic/er_rules.py
# worlds/tunic/er_scripts.py
* Cleanup more stuff after merge
* Revert "Cleanup more stuff after merge"
This reverts commit a6ee9a93da8f2fcc4413de6df6927b246017889d.
* Revert "# Conflicts:"
This reverts commit c74ccd74a45b6ad6b9abe6e339d115a0c98baf30.
* Cleanup more stuff after merge
* change has_stick to has_melee
* Update grass list with combat logic regions
* More fixes from combat logic merge
* Fix some dumb stuff (#21)
* Reorganize pre fill for grass
* make the rest of it work, it's pr ready, boom
* Make it work in not pot shuffle
* Merge grass rando
* multiworld -> world get_location, use has_any
* Swap out region for West Garden Before Terry grass
* Adjust west garden rules to add west combat region
* Adjust grass regions for south checkpoint grass
* Adjust grass regions for after terry grass
* Adjust grass regions for west combat grass
* Adjust grass regions for dagger house grass
* Adjust grass regions for south checkpoint grass, adjust regions and rules for some related locations
* Finish the remainder of the west garden grass, reformat ruined atoll a little
* More hex quest updates
- Implement page ability shuffle for hex quest
- Fix keys behind bosses if hex goal is less than 3
- Added check to fix conflicting hex quest options
- Add option to slot data
* Change option comparison
* Change option checking and fix some stuff
- also keep prayer first on low hex counts
* Update option defaulting
* Update option checking
* Fix option assignment again
* Merge in hex hunt
* Merge in changes
* Clean up imports
* Add ability type to UT stuff
* merge it all
* Make local fill work across pot and grass (to be adjusted later)
* Make separate pools for the grass and non-grass fills
* Fix id overlap
* Update option description
* Fix default
* Reorder localfill option desc
* Load the purgatory ones in
* Adjustments after merge
* Fully remove logicrules
* Fix UT support with fixed shop option
* Add breakable shuffle to the ut stuff
* Make it load in a specific number of locations
* Add Silent's spoiler log ability thing
* Fix for groups
* Fix for groups
* Fix typo
* Fix hex quest UT support
* Use .get
* UT fixes, classification fixes
* Rename some locations
* Adjust guard house names
* Adjust guard house names
* Rework create_item
* Fix for plando connections
* Rename, add new breakables
* Rename more stuff
* Time to rename them again
* Fix issue with fixed shop + decoupled
* Put in an exception to catch that error in the future
* Update create_item to match main
* Update spoiler log lines for hex abilities
* Burn the signs down
* Bring over the combat logic fix
* Merge in combat logic fix
* Silly static method thing
* Move a few areas to before well instead of east forest
* Add an all_random hidden option for dev stuff
* Port over changes from main
* Fix west courtyard pot regions
* Remove debug prints
* Fix fortress courtyard and beneath the fortress loc groups again
* Add exception handling to deal with duplicate apworlds
* Fix typo
* More missing loc group conversions
* Initial fuse shuffle stuff
* Fix gun missing from combat_items, add new for combat logic cache, very slight refactor of check_combat_reqs to let it do the changeover in a less complicated fashion, fix area being a boss area rather than non-boss area for a check
* Add fuse shuffle logic
* reorder atoll statue rule
* Update traversal reqs
* Remove fuse shuffle from temple door
* Combine rules and option checking
* Add bell shuffle; fix fuse location groups
* Fix portal rules not requiring prayer
* Merge the grass laurels exit grass PR
* Merge in fortress bridge PR
* Do a little clean up
* Fix a regression
* Update after merge
* Some more stuff
* More Silent changes
* Update more info section in game info page
* Fix rules for atoll and swamp fuses
* Precollect cathedral fuse in ER
* actually just make the fuse useful instead of progression
* Add it to the swamp and cath rules too
* Fix cath fuse name
* Minor fixes and edits
* Some UT stuff
* Fix a couple more groups
* Move a bunch of UT stuff to its own file
* Fix up a couple UT things
* Couple minor ER fixes
* Formatting change
* UT poptracker stuff enabled since it's optional in one of the releases
* Add author string to world class
* Adjust local fill option name
* Update ut_stuff to match the PR
* Add exception handling for UT with old apworld
* Fix missing tracker_world
* Remove extra entrance from cath main -> elevator
Entry <-> Elev exists,
Entry <-> Main exists
So no connection is needed between Main and Elev
* Fix so that decoupled doesn't incorrectly use get_portal_info and get_paired_portal
* Fix so that decoupled doesn't incorrectly use get_portal_info and get_paired_portal
* Update for breakables poptracker
* Backup and warnings instead
* Update typing
* Delete old regions and rules, move stuff to logic_helpers and constants
* Delete now much less useful tests
* Fix breakables map tracking
* Add more comments to init
* Add todo to grass.py
* Fix up tests
* Pull out fuse and bell shuffle
* Pull out fuse and bell shuffle
* Update worlds/tunic/options.py
Co-authored-by: qwint <qwint.42@gmail.com>
* Update worlds/tunic/logic_helpers.py
Co-authored-by: qwint <qwint.42@gmail.com>
* {} -> () in state functions
* {} -> () in state functions
* Change {} -> () in state functions, use constant for gun
* Remove floating constants in er_data
* Finish hard deprecating FixedShop
* Finish hard deprecating FixedShop
* Fix zig skip showing up in decoupled fixed shop
---------
Co-authored-by: silent-destroyer <osilentdestroyer@gmail.com>
Co-authored-by: Silent <110704408+silent-destroyer@users.noreply.github.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: qwint <qwint.42@gmail.com>
2025-09-04 18:44:32 -04:00
|
|
|
"Rooted Ziggurat Lower - After Guarded Fuse": TunicLocationData("Rooted Ziggurat", "Rooted Ziggurat Lower Miniboss Platform"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Rooted Ziggurat Lower - Guarded By Double Turrets": TunicLocationData("Rooted Ziggurat", "Rooted Ziggurat Lower Front"),
|
2024-12-15 16:40:36 -05:00
|
|
|
"Rooted Ziggurat Lower - After 2nd Double Turret Chest": TunicLocationData("Rooted Ziggurat", "Rooted Ziggurat Lower Mid Checkpoint"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Rooted Ziggurat Lower - Guarded By Double Turrets 2": TunicLocationData("Rooted Ziggurat", "Rooted Ziggurat Lower Front"),
|
2024-05-02 04:02:59 -04:00
|
|
|
"Rooted Ziggurat Lower - Hexagon Blue": TunicLocationData("Rooted Ziggurat", "Rooted Ziggurat Lower Back", location_group="Bosses"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Ruined Atoll - [West] Near Kevin Block": TunicLocationData("Ruined Atoll", "Ruined Atoll"),
|
2024-03-21 11:50:07 -04:00
|
|
|
"Ruined Atoll - [South] Upper Floor On Power Line": TunicLocationData("Ruined Atoll", "Ruined Atoll Ladder Tops"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Ruined Atoll - [South] Chest Near Big Crabs": TunicLocationData("Ruined Atoll", "Ruined Atoll"),
|
|
|
|
|
"Ruined Atoll - [North] Guarded By Bird": TunicLocationData("Ruined Atoll", "Ruined Atoll"),
|
|
|
|
|
"Ruined Atoll - [Northeast] Chest Beneath Brick Walkway": TunicLocationData("Ruined Atoll", "Ruined Atoll"),
|
|
|
|
|
"Ruined Atoll - [Northwest] Bombable Wall": TunicLocationData("Ruined Atoll", "Ruined Atoll"),
|
|
|
|
|
"Ruined Atoll - [North] Obscured Beneath Bridge": TunicLocationData("Ruined Atoll", "Ruined Atoll"),
|
2024-03-21 11:50:07 -04:00
|
|
|
"Ruined Atoll - [South] Upper Floor On Bricks": TunicLocationData("Ruined Atoll", "Ruined Atoll Ladder Tops"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Ruined Atoll - [South] Near Birds": TunicLocationData("Ruined Atoll", "Ruined Atoll"),
|
|
|
|
|
"Ruined Atoll - [Northwest] Behind Envoy": TunicLocationData("Ruined Atoll", "Ruined Atoll"),
|
|
|
|
|
"Ruined Atoll - [Southwest] Obscured Behind Fuse": TunicLocationData("Ruined Atoll", "Ruined Atoll"),
|
|
|
|
|
"Ruined Atoll - [East] Locked Room Upper Chest": TunicLocationData("Ruined Atoll", "Ruined Atoll"),
|
|
|
|
|
"Ruined Atoll - [North] From Lower Overworld Entrance": TunicLocationData("Ruined Atoll", "Ruined Atoll Lower Entry Area"),
|
|
|
|
|
"Ruined Atoll - [East] Locked Room Lower Chest": TunicLocationData("Ruined Atoll", "Ruined Atoll"),
|
|
|
|
|
"Ruined Atoll - [Northeast] Chest On Brick Walkway": TunicLocationData("Ruined Atoll", "Ruined Atoll"),
|
2024-03-21 11:50:07 -04:00
|
|
|
"Ruined Atoll - [Southeast] Chest Near Fuse": TunicLocationData("Ruined Atoll", "Ruined Atoll Ladder Tops"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Ruined Atoll - [Northeast] Key Pickup": TunicLocationData("Ruined Atoll", "Ruined Atoll"),
|
|
|
|
|
"Cathedral Gauntlet - Gauntlet Reward": TunicLocationData("Swamp", "Cathedral Gauntlet"),
|
|
|
|
|
"Cathedral - Secret Legend Trophy Chest": TunicLocationData("Swamp", "Cathedral Secret Legend Room"),
|
2024-03-21 11:50:07 -04:00
|
|
|
"Swamp - [Upper Graveyard] Obscured Behind Hill": TunicLocationData("Swamp", "Swamp Mid"),
|
|
|
|
|
"Swamp - [South Graveyard] 4 Orange Skulls": TunicLocationData("Swamp", "Swamp Front"),
|
|
|
|
|
"Swamp - [Central] Near Ramps Up": TunicLocationData("Swamp", "Swamp Mid"),
|
|
|
|
|
"Swamp - [Upper Graveyard] Near Shield Fleemers": TunicLocationData("Swamp", "Swamp Mid"),
|
|
|
|
|
"Swamp - [South Graveyard] Obscured Behind Ridge": TunicLocationData("Swamp", "Swamp Mid"),
|
|
|
|
|
"Swamp - [South Graveyard] Obscured Beneath Telescope": TunicLocationData("Swamp", "Swamp Front"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Swamp - [Entrance] Above Entryway": TunicLocationData("Swamp", "Back of Swamp Laurels Area"),
|
2024-03-21 11:50:07 -04:00
|
|
|
"Swamp - [Central] South Secret Passage": TunicLocationData("Swamp", "Swamp Mid"),
|
|
|
|
|
"Swamp - [South Graveyard] Upper Walkway On Pedestal": TunicLocationData("Swamp", "Swamp Front"),
|
|
|
|
|
"Swamp - [South Graveyard] Guarded By Tentacles": TunicLocationData("Swamp", "Swamp Front"),
|
|
|
|
|
"Swamp - [Upper Graveyard] Near Telescope": TunicLocationData("Swamp", "Swamp Mid"),
|
|
|
|
|
"Swamp - [Outside Cathedral] Near Moonlight Bridge Door": TunicLocationData("Swamp", "Swamp Ledge under Cathedral Door"),
|
|
|
|
|
"Swamp - [Entrance] Obscured Inside Watchtower": TunicLocationData("Swamp", "Swamp Front"),
|
|
|
|
|
"Swamp - [Entrance] South Near Fence": TunicLocationData("Swamp", "Swamp Front"),
|
|
|
|
|
"Swamp - [South Graveyard] Guarded By Big Skeleton": TunicLocationData("Swamp", "Swamp Front"),
|
|
|
|
|
"Swamp - [South Graveyard] Chest Near Graves": TunicLocationData("Swamp", "Swamp Front"),
|
|
|
|
|
"Swamp - [Entrance] North Small Island": TunicLocationData("Swamp", "Swamp Front"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"Swamp - [Outside Cathedral] Obscured Behind Memorial": TunicLocationData("Swamp", "Back of Swamp"),
|
2024-03-21 11:50:07 -04:00
|
|
|
"Swamp - [Central] Obscured Behind Northern Mountain": TunicLocationData("Swamp", "Swamp Mid"),
|
|
|
|
|
"Swamp - [South Graveyard] Upper Walkway Dash Chest": TunicLocationData("Swamp", "Swamp Mid"),
|
|
|
|
|
"Swamp - [South Graveyard] Above Big Skeleton": TunicLocationData("Swamp", "Swamp Front"),
|
|
|
|
|
"Swamp - [Central] Beneath Memorial": TunicLocationData("Swamp", "Swamp Mid"),
|
2024-05-02 04:02:59 -04:00
|
|
|
"Hero's Grave - Feathers Relic": TunicLocationData("Swamp", "Hero Relic - Swamp"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"West Furnace - Chest": TunicLocationData("West Garden", "Furnace Walking Path"),
|
|
|
|
|
"Overworld - [West] Near West Garden Entrance": TunicLocationData("West Garden", "Overworld to West Garden from Furnace"),
|
2024-12-15 16:40:36 -05:00
|
|
|
"West Garden - [Central Highlands] Holy Cross (Blue Lines)": TunicLocationData("West Garden", "West Garden before Boss", location_group="Holy Cross"),
|
|
|
|
|
"West Garden - [West Lowlands] Tree Holy Cross Chest": TunicLocationData("West Garden", "West Garden after Terry", location_group="Holy Cross"),
|
|
|
|
|
"West Garden - [Southeast Lowlands] Outside Cave": TunicLocationData("West Garden", "West Garden at Dagger House"),
|
|
|
|
|
"West Garden - [Central Lowlands] Chest Beneath Faeries": TunicLocationData("West Garden", "West Garden South Checkpoint"),
|
|
|
|
|
"West Garden - [North] Behind Holy Cross Door": TunicLocationData("West Garden", "West Garden before Terry", location_group="Holy Cross"),
|
|
|
|
|
"West Garden - [Central Highlands] Top of Ladder Before Boss": TunicLocationData("West Garden", "West Garden before Boss"),
|
|
|
|
|
"West Garden - [Central Lowlands] Passage Beneath Bridge": TunicLocationData("West Garden", "West Garden after Terry"),
|
|
|
|
|
"West Garden - [North] Across From Page Pickup": TunicLocationData("West Garden", "West Garden before Terry"),
|
|
|
|
|
"West Garden - [Central Lowlands] Below Left Walkway": TunicLocationData("West Garden", "West Garden after Terry"),
|
|
|
|
|
"West Garden - [West] In Flooded Walkway": TunicLocationData("West Garden", "West Garden after Terry"),
|
|
|
|
|
"West Garden - [West] Past Flooded Walkway": TunicLocationData("West Garden", "West Garden after Terry"),
|
|
|
|
|
"West Garden - [North] Obscured Beneath Hero's Memorial": TunicLocationData("West Garden", "West Garden before Terry"),
|
|
|
|
|
"West Garden - [Central Lowlands] Chest Near Shortcut Bridge": TunicLocationData("West Garden", "West Garden after Terry"),
|
|
|
|
|
"West Garden - [West Highlands] Upper Left Walkway": TunicLocationData("West Garden", "West Garden South Checkpoint"),
|
|
|
|
|
"West Garden - [Central Lowlands] Chest Beneath Save Point": TunicLocationData("West Garden", "West Garden South Checkpoint"),
|
TUNIC: The Big Refactor (#5195)
* Make it actually return false if it gets to the backup lists and fails them
* Fix stuff after merge
* Add outlet regions, create new regions as needed for them
* Put together part of decoupled and direction pairs
* make direction pairs work
* Make decoupled work
* Make fixed shop work again
* Fix a few minor bugs
* Fix a few minor bugs
* Fix plando
* god i love programming
* Reorder portal list
* Update portal sorter for variable shops
* Add missing parameter
* Some cleanup of prints and functions
* Fix typo
* it's aliiiiiive
* Make seed groups not sync decoupled
* Add test with full-shop plando
* Fix bug with vanilla portals
* Handle plando connections and direction pair errors
* Update plando checking for decoupled
* Fix typo
* Fix exception text to be shorter
* Add some more comments
* Add todo note
* Remove unused safety thing
* Remove extra plando connections definition in options
* Make seed groups in decoupled with overlapping but not fully overlapped plando connections interact nicely without messing with what the entrances look like in the spoiler log
* Fix weird edge case that is technically user error
* Add note to fixed shop
* Fix parsing shop names in UT
* Remove debug print
* Actually make UT work
* multiworld. to world.
* Fix typo from merge
* Make it so the shops show up in the entrance hints
* Fix bug in ladder storage rules
* Remove blank line
* # Conflicts:
# worlds/tunic/__init__.py
# worlds/tunic/er_data.py
# worlds/tunic/er_rules.py
# worlds/tunic/er_scripts.py
# worlds/tunic/rules.py
# worlds/tunic/test/test_access.py
* Fix issues after merge
* Update plando connections stuff in docs
* Make early bushes only contain grass
* Fix library mistake
* Backport changes to grass rando (#20)
* Backport changes to grass rando
* add_rule instead of set_rule for the special cases, add special cases for back of swamp laurels area cause I should've made a new region for the swamp upper entrance
* Remove item name group for grass
* Update grass rando option descriptions
- Also ignore grass fill for single player games
* Ignore grass fill option for solo rando
* Update er_rules.py
* Fix pre fill issue
* Remove duplicate option
* Add excluded grass locations back
* Hide grass fill option from simple ui options page
* Check for start with sword before setting grass rules
* Update worlds/tunic/options.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* has_stick -> has_melee
* has_stick -> has_melee
* Add a failsafe for direction pairing
* Fix playthrough crash bug
* Remove init from logicmixin
* Updates per code review (thanks hesto)
* has_stick to has_melee in newer update
* has_stick to has_melee in newer update
* Exclude grass from get_filler_item_name
- non-grass rando games were accidentally seeing grass items get shuffled in as filler, which is funny but probably shouldn't happen
* Update worlds/tunic/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Apply suggestions from code review
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* change the rest of grass_fill to local_fill
* Filter out grass from filler_items
* remove -> discard
* Update worlds/tunic/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Starting out
* Rules for breakable regions
* # Conflicts:
# worlds/tunic/__init__.py
# worlds/tunic/combat_logic.py
# worlds/tunic/er_data.py
# worlds/tunic/er_rules.py
# worlds/tunic/er_scripts.py
* Cleanup more stuff after merge
* Revert "Cleanup more stuff after merge"
This reverts commit a6ee9a93da8f2fcc4413de6df6927b246017889d.
* Revert "# Conflicts:"
This reverts commit c74ccd74a45b6ad6b9abe6e339d115a0c98baf30.
* Cleanup more stuff after merge
* change has_stick to has_melee
* Update grass list with combat logic regions
* More fixes from combat logic merge
* Fix some dumb stuff (#21)
* Reorganize pre fill for grass
* make the rest of it work, it's pr ready, boom
* Make it work in not pot shuffle
* Merge grass rando
* multiworld -> world get_location, use has_any
* Swap out region for West Garden Before Terry grass
* Adjust west garden rules to add west combat region
* Adjust grass regions for south checkpoint grass
* Adjust grass regions for after terry grass
* Adjust grass regions for west combat grass
* Adjust grass regions for dagger house grass
* Adjust grass regions for south checkpoint grass, adjust regions and rules for some related locations
* Finish the remainder of the west garden grass, reformat ruined atoll a little
* More hex quest updates
- Implement page ability shuffle for hex quest
- Fix keys behind bosses if hex goal is less than 3
- Added check to fix conflicting hex quest options
- Add option to slot data
* Change option comparison
* Change option checking and fix some stuff
- also keep prayer first on low hex counts
* Update option defaulting
* Update option checking
* Fix option assignment again
* Merge in hex hunt
* Merge in changes
* Clean up imports
* Add ability type to UT stuff
* merge it all
* Make local fill work across pot and grass (to be adjusted later)
* Make separate pools for the grass and non-grass fills
* Fix id overlap
* Update option description
* Fix default
* Reorder localfill option desc
* Load the purgatory ones in
* Adjustments after merge
* Fully remove logicrules
* Fix UT support with fixed shop option
* Add breakable shuffle to the ut stuff
* Make it load in a specific number of locations
* Add Silent's spoiler log ability thing
* Fix for groups
* Fix for groups
* Fix typo
* Fix hex quest UT support
* Use .get
* UT fixes, classification fixes
* Rename some locations
* Adjust guard house names
* Adjust guard house names
* Rework create_item
* Fix for plando connections
* Rename, add new breakables
* Rename more stuff
* Time to rename them again
* Fix issue with fixed shop + decoupled
* Put in an exception to catch that error in the future
* Update create_item to match main
* Update spoiler log lines for hex abilities
* Burn the signs down
* Bring over the combat logic fix
* Merge in combat logic fix
* Silly static method thing
* Move a few areas to before well instead of east forest
* Add an all_random hidden option for dev stuff
* Port over changes from main
* Fix west courtyard pot regions
* Remove debug prints
* Fix fortress courtyard and beneath the fortress loc groups again
* Add exception handling to deal with duplicate apworlds
* Fix typo
* More missing loc group conversions
* Initial fuse shuffle stuff
* Fix gun missing from combat_items, add new for combat logic cache, very slight refactor of check_combat_reqs to let it do the changeover in a less complicated fashion, fix area being a boss area rather than non-boss area for a check
* Add fuse shuffle logic
* reorder atoll statue rule
* Update traversal reqs
* Remove fuse shuffle from temple door
* Combine rules and option checking
* Add bell shuffle; fix fuse location groups
* Fix portal rules not requiring prayer
* Merge the grass laurels exit grass PR
* Merge in fortress bridge PR
* Do a little clean up
* Fix a regression
* Update after merge
* Some more stuff
* More Silent changes
* Update more info section in game info page
* Fix rules for atoll and swamp fuses
* Precollect cathedral fuse in ER
* actually just make the fuse useful instead of progression
* Add it to the swamp and cath rules too
* Fix cath fuse name
* Minor fixes and edits
* Some UT stuff
* Fix a couple more groups
* Move a bunch of UT stuff to its own file
* Fix up a couple UT things
* Couple minor ER fixes
* Formatting change
* UT poptracker stuff enabled since it's optional in one of the releases
* Add author string to world class
* Adjust local fill option name
* Update ut_stuff to match the PR
* Add exception handling for UT with old apworld
* Fix missing tracker_world
* Remove extra entrance from cath main -> elevator
Entry <-> Elev exists,
Entry <-> Main exists
So no connection is needed between Main and Elev
* Fix so that decoupled doesn't incorrectly use get_portal_info and get_paired_portal
* Fix so that decoupled doesn't incorrectly use get_portal_info and get_paired_portal
* Update for breakables poptracker
* Backup and warnings instead
* Update typing
* Delete old regions and rules, move stuff to logic_helpers and constants
* Delete now much less useful tests
* Fix breakables map tracking
* Add more comments to init
* Add todo to grass.py
* Fix up tests
* Pull out fuse and bell shuffle
* Pull out fuse and bell shuffle
* Update worlds/tunic/options.py
Co-authored-by: qwint <qwint.42@gmail.com>
* Update worlds/tunic/logic_helpers.py
Co-authored-by: qwint <qwint.42@gmail.com>
* {} -> () in state functions
* {} -> () in state functions
* Change {} -> () in state functions, use constant for gun
* Remove floating constants in er_data
* Finish hard deprecating FixedShop
* Finish hard deprecating FixedShop
* Fix zig skip showing up in decoupled fixed shop
---------
Co-authored-by: silent-destroyer <osilentdestroyer@gmail.com>
Co-authored-by: Silent <110704408+silent-destroyer@users.noreply.github.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: qwint <qwint.42@gmail.com>
2025-09-04 18:44:32 -04:00
|
|
|
"West Garden - [Central Highlands] Behind Guard Captain": TunicLocationData("West Garden", "West Garden South Checkpoint"),
|
2024-05-02 04:02:59 -04:00
|
|
|
"West Garden - [Central Highlands] After Garden Knight": TunicLocationData("Overworld", "West Garden after Boss", location_group="Bosses"),
|
2024-12-15 16:40:36 -05:00
|
|
|
"West Garden - [South Highlands] Secret Chest Beneath Fuse": TunicLocationData("West Garden", "West Garden South Checkpoint"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"West Garden - [East Lowlands] Page Behind Ice Dagger House": TunicLocationData("West Garden", "West Garden Portal Item"),
|
2024-12-15 16:40:36 -05:00
|
|
|
"West Garden - [North] Page Pickup": TunicLocationData("West Garden", "West Garden before Terry"),
|
2024-01-12 14:32:15 -05:00
|
|
|
"West Garden House - [Southeast Lowlands] Ice Dagger Pickup": TunicLocationData("West Garden", "Magic Dagger House"),
|
2024-05-02 04:02:59 -04:00
|
|
|
"Hero's Grave - Effigy Relic": TunicLocationData("West Garden", "Hero Relic - West Garden"),
|
2024-01-12 14:32:15 -05:00
|
|
|
}
|
|
|
|
|
|
TUNIC: The Big Refactor (#5195)
* Make it actually return false if it gets to the backup lists and fails them
* Fix stuff after merge
* Add outlet regions, create new regions as needed for them
* Put together part of decoupled and direction pairs
* make direction pairs work
* Make decoupled work
* Make fixed shop work again
* Fix a few minor bugs
* Fix a few minor bugs
* Fix plando
* god i love programming
* Reorder portal list
* Update portal sorter for variable shops
* Add missing parameter
* Some cleanup of prints and functions
* Fix typo
* it's aliiiiiive
* Make seed groups not sync decoupled
* Add test with full-shop plando
* Fix bug with vanilla portals
* Handle plando connections and direction pair errors
* Update plando checking for decoupled
* Fix typo
* Fix exception text to be shorter
* Add some more comments
* Add todo note
* Remove unused safety thing
* Remove extra plando connections definition in options
* Make seed groups in decoupled with overlapping but not fully overlapped plando connections interact nicely without messing with what the entrances look like in the spoiler log
* Fix weird edge case that is technically user error
* Add note to fixed shop
* Fix parsing shop names in UT
* Remove debug print
* Actually make UT work
* multiworld. to world.
* Fix typo from merge
* Make it so the shops show up in the entrance hints
* Fix bug in ladder storage rules
* Remove blank line
* # Conflicts:
# worlds/tunic/__init__.py
# worlds/tunic/er_data.py
# worlds/tunic/er_rules.py
# worlds/tunic/er_scripts.py
# worlds/tunic/rules.py
# worlds/tunic/test/test_access.py
* Fix issues after merge
* Update plando connections stuff in docs
* Make early bushes only contain grass
* Fix library mistake
* Backport changes to grass rando (#20)
* Backport changes to grass rando
* add_rule instead of set_rule for the special cases, add special cases for back of swamp laurels area cause I should've made a new region for the swamp upper entrance
* Remove item name group for grass
* Update grass rando option descriptions
- Also ignore grass fill for single player games
* Ignore grass fill option for solo rando
* Update er_rules.py
* Fix pre fill issue
* Remove duplicate option
* Add excluded grass locations back
* Hide grass fill option from simple ui options page
* Check for start with sword before setting grass rules
* Update worlds/tunic/options.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* has_stick -> has_melee
* has_stick -> has_melee
* Add a failsafe for direction pairing
* Fix playthrough crash bug
* Remove init from logicmixin
* Updates per code review (thanks hesto)
* has_stick to has_melee in newer update
* has_stick to has_melee in newer update
* Exclude grass from get_filler_item_name
- non-grass rando games were accidentally seeing grass items get shuffled in as filler, which is funny but probably shouldn't happen
* Update worlds/tunic/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Apply suggestions from code review
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* change the rest of grass_fill to local_fill
* Filter out grass from filler_items
* remove -> discard
* Update worlds/tunic/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Starting out
* Rules for breakable regions
* # Conflicts:
# worlds/tunic/__init__.py
# worlds/tunic/combat_logic.py
# worlds/tunic/er_data.py
# worlds/tunic/er_rules.py
# worlds/tunic/er_scripts.py
* Cleanup more stuff after merge
* Revert "Cleanup more stuff after merge"
This reverts commit a6ee9a93da8f2fcc4413de6df6927b246017889d.
* Revert "# Conflicts:"
This reverts commit c74ccd74a45b6ad6b9abe6e339d115a0c98baf30.
* Cleanup more stuff after merge
* change has_stick to has_melee
* Update grass list with combat logic regions
* More fixes from combat logic merge
* Fix some dumb stuff (#21)
* Reorganize pre fill for grass
* make the rest of it work, it's pr ready, boom
* Make it work in not pot shuffle
* Merge grass rando
* multiworld -> world get_location, use has_any
* Swap out region for West Garden Before Terry grass
* Adjust west garden rules to add west combat region
* Adjust grass regions for south checkpoint grass
* Adjust grass regions for after terry grass
* Adjust grass regions for west combat grass
* Adjust grass regions for dagger house grass
* Adjust grass regions for south checkpoint grass, adjust regions and rules for some related locations
* Finish the remainder of the west garden grass, reformat ruined atoll a little
* More hex quest updates
- Implement page ability shuffle for hex quest
- Fix keys behind bosses if hex goal is less than 3
- Added check to fix conflicting hex quest options
- Add option to slot data
* Change option comparison
* Change option checking and fix some stuff
- also keep prayer first on low hex counts
* Update option defaulting
* Update option checking
* Fix option assignment again
* Merge in hex hunt
* Merge in changes
* Clean up imports
* Add ability type to UT stuff
* merge it all
* Make local fill work across pot and grass (to be adjusted later)
* Make separate pools for the grass and non-grass fills
* Fix id overlap
* Update option description
* Fix default
* Reorder localfill option desc
* Load the purgatory ones in
* Adjustments after merge
* Fully remove logicrules
* Fix UT support with fixed shop option
* Add breakable shuffle to the ut stuff
* Make it load in a specific number of locations
* Add Silent's spoiler log ability thing
* Fix for groups
* Fix for groups
* Fix typo
* Fix hex quest UT support
* Use .get
* UT fixes, classification fixes
* Rename some locations
* Adjust guard house names
* Adjust guard house names
* Rework create_item
* Fix for plando connections
* Rename, add new breakables
* Rename more stuff
* Time to rename them again
* Fix issue with fixed shop + decoupled
* Put in an exception to catch that error in the future
* Update create_item to match main
* Update spoiler log lines for hex abilities
* Burn the signs down
* Bring over the combat logic fix
* Merge in combat logic fix
* Silly static method thing
* Move a few areas to before well instead of east forest
* Add an all_random hidden option for dev stuff
* Port over changes from main
* Fix west courtyard pot regions
* Remove debug prints
* Fix fortress courtyard and beneath the fortress loc groups again
* Add exception handling to deal with duplicate apworlds
* Fix typo
* More missing loc group conversions
* Initial fuse shuffle stuff
* Fix gun missing from combat_items, add new for combat logic cache, very slight refactor of check_combat_reqs to let it do the changeover in a less complicated fashion, fix area being a boss area rather than non-boss area for a check
* Add fuse shuffle logic
* reorder atoll statue rule
* Update traversal reqs
* Remove fuse shuffle from temple door
* Combine rules and option checking
* Add bell shuffle; fix fuse location groups
* Fix portal rules not requiring prayer
* Merge the grass laurels exit grass PR
* Merge in fortress bridge PR
* Do a little clean up
* Fix a regression
* Update after merge
* Some more stuff
* More Silent changes
* Update more info section in game info page
* Fix rules for atoll and swamp fuses
* Precollect cathedral fuse in ER
* actually just make the fuse useful instead of progression
* Add it to the swamp and cath rules too
* Fix cath fuse name
* Minor fixes and edits
* Some UT stuff
* Fix a couple more groups
* Move a bunch of UT stuff to its own file
* Fix up a couple UT things
* Couple minor ER fixes
* Formatting change
* UT poptracker stuff enabled since it's optional in one of the releases
* Add author string to world class
* Adjust local fill option name
* Update ut_stuff to match the PR
* Add exception handling for UT with old apworld
* Fix missing tracker_world
* Remove extra entrance from cath main -> elevator
Entry <-> Elev exists,
Entry <-> Main exists
So no connection is needed between Main and Elev
* Fix so that decoupled doesn't incorrectly use get_portal_info and get_paired_portal
* Fix so that decoupled doesn't incorrectly use get_portal_info and get_paired_portal
* Update for breakables poptracker
* Backup and warnings instead
* Update typing
* Delete old regions and rules, move stuff to logic_helpers and constants
* Delete now much less useful tests
* Fix breakables map tracking
* Add more comments to init
* Add todo to grass.py
* Fix up tests
* Pull out fuse and bell shuffle
* Pull out fuse and bell shuffle
* Update worlds/tunic/options.py
Co-authored-by: qwint <qwint.42@gmail.com>
* Update worlds/tunic/logic_helpers.py
Co-authored-by: qwint <qwint.42@gmail.com>
* {} -> () in state functions
* {} -> () in state functions
* Change {} -> () in state functions, use constant for gun
* Remove floating constants in er_data
* Finish hard deprecating FixedShop
* Finish hard deprecating FixedShop
* Fix zig skip showing up in decoupled fixed shop
---------
Co-authored-by: silent-destroyer <osilentdestroyer@gmail.com>
Co-authored-by: Silent <110704408+silent-destroyer@users.noreply.github.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: qwint <qwint.42@gmail.com>
2025-09-04 18:44:32 -04:00
|
|
|
hexagon_locations: dict[str, str] = {
|
2024-01-12 14:32:15 -05:00
|
|
|
"Red Questagon": "Fortress Arena - Siege Engine/Vault Key Pickup",
|
|
|
|
|
"Green Questagon": "Librarian - Hexagon Green",
|
|
|
|
|
"Blue Questagon": "Rooted Ziggurat Lower - Hexagon Blue",
|
|
|
|
|
}
|
|
|
|
|
|
TUNIC: The Big Refactor (#5195)
* Make it actually return false if it gets to the backup lists and fails them
* Fix stuff after merge
* Add outlet regions, create new regions as needed for them
* Put together part of decoupled and direction pairs
* make direction pairs work
* Make decoupled work
* Make fixed shop work again
* Fix a few minor bugs
* Fix a few minor bugs
* Fix plando
* god i love programming
* Reorder portal list
* Update portal sorter for variable shops
* Add missing parameter
* Some cleanup of prints and functions
* Fix typo
* it's aliiiiiive
* Make seed groups not sync decoupled
* Add test with full-shop plando
* Fix bug with vanilla portals
* Handle plando connections and direction pair errors
* Update plando checking for decoupled
* Fix typo
* Fix exception text to be shorter
* Add some more comments
* Add todo note
* Remove unused safety thing
* Remove extra plando connections definition in options
* Make seed groups in decoupled with overlapping but not fully overlapped plando connections interact nicely without messing with what the entrances look like in the spoiler log
* Fix weird edge case that is technically user error
* Add note to fixed shop
* Fix parsing shop names in UT
* Remove debug print
* Actually make UT work
* multiworld. to world.
* Fix typo from merge
* Make it so the shops show up in the entrance hints
* Fix bug in ladder storage rules
* Remove blank line
* # Conflicts:
# worlds/tunic/__init__.py
# worlds/tunic/er_data.py
# worlds/tunic/er_rules.py
# worlds/tunic/er_scripts.py
# worlds/tunic/rules.py
# worlds/tunic/test/test_access.py
* Fix issues after merge
* Update plando connections stuff in docs
* Make early bushes only contain grass
* Fix library mistake
* Backport changes to grass rando (#20)
* Backport changes to grass rando
* add_rule instead of set_rule for the special cases, add special cases for back of swamp laurels area cause I should've made a new region for the swamp upper entrance
* Remove item name group for grass
* Update grass rando option descriptions
- Also ignore grass fill for single player games
* Ignore grass fill option for solo rando
* Update er_rules.py
* Fix pre fill issue
* Remove duplicate option
* Add excluded grass locations back
* Hide grass fill option from simple ui options page
* Check for start with sword before setting grass rules
* Update worlds/tunic/options.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* has_stick -> has_melee
* has_stick -> has_melee
* Add a failsafe for direction pairing
* Fix playthrough crash bug
* Remove init from logicmixin
* Updates per code review (thanks hesto)
* has_stick to has_melee in newer update
* has_stick to has_melee in newer update
* Exclude grass from get_filler_item_name
- non-grass rando games were accidentally seeing grass items get shuffled in as filler, which is funny but probably shouldn't happen
* Update worlds/tunic/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Apply suggestions from code review
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* change the rest of grass_fill to local_fill
* Filter out grass from filler_items
* remove -> discard
* Update worlds/tunic/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Starting out
* Rules for breakable regions
* # Conflicts:
# worlds/tunic/__init__.py
# worlds/tunic/combat_logic.py
# worlds/tunic/er_data.py
# worlds/tunic/er_rules.py
# worlds/tunic/er_scripts.py
* Cleanup more stuff after merge
* Revert "Cleanup more stuff after merge"
This reverts commit a6ee9a93da8f2fcc4413de6df6927b246017889d.
* Revert "# Conflicts:"
This reverts commit c74ccd74a45b6ad6b9abe6e339d115a0c98baf30.
* Cleanup more stuff after merge
* change has_stick to has_melee
* Update grass list with combat logic regions
* More fixes from combat logic merge
* Fix some dumb stuff (#21)
* Reorganize pre fill for grass
* make the rest of it work, it's pr ready, boom
* Make it work in not pot shuffle
* Merge grass rando
* multiworld -> world get_location, use has_any
* Swap out region for West Garden Before Terry grass
* Adjust west garden rules to add west combat region
* Adjust grass regions for south checkpoint grass
* Adjust grass regions for after terry grass
* Adjust grass regions for west combat grass
* Adjust grass regions for dagger house grass
* Adjust grass regions for south checkpoint grass, adjust regions and rules for some related locations
* Finish the remainder of the west garden grass, reformat ruined atoll a little
* More hex quest updates
- Implement page ability shuffle for hex quest
- Fix keys behind bosses if hex goal is less than 3
- Added check to fix conflicting hex quest options
- Add option to slot data
* Change option comparison
* Change option checking and fix some stuff
- also keep prayer first on low hex counts
* Update option defaulting
* Update option checking
* Fix option assignment again
* Merge in hex hunt
* Merge in changes
* Clean up imports
* Add ability type to UT stuff
* merge it all
* Make local fill work across pot and grass (to be adjusted later)
* Make separate pools for the grass and non-grass fills
* Fix id overlap
* Update option description
* Fix default
* Reorder localfill option desc
* Load the purgatory ones in
* Adjustments after merge
* Fully remove logicrules
* Fix UT support with fixed shop option
* Add breakable shuffle to the ut stuff
* Make it load in a specific number of locations
* Add Silent's spoiler log ability thing
* Fix for groups
* Fix for groups
* Fix typo
* Fix hex quest UT support
* Use .get
* UT fixes, classification fixes
* Rename some locations
* Adjust guard house names
* Adjust guard house names
* Rework create_item
* Fix for plando connections
* Rename, add new breakables
* Rename more stuff
* Time to rename them again
* Fix issue with fixed shop + decoupled
* Put in an exception to catch that error in the future
* Update create_item to match main
* Update spoiler log lines for hex abilities
* Burn the signs down
* Bring over the combat logic fix
* Merge in combat logic fix
* Silly static method thing
* Move a few areas to before well instead of east forest
* Add an all_random hidden option for dev stuff
* Port over changes from main
* Fix west courtyard pot regions
* Remove debug prints
* Fix fortress courtyard and beneath the fortress loc groups again
* Add exception handling to deal with duplicate apworlds
* Fix typo
* More missing loc group conversions
* Initial fuse shuffle stuff
* Fix gun missing from combat_items, add new for combat logic cache, very slight refactor of check_combat_reqs to let it do the changeover in a less complicated fashion, fix area being a boss area rather than non-boss area for a check
* Add fuse shuffle logic
* reorder atoll statue rule
* Update traversal reqs
* Remove fuse shuffle from temple door
* Combine rules and option checking
* Add bell shuffle; fix fuse location groups
* Fix portal rules not requiring prayer
* Merge the grass laurels exit grass PR
* Merge in fortress bridge PR
* Do a little clean up
* Fix a regression
* Update after merge
* Some more stuff
* More Silent changes
* Update more info section in game info page
* Fix rules for atoll and swamp fuses
* Precollect cathedral fuse in ER
* actually just make the fuse useful instead of progression
* Add it to the swamp and cath rules too
* Fix cath fuse name
* Minor fixes and edits
* Some UT stuff
* Fix a couple more groups
* Move a bunch of UT stuff to its own file
* Fix up a couple UT things
* Couple minor ER fixes
* Formatting change
* UT poptracker stuff enabled since it's optional in one of the releases
* Add author string to world class
* Adjust local fill option name
* Update ut_stuff to match the PR
* Add exception handling for UT with old apworld
* Fix missing tracker_world
* Remove extra entrance from cath main -> elevator
Entry <-> Elev exists,
Entry <-> Main exists
So no connection is needed between Main and Elev
* Fix so that decoupled doesn't incorrectly use get_portal_info and get_paired_portal
* Fix so that decoupled doesn't incorrectly use get_portal_info and get_paired_portal
* Update for breakables poptracker
* Backup and warnings instead
* Update typing
* Delete old regions and rules, move stuff to logic_helpers and constants
* Delete now much less useful tests
* Fix breakables map tracking
* Add more comments to init
* Add todo to grass.py
* Fix up tests
* Pull out fuse and bell shuffle
* Pull out fuse and bell shuffle
* Update worlds/tunic/options.py
Co-authored-by: qwint <qwint.42@gmail.com>
* Update worlds/tunic/logic_helpers.py
Co-authored-by: qwint <qwint.42@gmail.com>
* {} -> () in state functions
* {} -> () in state functions
* Change {} -> () in state functions, use constant for gun
* Remove floating constants in er_data
* Finish hard deprecating FixedShop
* Finish hard deprecating FixedShop
* Fix zig skip showing up in decoupled fixed shop
---------
Co-authored-by: silent-destroyer <osilentdestroyer@gmail.com>
Co-authored-by: Silent <110704408+silent-destroyer@users.noreply.github.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: qwint <qwint.42@gmail.com>
2025-09-04 18:44:32 -04:00
|
|
|
standard_location_name_to_id: dict[str, int] = {name: base_id + index for index, name in enumerate(location_table)}
|
2025-01-15 18:17:07 -05:00
|
|
|
|
|
|
|
|
all_locations = location_table.copy()
|
|
|
|
|
all_locations.update(grass_location_table)
|
2025-03-08 11:25:47 -05:00
|
|
|
all_locations.update(breakable_location_table)
|
TUNIC: Fuse and Bell Shuffle (#5420)
* Making the fix better (thanks medic)
* Make it actually return false if it gets to the backup lists and fails them
* Fix stuff after merge
* Add outlet regions, create new regions as needed for them
* Put together part of decoupled and direction pairs
* make direction pairs work
* Make decoupled work
* Make fixed shop work again
* Fix a few minor bugs
* Fix a few minor bugs
* Fix plando
* god i love programming
* Reorder portal list
* Update portal sorter for variable shops
* Add missing parameter
* Some cleanup of prints and functions
* Fix typo
* it's aliiiiiive
* Make seed groups not sync decoupled
* Add test with full-shop plando
* Fix bug with vanilla portals
* Handle plando connections and direction pair errors
* Update plando checking for decoupled
* Fix typo
* Fix exception text to be shorter
* Add some more comments
* Add todo note
* Remove unused safety thing
* Remove extra plando connections definition in options
* Make seed groups in decoupled with overlapping but not fully overlapped plando connections interact nicely without messing with what the entrances look like in the spoiler log
* Fix weird edge case that is technically user error
* Add note to fixed shop
* Fix parsing shop names in UT
* Remove debug print
* Actually make UT work
* multiworld. to world.
* Fix typo from merge
* Make it so the shops show up in the entrance hints
* Fix bug in ladder storage rules
* Remove blank line
* # Conflicts:
# worlds/tunic/__init__.py
# worlds/tunic/er_data.py
# worlds/tunic/er_rules.py
# worlds/tunic/er_scripts.py
# worlds/tunic/rules.py
# worlds/tunic/test/test_access.py
* Fix issues after merge
* Update plando connections stuff in docs
* Make early bushes only contain grass
* Fix library mistake
* Backport changes to grass rando (#20)
* Backport changes to grass rando
* add_rule instead of set_rule for the special cases, add special cases for back of swamp laurels area cause I should've made a new region for the swamp upper entrance
* Remove item name group for grass
* Update grass rando option descriptions
- Also ignore grass fill for single player games
* Ignore grass fill option for solo rando
* Update er_rules.py
* Fix pre fill issue
* Remove duplicate option
* Add excluded grass locations back
* Hide grass fill option from simple ui options page
* Check for start with sword before setting grass rules
* Update worlds/tunic/options.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* has_stick -> has_melee
* has_stick -> has_melee
* Add a failsafe for direction pairing
* Fix playthrough crash bug
* Remove init from logicmixin
* Updates per code review (thanks hesto)
* has_stick to has_melee in newer update
* has_stick to has_melee in newer update
* Exclude grass from get_filler_item_name
- non-grass rando games were accidentally seeing grass items get shuffled in as filler, which is funny but probably shouldn't happen
* Update worlds/tunic/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Apply suggestions from code review
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* change the rest of grass_fill to local_fill
* Filter out grass from filler_items
* remove -> discard
* Update worlds/tunic/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Starting out
* Rules for breakable regions
* # Conflicts:
# worlds/tunic/__init__.py
# worlds/tunic/combat_logic.py
# worlds/tunic/er_data.py
# worlds/tunic/er_rules.py
# worlds/tunic/er_scripts.py
* Cleanup more stuff after merge
* Revert "Cleanup more stuff after merge"
This reverts commit a6ee9a93da8f2fcc4413de6df6927b246017889d.
* Revert "# Conflicts:"
This reverts commit c74ccd74a45b6ad6b9abe6e339d115a0c98baf30.
* Cleanup more stuff after merge
* change has_stick to has_melee
* Update grass list with combat logic regions
* More fixes from combat logic merge
* Fix some dumb stuff (#21)
* Reorganize pre fill for grass
* make the rest of it work, it's pr ready, boom
* Make it work in not pot shuffle
* Merge grass rando
* multiworld -> world get_location, use has_any
* Swap out region for West Garden Before Terry grass
* Adjust west garden rules to add west combat region
* Adjust grass regions for south checkpoint grass
* Adjust grass regions for after terry grass
* Adjust grass regions for west combat grass
* Adjust grass regions for dagger house grass
* Adjust grass regions for south checkpoint grass, adjust regions and rules for some related locations
* Finish the remainder of the west garden grass, reformat ruined atoll a little
* More hex quest updates
- Implement page ability shuffle for hex quest
- Fix keys behind bosses if hex goal is less than 3
- Added check to fix conflicting hex quest options
- Add option to slot data
* Change option comparison
* Change option checking and fix some stuff
- also keep prayer first on low hex counts
* Update option defaulting
* Update option checking
* Fix option assignment again
* Merge in hex hunt
* Merge in changes
* Clean up imports
* Add ability type to UT stuff
* merge it all
* Make local fill work across pot and grass (to be adjusted later)
* Make separate pools for the grass and non-grass fills
* Fix id overlap
* Update option description
* Fix default
* Reorder localfill option desc
* Load the purgatory ones in
* Adjustments after merge
* Fully remove logicrules
* Fix UT support with fixed shop option
* Add breakable shuffle to the ut stuff
* Make it load in a specific number of locations
* Add Silent's spoiler log ability thing
* Fix for groups
* Fix for groups
* Fix typo
* Fix hex quest UT support
* Use .get
* UT fixes, classification fixes
* Rename some locations
* Adjust guard house names
* Adjust guard house names
* Rework create_item
* Fix for plando connections
* Rename, add new breakables
* Rename more stuff
* Time to rename them again
* Fix issue with fixed shop + decoupled
* Put in an exception to catch that error in the future
* Update create_item to match main
* Update spoiler log lines for hex abilities
* Burn the signs down
* Bring over the combat logic fix
* Merge in combat logic fix
* Silly static method thing
* Move a few areas to before well instead of east forest
* Add an all_random hidden option for dev stuff
* Port over changes from main
* Fix west courtyard pot regions
* Remove debug prints
* Fix fortress courtyard and beneath the fortress loc groups again
* Add exception handling to deal with duplicate apworlds
* Fix typo
* More missing loc group conversions
* Initial fuse shuffle stuff
* Fix gun missing from combat_items, add new for combat logic cache, very slight refactor of check_combat_reqs to let it do the changeover in a less complicated fashion, fix area being a boss area rather than non-boss area for a check
* Add fuse shuffle logic
* reorder atoll statue rule
* Update traversal reqs
* Remove fuse shuffle from temple door
* Combine rules and option checking
* Add bell shuffle; fix fuse location groups
* Fix portal rules not requiring prayer
* Merge the grass laurels exit grass PR
* Merge in fortress bridge PR
* Do a little clean up
* Fix a regression
* Update after merge
* Some more stuff
* More Silent changes
* Update more info section in game info page
* Fix rules for atoll and swamp fuses
* Precollect cathedral fuse in ER
* actually just make the fuse useful instead of progression
* Add it to the swamp and cath rules too
* Fix cath fuse name
* Minor fixes and edits
* Some UT stuff
* Fix a couple more groups
* Move a bunch of UT stuff to its own file
* Fix up a couple UT things
* Couple minor ER fixes
* Formatting change
* UT poptracker stuff enabled since it's optional in one of the releases
* Add author string to world class
* Adjust local fill option name
* Update ut_stuff to match the PR
* Add exception handling for UT with old apworld
* Fix missing tracker_world
* Remove extra entrance from cath main -> elevator
Entry <-> Elev exists,
Entry <-> Main exists
So no connection is needed between Main and Elev
* Fix so that decoupled doesn't incorrectly use get_portal_info and get_paired_portal
* Fix so that decoupled doesn't incorrectly use get_portal_info and get_paired_portal
* Update for breakables poptracker
* Backup and warnings instead
* Update typing
* Delete old regions and rules, move stuff to logic_helpers and constants
* Delete now much less useful tests
* Fix breakables map tracking
* Add more comments to init
* Add todo to grass.py
* Fix up tests
* Fully remove fixed_shop
* Finish hard deprecating FixedShop
* Fix zig skip showing up in decoupled fixed shop
* Make local_fill show up on the website
* Merge with main
* Fixes after merge
* More fixes after merge
* oh right that's why it was there, circular imports
* Swap {} to ()
* Add fuse and bell shuffle to seed groups since they're logically significant for entrance pairing
---------
Co-authored-by: silent-destroyer <osilentdestroyer@gmail.com>
Co-authored-by: Silent <110704408+silent-destroyer@users.noreply.github.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
2025-09-30 15:39:41 -04:00
|
|
|
all_locations.update(fuse_location_table)
|
|
|
|
|
all_locations.update(bell_location_table)
|
2024-01-12 14:32:15 -05:00
|
|
|
|
TUNIC: The Big Refactor (#5195)
* Make it actually return false if it gets to the backup lists and fails them
* Fix stuff after merge
* Add outlet regions, create new regions as needed for them
* Put together part of decoupled and direction pairs
* make direction pairs work
* Make decoupled work
* Make fixed shop work again
* Fix a few minor bugs
* Fix a few minor bugs
* Fix plando
* god i love programming
* Reorder portal list
* Update portal sorter for variable shops
* Add missing parameter
* Some cleanup of prints and functions
* Fix typo
* it's aliiiiiive
* Make seed groups not sync decoupled
* Add test with full-shop plando
* Fix bug with vanilla portals
* Handle plando connections and direction pair errors
* Update plando checking for decoupled
* Fix typo
* Fix exception text to be shorter
* Add some more comments
* Add todo note
* Remove unused safety thing
* Remove extra plando connections definition in options
* Make seed groups in decoupled with overlapping but not fully overlapped plando connections interact nicely without messing with what the entrances look like in the spoiler log
* Fix weird edge case that is technically user error
* Add note to fixed shop
* Fix parsing shop names in UT
* Remove debug print
* Actually make UT work
* multiworld. to world.
* Fix typo from merge
* Make it so the shops show up in the entrance hints
* Fix bug in ladder storage rules
* Remove blank line
* # Conflicts:
# worlds/tunic/__init__.py
# worlds/tunic/er_data.py
# worlds/tunic/er_rules.py
# worlds/tunic/er_scripts.py
# worlds/tunic/rules.py
# worlds/tunic/test/test_access.py
* Fix issues after merge
* Update plando connections stuff in docs
* Make early bushes only contain grass
* Fix library mistake
* Backport changes to grass rando (#20)
* Backport changes to grass rando
* add_rule instead of set_rule for the special cases, add special cases for back of swamp laurels area cause I should've made a new region for the swamp upper entrance
* Remove item name group for grass
* Update grass rando option descriptions
- Also ignore grass fill for single player games
* Ignore grass fill option for solo rando
* Update er_rules.py
* Fix pre fill issue
* Remove duplicate option
* Add excluded grass locations back
* Hide grass fill option from simple ui options page
* Check for start with sword before setting grass rules
* Update worlds/tunic/options.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* has_stick -> has_melee
* has_stick -> has_melee
* Add a failsafe for direction pairing
* Fix playthrough crash bug
* Remove init from logicmixin
* Updates per code review (thanks hesto)
* has_stick to has_melee in newer update
* has_stick to has_melee in newer update
* Exclude grass from get_filler_item_name
- non-grass rando games were accidentally seeing grass items get shuffled in as filler, which is funny but probably shouldn't happen
* Update worlds/tunic/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Apply suggestions from code review
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* change the rest of grass_fill to local_fill
* Filter out grass from filler_items
* remove -> discard
* Update worlds/tunic/__init__.py
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
* Starting out
* Rules for breakable regions
* # Conflicts:
# worlds/tunic/__init__.py
# worlds/tunic/combat_logic.py
# worlds/tunic/er_data.py
# worlds/tunic/er_rules.py
# worlds/tunic/er_scripts.py
* Cleanup more stuff after merge
* Revert "Cleanup more stuff after merge"
This reverts commit a6ee9a93da8f2fcc4413de6df6927b246017889d.
* Revert "# Conflicts:"
This reverts commit c74ccd74a45b6ad6b9abe6e339d115a0c98baf30.
* Cleanup more stuff after merge
* change has_stick to has_melee
* Update grass list with combat logic regions
* More fixes from combat logic merge
* Fix some dumb stuff (#21)
* Reorganize pre fill for grass
* make the rest of it work, it's pr ready, boom
* Make it work in not pot shuffle
* Merge grass rando
* multiworld -> world get_location, use has_any
* Swap out region for West Garden Before Terry grass
* Adjust west garden rules to add west combat region
* Adjust grass regions for south checkpoint grass
* Adjust grass regions for after terry grass
* Adjust grass regions for west combat grass
* Adjust grass regions for dagger house grass
* Adjust grass regions for south checkpoint grass, adjust regions and rules for some related locations
* Finish the remainder of the west garden grass, reformat ruined atoll a little
* More hex quest updates
- Implement page ability shuffle for hex quest
- Fix keys behind bosses if hex goal is less than 3
- Added check to fix conflicting hex quest options
- Add option to slot data
* Change option comparison
* Change option checking and fix some stuff
- also keep prayer first on low hex counts
* Update option defaulting
* Update option checking
* Fix option assignment again
* Merge in hex hunt
* Merge in changes
* Clean up imports
* Add ability type to UT stuff
* merge it all
* Make local fill work across pot and grass (to be adjusted later)
* Make separate pools for the grass and non-grass fills
* Fix id overlap
* Update option description
* Fix default
* Reorder localfill option desc
* Load the purgatory ones in
* Adjustments after merge
* Fully remove logicrules
* Fix UT support with fixed shop option
* Add breakable shuffle to the ut stuff
* Make it load in a specific number of locations
* Add Silent's spoiler log ability thing
* Fix for groups
* Fix for groups
* Fix typo
* Fix hex quest UT support
* Use .get
* UT fixes, classification fixes
* Rename some locations
* Adjust guard house names
* Adjust guard house names
* Rework create_item
* Fix for plando connections
* Rename, add new breakables
* Rename more stuff
* Time to rename them again
* Fix issue with fixed shop + decoupled
* Put in an exception to catch that error in the future
* Update create_item to match main
* Update spoiler log lines for hex abilities
* Burn the signs down
* Bring over the combat logic fix
* Merge in combat logic fix
* Silly static method thing
* Move a few areas to before well instead of east forest
* Add an all_random hidden option for dev stuff
* Port over changes from main
* Fix west courtyard pot regions
* Remove debug prints
* Fix fortress courtyard and beneath the fortress loc groups again
* Add exception handling to deal with duplicate apworlds
* Fix typo
* More missing loc group conversions
* Initial fuse shuffle stuff
* Fix gun missing from combat_items, add new for combat logic cache, very slight refactor of check_combat_reqs to let it do the changeover in a less complicated fashion, fix area being a boss area rather than non-boss area for a check
* Add fuse shuffle logic
* reorder atoll statue rule
* Update traversal reqs
* Remove fuse shuffle from temple door
* Combine rules and option checking
* Add bell shuffle; fix fuse location groups
* Fix portal rules not requiring prayer
* Merge the grass laurels exit grass PR
* Merge in fortress bridge PR
* Do a little clean up
* Fix a regression
* Update after merge
* Some more stuff
* More Silent changes
* Update more info section in game info page
* Fix rules for atoll and swamp fuses
* Precollect cathedral fuse in ER
* actually just make the fuse useful instead of progression
* Add it to the swamp and cath rules too
* Fix cath fuse name
* Minor fixes and edits
* Some UT stuff
* Fix a couple more groups
* Move a bunch of UT stuff to its own file
* Fix up a couple UT things
* Couple minor ER fixes
* Formatting change
* UT poptracker stuff enabled since it's optional in one of the releases
* Add author string to world class
* Adjust local fill option name
* Update ut_stuff to match the PR
* Add exception handling for UT with old apworld
* Fix missing tracker_world
* Remove extra entrance from cath main -> elevator
Entry <-> Elev exists,
Entry <-> Main exists
So no connection is needed between Main and Elev
* Fix so that decoupled doesn't incorrectly use get_portal_info and get_paired_portal
* Fix so that decoupled doesn't incorrectly use get_portal_info and get_paired_portal
* Update for breakables poptracker
* Backup and warnings instead
* Update typing
* Delete old regions and rules, move stuff to logic_helpers and constants
* Delete now much less useful tests
* Fix breakables map tracking
* Add more comments to init
* Add todo to grass.py
* Fix up tests
* Pull out fuse and bell shuffle
* Pull out fuse and bell shuffle
* Update worlds/tunic/options.py
Co-authored-by: qwint <qwint.42@gmail.com>
* Update worlds/tunic/logic_helpers.py
Co-authored-by: qwint <qwint.42@gmail.com>
* {} -> () in state functions
* {} -> () in state functions
* Change {} -> () in state functions, use constant for gun
* Remove floating constants in er_data
* Finish hard deprecating FixedShop
* Finish hard deprecating FixedShop
* Fix zig skip showing up in decoupled fixed shop
---------
Co-authored-by: silent-destroyer <osilentdestroyer@gmail.com>
Co-authored-by: Silent <110704408+silent-destroyer@users.noreply.github.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: qwint <qwint.42@gmail.com>
2025-09-04 18:44:32 -04:00
|
|
|
location_name_groups: dict[str, set[str]] = {}
|
2024-03-21 11:50:07 -04:00
|
|
|
for loc_name, loc_data in location_table.items():
|
2024-05-02 04:02:59 -04:00
|
|
|
loc_group_name = loc_name.split(" - ", 1)[0]
|
|
|
|
|
location_name_groups.setdefault(loc_group_name, set()).add(loc_name)
|
2024-03-21 11:50:07 -04:00
|
|
|
if loc_data.location_group:
|
2024-05-02 04:02:59 -04:00
|
|
|
location_name_groups.setdefault(loc_data.location_group, set()).add(loc_name)
|