diff --git a/ItemList.py b/ItemPool.py similarity index 100% rename from ItemList.py rename to ItemPool.py diff --git a/Items.py b/Items.py index 9a0f0399..78463d36 100644 --- a/Items.py +++ b/Items.py @@ -23,22 +23,52 @@ def ItemFactory(items, player): # Format: Name: (Advancement, Priority, Type, ItemCode, Pedestal Hint Text, Pedestal Credit Text, Sick Kid Credit Text, Zora Credit Text, Witch Credit Text, Flute Boy Credit Text, Hint Text) -item_table = {'Bow': (True, False, None, 0x0B, 'You have\nchosen the\narcher class.', 'the stick and twine', 'arrow-slinging kid', 'arrow sling for sale', 'witch and robin hood', 'archer boy shoots again', 'the Bow'), - 'Progressive Bow': (True, False, None, 0x64, 'You have\nchosen the\narcher class.', 'the stick and twine', 'arrow-slinging kid', 'arrow sling for sale', 'witch and robin hood', 'archer boy shoots again', 'a Bow'), - 'Progressive Bow (Alt)': (True, False, None, 0x65, 'You have\nchosen the\narcher class.', 'the stick and twine', 'arrow-slinging kid', 'arrow sling for sale', 'witch and robin hood', 'archer boy shoots again', 'a Bow'), - 'Silver Arrows': (True, False, None, 0x58, 'Do you fancy\nsilver tipped\narrows?', 'and the ganonsbane','ganon-killing kid', 'ganon doom for sale', 'fungus for pork','archer boy shines again', 'the Silver Arrows'), - 'Silver Bow': (True, False, None, 0x3B, 'Buy 1 Silver\nget Archery\nfor free.', 'the baconmaker', 'ganon-killing kid', 'ganon doom for sale', 'fungus for pork', 'archer boy shines again', 'the Silver Bow'), - 'Book of Mudora': (True, False, None, 0x1D, 'This is a\nparadox?!', 'and the story book', 'the scholarly kid', 'moon runes for sale', 'drugs for literacy', 'book-worm boy can read again', 'the Book'), - 'Hammer': (True, False, None, 0x09, 'stop\nhammer time!', 'and m c hammer', 'hammer-smashing kid', 'm c hammer for sale', 'stop... hammer time', 'stop, hammer time', 'the Hammer'), - 'Hookshot': (True, False, None, 0x0A, 'BOING!!!\nBOING!!!\nBOING!!!', 'and the tickle beam', 'tickle-monster kid', 'tickle beam for sale', 'witch and tickle boy', 'beam boy tickles again', 'the Hookshot'), - 'Magic Mirror': (True, False, None, 0x1A, 'Isn\'t your\nreflection so\npretty?', 'the face reflector', 'the narcissistic kid', 'your face for sale', 'trades looking-glass', 'narcissistic boy is happy again', 'the Mirror'), - 'Flute': (True, False, None, 0x14, 'Save the duck\nand fly to\nfreedom!', 'and the duck call', 'the duck-call kid', 'duck call for sale', 'duck-calls for trade', 'flute boy plays again', 'the Flute'), - 'Pegasus Boots': (True, False, None, 0x4B, 'Gotta go fast!', 'and the sprint shoes', 'the running-man kid', 'sprint shoe for sale', 'shrooms for speed', 'gotta-go-fast boy runs again', 'the Boots'), - 'Power Glove': (True, False, None, 0x1B, 'Now you can\nlift weak\nstuff!', 'and the grey mittens', 'body-building kid', 'lift glove for sale', 'fungus for gloves', 'body-building boy lifts again', 'the Glove'), - 'Cape': (True, False, None, 0x19, 'Wear this to\nbecome\ninvisible!', 'the camouflage cape', 'red riding-hood kid', 'red hood for sale', 'hood from a hood', 'dapper boy hides again', 'the Cape'), - 'Mushroom': (True, False, None, 0x29, 'I\'m a fun guy!\n\nI\'m a funghi!', 'and the legal drugs', 'the drug-dealing kid', 'legal drugs for sale', 'shroom swap', 'shroom boy sells drugs again', 'the Mushroom'), - 'Shovel': (True, False, None, 0x13, 'Can\n You\n Dig it?', 'and the spade', 'archaeologist kid', 'dirt spade for sale', 'can you dig it', 'shovel boy digs again', 'the Shovel'), - 'Lamp': (True, False, None, 0x12, 'Baby, baby,\nbaby.\nLight my way!', 'and the flashlight', 'light-shining kid', 'flashlight for sale', 'fungus for illumination', 'illuminated boy can see again', 'the Lamp'), +item_table = {'Bow': ( +True, False, None, 0x0B, 'You have\nchosen the\narcher class.', 'the stick and twine', 'arrow-slinging kid', +'arrow sling for sale', 'witch and robin hood', 'archer boy shoots again', 'the Bow'), + 'Progressive Bow': (True, False, None, 0x64, 'You have\nchosen the\narcher class.', 'the stick and twine', + 'arrow-slinging kid', 'arrow sling for sale', 'witch and robin hood', + 'archer boy shoots again', 'a Bow'), + 'Progressive Bow (Alt)': ( + True, False, None, 0x65, 'You have\nchosen the\narcher class.', 'the stick and twine', + 'arrow-slinging kid', 'arrow sling for sale', 'witch and robin hood', 'archer boy shoots again', 'a Bow'), + 'Silver Arrows': (True, False, None, 0x58, 'Do you fancy\nsilver tipped\narrows?', 'and the ganonsbane', + 'ganon-killing kid', 'ganon doom for sale', 'fungus for pork', + 'archer boy shines again', 'the Silver Arrows'), + 'Silver Bow': ( + True, False, None, 0x3B, 'Buy 1 Silver\nget Archery\nfor free.', 'the baconmaker', 'ganon-killing kid', + 'ganon doom for sale', 'fungus for pork', 'archer boy shines again', 'the Silver Bow'), + 'Book of Mudora': ( + True, False, None, 0x1D, 'Hylian\nfor\nDingusses.', 'and the story book', 'the scholarly kid', + 'moon runes for sale', 'drugs for literacy', 'book-worm boy can read again', 'the Book'), + 'Hammer': (True, False, None, 0x09, 'stop\nhammer time!', 'and m c hammer', 'hammer-smashing kid', + 'm c hammer for sale', 'stop... hammer time', 'stop, hammer time', 'the Hammer'), + 'Hookshot': ( + True, False, None, 0x0A, 'BOING!!!\nBOING!!!\nBOING!!!', 'and the tickle beam', 'tickle-monster kid', + 'tickle beam for sale', 'witch and tickle boy', 'beam boy tickles again', 'the Hookshot'), + 'Magic Mirror': (True, False, None, 0x1A, 'Isn\'t your\nreflection so\npretty?', 'the face reflector', + 'the narcissistic kid', 'your face for sale', 'trades looking-glass', + 'narcissistic boy is happy again', 'the Mirror'), + 'Flute': ( + True, False, None, 0x14, 'Save the duck\nand fly to\nfreedom!', 'and the duck call', 'the duck-call kid', + 'duck call for sale', 'duck-calls for trade', 'flute boy plays again', 'the Flute'), + 'Pegasus Boots': ( + True, False, None, 0x4B, 'Gotta go fast!', 'and the sprint shoes', 'the running-man kid', + 'sprint shoe for sale', 'shrooms for speed', 'gotta-go-fast boy runs again', 'the Boots'), + 'Power Glove': ( + True, False, None, 0x1B, 'Now you can\nlift weak\nstuff!', 'and the grey mittens', 'body-building kid', + 'lift glove for sale', 'fungus for gloves', 'body-building boy lifts again', 'the Glove'), + 'Cape': ( + True, False, None, 0x19, 'Wear this to\nbecome\ninvisible!', 'the camouflage cape', 'red riding-hood kid', + 'red hood for sale', 'hood from a hood', 'dapper boy hides again', 'the Cape'), + 'Mushroom': (True, False, None, 0x29, 'I\'m a fun guy!\n\nI\'m a funghi!', 'and the legal drugs', + 'the drug-dealing kid', 'legal drugs for sale', 'shroom swap', + 'shroom boy sells drugs again', 'the Mushroom'), + 'Shovel': (True, False, None, 0x13, 'Can\n You\n Dig it?', 'and the spade', 'archaeologist kid', + 'dirt spade for sale', 'can you dig it', 'shovel boy digs again', 'the Shovel'), + 'Lamp': ( + True, False, None, 0x12, 'Baby, baby,\nbaby.\nLight my way!', 'and the flashlight', 'light-shining kid', + 'flashlight for sale', 'fungus for illumination', 'illuminated boy can see again', 'the Lamp'), 'Magic Powder': (True, False, None, 0x0D, 'you can turn\nanti-faeries\ninto faeries', 'and the magic sack', 'the sack-holding kid', 'magic sack for sale', 'the witch and assistant', 'magic boy plays marbles again', 'the Powder'), 'Moon Pearl': (True, False, None, 0x1F, ' Bunny Link\n be\n gone!', 'and the jaw breaker', 'fortune-telling kid', 'lunar orb for sale', 'shrooms for moon rock', 'moon boy plays ball again', 'the Moon Pearl'), 'Cane of Somaria': (True, False, None, 0x15, 'I make blocks\nto hold down\nswitches!', 'and the red blocks', 'the block-making kid', 'block stick for sale', 'block stick for trade', 'cane boy makes blocks again', 'the Red Cane'), diff --git a/Main.py b/Main.py index 4837fd18..be370979 100644 --- a/Main.py +++ b/Main.py @@ -18,7 +18,7 @@ from Rules import set_rules from Dungeons import create_dungeons, fill_dungeons, fill_dungeons_restrictive from Fill import distribute_items_cutoff, distribute_items_staleness, distribute_items_restrictive, flood_items, \ balance_multiworld_progression -from ItemList import generate_itempool, difficulties, fill_prizes +from ItemPool import generate_itempool, difficulties, fill_prizes from Utils import output_path, parse_player_names, get_options, __version__, _version_tuple import Patch diff --git a/MultiMystery.py b/MultiMystery.py index 84b4d5a0..15a041f7 100644 --- a/MultiMystery.py +++ b/MultiMystery.py @@ -43,7 +43,7 @@ if __name__ == "__main__": options = get_options() multi_mystery_options = options["multi_mystery_options"] - output_path = multi_mystery_options["output_path"] + output_path = options["general_options"]["output_path"] enemizer_path = multi_mystery_options["enemizer_path"] player_files_path = multi_mystery_options["player_files_path"] race = multi_mystery_options["race"] diff --git a/Utils.py b/Utils.py index ba859a82..d0d17bb9 100644 --- a/Utils.py +++ b/Utils.py @@ -84,7 +84,7 @@ local_path.cached_path = None def output_path(path): if output_path.cached_path: return os.path.join(output_path.cached_path, path) - output_path.cached_path = local_path("output") + output_path.cached_path = local_path(get_options()["general_options"]["output_path"]) path = os.path.join(output_path.cached_path, path) os.makedirs(os.path.dirname(path), exist_ok=True) return path diff --git a/host.yaml b/host.yaml index a9f8b4d6..6d6931d4 100644 --- a/host.yaml +++ b/host.yaml @@ -7,6 +7,8 @@ general_options: # true for operating system default program # alternatively, a path to a program to open the .sfc file with rom_start: true + # Where to place output files + output_path: "output" #options for MultiServer #null means nothing, for the server this means to default the value #these overwrite command line arguments! @@ -49,8 +51,6 @@ server_options: multi_mystery_options: #teams, however, note that there is currently no way to supply names for teams 2+ through MultiMystery teams: 1 -#Where to place the resulting files - output_path: "output" #location of your Enemizer CLI, available here: https://github.com/Bonta0/Enemizer/releases enemizer_path: "EnemizerCLI/EnemizerCLI.Core.exe" #folder from which the player yaml files are pulled from diff --git a/test/dungeons/TestDungeon.py b/test/dungeons/TestDungeon.py index 1457abce..b4a4bb06 100644 --- a/test/dungeons/TestDungeon.py +++ b/test/dungeons/TestDungeon.py @@ -3,7 +3,7 @@ import unittest from BaseClasses import World, CollectionState from Dungeons import create_dungeons, get_dungeon_item_pool from EntranceShuffle import mandatory_connections, connect_simple -from ItemList import difficulties, generate_itempool +from ItemPool import difficulties, generate_itempool from Items import ItemFactory from Regions import create_regions, create_shops from Rules import set_rules diff --git a/test/inverted/TestInverted.py b/test/inverted/TestInverted.py index 2383782e..93a52c57 100644 --- a/test/inverted/TestInverted.py +++ b/test/inverted/TestInverted.py @@ -2,7 +2,7 @@ from BaseClasses import World from Dungeons import create_dungeons, get_dungeon_item_pool from EntranceShuffle import link_inverted_entrances from InvertedRegions import create_inverted_regions -from ItemList import generate_itempool, difficulties +from ItemPool import generate_itempool, difficulties from Items import ItemFactory from Regions import mark_light_world_regions, create_shops from Rules import set_rules diff --git a/test/inverted/TestInvertedBombRules.py b/test/inverted/TestInvertedBombRules.py index c8b19b1b..109e26c6 100644 --- a/test/inverted/TestInvertedBombRules.py +++ b/test/inverted/TestInvertedBombRules.py @@ -5,7 +5,7 @@ from Dungeons import create_dungeons from EntranceShuffle import connect_entrance, Inverted_LW_Entrances, Inverted_LW_Dungeon_Entrances, Inverted_LW_Single_Cave_Doors, Inverted_Old_Man_Entrances, Inverted_DW_Entrances, Inverted_DW_Dungeon_Entrances, Inverted_DW_Single_Cave_Doors, \ Inverted_LW_Entrances_Must_Exit, Inverted_LW_Dungeon_Entrances_Must_Exit, Inverted_Bomb_Shop_Multi_Cave_Doors, Inverted_Bomb_Shop_Single_Cave_Doors, Blacksmith_Single_Cave_Doors, Inverted_Blacksmith_Multi_Cave_Doors from InvertedRegions import create_inverted_regions -from ItemList import difficulties +from ItemPool import difficulties from Rules import set_inverted_big_bomb_rules diff --git a/test/inverted_owg/TestInvertedOWG.py b/test/inverted_owg/TestInvertedOWG.py index 4437dd84..7cf44c84 100644 --- a/test/inverted_owg/TestInvertedOWG.py +++ b/test/inverted_owg/TestInvertedOWG.py @@ -2,7 +2,7 @@ from BaseClasses import World from Dungeons import create_dungeons, get_dungeon_item_pool from EntranceShuffle import link_inverted_entrances from InvertedRegions import create_inverted_regions -from ItemList import generate_itempool, difficulties +from ItemPool import generate_itempool, difficulties from Items import ItemFactory from Regions import mark_light_world_regions, create_shops from Rules import set_rules diff --git a/test/items/TestDifficulty.py b/test/items/TestDifficulty.py index 54e0126b..ee884f63 100644 --- a/test/items/TestDifficulty.py +++ b/test/items/TestDifficulty.py @@ -1,4 +1,4 @@ -from ItemList import difficulties +from ItemPool import difficulties from test.TestBase import TestBase base_items = 41 diff --git a/test/owg/TestVanillaOWG.py b/test/owg/TestVanillaOWG.py index 7ff76b53..bd22db13 100644 --- a/test/owg/TestVanillaOWG.py +++ b/test/owg/TestVanillaOWG.py @@ -2,7 +2,7 @@ from BaseClasses import World from Dungeons import create_dungeons, get_dungeon_item_pool from EntranceShuffle import link_entrances from InvertedRegions import mark_dark_world_regions -from ItemList import difficulties, generate_itempool +from ItemPool import difficulties, generate_itempool from Items import ItemFactory from Regions import create_regions, create_shops from Rules import set_rules diff --git a/test/vanilla/TestVanilla.py b/test/vanilla/TestVanilla.py index 8ec3392c..e21b8408 100644 --- a/test/vanilla/TestVanilla.py +++ b/test/vanilla/TestVanilla.py @@ -2,7 +2,7 @@ from BaseClasses import World from Dungeons import create_dungeons, get_dungeon_item_pool from EntranceShuffle import link_entrances from InvertedRegions import mark_dark_world_regions -from ItemList import difficulties, generate_itempool +from ItemPool import difficulties, generate_itempool from Items import ItemFactory from Regions import create_regions, create_shops from Rules import set_rules