diff --git a/Mystery.py b/Mystery.py index 4293365a..8158950c 100644 --- a/Mystery.py +++ b/Mystery.py @@ -512,11 +512,15 @@ def roll_settings(weights, plando_options: typing.Set[str] = frozenset(("bosses" ret.shuffle_prizes = get_choice('shuffle_prizes', weights, "g") - ret.required_medallions = (get_choice("misery_mire_medallion", weights, "random"), - get_choice("turtle_rock_medallion", weights, "random")) - for medallion in ret.required_medallions: - if medallion not in {"random", "Ether", "Bombos", "Quake"}: + ret.required_medallions = [get_choice("misery_mire_medallion", weights, "random"), + get_choice("turtle_rock_medallion", weights, "random")] + + for index, medallion in enumerate(ret.required_medallions): + ret.required_medallions[index] = {"ether": "Ether", "quake": "Quake", "bombos": "Bombos", "random": "random"}\ + .get(medallion.lower(), None) + if not ret.required_medallions[index]: raise Exception(f"unknown Medallion {medallion}") + inventoryweights = weights.get('startinventory', {}) startitems = [] for item in inventoryweights.keys(): diff --git a/WebHostLib/static/static/playerSettings.json b/WebHostLib/static/static/playerSettings.json index 3179fe26..f2d16169 100644 --- a/WebHostLib/static/static/playerSettings.json +++ b/WebHostLib/static/static/playerSettings.json @@ -483,7 +483,7 @@ }, { "name": "Inventory", - "value": "i" + "value": "f" }, { "name": "Prices", @@ -495,11 +495,11 @@ }, { "name": "Inventory and Prices", - "value": "ip" + "value": "fp" }, { "name": "Inventory, Prices, and Upgrades", - "value": "ipu" + "value": "fpu" } ] } diff --git a/WebHostLib/static/static/weightedSettings.json b/WebHostLib/static/static/weightedSettings.json index 116d616e..d7f31dc6 100644 --- a/WebHostLib/static/static/weightedSettings.json +++ b/WebHostLib/static/static/weightedSettings.json @@ -950,6 +950,70 @@ } } }, + "misery_mire_medallion": { + "keyString": "misery_mire_medallion", + "friendlyName": "Misery Mire Medallion", + "description": "Determines the medallion required to access Misery Mire", + "inputType": "range", + "subOptions": { + "random": { + "keyString": "misery_mire_medallion.random", + "friendlyName": "Random", + "description": "Choose the medallion randomly.", + "defaultValue": 50 + }, + "quake": { + "keyString": "misery_mire_medallion.quake", + "friendlyName": "Quake", + "description": "Quake will be required ot enter Misery Mire.", + "defaultValue": 0 + }, + "bombos": { + "keyString": "misery_mire_medallion.bombos", + "friendlyName": "Bombos", + "description": "Bombos will be required ot enter Misery Mire.", + "defaultValue": 0 + }, + "ether": { + "keyString": "misery_mire_medallion.ether", + "friendlyName": "Ether", + "description": "Ether will be required ot enter Misery Mire.", + "defaultValue": 0 + } + } + }, + "turtle_rock_medallion": { + "keyString": "turtle_rock_medallion", + "friendlyName": "Turtle Rock Medallion", + "description": "Determines the medallion required to access Turtle Rock", + "inputType": "range", + "subOptions": { + "random": { + "keyString": "turtle_rock_medallion.random", + "friendlyName": "Random", + "description": "Choose the medallion randomly.", + "defaultValue": 50 + }, + "quake": { + "keyString": "turtle_rock_medallion.quake", + "friendlyName": "Quake", + "description": "Quake will be required ot enter Turtle Rock.", + "defaultValue": 0 + }, + "bombos": { + "keyString": "turtle_rock_medallion.bombos", + "friendlyName": "Bombos", + "description": "Bombos will be required ot enter Turtle Rock.", + "defaultValue": 0 + }, + "ether": { + "keyString": "turtle_rock_medallion.ether", + "friendlyName": "Ether", + "description": "Ether will be required ot enter Turtle Rock.", + "defaultValue": 0 + } + } + }, "bush_shuffle": { "keyString": "bush_shuffle", "friendlyName": "Bush Shuffle", @@ -1098,10 +1162,16 @@ "description": "Shop contents are left unchanged.", "defaultValue": 50 }, - "i": { - "keyString": "shop_shuffle.i", - "friendlyName": "Inventory Shuffle", - "description": "Randomizes the inventories of shops.", + "g": { + "keyString": "shop_shuffle.g", + "friendlyName": "Pool Shuffle", + "description": "Shuffles the inventory of shops.", + "defaultValue": 0 + }, + "f": { + "keyString": "shop_shuffle.f", + "friendlyName": "Random Shuffle", + "description": "Randomly generate an inventory for each shop from a pool of non-progression items.", "defaultValue": 0 }, "p": { @@ -1116,24 +1186,42 @@ "description": "Shuffles capacity upgrades throughout the game world.", "defaultValue": 0 }, - "ip": { - "keyString": "shop_shuffle.ip", - "friendlyName": "Inventory & Prices", + "gp": { + "keyString": "shop_shuffle.gp", + "friendlyName": "Pool & Prices", "description": "Shuffles the inventory and randomizes the prices of items in shops.", "defaultValue": 0 }, - "uip": { - "keyString": "shop_shuffle.uip", + "fp": { + "keyString": "shop_shuffle.fp", "friendlyName": "Full Shuffle", - "description": "Shuffles the inventory and randomizes the prices of items in shops. Also distributes capacity upgrades throughout the world.", + "description": "Randomizes the inventory and prices of shops.", + "defaultValue": 0 + }, + "ufp": { + "keyString": "shop_shuffle.ufp", + "friendlyName": "Full Shuffle & Capacity", + "description": "Randomizes the inventory and prices in shops, and distributes capacity upgrades throughout the world.", + "defaultValue": 0 + }, + "wfp": { + "keyString": "shop_shuffle.wfp", + "friendlyName": "Full Shuffle & Potion Shop", + "description": "Randomizes the inventory prices of shops, and shuffles items in the potion shop.", + "defaultValue": 0 + }, + "ufpw": { + "keyString": "shop_shuffle.ufpw", + "friendlyName": "Randomize Everything", + "description": "Randomizes the inventory and prices in shops, distributes capacity upgrades throughout the world, and shuffles items in the potion shop.", "defaultValue": 0 } } }, "shop_shuffle_slots": { "keyString": "shop_shuffle_slots", - "friendlyName": "Shop Itempool Slots", - "description": "Move items from the general Itempool into shops for purchase.", + "friendlyName": "Pay (Rupees) to Win", + "description": "Move items from the general item pool into shops for purchase.", "inputType": "range", "subOptions": { "0": { diff --git a/WebHostLib/static/static/weightedSettings.yaml b/WebHostLib/static/static/weightedSettings.yaml index d8d56c3c..66e036bb 100644 --- a/WebHostLib/static/static/weightedSettings.yaml +++ b/WebHostLib/static/static/weightedSettings.yaml @@ -177,6 +177,16 @@ progression_balancing: tile_shuffle: # Randomize the tile layouts in flying tile rooms on: 0 off: 50 +misery_mire_medallion: # required medallion to open Misery Mire front entrance + random: 50 + ether: 0 + bombos: 0 + quake: 0 +turtle_rock_medallion: # required medallion to open Turtle Rock front entrance + random: 50 + ether: 0 + bombos: 0 + quake: 0 ### Enemizer Section ### boss_shuffle: none: 50 # Vanilla bosses @@ -222,13 +232,14 @@ shop_shuffle: none: 50 g: 0 # Generate new default inventories for overworld/underworld shops, and unique shops f: 0 # Generate new default inventories for every shop independently - 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 + gp: 0 # Shuffle inventories and randomize prices + fp: 0 # Randomize items in every shop and their prices + ufp: 0 # Randomize items and prices in every shop, and include capacity upgrades in item pool + wfp: 0 # Randomize items and prices in every shop, and include potion shop inventory in shuffle + ufpw: 0 # Randomize items and prices in every shop, shuffle potion shop inventory, and include capacity upgrades # You can add more combos ### End of Shop Section ### shuffle_prizes: # aka drops @@ -446,4 +457,4 @@ rom: classic: 0 dizzy: 0 sick: 0 - puke: 0 \ No newline at end of file + puke: 0