Include bottle refills in spoiler
This commit is contained in:
@@ -97,6 +97,7 @@ class World(object):
|
|||||||
set_player_attr('player_names', [])
|
set_player_attr('player_names', [])
|
||||||
set_player_attr('remote_items', False)
|
set_player_attr('remote_items', False)
|
||||||
set_player_attr('required_medallions', ['Ether', 'Quake'])
|
set_player_attr('required_medallions', ['Ether', 'Quake'])
|
||||||
|
set_player_attr('bottle_refills', ['Bottle (Green Potion)', 'Bottle (Green Potion)'])
|
||||||
set_player_attr('swamp_patch_required', False)
|
set_player_attr('swamp_patch_required', False)
|
||||||
set_player_attr('powder_patch_required', False)
|
set_player_attr('powder_patch_required', False)
|
||||||
set_player_attr('ganon_at_pyramid', True)
|
set_player_attr('ganon_at_pyramid', True)
|
||||||
@@ -2272,6 +2273,7 @@ class Spoiler(object):
|
|||||||
self.doorTypes = {}
|
self.doorTypes = {}
|
||||||
self.lobbies = {}
|
self.lobbies = {}
|
||||||
self.medallions = {}
|
self.medallions = {}
|
||||||
|
self.bottles = {}
|
||||||
self.playthrough = {}
|
self.playthrough = {}
|
||||||
self.unreachables = []
|
self.unreachables = []
|
||||||
self.startinventory = []
|
self.startinventory = []
|
||||||
@@ -2315,6 +2317,15 @@ class Spoiler(object):
|
|||||||
self.medallions[f'Misery Mire ({self.world.get_player_names(player)})'] = self.world.required_medallions[player][0]
|
self.medallions[f'Misery Mire ({self.world.get_player_names(player)})'] = self.world.required_medallions[player][0]
|
||||||
self.medallions[f'Turtle Rock ({self.world.get_player_names(player)})'] = self.world.required_medallions[player][1]
|
self.medallions[f'Turtle Rock ({self.world.get_player_names(player)})'] = self.world.required_medallions[player][1]
|
||||||
|
|
||||||
|
self.bottles = OrderedDict()
|
||||||
|
if self.world.players == 1:
|
||||||
|
self.bottles['Waterfall Bottle'] = self.world.bottle_refills[1][0]
|
||||||
|
self.bottles['Pyramid Bottle'] = self.world.bottle_refills[1][1]
|
||||||
|
else:
|
||||||
|
for player in range(1, self.world.players + 1):
|
||||||
|
self.bottles[f'Waterfall Bottle ({self.world.get_player_names(player)})'] = self.world.bottle_refills[player][0]
|
||||||
|
self.bottles[f'Pyramid Bottle ({self.world.get_player_names(player)})'] = self.world.bottle_refills[player][1]
|
||||||
|
|
||||||
self.startinventory = list(map(str, self.world.precollected_items))
|
self.startinventory = list(map(str, self.world.precollected_items))
|
||||||
|
|
||||||
self.locations = OrderedDict()
|
self.locations = OrderedDict()
|
||||||
@@ -2434,6 +2445,7 @@ class Spoiler(object):
|
|||||||
out.update(self.locations)
|
out.update(self.locations)
|
||||||
out['Starting Inventory'] = self.startinventory
|
out['Starting Inventory'] = self.startinventory
|
||||||
out['Special'] = self.medallions
|
out['Special'] = self.medallions
|
||||||
|
out['Bottles'] = self.bottles
|
||||||
if self.hashes:
|
if self.hashes:
|
||||||
out['Hashes'] = {f"{self.world.player_names[player][team]} (Team {team+1})": hash for (player, team), hash in self.hashes.items()}
|
out['Hashes'] = {f"{self.world.player_names[player][team]} (Team {team+1})": hash for (player, team), hash in self.hashes.items()}
|
||||||
if self.shops:
|
if self.shops:
|
||||||
@@ -2519,6 +2531,9 @@ class Spoiler(object):
|
|||||||
outfile.write('\n\nMedallions:\n')
|
outfile.write('\n\nMedallions:\n')
|
||||||
for dungeon, medallion in self.medallions.items():
|
for dungeon, medallion in self.medallions.items():
|
||||||
outfile.write(f'\n{dungeon}: {medallion} Medallion')
|
outfile.write(f'\n{dungeon}: {medallion} Medallion')
|
||||||
|
outfile.write('\n\nBottle Refills:\n')
|
||||||
|
for fairy, bottle in self.bottles.items():
|
||||||
|
outfile.write(f'\n{fairy}: {bottle}')
|
||||||
if self.startinventory:
|
if self.startinventory:
|
||||||
outfile.write('\n\nStarting Inventory:\n\n')
|
outfile.write('\n\nStarting Inventory:\n\n')
|
||||||
outfile.write('\n'.join(self.startinventory))
|
outfile.write('\n'.join(self.startinventory))
|
||||||
|
|||||||
@@ -370,6 +370,15 @@ def generate_itempool(world, player):
|
|||||||
tr_medallion = ['Ether', 'Quake', 'Bombos'][random.randint(0, 2)]
|
tr_medallion = ['Ether', 'Quake', 'Bombos'][random.randint(0, 2)]
|
||||||
world.required_medallions[player] = (mm_medallion, tr_medallion)
|
world.required_medallions[player] = (mm_medallion, tr_medallion)
|
||||||
|
|
||||||
|
# shuffle bottle refills
|
||||||
|
if world.difficulty[player] in ['hard', 'expert']:
|
||||||
|
waterfall_bottle = hardbottles[random.randint(0, 5)]
|
||||||
|
pyramid_bottle = hardbottles[random.randint(0, 5)]
|
||||||
|
else:
|
||||||
|
waterfall_bottle = normalbottles[random.randint(0, 6)]
|
||||||
|
pyramid_bottle = normalbottles[random.randint(0, 6)]
|
||||||
|
world.bottle_refills[player] = (waterfall_bottle, pyramid_bottle)
|
||||||
|
|
||||||
set_up_shops(world, player)
|
set_up_shops(world, player)
|
||||||
|
|
||||||
if world.retro[player]:
|
if world.retro[player]:
|
||||||
|
|||||||
1
Main.py
1
Main.py
@@ -364,6 +364,7 @@ def copy_world(world):
|
|||||||
ret.player_names = copy.deepcopy(world.player_names)
|
ret.player_names = copy.deepcopy(world.player_names)
|
||||||
ret.remote_items = world.remote_items.copy()
|
ret.remote_items = world.remote_items.copy()
|
||||||
ret.required_medallions = world.required_medallions.copy()
|
ret.required_medallions = world.required_medallions.copy()
|
||||||
|
ret.bottle_refills = world.bottle_refills.copy()
|
||||||
ret.swamp_patch_required = world.swamp_patch_required.copy()
|
ret.swamp_patch_required = world.swamp_patch_required.copy()
|
||||||
ret.ganon_at_pyramid = world.ganon_at_pyramid.copy()
|
ret.ganon_at_pyramid = world.ganon_at_pyramid.copy()
|
||||||
ret.powder_patch_required = world.powder_patch_required.copy()
|
ret.powder_patch_required = world.powder_patch_required.copy()
|
||||||
|
|||||||
8
Rom.py
8
Rom.py
@@ -1066,12 +1066,8 @@ def patch_rom(world, rom, player, team, enemized, is_mystery=False):
|
|||||||
])
|
])
|
||||||
|
|
||||||
# set Fountain bottle exchange items
|
# set Fountain bottle exchange items
|
||||||
if world.difficulty[player] in ['hard', 'expert']:
|
rom.write_byte(0x348FF, ItemFactory(world.bottle_refills[player][0], player).code)
|
||||||
rom.write_byte(0x348FF, [0x16, 0x2B, 0x2C, 0x2D, 0x3C, 0x48][random.randint(0, 5)])
|
rom.write_byte(0x3493B, ItemFactory(world.bottle_refills[player][1], player).code)
|
||||||
rom.write_byte(0x3493B, [0x16, 0x2B, 0x2C, 0x2D, 0x3C, 0x48][random.randint(0, 5)])
|
|
||||||
else:
|
|
||||||
rom.write_byte(0x348FF, [0x16, 0x2B, 0x2C, 0x2D, 0x3C, 0x3D, 0x48][random.randint(0, 6)])
|
|
||||||
rom.write_byte(0x3493B, [0x16, 0x2B, 0x2C, 0x2D, 0x3C, 0x3D, 0x48][random.randint(0, 6)])
|
|
||||||
|
|
||||||
#enable Fat Fairy Chests
|
#enable Fat Fairy Chests
|
||||||
rom.write_bytes(0x1FC16, [0xB1, 0xC6, 0xF9, 0xC9, 0xC6, 0xF9])
|
rom.write_bytes(0x1FC16, [0xB1, 0xC6, 0xF9, 0xC9, 0xC6, 0xF9])
|
||||||
|
|||||||
Reference in New Issue
Block a user