Update with latest base ROM changes and such
Update with latest base ROM changes and such
This commit is contained in:
commit
9a2285f8f5
|
@ -267,7 +267,7 @@ class World(object):
|
||||||
marksequence(['standard', 'open', 'swordless'], self.mode)
|
marksequence(['standard', 'open', 'swordless'], self.mode)
|
||||||
markbool(self.place_dungeon_items)
|
markbool(self.place_dungeon_items)
|
||||||
marksequence(['ganon', 'pedestal', 'dungeons', 'triforcehunt', 'crystals'], self.goal)
|
marksequence(['ganon', 'pedestal', 'dungeons', 'triforcehunt', 'crystals'], self.goal)
|
||||||
marksequence(['vanilla', 'simple', 'restricted', 'full', 'full_cross_worlds','full_legacy', 'madness', 'insanity', 'dungeonsfull', 'dungeonssimple'], self.shuffle)
|
marksequence(['vanilla', 'simple', 'restricted', 'full', 'full_cross_worlds', 'full_legacy', 'madness', 'insanity', 'dungeonsfull', 'dungeonssimple'], self.shuffle)
|
||||||
marksequence(['easy', 'normal', 'hard', 'expert', 'insane'], self.difficulty)
|
marksequence(['easy', 'normal', 'hard', 'expert', 'insane'], self.difficulty)
|
||||||
marksequence(['none', 'display', 'timed', 'timed-ohko', 'timed-countdown', 'ohko'], self.timer)
|
marksequence(['none', 'display', 'timed', 'timed-ohko', 'timed-countdown', 'ohko'], self.timer)
|
||||||
marksequence(['on', 'off', 'random'], self.progressive)
|
marksequence(['on', 'off', 'random'], self.progressive)
|
||||||
|
@ -406,11 +406,11 @@ class CollectionState(object):
|
||||||
basemagic = 32
|
basemagic = 32
|
||||||
elif self.has('Half Magic'):
|
elif self.has('Half Magic'):
|
||||||
basemagic = 16
|
basemagic = 16
|
||||||
if self.world.difficulty == 'hard' and fullrefill == False:
|
if self.world.difficulty == 'hard' and not fullrefill:
|
||||||
basemagic = basemagic + int(basemagic * 0.5 * self.bottle_count())
|
basemagic = basemagic + int(basemagic * 0.5 * self.bottle_count())
|
||||||
elif self.world.difficulty == 'expert' and fullrefill == False:
|
elif self.world.difficulty == 'expert' and not fullrefill:
|
||||||
basemagic = basemagic + int(basemagic * 0.25 * self.bottle_count())
|
basemagic = basemagic + int(basemagic * 0.25 * self.bottle_count())
|
||||||
elif self.world.difficulty == 'insane' and fullrefill == False:
|
elif self.world.difficulty == 'insane' and not fullrefill:
|
||||||
basemagic = basemagic
|
basemagic = basemagic
|
||||||
else:
|
else:
|
||||||
basemagic = basemagic + basemagic * self.bottle_count()
|
basemagic = basemagic + basemagic * self.bottle_count()
|
||||||
|
|
|
@ -1379,15 +1379,15 @@ Bomb_Shop_Single_Cave_Doors = ['Waterfall of Wishing',
|
||||||
Single_Cave_Doors = ['Pyramid Fairy']
|
Single_Cave_Doors = ['Pyramid Fairy']
|
||||||
|
|
||||||
Single_Cave_Targets = ['Blinds Hideout',
|
Single_Cave_Targets = ['Blinds Hideout',
|
||||||
'Bonk Fairy',
|
'Bonk Fairy (Light)',
|
||||||
'Healer Fairy',
|
'Lake Hylia Healer Fairy',
|
||||||
'Healer Fairy',
|
'Swamp Healer Fairy',
|
||||||
'Healer Fairy',
|
'Desert Healer Fairy',
|
||||||
'Kings Grave',
|
'Kings Grave',
|
||||||
'Chicken House',
|
'Chicken House',
|
||||||
'Aginahs Cave',
|
'Aginahs Cave',
|
||||||
'Sahasrahlas Hut',
|
'Sahasrahlas Hut',
|
||||||
'Cave Shop',
|
'Cave Shop (Lake Hylia)',
|
||||||
'Sick Kids House',
|
'Sick Kids House',
|
||||||
'Lost Woods Gamble',
|
'Lost Woods Gamble',
|
||||||
'Fortune Teller (Light)',
|
'Fortune Teller (Light)',
|
||||||
|
@ -1415,12 +1415,12 @@ Single_Cave_Targets = ['Blinds Hideout',
|
||||||
'Pyramid Fairy',
|
'Pyramid Fairy',
|
||||||
'East Dark World Hint',
|
'East Dark World Hint',
|
||||||
'Palace of Darkness Hint',
|
'Palace of Darkness Hint',
|
||||||
'Healer Fairy',
|
'Dark Lake Hylia Healer Fairy',
|
||||||
'Healer Fairy',
|
'Dark Lake Hylia Ledge Healer Fairy',
|
||||||
'Dark Lake Hylia Ledge Spike Cave',
|
'Dark Lake Hylia Ledge Spike Cave',
|
||||||
'Dark Lake Hylia Ledge Hint',
|
'Dark Lake Hylia Ledge Hint',
|
||||||
'Hype Cave',
|
'Hype Cave',
|
||||||
'Bonk Fairy',
|
'Bonk Fairy (Dark)',
|
||||||
'Brewery',
|
'Brewery',
|
||||||
'C-Shaped House',
|
'C-Shaped House',
|
||||||
'Chest Game',
|
'Chest Game',
|
||||||
|
@ -1428,20 +1428,20 @@ Single_Cave_Targets = ['Blinds Hideout',
|
||||||
'Red Shield Shop',
|
'Red Shield Shop',
|
||||||
'Dark Sanctuary Hint',
|
'Dark Sanctuary Hint',
|
||||||
'Fortune Teller (Dark)',
|
'Fortune Teller (Dark)',
|
||||||
'Dark World Shop',
|
'Village of Outcasts Shop',
|
||||||
'Dark World Shop',
|
'Dark Lake Hylia Shop',
|
||||||
'Dark World Shop',
|
'Dark World Lumberjack Shop',
|
||||||
'Archery Game',
|
'Archery Game',
|
||||||
'Mire Shed',
|
'Mire Shed',
|
||||||
'Dark Desert Hint',
|
'Dark Desert Hint',
|
||||||
'Healer Fairy',
|
'Dark Desert Healer Fairy',
|
||||||
'Spike Cave',
|
'Spike Cave',
|
||||||
'Cave Shop',
|
'Cave Shop (Dark Death Mountain)',
|
||||||
'Healer Fairy',
|
'Dark Death Mountain Healer Fairy',
|
||||||
'Mimic Cave',
|
'Mimic Cave',
|
||||||
'Dark World Shop',
|
'Dark World Potion Shop',
|
||||||
'Lumberjack House',
|
'Lumberjack House',
|
||||||
'Fortune Teller (Light)',
|
'Lake Hylia Fortune Teller',
|
||||||
'Kakariko Gamble Game',
|
'Kakariko Gamble Game',
|
||||||
'Dam']
|
'Dam']
|
||||||
|
|
||||||
|
@ -1511,6 +1511,8 @@ mandatory_connections = [('Links House', 'Links House'), # unshuffled. For now
|
||||||
('Bat Cave Drop Ledge Mirror Spot', 'Bat Cave Drop Ledge'),
|
('Bat Cave Drop Ledge Mirror Spot', 'Bat Cave Drop Ledge'),
|
||||||
('East Dark World River Pier', 'East Dark World'),
|
('East Dark World River Pier', 'East Dark World'),
|
||||||
('West Dark World Gap', 'West Dark World'),
|
('West Dark World Gap', 'West Dark World'),
|
||||||
|
('East Dark World Broken Bridge Pass', 'East Dark World'),
|
||||||
|
('Northeast Dark World Broken Bridge Pass', 'Northeast Dark World'),
|
||||||
('Bumper Cave Entrance Rock', 'Bumper Cave Entrance'),
|
('Bumper Cave Entrance Rock', 'Bumper Cave Entrance'),
|
||||||
('Bumper Cave Entrance Drop', 'West Dark World'),
|
('Bumper Cave Entrance Drop', 'West Dark World'),
|
||||||
('Bumper Cave Entrance Mirror Spot', 'Death Mountain Entrance'),
|
('Bumper Cave Entrance Mirror Spot', 'Death Mountain Entrance'),
|
||||||
|
@ -1621,17 +1623,17 @@ default_connections = [('Waterfall of Wishing', 'Waterfall of Wishing'),
|
||||||
("Hyrule Castle Secret Entrance Drop", "Hyrule Castle Secret Entrance"),
|
("Hyrule Castle Secret Entrance Drop", "Hyrule Castle Secret Entrance"),
|
||||||
("Hyrule Castle Secret Entrance Stairs", "Hyrule Castle Secret Entrance"),
|
("Hyrule Castle Secret Entrance Stairs", "Hyrule Castle Secret Entrance"),
|
||||||
("Hyrule Castle Secret Entrance Exit", "Light World"),
|
("Hyrule Castle Secret Entrance Exit", "Light World"),
|
||||||
('Bonk Fairy (Light)', 'Bonk Fairy'),
|
('Bonk Fairy (Light)', 'Bonk Fairy (Light)'),
|
||||||
('Lake Hylia Fairy', 'Healer Fairy'),
|
('Lake Hylia Fairy', 'Lake Hylia Healer Fairy'),
|
||||||
('Lake Hylia Fortune Teller', 'Fortune Teller (Light)'),
|
('Lake Hylia Fortune Teller', 'Lake Hylia Fortune Teller'),
|
||||||
('Swamp Fairy', 'Healer Fairy'),
|
('Swamp Fairy', 'Swamp Healer Fairy'),
|
||||||
('Desert Fairy', 'Healer Fairy'),
|
('Desert Fairy', 'Desert Healer Fairy'),
|
||||||
('Kings Grave', 'Kings Grave'),
|
('Kings Grave', 'Kings Grave'),
|
||||||
('Tavern North', 'Tavern'),
|
('Tavern North', 'Tavern'),
|
||||||
('Chicken House', 'Chicken House'),
|
('Chicken House', 'Chicken House'),
|
||||||
('Aginahs Cave', 'Aginahs Cave'),
|
('Aginahs Cave', 'Aginahs Cave'),
|
||||||
('Sahasrahlas Hut', 'Sahasrahlas Hut'),
|
('Sahasrahlas Hut', 'Sahasrahlas Hut'),
|
||||||
('Cave Shop (Lake Hylia)', 'Cave Shop'),
|
('Cave Shop (Lake Hylia)', 'Cave Shop (Lake Hylia)'),
|
||||||
('Capacity Upgrade', 'Capacity Upgrade'),
|
('Capacity Upgrade', 'Capacity Upgrade'),
|
||||||
('Kakariko Well Drop', 'Kakariko Well (top)'),
|
('Kakariko Well Drop', 'Kakariko Well (top)'),
|
||||||
('Kakariko Well Cave', 'Kakariko Well (bottom)'),
|
('Kakariko Well Cave', 'Kakariko Well (bottom)'),
|
||||||
|
@ -1722,13 +1724,13 @@ default_connections = [('Waterfall of Wishing', 'Waterfall of Wishing'),
|
||||||
('East Dark World Hint', 'East Dark World Hint'),
|
('East Dark World Hint', 'East Dark World Hint'),
|
||||||
('Palace of Darkness Hint', 'Palace of Darkness Hint'),
|
('Palace of Darkness Hint', 'Palace of Darkness Hint'),
|
||||||
('Big Bomb Shop', 'Big Bomb Shop'),
|
('Big Bomb Shop', 'Big Bomb Shop'),
|
||||||
('Dark Lake Hylia Shop', 'Dark World Shop'),
|
('Dark Lake Hylia Shop', 'Dark Lake Hylia Shop'),
|
||||||
('Dark Lake Hylia Fairy', 'Healer Fairy'),
|
('Dark Lake Hylia Fairy', 'Dark Lake Hylia Healer Fairy'),
|
||||||
('Dark Lake Hylia Ledge Fairy', 'Healer Fairy'),
|
('Dark Lake Hylia Ledge Fairy', 'Dark Lake Hylia Ledge Healer Fairy'),
|
||||||
('Dark Lake Hylia Ledge Spike Cave', 'Dark Lake Hylia Ledge Spike Cave'),
|
('Dark Lake Hylia Ledge Spike Cave', 'Dark Lake Hylia Ledge Spike Cave'),
|
||||||
('Dark Lake Hylia Ledge Hint', 'Dark Lake Hylia Ledge Hint'),
|
('Dark Lake Hylia Ledge Hint', 'Dark Lake Hylia Ledge Hint'),
|
||||||
('Hype Cave', 'Hype Cave'),
|
('Hype Cave', 'Hype Cave'),
|
||||||
('Bonk Fairy (Dark)', 'Bonk Fairy'),
|
('Bonk Fairy (Dark)', 'Bonk Fairy (Dark)'),
|
||||||
('Brewery', 'Brewery'),
|
('Brewery', 'Brewery'),
|
||||||
('C-Shaped House', 'C-Shaped House'),
|
('C-Shaped House', 'C-Shaped House'),
|
||||||
('Chest Game', 'Chest Game'),
|
('Chest Game', 'Chest Game'),
|
||||||
|
@ -1738,20 +1740,20 @@ default_connections = [('Waterfall of Wishing', 'Waterfall of Wishing'),
|
||||||
('Red Shield Shop', 'Red Shield Shop'),
|
('Red Shield Shop', 'Red Shield Shop'),
|
||||||
('Dark Sanctuary Hint', 'Dark Sanctuary Hint'),
|
('Dark Sanctuary Hint', 'Dark Sanctuary Hint'),
|
||||||
('Fortune Teller (Dark)', 'Fortune Teller (Dark)'),
|
('Fortune Teller (Dark)', 'Fortune Teller (Dark)'),
|
||||||
('Dark World Shop', 'Dark World Shop'),
|
('Dark World Shop', 'Village of Outcasts Shop'),
|
||||||
('Dark World Lumberjack Shop', 'Dark World Shop'),
|
('Dark World Lumberjack Shop', 'Dark World Lumberjack Shop'),
|
||||||
('Dark World Potion Shop', 'Dark World Shop'),
|
('Dark World Potion Shop', 'Dark World Potion Shop'),
|
||||||
('Archery Game', 'Archery Game'),
|
('Archery Game', 'Archery Game'),
|
||||||
('Bumper Cave Exit (Top)', 'Bumper Cave Ledge'),
|
('Bumper Cave Exit (Top)', 'Bumper Cave Ledge'),
|
||||||
('Bumper Cave Exit (Bottom)', 'West Dark World'),
|
('Bumper Cave Exit (Bottom)', 'West Dark World'),
|
||||||
('Mire Shed', 'Mire Shed'),
|
('Mire Shed', 'Mire Shed'),
|
||||||
('Dark Desert Hint', 'Dark Desert Hint'),
|
('Dark Desert Hint', 'Dark Desert Hint'),
|
||||||
('Dark Desert Fairy', 'Healer Fairy'),
|
('Dark Desert Fairy', 'Dark Desert Healer Fairy'),
|
||||||
('Spike Cave', 'Spike Cave'),
|
('Spike Cave', 'Spike Cave'),
|
||||||
('Hookshot Cave', 'Hookshot Cave'),
|
('Hookshot Cave', 'Hookshot Cave'),
|
||||||
('Superbunny Cave (Top)', 'Superbunny Cave'),
|
('Superbunny Cave (Top)', 'Superbunny Cave'),
|
||||||
('Cave Shop (Dark Death Mountain)', 'Cave Shop'),
|
('Cave Shop (Dark Death Mountain)', 'Cave Shop (Dark Death Mountain)'),
|
||||||
('Dark Death Mountain Fairy', 'Healer Fairy'),
|
('Dark Death Mountain Fairy', 'Dark Death Mountain Healer Fairy'),
|
||||||
('Superbunny Cave (Bottom)', 'Superbunny Cave'),
|
('Superbunny Cave (Bottom)', 'Superbunny Cave'),
|
||||||
('Superbunny Cave Exit (Top)', 'Dark Death Mountain (Top)'),
|
('Superbunny Cave Exit (Top)', 'Dark Death Mountain (Top)'),
|
||||||
('Superbunny Cave Exit (Bottom)', 'Dark Death Mountain (East Bottom)'),
|
('Superbunny Cave Exit (Bottom)', 'Dark Death Mountain (East Bottom)'),
|
||||||
|
@ -2039,15 +2041,24 @@ exit_ids = {'Desert Palace Exit (South)': (0x09, 0x0A),
|
||||||
'Dam': 0x4E,
|
'Dam': 0x4E,
|
||||||
'Blinds Hideout': 0x61,
|
'Blinds Hideout': 0x61,
|
||||||
'Lumberjack House': 0x6B,
|
'Lumberjack House': 0x6B,
|
||||||
'Bonk Fairy': 0x71,
|
'Bonk Fairy (Light)': 0x71,
|
||||||
'Healer Fairy': 0x5E,
|
'Bonk Fairy (Dark)': 0x71,
|
||||||
|
'Lake Hylia Healer Fairy': 0x5E,
|
||||||
|
'Swamp Healer Fairy': 0x5E,
|
||||||
|
'Desert Healer Fairy': 0x5E,
|
||||||
|
'Dark Lake Hylia Healer Fairy': 0x5E,
|
||||||
|
'Dark Lake Hylia Ledge Healer Fairy': 0x5E,
|
||||||
|
'Dark Desert Healer Fairy': 0x5E,
|
||||||
|
'Dark Death Mountain Healer Fairy': 0x5E,
|
||||||
'Fortune Teller (Light)': 0x65,
|
'Fortune Teller (Light)': 0x65,
|
||||||
|
'Lake Hylia Fortune Teller': 0x65,
|
||||||
'Kings Grave': 0x5B,
|
'Kings Grave': 0x5B,
|
||||||
'Tavern': 0x43,
|
'Tavern': 0x43,
|
||||||
'Chicken House': 0x4B,
|
'Chicken House': 0x4B,
|
||||||
'Aginahs Cave': 0x4D,
|
'Aginahs Cave': 0x4D,
|
||||||
'Sahasrahlas Hut': 0x45,
|
'Sahasrahlas Hut': 0x45,
|
||||||
'Cave Shop': 0x58,
|
'Cave Shop (Lake Hylia)': 0x58,
|
||||||
|
'Cave Shop (Dark Death Mountain)': 0x58,
|
||||||
'Capacity Upgrade': 0x5D,
|
'Capacity Upgrade': 0x5D,
|
||||||
'Blacksmiths Hut': 0x64,
|
'Blacksmiths Hut': 0x64,
|
||||||
'Sick Kids House': 0x40,
|
'Sick Kids House': 0x40,
|
||||||
|
@ -2076,7 +2087,10 @@ exit_ids = {'Desert Palace Exit (South)': (0x09, 0x0A),
|
||||||
'East Dark World Hint': 0x69,
|
'East Dark World Hint': 0x69,
|
||||||
'Palace of Darkness Hint': 0x68,
|
'Palace of Darkness Hint': 0x68,
|
||||||
'Big Bomb Shop': 0x53,
|
'Big Bomb Shop': 0x53,
|
||||||
'Dark World Shop': 0x60,
|
'Village of Outcasts Shop': 0x60,
|
||||||
|
'Dark Lake Hylia Shop': 0x60,
|
||||||
|
'Dark World Lumberjack Shop': 0x60,
|
||||||
|
'Dark World Potion Shop': 0x60,
|
||||||
'Dark Lake Hylia Ledge Spike Cave': 0x70,
|
'Dark Lake Hylia Ledge Spike Cave': 0x70,
|
||||||
'Dark Lake Hylia Ledge Hint': 0x6A,
|
'Dark Lake Hylia Ledge Hint': 0x6A,
|
||||||
'Hype Cave': 0x3D,
|
'Hype Cave': 0x3D,
|
||||||
|
|
2
Main.py
2
Main.py
|
@ -287,6 +287,8 @@ def create_playthrough(world):
|
||||||
old_world.spoiler.paths = {location.name : get_path(state, location.parent_region) for sphere in collection_spheres for location in sphere}
|
old_world.spoiler.paths = {location.name : get_path(state, location.parent_region) for sphere in collection_spheres for location in sphere}
|
||||||
if any(exit == 'Pyramid Fairy' for path in old_world.spoiler.paths.values() for (_, exit) in path):
|
if any(exit == 'Pyramid Fairy' for path in old_world.spoiler.paths.values() for (_, exit) in path):
|
||||||
old_world.spoiler.paths['Big Bomb Shop'] = get_path(state, world.get_region('Big Bomb Shop'))
|
old_world.spoiler.paths['Big Bomb Shop'] = get_path(state, world.get_region('Big Bomb Shop'))
|
||||||
|
if any(exit == 'Swamp Palace Moat' for path in old_world.spoiler.paths.values() for (_, exit) in path) or 'Sunken Treasure' in old_world.required_locations:
|
||||||
|
old_world.spoiler.paths['Dam'] = get_path(state, world.get_region('Dam'))
|
||||||
|
|
||||||
# we can finally output our playthrough
|
# we can finally output our playthrough
|
||||||
old_world.spoiler.playthrough = OrderedDict([(str(i + 1), {str(location): str(location.item) for location in sphere}) for i, sphere in enumerate(collection_spheres)])
|
old_world.spoiler.playthrough = OrderedDict([(str(i + 1), {str(location): str(location.item) for location in sphere}) for i, sphere in enumerate(collection_spheres)])
|
||||||
|
|
25
Regions.py
25
Regions.py
|
@ -38,9 +38,17 @@ def create_regions(world):
|
||||||
create_cave_region('Light World Bomb Hut'),
|
create_cave_region('Light World Bomb Hut'),
|
||||||
create_cave_region('Kakariko Shop'),
|
create_cave_region('Kakariko Shop'),
|
||||||
create_cave_region('Fortune Teller (Light)'),
|
create_cave_region('Fortune Teller (Light)'),
|
||||||
|
create_cave_region('Lake Hylia Fortune Teller'),
|
||||||
create_cave_region('Lumberjack House'),
|
create_cave_region('Lumberjack House'),
|
||||||
create_cave_region('Bonk Fairy'), # near links house both worlds
|
create_cave_region('Bonk Fairy (Light)'),
|
||||||
create_cave_region('Healer Fairy'), # 8 entrances?
|
create_cave_region('Bonk Fairy (Dark)'),
|
||||||
|
create_cave_region('Lake Hylia Healer Fairy'),
|
||||||
|
create_cave_region('Swamp Healer Fairy'),
|
||||||
|
create_cave_region('Desert Healer Fairy'),
|
||||||
|
create_cave_region('Dark Lake Hylia Healer Fairy'),
|
||||||
|
create_cave_region('Dark Lake Hylia Ledge Healer Fairy'),
|
||||||
|
create_cave_region('Dark Desert Healer Fairy'),
|
||||||
|
create_cave_region('Dark Death Mountain Healer Fairy'),
|
||||||
create_cave_region('Chicken House', ['Chicken House']),
|
create_cave_region('Chicken House', ['Chicken House']),
|
||||||
create_cave_region('Aginahs Cave', ['Aginah\'s Cave']),
|
create_cave_region('Aginahs Cave', ['Aginah\'s Cave']),
|
||||||
create_cave_region('Sahasrahlas Hut', ['Sahasrahla\'s Hut - Left', 'Sahasrahla\'s Hut - Middle', 'Sahasrahla\'s Hut - Right', 'Sahasrahla']),
|
create_cave_region('Sahasrahlas Hut', ['Sahasrahla\'s Hut - Left', 'Sahasrahla\'s Hut - Middle', 'Sahasrahla\'s Hut - Right', 'Sahasrahla']),
|
||||||
|
@ -68,7 +76,8 @@ def create_regions(world):
|
||||||
create_cave_region('Ice Rod Cave', ['Ice Rod Cave']),
|
create_cave_region('Ice Rod Cave', ['Ice Rod Cave']),
|
||||||
create_cave_region('Good Bee Cave'),
|
create_cave_region('Good Bee Cave'),
|
||||||
create_cave_region('20 Rupee Cave'),
|
create_cave_region('20 Rupee Cave'),
|
||||||
create_cave_region('Cave Shop'), # two connectors in vanilla
|
create_cave_region('Cave Shop (Lake Hylia)'),
|
||||||
|
create_cave_region('Cave Shop (Dark Death Mountain)'),
|
||||||
create_cave_region('Bonk Rock Cave', ['Bonk Rock Cave']),
|
create_cave_region('Bonk Rock Cave', ['Bonk Rock Cave']),
|
||||||
create_cave_region('Library', ['Library']),
|
create_cave_region('Library', ['Library']),
|
||||||
create_cave_region('Kakariko Gamble Game'),
|
create_cave_region('Kakariko Gamble Game'),
|
||||||
|
@ -137,8 +146,9 @@ def create_regions(world):
|
||||||
create_dungeon_region('Tower of Hera (Basement)', ['Tower of Hera - Big Key Chest']),
|
create_dungeon_region('Tower of Hera (Basement)', ['Tower of Hera - Big Key Chest']),
|
||||||
create_dungeon_region('Tower of Hera (Top)', ['Tower of Hera - Compass Chest', 'Tower of Hera - Big Chest', 'Tower of Hera - Moldorm', 'Tower of Hera - Prize']),
|
create_dungeon_region('Tower of Hera (Top)', ['Tower of Hera - Compass Chest', 'Tower of Hera - Big Chest', 'Tower of Hera - Moldorm', 'Tower of Hera - Prize']),
|
||||||
|
|
||||||
create_dw_region('East Dark World', ['Pyramid', 'Catfish'], ['Pyramid Fairy', 'South Dark World Bridge', 'West Dark World Gap', 'Palace of Darkness', 'Dark Lake Hylia Drop (East)', 'Dark Lake Hylia Teleporter',
|
create_dw_region('East Dark World', ['Pyramid'], ['Pyramid Fairy', 'South Dark World Bridge', 'Palace of Darkness', 'Dark Lake Hylia Drop (East)', 'Dark Lake Hylia Teleporter',
|
||||||
'Hyrule Castle Ledge Mirror Spot', 'Dark Lake Hylia Fairy', 'Palace of Darkness Hint', 'East Dark World Hint', 'Dark World Potion Shop', 'Pyramid Hole']),
|
'Hyrule Castle Ledge Mirror Spot', 'Dark Lake Hylia Fairy', 'Palace of Darkness Hint', 'East Dark World Hint', 'Pyramid Hole', 'Northeast Dark World Broken Bridge Pass']),
|
||||||
|
create_dw_region('Northeast Dark World', ['Catfish'], ['West Dark World Gap', 'Dark World Potion Shop', 'East Dark World Broken Bridge Pass']),
|
||||||
create_cave_region('Palace of Darkness Hint'),
|
create_cave_region('Palace of Darkness Hint'),
|
||||||
create_cave_region('East Dark World Hint'),
|
create_cave_region('East Dark World Hint'),
|
||||||
create_dw_region('South Dark World', ['Stumpy', 'Digging Game', 'Bombos Tablet'], ['Dark Lake Hylia Drop (South)', 'Hype Cave', 'Swamp Palace', 'Village of Outcasts Heavy Rock',
|
create_dw_region('South Dark World', ['Stumpy', 'Digging Game', 'Bombos Tablet'], ['Dark Lake Hylia Drop (South)', 'Hype Cave', 'Swamp Palace', 'Village of Outcasts Heavy Rock',
|
||||||
|
@ -156,7 +166,10 @@ def create_regions(world):
|
||||||
'Bat Cave Drop Ledge Mirror Spot', 'Dark World Hammer Peg Cave', 'Red Shield Shop', 'Dark Sanctuary Hint', 'Fortune Teller (Dark)', 'Dark World Shop', 'Dark World Lumberjack Shop']),
|
'Bat Cave Drop Ledge Mirror Spot', 'Dark World Hammer Peg Cave', 'Red Shield Shop', 'Dark Sanctuary Hint', 'Fortune Teller (Dark)', 'Dark World Shop', 'Dark World Lumberjack Shop']),
|
||||||
create_dw_region('Bumper Cave Entrance', None, ['Bumper Cave (Bottom)', 'Bumper Cave Entrance Mirror Spot', 'Bumper Cave Entrance Drop']),
|
create_dw_region('Bumper Cave Entrance', None, ['Bumper Cave (Bottom)', 'Bumper Cave Entrance Mirror Spot', 'Bumper Cave Entrance Drop']),
|
||||||
create_cave_region('Fortune Teller (Dark)'),
|
create_cave_region('Fortune Teller (Dark)'),
|
||||||
create_cave_region('Dark World Shop'),
|
create_cave_region('Village of Outcasts Shop'),
|
||||||
|
create_cave_region('Dark Lake Hylia Shop'),
|
||||||
|
create_cave_region('Dark World Lumberjack Shop'),
|
||||||
|
create_cave_region('Dark World Potion Shop'),
|
||||||
create_cave_region('Dark World Hammer Peg Cave', ['Peg Cave']),
|
create_cave_region('Dark World Hammer Peg Cave', ['Peg Cave']),
|
||||||
create_cave_region('Pyramid Fairy', ['Pyramid Fairy - Left', 'Pyramid Fairy - Right']),
|
create_cave_region('Pyramid Fairy', ['Pyramid Fairy - Left', 'Pyramid Fairy - Right']),
|
||||||
create_cave_region('Brewery', ['Brewery']),
|
create_cave_region('Brewery', ['Brewery']),
|
||||||
|
|
8
Rom.py
8
Rom.py
|
@ -15,7 +15,7 @@ from Items import ItemFactory
|
||||||
|
|
||||||
|
|
||||||
JAP10HASH = '03a63945398191337e896e5771f77173'
|
JAP10HASH = '03a63945398191337e896e5771f77173'
|
||||||
RANDOMIZERBASEHASH = '4027d54ccf5c3713dacf7c0d4ef72d75'
|
RANDOMIZERBASEHASH = 'c2ee7540753ec0225372669f830b6edd'
|
||||||
|
|
||||||
|
|
||||||
class JsonRom(object):
|
class JsonRom(object):
|
||||||
|
@ -316,7 +316,11 @@ def patch_rom(world, rom, hashtable, beep='normal', sprite=None):
|
||||||
# Thanks to Zarby89 for originally finding these values
|
# Thanks to Zarby89 for originally finding these values
|
||||||
# todo fix screen scrolling
|
# todo fix screen scrolling
|
||||||
|
|
||||||
if room_id == 0x0059 and world.fix_skullwoods_exit:
|
if exit.name in ['Eastern Palace Exit', 'Tower of Hera Exit', 'Thieves Town Exit', 'Skull Woods Final Section Exit', 'Ice Palace Exit', 'Misery Mire Exit',
|
||||||
|
'Palace of Darkness Exit', 'Swamp Palace Exit', 'Ganons Tower Exit', 'Desert Palace Exit (North)', 'Agahnims Tower Exit', 'Spiral Cave Exit (Top)']:
|
||||||
|
# For exits that connot be reached from another, no need to apply offset fixes.
|
||||||
|
rom.write_int16_to_rom(0x15DB5 + 2 * offset, link_y) # same as final else
|
||||||
|
elif room_id == 0x0059 and world.fix_skullwoods_exit:
|
||||||
rom.write_int16_to_rom(0x15DB5 + 2 * offset, 0x00F8)
|
rom.write_int16_to_rom(0x15DB5 + 2 * offset, 0x00F8)
|
||||||
elif room_id == 0x004a and world.fix_palaceofdarkness_exit:
|
elif room_id == 0x004a and world.fix_palaceofdarkness_exit:
|
||||||
rom.write_int16_to_rom(0x15DB5 + 2 * offset, 0x0640)
|
rom.write_int16_to_rom(0x15DB5 + 2 * offset, 0x0640)
|
||||||
|
|
5
Rules.py
5
Rules.py
|
@ -137,10 +137,11 @@ def global_rules(world):
|
||||||
set_rule(world.get_entrance('East Death Mountain (Top)'), lambda state: state.has('Hammer'))
|
set_rule(world.get_entrance('East Death Mountain (Top)'), lambda state: state.has('Hammer'))
|
||||||
|
|
||||||
set_rule(world.get_location('Catfish'), lambda state: state.can_lift_rocks())
|
set_rule(world.get_location('Catfish'), lambda state: state.can_lift_rocks())
|
||||||
set_rule(world.get_entrance('Dark World Potion Shop'), lambda state: state.has_Pearl() and (state.can_lift_rocks() or state.has('Hammer') or state.has('Flippers')))
|
set_rule(world.get_entrance('Northeast Dark World Broken Bridge Pass'), lambda state: state.has_Pearl() and (state.can_lift_rocks() or state.has('Hammer') or state.has('Flippers')))
|
||||||
|
set_rule(world.get_entrance('East Dark World Broken Bridge Pass'), lambda state: state.has_Pearl() and (state.can_lift_rocks() or state.has('Hammer')))
|
||||||
set_rule(world.get_entrance('South Dark World Bridge'), lambda state: state.has('Hammer') and state.has_Pearl())
|
set_rule(world.get_entrance('South Dark World Bridge'), lambda state: state.has('Hammer') and state.has_Pearl())
|
||||||
set_rule(world.get_entrance('Bonk Fairy (Dark)'), lambda state: state.has_Pearl() and state.has_Boots())
|
set_rule(world.get_entrance('Bonk Fairy (Dark)'), lambda state: state.has_Pearl() and state.has_Boots())
|
||||||
set_rule(world.get_entrance('West Dark World Gap'), lambda state: state.has_Pearl() and state.has('Hookshot') and (state.has('Flippers') or state.has('Hammer') or state.can_lift_rocks()))
|
set_rule(world.get_entrance('West Dark World Gap'), lambda state: state.has_Pearl() and state.has('Hookshot'))
|
||||||
set_rule(world.get_entrance('Palace of Darkness'), lambda state: state.has_Pearl()) # kiki needs pearl
|
set_rule(world.get_entrance('Palace of Darkness'), lambda state: state.has_Pearl()) # kiki needs pearl
|
||||||
set_rule(world.get_entrance('Hyrule Castle Ledge Mirror Spot'), lambda state: state.has_Mirror())
|
set_rule(world.get_entrance('Hyrule Castle Ledge Mirror Spot'), lambda state: state.has_Mirror())
|
||||||
set_rule(world.get_entrance('Hyrule Castle Main Gate'), lambda state: state.has_Mirror())
|
set_rule(world.get_entrance('Hyrule Castle Main Gate'), lambda state: state.has_Mirror())
|
||||||
|
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue