diff --git a/BaseClasses.py b/BaseClasses.py index d46dd7aa..5651be42 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -135,7 +135,6 @@ class World(object): set_player_attr('triforce_pieces_required', 20) set_player_attr('shop_shuffle', 'off') set_player_attr('shop_shuffle_slots', 0) - set_player_attr('potion_shop_shuffle', '') set_player_attr('shuffle_prizes', "g") set_player_attr('sprite_pool', []) set_player_attr('dark_room_logic', "lamp") @@ -1339,7 +1338,6 @@ class Spoiler(object): 'triforce_pieces_required': self.world.triforce_pieces_required, 'shop_shuffle': self.world.shop_shuffle, 'shop_shuffle_slots': self.world.shop_shuffle_slots, - 'potion_shop_shuffle': self.world.potion_shop_shuffle, 'shuffle_prizes': self.world.shuffle_prizes, 'sprite_pool': self.world.sprite_pool, 'restrict_dungeon_item_on_boss': self.world.restrict_dungeon_item_on_boss diff --git a/EntranceRandomizer.py b/EntranceRandomizer.py index 50bbc33e..4f22d9c6 100755 --- a/EntranceRandomizer.py +++ b/EntranceRandomizer.py @@ -337,10 +337,6 @@ def parse_arguments(argv, no_defaults=False): help=''' Maximum amount of shop slots able to be filled by items from the item pool. ''') - parser.add_argument('--potion_shop_shuffle', default=defval(''), choices=['', 'a'], help='''\ - Determine if potion shop shuffle items should be affected by the rules of shop shuffle. - Value `none` will only allow prices to be shuffled, `a` will allow any items to be shuffled. - ''') parser.add_argument('--shuffle_prizes', default=defval('g'), choices=['', 'g', 'b', 'gb']) parser.add_argument('--sprite_pool', help='''\ Specifies a colon separated list of sprites used for random/randomonevent. If not specified, the full sprite pool is used.''') @@ -401,7 +397,7 @@ def parse_arguments(argv, no_defaults=False): 'shufflebosses', 'enemy_shuffle', 'enemy_health', 'enemy_damage', 'shufflepots', 'ow_palettes', 'uw_palettes', 'sprite', 'disablemusic', 'quickswap', 'fastmenu', 'heartcolor', 'heartbeep', "skip_progression_balancing", "triforce_pieces_available", - "triforce_pieces_required", "shop_shuffle", "shop_shuffle_slots", "potion_shop_shuffle", + "triforce_pieces_required", "shop_shuffle", "shop_shuffle_slots", "required_medallions", "plando_items", "plando_texts", "plando_connections", 'remote_items', 'progressive', 'dungeon_counters', 'glitch_boots', 'killable_thieves', diff --git a/ItemPool.py b/ItemPool.py index 5759d7df..b8514106 100644 --- a/ItemPool.py +++ b/ItemPool.py @@ -481,15 +481,14 @@ 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: - if shop.region.name == 'Potion Shop' and not potion_option: - upgrade_shops.append( - shop) # just put it with the upgrade shops/caves so we don't shuffle the items, just prices + if shop.region.name == 'Potion Shop' and not 'w' in option: + # don't modify potion shop + pass else: shops.append(shop) total_inventory.extend(shop.inventory) diff --git a/Main.py b/Main.py index 09b21766..3d7bce22 100644 --- a/Main.py +++ b/Main.py @@ -84,7 +84,6 @@ def main(args, seed=None): world.triforce_pieces_required = args.triforce_pieces_required.copy() world.shop_shuffle = args.shop_shuffle.copy() world.shop_shuffle_slots = args.shop_shuffle_slots.copy() - world.potion_shop_shuffle = args.potion_shop_shuffle.copy() world.progression_balancing = {player: not balance for player, balance in args.skip_progression_balancing.items()} world.shuffle_prizes = args.shuffle_prizes.copy() world.sprite_pool = args.sprite_pool.copy() diff --git a/Mystery.py b/Mystery.py index a984e51c..a346f945 100644 --- a/Mystery.py +++ b/Mystery.py @@ -411,10 +411,6 @@ def roll_settings(weights, plando_options: typing.Set[str] = frozenset(("bosses" 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/Regions.py b/Regions.py index 07b9b079..b99a2660 100644 --- a/Regions.py +++ b/Regions.py @@ -370,7 +370,6 @@ def create_shops(world, player: int): ShopType.Shop: Shop, ShopType.TakeAny: TakeAny} option = world.shop_shuffle[player] - potion_option = world.potion_shop_shuffle[player] my_shop_table = dict(shop_table) num_slots = int(world.shop_shuffle_slots[player]) @@ -385,21 +384,19 @@ def create_shops(world, player: int): new_dark_shop = world.random.sample(shop_generation_types['default'], k=3) for name, shop in my_shop_table.items(): typ, shop_id, keeper, custom, locked, items = shop - new_items = world.random.sample(shop_generation_types['default'], k=3) - if 'f' not in option: - if items == _basic_shop_defaults: - new_items = new_basic_shop - elif items == _dark_world_shop_defaults: - new_items = new_dark_shop if name == 'Capacity Upgrade': - continue - if name == 'Potion Shop': - if 'b' in potion_option: - new_items = world.random.sample(shop_generation_types['potion_discount'] + shop_generation_types['bottle'], k=3) - elif 'a' not in potion_option: - new_items = items - keeper = world.random.choice([0xA0, 0xC1, 0xFF]) - my_shop_table[name] = (typ, shop_id, keeper, custom, locked, new_items) + pass + elif name == 'Potion Shop' and not "w" in option: + pass + else: + new_items = world.random.sample(shop_generation_types['default'], k=3) + if 'f' not in option: + if items == _basic_shop_defaults: + new_items = new_basic_shop + elif items == _dark_world_shop_defaults: + new_items = new_dark_shop + keeper = world.random.choice([0xA0, 0xC1, 0xFF]) + my_shop_table[name] = (typ, shop_id, keeper, custom, locked, new_items) for region_name, (room_id, type, shopkeeper, custom, locked, inventory) in my_shop_table.items(): if world.mode[player] == 'inverted' and region_name == 'Dark Lake Hylia Shop': @@ -411,7 +408,7 @@ def create_shops(world, player: int): world.shops.append(shop) for index, item in enumerate(inventory): shop.add_inventory(index, *item) - if region_name == 'Potion Shop' and 'a' not in potion_option: + if region_name == 'Potion Shop' and 'w' not in option: pass elif region_name == 'Capacity Upgrade': pass diff --git a/playerSettings.yaml b/playerSettings.yaml index 396fc930..102af68d 100644 --- a/playerSettings.yaml +++ b/playerSettings.yaml @@ -227,6 +227,7 @@ shop_shuffle: i: 0 # Shuffle default inventories of the shops around p: 0 # Randomize the prices of the items in shop inventories u: 0 # Shuffle capacity upgrades into the item pool (and allow them to traverse the multiworld) + w: 0 # Consider witch's hut like any other shop and shuffle/randomize it too ip: 0 # Shuffle inventories and randomize prices fpu: 0 # Generate new inventories, randomize prices and shuffle capacity upgrades into item pool uip: 0 # Shuffle inventories, randomize prices and shuffle capacity upgrades into the item pool