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

@@ -1,22 +1,15 @@
class Dungeon(object):
def __init__(self, world, name, hint, font_color, boss_key, small_keys, dungeon_items):
def to_array(obj):
if obj == None:
return []
if isinstance(obj, list):
return obj
else:
return [obj]
def __init__(self, world, name, hint, font_color):
self.multiworld = world
self.world = world
self.name = name
self.hint_text = hint
self.font_color = font_color
self.regions = []
self.boss_key = to_array(boss_key)
self.small_keys = to_array(small_keys)
self.dungeon_items = to_array(dungeon_items)
self.boss_key = []
self.small_keys = []
self.dungeon_items = []
for region in world.multiworld.regions:
if region.player == world.player and region.dungeon == self.name:
@@ -48,6 +41,10 @@ class Dungeon(object):
return item.name in [dungeon_item.name for dungeon_item in self.all_items]
def item_name(self, name):
return f"{name} ({self.name})"
def __str__(self):
return str(self.__unicode__())