diff --git a/ootrando_overworldmap_hamsda.zip b/ootrando_overworldmap_hamsda.zip index 751d748a..10b4d88d 100644 Binary files a/ootrando_overworldmap_hamsda.zip and b/ootrando_overworldmap_hamsda.zip differ diff --git a/ootrando_overworldmap_hamsda/README.md b/ootrando_overworldmap_hamsda/README.md index 00a82a8a..272a34c3 100644 --- a/ootrando_overworldmap_hamsda/README.md +++ b/ootrando_overworldmap_hamsda/README.md @@ -35,7 +35,7 @@ Some of this functionality might not be immediately obvious: - Right clicking ![Fairy Ocarina](images/fairyocarina.png "Fairy Ocarina")/![Ocarina of Time](images/ocarina.png "Ocarina of Time") will overlay it with ![Scarecrow](images/overlay_scarecrow.png "Scarecrow") indicating that you have confirmed the scarecrow song or started with free scarecrow. Locations that make use of the scarecrow will not show up unless this is turned on. The location of the scarecrow in Lake Hylia will automatically mark this when cleared first as child and then as adult. - ![Triforce Piece](images/triforce_piece.png "Triforce Piece") is used as a counter for Triforce pieces in the Triforce Hunt mode. -## Settings (for non Entrance Randomizer variants with a map) +## Settings (for map variants) There is a variety of toggles available to accomodate the different settings the randomizer offers. The settings are arranged to mimic the current GUI of the randomizer. The default for all of these should match the settings used for the weekly races (check out the OoTR discord for more info). @@ -88,10 +88,16 @@ This setting determines what is needed to trigger the rainbow bridge in front of - ![Always Open](images/setting_bridge_open.png "Always Open") Nothing required, bridge is always open - ![Vanilla](images/setting_bridge_vanilla.png "Vanilla") Light arrows, shadow medallion, and spirit medallion required -- ![All Stones](images/setting_bridge_stones.png "All Stones") All 3 stones required -- ![All Medallions](images/setting_bridge_medallions.png "All Medallions") All 6 medallions required -- ![All Dungeons](images/setting_bridge_dungeons.png "All Dungeons") All 6 medallions and 3 stones required -- ![100 GS tokens](images/setting_bridge_100gs.png "100 GS tokens") Gold skulltula tokens required (always assumes all 100 are required) +- ![Stones](images/setting_bridge_stones.png "Stones") Variable amount of stones required +- ![Medallions](images/setting_bridge_medallions.png "Medallions") Variable amount of medallions required +- ![Dungeons](images/setting_bridge_dungeons.png "Dungeons") Variable amount of medallions and stones required +- ![GS tokens](images/setting_bridge_gs.png "GS tokens") Variable amount of Gold Skulltula tokens required + +#### Rainbow Bridge Amount + +This setting determines how many (if any) of the items specified in `Rainbow Bridge Requirement` are needed. + +![Bridge Amount](images/setting_bridge_amount.png "Bridge Amount") Increment or decrement the number required. #### Number of Trials @@ -184,6 +190,13 @@ This setting determines if Magic Beans are shuffled. - ![Magic Beans not shuffled](images/setting_shuffle_beans_no.png "Magic Beans not shuffled") Magic Beans are not shuffled and will be captured in the corresponding chest by default. - ![Magic Beans shuffled](images/setting_shuffle_beans_yes.png "Magic Beans shuffled") The Magic Beans are shuffled into the item pool and will not be captured. +#### Shuffle Medigoron & Carpet Salesman + +This setting determines if Medigoron and Carpet Salesman items are shuffled. + +- ![Medigoron and Carpet Salesman not shuffled](images/setting_merchants_off.png "Medigoron and Carpet Salesman not shuffled") Medigoron and Carpet Salesman items are not shuffled. +- ![Medigoron and Carpet Salesman shuffled](images/setting_merchants_shuffle.png "Medigoron and Carpet Salesman shuffled") Medigoron and Carpet Salesman items are shuffled and the merchants sell one randomized item for 200 rupees each. + #### Complete Mask Quest This setting determines if all masks will be available once the Happy Mask Shop is open. @@ -234,13 +247,55 @@ This tab also contains a list of (some of) the logic tricks that can be enabled ## Entrance Randomizer variants -The entrance randomizer variants are very different from the regular map tracker variants. The map does not include any item locations to be checked, because that would result in way too many spots on the map, but instead has locations for the randomized entrances. They are split between `Entrances` (grottos, houses, dungeons, etc) and `Connectors` (connections between different overworld areas). +The entrance randomizer variants are very different from the regular map tracker variants. The map does not include any item locations to be checked (yet) but instead has locations for the randomized entrances. They are split between `Entrances` (grottos, houses, dungeons, etc) and `Connectors` (connections between different overworld areas). + +There are two variants, one for keysanity and one without, but none of the keys are actually used for logic (yet). All locations have a capture spot, where you can mark what is at that location. If the location is useless, just mark off the icon to clean up the map. Later you can see what led where by simply hovering over the locations. +I made a [quick explanation](https://www.twitch.tv/videos/429980574) on how to use the ER variant (slightly outdated but the general principle still is the same). + +### Settings (Entrance Randomizer only) + The settings allow you to select which pools are actually shuffled (split based on Dev-R branch, since it is the most popular for ER). If they are not shuffled, the appropriate captures are placed at (almost) all locations and certain locations are hidden since they are useless regardless of any other settings. -There are two variants, one for keysanity and one without, but none of the items are actually used for "logic" (to show/hide entrances). +#### Shuffle Interior Entrances + +- ![Interior Shuffle Off](images/setting_entrance_interiors_off.png "Interior Shuffle Off") No interiors are shuffled. +- ![Simple Interiors Shuffled](images/setting_entrance_interiors_simple.png "Simple Interiors Shuffled") Interiors except Link's House, Temple of Time, Kak Potion Shop, and Windmill are shuffled. +- ![All Interiors Shuffled](images/setting_entrance_interiors_all.png "All Interiors Shuffled") All interiors are shuffled. + +#### Shuffle Grotto Entrances + +- ![Grotto Shuffle Off](images/setting_entrance_grottos_off.png "Grotto Shuffle Off") Grottos and graves are not shuffled. +- ![Grottos Shuffled](images/setting_entrance_grottos_shuffle.png "Grottos Shuffled") Grottos and graves are shuffled. + +#### Shuffle Dungeon Entrances + +- ![Dungeon Shuffle Off](images/setting_entrance_dungeons_off.png "Dungeon Shuffle Off") Dungeons are not shuffled. +- ![Dungeons Shuffled](images/setting_entrance_dungeons_shuffle.png "Dungeons Shuffled") Dungeons are shuffled. + +#### Shuffle Overworld Entrances + +- ![Overworld Entrance Shuffle Off](images/setting_entrance_overworld_off.png "Overworld Entrance Shuffle Off") Overworld entrances are not shuffled. +- ![Overworld Entrances Shuffled](images/setting_entrance_overworld_shuffle.png "Overworld Entrances Shuffled") Overworld entrances are shuffled. + +#### Randomize Owl Drops + +- ![Owl Drop Shuffle Off](images/setting_entrance_owl_off.png "Owl Drop Shuffle Off") Owl drops are not shuffled. +- ![Owl Drops Shuffled](images/setting_entrance_owl_shuffle.png "Owl Drops Shuffled") Owl drops are shuffled. + +#### Randomize Warp Song Destinations + +- ![Warp Song Shuffle Off](images/setting_entrance_warpsong_off.png "Warp Song Shuffle Off") Warp song destinations are not shuffled. +- ![Warp Songs Shuffled](images/setting_entrance_warpsong_shuffle.png "Warp Songs Shuffled") Warp song destinations are shuffled. + +#### Randomize Overworld Spawns + +- ![Spawn Shuffle Off](images/setting_entrance_spawn_off.png "Spawn Shuffle Off") Spawns are not shuffled. +- ![Spawn Shuffled](images/setting_entrance_spawn_shuffle.png "Spawn Shuffled") Spawns are shuffled. + +### Counters Additionally there are counters for the useful indoors entrances, so you can evaluate how much focus to put on exploring more entrances: @@ -248,6 +303,4 @@ Additionally there are counters for the useful indoors entrances, so you can eva - ![Counter: Scrubs](images/entrance_grotto_scrub.png "Counter: Scrubs") 10 grottos that contain 2 or 3 scrubs each. Only 2 of these are relevant if `Shuffle Scrubs` is off. - ![Counter: Cows](images/entrance_grotto_cow.png "Counter: Cows") 4 grottos/houses that only have a cow (Impas House Back, Ingo Barn, Lon Lon Corner Tower, Mountain Bombable Grotto). The other cow spots have their own markers (![Links House](images/entrance_house_link.png) and ![Field Valley Grotto](images/entrance_grotto_field_valley.png)) - ![Counter: Great Fairies](images/entrance_house_fairy.png "Counter: Great Fairies") 6 Great Fairy Fountains. -- ![Counter: Shops](images/entrance_house_shop.png "Counter: Shops") 8 randomized shops (Kakariko Potion Shop has 2 separate entrances, only counted once). - -I made a [quick explanation](https://www.twitch.tv/videos/429980574) on how to use the ER variant (slightly outdated but the general principle still is the same). +- ![Counter: Shops](images/entrance_house_shop.png "Counter: Shops") 7 randomized shops (Kakariko Potion Shop has 2 separate icons for capture). diff --git a/ootrando_overworldmap_hamsda/changelog.md b/ootrando_overworldmap_hamsda/changelog.md index a64c504a..f7fd51a5 100644 --- a/ootrando_overworldmap_hamsda/changelog.md +++ b/ootrando_overworldmap_hamsda/changelog.md @@ -1,5 +1,18 @@ # Changelog +## 3.0.0.0 + +- reworked the Entrance Randomizer variants entirely: + - added logic + - added settings for other ER options + - changed captures to match required in-game regions +- fixed GS reward names +- added bridge amount setting +- added free Zelda setting +- added expensive merchants setting +- removed `Move King Zora` +- added wallets to tunic logic in non ER + ## 2.10.0.0 - removed Gossip Stone map diff --git a/ootrando_overworldmap_hamsda/images/entrance_house_potion_back.png b/ootrando_overworldmap_hamsda/images/entrance_house_potion_back.png new file mode 100644 index 00000000..986a6651 Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/entrance_house_potion_back.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_house_potion_front.png b/ootrando_overworldmap_hamsda/images/entrance_house_potion_front.png new file mode 100644 index 00000000..fe40a61d Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/entrance_house_potion_front.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_bridge.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_bridge.png deleted file mode 100644 index 6366d68f..00000000 Binary files a/ootrando_overworldmap_hamsda/images/entrance_overworld_bridge.png and /dev/null differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_cg.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_cg.png index b9200fef..b0ab8975 100644 Binary files a/ootrando_overworldmap_hamsda/images/entrance_overworld_cg.png and b/ootrando_overworldmap_hamsda/images/entrance_overworld_cg.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_col.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_col.png index 6efa4e58..50a7a374 100644 Binary files a/ootrando_overworldmap_hamsda/images/entrance_overworld_col.png and b/ootrando_overworldmap_hamsda/images/entrance_overworld_col.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_ct.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_ct.png deleted file mode 100644 index 0499ae7f..00000000 Binary files a/ootrando_overworldmap_hamsda/images/entrance_overworld_ct.png and /dev/null differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_cte.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_cte.png deleted file mode 100644 index 23a8c0a4..00000000 Binary files a/ootrando_overworldmap_hamsda/images/entrance_overworld_cte.png and /dev/null differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_dm_smt.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_dm_smt.png new file mode 100644 index 00000000..388b8af7 Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/entrance_overworld_dm_smt.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_dmc.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_dmc.png deleted file mode 100644 index d35896cf..00000000 Binary files a/ootrando_overworldmap_hamsda/images/entrance_overworld_dmc.png and /dev/null differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_dmc_ctr.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_dmc_ctr.png new file mode 100644 index 00000000..7cf8a7f3 Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/entrance_overworld_dmc_ctr.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_dmc_lwr.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_dmc_lwr.png new file mode 100644 index 00000000..a1a9e4d8 Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/entrance_overworld_dmc_lwr.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_dmc_upr.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_dmc_upr.png new file mode 100644 index 00000000..731f7f1b Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/entrance_overworld_dmc_upr.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_dmt.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_dmt.png index 2a7293ba..ca079563 100644 Binary files a/ootrando_overworldmap_hamsda/images/entrance_overworld_dmt.png and b/ootrando_overworldmap_hamsda/images/entrance_overworld_dmt.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_gc.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_gc.png index e9bbbc92..35abb98c 100644 Binary files a/ootrando_overworldmap_hamsda/images/entrance_overworld_gc.png and b/ootrando_overworldmap_hamsda/images/entrance_overworld_gc.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_gc_drn.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_gc_drn.png new file mode 100644 index 00000000..7777ee77 Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/entrance_overworld_gc_drn.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_gc_lw.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_gc_lw.png new file mode 100644 index 00000000..4e5b8014 Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/entrance_overworld_gc_lw.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_gf.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_gf.png index ca22f004..f76d6395 100644 Binary files a/ootrando_overworldmap_hamsda/images/entrance_overworld_gf.png and b/ootrando_overworldmap_hamsda/images/entrance_overworld_gf.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_gf_gate.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_gf_gate.png new file mode 100644 index 00000000..e9b54151 Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/entrance_overworld_gf_gate.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_gv.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_gv.png index dd7a813e..63a289a8 100644 Binary files a/ootrando_overworldmap_hamsda/images/entrance_overworld_gv.png and b/ootrando_overworldmap_hamsda/images/entrance_overworld_gv.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_gv_fort.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_gv_fort.png new file mode 100644 index 00000000..55efe073 Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/entrance_overworld_gv_fort.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_gy.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_gy.png index 7dd08815..30571f28 100644 Binary files a/ootrando_overworldmap_hamsda/images/entrance_overworld_gy.png and b/ootrando_overworldmap_hamsda/images/entrance_overworld_gy.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_gy_pad.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_gy_pad.png new file mode 100644 index 00000000..90a1fa07 Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/entrance_overworld_gy_pad.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_hf.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_hf.png index 4d6207bb..2aab0c4b 100644 Binary files a/ootrando_overworldmap_hamsda/images/entrance_overworld_hf.png and b/ootrando_overworldmap_hamsda/images/entrance_overworld_hf.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_kak.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_kak.png index 669075a4..3ea530fb 100644 Binary files a/ootrando_overworldmap_hamsda/images/entrance_overworld_kak.png and b/ootrando_overworldmap_hamsda/images/entrance_overworld_kak.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_kak_gate.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_kak_gate.png new file mode 100644 index 00000000..d8b190d5 Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/entrance_overworld_kak_gate.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_kak_impa.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_kak_impa.png new file mode 100644 index 00000000..9d944774 Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/entrance_overworld_kak_impa.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_kf.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_kf.png index 1e5c872e..c4d043e9 100644 Binary files a/ootrando_overworldmap_hamsda/images/entrance_overworld_kf.png and b/ootrando_overworldmap_hamsda/images/entrance_overworld_kf.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_kf_tree.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_kf_tree.png new file mode 100644 index 00000000..1b7f18ee Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/entrance_overworld_kf_tree.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_lh.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_lh.png index 08dd9296..a461c25b 100644 Binary files a/ootrando_overworldmap_hamsda/images/entrance_overworld_lh.png and b/ootrando_overworldmap_hamsda/images/entrance_overworld_lh.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_llr.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_llr.png index 8782c3cc..268755a2 100644 Binary files a/ootrando_overworldmap_hamsda/images/entrance_overworld_llr.png and b/ootrando_overworldmap_hamsda/images/entrance_overworld_llr.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_lw.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_lw.png index 5591ec78..2ffaf570 100644 Binary files a/ootrando_overworldmap_hamsda/images/entrance_overworld_lw.png and b/ootrando_overworldmap_hamsda/images/entrance_overworld_lw.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_lw_brg.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_lw_brg.png new file mode 100644 index 00000000..e6f5b363 Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/entrance_overworld_lw_brg.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_lw_brg2.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_lw_brg2.png new file mode 100644 index 00000000..6d2c1347 Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/entrance_overworld_lw_brg2.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_lw_mido.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_lw_mido.png new file mode 100644 index 00000000..49ce92e4 Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/entrance_overworld_lw_mido.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_mkt.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_mkt.png new file mode 100644 index 00000000..bf808c1c Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/entrance_overworld_mkt.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_mkt_ent.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_mkt_ent.png new file mode 100644 index 00000000..51315a67 Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/entrance_overworld_mkt_ent.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_sfm.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_sfm.png index 08e6a4ad..e37d1248 100644 Binary files a/ootrando_overworldmap_hamsda/images/entrance_overworld_sfm.png and b/ootrando_overworldmap_hamsda/images/entrance_overworld_sfm.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_sfm_ent.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_sfm_ent.png new file mode 100644 index 00000000..f1792edd Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/entrance_overworld_sfm_ent.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_tot_ent.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_tot_ent.png new file mode 100644 index 00000000..70afb50f Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/entrance_overworld_tot_ent.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_wl.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_wl.png deleted file mode 100644 index 51b0521e..00000000 Binary files a/ootrando_overworldmap_hamsda/images/entrance_overworld_wl.png and /dev/null differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_wl_col.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_wl_col.png new file mode 100644 index 00000000..2e6a73e7 Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/entrance_overworld_wl_col.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_wl_fort.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_wl_fort.png new file mode 100644 index 00000000..7ac3c8e7 Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/entrance_overworld_wl_fort.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_zd.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_zd.png index 1fe952f8..24dd86ad 100644 Binary files a/ootrando_overworldmap_hamsda/images/entrance_overworld_zd.png and b/ootrando_overworldmap_hamsda/images/entrance_overworld_zd.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_zd_kz.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_zd_kz.png new file mode 100644 index 00000000..896bab76 Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/entrance_overworld_zd_kz.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_zf.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_zf.png index 86de95d0..901944ca 100644 Binary files a/ootrando_overworldmap_hamsda/images/entrance_overworld_zf.png and b/ootrando_overworldmap_hamsda/images/entrance_overworld_zf.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_zr.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_zr.png index 69d9b329..dfa6830a 100644 Binary files a/ootrando_overworldmap_hamsda/images/entrance_overworld_zr.png and b/ootrando_overworldmap_hamsda/images/entrance_overworld_zr.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_zr_fall.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_zr_fall.png new file mode 100644 index 00000000..1aa587f3 Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/entrance_overworld_zr_fall.png differ diff --git a/ootrando_overworldmap_hamsda/images/entrance_overworld_zr_frnt.png b/ootrando_overworldmap_hamsda/images/entrance_overworld_zr_frnt.png new file mode 100644 index 00000000..8b71cddb Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/entrance_overworld_zr_frnt.png differ diff --git a/ootrando_overworldmap_hamsda/images/king_zora.png b/ootrando_overworldmap_hamsda/images/king_zora.png deleted file mode 100644 index ed4a6769..00000000 Binary files a/ootrando_overworldmap_hamsda/images/king_zora.png and /dev/null differ diff --git a/ootrando_overworldmap_hamsda/images/overworld_entrance.png b/ootrando_overworldmap_hamsda/images/overworld_entrance.png new file mode 100644 index 00000000..d3f6bf6a Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/overworld_entrance.png differ diff --git a/ootrando_overworldmap_hamsda/images/setting_bridge_amount.png b/ootrando_overworldmap_hamsda/images/setting_bridge_amount.png new file mode 100644 index 00000000..bf4f3fcc Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/setting_bridge_amount.png differ diff --git a/ootrando_overworldmap_hamsda/images/setting_bridge_dungeons.png b/ootrando_overworldmap_hamsda/images/setting_bridge_dungeons.png index b141e6b5..4539849c 100644 Binary files a/ootrando_overworldmap_hamsda/images/setting_bridge_dungeons.png and b/ootrando_overworldmap_hamsda/images/setting_bridge_dungeons.png differ diff --git a/ootrando_overworldmap_hamsda/images/setting_bridge_gs.png b/ootrando_overworldmap_hamsda/images/setting_bridge_gs.png new file mode 100644 index 00000000..3f5198e5 Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/setting_bridge_gs.png differ diff --git a/ootrando_overworldmap_hamsda/images/setting_entrance_overworld_off.png b/ootrando_overworldmap_hamsda/images/setting_entrance_overworld_off.png new file mode 100644 index 00000000..9d98280a Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/setting_entrance_overworld_off.png differ diff --git a/ootrando_overworldmap_hamsda/images/setting_entrance_overworld_shuffle.png b/ootrando_overworldmap_hamsda/images/setting_entrance_overworld_shuffle.png new file mode 100644 index 00000000..5d6f046b Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/setting_entrance_overworld_shuffle.png differ diff --git a/ootrando_overworldmap_hamsda/images/setting_entrance_owl_off.png b/ootrando_overworldmap_hamsda/images/setting_entrance_owl_off.png new file mode 100644 index 00000000..6f5fbbfd Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/setting_entrance_owl_off.png differ diff --git a/ootrando_overworldmap_hamsda/images/setting_entrance_owl_shuffle.png b/ootrando_overworldmap_hamsda/images/setting_entrance_owl_shuffle.png new file mode 100644 index 00000000..6e5c2410 Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/setting_entrance_owl_shuffle.png differ diff --git a/ootrando_overworldmap_hamsda/images/setting_entrance_spawn_off.png b/ootrando_overworldmap_hamsda/images/setting_entrance_spawn_off.png new file mode 100644 index 00000000..b432ba79 Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/setting_entrance_spawn_off.png differ diff --git a/ootrando_overworldmap_hamsda/images/setting_entrance_spawn_shuffle.png b/ootrando_overworldmap_hamsda/images/setting_entrance_spawn_shuffle.png new file mode 100644 index 00000000..d73bec85 Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/setting_entrance_spawn_shuffle.png differ diff --git a/ootrando_overworldmap_hamsda/images/setting_entrance_warpsong_off.png b/ootrando_overworldmap_hamsda/images/setting_entrance_warpsong_off.png new file mode 100644 index 00000000..31b05a9c Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/setting_entrance_warpsong_off.png differ diff --git a/ootrando_overworldmap_hamsda/images/setting_entrance_warpsong_shuffle.png b/ootrando_overworldmap_hamsda/images/setting_entrance_warpsong_shuffle.png new file mode 100644 index 00000000..62cd54d7 Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/setting_entrance_warpsong_shuffle.png differ diff --git a/ootrando_overworldmap_hamsda/images/setting_merchants_off.png b/ootrando_overworldmap_hamsda/images/setting_merchants_off.png new file mode 100644 index 00000000..63de4e61 Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/setting_merchants_off.png differ diff --git a/ootrando_overworldmap_hamsda/images/setting_merchants_shuffle.png b/ootrando_overworldmap_hamsda/images/setting_merchants_shuffle.png new file mode 100644 index 00000000..20b62854 Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/setting_merchants_shuffle.png differ diff --git a/ootrando_overworldmap_hamsda/images/setting_zelda_free.png b/ootrando_overworldmap_hamsda/images/setting_zelda_free.png new file mode 100644 index 00000000..9d16e223 Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/setting_zelda_free.png differ diff --git a/ootrando_overworldmap_hamsda/images/setting_zelda_off.png b/ootrando_overworldmap_hamsda/images/setting_zelda_off.png new file mode 100644 index 00000000..063cecc3 Binary files /dev/null and b/ootrando_overworldmap_hamsda/images/setting_zelda_off.png differ diff --git a/ootrando_overworldmap_hamsda/items/cap_dungeons.json b/ootrando_overworldmap_hamsda/items/cap_dungeons.json index 3e1022c1..94e0cd4b 100644 --- a/ootrando_overworldmap_hamsda/items/cap_dungeons.json +++ b/ootrando_overworldmap_hamsda/items/cap_dungeons.json @@ -1,66 +1,66 @@ [ { - "name": "Deku", + "name": "Deku Tree", "type": "toggle", "img": "images/entrance_dungeon_deku.png", "codes": "entrance_dungeon_deku" }, { - "name": "DC", + "name": "Dodongos Cavern", "type": "toggle", "img": "images/entrance_dungeon_dodongo.png", "codes": "entrance_dungeon_dodongo" }, { - "name": "Jabu", + "name": "Jabu Jabus Belly", "type": "toggle", "img": "images/entrance_dungeon_jabu.png", "codes": "entrance_dungeon_jabu" }, { - "name": "Forest", + "name": "Forest Temple", "type": "toggle", "img": "images/entrance_dungeon_forest.png", "codes": "entrance_dungeon_forest" }, { - "name": "Fire", + "name": "Fire Temple", "type": "toggle", "img": "images/entrance_dungeon_fire.png", "codes": "entrance_dungeon_fire" }, { - "name": "Water", + "name": "Water Temple", "type": "toggle", "img": "images/entrance_dungeon_water.png", "codes": "entrance_dungeon_water" }, { - "name": "Spirit", + "name": "Spirit Temple", "type": "toggle", "img": "images/entrance_dungeon_spirit.png", "codes": "entrance_dungeon_spirit" }, { - "name": "Shadow", + "name": "Shadow Temple", "type": "toggle", "img": "images/entrance_dungeon_shadow.png", "codes": "entrance_dungeon_shadow" }, { - "name": "Well", + "name": "Bottom of the Well", "type": "toggle", "img": "images/entrance_dungeon_botw.png", "codes": "entrance_dungeon_botw" }, { - "name": "IC", + "name": "Ice Cavern", "type": "toggle", "img": "images/entrance_dungeon_ice.png", "codes": "entrance_dungeon_ice" }, { - "name": "GTG", + "name": "Gerudo Training Grounds", "type": "toggle", "img": "images/entrance_dungeon_gtg.png", "codes": "entrance_dungeon_gtg" diff --git a/ootrando_overworldmap_hamsda/items/cap_grottos.json b/ootrando_overworldmap_hamsda/items/cap_grottos.json index be134a99..6f849205 100644 --- a/ootrando_overworldmap_hamsda/items/cap_grottos.json +++ b/ootrando_overworldmap_hamsda/items/cap_grottos.json @@ -60,7 +60,7 @@ "codes": "entrance_grotto_comp" }, { - "name": "Dampes Grave", + "name": "Graveyard Dampes Grave", "type": "toggle", "img": "images/entrance_grotto_dampe.png", "codes": "entrance_grotto_dampe" diff --git a/ootrando_overworldmap_hamsda/items/cap_houses.json b/ootrando_overworldmap_hamsda/items/cap_houses.json index 5d613130..cc285984 100644 --- a/ootrando_overworldmap_hamsda/items/cap_houses.json +++ b/ootrando_overworldmap_hamsda/items/cap_houses.json @@ -11,6 +11,18 @@ "img": "images/entrance_house_shop.png", "codes": "entrance_house_shop" }, + { + "name": "Kak Potion Shop Front", + "type": "toggle", + "img": "images/entrance_house_potion_front.png", + "codes": "entrance_house_potion_front" + }, + { + "name": "Kak Potion Shop Back", + "type": "toggle", + "img": "images/entrance_house_potion_back.png", + "codes": "entrance_house_potion_back" + }, { "name": "Cow", "type": "toggle", @@ -48,7 +60,7 @@ "codes": "entrance_house_tot" }, { - "name": "Windmill", + "name": "Kak Windmill", "type": "toggle", "img": "images/entrance_house_windmill.png", "codes": "entrance_house_windmill" diff --git a/ootrando_overworldmap_hamsda/items/cap_overworld.json b/ootrando_overworldmap_hamsda/items/cap_overworld.json index 28d525e0..a9e6580f 100644 --- a/ootrando_overworldmap_hamsda/items/cap_overworld.json +++ b/ootrando_overworldmap_hamsda/items/cap_overworld.json @@ -12,10 +12,22 @@ "codes": "entrance_overworld_lw" }, { - "name": "Lost Woods Bridge", + "name": "LW Bridge", "type": "toggle", - "img": "images/entrance_overworld_bridge.png", - "codes": "entrance_overworld_bridge" + "img": "images/entrance_overworld_lw_brg.png", + "codes": "entrance_overworld_lw_brg" + }, + { + "name": "LW Bridge From Forest", + "type": "toggle", + "img": "images/entrance_overworld_lw_brg2.png", + "codes": "entrance_overworld_lw_brg2" + }, + { + "name": "LW Beyond Mido", + "type": "toggle", + "img": "images/entrance_overworld_lw_mido.png", + "codes": "entrance_overworld_lw_mido" }, { "name": "Sacred Forest Meadow", @@ -23,6 +35,12 @@ "img": "images/entrance_overworld_sfm.png", "codes": "entrance_overworld_sfm" }, + { + "name": "SFM Entryway", + "type": "toggle", + "img": "images/entrance_overworld_sfm_ent.png", + "codes": "entrance_overworld_sfm_ent" + }, { "name": "Castle Grounds", "type": "toggle", @@ -30,22 +48,22 @@ "codes": "entrance_overworld_cg" }, { - "name": "Castle Town", + "name": "Market", "type": "toggle", - "img": "images/entrance_overworld_ct.png", - "codes": "entrance_overworld_ct" + "img": "images/entrance_overworld_mkt.png", + "codes": "entrance_overworld_mkt" }, { - "name": "Castle Town Entrance", + "name": "Market Entrance", "type": "toggle", - "img": "images/entrance_overworld_cte.png", - "codes": "entrance_overworld_cte" + "img": "images/entrance_overworld_mkt_ent.png", + "codes": "entrance_overworld_mkt_ent" }, { - "name": "Temple of Time Exterior", + "name": "ToT Entrance", "type": "toggle", - "img": "images/entrance_house_tot.png", - "codes": "entrance_overworld_tot" + "img": "images/entrance_overworld_tot_ent.png", + "codes": "entrance_overworld_tot_ent" }, { "name": "Hyrule Field", @@ -65,12 +83,30 @@ "img": "images/entrance_overworld_kak.png", "codes": "entrance_overworld_kak" }, + { + "name": "Kak Impas Ledge", + "type": "toggle", + "img": "images/entrance_overworld_kak_impa.png", + "codes": "entrance_overworld_kak_impa" + }, + { + "name": "Kak Behind Gate", + "type": "toggle", + "img": "images/entrance_overworld_kak_gate.png", + "codes": "entrance_overworld_kak_gate" + }, { "name": "Graveyard", "type": "toggle", "img": "images/entrance_overworld_gy.png", "codes": "entrance_overworld_gy" }, + { + "name": "Graveyard Warp Pad Region", + "type": "toggle", + "img": "images/entrance_overworld_gy_pad.png", + "codes": "entrance_overworld_gy_pad" + }, { "name": "Lake Hylia", "type": "toggle", @@ -83,12 +119,30 @@ "img": "images/entrance_overworld_zr.png", "codes": "entrance_overworld_zr" }, + { + "name": "ZR Front", + "type": "toggle", + "img": "images/entrance_overworld_zr_frnt.png", + "codes": "entrance_overworld_zr_frnt" + }, + { + "name": "ZR Behind Waterfall", + "type": "toggle", + "img": "images/entrance_overworld_zr_fall.png", + "codes": "entrance_overworld_zr_fall" + }, { "name": "Zoras Domain", "type": "toggle", "img": "images/entrance_overworld_zd.png", "codes": "entrance_overworld_zd" }, + { + "name": "ZD Behind King Zora", + "type": "toggle", + "img": "images/entrance_overworld_zd_kz.png", + "codes": "entrance_overworld_zd_kz" + }, { "name": "Zoras Fountain", "type": "toggle", @@ -102,10 +156,16 @@ "codes": "entrance_overworld_col" }, { - "name": "Haunted Wasteland", + "name": "Wasteland Near Colossus", + "type": "toggle", + "img": "images/entrance_overworld_wl_col.png", + "codes": "entrance_overworld_wl_col" + }, + { + "name": "Wasteland Near Fortress", "type": "toggle", - "img": "images/entrance_overworld_wl.png", - "codes": "entrance_overworld_wl" + "img": "images/entrance_overworld_wl_fort.png", + "codes": "entrance_overworld_wl_fort" }, { "name": "Gerudo Fortress", @@ -113,6 +173,12 @@ "img": "images/entrance_overworld_gf.png", "codes": "entrance_overworld_gf" }, + { + "name": "GF Outside Gate", + "type": "toggle", + "img": "images/entrance_overworld_gf_gate.png", + "codes": "entrance_overworld_gf_gate" + }, { "name": "Gerudo Valley", "type": "toggle", @@ -120,21 +186,57 @@ "codes": "entrance_overworld_gv" }, { - "name": "Death Mountain Trail", + "name": "GV Fortress Side", + "type": "toggle", + "img": "images/entrance_overworld_gv_fort.png", + "codes": "entrance_overworld_gv_fort" + }, + { + "name": "Death Mountain", "type": "toggle", "img": "images/entrance_overworld_dmt.png", "codes": "entrance_overworld_dmt" }, { - "name": "Death Mountain Crater", + "name": "Death Mountain Summit", + "type": "toggle", + "img": "images/entrance_overworld_dm_smt.png", + "codes": "entrance_overworld_dm_smt" + }, + { + "name": "DMC Central Local", "type": "toggle", - "img": "images/entrance_overworld_dmc.png", - "codes": "entrance_overworld_dmc" + "img": "images/entrance_overworld_dmc_ctr.png", + "codes": "entrance_overworld_dmc_ctr" + }, + { + "name": "DMC Lower Local", + "type": "toggle", + "img": "images/entrance_overworld_dmc_lwr.png", + "codes": "entrance_overworld_dmc_lwr" + }, + { + "name": "DMC Upper Local", + "type": "toggle", + "img": "images/entrance_overworld_dmc_upr.png", + "codes": "entrance_overworld_dmc_upr" }, { "name": "Goron City", "type": "toggle", "img": "images/entrance_overworld_gc.png", "codes": "entrance_overworld_gc" + }, + { + "name": "GC Darunias Chamber", + "type": "toggle", + "img": "images/entrance_overworld_gc_drn.png", + "codes": "entrance_overworld_gc_drn" + }, + { + "name": "GC Woods Warp", + "type": "toggle", + "img": "images/entrance_overworld_gc_lw.png", + "codes": "entrance_overworld_gc_lw" } ] \ No newline at end of file diff --git a/ootrando_overworldmap_hamsda/items/counters.json b/ootrando_overworldmap_hamsda/items/counters.json index 81c1228c..cffc9fd2 100644 --- a/ootrando_overworldmap_hamsda/items/counters.json +++ b/ootrando_overworldmap_hamsda/items/counters.json @@ -32,7 +32,7 @@ "type": "consumable", "img": "images/entrance_house_shop.png", "codes": "counter_shops", - "max_quantity": 8 + "max_quantity": 7 }, { "name": "Skulltulas: Available", diff --git a/ootrando_overworldmap_hamsda/items/dungeons.json b/ootrando_overworldmap_hamsda/items/dungeons.json index c6853b80..a1a0da49 100644 --- a/ootrando_overworldmap_hamsda/items/dungeons.json +++ b/ootrando_overworldmap_hamsda/items/dungeons.json @@ -17,22 +17,22 @@ }, { "img": "images/lightmedallion.png", - "codes": "free,lightmed", + "codes": "free,lightmed,medallions", "inherit_codes": false }, { "img": "images/lacs_medallions.png", - "codes": "free,lacs_meds", + "codes": "free,lacs_meds,medallions", "inherit_codes": false }, { "img": "images/nocturne_medallions.png", - "codes": "free,noct_meds", + "codes": "free,noct_meds,medallions", "inherit_codes": false }, { "img": "images/forestmedallion.png", - "codes": "free,forestmed", + "codes": "free,forestmed,medallions", "inherit_codes": false }, { @@ -81,22 +81,22 @@ }, { "img": "images/forestmedallion.png", - "codes": "deku,forestmed", + "codes": "deku,forestmed,medallions", "secondary_codes": "forest,forestmed" }, { "img": "images/nocturne_medallions.png", - "codes": "deku,noct_meds", + "codes": "deku,noct_meds,medallions", "secondary_codes": "noct_meds,nocturne" }, { "img": "images/lacs_medallions.png", - "codes": "deku,lacs_meds", + "codes": "deku,lacs_meds,medallions", "secondary_codes": "lacs_meds,lacs,lightarrow" }, { "img": "images/lightmedallion.png", - "codes": "deku,lightmed", + "codes": "deku,lightmed,medallions", "secondary_codes": "light,lightmed" } ] @@ -140,22 +140,22 @@ }, { "img": "images/forestmedallion.png", - "codes": "dodongo,dc,forestmed", + "codes": "dodongo,dc,forestmed,medallions", "secondary_codes": "forest,forestmed" }, { "img": "images/nocturne_medallions.png", - "codes": "dodongo,dc,noct_meds", + "codes": "dodongo,dc,noct_meds,medallions", "secondary_codes": "noct_meds,nocturne" }, { "img": "images/lacs_medallions.png", - "codes": "dodongo,dc,lacs_meds", + "codes": "dodongo,dc,lacs_meds,medallions", "secondary_codes": "lacs_meds,lacs,lightarrow" }, { "img": "images/lightmedallion.png", - "codes": "dodongo,dc,lightmed", + "codes": "dodongo,dc,lightmed,medallions", "secondary_codes": "light,lightmed" } ] @@ -199,22 +199,22 @@ }, { "img": "images/forestmedallion.png", - "codes": "jabu,forestmed", + "codes": "jabu,forestmed,medallions", "secondary_codes": "forest,forestmed" }, { "img": "images/nocturne_medallions.png", - "codes": "jabu,noct_meds", + "codes": "jabu,noct_meds,medallions", "secondary_codes": "noct_meds,nocturne" }, { "img": "images/lacs_medallions.png", - "codes": "jabu,lacs_meds", + "codes": "jabu,lacs_meds,medallions", "secondary_codes": "lacs_meds,lacs,lightarrow" }, { "img": "images/lightmedallion.png", - "codes": "jabu,lightmed", + "codes": "jabu,lightmed,medallions", "secondary_codes": "light,lightmed" } ] @@ -271,22 +271,22 @@ }, { "img": "images/forestmedallion.png", - "codes": "forest,forestmed", + "codes": "forest,forestmed,medallions", "secondary_codes": "forest,forestmed" }, { "img": "images/nocturne_medallions.png", - "codes": "forest,noct_meds", + "codes": "forest,noct_meds,medallions", "secondary_codes": "noct_meds,nocturne" }, { "img": "images/lacs_medallions.png", - "codes": "forest,lacs_meds", + "codes": "forest,lacs_meds,medallions", "secondary_codes": "lacs_meds,lacs,lightarrow" }, { "img": "images/lightmedallion.png", - "codes": "forest,lightmed", + "codes": "forest,lightmed,medallions", "secondary_codes": "light,lightmed" } ] @@ -343,22 +343,22 @@ }, { "img": "images/forestmedallion.png", - "codes": "fire,forestmed", + "codes": "fire,forestmed,medallions", "secondary_codes": "forest,forestmed" }, { "img": "images/nocturne_medallions.png", - "codes": "fire,noct_meds", + "codes": "fire,noct_meds,medallions", "secondary_codes": "noct_meds,nocturne" }, { "img": "images/lacs_medallions.png", - "codes": "fire,lacs_meds", + "codes": "fire,lacs_meds,medallions", "secondary_codes": "lacs_meds,lacs,lightarrow" }, { "img": "images/lightmedallion.png", - "codes": "fire,lightmed", + "codes": "fire,lightmed,medallions", "secondary_codes": "light,lightmed" } ] @@ -415,22 +415,22 @@ }, { "img": "images/forestmedallion.png", - "codes": "water,forestmed", + "codes": "water,forestmed,medallions", "secondary_codes": "forest,forestmed" }, { "img": "images/nocturne_medallions.png", - "codes": "water,noct_meds", + "codes": "water,noct_meds,medallions", "secondary_codes": "noct_meds,nocturne" }, { "img": "images/lacs_medallions.png", - "codes": "water,lacs_meds", + "codes": "water,lacs_meds,medallions", "secondary_codes": "lacs_meds,lacs,lightarrow" }, { "img": "images/lightmedallion.png", - "codes": "water,lightmed", + "codes": "water,lightmed,medallions", "secondary_codes": "light,lightmed" } ] @@ -487,22 +487,22 @@ }, { "img": "images/forestmedallion.png", - "codes": "spirit,forestmed", + "codes": "spirit,forestmed,medallions", "secondary_codes": "forest,forestmed" }, { "img": "images/nocturne_medallions.png", - "codes": "spirit,noct_meds", + "codes": "spirit,noct_meds,medallions", "secondary_codes": "noct_meds,nocturne" }, { "img": "images/lacs_medallions.png", - "codes": "spirit,lacs_meds", + "codes": "spirit,lacs_meds,medallions", "secondary_codes": "lacs_meds,lacs,lightarrow" }, { "img": "images/lightmedallion.png", - "codes": "spirit,lightmed", + "codes": "spirit,lightmed,medallions", "secondary_codes": "light,lightmed" } ] @@ -559,22 +559,22 @@ }, { "img": "images/forestmedallion.png", - "codes": "shadow,forestmed", + "codes": "shadow,forestmed,medallions", "secondary_codes": "forest,forestmed" }, { "img": "images/nocturne_medallions.png", - "codes": "shadow,noct_meds", + "codes": "shadow,noct_meds,medallions", "secondary_codes": "noct_meds,nocturne" }, { "img": "images/lacs_medallions.png", - "codes": "shadow,lacs_meds", + "codes": "shadow,lacs_meds,medallions", "secondary_codes": "lacs_meds,lacs,lightarrow" }, { "img": "images/lightmedallion.png", - "codes": "shadow,lightmed", + "codes": "shadow,lightmed,medallions", "secondary_codes": "light,lightmed" } ] diff --git a/ootrando_overworldmap_hamsda/items/items.json b/ootrando_overworldmap_hamsda/items/items.json index b0499a10..bad7ca8f 100644 --- a/ootrando_overworldmap_hamsda/items/items.json +++ b/ootrando_overworldmap_hamsda/items/items.json @@ -678,5 +678,11 @@ "codes": "ruto,rutosletter" } ] + }, + { + "name": "Dummy", + "type": "toggle", + "img": "images/rupee.png", + "codes": "dummy" } ] \ No newline at end of file diff --git a/ootrando_overworldmap_hamsda/items/options.json b/ootrando_overworldmap_hamsda/items/options.json index b17f2baa..bcaa7d11 100644 --- a/ootrando_overworldmap_hamsda/items/options.json +++ b/ootrando_overworldmap_hamsda/items/options.json @@ -141,12 +141,21 @@ "inherit_codes": false }, { - "img": "images/setting_bridge_100gs.png", - "codes": "setting_bridge,setting_bridge_100gs", + "img": "images/setting_bridge_gs.png", + "codes": "setting_bridge,setting_bridge_gs", "inherit_codes": false } ] }, + { + "name": "Rainbow Bridge Amount", + "type": "consumable", + "img": "images/setting_bridge_amount.png", + "codes": "setting_bridge_amount", + "disabled_img_mods": "@enabled", + "max_quantity": 6, + "initial_quantity": 6 + }, { "name": "Number of Trials", "type": "consumable", @@ -353,6 +362,40 @@ } ] }, + { + "name": "Shuffle Medigoron & Carpet Salesman", + "type": "progressive", + "allow_disabled": false, + "loop": true, + "stages": [ + { + "img": "images/setting_merchants_off.png", + "codes": "setting_merchants,setting_merchants_off" + }, + { + "img": "images/setting_merchants_shuffle.png", + "codes": "setting_merchants,setting_merchants_shuffle", + "inherit_codes": false + } + ] + }, + { + "name": "Free Zelda", + "type": "progressive", + "allow_disabled": false, + "loop": true, + "stages": [ + { + "img": "images/setting_zelda_off.png", + "codes": "setting_zelda,setting_zelda_off" + }, + { + "img": "images/setting_zelda_free.png", + "codes": "setting_zelda,setting_zelda_free", + "inherit_codes": false + } + ] + }, { "name": "Complete Mask Quest", "type": "progressive", diff --git a/ootrando_overworldmap_hamsda/items/options_entrance.json b/ootrando_overworldmap_hamsda/items/options_entrance.json index 97db3e3e..754b63ce 100644 --- a/ootrando_overworldmap_hamsda/items/options_entrance.json +++ b/ootrando_overworldmap_hamsda/items/options_entrance.json @@ -56,5 +56,77 @@ "inherits_codes": false } ] + }, + { + "name": "Shuffle Overworld Entrances", + "type": "progressive", + "allow_disabled": false, + "loop": true, + "initial_stage_idx": 1, + "stages": [ + { + "img": "images/setting_entrance_overworld_off.png", + "codes": "setting_entrance_overworld,setting_entrance_overworld_off" + }, + { + "img": "images/setting_entrance_overworld_shuffle.png", + "codes": "setting_entrance_overworld,setting_entrance_overworld_shuffle", + "inherits_codes": false + } + ] + }, + { + "name": "Randomize Owl Drops", + "type": "progressive", + "allow_disabled": false, + "loop": true, + "initial_stage_idx": 1, + "stages": [ + { + "img": "images/setting_entrance_owl_off.png", + "codes": "setting_entrance_owl,setting_entrance_owl_off" + }, + { + "img": "images/setting_entrance_owl_shuffle.png", + "codes": "setting_entrance_owl,setting_entrance_owl_shuffle", + "inherits_codes": false + } + ] + }, + { + "name": "Randomize Warp Song Destinations", + "type": "progressive", + "allow_disabled": false, + "loop": true, + "initial_stage_idx": 1, + "stages": [ + { + "img": "images/setting_entrance_warpsong_off.png", + "codes": "setting_entrance_warpsong,setting_entrance_warpsong_off" + }, + { + "img": "images/setting_entrance_warpsong_shuffle.png", + "codes": "setting_entrance_warpsong,setting_entrance_warpsong_shuffle", + "inherits_codes": false + } + ] + }, + { + "name": "Randomize Overworld Spawns", + "type": "progressive", + "allow_disabled": false, + "loop": true, + "initial_stage_idx": 1, + "stages": [ + { + "img": "images/setting_entrance_spawn_off.png", + "codes": "setting_entrance_spawn,setting_entrance_spawn_off" + }, + { + "img": "images/setting_entrance_spawn_shuffle.png", + "codes": "setting_entrance_spawn,setting_entrance_spawn_shuffle", + "inherits_codes": false + } + ] } ] \ No newline at end of file diff --git a/ootrando_overworldmap_hamsda/items/sequences.json b/ootrando_overworldmap_hamsda/items/sequences.json index e3039b47..a03f5b54 100644 --- a/ootrando_overworldmap_hamsda/items/sequences.json +++ b/ootrando_overworldmap_hamsda/items/sequences.json @@ -112,22 +112,6 @@ } ] }, - { - "name": "Move King Zora", - "type": "progressive", - "allow_disabled": false, - "stages": [ - { - "img": "images/king_zora.png", - "img_mods": "@disabled", - "codes": "king_zora_moved_no" - }, - { - "img": "images/king_zora.png", - "codes": "king_zora_moved_yes" - } - ] - }, { "name": "Forest Trial Clear", "type": "progressive", diff --git a/ootrando_overworldmap_hamsda/layouts/capture_entrance.json b/ootrando_overworldmap_hamsda/layouts/capture_entrance.json index 6f40b4ae..e6a79327 100644 --- a/ootrando_overworldmap_hamsda/layouts/capture_entrance.json +++ b/ootrando_overworldmap_hamsda/layouts/capture_entrance.json @@ -8,113 +8,129 @@ "rows": [ [ "entrance_overworld_kf", + "entrance_overworld_lw_brg2", + "entrance_overworld_lw_brg", "entrance_overworld_lw", - "entrance_overworld_bridge", - "entrance_overworld_sfm", + "entrance_overworld_lw_mido", + "entrance_overworld_sfm_ent", + "entrance_overworld_sfm" + ], + [ + "entrance_overworld_kak", + "entrance_overworld_kak_impa", + "entrance_overworld_kak_gate", + "entrance_overworld_gy", + "entrance_overworld_gy_pad", + "", + "" + ], + [ + "entrance_overworld_cg", + "entrance_overworld_tot_ent", + "entrance_overworld_mkt", + "entrance_overworld_mkt_ent", + "entrance_overworld_hf", + "entrance_overworld_llr", + "entrance_overworld_dm_smt" + ], + [ + "entrance_overworld_dmc_upr", + "entrance_overworld_dmc_ctr", + "entrance_overworld_dmc_lwr", + "entrance_overworld_gc_drn", + "entrance_overworld_gc_lw", + "entrance_overworld_gc", + "entrance_overworld_dmt" + ], + [ + "entrance_overworld_lh", + "entrance_overworld_zr_frnt", + "entrance_overworld_zr", + "entrance_overworld_zr_fall", + "entrance_overworld_zd", + "entrance_overworld_zd_kz", + "entrance_overworld_zf" + ], + [ + "entrance_overworld_col", + "entrance_overworld_wl_col", + "entrance_overworld_wl_fort", + "entrance_overworld_gf_gate", + "entrance_overworld_gf", + "entrance_overworld_gv_fort", + "entrance_overworld_gv" + ], + [ + "entrance_dungeon_deku", + "entrance_dungeon_dodongo", + "entrance_dungeon_jabu", "", "entrance_house_fairy", "entrance_house_shop", "entrance_house_cow" ], [ - "entrance_overworld_cg", - "entrance_overworld_ct", - "entrance_overworld_cte", - "entrance_overworld_tot", + "entrance_dungeon_forest", + "entrance_dungeon_fire", + "entrance_dungeon_water", "", "entrance_house_fishing", "entrance_house_skull", "entrance_house_pot" ], [ - "entrance_overworld_hf", - "entrance_overworld_llr", - "entrance_overworld_kak", - "entrance_overworld_gy", + "entrance_dungeon_spirit", + "entrance_dungeon_shadow", + "", "", "entrance_house_link", "entrance_house_tot", "entrance_house_windmill" ], [ - "entrance_overworld_lh", - "entrance_overworld_zr", - "entrance_overworld_zd", - "entrance_overworld_zf", + "entrance_dungeon_botw", + "entrance_dungeon_ice", + "entrance_dungeon_gtg", "", "entrance_house_shoot_child", "entrance_house_shoot_adult", "entrance_house_chest" ], [ - "entrance_overworld_col", - "entrance_overworld_wl", - "entrance_overworld_gf", - "entrance_overworld_gv", + "entrance_grotto_generic", + "entrance_grotto_scrub", + "entrance_grotto_cow", "", "entrance_house_talon_child", "entrance_house_masks", "entrance_house_bowling" ], [ - "entrance_overworld_dmt", - "entrance_overworld_dmc", - "entrance_overworld_gc", - "", + "entrance_grotto_enemy", + "entrance_grotto_tektite", + "entrance_grotto_theater", "", "entrance_house_talon_adult", "entrance_house_hag", "entrance_house_lab" ], [ - "", - "", - "", - "", + "entrance_grotto_castle_storms", + "entrance_grotto_field_kak", + "entrance_grotto_field_valley", "", "", "", "" ], [ - "entrance_dungeon_deku", - "entrance_dungeon_dodongo", - "entrance_dungeon_jabu", - "", - "", - "entrance_grotto_generic", - "entrance_grotto_scrub", - "entrance_grotto_cow" - ], - [ - "entrance_dungeon_forest", - "entrance_dungeon_fire", - "entrance_dungeon_water", - "", - "", - "entrance_grotto_enemy", - "entrance_grotto_tektite", - "entrance_grotto_theater" - ], - [ - "entrance_dungeon_spirit", - "entrance_dungeon_shadow", + "entrance_grotto_comp", + "entrance_grotto_dampe", + "entrance_grotto_hp", "", "", "", - "entrance_grotto_castle_storms", - "entrance_grotto_field_kak", - "entrance_grotto_field_valley" - ], - [ - "entrance_dungeon_botw", - "entrance_dungeon_ice", - "entrance_dungeon_gtg", - "", - "", - "entrance_grotto_comp", - "entrance_grotto_dampe", - "entrance_grotto_hp" + "" ] ] } @@ -158,8 +174,13 @@ "rows": [ [ "entrance_house_fairy", + "entrance_house_cow", + "" + ], + [ "entrance_house_shop", - "entrance_house_cow" + "entrance_house_potion_front", + "entrance_house_potion_back" ], [ "entrance_house_fishing", @@ -228,39 +249,57 @@ "rows": [ [ "entrance_overworld_kf", + "entrance_overworld_lw_brg2", + "entrance_overworld_lw_brg", "entrance_overworld_lw", - "entrance_overworld_bridge", + "entrance_overworld_lw_mido", + "entrance_overworld_sfm_ent", "entrance_overworld_sfm" ], [ - "entrance_overworld_cg", - "entrance_overworld_ct", - "entrance_overworld_cte", - "entrance_overworld_tot" + "entrance_overworld_kak", + "entrance_overworld_kak_impa", + "entrance_overworld_kak_gate", + "entrance_overworld_gy", + "entrance_overworld_gy_pad", + "", + "" ], [ + "entrance_overworld_cg", + "entrance_overworld_tot_ent", + "entrance_overworld_mkt", + "entrance_overworld_mkt_ent", "entrance_overworld_hf", "entrance_overworld_llr", - "entrance_overworld_kak", - "entrance_overworld_gy" + "entrance_overworld_dm_smt" + ], + [ + "entrance_overworld_dmc_upr", + "entrance_overworld_dmc_ctr", + "entrance_overworld_dmc_lwr", + "entrance_overworld_gc_drn", + "entrance_overworld_gc_lw", + "entrance_overworld_gc", + "entrance_overworld_dmt" ], [ "entrance_overworld_lh", + "entrance_overworld_zr_frnt", "entrance_overworld_zr", + "entrance_overworld_zr_fall", "entrance_overworld_zd", + "entrance_overworld_zd_kz", "entrance_overworld_zf" ], [ "entrance_overworld_col", - "entrance_overworld_wl", + "entrance_overworld_wl_col", + "entrance_overworld_wl_fort", + "entrance_overworld_gf_gate", "entrance_overworld_gf", + "entrance_overworld_gv_fort", "entrance_overworld_gv" - ], - [ - "entrance_overworld_dmt", - "entrance_overworld_dmc", - "entrance_overworld_gc", - "" ] ] } diff --git a/ootrando_overworldmap_hamsda/layouts/options.json b/ootrando_overworldmap_hamsda/layouts/options.json index 52eb9c5e..1f9ed0fd 100644 --- a/ootrando_overworldmap_hamsda/layouts/options.json +++ b/ootrando_overworldmap_hamsda/layouts/options.json @@ -14,40 +14,47 @@ "setting_age", "setting_shopsanity", "setting_shuffle_sword1", - "setting_masks" + "setting_zelda" ], [ "setting_kak", "setting_logic_chus", "setting_tokens_off", "setting_shuffle_ocarinas", - "setting_hints" + "setting_masks" ], [ "setting_door", "", "setting_scrub_shuffle", "setting_shuffle_egg", - "setting_damage" + "setting_hints" ], [ "setting_fountain", "", "setting_cowsanity", "setting_shuffle_card", - "setting_plant" + "setting_damage" ], [ "setting_gerudo", "", "", "setting_shuffle_beans", - "" + "setting_plant" ], [ "setting_bridge", "", "", + "setting_merchants", + "" + ], + [ + "setting_bridge_amount", + "", + "", "", "" ], diff --git a/ootrando_overworldmap_hamsda/layouts/options_entrance.json b/ootrando_overworldmap_hamsda/layouts/options_entrance.json index 117e6c17..b332aa93 100644 --- a/ootrando_overworldmap_hamsda/layouts/options_entrance.json +++ b/ootrando_overworldmap_hamsda/layouts/options_entrance.json @@ -10,12 +10,777 @@ "item_margin": "1,2", "rows": [ [ + "setting_forest", + "setting_age", + "setting_shopsanity", + "setting_shuffle_sword1", + "setting_zelda" + ], + [ + "setting_kak", "setting_entrance_interiors", + "setting_tokens_off", + "setting_shuffle_ocarinas", + "setting_masks" + ], + [ + "setting_door", "setting_entrance_grottos", - "setting_entrance_dungeons" + "setting_scrub_shuffle", + "setting_shuffle_egg", + "setting_hints" + ], + [ + "setting_fountain", + "setting_entrance_dungeons", + "setting_cowsanity", + "setting_shuffle_card", + "setting_damage" + ], + [ + "setting_gerudo", + "setting_entrance_overworld", + "", + "setting_shuffle_beans", + "setting_plant" + ], + [ + "setting_bridge", + "setting_entrance_owl", + "", + "setting_merchants", + "" + ], + [ + "setting_bridge_amount", + "setting_entrance_warpsong", + "", + "", + "" + ], + [ + "setting_logic_chus", + "setting_entrance_spawn", + "", + "", + "" + ], + [ + "setting_trials", + "", + "", + "", + "" ] ] } + }, + { + "title": "Detailed Logic", + "content": { + "type": "array", + "orientation": "vertical", + "content": [ + { + "type": "itemgrid", + "h_alignment": "left", + "item_margin": "1,2", + "rows": [ + [ + "setting_skulltulas_sun" + ] + ] + }, + { + "type": "scroll", + "horizontal_scrollbar_visibility": "auto", + "vertical_scrollbar_visibility": "auto", + "max_height": 500, + "content": [ + { + "type": "array", + "orientation": "vertical", + //"h_alignment": "left", + "item_margin": "1,2", + "content": [ + { + "type": "item", + "item": "logic_fewer_tunic_requirements", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_grottos_without_agony", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_child_deadhand", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_man_on_roof", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_dc_staircase", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_dc_jump", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_gerudo_kitchen", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_deku_basement_gs", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_rusted_switches", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_botw_basement", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_forest_mq_block_puzzle", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_spirit_child_bombchu", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_windmill_poh", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_crater_bean_poh_with_hovers", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_zora_with_cucco", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_gtg_mq_with_hookshot", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_forest_vines", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_forest_well_swim", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_forest_mq_hallway_switch", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_dmt_bombable", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_goron_city_pot_with_strength", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_water_bk_chest", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_adult_kokiri_gs", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_spirit_mq_frozen_eye", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_spirit_wall", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_spirit_lobby_gs", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_spirit_mq_sun_block_gs", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_jabu_mq_sot_gs", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_botw_cage_gs", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_botw_mq_dead_hand_key", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_fire_flame_maze", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_fire_mq_flame_maze", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_fire_mq_climb", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_fire_mq_near_boss", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_fire_mq_maze_side_room", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_fire_mq_bk_chest", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_zora_river_lower", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_water_cracked_wall_hovers", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_shadow_freestanding_key", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_shadow_mq_huge_pit", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_mido_backflip", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_fire_boss_door_jump", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_lab_diving", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_wasteland_crossing", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_colossus_gs", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_dc_scarecrow_gs", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_kakariko_tower_gs", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_lab_wall_gs", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_spirit_mq_lower_adult", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_spirit_map_chest", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_spirit_sun_chest", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_shadow_trial_mq", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_forest_outdoors_ledge", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_water_boss_key_region", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_water_falling_platform_gs", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_water_river_gs", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_water_hookshot_entry", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_trail_gs_upper", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_trail_gs_lower_hookshot", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_trail_gs_lower_bean", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_crater_upper_to_lower", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_zora_with_hovers", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_shadow_statue", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_link_goron_dins", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_fire_song_of_time", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_fire_strength", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_fire_mq_bombable_chest", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_light_trial_mq", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_ice_mq_scarecrow", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_reverse_wasteland", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_zora_river_upper", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_shadow_mq_gap", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_lost_woods_gs_bean", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_graveyard_poh", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_dmt_soil_gs", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_gtg_without_hookshot", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_gtg_mq_without_hookshot", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_gtg_fake_wall", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_water_cracked_wall_nothing", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_water_north_basement_ledge_jump", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_water_temple_torch_longshot", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_water_bk_jump_dive", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_water_dragon_jump_dive", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_water_dragon_bombchu", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_goron_city_leftmost", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_deku_b1_skip", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_spirit_lower_adult_switch", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_forest_outside_backdoor", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_forest_scarecrow", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_dc_mq_child_bombs", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_dc_slingshot_skip", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_child_rolling_with_strength", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_goron_city_pot", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_valley_crate_hovers", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_spirit_trial_hookshot", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_shadow_umbrella", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_water_central_bow", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_fire_scarecrow", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_shadow_fire_arrow_entry", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_lens_wasteland", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_lens_botw", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_lens_castle_mq", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_lens_castle", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_lens_gtg_mq", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_lens_gtg", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_lens_jabu_mq", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_lens_shadow_mq", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_lens_shadow_mq_back", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_lens_shadow", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_lens_shadow_back", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_lens_spirit_mq", + "width": 200, + "height": 16 + }, + { + "type": "item", + "item": "logic_lens_spirit", + "width": 200, + "height": 16 + } + ] + } + ] + } + ] + } } ] } diff --git a/ootrando_overworldmap_hamsda/locations/dung_mq.json b/ootrando_overworldmap_hamsda/locations/dung_mq.json index a4d57e0e..db9679f8 100644 --- a/ootrando_overworldmap_hamsda/locations/dung_mq.json +++ b/ootrando_overworldmap_hamsda/locations/dung_mq.json @@ -1154,8 +1154,8 @@ { "name": "Lower Maze", "access_rules": [ - "@Fire Temple MQ/Big Lava Room,[redtunic],fire_small_keys:1,[fire_small_keys:2],$has_fire", - "@Fire Temple MQ/Big Lava Room,[redtunic],fire_small_keys:1,[fire_small_keys:2],[logic_fire_mq_climb],hoverboots" + "@Fire Temple MQ/Big Lava Room,[$goron_tunic],fire_small_keys:1,[fire_small_keys:2],$has_fire", + "@Fire Temple MQ/Big Lava Room,[$goron_tunic],fire_small_keys:1,[fire_small_keys:2],[logic_fire_mq_climb],hoverboots" ], "visibility_rules": [ "hidden_region" @@ -1186,9 +1186,9 @@ { "name": "Boss Room", "access_rules": [ - "$has_age|adult,[redtunic],hammer,fire_boss_key,$has_fire,[logic_fire_boss_door_jump]", - "$has_age|adult,[redtunic],hammer,fire_boss_key,$has_fire,hoverboots", - "$has_age|adult,[redtunic],hammer,fire_boss_key,@Fire Temple MQ/West Top" + "$has_age|adult,[$goron_tunic],hammer,fire_boss_key,$has_fire,[logic_fire_boss_door_jump]", + "$has_age|adult,[$goron_tunic],hammer,fire_boss_key,$has_fire,hoverboots", + "$has_age|adult,[$goron_tunic],hammer,fire_boss_key,@Fire Temple MQ/West Top" ], "visibility_rules": [ "hidden_region" @@ -1203,7 +1203,7 @@ "$FTR_or_goron,$has_fire,[logic_fire_mq_near_boss],bow", "$FTR_or_goron,hookshot,bow,firearrow,magic", "$FTR_or_goron,hookshot,dinsfire,magic,$damage_below_quadruple", - "$FTR_or_goron,hookshot,dinsfire,magic,redtunic", + "$FTR_or_goron,hookshot,dinsfire,magic,$goron_tunic", "$FTR_or_goron,hookshot,dinsfire,magic,bow", "$FTR_or_goron,hookshot,dinsfire,magic,longshot" ], @@ -1512,8 +1512,8 @@ "name": "Central Pillar Chest", "short_name": "Central Pillar", "access_rules": [ - "@Water Temple MQ/Dive,[bluetunic],hookshot,bow,firearrow,magic", - "@Water Temple MQ/Dive,[bluetunic],hookshot,dinsfire,magic,ocarina,time" + "@Water Temple MQ/Dive,[$zora_tunic],hookshot,bow,firearrow,magic", + "@Water Temple MQ/Dive,[$zora_tunic],hookshot,dinsfire,magic,ocarina,time" ], "chest_unopened_img": "images/chest_brown_small_key.png", "item_count": 1 @@ -2458,12 +2458,7 @@ "name": "Ganons Castle MQ", "parent": "Ganons Castle Grounds", "access_rules": [ - "gc_mq,$has_age|adult,setting_bridge_open", - "gc_mq,$has_age|adult,setting_bridge_vanilla,lacs_meds:2,lightarrow", - "gc_mq,$has_age|adult,setting_bridge_stones,stones:3", - "gc_mq,$has_age|adult,setting_bridge_medallions,forestmed,noct_meds:2,lacs_meds:2,lightmed", - "gc_mq,$has_age|adult,setting_bridge_dungeons,forestmed,noct_meds:2,lacs_meds:2,lightmed,stones:3", - "gc_mq,$has_age|adult,setting_bridge_100gs,token:100" + "gc_mq,$has_age|adult,$can_spawn_rainbow_bridge" ], "sections": [ { @@ -2573,8 +2568,8 @@ "name": "Fire Trial Clear", "short_name": "Fire Trial", "access_rules": [ - "[redtunic],lift3,$can_LA,longshot", - "[redtunic],lift3,$can_LA,hoverboots" + "[$goron_tunic],lift3,$can_LA,longshot", + "[$goron_tunic],lift3,$can_LA,hoverboots" ], "visibility_rules": [ "setting_trials:1" diff --git a/ootrando_overworldmap_hamsda/locations/dung_reg.json b/ootrando_overworldmap_hamsda/locations/dung_reg.json index 74414b42..03c7b432 100644 --- a/ootrando_overworldmap_hamsda/locations/dung_reg.json +++ b/ootrando_overworldmap_hamsda/locations/dung_reg.json @@ -1034,12 +1034,12 @@ { "name": "Maze Lower", "access_rules": [ - "@Fire Temple/Big Lava Room,fire_small_keys:3,[fire_small_keys:4],lift1,[redtunic],$has_explosives", - "@Fire Temple/Big Lava Room,fire_small_keys:3,[fire_small_keys:4],[logic_fire_strength],[redtunic],$has_explosives", - "@Fire Temple/Big Lava Room,fire_small_keys:3,[fire_small_keys:4],lift1,[redtunic],bow", - "@Fire Temple/Big Lava Room,fire_small_keys:3,[fire_small_keys:4],[logic_fire_strength],[redtunic],bow", - "@Fire Temple/Big Lava Room,fire_small_keys:3,[fire_small_keys:4],lift1,[redtunic],hookshot", - "@Fire Temple/Big Lava Room,fire_small_keys:3,[fire_small_keys:4],[logic_fire_strength],[redtunic],hookshot" + "@Fire Temple/Big Lava Room,fire_small_keys:3,[fire_small_keys:4],lift1,[$goron_tunic],$has_explosives", + "@Fire Temple/Big Lava Room,fire_small_keys:3,[fire_small_keys:4],[logic_fire_strength],[$goron_tunic],$has_explosives", + "@Fire Temple/Big Lava Room,fire_small_keys:3,[fire_small_keys:4],lift1,[$goron_tunic],bow", + "@Fire Temple/Big Lava Room,fire_small_keys:3,[fire_small_keys:4],[logic_fire_strength],[$goron_tunic],bow", + "@Fire Temple/Big Lava Room,fire_small_keys:3,[fire_small_keys:4],lift1,[$goron_tunic],hookshot", + "@Fire Temple/Big Lava Room,fire_small_keys:3,[fire_small_keys:4],[logic_fire_strength],[$goron_tunic],hookshot" ], "visibility_rules": [ "hidden_region" @@ -1279,10 +1279,10 @@ { "name": "Volvagia", "access_rules": [ - "[redtunic],hammer,fire_boss_key,[logic_fire_boss_door_jump]", - "[redtunic],hammer,fire_boss_key,hoverboots", - "[redtunic],hammer,fire_boss_key,@Fire Temple/West Tower,ocarina,time", - "[redtunic],hammer,fire_boss_key,@Fire Temple/West Tower,$has_explosives" + "[$goron_tunic],hammer,fire_boss_key,[logic_fire_boss_door_jump]", + "[$goron_tunic],hammer,fire_boss_key,hoverboots", + "[$goron_tunic],hammer,fire_boss_key,@Fire Temple/West Tower,ocarina,time", + "[$goron_tunic],hammer,fire_boss_key,@Fire Temple/West Tower,$has_explosives" ], "hosted_item": "fire", "chest_unopened_img": "images/HC.png", @@ -1490,9 +1490,9 @@ "name": "Central Pillar Chest", "short_name": "Central Pillar", "access_rules": [ - "@Water Temple/Middle Water Level,ironboots,[bluetunic],hookshot,water_small_keys:1,[water_small_keys:5]", - "@Water Temple/Middle Water Level,ironboots,[bluetunic],hookshot,bow", - "@Water Temple/Middle Water Level,ironboots,[bluetunic],hookshot,dinsfire,magic" + "@Water Temple/Middle Water Level,ironboots,[$zora_tunic],hookshot,water_small_keys:1,[water_small_keys:5]", + "@Water Temple/Middle Water Level,ironboots,[$zora_tunic],hookshot,bow", + "@Water Temple/Middle Water Level,ironboots,[$zora_tunic],hookshot,dinsfire,magic" ], "chest_unopened_img": "images/chest_brown_small_key.png", "item_count": 1 @@ -2511,12 +2511,7 @@ "name": "Ganons Castle", "parent": "Ganons Castle Grounds", "access_rules": [ - "gc_reg,$has_age|adult,setting_bridge_open", - "gc_reg,$has_age|adult,setting_bridge_vanilla,lacs_meds:2,lightarrow", - "gc_reg,$has_age|adult,setting_bridge_stones,stones:3", - "gc_reg,$has_age|adult,setting_bridge_medallions,forestmed,noct_meds:2,lacs_meds:2,lightmed", - "gc_reg,$has_age|adult,setting_bridge_dungeons,forestmed,noct_meds:2,lacs_meds:2,lightmed,stones:3", - "gc_reg,$has_age|adult,setting_bridge_100gs,token:100" + "gc_reg,$has_age|adult,$can_spawn_rainbow_bridge" ], "sections": [ { diff --git a/ootrando_overworldmap_hamsda/locations/overworld.json b/ootrando_overworldmap_hamsda/locations/overworld.json index 23c3f94a..200356b7 100644 --- a/ootrando_overworldmap_hamsda/locations/overworld.json +++ b/ootrando_overworldmap_hamsda/locations/overworld.json @@ -1975,7 +1975,7 @@ "item_count": 1 }, { - "name": "Kak 10 Gold Skulltula Reward", + "name": "Kak 20 Gold Skulltula Reward", "short_name": "20 Tokens", "access_rules": [ "skulltula:20", @@ -1985,7 +1985,7 @@ "item_count": 1 }, { - "name": "Kak 10 Gold Skulltula Reward", + "name": "Kak 30 Gold Skulltula Reward", "short_name": "30 Tokens", "access_rules": [ "skulltula:30", @@ -1995,7 +1995,7 @@ "item_count": 1 }, { - "name": "Kak 10 Gold Skulltula Reward", + "name": "Kak 40 Gold Skulltula Reward", "short_name": "40 Tokens", "access_rules": [ "skulltula:40", @@ -2005,7 +2005,7 @@ "item_count": 1 }, { - "name": "Kak 10 Gold Skulltula Reward", + "name": "Kak 50 Gold Skulltula Reward", "short_name": "50 Tokens", "access_rules": [ "skulltula:50", @@ -2636,6 +2636,30 @@ } ] }, + { + "name": "GC Medigoron", + "short_name": "Medigoron", + "sections": [ + { + "name": "Pay 200", + "access_rules": [ + "$has_age|adult,wallet,$can_blast", + "$has_age|adult,wallet,lift1" + ], + "visibility_rules": [ + "setting_merchants_shuffle" + ], + "item_count": 1 + } + ], + "map_locations": [ + { + "map": "adult", + "x": 1646, + "y": 125 + } + ] + }, { "name": "GC Pot", "sections": [ @@ -2699,10 +2723,10 @@ "short_name": "Deku Scrubs", "access_rules": [ "ocarina,time,$damage_below_quadruple", - "ocarina,time,redtunic", + "ocarina,time,$goron_tunic", "ocarina,time,longshot", "ocarina,time,nayrus,magic", - "hookshot,$damage_below_ohko,redtunic", + "hookshot,$damage_below_ohko,$goron_tunic", "hookshot,nayrus,magic" ], "visibility_rules": [ @@ -3721,6 +3745,9 @@ "access_rules": [ "$has_age|child" ], + "visibility_rules": [ + "setting_zelda_off" + ], "capture_item": true, "item_count": 1 } @@ -3742,7 +3769,7 @@ "$has_age|child,childegg" ], "visibility_rules": [ - "childegg" + "setting_zelda_off,childegg" ], "hosted_item": "capture_childcucco" } @@ -3764,6 +3791,9 @@ { "name": "Song from Impa", "short_name": "Song", + "visibility_rules": [ + "setting_zelda_off,childcucco" + ], "chest_unopened_img": "images/grey_note.png", "chest_opened_img": "images/grey_note_check.png", "item_count": 1 @@ -3771,7 +3801,7 @@ { "name": "HC Zeldas Letter", "visibility_rules": [ - "childcucco" + "setting_zelda_off,childcucco" ], "hosted_item": "capture_letter" } @@ -4266,29 +4296,6 @@ "y": 429 } ] - }, - { - "name": "King Zora Moves", - "sections": [ - { - "name": "Show Letter", - "access_rules": [ - "king_zora_moved_no,ruto" - ], - "visibility_rules": [ - "setting_fountain_closed", - "setting_fountain_adult" - ], - "hosted_item": "king_zora_moved_yes" - } - ], - "map_locations": [ - { - "map": "child", - "x": 2624, - "y": 367 - } - ] } ] }, @@ -4987,13 +4994,13 @@ }, { "name": "Haunted Wasteland", - "access_rules": [ - "$wasteland", - "{$hintable}" - ], "children": [ { "name": "Wasteland Structure", + "access_rules": [ + "$wasteland", + "{$hintable}" + ], "sections": [ { "name": "Wasteland Chest", @@ -5009,9 +5016,12 @@ "name": "Wasteland GS", "short_name": "GS", "access_rules": [ - "hookshot", - "[hookshot],bombs,shield2", - "[hookshot],bombs,shield3", + "$has_age|adult,hookshot", + "$has_age|adult,[hookshot],bombs,shield2", + "$has_age|adult,[hookshot],bombs,shield3", + "$has_age|child,boomerang", + "{$has_age|child,sling}", + "{$has_explosives}", "{$hintable}" ], "visibility_rules": [ @@ -5024,12 +5034,50 @@ } ], "map_locations": [ + { + "map": "child", + "x": 360, + "y": 283 + }, { "map": "adult", "x": 360, "y": 283 } ] + }, + { + "name": "Wasteland Bombchu Salesman", + "short_name": "Carpet Salesman", + "access_rules": [ + "$wasteland,wallet" + ], + "sections": [ + { + "name": "Pay 200", + "access_rules": [ + "$has_age|adult", + "$has_age|child,sticks", + "$has_age|child,sword1" + ], + "visibility_rules": [ + "setting_merchants_shuffle" + ], + "item_count": 1 + } + ], + "map_locations": [ + { + "map": "child", + "x": 380, + "y": 350 + }, + { + "map": "adult", + "x": 380, + "y": 350 + } + ] } ] }, diff --git a/ootrando_overworldmap_hamsda/locations/overworld_entrance.json b/ootrando_overworldmap_hamsda/locations/overworld_entrance.json index d3236a61..ed1c08d7 100644 --- a/ootrando_overworldmap_hamsda/locations/overworld_entrance.json +++ b/ootrando_overworldmap_hamsda/locations/overworld_entrance.json @@ -5,177 +5,152 @@ "chest_opened_img": "images/chest_brown_open.png", "children": [ { - "name": "Kokiri Forest", - "color": "#18a50e", + "name": "Special Regions", + "color": "#ffffff", "children": [ { - "name": "Kokiri Forest -> KF Storms Grotto", - "short_name": "KF Storms Grotto", - "sections": [ - { - "name": "Grotto", - "capture_item": true, - "capture_item_layout": "tracker_capture_grottos", - "item_count": 1 - } - ], - "map_locations": [ - { - "map": "entrances", - "x": 2120, - "y": 845 - } - ] - }, - { - "name": "Kokiri Forest -> KF House of Twins", - "short_name": "KF House of Twins", + "name": "Child Spawn -> KF Links House", + "short_name": "Child Spawn", "sections": [ { - "name": "House", - "visibility_rules": [ - "setting_entrance_interiors_simple" + "name": "Overworld", + "access_rules": [ + "setting_age_child", + "$can_time_travel" ], "capture_item": true, - "capture_item_layout": "tracker_capture_houses", + "capture_item_layout": "tracker_capture_overworld", "item_count": 1 } ], "map_locations": [ { - "map": "entrances", - "x": 2265, - "y": 975 + "map": "connectors", + "x": 175, + "y": 1421 } ] }, { - "name": "Kokiri Forest -> KF Know It All House", - "short_name": "KF Know It All House", + "name": "Adult Spawn -> Temple of Time", + "short_name": "Adult Spawn", "sections": [ { - "name": "House", - "visibility_rules": [ - "setting_entrance_interiors_simple" + "name": "Overworld", + "access_rules": [ + "setting_age_adult", + "$can_time_travel" ], "capture_item": true, - "capture_item_layout": "tracker_capture_houses", - "item_count": 1 - } - ], - "map_locations": [ - { - "map": "entrances", - "x": 2070, - "y": 960 - } - ] - }, - { - "name": "Kokiri Forest -> KF Kokiri Shop", - "short_name": "KF Kokiri Shop", - "sections": [ - { - "name": "House", - "capture_item": true, - "capture_item_layout": "tracker_capture_houses", + "capture_item_layout": "tracker_capture_overworld", "item_count": 1 } ], "map_locations": [ { - "map": "entrances", - "x": 2220, - "y": 915 + "map": "connectors", + "x": 244, + "y": 1421 } ] }, { - "name": "Kokiri Forest -> KF Links House", - "short_name": "KF Links House", + "name": "Minuet of Forest Warp -> Sacred Forest Meadow", + "short_name": "Minuet", "sections": [ { - "name": "House", + "name": "Overworld", + "access_rules": [ + "ocarina,minuet" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_houses", + "capture_item_layout": "tracker_capture_overworld", "item_count": 1 } ], "map_locations": [ { - "map": "entrances", - "x": 2170, - "y": 1000 + "map": "connectors", + "x": 37, + "y": 1497 } ] }, { - "name": "Kokiri Forest -> KF Midos House", - "short_name": "KF Midos House", + "name": "Bolero of Fire Warp -> DMC Central Local", + "short_name": "Bolero", "sections": [ { - "name": "House", + "name": "Overworld", + "access_rules": [ + "ocarina,bolero" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_houses", + "capture_item_layout": "tracker_capture_overworld", "item_count": 1 } ], "map_locations": [ { - "map": "entrances", - "x": 2135, - "y": 900 + "map": "connectors", + "x": 106, + "y": 1497 } ] }, { - "name": "Kokiri Forest -> KF Sarias House", - "short_name": "KF Sarias House", + "name": "Serenade of Water Warp -> Lake Hylia", + "short_name": "Serenade", "sections": [ { - "name": "House", - "visibility_rules": [ - "setting_entrance_interiors_simple" + "name": "Overworld", + "access_rules": [ + "ocarina,serenade" ], "capture_item": true, - "capture_item_layout": "tracker_capture_houses", + "capture_item_layout": "tracker_capture_overworld", "item_count": 1 } ], "map_locations": [ { - "map": "entrances", - "x": 2220, - "y": 990 + "map": "connectors", + "x": 175, + "y": 1497 } ] }, { - "name": "KF Outside Deku Tree -> Deku Tree Lobby", - "short_name": "Deku Tree", + "name": "Requiem of Spirit Warp -> Desert Colossus", + "short_name": "Requiem", "sections": [ { - "name": "Dungeon", + "name": "Overworld", + "access_rules": [ + "ocarina,requiem" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_dungeons", + "capture_item_layout": "tracker_capture_overworld", "item_count": 1 } ], "map_locations": [ { - "map": "entrances", - "size": 50, - "x": 2420, - "y": 875 + "map": "connectors", + "x": 244, + "y": 1497 } ] }, { - "name": "Kokiri Forest -> Lost Woods", - "short_name": "KF -> LW", + "name": "Nocturne of Shadow Warp -> Graveyard Warp Pad Region", + "short_name": "Nocturne", "sections": [ { "name": "Overworld", + "access_rules": [ + "ocarina,nocturne" + ], "capture_item": true, "capture_item_layout": "tracker_capture_overworld", "item_count": 1 @@ -184,17 +159,20 @@ "map_locations": [ { "map": "connectors", - "x": 2140, - "y": 845 + "x": 313, + "y": 1497 } ] }, { - "name": "Kokiri Forest -> LW Bridge From Forest", - "short_name": "KF -> Bridge", + "name": "Prelude of Light Warp -> Temple of Time", + "short_name": "Prelude", "sections": [ { "name": "Overworld", + "access_rules": [ + "ocarina,prelude" + ], "capture_item": true, "capture_item_layout": "tracker_capture_overworld", "item_count": 1 @@ -203,137 +181,269 @@ "map_locations": [ { "map": "connectors", - "x": 2050, - "y": 900 + "x": 382, + "y": 1497 } ] } ] }, { - "name": "Lost Woods", + "name": "Kokiri Forest", "color": "#18a50e", "children": [ { - "name": "Lost Woods -> LW Near Shortcuts Grotto", - "short_name": "LW Near Shortcuts Grotto", + "name": "Kokiri Forest -> KF Links House", + "short_name": "KF Links House", "sections": [ { - "name": "Grotto", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "House", + "access_rules": [ + "$access|Kokiri Forest" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_grottos", + "capture_item_layout": "tracker_capture_houses", "item_count": 1 } ], "map_locations": [ { "map": "entrances", - "x": 2150, - "y": 775 + "x": 2170, + "y": 1000 } ] }, { - "name": "LW Beyond Mido -> Deku Theater", - "short_name": "Deku Theater", + "name": "Kokiri Forest -> KF Midos House", + "short_name": "KF Midos House", "sections": [ { - "name": "Grotto", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "House", + "access_rules": [ + "$access|Kokiri Forest" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_grottos", + "capture_item_layout": "tracker_capture_houses", "item_count": 1 } ], "map_locations": [ { "map": "entrances", - "x": 2115, - "y": 740 + "x": 2135, + "y": 900 } ] }, { - "name": "LW Beyond Mido -> LW Scrubs Grotto", - "short_name": "LW Scrubs Grotto", + "name": "Kokiri Forest -> KF Sarias House", + "short_name": "KF Sarias House", "sections": [ { - "name": "Grotto", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "House", + "access_rules": [ + "$access|Kokiri Forest" + ], + "visibility_rules": [ + "setting_entrance_interiors_simple" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_grottos", + "capture_item_layout": "tracker_capture_houses", "item_count": 1 } ], "map_locations": [ { "map": "entrances", - "x": 2190, - "y": 725 + "x": 2220, + "y": 990 } ] }, { - "name": "Lost Woods -> GC Woods Warp", - "short_name": "LW -> GC", + "name": "Kokiri Forest -> KF House of Twins", + "short_name": "KF House of Twins", "sections": [ { - "name": "Overworld", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "House", + "access_rules": [ + "$access|Kokiri Forest" + ], + "visibility_rules": [ + "setting_entrance_interiors_simple" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_overworld", + "capture_item_layout": "tracker_capture_houses", "item_count": 1 } ], "map_locations": [ { - "map": "connectors", - "x": 2150, - "y": 775 + "map": "entrances", + "x": 2265, + "y": 975 } ] }, { - "name": "Lost Woods -> Zora River", - "short_name": "LW -> ZR", + "name": "Kokiri Forest -> KF Know It All House", + "short_name": "KF Know It All House", "sections": [ { - "name": "Overworld", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "House", + "access_rules": [ + "$access|Kokiri Forest" + ], + "visibility_rules": [ + "setting_entrance_interiors_simple" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_overworld", + "capture_item_layout": "tracker_capture_houses", "item_count": 1 } ], "map_locations": [ { - "map": "connectors", - "x": 2185, - "y": 775 + "map": "entrances", + "x": 2070, + "y": 960 } ] }, { - "name": "LW Beyond Mido -> SFM Entryway", - "short_name": "LW -> SFM", + "name": "Kokiri Forest -> KF Kokiri Shop", + "short_name": "KF Kokiri Shop", "sections": [ { - "name": "Overworld", - "capture_item": true, - "capture_item_layout": "tracker_capture_overworld", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], "item_count": 1 - } - ], - "map_locations": [ + }, { - "map": "connectors", - "x": 2190, - "y": 725 - } + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "House", + "access_rules": [ + "$access|Kokiri Forest" + ], + "visibility_rules": [ + "setting_entrance_interiors_simple", + "setting_shopsanity_yes" + ], + "capture_item": true, + "capture_item_layout": "tracker_capture_houses", + "item_count": 1 + } + ], + "map_locations": [ + { + "map": "entrances", + "x": 2220, + "y": 915 + } ] }, { - "name": "LW Forest Exit -> Kokiri Forest", - "short_name": "LW -> KF", + "name": "Kokiri Forest -> Lost Woods", + "short_name": "KF -> LW", "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "Overworld", + "access_rules": [ + "$access|Kokiri Forest" + ], "capture_item": true, "capture_item_layout": "tracker_capture_overworld", "item_count": 1 @@ -343,16 +453,37 @@ { "map": "connectors", "x": 2140, - "y": 810 + "y": 845 } ] }, { - "name": "LW Bridge -> Kokiri Forest", - "short_name": "Bridge -> KF", + "name": "Kokiri Forest -> LW Bridge From Forest", + "short_name": "KF -> Bridge", "sections": [ + { + "name": "child", + "access_rules": [ + "$can_leave_forest" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "Overworld", + "access_rules": [ + "$access|Kokiri Forest|child,$can_leave_forest", + "$access|Kokiri Forest|adult" + ], "capture_item": true, "capture_item_layout": "tracker_capture_overworld", "item_count": 1 @@ -361,163 +492,334 @@ "map_locations": [ { "map": "connectors", - "x": 2000, - "y": 885 + "x": 2050, + "y": 900 } ] }, { - "name": "LW Bridge -> Hyrule Field", - "short_name": "Bridge -> HF", + "name": "Kokiri Forest -> KF Storms Grotto", + "short_name": "KF Storms Grotto", + "access_rules": [ + "$hidden_grotto,ocarina,storm" + ], "sections": [ { - "name": "Overworld", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Grotto", + "access_rules": [ + "$access|Kokiri Forest" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_overworld", + "capture_item_layout": "tracker_capture_grottos", "item_count": 1 } ], "map_locations": [ { - "map": "connectors", - "x": 1950, - "y": 885 + "map": "entrances", + "x": 2120, + "y": 845 } ] } ] }, { - "name": "Sacred Forest Meadow", + "name": "KF Outside Deku Tree", "color": "#18a50e", "children": [ { - "name": "Sacred Forest Meadow -> SFM Fairy Grotto", - "short_name": "SFM Fairy Grotto", + "name": "KF Outside Deku Tree -> Deku Tree Lobby", + "short_name": "Deku Tree", "sections": [ { - "name": "Grotto", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "setting_entrance_dungeons_shuffle" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Dungeon", + "access_rules": [ + "$access|KF Outside Deku Tree|child", + "$access|KF Outside Deku Tree|adult,setting_entrance_dungeons_shuffle" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_grottos", + "capture_item_layout": "tracker_capture_dungeons", "item_count": 1 } ], "map_locations": [ { "map": "entrances", - "x": 2165, - "y": 650 + "size": 50, + "x": 2420, + "y": 875 } ] - }, + } + ] + }, + { + "name": "LW Forest Exit", + "color": "#18a50e", + "children": [ { - "name": "Sacred Forest Meadow -> SFM Storms Grotto", - "short_name": "SFM Storms Grotto", + "name": "LW Forest Exit -> Kokiri Forest", + "short_name": "LW -> KF", "sections": [ { - "name": "Grotto", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Overworld", + "access_rules": [ + "$access|LW Forest Exit" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_grottos", + "capture_item_layout": "tracker_capture_overworld", "item_count": 1 } ], "map_locations": [ { - "map": "entrances", - "x": 2185, - "y": 615 + "map": "connectors", + "x": 2140, + "y": 810 } ] - }, + } + ] + }, + { + "name": "Lost Woods", + "color": "#18a50e", + "children": [ { - "name": "SFM Entryway -> SFM Wolfos Grotto", - "short_name": "SFM Wolfos Grotto", + "name": "Lost Woods -> GC Woods Warp", + "short_name": "LW -> GC", "sections": [ { - "name": "Grotto", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Overworld", + "access_rules": [ + "$access|Lost Woods" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_grottos", + "capture_item_layout": "tracker_capture_overworld", "item_count": 1 } ], "map_locations": [ { - "map": "entrances", - "x": 2185, - "y": 685 + "map": "connectors", + "x": 2150, + "y": 775 } ] }, { - "name": "Sacred Forest Meadow -> Forest Temple Lobby", - "short_name": "Forest Temple", + "name": "Lost Woods -> Zora River", + "short_name": "LW -> ZR", "sections": [ { - "name": "Dungeon", + "name": "child", + "access_rules": [ + "scale,$can_leave_forest" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "scale", + "ironboots" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Overworld", + "access_rules": [ + "$access|Lost Woods|child,scale,$can_leave_forest", + "$access|Lost Woods|adult,scale", + "$access|Lost Woods|adult,ironboots" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_dungeons", + "capture_item_layout": "tracker_capture_overworld", "item_count": 1 } ], "map_locations": [ { - "map": "entrances", - "size": 50, - "x": 2140, - "y": 600 + "map": "connectors", + "x": 2185, + "y": 775 } ] }, { - "name": "SFM Entryway -> LW Beyond Mido", - "short_name": "SFM -> LW", + "name": "Lost Woods -> LW Near Shortcuts Grotto", + "short_name": "LW Near Shortcuts Grotto", "sections": [ { - "name": "Overworld", + "name": "child", + "access_rules": [ + "$has_explosives" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "$can_blast" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Grotto", + "access_rules": [ + "$access|Lost Woods,$has_explosives", + "$access|Lost Woods|adult,hammer" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_overworld", + "capture_item_layout": "tracker_capture_grottos", "item_count": 1 } ], "map_locations": [ { - "map": "connectors", - "x": 2190, - "y": 690 + "map": "entrances", + "x": 2150, + "y": 775 } ] } ] }, { - "name": "Hyrule Field", - "color": "#09a09d", + "name": "LW Beyond Mido", + "color": "#18a50e", "children": [ { - "name": "Hyrule Field -> HF Fairy Grotto", - "short_name": "HF Fairy Grotto", + "name": "LW Beyond Mido -> SFM Entryway", + "short_name": "LW -> SFM", "sections": [ { - "name": "Grotto", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Overworld", + "access_rules": [ + "$access|LW Beyond Mido" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_grottos", + "capture_item_layout": "tracker_capture_overworld", "item_count": 1 } ], "map_locations": [ { - "map": "entrances", - "x": 1200, - "y": 395 + "map": "connectors", + "x": 2190, + "y": 725 } ] }, { - "name": "Hyrule Field -> HF Near Kak Grotto", - "short_name": "HF Near Kak Grotto", + "name": "LW Beyond Mido -> Deku Theater", + "short_name": "Deku Theater", "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "Grotto", + "access_rules": [ + "$access|LW Beyond Mido" + ], "capture_item": true, "capture_item_layout": "tracker_capture_grottos", "item_count": 1 @@ -526,17 +828,41 @@ "map_locations": [ { "map": "entrances", - "x": 1550, - "y": 405 + "x": 2115, + "y": 740 } ] }, { - "name": "Hyrule Field -> HF Inside Fence Grotto", - "short_name": "HF Inside Fence Grotto", + "name": "LW Beyond Mido -> LW Scrubs Grotto", + "short_name": "LW Scrubs Grotto", "sections": [ + { + "name": "child", + "access_rules": [ + "$has_explosives" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "$can_blast" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "Grotto", + "access_rules": [ + "$access|LW Beyond Mido,$has_explosives", + "$access|LW Beyond Mido|adult,hammer" + ], "capture_item": true, "capture_item_layout": "tracker_capture_grottos", "item_count": 1 @@ -545,36 +871,86 @@ "map_locations": [ { "map": "entrances", - "x": 1140, - "y": 1000 + "x": 2190, + "y": 725 } ] - }, + } + ] + }, + { + "name": "SFM Entryway", + "color": "#18a50e", + "children": [ { - "name": "Hyrule Field -> HF Open Grotto", - "short_name": "HF Open Grotto", + "name": "SFM Entryway -> LW Beyond Mido", + "short_name": "SFM -> LW", "sections": [ { - "name": "Grotto", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Overworld", + "access_rules": [ + "$access|SFM Entryway" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_grottos", + "capture_item_layout": "tracker_capture_overworld", "item_count": 1 } ], "map_locations": [ { - "map": "entrances", - "x": 1205, - "y": 995 + "map": "connectors", + "x": 2190, + "y": 690 } ] }, { - "name": "Hyrule Field -> HF Tektite Grotto", - "short_name": "HF Tektite Grotto", + "name": "SFM Entryway -> SFM Wolfos Grotto", + "short_name": "SFM Wolfos Grotto", + "access_rules": [ + "$hidden_grotto" + ], "sections": [ + { + "name": "child", + "access_rules": [ + "$has_explosives" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "$can_blast" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "Grotto", + "access_rules": [ + "$access|SFM Entryway,$has_explosives", + "$access|SFM Entryway|adult,hammer" + ], "capture_item": true, "capture_item_layout": "tracker_capture_grottos", "item_count": 1 @@ -583,17 +959,43 @@ "map_locations": [ { "map": "entrances", - "x": 1150, - "y": 480 + "x": 2185, + "y": 685 } ] - }, + } + ] + }, + { + "name": "Sacred Forest Meadow", + "color": "#18a50e", + "children": [ { - "name": "Hyrule Field -> HF Cow Grotto", - "short_name": "HF Cow Grotto", + "name": "Sacred Forest Meadow -> SFM Fairy Grotto", + "short_name": "SFM Fairy Grotto", "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "Grotto", + "access_rules": [ + "$access|Sacred Forest Meadow" + ], + "visibility_rules": [ + "setting_entrance_grottos_shuffle" + ], "capture_item": true, "capture_item_layout": "tracker_capture_grottos", "item_count": 1 @@ -602,17 +1004,41 @@ "map_locations": [ { "map": "entrances", - "x": 970, - "y": 660 + "x": 2165, + "y": 650 } ] }, { - "name": "Hyrule Field -> HF Near Market Grotto", - "short_name": "HF Near Market Grotto", + "name": "Sacred Forest Meadow -> SFM Storms Grotto", + "short_name": "SFM Storms Grotto", + "access_rules": [ + "$hidden_grotto,ocarina,storm" + ], "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "Grotto", + "access_rules": [ + "$access|Sacred Forest Meadow" + ], + "visibility_rules": [ + "setting_entrance_grottos_shuffle", + "setting_scrub_shuffle_yes" + ], "capture_item": true, "capture_item_layout": "tracker_capture_grottos", "item_count": 1 @@ -621,36 +1047,88 @@ "map_locations": [ { "map": "entrances", - "x": 1370, - "y": 440 + "x": 2185, + "y": 615 } ] }, { - "name": "Hyrule Field -> HF Southeast Grotto", - "short_name": "HF Southeast Grotto", + "name": "Sacred Forest Meadow -> Forest Temple Lobby", + "short_name": "Forest Temple", "sections": [ { - "name": "Grotto", + "name": "child", + "access_rules": [ + "nope" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "hookshot" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Dungeon", + "access_rules": [ + "$access|Sacred Forest Meadow|adult,hookshot" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_grottos", + "capture_item_layout": "tracker_capture_dungeons", "item_count": 1 } ], "map_locations": [ { "map": "entrances", - "x": 1430, - "y": 925 + "size": 50, + "x": 2140, + "y": 600 } ] - }, + } + ] + }, + { + "name": "LW Bridge From Forest", + "color": "#18a50e", + "children": [] + }, + { + "name": "LW Bridge", + "color": "#18a50e", + "children": [ { - "name": "Hyrule Field -> Market Entrance", - "short_name": "HF -> CTE", + "name": "LW Bridge -> Kokiri Forest", + "short_name": "Bridge -> KF", "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "Overworld", + "access_rules": [ + "$access|LW Bridge" + ], "capture_item": true, "capture_item_layout": "tracker_capture_overworld", "item_count": 1 @@ -659,17 +1137,34 @@ "map_locations": [ { "map": "connectors", - "x": 1430, - "y": 460 + "x": 2000, + "y": 885 } ] }, { - "name": "Hyrule Field -> Gerudo Valley", - "short_name": "HF -> GV", + "name": "LW Bridge -> Hyrule Field", + "short_name": "Bridge -> HF", "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "Overworld", + "access_rules": [ + "$access|LW Bridge" + ], "capture_item": true, "capture_item_layout": "tracker_capture_overworld", "item_count": 1 @@ -678,17 +1173,40 @@ "map_locations": [ { "map": "connectors", - "x": 895, - "y": 670 + "x": 1950, + "y": 885 } ] - }, + } + ] + }, + { + "name": "Hyrule Field", + "color": "#09a09d", + "children": [ { - "name": "Hyrule Field -> Kakariko Village", - "short_name": "HF -> Kak", + "name": "Hyrule Field -> LW Bridge", + "short_name": "HF -> Bridge", "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "Overworld", + "access_rules": [ + "$access|Hyrule Field" + ], "capture_item": true, "capture_item_layout": "tracker_capture_overworld", "item_count": 1 @@ -697,8 +1215,8 @@ "map_locations": [ { "map": "connectors", - "x": 1645, - "y": 420 + "x": 1860, + "y": 725 } ] }, @@ -706,8 +1224,25 @@ "name": "Hyrule Field -> Lake Hylia", "short_name": "HF -> LH", "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "Overworld", + "access_rules": [ + "$access|Hyrule Field" + ], "capture_item": true, "capture_item_layout": "tracker_capture_overworld", "item_count": 1 @@ -722,11 +1257,28 @@ ] }, { - "name": "Hyrule Field -> Lon Lon Ranch", - "short_name": "HF -> LLR", + "name": "Hyrule Field -> Gerudo Valley", + "short_name": "HF -> GV", "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "Overworld", + "access_rules": [ + "$access|Hyrule Field" + ], "capture_item": true, "capture_item_layout": "tracker_capture_overworld", "item_count": 1 @@ -735,17 +1287,34 @@ "map_locations": [ { "map": "connectors", - "x": 1335, - "y": 545 + "x": 895, + "y": 670 } ] }, { - "name": "Hyrule Field -> LW Bridge", - "short_name": "HF -> Bridge", + "name": "Hyrule Field -> Market Entrance", + "short_name": "HF -> Mkt", "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "Overworld", + "access_rules": [ + "$access|Hyrule Field" + ], "capture_item": true, "capture_item_layout": "tracker_capture_overworld", "item_count": 1 @@ -754,18 +1323,35 @@ "map_locations": [ { "map": "connectors", - "x": 1860, - "y": 725 + "x": 1430, + "y": 460 } ] }, { - "name": "Hyrule Field -> ZR Front", - "short_name": "HF -> ZR", + "name": "Hyrule Field -> Kakariko Village", + "short_name": "HF -> Kak", "sections": [ { - "name": "Overworld", - "capture_item": true, + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Overworld", + "access_rules": [ + "$access|Hyrule Field" + ], + "capture_item": true, "capture_item_layout": "tracker_capture_overworld", "item_count": 1 } @@ -773,124 +1359,195 @@ "map_locations": [ { "map": "connectors", - "x": 1840, - "y": 520 + "x": 1645, + "y": 420 } ] - } - ] - }, - { - "name": "Lon Lon Ranch", - "color": "#09a09d", - "children": [ + }, { - "name": "Lon Lon Ranch -> LLR Grotto", - "short_name": "LLR Grotto", + "name": "Hyrule Field -> ZR Front", + "short_name": "HF -> ZR", "sections": [ { - "name": "Grotto", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Overworld", + "access_rules": [ + "$access|Hyrule Field" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_grottos", + "capture_item_layout": "tracker_capture_overworld", "item_count": 1 } ], "map_locations": [ { - "map": "entrances", - "x": 1375, - "y": 690 + "map": "connectors", + "x": 1840, + "y": 520 } ] }, { - "name": "Lon Lon Ranch -> LLR Stables", - "short_name": "LLR Stables", + "name": "Hyrule Field -> Lon Lon Ranch", + "short_name": "HF -> LLR", "sections": [ { - "name": "House", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Overworld", + "access_rules": [ + "$access|Hyrule Field" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_houses", + "capture_item_layout": "tracker_capture_overworld", "item_count": 1 } ], "map_locations": [ { - "map": "entrances", - "x": 1305, - "y": 590 + "map": "connectors", + "x": 1335, + "y": 545 } ] }, { - "name": "Lon Lon Ranch -> LLR Tower", - "short_name": "LLR Tower", + "name": "Hyrule Field -> HF Southeast Grotto", + "short_name": "HF Southeast Grotto", "sections": [ { - "name": "House", + "name": "child", + "access_rules": [ + "$has_explosives" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "$can_blast" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Grotto", + "access_rules": [ + "$access|Hyrule Field,$has_explosives", + "$access|Hyrule Field|adult,hammer" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_houses", + "capture_item_layout": "tracker_capture_grottos", "item_count": 1 } ], "map_locations": [ { "map": "entrances", - "x": 1225, - "y": 690 + "x": 1430, + "y": 925 } ] }, { - "name": "Lon Lon Ranch -> LLR Talons House", - "short_name": "LLR Talons House", + "name": "Hyrule Field -> HF Open Grotto", + "short_name": "HF Open Grotto", "sections": [ { - "name": "House", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Grotto", + "access_rules": [ + "$access|Hyrule Field" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_houses", + "capture_item_layout": "tracker_capture_grottos", "item_count": 1 } ], "map_locations": [ { "map": "entrances", - "x": 1345, - "y": 580 + "x": 1205, + "y": 995 } ] }, { - "name": "Lon Lon Ranch -> Hyrule Field", - "short_name": "LLR -> HF", + "name": "Hyrule Field -> HF Inside Fence Grotto", + "short_name": "HF Inside Fence Grotto", + "access_rules": [ + "$hidden_grotto" + ], "sections": [ { - "name": "Overworld", - "capture_item": true, - "capture_item_layout": "tracker_capture_overworld", + "name": "child", + "access_rules": [ + "$has_explosives" + ], + "visibility_rules": [ + "hidden_region" + ], "item_count": 1 - } - ], - "map_locations": [ + }, { - "map": "connectors", - "x": 1335, - "y": 585 - } - ] - } - ] - }, - { - "name": "Kakariko Village", - "color": "#6909a0", - "children": [ - { - "name": "Kakariko Village -> Kak Redead Grotto", - "short_name": "Kak Redead Grotto", - "sections": [ + "name": "adult", + "access_rules": [ + "$can_blast" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "Grotto", + "access_rules": [ + "$access|Hyrule Field,$has_explosives", + "$access|Hyrule Field|adult,hammer" + ], "capture_item": true, "capture_item_layout": "tracker_capture_grottos", "item_count": 1 @@ -899,17 +1556,49 @@ "map_locations": [ { "map": "entrances", - "x": 1780, - "y": 380 + "x": 1140, + "y": 1000 } ] }, { - "name": "Kak Backyard -> Kak Open Grotto", - "short_name": "Kak Open Grotto", + "name": "Hyrule Field -> HF Cow Grotto", + "short_name": "HF Cow Grotto", + "access_rules": [ + "$hidden_grotto" + ], "sections": [ + { + "name": "child", + "access_rules": [ + "$has_explosives" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "hammer" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "Grotto", + "access_rules": [ + "$access|Hyrule Field|child,$has_explosives", + "$access|Hyrule Field|adult,hammer" + ], + "visibility_rules": [ + "setting_entrance_grottos_shuffle", + "setting_cowsanity_yes", + "setting_tokens_overworld" + ], "capture_item": true, "capture_item_layout": "tracker_capture_grottos", "item_count": 1 @@ -918,169 +1607,342 @@ "map_locations": [ { "map": "entrances", - "x": 1870, - "y": 325 + "x": 970, + "y": 660 } ] }, { - "name": "Kakariko Village -> Kak Carpenter Boss House", - "short_name": "Kak Carpenter Boss House", + "name": "Hyrule Field -> HF Near Market Grotto", + "short_name": "HF Near Market Grotto", "sections": [ { - "name": "House", + "name": "child", + "access_rules": [ + "$has_explosives" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "$can_blast" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Grotto", + "access_rules": [ + "$access|Hyrule Field,$has_explosives", + "$access|Hyrule Field|adult,hammer" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_houses", + "capture_item_layout": "tracker_capture_grottos", "item_count": 1 } ], "map_locations": [ { "map": "entrances", - "x": 1820, - "y": 360 + "x": 1370, + "y": 440 } ] }, { - "name": "Kakariko Village -> Kak House of Skulltula", - "short_name": "Kak House of Skulltula", + "name": "Hyrule Field -> HF Fairy Grotto", + "short_name": "HF Fairy Grotto", "sections": [ { - "name": "House", + "name": "child", + "access_rules": [ + "$has_explosives" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "$can_blast" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Grotto", + "access_rules": [ + "$access|Hyrule Field,$has_explosives", + "$access|Hyrule Field|adult,hammer" + ], + "visibility_rules": [ + "setting_entrance_grottos_shuffle" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_houses", + "capture_item_layout": "tracker_capture_grottos", "item_count": 1 } ], "map_locations": [ { "map": "entrances", - "x": 1765, - "y": 420 + "x": 1200, + "y": 395 } ] }, { - "name": "Kakariko Village -> Kak Impas House", - "short_name": "Kak Impas House", + "name": "Hyrule Field -> HF Near Kak Grotto", + "short_name": "HF Near Kak Grotto", + "access_rules": [ + "$hidden_grotto" + ], "sections": [ { - "name": "House", + "name": "child", + "access_rules": [ + "$has_explosives" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "$can_blast" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Grotto", + "access_rules": [ + "$access|Hyrule Field,$has_explosives", + "$access|Hyrule Field|adult,hammer" + ], + "visibility_rules": [ + "setting_entrance_grottos_shuffle", + "setting_tokens_overworld" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_houses", + "capture_item_layout": "tracker_capture_grottos", "item_count": 1 } ], "map_locations": [ { "map": "entrances", - "x": 1805, - "y": 430 + "x": 1550, + "y": 405 } ] }, { - "name": "Kak Impas Ledge -> Kak Impas House Back", - "short_name": "Kak Impas House Back", + "name": "Hyrule Field -> HF Tektite Grotto", + "short_name": "HF Tektite Grotto", + "access_rules": [ + "$hidden_grotto" + ], "sections": [ { - "name": "House", - "capture_item": true, - "capture_item_layout": "tracker_capture_houses", + "name": "child", + "access_rules": [ + "$has_explosives" + ], + "visibility_rules": [ + "hidden_region" + ], "item_count": 1 - } - ], - "map_locations": [ + }, { - "map": "entrances", - "x": 1840, - "y": 430 - } - ] - }, - { - "name": "Kakariko Village -> Kak Bazaar", - "short_name": "Kak Bazaar", - "sections": [ + "name": "adult", + "access_rules": [ + "$can_blast" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { - "name": "House", + "name": "Grotto", + "access_rules": [ + "$access|Hyrule Field,$has_explosives", + "$access|Hyrule Field|adult,hammer" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_houses", + "capture_item_layout": "tracker_capture_grottos", "item_count": 1 } ], "map_locations": [ { "map": "entrances", - "x": 1770, - "y": 330 + "x": 1150, + "y": 480 } ] - }, + } + ] + }, + { + "name": "Lake Hylia", + "color": "#0936a0", + "children": [ { - "name": "Kakariko Village -> Kak Potion Shop Front", - "short_name": "Kak Potion Shop Front", + "name": "Lake Hylia -> Hyrule Field", + "short_name": "LH -> HF", "sections": [ { - "name": "House", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Overworld", + "access_rules": [ + "$access|Lake Hylia" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_houses", + "capture_item_layout": "tracker_capture_overworld", "item_count": 1 } ], "map_locations": [ { - "map": "entrances", - "x": 1805, - "y": 325 + "map": "connectors", + "x": 1045, + "y": 1110 } ] }, { - "name": "Kakariko Village -> Kak Shooting Gallery", - "short_name": "Kak Shooting Gallery", + "name": "Lake Hylia -> Zoras Domain", + "short_name": "LH -> ZD", "sections": [ { - "name": "House", + "name": "child", + "access_rules": [ + "scale" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "nope" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Overworld", + "access_rules": [ + "$access|Lake Hylia|child,scale" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_houses", + "capture_item_layout": "tracker_capture_overworld", "item_count": 1 } ], "map_locations": [ { - "map": "entrances", - "x": 1840, - "y": 395 + "map": "connectors", + "x": 1070, + "y": 1205 } ] }, { - "name": "Kakariko Village -> Kak Windmill", - "short_name": "Kak Windmill", + "name": "LH Owl Flight -> Hyrule Field", + "short_name": "LH Owl Flight", "sections": [ { - "name": "House", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "nope" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Overworld", + "access_rules": [ + "$access|Lake Hylia|child" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_houses", + "capture_item_layout": "tracker_capture_overworld", "item_count": 1 } ], "map_locations": [ { - "map": "entrances", - "x": 1905, - "y": 360 + "map": "connectors", + "x": 870, + "y": 1310 } ] }, { - "name": "Kak Backyard -> Kak Potion Shop Back", - "short_name": "Kak Potion Shop Back", + "name": "Lake Hylia -> LH Lab", + "short_name": "LH Lab", "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "House", + "access_rules": [ + "$access|Lake Hylia" + ], "capture_item": true, "capture_item_layout": "tracker_capture_houses", "item_count": 1 @@ -1089,17 +1951,44 @@ "map_locations": [ { "map": "entrances", - "x": 1835, - "y": 325 + "x": 960, + "y": 1200 } ] }, { - "name": "Kak Backyard -> Kak Odd Medicine Building", - "short_name": "Kak Odd Medicine Building", + "name": "Lake Hylia -> LH Fishing Hole", + "short_name": "LH Fishing Hole", "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "ocarina,scarecrow,hookshot", + "water", + "setting_plant_no,beans", + "bean_lake_yes" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "House", + "access_rules": [ + "$access|Lake Hylia|child", + "$access|Lake Hylia|adult,ocarina,scarecrow,hookshot", + "$access|Lake Hylia|adult,water", + "$access|Lake Hylia|both,setting_plant_no,beans", + "$access|Lake Hylia|both,bean_lake_yes" + ], "capture_item": true, "capture_item_layout": "tracker_capture_houses", "item_count": 1 @@ -1108,17 +1997,44 @@ "map_locations": [ { "map": "entrances", - "x": 1860, - "y": 360 + "x": 1270, + "y": 1215 } ] }, { - "name": "Kakariko Village -> Bottom of the Well", - "short_name": "Bottom of the Well", + "name": "Lake Hylia -> Water Temple Lobby", + "short_name": "Water Temple", "sections": [ + { + "name": "child", + "access_rules": [ + "nope" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "hookshot,ironboots", + "longshot,scale2", + "hookshot,[logic_water_hookshot_entry],scale2" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "Dungeon", + "access_rules": [ + "$access|Lake Hylia|adult,hookshot,ironboots", + "$access|Lake Hylia|adult,longshot,scale2", + "$access|Lake Hylia|adult,hookshot,[logic_water_hookshot_entry],scale2" + ], "capture_item": true, "capture_item_layout": "tracker_capture_dungeons", "item_count": 1 @@ -1128,36 +2044,80 @@ { "map": "entrances", "size": 50, - "x": 1885, - "y": 405 + "x": 1015, + "y": 1380 } ] }, { - "name": "Kakariko Village -> Graveyard", - "short_name": "Kak -> GY", + "name": "Lake Hylia -> LH Grotto", + "short_name": "LH Grotto", "sections": [ { - "name": "Overworld", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Grotto", + "access_rules": [ + "$access|Lake Hylia" + ], + "visibility_rules": [ + "setting_entrance_grottos_shuffle", + "setting_scrub_shuffle_yes" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_overworld", + "capture_item_layout": "tracker_capture_grottos", "item_count": 1 } ], "map_locations": [ { - "map": "connectors", - "x": 1930, - "y": 415 + "map": "entrances", + "x": 870, + "y": 1310 } ] - }, + } + ] + }, + { + "name": "Gerudo Valley", + "color": "#a09509", + "children": [ { - "name": "Kakariko Village -> Hyrule Field", - "short_name": "Kak -> HF", + "name": "Gerudo Valley -> Hyrule Field", + "short_name": "GV -> HF", "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "Overworld", + "access_rules": [ + "$access|Gerudo Valley" + ], "capture_item": true, "capture_item_layout": "tracker_capture_overworld", "item_count": 1 @@ -1166,80 +2126,183 @@ "map_locations": [ { "map": "connectors", - "x": 1695, - "y": 385 + "x": 800, + "y": 565 } ] }, { - "name": "Kak Behind Gate -> Death Mountain", - "short_name": "Kak -> DMT", + "name": "Gerudo Valley -> GV Octorok Grotto", + "short_name": "GV Octorok Grotto", "sections": [ { - "name": "Overworld", + "name": "child", + "access_rules": [ + "nope" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "lift2" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Grotto", + "access_rules": [ + "$access|Gerudo Valley|adult,lift2" + ], + "visibility_rules": [ + "setting_entrance_grottos_shuffle" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_overworld", + "capture_item_layout": "tracker_capture_grottos", "item_count": 1 } ], "map_locations": [ { - "map": "connectors", - "x": 1770, - "y": 300 + "map": "entrances", + "x": 680, + "y": 610 } ] } ] }, { - "name": "Graveyard", - "color": "#6909a0", + "name": "GV Stream", + "color": "#a09509", + "children": [] + }, + { + "name": "GV Crate Ledge", + "color": "#a09509", + "children": [] + }, + { + "name": "GV Fortress Side", + "color": "#a09509", "children": [ { - "name": "Graveyard -> Graveyard Composers Grave", - "short_name": "Composer Grave", + "name": "GV Fortress Side -> Gerudo Fortress", + "short_name": "GV -> GF", "sections": [ { - "name": "Grotto", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Overworld", + "access_rules": [ + "$access|GV Fortress Side" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_grottos", + "capture_item_layout": "tracker_capture_overworld", "item_count": 1 } ], "map_locations": [ { - "map": "entrances", - "x": 2100, - "y": 355 + "map": "connectors", + "x": 555, + "y": 565 } ] }, { - "name": "Graveyard -> Graveyard Dampes Grave", - "short_name": "Dampes Grave", + "name": "GV Fortress Side -> GV Carpenter Tent", + "short_name": "GV Carpenter Tent", "sections": [ { - "name": "Grotto", + "name": "child", + "access_rules": [ + "nope" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "House", + "access_rules": [ + "$access|GV Fortress Side|adult" + ], + "visibility_rules": [ + "setting_entrance_interiors_simple" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_grottos", + "capture_item_layout": "tracker_capture_houses", "item_count": 1 } ], "map_locations": [ { "map": "entrances", - "x": 2030, - "y": 340 + "x": 640, + "y": 545 } ] }, { - "name": "Graveyard -> Graveyard Heart Piece Grave", - "short_name": "Heart Piece Grave", + "name": "GV Fortress Side -> GV Storms Grotto", + "short_name": "GV Storms Grotto", + "access_rules": [ + "$hidden_grotto,ocarina,storm" + ], "sections": [ + { + "name": "child", + "access_rules": [ + "nope" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "Grotto", + "access_rules": [ + "$access|GV Fortress Side|adult" + ], + "visibility_rules": [ + "setting_entrance_grottos_shuffle", + "setting_scrub_shuffle_yes" + ], "capture_item": true, "capture_item_layout": "tracker_capture_grottos", "item_count": 1 @@ -1248,78 +2311,170 @@ "map_locations": [ { "map": "entrances", - "x": 2065, - "y": 360 + "x": 605, + "y": 530 } ] - }, + } + ] + }, + { + "name": "Gerudo Fortress", + "color": "#a09509", + "children": [ { - "name": "Graveyard -> Graveyard Shield Grave", - "short_name": "Shield Grave", + "name": "Gerudo Fortress -> GV Fortress Side", + "short_name": "GF -> GV", "sections": [ { - "name": "Grotto", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Overworld", + "access_rules": [ + "$access|Gerudo Fortress" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_grottos", + "capture_item_layout": "tracker_capture_overworld", "item_count": 1 } ], "map_locations": [ { - "map": "entrances", - "x": 2030, - "y": 370 + "map": "connectors", + "x": 490, + "y": 490 } ] }, { - "name": "Graveyard -> Graveyard Dampes House", - "short_name": "Dampes House", + "name": "Gerudo Fortress -> Gerudo Training Grounds Lobby", + "short_name": "Gerudo Training Grounds", "sections": [ { - "name": "House", + "name": "child", + "access_rules": [ + "nope" + ], "visibility_rules": [ - "setting_entrance_interiors_simple" + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "card" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Dungeon", + "access_rules": [ + "$access|Gerudo Fortress|adult,card" ], "capture_item": true, - "capture_item_layout": "tracker_capture_houses", + "capture_item_layout": "tracker_capture_dungeons", "item_count": 1 } ], "map_locations": [ { "map": "entrances", - "x": 2020, - "y": 400 + "size": 50, + "x": 485, + "y": 435 } ] }, { - "name": "Graveyard Warp Pad Region -> Shadow Temple Entryway", - "short_name": "Shadow Temple", + "name": "Gerudo Fortress -> GF Storms Grotto", + "short_name": "GF Storms Grotto", + "access_rules": [ + "$hidden_grotto,ocarina,storm" + ], "sections": [ { - "name": "Dungeon", + "name": "child", + "access_rules": [ + "nope" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Grotto", + "access_rules": [ + "$access|Gerudo Fortress|adult" + ], + "visibility_rules": [ + "setting_entrance_grottos_shuffle" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_dungeons", + "capture_item_layout": "tracker_capture_grottos", "item_count": 1 } ], "map_locations": [ { "map": "entrances", - "size": 50, - "x": 2145, - "y": 325 + "x": 525, + "y": 395 } ] - }, + } + ] + }, + { + "name": "GF Outside Gate", + "color": "#a09509", + "children": [ { - "name": "Graveyard -> Kakariko Village", - "short_name": "GY -> Kak", + "name": "GF Outside Gate -> Wasteland Near Fortress", + "short_name": "GF -> WL", "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "Overworld", + "access_rules": [ + "$access|GF Outside Gate" + ], "capture_item": true, "capture_item_layout": "tracker_capture_overworld", "item_count": 1 @@ -1328,61 +2483,132 @@ "map_locations": [ { "map": "connectors", - "x": 1980, - "y": 370 + "x": 460, + "y": 320 } ] } ] }, { - "name": "Market", - "color": "#09a09d", + "name": "Wasteland Near Fortress", + "color": "#a09509", "children": [ { - "name": "Market -> Market Bazaar", - "short_name": "Market Bazaar", + "name": "Wasteland Near Fortress -> GF Outside Gate", + "short_name": "WL -> GF", "sections": [ { - "name": "House", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Overworld", + "access_rules": [ + "$access|Wasteland Near Fortress" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_houses", + "capture_item_layout": "tracker_capture_overworld", "item_count": 1 } ], "map_locations": [ { - "map": "entrances", - "x": 1495, - "y": 355 + "map": "connectors", + "x": 425, + "y": 320 } ] - }, + } + ] + }, + { + "name": "Haunted Wasteland", + "color": "#a09509", + "children": [] + }, + { + "name": "Wasteland Near Colossus", + "color": "#a09509", + "children": [ { - "name": "Market -> Market Bombchu Bowling", - "short_name": "Market Bombchu Bowling", + "name": "Wasteland Near Colossus -> Desert Colossus", + "short_name": "WL -> Col", "sections": [ { - "name": "House", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Overworld", + "access_rules": [ + "$access|Wasteland Near Colossus" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_houses", + "capture_item_layout": "tracker_capture_overworld", "item_count": 1 } ], "map_locations": [ { - "map": "entrances", - "x": 1415, - "y": 325 + "map": "connectors", + "x": 335, + "y": 350 } ] - }, + } + ] + }, + { + "name": "Desert Colossus", + "color": "#a09509", + "children": [ { - "name": "Market -> Market Bombchu Shop", - "short_name": "Market Bombchu Shop", + "name": "Desert Colossus -> Colossus Great Fairy Fountain", + "short_name": "Colossus Great Fairy Fountain", + "access_rules": [ + "$has_explosives" + ], "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "House", + "access_rules": [ + "$access|Desert Colossus" + ], "capture_item": true, "capture_item_layout": "tracker_capture_houses", "item_count": 1 @@ -1391,106 +2617,205 @@ "map_locations": [ { "map": "entrances", - "x": 1380, - "y": 365 + "x": 275, + "y": 300 } ] }, { - "name": "Market -> Market Man in Green House", - "short_name": "Market Man in Green House", + "name": "Desert Colossus -> Spirit Temple Lobby", + "short_name": "Spirit Temple", "sections": [ { - "name": "House", + "name": "child", "visibility_rules": [ - "setting_entrance_interiors_simple" + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Dungeon", + "access_rules": [ + "$access|Desert Colossus" ], "capture_item": true, - "capture_item_layout": "tracker_capture_houses", + "capture_item_layout": "tracker_capture_dungeons", "item_count": 1 } ], "map_locations": [ { "map": "entrances", - "x": 1380, - "y": 290 + "size": 50, + "x": 95, + "y": 315 } ] }, { - "name": "Market -> Market Mask Shop", - "short_name": "Market Mask Shop", + "name": "Desert Colossus -> Wasteland Near Colossus", + "short_name": "Col -> WL", "sections": [ { - "name": "House", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Overworld", + "access_rules": [ + "$access|Desert Colossus" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_houses", + "capture_item_layout": "tracker_capture_overworld", "item_count": 1 } ], "map_locations": [ { - "map": "entrances", - "x": 1465, - "y": 290 + "map": "connectors", + "x": 300, + "y": 350 } ] }, { - "name": "Market -> Market Potion Shop", - "short_name": "Market Potion Shop", + "name": "Desert Colossus -> Colossus Grotto", + "short_name": "Colossus Grotto", "sections": [ { - "name": "House", + "name": "child", + "access_rules": [ + "nope" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "lift2" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Grotto", + "access_rules": [ + "$access|Desert Colossus|adult,lift2" + ], + "visibility_rules": [ + "setting_entrance_grottos_shuffle", + "setting_scrub_shuffle_yes" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_houses", + "capture_item_layout": "tracker_capture_grottos", "item_count": 1 } ], "map_locations": [ { "map": "entrances", - "x": 1495, - "y": 325 + "x": 195, + "y": 300 } ] - }, + } + ] + }, + { + "name": "Market Entrance", + "color": "#09a09d", + "children": [ { - "name": "Market -> Market Shooting Gallery", - "short_name": "Market Shooting Gallery", + "name": "Market Entrance -> Hyrule Field", + "short_name": "CTE -> HF", "sections": [ { - "name": "House", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Overworld", + "access_rules": [ + "$access|Market Entrance" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_houses", + "capture_item_layout": "tracker_capture_overworld", "item_count": 1 } ], "map_locations": [ { - "map": "entrances", - "x": 1425, - "y": 290 + "map": "connectors", + "x": 1435, + "y": 425 } ] }, { - "name": "Market -> Market Treasure Chest Game", - "short_name": "Market Treasure Chest Game", + "name": "Market Entrance -> Market", + "short_name": "CTE -> CT", "sections": [ { - "name": "House", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Overworld", + "access_rules": [ + "$access|Market Entrance" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_houses", + "capture_item_layout": "tracker_capture_overworld", "item_count": 1 } ], "map_locations": [ { - "map": "entrances", - "x": 1415, - "y": 365 + "map": "connectors", + "x": 1435, + "y": 390 } ] }, @@ -1499,26 +2824,24 @@ "short_name": "Market Guard House", "sections": [ { - "name": "House", - "capture_item": true, - "capture_item_layout": "tracker_capture_houses", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], "item_count": 1 - } - ], - "map_locations": [ + }, { - "map": "entrances", - "x": 1465, - "y": 405 - } - ] - }, - { - "name": "ToT Entrance -> Temple of Time", - "short_name": "Temple of Time", - "sections": [ + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "House", + "access_rules": [ + "$access|Market Entrance" + ], "capture_item": true, "capture_item_layout": "tracker_capture_houses", "item_count": 1 @@ -1527,36 +2850,40 @@ "map_locations": [ { "map": "entrances", - "x": 1535, - "y": 275 + "x": 1465, + "y": 405 } ] - }, + } + ] + }, + { + "name": "Market", + "color": "#09a09d", + "children": [ { - "name": "Market -> Castle Grounds", - "short_name": "CT -> CG", + "name": "Market -> Market Entrance", + "short_name": "CT -> CTE", "sections": [ { - "name": "Overworld", - "capture_item": true, - "capture_item_layout": "tracker_capture_overworld", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], "item_count": 1 - } - ], - "map_locations": [ + }, { - "map": "connectors", - "x": 1440, - "y": 295 - } - ] - }, - { - "name": "Market -> Market Entrance", - "short_name": "CT -> CTE", - "sections": [ + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "Overworld", + "access_rules": [ + "$access|Market" + ], "capture_item": true, "capture_item_layout": "tracker_capture_overworld", "item_count": 1 @@ -1574,8 +2901,25 @@ "name": "Market -> ToT Entrance", "short_name": "CT -> ToT", "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "Overworld", + "access_rules": [ + "$access|Market" + ], "capture_item": true, "capture_item_layout": "tracker_capture_overworld", "item_count": 1 @@ -1590,11 +2934,28 @@ ] }, { - "name": "Market Entrance -> Market", - "short_name": "CTE -> CT", + "name": "Market -> Castle Grounds", + "short_name": "CT -> CG", "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "Overworld", + "access_rules": [ + "$access|Market" + ], "capture_item": true, "capture_item_layout": "tracker_capture_overworld", "item_count": 1 @@ -1603,80 +2964,119 @@ "map_locations": [ { "map": "connectors", - "x": 1435, - "y": 390 + "x": 1440, + "y": 295 } ] }, { - "name": "Market Entrance -> Hyrule Field", - "short_name": "CTE -> HF", + "name": "Market -> Market Bazaar", + "short_name": "Market Bazaar", "sections": [ { - "name": "Overworld", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "nope" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "House", + "access_rules": [ + "$access|Market|child" + ], + "visibility_rules": [ + "setting_entrance_interiors_simple", + "setting_shopsanity_yes" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_overworld", + "capture_item_layout": "tracker_capture_houses", "item_count": 1 } ], "map_locations": [ { - "map": "connectors", - "x": 1435, - "y": 425 + "map": "entrances", + "x": 1495, + "y": 355 } ] }, { - "name": "ToT Entrance -> Market", - "short_name": "ToT -> CT", + "name": "Market -> Market Mask Shop", + "short_name": "Market Mask Shop", "sections": [ { - "name": "Overworld", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "nope" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "House", + "access_rules": [ + "$access|Market|child" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_overworld", - "item_count": 1 - } - ], - "map_locations": [ - { - "map": "connectors", - "x": 1525, - "y": 310 - } - ] - } - ] - }, - { - "name": "Castle Grounds", - "color": "#09a09d", - "children": [ - { - "name": "Hyrule Castle Grounds -> HC Storms Grotto", - "short_name": "HC Storms Grotto", - "sections": [ - { - "name": "Grotto", - "capture_item": true, - "capture_item_layout": "tracker_capture_grottos", + "capture_item_layout": "tracker_capture_houses", "item_count": 1 } ], "map_locations": [ { "map": "entrances", - "x": 1480, - "y": 205 + "x": 1465, + "y": 290 } ] }, { - "name": "Ganons Castle Grounds -> OGC Great Fairy Fountain", - "short_name": "OGC Great Fairy Fountain", + "name": "Market -> Market Shooting Gallery", + "short_name": "Market Shooting Gallery", "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "nope" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "House", + "access_rules": [ + "$access|Market|child" + ], "capture_item": true, "capture_item_layout": "tracker_capture_houses", "item_count": 1 @@ -1685,17 +3085,37 @@ "map_locations": [ { "map": "entrances", - "x": 1530, - "y": 205 + "x": 1425, + "y": 290 } ] }, { - "name": "Hyrule Castle Grounds -> HC Great Fairy Fountain", - "short_name": "HC Great Fairy Fountain", + "name": "Market -> Market Bombchu Bowling", + "short_name": "Market Bombchu Bowling", "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "nope" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "House", + "access_rules": [ + "$access|Market|child" + ], "capture_item": true, "capture_item_layout": "tracker_capture_houses", "item_count": 1 @@ -1704,80 +3124,123 @@ "map_locations": [ { "map": "entrances", - "x": 1490, - "y": 240 + "x": 1415, + "y": 325 } ] }, { - "name": "Castle Grounds -> Market", - "short_name": "CG -> CT", + "name": "Market -> Market Potion Shop", + "short_name": "Market Potion Shop", "sections": [ { - "name": "Overworld", - "capture_item": true, - "capture_item_layout": "tracker_capture_overworld", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], "item_count": 1 - } - ], - "map_locations": [ + }, { - "map": "connectors", - "x": 1440, - "y": 260 - } - ] - } - ] - }, - { - "name": "Death Mountain Trail", - "color": "#a01009", - "children": [ - { - "name": "Death Mountain Summit -> DMT Cow Grotto", - "short_name": "DMT Cow Grotto", - "sections": [ + "name": "adult", + "access_rules": [ + "nope" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { - "name": "Grotto", + "name": "House", + "access_rules": [ + "$access|Market|child" + ], + "visibility_rules": [ + "setting_entrance_interiors_simple", + "setting_shopsanity_yes" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_grottos", + "capture_item_layout": "tracker_capture_houses", "item_count": 1 } ], "map_locations": [ { "map": "entrances", - "x": 1750, - "y": 170 + "x": 1495, + "y": 325 } ] }, { - "name": "Death Mountain -> DMT Storms Grotto", - "short_name": "DMT Storms Grotto", + "name": "Market -> Market Treasure Chest Game", + "short_name": "Market Treasure Chest Game", "sections": [ { - "name": "Grotto", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "nope" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "House", + "access_rules": [ + "$access|Market|child" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_grottos", + "capture_item_layout": "tracker_capture_houses", "item_count": 1 } ], "map_locations": [ { "map": "entrances", - "x": 1705, - "y": 160 + "x": 1415, + "y": 365 } ] }, { - "name": "Death Mountain Summit -> DMT Great Fairy Fountain", - "short_name": "DMT Great Fairy Fountain", + "name": "Market -> Market Bombchu Shop", + "short_name": "Market Bombchu Shop", "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "nope" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "House", + "access_rules": [ + "$access|Market|child" + ], + "visibility_rules": [ + "setting_entrance_interiors_simple", + "setting_shopsanity_yes" + ], "capture_item": true, "capture_item_layout": "tracker_capture_houses", "item_count": 1 @@ -1786,37 +3249,82 @@ "map_locations": [ { "map": "entrances", - "x": 1765, - "y": 90 + "x": 1380, + "y": 365 } ] }, { - "name": "Dodongos Cavern Entryway -> Dodongos Cavern Beginning", - "short_name": "Dodongos Cavern", + "name": "Market -> Market Man in Green House", + "short_name": "Market Man in Green House", "sections": [ { - "name": "Dungeon", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "nope" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "House", + "access_rules": [ + "$access|Market|child" + ], + "visibility_rules": [ + "setting_entrance_interiors_simple" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_dungeons", + "capture_item_layout": "tracker_capture_houses", "item_count": 1 } ], "map_locations": [ { "map": "entrances", - "size": 50, - "x": 1685, - "y": 220 + "x": 1380, + "y": 290 } ] - }, + } + ] + }, + { + "name": "ToT Entrance", + "color": "#09a09d", + "children": [ { - "name": "Death Mountain -> Goron City", - "short_name": "DMT -> GC", + "name": "ToT Entrance -> Market", + "short_name": "ToT -> CT", "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "Overworld", + "access_rules": [ + "$access|ToT Entrance" + ], "capture_item": true, "capture_item_layout": "tracker_capture_overworld", "item_count": 1 @@ -1825,36 +3333,81 @@ "map_locations": [ { "map": "connectors", - "x": 1675, - "y": 165 + "x": 1525, + "y": 310 } ] }, { - "name": "Death Mountain -> Kak Behind Gate", - "short_name": "DMT -> Kak", + "name": "ToT Entrance -> Temple of Time", + "short_name": "Temple of Time", "sections": [ { - "name": "Overworld", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "House", + "access_rules": [ + "$access|ToT Entrance" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_overworld", + "capture_item_layout": "tracker_capture_houses", "item_count": 1 } ], "map_locations": [ { - "map": "connectors", - "x": 1720, - "y": 280 + "map": "entrances", + "x": 1535, + "y": 275 } ] - }, + } + ] + }, + { + "name": "Temple of Time", + "color": "#09a09d", + "children": [] + }, + { + "name": "Castle Grounds", + "color": "#09a09d", + "children": [ { - "name": "Death Mountain Summit -> DMC Upper Local", - "short_name": "DMT -> DMC", + "name": "Castle Grounds -> Market", + "short_name": "CG -> CT", "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "Overworld", + "access_rules": [ + "$access|Castle Grounds" + ], "capture_item": true, "capture_item_layout": "tracker_capture_overworld", "item_count": 1 @@ -1863,61 +3416,92 @@ "map_locations": [ { "map": "connectors", - "x": 1815, - "y": 90 + "x": 1440, + "y": 260 } ] - }, + } + ] + }, + { + "name": "Hyrule Castle Grounds", + "color": "#09a09d", + "children": [ { - "name": "DMT Owl Flight -> Kak Impas Ledge", - "short_name": "DMT Owl Flight", + "name": "Hyrule Castle Grounds -> HC Great Fairy Fountain", + "short_name": "HC Great Fairy Fountain", "sections": [ { - "name": "Overworld", - "capture_item": true, - "capture_item_layout": "tracker_capture_overworld", + "name": "child", + "access_rules": [ + "$has_explosives" + ], + "visibility_rules": [ + "hidden_region" + ], "item_count": 1 - } - ], - "map_locations": [ + }, { - "map": "connectors", - "x": 1780, - "y": 100 - } - ] - } - ] - }, - { - "name": "Death Mountain Crater", - "color": "#a01009", - "children": [ - { - "name": "DMC Upper Nearby -> DMC Upper Grotto", - "short_name": "DMC Upper Grotto", - "sections": [ + "name": "adult", + "access_rules": [ + "nope" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { - "name": "Grotto", + "name": "House", + "access_rules": [ + "$access|Hyrule Castle Grounds,$has_explosives" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_grottos", + "capture_item_layout": "tracker_capture_houses", "item_count": 1 } ], "map_locations": [ { "map": "entrances", - "x": 1765, - "y": 45 + "x": 1490, + "y": 240 } ] }, { - "name": "DMC Lower Nearby -> DMC Hammer Grotto", - "short_name": "DMC Hammer Grotto", + "name": "Hyrule Castle Grounds -> HC Storms Grotto", + "short_name": "HC Storms Grotto", + "access_rules": [ + "$hidden_grotto,ocarina,storm" + ], "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "nope" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "Grotto", + "access_rules": [ + "$access|Hyrule Castle Grounds" + ], + "visibility_rules": [ + "setting_entrance_grottos_shuffle", + "setting_tokens_overworld" + ], "capture_item": true, "capture_item_layout": "tracker_capture_grottos", "item_count": 1 @@ -1926,17 +3510,46 @@ "map_locations": [ { "map": "entrances", - "x": 1845, - "y": 30 + "x": 1480, + "y": 205 } ] - }, + } + ] + }, + { + "name": "Ganons Castle Grounds", + "color": "#09a09d", + "children": [ { - "name": "DMC Lower Nearby -> DMC Great Fairy Fountain", - "short_name": "DMC Great Fairy Fountain", + "name": "Ganons Castle Grounds -> OGC Great Fairy Fountain", + "short_name": "OGC Great Fairy Fountain", "sections": [ + { + "name": "child", + "access_rules": [ + "nope" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "lift3" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "House", + "access_rules": [ + "$access|Ganons Castle Grounds,lift3" + ], "capture_item": true, "capture_item_layout": "tracker_capture_houses", "item_count": 1 @@ -1945,37 +3558,40 @@ "map_locations": [ { "map": "entrances", - "x": 1805, - "y": 30 + "x": 1530, + "y": 205 } ] - }, + } + ] + }, + { + "name": "Kakariko Village", + "color": "#6909a0", + "children": [ { - "name": "Fire Temple Entrance -> Fire Temple Lower", - "short_name": "Fire Temple", + "name": "Kakariko Village -> Hyrule Field", + "short_name": "Kak -> HF", "sections": [ { - "name": "Dungeon", - "capture_item": true, - "capture_item_layout": "tracker_capture_dungeons", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], "item_count": 1 - } - ], - "map_locations": [ + }, { - "map": "entrances", - "size": 50, - "x": 1910, - "y": 80 - } - ] - }, - { - "name": "DMC Lower Nearby -> GC Darunias Chamber", - "short_name": "DMC -> GC", - "sections": [ + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "Overworld", + "access_rules": [ + "$access|Kakariko Village" + ], "capture_item": true, "capture_item_layout": "tracker_capture_overworld", "item_count": 1 @@ -1984,61 +3600,112 @@ "map_locations": [ { "map": "connectors", - "x": 1765, - "y": 45 + "x": 1695, + "y": 385 } ] }, { - "name": "DMC Upper Nearby -> Death Mountain Summit", - "short_name": "DMC -> DMT", + "name": "Kakariko Village -> Kak Carpenter Boss House", + "short_name": "Kak Carpenter Boss House", "sections": [ { - "name": "Overworld", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "House", + "access_rules": [ + "$access|Kakariko Village" + ], + "visibility_rules": [ + "setting_entrance_interiors_simple" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_overworld", + "capture_item_layout": "tracker_capture_houses", "item_count": 1 } ], "map_locations": [ { - "map": "connectors", - "x": 1815, - "y": 55 + "map": "entrances", + "x": 1820, + "y": 360 } ] - } - ] - }, - { - "name": "Goron City", - "color": "#a01009", - "children": [ + }, { - "name": "Goron City -> GC Grotto", - "short_name": "GC Grotto", + "name": "Kakariko Village -> Kak House of Skulltula", + "short_name": "Kak House of Skulltula", "sections": [ { - "name": "Grotto", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "House", + "access_rules": [ + "$access|Kakariko Village" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_grottos", + "capture_item_layout": "tracker_capture_houses", "item_count": 1 } ], "map_locations": [ { "map": "entrances", - "x": 1705, - "y": 90 + "x": 1765, + "y": 420 } ] }, { - "name": "Goron City -> GC Shop", - "short_name": "GC Shop", + "name": "Kakariko Village -> Kak Impas House", + "short_name": "Kak Impas House", "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "House", + "access_rules": [ + "$access|Kakariko Village" + ], + "visibility_rules": [ + "setting_entrance_interiors_simple" + ], "capture_item": true, "capture_item_layout": "tracker_capture_houses", "item_count": 1 @@ -2047,118 +3714,200 @@ "map_locations": [ { "map": "entrances", - "x": 1645, - "y": 120 + "x": 1805, + "y": 430 } ] }, { - "name": "GC Darunias Chamber -> DMC Lower Local", - "short_name": "GC -> DMC", + "name": "Kakariko Village -> Kak Windmill", + "short_name": "Kak Windmill", "sections": [ { - "name": "Overworld", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "House", + "access_rules": [ + "$access|Kakariko Village" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_overworld", + "capture_item_layout": "tracker_capture_houses", "item_count": 1 } ], "map_locations": [ { - "map": "connectors", - "x": 1640, - "y": 80 + "map": "entrances", + "x": 1905, + "y": 360 } ] }, { - "name": "Goron City -> Death Mountain", - "short_name": "GC -> DMT", + "name": "Kakariko Village -> Kak Bazaar", + "short_name": "Kak Bazaar", "sections": [ { - "name": "Overworld", + "name": "child", + "access_rules": [ + "nope" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "House", + "access_rules": [ + "$access|Kakariko Village|adult" + ], + "visibility_rules": [ + "setting_entrance_interiors_simple", + "setting_shopsanity_yes" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_overworld", + "capture_item_layout": "tracker_capture_houses", "item_count": 1 } ], "map_locations": [ { - "map": "connectors", - "x": 1675, - "y": 130 + "map": "entrances", + "x": 1770, + "y": 330 } ] }, { - "name": "GC Woods Warp -> Lost Woods", - "short_name": "GC -> LW", + "name": "Kakariko Village -> Kak Shooting Gallery", + "short_name": "Kak Shooting Gallery", "sections": [ { - "name": "Overworld", - "capture_item": true, - "capture_item_layout": "tracker_capture_overworld", - "item_count": 1 - } - ], - "map_locations": [ + "name": "child", + "access_rules": [ + "nope" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { - "map": "connectors", - "x": 1710, - "y": 115 - } - ] - } - ] - }, - { - "name": "Lake Hylia", - "color": "#0936a0", - "children": [ - { - "name": "Lake Hylia -> LH Grotto", - "short_name": "LH Grotto", - "sections": [ + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { - "name": "Grotto", + "name": "House", + "access_rules": [ + "$access|Kakariko Village|adult" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_grottos", + "capture_item_layout": "tracker_capture_houses", "item_count": 1 } ], "map_locations": [ { "map": "entrances", - "x": 870, - "y": 1310 + "x": 1840, + "y": 395 } ] }, { - "name": "Lake Hylia -> LH Fishing Hole", - "short_name": "LH Fishing Hole", + "name": "Kakariko Village -> Bottom of the Well", + "short_name": "Bottom of the Well", + "access_rules": [ + "$drain_well" + ], "sections": [ { - "name": "House", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "setting_entrance_dungeons_shuffle" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Dungeon", + "access_rules": [ + "$access|Kakariko Village|child", + "$access|Kakariko Village|adult,setting_entrance_dungeons_shuffle" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_houses", + "capture_item_layout": "tracker_capture_dungeons", "item_count": 1 } ], "map_locations": [ { "map": "entrances", - "x": 1270, - "y": 1215 + "size": 50, + "x": 1885, + "y": 405 } ] }, { - "name": "Lake Hylia -> LH Lab", - "short_name": "LH Lab", + "name": "Kakariko Village -> Kak Potion Shop Front", + "short_name": "Kak Potion Shop Front", "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "House", + "access_rules": [ + "$access|Kakariko Village" + ], + "visibility_rules": [ + "setting_entrance_interiors_all", + "setting_shopsanity_yes" + ], "capture_item": true, "capture_item_layout": "tracker_capture_houses", "item_count": 1 @@ -2167,56 +3916,80 @@ "map_locations": [ { "map": "entrances", - "x": 960, - "y": 1200 + "x": 1805, + "y": 325 } ] }, { - "name": "Lake Hylia -> Water Temple Lobby", - "short_name": "Water Temple", + "name": "Kakariko Village -> Kak Redead Grotto", + "short_name": "Kak Redead Grotto", + "access_rules": [ + "$hidden_grotto" + ], "sections": [ { - "name": "Dungeon", + "name": "child", + "access_rules": [ + "$has_explosives" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "$can_blast" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Grotto", + "access_rules": [ + "$access|Kakariko Village,$has_explosives", + "$access|Kakariko Village|adult,hammer" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_dungeons", + "capture_item_layout": "tracker_capture_grottos", "item_count": 1 } ], "map_locations": [ { "map": "entrances", - "size": 50, - "x": 1015, - "y": 1380 + "x": 1780, + "y": 380 } ] }, { - "name": "Lake Hylia -> Hyrule Field", - "short_name": "LH -> HF", + "name": "Kakariko Village -> Graveyard", + "short_name": "Kak -> GY", "sections": [ { - "name": "Overworld", - "capture_item": true, - "capture_item_layout": "tracker_capture_overworld", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], "item_count": 1 - } - ], - "map_locations": [ + }, { - "map": "connectors", - "x": 1045, - "y": 1110 - } - ] - }, - { - "name": "Lake Hylia -> Zoras Domain", - "short_name": "LH -> ZD", - "sections": [ + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "Overworld", + "access_rules": [ + "$access|Kakariko Village" + ], "capture_item": true, "capture_item_layout": "tracker_capture_overworld", "item_count": 1 @@ -2225,42 +3998,87 @@ "map_locations": [ { "map": "connectors", - "x": 1070, - "y": 1205 + "x": 1930, + "y": 415 } ] - }, + } + ] + }, + { + "name": "Kak Impas Ledge", + "color": "#6909a0", + "children": [ { - "name": "LH Owl Flight -> Hyrule Field", - "short_name": "LH Owl Flight", + "name": "Kak Impas Ledge -> Kak Impas House Back", + "short_name": "Kak Impas House Back", "sections": [ { - "name": "Overworld", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "House", + "access_rules": [ + "$access|Kak Impas Ledge" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_overworld", + "capture_item_layout": "tracker_capture_houses", "item_count": 1 } ], "map_locations": [ { - "map": "connectors", - "x": 870, - "y": 1310 + "map": "entrances", + "x": 1840, + "y": 430 } ] } ] }, { - "name": "Zora River", - "color": "#0936a0", + "name": "Kak Rooftop", + "color": "#6909a0", + "children": [] + }, + { + "name": "Kak Backyard", + "color": "#6909a0", "children": [ { - "name": "Zora River -> ZR Fairy Grotto", - "short_name": "ZR Fairy Grotto", + "name": "Kak Backyard -> Kak Open Grotto", + "short_name": "Kak Open Grotto", "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "Grotto", + "access_rules": [ + "$access|Kak Backyard" + ], "capture_item": true, "capture_item_layout": "tracker_capture_grottos", "item_count": 1 @@ -2269,74 +4087,928 @@ "map_locations": [ { "map": "entrances", - "x": 2105, - "y": 505 + "x": 1870, + "y": 325 } ] }, { - "name": "Zora River -> ZR Open Grotto", - "short_name": "ZR Open Grotto", + "name": "Kak Backyard -> Kak Odd Medicine Building", + "short_name": "Kak Odd Medicine Building", "sections": [ { - "name": "Grotto", + "name": "child", + "access_rules": [ + "nope" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "House", + "access_rules": [ + "$access|Kak Backyard|adult" + ], + "visibility_rules": [ + "setting_entrance_interiors_simple" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_grottos", + "capture_item_layout": "tracker_capture_houses", "item_count": 1 } ], "map_locations": [ { "map": "entrances", - "x": 2090, - "y": 540 + "x": 1860, + "y": 360 } ] }, { - "name": "Zora River -> ZR Storms Grotto", - "short_name": "ZR Storms Grotto", + "name": "Kak Backyard -> Kak Potion Shop Back", + "short_name": "Kak Potion Shop Back", "sections": [ { - "name": "Grotto", + "name": "child", + "access_rules": [ + "nope" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "House", + "access_rules": [ + "$access|Kak Backyard|adult" + ], + "visibility_rules": [ + "setting_entrance_interiors_all" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_grottos", + "capture_item_layout": "tracker_capture_houses", "item_count": 1 } ], "map_locations": [ { "map": "entrances", - "x": 1940, - "y": 520 + "x": 1835, + "y": 325 } ] - }, + } + ] + }, + { + "name": "Graveyard", + "color": "#6909a0", + "children": [ { - "name": "Zora River -> Lost Woods", - "short_name": "ZR -> LW", + "name": "Graveyard -> Graveyard Shield Grave", + "short_name": "Shield Grave", "sections": [ { - "name": "Overworld", - "capture_item": true, - "capture_item_layout": "tracker_capture_overworld", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], "item_count": 1 - } - ], - "map_locations": [ + }, { - "map": "connectors", - "x": 2395, - "y": 475 + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Grotto", + "access_rules": [ + "$access|Graveyard" + ], + "capture_item": true, + "capture_item_layout": "tracker_capture_grottos", + "item_count": 1 + } + ], + "map_locations": [ + { + "map": "entrances", + "x": 2030, + "y": 370 + } + ] + }, + { + "name": "Graveyard -> Graveyard Composers Grave", + "short_name": "Composer Grave", + "access_rules": [ + "ocarina,lullaby" + ], + "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Grotto", + "access_rules": [ + "$access|Graveyard" + ], + "capture_item": true, + "capture_item_layout": "tracker_capture_grottos", + "item_count": 1 + } + ], + "map_locations": [ + { + "map": "entrances", + "x": 2100, + "y": 355 + } + ] + }, + { + "name": "Graveyard -> Graveyard Heart Piece Grave", + "short_name": "Heart Piece Grave", + "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Grotto", + "access_rules": [ + "$access|Graveyard" + ], + "capture_item": true, + "capture_item_layout": "tracker_capture_grottos", + "item_count": 1 + } + ], + "map_locations": [ + { + "map": "entrances", + "x": 2065, + "y": 360 + } + ] + }, + { + "name": "Graveyard -> Graveyard Dampes Grave", + "short_name": "Dampes Grave", + "sections": [ + { + "name": "child", + "access_rules": [ + "nope" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Grotto", + "access_rules": [ + "$access|Graveyard|adult" + ], + "capture_item": true, + "capture_item_layout": "tracker_capture_grottos", + "item_count": 1 + } + ], + "map_locations": [ + { + "map": "entrances", + "x": 2030, + "y": 340 + } + ] + }, + { + "name": "Graveyard -> Graveyard Dampes House", + "short_name": "Dampes House", + "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "House", + "access_rules": [ + "$access|Graveyard" + ], + "visibility_rules": [ + "setting_entrance_interiors_simple" + ], + "capture_item": true, + "capture_item_layout": "tracker_capture_houses", + "item_count": 1 + } + ], + "map_locations": [ + { + "map": "entrances", + "x": 2020, + "y": 400 + } + ] + }, + { + "name": "Graveyard -> Kakariko Village", + "short_name": "GY -> Kak", + "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Overworld", + "access_rules": [ + "$access|Graveyard" + ], + "capture_item": true, + "capture_item_layout": "tracker_capture_overworld", + "item_count": 1 + } + ], + "map_locations": [ + { + "map": "connectors", + "x": 1980, + "y": 370 + } + ] + } + ] + }, + { + "name": "Graveyard Warp Pad Region", + "color": "#6909a0", + "children": [ + { + "name": "Graveyard Warp Pad Region -> Shadow Temple Entryway", + "short_name": "Shadow Temple", + "sections": [ + { + "name": "child", + "access_rules": [ + "dinsfire,magic" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "dinsfire,magic", + "logic_shadow_fire_arrow_entry,bow,firearrows,magic" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Dungeon", + "access_rules": [ + "$access|Graveyard Warp Pad Region,dinsfire,magic", + "$access|Graveyard Warp Pad Region|adult,logic_shadow_fire_arrow_entry,bow,firearrows,magic" + ], + "capture_item": true, + "capture_item_layout": "tracker_capture_dungeons", + "item_count": 1 + } + ], + "map_locations": [ + { + "map": "entrances", + "size": 50, + "x": 2145, + "y": 325 + } + ] + } + ] + }, + { + "name": "Kak Behind Gate", + "color": "#6909a0", + "children": [ + { + "name": "Kak Behind Gate -> Death Mountain", + "short_name": "Kak -> DMT", + "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Overworld", + "access_rules": [ + "$access|Kak Behind Gate" + ], + "capture_item": true, + "capture_item_layout": "tracker_capture_overworld", + "item_count": 1 + } + ], + "map_locations": [ + { + "map": "connectors", + "x": 1770, + "y": 300 + } + ] + } + ] + }, + { + "name": "Death Mountain", + "color": "#a01009", + "children": [ + { + "name": "Death Mountain -> Kak Behind Gate", + "short_name": "DMT -> Kak", + "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Overworld", + "access_rules": [ + "$access|Death Mountain" + ], + "capture_item": true, + "capture_item_layout": "tracker_capture_overworld", + "item_count": 1 + } + ], + "map_locations": [ + { + "map": "connectors", + "x": 1720, + "y": 280 + } + ] + }, + { + "name": "Death Mountain -> Goron City", + "short_name": "DMT -> GC", + "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Overworld", + "access_rules": [ + "$access|Death Mountain" + ], + "capture_item": true, + "capture_item_layout": "tracker_capture_overworld", + "item_count": 1 + } + ], + "map_locations": [ + { + "map": "connectors", + "x": 1675, + "y": 165 + } + ] + }, + { + "name": "Death Mountain -> DMT Storms Grotto", + "short_name": "DMT Storms Grotto", + "access_rules": [ + "$hidden_grotto,ocarina,storm" + ], + "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Grotto", + "access_rules": [ + "$access|Death Mountain" + ], + "capture_item": true, + "capture_item_layout": "tracker_capture_grottos", + "item_count": 1 + } + ], + "map_locations": [ + { + "map": "entrances", + "x": 1705, + "y": 160 + } + ] + } + ] + }, + { + "name": "Death Mountain Summit", + "color": "#a01009", + "children": [ + { + "name": "Death Mountain Summit -> DMC Upper Local", + "short_name": "DMT -> DMC", + "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Overworld", + "access_rules": [ + "$access|Death Mountain Summit" + ], + "capture_item": true, + "capture_item_layout": "tracker_capture_overworld", + "item_count": 1 + } + ], + "map_locations": [ + { + "map": "connectors", + "x": 1815, + "y": 90 + } + ] + }, + { + "name": "DMT Owl Flight -> Kak Impas Ledge", + "short_name": "DMT Owl Flight", + "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "nope" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Overworld", + "access_rules": [ + "$access|Death Mountain Summit|child" + ], + "capture_item": true, + "capture_item_layout": "tracker_capture_overworld", + "item_count": 1 + } + ], + "map_locations": [ + { + "map": "connectors", + "x": 1780, + "y": 100 + } + ] + }, + { + "name": "Death Mountain Summit -> DMT Cow Grotto", + "short_name": "DMT Cow Grotto", + "sections": [ + { + "name": "child", + "access_rules": [ + "$has_explosives" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "$can_blast" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Grotto", + "access_rules": [ + "$access|Death Mountain Summit,$has_explosives", + "$access|Death Mountain Summit|adult,hammer" + ], + "visibility_rules": [ + "setting_entrance_grottos_shuffle", + "setting_cowsanity_yes" + ], + "capture_item": true, + "capture_item_layout": "tracker_capture_grottos", + "item_count": 1 + } + ], + "map_locations": [ + { + "map": "entrances", + "x": 1750, + "y": 170 + } + ] + }, + { + "name": "Death Mountain Summit -> DMT Great Fairy Fountain", + "short_name": "DMT Great Fairy Fountain", + "sections": [ + { + "name": "child", + "access_rules": [ + "$has_explosives" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "$can_blast" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "House", + "access_rules": [ + "$access|Death Mountain Summit,$has_explosives", + "$access|Death Mountain Summit|adult,hammer" + ], + "capture_item": true, + "capture_item_layout": "tracker_capture_houses", + "item_count": 1 + } + ], + "map_locations": [ + { + "map": "entrances", + "x": 1765, + "y": 90 + } + ] + } + ] + }, + { + "name": "Dodongos Cavern Entryway", + "color": "#a01009", + "children": [ + { + "name": "Dodongos Cavern Entryway -> Dodongos Cavern Beginning", + "short_name": "Dodongos Cavern", + "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Dungeon", + "access_rules": [ + "$access|Dodongos Cavern Entryway" + ], + "capture_item": true, + "capture_item_layout": "tracker_capture_dungeons", + "item_count": 1 + } + ], + "map_locations": [ + { + "map": "entrances", + "size": 50, + "x": 1685, + "y": 220 + } + ] + } + ] + }, + { + "name": "Goron City", + "color": "#a01009", + "children": [ + { + "name": "Goron City -> Death Mountain", + "short_name": "GC -> DMT", + "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Overworld", + "access_rules": [ + "$access|Goron City" + ], + "capture_item": true, + "capture_item_layout": "tracker_capture_overworld", + "item_count": 1 + } + ], + "map_locations": [ + { + "map": "connectors", + "x": 1675, + "y": 130 + } + ] + }, + { + "name": "Goron City -> GC Shop", + "short_name": "GC Shop", + "sections": [ + { + "name": "child", + "access_rules": [ + "$has_explosives", + "lift", + "$gc_child_fire" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "$link_the_goron" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "House", + "access_rules": [ + "$access|Goron City|adult,$link_the_goron", + "$access|Goron City|child,$has_explosives", + "$access|Goron City|child,lift", + "$access|Goron City|child,$gc_child_fire" + ], + "visibility_rules": [ + "setting_entrance_interiors_simple", + "setting_shopsanity_yes" + ], + "capture_item": true, + "capture_item_layout": "tracker_capture_houses", + "item_count": 1 + } + ], + "map_locations": [ + { + "map": "entrances", + "x": 1645, + "y": 120 } ] }, { - "name": "ZR Behind Waterfall -> Zoras Domain", - "short_name": "ZR -> ZD", + "name": "Goron City -> GC Grotto", + "short_name": "GC Grotto", + "sections": [ + { + "name": "child", + "access_rules": [ + "nope" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "ocarina,time,$damage_below_quadruple", + "ocarina,time,redtunic", + "ocarina,time,longshot", + "ocarina,time,nayrus,magic", + "hookshot,$damage_below_ohko,redtunic", + "hookshot,nayrus,magic" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Grotto", + "access_rules": [ + "$access|Goron City|adult,ocarina,time,$damage_below_quadruple", + "$access|Goron City|adult,ocarina,time,redtunic", + "$access|Goron City|adult,ocarina,time,longshot", + "$access|Goron City|adult,ocarina,time,nayrus,magic", + "$access|Goron City|adult,hookshot,$damage_below_ohko,redtunic", + "$access|Goron City|adult,hookshot,nayrus,magic" + ], + "visibility_rules": [ + "setting_entrance_grottos_shuffle", + "setting_scrub_shuffle_yes" + ], + "capture_item": true, + "capture_item_layout": "tracker_capture_grottos", + "item_count": 1 + } + ], + "map_locations": [ + { + "map": "entrances", + "x": 1705, + "y": 90 + } + ] + } + ] + }, + { + "name": "GC Woods Warp", + "color": "#a01009", + "children": [ + { + "name": "GC Woods Warp -> Lost Woods", + "short_name": "GC -> LW", "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "Overworld", + "access_rules": [ + "$access|GC Woods Warp" + ], "capture_item": true, "capture_item_layout": "tracker_capture_overworld", "item_count": 1 @@ -2345,17 +5017,43 @@ "map_locations": [ { "map": "connectors", - "x": 2405, - "y": 430 + "x": 1710, + "y": 115 } ] - }, + } + ] + }, + { + "name": "GC Darunias Chamber", + "color": "#a01009", + "children": [ { - "name": "ZR Front -> Hyrule Field", - "short_name": "ZR -> HF", + "name": "GC Darunias Chamber -> DMC Lower Local", + "short_name": "GC -> DMC", "sections": [ + { + "name": "child", + "access_rules": [ + "nope" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "Overworld", + "access_rules": [ + "$access|GC Darunias Chamber|adult" + ], "capture_item": true, "capture_item_layout": "tracker_capture_overworld", "item_count": 1 @@ -2364,23 +5062,83 @@ "map_locations": [ { "map": "connectors", - "x": 1925, - "y": 560 + "x": 1640, + "y": 80 } ] } ] }, { - "name": "Zoras Domain", - "color": "#0936a0", + "name": "DMC Upper Nearby", + "color": "#a01009", "children": [ { - "name": "Zoras Domain -> ZD Storms Grotto", - "short_name": "ZD Storms Grotto", + "name": "DMC Upper Nearby -> Death Mountain Summit", + "short_name": "DMC -> DMT", + "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Overworld", + "access_rules": [ + "$access|DMC Upper Nearby" + ], + "capture_item": true, + "capture_item_layout": "tracker_capture_overworld", + "item_count": 1 + } + ], + "map_locations": [ + { + "map": "connectors", + "x": 1815, + "y": 55 + } + ] + }, + { + "name": "DMC Upper Nearby -> DMC Upper Grotto", + "short_name": "DMC Upper Grotto", "sections": [ + { + "name": "child", + "access_rules": [ + "$has_explosives" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "$can_blast" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "Grotto", + "access_rules": [ + "$access|DMC Upper Nearby,$has_explosives", + "$access|DMC Upper Nearby|adult,hammer" + ], "capture_item": true, "capture_item_layout": "tracker_capture_grottos", "item_count": 1 @@ -2389,17 +5147,92 @@ "map_locations": [ { "map": "entrances", - "x": 2535, - "y": 470 + "x": 1765, + "y": 45 + } + ] + } + ] + }, + { + "name": "DMC Upper Local", + "color": "#a01009", + "children": [] + }, + { + "name": "DMC Ladder Area Nearby", + "color": "#a01009", + "children": [] + }, + { + "name": "DMC Lower Nearby", + "color": "#a01009", + "children": [ + { + "name": "DMC Lower Nearby -> GC Darunias Chamber", + "short_name": "DMC -> GC", + "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Overworld", + "access_rules": [ + "$access|DMC Lower Nearby" + ], + "capture_item": true, + "capture_item_layout": "tracker_capture_overworld", + "item_count": 1 + } + ], + "map_locations": [ + { + "map": "connectors", + "x": 1765, + "y": 45 } ] }, { - "name": "Zoras Domain -> ZD Shop", - "short_name": "ZD Shop", + "name": "DMC Lower Nearby -> DMC Great Fairy Fountain", + "short_name": "DMC Great Fairy Fountain", "sections": [ + { + "name": "child", + "access_rules": [ + "nope" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "hammer" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "House", + "access_rules": [ + "$access|DMC Lower Nearby|adult,hammer" + ], "capture_item": true, "capture_item_layout": "tracker_capture_houses", "item_count": 1 @@ -2408,55 +5241,144 @@ "map_locations": [ { "map": "entrances", - "x": 2625, - "y": 500 + "x": 1805, + "y": 30 } ] }, { - "name": "Zoras Domain -> Lake Hylia", - "short_name": "ZD -> LH", + "name": "DMC Lower Nearby -> DMC Hammer Grotto", + "short_name": "DMC Hammer Grotto", "sections": [ { - "name": "Overworld", + "name": "child", + "access_rules": [ + "nope" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "hammer" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Grotto", + "access_rules": [ + "$access|DMC Lower Nearby|adult,hammer" + ], + "visibility_rules": [ + "setting_entrance_grottos_shuffle", + "setting_scrub_shuffle_yes" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_overworld", + "capture_item_layout": "tracker_capture_grottos", "item_count": 1 } ], "map_locations": [ { - "map": "connectors", - "x": 2570, - "y": 490 + "map": "entrances", + "x": 1845, + "y": 30 } ] - }, + } + ] + }, + { + "name": "DMC Lower Local", + "color": "#a01009", + "children": [] + }, + { + "name": "DMC Central Nearby", + "color": "#a01009", + "children": [] + }, + { + "name": "DMC Central Local", + "color": "#a01009", + "children": [] + }, + { + "name": "Fire Temple Entrance", + "color": "#a01009", + "children": [ { - "name": "Zoras Domain -> ZR Behind Waterfall", - "short_name": "ZD -> ZR", + "name": "Fire Temple Entrance -> Fire Temple Lower", + "short_name": "Fire Temple", "sections": [ { - "name": "Overworld", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Dungeon", + "access_rules": [ + "$access|Fire Temple Entrance" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_overworld", + "capture_item_layout": "tracker_capture_dungeons", "item_count": 1 } ], "map_locations": [ { - "map": "connectors", - "x": 2485, - "y": 450 + "map": "entrances", + "size": 50, + "x": 1910, + "y": 80 } ] - }, + } + ] + }, + { + "name": "ZR Front", + "color": "#0936a0", + "children": [ { - "name": "ZD Behind King Zora -> Zoras Fountain", - "short_name": "ZD -> ZF", + "name": "ZR Front -> Hyrule Field", + "short_name": "ZR -> HF", "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "Overworld", + "access_rules": [ + "$access|ZR Front" + ], "capture_item": true, "capture_item_layout": "tracker_capture_overworld", "item_count": 1 @@ -2465,82 +5387,215 @@ "map_locations": [ { "map": "connectors", - "x": 2600, - "y": 355 + "x": 1925, + "y": 560 } ] } ] }, { - "name": "Zoras Fountain", + "name": "Zora River", "color": "#0936a0", "children": [ { - "name": "Zoras Fountain -> ZF Great Fairy Fountain", - "short_name": "ZF Great Fairy Fountain", + "name": "Zora River -> ZR Open Grotto", + "short_name": "ZR Open Grotto", "sections": [ { - "name": "House", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Grotto", + "access_rules": [ + "$access|Zora River" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_houses", + "capture_item_layout": "tracker_capture_grottos", "item_count": 1 } ], "map_locations": [ { "map": "entrances", - "x": 2555, - "y": 335 + "x": 2090, + "y": 540 } ] }, { - "name": "Zoras Fountain -> Jabu Jabus Belly Beginning", - "short_name": "Jabu Jabu", + "name": "Zora River -> ZR Fairy Grotto", + "short_name": "ZR Fairy Grotto", "sections": [ { - "name": "Dungeon", + "name": "child", + "access_rules": [ + "$has_explosives" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "$can_blast" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Grotto", + "access_rules": [ + "$access|Zora River,$has_explosives", + "$access|Zora River|adult,hammer" + ], + "visibility_rules": [ + "setting_entrance_grottos_shuffle" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_dungeons", + "capture_item_layout": "tracker_capture_grottos", "item_count": 1 } ], "map_locations": [ { "map": "entrances", - "size": 50, - "x": 2490, - "y": 330 + "x": 2105, + "y": 505 } ] }, { - "name": "Zoras Fountain -> Ice Cavern Beginning", - "short_name": "Ice Cavern", + "name": "Zora River -> Lost Woods", + "short_name": "ZR -> LW", "sections": [ { - "name": "Dungeon", + "name": "child", + "access_rules": [ + "scale" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "scale", + "ironboots" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Overworld", + "access_rules": [ + "$access|Zora River,scale", + "$access|Zora River|adult,ironboots" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_dungeons", + "capture_item_layout": "tracker_capture_overworld", "item_count": 1 } ], "map_locations": [ { - "map": "entrances", - "size": 50, - "x": 2500, - "y": 275 + "map": "connectors", + "x": 2395, + "y": 475 } ] }, { - "name": "Zoras Fountain -> ZD Behind King Zora", - "short_name": "ZF -> ZD", + "name": "Zora River -> ZR Storms Grotto", + "short_name": "ZR Storms Grotto", + "access_rules": [ + "$hidden_grotto,ocarina,storm" + ], + "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Grotto", + "access_rules": [ + "$access|Zora River" + ], + "visibility_rules": [ + "setting_entrance_grottos_shuffle", + "setting_scrub_shuffle_yes" + ], + "capture_item": true, + "capture_item_layout": "tracker_capture_grottos", + "item_count": 1 + } + ], + "map_locations": [ + { + "map": "entrances", + "x": 1940, + "y": 520 + } + ] + } + ] + }, + { + "name": "ZR Behind Waterfall", + "color": "#0936a0", + "children": [ + { + "name": "ZR Behind Waterfall -> Zoras Domain", + "short_name": "ZR -> ZD", "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "Overworld", + "access_rules": [ + "$access|ZR Behind Waterfall" + ], "capture_item": true, "capture_item_layout": "tracker_capture_overworld", "item_count": 1 @@ -2549,66 +5604,124 @@ "map_locations": [ { "map": "connectors", - "x": 2535, - "y": 350 + "x": 2405, + "y": 430 } ] } ] }, { - "name": "Gerudo Valley", - "color": "#a09509", + "name": "Zoras Domain", + "color": "#0936a0", "children": [ { - "name": "Gerudo Valley -> GV Octorok Grotto", - "short_name": "GV Octorok Grotto", + "name": "Zoras Domain -> ZR Behind Waterfall", + "short_name": "ZD -> ZR", "sections": [ { - "name": "Grotto", + "name": "child", "visibility_rules": [ - "setting_entrance_grottos_shuffle" + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Overworld", + "access_rules": [ + "$access|Zoras Domain" ], "capture_item": true, - "capture_item_layout": "tracker_capture_grottos", + "capture_item_layout": "tracker_capture_overworld", "item_count": 1 } ], "map_locations": [ { - "map": "entrances", - "x": 680, - "y": 610 + "map": "connectors", + "x": 2485, + "y": 450 } ] }, { - "name": "GV Fortress Side -> GV Storms Grotto", - "short_name": "GV Storms Grotto", + "name": "Zoras Domain -> Lake Hylia", + "short_name": "ZD -> LH", "sections": [ { - "name": "Grotto", + "name": "child", + "access_rules": [ + "scale" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "nope" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Overworld", + "access_rules": [ + "$access|Zoras Domain|child,scale" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_grottos", + "capture_item_layout": "tracker_capture_overworld", "item_count": 1 } ], "map_locations": [ { - "map": "entrances", - "x": 605, - "y": 530 + "map": "connectors", + "x": 2570, + "y": 490 } ] }, { - "name": "GV Fortress Side -> GV Carpenter Tent", - "short_name": "GV Carpenter Tent", + "name": "Zoras Domain -> ZD Shop", + "short_name": "ZD Shop", "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "bottle" //TODO: blue fire + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "House", + "access_rules": [ + "$access|Zoras Domain|child" + ], "visibility_rules": [ - "setting_entrance_interiors_simple" + "setting_entrance_interiors_simple", + "setting_shopsanity_yes" ], "capture_item": true, "capture_item_layout": "tracker_capture_houses", @@ -2618,36 +5731,82 @@ "map_locations": [ { "map": "entrances", - "x": 640, - "y": 545 + "x": 2625, + "y": 500 } ] }, { - "name": "Gerudo Valley -> Hyrule Field", - "short_name": "GV -> HF", + "name": "Zoras Domain -> ZD Storms Grotto", + "short_name": "ZD Storms Grotto", + "access_rules": [ + "$hidden_grotto,ocarina,storm" + ], "sections": [ { - "name": "Overworld", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Grotto", + "access_rules": [ + "$access|Zoras Domain" + ], + "visibility_rules": [ + "setting_entrance_grottos_shuffle" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_overworld", + "capture_item_layout": "tracker_capture_grottos", "item_count": 1 } ], "map_locations": [ { - "map": "connectors", - "x": 800, - "y": 565 + "map": "entrances", + "x": 2535, + "y": 470 } ] - }, + } + ] + }, + { + "name": "ZD Behind King Zora", + "color": "#0936a0", + "children": [ { - "name": "GV Fortress Side -> Gerudo Fortress", - "short_name": "GV -> GF", + "name": "ZD Behind King Zora -> Zoras Fountain", + "short_name": "ZD -> ZF", "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "Overworld", + "access_rules": [ + "$access|ZD Behind King Zora" + ], "capture_item": true, "capture_item_layout": "tracker_capture_overworld", "item_count": 1 @@ -2656,42 +5815,82 @@ "map_locations": [ { "map": "connectors", - "x": 555, - "y": 565 + "x": 2600, + "y": 355 } ] } ] }, { - "name": "Gerudo Fortress", - "color": "#a09509", + "name": "Zoras Fountain", + "color": "#0936a0", "children": [ { - "name": "Gerudo Fortress -> GF Storms Grotto", - "short_name": "GF Storms Grotto", + "name": "Zoras Fountain -> ZD Behind King Zora", + "short_name": "ZF -> ZD", "sections": [ { - "name": "Grotto", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Overworld", + "access_rules": [ + "$access|Zoras Fountain" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_grottos", + "capture_item_layout": "tracker_capture_overworld", "item_count": 1 } ], "map_locations": [ { - "map": "entrances", - "x": 525, - "y": 395 + "map": "connectors", + "x": 2535, + "y": 350 } ] }, { - "name": "Gerudo Fortress -> Gerudo Training Grounds Lobby", - "short_name": "Gerudo Training Grounds", + "name": "Zoras Fountain -> Jabu Jabus Belly Beginning", + "short_name": "Jabu Jabu", "sections": [ + { + "name": "child", + "access_rules": [ + "bottle" //TODO: fix has_bottle + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "nope" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "Dungeon", + "access_rules": [ + "$access|Zoras Fountain|child,bottle" + ], "capture_item": true, "capture_item_layout": "tracker_capture_dungeons", "item_count": 1 @@ -2701,61 +5900,119 @@ { "map": "entrances", "size": 50, - "x": 485, - "y": 435 + "x": 2490, + "y": 330 } ] }, { - "name": "Gerudo Fortress -> GV Fortress Side", - "short_name": "GF -> GV", + "name": "Zoras Fountain -> Ice Cavern Beginning", + "short_name": "Ice Cavern", "sections": [ { - "name": "Overworld", + "name": "child", + "access_rules": [ + "nope" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Dungeon", + "access_rules": [ + "$access|Zoras Fountain|adult" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_overworld", + "capture_item_layout": "tracker_capture_dungeons", "item_count": 1 } ], "map_locations": [ { - "map": "connectors", - "x": 490, - "y": 490 + "map": "entrances", + "size": 50, + "x": 2500, + "y": 275 } ] }, { - "name": "GF Outside Gate -> Wasteland Near Fortress", - "short_name": "GF -> WL", + "name": "Zoras Fountain -> ZF Great Fairy Fountain", + "short_name": "ZF Great Fairy Fountain", + "access_rules": [ + "$has_explosives" + ], "sections": [ { - "name": "Overworld", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "House", + "access_rules": [ + "$access|Zoras Fountain" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_overworld", + "capture_item_layout": "tracker_capture_houses", "item_count": 1 } ], "map_locations": [ { - "map": "connectors", - "x": 460, - "y": 320 + "map": "entrances", + "x": 2555, + "y": 335 } ] } ] }, { - "name": "Haunted Wasteland", - "color": "#a09509", + "name": "Lon Lon Ranch", + "color": "#09a09d", "children": [ { - "name": "Wasteland Near Colossus -> Desert Colossus", - "short_name": "WL -> Col", + "name": "Lon Lon Ranch -> Hyrule Field", + "short_name": "LLR -> HF", "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "Overworld", + "access_rules": [ + "$access|Lon Lon Ranch" + ], "capture_item": true, "capture_item_layout": "tracker_capture_overworld", "item_count": 1 @@ -2764,61 +6021,78 @@ "map_locations": [ { "map": "connectors", - "x": 335, - "y": 350 + "x": 1335, + "y": 585 } ] }, { - "name": "Wasteland Near Fortress -> GF Outside Gate", - "short_name": "WL -> GF", + "name": "Lon Lon Ranch -> LLR Talons House", + "short_name": "LLR Talons House", "sections": [ { - "name": "Overworld", - "capture_item": true, - "capture_item_layout": "tracker_capture_overworld", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], "item_count": 1 - } - ], - "map_locations": [ + }, { - "map": "connectors", - "x": 425, - "y": 320 - } - ] - } - ] - }, - { - "name": "Desert Colossus", - "color": "#a09509", - "children": [ - { - "name": "Desert Colossus -> Colossus Grotto", - "short_name": "Colossus Grotto", - "sections": [ + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { - "name": "Grotto", + "name": "House", + "access_rules": [ + "$access|Lon Lon Ranch" + ], + "visibility_rules": [ + "setting_entrance_interiors_simple", + "postzelda" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_grottos", + "capture_item_layout": "tracker_capture_houses", "item_count": 1 } ], "map_locations": [ { "map": "entrances", - "x": 195, - "y": 300 + "x": 1345, + "y": 580 } ] }, { - "name": "Desert Colossus -> Colossus Great Fairy Fountain", - "short_name": "Colossus Great Fairy Fountain", + "name": "Lon Lon Ranch -> LLR Stables", + "short_name": "LLR Stables", "sections": [ + { + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, { "name": "House", + "access_rules": [ + "$access|Lon Lon Ranch" + ], + "visibility_rules": [ + "setting_entrance_interiors_simple", + "setting_cowsanity_yes" + ], "capture_item": true, "capture_item_layout": "tracker_capture_houses", "item_count": 1 @@ -2827,47 +6101,87 @@ "map_locations": [ { "map": "entrances", - "x": 275, - "y": 300 + "x": 1305, + "y": 590 } ] }, { - "name": "Desert Colossus -> Spirit Temple Lobby", - "short_name": "Spirit Temple", + "name": "Lon Lon Ranch -> LLR Tower", + "short_name": "LLR Tower", "sections": [ { - "name": "Dungeon", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "House", + "access_rules": [ + "$access|Lon Lon Ranch" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_dungeons", + "capture_item_layout": "tracker_capture_houses", "item_count": 1 } ], "map_locations": [ { "map": "entrances", - "size": 50, - "x": 95, - "y": 315 + "x": 1225, + "y": 690 } ] }, { - "name": "Desert Colossus -> Wasteland Near Colossus", - "short_name": "Col -> WL", + "name": "Lon Lon Ranch -> LLR Grotto", + "short_name": "LLR Grotto", "sections": [ { - "name": "Overworld", + "name": "child", + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "adult", + "access_rules": [ + "nope" + ], + "visibility_rules": [ + "hidden_region" + ], + "item_count": 1 + }, + { + "name": "Grotto", + "access_rules": [ + "$access|Lon Lon Ranch|child" + ], + "visibility_rules": [ + "setting_entrance_grottos_shuffle", + "setting_scrub_shuffle_yes" + ], "capture_item": true, - "capture_item_layout": "tracker_capture_overworld", + "capture_item_layout": "tracker_capture_grottos", "item_count": 1 } ], "map_locations": [ { - "map": "connectors", - "x": 300, - "y": 350 + "map": "entrances", + "x": 1375, + "y": 690 } ] } diff --git a/ootrando_overworldmap_hamsda/manifest.json b/ootrando_overworldmap_hamsda/manifest.json index 07590aa5..e9cc430f 100644 --- a/ootrando_overworldmap_hamsda/manifest.json +++ b/ootrando_overworldmap_hamsda/manifest.json @@ -1,7 +1,7 @@ { "name": "OoT Randomizer - Map and Item Tracker", "game_name": "Ocarina of Time Randomizer", - "package_version": "2.10.0.0", + "package_version": "3.0.0.0", "package_uid": "ootrando_overworldmap_hamsda", "author": "Hamsda", "variants": { diff --git a/ootrando_overworldmap_hamsda/maps/maps_entrance.json b/ootrando_overworldmap_hamsda/maps/maps_entrance.json index 92df2e1f..69e76ab6 100644 --- a/ootrando_overworldmap_hamsda/maps/maps_entrance.json +++ b/ootrando_overworldmap_hamsda/maps/maps_entrance.json @@ -9,6 +9,6 @@ "name": "connectors", "location_size": 35, "location_border_thickness": 5, - "img": "images/overworld_map.png" + "img": "images/overworld_entrance.png" } ] \ No newline at end of file diff --git a/ootrando_overworldmap_hamsda/scripts/init.lua b/ootrando_overworldmap_hamsda/scripts/init.lua index c1e071fb..ecbcd2f0 100644 --- a/ootrando_overworldmap_hamsda/scripts/init.lua +++ b/ootrando_overworldmap_hamsda/scripts/init.lua @@ -30,41 +30,6 @@ end -dungeons = { - "forest", - "fire", - "water", - "spirit", - "shadow", - "botw", - "gtg", - "gc" -} -key_counts = { - vanilla = { - forest = 5, - fire = 8, - water = 6, - spirit = 5, - shadow = 5, - botw = 3, - gtg = 9, - gc = 2, - }, - mq = { - forest = 6, - fire = 5, - water = 2, - spirit = 7, - shadow = 6, - botw = 2, - gtg = 3, - gc = 3, - } -} - - - variant = Tracker.ActiveVariantUID has_map = variant ~= "var_minimalist" and (not variant:find("itemsonly")) has_keys = variant:find("keysanity") @@ -80,11 +45,11 @@ if has_map then Tracker:AddItems("items/cap_overworld.json") Tracker:AddItems("items/options_entrance.json") else - Tracker:AddItems("items/tricks.json") Tracker:AddItems("items/sequences.json") Tracker:AddItems("items/cap_items.json") - Tracker:AddItems("items/options.json") end + Tracker:AddItems("items/tricks.json") + Tracker:AddItems("items/options.json") end Tracker:AddItems("items/counters.json") Tracker:AddItems("items/quest.json") @@ -92,7 +57,13 @@ Tracker:AddItems("items/equipment.json") Tracker:AddItems("items/items.json") Tracker:AddItems("items/dungeons.json") -ScriptHost:LoadScript("scripts/logic.lua") +ScriptHost:LoadScript("scripts/logic_shared.lua") +if is_er then + ScriptHost:LoadScript("scripts/regions.lua") + ScriptHost:LoadScript("scripts/logic_entrance.lua") +else + ScriptHost:LoadScript("scripts/logic.lua") +end if has_map then if is_er then @@ -108,6 +79,7 @@ if has_map then end end +ScriptHost:LoadScript("scripts/update_shared.lua") if is_er then ScriptHost:LoadScript("scripts/update_entrance.lua") else diff --git a/ootrando_overworldmap_hamsda/scripts/logic.lua b/ootrando_overworldmap_hamsda/scripts/logic.lua index 33257c4b..b0e0a88f 100644 --- a/ootrando_overworldmap_hamsda/scripts/logic.lua +++ b/ootrando_overworldmap_hamsda/scripts/logic.lua @@ -1,35 +1,3 @@ -function has(item, amount) - local count = Tracker:ProviderCountForCode(item) - amount = tonumber(amount) - if not amount then - return count > 0 - else - return count == amount - end -end - -function get_highest_accessibility(...) - local args = {...} - local count = 0 - local level = AccessibilityLevel.None - - for _,data in ipairs(args) do - if data[1] >= count then - count = data[1] - if level ~= AccessibilityLevel.Normal - and data[2] == AccessibilityLevel.Normal - then - level = AccessibilityLevel.Normal - elseif level ~= AccessibilityLevel.SequenceBreak - and data[2] == AccessibilityLevel.SequenceBreak - then - level = AccessibilityLevel.SequenceBreak - end - end - end - return count, level -end - function can_time_travel() if has("setting_door_open") or (has("ocarina") and has("time")) @@ -39,57 +7,6 @@ function can_time_travel() return 0, AccessibilityLevel.None end -function has_age(age) - if not age then - print("missing argument: age") - end - - local time_travel = can_time_travel() > 0 - - if age == "child" then - return (time_travel or has("setting_age_child")) and 1 or 0 - elseif age == "adult" then - return (time_travel or has("setting_age_adult")) and 1 or 0 - elseif age == "both" then - return time_travel and 1 or 0 - else - print("wrong argument: age") - end - - return 0, AccessibilityLevel.None -end - -function has_bombchus() - local bombs = Tracker:ProviderCountForCode("bombs") - local chus = Tracker:ProviderCountForCode("bombchu") - if has("setting_logic_chus_yes") then - if chus > 0 then - return chus, AccessibilityLevel.Normal - else - return 0, AccessibilityLevel.None - end - else - if bombs > 0 then - return bombs, AccessibilityLevel.Normal - elseif chus > 0 then - return chus, AccessibilityLevel.SequenceBreak - end - end - return 0, AccessibilityLevel.None -end - -function has_explosives() - local bombs = Tracker:ProviderCountForCode("bombs") - local chus_count, chus_level = has_bombchus() - if bombs > 0 then - return bombs, AccessibilityLevel.Normal - elseif chus_count > 0 then - return chus_count, chus_level - else - return 0, AccessibilityLevel.None - end -end - function can_blast() if has_age("adult") == 1 and has("hammer") then return 1, AccessibilityLevel.Normal @@ -153,53 +70,6 @@ function has_fire() end end -function night_gs() - if has("setting_skulltulas_sun_on") - and (has("ocarina", 0) or has("sun", 0)) - then - return 1, AccessibilityLevel.SequenceBreak - end - return 1, AccessibilityLevel.Normal -end - -function can_use_lens() - if has("lens") and has("magic") then - return 1, AccessibilityLevel.Normal - else - return 0, AccessibilityLevel.None - end -end - -function FTR_or_goron() - if has("logic_fewer_tunic_requirements") - or has("redtunic") - then - return 1, AccessibilityLevel.Normal - else - return 1, AccessibilityLevel.SequenceBreak - end -end - -function FTR_or_zora() - if has("logic_fewer_tunic_requirements") - or has("bluetunic") - then - return 1, AccessibilityLevel.Normal - else - return 1, AccessibilityLevel.SequenceBreak - end -end - -function hidden_grotto() - if has("logic_grottos_without_agony") - or has("agony") - then - return 1, AccessibilityLevel.Normal - else - return 1, AccessibilityLevel.SequenceBreak - end -end - function can_leave_forest() if has("setting_forest_open") or has("setting_forest_deku") @@ -379,16 +249,6 @@ function adult_colossus() return 1, level end -function mask_shop_open() - if (has("setting_kak_open") and has("postzelda")) - or (has("setting_kak_letter") and has("postzelda")) - or (has("setting_kak_closed") and has("postguard")) - then - return 1, AccessibilityLevel.Normal - end - return 0, AccessibilityLevel.None -end - function child_death_mountain() if has_age("child") == 0 then return 0, AccessibilityLevel.None @@ -442,6 +302,27 @@ function link_the_goron() return count, level end +function goron_tunic() + if has("redtunic") then + return 1, AccessibilityLevel.Normal + elseif has("wallet") then + return link_the_goron() + end + return 0, AccessibilityLevel.None +end + +function FTR_or_goron() + if has("logic_fewer_tunic_requirements") then + return 1, AccessibilityLevel.Normal + else + local goron_count, goron_level = goron_tunic() + if goron_count > 0 then + return goron_count, goron_level + end + end + return 1, AccessibilityLevel.SequenceBreak +end + function dmt_climb() if has_age("both") > 0 and has("beans") @@ -629,12 +510,6 @@ function child_fountain() local level = AccessibilityLevel.Normal - if has("king_zora_moved_yes", 0) - and has("setting_fountain_open", 0) - then - level = AccessibilityLevel.SequenceBreak - end - if has("scale1") then return 1, level end @@ -657,21 +532,31 @@ function child_fountain() return 1, level end -function adult_fountain() +function adult_domain() if has_age("adult") == 0 then return 0, AccessibilityLevel.None end - local level = AccessibilityLevel.Normal - - if has("ocarina", 0) - or has("lullaby", 0) - then - if has("hoverboots", 0) then - return 0, AccessibilityLevel.None - elseif has("logic_zora_with_hovers", 0) then - level = AccessibilityLevel.SequenceBreak + if has("ocarina") and has("lullaby") then + return 1, AccessibilityLevel.Normal + elseif has("hoverboots") then + if has("logic_zora_with_hovers") then + return 1, AccessibilityLevel.Normal end + return 1, AccessibilityLevel.SequenceBreak + end + + return 0, AccessibilityLevel.None +end + +function adult_fountain() + if has_age("adult") == 0 then + return 0, AccessibilityLevel.None + end + + local domain, level = adult_domain() + if domain == 0 then + return 0, AccessibilityLevel.None end if has("setting_fountain_open") @@ -749,91 +634,35 @@ function has_blue_fire() return 1, AccessibilityLevel.SequenceBreak end -function has_projectile(age) - local explo = has_explosives() > 0 - local sling = has("sling") - local rang = has("boomerang") - local bow = has("bow") - local hook = has("hookshot") - - local result = false - - if age == "child" then - if explo or sling or rang then - result = true - end - elseif age == "adult" then - if explo or bow or hook then - result = true - end - elseif age == "both" then - if explo or (bow or hook) and (sling or rang) then - result = true - end - else - if explo or (bow or hook) or (sling or rang) then - result = true - end - end - - if result then - return 1, AccessibilityLevel.Normal - else - return 0, AccessibilityLevel.None - end -end - -function damage_below_quadruple() - if has("setting_damage_ohko", 0) - and has("setting_damage_quadruple", 0) - then - return 1, AccessibilityLevel.Normal - else - return 0, AccessibilityLevel.None - end -end - -function damage_below_ohko() - if has("setting_damage_ohko", 0) - then - return 1, AccessibilityLevel.Normal - else - return 0, AccessibilityLevel.None - end -end - -function damage_single_instance_quadruple() - if damage_below_quadruple() > 0 - or has("nayrus") and has("magic") - then - return 1, AccessibilityLevel.Normal - else - return has_bottle() - end -end - -function damage_single_instance_ohko() - if damage_below_ohko() > 0 - or has("nayrus") and has("magic") - then +function zora_tunic() + if has("bluetunic") then return 1, AccessibilityLevel.Normal - else - return has_bottle() + elseif has("wallet2") then + local bottle_count, bottle_level = has_bottle() + local domain_count, domain_level = adult_domain() + if bottle_count > 0 and domain_count > 0 then + if bottle_level == AccessibilityLevel.SequenceBreak + or domain_level == AccessibilityLevel.SequenceBreak + then + return 1, AccessibilityLevel.SequenceBreak + else + return 1, AccessibilityLevel.Normal + end + end end + return 0, AccessibilityLevel.None end -function hintable() - if - has("setting_hints_on") - or - has("setting_hints_truth") and has("maskoftruth") - or - has("setting_hints_agony") and has("agony") - then +function FTR_or_zora() + if has("logic_fewer_tunic_requirements") then return 1, AccessibilityLevel.Normal else - return 0, AccessibilityLevel.None + local zora_count, zora_level = zora_tunic() + if zora_count > 0 then + return zora_count, zora_level + end end + return 1, AccessibilityLevel.SequenceBreak end function trials_barrier_dispelled() diff --git a/ootrando_overworldmap_hamsda/scripts/logic_entrance.lua b/ootrando_overworldmap_hamsda/scripts/logic_entrance.lua new file mode 100644 index 00000000..2a16389f --- /dev/null +++ b/ootrando_overworldmap_hamsda/scripts/logic_entrance.lua @@ -0,0 +1,243 @@ +function can_leave_forest() + if has("setting_forest_open") + or has("setting_forest_deku") + or has("setting_age_adult") + or has("setting_entrance_interiors_all") + or has("setting_entrance_overworld_shuffle") + or has("deku") + then + return 1, AccessibilityLevel.Normal + end + return 0, AccessibilityLevel.None +end + +function can_time_travel() + if has("setting_door_open") + or (has("ocarina") and has("time")) + then + local starting_age = has("setting_age_adult") and "adult" or "child" + local tot_count, tot_level = access("Temple of Time", starting_age) + if tot_count > 0 then + return 1, tot_level + end + end + return 0, AccessibilityLevel.None +end + +function can_blast() + if has("hammer") then + return 1, AccessibilityLevel.Normal + else + return has_explosives() + end +end + +function FTR_or_goron() + if has("logic_fewer_tunic_requirements") + or has("redtunic") + then + return 1, AccessibilityLevel.Normal + else + return 1, AccessibilityLevel.SequenceBreak + end +end + +function FTR_or_zora() + if has("logic_fewer_tunic_requirements") + or has("bluetunic") + then + return 1, AccessibilityLevel.Normal + else + return 1, AccessibilityLevel.SequenceBreak + end +end + +function link_the_goron() + local access_count, access_level = access("Goron City", "adult") + if access_count == 0 then + return 0, AccessibilityLevel.None + end + + if has("lift1") + or has("bow") + then + return 1, access_level + end + + local count = 0 + local level = AccessibilityLevel.None + + if has("dinsfire") and has("magic") then + if has("logic_link_goron_dins") then + return 1, access_level + else + count = 1 + level = AccessibilityLevel.SequenceBreak + end + end + + local explo_count, explo_level = has_explosives() + if explo_count > 0 then + if access_level == AccessibilityLevel.SequenceBreak + or explo_level == AccessibilityLevel.SequenceBreak + then + return 1, AccessibilityLevel.SequenceBreak + else + return 1, AccessibilityLevel.Normal + end + end + + return count, level +end + +function gc_child_fire() + local child_gc_count, child_gc_level = access("Goron City", "child") + local child_daru_count, child_daru_level = access("GC Darunias Chamber", "child") + + local level = AccessibilityLevel.None + + if has("dinsfire") and has("magic") then + if child_gc_count > 0 + and level ~= AccessibilityLevel.Normal then + level = child_gc_level + end + end + + if has("sticks") then + if child_daru_count > 0 + and level ~= AccessibilityLevel.Normal then + level = child_daru_level + end + end + + if level == AccessibilityLevel.None then + return 0, AccessibilityLevel.None + end + return 1, level +end + +function woods_warp_open() + local child_gc_count, child_gc_level = access("Goron City", "child") + local adult_gc_count, adult_gc_level = access("Goron City", "adult") + local child_warp_count, child_warp_level = access("GC Woods Warp", "child") + local adult_warp_count, adult_warp_level = access("GC Woods Warp", "adult") + local child_fire_count, child_fire_level = gc_child_fire() + local explo_count, explo_level = has_explosives() + + local level = AccessibilityLevel.None + + if has("hammer") then + if adult_gc_count > 0 + and level ~= AccessibilityLevel.Normal then + level = adult_gc_level + end + if adult_warp_count > 0 + and level ~= AccessibilityLevel.Normal then + level = adult_warp_level + end + end + + if explo_count > 0 then + if child_gc_count > 0 + and level ~= AccessibilityLevel.Normal then + level = (explo_level == AccessibilityLevel.Normal) and child_gc_level or AccessibilityLevel.SequenceBreak + end + if child_warp_count > 0 + and level ~= AccessibilityLevel.Normal then + level = (explo_level == AccessibilityLevel.Normal) and child_warp_level or AccessibilityLevel.SequenceBreak + end + if adult_gc_count > 0 + and level ~= AccessibilityLevel.Normal then + level = (explo_level == AccessibilityLevel.Normal) and adult_gc_level or AccessibilityLevel.SequenceBreak + end + if adult_warp_count > 0 + and level ~= AccessibilityLevel.Normal then + level = (explo_level == AccessibilityLevel.Normal) and adult_warp_level or AccessibilityLevel.SequenceBreak + end + end + + if has("dinsfire") and has("magic") then + if child_gc_count > 0 + and level ~= AccessibilityLevel.Normal then + level = child_gc_level + end + if child_warp_count > 0 + and level ~= AccessibilityLevel.Normal then + level = child_warp_level + end + if adult_gc_count > 0 + and level ~= AccessibilityLevel.Normal then + level = adult_gc_level + end + if adult_warp_count > 0 + and level ~= AccessibilityLevel.Normal then + level = adult_warp_level + end + end + + if has("bow") + and adult_gc_count > 0 + and level ~= AccessibilityLevel.Normal then + level = adult_gc_level + end + + if has("lift") then + if child_gc_count > 0 + and level ~= AccessibilityLevel.Normal then + level = child_gc_level + end + if adult_gc_count > 0 + and level ~= AccessibilityLevel.Normal then + level = adult_gc_level + end + end + + if child_fire_count > 0 + and level ~= AccessibilityLevel.Normal then + level = child_fire_level + end + + if level == AccessibilityLevel.None then + return 0, AccessibilityLevel.None + end + return 1, level +end + +function deliver_letter() + if has("ruto") then + local zd_count, zd_level = access("Zoras Domain", "child") + return zd_count, zd_level + end + return 0, AccessibilityLevel.None +end + +function has_bottle() + local bottles = Tracker:ProviderCountForCode("bottle") + local ruto = Tracker:ProviderCountForCode("ruto") + local bigpoe = Tracker:ProviderCountForCode("bigpoe") + local kz_count, kz_level = deliver_letter() + local level = AccessibilityLevel.Normal + + local usable_bottles = bottles - ruto - bigpoe + + if has_age("adult") >= 1 then + usable_bottles = usable_bottles + bigpoe + end + + if kz_count > 0 and ruto > 0 then + if usable_bottles == 0 then + level = kz_level + end + usable_bottles = usable_bottles + ruto + end + + return usable_bottles, level +end + +function drain_well() + if has("ocarina") and has("storm") then + local windmill_count, windmill_level = access("Kak Windmill", "child") + return windmill_count, windmill_level + end + return 0, AccessibilityLevel.None +end diff --git a/ootrando_overworldmap_hamsda/scripts/logic_shared.lua b/ootrando_overworldmap_hamsda/scripts/logic_shared.lua new file mode 100644 index 00000000..dc88a43e --- /dev/null +++ b/ootrando_overworldmap_hamsda/scripts/logic_shared.lua @@ -0,0 +1,245 @@ +function has(item, amount) + local count = Tracker:ProviderCountForCode(item) + amount = tonumber(amount) + if not amount then + return count > 0 + else + return count == amount + end +end + +function get_highest_accessibility(...) + local args = {...} + local count = 0 + local level = AccessibilityLevel.None + + for _,data in ipairs(args) do + if data[1] >= count then + count = data[1] + if level ~= AccessibilityLevel.Normal + and data[2] == AccessibilityLevel.Normal + then + level = AccessibilityLevel.Normal + elseif level ~= AccessibilityLevel.SequenceBreak + and data[2] == AccessibilityLevel.SequenceBreak + then + level = AccessibilityLevel.SequenceBreak + end + end + end + return count, level +end + +function has_age(age) + if not age then + print("missing argument: age") + end + + local travel_count, travel_level = can_time_travel() + + if age == "child" then + if has("setting_age_child") then + return 1, AccessibilityLevel.Normal + end + return travel_count, travel_level + elseif age == "adult" then + if has("setting_age_adult") then + return 1, AccessibilityLevel.Normal + end + return travel_count, travel_level + elseif age == "both" then + return travel_count, travel_level + else + print("wrong argument: age") + end + + return 0, AccessibilityLevel.None +end + +function has_bombchus() + local bombs = Tracker:ProviderCountForCode("bombs") + local chus = Tracker:ProviderCountForCode("bombchu") + if has("setting_logic_chus_yes") then + if chus > 0 then + return chus, AccessibilityLevel.Normal + else + return 0, AccessibilityLevel.None + end + else + if bombs > 0 then + return bombs, AccessibilityLevel.Normal + elseif chus > 0 then + return chus, AccessibilityLevel.SequenceBreak + end + end + return 0, AccessibilityLevel.None +end + +function has_explosives() + local bombs = Tracker:ProviderCountForCode("bombs") + local chus_count, chus_level = has_bombchus() + if bombs > 0 then + return bombs, AccessibilityLevel.Normal + elseif chus_count > 0 then + return chus_count, chus_level + else + return 0, AccessibilityLevel.None + end +end + +function night_gs() + if has("setting_skulltulas_sun_on") + and (has("ocarina", 0) or has("sun", 0)) + then + return 1, AccessibilityLevel.SequenceBreak + end + return 1, AccessibilityLevel.Normal +end + +function can_use_lens() + if has("lens") and has("magic") then + return 1, AccessibilityLevel.Normal + else + return 0, AccessibilityLevel.None + end +end + +function hidden_grotto() + if has("logic_grottos_without_agony") + or has("agony") + then + return 1, AccessibilityLevel.Normal + else + return 1, AccessibilityLevel.SequenceBreak + end +end + +function mask_shop_open() + if (has("setting_kak_open") and has("postzelda")) + or (has("setting_kak_letter") and has("postzelda")) + or (has("setting_kak_closed") and has("postguard")) + then + return 1, AccessibilityLevel.Normal + end + return 0, AccessibilityLevel.None +end + +function has_projectile(age) + local explo = has_explosives() > 0 + local sling = has("sling") + local rang = has("boomerang") + local bow = has("bow") + local hook = has("hookshot") + + local result = false + + if age == "child" then + if explo or sling or rang then + result = true + end + elseif age == "adult" then + if explo or bow or hook then + result = true + end + elseif age == "both" then + if explo or (bow or hook) and (sling or rang) then + result = true + end + else + if explo or (bow or hook) or (sling or rang) then + result = true + end + end + + if result then + return 1, AccessibilityLevel.Normal + else + return 0, AccessibilityLevel.None + end +end + +function hintable() + if + has("setting_hints_on") + or + has("setting_hints_truth") and has("maskoftruth") + or + has("setting_hints_agony") and has("agony") + then + return 1, AccessibilityLevel.Normal + else + return 0, AccessibilityLevel.None + end +end + +function damage_below_quadruple() + if has("setting_damage_ohko", 0) + and has("setting_damage_quadruple", 0) + then + return 1, AccessibilityLevel.Normal + else + return 0, AccessibilityLevel.None + end +end + +function damage_below_ohko() + if has("setting_damage_ohko", 0) + then + return 1, AccessibilityLevel.Normal + else + return 0, AccessibilityLevel.None + end +end + +function damage_single_instance_quadruple() + if damage_below_quadruple() > 0 + or has("nayrus") and has("magic") + then + return 1, AccessibilityLevel.Normal + else + return has_bottle() + end +end + +function damage_single_instance_ohko() + if damage_below_ohko() > 0 + or has("nayrus") and has("magic") + then + return 1, AccessibilityLevel.Normal + else + return has_bottle() + end +end + +function can_spawn_rainbow_bridge() + local setting_bridge_amount = get_object("setting_bridge_amount") and get_object("setting_bridge_amount").AcquiredCount or 0 + local stones = Tracker:ProviderCountForCode("stones") + local medallions = Tracker:ProviderCountForCode("medallions") + local tokens = Tracker:ProviderCountForCode("token") + + if has("setting_bridge_open") then + return 1, AccessibilityLevel.Normal + elseif has("setting_bridge_vanilla") then + if has("lightarrow") and Tracker:ProviderCountForCode("lacs_meds") >= 2 then + return 1, AccessibilityLevel.Normal + end + elseif has("setting_bridge_stones") then + if stones >= setting_bridge_amount then + return 1, AccessibilityLevel.Normal + end + elseif has("setting_bridge_medallions") then + if medallions >= setting_bridge_amount then + return 1, AccessibilityLevel.Normal + end + elseif has("setting_bridge_dungeons") then + if (stones + medallions) >= setting_bridge_amount then + return 1, AccessibilityLevel.Normal + end + elseif has("setting_bridge_gs") then + if tokens >= setting_bridge_amount then + return 1, AccessibilityLevel.Normal + end + end + + return 0, AccessibilityLevel.None +end diff --git a/ootrando_overworldmap_hamsda/scripts/regions.lua b/ootrando_overworldmap_hamsda/scripts/regions.lua new file mode 100644 index 00000000..6eebd156 --- /dev/null +++ b/ootrando_overworldmap_hamsda/scripts/regions.lua @@ -0,0 +1,1944 @@ +debugging = false +info_per_section = { + ["@Kokiri Forest -> KF Storms Grotto/Grotto"] = { + ["vanilla_capture"] = "entrance_grotto_generic", + ["setting"] = "setting_entrance_grottos_shuffle", + ["child_section"] = "@Kokiri Forest -> KF Storms Grotto/child", + ["adult_section"] = "@Kokiri Forest -> KF Storms Grotto/adult", + }, + ["@Lost Woods -> LW Near Shortcuts Grotto/Grotto"] = { + ["vanilla_capture"] = "entrance_grotto_generic", + ["setting"] = "setting_entrance_grottos_shuffle", + ["child_section"] = "@Lost Woods -> LW Near Shortcuts Grotto/child", + ["adult_section"] = "@Lost Woods -> LW Near Shortcuts Grotto/adult", + }, + ["@LW Beyond Mido -> Deku Theater/Grotto"] = { + ["vanilla_capture"] = "entrance_grotto_theater", + ["setting"] = "setting_entrance_grottos_shuffle", + ["child_section"] = "@LW Beyond Mido -> Deku Theater/child", + ["adult_section"] = "@LW Beyond Mido -> Deku Theater/adult", + }, + ["@LW Beyond Mido -> LW Scrubs Grotto/Grotto"] = { + ["vanilla_capture"] = "entrance_grotto_scrub", + ["setting"] = "setting_entrance_grottos_shuffle", + ["child_section"] = "@LW Beyond Mido -> LW Scrubs Grotto/child", + ["adult_section"] = "@LW Beyond Mido -> LW Scrubs Grotto/adult", + }, + ["@Sacred Forest Meadow -> SFM Fairy Grotto/Grotto"] = { + ["vanilla_capture"] = "entrance_grotto_fairy", + ["setting"] = "setting_entrance_grottos_shuffle", + ["child_section"] = "@Sacred Forest Meadow -> SFM Fairy Grotto/child", + ["adult_section"] = "@Sacred Forest Meadow -> SFM Fairy Grotto/adult", + }, + ["@Sacred Forest Meadow -> SFM Storms Grotto/Grotto"] = { + ["vanilla_capture"] = "entrance_grotto_scrub", + ["setting"] = "setting_entrance_grottos_shuffle", + ["child_section"] = "@Sacred Forest Meadow -> SFM Storms Grotto/child", + ["adult_section"] = "@Sacred Forest Meadow -> SFM Storms Grotto/adult", + }, + ["@SFM Entryway -> SFM Wolfos Grotto/Grotto"] = { + ["vanilla_capture"] = "entrance_grotto_enemy", + ["setting"] = "setting_entrance_grottos_shuffle", + ["child_section"] = "@SFM Entryway -> SFM Wolfos Grotto/child", + ["adult_section"] = "@SFM Entryway -> SFM Wolfos Grotto/adult", + }, + ["@Hyrule Field -> HF Fairy Grotto/Grotto"] = { + ["vanilla_capture"] = "entrance_grotto_fairy", + ["setting"] = "setting_entrance_grottos_shuffle", + ["child_section"] = "@Hyrule Field -> HF Fairy Grotto/child", + ["adult_section"] = "@Hyrule Field -> HF Fairy Grotto/adult", + }, + ["@Hyrule Field -> HF Near Kak Grotto/Grotto"] = { + ["vanilla_capture"] = "entrance_grotto_field_kak", + ["setting"] = "setting_entrance_grottos_shuffle", + ["child_section"] = "@Hyrule Field -> HF Near Kak Grotto/child", + ["adult_section"] = "@Hyrule Field -> HF Near Kak Grotto/adult", + }, + ["@Hyrule Field -> HF Inside Fence Grotto/Grotto"] = { + ["vanilla_capture"] = "entrance_grotto_scrub", + ["setting"] = "setting_entrance_grottos_shuffle", + ["child_section"] = "@Hyrule Field -> HF Inside Fence Grotto/child", + ["adult_section"] = "@Hyrule Field -> HF Inside Fence Grotto/adult", + }, + ["@Hyrule Field -> HF Open Grotto/Grotto"] = { + ["vanilla_capture"] = "entrance_grotto_generic", + ["setting"] = "setting_entrance_grottos_shuffle", + ["child_section"] = "@Hyrule Field -> HF Open Grotto/child", + ["adult_section"] = "@Hyrule Field -> HF Open Grotto/adult", + }, + ["@Hyrule Field -> HF Tektite Grotto/Grotto"] = { + ["vanilla_capture"] = "entrance_grotto_tektite", + ["setting"] = "setting_entrance_grottos_shuffle", + ["child_section"] = "@Hyrule Field -> HF Tektite Grotto/child", + ["adult_section"] = "@Hyrule Field -> HF Tektite Grotto/adult", + }, + ["@Hyrule Field -> HF Cow Grotto/Grotto"] = { + ["vanilla_capture"] = "entrance_grotto_field_valley", + ["setting"] = "setting_entrance_grottos_shuffle", + ["child_section"] = "@Hyrule Field -> HF Cow Grotto/child", + ["adult_section"] = "@Hyrule Field -> HF Cow Grotto/adult", + }, + ["@Hyrule Field -> HF Near Market Grotto/Grotto"] = { + ["vanilla_capture"] = "entrance_grotto_generic", + ["setting"] = "setting_entrance_grottos_shuffle", + ["child_section"] = "@Hyrule Field -> HF Near Market Grotto/child", + ["adult_section"] = "@Hyrule Field -> HF Near Market Grotto/adult", + }, + ["@Hyrule Field -> HF Southeast Grotto/Grotto"] = { + ["vanilla_capture"] = "entrance_grotto_generic", + ["setting"] = "setting_entrance_grottos_shuffle", + ["child_section"] = "@Hyrule Field -> HF Southeast Grotto/child", + ["adult_section"] = "@Hyrule Field -> HF Southeast Grotto/adult", + }, + ["@Lon Lon Ranch -> LLR Grotto/Grotto"] = { + ["vanilla_capture"] = "entrance_grotto_scrub", + ["setting"] = "setting_entrance_grottos_shuffle", + ["child_section"] = "@Lon Lon Ranch -> LLR Grotto/child", + ["adult_section"] = "@Lon Lon Ranch -> LLR Grotto/adult", + }, + ["@Kakariko Village -> Kak Redead Grotto/Grotto"] = { + ["vanilla_capture"] = "entrance_grotto_enemy", + ["setting"] = "setting_entrance_grottos_shuffle", + ["child_section"] = "@Kakariko Village -> Kak Redead Grotto/child", + ["adult_section"] = "@Kakariko Village -> Kak Redead Grotto/adult", + }, + ["@Kak Backyard -> Kak Open Grotto/Grotto"] = { + ["vanilla_capture"] = "entrance_grotto_generic", + ["setting"] = "setting_entrance_grottos_shuffle", + ["child_section"] = "@Kak Backyard -> Kak Open Grotto/child", + ["adult_section"] = "@Kak Backyard -> Kak Open Grotto/adult", + }, + ["@Graveyard -> Graveyard Composers Grave/Grotto"] = { + ["vanilla_capture"] = "entrance_grotto_comp", + ["setting"] = "setting_entrance_grottos_shuffle", + ["child_section"] = "@Graveyard -> Graveyard Composers Grave/child", + ["adult_section"] = "@Graveyard -> Graveyard Composers Grave/adult", + }, + ["@Graveyard -> Graveyard Dampes Grave/Grotto"] = { + ["vanilla_capture"] = "entrance_grotto_dampe", + ["setting"] = "setting_entrance_grottos_shuffle", + ["child_section"] = "@Graveyard -> Graveyard Dampes Grave/child", + ["adult_section"] = "@Graveyard -> Graveyard Dampes Grave/adult", + }, + ["@Graveyard -> Graveyard Heart Piece Grave/Grotto"] = { + ["vanilla_capture"] = "entrance_grotto_hp", + ["setting"] = "setting_entrance_grottos_shuffle", + ["child_section"] = "@Graveyard -> Graveyard Heart Piece Grave/child", + ["adult_section"] = "@Graveyard -> Graveyard Heart Piece Grave/adult", + }, + ["@Graveyard -> Graveyard Shield Grave/Grotto"] = { + ["vanilla_capture"] = "", --TODO: new captures? + ["setting"] = "setting_entrance_grottos_shuffle", + ["child_section"] = "@Graveyard -> Graveyard Shield Grave/child", + ["adult_section"] = "@Graveyard -> Graveyard Shield Grave/adult", + }, + ["@Hyrule Castle Grounds -> HC Storms Grotto/Grotto"] = { + ["vanilla_capture"] = "entrance_grotto_castle_storms", + ["setting"] = "setting_entrance_grottos_shuffle", + ["child_section"] = "@Hyrule Castle Grounds -> HC Storms Grotto/child", + ["adult_section"] = "@Hyrule Castle Grounds -> HC Storms Grotto/adult", + }, + ["@Death Mountain Summit -> DMT Cow Grotto/Grotto"] = { + ["vanilla_capture"] = "entrance_grotto_cow", + ["setting"] = "setting_entrance_grottos_shuffle", + ["child_section"] = "@Death Mountain Summit -> DMT Cow Grotto/child", + ["adult_section"] = "@Death Mountain Summit -> DMT Cow Grotto/adult", + }, + ["@Death Mountain -> DMT Storms Grotto/Grotto"] = { + ["vanilla_capture"] = "entrance_grotto_generic", + ["setting"] = "setting_entrance_grottos_shuffle", + ["child_section"] = "@Death Mountain -> DMT Storms Grotto/child", + ["adult_section"] = "@Death Mountain -> DMT Storms Grotto/adult", + }, + ["@DMC Upper Nearby -> DMC Upper Grotto/Grotto"] = { + ["vanilla_capture"] = "entrance_grotto_generic", + ["setting"] = "setting_entrance_grottos_shuffle", + ["child_section"] = "@DMC Upper Nearby -> DMC Upper Grotto/child", + ["adult_section"] = "@DMC Upper Nearby -> DMC Upper Grotto/adult", + }, + ["@DMC Lower Nearby -> DMC Hammer Grotto/Grotto"] = { + ["vanilla_capture"] = "entrance_grotto_scrub", + ["setting"] = "setting_entrance_grottos_shuffle", + ["child_section"] = "@DMC Lower Nearby -> DMC Hammer Grotto/child", + ["adult_section"] = "@DMC Lower Nearby -> DMC Hammer Grotto/adult", + }, + ["@Goron City -> GC Grotto/Grotto"] = { + ["vanilla_capture"] = "entrance_grotto_scrub", + ["setting"] = "setting_entrance_grottos_shuffle", + ["child_section"] = "@Goron City -> GC Grotto/child", + ["adult_section"] = "@Goron City -> GC Grotto/adult", + }, + ["@Lake Hylia -> LH Grotto/Grotto"] = { + ["vanilla_capture"] = "entrance_grotto_scrub", + ["setting"] = "setting_entrance_grottos_shuffle", + ["child_section"] = "@Lake Hylia -> LH Grotto/child", + ["adult_section"] = "@Lake Hylia -> LH Grotto/adult", + }, + ["@Zora River -> ZR Fairy Grotto/Grotto"] = { + ["vanilla_capture"] = "entrance_grotto_fairy", + ["setting"] = "setting_entrance_grottos_shuffle", + ["child_section"] = "@Zora River -> ZR Fairy Grotto/child", + ["adult_section"] = "@Zora River -> ZR Fairy Grotto/adult", + }, + ["@Zora River -> ZR Open Grotto/Grotto"] = { + ["vanilla_capture"] = "entrance_grotto_generic", + ["setting"] = "setting_entrance_grottos_shuffle", + ["child_section"] = "@Zora River -> ZR Open Grotto/child", + ["adult_section"] = "@Zora River -> ZR Open Grotto/adult", + }, + ["@Zora River -> ZR Storms Grotto/Grotto"] = { + ["vanilla_capture"] = "entrance_grotto_scrub", + ["setting"] = "setting_entrance_grottos_shuffle", + ["child_section"] = "@Zora River -> ZR Storms Grotto/child", + ["adult_section"] = "@Zora River -> ZR Storms Grotto/adult", + }, + ["@Zoras Domain -> ZD Storms Grotto/Grotto"] = { + ["vanilla_capture"] = "entrance_grotto_fairy", + ["setting"] = "setting_entrance_grottos_shuffle", + ["child_section"] = "@Zoras Domain -> ZD Storms Grotto/child", + ["adult_section"] = "@Zoras Domain -> ZD Storms Grotto/adult", + }, + ["@Gerudo Valley -> GV Octorok Grotto/Grotto"] = { + ["vanilla_capture"] = "", + ["setting"] = "setting_entrance_grottos_shuffle", + ["child_section"] = "@Gerudo Valley -> GV Octorok Grotto/child", + ["adult_section"] = "@Gerudo Valley -> GV Octorok Grotto/adult", + }, + ["@GV Fortress Side -> GV Storms Grotto/Grotto"] = { + ["vanilla_capture"] = "entrance_grotto_scrub", + ["setting"] = "setting_entrance_grottos_shuffle", + ["child_section"] = "@GV Fortress Side -> GV Storms Grotto/child", + ["adult_section"] = "@GV Fortress Side -> GV Storms Grotto/adult", + }, + ["@Gerudo Fortress -> GF Storms Grotto/Grotto"] = { + ["vanilla_capture"] = "entrance_grotto_fairy", + ["setting"] = "setting_entrance_grottos_shuffle", + ["child_section"] = "@Gerudo Fortress -> GF Storms Grotto/child", + ["adult_section"] = "@Gerudo Fortress -> GF Storms Grotto/adult", + }, + ["@Desert Colossus -> Colossus Grotto/Grotto"] = { + ["vanilla_capture"] = "entrance_grotto_scrub", + ["setting"] = "setting_entrance_grottos_shuffle", + ["child_section"] = "@Desert Colossus -> Colossus Grotto/child", + ["adult_section"] = "@Desert Colossus -> Colossus Grotto/adult", + }, + ["@Kokiri Forest -> KF House of Twins/House"] = { + ["vanilla_capture"] = "", + ["setting"] = "setting_entrance_interiors_simple", + ["child_section"] = "@Kokiri Forest -> KF House of Twins/child", + ["adult_section"] = "@Kokiri Forest -> KF House of Twins/adult", + }, + ["@Kokiri Forest -> KF Know It All House/House"] = { + ["vanilla_capture"] = "", + ["setting"] = "setting_entrance_interiors_simple", + ["child_section"] = "@Kokiri Forest -> KF Know It All House/child", + ["adult_section"] = "@Kokiri Forest -> KF Know It All House/adult", + }, + ["@Kokiri Forest -> KF Kokiri Shop/House"] = { + ["vanilla_capture"] = "entrance_house_shop", + ["setting"] = "setting_entrance_interiors_simple", + ["child_section"] = "@Kokiri Forest -> KF Kokiri Shop/child", + ["adult_section"] = "@Kokiri Forest -> KF Kokiri Shop/adult", + }, + ["@Kokiri Forest -> KF Midos House/House"] = { + ["vanilla_capture"] = "", --TODO: new captures? + ["setting"] = "setting_entrance_interiors_simple", + ["child_section"] = "@Kokiri Forest -> KF Midos House/child", + ["adult_section"] = "@Kokiri Forest -> KF Midos House/adult", + }, + ["@Kokiri Forest -> KF Sarias House/House"] = { + ["vanilla_capture"] = "", + ["setting"] = "setting_entrance_interiors_simple", + ["child_section"] = "@Kokiri Forest -> KF Sarias House/child", + ["adult_section"] = "@Kokiri Forest -> KF Sarias House/adult", + }, + ["@Lon Lon Ranch -> LLR Stables/House"] = { + ["vanilla_capture"] = "entrance_house_cow", + ["setting"] = "setting_entrance_interiors_simple", + ["child_section"] = "@Lon Lon Ranch -> LLR Stables/child", + ["adult_section"] = "@Lon Lon Ranch -> LLR Stables/adult", + }, + ["@Lon Lon Ranch -> LLR Tower/House"] = { + ["vanilla_capture"] = "entrance_house_cow", + ["setting"] = "setting_entrance_interiors_simple", + ["child_section"] = "@Lon Lon Ranch -> LLR Tower/child", + ["adult_section"] = "@Lon Lon Ranch -> LLR Tower/adult", + }, + ["@Lon Lon Ranch -> LLR Talons House/House"] = { + ["vanilla_capture"] = "entrance_house_talon_child", + ["setting"] = "setting_entrance_interiors_simple", + ["child_section"] = "@Lon Lon Ranch -> LLR Talons House/child", + ["adult_section"] = "@Lon Lon Ranch -> LLR Talons House/adult", + }, + ["@Kakariko Village -> Kak Carpenter Boss House/House"] = { + ["vanilla_capture"] = "entrance_house_talon_adult", + ["setting"] = "setting_entrance_interiors_simple", + ["child_section"] = "@Kakariko Village -> Kak Carpenter Boss House/child", + ["adult_section"] = "@Kakariko Village -> Kak Carpenter Boss House/adult", + }, + ["@Kakariko Village -> Kak House of Skulltula/House"] = { + ["vanilla_capture"] = "entrance_house_skull", + ["setting"] = "setting_entrance_interiors_simple", + ["child_section"] = "@Kakariko Village -> Kak House of Skulltula/child", + ["adult_section"] = "@Kakariko Village -> Kak House of Skulltula/adult", + }, + ["@Kakariko Village -> Kak Impas House/House"] = { + ["vanilla_capture"] = "entrance_house_cow", + ["setting"] = "setting_entrance_interiors_simple", + ["child_section"] = "@Kakariko Village -> Kak Impas House/child", + ["adult_section"] = "@Kakariko Village -> Kak Impas House/adult", + }, + ["@Kak Impas Ledge -> Kak Impas House Back/House"] = { + ["vanilla_capture"] = "entrance_house_cow", + ["setting"] = "setting_entrance_interiors_simple", + ["child_section"] = "@Kak Impas Ledge -> Kak Impas House Back/child", + ["adult_section"] = "@Kak Impas Ledge -> Kak Impas House Back/adult", + }, + ["@Kakariko Village -> Kak Bazaar/House"] = { + ["vanilla_capture"] = "entrance_house_shop", + ["setting"] = "setting_entrance_interiors_simple", + ["child_section"] = "@Kakariko Village -> Kak Bazaar/child", + ["adult_section"] = "@Kakariko Village -> Kak Bazaar/adult", + }, + ["@Kakariko Village -> Kak Shooting Gallery/House"] = { + ["vanilla_capture"] = "entrance_house_shoot_adult", + ["setting"] = "setting_entrance_interiors_simple", + ["child_section"] = "@Kakariko Village -> Kak Shooting Gallery/child", + ["adult_section"] = "@Kakariko Village -> Kak Shooting Gallery/adult", + }, + ["@Kak Backyard -> Kak Odd Medicine Building/House"] = { + ["vanilla_capture"] = "entrance_house_hag", + ["setting"] = "setting_entrance_interiors_simple", + ["child_section"] = "@Kak Backyard -> Kak Odd Medicine Building/child", + ["adult_section"] = "@Kak Backyard -> Kak Odd Medicine Building/adult", + }, + ["@Graveyard -> Graveyard Dampes House/House"] = { + ["vanilla_capture"] = "", + ["setting"] = "setting_entrance_interiors_simple", + ["child_section"] = "@Graveyard -> Graveyard Dampes House/child", + ["adult_section"] = "@Graveyard -> Graveyard Dampes House/adult", + }, + ["@Market -> Market Bazaar/House"] = { + ["vanilla_capture"] = "entrance_house_shop", + ["setting"] = "setting_entrance_interiors_simple", + ["child_section"] = "@Market -> Market Bazaar/child", + ["adult_section"] = "@Market -> Market Bazaar/adult", + }, + ["@Market -> Market Bombchu Bowling/House"] = { + ["vanilla_capture"] = "entrance_house_bowling", + ["setting"] = "setting_entrance_interiors_simple", + ["child_section"] = "@Market -> Market Bombchu Bowling/child", + ["adult_section"] = "@Market -> Market Bombchu Bowling/adult", + }, + ["@Market -> Market Bombchu Shop/House"] = { + ["vanilla_capture"] = "entrance_house_shop", + ["setting"] = "setting_entrance_interiors_simple", + ["child_section"] = "@Market -> Market Bombchu Shop/child", + ["adult_section"] = "@Market -> Market Bombchu Shop/adult", + }, + ["@Market -> Market Man in Green House/House"] = { + ["vanilla_capture"] = "", + ["setting"] = "setting_entrance_interiors_simple", + ["child_section"] = "@Market -> Market Man in Green House/child", + ["adult_section"] = "@Market -> Market Man in Green House/adult", + }, + ["@Market -> Market Mask Shop/House"] = { + ["vanilla_capture"] = "entrance_house_masks", + ["setting"] = "setting_entrance_interiors_simple", + ["child_section"] = "@Market -> Market Mask Shop/child", + ["adult_section"] = "@Market -> Market Mask Shop/adult", + }, + ["@Market -> Market Potion Shop/House"] = { + ["vanilla_capture"] = "entrance_house_shop", + ["setting"] = "setting_entrance_interiors_simple", + ["child_section"] = "@Market -> Market Potion Shop/child", + ["adult_section"] = "@Market -> Market Potion Shop/adult", + }, + ["@Market -> Market Shooting Gallery/House"] = { + ["vanilla_capture"] = "entrance_house_shoot_child", + ["setting"] = "setting_entrance_interiors_simple", + ["child_section"] = "@Market -> Market Shooting Gallery/child", + ["adult_section"] = "@Market -> Market Shooting Gallery/adult", + }, + ["@Market -> Market Treasure Chest Game/House"] = { + ["vanilla_capture"] = "entrance_house_chest", + ["setting"] = "setting_entrance_interiors_simple", + ["child_section"] = "@Market -> Market Treasure Chest Game/child", + ["adult_section"] = "@Market -> Market Treasure Chest Game/adult", + }, + ["@Market Entrance -> Market Guard House/House"] = { + ["vanilla_capture"] = "entrance_house_pot", + ["setting"] = "setting_entrance_interiors_simple", + ["child_section"] = "@Market Entrance -> Market Guard House/child", + ["adult_section"] = "@Market Entrance -> Market Guard House/adult", + }, + ["@Ganons Castle Grounds -> OGC Great Fairy Fountain/House"] = { + ["vanilla_capture"] = "entrance_house_fairy", + ["setting"] = "setting_entrance_interiors_simple", + ["child_section"] = "@Ganons Castle Grounds -> OGC Great Fairy Fountain/child", + ["adult_section"] = "@Ganons Castle Grounds -> OGC Great Fairy Fountain/adult", + }, + ["@Hyrule Castle Grounds -> HC Great Fairy Fountain/House"] = { + ["vanilla_capture"] = "entrance_house_fairy", + ["setting"] = "setting_entrance_interiors_simple", + ["child_section"] = "@Hyrule Castle Grounds -> HC Great Fairy Fountain/child", + ["adult_section"] = "@Hyrule Castle Grounds -> HC Great Fairy Fountain/adult", + }, + ["@Death Mountain Summit -> DMT Great Fairy Fountain/House"] = { + ["vanilla_capture"] = "entrance_house_fairy", + ["setting"] = "setting_entrance_interiors_simple", + ["child_section"] = "@Death Mountain Summit -> DMT Great Fairy Fountain/child", + ["adult_section"] = "@Death Mountain Summit -> DMT Great Fairy Fountain/adult", + }, + ["@DMC Lower Nearby -> DMC Great Fairy Fountain/House"] = { + ["vanilla_capture"] = "entrance_house_fairy", + ["setting"] = "setting_entrance_interiors_simple", + ["child_section"] = "@DMC Lower Nearby -> DMC Great Fairy Fountain/child", + ["adult_section"] = "@DMC Lower Nearby -> DMC Great Fairy Fountain/adult", + }, + ["@Goron City -> GC Shop/House"] = { + ["vanilla_capture"] = "entrance_house_shop", + ["setting"] = "setting_entrance_interiors_simple", + ["child_section"] = "@Goron City -> GC Shop/child", + ["adult_section"] = "@Goron City -> GC Shop/adult", + }, + ["@Lake Hylia -> LH Fishing Hole/House"] = { + ["vanilla_capture"] = "entrance_house_fishing", + ["setting"] = "setting_entrance_interiors_simple", + ["child_section"] = "@Lake Hylia -> LH Fishing Hole/child", + ["adult_section"] = "@Lake Hylia -> LH Fishing Hole/adult", + }, + ["@Lake Hylia -> LH Lab/House"] = { + ["vanilla_capture"] = "entrance_house_lab", + ["setting"] = "setting_entrance_interiors_simple", + ["child_section"] = "@Lake Hylia -> LH Lab/child", + ["adult_section"] = "@Lake Hylia -> LH Lab/adult", + }, + ["@Zoras Domain -> ZD Shop/House"] = { + ["vanilla_capture"] = "entrance_house_shop", + ["setting"] = "setting_entrance_interiors_simple", + ["child_section"] = "@Zoras Domain -> ZD Shop/child", + ["adult_section"] = "@Zoras Domain -> ZD Shop/adult", + }, + ["@Zoras Fountain -> ZF Great Fairy Fountain/House"] = { + ["vanilla_capture"] = "entrance_house_fairy", + ["setting"] = "setting_entrance_interiors_simple", + ["child_section"] = "@Zoras Fountain -> ZF Great Fairy Fountain/child", + ["adult_section"] = "@Zoras Fountain -> ZF Great Fairy Fountain/adult", + }, + ["@GV Fortress Side -> GV Carpenter Tent/House"] = { + ["vanilla_capture"] = "", + ["setting"] = "setting_entrance_interiors_simple", + ["child_section"] = "@GV Fortress Side -> GV Carpenter Tent/child", + ["adult_section"] = "@GV Fortress Side -> GV Carpenter Tent/adult", + }, + ["@Desert Colossus -> Colossus Great Fairy Fountain/House"] = { + ["vanilla_capture"] = "entrance_house_fairy", + ["setting"] = "setting_entrance_interiors_simple", + ["child_section"] = "@Desert Colossus -> Colossus Great Fairy Fountain/child", + ["adult_section"] = "@Desert Colossus -> Colossus Great Fairy Fountain/adult", + }, + ["@Kokiri Forest -> KF Links House/House"] = { + ["vanilla_capture"] = "entrance_house_link", + ["setting"] = "setting_entrance_interiors_all", + ["child_section"] = "@Kokiri Forest -> KF Links House/child", + ["adult_section"] = "@Kokiri Forest -> KF Links House/adult", + }, + ["@Kakariko Village -> Kak Potion Shop Front/House"] = { + ["vanilla_capture"] = "entrance_house_potion_front", + ["setting"] = "setting_entrance_interiors_all", + ["child_section"] = "@Kakariko Village -> Kak Potion Shop Front/child", + ["adult_section"] = "@Kakariko Village -> Kak Potion Shop Front/adult", + }, + ["@Kakariko Village -> Kak Windmill/House"] = { + ["vanilla_capture"] = "entrance_house_windmill", + ["setting"] = "setting_entrance_interiors_all", + ["child_section"] = "@Kakariko Village -> Kak Windmill/child", + ["adult_section"] = "@Kakariko Village -> Kak Windmill/adult", + }, + ["@Kak Backyard -> Kak Potion Shop Back/House"] = { + ["vanilla_capture"] = "entrance_house_potion_back", + ["setting"] = "setting_entrance_interiors_all", + ["child_section"] = "@Kak Backyard -> Kak Potion Shop Back/child", + ["adult_section"] = "@Kak Backyard -> Kak Potion Shop Back/adult", + }, + ["@ToT Entrance -> Temple of Time/House"] = { + ["vanilla_capture"] = "entrance_house_tot", + ["setting"] = "setting_entrance_interiors_all", + ["child_section"] = "@ToT Entrance -> Temple of Time/child", + ["adult_section"] = "@ToT Entrance -> Temple of Time/adult", + }, + ["@KF Outside Deku Tree -> Deku Tree Lobby/Dungeon"] = { + ["vanilla_capture"] = "entrance_dungeon_deku", + ["setting"] = "setting_entrance_dungeons_shuffle", + ["child_section"] = "@KF Outside Deku Tree -> Deku Tree Lobby/child", + ["adult_section"] = "@KF Outside Deku Tree -> Deku Tree Lobby/adult", + }, + ["@Sacred Forest Meadow -> Forest Temple Lobby/Dungeon"] = { + ["vanilla_capture"] = "entrance_dungeon_forest", + ["setting"] = "setting_entrance_dungeons_shuffle", + ["child_section"] = "@Sacred Forest Meadow -> Forest Temple Lobby/child", + ["adult_section"] = "@Sacred Forest Meadow -> Forest Temple Lobby/adult", + }, + ["@Kakariko Village -> Bottom of the Well/Dungeon"] = { + ["vanilla_capture"] = "entrance_dungeon_botw", + ["setting"] = "setting_entrance_dungeons_shuffle", + ["child_section"] = "@Kakariko Village -> Bottom of the Well/child", + ["adult_section"] = "@Kakariko Village -> Bottom of the Well/adult", + }, + ["@Graveyard Warp Pad Region -> Shadow Temple Entryway/Dungeon"] = { + ["vanilla_capture"] = "entrance_dungeon_shadow", + ["setting"] = "setting_entrance_dungeons_shuffle", + ["child_section"] = "@Graveyard Warp Pad Region -> Shadow Temple Entryway/child", + ["adult_section"] = "@Graveyard Warp Pad Region -> Shadow Temple Entryway/adult", + }, + ["@Dodongos Cavern Entryway -> Dodongos Cavern Beginning/Dungeon"] = { + ["vanilla_capture"] = "entrance_dungeon_dodongo", + ["setting"] = "setting_entrance_dungeons_shuffle", + ["child_section"] = "@Dodongos Cavern Entryway -> Dodongos Cavern Beginning/child", + ["adult_section"] = "@Dodongos Cavern Entryway -> Dodongos Cavern Beginning/adult", + }, + ["@Fire Temple Entrance -> Fire Temple Lower/Dungeon"] = { + ["vanilla_capture"] = "entrance_dungeon_fire", + ["setting"] = "setting_entrance_dungeons_shuffle", + ["child_section"] = "@Fire Temple Entrance -> Fire Temple Lower/child", + ["adult_section"] = "@Fire Temple Entrance -> Fire Temple Lower/adult", + }, + ["@Lake Hylia -> Water Temple Lobby/Dungeon"] = { + ["vanilla_capture"] = "entrance_dungeon_water", + ["setting"] = "setting_entrance_dungeons_shuffle", + ["child_section"] = "@Lake Hylia -> Water Temple Lobby/child", + ["adult_section"] = "@Lake Hylia -> Water Temple Lobby/adult", + }, + ["@Zoras Fountain -> Jabu Jabus Belly Beginning/Dungeon"] = { + ["vanilla_capture"] = "entrance_dungeon_jabu", + ["setting"] = "setting_entrance_dungeons_shuffle", + ["child_section"] = "@Zoras Fountain -> Jabu Jabus Belly Beginning/child", + ["adult_section"] = "@Zoras Fountain -> Jabu Jabus Belly Beginning/adult", + }, + ["@Zoras Fountain -> Ice Cavern Beginning/Dungeon"] = { + ["vanilla_capture"] = "entrance_dungeon_ice", + ["setting"] = "setting_entrance_dungeons_shuffle", + ["child_section"] = "@Zoras Fountain -> Ice Cavern Beginning/child", + ["adult_section"] = "@Zoras Fountain -> Ice Cavern Beginning/adult", + }, + ["@Gerudo Fortress -> Gerudo Training Grounds Lobby/Dungeon"] = { + ["vanilla_capture"] = "entrance_dungeon_gtg", + ["setting"] = "setting_entrance_dungeons_shuffle", + ["child_section"] = "@Gerudo Fortress -> Gerudo Training Grounds Lobby/child", + ["adult_section"] = "@Gerudo Fortress -> Gerudo Training Grounds Lobby/adult", + }, + ["@Desert Colossus -> Spirit Temple Lobby/Dungeon"] = { + ["vanilla_capture"] = "entrance_dungeon_spirit", + ["setting"] = "setting_entrance_dungeons_shuffle", + ["child_section"] = "@Desert Colossus -> Spirit Temple Lobby/child", + ["adult_section"] = "@Desert Colossus -> Spirit Temple Lobby/adult", + }, + ["@Kokiri Forest -> Lost Woods/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_lw", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@Kokiri Forest -> Lost Woods/child", + ["adult_section"] = "@Kokiri Forest -> Lost Woods/adult", + }, + ["@Kokiri Forest -> LW Bridge From Forest/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_lw_brg", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@Kokiri Forest -> LW Bridge From Forest/child", + ["adult_section"] = "@Kokiri Forest -> LW Bridge From Forest/adult", + }, + ["@Lost Woods -> GC Woods Warp/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_gc_lw", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@Lost Woods -> GC Woods Warp/child", + ["adult_section"] = "@Lost Woods -> GC Woods Warp/adult", + }, + ["@Lost Woods -> Zora River/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_zr", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@Lost Woods -> Zora River/child", + ["adult_section"] = "@Lost Woods -> Zora River/adult", + }, + ["@LW Beyond Mido -> SFM Entryway/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_sfm_ent", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@LW Beyond Mido -> SFM Entryway/child", + ["adult_section"] = "@LW Beyond Mido -> SFM Entryway/adult", + }, + ["@LW Forest Exit -> Kokiri Forest/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_kf", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@LW Forest Exit -> Kokiri Forest/child", + ["adult_section"] = "@LW Forest Exit -> Kokiri Forest/adult", + }, + ["@LW Bridge -> Kokiri Forest/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_kf", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@LW Bridge -> Kokiri Forest/child", + ["adult_section"] = "@LW Bridge -> Kokiri Forest/adult", + }, + ["@LW Bridge -> Hyrule Field/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_hf", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@LW Bridge -> Hyrule Field/child", + ["adult_section"] = "@LW Bridge -> Hyrule Field/adult", + }, + ["@SFM Entryway -> LW Beyond Mido/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_lw_mido", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@SFM Entryway -> LW Beyond Mido/child", + ["adult_section"] = "@SFM Entryway -> LW Beyond Mido/adult", + }, + ["@Hyrule Field -> Market Entrance/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_mkt_ent", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@Hyrule Field -> Market Entrance/child", + ["adult_section"] = "@Hyrule Field -> Market Entrance/adult", + }, + ["@Hyrule Field -> Gerudo Valley/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_gv", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@Hyrule Field -> Gerudo Valley/child", + ["adult_section"] = "@Hyrule Field -> Gerudo Valley/adult", + }, + ["@Hyrule Field -> Kakariko Village/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_kak", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@Hyrule Field -> Kakariko Village/child", + ["adult_section"] = "@Hyrule Field -> Kakariko Village/adult", + }, + ["@Hyrule Field -> Lake Hylia/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_lh", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@Hyrule Field -> Lake Hylia/child", + ["adult_section"] = "@Hyrule Field -> Lake Hylia/adult", + }, + ["@Hyrule Field -> Lon Lon Ranch/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_llr", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@Hyrule Field -> Lon Lon Ranch/child", + ["adult_section"] = "@Hyrule Field -> Lon Lon Ranch/adult", + }, + ["@Hyrule Field -> LW Bridge/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_lw_brg", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@Hyrule Field -> LW Bridge/child", + ["adult_section"] = "@Hyrule Field -> LW Bridge/adult", + }, + ["@Hyrule Field -> ZR Front/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_zr_frnt", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@Hyrule Field -> ZR Front/child", + ["adult_section"] = "@Hyrule Field -> ZR Front/adult", + }, + ["@Lon Lon Ranch -> Hyrule Field/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_hf", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@Lon Lon Ranch -> Hyrule Field/child", + ["adult_section"] = "@Lon Lon Ranch -> Hyrule Field/adult", + }, + ["@Kakariko Village -> Graveyard/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_gy", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@Kakariko Village -> Graveyard/child", + ["adult_section"] = "@Kakariko Village -> Graveyard/adult", + }, + ["@Kakariko Village -> Hyrule Field/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_hf", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@Kakariko Village -> Hyrule Field/child", + ["adult_section"] = "@Kakariko Village -> Hyrule Field/adult", + }, + ["@Kak Behind Gate -> Death Mountain/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_dmt", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@Kak Behind Gate -> Death Mountain/child", + ["adult_section"] = "@Kak Behind Gate -> Death Mountain/adult", + }, + ["@Graveyard -> Kakariko Village/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_kak", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@Graveyard -> Kakariko Village/child", + ["adult_section"] = "@Graveyard -> Kakariko Village/adult", + }, + ["@Market -> Castle Grounds/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_cg", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@Market -> Castle Grounds/child", + ["adult_section"] = "@Market -> Castle Grounds/adult", + }, + ["@Market -> Market Entrance/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_mkt_ent", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@Market -> Market Entrance/child", + ["adult_section"] = "@Market -> Market Entrance/adult", + }, + ["@Market -> ToT Entrance/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_tot_ent", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@Market -> ToT Entrance/child", + ["adult_section"] = "@Market -> ToT Entrance/adult", + }, + ["@Market Entrance -> Market/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_mkt", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@Market Entrance -> Market/child", + ["adult_section"] = "@Market Entrance -> Market/adult", + }, + ["@Market Entrance -> Hyrule Field/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_hf", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@Market Entrance -> Hyrule Field/child", + ["adult_section"] = "@Market Entrance -> Hyrule Field/adult", + }, + ["@ToT Entrance -> Market/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_mkt", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@ToT Entrance -> Market/child", + ["adult_section"] = "@ToT Entrance -> Market/adult", + }, + ["@Castle Grounds -> Market/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_mkt", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@Castle Grounds -> Market/child", + ["adult_section"] = "@Castle Grounds -> Market/adult", + }, + ["@Death Mountain -> Goron City/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_gc", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@Death Mountain -> Goron City/child", + ["adult_section"] = "@Death Mountain -> Goron City/adult", + }, + ["@Death Mountain -> Kak Behind Gate/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_kak_gate", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@Death Mountain -> Kak Behind Gate/child", + ["adult_section"] = "@Death Mountain -> Kak Behind Gate/adult", + }, + ["@Death Mountain Summit -> DMC Upper Local/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_dmc_upr", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@Death Mountain Summit -> DMC Upper Local/child", + ["adult_section"] = "@Death Mountain Summit -> DMC Upper Local/adult", + }, + ["@DMC Lower Nearby -> GC Darunias Chamber/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_gc_drn", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@DMC Lower Nearby -> GC Darunias Chamber/child", + ["adult_section"] = "@DMC Lower Nearby -> GC Darunias Chamber/adult", + }, + ["@DMC Upper Nearby -> Death Mountain Summit/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_dm_smt", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@DMC Upper Nearby -> Death Mountain Summit/child", + ["adult_section"] = "@DMC Upper Nearby -> Death Mountain Summit/adult", + }, + ["@GC Darunias Chamber -> DMC Lower Local/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_dmc_lwr", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@GC Darunias Chamber -> DMC Lower Local/child", + ["adult_section"] = "@GC Darunias Chamber -> DMC Lower Local/adult", + }, + ["@Goron City -> Death Mountain/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_dmt", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@Goron City -> Death Mountain/child", + ["adult_section"] = "@Goron City -> Death Mountain/adult", + }, + ["@GC Woods Warp -> Lost Woods/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_lw", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@GC Woods Warp -> Lost Woods/child", + ["adult_section"] = "@GC Woods Warp -> Lost Woods/adult", + }, + ["@Lake Hylia -> Hyrule Field/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_hf", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@Lake Hylia -> Hyrule Field/child", + ["adult_section"] = "@Lake Hylia -> Hyrule Field/adult", + }, + ["@Lake Hylia -> Zoras Domain/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_zd", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@Lake Hylia -> Zoras Domain/child", + ["adult_section"] = "@Lake Hylia -> Zoras Domain/adult", + }, + ["@Zora River -> Lost Woods/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_lw", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@Zora River -> Lost Woods/child", + ["adult_section"] = "@Zora River -> Lost Woods/adult", + }, + ["@ZR Behind Waterfall -> Zoras Domain/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_zd", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@ZR Behind Waterfall -> Zoras Domain/child", + ["adult_section"] = "@ZR Behind Waterfall -> Zoras Domain/adult", + }, + ["@ZR Front -> Hyrule Field/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_hf", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@ZR Front -> Hyrule Field/child", + ["adult_section"] = "@ZR Front -> Hyrule Field/adult", + }, + ["@Zoras Domain -> Lake Hylia/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_lh", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@Zoras Domain -> Lake Hylia/child", + ["adult_section"] = "@Zoras Domain -> Lake Hylia/adult", + }, + ["@Zoras Domain -> ZR Behind Waterfall/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_zr_fall", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@Zoras Domain -> ZR Behind Waterfall/child", + ["adult_section"] = "@Zoras Domain -> ZR Behind Waterfall/adult", + }, + ["@ZD Behind King Zora -> Zoras Fountain/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_zf", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@ZD Behind King Zora -> Zoras Fountain/child", + ["adult_section"] = "@ZD Behind King Zora -> Zoras Fountain/adult", + }, + ["@Zoras Fountain -> ZD Behind King Zora/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_zd_kz", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@Zoras Fountain -> ZD Behind King Zora/child", + ["adult_section"] = "@Zoras Fountain -> ZD Behind King Zora/adult", + }, + ["@Gerudo Valley -> Hyrule Field/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_hf", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@Gerudo Valley -> Hyrule Field/child", + ["adult_section"] = "@Gerudo Valley -> Hyrule Field/adult", + }, + ["@GV Fortress Side -> Gerudo Fortress/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_gf", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@GV Fortress Side -> Gerudo Fortress/child", + ["adult_section"] = "@GV Fortress Side -> Gerudo Fortress/adult", + }, + ["@Gerudo Fortress -> GV Fortress Side/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_gv_fort", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@Gerudo Fortress -> GV Fortress Side/child", + ["adult_section"] = "@Gerudo Fortress -> GV Fortress Side/adult", + }, + ["@GF Outside Gate -> Wasteland Near Fortress/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_wl_fort", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@GF Outside Gate -> Wasteland Near Fortress/child", + ["adult_section"] = "@GF Outside Gate -> Wasteland Near Fortress/adult", + }, + ["@Wasteland Near Colossus -> Desert Colossus/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_col", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@Wasteland Near Colossus -> Desert Colossus/child", + ["adult_section"] = "@Wasteland Near Colossus -> Desert Colossus/adult", + }, + ["@Wasteland Near Fortress -> GF Outside Gate/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_gf_gate", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@Wasteland Near Fortress -> GF Outside Gate/child", + ["adult_section"] = "@Wasteland Near Fortress -> GF Outside Gate/adult", + }, + ["@Desert Colossus -> Wasteland Near Colossus/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_wl_col", + ["setting"] = "setting_entrance_overworld_shuffle", + ["child_section"] = "@Desert Colossus -> Wasteland Near Colossus/child", + ["adult_section"] = "@Desert Colossus -> Wasteland Near Colossus/adult", + }, + ["@DMT Owl Flight -> Kak Impas Ledge/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_kak_impa", + ["setting"] = "setting_entrance_owl_shuffle", + ["child_section"] = "@DMT Owl Flight -> Kak Impas Ledge/child", + ["adult_section"] = "@DMT Owl Flight -> Kak Impas Ledge/adult", + }, + ["@LH Owl Flight -> Hyrule Field/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_hf", + ["setting"] = "setting_entrance_owl_shuffle", + ["child_section"] = "@LH Owl Flight -> Hyrule Field/child", + ["adult_section"] = "@LH Owl Flight -> Hyrule Field/adult", + }, + ["@Minuet of Forest Warp -> Sacred Forest Meadow/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_sfm", + ["setting"] = "setting_entrance_warpsong_shuffle", + ["child_section"] = "@Minuet of Forest Warp -> Sacred Forest Meadow/child", + ["adult_section"] = "@Minuet of Forest Warp -> Sacred Forest Meadow/adult", + }, + ["@Bolero of Fire Warp -> DMC Central Local/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_dmc_ctr", + ["setting"] = "setting_entrance_warpsong_shuffle", + ["child_section"] = "@Bolero of Fire Warp -> DMC Central Local/child", + ["adult_section"] = "@Bolero of Fire Warp -> DMC Central Local/adult", + }, + ["@Serenade of Water Warp -> Lake Hylia/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_lh", + ["setting"] = "setting_entrance_warpsong_shuffle", + ["child_section"] = "@Serenade of Water Warp -> Lake Hylia/child", + ["adult_section"] = "@Serenade of Water Warp -> Lake Hylia/adult", + }, + ["@Requiem of Spirit Warp -> Desert Colossus/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_col", + ["setting"] = "setting_entrance_warpsong_shuffle", + ["child_section"] = "@Requiem of Spirit Warp -> Desert Colossus/child", + ["adult_section"] = "@Requiem of Spirit Warp -> Desert Colossus/adult", + }, + ["@Nocturne of Shadow Warp -> Graveyard Warp Pad Region/Overworld"] = { + ["vanilla_capture"] = "entrance_overworld_gy_pad", + ["setting"] = "setting_entrance_warpsong_shuffle", + ["child_section"] = "@Nocturne of Shadow Warp -> Graveyard Warp Pad Region/child", + ["adult_section"] = "@Nocturne of Shadow Warp -> Graveyard Warp Pad Region/adult", + }, + ["@Prelude of Light Warp -> Temple of Time/Overworld"] = { + ["vanilla_capture"] = "entrance_house_tot", + ["setting"] = "setting_entrance_warpsong_shuffle", + ["child_section"] = "@Prelude of Light Warp -> Temple of Time/child", + ["adult_section"] = "@Prelude of Light Warp -> Temple of Time/adult", + }, + ["@Child Spawn -> KF Links House/Overworld"] = { + ["vanilla_capture"] = "entrance_house_link", + ["setting"] = "setting_entrance_spawn_shuffle", + ["child_section"] = "@Child Spawn -> KF Links House/child", + ["adult_section"] = "@Child Spawn -> KF Links House/adult", + }, + ["@Adult Spawn -> Temple of Time/Overworld"] = { + ["vanilla_capture"] = "entrance_house_tot", + ["setting"] = "setting_entrance_spawn_shuffle", + ["child_section"] = "@Adult Spawn -> Temple of Time/child", + ["adult_section"] = "@Adult Spawn -> Temple of Time/adult", + }, +} +spawn_sections = { + "@Child Spawn -> KF Links House/Overworld", + "@Adult Spawn -> Temple of Time/Overworld", + "@Minuet of Forest Warp -> Sacred Forest Meadow/Overworld", + "@Bolero of Fire Warp -> DMC Central Local/Overworld", + "@Serenade of Water Warp -> Lake Hylia/Overworld", + "@Requiem of Spirit Warp -> Desert Colossus/Overworld", + "@Nocturne of Shadow Warp -> Graveyard Warp Pad Region/Overworld", + "@Prelude of Light Warp -> Temple of Time/Overworld", +} +origin_per_special_region = { + ["Links House"] = "", + ["Temple of Time"] = "", + ["Kak Windmill"] = "", + ["Graveyard Dampes Grave"] = "", + ["Kak Potion Shop Front"] = "", + ["Kak Potion Shop Back"] = "", +} +target_functions_per_regions = { + ["Special Regions"] = {}, + ["Kokiri Forest"] = { + ["KF Outside Deku Tree"] = { + function() + return (has("setting_forest_open") or (has("sword1") and has("shield1"))) + and AccessibilityLevel.Normal + or AccessibilityLevel.None + end, + function() + return AccessibilityLevel.Normal + end + }, + }, + ["KF Outside Deku Tree"] = { + ["Kokiri Forest"] = { + function() + return AccessibilityLevel.Normal + end, + function() + return AccessibilityLevel.Normal + end + } + }, + ["Links House"] = {}, + ["LW Forest Exit"] = {}, + ["Lost Woods"] = { + ["LW Forest Exit"] = { + function() + return AccessibilityLevel.Normal + end, + function() + return AccessibilityLevel.Normal + end + }, + ["LW Bridge"] = { + function() + return AccessibilityLevel.None + end, + function() + return (has("hoverboots") or has("longshot") or (has("beans") and access("Lost Woods", "child") > 0)) --TODO: logic_lost_woods_bridge + and AccessibilityLevel.Normal + or AccessibilityLevel.SequenceBreak + end + }, + ["LW Beyond Mido"] = { + function() + return AccessibilityLevel.Normal + end, + function() + if has("logic_mido_backflip") or (has("ocarina") and has("saria")) then + return AccessibilityLevel.Normal + end + return AccessibilityLevel.SequenceBreak + end + }, + }, + ["LW Beyond Mido"] = { + ["LW Forest Exit"] = { + function() + return AccessibilityLevel.Normal + end, + function() + return AccessibilityLevel.Normal + end + }, + ["Lost Woods"] = { + function() + return AccessibilityLevel.Normal + end, + function() + return (has("ocarina") and has("saria")) + and AccessibilityLevel.Normal + or AccessibilityLevel.None + end + }, + }, + ["SFM Entryway"] = { + ["Sacred Forest Meadow"] = { + function() + if has("sling") or has("sticks") or has("sword1") or (has("dinsfire") and has("magic")) then + return AccessibilityLevel.Normal + elseif has_explosives() > 0 then + return AccessibilityLevel.SequenceBreak + end + return AccessibilityLevel.None + end, + function() + return AccessibilityLevel.Normal + end + }, + }, + ["Sacred Forest Meadow"] = { + ["SFM Entryway"] = { + function() + return AccessibilityLevel.Normal + end, + function() + return AccessibilityLevel.Normal + end + }, + }, + ["LW Bridge From Forest"] = { + ["LW Bridge"] = { + function() + return AccessibilityLevel.Normal + end, + function() + return AccessibilityLevel.Normal + end + } + }, + ["LW Bridge"] = { + ["Kokiri Forest"] = { + function() + return AccessibilityLevel.Normal + end, + function() + return AccessibilityLevel.Normal + end + }, + ["Hyrule Field"] = { + function() + return AccessibilityLevel.Normal + end, + function() + return AccessibilityLevel.Normal + end + }, + ["Lost Woods"] = { + function() + return AccessibilityLevel.None + end, + function() + return (has("longshot")) + and AccessibilityLevel.Normal + or AccessibilityLevel.None + end + }, + }, + ["Hyrule Field"] = {}, + ["Lake Hylia"] = {}, + ["Gerudo Valley"] = { + ["GV Stream"] = { + function() + return AccessibilityLevel.Normal + end, + function() + return AccessibilityLevel.Normal + end + }, + ["GV Crate Ledge"] = { + function() + return AccessibilityLevel.Normal + end, + function() + return (has("longshot")) + and AccessibilityLevel.Normal + or AccessibilityLevel.None + end + }, + ["GV Fortress Side"] = { + function() + return AccessibilityLevel.None + end, + function() + return ((has("ocarina") and has("epona")) or has("longshot") or has("gerudo_fortress_open")) --TODO: carpenter rescue + and AccessibilityLevel.Normal + or AccessibilityLevel.None + end + }, + }, + ["GV Stream"] = {}, + ["GV Crate Ledge"] = {}, + ["GV Fortress Side"] = { + ["GV Stream"] = { + function() + return AccessibilityLevel.Normal + end, + function() + return AccessibilityLevel.Normal + end + }, + ["GV Crate Ledge"] = { + function() + return AccessibilityLevel.None + end, + function() + if (has("hoverboots") and damage_single_instance_ohko() > 0) then + if has("logic_valley_crate_hovers") then + return AccessibilityLevel.Normal + else + return AccessibilityLevel.SequenceBreak + end + end + return AccessibilityLevel.None + end + }, + ["Gerudo Valley"] = { + function() + return AccessibilityLevel.Normal + end, + function() + return ((has("ocarina") and has("epona")) or has("longshot") or has("gerudo_fortress_open")) --TODO: carpenter rescue + and AccessibilityLevel.Normal + or AccessibilityLevel.None + end + }, + }, + ["Gerudo Fortress"] = { + ["GF Outside Gate"] = { + function() + return AccessibilityLevel.None --TODO: open gate as adult + end, + function() + return (has("card")) + and AccessibilityLevel.Normal + or AccessibilityLevel.None + end + }, + }, + ["GF Outside Gate"] = { + ["Gerudo Fortress"] = { + function() + return AccessibilityLevel.None --TODO: open gate as adult + end, + function() + return AccessibilityLevel.Normal + end + }, + }, + ["Wasteland Near Fortress"] = { + ["Haunted Wasteland"] = { + function() + return (has("logic_wasteland_crossing")) + and AccessibilityLevel.Normal + or AccessibilityLevel.SequenceBreak + end, + function() + return (has("logic_wasteland_crossing") or has("hoverboots") or has("longshot")) + and AccessibilityLevel.Normal + or AccessibilityLevel.SequenceBreak + end + }, + }, + ["Haunted Wasteland"] = { + ["Wasteland Near Colossus"] = { + function() + return (has("logic_lens_wasteland") or (has("lens") and has("magic"))) + and AccessibilityLevel.Normal + or AccessibilityLevel.SequenceBreak + end, + function() + return (has("logic_lens_wasteland") or (has("lens") and has("magic"))) + and AccessibilityLevel.Normal + or AccessibilityLevel.SequenceBreak + end + }, + ["Wasteland Near Fortress"] = { + function() + return (has("logic_wasteland_crossing")) + and AccessibilityLevel.Normal + or AccessibilityLevel.SequenceBreak + end, + function() + return (has("logic_wasteland_crossing") or has("hoverboots") or has("longshot")) + and AccessibilityLevel.Normal + or AccessibilityLevel.SequenceBreak + end + }, + }, + ["Wasteland Near Colossus"] = { + ["Haunted Wasteland"] = { + function() + return (has("logic_reverse_wasteland")) + and AccessibilityLevel.Normal + or AccessibilityLevel.SequenceBreak + end, + function() + return (has("logic_reverse_wasteland")) + and AccessibilityLevel.Normal + or AccessibilityLevel.SequenceBreak + end + }, + }, + ["Desert Colossus"] = {}, + ["Spirit Temple"] = { + ["Desert Colossus"] = { --TODO: detailed spirit logic + function() + if Tracker:ProviderCountForCode("spirit_small_keys") >= 2 then + local _,explo_level = has_explosives() + return explo_level + end + return AccessibilityLevel.None + end, + function() + if Tracker:ProviderCountForCode("spirit_small_keys") >= 2 + and has("lift2") + then + return AccessibilityLevel.Normal + end + return AccessibilityLevel.None + end + }, + }, + ["Market Entrance"] = {}, + ["Market"] = {}, + ["ToT Entrance"] = {}, + ["Temple of Time"] = {}, + ["Castle Grounds"] = { + ["Hyrule Castle Grounds"] = { + function() + return AccessibilityLevel.Normal + end, + function() + return AccessibilityLevel.None + end + }, + ["Ganons Castle Grounds"] = { + function() + return AccessibilityLevel.None + end, + function() + return AccessibilityLevel.Normal + end + }, + }, + ["Hyrule Castle Grounds"] = { + ["Castle Grounds"] = { + function() + return AccessibilityLevel.Normal + end, + function() + return AccessibilityLevel.Normal + end + }, + }, + ["Ganons Castle Grounds"] = { + ["Castle Grounds"] = { + function() + return AccessibilityLevel.Normal + end, + function() + return AccessibilityLevel.Normal + end + }, + }, + ["Kakariko Village"] = { + ["Kak Impas Ledge"] = { + function() + return AccessibilityLevel.Normal + end, + function() + return (has("logic_visible_collisions") or has("hookshot")) --TODO: logic_visible_collisions + and AccessibilityLevel.Normal + or AccessibilityLevel.SequenceBreak + end + }, + ["Kak Rooftop"] = { + function() + return (has("logic_man_on_roof")) + and AccessibilityLevel.Normal + or AccessibilityLevel.SequenceBreak + end, + function() + return (has("logic_man_on_roof") or has("hookshot")) + and AccessibilityLevel.Normal + or AccessibilityLevel.SequenceBreak + end + }, + ["Kak Backyard"] = { + function() + return AccessibilityLevel.Normal + end, + function() + return AccessibilityLevel.Normal + end + }, + }, + ["Kak Impas Ledge"] = { + ["Kakariko Village"] = { + function() + return AccessibilityLevel.Normal + end, + function() + return AccessibilityLevel.Normal + end + }, + }, + ["Kak Rooftop"] = { + ["Kak Backyard"] = { + function() + return AccessibilityLevel.Normal + end, + function() + return AccessibilityLevel.Normal + end + }, + }, + ["Kak Backyard"] = { + ["Kakariko Village"] = { + function() + return AccessibilityLevel.Normal + end, + function() + return AccessibilityLevel.Normal + end + }, + }, + ["Kak Windmill"] = {}, + ["Kak Potion Shop Front"] = { + ["Kak Potion Shop Back"] = { + function() + return AccessibilityLevel.None + end, + function() + return AccessibilityLevel.Normal + end + }, + }, + ["Kak Potion Shop Back"] = { + ["Kak Potion Shop Front"] = { + function() + return AccessibilityLevel.Normal + end, + function() + return AccessibilityLevel.Normal + end + }, + }, + ["Graveyard"] = {}, + ["Graveyard Dampes Grave"] = { + ["Kak Windmill"] = { + function() + return AccessibilityLevel.None + end, + function() + if has("ocarina") and has("time") then + return AccessibilityLevel.Normal + end + return AccessibilityLevel.None + end + }, + }, + ["Graveyard Warp Pad Region"] = { + ["Graveyard"] = { + function() + return AccessibilityLevel.Normal + end, + function() + return AccessibilityLevel.Normal + end + }, + }, + ["Kak Behind Gate"] = { + ["Kakariko Village"] = { + function() + if has("logic_visible_collisions") + or has("setting_kak_open") + or (has("setting_kak_letter") and has("postzelda")) + then + return AccessibilityLevel.Normal + end + return AccessibilityLevel.SequenceBreak + end, + function() + return AccessibilityLevel.Normal + end + } + }, + ["Death Mountain"] = { + ["Death Mountain Summit"] = { + function() + local _, explo_level = has_explosives() + if (has("hammer") and access("Death Mountain", "adult")) then + return AccessibilityLevel.Normal + end + return explo_level + end, + function() + local _, explo_level = has_explosives() + if (has("hammer") or (has("beans") and access("Death Mountain", "child") > 1 and has("lift1"))) then + return AccessibilityLevel.Normal + end + return explo_level + end + }, + ["Dodongos Cavern Entryway"] = { + function() + local _, explo_level = has_explosives() + if (has("lift1")) then + return AccessibilityLevel.Normal + end + return explo_level + end, + function() + return AccessibilityLevel.Normal + end + }, + }, + ["Death Mountain Summit"] = { + ["Death Mountain"] = { + function() + return AccessibilityLevel.Normal + end, + function() + return AccessibilityLevel.Normal + end + }, + }, + ["Dodongos Cavern Entryway"] = { + ["Death Mountain"] = { + function() + return AccessibilityLevel.Normal + end, + function() + return AccessibilityLevel.Normal + end + }, + }, + ["Goron City"] = { + ["GC Woods Warp"] = { + function() + local _, warp = woods_warp_open() + return warp + end, + function() + local _, warp = woods_warp_open() + return warp + end + }, + ["GC Darunias Chamber"] = { + function() + return (has("ocarina") and has("lullaby")) + and AccessibilityLevel.Normal + or AccessibilityLevel.None + end, + function() + local _,goron = link_the_goron() + return goron + end + }, + }, + ["GC Woods Warp"] = { + ["Goron City"] = { + function() + local _, warp = woods_warp_open() --TODO: can_leave_forest + return warp + end, + function() + local _, warp = woods_warp_open() + return warp + end + }, + }, + ["GC Darunias Chamber"] = { + ["Goron City"] = { + function() + return AccessibilityLevel.Normal + end, + function() + return AccessibilityLevel.Normal + end + }, + }, + ["DMC Upper Nearby"] = { + ["DMC Upper Local"] = { + function() + return AccessibilityLevel.None + end, + function() + return (has("redtunic")) + and AccessibilityLevel.Normal + or AccessibilityLevel.SequenceBreak + end + }, + }, + ["DMC Upper Local"] = { + ["DMC Upper Nearby"] = { + function() + return AccessibilityLevel.Normal + end, + function() + return AccessibilityLevel.Normal + end + }, + ["DMC Ladder Area Nearby"] = { + function() + return AccessibilityLevel.Normal + end, + function() + return AccessibilityLevel.Normal + end + }, + ["DMC Central Nearby"] = { + function() + return AccessibilityLevel.None + end, + function() + if has("redtunic") + and has("longshot") + and damage_single_instance_quadruple() > 0 + then + return AccessibilityLevel.Normal + end + return AccessibilityLevel.None + end + }, + }, + ["DMC Ladder Area Nearby"] = { + ["DMC Upper Nearby"] = { + function() + return AccessibilityLevel.None + end, + function() + return AccessibilityLevel.Normal + end + }, + ["DMC Lower Nearby"] = { + function() + return AccessibilityLevel.None + end, + function() + if has("hoverboots") then + return AccessibilityLevel.Normal + elseif has("hammer") then + return has("logic_crater_upper_to_lower") + and AccessibilityLevel.Normal + or AccessibilityLevel.SequenceBreak + end + return AccessibilityLevel.None + end + }, + }, + ["DMC Lower Nearby"] = { + ["DMC Lower Local"] = { + function() + return AccessibilityLevel.None + end, + function() + return (has("redtunic")) + and AccessibilityLevel.Normal + or AccessibilityLevel.SequenceBreak + end + }, + }, + ["DMC Lower Local"] = { + ["DMC Lower Nearby"] = { + function() + return AccessibilityLevel.Normal + end, + function() + return AccessibilityLevel.Normal + end + }, + ["DMC Ladder Area Nearby"] = { + function() + return AccessibilityLevel.Normal + end, + function() + return AccessibilityLevel.Normal + end + }, + ["DMC Central Nearby"] = { + function() + return AccessibilityLevel.None + end, + function() + return (has("hoverboots") or has("hookshot")) + and AccessibilityLevel.Normal + or AccessibilityLevel.None + end + }, + ["Fire Temple Entrance"] = { + function() + return AccessibilityLevel.None + end, + function() + if has("hoverboots") or has("hookshot") then + local _,tunic = FTR_or_goron() + return tunic + end + return AccessibilityLevel.None + end + }, + }, + ["DMC Central Nearby"] = { + ["DMC Central Local"] = { + function() + return AccessibilityLevel.None + end, + function() + return (has("redtunic")) + and AccessibilityLevel.Normal + or AccessibilityLevel.SequenceBreak + end + }, + }, + ["DMC Central Local"] = { + ["DMC Central Nearby"] = { + function() + return AccessibilityLevel.Normal + end, + function() + return AccessibilityLevel.Normal + end + }, + ["DMC Lower Nearby"] = { + function() + return AccessibilityLevel.None + end, + function() + if has("hoverboots") + or has("hookshot") + then + return AccessibilityLevel.Normal + end + local _,child = access("DMC Central Local", "child") + if has("beans") then + return child + end + return AccessibilityLevel.None + end + }, + ["DMC Upper Nearby"] = { + function() + return AccessibilityLevel.None + end, + function() + local _,child = access("DMC Central Local", "child") + if has("beans") then + return child + end + return AccessibilityLevel.None + end + }, + ["Fire Temple Entrance"] = { + function() + if has("setting_entrance_dungeons_shuffle") then + return AccessibilityLevel.Normal + end + return AccessibilityLevel.None + end, + function() + local _,tunic = FTR_or_goron() + return tunic + end + }, + }, + ["Fire Temple Entrance"] = {}, + ["ZR Front"] = { + ["Zora River"] = { + function() + local _,explo = has_explosives() + return explo + end, + function() + return AccessibilityLevel.Normal + end + }, + }, + ["Zora River"] = { + ["ZR Front"] = { + function() + return AccessibilityLevel.Normal + end, + function() + return AccessibilityLevel.Normal + end + }, + ["ZR Behind Waterfall"] = { + function() + if has("ocarina") and has("lullaby") + or has("logic_zora_with_cucco") + then + return AccessibilityLevel.Normal + end + return AccessibilityLevel.SequenceBreak + end, + function() + if has("ocarina") and has("lullaby") then + return AccessibilityLevel.Normal + end + if has("hoverboots") then + return has("logic_zora_with_hovers") + and AccessibilityLevel.Normal + or AccessibilityLevel.SequenceBreak + end + return AccessibilityLevel.None + end + }, + }, + ["ZR Behind Waterfall"] = { + ["Zora River"] = { + function() + return AccessibilityLevel.Normal + end, + function() + return AccessibilityLevel.Normal + end + }, + }, + ["Zoras Domain"] = { + ["ZD Behind King Zora"] = { + function() + if has("setting_fountain_open") then + return AccessibilityLevel.Normal + end + local _,letter = deliver_letter() + return letter + end, + function() + if has("setting_fountain_open") + or has("setting_fountain_adult") + then + return AccessibilityLevel.Normal + end + local _,letter = deliver_letter() + return letter + end + }, + }, + ["ZD Behind King Zora"] = { + ["Zoras Domain"] = { + function() + if has("setting_fountain_open") then + return AccessibilityLevel.Normal + end + local _,letter = deliver_letter() + return letter + end, + function() + if has("setting_fountain_open") + or has("setting_fountain_adult") + then + return AccessibilityLevel.Normal + end + local _,letter = deliver_letter() + return letter + end + }, + }, + ["Zoras Fountain"] = {}, + ["Lon Lon Ranch"] = {}, +} +access_per_region_per_age = {} +temp_regions = {} + +function invalidate_regions(tab) + tab[1] = {} + tab[2] = {} + for region,_ in pairs(target_functions_per_regions) do + tab[1][region] = AccessibilityLevel.None + tab[2][region] = AccessibilityLevel.None + end + for region,_ in pairs(origin_per_special_region) do + tab[1][region] = AccessibilityLevel.None + tab[2][region] = AccessibilityLevel.None + end +end +invalidate_regions(temp_regions) +invalidate_regions(access_per_region_per_age) + +function set_region_access(access_table, age, target_region, new_access) + local cur_access = access_table[age][target_region] + if (new_access == AccessibilityLevel.Normal + and cur_access ~= AccessibilityLevel.Normal) + or (new_access == AccessibilityLevel.SequenceBreak + and cur_access == AccessibilityLevel.None) + then + if debugging then print("---set access", age, target_region, new_access) end + changed_access = true + access_table[age][target_region] = new_access + end +end + +function get_access_per_section(section) + local section_object = get_object(section) + if section_object and section_object.AccessibilityLevel then + return section_object.AccessibilityLevel + end + return AccessibilityLevel.None +end + +function get_access_per_section_per_age(section, age) + if age == 1 then + return get_access_per_section(info_per_section[section].child_section) + elseif age == 2 then + return get_access_per_section(info_per_section[section].adult_section) + end + return AccessibilityLevel.None +end + +function find_starts(sections) + for i,section in ipairs(spawn_sections) do + local spawn_cap = info_per_section[section].capture + local access = get_access_per_section(section) + if spawn_cap then + if i == 1 or i >= 3 then + if debugging then print("new start", 1, spawn_cap) end + access_per_region_per_age[1][spawn_cap] = access + end + if i == 2 or i >= 3 then + if debugging then print("new start", 2, spawn_cap) end + access_per_region_per_age[2][spawn_cap] = access + end + end + end +end + +changed_access = false + +function build_regions() + invalidate_regions(temp_regions) + invalidate_regions(access_per_region_per_age) + find_starts() + + local round = 1 + while true do + if debugging then print("round", round) end + + for age=1,2 do + if debugging then print("-age", age) end + for region,access in pairs(access_per_region_per_age[age]) do + if access ~= AccessibilityLevel.None then + if debugging then print("--region", age, access, region) end + temp_regions[age][region] = access + + for target_region,funcs in pairs(target_functions_per_regions[region]) do + local new_access = funcs[age]() + set_region_access(temp_regions, age, target_region, new_access) + end + + for section,info in pairs(info_per_section) do + if info.region == region then + local new_access = get_access_per_section_per_age(section, age) + if info.capture and target_functions_per_regions[info.capture] then + set_region_access(temp_regions, age, info.capture, new_access) + + if info.capture == "Temple of Time" + and (has("setting_door_open") + or (has("ocarina") and has("time"))) + then + if debugging then print("time travel") end + set_region_access(temp_regions, (3-age), info.capture, new_access) + set_region_access(temp_regions, (3-age), region, new_access) + end + end + end + end + + if origin_per_special_region[region] + and origin_per_special_region[region] ~= "" + and (age == 2 or region ~= "Kak Potion Shop Back") --only adult can leave the back + then + set_region_access(temp_regions, age, origin_per_special_region[region], access) + end + end + end + end + + access_per_region_per_age = temp_regions + + if changed_access then + changed_access = false + else + break + end + + round = round + 1 + if round > 30 then + print("monkaS") + break + end + end + if debugging then print("---------------") end +end + +function access(region, age) + age = age or "" + region = region or "" + if age == "both" then + if access_per_region_per_age[1][region] == AccessibilityLevel.Normal + and access_per_region_per_age[2][region] == AccessibilityLevel.Normal + then + return 1, AccessibilityLevel.Normal + elseif + (access_per_region_per_age[1][region] == AccessibilityLevel.Normal + or access_per_region_per_age[1][region] == AccessibilityLevel.SequenceBreak) + and + (access_per_region_per_age[2][region] == AccessibilityLevel.Normal + or access_per_region_per_age[2][region] == AccessibilityLevel.SequenceBreak) + then + return 1, AccessibilityLevel.SequenceBreak + end + elseif age == "child" then + if access_per_region_per_age[1][region] ~= AccessibilityLevel.None then + return 1, access_per_region_per_age[1][region] + end + elseif age == "adult" then + if access_per_region_per_age[2][region] ~= AccessibilityLevel.None then + return 1, access_per_region_per_age[2][region] + end + else --either + if access_per_region_per_age[1][region] == AccessibilityLevel.Normal + or access_per_region_per_age[2][region] == AccessibilityLevel.Normal + then + return 1, AccessibilityLevel.Normal + elseif + access_per_region_per_age[1][region] == AccessibilityLevel.SequenceBreak + or access_per_region_per_age[2][region] == AccessibilityLevel.SequenceBreak + then + return 1, AccessibilityLevel.SequenceBreak + end + end + return 0, AccessibilityLevel.None +end \ No newline at end of file diff --git a/ootrando_overworldmap_hamsda/scripts/update.lua b/ootrando_overworldmap_hamsda/scripts/update.lua index ef067a7b..9360a5f1 100644 --- a/ootrando_overworldmap_hamsda/scripts/update.lua +++ b/ootrando_overworldmap_hamsda/scripts/update.lua @@ -1,59 +1,3 @@ -function update_smallkeys() - for _,dungeon in ipairs(dungeons) do - local key_object = get_object(dungeon.."_small_keys") - if key_object then - if has(dungeon.."_reg") then - key_object.MaxCount = key_counts["vanilla"][dungeon] - else - key_object.MaxCount = key_counts["mq"][dungeon] - end - if not has_keys then - key_object.AcquiredCount = key_object.MaxCount - local bk = get_object(dungeon.."_boss_key") - if bk then - bk.Active = true - end - end - end - end -end - - - -function update_fortress() - local setting_card = has("setting_shuffle_card_yes") - local setting_normal = has("gerudo_fortress_normal") - local setting_fast = has("gerudo_fortress_fast") - local setting_open = has("gerudo_fortress_open") - - local item_card = get_object("gerudocard") - local item_gf_keys = get_object("gf_small_keys") - - if item_gf_keys then - if setting_open then - item_gf_keys.MaxCount = 0 - elseif setting_fast then - item_gf_keys.MaxCount = 1 - elseif setting_normal then - item_gf_keys.MaxCount = 4 - end - if not has_keys then - item_gf_keys.AcquiredCount = item_gf_keys.MaxCount - end - end - - if item_card and setting_open then - if not setting_card then - item_card.Active = true - elseif not_like_cache("gerudo_fortress_open", setting_open) - or not_like_cache("setting_shuffle_card_yes", setting_card) then - item_card.Active = not setting_card - end - end -end - - - vanilla_captures = { ["setting_shuffle_sword1_yes"] = { ["@KF Kokiri Sword Chest/Dodge Boulder"] = "sword1" @@ -82,9 +26,7 @@ function update_vanilla_captures() if location_object and item_object then if has_setting then location_object.CapturedItem = nil - location_object.CaptureItem = false else - location_object.CaptureItem = true location_object.CapturedItem = item_object end end @@ -95,150 +37,6 @@ end -function get_first_free_bottle() - for i=1,4 do - local bottle = get_object("bottle"..i) - if bottle and bottle.CurrentStage == 0 then - return bottle - end - end - return nil -end -function get_kid_trade() - local trade = get_object("kidtrade") - if trade then - return trade - end - return nil -end -function get_adult_trade() - local trade = get_object("adulttrade") - if trade then - return trade - end - return nil -end -capture_mappings = { - ["capture_bottle"] = { - 1, - get_first_free_bottle - }, - ["capture_ruto"] = { - 2, - get_first_free_bottle - }, - ["capture_childegg"] = { - 1, - get_kid_trade - }, - ["capture_childcucco"] = { - 2, - get_kid_trade - }, - ["capture_letter"] = { - 3, - get_kid_trade - }, - ["capture_lettershown"] = { - 4, - get_kid_trade - }, - ["capture_keaton"] = { - 5, - get_kid_trade - }, - ["capture_keatonsold"] = { - 6, - get_kid_trade - }, - ["capture_skullmask"] = { - 7, - get_kid_trade - }, - ["capture_skullsold"] = { - 8, - get_kid_trade - }, - ["capture_spooky"] = { - 9, - get_kid_trade - }, - ["capture_spookysold"] = { - 10, - get_kid_trade - }, - ["capture_bunny"] = { - 11, - get_kid_trade - }, - ["capture_bunnysold"] = { - 12, - get_kid_trade - }, - ["capture_truth"] = { - 13, - get_kid_trade - }, - ["capture_adultegg"] = { - 1, - get_adult_trade - }, - ["capture_adultcucco"] = { - 2, - get_adult_trade - }, - ["capture_cojiro"] = { - 3, - get_adult_trade - }, - ["capture_mushroom"] = { - 4, - get_adult_trade - }, - ["capture_oddpotion"] = { - 5, - get_adult_trade - }, - ["capture_saw"] = { - 6, - get_adult_trade - }, - ["capture_brokensword"] = { - 7, - get_adult_trade - }, - ["capture_prescription"] = { - 8, - get_adult_trade - }, - ["capture_frog"] = { - 9, - get_adult_trade - }, - ["capture_eyedrops"] = { - 10, - get_adult_trade - }, - ["capture_claim"] = { - 11, - get_adult_trade - } -} -function update_collected_capture() - for code,data in pairs(capture_mappings) do - local capture = get_object(code) - if capture and capture.Active then - capture.Active = false - local item = data[2]() - if item then - item.CurrentStage = data[1] - end - end - end -end - - - skulltula_locations = { --overworld "@KF Know It All House/KF GS Know It All House (N)", @@ -422,9 +220,11 @@ end function tracker_on_accessibility_updated() update_smallkeys() + update_bridge_amount_max() update_fortress() - update_vanilla_captures() update_collected_capture() + update_vanilla_captures() + update_free_zelda() count_skulltulas() apply_queued_changes() diff --git a/ootrando_overworldmap_hamsda/scripts/update_entrance.lua b/ootrando_overworldmap_hamsda/scripts/update_entrance.lua index 6245be29..cd4ea4c8 100644 --- a/ootrando_overworldmap_hamsda/scripts/update_entrance.lua +++ b/ootrando_overworldmap_hamsda/scripts/update_entrance.lua @@ -1,232 +1,61 @@ -function update_smallkeys() - for _,dungeon in ipairs(dungeons) do - local key_object = get_object(dungeon.."_small_keys") - if key_object then - if has(dungeon.."_reg") then - key_object.MaxCount = key_counts["vanilla"][dungeon] - else - key_object.MaxCount = key_counts["mq"][dungeon] - end - end - end - - local gf_keys = get_object("gf_small_keys") - if gf_keys then - gf_keys.MaxCount = 4 +for section,info in pairs(info_per_section) do + local section_object = get_object(section) + if section_object then + info.region = section_object.Owner.Parent.Name end end - - -vanilla_captures = { - ["setting_entrance_grottos_shuffle"] = { - ["@Kokiri Forest -> KF Storms Grotto/Grotto"] = "entrance_grotto_generic", - ["@Lost Woods -> LW Near Shortcuts Grotto/Grotto"] = "entrance_grotto_generic", - ["@LW Beyond Mido -> Deku Theater/Grotto"] = "entrance_grotto_theater", - ["@LW Beyond Mido -> LW Scrubs Grotto/Grotto"] = "entrance_grotto_scrub", - ["@Sacred Forest Meadow -> SFM Fairy Grotto/Grotto"] = "entrance_grotto_fairy", - ["@Sacred Forest Meadow -> SFM Storms Grotto/Grotto"] = "entrance_grotto_scrub", - ["@SFM Entryway -> SFM Wolfos Grotto/Grotto"] = "entrance_grotto_enemy", - ["@Hyrule Field -> HF Fairy Grotto/Grotto"] = "entrance_grotto_fairy", - ["@Hyrule Field -> HF Near Kak Grotto/Grotto"] = "entrance_grotto_field_kak", - ["@Hyrule Field -> HF Inside Fence Grotto/Grotto"] = "entrance_grotto_scrub", - ["@Hyrule Field -> HF Open Grotto/Grotto"] = "entrance_grotto_generic", - ["@Hyrule Field -> HF Tektite Grotto/Grotto"] = "entrance_grotto_tektite", - ["@Hyrule Field -> HF Cow Grotto/Grotto"] = "entrance_grotto_field_valley", - ["@Hyrule Field -> HF Near Market Grotto/Grotto"] = "entrance_grotto_generic", - ["@Hyrule Field -> HF Southeast Grotto/Grotto"] = "entrance_grotto_generic", - ["@Lon Lon Ranch -> LLR Grotto/Grotto"] = "entrance_grotto_scrub", - ["@Kakariko Village -> Kak Redead Grotto/Grotto"] = "entrance_grotto_enemy", - ["@Kak Backyard -> Kak Open Grotto/Grotto"] = "entrance_grotto_generic", - ["@Graveyard -> Graveyard Composers Grave/Grotto"] = "entrance_grotto_comp", - ["@Graveyard -> Graveyard Dampes Grave/Grotto"] = "entrance_grotto_dampe", - ["@Graveyard -> Graveyard Heart Piece Grave/Grotto"] = "entrance_grotto_hp", - ["@Graveyard -> Graveyard Shield Grave/Grotto"] = "", --TODO: new captures? - ["@Hyrule Castle Grounds -> HC Storms Grotto/Grotto"] = "entrance_grotto_castle_storms", - ["@Death Mountain Summit -> DMT Cow Grotto/Grotto"] = "entrance_grotto_cow", - ["@Death Mountain -> DMT Storms Grotto/Grotto"] = "entrance_grotto_generic", - ["@DMC Upper Nearby -> DMC Upper Grotto/Grotto"] = "entrance_grotto_generic", - ["@DMC Lower Nearby -> DMC Hammer Grotto/Grotto"] = "entrance_grotto_scrub", - ["@Goron City -> GC Grotto/Grotto"] = "entrance_grotto_scrub", - ["@Lake Hylia -> LH Grotto/Grotto"] = "entrance_grotto_scrub", - ["@Zora River -> ZR Fairy Grotto/Grotto"] = "entrance_grotto_fairy", - ["@Zora River -> ZR Open Grotto/Grotto"] = "entrance_grotto_generic", - ["@Zora River -> ZR Storms Grotto/Grotto"] = "entrance_grotto_scrub", - ["@Zoras Domain -> ZD Storms Grotto/Grotto"] = "entrance_grotto_fairy", - ["@Gerudo Valley -> GV Octorok Grotto/Grotto"] = "", --visibility_rules to hide - ["@GV Fortress Side -> GV Storms Grotto/Grotto"] = "entrance_grotto_scrub", - ["@Gerudo Fortress -> GF Storms Grotto/Grotto"] = "entrance_grotto_fairy", - ["@Desert Colossus -> Colossus Grotto/Grotto"] = "entrance_grotto_scrub", - }, - ["setting_entrance_interiors_simple"] = { - ["@Kokiri Forest -> KF House of Twins/House"] = "", --visibility_rules to hide - ["@Kokiri Forest -> KF Know It All House/House"] = "", --visibility_rules to hide - ["@Kokiri Forest -> KF Kokiri Shop/House"] = "entrance_house_shop", - ["@Kokiri Forest -> KF Midos House/House"] = "", --TODO: new captures? - ["@Kokiri Forest -> KF Sarias House/House"] = "", --visibility_rules to hide - ["@Lon Lon Ranch -> LLR Stables/House"] = "entrance_house_cow", - ["@Lon Lon Ranch -> LLR Tower/House"] = "entrance_house_cow", - ["@Lon Lon Ranch -> LLR Talons House/House"] = "entrance_house_talon_child", - ["@Kakariko Village -> Kak Carpenter Boss House/House"] = "entrance_house_talon_adult", - ["@Kakariko Village -> Kak House of Skulltula/House"] = "entrance_house_skull", - ["@Kakariko Village -> Kak Impas House/House"] = "entrance_house_cow", - ["@Kak Impas Ledge -> Kak Impas House Back/House"] = "entrance_house_cow", - ["@Kakariko Village -> Kak Bazaar/House"] = "entrance_house_shop", - ["@Kakariko Village -> Kak Shooting Gallery/House"] = "entrance_house_shoot_adult", - ["@Kak Backyard -> Kak Odd Medicine Building/House"] = "entrance_house_hag", - ["@Graveyard -> Graveyard Dampes House/House"] = "", --visibility_rules to hide - ["@Market -> Market Bazaar/House"] = "entrance_house_shop", - ["@Market -> Market Bombchu Bowling/House"] = "entrance_house_bowling", - ["@Market -> Market Bombchu Shop/House"] = "entrance_house_shop", - ["@Market -> Market Man in Green House/House"] = "", --visibility_rules to hide - ["@Market -> Market Mask Shop/House"] = "entrance_house_masks", - ["@Market -> Market Potion Shop/House"] = "entrance_house_shop", - ["@Market -> Market Shooting Gallery/House"] = "entrance_house_shoot_child", - ["@Market -> Market Treasure Chest Game/House"] = "entrance_house_chest", - ["@Market Entrance -> Market Guard House/House"] = "entrance_house_pot", - ["@Ganons Castle Grounds -> OGC Great Fairy Fountain/House"] = "entrance_house_fairy", - ["@Hyrule Castle Grounds -> HC Great Fairy Fountain/House"] = "entrance_house_fairy", - ["@Death Mountain Summit -> DMT Great Fairy Fountain/House"] = "entrance_house_fairy", - ["@DMC Lower Nearby -> DMC Great Fairy Fountain/House"] = "entrance_house_fairy", - ["@Goron City -> GC Shop/House"] = "entrance_house_shop", - ["@Lake Hylia -> LH Fishing Hole/House"] = "entrance_house_fishing", - ["@Lake Hylia -> LH Lab/House"] = "entrance_house_lab", - ["@Zoras Domain -> ZD Shop/House"] = "entrance_house_shop", - ["@Zoras Fountain -> ZF Great Fairy Fountain/House"] = "entrance_house_fairy", - ["@GV Fortress Side -> GV Carpenter Tent/House"] = "", --visibility_rules to hide - ["@Desert Colossus -> Colossus Great Fairy Fountain/House"] = "entrance_house_fairy", - }, - ["setting_entrance_interiors_all"] = { - ["@Kokiri Forest -> KF Links House/House"] = "entrance_house_link", - ["@Kakariko Village -> Kak Potion Shop Front/House"] = "entrance_house_shop", - ["@Kakariko Village -> Kak Windmill/House"] = "entrance_house_windmill", - ["@Kak Backyard -> Kak Potion Shop Back/House"] = "entrance_house_shop", - ["@ToT Entrance -> Temple of Time/House"] = "entrance_house_tot", - }, - ["setting_entrance_dungeons_shuffle"] = { - ["@KF Outside Deku Tree -> Deku Tree Lobby/Dungeon"] = "entrance_dungeon_deku", - ["@Sacred Forest Meadow -> Forest Temple Lobby/Dungeon"] = "entrance_dungeon_forest", - ["@Kakariko Village -> Bottom of the Well/Dungeon"] = "entrance_dungeon_botw", - ["@Graveyard Warp Pad Region -> Shadow Temple Entryway/Dungeon"] = "entrance_dungeon_shadow", - ["@Dodongos Cavern Entryway -> Dodongos Cavern Beginning/Dungeon"] = "entrance_dungeon_dodongo", - ["@Fire Temple Entrance -> Fire Temple Lower/Dungeon"] = "entrance_dungeon_fire", - ["@Lake Hylia -> Water Temple Lobby/Dungeon"] = "entrance_dungeon_water", - ["@Zoras Fountain -> Jabu Jabus Belly Beginning/Dungeon"] = "entrance_dungeon_jabu", - ["@Zoras Fountain -> Ice Cavern Beginning/Dungeon"] = "entrance_dungeon_ice", - ["@Gerudo Fortress -> Gerudo Training Grounds Lobby/Dungeon"] = "entrance_dungeon_gtg", - ["@Desert Colossus -> Spirit Temple Lobby/Dungeon"] = "entrance_dungeon_spirit", - }, - ["Overworld"] = { - ["@Kokiri Forest -> Lost Woods/Overworld"] = "entrance_overworld_lw", - ["@Kokiri Forest -> LW Bridge From Forest/Overworld"] = "entrance_overworld_bridge", - ["@Lost Woods -> GC Woods Warp/Overworld"] = "entrance_overworld_gc", - ["@Lost Woods -> Zora River/Overworld"] = "entrance_overworld_zr", - ["@LW Beyond Mido -> SFM Entryway/Overworld"] = "entrance_overworld_sfm", - ["@LW Forest Exit -> Kokiri Forest/Overworld"] = "entrance_overworld_kf", - ["@LW Bridge -> Kokiri Forest/Overworld"] = "entrance_overworld_kf", - ["@LW Bridge -> Hyrule Field/Overworld"] = "entrance_overworld_hf", - ["@SFM Entryway -> LW Beyond Mido/Overworld"] = "entrance_overworld_lw", - ["@Hyrule Field -> Market Entrance/Overworld"] = "entrance_overworld_cte", - ["@Hyrule Field -> Gerudo Valley/Overworld"] = "entrance_overworld_gv", - ["@Hyrule Field -> Kakariko Village/Overworld"] = "entrance_overworld_kak", - ["@Hyrule Field -> Lake Hylia/Overworld"] = "entrance_overworld_lh", - ["@Hyrule Field -> Lon Lon Ranch/Overworld"] = "entrance_overworld_llr", - ["@Hyrule Field -> LW Bridge/Overworld"] = "entrance_overworld_bridge", - ["@Hyrule Field -> ZR Front/Overworld"] = "entrance_overworld_zr", - ["@Lon Lon Ranch -> Hyrule Field/Overworld"] = "entrance_overworld_hf", - ["@Kakariko Village -> Graveyard/Overworld"] = "entrance_overworld_gy", - ["@Kakariko Village -> Hyrule Field/Overworld"] = "entrance_overworld_hf", - ["@Kak Behind Gate -> Death Mountain/Overworld"] = "entrance_overworld_dmt", - ["@Graveyard -> Kakariko Village/Overworld"] = "entrance_overworld_kak", - ["@Market -> Castle Grounds/Overworld"] = "entrance_overworld_cg", - ["@Market -> Market Entrance/Overworld"] = "entrance_overworld_cte", - ["@Market -> ToT Entrance/Overworld"] = "entrance_overworld_tot", - ["@Market Entrance -> Market/Overworld"] = "entrance_overworld_ct", - ["@Market Entrance -> Hyrule Field/Overworld"] = "entrance_overworld_hf", - ["@ToT Entrance -> Market/Overworld"] = "entrance_overworld_ct", - ["@Castle Grounds -> Market/Overworld"] = "entrance_overworld_ct", - ["@Death Mountain -> Goron City/Overworld"] = "entrance_overworld_gc", - ["@Death Mountain -> Kak Behind Gate/Overworld"] = "entrance_overworld_kak", - ["@Death Mountain Summit -> DMC Upper Local/Overworld"] = "entrance_overworld_dmc", - ["@DMT Owl Flight -> Kak Impas Ledge/Overworld"] = "entrance_overworld_kak", - ["@DMC Lower Nearby -> GC Darunias Chamber/Overworld"] = "entrance_overworld_gc", - ["@DMC Upper Nearby -> Death Mountain Summit/Overworld"] = "entrance_overworld_dmt", - ["@GC Darunias Chamber -> DMC Lower Local/Overworld"] = "entrance_overworld_dmc", - ["@Goron City -> Death Mountain/Overworld"] = "entrance_overworld_dmt", - ["@GC Woods Warp -> Lost Woods/Overworld"] = "entrance_overworld_lw", - ["@Lake Hylia -> Hyrule Field/Overworld"] = "entrance_overworld_hf", - ["@Lake Hylia -> Zoras Domain/Overworld"] = "entrance_overworld_zd", - ["@LH Owl Flight -> Hyrule Field/Overworld"] = "entrance_overworld_hf", - ["@Zora River -> Lost Woods/Overworld"] = "entrance_overworld_lw", - ["@ZR Behind Waterfall -> Zoras Domain/Overworld"] = "entrance_overworld_zd", - ["@ZR Front -> Hyrule Field/Overworld"] = "entrance_overworld_hf", - ["@Zoras Domain -> Lake Hylia/Overworld"] = "entrance_overworld_lh", - ["@Zoras Domain -> ZR Behind Waterfall/Overworld"] = "entrance_overworld_zr", - ["@ZD Behind King Zora -> Zoras Fountain/Overworld"] = "entrance_overworld_zf", - ["@Zoras Fountain -> ZD Behind King Zora/Overworld"] = "entrance_overworld_zd", - ["@Gerudo Valley -> Hyrule Field/Overworld"] = "entrance_overworld_hf", - ["@GV Fortress Side -> Gerudo Fortress/Overworld"] = "entrance_overworld_gf", - ["@Gerudo Fortress -> GV Fortress Side/Overworld"] = "entrance_overworld_gv", - ["@GF Outside Gate -> Wasteland Near Fortress/Overworld"] = "entrance_overworld_wl", - ["@Wasteland Near Colossus -> Desert Colossus/Overworld"] = "entrance_overworld_col", - ["@Wasteland Near Fortress -> GF Outside Gate/Overworld"] = "entrance_overworld_gf", - ["@Desert Colossus -> Wasteland Near Colossus/Overworld"] = "entrance_overworld_wl", - } -} function update_vanilla_captures() - for setting,captures in pairs(vanilla_captures) do - if setting ~= "Overworld" then - local has_setting = has(setting) - if not_like_cache(setting, has_setting) then - for location,item in pairs(captures) do - local location_object = get_object(location) - local item_object = get_object(item) - if location_object and item_object then - if has_setting then - location_object.CapturedItem = nil - else - location_object.CapturedItem = item_object - end - end + for section,info in pairs(info_per_section) do + local has_setting = has(info.setting) + if not_like_cache(info.setting, has_setting) then + local section_object = get_object(section) + local item_object = get_object(info.vanilla_capture) + if section_object and item_object then + if has_setting then + section_object.CapturedItem = nil + else + section_object.CapturedItem = item_object end end end end end - - -capture_badge_locations = {} -capture_badge_cache = {} -function badge_locations() - for location,section in pairs(capture_badge_locations) do - local target = get_object(location) - local source = get_object(section) - if target and source then - -- Has the captured item changed since last update - if source.CapturedItem ~= capture_badge_cache[source] then - -- Does the target location have a badge, if it does remove it - if capture_badge_cache[target] then - target:RemoveBadge(capture_badge_cache[target]) - capture_badge_cache[target] = nil - capture_badge_cache[source] = nil - end - -- Check if a captured item exists, add it as badge - if source.CapturedItem then - capture_badge_cache[target] = target:AddBadge(source.CapturedItem.PotentialIcon) - capture_badge_cache[source] = source.CapturedItem - end - end +function get_capture_per_section(section) + local section_object = get_object(section) + if section_object then + local capture = section_object.CapturedItem + if capture and capture.Name then + return capture.Name + end + end + return nil +end +function update_current_captures() + for region,_ in pairs(origin_per_special_region) do + origin_per_special_region[region] = "" + end + for section,info in pairs(info_per_section) do + info.capture = get_capture_per_section(section) + if info.region and info.region ~= "Special Regions" + and info.capture and origin_per_special_region[info.capture] + then + origin_per_special_region[info.capture] = info.region or "" + if debugging then print("special ", info.capture, "at", info.region) end end end end - - function tracker_on_accessibility_updated() update_smallkeys() + update_fortress() + update_collected_capture() update_vanilla_captures() - --badge_locations() + update_current_captures() + update_free_zelda() + build_regions() apply_queued_changes() + get_object("dummy").Active = not get_object("dummy").Active end \ No newline at end of file diff --git a/ootrando_overworldmap_hamsda/scripts/update_shared.lua b/ootrando_overworldmap_hamsda/scripts/update_shared.lua new file mode 100644 index 00000000..a8736c56 --- /dev/null +++ b/ootrando_overworldmap_hamsda/scripts/update_shared.lua @@ -0,0 +1,248 @@ +dungeons = { + "forest", + "fire", + "water", + "spirit", + "shadow", + "botw", + "gtg", + "gc" +} +key_counts = { + vanilla = { + forest = 5, + fire = 8, + water = 6, + spirit = 5, + shadow = 5, + botw = 3, + gtg = 9, + gc = 2, + }, + mq = { + forest = 6, + fire = 5, + water = 2, + spirit = 7, + shadow = 6, + botw = 2, + gtg = 3, + gc = 3, + } +} +function update_smallkeys() + for _,dungeon in ipairs(dungeons) do + local key_object = get_object(dungeon.."_small_keys") + if key_object then + if has(dungeon.."_reg") then + key_object.MaxCount = key_counts["vanilla"][dungeon] + else + key_object.MaxCount = key_counts["mq"][dungeon] + end + if not has_keys then + key_object.AcquiredCount = key_object.MaxCount + local bk = get_object(dungeon.."_boss_key") + if bk then + bk.Active = true + end + end + end + end +end + + + +max_amount_per_bridge_stage = {0, 0, 3, 6, 9, 100} +function update_bridge_amount_max() + local setting_bridge = get_object("setting_bridge") + local setting_bridge_amount = get_object("setting_bridge_amount") + if setting_bridge and setting_bridge.CurrentStage and setting_bridge_amount then + setting_bridge_amount.MaxCount = max_amount_per_bridge_stage[setting_bridge.CurrentStage + 1] or 0 + end +end + + + +function update_fortress() + local setting_card = has("setting_shuffle_card_yes") + local setting_normal = has("gerudo_fortress_normal") + local setting_fast = has("gerudo_fortress_fast") + local setting_open = has("gerudo_fortress_open") + + local item_card = get_object("gerudocard") + local item_gf_keys = get_object("gf_small_keys") + + if item_gf_keys then + if setting_open then + item_gf_keys.MaxCount = 0 + elseif setting_fast then + item_gf_keys.MaxCount = 1 + elseif setting_normal then + item_gf_keys.MaxCount = 4 + end + if not has_keys then + item_gf_keys.AcquiredCount = item_gf_keys.MaxCount + end + end + + if item_card and setting_open then + if not setting_card then + item_card.Active = true + elseif not_like_cache("gerudo_fortress_open", setting_open) + or not_like_cache("setting_shuffle_card_yes", setting_card) then + item_card.Active = not setting_card + end + end +end + + + +function get_first_free_bottle() + for i=1,4 do + local bottle = get_object("bottle"..i) + if bottle and bottle.CurrentStage == 0 then + return bottle + end + end + return nil +end +function get_kid_trade() + local trade = get_object("kidtrade") + if trade then + return trade + end + return nil +end +function get_adult_trade() + local trade = get_object("adulttrade") + if trade then + return trade + end + return nil +end +capture_mappings = { + ["capture_bottle"] = { + 1, + get_first_free_bottle + }, + ["capture_ruto"] = { + 2, + get_first_free_bottle + }, + ["capture_childegg"] = { + 1, + get_kid_trade + }, + ["capture_childcucco"] = { + 2, + get_kid_trade + }, + ["capture_letter"] = { + 3, + get_kid_trade + }, + ["capture_lettershown"] = { + 4, + get_kid_trade + }, + ["capture_keaton"] = { + 5, + get_kid_trade + }, + ["capture_keatonsold"] = { + 6, + get_kid_trade + }, + ["capture_skullmask"] = { + 7, + get_kid_trade + }, + ["capture_skullsold"] = { + 8, + get_kid_trade + }, + ["capture_spooky"] = { + 9, + get_kid_trade + }, + ["capture_spookysold"] = { + 10, + get_kid_trade + }, + ["capture_bunny"] = { + 11, + get_kid_trade + }, + ["capture_bunnysold"] = { + 12, + get_kid_trade + }, + ["capture_truth"] = { + 13, + get_kid_trade + }, + ["capture_adultegg"] = { + 1, + get_adult_trade + }, + ["capture_adultcucco"] = { + 2, + get_adult_trade + }, + ["capture_cojiro"] = { + 3, + get_adult_trade + }, + ["capture_mushroom"] = { + 4, + get_adult_trade + }, + ["capture_oddpotion"] = { + 5, + get_adult_trade + }, + ["capture_saw"] = { + 6, + get_adult_trade + }, + ["capture_brokensword"] = { + 7, + get_adult_trade + }, + ["capture_prescription"] = { + 8, + get_adult_trade + }, + ["capture_frog"] = { + 9, + get_adult_trade + }, + ["capture_eyedrops"] = { + 10, + get_adult_trade + }, + ["capture_claim"] = { + 11, + get_adult_trade + } +} +function update_collected_capture() + for code,data in pairs(capture_mappings) do + local capture = get_object(code) + if capture and capture.Active then + capture.Active = false + local item = data[2]() + if item then + item.CurrentStage = data[1] + end + end + end +end + +function update_free_zelda() + local kid_trade = get_kid_trade() + local setting_zelda = has("setting_zelda_free") + if kid_trade and not_like_cache("setting_zelda_free", setting_zelda) and setting_zelda then + kid_trade.CurrentStage = 3 + end +end \ No newline at end of file diff --git a/ootrando_overworldmap_hamsda/settings.json b/ootrando_overworldmap_hamsda/settings.json index 8f8e8894..a20d73d1 100644 --- a/ootrando_overworldmap_hamsda/settings.json +++ b/ootrando_overworldmap_hamsda/settings.json @@ -1,3 +1,4 @@ { - "disabled_image_filter": "brightness|0.35" + "disabled_image_filter": "brightness|0.35", + "enable_accessibility_rule_caching": true } \ No newline at end of file diff --git a/repository.json b/repository.json index 3158b68d..41d25371 100644 --- a/repository.json +++ b/repository.json @@ -10,7 +10,7 @@ "pins", "chathud" ], - "version": "2.10.0.0", + "version": "3.0.0.0", "uid": "ootrando_overworldmap_hamsda", "link": "https://hamsda.github.io/EmoTrackerPacks/ootrando_overworldmap_hamsda.zip", "documentation_url": "https://github.com/Hamsda/EmoTrackerPacks/blob/master/ootrando_overworldmap_hamsda/README.md",