From bbd9c9a4f357d318490d139e5cafab3e21de81dc Mon Sep 17 00:00:00 2001 From: pepperpow Date: Mon, 23 Nov 2020 19:00:11 -0600 Subject: [PATCH] Potion Shop Changes (reduced) --- ItemPool.py | 12 ++++++++---- Mystery.py | 4 ++++ Rules.py | 2 +- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/ItemPool.py b/ItemPool.py index 132785a1..8267774c 100644 --- a/ItemPool.py +++ b/ItemPool.py @@ -368,13 +368,17 @@ def shuffle_shops(world, items, player: int): shops = [] upgrade_shops = [] total_inventory = [] + potion_option = world.potion_shop_shuffle[player] for shop in world.shops: if shop.region.player == player: if shop.type == ShopType.UpgradeShop: upgrade_shops.append(shop) - elif shop.type == ShopType.Shop and shop.region.name != 'Potion Shop': - shops.append(shop) - total_inventory.extend(shop.inventory) + elif shop.type == ShopType.Shop: + if shop.region.name == 'Potion Shop' and potion_option in [None, '', 'none']: + 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: def price_adjust(price: int) -> int: @@ -470,7 +474,7 @@ def create_dynamic_shop_locations(world, player): 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.locked = True diff --git a/Mystery.py b/Mystery.py index f28ca26a..c8261f03 100644 --- a/Mystery.py +++ b/Mystery.py @@ -368,6 +368,10 @@ def roll_settings(weights): if not 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 if ret.mode == 'retro': ret.mode = 'open' diff --git a/Rules.py b/Rules.py index 04889a0f..3c12d9b3 100644 --- a/Rules.py +++ b/Rules.py @@ -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') set_bunny_rules(world, player, world.mode[player] == 'inverted') - + 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.