diff --git a/Main.py b/Main.py index e7177011..c118299d 100644 --- a/Main.py +++ b/Main.py @@ -16,24 +16,24 @@ from Fill import distribute_items_cutoff, distribute_items_staleness, distribute from ItemList import generate_itempool, difficulties, fill_prizes from Utils import output_path -__version__ = '0.6.1' +__version__ = '0.6.2' -logic_hash = [215, 244, 99, 97, 253, 98, 31, 150, 207, 70, 50, 78, 59, 73, 221, 191, - 21, 34, 200, 116, 77, 234, 89, 27, 228, 96, 16, 249, 56, 148, 3, 176, - 17, 227, 24, 20, 238, 67, 37, 219, 62, 223, 60, 123, 246, 92, 164, 177, - 211, 15, 245, 23, 75, 33, 190, 124, 144, 100, 87, 57, 86, 108, 80, 181, - 6, 28, 2, 71, 182, 155, 222, 229, 90, 91, 32, 126, 25, 226, 133, 41, - 132, 122, 10, 30, 53, 239, 112, 49, 104, 76, 209, 247, 139, 13, 173, 113, - 159, 69, 145, 161, 11, 102, 149, 143, 129, 178, 45, 217, 196, 232, 208, 119, - 94, 19, 35, 65, 170, 103, 55, 109, 5, 43, 118, 194, 180, 12, 206, 241, - 8, 105, 210, 231, 179, 83, 137, 18, 212, 236, 225, 66, 63, 142, 138, 131, - 192, 160, 1, 198, 153, 128, 106, 165, 39, 248, 167, 22, 74, 163, 140, 157, - 214, 84, 154, 127, 195, 172, 136, 168, 68, 134, 152, 95, 111, 235, 26, 42, - 135, 186, 250, 7, 72, 58, 4, 9, 193, 101, 52, 44, 187, 183, 171, 184, - 197, 130, 47, 189, 81, 203, 51, 110, 146, 175, 213, 88, 79, 93, 64, 107, - 121, 237, 0, 46, 120, 141, 199, 158, 174, 114, 205, 201, 151, 185, 242, 29, - 162, 117, 85, 54, 14, 202, 216, 169, 230, 252, 188, 251, 36, 233, 147, 82, - 115, 61, 255, 38, 220, 218, 40, 224, 48, 125, 204, 156, 240, 254, 166, 243] +logic_hash = [134, 166, 181, 191, 228, 89, 188, 200, 5, 157, 217, 139, 180, 198, 106, 104, + 88, 223, 138, 28, 54, 18, 216, 129, 248, 19, 109, 220, 159, 75, 238, 57, + 231, 183, 143, 167, 114, 176, 82, 169, 179, 94, 115, 193, 252, 222, 52, 245, + 33, 208, 39, 122, 177, 136, 29, 161, 210, 165, 6, 125, 146, 212, 101, 185, + 65, 247, 253, 85, 171, 147, 71, 148, 203, 202, 230, 1, 13, 64, 254, 141, + 32, 93, 152, 4, 92, 16, 195, 204, 246, 201, 11, 7, 189, 97, 9, 91, + 237, 215, 163, 131, 142, 34, 111, 196, 120, 127, 168, 211, 227, 61, 187, 110, + 190, 162, 59, 80, 225, 186, 37, 154, 76, 72, 27, 17, 79, 206, 207, 243, + 184, 197, 153, 48, 119, 99, 2, 151, 51, 67, 121, 175, 38, 224, 87, 242, + 45, 22, 155, 244, 209, 117, 214, 213, 194, 126, 236, 73, 133, 70, 49, 140, + 229, 108, 156, 124, 105, 226, 44, 23, 112, 102, 173, 219, 14, 116, 58, 103, + 55, 10, 95, 251, 84, 118, 160, 78, 63, 250, 31, 41, 35, 255, 170, 25, + 66, 172, 98, 249, 68, 8, 113, 21, 46, 24, 137, 149, 81, 130, 42, 164, + 50, 12, 158, 15, 47, 182, 30, 40, 36, 83, 77, 205, 20, 241, 3, 132, + 0, 60, 96, 62, 74, 178, 53, 56, 135, 174, 145, 86, 107, 233, 218, 221, + 43, 150, 100, 69, 235, 26, 234, 192, 199, 144, 232, 128, 239, 123, 240, 90] def main(args, seed=None): diff --git a/Rom.py b/Rom.py index 7e3075ae..7463a977 100644 --- a/Rom.py +++ b/Rom.py @@ -1017,8 +1017,14 @@ def write_strings(rom, world): tt = TextTable() tt.removeUnwantedText() + # Let's keep this guy's text accurate to the shuffle setting. + if world.shuffle in ['vanilla', 'dungeonsfull', 'dungeonssimple']: + tt['kakariko_flophouse_man_no_flippers'] = 'I really hate mowing my yard.\n\n\nI should move.' + tt['kakariko_flophouse_man'] = 'I really hate mowing my yard.\n\n\nI should move.' + # For hints, first we write hints about entrances, some from the inconvenient list others from all reasonable entrances. if world.hints: + tt['sign_north_of_links_house'] = 'Randomizer The telepathic tiles can have hints!' entrances_to_hint = {} entrances_to_hint.update(InconvenientEntrances) if world.shuffle_ganon: @@ -1116,7 +1122,7 @@ def write_strings(rom, world): junk_hints = junk_texts.copy() random.shuffle(junk_hints) for location in hint_locations: - tt[location] = junk_hints.pop(0) + tt[location] = junk_hints.pop(0) # We still need the older hints of course. Those are done here. silverarrows = world.find_items('Silver Arrows') @@ -1202,7 +1208,7 @@ InconvenientEntrances = {'Turtle Rock': 'Turtle Rock Main', 'Misery Mire': 'Misery Mire', 'Ice Palace': 'Ice Palace', 'Skull Woods Final Section': 'The back of Skull Woods', - 'Death Mountain Return Cave (West)': 'The upper DM entrance', + 'Death Mountain Return Cave (West)': 'The SW DM foothills cave', 'Mimic Cave': 'Mimic Ledge', 'Dark World Hammer Peg Cave': 'The rows of pegs', 'Pyramid Fairy': 'The crack on the pyramid' diff --git a/Text.py b/Text.py index 59333120..71eb6ce6 100644 --- a/Text.py +++ b/Text.py @@ -225,28 +225,28 @@ TavernMan_texts = [ ] junk_texts = [ - "It’s a secret\nto everybody.\n >", - "Dodongo\ndislikes\nsmoke. >", - "> Digdogger\nhates certain\nkind of sound.", - "I bet you’d\nlike to have\nmore bombs. >", - ">Secret power\nis said to be\nin the arrow.", - "Aim at the\neyes of Gohma.\n >", - "Grumble,\ngrumble…\n >", - "10th enemy\nhas the bomb.\n >", - "Go to the\nnext room.\n >", - ">Thanks, @\nYou’re the\nhero of Hyrule", - "There’s always\nmoney in the\nBanana Stand>", - " \nJust walk away\n >", - "everybody is\nlooking for\nsomething >", - "Candy Is Dandy\nBut liquor\nIs quicker. >", - "Spring Ball\nare behind\nRidley >", - "The gnome asks\nyou to guess\nhis name. >", - "I heard beans\non toast is a\ngreat meal. >", - "> Sweetcorn\non pizza is a\ngreat choice.", - "> race roms\ndon’t have\nspoiler logs", - "I bet a nice\ncup of tea\nwould help! >", - "I bet you\nexpected help,\ndidn't you? >", - "Learn to make\nplogues, easy\nand yummy! >" + "{C:GREEN}\nIt’s a secret\nto everybody.\n >", + "{C:GREEN}\nDodongo\ndislikes\nsmoke. >", + "{C:GREEN}\n> Digdogger\nhates certain\nkind of sound.", + "{C:GREEN}\nI bet you’d\nlike to have\nmore bombs. >", + "{C:GREEN}\n>Secret power\nis said to be\nin the arrow.", + "{C:GREEN}\nAim at the\neyes of Gohma.\n >", + "{C:GREEN}\nGrumble,\ngrumble…\n >", + "{C:GREEN}\n10th enemy\nhas the bomb.\n >", + "{C:GREEN}\nGo to the\nnext room.\n >", + "{C:GREEN}\n>Thanks, @\nYou’re the\nhero of Hyrule", + "{C:GREEN}\nThere’s always\nmoney in the\nBanana Stand>", + "{C:GREEN}\n \nJust walk away\n >", + "{C:GREEN}\neverybody is\nlooking for\nsomething >", + "{C:GREEN}\nCandy Is Dandy\nBut liquor\nIs quicker. >", + "{C:GREEN}\nSpring Ball\nare behind\nRidley >", + "{C:GREEN}\nThe gnome asks\nyou to guess\nhis name. >", + "{C:GREEN}\nI heard beans\non toast is a\ngreat meal. >", + "{C:GREEN}\n> Sweetcorn\non pizza is a\ngreat choice.", + "{C:GREEN}\n> race roms\ndon’t have\nspoiler logs", + "{C:GREEN}\nI bet a nice\ncup of tea\nwould help! >", + "{C:GREEN}\nI bet you\nexpected help,\ndidn't you? >", + "{C:GREEN}\nLearn to make\nplogues, easy\nand yummy! >" ] KingsReturn_texts = [ @@ -534,6 +534,8 @@ class MultiByteCoreTextMapper(object): "{INTRO}": [0x6E, 0x00, 0x77, 0x07, 0x7A, 0x03, 0x6B, 0x02, 0x67], "{NOTEXT}": [0x6E, 0x00, 0x6B, 0x04], "{IBOX}": [0x6B, 0x02, 0x77, 0x07, 0x7A, 0x03], + "{C:GREEN}": [0x77, 0x07], + "{C:YELLOW}": [0x77, 0x02], } @classmethod @@ -549,10 +551,10 @@ class MultiByteCoreTextMapper(object): linespace = wrap line = lines.pop(0) if line.startswith('{'): - if line == '{PAGEBREAK}': - if lineindex % 3 != 0: - # insert a wait for keypress, unless we just did so - outbuf.append(0x7E) + if line == '{PAGEBREAK}': + if lineindex % 3 != 0: + # insert a wait for keypress, unless we just did so + outbuf.append(0x7E) lineindex = 0 outbuf.extend(cls.special_commands[line]) continue @@ -1331,7 +1333,7 @@ class TextTable(object): 'item_get_pendant_wisdom_alt', 'item_get_pendant_power_alt', 'pond_item_boomerang', - 'blacksmiths_tempered_already', #!! For some reason this is coded as a recive message + 'blacksmiths_tempered_already', #!! For some reason this is coded as a recieve message 'item_get_whole_heart', 'item_get_sanc_heart', 'item_get_14_heart', @@ -1862,8 +1864,8 @@ class TextTable(object): # 180 text['game_chest_play_no'] = CompressedTextMapper.convert("Well fine, I didn't want your rupees.") text['game_chest_lost_woods'] = CompressedTextMapper.convert("Pay 100 rupees open 1 chest. Are you lucky?\nSo, Play game?\n ≥ play\n never!\n{CHOICE}") - text['kakariko_flophouse_man_no_flippers'] = CompressedTextMapper.convert("I sure do have a lot of beds.\n\nZora is a cheapskate and will try to sell you his trash for 500 rupees…") - text['kakariko_flophouse_man'] = CompressedTextMapper.convert("I sure do have a lot of beds.\n\nDid you know if you played the flute in the center of town things could happen?") + text['kakariko_flophouse_man_no_flippers'] = CompressedTextMapper.convert("I really hate mowing my yard.\nI moved my house and everyone else's to avoid it.\n\nI hope you don't mind.") + text['kakariko_flophouse_man'] = CompressedTextMapper.convert("I really hate mowing my yard.\nI moved my house and everyone else's to avoid it.\n\nI hope you don't mind.") text['menu_start_2'] = CompressedTextMapper.convert("{MENU}\n{SPEED0}\n≥@'s house\n Sanctuary\n{CHOICE3}", False) text['menu_start_3'] = CompressedTextMapper.convert("{MENU}\n{SPEED0}\n≥@'s house\n Sanctuary\n Mountain Cave\n{CHOICE2}", False) text['menu_pause'] = CompressedTextMapper.convert("{SPEED0}\n≥continue\n save and quit\n{CHOICE3}", False)