Potion Shop Changes

(reduced)
This commit is contained in:
pepperpow 2020-11-23 19:00:11 -06:00 committed by Edos512
parent d0a005d34d
commit bbd9c9a4f3
3 changed files with 13 additions and 5 deletions

View File

@ -368,13 +368,17 @@ def shuffle_shops(world, items, player: int):
shops = [] shops = []
upgrade_shops = [] upgrade_shops = []
total_inventory = [] total_inventory = []
potion_option = world.potion_shop_shuffle[player]
for shop in world.shops: for shop in world.shops:
if shop.region.player == player: if shop.region.player == player:
if shop.type == ShopType.UpgradeShop: if shop.type == ShopType.UpgradeShop:
upgrade_shops.append(shop) upgrade_shops.append(shop)
elif shop.type == ShopType.Shop and shop.region.name != 'Potion Shop': elif shop.type == ShopType.Shop:
shops.append(shop) if shop.region.name == 'Potion Shop' and potion_option in [None, '', 'none']:
total_inventory.extend(shop.inventory) upgrade_shops.append(shop) # just put it with the upgrade shops/caves so we don't shuffle the items, just prices
else:
shops.append(shop)
total_inventory.extend(shop.inventory)
if 'p' in option: if 'p' in option:
def price_adjust(price: int) -> int: def price_adjust(price: int) -> int:
@ -470,7 +474,7 @@ def create_dynamic_shop_locations(world, player):
world.clear_location_cache() world.clear_location_cache()
world.push_item(loc, ItemFactory(item['item'], player), False) world.push_item(loc, ItemFactory(item['item'], player), False)
loc.event = True loc.event = True
loc.locked = True loc.locked = True

View File

@ -368,6 +368,10 @@ def roll_settings(weights):
if not ret.shop_shuffle: if not ret.shop_shuffle:
ret.shop_shuffle = '' ret.shop_shuffle = ''
ret.potion_shop_shuffle = get_choice('potion_shop_shuffle', weights, '')
if not ret.potion_shop_shuffle:
ret.potion_shop_shuffle = ''
ret.mode = get_choice('world_state', weights, None) # legacy support ret.mode = get_choice('world_state', weights, None) # legacy support
if ret.mode == 'retro': if ret.mode == 'retro':
ret.mode = 'open' ret.mode = 'open'

View File

@ -85,7 +85,7 @@ def set_rules(world, player):
add_rule(world.get_entrance('Ganons Tower', player), lambda state: state.world.get_entrance('Ganons Tower Ascent', player).can_reach(state), 'or') add_rule(world.get_entrance('Ganons Tower', player), lambda state: state.world.get_entrance('Ganons Tower Ascent', player).can_reach(state), 'or')
set_bunny_rules(world, player, world.mode[player] == 'inverted') set_bunny_rules(world, player, world.mode[player] == 'inverted')
def mirrorless_path_to_castle_courtyard(world, player): def mirrorless_path_to_castle_courtyard(world, player):
# If Agahnim is defeated then the courtyard needs to be accessible without using the mirror for the mirror offset glitch. # If Agahnim is defeated then the courtyard needs to be accessible without using the mirror for the mirror offset glitch.