From 8852ec9a1896d02df2c6ae22ac3e0834ce1ad109 Mon Sep 17 00:00:00 2001 From: Fabian Dill Date: Thu, 20 Aug 2020 15:43:22 +0200 Subject: [PATCH] make all output paths host.yaml settable rename itemlist to itempool, as the actual item listing is in items.py change pedestal text of book of mudora from paradox to hylian for dingusses --- ItemList.py => ItemPool.py | 0 Items.py | 62 +++++++++++++++++++------- Main.py | 2 +- MultiMystery.py | 2 +- Utils.py | 2 +- host.yaml | 4 +- test/dungeons/TestDungeon.py | 2 +- test/inverted/TestInverted.py | 2 +- test/inverted/TestInvertedBombRules.py | 2 +- test/inverted_owg/TestInvertedOWG.py | 2 +- test/items/TestDifficulty.py | 2 +- test/owg/TestVanillaOWG.py | 2 +- test/vanilla/TestVanilla.py | 2 +- 13 files changed, 58 insertions(+), 28 deletions(-) rename ItemList.py => ItemPool.py (100%) 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 9a0f03995b..78463d36a9 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 4837fd188f..be3709792f 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 84b4d5a0d7..15a041f751 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 ba859a8201..d0d17bb9d8 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 a9f8b4d628..6d6931d47f 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 1457abceb1..b4a4bb0691 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 2383782ec6..93a52c57f9 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 c8b19b1b87..109e26c685 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 4437dd84f4..7cf44c8420 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 54e0126b9d..ee884f637f 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 7ff76b5307..bd22db1303 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 8ec3392c9a..e21b8408c1 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