Ocarina of Time 7.0 (#1277)

## What is this fixing or adding?
- Adds the majority of OoTR 7.0 features:
  - Pot shuffle, Freestanding item shuffle, Crate shuffle, Beehive shuffle
  - Key rings mode
  - Dungeon shortcuts to speed up dungeons
  - "Regional" shuffle for dungeon items
  - New options for shop pricing in shopsanity
  - Expanded Ganon's Boss Key shuffle options
  - Pre-planted beans
  - Improved Chest Appearance Matches Contents mode
  - Blue Fire Arrows
  - Bonk self-damage
  - Finer control over MQ dungeons and spawn position randomization
- Several bugfixes as a result of the update:
  - Items recognized by the server and valid starting items are now in a 1-to-1 correspondence. In particular, starting with keys is now supported.
  - Entrance randomization success rate improved. Hopefully it is now at 100%. 

Co-authored-by: Zach Parks <zach@alliware.com>
This commit is contained in:
espeon65536
2022-12-10 21:11:40 -06:00
committed by GitHub
parent 2cdd03f786
commit aee0df5359
110 changed files with 37691 additions and 18648 deletions

View File

@@ -5,17 +5,21 @@
"locations": {
"Spirit Temple MQ Entrance Front Left Chest": "True",
"Spirit Temple MQ Entrance Back Left Chest": "
here(can_blast_or_smash) and
(can_use(Slingshot) or can_use(Bow))",
here(can_blast_or_smash) and (can_use(Slingshot) or can_use(Bow))",
"Spirit Temple MQ Entrance Back Right Chest": "
has_bombchus or can_use(Bow) or can_use(Hookshot) or
can_use(Slingshot) or can_use(Boomerang)"
has_bombchus or can_use(Bow) or can_use(Hookshot) or
can_use(Slingshot) or can_use(Boomerang)",
"Spirit Temple MQ Lobby Pot 1": "True",
"Spirit Temple MQ Lobby Pot 2": "True",
"Spirit Temple MQ Lobby Pot 3": "True",
"Spirit Temple MQ Lobby Pot 4": "True"
},
"exits": {
"Desert Colossus From Spirit Lobby": "True",
"Child Spirit Temple": "is_child",
"Adult Spirit Temple": "
has_bombchus and can_use(Longshot) and can_use(Silver_Gauntlets)"
can_use(Longshot) and
((can_use(Silver_Gauntlets) and has_bombchus) or spirit_temple_shortcuts)"
}
},
{
@@ -24,18 +28,29 @@
"locations": {
"Spirit Temple MQ Child Hammer Switch Chest": "
at('Adult Spirit Temple', (Small_Key_Spirit_Temple, 7) and Megaton_Hammer)",
"Spirit Temple MQ Map Room Enemy Chest": "
(Sticks or Kokiri_Sword) and
has_bombchus and Slingshot and can_use(Dins_Fire)",
"Spirit Temple MQ Map Chest": "Sticks or Kokiri_Sword or Bombs",
"Spirit Temple MQ Map Room Enemy Chest": "
(Sticks or Kokiri_Sword) and has_bombchus and Slingshot and can_use(Dins_Fire)",
"Spirit Temple MQ Silver Block Hallway Chest": "
has_bombchus and (Small_Key_Spirit_Temple, 7) and Slingshot and
has_bombchus and (Small_Key_Spirit_Temple, 7) and Slingshot and
(can_use(Dins_Fire) or
at('Adult Spirit Temple', (can_use(Fire_Arrows) or
(logic_spirit_mq_frozen_eye and can_use(Bow) and can_play(Song_of_Time)))))",
"Spirit Temple MQ Child Recovery Heart 1": "can_use(Slingshot) or can_use(Boomerang)",
"Spirit Temple MQ Child Recovery Heart 2": "can_use(Slingshot) or can_use(Boomerang)",
"Spirit Temple MQ Child Torch Slugs Room Pot": "True",
"Spirit Temple MQ Child 3 Gibdo Room Pot 1": "
(Sticks or Kokiri_Sword or (Bombs and can_use(Dins_Fire))) and has_bombchus and Slingshot",
"Spirit Temple MQ Child 3 Gibdo Room Pot 2": "
(Sticks or Kokiri_Sword or (Bombs and can_use(Dins_Fire))) and has_bombchus and Slingshot",
"Spirit Temple MQ Child Stalfos Fight Pot 1": "
(Sticks or Kokiri_Sword) and has_bombchus and Slingshot",
"Spirit Temple MQ Child Stalfos Fight Pot 2": "
(Sticks or Kokiri_Sword) and has_bombchus and Slingshot",
"Spirit Temple MQ Child Stalfos Fight Pot 3": "
(Sticks or Kokiri_Sword) and has_bombchus and Slingshot",
"Fairy Pot": "
has_bottle and (Sticks or Kokiri_Sword) and
has_bombchus and Slingshot"
has_bottle and (Sticks or Kokiri_Sword) and has_bombchus and Slingshot"
},
"exits": {
"Spirit Temple Shared": "has_bombchus and (Small_Key_Spirit_Temple, 2)"
@@ -45,39 +60,27 @@
"region_name": "Adult Spirit Temple",
"dungeon": "Spirit Temple",
"locations": {
"Spirit Temple MQ Child Climb South Chest": "(Small_Key_Spirit_Temple, 7)",
"Spirit Temple MQ Statue Room Lullaby Chest": "can_play(Zeldas_Lullaby)",
"Spirit Temple MQ Statue Room Invisible Chest": "
logic_lens_spirit_mq or can_use(Lens_of_Truth)",
"Spirit Temple MQ Beamos Room Chest": "(Small_Key_Spirit_Temple, 5)",
"Spirit Temple MQ Chest Switch Chest": "
(Small_Key_Spirit_Temple, 5) and can_play(Song_of_Time)",
"Spirit Temple MQ Boss Key Chest": "
(Small_Key_Spirit_Temple, 5) and can_play(Song_of_Time) and Mirror_Shield",
"Spirit Temple MQ GS Nine Thrones Room West": "(Small_Key_Spirit_Temple, 7)",
"Spirit Temple MQ GS Nine Thrones Room North": "(Small_Key_Spirit_Temple, 7)"
"Spirit Temple MQ Child Climb South Chest": "(Small_Key_Spirit_Temple, 7) and has_explosives",
"Spirit Temple MQ Statue Room Lullaby Chest": "can_play(Zeldas_Lullaby) and can_break_crate",
"Spirit Temple MQ Statue Room Invisible Chest": "logic_lens_spirit_mq or can_use(Lens_of_Truth)"
},
"exits": {
"Lower Adult Spirit Temple": "
Mirror_Shield and (can_use(Fire_Arrows) or
(logic_spirit_mq_lower_adult and can_use(Dins_Fire) and Bow))",
"Spirit Temple Shared": "True",
"Spirit Temple Boss Area": "
(Small_Key_Spirit_Temple, 6) and can_play(Zeldas_Lullaby) and Megaton_Hammer",
"Mirror Shield Hand": "
(Small_Key_Spirit_Temple, 5) and can_play(Song_of_Time) and
(logic_lens_spirit_mq or can_use(Lens_of_Truth))"
"Lower Adult Spirit Temple": "
Mirror_Shield and
(can_use(Fire_Arrows) or (logic_spirit_mq_lower_adult and can_use(Dins_Fire)))",
"Spirit Temple Beamos Room": "(Small_Key_Spirit_Temple, 5)",
"Spirit Temple Boss Door": "spirit_temple_shortcuts"
}
},
{
#In this region, child reachability really means age-unknown, but with the caveat
#that child has as least entered the dungeon. is_adult means is_adult as usual.
#All child specific logic must be anded with 7 keys to convert child-as-unknown-age
#back to child.
# In this region, child reachability really means age-unknown, but with the caveat that child has
# as least entered the dungeon. is_adult means is_adult as usual. All child specific logic must be
# anded with 7 keys to convert child-as-unknown-age back to child.
"region_name": "Spirit Temple Shared",
"dungeon": "Spirit Temple",
"locations": {
"Spirit Temple MQ Child Climb North Chest": "(Small_Key_Spirit_Temple, 6)",
"Spirit Temple MQ Child Climb North Chest": "(Small_Key_Spirit_Temple, 6) and has_explosives",
"Spirit Temple MQ Compass Chest": "
(can_use(Slingshot) and (Small_Key_Spirit_Temple, 7)) or
can_use(Bow) or
@@ -85,21 +88,41 @@
"Spirit Temple MQ Sun Block Room Chest": "
can_play(Song_of_Time) or logic_spirit_mq_sun_block_sot or
is_adult",
"Spirit Temple Silver Gauntlets Chest": "
((Small_Key_Spirit_Temple, 7) and
(can_play(Song_of_Time) or logic_spirit_mq_sun_block_sot or is_adult)) or
((Small_Key_Spirit_Temple, 4) and can_play(Song_of_Time) and (has_explosives or Nuts) and
(logic_lens_spirit_mq or can_use(Lens_of_Truth)))",
"Spirit Temple MQ Child Climb Pot": "(Small_Key_Spirit_Temple, 6)",
"Spirit Temple MQ Central Chamber Floor Pot 1": "True",
"Spirit Temple MQ Central Chamber Floor Pot 2": "True",
"Spirit Temple MQ Central Chamber Floor Pot 3": "True",
"Spirit Temple MQ Central Chamber Top Left Pot (Left)": "
(is_adult and (Hover_Boots or logic_spirit_lobby_jump)) or
can_play(Song_of_Time)",
"Spirit Temple MQ Central Chamber Top Left Pot (Right)": "
(is_child and Boomerang and (Kokiri_Sword or Sticks) and (Small_Key_Spirit_Temple, 7)) or
(is_adult and (Hover_Boots or logic_spirit_lobby_jump)) or
can_play(Song_of_Time) or
(Boomerang and (Kokiri_Sword or Sticks) and (Hover_Boots or logic_spirit_lobby_jump))",
"Spirit Temple MQ Sun Block Room Pot 1": "
can_play(Song_of_Time) or logic_spirit_mq_sun_block_sot or
is_adult",
"Spirit Temple MQ Sun Block Room Pot 2": "
can_play(Song_of_Time) or logic_spirit_mq_sun_block_sot or
is_adult",
"Spirit Temple MQ Central Chamber Crate 1": "can_break_crate",
"Spirit Temple MQ Central Chamber Crate 2": "can_break_crate",
"Spirit Temple MQ GS Sun Block Room": "
(logic_spirit_mq_sun_block_gs and Boomerang and
(can_play(Song_of_Time) or logic_spirit_mq_sun_block_sot)) or
is_adult"
},
"exits": {
"Silver Gauntlets Hand": "
((Small_Key_Spirit_Temple, 7) and
(can_play(Song_of_Time) or logic_spirit_mq_sun_block_sot or is_adult)) or
((Small_Key_Spirit_Temple, 4) and can_play(Song_of_Time) and
(logic_lens_spirit_mq or can_use(Lens_of_Truth)))",
"Desert Colossus": "
((Small_Key_Spirit_Temple, 7) and
(can_play(Song_of_Time) or logic_spirit_mq_sun_block_sot or is_adult)) or
((Small_Key_Spirit_Temple, 4) and can_play(Song_of_Time) and
((Small_Key_Spirit_Temple, 4) and can_play(Song_of_Time) and (has_explosives or Nuts) and
(logic_lens_spirit_mq or can_use(Lens_of_Truth)) and is_adult)"
}
},
@@ -109,39 +132,77 @@
"locations": {
"Spirit Temple MQ Leever Room Chest": "True",
"Spirit Temple MQ Symphony Room Chest": "
(Small_Key_Spirit_Temple, 7) and Megaton_Hammer and Ocarina and
Song_of_Time and Eponas_Song and Suns_Song and
Song_of_Storms and Zeldas_Lullaby",
(Small_Key_Spirit_Temple, 7) and Megaton_Hammer and Ocarina and
Song_of_Time and Eponas_Song and Suns_Song and Song_of_Storms and Zeldas_Lullaby",
"Spirit Temple MQ Entrance Front Right Chest": "Megaton_Hammer",
"Spirit Temple MQ Below 4 Wallmasters Pot 1": "True",
"Spirit Temple MQ Below 4 Wallmasters Pot 2": "True",
"Spirit Temple MQ GS Leever Room": "True",
"Spirit Temple MQ GS Symphony Room": "
(Small_Key_Spirit_Temple, 7) and Megaton_Hammer and Ocarina and
Song_of_Time and Eponas_Song and Suns_Song and
Song_of_Storms and Zeldas_Lullaby"
(Small_Key_Spirit_Temple, 7) and Megaton_Hammer and Ocarina and
Song_of_Time and Eponas_Song and Suns_Song and Song_of_Storms and Zeldas_Lullaby"
}
},
{
"region_name": "Spirit Temple Boss Area",
"region_name": "Spirit Temple Beamos Room",
"dungeon": "Spirit Temple",
"locations": {
"Spirit Temple MQ Mirror Puzzle Invisible Chest": "
logic_lens_spirit_mq or can_use(Lens_of_Truth)",
"Spirit Temple Twinrova Heart": "Mirror_Shield and Boss_Key_Spirit_Temple",
"Twinrova": "Mirror_Shield and Boss_Key_Spirit_Temple"
"Spirit Temple MQ Beamos Room Chest": "has_explosives"
},
"exits": {
"Spirit Temple Beyond Beamos Room": "can_play(Song_of_Time) and (has_explosives or Nuts)",
"Spirit Temple Shifting Wall": "(Small_Key_Spirit_Temple, 6)"
}
},
{
"region_name": "Mirror Shield Hand",
"region_name": "Spirit Temple Beyond Beamos Room",
"dungeon": "Spirit Temple",
"locations": {
"Spirit Temple Mirror Shield Chest": "True"
"Spirit Temple MQ Chest Switch Chest": "True",
"Spirit Temple MQ Boss Key Chest": "Mirror_Shield",
"Spirit Temple Mirror Shield Chest": "logic_lens_spirit_mq or can_use(Lens_of_Truth)"
}
},
{
"region_name": "Silver Gauntlets Hand",
"region_name": "Spirit Temple Shifting Wall",
"dungeon": "Spirit Temple",
"locations": {
"Spirit Temple Silver Gauntlets Chest": "True"
"Spirit Temple MQ Shifting Wall Pot 1": "True",
"Spirit Temple MQ Shifting Wall Pot 2": "True",
"Spirit Temple MQ After Shifting Wall Room Pot 1": "True",
"Spirit Temple MQ After Shifting Wall Room Pot 2": "True",
"Spirit Temple MQ GS Nine Thrones Room West": "(Small_Key_Spirit_Temple, 7)",
"Spirit Temple MQ GS Nine Thrones Room North": "(Small_Key_Spirit_Temple, 7)"
},
"exits": {
"Spirit Temple Big Mirror Room": "can_play(Zeldas_Lullaby)"
}
},
{
"region_name": "Spirit Temple Big Mirror Room",
"dungeon": "Spirit Temple",
"locations": {
"Spirit Temple MQ Big Mirror Pot 1": "True",
"Spirit Temple MQ Big Mirror Pot 2": "True",
"Spirit Temple MQ Big Mirror Pot 3": "True",
"Spirit Temple MQ Big Mirror Pot 4": "True",
"Spirit Temple MQ Big Mirror Crate 1": "can_break_crate",
"Spirit Temple MQ Big Mirror Crate 2": "can_break_crate",
"Spirit Temple MQ Big Mirror Crate 3": "can_break_crate",
"Spirit Temple MQ Big Mirror Crate 4": "can_break_crate"
},
"exits": {
"Spirit Temple Mirror Puzzle": "Megaton_Hammer"
}
},
{
"region_name": "Spirit Temple Mirror Puzzle",
"dungeon": "Spirit Temple",
"locations": {
"Spirit Temple MQ Mirror Puzzle Invisible Chest": "logic_lens_spirit_mq or can_use(Lens_of_Truth)"
},
"exits": {
"Spirit Temple Boss Door": "Mirror_Shield"
}
}
]