From 5257e7d827512d871b23073b7f98fed7753ccd4f Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Wed, 18 Apr 2018 21:14:52 -0400 Subject: [PATCH 01/16] Fix the text wrapping to not remove starting white space --- Text.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/Text.py b/Text.py index c0b508a6..e45fa23c 100644 --- a/Text.py +++ b/Text.py @@ -501,8 +501,6 @@ class MultiByteCoreTextMapper(object): word = words.pop(0) # sanity check: if the word we have is more than 14 characters, we take as much as we can still fit and push the rest back for later if cls.wordlen(word) > wrap: - if linespace < wrap: - word = ' ' + word (word_first, word_rest) = cls.splitword(word, linespace) words.insert(0, word_rest) lines.insert(0, ' '.join(words)) @@ -510,9 +508,9 @@ class MultiByteCoreTextMapper(object): outbuf.extend(RawMBTextMapper.convert(word_first)) break - if cls.wordlen(word) <= (linespace if linespace == wrap else linespace - 1): - if linespace < wrap: - word = ' ' + word + if cls.wordlen(word) <= linespace: + if cls.wordlen(word) < linespace: + word = word + ' ' linespace -= cls.wordlen(word) outbuf.extend(RawMBTextMapper.convert(word)) else: From a9cdc28350cc4bf87fb8f0e9c9807a318db96c29 Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Wed, 18 Apr 2018 21:17:40 -0400 Subject: [PATCH 02/16] Import text table, and move text to text table --- Rom.py | 47 +++-- Text.py | 645 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 673 insertions(+), 19 deletions(-) diff --git a/Rom.py b/Rom.py index bd96b29f..9987b20d 100644 --- a/Rom.py +++ b/Rom.py @@ -8,7 +8,7 @@ import random from BaseClasses import ShopType from Dungeons import dungeon_music_addresses -from Text import MultiByteTextMapper, text_addresses, Credits +from Text import MultiByteTextMapper, text_addresses, Credits, TextTable from Text import Uncle_texts, Ganon1_texts, PyramidFairy_texts, TavernMan_texts, Sahasrahla2_texts, Triforce_texts, Blind_texts, BombShop2_texts from Text import KingsReturn_texts, Sanctuary_texts, Kakariko_texts, Blacksmiths_texts, DeathMountain_texts, LostWoods_texts, WishingWell_texts, DesertPalace_texts, MountainTower_texts, LinksHouse_texts, Lumberjacks_texts, SickKid_texts, FluteBoy_texts, Zora_texts, MagicShop_texts, Sahasrahla_names from Utils import local_path, int16_as_bytes, int32_as_bytes @@ -1024,43 +1024,52 @@ def write_string_to_rom(rom, target, string): def write_strings(rom, world): + tt = TextTable() + tt.removeUnwantedText() + silverarrows = world.find_items('Silver Arrows') silverarrow_hint = (' %s?' % silverarrows[0].hint_text) if silverarrows else '?\nI think not!' - write_string_to_rom(rom, 'Ganon2', 'Did you find the silver arrows%s' % silverarrow_hint) + tt['ganon_phase_3'] = 'Did you find the silver arrows%s' % silverarrow_hint crystal5 = world.find_items('Crystal 5')[0] crystal6 = world.find_items('Crystal 6')[0] - write_string_to_rom(rom, 'BombShop1', 'Big Bomb?\nMy supply is blocked until you clear %s and %s.' % (crystal5.hint_text, crystal6.hint_text)) + tt['bomb_shop'] = 'Big Bomb?\nMy supply is blocked until you clear %s and %s.' % (crystal5.hint_text, crystal6.hint_text) greenpendant = world.find_items('Green Pendant')[0] - write_string_to_rom(rom, 'Sahasrahla1', 'I lost my family heirloom in %s' % greenpendant.hint_text) + tt['sahasrahla_bring_courage'] = 'I lost my family heirloom in %s' % greenpendant.hint_text + + tt['uncle_leaving_text'] = Uncle_texts[random.randint(0, len(Uncle_texts) - 1)] + tt['end_triforce'] = Triforce_texts[random.randint(0, len(Triforce_texts) - 1)] + tt['bomb_shop_big_bomb'] = BombShop2_texts[random.randint(0, len(BombShop2_texts) - 1)] + tt['pond_will_upgrade'] = PyramidFairy_texts[random.randint(0, len(PyramidFairy_texts) - 1)] + + # unfortunate naming, but this is what shows after getting the green pendant item in rando + # regardless of having checked the icerod cave + tt['sahasrahla_have_boots_no_icerod'] = Sahasrahla2_texts[random.randint(0, len(Sahasrahla2_texts) - 1)] + tt['blind_by_the_light'] = Blind_texts[random.randint(0, len(Blind_texts) - 1)] - write_string_to_rom(rom, 'Uncle', Uncle_texts[random.randint(0, len(Uncle_texts) - 1)]) - write_string_to_rom(rom, 'Triforce', Triforce_texts[random.randint(0, len(Triforce_texts) - 1)]) - write_string_to_rom(rom, 'BombShop2', BombShop2_texts[random.randint(0, len(BombShop2_texts) - 1)]) - write_string_to_rom(rom, 'PyramidFairy', PyramidFairy_texts[random.randint(0, len(PyramidFairy_texts) - 1)]) - write_string_to_rom(rom, 'Sahasrahla2', Sahasrahla2_texts[random.randint(0, len(Sahasrahla2_texts) - 1)]) - write_string_to_rom(rom, 'Blind', Blind_texts[random.randint(0, len(Blind_texts) - 1)]) if world.goal in ['pedestal', 'triforcehunt']: - write_string_to_rom(rom, 'Ganon1Invincible', 'Why are you even here?\n You can\'t even hurt me!') - write_string_to_rom(rom, 'Ganon2Invincible', 'Seriously? Go Away, I will not Die.') + tt['ganon_fall_in_alt'] = 'Why are you even here?\n You can\'t even hurt me!' + tt['ganon_phase_3_alt'] = 'Seriously? Go Away, I will not Die.' else: - write_string_to_rom(rom, 'Ganon1', Ganon1_texts[random.randint(0, len(Ganon1_texts) - 1)]) - write_string_to_rom(rom, 'Ganon1Invincible', 'You cannot defeat me until you finish your goal!') - write_string_to_rom(rom, 'Ganon2Invincible', 'Got wax in\nyour ears?\nI can not die!') - write_string_to_rom(rom, 'TavernMan', TavernMan_texts[random.randint(0, len(TavernMan_texts) - 1)]) + tt['ganon_fall_in'] = Ganon1_texts[random.randint(0, len(Ganon1_texts) - 1)] + tt['ganon_fall_in_alt'] = 'You cannot defeat me until you finish your goal!' + tt['ganon_phase_3_alt'] = 'Got wax in\nyour ears?\nI can not die!' + tt['kakariko_tavern_fisherman'] = TavernMan_texts[random.randint(0, len(TavernMan_texts) - 1)] pedestalitem = world.get_location('Master Sword Pedestal').item pedestal_text = 'Some Hot Air' if pedestalitem is None else pedestalitem.pedestal_hint_text if pedestalitem.pedestal_hint_text is not None else 'Unknown Item' - write_string_to_rom(rom, 'Pedestal', pedestal_text) + tt['mastersword_pedestal_translated'] = pedestal_text pedestal_credit_text = 'and the Hot Air' if pedestalitem is None else pedestalitem.pedestal_credit_text if pedestalitem.pedestal_credit_text is not None else 'and the Unknown Item' etheritem = world.get_location('Ether Tablet').item ether_text = 'Some Hot Air' if etheritem is None else etheritem.pedestal_hint_text if etheritem.pedestal_hint_text is not None else 'Unknown Item' - write_string_to_rom(rom, 'EtherTablet', ether_text) + tt['tablet_ether_book'] = ether_text bombositem = world.get_location('Bombos Tablet').item bombos_text = 'Some Hot Air' if bombositem is None else bombositem.pedestal_hint_text if bombositem.pedestal_hint_text is not None else 'Unknown Item' - write_string_to_rom(rom, 'BombosTablet', bombos_text) + tt['tablet_bombos_book'] = bombos_text + + rom.write_bytes(0xE0000, tt.getBytes()) credits = Credits() diff --git a/Text.py b/Text.py index e45fa23c..0e8cde92 100644 --- a/Text.py +++ b/Text.py @@ -1,4 +1,7 @@ # -*- coding: UTF-8 -*- +from collections import OrderedDict +import logging + text_addresses = {'Pedestal': (0x180300, 256), 'Triforce': (0x180400, 256), 'Uncle': (0x180500, 256), @@ -456,6 +459,7 @@ class MultiByteTextMapper(object): class MultiByteCoreTextMapper(object): special_commands = { "{SPEED0}": [0x7A, 0x00], + "{SPEED1}": [0x7A, 0x01], "{SPEED2}": [0x7A, 0x02], "{SPEED6}": [0x7A, 0x06], "{PAUSE1}": [0x78, 0x01], @@ -1160,3 +1164,644 @@ class LargeCreditBottomMapper(CharTextMapper): '◣': 0xCB,} alpha_offset = 0x22 number_offset = 0x49 + +class TextTable(object): + SIZE = 0x7355 + def __init__(self): + self._text = OrderedDict() + self.setDefaultText() + + def __getitem__(self, key): + return self._text[key] + + def __setitem__(self, key, value): + if not key in self._text: + raise KeyError(key) + if isinstance(value, str): + self._text[key] = CompressedTextMapper.convert(value) + else: + self._text[key]=value + + def getBytes(self): + logger = logging.getLogger('') + data = b''.join(self._text.values()) + logger.debug("translation space remaining: %i", self.SIZE - len(data)) + + if len(data) > self.SIZE: + raise Exception("Text data is too large to fit") + + return data.ljust(self.SIZE, b'\xff') + + def removeUnwantedText(self): + nomessage = bytes(CompressedTextMapper.convert("{NOTEXT}", False)) + text = self._text + messages_to_zero = [ + #escort Messages + 'zelda_go_to_throne', + 'zelda_push_throne', + 'zelda_switch_room_pull', + 'zelda_switch_room', + 'zelda_sewers', + 'mountain_old_man_first', + 'mountain_old_man_deadend', + 'mountain_old_man_turn_right', + 'blind_not_that_way', + + # Note: Maiden text gets skipped by a change we will keep, so technically we don't need to replace them + # Replacing them anyway to make more room in translation table + 'maiden_crystal_1', + 'maiden_crystal_2', + 'maiden_crystal_3', + 'maiden_crystal_4', + 'maiden_crystal_5', + 'maiden_crystal_6', + 'maiden_crystal_7', + 'maiden_ending', + 'maiden_confirm_undersood', + 'maiden_crystal_7_again', + + # Note: Item pickup text is skipped by a change we will keep, so technically we don't need to replace them + # Replacing them anyway to make more room in translation table + 'item_get_lamp', + 'item_get_boomerang', + 'item_get_bow', + 'item_get_shovel', + 'item_get_magic_cape', + 'item_get_powder', + 'item_get_flippers', + 'item_get_power_gloves', + 'item_get_pendant_courage', + 'item_get_pendant_power', + 'item_get_pendant_wisdom', + 'item_get_mushroom', + 'item_get_book', + 'item_get_moonpearl', + 'item_get_compass', + 'item_get_map', #60 + 'item_get_ice_rod', + 'item_get_fire_rod', + 'item_get_ether', + 'item_get_bombos', + 'item_get_quake', + 'item_get_hammer', + 'item_get_ocarina', + 'item_get_cane_of_somaria', + 'item_get_hookshot', + 'item_get_bombs', + 'item_get_bottle', + 'item_get_big_key', + 'item_get_titans_mitts', + 'item_get_magic_mirror', + 'item_get_fake_mastersword', + 'post_item_get_mastersword', + 'item_get_red_potion', + 'item_get_green_potion', + 'item_get_blue_potion', + 'item_get_bug_net', + 'item_get_blue_mail', + 'item_get_red_mail', + 'item_get_temperedsword', + 'item_get_mirror_shield', + 'item_get_cane_of_byrna', + 'item_get_pegasus_boots', + '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 + 'item_get_whole_heart', + 'item_get_sanc_heart', + 'item_get_14_heart', + 'item_get_24_heart', + 'item_get_34_heart', + # misc + 'agahnim_final_meeting', + 'agahnim_hide_and_seek_found', + 'telepathic_sahasrahla_beat_agahnim', + 'telepathic_sahasrahla_beat_agahnim_no_pearl', + 'magic_bat_wake', + 'magic_bat_give_half_magic', + 'mountain_old_man_in_his_cave_pre_agahnim', + 'mountain_old_man_in_his_cave', + 'mountain_old_man_in_his_cave_post_agahnim', + 'priest_sanctuary_before_leave', + 'priest_sanctuary_before_pendants', + 'priest_sanctuary_after_pendants_before_master_sword', + 'zelda_sanctuary_before_leave', + 'zelda_before_pendants', + 'zelda_after_pendants_before_master_sword', + 'zelda_save_sewers', + 'zelda_save_lets_go', + 'zelda_save_repeat', + 'priest_info', + 'sanctuary_enter', + 'zelda_sanctuary_story', + 'sick_kid_trade', + 'hobo_item_get_bottle', + 'sahasrahla_have_courage', + 'sahasrahla_found', + 'sahasrahla_have_boots_no_icerod', + 'sahasrahla_bring_courage', + 'shop_darkworld_enter', + 'shop_first_time', + 'shop_buy_shield', + 'shop_buy_red_potion', + 'shop_buy_arrows', + 'shop_buy_bombs', + 'shop_buy_bee', + 'shop_buy_heart', + 'bomb_shop_big_bomb_buy', + 'item_get_big_bomb', + 'unknown_0', #catfish + 'unknown_1', #catfish + 'zora_meeting', + 'zora_tells_cost', + 'zora_get_flippers', + #'zora_no_cash', + 'zora_no_buy_item', + 'agahnim_zelda_teleport', + 'agahnim_magic_running_away', + 'blind_in_the_cell', + 'kiki_first_extortion', + 'kiki_first_extortion_yes', + 'kiki_second_extortion', + 'kiki_second_extortion_yes', + 'witch_brewing_the_item', + 'barrier_breaking', + 'mountain_old_man_lost_and_alone', + 'mountain_old_man_drop_off', + 'pickup_purple_chest', + 'agahnim_defeated', + 'blacksmiths_collect_frog', + 'blacksmiths_what_you_want', + 'blacksmiths_get_sword', + 'blacksmiths_shop_saving', + 'blacksmiths_paywall', + 'blacksmiths_extra_okay', + 'blacksmiths_bogart_sword', + 'blacksmiths_tempered_already', + 'missing_magic', + 'witch_assistant_no_empty_bottle', + 'witch_assistant_informational', + 'bottle_vendor_choice', + 'bottle_vendor_get', + 'game_digging_choice', + 'game_digging_start', + 'dark_flute_boy_storytime', + 'dark_flute_boy_get_shovel', + 'fish_and_thief_money', + 'game_chest_village_of_outcasts', + 'game_chest_village_of_outcasts_play', + 'hylian_text_2', + 'desert_entry_translated', + 'uncle_dying_sewer', + 'telepathic_intro' + ] + + for msg in messages_to_zero: + self[msg] = nomessage + + def setDefaultText(self): + text = self._text + text['set_cursor'] = bytearray([0xFB, 0xFC, 0x00, 0xF9, 0xFF, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xE4, 0xFE, 0x68]) + text['set_cursor2'] = bytearray([0xFB, 0xFC, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xE4, 0xFE, 0x68]) + text['game_over_menu'] = CompressedTextMapper.convert("{SPEED0}\nSave-Continue\nSave-Quit\nContinue", False) + text['var_test'] = CompressedTextMapper.convert("0= ᚋ, 1= ᚌ\n2= ᚍ, 3= ᚎ", False) + text['follower_no_enter'] = CompressedTextMapper.convert("Can't you take me some place nice.") + text['choice_1_3'] = bytearray([0xFB, 0xFC, 0x00, 0xF7, 0xE4, 0xF8, 0xFF, 0xF9, 0xFF, 0xFE, 0x71]) + text['choice_2_3'] = bytearray([0xFB, 0xFC, 0x00, 0xF7, 0xFF, 0xF8, 0xE4, 0xF9, 0xFF, 0xFE, 0x71]) + text['choice_3_3'] = bytearray([0xFB, 0xFC, 0x00, 0xF7, 0xFF, 0xF8, 0xFF, 0xF9, 0xE4, 0xFE, 0x71]) + text['choice_1_2'] = bytearray([0xFB, 0xFC, 0x00, 0xF7, 0xE4, 0xF8, 0xFF, 0xFE, 0x72]) + text['choice_2_2'] = bytearray([0xFB, 0xFC, 0x00, 0xF7, 0xFF, 0xF8, 0xE4, 0xFE, 0x72]) + text['uncle_leaving_text'] = CompressedTextMapper.convert("I'm just going out for a pack of smokes.") + text['uncle_dying_sewer'] = CompressedTextMapper.convert("I've fallen and I can't get up, take this.") + text['tutorial_guard_1'] = CompressedTextMapper.convert("Only adults should travel at night.") + # 10 + text['tutorial_guard_2'] = CompressedTextMapper.convert("You can PUSH X to see the Map.") + text['tutorial_guard_3'] = CompressedTextMapper.convert("Press the A button to lift things by you.") + text['tutorial_guard_4'] = CompressedTextMapper.convert("When you has a sword, press B to slash it.") + text['tutorial_guard_5'] = CompressedTextMapper.convert("このメッセージはニホンゴでそのまま") # on purpose + text['tutorial_guard_6'] = CompressedTextMapper.convert("Are we really still reading these?") + text['tutorial_guard_7'] = CompressedTextMapper.convert("Jeeze! There really are a lot of things.") + text['priest_sanctuary_before_leave'] = CompressedTextMapper.convert("Go be a hero!") + text['sanctuary_enter'] = CompressedTextMapper.convert("YAY!\nyou saved Zelda!") + text['zelda_sanctuary_story'] = CompressedTextMapper.convert("Do you want to hear me say this again?\n{HARP}\n ≥ no\n yes\n{CHOICE}") + text['priest_sanctuary_before_pendants'] = CompressedTextMapper.convert("Go'on and get them pendants so you can beat up Agahnim") + text['priest_sanctuary_after_pendants_before_master_sword'] = CompressedTextMapper.convert("Kudos! But seriously, you should be getting the master sword not having a kegger in here.") + text['priest_sanctuary_dying'] = CompressedTextMapper.convert("They took her to the castle! take your sword and save her!") + text['zelda_save_sewers'] = CompressedTextMapper.convert("You saved me!") + text['priest_info'] = CompressedTextMapper.convert("So, I'm the dude that will protect Zelda. Don't worry, I got this covered.") + text['zelda_sanctuary_before_leave'] = CompressedTextMapper.convert("Be careful!") + text['telepathic_intro'] = CompressedTextMapper.convert("{NOBORDER}\n{SPEED6}\nHey, come find me and help me!") + # 20 + text['telepathic_reminder'] = CompressedTextMapper.convert("{NOBORDER}\n{SPEED6}\nI'm in the castle basement.") + text['zelda_go_to_throne'] = CompressedTextMapper.convert("Go north to the throne.") + text['zelda_push_throne'] = CompressedTextMapper.convert("Let's push it from the left!") + text['zelda_switch_room_pull'] = CompressedTextMapper.convert("Pull this lever using A.") + text['zelda_save_lets_go'] = CompressedTextMapper.convert("Let's get out of here!") + text['zelda_save_repeat'] = CompressedTextMapper.convert("I like talking, do you?\n ≥ no\n yes\n{CHOICE}") + text['zelda_before_pendants'] = CompressedTextMapper.convert("You need to find all the pendants…\n\n\nNumpty") + text['zelda_after_pendants_before_master_sword'] = CompressedTextMapper.convert("Very pretty pendants, but really you should be getting that sword in the forest!") + text['telepathic_zelda_right_after_master_sword'] = CompressedTextMapper.convert("{NOBORDER}\n{SPEED6}\nHi @,\nHave you been thinking about me?\narrrrrgghh…\n… … …") + text['zelda_sewers'] = CompressedTextMapper.convert("Just a little further to the Sanctuary.") + text['zelda_switch_room'] = CompressedTextMapper.convert("the Sanctuary!\n\nPull my finger") + text['kakariko_saharalasa_wife'] = CompressedTextMapper.convert("Heya, @!\nLong time no see.\nYou want a master sword?\n\nWell good luck with that.") + text['kakariko_saharalasa_wife_sword_story'] = CompressedTextMapper.convert("It occurs to me that I like toast and jam, but cheese and crackers is better\nyou like?\n ≥ cheese\n jam\n{CHOICE}") + text['kakariko_saharalasa_wife_closing'] = CompressedTextMapper.convert("Anywho, I have things to do, you see those 2 ovens?\n\nYeah 2!\nWho has 2 ovens nowadays?") + text['kakariko_saharalasa_after_master_sword'] = CompressedTextMapper.convert("Cool sword!\n\n\n…\n\n\n…\n\n\nPlease save us") + text['kakariko_alert_guards'] = CompressedTextMapper.convert("GUARDS! HELP!\nthe creeper\n@ is here!") + # 30 + text['sahasrahla_quest_have_pendants'] = CompressedTextMapper.convert("{BOTTOM}\nCool beans, but I think you should mozy over to the lost woods.") + text['sahasrahla_quest_have_master_sword'] = CompressedTextMapper.convert("{BOTTOM}\nThat's a pretty sword, but I'm old and old. Why don't you go do all the hard work while I hang out in this hut.") + text['sahasrahla_quest_information'] = CompressedTextMapper.convert( + "{BOTTOM}\n" + + "Sahasrahla, I am. You would do well to find the 3 pendants from the 3 dungeons in light world.\n" + + "Understand?\n ≥ yes\n no\n{CHOICE}") + text['sahasrahla_bring_courage'] = CompressedTextMapper.convert( + "{BOTTOM}\n" + + "While you're here, could you do me a solid and get the green pendant from that dungeon?\n" + + "{HARP}\nI'll give you a present if you do.") + text['sahasrahla_have_ice_rod'] = CompressedTextMapper.convert("{BOTTOM}\nLike, I sit here, and tell you what to do?\n\n\nalright, go and find all the maidens, there are like maybe 7 of them, I dunno anymore. I'm old.") + text['telepathic_sahasrahla_beat_agahnim'] = CompressedTextMapper.convert("{NOBORDER}\n{SPEED6}\nNice so you beat Agahnim, now you must beat Ganon, Good Luck!") + text['telepathic_sahasrahla_beat_agahnim_no_pearl'] = CompressedTextMapper.convert("{NOBORDER}\n{SPEED6}\nOh also you forgot the Moon Pearl, dignus. Go back and find it!") + text['sahasrahla_have_boots_no_icerod'] = CompressedTextMapper.convert("{BOTTOM}\nCave in South East has a cool item") + text['sahasrahla_have_courage'] = CompressedTextMapper.convert("{BOTTOM}\nLook you have the green pendant, I'll give you something, go kill the other two bosses for more pendant fun!") + text['sahasrahla_found'] = CompressedTextMapper.convert("{BOTTOM}\nYup!\n\nI'm the old man you are looking for, I'll keep it short and sweet, go into that dungeon and bring me the green pendant, then talk to me again.") + text['sign_rain_north_of_links_house'] = CompressedTextMapper.convert("↑ Dying Uncle\n This way") + text['sign_north_of_links_house'] = CompressedTextMapper.convert("> Randomizer Don't read me, go beat Ganon!") + text['sign_path_to_death_mountain'] = CompressedTextMapper.convert("Cave to lost old man, good luck.") + text['sign_lost_woods'] = CompressedTextMapper.convert("\n↑ Lost Woods") + text['sign_zoras'] = CompressedTextMapper.convert("Danger!\ndeep water\nzora's") + text['sign_outside_magic_shop'] = CompressedTextMapper.convert("Welcome to the Magic Shop") + # 40 + text['sign_death_mountain_cave_back'] = CompressedTextMapper.convert("Cave away from sky cabbages") + text['sign_east_of_links_house'] = CompressedTextMapper.convert("↓ Lake Hylia\n\n Also a shoppe") + text['sign_south_of_lumberjacks'] = CompressedTextMapper.convert("← Kakariko\n Village") + text['sign_east_of_desert'] = CompressedTextMapper.convert("← Desert\n\n It's hot") + text['sign_east_of_sanctuary'] = CompressedTextMapper.convert("↑→ Potions!\n\nwish waterfall") + text['sign_east_of_castle'] = CompressedTextMapper.convert("→ East Palace\n\n← Castle") + text['sign_north_of_lake'] = CompressedTextMapper.convert("\n Lake Hiriah") + text['sign_desert_thief'] = CompressedTextMapper.convert("Don't talk to me or touch my sign!") + text['sign_lumberjacks_house'] = CompressedTextMapper.convert("Lumberjacks Inc. you see em, we saw em.") + text['sign_north_kakariko'] = CompressedTextMapper.convert("↓ Kakariko\n Village") + text['witch_bring_mushroom'] = CompressedTextMapper.convert("Double, double toil and trouble!\nBring me a mushroom!") + text['witch_brewing_the_item'] = CompressedTextMapper.convert("This mushroom is busy brewing, come back later.") + text['witch_assistant_no_bottle'] = CompressedTextMapper.convert("A bottle for your thoughts? or to put potions in.") + text['witch_assistant_no_empty_bottle'] = CompressedTextMapper.convert("Got to use your stuff before you can get more.") + text['witch_assistant_informational'] = CompressedTextMapper.convert("Red is life\ngreen is magic\nblue is both\nI'll heal you for free though.") + text['witch_assistant_no_bottle_buying'] = CompressedTextMapper.convert("If only you had something to put that in, like a bottle?") + # 50 + text['potion_shop_no_empty_bottles'] = CompressedTextMapper.convert("Whoa Bucko,\nNo empty bottles.") + text['item_get_lamp'] = CompressedTextMapper.convert("Lamp! You can see in the dark, and light torches.") + text['item_get_boomerang'] = CompressedTextMapper.convert("Boomerang! press START to select it.") + text['item_get_bow'] = CompressedTextMapper.convert("You're in bow mode now!") + text['item_get_shovel'] = CompressedTextMapper.convert("This is my new mop. My friend George, he gave me this mop. It's a pretty good mop. It's not as good as my old mop, I miss my old mop. But it's still a good mop.") + text['item_get_magic_cape'] = CompressedTextMapper.convert("Finally! we get to play invisble man!") + text['item_get_powder'] = CompressedTextMapper.convert("It's the powder. Let's cause some mischief") + text['item_get_flippers'] = CompressedTextMapper.convert("Splish! Splash! Let's go take a bath!") + text['item_get_power_gloves'] = CompressedTextMapper.convert("Feel the power! you can now lift light rocks! rock on!") + text['item_get_pendant_courage'] = CompressedTextMapper.convert("We have the Pendant of courage! Rock on! ?") + text['item_get_pendant_power'] = CompressedTextMapper.convert("We have the Pendant of power! Rock on! ?") + text['item_get_pendant_wisdom'] = CompressedTextMapper.convert("We have the Pendant of wisdom! Rock on! ?") + text['item_get_mushroom'] = CompressedTextMapper.convert("A mushroom! Don't eat. Find a witch.") + text['item_get_book'] = CompressedTextMapper.convert("It's a book! you are now litterate!") + text['item_get_moonpearl'] = CompressedTextMapper.convert("I found a shiny marble! No more hops!") + text['item_get_compass'] = CompressedTextMapper.convert("A compass! I can now find the boss.") + # 60 + text['item_get_map'] = CompressedTextMapper.convert("Yo! you found a MAP! PUSH X to see it.") + text['item_get_ice_rod'] = CompressedTextMapper.convert("It's the Ice Rod! Freeze Ray time.") + text['item_get_fire_rod'] = CompressedTextMapper.convert("Rod that shoots fire? Let's burn all the things!") + text['item_get_ether'] = CompressedTextMapper.convert("We can chill out with this!") + text['item_get_bombos'] = CompressedTextMapper.convert("Lets set everything on fire, and melt things") + text['item_get_quake'] = CompressedTextMapper.convert("Time to make the earth shake, rattle, and roll") + text['item_get_hammer'] = CompressedTextMapper.convert("STOP!\n\nHammer Time!") # 66 + text['item_get_ocarina'] = CompressedTextMapper.convert("Finally! we can play the song of time!") + text['item_get_cane_of_somaria'] = CompressedTextMapper.convert("Make blocks!\nThrow blocks!\nsplode Blocks!") + text['item_get_hookshot'] = CompressedTextMapper.convert("BOING!!!\nBOING!!!\nSay no more…") + text['item_get_bombs'] = CompressedTextMapper.convert("BOMBS! use A~ pickem up, throwem, get hurt!") + text['item_get_bottle'] = CompressedTextMapper.convert("It's a terrarium. I hope we find a lizard!") + text['item_get_big_key'] = CompressedTextMapper.convert("Yo! You got a Big Key!") + text['item_get_titans_mitts'] = CompressedTextMapper.convert("So like you can now lift anything.\nANYTHING!") + text['item_get_magic_mirror'] = CompressedTextMapper.convert("We could stare at this all day, or you know, beat Ganon…") + text['item_get_fake_mastersword'] = CompressedTextMapper.convert("It's the Master Sword! or not\n\n FOOL!\n") + # 70 + text['post_item_get_mastersword'] = CompressedTextMapper.convert("{NOBORDER}\n{SPEED6}\n@, you got the sword!\n{CHANGEMUSIC}\nNow lets go beat up Agahnim!") + text['item_get_red_potion'] = CompressedTextMapper.convert("Red goo to go! nice!") + text['item_get_green_potion'] = CompressedTextMapper.convert("Green goo to go! nice!") + text['item_get_blue_potion'] = CompressedTextMapper.convert("Blue goo to go! nice!") + text['item_get_bug_net'] = CompressedTextMapper.convert("Surprise net! let's catch stuff!") + text['item_get_blue_mail'] = CompressedTextMapper.convert("Blue threads? Less damage activated!") + text['item_get_red_mail'] = CompressedTextMapper.convert("You feel the power of the eggplant on your head.") + text['item_get_temperedsword'] = CompressedTextMapper.convert("Nice… I noew have a craving for cheetos") + text['item_get_mirror_shield'] = CompressedTextMapper.convert("Pit would be proud!") + text['item_get_cane_of_byrna'] = CompressedTextMapper.convert("It's the Blue Cane, you can now protect yourself with lag!") + text['missing_big_key'] = CompressedTextMapper.convert("Something is missing…\nThe Big Key?") + text['missing_magic'] = CompressedTextMapper.convert("Something is missing…\nMagic meter?") + text['item_get_pegasus_boots'] = CompressedTextMapper.convert("Finally, It's bonking time!\nHold A to dash") + text['talking_tree_info_start'] = CompressedTextMapper.convert("Whoa! I can talk again!") + text['talking_tree_info_1'] = CompressedTextMapper.convert("Yank on the pitchfork in the center of town, yah heard it here.") + text['talking_tree_info_2'] = CompressedTextMapper.convert("Ganon is such a dingus, no one likes him, yah heard it here.") + # 80 + text['talking_tree_info_3'] = CompressedTextMapper.convert("There is a portal near the lost woods, yah heard it here.") + text['talking_tree_info_4'] = CompressedTextMapper.convert("Use bombs to quickly kill the Hinox, yah heard it here.") + text['talking_tree_other'] = CompressedTextMapper.convert("I can breathe!") + text['item_get_pendant_power_alt'] = CompressedTextMapper.convert("We have the Pendant of Power! Rock on!") + text['item_get_pendant_wisdom_alt'] = CompressedTextMapper.convert("We have the Pendant of wisdom! Rock on!") + text['game_shooting_choice'] = CompressedTextMapper.convert("20 rupees.\n5 arrows.\nwin rupees!\nWant to play?\n ≥ yes\n no\n{CHOICE}") + text['game_shooting_yes'] = CompressedTextMapper.convert("Lets do this!") + text['game_shooting_no'] = CompressedTextMapper.convert("Where are you going? Straight up!") + text['game_shooting_continue'] = CompressedTextMapper.convert("Keep playing?\n ≥ yes\n no\n{CHOICE}") + text['pond_of_wishing'] = CompressedTextMapper.convert("-Wishing Pond-\n\n On Vacation") + text['pond_item_select'] = CompressedTextMapper.convert("Pick something\nto throw in.\n{ITEMSELECT}") + text['pond_item_test'] = CompressedTextMapper.convert("You toss this?\n ≥ yup\n wrong\n{CHOICE}") + text['pond_will_upgrade'] = CompressedTextMapper.convert("You're honest, so I'll give you a present.") + text['pond_item_test_no'] = CompressedTextMapper.convert("You sure?\n ≥ oh yeah\n um\n{CHOICE}") + text['pond_item_test_no_no'] = CompressedTextMapper.convert("Well I don't want it, so take it back") + text['pond_item_boomerang'] = CompressedTextMapper.convert("I don't much like you, so have this worse boomerang") + # 90 + text['pond_item_shield'] = CompressedTextMapper.convert("I grant you the ability to block fireballs, don't lose this to a pikit") + text['pond_item_silvers'] = CompressedTextMapper.convert("So, it sure would be nice to kill Ganon? These should help in the final phase") + text['pond_item_bottle_filled'] = CompressedTextMapper.convert("Filled Bottle!\nMoney Saved!") + text['pond_item_sword'] = CompressedTextMapper.convert("Thank you for the sword, here is a stick of butter") + text['pond_of_wishing_happiness'] = CompressedTextMapper.convert("Happiness up!\nYou are now\nᚌᚋ happy!") + text['pond_of_wishing_choice'] = CompressedTextMapper.convert("your wish?\n ≥more bombs\n more arrows\n{CHOICE}") + text['pond_of_wishing_bombs'] = CompressedTextMapper.convert("Whoo Hoo!\nYou can now\ncarry ᚌᚋ bombs") + text['pond_of_wishing_arrows'] = CompressedTextMapper.convert("Whoo Hoo!\nYou can now\nhold ᚌᚋ arrows") + text['pond_of_wishing_full_upgrades'] = CompressedTextMapper.convert("You got all I can give you, here's your rupees back.") + text['mountain_old_man_first'] = CompressedTextMapper.convert("Look out for holes, and mosters.") + text['mountain_old_man_deadend'] = CompressedTextMapper.convert("Oh goody, hearts in jars! this place is creepy") + text['mountain_old_man_turn_right'] = CompressedTextMapper.convert("Turn right. Lets get out of this place.") + text['mountain_old_man_lost_and_alone'] = CompressedTextMapper.convert("Hello, I can't see anything, take me with you.") + text['mountain_old_man_drop_off'] = CompressedTextMapper.convert("Here's a thing to help you, good luck!") + text['mountain_old_man_in_his_cave_pre_agahnim'] = CompressedTextMapper.convert("You need to beat the tower at the top of the mountain.") + text['mountain_old_man_in_his_cave'] = CompressedTextMapper.convert("You can find stuff in the tower at the top of this mountain.\nCome see me if you would like healed.") + # A0 + text['mountain_old_man_in_his_cave_post_agahnim'] = CompressedTextMapper.convert("You should be heading to the castle… you have a portal there now.\nSay hi anytime you like.") + text['tavern_old_man_awake'] = CompressedTextMapper.convert("Life? Love? Happiness? The question you should really ask is, was this generated by Stoops Alu or Stoops Jet?") + text['tavern_old_man_unactivated_flute'] = CompressedTextMapper.convert("You should play that flute for the weathervain, cause reasons.") + text['tavern_old_man_know_tree_unactivated_flute'] = CompressedTextMapper.convert("You should play that flute for the weathervain, cause reasons.") + text['tavern_old_man_have_flute'] = CompressedTextMapper.convert("Life? Love? Happiness? The question you should really ask is, was this generated by Stoops Alu or Stoops Jet?") + text['chicken_hut_lady'] = CompressedTextMapper.convert("This is\nChristos' hut,\n\nHe's out searching for a bow.") + text['running_man'] = CompressedTextMapper.convert("Hi, Do you\nknow Veetorp?\n\nYou really\nshould. And\nall the other great guys who made this possible.\nGo thank them.\n\n\nIf you can catch them…") + text['game_race_sign'] = CompressedTextMapper.convert("Why are you reading this sign? Run!!!") + text['sign_bumper_cave'] = CompressedTextMapper.convert("You need Cape, but not Hookshot") + text['sign_catfish'] = CompressedTextMapper.convert("toss rocks\ntoss items\ntoss cookies") + text['sign_north_village_of_outcasts'] = CompressedTextMapper.convert("↑ Skull woods\n\n↓ Steve's town") + text['sign_south_of_bumper_cave'] = CompressedTextMapper.convert("\n→ Karkats cave") + text['sign_east_of_pyramid'] = CompressedTextMapper.convert("\n→ Dark Palace") + text['sign_east_of_bomb_shop'] = CompressedTextMapper.convert("\n← Bomb shoppe") + text['sign_east_of_mire'] = CompressedTextMapper.convert("\n← Misery Mire\n no way in.\n no way out.") + text['sign_village_of_outcasts'] = CompressedTextMapper.convert("Have a Trulie Awesome Day!") + # B0 + text['sign_before_wishing_pond'] = CompressedTextMapper.convert("waterfall\nup ahead\nmake wishes") + text['sign_before_catfish_area'] = CompressedTextMapper.convert("→↑ Have you met Woeful Ike?") + text['castle_wall_guard'] = CompressedTextMapper.convert("Looking for a Princess? Look downstairs.") + text['gate_guard'] = CompressedTextMapper.convert("No Lonks Allowed!") + text['telepathic_tile_eastern_palace'] = CompressedTextMapper.convert("{NOBORDER}\nYou need a Bow to get past the red Eyegore. derpy") + text['telepathic_tile_tower_of_hera_floor_4'] = CompressedTextMapper.convert("{NOBORDER}\nIf you find a shiny ball, you can be you in the Dark World") + text['hylian_text_1'] = CompressedTextMapper.convert("%== %== %==\n ^ %==% ^\n%== ^%%^ ==^") + text['mastersword_pedestal_translated'] = CompressedTextMapper.convert("A test of strength, if you have 3 pendants, I'm yours") + text['telepathic_tile_spectacle_rock'] = CompressedTextMapper.convert("{NOBORDER}\nUse the mirror, or the hookshot and hammer to get to Tower of Hera!") + text['telepathic_tile_swamp_entrance'] = CompressedTextMapper.convert("{NOBORDER}\nDrain the floodgate to raise the water here!") + text['telepathic_tile_thieves_town_upstairs'] = CompressedTextMapper.convert("Secondary tournament winners\n{HARP}\n ~~~2017~~~\nA: Zaen") + text['telepathic_tile_misery_mire'] = CompressedTextMapper.convert("{NOBORDER}\nLighting 4 torches will open your way forward!") + text['hylian_text_2'] = CompressedTextMapper.convert("%%^= %==%\n ^ =%^=\n==%= ^^%^") + text['desert_entry_translated'] = CompressedTextMapper.convert("Kneel before this stone, and magic will move around you.") + text['telepathic_tile_under_ganon'] = CompressedTextMapper.convert("{NOBORDER}\nOnly arrows will finish off a blue Ganon, or really well timed spins in phase 4.") + text['telepathic_tile_palace_of_darkness'] = CompressedTextMapper.convert("{NOBORDER}\nThis is a funny looking Enemizer") + # C0 + text['telepathic_tile_desert_bonk_torch_room'] = CompressedTextMapper.convert("{NOBORDER}\nThings can be knocked down, if you fancy yourself a dashing dude.") + text['telepathic_tile_castle_tower'] = CompressedTextMapper.convert("{NOBORDER}\nYou can reflect Agahnim's energy with Sword, Bug-net or Hammer.") + text['telepathic_tile_ice_large_room'] = CompressedTextMapper.convert("{NOBORDER}\nAll right stop collaborate and listen\nice is back with my brand new invention") + text['telepathic_tile_turtle_rock'] = CompressedTextMapper.convert("{NOBORDER}\nYou Shall not pass… without the red cane") + text['telepathic_tile_ice_entrace'] = CompressedTextMapper.convert("{NOBORDER}\nYou can use fire rod or Bombos to pass") + text['telepathic_tile_ice_stalfos_knights_room'] = CompressedTextMapper.convert("{NOBORDER}\nKnock em down and them bomb them dead.") + text['telepathic_tile_tower_of_hera_entrance'] = CompressedTextMapper.convert("{NOBORDER}\nThis is a bad place, with a guy who will make you fall\n\n\na lot.") + text['houlahan_room'] = CompressedTextMapper.convert("Randomizer tournament winners\n{HARP}\n ~~~2017~~~\nA: ajneb174\nS: ajneb174") + text['caught_a_bee'] = CompressedTextMapper.convert("Caught a Bee\n ≥ keep\n release\n{CHOICE}") + text['caught_a_fairy'] = CompressedTextMapper.convert("Caught Fairy!\n ≥ keep\n release\n{CHOICE}") + text['no_empty_bottles'] = CompressedTextMapper.convert("Whoa bucko!\nNo empty bottles.") + text['game_race_boy_time'] = CompressedTextMapper.convert("Your time was\nᚎᚍ min ᚌᚋ sec.") + text['game_race_girl'] = CompressedTextMapper.convert("You have 15 seconds,\nGo… Go… Go…") + text['game_race_boy_success'] = CompressedTextMapper.convert("Nice!\nYou can have this trash!") + text['game_race_boy_failure'] = CompressedTextMapper.convert("Too slow!\nI keep my\nprecious!") + text['game_race_boy_already_won'] = CompressedTextMapper.convert("You already have your prize, Dingus!") + # D0 + text['game_race_boy_sneaky'] = CompressedTextMapper.convert("Thought you could sneak in eh?") + text['bottle_vendor_choice'] = CompressedTextMapper.convert("I have bottles.\nYou's got 100 ruppes?\n ≥ I want\n no way!") + text['bottle_vendor_get'] = CompressedTextMapper.convert("Nice! Hold it up son! Show the world what you got!") + text['bottle_vendor_no'] = CompressedTextMapper.convert("Fine! I didn't want your money anways.") + text['bottle_vendor_already_collected'] = CompressedTextMapper.convert("Dude! You already have it") + text['bottle_vendor_bee'] = CompressedTextMapper.convert("Cool! A bee! here's 100 rupees.") + text['bottle_vendor_fish'] = CompressedTextMapper.convert("Whoa! A fish! You walked this all the way here?") + text['hobo_item_get_bottle'] = CompressedTextMapper.convert("You think life is rough? I guess you can take my last item, except this tent, that's MY tent!") + text['blacksmiths_what_you_want'] = CompressedTextMapper.convert("Nice of you to come back!\nWould you like us mess with your sword?\n ≥ Termper\n It's fine\n{CHOICE}") + text['blacksmiths_paywall'] = CompressedTextMapper.convert("It's 10 rupees\n ≥ Easy\n Hang on…\n{CHOICE}") + text['blacksmiths_extra_okay'] = CompressedTextMapper.convert("Are you sure you're sure?\n ≥ Ah, yup\n Hang on…\n{CHOICE}") + text['blacksmiths_tempered_already'] = CompressedTextMapper.convert("Whelp… We can't make this any better.") + text['blacksmiths_temper_no'] = CompressedTextMapper.convert("Oh, come by any time!") + text['blacksmiths_bogart_sword'] = CompressedTextMapper.convert("We're going to have to take it to work on it.") + text['blacksmiths_get_sword'] = CompressedTextMapper.convert("Sword is done, now back to our bread!") + text['blacksmiths_shop_before_saving'] = CompressedTextMapper.convert("I lost my friend, help me find him!") + # E0 + text['blacksmiths_shop_saving'] = CompressedTextMapper.convert("You found him! Colour me happy! Come back right away and we will bang on your sword.") + text['blacksmiths_collect_frog'] = CompressedTextMapper.convert("Ribbit! Ribbit! Lets find my partner. To the shoppe!") + text['blacksmiths_still_working'] = CompressedTextMapper.convert("Something this precious takes time… Come back later") + text['blacksmiths_saving_bows'] = CompressedTextMapper.convert("Thanks!\n\nThanks!") + text['blacksmiths_hammer_anvil'] = CompressedTextMapper.convert("Dernt Take Er Jerbs!") + text['dark_flute_boy_storytime'] = CompressedTextMapper.convert("Hi!\nI'm stumpy\nI've been chilling in this world for a while now, but I miss my flute. If I gave you a shovel, would you go digging for it?\n ≥ sure\n nahh\n{CHOICE}") + text['dark_flute_boy_get_shovel'] = CompressedTextMapper.convert("Schaweet! Here you go, happy digging!") + text['dark_flute_boy_no_get_shovel'] = CompressedTextMapper.convert("Oh I see, not good enough for you… FINE!") + text['dark_flute_boy_flute_not_found'] = CompressedTextMapper.convert("Still haven't found the item, dig in the light world around here, Dingus!") + text['dark_flute_boy_after_shovel_get'] = CompressedTextMapper.convert("So I gave you an item, and you're still here.\n\n\n\n\n\nI mean we can sit here and stare at each other if you like…\n\n\n\n\n\n\n\nFine, I guess you should just go.") + text['shop_fortune_teller_lw_hint_0'] = CompressedTextMapper.convert("{BOTTOM}\nBy the black cats, the book opens the desert") + text['shop_fortune_teller_lw_hint_1'] = CompressedTextMapper.convert("{BOTTOM}\nBy the black cats, nothing doing") + text['shop_fortune_teller_lw_hint_2'] = CompressedTextMapper.convert("{BOTTOM}\nBy the black cats, I'm cheap") + text['shop_fortune_teller_lw_hint_3'] = CompressedTextMapper.convert("{BOTTOM}\nBy the black cats, am I cheap?") + text['shop_fortune_teller_lw_hint_4'] = CompressedTextMapper.convert("{BOTTOM}\nBy the black cats, Zora lives at the end of the river") + text['shop_fortune_teller_lw_hint_5'] = CompressedTextMapper.convert("{BOTTOM}\nBy the black cats, The Cape can pass through the barrier") + text['shop_fortune_teller_lw_hint_6'] = CompressedTextMapper.convert("{BOTTOM}\nBy the black cats, Spin, Hammer, or Net to hurt Agahnim") + text['shop_fortune_teller_lw_hint_7'] = CompressedTextMapper.convert("{BOTTOM}\nBy the black cats, You can jump in the well by the blacksmiths") + text['shop_fortune_teller_lw_no_rupees'] = CompressedTextMapper.convert("{BOTTOM}\nThe black cats are hungry, come back with rupees") + text['shop_fortune_teller_lw'] = CompressedTextMapper.convert("{BOTTOM}\nWelcome to the fortune shoppe!\nFancy a read?\n ≥I must know\n negitive\n{CHOICE}") + text['shop_fortune_teller_lw_post_hint'] = CompressedTextMapper.convert("{BOTTOM}\nFor ᚋᚌ rupees\nIt is done.\nBe gone!") + text['shop_fortune_teller_lw_no'] = CompressedTextMapper.convert("{BOTTOM}\nWell then, why did you even come in here?") + text['shop_fortune_teller_lw_hint_8'] = CompressedTextMapper.convert("{BOTTOM}\nBy the black cats, why you do?") + text['shop_fortune_teller_lw_hint_9'] = CompressedTextMapper.convert("{BOTTOM}\nBy the black cats, panda crackers") + text['shop_fortune_teller_lw_hint_10'] = CompressedTextMapper.convert("{BOTTOM}\nBy the black cats, the missing blacksmith is south of the villiage of outcasts") + text['shop_fortune_teller_lw_hint_11'] = CompressedTextMapper.convert("{BOTTOM}\nBy the black cats, open chests to get stuff") + text['shop_fortune_teller_lw_hint_12'] = CompressedTextMapper.convert("{BOTTOM}\nBy the black cats, you can buy a new bomb at the bomb shop") + text['shop_fortune_teller_lw_hint_13'] = CompressedTextMapper.convert("{BOTTOM}\nBy the black cats, big bombs blow up cracked walls in pyramids") + text['shop_fortune_teller_lw_hint_14'] = CompressedTextMapper.convert("{BOTTOM}\nBy the black cats, you need all the crystals to open Ganons tower") + text['shop_fortune_teller_lw_hint_15'] = CompressedTextMapper.convert("{BOTTOM}\nBy the black cats, silver arrows will defeat Ganon in his final phase") + text['dark_sanctuary'] = CompressedTextMapper.convert("For 20 rupees I'll tell you something?\nHow about it?\n ≥ yes\n no\n{CHOICE}") + text['dark_sanctuary_hint_0'] = CompressedTextMapper.convert("I once was a tea kettle, but then I moved up in the world, and now you can see me as this. Makes you wonder. What I could be next time.") + # 100 + text['dark_sanctuary_no'] = CompressedTextMapper.convert("Then go away!") + text['dark_sanctuary_hint_1'] = CompressedTextMapper.convert("There is a thief in the desert, he can open creepy chests that follow you. But now that we have that out of the way, Do you like my hair? I've spent eons getting it this way.") + text['dark_sanctuary_yes'] = CompressedTextMapper.convert("With Crystals 5&6 you can find a great fairy in the pyramid.\n\nFlomp Flomp, Whizzle Whomp") + text['dark_sanctuary_hint_2'] = CompressedTextMapper.convert( + "All I can say is that my life is pretty plain,\n" + + "I like watchin' the puddles gather rain,\n" + + "And all I can do is just pour some tea for two,\n" + + "And speak my point of view but it's not sane,\n" + + "It's not sane") + text['sick_kid_no_bottle'] = CompressedTextMapper.convert("{BOTTOM}\nI'm sick! show me a bottle, get something!") + text['sick_kid_trade'] = CompressedTextMapper.convert("{BOTTOM}\nCool Bottle! Here's something for you.") + text['sick_kid_post_trade'] = CompressedTextMapper.convert("{BOTTOM}\nLeave me alone\nI'm sick. You have my item.") + text['desert_thief_sitting'] = CompressedTextMapper.convert("………………………") + text['desert_thief_following'] = CompressedTextMapper.convert("why……………") + text['desert_thief_question'] = CompressedTextMapper.convert("I was a theif, I open purple chests!\nKeep secret?\n ≥ sure thing\n never!\n{CHOICE}") + text['desert_thief_question_yes'] = CompressedTextMapper.convert("Cool, bring me any purple chests you find.") + text['desert_thief_after_item_get'] = CompressedTextMapper.convert("You tell anyone and I will give you such a pinch!") + text['desert_thief_reassure'] = CompressedTextMapper.convert("bring chests, it's a secret to everyone.") + text['hylian_text_3'] = CompressedTextMapper.convert("^^ ^%=^= =%=\n=%% =%%=^\n==%^= %=^^%") + text['tablet_ether_book'] = CompressedTextMapper.convert("Can you make things fall out of the sky? with the Master Sword you can!") + text['tablet_bombos_book'] = CompressedTextMapper.convert("Can you make things fall out of the sky? with the Master Sword you can!") + # 110 + text['magic_bat_wake'] = CompressedTextMapper.convert("you bum! I was sleeping. Where's my magic bolts?") + text['magic_bat_give_half_magic'] = CompressedTextMapper.convert("How you like me now?") + text['intro_main'] = CompressedTextMapper.convert( + "{INTRO}\n Episode III\n{PAUSE3}\n a link to\n the past\n" + + "{PAUSE3}\n randomizer\n{PAUSE3}\nAfter mostly disregarding what happened in the first two games.\n" + + "{PAUSE3}\nLink awakens to his uncle leaving the house,\n{PAUSE3}\nhe just runs out the door\n" + + "{PAUSE3}\ninto the rainy night.\n{PAUSE3}\n{CHANGEPIC}\nGanon has moved all the items around hyrule.\n" + + "{PAUSE7}\nYou will have to find all the items necessary to beat Ganon.\n" + + "{PAUSE7}\nThis is your chance to be a hero\n{PAUSE3}\n{CHANGEPIC}\n" + + "You must get the 7 crystals to beat Ganon.\n{PAUSE9}\n{CHANGEPIC}", False) + text['intro_throne_room'] = CompressedTextMapper.convert("{IBOX}\nLook at this stalfos on the throne.", False) + text['intro_zelda_cell'] = CompressedTextMapper.convert("{IBOX}\nIt is your time to shine!", False) + text['intro_agahnim'] = CompressedTextMapper.convert("{IBOX}\nAlso you need to defeat this guy!", False) + text['pickup_purple_chest'] = CompressedTextMapper.convert("A curious box, lets take it with us") + text['bomb_shop'] = CompressedTextMapper.convert("30 bombs for 100 rupees, good deals all day!") + text['bomb_shop_big_bomb'] = CompressedTextMapper.convert("30 bombs for 100 rupees, 100 rupees 1 BIG bomb. good deals all day!") + text['bomb_shop_big_bomb_buy'] = CompressedTextMapper.convert("Thanks!\nBoom goes the dynamite!") + text['item_get_big_bomb'] = CompressedTextMapper.convert("YAY! press A to splode it!") + text['kiki_second_extortion'] = CompressedTextMapper.convert("For 100 more I'll open this place?\nHow about it?\n ≥ open\n nah\n{CHOICE}") + text['kiki_second_extortion_no'] = CompressedTextMapper.convert("Heh, good luck getting in.") + text['kiki_second_extortion_yes'] = CompressedTextMapper.convert("Yay! Rupees!\nokay, let's do this!") + text['kiki_first_extortion'] = CompressedTextMapper.convert("I'm kiki, I like rupees, may I have 10?\nHow about it?\n ≥ yes\n no\n{CHOICE}") + text['kiki_first_extortion_yes'] = CompressedTextMapper.convert("Nice. I'll tag along with you for a bit.") + # 120 + text['kiki_first_extortion_no'] = CompressedTextMapper.convert("Pfft. I have no reason to hang. Seeyah!") + text['kiki_leaving_screen'] = CompressedTextMapper.convert("No no no no no! We should play by my rules! Goodbye…") + text['blind_in_the_cell'] = CompressedTextMapper.convert("You saved me!\nPlease get me out of here!") + text['blind_by_the_light'] = CompressedTextMapper.convert("Aaaahhhh~!\nS-so bright~!") + text['blind_not_that_way'] = CompressedTextMapper.convert("No! Don't go that way!") + text['aginah_l1sword_no_book'] = CompressedTextMapper.convert("I once had a fish dinner, I still remember it to this day.") + text['aginah_l1sword_with_pendants'] = CompressedTextMapper.convert("Do you remember when I was young?\n\nI sure don't.") + text['aginah'] = CompressedTextMapper.convert("So, I've been living in this cave for years, and you think you can just come along and bomb open walls?") + text['aginah_need_better_sword'] = CompressedTextMapper.convert("Once I farted in this cave so bad all the jazz hands guys ran away in hid in the sand.") + text['aginah_have_better_sword'] = CompressedTextMapper.convert("Panda's are very vicious animals. Never forget…\n\n\n\n\n… I never will") + text['unknown_0'] = CompressedTextMapper.convert("You woke me from my nap, take this and get out!") + text['unknown_1'] = CompressedTextMapper.convert("I don't have anything else for you!\nTake this!") + # 12C + text['lumberjack_right'] = CompressedTextMapper.convert("One of us always lies.") + text['lumberjack_left'] = CompressedTextMapper.convert("One of us always tells the truth.") + text['lumberjack_left_post_agahnim'] = CompressedTextMapper.convert("One of us likes peanut butter") + text['fighting_brothers_right'] = CompressedTextMapper.convert("I walled off my brother Leo\n\nWhat a dingus.\n") + # 130 + text['fighting_brothers_right_opened'] = CompressedTextMapper.convert("Now I should probably talk to him…") + text['fighting_brothers_left'] = CompressedTextMapper.convert("Did you come from my brothers room?\n\nAre we cool?\n") + text['maiden_crystal_1'] = CompressedTextMapper.convert("{SPEED2}\n{BOTTOM}\n{NOBORDER}\nI have a pretty red dress.\n{SPEED1}\nJust thought I would tell you.") + text['maiden_crystal_2'] = CompressedTextMapper.convert("{SPEED2}\n{BOTTOM}\n{NOBORDER}\nI have a pretty blue dress.\n{SPEED1}\nJust thought I would tell you.") + text['maiden_crystal_3'] = CompressedTextMapper.convert("{SPEED2}\n{BOTTOM}\n{NOBORDER}\nI have a pretty gold dress.\n{SPEED1}\nJust thought I would tell you.") + text['maiden_crystal_4'] = CompressedTextMapper.convert("{SPEED2}\n{BOTTOM}\n{NOBORDER}\nI have a pretty redder dress.\n{SPEED1}\nJust thought I would tell you.") + text['maiden_crystal_5'] = CompressedTextMapper.convert("{SPEED2}\n{BOTTOM}\n{NOBORDER}\nI have a pretty green dress.\n{SPEED1}\nJust thought I would tell you.") + text['maiden_crystal_6'] = CompressedTextMapper.convert("{SPEED2}\n{BOTTOM}\n{NOBORDER}\nI have a pretty green dress.\n{SPEED1}\nJust thought I would tell you.") + text['maiden_crystal_7'] = CompressedTextMapper.convert("{SPEED2}\n{BOTTOM}\n{NOBORDER}\nIt's about friggin time.\n{SPEED1}\nDo you know how long I have been waiting?") + text['maiden_ending'] = CompressedTextMapper.convert("May the way of the hero lead to the triforce") + text['maiden_confirm_undersood'] = CompressedTextMapper.convert("{SPEED2}\n{BOTTOM}\n{NOBORDER}\nCapisce?\n ≥ Yes\n No\n{CHOICE}") + text['barrier_breaking'] = CompressedTextMapper.convert("What did the seven crystals say to Ganons tower?") + text['maiden_crystal_7_again'] = CompressedTextMapper.convert("{SPEED2}\n{BOTTOM}\n{NOBORDER}\nIt's about friggin time.\n{SPEED1}\nDo you know how long I have been waiting?") + text['agahnim_zelda_teleport'] = CompressedTextMapper.convert("I am a magician, and this is my act. Watch as I make this girl dissapear") + text['agahnim_magic_running_away'] = CompressedTextMapper.convert("And now, the end is near\nAnd so I face the final curtain\nMy friend, I'll say it clear\nI'll state my case, of which I'm certain\nI've lived a life that's full\nI've traveled each and every highway\nBut more, much more than this\nI did it my way") + text['agahnim_hide_and_seek_found'] = CompressedTextMapper.convert("Peek-a-boo!") + text['agahnim_defeated'] = CompressedTextMapper.convert("Arrrgggghhh. Well you're coming with me!") + text['agahnim_final_meeting'] = CompressedTextMapper.convert("You have done well to come this far, now die!") + # 142 + text['zora_meeting'] = CompressedTextMapper.convert("What do you want?\n ≥ Flippers\n Nothin'\n{CHOICE}") + text['zora_tells_cost'] = CompressedTextMapper.convert("Fine! but they aren't cheap, you got 500 rupees?\n ≥ Duh\n Oh carp\n{CHOICE}") + text['zora_get_flippers'] = CompressedTextMapper.convert("Here's some flippers for you! Swim little fish, swim.") + text['zora_no_cash'] = CompressedTextMapper.convert("Fine!\nGo get some more money first.") + text['zora_no_buy_item'] = CompressedTextMapper.convert("Wah hoo! Well, whenever you want to see these gills, stop on by.") + text['kakariko_saharalasa_grandson'] = CompressedTextMapper.convert("My grandpa is over in the East. I'm bad with directions. I'll mark your map. Best of luck!\n{HARP}") + text['kakariko_saharalasa_grandson_next'] = CompressedTextMapper.convert("Someday I'll be in a high school band!") + text['dark_palace_tree_dude'] = CompressedTextMapper.convert("Did you know…\n\n\nA tree typically has many secondary branches supported clear of the ground by the trunk. This trunk typically contains woody tissue for strength, and vascular tissue to carry materials from one part of the tree to another.") + text['fairy_wishing_ponds'] = CompressedTextMapper.convert("\n-wishing pond-\n\nThrow item in?\n ≥ Yesh\n No\n{CHOICE}") + text['fairy_wishing_ponds_no'] = CompressedTextMapper.convert("\n stop it!") + text['pond_of_wishing_no'] = CompressedTextMapper.convert("\n fine then!") + text['pond_of_wishing_return_item'] = CompressedTextMapper.convert("Okay, here's your item back, cause I can't use it. I'm stuck in this fountain") + text['pond_of_wishing_throw'] = CompressedTextMapper.convert("How many?\n ≥ᚌᚋ rupees\n ᚎᚍ rupees\n{CHOICE}") + text['pond_pre_item_silvers'] = CompressedTextMapper.convert("I like you, so here's a thing you can use to beat up Ganon.") + # 150 + text['pond_of_wishing_great_luck'] = CompressedTextMapper.convert("\nis great luck") + text['pond_of_wishing_good_luck'] = CompressedTextMapper.convert("\n is good luck") + text['pond_of_wishing_meh_luck'] = CompressedTextMapper.convert("\n is meh luck") + # Repurposed to no items in Randomizer + text['pond_of_wishing_bad_luck'] = CompressedTextMapper.convert("Why you come in here and pretend like you have something this fountain wants? Come back with bottles!") + text['pond_of_wishing_fortune'] = CompressedTextMapper.convert("by the way, your fortune,") + text['item_get_14_heart'] = CompressedTextMapper.convert("3 more to go\n ¼\nYay!") + text['item_get_24_heart'] = CompressedTextMapper.convert("2 more to go\n ½\nWhee!") + text['item_get_34_heart'] = CompressedTextMapper.convert("1 more to go\n ¾\nGood job!") + text['item_get_whole_heart'] = CompressedTextMapper.convert("You got a whole ♥!!\nGo you!") + text['item_get_sanc_heart'] = CompressedTextMapper.convert("You got a whole ♥!\nGo you!") + text['fairy_fountain_refill'] = CompressedTextMapper.convert("Well done, lettuce have a cup of tea…") + text['death_mountain_bullied_no_pearl'] = CompressedTextMapper.convert("I wrote a word. Just one. On a stone and threw it into the ocean. It was my word. It was what would save me. I hope someday someone finds that word and brings it to me. The word is the beginning of my song.") + text['death_mountain_bullied_with_pearl'] = CompressedTextMapper.convert("I wrote a song. Just one. On a guitar and threw it into the sky. It was my song. It could tame beasts and free minds. It flitters on the wind and lurks in our minds. It is the song of nature, of humanity, of dreams and dreamers.") + text['death_mountain_bully_no_pearl'] = CompressedTextMapper.convert("Add garlic, ginger and apple and cook for 2 minutes. Add carrots, potatoes, garam masala and curry powder and stir well. Add tomato paste, stir well and slowly add red wine and bring to a boil. Add sugar, soy sauce and water, stir and bring to a boil again.") + text['death_mountain_bully_with_pearl'] = CompressedTextMapper.convert("I think I forgot how to smile…") + text['shop_darkworld_enter'] = CompressedTextMapper.convert("It's dangerous outside, buy my crap for safety.") + # 160 + text['game_chest_village_of_outcasts'] = CompressedTextMapper.convert("Pay 30 rupees open 2 chests Are you lucky?\nSo, Play game?\n ≥ play\n never!\n{CHOICE}") + text['game_chest_no_cash'] = CompressedTextMapper.convert("So like you need 30 rupees.\nSilly!") + text['game_chest_not_played'] = CompressedTextMapper.convert("You want to play a game?\nTalk to me.") + text['game_chest_played'] = CompressedTextMapper.convert("You've opened the chests!\nTime to go.") + text['game_chest_village_of_outcasts_play'] = CompressedTextMapper.convert("Alright, brother!\nGo play!") + text['shop_first_time'] = CompressedTextMapper.convert("Welcome to my shop! Select stuff with A.\nDO IT NOW!") + text['shop_already_have'] = CompressedTextMapper.convert("So like you already have one of those.") + text['shop_buy_shield'] = CompressedTextMapper.convert("Thanks! now you can block fire balls") + text['shop_buy_red_potion'] = CompressedTextMapper.convert("Red goo, so good! It's like a fairy in a bottle, except you have to activate it yourself.") + text['shop_buy_arrows'] = CompressedTextMapper.convert("Arrows! cause you were too lazy to look under some pots!") + text['shop_buy_bombs'] = CompressedTextMapper.convert("You bought bombs. What couldn't find any under bushes?") + text['shop_buy_bee'] = CompressedTextMapper.convert("He's my best friend, please take care of him, and never lose him.") + text['shop_buy_heart'] = CompressedTextMapper.convert("You really just bought this?") + text['shop_first_no_bottle_buy'] = CompressedTextMapper.convert("Why does no one own bottles? Go find one first!") + text['shop_buy_no_space'] = CompressedTextMapper.convert("You are carrying to much crap, go use some of it first!") + text['ganon_fall_in'] = CompressedTextMapper.convert("You drove\naway my other\nself, Agahnim\ntwo times…\nBut, I won't\ngive you the\nTriforce.\nI'll defeat\nyou!") + # 170 + text['ganon_phase_3'] = CompressedTextMapper.convert("can you beat\nmy darkness\ntechnique?") + text['lost_woods_thief'] = CompressedTextMapper.convert("Have you seen Andy?\n\nHe was out looking for our prized Ether medallion.\nI wonder when he will be back?") + text['blinds_hut_dude'] = CompressedTextMapper.convert("I'm just some dude, this is blind's hut.") + text['end_triforce'] = CompressedTextMapper.convert("{SPEED2}\n{MENU}\n{NOBORDER}\n G G") + text['toppi_fallen'] = CompressedTextMapper.convert("Ouch!\n\nYou Jerk!") + text['kakariko_tavern_fisherman'] = CompressedTextMapper.convert("Don't argue\nwith a frozen\nDeadrock.\nHe'll never\nchange his\nposition!") + text['fish_and_thief_money'] = CompressedTextMapper.convert("It's a secret to everyone") + text['theif_desert_rupee_cave'] = CompressedTextMapper.convert("So you like busted down my door, and are being a jerk by talking to me? Normally I would be angry and make you pay for it, but I bet you're just going to break all my pots and steal my 50 rupees.") + text['theif_ice_rupee_cave'] = CompressedTextMapper.convert("I'm a rupee pot farmer. One day I will take over the world with my skillz. Have you met my brother in the desert? He's way richer than I am.") + text['telepathic_tile_south_east_darkworld_cave'] = CompressedTextMapper.convert("~~ dev cave ~~\n no farming\n required") + text['cukeman'] = CompressedTextMapper.convert("Did you hear that Veetorp beat ajneb174 in a 1 on 1 race at AGDQ?") + text['cukeman_2'] = CompressedTextMapper.convert("You found Shabadoo, huh?\nNiiiiice") + text['potion_shop_no_cash'] = CompressedTextMapper.convert("Yo! I'm not running a charity here.") + text['kakariko_powdered_chicken'] = CompressedTextMapper.convert("Smallhacker…\n\n\nWas hiding, you found me!\n\n\nOkay, you can leave now.") + text['game_chest_south_of_kakariko'] = CompressedTextMapper.convert("Pay 20 rupees open 1 chest Are you lucky?\nSo, Play game?\n ≥ play\n never!\n{CHOICE}") + text['game_chest_play_yes'] = CompressedTextMapper.convert("Good luck then") + # 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['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) + text['game_digging_choice'] = CompressedTextMapper.convert("Have 80 Rupees? Want to play digging game?\n ≥yes\n no\n{CHOICE}") + text['game_digging_start'] = CompressedTextMapper.convert("Okay, use the shovel with Y!") + text['game_digging_no_cash'] = CompressedTextMapper.convert("Shovel rental is 80 rupees.\nI have all day") + text['game_digging_end_time'] = CompressedTextMapper.convert("Times up!\nTime for you to go.") + text['game_digging_come_back_later'] = CompressedTextMapper.convert("Come back later, I have to bury things.") + text['game_digging_no_follower'] = CompressedTextMapper.convert("Something is following you. I don't like.") + text['menu_start_4'] = CompressedTextMapper.convert("{MENU}\n{SPEED0}\n≥@'s house\n Mountain Cave\n{CHOICE3}", False) + # Start of new text data + text['ganon_fall_in_alt'] = CompressedTextMapper.convert("You think you\nare ready to\nface me?\n\nI will not die\n\nunless you\ncomplete your\ngoals. Dingus!") + text['ganon_phase_3_alt'] = CompressedTextMapper.convert("Got wax in\nyour ears?\nI cannot die!") + # 190 + text['end_pad_data'] = bytearray([0xfb]) From 3c19ea33e922bb6d1f5d63a0c628f04350a49958 Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Sat, 14 Jul 2018 20:46:42 -0400 Subject: [PATCH 03/16] Fix triforce text border Update some text ids --- Rom.py | 2 +- Text.py | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Rom.py b/Rom.py index 9987b20d..a086bd73 100644 --- a/Rom.py +++ b/Rom.py @@ -1039,7 +1039,7 @@ def write_strings(rom, world): tt['sahasrahla_bring_courage'] = 'I lost my family heirloom in %s' % greenpendant.hint_text tt['uncle_leaving_text'] = Uncle_texts[random.randint(0, len(Uncle_texts) - 1)] - tt['end_triforce'] = Triforce_texts[random.randint(0, len(Triforce_texts) - 1)] + tt['end_triforce'] = "{NOBORDER\n}" + Triforce_texts[random.randint(0, len(Triforce_texts) - 1)] tt['bomb_shop_big_bomb'] = BombShop2_texts[random.randint(0, len(BombShop2_texts) - 1)] tt['pond_will_upgrade'] = PyramidFairy_texts[random.randint(0, len(PyramidFairy_texts) - 1)] diff --git a/Text.py b/Text.py index 0e8cde92..1b877337 100644 --- a/Text.py +++ b/Text.py @@ -1311,8 +1311,8 @@ class TextTable(object): 'shop_buy_heart', 'bomb_shop_big_bomb_buy', 'item_get_big_bomb', - 'unknown_0', #catfish - 'unknown_1', #catfish + 'catfish', + 'catfish_after_item', 'zora_meeting', 'zora_tells_cost', 'zora_get_flippers', @@ -1692,8 +1692,8 @@ class TextTable(object): text['aginah'] = CompressedTextMapper.convert("So, I've been living in this cave for years, and you think you can just come along and bomb open walls?") text['aginah_need_better_sword'] = CompressedTextMapper.convert("Once I farted in this cave so bad all the jazz hands guys ran away in hid in the sand.") text['aginah_have_better_sword'] = CompressedTextMapper.convert("Panda's are very vicious animals. Never forget…\n\n\n\n\n… I never will") - text['unknown_0'] = CompressedTextMapper.convert("You woke me from my nap, take this and get out!") - text['unknown_1'] = CompressedTextMapper.convert("I don't have anything else for you!\nTake this!") + text['catfish'] = CompressedTextMapper.convert("You woke me from my nap, take this and get out!") + text['catfish_after_item'] = CompressedTextMapper.convert("I don't have anything else for you!\nTake this!") # 12C text['lumberjack_right'] = CompressedTextMapper.convert("One of us always lies.") text['lumberjack_left'] = CompressedTextMapper.convert("One of us always tells the truth.") From 1402a4bb1b6256ebb97e870caf454fdbe33536f6 Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Sat, 14 Jul 2018 21:11:31 -0400 Subject: [PATCH 04/16] Avoid bloating patch size any more than strictly needed --- Text.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Text.py b/Text.py index 1b877337..dc8bdc89 100644 --- a/Text.py +++ b/Text.py @@ -1182,7 +1182,7 @@ class TextTable(object): else: self._text[key]=value - def getBytes(self): + def getBytes(self, pad=false): logger = logging.getLogger('') data = b''.join(self._text.values()) logger.debug("translation space remaining: %i", self.SIZE - len(data)) @@ -1190,7 +1190,10 @@ class TextTable(object): if len(data) > self.SIZE: raise Exception("Text data is too large to fit") - return data.ljust(self.SIZE, b'\xff') + if (pad): + return data.ljust(self.SIZE, b'\xff') + else: + return data def removeUnwantedText(self): nomessage = bytes(CompressedTextMapper.convert("{NOTEXT}", False)) @@ -1805,3 +1808,4 @@ class TextTable(object): text['ganon_phase_3_alt'] = CompressedTextMapper.convert("Got wax in\nyour ears?\nI cannot die!") # 190 text['end_pad_data'] = bytearray([0xfb]) + text['terminator'] = bytearray([0xFF, 0xFF]) From b56739e713f589de85cc70530e2a77729fccad6c Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Sun, 15 Jul 2018 16:24:58 -0400 Subject: [PATCH 05/16] Changed comment to relfect change in base rom --- Text.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Text.py b/Text.py index dc8bdc89..09455d66 100644 --- a/Text.py +++ b/Text.py @@ -1223,8 +1223,7 @@ class TextTable(object): 'maiden_confirm_undersood', 'maiden_crystal_7_again', - # Note: Item pickup text is skipped by a change we will keep, so technically we don't need to replace them - # Replacing them anyway to make more room in translation table + # item pickup text 'item_get_lamp', 'item_get_boomerang', 'item_get_bow', From 56f8f9b176a02fc49c34253a5f34607fce71db7f Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Tue, 24 Jul 2018 19:22:47 -0400 Subject: [PATCH 06/16] Change index of Sahasrahla post item get text --- Rom.py | 5 ++--- Text.py | 1 + 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Rom.py b/Rom.py index a086bd73..497c8a3c 100644 --- a/Rom.py +++ b/Rom.py @@ -1043,9 +1043,8 @@ def write_strings(rom, world): tt['bomb_shop_big_bomb'] = BombShop2_texts[random.randint(0, len(BombShop2_texts) - 1)] tt['pond_will_upgrade'] = PyramidFairy_texts[random.randint(0, len(PyramidFairy_texts) - 1)] - # unfortunate naming, but this is what shows after getting the green pendant item in rando - # regardless of having checked the icerod cave - tt['sahasrahla_have_boots_no_icerod'] = Sahasrahla2_texts[random.randint(0, len(Sahasrahla2_texts) - 1)] + # this is what shows after getting the green pendant item in rando + tt['sahasrahla_quest_have_master_sword'] = Sahasrahla2_texts[random.randint(0, len(Sahasrahla2_texts) - 1)] tt['blind_by_the_light'] = Blind_texts[random.randint(0, len(Blind_texts) - 1)] if world.goal in ['pedestal', 'triforcehunt']: diff --git a/Text.py b/Text.py index 09455d66..b40c5f48 100644 --- a/Text.py +++ b/Text.py @@ -1303,6 +1303,7 @@ class TextTable(object): 'sahasrahla_found', 'sahasrahla_have_boots_no_icerod', 'sahasrahla_bring_courage', + 'sahasrahla_quest_have_master_sword', 'shop_darkworld_enter', 'shop_first_time', 'shop_buy_shield', From 1f16e175831bd6518af6e447b7b04d0b3d379bb1 Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Sat, 4 Aug 2018 16:27:41 -0400 Subject: [PATCH 07/16] Fix empty write issue --- Rom.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Rom.py b/Rom.py index 497c8a3c..08791da3 100644 --- a/Rom.py +++ b/Rom.py @@ -28,6 +28,8 @@ class JsonRom(object): self.patches[str(address)] = [value] def write_bytes(self, startaddress, values): + if not values: + return self.patches[str(startaddress)] = list(values) def write_int16_to_rom(self, address, value): From 553700e56bd6f904a1a861170969497df819c8c8 Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Sat, 4 Aug 2018 16:29:07 -0400 Subject: [PATCH 08/16] Update Text --- Rom.py | 4 +- Text.py | 493 ++++++++++++++++++++++++++++++-------------------------- 2 files changed, 262 insertions(+), 235 deletions(-) diff --git a/Rom.py b/Rom.py index 08791da3..bc7331b2 100644 --- a/Rom.py +++ b/Rom.py @@ -1041,7 +1041,7 @@ def write_strings(rom, world): tt['sahasrahla_bring_courage'] = 'I lost my family heirloom in %s' % greenpendant.hint_text tt['uncle_leaving_text'] = Uncle_texts[random.randint(0, len(Uncle_texts) - 1)] - tt['end_triforce'] = "{NOBORDER\n}" + Triforce_texts[random.randint(0, len(Triforce_texts) - 1)] + tt['end_triforce'] = "{NOBORDER}\n" + Triforce_texts[random.randint(0, len(Triforce_texts) - 1)] tt['bomb_shop_big_bomb'] = BombShop2_texts[random.randint(0, len(BombShop2_texts) - 1)] tt['pond_will_upgrade'] = PyramidFairy_texts[random.randint(0, len(PyramidFairy_texts) - 1)] @@ -1087,7 +1087,7 @@ def write_strings(rom, world): fluteboyitem_text = random.choice(FluteBoy_texts) if fluteboyitem is None or fluteboyitem.fluteboy_credit_text is None else fluteboyitem.fluteboy_credit_text credits.update_credits_line('castle', 0, random.choice(KingsReturn_texts)) - credits.update_credits_line('sancturary', 0, random.choice(Sanctuary_texts)) + credits.update_credits_line('sanctuary', 0, random.choice(Sanctuary_texts)) credits.update_credits_line('kakariko', 0, random.choice(Kakariko_texts).format(random.choice(Sahasrahla_names))) credits.update_credits_line('desert', 0, random.choice(DesertPalace_texts)) diff --git a/Text.py b/Text.py index b40c5f48..6dfade65 100644 --- a/Text.py +++ b/Text.py @@ -34,8 +34,8 @@ Uncle_texts = [ "I'm going to\ngo watch the\nMoth tutorial.", "This seed is\nthe worst.", "Chasing tail.\nFly ladies.\nDo not follow.", - "I feel like\nI've done this\nbefore...", - "Magic cape can\npass through\nthe barrier!", + "I feel like\nI've done this\nbefore…", + "Magic Cape can\npass through\nthe barrier!", "If this is a\nKanzeon seed,\nI'm quitting.", "I am not your\nreal uncle.", "You're going\nto have a very\nbad time.", @@ -57,11 +57,14 @@ Uncle_texts = [ "RED MAIL\nIS FOR\nCOWARDS.", "HEY!\n\nLISTEN!", "Well\nexcuuuuuse me,\nprincess!", - "5,000 Rupee\nreward for >\nYou're boned", + "5,000 Rupee\nreward for >\nYou're boned.", "Welcome to\nStoops Lonk's\nHoose", "Erreur de\ntraduction.\nsvp reessayer", - "I could beat\nit in an hour\nand one life", + "I could beat\nit in an hour\nand one life.", "I thought this\nwas open mode?", + "Get to the\nchop...\ncastle!", + "Come with me\nif you want\nto live", + "I must go\nmy planet\nneeds me", ] Triforce_texts = [ 'Product has Hole in center. Bad seller, 0 out of 5.', @@ -73,66 +76,82 @@ Triforce_texts = [ ] * 2 + [ "\n G G", "All your base\nare belong\nto us.", - "You have ended\nthe domination\nof dr. wily", - " thanks for\n playing!!!", + "You have ended\nthe domination\nof Dr. Wily", + " thanks for\n playing!!!", "\n You Win!", - " Thank you!\n your quest\n is over.", - " A winner\n is\n you!", + " Thank you!\n your quest\n is over.", + " A winner\n is\n you!", "\n WINNER!!", - "\n I'm sorry\n\nbut your\nprincess is in\nanother castle", + "\n I'm sorry\n\n but your\nprincess is in\nanother castle", "\n success!", - " Whelp…\n that just\n happened", - " Oh hey…\n it's you", + " Whelp…\n that just\n happened", + " Oh hey…\n it's you", "\n Wheeeeee!!", - " Time for\n another one?", + " Time for\n another one?", "and\n\n scene", "\n GOT EM!!", "\nTHE VALUUUE!!!", "Cool seed,\n\nright?", "\n We did it!", - " Spam those\n emotes in\n wilds chat", + " Spam those\n emotes in\n wilds chat", "\n O M G", - " Hello. Will\n you be my\n friend?", - " Beetorp\n was\n here!", + " Hello. Will\n you be my\n friend?", + " Beetorp\n was\n here!", "The Wind Fish\nwill wake\nsoon. Hoot!", "meow meow meow\nmeow meow meow\n oh my god!", "Ahhhhhhhhh\nYa ya yaaaah\nYa ya yaaah", ".done\n\n.comment lol", + "You get to\ndrink from\nthe firehose", + "Do you prefer\n bacon, pork,\n or ham?", + "You get one\nwish. Choose\nwisely, hero!", + "Can you please\nbreak us three\nup? Thanks.", + " Pick us up\n before we\n get dizzy!", ] BombShop2_texts = ['Bombs!\nBombs!\nBiggest!\nBestest!\nGreatest!\nBoomest!'] PyramidFairy_texts = ['May I talk to you about our lord and savior, Ganon?'] Sahasrahla2_texts = ['You already got my item, idiot.', 'Why are you still talking to me?', 'This text won\'t change.', 'Have you met my brother, Hasarahshla?'] Blind_texts = [ "I hate insect\npuns, they\nreally bug me.", - "I haven't seen\nthe eye doctor\nin years", - "I don't see\nyou having a\nbright future", + "I haven't seen\nthe eye doctor\nin years.", + "I don't see\nyou having a\nbright future.", "Are you doing\na blind run\nof this game?", - "pizza joke? no\nI think it's a\nbit too cheesy", + "Pizza joke? No\nI think it's a\nbit too cheesy", "A novice skier\noften jumps to\ncontusions.", - "the beach?\nI'm not shore\nI can make it.", + "The beach?\nI'm not shore\nI can make it.", "Rental agents\noffer quarters\nfor dollars.", "I got my tires\nfixed for a\nflat rate.", - "New lightbulb\ninvented?\nEnlighten me.", + "New light bulb\ninvented?\nEnlighten me.", "A baker's job\nis a piece of\ncake.", "My optometrist\nsaid I have\nvision!", - "when you're a\nbaker, don't\nloaf around", - "mire requires\nether quake,\nor bombos", + "When you're a\nbaker, don't\nloaf around.", + "Mire requires\nEther Quake,\nor Bombos.", "Broken pencils\nare pointless.", - "The food they\nserve guards\nlasts sentries", - "being crushed\nby big objects\nis depressing.", + "The food they\nserve guards\nlasts sentries.", + "Being crushed\nby big objects\nis depressing.", "A tap dancer's\nroutine runs\nhot and cold.", - "A weeknight is\na tiny\nnobleman", + "A weeknight is\na tiny\nnobleman.", "The chimney\nsweep wore a\nsoot and tye.", "Gardeners like\nto spring into\naction.", - "bad at nuclear\nphysics. I\nGot no fission", + "Bad at nuclear\nphysics. I\nGot no fission", + "Flint and\nsteel are a\ngood match.", + "I'd peg you\nas a fan of\nthe hammer.", + "Archers give\ngifts tied\nwith a bow.", + "A healed\ngambler is\nall better.", + "Any old sword\nwill make the\ncut here.", + "Lazy wyrms\nkeep dragon\ntheir feet.", + "Percussionist\nmasters drum\nup audiences.", + "Retrievers\nlove fetch\nquests.", + "Sausage is\nthe wurst.", + "I tried to\ncatch fog,\nbut I mist.", + "Winter is a\ngreat time\nto chill.", ] Ganon1_texts = [ - "Start your day\nsmiling with a\ndelicious\nwholegrain\nbreakfast\ncreated for\nyour\nincredible\ninsides.", - "You drove\naway my other\nself, Agahnim\ntwo times…\nBut, I won't\ngive you the\nTriforce.\nI'll defeat\nyou!", - "Impa says that\nthe mark on\nyour hand\nmeans that you\nare the hero\nchosen to\nawaken Zelda.\nyour blood can\nresurrect me.", - "Don't stand,\n\ndon't stand so\nDon't stand so\n\nclose to me\nDon't stand so\nclose to me\nback off buddy", + "Start your day\nsmiling with a\ndelicious\nwhole grain\nbreakfast\ncreated for\nyour\nincredible\ninsides.", + "You drove\naway my other\nself, Agahnim,\ntwo times…\nBut, I won't\ngive you the\nTriforce.\nI'll defeat\nyou!", + "Impa says that\nthe mark on\nyour hand\nmeans that you\nare the hero\nchosen to\nawaken Zelda.\nYour blood can\nresurrect me.", + "Don't stand,\n\ndon't stand so\nDon't stand so\n\nclose to me\nDon't stand so\nclose to me\nBack off buddy", "So ya\nThought ya\nMight like to\ngo to the show\nTo feel the\nwarm thrill of\nconfusion\nThat space\ncadet glow.", - "Like other\npulmonate land\ngastropods,\nthe majority\nof land slugs\nhave two pairs\nof 'feelers'\nor tentacles\non their head.", + "Like other\npulmonate land\ngastropods,\nthe majority\nof land slugs\nhave two pairs\nof 'feelers'\n,or tentacles,\non their head.", "If you were a\nburrito, what\nkind of a\nburrito would\nyou be?\nMe, I fancy I\nwould be a\nspicy barbacoa\nburrito.", "I am your\nfather's\nbrother's\nnephew's\ncousin's\nformer\nroommate. What\ndoes that make\nus, you ask?", "I'll be more\neager about\nencouraging\nthinking\noutside the\nbox when there\nis evidence of\nany thinking\ninside it.", @@ -142,22 +161,26 @@ Ganon1_texts = [ "Now there was\na time, When\nyou loved me\nso. I couldn't\ndo wrong,\nAnd now you\nneed to know.\nSo How you\nlike me now?", "Did you know?\nNutrition\nexperts\nrecommend that\nat least half\nof our daily\ngrains come\nfrom whole\ngrain products", "The Hemiptera\nor true bugs\nare an order\nof insects\ncovering 50k\nto 80k species\nlike aphids,\ncicadas, and\nshield bugs.", - "Thanks for\ndropping in,\nthe first\npassengers\nin a hot\nair balloon.\nwere a duck,\na sheep,\nand a rooster.", - "You think you\nare so smart?\n\nI bet you\ndidn't know\nYou can't hum\nwhile holding\nyour nose\nclosed.", - "grumble,\n\ngrumble…\ngrumble,\n\ngrumble…\nSeriously you\nwere supposed\nto bring food", - "Join me hero,\nand I shall\nmake your face\nthe greatest\nin the dark\nworld!\n\nOr else you\nwill die!", + "Thanks for\ndropping in.\nThe first\npassengers\nin a hot\nair balloon\nwere a duck,\na sheep,\nand a rooster.", + "You think you\nare so smart?\n\nI bet you\ndidn't know\nyou can't hum\nwhile holding\nyour nose\nclosed.", + "grumble,\n\ngrumble…\ngrumble,\n\ngrumble…\nSeriously, you\nwere supposed\nto bring food.", + "Join me hero,\nand I shall\nmake your face\nthe greatest\nin the Dark\nWorld!\n\nOr else you\nwill die!", + "Why rule over\na desert full\nof stereotypes\nwhen I can\ncorrupt a\nworld into\npure evil and\nrule over\nthat instead?", + "When I conquer\nthe Light\nWorld, I'll\nhold a parade\nof all my\nmonsters to\ndemonstrate my\nmight to the\npeople!", + "Life, dreams,\nhope...\nWhere'd they\ncome from? And\nwhere are they\nheaded? These\nthings... I am\ngoing to\ndestroy!", + "My minions all\nfailed to\nguard those\nitems?!\n\nWhy am I\nsurrounded by\nincompetent\nfools?!", ] TavernMan_texts = [ - "What do you\ncall a blind\ndinosaur?\nadoyouthink-\nhesaurus\n", - "A blind man\nwalks into\na bar.\nAnd a table.\nAnd a chair.\n", - "What do ducks\nlike to eat?\n\nQuackers!\n", - "How do you\nset up a party\nin space?\n\nYou planet!\n", - "I'm glad I\nknow sign\nlanguage,\nit's pretty\nhandy.\n", - "What did Zelda\nsay to Link at\na secure door?\n\nTRIFORCE!\n", + "What do you\ncall a blind\ndinosaur?\na doyouthink-\nhesaurus.", + "A blind man\nwalks into\na bar.\nAnd a table.\nAnd a chair.", + "What do ducks\nlike to eat?\n\nQuackers!", + "How do you\nset up a party\nin space?\n\nYou planet!", + "I'm glad I\nknow sign\nlanguage.\nIt's pretty\nhandy.", + "What did Zelda\nsay to Link at\na secure door?\n\nTRIFORCE!", "I am on a\nseafood diet.\n\nEvery time\nI see food,\nI eat it.", "I've decided\nto sell my\nvacuum.\nIt was just\ngathering\ndust.", - "Whats the best\ntime to go to\nthe dentist?\n\nTooth-hurtie!\n", - "Why can't a\nbike stand on\nits own?\n\nIt's two-tired!\n", + "What's the best\ntime to go to\nthe dentist?\n\nTooth-hurtie!", + "Why can't a\nbike stand on\nits own?\n\nIt's two-tired!", "If you haven't\nfound Quake\nyet…\nit's not your\nfault.", "Why is Peter\nPan always\nflying?\nBecause he\nNeverlands!", "I once told a\njoke to Armos.\n\nBut he\nremained\nstone-faced!", @@ -178,27 +201,27 @@ TavernMan_texts = [ "Goriya sure\nhas changed\nin this game.\nI hope he\ncomes back\naround!", "Hinox actually\nwants to be a\nlawyer.\nToo bad he\nbombed the\nBar exam!", "I'm surprised\nMoblin's tusks\nare so gross.\nHe always has\nhis Trident\nwith him!", - "Don’t tell\nStalfos I’m\nhere.\nHe has a bone\nto pick with\nme!", + "Don't tell\nStalfos I'm\nhere.\nHe has a bone\nto pick with\nme!", "I got\nWallmaster to\nhelp me move\nfurniture.\nHe was really\nhandy!", "Wizzrobe was\njust here.\nHe always\nvanishes right\nbefore we get\nthe check!", "I shouldn't\nhave picked up\nZora's tab.\nThat guy\ndrinks like\na fish!", "I was sharing\na drink with\nPoe.\nFor no reason,\nhe left in a\nheartbeat!", - "Don’t trust\nhorsemen on\nDeath Mountain\nThey’re Lynel\nthe time!", + "Don't trust\nhorsemen on\nDeath Mountain.\nThey're Lynel\nthe time!", "Today's\nspecial is\nbattered bat.\nGot slapped\nfor offering a\nlady a Keese!", - "Don’t walk\nunder\npropellered\npineapples.\nYou may end up\nwearing\na pee hat!", + "Don't walk\nunder\npropellered\npineapples.\nYou may end up\nwearing\na pee hat!", "My girlfriend\nburrowed under\nthe sand.\nSo I decided\nto Leever!", - "Geldman wants\nto be a\nBroadway star.\nHe’s always\npracticing\nJazz Hands!", + "Geldman wants\nto be a\nBroadway star.\nHe's always\npracticing\nJazz Hands!", "Octoballoon\nmust be mad\nat me.\nHe blows up\nat the sight\nof me!", "Toppo is a\ntotal pothead.\n\nHe hates it\nwhen you take\naway his grass", "I lost my\nshield by\nthat house.\nWhy did they\nput up a\nPikit fence?!", - "Know that fox\nin Steve’s\nTown?\nHe’ll Pikku\npockets if you\naren't careful", - "Dash through\nDark World\nbushes.\nYou’ll see\nGanon is tryin\nto Stal you!", + "Know that fox\nin Steve's\nTown?\nHe'll Pikku\npockets if you\naren't careful", + "Dash through\nDark World\nbushes.\nYou'll see\nGanon is tryin\nto Stal you!", "Eyegore!\n\nYou gore!\nWe all gore\nthose jerks\nwith arrows!", "I like my\nwhiskey neat.\n\nSome prefer it\nOctoroks!", "I consoled\nFreezor over a\ncup of coffee.\nHis problems\njust seemed to\nmelt away!", - "Magic droplets\nof water don’t\nshut up.\nThey just\nKyameron!", + "Magic droplets\nof water don't\nshut up.\nThey just\nKyameron!", "I bought hot\nwings for\nSluggula.\nThey gave him\nexplosive\ndiarrhea!", - "Hardhat Beetle\nwon’t\nLet It Be?\nTell it to Get\nBack or give\nit a Ticket to\nRide down\na hole!", + "Hardhat Beetle\nwon't\nLet It Be?\nTell it to Get\nBack or give\nit a Ticket to\nRide down\na hole!", ] KingsReturn_texts = [ @@ -222,7 +245,8 @@ Sahasrahla_names = [ "saltations", "saltbushes", "saltcellar", "saltshaker", "salubrious", "sandgrouse", "sandlotter", "sandstorms", "sandwiched", "sauerkraut", "schipperke", "schismatic", "schizocarp", "schmalzier", "schmeering", "schmoosing", "shibboleth", "shovelnose", "sahananana", "sarararara", "salamander", - "sharshalah", "shahabadoo", "sassafrass", + "sharshalah", "shahabadoo", "sassafrass", "saddlebags", "sandalwood", "shagadelic", "sandcastle", + "saltpeters", "shabbiness", "shlrshlrsh", ] Kakariko_texts = ["{}'s homecoming"] @@ -253,6 +277,8 @@ WishingWell_texts = [ "Yeah, baby, shes got it", "Venus, I'm your fire", "Venus, At your desire", + "Venus Love Chain", + "Venus Crescent Beam", ] DesertPalace_texts = ['vultures rule the desert', 'literacy moves'] MountainTower_texts = ['the bully makes a friend', 'up up and away'] @@ -266,6 +292,7 @@ Lumberjacks_texts = [ "double lumberman", "lumberclones", "woodfellas", + "dos axes", ] SickKid_texts = ['Next Time Stay Down'] Zora_texts = ['Splashes For Sale', 'Slippery when wet'] @@ -280,7 +307,7 @@ class Credits(object): SceneSmallCreditLine(19, 'The return of the King'), SceneLargeCreditLine(23, 'Hyrule Castle'), ], - 'sancturary': [ + 'sanctuary': [ SceneSmallCreditLine(19, 'The loyal priest'), SceneLargeCreditLine(23, 'Sanctuary'), ], @@ -343,7 +370,7 @@ class Credits(object): ], } - self.scene_order = ['castle', 'sancturary', 'kakariko', 'desert', 'hera', 'house', 'zora', 'witch', + self.scene_order = ['castle', 'sanctuary', 'kakariko', 'desert', 'hera', 'house', 'zora', 'witch', 'lumberjacks', 'grove', 'well', 'smithy', 'kakariko2', 'bridge', 'woods', 'pedestal'] def update_credits_line(self, scene, line, text): @@ -1180,9 +1207,9 @@ class TextTable(object): if isinstance(value, str): self._text[key] = CompressedTextMapper.convert(value) else: - self._text[key]=value + self._text[key] = value - def getBytes(self, pad=false): + def getBytes(self, pad=False): logger = logging.getLogger('') data = b''.join(self._text.values()) logger.debug("translation space remaining: %i", self.SIZE - len(data)) @@ -1190,14 +1217,12 @@ class TextTable(object): if len(data) > self.SIZE: raise Exception("Text data is too large to fit") - if (pad): + if pad: return data.ljust(self.SIZE, b'\xff') - else: - return data + return data def removeUnwantedText(self): nomessage = bytes(CompressedTextMapper.convert("{NOTEXT}", False)) - text = self._text messages_to_zero = [ #escort Messages 'zelda_go_to_throne', @@ -1351,7 +1376,7 @@ class TextTable(object): 'game_digging_start', 'dark_flute_boy_storytime', 'dark_flute_boy_get_shovel', - 'fish_and_thief_money', + 'thief_money', 'game_chest_village_of_outcasts', 'game_chest_village_of_outcasts_play', 'hylian_text_2', @@ -1379,18 +1404,18 @@ class TextTable(object): text['uncle_dying_sewer'] = CompressedTextMapper.convert("I've fallen and I can't get up, take this.") text['tutorial_guard_1'] = CompressedTextMapper.convert("Only adults should travel at night.") # 10 - text['tutorial_guard_2'] = CompressedTextMapper.convert("You can PUSH X to see the Map.") + text['tutorial_guard_2'] = CompressedTextMapper.convert("You can press X to see the Map.") text['tutorial_guard_3'] = CompressedTextMapper.convert("Press the A button to lift things by you.") text['tutorial_guard_4'] = CompressedTextMapper.convert("When you has a sword, press B to slash it.") text['tutorial_guard_5'] = CompressedTextMapper.convert("このメッセージはニホンゴでそのまま") # on purpose text['tutorial_guard_6'] = CompressedTextMapper.convert("Are we really still reading these?") text['tutorial_guard_7'] = CompressedTextMapper.convert("Jeeze! There really are a lot of things.") text['priest_sanctuary_before_leave'] = CompressedTextMapper.convert("Go be a hero!") - text['sanctuary_enter'] = CompressedTextMapper.convert("YAY!\nyou saved Zelda!") + text['sanctuary_enter'] = CompressedTextMapper.convert("YAY!\nYou saved Zelda!") text['zelda_sanctuary_story'] = CompressedTextMapper.convert("Do you want to hear me say this again?\n{HARP}\n ≥ no\n yes\n{CHOICE}") - text['priest_sanctuary_before_pendants'] = CompressedTextMapper.convert("Go'on and get them pendants so you can beat up Agahnim") - text['priest_sanctuary_after_pendants_before_master_sword'] = CompressedTextMapper.convert("Kudos! But seriously, you should be getting the master sword not having a kegger in here.") - text['priest_sanctuary_dying'] = CompressedTextMapper.convert("They took her to the castle! take your sword and save her!") + text['priest_sanctuary_before_pendants'] = CompressedTextMapper.convert("Go'on and get them pendants so you can beat up Agahnim.") + text['priest_sanctuary_after_pendants_before_master_sword'] = CompressedTextMapper.convert("Kudos! But seriously, you should be getting the master sword, not having a kegger in here.") + text['priest_sanctuary_dying'] = CompressedTextMapper.convert("They took her to the castle! Take your sword and save her!") text['zelda_save_sewers'] = CompressedTextMapper.convert("You saved me!") text['priest_info'] = CompressedTextMapper.convert("So, I'm the dude that will protect Zelda. Don't worry, I got this covered.") text['zelda_sanctuary_before_leave'] = CompressedTextMapper.convert("Be careful!") @@ -1402,115 +1427,115 @@ class TextTable(object): text['zelda_switch_room_pull'] = CompressedTextMapper.convert("Pull this lever using A.") text['zelda_save_lets_go'] = CompressedTextMapper.convert("Let's get out of here!") text['zelda_save_repeat'] = CompressedTextMapper.convert("I like talking, do you?\n ≥ no\n yes\n{CHOICE}") - text['zelda_before_pendants'] = CompressedTextMapper.convert("You need to find all the pendants…\n\n\nNumpty") + text['zelda_before_pendants'] = CompressedTextMapper.convert("You need to find all the pendants…\n\n\nNumpty.") text['zelda_after_pendants_before_master_sword'] = CompressedTextMapper.convert("Very pretty pendants, but really you should be getting that sword in the forest!") text['telepathic_zelda_right_after_master_sword'] = CompressedTextMapper.convert("{NOBORDER}\n{SPEED6}\nHi @,\nHave you been thinking about me?\narrrrrgghh…\n… … …") text['zelda_sewers'] = CompressedTextMapper.convert("Just a little further to the Sanctuary.") - text['zelda_switch_room'] = CompressedTextMapper.convert("the Sanctuary!\n\nPull my finger") + text['zelda_switch_room'] = CompressedTextMapper.convert("The Sanctuary!\n\nPull my finger") text['kakariko_saharalasa_wife'] = CompressedTextMapper.convert("Heya, @!\nLong time no see.\nYou want a master sword?\n\nWell good luck with that.") - text['kakariko_saharalasa_wife_sword_story'] = CompressedTextMapper.convert("It occurs to me that I like toast and jam, but cheese and crackers is better\nyou like?\n ≥ cheese\n jam\n{CHOICE}") - text['kakariko_saharalasa_wife_closing'] = CompressedTextMapper.convert("Anywho, I have things to do, you see those 2 ovens?\n\nYeah 2!\nWho has 2 ovens nowadays?") + text['kakariko_saharalasa_wife_sword_story'] = CompressedTextMapper.convert("It occurs to me that I like toast and jam, but cheese and crackers is better.\nYou like?\n ≥ cheese\n jam\n{CHOICE}") + text['kakariko_saharalasa_wife_closing'] = CompressedTextMapper.convert("Anywho, I have things to do. You see those 2 ovens?\n\nYeah 2!\nWho has 2 ovens nowadays?") text['kakariko_saharalasa_after_master_sword'] = CompressedTextMapper.convert("Cool sword!\n\n\n…\n\n\n…\n\n\nPlease save us") - text['kakariko_alert_guards'] = CompressedTextMapper.convert("GUARDS! HELP!\nthe creeper\n@ is here!") + text['kakariko_alert_guards'] = CompressedTextMapper.convert("GUARDS! HELP!\nThe creeper\n@ is here!") # 30 - text['sahasrahla_quest_have_pendants'] = CompressedTextMapper.convert("{BOTTOM}\nCool beans, but I think you should mozy over to the lost woods.") - text['sahasrahla_quest_have_master_sword'] = CompressedTextMapper.convert("{BOTTOM}\nThat's a pretty sword, but I'm old and old. Why don't you go do all the hard work while I hang out in this hut.") + text['sahasrahla_quest_have_pendants'] = CompressedTextMapper.convert("{BOTTOM}\nCool beans, but I think you should mosey on over to the lost woods.") + text['sahasrahla_quest_have_master_sword'] = CompressedTextMapper.convert("{BOTTOM}\nThat's a pretty sword, but I'm old, forgetful, and old. Why don't you go do all the hard work while I hang out in this hut.") text['sahasrahla_quest_information'] = CompressedTextMapper.convert( "{BOTTOM}\n" - + "Sahasrahla, I am. You would do well to find the 3 pendants from the 3 dungeons in light world.\n" + + "Sahasrahla, I am. You would do well to find the 3 pendants from the 3 dungeons in the Light World.\n" + "Understand?\n ≥ yes\n no\n{CHOICE}") text['sahasrahla_bring_courage'] = CompressedTextMapper.convert( "{BOTTOM}\n" + "While you're here, could you do me a solid and get the green pendant from that dungeon?\n" + "{HARP}\nI'll give you a present if you do.") - text['sahasrahla_have_ice_rod'] = CompressedTextMapper.convert("{BOTTOM}\nLike, I sit here, and tell you what to do?\n\n\nalright, go and find all the maidens, there are like maybe 7 of them, I dunno anymore. I'm old.") - text['telepathic_sahasrahla_beat_agahnim'] = CompressedTextMapper.convert("{NOBORDER}\n{SPEED6}\nNice so you beat Agahnim, now you must beat Ganon, Good Luck!") - text['telepathic_sahasrahla_beat_agahnim_no_pearl'] = CompressedTextMapper.convert("{NOBORDER}\n{SPEED6}\nOh also you forgot the Moon Pearl, dignus. Go back and find it!") - text['sahasrahla_have_boots_no_icerod'] = CompressedTextMapper.convert("{BOTTOM}\nCave in South East has a cool item") - text['sahasrahla_have_courage'] = CompressedTextMapper.convert("{BOTTOM}\nLook you have the green pendant, I'll give you something, go kill the other two bosses for more pendant fun!") - text['sahasrahla_found'] = CompressedTextMapper.convert("{BOTTOM}\nYup!\n\nI'm the old man you are looking for, I'll keep it short and sweet, go into that dungeon and bring me the green pendant, then talk to me again.") - text['sign_rain_north_of_links_house'] = CompressedTextMapper.convert("↑ Dying Uncle\n This way") + text['sahasrahla_have_ice_rod'] = CompressedTextMapper.convert("{BOTTOM}\nLike, I sit here, and tell you what to do?\n\n\nAlright, go and find all the maidens, there are, like, maybe 7 of them. I dunno anymore. I'm old.") + text['telepathic_sahasrahla_beat_agahnim'] = CompressedTextMapper.convert("{NOBORDER}\n{SPEED6}\nNice, so you beat Agahnim. Now you must beat Ganon. Good Luck!") + text['telepathic_sahasrahla_beat_agahnim_no_pearl'] = CompressedTextMapper.convert("{NOBORDER}\n{SPEED6}\nOh, also you forgot the Moon Pearl, dingus. Go back and find it!") + text['sahasrahla_have_boots_no_icerod'] = CompressedTextMapper.convert("{BOTTOM}\nCave in South East has a cool item.") + text['sahasrahla_have_courage'] = CompressedTextMapper.convert("{BOTTOM}\nLook, you have the green pendant! I'll give you something. Go kill the other two bosses for more pendant fun!") + text['sahasrahla_found'] = CompressedTextMapper.convert("{BOTTOM}\nYup!\n\nI'm the old man you are looking for. I'll keep it short and sweet: Go into that dungeon, then bring me the green pendant and talk to me again.") + text['sign_rain_north_of_links_house'] = CompressedTextMapper.convert("↑ Dying Uncle\n This way…") text['sign_north_of_links_house'] = CompressedTextMapper.convert("> Randomizer Don't read me, go beat Ganon!") - text['sign_path_to_death_mountain'] = CompressedTextMapper.convert("Cave to lost old man, good luck.") + text['sign_path_to_death_mountain'] = CompressedTextMapper.convert("Cave to lost, old man.\nGood luck.") text['sign_lost_woods'] = CompressedTextMapper.convert("\n↑ Lost Woods") - text['sign_zoras'] = CompressedTextMapper.convert("Danger!\ndeep water\nzora's") - text['sign_outside_magic_shop'] = CompressedTextMapper.convert("Welcome to the Magic Shop") + text['sign_zoras'] = CompressedTextMapper.convert("Danger!\nDeep water!\nZoras!") + text['sign_outside_magic_shop'] = CompressedTextMapper.convert("Welcome to the Magic Shoppe") # 40 text['sign_death_mountain_cave_back'] = CompressedTextMapper.convert("Cave away from sky cabbages") - text['sign_east_of_links_house'] = CompressedTextMapper.convert("↓ Lake Hylia\n\n Also a shoppe") + text['sign_east_of_links_house'] = CompressedTextMapper.convert("↓ Lake Hylia\n\n Also, a shop") text['sign_south_of_lumberjacks'] = CompressedTextMapper.convert("← Kakariko\n Village") - text['sign_east_of_desert'] = CompressedTextMapper.convert("← Desert\n\n It's hot") - text['sign_east_of_sanctuary'] = CompressedTextMapper.convert("↑→ Potions!\n\nwish waterfall") + text['sign_east_of_desert'] = CompressedTextMapper.convert("← Desert\n\n It's hot.") + text['sign_east_of_sanctuary'] = CompressedTextMapper.convert("↑→ Potions!\n\nWish waterfall") text['sign_east_of_castle'] = CompressedTextMapper.convert("→ East Palace\n\n← Castle") text['sign_north_of_lake'] = CompressedTextMapper.convert("\n Lake Hiriah") text['sign_desert_thief'] = CompressedTextMapper.convert("Don't talk to me or touch my sign!") - text['sign_lumberjacks_house'] = CompressedTextMapper.convert("Lumberjacks Inc. you see em, we saw em.") + text['sign_lumberjacks_house'] = CompressedTextMapper.convert("Lumberjacks, Inc.\nYou see 'em, we saw 'em.") text['sign_north_kakariko'] = CompressedTextMapper.convert("↓ Kakariko\n Village") text['witch_bring_mushroom'] = CompressedTextMapper.convert("Double, double toil and trouble!\nBring me a mushroom!") - text['witch_brewing_the_item'] = CompressedTextMapper.convert("This mushroom is busy brewing, come back later.") + text['witch_brewing_the_item'] = CompressedTextMapper.convert("This mushroom is busy brewing. Come back later.") text['witch_assistant_no_bottle'] = CompressedTextMapper.convert("A bottle for your thoughts? or to put potions in.") - text['witch_assistant_no_empty_bottle'] = CompressedTextMapper.convert("Got to use your stuff before you can get more.") - text['witch_assistant_informational'] = CompressedTextMapper.convert("Red is life\ngreen is magic\nblue is both\nI'll heal you for free though.") - text['witch_assistant_no_bottle_buying'] = CompressedTextMapper.convert("If only you had something to put that in, like a bottle?") + text['witch_assistant_no_empty_bottle'] = CompressedTextMapper.convert("Gotta use your stuff before you can get more.") + text['witch_assistant_informational'] = CompressedTextMapper.convert("Red is life\nGreen is magic\nBlue is both\nI'll heal you for free though.") + text['witch_assistant_no_bottle_buying'] = CompressedTextMapper.convert("If only you had something to put that in, like a bottle…") # 50 - text['potion_shop_no_empty_bottles'] = CompressedTextMapper.convert("Whoa Bucko,\nNo empty bottles.") + text['potion_shop_no_empty_bottles'] = CompressedTextMapper.convert("Whoa, bucko!\nNo empty bottles.") text['item_get_lamp'] = CompressedTextMapper.convert("Lamp! You can see in the dark, and light torches.") - text['item_get_boomerang'] = CompressedTextMapper.convert("Boomerang! press START to select it.") + text['item_get_boomerang'] = CompressedTextMapper.convert("Boomerang! Press START to select it.") text['item_get_bow'] = CompressedTextMapper.convert("You're in bow mode now!") - text['item_get_shovel'] = CompressedTextMapper.convert("This is my new mop. My friend George, he gave me this mop. It's a pretty good mop. It's not as good as my old mop, I miss my old mop. But it's still a good mop.") - text['item_get_magic_cape'] = CompressedTextMapper.convert("Finally! we get to play invisble man!") - text['item_get_powder'] = CompressedTextMapper.convert("It's the powder. Let's cause some mischief") + text['item_get_shovel'] = CompressedTextMapper.convert("This is my new mop. My friend George, he gave me this mop. It's a pretty good mop. It's not as good as my old mop. I miss my old mop. But it's still a good mop.") + text['item_get_magic_cape'] = CompressedTextMapper.convert("Finally! we get to play Invisble Man!") + text['item_get_powder'] = CompressedTextMapper.convert("It's the powder. Let's cause some mischief!") text['item_get_flippers'] = CompressedTextMapper.convert("Splish! Splash! Let's go take a bath!") - text['item_get_power_gloves'] = CompressedTextMapper.convert("Feel the power! you can now lift light rocks! rock on!") - text['item_get_pendant_courage'] = CompressedTextMapper.convert("We have the Pendant of courage! Rock on! ?") - text['item_get_pendant_power'] = CompressedTextMapper.convert("We have the Pendant of power! Rock on! ?") - text['item_get_pendant_wisdom'] = CompressedTextMapper.convert("We have the Pendant of wisdom! Rock on! ?") - text['item_get_mushroom'] = CompressedTextMapper.convert("A mushroom! Don't eat. Find a witch.") - text['item_get_book'] = CompressedTextMapper.convert("It's a book! you are now litterate!") + text['item_get_power_gloves'] = CompressedTextMapper.convert("Feel the power! You can now lift light rocks! Rock on!") + text['item_get_pendant_courage'] = CompressedTextMapper.convert("We have the Pendant of Courage! How brave!") + text['item_get_pendant_power'] = CompressedTextMapper.convert("We have the Pendant of Power! How robust!") + text['item_get_pendant_wisdom'] = CompressedTextMapper.convert("We have the Pendant of Wisdom! How astute!") + text['item_get_mushroom'] = CompressedTextMapper.convert("A Mushroom! Don't eat it. Find a witch.") + text['item_get_book'] = CompressedTextMapper.convert("It book! U R now litterit!") text['item_get_moonpearl'] = CompressedTextMapper.convert("I found a shiny marble! No more hops!") text['item_get_compass'] = CompressedTextMapper.convert("A compass! I can now find the boss.") # 60 - text['item_get_map'] = CompressedTextMapper.convert("Yo! you found a MAP! PUSH X to see it.") + text['item_get_map'] = CompressedTextMapper.convert("Yo! You found a MAP! Press X to see it.") text['item_get_ice_rod'] = CompressedTextMapper.convert("It's the Ice Rod! Freeze Ray time.") - text['item_get_fire_rod'] = CompressedTextMapper.convert("Rod that shoots fire? Let's burn all the things!") + text['item_get_fire_rod'] = CompressedTextMapper.convert("A Rod that shoots fire? Let's burn all the things!") text['item_get_ether'] = CompressedTextMapper.convert("We can chill out with this!") - text['item_get_bombos'] = CompressedTextMapper.convert("Lets set everything on fire, and melt things") - text['item_get_quake'] = CompressedTextMapper.convert("Time to make the earth shake, rattle, and roll") + text['item_get_bombos'] = CompressedTextMapper.convert("Let's set everything on fire, and melt things!") + text['item_get_quake'] = CompressedTextMapper.convert("Time to make the earth shake, rattle, and roll!") text['item_get_hammer'] = CompressedTextMapper.convert("STOP!\n\nHammer Time!") # 66 - text['item_get_ocarina'] = CompressedTextMapper.convert("Finally! we can play the song of time!") + text['item_get_ocarina'] = CompressedTextMapper.convert("Finally! We can play the Song of Time!") text['item_get_cane_of_somaria'] = CompressedTextMapper.convert("Make blocks!\nThrow blocks!\nsplode Blocks!") text['item_get_hookshot'] = CompressedTextMapper.convert("BOING!!!\nBOING!!!\nSay no more…") - text['item_get_bombs'] = CompressedTextMapper.convert("BOMBS! use A~ pickem up, throwem, get hurt!") + text['item_get_bombs'] = CompressedTextMapper.convert("BOMBS! Use A to pick 'em up, throw 'em, get hurt!") text['item_get_bottle'] = CompressedTextMapper.convert("It's a terrarium. I hope we find a lizard!") text['item_get_big_key'] = CompressedTextMapper.convert("Yo! You got a Big Key!") - text['item_get_titans_mitts'] = CompressedTextMapper.convert("So like you can now lift anything.\nANYTHING!") - text['item_get_magic_mirror'] = CompressedTextMapper.convert("We could stare at this all day, or you know, beat Ganon…") - text['item_get_fake_mastersword'] = CompressedTextMapper.convert("It's the Master Sword! or not\n\n FOOL!\n") + text['item_get_titans_mitts'] = CompressedTextMapper.convert("So, like, you can now lift anything.\nANYTHING!") + text['item_get_magic_mirror'] = CompressedTextMapper.convert("We could stare at this all day or, you know, beat Ganon…") + text['item_get_fake_mastersword'] = CompressedTextMapper.convert("It's the Master Sword! …or not…\n\n FOOL!") # 70 - text['post_item_get_mastersword'] = CompressedTextMapper.convert("{NOBORDER}\n{SPEED6}\n@, you got the sword!\n{CHANGEMUSIC}\nNow lets go beat up Agahnim!") - text['item_get_red_potion'] = CompressedTextMapper.convert("Red goo to go! nice!") - text['item_get_green_potion'] = CompressedTextMapper.convert("Green goo to go! nice!") - text['item_get_blue_potion'] = CompressedTextMapper.convert("Blue goo to go! nice!") - text['item_get_bug_net'] = CompressedTextMapper.convert("Surprise net! let's catch stuff!") + text['post_item_get_mastersword'] = CompressedTextMapper.convert("{NOBORDER}\n{SPEED6}\n@, you got the sword!\n{CHANGEMUSIC}\nNow let's go beat up Agahnim!") + text['item_get_red_potion'] = CompressedTextMapper.convert("Red goo to go! Nice!") + text['item_get_green_potion'] = CompressedTextMapper.convert("Green goo to go! Nice!") + text['item_get_blue_potion'] = CompressedTextMapper.convert("Blue goo to go! Nice!") + text['item_get_bug_net'] = CompressedTextMapper.convert("Surprise Net! Let's catch stuff!") text['item_get_blue_mail'] = CompressedTextMapper.convert("Blue threads? Less damage activated!") text['item_get_red_mail'] = CompressedTextMapper.convert("You feel the power of the eggplant on your head.") - text['item_get_temperedsword'] = CompressedTextMapper.convert("Nice… I noew have a craving for cheetos") + text['item_get_temperedsword'] = CompressedTextMapper.convert("Nice… I now have a craving for Cheetos.") text['item_get_mirror_shield'] = CompressedTextMapper.convert("Pit would be proud!") - text['item_get_cane_of_byrna'] = CompressedTextMapper.convert("It's the Blue Cane, you can now protect yourself with lag!") + text['item_get_cane_of_byrna'] = CompressedTextMapper.convert("It's the Blue Cane. You can now protect yourself with lag!") text['missing_big_key'] = CompressedTextMapper.convert("Something is missing…\nThe Big Key?") text['missing_magic'] = CompressedTextMapper.convert("Something is missing…\nMagic meter?") - text['item_get_pegasus_boots'] = CompressedTextMapper.convert("Finally, It's bonking time!\nHold A to dash") + text['item_get_pegasus_boots'] = CompressedTextMapper.convert("Finally, it's bonking time!\nHold A to dash") text['talking_tree_info_start'] = CompressedTextMapper.convert("Whoa! I can talk again!") - text['talking_tree_info_1'] = CompressedTextMapper.convert("Yank on the pitchfork in the center of town, yah heard it here.") - text['talking_tree_info_2'] = CompressedTextMapper.convert("Ganon is such a dingus, no one likes him, yah heard it here.") + text['talking_tree_info_1'] = CompressedTextMapper.convert("Yank on the pitchfork in the center of town, ya heard it here.") + text['talking_tree_info_2'] = CompressedTextMapper.convert("Ganon is such a dingus, no one likes him, ya heard it here.") # 80 - text['talking_tree_info_3'] = CompressedTextMapper.convert("There is a portal near the lost woods, yah heard it here.") - text['talking_tree_info_4'] = CompressedTextMapper.convert("Use bombs to quickly kill the Hinox, yah heard it here.") + text['talking_tree_info_3'] = CompressedTextMapper.convert("There is a portal near the Lost Woods, ya heard it here.") + text['talking_tree_info_4'] = CompressedTextMapper.convert("Use bombs to quickly kill the Hinox, ya heard it here.") text['talking_tree_other'] = CompressedTextMapper.convert("I can breathe!") - text['item_get_pendant_power_alt'] = CompressedTextMapper.convert("We have the Pendant of Power! Rock on!") - text['item_get_pendant_wisdom_alt'] = CompressedTextMapper.convert("We have the Pendant of wisdom! Rock on!") - text['game_shooting_choice'] = CompressedTextMapper.convert("20 rupees.\n5 arrows.\nwin rupees!\nWant to play?\n ≥ yes\n no\n{CHOICE}") - text['game_shooting_yes'] = CompressedTextMapper.convert("Lets do this!") + text['item_get_pendant_power_alt'] = CompressedTextMapper.convert("We have the Pendant of Power! How robust!") + text['item_get_pendant_wisdom_alt'] = CompressedTextMapper.convert("We have the Pendant of Wisdom! How astute!") + text['game_shooting_choice'] = CompressedTextMapper.convert("20 rupees.\n5 arrows.\nWin rupees!\nWant to play?\n ≥ yes\n no\n{CHOICE}") + text['game_shooting_yes'] = CompressedTextMapper.convert("Let's do this!") text['game_shooting_no'] = CompressedTextMapper.convert("Where are you going? Straight up!") text['game_shooting_continue'] = CompressedTextMapper.convert("Keep playing?\n ≥ yes\n no\n{CHOICE}") text['pond_of_wishing'] = CompressedTextMapper.convert("-Wishing Pond-\n\n On Vacation") @@ -1518,40 +1543,40 @@ class TextTable(object): text['pond_item_test'] = CompressedTextMapper.convert("You toss this?\n ≥ yup\n wrong\n{CHOICE}") text['pond_will_upgrade'] = CompressedTextMapper.convert("You're honest, so I'll give you a present.") text['pond_item_test_no'] = CompressedTextMapper.convert("You sure?\n ≥ oh yeah\n um\n{CHOICE}") - text['pond_item_test_no_no'] = CompressedTextMapper.convert("Well I don't want it, so take it back") - text['pond_item_boomerang'] = CompressedTextMapper.convert("I don't much like you, so have this worse boomerang") + text['pond_item_test_no_no'] = CompressedTextMapper.convert("Well, I don't want it, so take it back.") + text['pond_item_boomerang'] = CompressedTextMapper.convert("I don't much like you, so have this worse Boomerang.") # 90 - text['pond_item_shield'] = CompressedTextMapper.convert("I grant you the ability to block fireballs, don't lose this to a pikit") - text['pond_item_silvers'] = CompressedTextMapper.convert("So, it sure would be nice to kill Ganon? These should help in the final phase") - text['pond_item_bottle_filled'] = CompressedTextMapper.convert("Filled Bottle!\nMoney Saved!") - text['pond_item_sword'] = CompressedTextMapper.convert("Thank you for the sword, here is a stick of butter") + text['pond_item_shield'] = CompressedTextMapper.convert("I grant you the ability to block fireballs. Don't lose this to a pikit!") + text['pond_item_silvers'] = CompressedTextMapper.convert("So, wouldn't it be nice to kill Ganon? These should help in the final phase.") + text['pond_item_bottle_filled'] = CompressedTextMapper.convert("Bottle Filled!\nMoney Saved!") + text['pond_item_sword'] = CompressedTextMapper.convert("Thank you for the sword, here is a stick of butter.") text['pond_of_wishing_happiness'] = CompressedTextMapper.convert("Happiness up!\nYou are now\nᚌᚋ happy!") - text['pond_of_wishing_choice'] = CompressedTextMapper.convert("your wish?\n ≥more bombs\n more arrows\n{CHOICE}") - text['pond_of_wishing_bombs'] = CompressedTextMapper.convert("Whoo Hoo!\nYou can now\ncarry ᚌᚋ bombs") - text['pond_of_wishing_arrows'] = CompressedTextMapper.convert("Whoo Hoo!\nYou can now\nhold ᚌᚋ arrows") - text['pond_of_wishing_full_upgrades'] = CompressedTextMapper.convert("You got all I can give you, here's your rupees back.") - text['mountain_old_man_first'] = CompressedTextMapper.convert("Look out for holes, and mosters.") - text['mountain_old_man_deadend'] = CompressedTextMapper.convert("Oh goody, hearts in jars! this place is creepy") - text['mountain_old_man_turn_right'] = CompressedTextMapper.convert("Turn right. Lets get out of this place.") - text['mountain_old_man_lost_and_alone'] = CompressedTextMapper.convert("Hello, I can't see anything, take me with you.") + text['pond_of_wishing_choice'] = CompressedTextMapper.convert("Your wish?\n ≥more bombs\n more arrows\n{CHOICE}") + text['pond_of_wishing_bombs'] = CompressedTextMapper.convert("Woo-hoo!\nYou can now\ncarry ᚌᚋ bombs") + text['pond_of_wishing_arrows'] = CompressedTextMapper.convert("Woo-hoo!\nYou can now\nhold ᚌᚋ arrows") + text['pond_of_wishing_full_upgrades'] = CompressedTextMapper.convert("Youhave all I can give you, here are your rupees back.") + text['mountain_old_man_first'] = CompressedTextMapper.convert("Look out for holes, and monsters.") + text['mountain_old_man_deadend'] = CompressedTextMapper.convert("Oh, goody, hearts in jars! This place is creepy.") + text['mountain_old_man_turn_right'] = CompressedTextMapper.convert("Turn right. Let's get out of this place.") + text['mountain_old_man_lost_and_alone'] = CompressedTextMapper.convert("Hello. I can't see anything. Take me with you.") text['mountain_old_man_drop_off'] = CompressedTextMapper.convert("Here's a thing to help you, good luck!") text['mountain_old_man_in_his_cave_pre_agahnim'] = CompressedTextMapper.convert("You need to beat the tower at the top of the mountain.") - text['mountain_old_man_in_his_cave'] = CompressedTextMapper.convert("You can find stuff in the tower at the top of this mountain.\nCome see me if you would like healed.") + text['mountain_old_man_in_his_cave'] = CompressedTextMapper.convert("You can find stuff in the tower at the top of this mountain.\nCome see me if you'd like to be healed.") # A0 text['mountain_old_man_in_his_cave_post_agahnim'] = CompressedTextMapper.convert("You should be heading to the castle… you have a portal there now.\nSay hi anytime you like.") - text['tavern_old_man_awake'] = CompressedTextMapper.convert("Life? Love? Happiness? The question you should really ask is, was this generated by Stoops Alu or Stoops Jet?") - text['tavern_old_man_unactivated_flute'] = CompressedTextMapper.convert("You should play that flute for the weathervain, cause reasons.") - text['tavern_old_man_know_tree_unactivated_flute'] = CompressedTextMapper.convert("You should play that flute for the weathervain, cause reasons.") - text['tavern_old_man_have_flute'] = CompressedTextMapper.convert("Life? Love? Happiness? The question you should really ask is, was this generated by Stoops Alu or Stoops Jet?") - text['chicken_hut_lady'] = CompressedTextMapper.convert("This is\nChristos' hut,\n\nHe's out searching for a bow.") + text['tavern_old_man_awake'] = CompressedTextMapper.convert("Life? Love? Happiness? The question you should really ask is: Was this generated by Stoops Alu or Stoops Jet?") + text['tavern_old_man_unactivated_flute'] = CompressedTextMapper.convert("You should play that flute for the weathervane, cause reasons.") + text['tavern_old_man_know_tree_unactivated_flute'] = CompressedTextMapper.convert("You should play that flute for the weathervane, cause reasons.") + text['tavern_old_man_have_flute'] = CompressedTextMapper.convert("Life? Love? Happiness? The question you should really ask is: Was this generated by Stoops Alu or Stoops Jet?") + text['chicken_hut_lady'] = CompressedTextMapper.convert("This is\nChristos' hut.\n\nHe's out, searching for a bow.") text['running_man'] = CompressedTextMapper.convert("Hi, Do you\nknow Veetorp?\n\nYou really\nshould. And\nall the other great guys who made this possible.\nGo thank them.\n\n\nIf you can catch them…") text['game_race_sign'] = CompressedTextMapper.convert("Why are you reading this sign? Run!!!") text['sign_bumper_cave'] = CompressedTextMapper.convert("You need Cape, but not Hookshot") text['sign_catfish'] = CompressedTextMapper.convert("toss rocks\ntoss items\ntoss cookies") - text['sign_north_village_of_outcasts'] = CompressedTextMapper.convert("↑ Skull woods\n\n↓ Steve's town") + text['sign_north_village_of_outcasts'] = CompressedTextMapper.convert("↑ Skull Woods\n\n↓ Steve's Town") text['sign_south_of_bumper_cave'] = CompressedTextMapper.convert("\n→ Karkats cave") text['sign_east_of_pyramid'] = CompressedTextMapper.convert("\n→ Dark Palace") - text['sign_east_of_bomb_shop'] = CompressedTextMapper.convert("\n← Bomb shoppe") + text['sign_east_of_bomb_shop'] = CompressedTextMapper.convert("\n← Bomb Shoppe") text['sign_east_of_mire'] = CompressedTextMapper.convert("\n← Misery Mire\n no way in.\n no way out.") text['sign_village_of_outcasts'] = CompressedTextMapper.convert("Have a Trulie Awesome Day!") # B0 @@ -1560,62 +1585,62 @@ class TextTable(object): text['castle_wall_guard'] = CompressedTextMapper.convert("Looking for a Princess? Look downstairs.") text['gate_guard'] = CompressedTextMapper.convert("No Lonks Allowed!") text['telepathic_tile_eastern_palace'] = CompressedTextMapper.convert("{NOBORDER}\nYou need a Bow to get past the red Eyegore. derpy") - text['telepathic_tile_tower_of_hera_floor_4'] = CompressedTextMapper.convert("{NOBORDER}\nIf you find a shiny ball, you can be you in the Dark World") + text['telepathic_tile_tower_of_hera_floor_4'] = CompressedTextMapper.convert("{NOBORDER}\nIf you find a shiny ball, you can be you in the Dark World.") text['hylian_text_1'] = CompressedTextMapper.convert("%== %== %==\n ^ %==% ^\n%== ^%%^ ==^") - text['mastersword_pedestal_translated'] = CompressedTextMapper.convert("A test of strength, if you have 3 pendants, I'm yours") - text['telepathic_tile_spectacle_rock'] = CompressedTextMapper.convert("{NOBORDER}\nUse the mirror, or the hookshot and hammer to get to Tower of Hera!") + text['mastersword_pedestal_translated'] = CompressedTextMapper.convert("A test of strength: If you have 3 pendants, I'm yours.") + text['telepathic_tile_spectacle_rock'] = CompressedTextMapper.convert("{NOBORDER}\n{NOBORDER}\nUse the Mirror, or the Hookshot and Hammer, to get to Tower of Hera!") text['telepathic_tile_swamp_entrance'] = CompressedTextMapper.convert("{NOBORDER}\nDrain the floodgate to raise the water here!") text['telepathic_tile_thieves_town_upstairs'] = CompressedTextMapper.convert("Secondary tournament winners\n{HARP}\n ~~~2017~~~\nA: Zaen") text['telepathic_tile_misery_mire'] = CompressedTextMapper.convert("{NOBORDER}\nLighting 4 torches will open your way forward!") text['hylian_text_2'] = CompressedTextMapper.convert("%%^= %==%\n ^ =%^=\n==%= ^^%^") text['desert_entry_translated'] = CompressedTextMapper.convert("Kneel before this stone, and magic will move around you.") - text['telepathic_tile_under_ganon'] = CompressedTextMapper.convert("{NOBORDER}\nOnly arrows will finish off a blue Ganon, or really well timed spins in phase 4.") + text['telepathic_tile_under_ganon'] = CompressedTextMapper.convert("{NOBORDER}\nOnly arrows will finish off a blue Ganon, or really well-timed spins in phase 4.") text['telepathic_tile_palace_of_darkness'] = CompressedTextMapper.convert("{NOBORDER}\nThis is a funny looking Enemizer") # C0 text['telepathic_tile_desert_bonk_torch_room'] = CompressedTextMapper.convert("{NOBORDER}\nThings can be knocked down, if you fancy yourself a dashing dude.") text['telepathic_tile_castle_tower'] = CompressedTextMapper.convert("{NOBORDER}\nYou can reflect Agahnim's energy with Sword, Bug-net or Hammer.") - text['telepathic_tile_ice_large_room'] = CompressedTextMapper.convert("{NOBORDER}\nAll right stop collaborate and listen\nice is back with my brand new invention") - text['telepathic_tile_turtle_rock'] = CompressedTextMapper.convert("{NOBORDER}\nYou Shall not pass… without the red cane") - text['telepathic_tile_ice_entrace'] = CompressedTextMapper.convert("{NOBORDER}\nYou can use fire rod or Bombos to pass") - text['telepathic_tile_ice_stalfos_knights_room'] = CompressedTextMapper.convert("{NOBORDER}\nKnock em down and them bomb them dead.") - text['telepathic_tile_tower_of_hera_entrance'] = CompressedTextMapper.convert("{NOBORDER}\nThis is a bad place, with a guy who will make you fall\n\n\na lot.") + text['telepathic_tile_ice_large_room'] = CompressedTextMapper.convert("{NOBORDER}\nAll right stop collaborate and listen\nIce is back with my brand new invention") + text['telepathic_tile_turtle_rock'] = CompressedTextMapper.convert("{NOBORDER}\nYou shall not pass… without the red cane") + text['telepathic_tile_ice_entrace'] = CompressedTextMapper.convert("{NOBORDER}\nYou can use Fire Rod or Bombos to pass.") + text['telepathic_tile_ice_stalfos_knights_room'] = CompressedTextMapper.convert("{NOBORDER}\nKnock 'em down and then bomb them dead.") + text['telepathic_tile_tower_of_hera_entrance'] = CompressedTextMapper.convert("{NOBORDER}\nThis is a bad place, with a guy who will make you fall…\n\n\na lot.") text['houlahan_room'] = CompressedTextMapper.convert("Randomizer tournament winners\n{HARP}\n ~~~2017~~~\nA: ajneb174\nS: ajneb174") text['caught_a_bee'] = CompressedTextMapper.convert("Caught a Bee\n ≥ keep\n release\n{CHOICE}") text['caught_a_fairy'] = CompressedTextMapper.convert("Caught Fairy!\n ≥ keep\n release\n{CHOICE}") - text['no_empty_bottles'] = CompressedTextMapper.convert("Whoa bucko!\nNo empty bottles.") + text['no_empty_bottles'] = CompressedTextMapper.convert("Whoa, bucko!\nNo empty bottles.") text['game_race_boy_time'] = CompressedTextMapper.convert("Your time was\nᚎᚍ min ᚌᚋ sec.") text['game_race_girl'] = CompressedTextMapper.convert("You have 15 seconds,\nGo… Go… Go…") text['game_race_boy_success'] = CompressedTextMapper.convert("Nice!\nYou can have this trash!") text['game_race_boy_failure'] = CompressedTextMapper.convert("Too slow!\nI keep my\nprecious!") - text['game_race_boy_already_won'] = CompressedTextMapper.convert("You already have your prize, Dingus!") + text['game_race_boy_already_won'] = CompressedTextMapper.convert("You already have your prize, dingus!") # D0 - text['game_race_boy_sneaky'] = CompressedTextMapper.convert("Thought you could sneak in eh?") - text['bottle_vendor_choice'] = CompressedTextMapper.convert("I have bottles.\nYou's got 100 ruppes?\n ≥ I want\n no way!") + text['game_race_boy_sneaky'] = CompressedTextMapper.convert("Thought you could sneak in, eh?") + text['bottle_vendor_choice'] = CompressedTextMapper.convert("I gots bottles.\nYous gots 100 rupees?\n ≥ I want\n no way!") text['bottle_vendor_get'] = CompressedTextMapper.convert("Nice! Hold it up son! Show the world what you got!") - text['bottle_vendor_no'] = CompressedTextMapper.convert("Fine! I didn't want your money anways.") - text['bottle_vendor_already_collected'] = CompressedTextMapper.convert("Dude! You already have it") - text['bottle_vendor_bee'] = CompressedTextMapper.convert("Cool! A bee! here's 100 rupees.") + text['bottle_vendor_no'] = CompressedTextMapper.convert("Fine! I didn't want your money anyway.") + text['bottle_vendor_already_collected'] = CompressedTextMapper.convert("Dude! You already have it.") + text['bottle_vendor_bee'] = CompressedTextMapper.convert("Cool! A bee! Here's 100 rupees.") text['bottle_vendor_fish'] = CompressedTextMapper.convert("Whoa! A fish! You walked this all the way here?") - text['hobo_item_get_bottle'] = CompressedTextMapper.convert("You think life is rough? I guess you can take my last item, except this tent, that's MY tent!") - text['blacksmiths_what_you_want'] = CompressedTextMapper.convert("Nice of you to come back!\nWould you like us mess with your sword?\n ≥ Termper\n It's fine\n{CHOICE}") + text['hobo_item_get_bottle'] = CompressedTextMapper.convert("You think life is rough? I guess you can take my last item. Except this tent. That's MY tent!") + text['blacksmiths_what_you_want'] = CompressedTextMapper.convert("Nice of you to come back!\nWould you like us mess with your sword?\n ≥ Temper\n It's fine\n{CHOICE}") text['blacksmiths_paywall'] = CompressedTextMapper.convert("It's 10 rupees\n ≥ Easy\n Hang on…\n{CHOICE}") text['blacksmiths_extra_okay'] = CompressedTextMapper.convert("Are you sure you're sure?\n ≥ Ah, yup\n Hang on…\n{CHOICE}") text['blacksmiths_tempered_already'] = CompressedTextMapper.convert("Whelp… We can't make this any better.") text['blacksmiths_temper_no'] = CompressedTextMapper.convert("Oh, come by any time!") text['blacksmiths_bogart_sword'] = CompressedTextMapper.convert("We're going to have to take it to work on it.") - text['blacksmiths_get_sword'] = CompressedTextMapper.convert("Sword is done, now back to our bread!") - text['blacksmiths_shop_before_saving'] = CompressedTextMapper.convert("I lost my friend, help me find him!") + text['blacksmiths_get_sword'] = CompressedTextMapper.convert("Sword is donw. Now, back to our bread!") + text['blacksmiths_shop_before_saving'] = CompressedTextMapper.convert("I lost my friend. Help me find him!") # E0 text['blacksmiths_shop_saving'] = CompressedTextMapper.convert("You found him! Colour me happy! Come back right away and we will bang on your sword.") - text['blacksmiths_collect_frog'] = CompressedTextMapper.convert("Ribbit! Ribbit! Lets find my partner. To the shoppe!") - text['blacksmiths_still_working'] = CompressedTextMapper.convert("Something this precious takes time… Come back later") + text['blacksmiths_collect_frog'] = CompressedTextMapper.convert("Ribbit! Ribbit! Let's find my partner. To the shop!") + text['blacksmiths_still_working'] = CompressedTextMapper.convert("Something this precious takes time… Come back later.") text['blacksmiths_saving_bows'] = CompressedTextMapper.convert("Thanks!\n\nThanks!") text['blacksmiths_hammer_anvil'] = CompressedTextMapper.convert("Dernt Take Er Jerbs!") - text['dark_flute_boy_storytime'] = CompressedTextMapper.convert("Hi!\nI'm stumpy\nI've been chilling in this world for a while now, but I miss my flute. If I gave you a shovel, would you go digging for it?\n ≥ sure\n nahh\n{CHOICE}") - text['dark_flute_boy_get_shovel'] = CompressedTextMapper.convert("Schaweet! Here you go, happy digging!") + text['dark_flute_boy_storytime'] = CompressedTextMapper.convert("Hi!\nI'm Stumpy\nI've been chillin' in this world for a while now, but I miss my flute. If I gave you a shovel, would you go digging for it?\n ≥ sure\n nahh\n{CHOICE}") + text['dark_flute_boy_get_shovel'] = CompressedTextMapper.convert("Schaweet! Here you go. Happy digging!") text['dark_flute_boy_no_get_shovel'] = CompressedTextMapper.convert("Oh I see, not good enough for you… FINE!") - text['dark_flute_boy_flute_not_found'] = CompressedTextMapper.convert("Still haven't found the item, dig in the light world around here, Dingus!") - text['dark_flute_boy_after_shovel_get'] = CompressedTextMapper.convert("So I gave you an item, and you're still here.\n\n\n\n\n\nI mean we can sit here and stare at each other if you like…\n\n\n\n\n\n\n\nFine, I guess you should just go.") + text['dark_flute_boy_flute_not_found'] = CompressedTextMapper.convert("Still haven't found the item? Dig in the Light World around here, dingus!") + text['dark_flute_boy_after_shovel_get'] = CompressedTextMapper.convert("So I gave you an item, and you're still here.\n\n\n\n\n\nI mean, we can sit here and stare at each other, if you like…\n\n\n\n\n\n\n\nFine, I guess you should just go.") text['shop_fortune_teller_lw_hint_0'] = CompressedTextMapper.convert("{BOTTOM}\nBy the black cats, the book opens the desert") text['shop_fortune_teller_lw_hint_1'] = CompressedTextMapper.convert("{BOTTOM}\nBy the black cats, nothing doing") text['shop_fortune_teller_lw_hint_2'] = CompressedTextMapper.convert("{BOTTOM}\nBy the black cats, I'm cheap") @@ -1625,106 +1650,106 @@ class TextTable(object): text['shop_fortune_teller_lw_hint_6'] = CompressedTextMapper.convert("{BOTTOM}\nBy the black cats, Spin, Hammer, or Net to hurt Agahnim") text['shop_fortune_teller_lw_hint_7'] = CompressedTextMapper.convert("{BOTTOM}\nBy the black cats, You can jump in the well by the blacksmiths") text['shop_fortune_teller_lw_no_rupees'] = CompressedTextMapper.convert("{BOTTOM}\nThe black cats are hungry, come back with rupees") - text['shop_fortune_teller_lw'] = CompressedTextMapper.convert("{BOTTOM}\nWelcome to the fortune shoppe!\nFancy a read?\n ≥I must know\n negitive\n{CHOICE}") + text['shop_fortune_teller_lw'] = CompressedTextMapper.convert("{BOTTOM}\nWelcome to the Fortune Shoppe!\nFancy a read?\n ≥I must know\n negative\n{CHOICE}") text['shop_fortune_teller_lw_post_hint'] = CompressedTextMapper.convert("{BOTTOM}\nFor ᚋᚌ rupees\nIt is done.\nBe gone!") text['shop_fortune_teller_lw_no'] = CompressedTextMapper.convert("{BOTTOM}\nWell then, why did you even come in here?") text['shop_fortune_teller_lw_hint_8'] = CompressedTextMapper.convert("{BOTTOM}\nBy the black cats, why you do?") text['shop_fortune_teller_lw_hint_9'] = CompressedTextMapper.convert("{BOTTOM}\nBy the black cats, panda crackers") - text['shop_fortune_teller_lw_hint_10'] = CompressedTextMapper.convert("{BOTTOM}\nBy the black cats, the missing blacksmith is south of the villiage of outcasts") + text['shop_fortune_teller_lw_hint_10'] = CompressedTextMapper.convert("{BOTTOM}\nBy the black cats, the missing blacksmith is south of the Village of Outcasts") text['shop_fortune_teller_lw_hint_11'] = CompressedTextMapper.convert("{BOTTOM}\nBy the black cats, open chests to get stuff") - text['shop_fortune_teller_lw_hint_12'] = CompressedTextMapper.convert("{BOTTOM}\nBy the black cats, you can buy a new bomb at the bomb shop") + text['shop_fortune_teller_lw_hint_12'] = CompressedTextMapper.convert("{BOTTOM}\nBy the black cats, you can buy a new bomb at the Bomb Shoppe") text['shop_fortune_teller_lw_hint_13'] = CompressedTextMapper.convert("{BOTTOM}\nBy the black cats, big bombs blow up cracked walls in pyramids") - text['shop_fortune_teller_lw_hint_14'] = CompressedTextMapper.convert("{BOTTOM}\nBy the black cats, you need all the crystals to open Ganons tower") - text['shop_fortune_teller_lw_hint_15'] = CompressedTextMapper.convert("{BOTTOM}\nBy the black cats, silver arrows will defeat Ganon in his final phase") + text['shop_fortune_teller_lw_hint_14'] = CompressedTextMapper.convert("{BOTTOM}\nBy the black cats, you need all the crystals to open Ganon's Tower") + text['shop_fortune_teller_lw_hint_15'] = CompressedTextMapper.convert("{BOTTOM}\nBy the black cats, Silver Arrows will defeat Ganon in his final phase") text['dark_sanctuary'] = CompressedTextMapper.convert("For 20 rupees I'll tell you something?\nHow about it?\n ≥ yes\n no\n{CHOICE}") text['dark_sanctuary_hint_0'] = CompressedTextMapper.convert("I once was a tea kettle, but then I moved up in the world, and now you can see me as this. Makes you wonder. What I could be next time.") # 100 text['dark_sanctuary_no'] = CompressedTextMapper.convert("Then go away!") text['dark_sanctuary_hint_1'] = CompressedTextMapper.convert("There is a thief in the desert, he can open creepy chests that follow you. But now that we have that out of the way, Do you like my hair? I've spent eons getting it this way.") - text['dark_sanctuary_yes'] = CompressedTextMapper.convert("With Crystals 5&6 you can find a great fairy in the pyramid.\n\nFlomp Flomp, Whizzle Whomp") + text['dark_sanctuary_yes'] = CompressedTextMapper.convert("With Crystals 5&6, you can find a great fairy in the pyramid.\n\nFlomp Flomp, Whizzle Whomp") text['dark_sanctuary_hint_2'] = CompressedTextMapper.convert( "All I can say is that my life is pretty plain,\n" + "I like watchin' the puddles gather rain,\n" + "And all I can do is just pour some tea for two,\n" + "And speak my point of view but it's not sane,\n" + "It's not sane") - text['sick_kid_no_bottle'] = CompressedTextMapper.convert("{BOTTOM}\nI'm sick! show me a bottle, get something!") + text['sick_kid_no_bottle'] = CompressedTextMapper.convert("{BOTTOM}\nI'm sick! Show me a bottle, get something!") text['sick_kid_trade'] = CompressedTextMapper.convert("{BOTTOM}\nCool Bottle! Here's something for you.") text['sick_kid_post_trade'] = CompressedTextMapper.convert("{BOTTOM}\nLeave me alone\nI'm sick. You have my item.") text['desert_thief_sitting'] = CompressedTextMapper.convert("………………………") text['desert_thief_following'] = CompressedTextMapper.convert("why……………") - text['desert_thief_question'] = CompressedTextMapper.convert("I was a theif, I open purple chests!\nKeep secret?\n ≥ sure thing\n never!\n{CHOICE}") + text['desert_thief_question'] = CompressedTextMapper.convert("I was a thief, I open purple chests!\nKeep secret?\n ≥ sure thing\n never!\n{CHOICE}") text['desert_thief_question_yes'] = CompressedTextMapper.convert("Cool, bring me any purple chests you find.") text['desert_thief_after_item_get'] = CompressedTextMapper.convert("You tell anyone and I will give you such a pinch!") - text['desert_thief_reassure'] = CompressedTextMapper.convert("bring chests, it's a secret to everyone.") + text['desert_thief_reassure'] = CompressedTextMapper.convert("Bring chests. It's a secret to everyone.") text['hylian_text_3'] = CompressedTextMapper.convert("^^ ^%=^= =%=\n=%% =%%=^\n==%^= %=^^%") - text['tablet_ether_book'] = CompressedTextMapper.convert("Can you make things fall out of the sky? with the Master Sword you can!") - text['tablet_bombos_book'] = CompressedTextMapper.convert("Can you make things fall out of the sky? with the Master Sword you can!") + text['tablet_ether_book'] = CompressedTextMapper.convert("Can you make things fall out of the sky? With the Master Sword, you can!") + text['tablet_bombos_book'] = CompressedTextMapper.convert("Can you make things fall out of the sky? With the Master Sword, you can!") # 110 - text['magic_bat_wake'] = CompressedTextMapper.convert("you bum! I was sleeping. Where's my magic bolts?") + text['magic_bat_wake'] = CompressedTextMapper.convert("You bum! I was sleeping! Where's my magic bolts?") text['magic_bat_give_half_magic'] = CompressedTextMapper.convert("How you like me now?") text['intro_main'] = CompressedTextMapper.convert( - "{INTRO}\n Episode III\n{PAUSE3}\n a link to\n the past\n" - + "{PAUSE3}\n randomizer\n{PAUSE3}\nAfter mostly disregarding what happened in the first two games.\n" - + "{PAUSE3}\nLink awakens to his uncle leaving the house,\n{PAUSE3}\nhe just runs out the door\n" - + "{PAUSE3}\ninto the rainy night.\n{PAUSE3}\n{CHANGEPIC}\nGanon has moved all the items around hyrule.\n" + "{INTRO}\n Episode III\n{PAUSE3}\n A Link to\n the Past\n" + + "{PAUSE3}\n Randomizer\n{PAUSE3}\nAfter mostly disregarding what happened in the first two games.\n" + + "{PAUSE3}\nLink awakens to his uncle leaving the house.\n{PAUSE3}\nHe just runs out the door,\n" + + "{PAUSE3}\ninto the rainy night.\n{PAUSE3}\n{CHANGEPIC}\nGanon has moved around all the items in Hyrule.\n" + "{PAUSE7}\nYou will have to find all the items necessary to beat Ganon.\n" - + "{PAUSE7}\nThis is your chance to be a hero\n{PAUSE3}\n{CHANGEPIC}\n" + + "{PAUSE7}\nThis is your chance to be a hero.\n{PAUSE3}\n{CHANGEPIC}\n" + "You must get the 7 crystals to beat Ganon.\n{PAUSE9}\n{CHANGEPIC}", False) - text['intro_throne_room'] = CompressedTextMapper.convert("{IBOX}\nLook at this stalfos on the throne.", False) + text['intro_throne_room'] = CompressedTextMapper.convert("{IBOX}\nLook at this Stalfos on the throne.", False) text['intro_zelda_cell'] = CompressedTextMapper.convert("{IBOX}\nIt is your time to shine!", False) - text['intro_agahnim'] = CompressedTextMapper.convert("{IBOX}\nAlso you need to defeat this guy!", False) - text['pickup_purple_chest'] = CompressedTextMapper.convert("A curious box, lets take it with us") - text['bomb_shop'] = CompressedTextMapper.convert("30 bombs for 100 rupees, good deals all day!") - text['bomb_shop_big_bomb'] = CompressedTextMapper.convert("30 bombs for 100 rupees, 100 rupees 1 BIG bomb. good deals all day!") + text['intro_agahnim'] = CompressedTextMapper.convert("{IBOX}\nAlso, you need to defeat this guy!", False) + text['pickup_purple_chest'] = CompressedTextMapper.convert("A curious box. Let's take it with us!") + text['bomb_shop'] = CompressedTextMapper.convert("30 bombs for 100 rupees. Good deals all day!") + text['bomb_shop_big_bomb'] = CompressedTextMapper.convert("30 bombs for 100 rupees, 100 rupees 1 BIG bomb. Good deals all day!") text['bomb_shop_big_bomb_buy'] = CompressedTextMapper.convert("Thanks!\nBoom goes the dynamite!") text['item_get_big_bomb'] = CompressedTextMapper.convert("YAY! press A to splode it!") - text['kiki_second_extortion'] = CompressedTextMapper.convert("For 100 more I'll open this place?\nHow about it?\n ≥ open\n nah\n{CHOICE}") + text['kiki_second_extortion'] = CompressedTextMapper.convert("For 100 more, I'll open this place.\nHow about it?\n ≥ open\n nah\n{CHOICE}") text['kiki_second_extortion_no'] = CompressedTextMapper.convert("Heh, good luck getting in.") - text['kiki_second_extortion_yes'] = CompressedTextMapper.convert("Yay! Rupees!\nokay, let's do this!") - text['kiki_first_extortion'] = CompressedTextMapper.convert("I'm kiki, I like rupees, may I have 10?\nHow about it?\n ≥ yes\n no\n{CHOICE}") + text['kiki_second_extortion_yes'] = CompressedTextMapper.convert("Yay! Rupees!\nOkay, let's do this!") + text['kiki_first_extortion'] = CompressedTextMapper.convert("I'm Kiki, I like rupees, may I have 10?\nHow about it?\n ≥ yes\n no\n{CHOICE}") text['kiki_first_extortion_yes'] = CompressedTextMapper.convert("Nice. I'll tag along with you for a bit.") # 120 - text['kiki_first_extortion_no'] = CompressedTextMapper.convert("Pfft. I have no reason to hang. Seeyah!") + text['kiki_first_extortion_no'] = CompressedTextMapper.convert("Pfft. I have no reason to hang. See ya!") text['kiki_leaving_screen'] = CompressedTextMapper.convert("No no no no no! We should play by my rules! Goodbye…") text['blind_in_the_cell'] = CompressedTextMapper.convert("You saved me!\nPlease get me out of here!") text['blind_by_the_light'] = CompressedTextMapper.convert("Aaaahhhh~!\nS-so bright~!") text['blind_not_that_way'] = CompressedTextMapper.convert("No! Don't go that way!") - text['aginah_l1sword_no_book'] = CompressedTextMapper.convert("I once had a fish dinner, I still remember it to this day.") + text['aginah_l1sword_no_book'] = CompressedTextMapper.convert("I once had a fish dinner. I still remember it to this day.") text['aginah_l1sword_with_pendants'] = CompressedTextMapper.convert("Do you remember when I was young?\n\nI sure don't.") text['aginah'] = CompressedTextMapper.convert("So, I've been living in this cave for years, and you think you can just come along and bomb open walls?") - text['aginah_need_better_sword'] = CompressedTextMapper.convert("Once I farted in this cave so bad all the jazz hands guys ran away in hid in the sand.") - text['aginah_have_better_sword'] = CompressedTextMapper.convert("Panda's are very vicious animals. Never forget…\n\n\n\n\n… I never will") - text['catfish'] = CompressedTextMapper.convert("You woke me from my nap, take this and get out!") + text['aginah_need_better_sword'] = CompressedTextMapper.convert("Once, I farted in this cave so bad all the jazz hands guys ran away and hid in the sand.") + text['aginah_have_better_sword'] = CompressedTextMapper.convert("Pandas are very vicious animals. Never forget…\n\n\n\n\nI never will") + text['catfish'] = CompressedTextMapper.convert("You woke me from my nap! Take this, and get out!") text['catfish_after_item'] = CompressedTextMapper.convert("I don't have anything else for you!\nTake this!") # 12C text['lumberjack_right'] = CompressedTextMapper.convert("One of us always lies.") text['lumberjack_left'] = CompressedTextMapper.convert("One of us always tells the truth.") - text['lumberjack_left_post_agahnim'] = CompressedTextMapper.convert("One of us likes peanut butter") + text['lumberjack_left_post_agahnim'] = CompressedTextMapper.convert("One of us likes peanut butter.") text['fighting_brothers_right'] = CompressedTextMapper.convert("I walled off my brother Leo\n\nWhat a dingus.\n") # 130 text['fighting_brothers_right_opened'] = CompressedTextMapper.convert("Now I should probably talk to him…") - text['fighting_brothers_left'] = CompressedTextMapper.convert("Did you come from my brothers room?\n\nAre we cool?\n") + text['fighting_brothers_left'] = CompressedTextMapper.convert("Did you come from my brothers room?\n\nAre we cool?") text['maiden_crystal_1'] = CompressedTextMapper.convert("{SPEED2}\n{BOTTOM}\n{NOBORDER}\nI have a pretty red dress.\n{SPEED1}\nJust thought I would tell you.") text['maiden_crystal_2'] = CompressedTextMapper.convert("{SPEED2}\n{BOTTOM}\n{NOBORDER}\nI have a pretty blue dress.\n{SPEED1}\nJust thought I would tell you.") text['maiden_crystal_3'] = CompressedTextMapper.convert("{SPEED2}\n{BOTTOM}\n{NOBORDER}\nI have a pretty gold dress.\n{SPEED1}\nJust thought I would tell you.") text['maiden_crystal_4'] = CompressedTextMapper.convert("{SPEED2}\n{BOTTOM}\n{NOBORDER}\nI have a pretty redder dress.\n{SPEED1}\nJust thought I would tell you.") text['maiden_crystal_5'] = CompressedTextMapper.convert("{SPEED2}\n{BOTTOM}\n{NOBORDER}\nI have a pretty green dress.\n{SPEED1}\nJust thought I would tell you.") text['maiden_crystal_6'] = CompressedTextMapper.convert("{SPEED2}\n{BOTTOM}\n{NOBORDER}\nI have a pretty green dress.\n{SPEED1}\nJust thought I would tell you.") - text['maiden_crystal_7'] = CompressedTextMapper.convert("{SPEED2}\n{BOTTOM}\n{NOBORDER}\nIt's about friggin time.\n{SPEED1}\nDo you know how long I have been waiting?") - text['maiden_ending'] = CompressedTextMapper.convert("May the way of the hero lead to the triforce") + text['maiden_crystal_7'] = CompressedTextMapper.convert("{SPEED2}\n{BOTTOM}\n{NOBORDER}\nIt's about friggin time.\n{SPEED1}\nDo you know how long I've been waiting?") + text['maiden_ending'] = CompressedTextMapper.convert("May the way of the hero lead to the Triforce") text['maiden_confirm_undersood'] = CompressedTextMapper.convert("{SPEED2}\n{BOTTOM}\n{NOBORDER}\nCapisce?\n ≥ Yes\n No\n{CHOICE}") - text['barrier_breaking'] = CompressedTextMapper.convert("What did the seven crystals say to Ganons tower?") + text['barrier_breaking'] = CompressedTextMapper.convert("What did the seven crystals say to Ganon's Tower?") text['maiden_crystal_7_again'] = CompressedTextMapper.convert("{SPEED2}\n{BOTTOM}\n{NOBORDER}\nIt's about friggin time.\n{SPEED1}\nDo you know how long I have been waiting?") - text['agahnim_zelda_teleport'] = CompressedTextMapper.convert("I am a magician, and this is my act. Watch as I make this girl dissapear") + text['agahnim_zelda_teleport'] = CompressedTextMapper.convert("I am a magician, and this is my act. Watch as I make this girl disappear") text['agahnim_magic_running_away'] = CompressedTextMapper.convert("And now, the end is near\nAnd so I face the final curtain\nMy friend, I'll say it clear\nI'll state my case, of which I'm certain\nI've lived a life that's full\nI've traveled each and every highway\nBut more, much more than this\nI did it my way") text['agahnim_hide_and_seek_found'] = CompressedTextMapper.convert("Peek-a-boo!") text['agahnim_defeated'] = CompressedTextMapper.convert("Arrrgggghhh. Well you're coming with me!") - text['agahnim_final_meeting'] = CompressedTextMapper.convert("You have done well to come this far, now die!") + text['agahnim_final_meeting'] = CompressedTextMapper.convert("You have done well to come this far. Now, die!") # 142 text['zora_meeting'] = CompressedTextMapper.convert("What do you want?\n ≥ Flippers\n Nothin'\n{CHOICE}") - text['zora_tells_cost'] = CompressedTextMapper.convert("Fine! but they aren't cheap, you got 500 rupees?\n ≥ Duh\n Oh carp\n{CHOICE}") - text['zora_get_flippers'] = CompressedTextMapper.convert("Here's some flippers for you! Swim little fish, swim.") + text['zora_tells_cost'] = CompressedTextMapper.convert("Fine! But they aren't cheap. You got 500 rupees?\n ≥ Duh\n Oh carp\n{CHOICE}") + text['zora_get_flippers'] = CompressedTextMapper.convert("Here's some Flippers for you! Swim little fish, swim.") text['zora_no_cash'] = CompressedTextMapper.convert("Fine!\nGo get some more money first.") text['zora_no_buy_item'] = CompressedTextMapper.convert("Wah hoo! Well, whenever you want to see these gills, stop on by.") text['kakariko_saharalasa_grandson'] = CompressedTextMapper.convert("My grandpa is over in the East. I'm bad with directions. I'll mark your map. Best of luck!\n{HARP}") @@ -1733,7 +1758,7 @@ class TextTable(object): text['fairy_wishing_ponds'] = CompressedTextMapper.convert("\n-wishing pond-\n\nThrow item in?\n ≥ Yesh\n No\n{CHOICE}") text['fairy_wishing_ponds_no'] = CompressedTextMapper.convert("\n stop it!") text['pond_of_wishing_no'] = CompressedTextMapper.convert("\n fine then!") - text['pond_of_wishing_return_item'] = CompressedTextMapper.convert("Okay, here's your item back, cause I can't use it. I'm stuck in this fountain") + text['pond_of_wishing_return_item'] = CompressedTextMapper.convert("Okay. Here's your item back, cause I can't use it. I'm stuck in this fountain") text['pond_of_wishing_throw'] = CompressedTextMapper.convert("How many?\n ≥ᚌᚋ rupees\n ᚎᚍ rupees\n{CHOICE}") text['pond_pre_item_silvers'] = CompressedTextMapper.convert("I like you, so here's a thing you can use to beat up Ganon.") # 150 @@ -1755,42 +1780,42 @@ class TextTable(object): text['death_mountain_bully_with_pearl'] = CompressedTextMapper.convert("I think I forgot how to smile…") text['shop_darkworld_enter'] = CompressedTextMapper.convert("It's dangerous outside, buy my crap for safety.") # 160 - text['game_chest_village_of_outcasts'] = CompressedTextMapper.convert("Pay 30 rupees open 2 chests Are you lucky?\nSo, Play game?\n ≥ play\n never!\n{CHOICE}") - text['game_chest_no_cash'] = CompressedTextMapper.convert("So like you need 30 rupees.\nSilly!") + text['game_chest_village_of_outcasts'] = CompressedTextMapper.convert("Pay 30 rupees, open 2 chests. Are you lucky?\nSo, Play game?\n ≥ play\n never!\n{CHOICE}") + text['game_chest_no_cash'] = CompressedTextMapper.convert("So, like, you need 30 rupees.\nSilly!") text['game_chest_not_played'] = CompressedTextMapper.convert("You want to play a game?\nTalk to me.") text['game_chest_played'] = CompressedTextMapper.convert("You've opened the chests!\nTime to go.") text['game_chest_village_of_outcasts_play'] = CompressedTextMapper.convert("Alright, brother!\nGo play!") text['shop_first_time'] = CompressedTextMapper.convert("Welcome to my shop! Select stuff with A.\nDO IT NOW!") - text['shop_already_have'] = CompressedTextMapper.convert("So like you already have one of those.") - text['shop_buy_shield'] = CompressedTextMapper.convert("Thanks! now you can block fire balls") + text['shop_already_have'] = CompressedTextMapper.convert("So, like, you already have one of those.") + text['shop_buy_shield'] = CompressedTextMapper.convert("Thanks! Now you can block fire balls.") text['shop_buy_red_potion'] = CompressedTextMapper.convert("Red goo, so good! It's like a fairy in a bottle, except you have to activate it yourself.") - text['shop_buy_arrows'] = CompressedTextMapper.convert("Arrows! cause you were too lazy to look under some pots!") - text['shop_buy_bombs'] = CompressedTextMapper.convert("You bought bombs. What couldn't find any under bushes?") - text['shop_buy_bee'] = CompressedTextMapper.convert("He's my best friend, please take care of him, and never lose him.") + text['shop_buy_arrows'] = CompressedTextMapper.convert("Arrows! Cause you were too lazy to look under some pots!") + text['shop_buy_bombs'] = CompressedTextMapper.convert("You bought bombs. What, couldn't find any under bushes?") + text['shop_buy_bee'] = CompressedTextMapper.convert("He's my best friend. Please take care of him, and never lose him.") text['shop_buy_heart'] = CompressedTextMapper.convert("You really just bought this?") text['shop_first_no_bottle_buy'] = CompressedTextMapper.convert("Why does no one own bottles? Go find one first!") text['shop_buy_no_space'] = CompressedTextMapper.convert("You are carrying to much crap, go use some of it first!") - text['ganon_fall_in'] = CompressedTextMapper.convert("You drove\naway my other\nself, Agahnim\ntwo times…\nBut, I won't\ngive you the\nTriforce.\nI'll defeat\nyou!") + text['ganon_fall_in'] = CompressedTextMapper.convert("You drove\naway my other\nself, Agahnim,\ntwo times…\nBut, I won't\ngive you the\nTriforce.\nI'll defeat\nyou!") # 170 - text['ganon_phase_3'] = CompressedTextMapper.convert("can you beat\nmy darkness\ntechnique?") + text['ganon_phase_3'] = CompressedTextMapper.convert("Can you beat\nmy darkness\ntechnique?") text['lost_woods_thief'] = CompressedTextMapper.convert("Have you seen Andy?\n\nHe was out looking for our prized Ether medallion.\nI wonder when he will be back?") - text['blinds_hut_dude'] = CompressedTextMapper.convert("I'm just some dude, this is blind's hut.") + text['blinds_hut_dude'] = CompressedTextMapper.convert("I'm just some dude. This is Blind's hut.") text['end_triforce'] = CompressedTextMapper.convert("{SPEED2}\n{MENU}\n{NOBORDER}\n G G") text['toppi_fallen'] = CompressedTextMapper.convert("Ouch!\n\nYou Jerk!") text['kakariko_tavern_fisherman'] = CompressedTextMapper.convert("Don't argue\nwith a frozen\nDeadrock.\nHe'll never\nchange his\nposition!") - text['fish_and_thief_money'] = CompressedTextMapper.convert("It's a secret to everyone") - text['theif_desert_rupee_cave'] = CompressedTextMapper.convert("So you like busted down my door, and are being a jerk by talking to me? Normally I would be angry and make you pay for it, but I bet you're just going to break all my pots and steal my 50 rupees.") - text['theif_ice_rupee_cave'] = CompressedTextMapper.convert("I'm a rupee pot farmer. One day I will take over the world with my skillz. Have you met my brother in the desert? He's way richer than I am.") + text['thief_money'] = CompressedTextMapper.convert("It's a secret to everyone.") + text['thief_desert_rupee_cave'] = CompressedTextMapper.convert("So you, like, busted down my door, and are being a jerk by talking to me? Normally I would be angry and make you pay for it, but I bet you're just going to break all my pots and steal my 50 rupees.") + text['thief_ice_rupee_cave'] = CompressedTextMapper.convert("I'm a rupee pot farmer. One day I will take over the world with my skillz. Have you met my brother in the desert? He's way richer than I am.") text['telepathic_tile_south_east_darkworld_cave'] = CompressedTextMapper.convert("~~ dev cave ~~\n no farming\n required") text['cukeman'] = CompressedTextMapper.convert("Did you hear that Veetorp beat ajneb174 in a 1 on 1 race at AGDQ?") - text['cukeman_2'] = CompressedTextMapper.convert("You found Shabadoo, huh?\nNiiiiice") + text['cukeman_2'] = CompressedTextMapper.convert("You found Shabadoo, huh?\nNiiiiice.") text['potion_shop_no_cash'] = CompressedTextMapper.convert("Yo! I'm not running a charity here.") text['kakariko_powdered_chicken'] = CompressedTextMapper.convert("Smallhacker…\n\n\nWas hiding, you found me!\n\n\nOkay, you can leave now.") - text['game_chest_south_of_kakariko'] = CompressedTextMapper.convert("Pay 20 rupees open 1 chest Are you lucky?\nSo, Play game?\n ≥ play\n never!\n{CHOICE}") + text['game_chest_south_of_kakariko'] = CompressedTextMapper.convert("Pay 20 rupees, open 1 chest. Are you lucky?\nSo, Play game?\n ≥ play\n never!\n{CHOICE}") text['game_chest_play_yes'] = CompressedTextMapper.convert("Good luck then") # 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['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['menu_start_2'] = CompressedTextMapper.convert("{MENU}\n{SPEED0}\n≥@'s house\n Sanctuary\n{CHOICE3}", False) @@ -1799,7 +1824,7 @@ class TextTable(object): text['game_digging_choice'] = CompressedTextMapper.convert("Have 80 Rupees? Want to play digging game?\n ≥yes\n no\n{CHOICE}") text['game_digging_start'] = CompressedTextMapper.convert("Okay, use the shovel with Y!") text['game_digging_no_cash'] = CompressedTextMapper.convert("Shovel rental is 80 rupees.\nI have all day") - text['game_digging_end_time'] = CompressedTextMapper.convert("Times up!\nTime for you to go.") + text['game_digging_end_time'] = CompressedTextMapper.convert("Time's up!\nTime for you to go.") text['game_digging_come_back_later'] = CompressedTextMapper.convert("Come back later, I have to bury things.") text['game_digging_no_follower'] = CompressedTextMapper.convert("Something is following you. I don't like.") text['menu_start_4'] = CompressedTextMapper.convert("{MENU}\n{SPEED0}\n≥@'s house\n Mountain Cave\n{CHOICE3}", False) @@ -1807,5 +1832,7 @@ class TextTable(object): text['ganon_fall_in_alt'] = CompressedTextMapper.convert("You think you\nare ready to\nface me?\n\nI will not die\n\nunless you\ncomplete your\ngoals. Dingus!") text['ganon_phase_3_alt'] = CompressedTextMapper.convert("Got wax in\nyour ears?\nI cannot die!") # 190 + text['sign_east_death_mountain_bridge'] = CompressedTextMapper.convert("How did you get up here?") + text['fish_money'] = CompressedTextMapper.convert("It's a secret to everyone.") text['end_pad_data'] = bytearray([0xfb]) text['terminator'] = bytearray([0xFF, 0xFF]) From b908ba8718784cfc9b0ebb705b830a400f2df176 Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Sun, 5 Aug 2018 14:59:39 -0400 Subject: [PATCH 09/16] Remove desert thief text --- Text.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Text.py b/Text.py index 6dfade65..90cbdb84 100644 --- a/Text.py +++ b/Text.py @@ -1382,7 +1382,13 @@ class TextTable(object): 'hylian_text_2', 'desert_entry_translated', 'uncle_dying_sewer', - 'telepathic_intro' + 'telepathic_intro', + 'desert_thief_sitting', + 'desert_thief_following', + 'desert_thief_question', + 'desert_thief_question_yes', + 'desert_thief_after_item_get', + 'desert_thief_reassure', ] for msg in messages_to_zero: From b259c10d2747dec35b186775419a5770d3882871 Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Sun, 16 Sep 2018 12:55:49 -0400 Subject: [PATCH 10/16] Minor bug fixes and other updates --- BaseClasses.py | 25 +++++++++++++------------ Rom.py | 6 +++++- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index cff6df90..264f4b9d 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -409,11 +409,11 @@ class CollectionState(object): return len([pritem for pritem in self.prog_items if pritem.startswith('Bottle')]) def has_hearts(self, count): - # Warning: This oncly considers items that are marked as advancement items + # Warning: This only considers items that are marked as advancement items return self.heart_count() >= count def heart_count(self): - # Warning: This oncly considers items that are marked as advancement items + # Warning: This only considers items that are marked as advancement items return ( self.item_count('Boss Heart Container') + self.item_count('Sanctuary Heart Container') @@ -424,26 +424,27 @@ class CollectionState(object): def can_lift_heavy_rocks(self): return self.has('Titans Mitts') - def can_extend_magic(self, smallmagic=8, fullrefill=False): #This reflects the total magic Link has, not the total extra he has. + def can_extend_magic(self, smallmagic=16, fullrefill=False): #This reflects the total magic Link has, not the total extra he has. basemagic = 8 if self.has('Quarter Magic'): basemagic = 32 elif self.has('Half Magic'): basemagic = 16 - if self.world.difficulty == 'hard' and not fullrefill: - basemagic = basemagic + int(basemagic * 0.5 * self.bottle_count()) - elif self.world.difficulty == 'expert' and not fullrefill: - basemagic = basemagic + int(basemagic * 0.25 * self.bottle_count()) - elif self.world.difficulty == 'insane' and not fullrefill: - basemagic = basemagic - elif self.can_buy_unlimited('Green Potion') or self.can_buy_unlimited('Red Potion'): - basemagic = basemagic + basemagic * self.bottle_count() + if self.can_buy_unlimited('Green Potion') or self.can_buy_unlimited('Blue Potion'): + if self.world.difficulty == 'hard' and not fullrefill: + basemagic = basemagic + int(basemagic * 0.5 * self.bottle_count()) + elif self.world.difficulty == 'expert' and not fullrefill: + basemagic = basemagic + int(basemagic * 0.25 * self.bottle_count()) + elif self.world.difficulty == 'insane' and not fullrefill: + basemagic = basemagic + else: + basemagic = basemagic + basemagic * self.bottle_count() return basemagic >= smallmagic def can_kill_most_things(self, enemies=5): return (self.has_blunt_weapon() or self.has('Cane of Somaria') - or (self.has('Cane of Byrna') and (enemies < 6 or self.can_extend_Magic())) + or (self.has('Cane of Byrna') and (enemies < 6 or self.can_extend_magic())) or self.can_shoot_arrows() or self.has('Fire Rod') ) diff --git a/Rom.py b/Rom.py index bc7331b2..01a472fe 100644 --- a/Rom.py +++ b/Rom.py @@ -772,7 +772,11 @@ def patch_rom(world, rom, hashtable, beep='normal', color='red', sprite=None): rom.write_byte(0x3A9A7, 0xD0) # Residual Portal: Normal (D0= Light Side, F0=Dark Side, 42 = both (Darth Vader)) rom.write_byte(0x18004D, 0x00) # Escape assist (off) - rom.write_byte(0x18004E, 0x00) # uncle Refill (off) + rom.write_byte(0x18004E, 0x00) # escape fills + rom.write_int16_to_rom(0x180183, 0) # rupee fill (for bow if rupee arrows enabled) + rom.write_bytes(0x180185, [0x00, 0x00, 0x00]) # uncle item refills + rom.write_bytes(0x180188, [0x00, 0x00, 0x00]) # zelda item refills + rom.write_bytes(0x18018B, [0x00, 0x00, 0x00]) # uncle item refills if world.goal in ['pedestal', 'triforcehunt']: From 5539143f003a9e661e99015f60d39218996d72dc Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Sat, 22 Sep 2018 22:51:54 -0400 Subject: [PATCH 11/16] v30 updates --- BaseClasses.py | 15 ++++++- Gui.py | 2 +- ItemList.py | 6 +-- Main.py | 2 +- README.md | 2 +- Regions.py | 22 ++++++----- Rom.py | 105 ++++++++++++++++++++----------------------------- Rules.py | 1 + Text.py | 17 ++++---- Utils.py | 6 +++ 10 files changed, 93 insertions(+), 85 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 264f4b9d..0a36e4c5 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -45,7 +45,7 @@ class World(object): self.aga_randomness = True self.lock_aga_door_in_escape = False self.fix_trock_doors = self.shuffle != 'vanilla' - self.save_and_quit_from_boss = False + self.save_and_quit_from_boss = True self.check_beatable_only = check_beatable_only self.fix_skullwoods_exit = self.shuffle not in ['vanilla', 'simple', 'restricted', 'dungeonssimple'] self.fix_palaceofdarkness_exit = self.shuffle not in ['vanilla', 'simple', 'restricted', 'dungeonssimple'] @@ -456,6 +456,16 @@ class CollectionState(object): return self.has('Bow') and (self.has('Silver Arrows') or self.can_buy_unlimited('Single Arrow')) return self.has('Bow') + def can_get_good_bee(self): + cave = self.world.get_region('Good Bee Cave') + return ( + self.has_bottle() and + self.has('Bug Catching Net') and + (self.has_Boots() or (self.has_sword() and self.has('Quake'))) and + cave.can_reach(self) and + (cave.is_light_world or self.has_Pearl()) + ) + def has_sword(self): return self.has('Fighter Sword') or self.has('Master Sword') or self.has('Tempered Sword') or self.has('Golden Sword') @@ -775,6 +785,7 @@ class Crystal(Item): class ShopType(Enum): Shop = 0 TakeAny = 1 + UpgradeShop = 2 class Shop(object): def __init__(self, region, room_id, type, shopkeeper_config, replaceable): @@ -804,6 +815,8 @@ class Shop(object): config |= 0x40 # ignore door id if self.type == ShopType.TakeAny: config |= 0x80 + if self.type == ShopType.UpgradeShop: + config |= 0x10 # Alt. VRAM return [0x00]+int16_as_bytes(self.room_id)+[door_id, 0x00, config, self.shopkeeper_config, 0x00] def has_unlimited(self, item): diff --git a/Gui.py b/Gui.py index 2b806179..b42d5d50 100755 --- a/Gui.py +++ b/Gui.py @@ -1114,7 +1114,7 @@ class SpriteSelector(object): try: task.update_status("Downloading official sprites list") - with urlopen('http://vt.alttp.run/sprites') as response: + with urlopen('https://alttpr.com/sprites') as response: sprites_arr = json.loads(response.read().decode("utf-8")) except Exception as e: resultmessage = "Error getting list of official sprites. Sprites not updated.\n\n%s: %s" % (type(e).__name__, e) diff --git a/ItemList.py b/ItemList.py index e25c9f07..5c89e075 100644 --- a/ItemList.py +++ b/ItemList.py @@ -20,9 +20,9 @@ basicgloves = ['Power Glove', 'Titans Mitts'] normalbottles = ['Bottle', 'Bottle (Red Potion)', 'Bottle (Green Potion)', 'Bottle (Blue Potion)', 'Bottle (Fairy)', 'Bottle (Bee)', 'Bottle (Good Bee)'] hardbottles = ['Bottle', 'Bottle (Red Potion)', 'Bottle (Green Potion)', 'Bottle (Blue Potion)', 'Bottle (Bee)', 'Bottle (Good Bee)'] -normalbaseitems = (['Silver Arrows', 'Magic Upgrade (1/2)', 'Single Arrow', 'Sanctuary Heart Container', 'Arrow Upgrade (+10)', 'Bomb Upgrade (+10)'] + +normalbaseitems = (['Silver Arrows', 'Magic Upgrade (1/2)', 'Single Arrow', 'Sanctuary Heart Container', 'Arrows (10)', 'Bombs (3)'] + ['Rupees (300)'] * 4 + ['Boss Heart Container'] * 10 + ['Piece of Heart'] * 24) -normalfirst15extra = ['Rupees (100)', 'Rupees (300)', 'Rupees (50)'] + ['Arrow Upgrade (+5)'] * 6 + ['Bomb Upgrade (+5)'] * 6 +normalfirst15extra = ['Rupees (100)', 'Rupees (300)', 'Rupees (50)'] + ['Arrows (10)'] * 6 + ['Bombs (3)'] * 6 normalsecond15extra = ['Bombs (3)'] * 9 + ['Rupees (50)'] * 2 + ['Arrows (10)'] * 2 + ['Rupee (1)'] + ['Bombs (10)'] normalthird10extra = ['Rupees (50)'] * 4 + ['Rupees (20)'] * 3 + ['Arrows (10)', 'Rupee (1)', 'Rupees (5)'] normalfourth5extra = ['Arrows (10)'] * 2 + ['Rupees (20)'] * 2 + ['Rupees (5)'] @@ -33,7 +33,7 @@ easybaseitems = (['Sanctuary Heart Container'] + ['Rupees (300)'] * 4 + ['Magic ['Boss Heart Container'] * 10 + ['Piece of Heart'] * 12) easyextra = ['Piece of Heart'] * 12 + ['Rupees (300)'] easylimitedextra = ['Boss Heart Container'] * 3 # collapsing down the 12 pieces of heart -easyfirst15extra = ['Rupees (100)', 'Arrow Upgrade (+10)', 'Bomb Upgrade (+10)'] + ['Arrow Upgrade (+5)'] * 6 + ['Bomb Upgrade (+5)'] * 6 +easyfirst15extra = ['Rupees (100)'] + ['Arrows (10)'] * 7 + ['Bombs (3)'] * 7 easysecond10extra = ['Bombs (3)'] * 7 + ['Rupee (1)', 'Rupees (50)', 'Bombs (10)'] easythird5extra = ['Rupees (50)'] * 2 + ['Bombs (3)'] * 2 + ['Arrows (10)'] easyfinal25extra = ['Rupees (50)'] * 4 + ['Rupees (20)'] * 14 + ['Rupee (1)'] + ['Arrows (10)'] * 4 + ['Rupees (5)'] * 2 diff --git a/Main.py b/Main.py index 9d230e33..e7a9cb55 100644 --- a/Main.py +++ b/Main.py @@ -6,7 +6,7 @@ import logging import random import time -from BaseClasses import World, CollectionState, Item, Region, Location, Entrance, Shop +from BaseClasses import World, CollectionState, Item, Region, Location, Shop from Regions import create_regions, mark_light_world_regions from EntranceShuffle import link_entrances from Rom import patch_rom, Sprite, LocalRom, JsonRom diff --git a/README.md b/README.md index a9b5fb3d..1443a095 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # ALttPEntranceRandomizer This is a entrance randomizer for _The Legend of Zelda: A Link to the Past_ for the SNES. -See http://vt.alttp.run for more details on the normal randomizer. +See https://alttpr.com/ for more details on the normal randomizer. # Installation diff --git a/Regions.py b/Regions.py index b68595b3..b0aee49c 100644 --- a/Regions.py +++ b/Regions.py @@ -299,6 +299,10 @@ def create_regions(world): for index, (item, price) in enumerate(default_shop_contents[region_name]): shop.add_inventory(index, item, price) + region = world.get_region('Capacity Upgrade') + shop = Shop(region, 0x0115, ShopType.UpgradeShop, 0x04, True) + shop.add_inventory(0, 'Bomb Upgrade (+5)', 100, 7) + shop.add_inventory(1, 'Arrow Upgrade (+5)', 100, 7) world.intialize_regions() def create_lw_region(name, locations=None, exits=None): @@ -358,15 +362,15 @@ def mark_light_world_regions(world): # (room_id, shopkeeper, replaceable) shop_table = { - 'Cave Shop (Dark Death Mountain)': (0x0112, 0x51, True), - 'Red Shield Shop': (0x0110, 0x51, True), - 'Dark Lake Hylia Shop': (0x010F, 0x51, True), - 'Dark World Lumberjack Shop': (0x010F, 0x51, True), - 'Village of Outcasts Shop': (0x010F, 0x51, True), - 'Dark World Potion Shop': (0x010F, 0x51, True), - 'Light World Death Mountain Shop': (0x00FF, 0x51, True), - 'Kakariko Shop': (0x011F, 0x51, True), - 'Cave Shop (Lake Hylia)': (0x0112, 0x51, True), + 'Cave Shop (Dark Death Mountain)': (0x0112, 0xC1, True), + 'Red Shield Shop': (0x0110, 0xC1, True), + 'Dark Lake Hylia Shop': (0x010F, 0xC1, True), + 'Dark World Lumberjack Shop': (0x010F, 0xC1, True), + 'Village of Outcasts Shop': (0x010F, 0xC1, True), + 'Dark World Potion Shop': (0x010F, 0xC1, True), + 'Light World Death Mountain Shop': (0x00FF, 0xA0, True), + 'Kakariko Shop': (0x011F, 0xA0, True), + 'Cave Shop (Lake Hylia)': (0x0112, 0xA0, True), 'Potion Shop': (0x0109, 0xFF, False), # Bomb Shop not currently modeled as a shop, due to special nature of items } diff --git a/Rom.py b/Rom.py index 01a472fe..1e31c4f4 100644 --- a/Rom.py +++ b/Rom.py @@ -9,7 +9,7 @@ import random from BaseClasses import ShopType from Dungeons import dungeon_music_addresses from Text import MultiByteTextMapper, text_addresses, Credits, TextTable -from Text import Uncle_texts, Ganon1_texts, PyramidFairy_texts, TavernMan_texts, Sahasrahla2_texts, Triforce_texts, Blind_texts, BombShop2_texts +from Text import Uncle_texts, Ganon1_texts, TavernMan_texts, Sahasrahla2_texts, Triforce_texts, Blind_texts, BombShop2_texts from Text import KingsReturn_texts, Sanctuary_texts, Kakariko_texts, Blacksmiths_texts, DeathMountain_texts, LostWoods_texts, WishingWell_texts, DesertPalace_texts, MountainTower_texts, LinksHouse_texts, Lumberjacks_texts, SickKid_texts, FluteBoy_texts, Zora_texts, MagicShop_texts, Sahasrahla_names from Utils import local_path, int16_as_bytes, int32_as_bytes from Items import ItemFactory @@ -42,6 +42,12 @@ class JsonRom(object): with open(file, 'w') as stream: json.dump([self.patches], stream) + def get_hash(self): + h = hashlib.md5() + h.update(json.dumps([self.patches]).encode('utf-8')) + return h.hexdigest() + + class LocalRom(object): @@ -97,6 +103,11 @@ class LocalRom(object): inv = crc ^ 0xFFFF self.write_bytes(0x7FDC, [inv & 0xFF, (inv >> 8) & 0xFF, crc & 0xFF, (crc >> 8) & 0xFF]) + def get_hash(self): + h = hashlib.md5() + h.update(self.buffer) + return h.hexdigest() + def read_rom(stream): "Reads rom into bytearray and strips off any smc header" buffer = bytearray(stream.read()) @@ -422,24 +433,6 @@ def patch_rom(world, rom, hashtable, beep='normal', color='red', sprite=None): rom.write_byte(0x180180, 0x02) # Hookshot only # Make silver arrows only usable against Ganon rom.write_byte(0x180181, 0x01) - #Make Blue Shield more expensive - rom.write_bytes(0xF73D2, [0xFC, 0xFF]) - rom.write_bytes(0xF73DA, [0x04, 0x00]) - rom.write_bytes(0xF73E2, [0x0C, 0x00]) - rom.write_byte(0xF73D6, 0x31) - rom.write_byte(0xF73DE, 0x30) - rom.write_byte(0xF73E6, 0x30) - rom.write_byte(0xF7201, 0x00) - rom.write_byte(0xF71FF, 0x64) - #Make Red Shield more expensive - rom.write_bytes(0xF73FA, [0xFC, 0xFF]) - rom.write_bytes(0xF7402, [0x04, 0x00]) - rom.write_bytes(0xF740A, [0x0C, 0x00]) - rom.write_byte(0xF73FE, 0x33) - rom.write_byte(0xF7406, 0x33) - rom.write_byte(0xF740E, 0x33) - rom.write_byte(0xF7241, 0x03) - rom.write_byte(0xF723F, 0xE7) elif world.difficulty == 'expert': # Powdered Fairies Prize rom.write_byte(0x36DD0, 0xD8) # One Heart @@ -460,24 +453,6 @@ def patch_rom(world, rom, hashtable, beep='normal', color='red', sprite=None): rom.write_byte(0x180180, 0x00) # Nothing # Make silver arrows only usable against Ganon rom.write_byte(0x180181, 0x01) - #Make Blue Shield more expensive - rom.write_bytes(0xF73D2, [0xFC, 0xFF]) - rom.write_bytes(0xF73DA, [0x04, 0x00]) - rom.write_bytes(0xF73E2, [0x0C, 0x00]) - rom.write_byte(0xF73D6, 0x3C) - rom.write_byte(0xF73DE, 0x3C) - rom.write_byte(0xF73E6, 0x3C) - rom.write_byte(0xF7201, 0x27) - rom.write_byte(0xF71FF, 0x06) - #Make Red Shield more expensive - rom.write_bytes(0xF73FA, [0xFC, 0xFF]) - rom.write_bytes(0xF7402, [0x04, 0x00]) - rom.write_bytes(0xF740A, [0x0C, 0x00]) - rom.write_byte(0xF73FE, 0x3C) - rom.write_byte(0xF7406, 0x3C) - rom.write_byte(0xF740E, 0x3C) - rom.write_byte(0xF7241, 0x27) - rom.write_byte(0xF723F, 0x06) elif world.difficulty == 'insane': # Powdered Fairies Prize rom.write_byte(0x36DD0, 0x79) # Bees @@ -498,24 +473,6 @@ def patch_rom(world, rom, hashtable, beep='normal', color='red', sprite=None): rom.write_byte(0x180180, 0x00) # Nothing # Make silver arrows only usable against Ganon rom.write_byte(0x180181, 0x01) - #Make Blue Shield more expensive - rom.write_bytes(0xF73D2, [0xFC, 0xFF]) - rom.write_bytes(0xF73DA, [0x04, 0x00]) - rom.write_bytes(0xF73E2, [0x0C, 0x00]) - rom.write_byte(0xF73D6, 0x3C) - rom.write_byte(0xF73DE, 0x3C) - rom.write_byte(0xF73E6, 0x3C) - rom.write_byte(0xF7201, 0x27) - rom.write_byte(0xF71FF, 0x10) - #Make Red Shield more expensive - rom.write_bytes(0xF73FA, [0xFC, 0xFF]) - rom.write_bytes(0xF7402, [0x04, 0x00]) - rom.write_bytes(0xF740A, [0x0C, 0x00]) - rom.write_byte(0xF73FE, 0x3C) - rom.write_byte(0xF7406, 0x3C) - rom.write_byte(0xF740E, 0x3C) - rom.write_byte(0xF7241, 0x27) - rom.write_byte(0xF723F, 0x10) else: # Powdered Fairies Prize rom.write_byte(0x36DD0, 0xE3) # fairy @@ -543,7 +500,7 @@ def patch_rom(world, rom, hashtable, beep='normal', color='red', sprite=None): if world.difficulty in ['easy']: rom.write_byte(0x180182, 0x03) # auto equip silvers on pickup and at ganon - elif world.retro and world.difficulty in ['hard','expert', 'insane']: #FIXME: this is temporary for v29 baserom + elif world.retro and world.difficulty in ['hard', 'expert', 'insane']: #FIXME: this is temporary for v29 baserom (perhaps no so temporary?) rom.write_byte(0x180182, 0x03) # auto equip silvers on pickup and at ganon else: rom.write_byte(0x180182, 0x01) # auto equip silvers on pickup @@ -574,11 +531,17 @@ def patch_rom(world, rom, hashtable, beep='normal', color='red', sprite=None): 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE2, 0xE2, 0xE2, 0xE2, 0xE2, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3] + if world.difficulty in ['hard', 'expert', 'insane']: + prize_replacements = {0xE0: 0xDF, # Fairy -> heart + 0xE3: 0xD8} # Big magic -> small magic + prizes = [prize_replacements.get(prize, prize) for prize in prizes] + dig_prizes = [prize_replacements.get(prize, prize) for prize in dig_prizes] + if world.retro: prize_replacements = {0xE1: 0xDA, #5 Arrows -> Blue Rupee 0xE2: 0xDB} #10 Arrows -> Red Rupee - prizes = [prize_replacements.get(prize,prize) for prize in prizes] - dig_prizes = [prize_replacements.get(prize,prize) for prize in dig_prizes] + prizes = [prize_replacements.get(prize, prize) for prize in prizes] + dig_prizes = [prize_replacements.get(prize, prize) for prize in dig_prizes] rom.write_bytes(0x180100, dig_prizes) random.shuffle(prizes) @@ -640,12 +603,16 @@ def patch_rom(world, rom, hashtable, beep='normal', color='red', sprite=None): # original_item, limit, replacement_item, filler 0x12, 0x01, 0x35, 0xFF, # lamp -> 5 rupees 0x58, 0x01, 0x43, 0xFF, # silver arrows -> 1 arrow + 0x51, 0x06, 0x52, 0xFF, # 6 +5 bomb upgrades -> +10 bomb upgrade + 0x53, 0x06, 0x54, 0xFF, # 6 +5 arrow upgrades -> +10 arrow upgrade 0xFF, 0xFF, 0xFF, 0xFF, # end of table sentinel ]) else: rom.write_bytes(0x184000, [ # original_item, limit, replacement_item, filler 0x12, 0x01, 0x35, 0xFF, # lamp -> 5 rupees + 0x51, 0x06, 0x52, 0xFF, # 6 +5 bomb upgrades -> +10 bomb upgrade + 0x53, 0x06, 0x54, 0xFF, # 6 +5 arrow upgrades -> +10 arrow upgrade 0xFF, 0xFF, 0xFF, 0xFF, # end of table sentinel ]) @@ -676,6 +643,10 @@ def patch_rom(world, rom, hashtable, beep='normal', color='red', sprite=None): rom.write_byte(0x348DB, 0x3A) # Red Boomerang becomes Red Boomerang rom.write_byte(0x348EB, 0x05) # Blue Shield becomes Blue Shield + # Remove Statues for upgrade fairy + rom.write_bytes(0x01F810, [0x1A, 0x1E, 0x01, 0x1A, 0x1E, 0x01]) + + rom.write_byte(0x180029, 0x01) # Smithy quick item give # set swordless mode settings @@ -740,7 +711,6 @@ def patch_rom(world, rom, hashtable, beep='normal', color='red', sprite=None): rom.write_byte(0x180211, 0x06) #Game type, we set the Entrance and item randomization flags # assorted fixes - rom.write_byte(0x180030, 0x00) # Disable SRAM trace rom.write_byte(0x1800A2, 0x01) # remain in real dark world when dying in dark word dungion before killing aga1 rom.write_byte(0x180169, 0x01 if world.lock_aga_door_in_escape else 0x00) # Lock or unlock aga tower door during escape sequence. rom.write_byte(0x180171, 0x01 if world.ganon_at_pyramid else 0x00) # Enable respawning on pyramid after ganon death @@ -766,11 +736,14 @@ def patch_rom(world, rom, hashtable, beep='normal', color='red', sprite=None): rom.write_byte(0x18302D, 0x18) # starting current health rom.write_byte(0x183039, 0x68) # starting abilities, bit array rom.write_byte(0x18004A, 0x00) # Inverted mode (off) + rom.write_byte(0x18005D, 0x00) # Hammer always breaks barrier rom.write_byte(0x2AF79, 0xD0) # vortexes: Normal (D0=light to dark, F0=dark to light, 42 = both) rom.write_byte(0x3A943, 0xD0) # Mirror: Normal (D0=Dark to Light, F0=light to dark, 42 = both) rom.write_byte(0x3A96D, 0xF0) # Residual Portal: Normal (F0= Light Side, D0=Dark Side, 42 = both (Darth Vader)) rom.write_byte(0x3A9A7, 0xD0) # Residual Portal: Normal (D0= Light Side, F0=Dark Side, 42 = both (Darth Vader)) + rom.write_bytes(0x180080, [50, 50, 70, 70]) # values to fill for Capacity Upgrades (Bomb5, Bomb10, Arrow5, Arrow10) + rom.write_byte(0x18004D, 0x00) # Escape assist (off) rom.write_byte(0x18004E, 0x00) # escape fills rom.write_int16_to_rom(0x180183, 0) # rupee fill (for bow if rupee arrows enabled) @@ -815,6 +788,7 @@ def patch_rom(world, rom, hashtable, beep='normal', color='red', sprite=None): rom.write_byte(0x180020, digging_game_rng) rom.write_byte(0xEFD95, digging_game_rng) rom.write_byte(0x1800A3, 0x01) # enable correct world setting behaviour after agahnim kills + rom.write_byte(0x1800A4, 0x01 if world.logic != 'nologic' else 0x00) # enable POD EG fix rom.write_byte(0x180042, 0x01 if world.save_and_quit_from_boss else 0x00) # Allow Save and Quit after boss kill # remove shield from uncle @@ -859,8 +833,16 @@ def patch_rom(world, rom, hashtable, beep='normal', color='red', sprite=None): # 21 bytes rom.write_bytes(0x7FC0, bytearray('ER_060_%09d\0' % world.seed, 'utf8') + world.option_identifier.to_bytes(4, 'big')) - # store hash table for main menu hash - rom.write_bytes(0x187F00, hashtable) + # Write title screen Code + hashint = int(rom.get_hash(), 16) + code = [ + (hashint >> 20) & 0x1F, + (hashint >> 15) & 0x1F, + (hashint >> 10) & 0x1F, + (hashint >> 5) & 0x1F, + hashint & 0x1F, + ] + rom.write_bytes(0x180215, code) apply_rom_settings(rom, beep, color, world.quickswap, world.fastmenu, world.disable_music, sprite) @@ -1047,7 +1029,6 @@ def write_strings(rom, world): tt['uncle_leaving_text'] = Uncle_texts[random.randint(0, len(Uncle_texts) - 1)] tt['end_triforce'] = "{NOBORDER}\n" + Triforce_texts[random.randint(0, len(Triforce_texts) - 1)] tt['bomb_shop_big_bomb'] = BombShop2_texts[random.randint(0, len(BombShop2_texts) - 1)] - tt['pond_will_upgrade'] = PyramidFairy_texts[random.randint(0, len(PyramidFairy_texts) - 1)] # this is what shows after getting the green pendant item in rando tt['sahasrahla_quest_have_master_sword'] = Sahasrahla2_texts[random.randint(0, len(Sahasrahla2_texts) - 1)] diff --git a/Rules.py b/Rules.py index 6660842c..48e0040e 100644 --- a/Rules.py +++ b/Rules.py @@ -294,6 +294,7 @@ def global_rules(world): set_rule(world.get_entrance('Ice Palace Entrance Room'), lambda state: state.has('Fire Rod') or (state.has('Bombos') and state.has_sword())) set_rule(world.get_location('Ice Palace - Big Chest'), lambda state: state.has('Big Key (Ice Palace)')) set_rule(world.get_entrance('Ice Palace (Kholdstare)'), lambda state: state.can_lift_rocks() and state.has('Hammer') and state.has('Big Key (Ice Palace)') and (state.has_key('Small Key (Ice Palace)', 2) or (state.has('Cane of Somaria') and state.has_key('Small Key (Ice Palace)', 1)))) + # TODO: investigate change from VT. Changed to hookshot or 2 keys (no checking for big key in specific chests) set_rule(world.get_entrance('Ice Palace (East)'), lambda state: (state.has('Hookshot') or (item_in_locations(state, 'Big Key (Ice Palace)', ['Ice Palace - Spike Room', 'Ice Palace - Big Key Chest', 'Ice Palace - Map Chest']) and state.has_key('Small Key (Ice Palace)'))) and (state.world.can_take_damage or state.has('Hookshot') or state.has('Cape') or state.has('Cane of Byrna'))) set_rule(world.get_entrance('Ice Palace (East Top)'), lambda state: state.can_lift_rocks() and state.has('Hammer')) for location in ['Ice Palace - Big Chest', 'Ice Palace - Kholdstare']: diff --git a/Text.py b/Text.py index 90cbdb84..cd79abc4 100644 --- a/Text.py +++ b/Text.py @@ -108,7 +108,6 @@ Triforce_texts = [ " Pick us up\n before we\n get dizzy!", ] BombShop2_texts = ['Bombs!\nBombs!\nBiggest!\nBestest!\nGreatest!\nBoomest!'] -PyramidFairy_texts = ['May I talk to you about our lord and savior, Ganon?'] Sahasrahla2_texts = ['You already got my item, idiot.', 'Why are you still talking to me?', 'This text won\'t change.', 'Have you met my brother, Hasarahshla?'] Blind_texts = [ "I hate insect\npuns, they\nreally bug me.", @@ -126,7 +125,7 @@ Blind_texts = [ "When you're a\nbaker, don't\nloaf around.", "Mire requires\nEther Quake,\nor Bombos.", "Broken pencils\nare pointless.", - "The food they\nserve guards\nlasts sentries.", + "The food they\nserve guards\nlasts sentries", "Being crushed\nby big objects\nis depressing.", "A tap dancer's\nroutine runs\nhot and cold.", "A weeknight is\na tiny\nnobleman.", @@ -144,6 +143,7 @@ Blind_texts = [ "Sausage is\nthe wurst.", "I tried to\ncatch fog,\nbut I mist.", "Winter is a\ngreat time\nto chill.", + "Do you think\nthe Ice Rod\nis cool?", ] Ganon1_texts = [ "Start your day\nsmiling with a\ndelicious\nwhole grain\nbreakfast\ncreated for\nyour\nincredible\ninsides.", @@ -246,7 +246,7 @@ Sahasrahla_names = [ "sandstorms", "sandwiched", "sauerkraut", "schipperke", "schismatic", "schizocarp", "schmalzier", "schmeering", "schmoosing", "shibboleth", "shovelnose", "sahananana", "sarararara", "salamander", "sharshalah", "shahabadoo", "sassafrass", "saddlebags", "sandalwood", "shagadelic", "sandcastle", - "saltpeters", "shabbiness", "shlrshlrsh", + "saltpeters", "shabbiness", "shlrshlrsh", "sassyralph", "sallyacorn", ] Kakariko_texts = ["{}'s homecoming"] @@ -1300,6 +1300,9 @@ class TextTable(object): 'item_get_14_heart', 'item_get_24_heart', 'item_get_34_heart', + 'pond_item_test', + 'pond_will_upgrade', + # misc 'agahnim_final_meeting', 'agahnim_hide_and_seek_found', @@ -1461,7 +1464,7 @@ class TextTable(object): text['sahasrahla_have_courage'] = CompressedTextMapper.convert("{BOTTOM}\nLook, you have the green pendant! I'll give you something. Go kill the other two bosses for more pendant fun!") text['sahasrahla_found'] = CompressedTextMapper.convert("{BOTTOM}\nYup!\n\nI'm the old man you are looking for. I'll keep it short and sweet: Go into that dungeon, then bring me the green pendant and talk to me again.") text['sign_rain_north_of_links_house'] = CompressedTextMapper.convert("↑ Dying Uncle\n This way…") - text['sign_north_of_links_house'] = CompressedTextMapper.convert("> Randomizer Don't read me, go beat Ganon!") + text['sign_north_of_links_house'] = CompressedTextMapper.convert("> Randomizer") #"> Randomizer The telepathic tiles can have hints!" text['sign_path_to_death_mountain'] = CompressedTextMapper.convert("Cave to lost, old man.\nGood luck.") text['sign_lost_woods'] = CompressedTextMapper.convert("\n↑ Lost Woods") text['sign_zoras'] = CompressedTextMapper.convert("Danger!\nDeep water!\nZoras!") @@ -1596,11 +1599,11 @@ class TextTable(object): text['mastersword_pedestal_translated'] = CompressedTextMapper.convert("A test of strength: If you have 3 pendants, I'm yours.") text['telepathic_tile_spectacle_rock'] = CompressedTextMapper.convert("{NOBORDER}\n{NOBORDER}\nUse the Mirror, or the Hookshot and Hammer, to get to Tower of Hera!") text['telepathic_tile_swamp_entrance'] = CompressedTextMapper.convert("{NOBORDER}\nDrain the floodgate to raise the water here!") - text['telepathic_tile_thieves_town_upstairs'] = CompressedTextMapper.convert("Secondary tournament winners\n{HARP}\n ~~~2017~~~\nA: Zaen") + text['telepathic_tile_thieves_town_upstairs'] = CompressedTextMapper.convert("{NOBORDER}\nBlind hate's bright light.") text['telepathic_tile_misery_mire'] = CompressedTextMapper.convert("{NOBORDER}\nLighting 4 torches will open your way forward!") text['hylian_text_2'] = CompressedTextMapper.convert("%%^= %==%\n ^ =%^=\n==%= ^^%^") text['desert_entry_translated'] = CompressedTextMapper.convert("Kneel before this stone, and magic will move around you.") - text['telepathic_tile_under_ganon'] = CompressedTextMapper.convert("{NOBORDER}\nOnly arrows will finish off a blue Ganon, or really well-timed spins in phase 4.") + text['telepathic_tile_under_ganon'] = CompressedTextMapper.convert("Secondary tournament winners\n{HARP}\n ~~~2017~~~\nA: Zaen") text['telepathic_tile_palace_of_darkness'] = CompressedTextMapper.convert("{NOBORDER}\nThis is a funny looking Enemizer") # C0 text['telepathic_tile_desert_bonk_torch_room'] = CompressedTextMapper.convert("{NOBORDER}\nThings can be knocked down, if you fancy yourself a dashing dude.") @@ -1610,7 +1613,7 @@ class TextTable(object): text['telepathic_tile_ice_entrace'] = CompressedTextMapper.convert("{NOBORDER}\nYou can use Fire Rod or Bombos to pass.") text['telepathic_tile_ice_stalfos_knights_room'] = CompressedTextMapper.convert("{NOBORDER}\nKnock 'em down and then bomb them dead.") text['telepathic_tile_tower_of_hera_entrance'] = CompressedTextMapper.convert("{NOBORDER}\nThis is a bad place, with a guy who will make you fall…\n\n\na lot.") - text['houlahan_room'] = CompressedTextMapper.convert("Randomizer tournament winners\n{HARP}\n ~~~2017~~~\nA: ajneb174\nS: ajneb174") + text['houlihan_room'] = CompressedTextMapper.convert("Randomizer tournament winners\n{HARP}\n ~~~2018~~~\nS: Andy\n\n ~~~2017~~~\nA: ajneb174\nS: ajneb174") text['caught_a_bee'] = CompressedTextMapper.convert("Caught a Bee\n ≥ keep\n release\n{CHOICE}") text['caught_a_fairy'] = CompressedTextMapper.convert("Caught Fairy!\n ≥ keep\n release\n{CHOICE}") text['no_empty_bottles'] = CompressedTextMapper.convert("Whoa, bucko!\nNo empty bottles.") diff --git a/Utils.py b/Utils.py index 2845e92d..0063ed4a 100644 --- a/Utils.py +++ b/Utils.py @@ -10,6 +10,12 @@ def int32_as_bytes(value): value = value & 0xFFFFFFFF return [value & 0xFF, (value >> 8) & 0xFF, (value >> 16) & 0xFF, (value >> 24) & 0xFF] +def pc_to_snes(value): + return ((value<<1) & 0x7F0000)|(value & 0x7FFF)|0x8000 + +def snes_to_pc(value): + return ((value & 0x7F0000)>>1)|(value & 0x7FFF) + def is_bundled(): return getattr(sys, 'frozen', False) From b90a381e9bb12c800d1bb17f1cde916f802f9605 Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Wed, 26 Sep 2018 13:12:20 -0400 Subject: [PATCH 12/16] Basic impl. of boss shuffle for VT site enemizer integration --- BaseClasses.py | 51 ++++++++++- Bosses.py | 196 ++++++++++++++++++++++++++++++++++++++++++ Dungeons.py | 35 ++++---- EntranceRandomizer.py | 2 + ItemList.py | 2 + Items.py | 4 +- Main.py | 9 +- Rules.py | 61 ++++++++----- 8 files changed, 316 insertions(+), 44 deletions(-) create mode 100644 Bosses.py diff --git a/BaseClasses.py b/BaseClasses.py index 0a36e4c5..423ad925 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -7,7 +7,7 @@ from Utils import int16_as_bytes class World(object): - def __init__(self, shuffle, logic, mode, difficulty, timer, progressive, goal, algorithm, place_dungeon_items, check_beatable_only, shuffle_ganon, quickswap, fastmenu, disable_music, keysanity, retro, custom, customitemarray): + def __init__(self, shuffle, logic, mode, difficulty, timer, progressive, goal, algorithm, place_dungeon_items, check_beatable_only, shuffle_ganon, quickswap, fastmenu, disable_music, keysanity, retro, custom, customitemarray, boss_shuffle): self.shuffle = shuffle self.logic = logic self.mode = mode @@ -63,6 +63,7 @@ class World(object): self.can_take_damage = True self.difficulty_requirements = None self.fix_fake_world = True + self.boss_shuffle = boss_shuffle self.dynamic_regions = [] self.dynamic_locations = [] self.spoiler = Spoiler(self) @@ -110,6 +111,15 @@ class World(object): return r_location raise RuntimeError('No such location %s' % location) + def get_dungeon(self, dungeonname): + if isinstance(dungeonname, Dungeon): + return dungeonname + + for dungeon in self.dungeons: + if dungeon.name == dungeonname: + return dungeon + raise RuntimeError('No such dungeon %s' % dungeonname) + def get_all_state(self, keys=False): ret = CollectionState(self) @@ -687,6 +697,15 @@ class Dungeon(object): self.big_key = big_key self.small_keys = small_keys self.dungeon_items = dungeon_items + self.bosses = dict() + + @property + def boss(self): + return self.bosses.get(None, None) + + @boss.setter + def boss(self, value): + self.bosses[None] = value @property def keys(self): @@ -705,9 +724,16 @@ class Dungeon(object): def __unicode__(self): return '%s' % self.name +class Boss(object): + def __init__(self, name, enemizer_name, defeat_rule): + self.name = name + self.enemizer_name = enemizer_name + self.defeat_rule = defeat_rule + + def can_defeat(self, state): + return self.defeat_rule(state) class Location(object): - def __init__(self, name='', address=None, crystal=False, hint_text=None, parent=None): self.name = name self.parent_region = parent @@ -854,6 +880,7 @@ class Spoiler(object): self.paths = {} self.metadata = {} self.shops = [] + self.bosses = OrderedDict() def set_entrance(self, entrance, exit, direction): self.entrances[(entrance, direction)] = OrderedDict([('entrance', entrance), ('exit', exit), ('direction', direction)]) @@ -898,6 +925,23 @@ class Spoiler(object): shopdata['item_{}'.format(index)] = "{} — {}".format(item['item'], item['price']) if item['price'] else item['item'] self.shops.append(shopdata) + self.bosses["Eastern Palace"] = self.world.get_dungeon("Eastern Palace").boss.name + self.bosses["Desert Palace"] = self.world.get_dungeon("Desert Palace").boss.name + self.bosses["Tower Of Hera"] = self.world.get_dungeon("Tower of Hera").boss.name + self.bosses["Hyrule Castle"] = "Agahnim" + self.bosses["Palace Of Darkness"] = self.world.get_dungeon("Palace of Darkness").boss.name + self.bosses["Swamp Palace"] = self.world.get_dungeon("Swamp Palace").boss.name + self.bosses["Skull Woods"] = self.world.get_dungeon("Skull Woods").boss.name + self.bosses["Thieves Town"] = self.world.get_dungeon("Thieves Town").boss.name + self.bosses["Ice Palace"] = self.world.get_dungeon("Ice Palace").boss.name + self.bosses["Misery Mire"] = self.world.get_dungeon("Misery Mire").boss.name + self.bosses["Turtle Rock"] = self.world.get_dungeon("Turtle Rock").boss.name + self.bosses["Ganons Tower Basement"] = self.world.get_dungeon('Ganons Tower').bosses['bottom'].name + self.bosses["Ganons Tower Middle"] = self.world.get_dungeon('Ganons Tower').bosses['middle'].name + self.bosses["Ganons Tower Top"] = self.world.get_dungeon('Ganons Tower').bosses['top'].name + self.bosses["Ganons Tower"] = "Agahnim 2" + self.bosses["Ganon"] = "Ganon" + from Main import __version__ as ERVersion self.metadata = {'version': ERVersion, @@ -927,7 +971,10 @@ class Spoiler(object): out['Shops'] = self.shops out['playthrough'] = self.playthrough out['paths'] = self.paths + if(self.world.boss_shuffle != 'none'): + out['bosses'] = self.bosses out['meta'] = self.metadata + return json.dumps(out) def to_file(self, filename): diff --git a/Bosses.py b/Bosses.py new file mode 100644 index 00000000..20c7aabf --- /dev/null +++ b/Bosses.py @@ -0,0 +1,196 @@ +import logging +import random + +from BaseClasses import Boss +from Fill import FillError + +def BossFactory(boss): + if boss is None: + return None + if boss in boss_table: + enemizer_name, defeat_rule = boss_table[boss] + return Boss(boss, enemizer_name, defeat_rule) + + logging.getLogger('').error('Unknown Boss: %s', boss) + return None + +def ArmosKnightsDefeatRule(state): + # Magic amounts are probably a bit overkill + return ( + state.has_blunt_weapon() or + (state.has('Cane of Somaria') and state.can_extend_magic(10)) or + (state.has('Cane of Byrna') and state.can_extend_magic(16)) or + (state.has('Ice Rod') and state.can_extend_magic(32)) or + (state.has('Fire Rod') and state.can_extend_magic(32)) or + state.has('Blue Boomerang') or + state.has('Red Boomerang')) + +def LanmolasDefeatRule(state): + # TODO: Allow the canes here? + return ( + state.has_blunt_weapon() or + state.has('Fire Rod') or + state.has('Ice Rod') or + state.can_shoot_arrows()) + +def MoldormDefeatRule(state): + return state.has_blunt_weapon() + +def HelmasaurKingDefeatRule(state): + return state.has_blunt_weapon() or state.can_shoot_arrows() + +def ArrghusDefeatRule(state): + if not state.has('Hookshot'): + return False + # TODO: ideally we would have a check for bow and silvers, which combined with the + # hookshot is enough. This is not coded yet because the silvers that only work in pyramid feature + # makes this complicated + if state.has_blunt_weapon(): + return True + + return ((state.has('Fire Rod') and (state.can_shoot_arrows() or state.can_extend_magic(12))) or #assuming mostly gitting two puff with one shot + (state.has('Ice Rod') and (state.can_shoot_arrows() or state.can_extend_magic(16)))) + + +def MothulaDefeatRule(state): + return ( + state.has_blunt_weapon() or + (state.has('Fire Rod') and state.can_extend_magic(10)) or + # TODO: Not sure how much (if any) extend magic is needed for these two, since they only apply + # to non-vanilla locations, so are harder to test, so sticking with what VT has for now: + (state.has('Cane of Somaria') and state.can_extend_magic(16)) or + (state.has('Cane of Byrna') and state.can_extend_magic(16)) or + state.can_get_good_bee() + ) + +def BlindDefeatRule(state): + return state.has_blunt_weapon() or state.has('Cane of Somaria') or state.has('Cane of Byrna') + +def KholdstareDefeatRule(state): + return ( + ( + state.has('Fire Rod') or + ( + state.has('Bombos') and + # FIXME: the following only actually works for the vanilla location for swordless mode + (state.has_sword() or state.world.mode == 'swordless') + ) + ) and + ( + state.has_blunt_weapon() or + (state.has('Fire Rod') and state.can_extend_magic(20)) or + # FIXME: this actually only works for the vanilla location for swordless mode + ( + state.has('Fire Rod') and + state.has('Bombos') and + state.world.mode == 'swordless' and + state.can_extend_magic(16) + ) + ) + ) + +def VitreousDefeatRule(state): + return state.can_shoot_arrows() or state.has_blunt_weapon() + +def TrinexxDefeatRule(state): + if not (state.has('Fire Rod') and state.has('Ice Rod')): + return False + return state.has('Hammer') or state.has_beam_sword() or (state.has_sword() and state.can_extend_magic(32)) + +def AgahnimDefeatRule(state): + return state.has_sword() or state.has('Hammer') or state.has('Bug Catching Net') + +boss_table = { + 'Armos Knights': ('Armos', ArmosKnightsDefeatRule), + 'Lanmolas': ('Lanmola', LanmolasDefeatRule), + 'Moldorm': ('Moldorm', MoldormDefeatRule), + 'Helmasaur King': ('Helmasaur', HelmasaurKingDefeatRule), + 'Arrghus': ('Arrghus', ArrghusDefeatRule), + 'Mothula': ('Mothula', MothulaDefeatRule), + 'Blind': ('Blind', BlindDefeatRule), + 'Kholdstare': ('Kholdstare', KholdstareDefeatRule), + 'Vitreous': ('Vitreous', VitreousDefeatRule), + 'Trinexx': ('Trinexx', TrinexxDefeatRule), + 'Agahnim': ('Agahnim', AgahnimDefeatRule), + 'Agahnim2': ('Agahnim2', AgahnimDefeatRule) +} + +def can_place_boss(world, boss, dungeon_name, level=None): + if world.mode in ['swordless'] and boss == 'Kholdstare' and dungeon_name != 'Ice Palace': + return False + + if dungeon_name == 'Ganons Tower' and level == 'top': + if boss in ["Armos Knights", "Arrghus", "Blind", "Trinexx", "Lanmolas"]: + return False + + if dungeon_name == 'Ganons Tower' and level == 'middle': + if boss in ["Blind"]: + return False + + if dungeon_name == 'Tower of Hera' and boss in ["Armos Knights", "Arrghus", "Blind", "Trinexx", "Lanmolas"]: + return False + + if dungeon_name == 'Skull Woods' and boss in ["Trinexx"]: + return False + + if boss in ["Agahnim", "Agahnim2", "Ganon"]: + return False + return True + +def place_bosses(world): + if world.boss_shuffle == 'none': + return + # Most to least restrictive order + boss_locations = [ + ['Ganons Tower', 'top'], + ['Tower of Hera', None], + ['Skull Woods', None], + ['Ganons Tower', 'middle'], + ['Eastern Palace', None], + ['Desert Palace', None], + ['Palace of Darkness', None], + ['Swamp Palace', None], + ['Thieves Town', None], + ['Ice Palace', None], + ['Misery Mire', None], + ['Turtle Rock', None], + ['Ganons Tower', 'bottom'], + ] + all_bosses = sorted(boss_table.keys()) #s orted to be deterministic on older pythons + placeable_bosses = [boss for boss in all_bosses if boss not in ['Agahnim', 'Agahnim2', 'Ganon']] + + if world.boss_shuffle in ["basic", "normal"]: + # temporary hack for swordless kholdstare: + if world.mode == 'swordless': + world.get_dungeon('Ice Palace').boss = BossFactory('Kholdstare') + logging.getLogger('').debug('Placing boss Kholdstare at Ice Palace') + boss_locations.remove(['Ice Palace', None]) + placeable_bosses.remove('Kholdstare') + + if world.boss_shuffle == "basic": # vanilla bosses shuffled + bosses = placeable_bosses + ['Armos Knights', 'Lanmolas', 'Moldorm'] + else: # all bosses present, the three duplicates chosen at random + bosses = all_bosses + [random.choice(placeable_bosses) for _ in range(3)] + + logging.getLogger('').debug('Bosses chosen %s', bosses) + + random.shuffle(bosses) + for [loc, level] in boss_locations: + loc_text = loc + (' ('+level+')' if level else '') + boss = next((b for b in bosses if can_place_boss(world, b, loc, level)), None) + if not boss: + raise FillError('Could not place boss for location %s' % loc_text) + bosses.remove(boss) + + logging.getLogger('').debug('Placing boss %s at %s', boss, loc_text) + world.get_dungeon(loc).bosses[level] = BossFactory(boss) + elif world.boss_shuffle == "chaos": #all bosses chosen at random + for [loc, level] in boss_locations: + loc_text = loc + (' ('+level+')' if level else '') + try: + boss = random.choice([b for b in placeable_bosses if can_place_boss(world, b, loc, level)]) + except IndexError: + raise FillError('Could not place boss for location %s' % loc_text) + + logging.getLogger('').debug('Placing boss %s at %s', boss, loc_text) + world.get_dungeon(loc).bosses[level] = BossFactory(boss) diff --git a/Dungeons.py b/Dungeons.py index 747e20be..e477a223 100644 --- a/Dungeons.py +++ b/Dungeons.py @@ -1,34 +1,39 @@ import random from BaseClasses import Dungeon +from Bosses import BossFactory from Fill import fill_restrictive from Items import ItemFactory def create_dungeons(world): - def make_dungeon(name, dungeon_regions, big_key, small_keys, dungeon_items): + def make_dungeon(name, default_boss, dungeon_regions, big_key, small_keys, dungeon_items): dungeon = Dungeon(name, dungeon_regions, big_key, [] if world.retro else small_keys, dungeon_items) + dungeon.boss = BossFactory(default_boss) for region in dungeon.regions: world.get_region(region).dungeon = dungeon return dungeon - ES = make_dungeon('Hyrule Castle', ['Hyrule Castle', 'Sewers', 'Sewer Drop', 'Sewers (Dark)', 'Sanctuary'], None, [ItemFactory('Small Key (Escape)')], [ItemFactory('Map (Escape)')]) - EP = make_dungeon('Eastern Palace', ['Eastern Palace'], ItemFactory('Big Key (Eastern Palace)'), [], ItemFactory(['Map (Eastern Palace)', 'Compass (Eastern Palace)'])) - DP = make_dungeon('Desert Palace', ['Desert Palace North', 'Desert Palace Main (Inner)', 'Desert Palace Main (Outer)', 'Desert Palace East'], ItemFactory('Big Key (Desert Palace)'), [ItemFactory('Small Key (Desert Palace)')], ItemFactory(['Map (Desert Palace)', 'Compass (Desert Palace)'])) - ToH = make_dungeon('Tower of Hera', ['Tower of Hera (Bottom)', 'Tower of Hera (Basement)', 'Tower of Hera (Top)'], ItemFactory('Big Key (Tower of Hera)'), [ItemFactory('Small Key (Tower of Hera)')], ItemFactory(['Map (Tower of Hera)', 'Compass (Tower of Hera)'])) - AT = make_dungeon('Agahnims Tower', ['Agahnims Tower', 'Agahnim 1'], None, ItemFactory(['Small Key (Agahnims Tower)'] * 2), []) - PoD = make_dungeon('Palace of Darkness', ['Palace of Darkness (Entrance)', 'Palace of Darkness (Center)', 'Palace of Darkness (Big Key Chest)', 'Palace of Darkness (Bonk Section)', 'Palace of Darkness (North)', 'Palace of Darkness (Maze)', 'Palace of Darkness (Harmless Hellway)', 'Palace of Darkness (Final Section)'], ItemFactory('Big Key (Palace of Darkness)'), ItemFactory(['Small Key (Palace of Darkness)'] * 6), ItemFactory(['Map (Palace of Darkness)', 'Compass (Palace of Darkness)'])) - TT = make_dungeon('Thieves Town', ['Thieves Town (Entrance)', 'Thieves Town (Deep)', 'Blind Fight'], ItemFactory('Big Key (Thieves Town)'), [ItemFactory('Small Key (Thieves Town)')], ItemFactory(['Map (Thieves Town)', 'Compass (Thieves Town)'])) - SW = make_dungeon('Skull Woods', ['Skull Woods Final Section (Entrance)', 'Skull Woods First Section', 'Skull Woods Second Section', 'Skull Woods Second Section (Drop)', 'Skull Woods Final Section (Mothula)', 'Skull Woods First Section (Right)', 'Skull Woods First Section (Left)', 'Skull Woods First Section (Top)'], ItemFactory('Big Key (Skull Woods)'), ItemFactory(['Small Key (Skull Woods)'] * 2), ItemFactory(['Map (Skull Woods)', 'Compass (Skull Woods)'])) - SP = make_dungeon('Swamp Palace', ['Swamp Palace (Entrance)', 'Swamp Palace (First Room)', 'Swamp Palace (Starting Area)', 'Swamp Palace (Center)', 'Swamp Palace (North)'], ItemFactory('Big Key (Swamp Palace)'), [ItemFactory('Small Key (Swamp Palace)')], ItemFactory(['Map (Swamp Palace)', 'Compass (Swamp Palace)'])) - IP = make_dungeon('Ice Palace', ['Ice Palace (Entrance)', 'Ice Palace (Main)', 'Ice Palace (East)', 'Ice Palace (East Top)', 'Ice Palace (Kholdstare)'], ItemFactory('Big Key (Ice Palace)'), ItemFactory(['Small Key (Ice Palace)'] * 2), ItemFactory(['Map (Ice Palace)', 'Compass (Ice Palace)'])) - MM = make_dungeon('Misery Mire', ['Misery Mire (Entrance)', 'Misery Mire (Main)', 'Misery Mire (West)', 'Misery Mire (Final Area)', 'Misery Mire (Vitreous)'], ItemFactory('Big Key (Misery Mire)'), ItemFactory(['Small Key (Misery Mire)'] * 3), ItemFactory(['Map (Misery Mire)', 'Compass (Misery Mire)'])) - TR = make_dungeon('Turtle Rock', ['Turtle Rock (Entrance)', 'Turtle Rock (First Section)', 'Turtle Rock (Chain Chomp Room)', 'Turtle Rock (Second Section)', 'Turtle Rock (Big Chest)', 'Turtle Rock (Crystaroller Room)', 'Turtle Rock (Dark Room)', 'Turtle Rock (Eye Bridge)', 'Turtle Rock (Trinexx)'], ItemFactory('Big Key (Turtle Rock)'), ItemFactory(['Small Key (Turtle Rock)'] * 4), ItemFactory(['Map (Turtle Rock)', 'Compass (Turtle Rock)'])) - GT = make_dungeon('Ganons Tower', ['Ganons Tower (Entrance)', 'Ganons Tower (Tile Room)', 'Ganons Tower (Compass Room)', 'Ganons Tower (Hookshot Room)', 'Ganons Tower (Map Room)', 'Ganons Tower (Firesnake Room)', 'Ganons Tower (Teleport Room)', 'Ganons Tower (Bottom)', 'Ganons Tower (Top)', 'Ganons Tower (Before Moldorm)', 'Ganons Tower (Moldorm)', 'Agahnim 2'], ItemFactory('Big Key (Ganons Tower)'), ItemFactory(['Small Key (Ganons Tower)'] * 4), ItemFactory(['Map (Ganons Tower)', 'Compass (Ganons Tower)'])) + ES = make_dungeon('Hyrule Castle', None, ['Hyrule Castle', 'Sewers', 'Sewer Drop', 'Sewers (Dark)', 'Sanctuary'], None, [ItemFactory('Small Key (Escape)')], [ItemFactory('Map (Escape)')]) + EP = make_dungeon('Eastern Palace', 'Armos Knights', ['Eastern Palace'], ItemFactory('Big Key (Eastern Palace)'), [], ItemFactory(['Map (Eastern Palace)', 'Compass (Eastern Palace)'])) + DP = make_dungeon('Desert Palace', 'Lanmolas', ['Desert Palace North', 'Desert Palace Main (Inner)', 'Desert Palace Main (Outer)', 'Desert Palace East'], ItemFactory('Big Key (Desert Palace)'), [ItemFactory('Small Key (Desert Palace)')], ItemFactory(['Map (Desert Palace)', 'Compass (Desert Palace)'])) + ToH = make_dungeon('Tower of Hera', 'Moldorm', ['Tower of Hera (Bottom)', 'Tower of Hera (Basement)', 'Tower of Hera (Top)'], ItemFactory('Big Key (Tower of Hera)'), [ItemFactory('Small Key (Tower of Hera)')], ItemFactory(['Map (Tower of Hera)', 'Compass (Tower of Hera)'])) + AT = make_dungeon('Agahnims Tower', 'Agahnim', ['Agahnims Tower', 'Agahnim 1'], None, ItemFactory(['Small Key (Agahnims Tower)'] * 2), []) + PoD = make_dungeon('Palace of Darkness', 'Helmasaur King', ['Palace of Darkness (Entrance)', 'Palace of Darkness (Center)', 'Palace of Darkness (Big Key Chest)', 'Palace of Darkness (Bonk Section)', 'Palace of Darkness (North)', 'Palace of Darkness (Maze)', 'Palace of Darkness (Harmless Hellway)', 'Palace of Darkness (Final Section)'], ItemFactory('Big Key (Palace of Darkness)'), ItemFactory(['Small Key (Palace of Darkness)'] * 6), ItemFactory(['Map (Palace of Darkness)', 'Compass (Palace of Darkness)'])) + TT = make_dungeon('Thieves Town', 'Blind', ['Thieves Town (Entrance)', 'Thieves Town (Deep)', 'Blind Fight'], ItemFactory('Big Key (Thieves Town)'), [ItemFactory('Small Key (Thieves Town)')], ItemFactory(['Map (Thieves Town)', 'Compass (Thieves Town)'])) + SW = make_dungeon('Skull Woods', 'Mothula', ['Skull Woods Final Section (Entrance)', 'Skull Woods First Section', 'Skull Woods Second Section', 'Skull Woods Second Section (Drop)', 'Skull Woods Final Section (Mothula)', 'Skull Woods First Section (Right)', 'Skull Woods First Section (Left)', 'Skull Woods First Section (Top)'], ItemFactory('Big Key (Skull Woods)'), ItemFactory(['Small Key (Skull Woods)'] * 2), ItemFactory(['Map (Skull Woods)', 'Compass (Skull Woods)'])) + SP = make_dungeon('Swamp Palace', 'Arrghus', ['Swamp Palace (Entrance)', 'Swamp Palace (First Room)', 'Swamp Palace (Starting Area)', 'Swamp Palace (Center)', 'Swamp Palace (North)'], ItemFactory('Big Key (Swamp Palace)'), [ItemFactory('Small Key (Swamp Palace)')], ItemFactory(['Map (Swamp Palace)', 'Compass (Swamp Palace)'])) + IP = make_dungeon('Ice Palace', 'Kholdstare', ['Ice Palace (Entrance)', 'Ice Palace (Main)', 'Ice Palace (East)', 'Ice Palace (East Top)', 'Ice Palace (Kholdstare)'], ItemFactory('Big Key (Ice Palace)'), ItemFactory(['Small Key (Ice Palace)'] * 2), ItemFactory(['Map (Ice Palace)', 'Compass (Ice Palace)'])) + MM = make_dungeon('Misery Mire', 'Vitreous', ['Misery Mire (Entrance)', 'Misery Mire (Main)', 'Misery Mire (West)', 'Misery Mire (Final Area)', 'Misery Mire (Vitreous)'], ItemFactory('Big Key (Misery Mire)'), ItemFactory(['Small Key (Misery Mire)'] * 3), ItemFactory(['Map (Misery Mire)', 'Compass (Misery Mire)'])) + TR = make_dungeon('Turtle Rock', 'Trinexx', ['Turtle Rock (Entrance)', 'Turtle Rock (First Section)', 'Turtle Rock (Chain Chomp Room)', 'Turtle Rock (Second Section)', 'Turtle Rock (Big Chest)', 'Turtle Rock (Crystaroller Room)', 'Turtle Rock (Dark Room)', 'Turtle Rock (Eye Bridge)', 'Turtle Rock (Trinexx)'], ItemFactory('Big Key (Turtle Rock)'), ItemFactory(['Small Key (Turtle Rock)'] * 4), ItemFactory(['Map (Turtle Rock)', 'Compass (Turtle Rock)'])) + GT = make_dungeon('Ganons Tower', 'Agahnim2', ['Ganons Tower (Entrance)', 'Ganons Tower (Tile Room)', 'Ganons Tower (Compass Room)', 'Ganons Tower (Hookshot Room)', 'Ganons Tower (Map Room)', 'Ganons Tower (Firesnake Room)', 'Ganons Tower (Teleport Room)', 'Ganons Tower (Bottom)', 'Ganons Tower (Top)', 'Ganons Tower (Before Moldorm)', 'Ganons Tower (Moldorm)', 'Agahnim 2'], ItemFactory('Big Key (Ganons Tower)'), ItemFactory(['Small Key (Ganons Tower)'] * 4), ItemFactory(['Map (Ganons Tower)', 'Compass (Ganons Tower)'])) + + GT.bosses['bottom'] = BossFactory('Armos Knights') + GT.bosses['middle'] = BossFactory('Lanmolas') + GT.bosses['top'] = BossFactory('Moldorm') world.dungeons = [ES, EP, DP, ToH, AT, PoD, TT, SW, SP, IP, MM, TR, GT] - def fill_dungeons(world): freebes = ['Ganons Tower - Map Chest', 'Palace of Darkness - Harmless Hellway', 'Palace of Darkness - Big Key Chest', 'Turtle Rock - Big Key Chest'] diff --git a/EntranceRandomizer.py b/EntranceRandomizer.py index 32b753fa..e1cb4b24 100755 --- a/EntranceRandomizer.py +++ b/EntranceRandomizer.py @@ -204,6 +204,8 @@ def start(): ''') parser.add_argument('--suppress_rom', help='Do not create an output rom file.', action='store_true') parser.add_argument('--gui', help='Launch the GUI', action='store_true') + # Deliberately not documented, only useful for vt site integration right now: + parser.add_argument('--shufflebosses', help=argparse.SUPPRESS, default='none', const='none', nargs='?', choices=['none', 'basic', 'normal', 'chaos']) parser.add_argument('--jsonout', action='store_true', help='''\ Output .json patch to stdout instead of a patched rom. Used for VT site integration, do not use otherwise. diff --git a/ItemList.py b/ItemList.py index 5c89e075..3dbf7ef8 100644 --- a/ItemList.py +++ b/ItemList.py @@ -3,6 +3,7 @@ import logging import random from BaseClasses import Region, RegionType, Shop, ShopType, Location +from Bosses import place_bosses from Dungeons import get_dungeon_item_pool from EntranceShuffle import connect_entrance from Fill import FillError, fill_restrictive @@ -265,6 +266,7 @@ def generate_itempool(world): tr_medallion = ['Ether', 'Quake', 'Bombos'][random.randint(0, 2)] world.required_medallions = (mm_medallion, tr_medallion) + place_bosses(world) set_up_shops(world) if world.retro: diff --git a/Items.py b/Items.py index 226b9536..3cf7ff50 100644 --- a/Items.py +++ b/Items.py @@ -84,8 +84,8 @@ item_table = {'Bow': (True, False, None, 0x0B, 'You have\nchosen the\narcher cla 'Blue Mail': (False, True, None, 0x22, 'Now you\'re a\nblue elf!', 'and the banana hat', 'the protected kid', 'banana hat for sale', 'the clothing store', 'tailor boy banana hatted again'), 'Red Mail': (False, True, None, 0x23, 'Now you\'re a\nred elf!', 'and the eggplant hat', 'well-protected kid', 'purple hat for sale', 'the nice clothing store', 'tailor boy fears nothing again'), 'Progressive Armor': (False, True, None, 0x60, 'time for a\nchange of\nclothes?', 'and the unknown hat', 'the protected kid', 'new hat for sale', 'the clothing store', 'tailor boy has threads again'), - 'Blue Boomerang': (False, True, None, 0x0C, 'No matter what\nyou do, blue\nreturns to you', 'and the bluemarang', 'the bat-throwing kid', 'bent stick for sale', 'fungus for puma-stick', 'throwing boy plays fetch again'), - 'Red Boomerang': (False, True, None, 0x2A, 'No matter what\nyou do, red\nreturns to you', 'and the badmarang', 'the bat-throwing kid', 'air foil for sale', 'fungus for return-stick', 'magical boy plays fetch again'), + 'Blue Boomerang': (True, True, None, 0x0C, 'No matter what\nyou do, blue\nreturns to you', 'and the bluemarang', 'the bat-throwing kid', 'bent stick for sale', 'fungus for puma-stick', 'throwing boy plays fetch again'), + 'Red Boomerang': (True, True, None, 0x2A, 'No matter what\nyou do, red\nreturns to you', 'and the badmarang', 'the bat-throwing kid', 'air foil for sale', 'fungus for return-stick', 'magical boy plays fetch again'), 'Blue Shield': (False, True, None, 0x04, 'Now you can\ndefend against\npebbles!', 'and the stone blocker', 'shield-wielding kid', 'shield for sale', 'fungus for shield', 'shield boy defends again'), 'Red Shield': (False, True, None, 0x05, 'Now you can\ndefend against\nfireballs!', 'and the shot blocker', 'shield-wielding kid', 'fire shield for sale', 'fungus for fire shield', 'shield boy defends again'), 'Mirror Shield': (True, False, None, 0x06, 'Now you can\ndefend against\nlasers!', 'and the laser blocker', 'shield-wielding kid', 'face shield for sale', 'fungus for face shield', 'shield boy defends again'), diff --git a/Main.py b/Main.py index e7a9cb55..ead1e26c 100644 --- a/Main.py +++ b/Main.py @@ -40,7 +40,7 @@ def main(args, seed=None): start = time.clock() # initialize the world - world = World(args.shuffle, args.logic, args.mode, args.difficulty, args.timer, args.progressive, args.goal, args.algorithm, not args.nodungeonitems, args.beatableonly, args.shuffleganon, args.quickswap, args.fastmenu, args.disablemusic, args.keysanity, args.retro, args.custom, args.customitemarray) + world = World(args.shuffle, args.logic, args.mode, args.difficulty, args.timer, args.progressive, args.goal, args.algorithm, not args.nodungeonitems, args.beatableonly, args.shuffleganon, args.quickswap, args.fastmenu, args.disablemusic, args.keysanity, args.retro, args.custom, args.customitemarray, args.shufflebosses) logger = logging.getLogger('') if seed is None: random.seed(None) @@ -140,7 +140,7 @@ def gt_filler(world): def copy_world(world): # ToDo: Not good yet - ret = World(world.shuffle, world.logic, world.mode, world.difficulty, world.timer, world.progressive, world.goal, world.algorithm, world.place_dungeon_items, world.check_beatable_only, world.shuffle_ganon, world.quickswap, world.fastmenu, world.disable_music, world.keysanity, world.retro, world.custom, world.customitemarray) + ret = World(world.shuffle, world.logic, world.mode, world.difficulty, world.timer, world.progressive, world.goal, world.algorithm, world.place_dungeon_items, world.check_beatable_only, world.shuffle_ganon, world.quickswap, world.fastmenu, world.disable_music, world.keysanity, world.retro, world.custom, world.customitemarray, world.boss_shuffle) ret.required_medallions = list(world.required_medallions) ret.swamp_patch_required = world.swamp_patch_required ret.ganon_at_pyramid = world.ganon_at_pyramid @@ -160,6 +160,11 @@ def copy_world(world): copy_dynamic_regions_and_locations(world, ret) + # copy bosses + for dungeon in world.dungeons: + for level, boss in dungeon.bosses.items(): + ret.get_dungeon(dungeon.name).bosses[level] = boss + for shop in world.shops: copied_shop = ret.get_region(shop.region.name).shop copied_shop.active = shop.active diff --git a/Rules.py b/Rules.py index 48e0040e..9ae1676b 100644 --- a/Rules.py +++ b/Rules.py @@ -49,6 +49,10 @@ def set_rules(world): def set_rule(spot, rule): spot.access_rule = rule +def set_defeat_dungeon_boss_rule(location): + # Lambda required to defer evaluation of dungeon.boss since it will change later if boos shuffle is used + set_rule(location, lambda state: location.parent_region.dungeon.boss.can_defeat(state)) + def set_always_allow(spot, rule): spot.always_allow = rule @@ -138,6 +142,7 @@ def global_rules(world): set_rule(world.get_location('Sahasrahla'), lambda state: state.has('Green Pendant')) set_rule(world.get_entrance('Agahnims Tower'), lambda state: state.has('Cape') or state.has_beam_sword() or state.has('Beat Agahnim 1')) # barrier gets removed after killing agahnim, relevant for entrance shuffle set_rule(world.get_entrance('Agahnim 1'), lambda state: state.has_sword() and state.has_key('Small Key (Agahnims Tower)', 2)) + set_defeat_dungeon_boss_rule(world.get_location('Agahnim 1')) set_rule(world.get_location('Castle Tower - Dark Maze'), lambda state: state.has_key('Small Key (Agahnims Tower)')) set_rule(world.get_entrance('Top of Pyramid'), lambda state: state.has('Beat Agahnim 1')) set_rule(world.get_entrance('Old Man Cave Exit (West)'), lambda state: False) # drop cannot be climbed up @@ -228,18 +233,16 @@ def global_rules(world): set_rule(world.get_entrance('Sewers Back Door'), lambda state: state.has_key('Small Key (Escape)')) set_rule(world.get_location('Eastern Palace - Big Chest'), lambda state: state.has('Big Key (Eastern Palace)')) - set_rule(world.get_location('Eastern Palace - Armos Knights'), lambda state: state.can_shoot_arrows() and state.has('Big Key (Eastern Palace)')) - set_rule(world.get_location('Eastern Palace - Prize'), lambda state: state.can_shoot_arrows() and state.has('Big Key (Eastern Palace)')) + set_rule(world.get_location('Eastern Palace - Armos Knights'), lambda state: state.can_shoot_arrows() and state.has('Big Key (Eastern Palace)') and world.get_location('Eastern Palace - Armos Knights').parent_region.dungeon.boss.can_defeat(state)) + set_rule(world.get_location('Eastern Palace - Prize'), lambda state: state.can_shoot_arrows() and state.has('Big Key (Eastern Palace)') and world.get_location('Eastern Palace - Prize').parent_region.dungeon.boss.can_defeat(state)) for location in ['Eastern Palace - Armos Knights', 'Eastern Palace - Big Chest']: forbid_item(world.get_location(location), 'Big Key (Eastern Palace)') set_rule(world.get_location('Desert Palace - Big Chest'), lambda state: state.has('Big Key (Desert Palace)')) set_rule(world.get_location('Desert Palace - Torch'), lambda state: state.has_Boots()) set_rule(world.get_entrance('Desert Palace East Wing'), lambda state: state.has_key('Small Key (Desert Palace)')) - set_rule(world.get_location('Desert Palace - Prize'), lambda state: state.has_key('Small Key (Desert Palace)') and state.has('Big Key (Desert Palace)') and state.has_fire_source() and - (state.has_blunt_weapon() or state.has('Fire Rod') or state.has('Ice Rod') or state.can_shoot_arrows())) - set_rule(world.get_location('Desert Palace - Lanmolas'), lambda state: state.has_key('Small Key (Desert Palace)') and state.has('Big Key (Desert Palace)') and state.has_fire_source() and - (state.has_blunt_weapon() or state.has('Fire Rod') or state.has('Ice Rod') or state.can_shoot_arrows())) + set_rule(world.get_location('Desert Palace - Prize'), lambda state: state.has_key('Small Key (Desert Palace)') and state.has('Big Key (Desert Palace)') and state.has_fire_source() and world.get_location('Desert Palace - Prize').parent_region.dungeon.boss.can_defeat(state)) + set_rule(world.get_location('Desert Palace - Lanmolas'), lambda state: state.has_key('Small Key (Desert Palace)') and state.has('Big Key (Desert Palace)') and state.has_fire_source() and world.get_location('Desert Palace - Lanmolas').parent_region.dungeon.boss.can_defeat(state)) for location in ['Desert Palace - Lanmolas', 'Desert Palace - Big Chest']: forbid_item(world.get_location(location), 'Big Key (Desert Palace)') @@ -251,8 +254,8 @@ def global_rules(world): set_rule(world.get_location('Tower of Hera - Big Chest'), lambda state: state.has('Big Key (Tower of Hera)')) set_rule(world.get_location('Tower of Hera - Big Key Chest'), lambda state: state.has_fire_source()) set_always_allow(world.get_location('Tower of Hera - Big Key Chest'), lambda state, item: item.name == 'Small Key (Tower of Hera)') - set_rule(world.get_location('Tower of Hera - Moldorm'), lambda state: state.has_blunt_weapon()) - set_rule(world.get_location('Tower of Hera - Prize'), lambda state: state.has_blunt_weapon()) + set_defeat_dungeon_boss_rule(world.get_location('Tower of Hera - Moldorm')) + set_defeat_dungeon_boss_rule(world.get_location('Tower of Hera - Prize')) for location in ['Tower of Hera - Moldorm', 'Tower of Hera - Big Chest', 'Tower of Hera - Compass Chest']: forbid_item(world.get_location(location), 'Big Key (Tower of Hera)') # for location in ['Tower of Hera - Big Key Chest']: @@ -266,13 +269,15 @@ def global_rules(world): set_rule(world.get_location('Swamp Palace - Big Chest'), lambda state: state.has('Big Key (Swamp Palace)') or item_name(state, 'Swamp Palace - Big Chest') == 'Big Key (Swamp Palace)') set_always_allow(world.get_location('Swamp Palace - Big Chest'), lambda state, item: item.name == 'Big Key (Swamp Palace)') set_rule(world.get_entrance('Swamp Palace (North)'), lambda state: state.has('Hookshot')) - set_rule(world.get_location('Swamp Palace - Arrghus'), lambda state: state.has_blunt_weapon()) - set_rule(world.get_location('Swamp Palace - Prize'), lambda state: state.has_blunt_weapon()) + set_defeat_dungeon_boss_rule(world.get_location('Swamp Palace - Arrghus')) + set_defeat_dungeon_boss_rule(world.get_location('Swamp Palace - Prize')) for location in ['Swamp Palace - Entrance']: forbid_item(world.get_location(location), 'Big Key (Swamp Palace)') set_rule(world.get_entrance('Thieves Town Big Key Door'), lambda state: state.has('Big Key (Thieves Town)')) - set_rule(world.get_entrance('Blind Fight'), lambda state: state.has_key('Small Key (Thieves Town)') and (state.has_blunt_weapon() or state.has('Cane of Somaria') or state.has('Cane of Byrna'))) + set_rule(world.get_entrance('Blind Fight'), lambda state: state.has_key('Small Key (Thieves Town)')) + set_defeat_dungeon_boss_rule(world.get_location('Thieves Town - Blind')) + set_defeat_dungeon_boss_rule(world.get_location('Thieves Town - Prize')) set_rule(world.get_location('Thieves\' Town - Big Chest'), lambda state: (state.has_key('Small Key (Thieves Town)') or item_name(state, 'Thieves\' Town - Big Chest') == 'Small Key (Thieves Town)') and state.has('Hammer')) set_always_allow(world.get_location('Thieves\' Town - Big Chest'), lambda state, item: item.name == 'Small Key (Thieves Town)' and state.has('Hammer')) set_rule(world.get_location('Thieves\' Town - Attic'), lambda state: state.has_key('Small Key (Thieves Town)')) @@ -288,6 +293,8 @@ def global_rules(world): set_rule(world.get_location('Skull Woods - Big Chest'), lambda state: state.has('Big Key (Skull Woods)') or item_name(state, 'Skull Woods - Big Chest') == 'Big Key (Skull Woods)') set_always_allow(world.get_location('Skull Woods - Big Chest'), lambda state, item: item.name == 'Big Key (Skull Woods)') set_rule(world.get_entrance('Skull Woods Torch Room'), lambda state: state.has_key('Small Key (Skull Woods)', 3) and state.has('Fire Rod') and state.has_sword()) # sword required for curtain + set_defeat_dungeon_boss_rule(world.get_location('Skull Woods - Mothula')) + set_defeat_dungeon_boss_rule(world.get_location('Skull Woods - Prize')) for location in ['Skull Woods - Mothula']: forbid_item(world.get_location(location), 'Small Key (Skull Woods)') @@ -297,6 +304,8 @@ def global_rules(world): # TODO: investigate change from VT. Changed to hookshot or 2 keys (no checking for big key in specific chests) set_rule(world.get_entrance('Ice Palace (East)'), lambda state: (state.has('Hookshot') or (item_in_locations(state, 'Big Key (Ice Palace)', ['Ice Palace - Spike Room', 'Ice Palace - Big Key Chest', 'Ice Palace - Map Chest']) and state.has_key('Small Key (Ice Palace)'))) and (state.world.can_take_damage or state.has('Hookshot') or state.has('Cape') or state.has('Cane of Byrna'))) set_rule(world.get_entrance('Ice Palace (East Top)'), lambda state: state.can_lift_rocks() and state.has('Hammer')) + set_defeat_dungeon_boss_rule(world.get_location('Ice Palace - Kholdstare')) + set_defeat_dungeon_boss_rule(world.get_location('Ice Palace - Prize')) for location in ['Ice Palace - Big Chest', 'Ice Palace - Kholdstare']: forbid_item(world.get_location(location), 'Big Key (Ice Palace)') @@ -314,7 +323,9 @@ def global_rules(world): (item_name(state, 'Misery Mire - Big Key Chest') in ['Big Key (Misery Mire)'])) else state.has_key('Small Key (Misery Mire)', 3)) set_rule(world.get_location('Misery Mire - Compass Chest'), lambda state: state.has_fire_source()) set_rule(world.get_location('Misery Mire - Big Key Chest'), lambda state: state.has_fire_source()) - set_rule(world.get_entrance('Misery Mire (Vitreous)'), lambda state: state.has('Cane of Somaria') and (state.can_shoot_arrows() or state.has_blunt_weapon())) + set_rule(world.get_entrance('Misery Mire (Vitreous)'), lambda state: state.has('Cane of Somaria')) + set_defeat_dungeon_boss_rule(world.get_location('Misery Mire - Vitreous')) + set_defeat_dungeon_boss_rule(world.get_location('Misery Mire - Prize')) for location in ['Misery Mire - Big Chest', 'Misery Mire - Vitreous']: forbid_item(world.get_location(location), 'Big Key (Misery Mire)') @@ -333,8 +344,9 @@ def global_rules(world): set_rule(world.get_location('Turtle Rock - Eye Bridge - Bottom Right'), lambda state: state.has('Cane of Byrna') or state.has('Cape') or state.has('Mirror Shield')) set_rule(world.get_location('Turtle Rock - Eye Bridge - Top Left'), lambda state: state.has('Cane of Byrna') or state.has('Cape') or state.has('Mirror Shield')) set_rule(world.get_location('Turtle Rock - Eye Bridge - Top Right'), lambda state: state.has('Cane of Byrna') or state.has('Cape') or state.has('Mirror Shield')) - set_rule(world.get_entrance('Turtle Rock (Trinexx)'), lambda state: state.has_key('Small Key (Turtle Rock)', 4) and state.has('Big Key (Turtle Rock)') and state.has('Cane of Somaria') and state.has('Fire Rod') and state.has('Ice Rod') and - (state.has('Hammer') or state.has_beam_sword() or (state.has_sword() and state.can_extend_magic(32)))) + set_rule(world.get_entrance('Turtle Rock (Trinexx)'), lambda state: state.has_key('Small Key (Turtle Rock)', 4) and state.has('Big Key (Turtle Rock)') and state.has('Cane of Somaria')) + set_defeat_dungeon_boss_rule(world.get_location('Turtle Rock - Trinexx')) + set_defeat_dungeon_boss_rule(world.get_location('Turtle Rock - Prize')) set_trock_key_rules(world) @@ -351,6 +363,8 @@ def global_rules(world): set_rule(world.get_entrance('Palace of Darkness Spike Statue Room Door'), lambda state: state.has_key('Small Key (Palace of Darkness)', 6) or (item_name(state, 'Palace of Darkness - Harmless Hellway') in ['Small Key (Palace of Darkness)'] and state.has_key('Small Key (Palace of Darkness)', 4))) set_always_allow(world.get_location('Palace of Darkness - Harmless Hellway'), lambda state, item: item.name == 'Small Key (Palace of Darkness)' and state.has_key('Small Key (Palace of Darkness)', 5)) set_rule(world.get_entrance('Palace of Darkness Maze Door'), lambda state: state.has_key('Small Key (Palace of Darkness)', 6)) + set_defeat_dungeon_boss_rule(world.get_location('Palace of Darkness - Helmasaur')) + set_defeat_dungeon_boss_rule(world.get_location('Palace of Darkness - Prize')) # these key rules are conservative, you might be able to get away with more lenient rules randomizer_room_chests = ['Ganons Tower - Randomizer Room - Top Left', 'Ganons Tower - Randomizer Room - Top Right', 'Ganons Tower - Randomizer Room - Bottom Left', 'Ganons Tower - Randomizer Room - Bottom Right'] @@ -381,15 +395,17 @@ def global_rules(world): set_rule(world.get_location(location), lambda state: state.has('Fire Rod') and (state.has_key('Small Key (Ganons Tower)', 4) or (item_in_locations(state, 'Big Key (Ganons Tower)', compass_room_chests) and state.has_key('Small Key (Ganons Tower)', 3)))) set_rule(world.get_location('Ganons Tower - Big Chest'), lambda state: state.has('Big Key (Ganons Tower)')) - set_rule(world.get_location('Ganons Tower - Big Key Room - Left'), lambda state: state.can_shoot_arrows() or state.has_blunt_weapon()) - set_rule(world.get_location('Ganons Tower - Big Key Chest'), lambda state: state.can_shoot_arrows() or state.has_blunt_weapon()) - set_rule(world.get_location('Ganons Tower - Big Key Room - Right'), lambda state: state.can_shoot_arrows() or state.has_blunt_weapon()) + + set_rule(world.get_location('Ganons Tower - Big Key Room - Left'), lambda state: world.get_location('Ganons Tower - Big Key Room - Left').parent_region.dungeon.bosses['bottom'].can_defeat(state)) + set_rule(world.get_location('Ganons Tower - Big Key Chest'), lambda state: world.get_location('Ganons Tower - Big Key Chest').parent_region.dungeon.bosses['bottom'].can_defeat(state)) + set_rule(world.get_location('Ganons Tower - Big Key Room - Right'), lambda state: world.get_location('Ganons Tower - Big Key Room - Right').parent_region.dungeon.bosses['bottom'].can_defeat(state)) + set_rule(world.get_entrance('Ganons Tower Big Key Door'), lambda state: state.has('Big Key (Ganons Tower)') and state.can_shoot_arrows()) - set_rule(world.get_entrance('Ganons Tower Torch Rooms'), lambda state: state.has_fire_source()) + set_rule(world.get_entrance('Ganons Tower Torch Rooms'), lambda state: state.has_fire_source() and world.get_entrance('Ganons Tower Torch Rooms').parent_region.dungeon.bosses['middle'].can_defeat(state)) set_rule(world.get_location('Ganons Tower - Pre-Moldorm Chest'), lambda state: state.has_key('Small Key (Ganons Tower)', 3)) set_rule(world.get_entrance('Ganons Tower Moldorm Door'), lambda state: state.has_key('Small Key (Ganons Tower)', 4)) - set_rule(world.get_entrance('Ganons Tower Moldorm Gap'), lambda state: state.has('Hookshot') and state.has_blunt_weapon()) - set_rule(world.get_location('Agahnim 2'), lambda state: state.has_sword() or state.has('Hammer') or state.has('Bug Catching Net')) + set_rule(world.get_entrance('Ganons Tower Moldorm Gap'), lambda state: state.has('Hookshot') and world.get_entrance('Ganons Tower Moldorm Gap').parent_region.dungeon.bosses['top'].can_defeat(state)) + set_defeat_dungeon_boss_rule(world.get_location('Agahnim 2')) set_rule(world.get_entrance('Pyramid Hole'), lambda state: state.has('Beat Agahnim 2')) for location in ['Ganons Tower - Big Chest', 'Ganons Tower - Mini Helmasaur Room - Left', 'Ganons Tower - Mini Helmasaur Room - Right', 'Ganons Tower - Pre-Moldorm Chest', 'Ganons Tower - Validation Chest']: @@ -474,14 +490,13 @@ def swordless_rules(world): open_rules(world) set_rule(world.get_entrance('Agahnims Tower'), lambda state: state.has('Cape') or state.has('Hammer') or state.has('Beat Agahnim 1')) # barrier gets removed after killing agahnim, relevant for entrance shuffle - set_rule(world.get_entrance('Agahnim 1'), lambda state: (state.has('Hammer') or (state.has('Bug Catching Net') and (state.has('Fire Rod') or state.can_shoot_arrows() or state.has('Cane of Somaria')))) and state.has_key('Small Key (Agahnims Tower)', 2)) + set_rule(world.get_entrance('Agahnim 1'), lambda state: (state.has('Hammer') or state.has('Fire Rod') or state.can_shoot_arrows() or state.has('Cane of Somaria')) and state.has_key('Small Key (Agahnims Tower)', 2)) set_rule(world.get_location('Ether Tablet'), lambda state: state.has('Book of Mudora') and state.has('Hammer')) set_rule(world.get_location('Bombos Tablet'), lambda state: state.has('Book of Mudora') and state.has('Hammer') and state.has_Mirror()) set_rule(world.get_entrance('Misery Mire'), lambda state: state.has_Pearl() and state.has_misery_mire_medallion()) # sword not required to use medallion for opening in swordless (!) set_rule(world.get_entrance('Turtle Rock'), lambda state: state.has_Pearl() and state.has_turtle_rock_medallion() and state.can_reach('Turtle Rock (Top)', 'Region')) # sword not required to use medallion for opening in swordless (!) - set_rule(world.get_entrance('Skull Woods Torch Room'), lambda state: state.has_key('Small Key (Skull Woods)', 3) and state.has('Fire Rod') and (state.has('Hammer') or state.can_extend_magic(10))) # no curtain + set_rule(world.get_entrance('Skull Woods Torch Room'), lambda state: state.has_key('Small Key (Skull Woods)', 3) and state.has('Fire Rod')) # no curtain set_rule(world.get_entrance('Ice Palace Entrance Room'), lambda state: state.has('Fire Rod') or state.has('Bombos')) #in swordless mode bombos pads are present in the relevant parts of ice palace - set_rule(world.get_location('Agahnim 2'), lambda state: state.has('Hammer') or state.has('Bug Catching Net')) set_rule(world.get_location('Ganon'), lambda state: state.has('Hammer') and state.has_fire_source() and state.has('Silver Arrows') and state.can_shoot_arrows() and state.has('Crystal 1') and state.has('Crystal 2') and state.has('Crystal 3') and state.has('Crystal 4') and state.has('Crystal 5') and state.has('Crystal 6') and state.has('Crystal 7')) set_rule(world.get_entrance('Ganon Drop'), lambda state: state.has('Hammer')) # need to damage ganon to get tiles to drop From d477559b2d3a0d7017b5d5c3eca6c29326ac26c6 Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Wed, 26 Sep 2018 13:19:41 -0400 Subject: [PATCH 13/16] Update sprites --- Gui.py | 4 ++-- data/sprites/official/bronzor.1.zspr | Bin 0 -> 28880 bytes data/sprites/official/casual-zelda.1.zspr | Bin 0 -> 28893 bytes .../official/{cat.1.zspr => cat.2.zspr} | Bin 28867 -> 28897 bytes data/sprites/official/cdilink.1.zspr | Bin 0 -> 28872 bytes data/sprites/official/celes.1.zspr | Bin 0 -> 28861 bytes data/sprites/official/clifford.1.zspr | Bin 0 -> 28876 bytes data/sprites/official/deadrock.1.zspr | Bin 0 -> 28858 bytes data/sprites/official/eggplant.1.zspr | Bin 0 -> 28876 bytes data/sprites/official/goomba.1.zspr | Bin 0 -> 28863 bytes data/sprites/official/grandpoobear.1.zspr | Bin 0 -> 28898 bytes data/sprites/official/grunclestan.1.zspr | Bin 0 -> 28875 bytes data/sprites/official/hoarder-bush.1.zspr | Bin 0 -> 28882 bytes data/sprites/official/hoarder-pot.1.zspr | Bin 0 -> 28880 bytes data/sprites/official/hoarder-rock.1.zspr | Bin 0 -> 28882 bytes .../{ignignokt.1.zspr => ignignokt.2.zspr} | Bin 28884 -> 28884 bytes data/sprites/official/kecleon.1.zspr | Bin 0 -> 28863 bytes data/sprites/official/kholdstare.1.zspr | Bin 0 -> 28886 bytes data/sprites/official/lakitu.1.zspr | Bin 0 -> 28863 bytes data/sprites/official/magus.1.zspr | Bin 0 -> 28870 bytes data/sprites/official/meatwad.1.zspr | Bin 0 -> 28880 bytes data/sprites/official/mike-jones.2.zspr | Bin 0 -> 28889 bytes data/sprites/official/mikejones.1.zspr | Bin 28881 -> 0 bytes data/sprites/official/minishcaplink.1.zspr | Bin 28881 -> 0 bytes data/sprites/official/minishcaplink.2.zspr | Bin 0 -> 28887 bytes data/sprites/official/mushy.1.zspr | Bin 0 -> 28898 bytes data/sprites/official/ness.1.zspr | Bin 0 -> 28882 bytes data/sprites/official/ori.1.zspr | Bin 0 -> 28851 bytes .../official/parallelworldslink.1.zspr | Bin 0 -> 28912 bytes data/sprites/official/phoenix-wright.1.zspr | Bin 0 -> 28882 bytes data/sprites/official/plagueknight.1.zspr | Bin 0 -> 28867 bytes data/sprites/official/pokey.1.zspr | Bin 0 -> 28876 bytes data/sprites/official/pridelink.1.zspr | Bin 0 -> 28894 bytes data/sprites/official/psyduck.1.zspr | Bin 0 -> 28868 bytes data/sprites/official/rainbowlink.1.zspr | Bin 0 -> 28890 bytes data/sprites/official/ryu.1.zspr | Bin 0 -> 28866 bytes data/sprites/official/sailormoon.1.zspr | Bin 0 -> 28873 bytes data/sprites/official/samus.1.zspr | Bin 28871 -> 0 bytes data/sprites/official/samus.2.zspr | Bin 0 -> 28879 bytes data/sprites/official/scholar.1.zspr | Bin 0 -> 28859 bytes data/sprites/official/shantae.1.zspr | Bin 0 -> 28868 bytes data/sprites/official/shuppet.1.zspr | Bin 0 -> 28880 bytes data/sprites/official/shy-guy.1.zspr | Bin 0 -> 28868 bytes data/sprites/official/snes-controller.1.zspr | Bin 0 -> 28884 bytes data/sprites/official/teatime.1.zspr | Bin 0 -> 28867 bytes data/sprites/official/thief.1.zspr | Bin 0 -> 28863 bytes data/sprites/official/tmnt.1.zspr | Bin 0 -> 28859 bytes data/sprites/official/toadette.1.zspr | Bin 0 -> 28869 bytes data/sprites/official/totem-links.1.zspr | Bin 0 -> 28871 bytes data/sprites/official/ultros.1.zspr | Bin 0 -> 28872 bytes data/sprites/official/vanillalink.1.zspr | Bin 0 -> 28873 bytes data/sprites/official/vivian.1.zspr | Bin 0 -> 28863 bytes data/sprites/official/wixb.1.zspr | Bin 0 -> 28855 bytes data/sprites/official/zandra.1.zspr | Bin 0 -> 28878 bytes ...osuitsamus.1.zspr => zerosuitsamus.2.zspr} | Bin 28891 -> 28899 bytes 55 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 data/sprites/official/bronzor.1.zspr create mode 100644 data/sprites/official/casual-zelda.1.zspr rename data/sprites/official/{cat.1.zspr => cat.2.zspr} (80%) create mode 100644 data/sprites/official/cdilink.1.zspr create mode 100644 data/sprites/official/celes.1.zspr create mode 100644 data/sprites/official/clifford.1.zspr create mode 100644 data/sprites/official/deadrock.1.zspr create mode 100644 data/sprites/official/eggplant.1.zspr create mode 100644 data/sprites/official/goomba.1.zspr create mode 100644 data/sprites/official/grandpoobear.1.zspr create mode 100644 data/sprites/official/grunclestan.1.zspr create mode 100644 data/sprites/official/hoarder-bush.1.zspr create mode 100644 data/sprites/official/hoarder-pot.1.zspr create mode 100644 data/sprites/official/hoarder-rock.1.zspr rename data/sprites/official/{ignignokt.1.zspr => ignignokt.2.zspr} (93%) create mode 100644 data/sprites/official/kecleon.1.zspr create mode 100644 data/sprites/official/kholdstare.1.zspr create mode 100644 data/sprites/official/lakitu.1.zspr create mode 100644 data/sprites/official/magus.1.zspr create mode 100644 data/sprites/official/meatwad.1.zspr create mode 100644 data/sprites/official/mike-jones.2.zspr delete mode 100644 data/sprites/official/mikejones.1.zspr delete mode 100644 data/sprites/official/minishcaplink.1.zspr create mode 100644 data/sprites/official/minishcaplink.2.zspr create mode 100644 data/sprites/official/mushy.1.zspr create mode 100644 data/sprites/official/ness.1.zspr create mode 100644 data/sprites/official/ori.1.zspr create mode 100644 data/sprites/official/parallelworldslink.1.zspr create mode 100644 data/sprites/official/phoenix-wright.1.zspr create mode 100644 data/sprites/official/plagueknight.1.zspr create mode 100644 data/sprites/official/pokey.1.zspr create mode 100644 data/sprites/official/pridelink.1.zspr create mode 100644 data/sprites/official/psyduck.1.zspr create mode 100644 data/sprites/official/rainbowlink.1.zspr create mode 100644 data/sprites/official/ryu.1.zspr create mode 100644 data/sprites/official/sailormoon.1.zspr delete mode 100644 data/sprites/official/samus.1.zspr create mode 100644 data/sprites/official/samus.2.zspr create mode 100644 data/sprites/official/scholar.1.zspr create mode 100644 data/sprites/official/shantae.1.zspr create mode 100644 data/sprites/official/shuppet.1.zspr create mode 100644 data/sprites/official/shy-guy.1.zspr create mode 100644 data/sprites/official/snes-controller.1.zspr create mode 100644 data/sprites/official/teatime.1.zspr create mode 100644 data/sprites/official/thief.1.zspr create mode 100644 data/sprites/official/tmnt.1.zspr create mode 100644 data/sprites/official/toadette.1.zspr create mode 100644 data/sprites/official/totem-links.1.zspr create mode 100644 data/sprites/official/ultros.1.zspr create mode 100644 data/sprites/official/vanillalink.1.zspr create mode 100644 data/sprites/official/vivian.1.zspr create mode 100644 data/sprites/official/wixb.1.zspr create mode 100644 data/sprites/official/zandra.1.zspr rename data/sprites/official/{zerosuitsamus.1.zspr => zerosuitsamus.2.zspr} (97%) diff --git a/Gui.py b/Gui.py index b42d5d50..ba8ba9f4 100755 --- a/Gui.py +++ b/Gui.py @@ -1077,7 +1077,7 @@ class SpriteSelector(object): for file in glob(output_path(path)): sprites.append(Sprite(file)) - sprites.sort(key=lambda s: str.lower(s.name or "")) + sprites.sort(key=lambda s: str.lower(s.name or "").strip()) i = 0 for sprite in sprites: @@ -1161,7 +1161,7 @@ class SpriteSelector(object): deleted += 1 if successful: - resultmessage = "official sprites updated sucessfully" + resultmessage = "official sprites updated successfully" task.queue_event(finished) diff --git a/data/sprites/official/bronzor.1.zspr b/data/sprites/official/bronzor.1.zspr new file mode 100644 index 0000000000000000000000000000000000000000..d1afd117013de291f84719c0c7b8c08f50d4ca71 GIT binary patch literal 28880 zcmeHQe{37|6@PbUpD)IVe+>f|nMN=z3Pw+(P@()or8xLqMph(t(H>vY-3w*K&1 zB&;qXCl(-^s;aH3see?HsiqByf2yg1XhP$v!Bhki6{=YN$k+)*RmVEXgGzYFID6mw zP9zy&>7=x!_KYkv7!;mq)$MF+6V^8lNJ8(ENc3_-9Bus;*X$B~YCWvAv28@GZ z4ZaGXD2fIuo&bJoss_fPD&zvn`_`=L3d9qJRp-59= z{EVMmq8Qr13Yu6$;{#}h_0jYyxuj}}fupOV!C+W!ZAG&adH)7~gzuBYmH?)KI6e{| zOkEX5=2RraxudxmejbW~j%grnY2{Wma)KidNf7xYByIWABga!Ob7grbLV+)q<=y7L z-14nrJ5=hA>I+xtZzP+AO8u$x`6~UnEkByTqm`}!yZ@}W|61wwzlF>1-T$|+@x7{h z8t^pWX~5Hfr-7BMftBum@B<8l6L%)$_`PU`Kp-4QW|DCco(b-?&2n5#D``EKHn0kM zM$c)GQ4W%(TIv3W`0c#7g$@J) zmJ)+&q-X98L)gYS^qc7w3RWd4lP0#aD8V<=j*;=2Bu2|dM@)=fMOrl$+GCAffis(ReKPHY>fwTzS@IG(bYW&#a4STRqQ#H3J<2Lpy?|-n6b8+8ldm7(gP{a z)_5S%_gL+LTzNM4O6+OiOB$d!Ujr3joa=!mJbX4*fID&h--V`q20xw7r%M4mPMYfv zj?fKG?B2Cr|D@BqyIh~D|M|p&4CdI(s$vzmLA6)HWj5ev{kZnm#Ij~_o2U@w^EGh+ z7PSt*{yO+U@YKoA*s-|~` z>fRlorgw+`*1P{f-nI|qiR?bo1bBY(&y!H%Kk$`?WvdmqZ=Y`0U){-ng$-|UHZeNH zPa3wi3{I|?WVcTrE|`-^K*i|8z-07s3D-~i@n+FMmdm3Lax=-YEsxVirl-47o?*HX zo1>ROC9CAsizxwYc@0PJsT7WSE7ortL!wa5AE;1B5QzN6R7yDwg&93PVaU&;LuFcG7%EeScCg+4^W)vlrk`d!zA8^9fBsM3d zsqF+4ep6F(vm|XtjDvkeS9GZ`Qk*Vw1fw|>Ng5fMp5_n}LJWGYaQw)Sjd7(rcl`K} zg=q-+SUTL$PMdsEI+|{1pe?MUYakDw(2Fmc{B$~(BQu&8Eey~IVM>hr?JZm0tmRu3 zSd2}k3u>7ki>1@GlgBdmn{p;b`a5MVA=&kbL^?Y;PI7QT=;j|i7u_dmUl`|li$Da0!^=3Gd+Fklxf{;Dw)_b6b|+EnGf((Dv=l(3OSgD zCa%<6oGu8uj>SddxaQ{RX~Dtf)t@SNNyldT9lekiJ~QKUu=%SSe_olM%*J3+uzxW< zjT;w0aIk&-M&F8}=Q7IY%{E_Aaydn5b}&GY4p2Qd8^4KmEa-lG>2Cj0MX6TWX$clD zB>Tg3m<;#~eO|cG-%ryVXSZO0pR0>4CAN?y?T?VEwzRNp*1#ot@x;`4vY$a87~#?M zi4)`FBn8JM1{XBUh5F-JyEWjm3wznK2L9ru#mvE`0CaVk+?QU;WSW}5!EZdj=r3(7 zz6%fvk@TN`-tXVI@m&X#@#T*2B>kPvo{sNAA7gqCfLXUr>cFQdL%avu|1Rz>sRiy| ziRV<}J&633ErG^yiG->~R}Tk29?0(4BJGKYr~x8BxJw!6=;9+p14Mq{BXQ)zH~+$3 z^JyB9Z+;&NPcE>m4>2iI2#*IqBB%ccqJgDZ`$2)}(-dye!mh&3>eF{pcckw4^iLL+ z6YphT%f6O)&*tN|f=8J&P1kfB0W2Na_g`J}E7N~1v^H|ws+Lx48E7`#{guRBU?Psz zLB;k){MRpY$5W?A2)6v!=!e14Iw2Hsxqs1}yithd`C#CFW@=NqyGKllk0cMRVxX7V zxoKxIAxh$qn8y8tD$GG~E;cu#zgyT@FmdPHn}vydZ=o0aXm{jxeidtrg{u75$!h<# zJS!)v{MW^5|8?c~m)sKN@$dh(f6=YHJMFobez3c{acu3uo=r>$XAlf*Z@a(9|duJs)u^RUt){Bmo(DTlBc)d&$7L}n&#HOvy4_- zlC0g<-);Znw*OrcC3uN=8t^pWX~5HfrvXm`o(4P(cpC6D;Az0qfTsaZ1D*yv4R{*x zG;mXD07HJzu{No5?_*Cr+<(u=ZVJ~I+n5e9i^s;W(nof?$g;2Vq4%$R)PKJ9h>AOs zX0_=;J03gp^n6973@^BYtv&P(CMOsL#KE|&hC~4|uvs%f zN4H3AZDjw+gB#XG2K&DgJbgXQee-^?`6)5VxBcKh~H$^!cG6bV)tJx zzX9EqAi68MJ~$wcwn|hRZY4JMKUKwV8jTO9J{Csjrqx+h0b~DEW&9?${lDAwPj|KV zq}^)3>;K(q@FtMA$KUnt-&w}}D>s4mR&)`{Blr5^_qpxAz48BwZa!Y&Jq>so@HF6Q zz|(-Ifm>Ar_WZ%~-`{dAz#G5cawhjGyu=!)jNnI-Mt6!6!H-}SUG8=SKNFWD_$~MQ zf22Gf)vtl*>gou77_qS`f?s^3I)WcYY^;jlw@#wQvxK2RcG{p!a{Kn9JymcXfN7#6Gd5T&zlT_3^%);f=zO;cg z$dh-Ml~TH7@|WUMhMm&GB!7z%@rlgD6E?zF4EXP07SuB4_~BIa^m0GH-TEKLJ9><` z0Cv3|?^_$gP&^K)8(a{Z9l+LaiH)%U!JH9*VH}3JC^ojd zRq69{#n=0<7dRW+`3ukuUDQL8jd?E4$6NOQ%*F!rV(Z!KvoXgUbFKA22Kg;hS_n#9>6T5k`Oz;&*1BD&uPq zg;pnjfCV9Xwf#z&-wy*421IhGf9=7{#N!UcMeHJ`P$pTs&PA^hOqRd{Sc677OdyFI zYTm&l1}`B^lSrt6ta^pyuVMKKEI|q5NH`S0C=fvhVT2zDF+q$BY?BU`_(3~t6kbfH zrG%8Xx#XLqP)Q_(N=#Cy#3Y4ET+jIs>V;JEcEF$;NK=pWcM%*RK{$|hKnyEefS2)K zND(UizJGz>nT(0|z*e{oqhZAiE`BVc&69jMW|h1M*I@!U%*CQb)LW6u%bJM?VKZ(& z!2GQI4-IU-tBo$_AA~d5b7Fp0{*QigW_(sD=TE}&wO|U^-cf%TQLC#t+`_h@CC&C9 zg(!ClQ_w**GK^k*vUuj{*_4f2;SP+gR6$1kPfU&^hV)^qsr$KZAKqgowU@q)$0Wwn zF>#P;GJZ_re-XOPkFiv!0FZa@31!p_=B;Dtbpz+syrQc*@VbdPv~dh?m87LXE)Zr! zUy`x$AWv?UYj6}sfEZiKBUTrL=`05NF;etCJPmjn@H9}L1{SBbGOtB;ZNZM4%JTk> zZ5y87di9YX?G1Ol^JDdiYVHprzr8)s`iu5|t`B!4`f9nqi@q)VBlhUsCpUyUu5Yd7 aa(8doG5V8VO3}^X4)J??c7;2_9sdE7N;gmd literal 0 HcmV?d00001 diff --git a/data/sprites/official/casual-zelda.1.zspr b/data/sprites/official/casual-zelda.1.zspr new file mode 100644 index 0000000000000000000000000000000000000000..80257f11a3d9fe26c015ee86f1fe4d7e301616d4 GIT binary patch literal 28893 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 I=L?7a59%&H0RR91 literal 0 HcmV?d00001 diff --git a/data/sprites/official/cat.1.zspr b/data/sprites/official/cat.2.zspr similarity index 80% rename from data/sprites/official/cat.1.zspr rename to data/sprites/official/cat.2.zspr index 019e6d62c06edf05a5ffb265b4d6d720e33f14ca..e7a3c0153a586dc0e313f0f1051f5532c4eb4168 100644 GIT binary patch delta 3241 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 diff --git a/data/sprites/official/cdilink.1.zspr b/data/sprites/official/cdilink.1.zspr new file mode 100644 index 0000000000000000000000000000000000000000..3236f7999bd2e6303eaef79f61099184e324e690 GIT binary patch literal 28872 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 S!PQ+{)^;Q5`NHC*^#2BaQt^)f literal 0 HcmV?d00001 diff --git a/data/sprites/official/clifford.1.zspr b/data/sprites/official/clifford.1.zspr new file mode 100644 index 0000000000000000000000000000000000000000..73f848c16e157b72f5ae3f1737f8336d3ecc91ee GIT binary patch literal 28876 zcmdUY3shUzneLW!kOUUu@CX(lO9xDVOdSx9VA+=8#343G8Ji@t8q&CqVpH3h@nHE; zTXqO2F4rY3b;x72BqcG;WM=u^$(quctd?|qlaqvTNf+bbPS+Ht)YhaPmv&r7aXqf= zDscbrY;7HxHl3OJuG>5NEF^vB?0=uv-v9nz`{&d5wcl&1d0}dEJEIb64>8uwO!!UZ z4z`0m!nV@3lkH}mw5Of+Jj}MS&#})E-oU!(oA&N_c-!Yb+qt0&z`|_IVR6|C78NXV zTYx2t-6rP%7c62-V~Q4v*kiNuyYf%{9LrIAtY7|y?+b)c-)VB$DvCOb*4G>KO3|8C z>MB9+igpfF4DFsY=%t}GGv=AJ`re?ob$L2go7LvD`f+PK??O5@C(MZ(KR;SwjcD=CT{gSE zNfrycMiG9u($Nl>U_PqG;JnO}cQR&~0ZFtLmJIA>f zYfm0HJkRDhBzkNsPF$4v4xIg|uG1C0^bD;g3;WVu;K7}H93129PwabP^Bg_HU_@i5 zs(~}Fob+-0;+EkpKPvyVw8xQYwc-4GhPFMk zSe*Z=^=L3e_b<-hzyHZlh#fdA&VMv`)#{=97w6Bt_@UFojt2j}<(uoTT0j2&KQjL! z@0~_*zYFi5Uj;s8RwdUYpQ^xrbQ3==v0`bZv{9K-44k*j9c&*F*lKcHR-11r6j-8O zbxR?~puQ$ukdLb;eK-#M{bd*Ah6&#P`3Q2F0+y{soF0AHVF_4T^zkRr7`i4MSHHjP z*Al1Ck}f#{+M({xck}xA^s`OMw_6RYxZ0}+cN*Bu4obhsGqB{!+M9VrU>|GqeP#PU zEfbje)Ig-ipm(r3$0LP5Do-7Em;Tspfc3DSy6|o|R@`b+q<3)VQ(YW4()jqdf+zN^ z9pl*Q%Q$G7d%TBZ3(GJ&EJfB*&lWe1r#OH|Z35OZIZcaja;>!K3cb7cbYy z%k3qS)0AO0)97LBk8Ubkl9z4ZDJ4q$KNyKo3sE}WJ`#)oPboeP*l(-LUh3Z9+v@73 zH^5lcVjpqNI|6I{oi5;CRIaM_=U|y=c}js!ZS)(Kc0Ol^NKUp z7asR>JhrZ*GGM9BU2fMO9UI))UgOJImS6ASc**;J`fS^1h&Tr?nOCwdr{jR-?%V!6 zPf#=F%V}M%HdnehHDm6mJ9=D=C#iuQv4#l)zqa;KDK9(QjAxJX&GoySa*l&IFE1S< z+XrWq%XUH0I@&tgHY&vhz9Z20=)j&MyLwFZx)`7~^*xHMt-g-9F=Nl4J8<|T^Zx$E ziSEd(9AjCR!B21do;4oOwhzYilLXj$-*^4LbnJ5S{_AtJHb#1k zWoK^InRfqnR$x!Z4#JC*vnJ{TLw*B4$S@a66|PC&an-=Mdq*tSSt2dVH~MQX^*+VB z)GhjN$4JLWI1&Y!UeN#iS~Q6mdu{F4Ix*hF`1|Ji>&GAHTStxY2YP$j_$$mTSX7+h zws=fA)PGI7{2}K+8s)fSBovXOp@>f#48~ZLiP_Uf91Jrs=vQV0bb4GA)YXSl4w~Ot5TfpL_r-UNt-N_NSZmfywyJ*zD?*_eT z&O_$~{aXRh-h;S1(8X+N{j^H|^3(lzLppNJ2n*($rVu!Qs>n zz5kUj=zkpBY5v;c{#=&d#`%Yx`5chl6))!>G9AAtKi>1))(!gjmzl$7PMGGN*tc#> zWn&~2JSx>XT|~Xa4BWr3b-Ch|b8?-amsvMEt32LwH24tpC16L$lB5>=hcSg_-D%>J z;(8UQxDofroOeqP!=uyMq|Pdhdbw~ZcU^^VSxuH0UI_GWC5 zMt{(&HgE9x^{SWcm+i}@I)~mX-|c834pctPx92-IyUU16K(5*4+;2DfZ>i^DPs=LN ze=+{I50+0~(y1Ba<6nxu6#zA3E3CVmk4l1?v0CTD9?YMjqqUB9jJTukyU!?Gz5w@- z;)lB53UK*ikHbZy_wL*F+k5mofXszC_|BF4?6`xIK36oL-TTT#xreSE@;JtB-i4Po zcFDk}E3VQN6j^hUf)D`Zx526;?xfm8thaf6z$& zl%wq{Q5kJH~n5m$7_;Ca`_>F=P2{>}9b*aKu52i*RE zGlCxaci9Zim#%+%+3xHw?|!%8!+??*?S`0kqBMjK>OkFcm3$FM(mqKd}x z(cl~E2h2+|oU9*zX2;RstSv8lnauGS;L$!{!}^u^6>)yI#lL`m;A+zO$E+NucEtI0 z{-N0kqlMpp{DYnsJV(0SR56oIy(FcN$RvTequl<1Dl+kdg4wLgsp|B@#B_5=eL=rS}ywbjYwDb(Ny2&<@ z=^e4VU){dAt$tH!FI#T^M8PeEdD*SYv29#h?@+w3f}!@VBXeZGJL#*O{^oi?f6|wA z*%tr$rs0RrmcjbA!n#v_Lrqwo-ZJ=S&+ORaxTSENe`wp#wiSo3uEppb4qmZ;WNy~( zI+6L$ux35G{e5@Q`J(d%|9}qBoW?((L)1GGvcW&1?6^808~kHL4QOKg_p&$CA6A8J z-2NE0bzAnUUZ=8mETRhvW z^@Yo)uh{oE7TZ0fe|Smukm7&U0V%~p@>8yJl?45Tms*mUVZRV~BgtQFqg#irB<&k* zq<^)Imd(7M)bN^FrK@VOA%88mW7Hb**Gb<%sC@e6j&rUyUzjAUFYd+JrT95li@%j* z#NrHCp6jwj3(#K5mKZG@4ZawhR)&I;zP-9U_EguA5Y61Nfl!Md@>!Vt274Uh?t#lo z)~puR7qUH&-{7P#k(5q>%cs{IpG-=pjIGQ_SiaGIe^qrZzvH^>*~KqEc;B+B#T>t` z&aq35is=O7UH@;}F3Nw~W=^z>aeRR0p99v zIoQ`QF|8lpL{IbXSIvp?X^#0*|Nr4LN*dmbVq6I{xOUxNAojt6kX~Rx0JgD3WUm1S zFU;f^{vUlKY-4d-?a6n2^Q=ePGR!eCo94xKXABq;MTCvAR^N7#QPOcM+04ORZ_Gc0 z*$HzCtjUlMZ8Se(ZUF{=kI+bpGC4Y>yr`TEaf}&CRyGBlgvETMkX|!gc|C@G*O-rf zyMGCHBr|_Z=@>u8XUa5!bDc}wOLhJ3CvNaBZ?st>AB<_v^e>(doi$TS-Y+@#l}8em zk%tC@BdQt+Mw+zDEBO}|&&p9?Me{^6ujF3LzhL-h-cUDveLl@U^JM5#|8vg(q}C_) zK{mZ=J=k~IeyaM1Rq)Te)A*rt^YFMI{Joa+vl7WmHt>fOzs*m5f%nb>)`yhyuBUgL zQ4-YGr<4(OLB@xVOzBx=r*7vivJP#VT|BgHc*{CJI3;Z<|I&B; z(2s?GX^uVKv*vi)XaoCn`H|3%%N{d-r=^z_vj%o|!x#6yu=#-X=^dXfE~YmwynnD9 z{eJ#a;eUlM&gh?L??2;zWh8afJN7Qx?B3#j*n=+UB`b8$d;97&f!mwVcgI+Fr1;$7 z_=~{=9p#uLk2!PqKnSBFBV~Q&XXln9w8YrV(pT;{L2|i;q!SeRgR1Y2lU#1rt;^uY z0WC@zMwG@8O5rRpo;=52wfl1R+jr`=D;yux?F)AV+L9c6!UyZx1abJSu9cFT!M=z2 zVbZrow-D6G&<&cIm?5ebgHst6OL*4WN93rmufe*7P1xs(ta}{YmR^$2dC7I|a<aYw0`3bpPo<)wFwR_YSlB*fHq6ocDSy8(Q3MaADrN^B1)demn4? zvp3QcIiOuKpHSWG?ZBH&y9R<0ReRdpqB6EDe_6iA#C^9Glf_cCxV)rbQC5c4ME)GY zF?#o_-&{SuBsN#}t1tdSim~m3E8c7vmt!kmdg(n$VoYU07G~w-v2g14Z{QB4+~tz& z)=VqEU&xOurM)RH1gz(E4k>Ks44~4au+;F9OE-a5^z89V^JW* z3wrX4kbkW))3BerS(zJJjHvBlw`KhzZ%#nEo>I@7O|PriVKU|BnplQplf1hA3`|}| zDg`=5o&J7JooJ2w@f)STUsYRM{eBY_*!^>y-n?d|_by-@cRKU(6y>hFXg-N(YE+FX z@s31ag67LeM5UrA9UXmrLTzhR1M>W_#4|njftGra>MA()jlr+pdq2l{EFfLX^Zu;o z5XUkrD9^f-dDZ+r$MIldaGqURH2(#T!@zy!qDbITbuc(Y65NEZ z(}ghuzShAZA4XwD`%H% zQSb-OA-L{m$gepJbG;$I#)u>%>4vjYhOcB!U`${nrBnG=b>_cuZEwEW>&eNqA^3qx`#m?`?D1q~T9Y{OgSac^!=Fa2()0L%%jNUo z4`*SlcTexby=w3FWQo6Tiq zeSOb98`N?4C!2i_-J9cBwaTiG)z%HZ+I#PHq_D;k_PM-7U)&XqGAa?Z^;lkBU!N<9 zu@9PONUc@>+1`L%_cV&qEm#C)UV`^ z)Q%1{F>-L-NBN>chdTE1nhm)r>|!g;^QQS!eHSasGhK~L@fi!f@b`~D64V=fM}ufj zw?9zy(j9)-&$#tZkDhT{rDvS9KT!0{TkccUCU!R)WOb~ZRj@;BNL+sE8!~oPL4(~( zAz2%jZYKv_fn9O?9C_J0EbTRjcj6^N?S>;S1_h=U74d7M<(3>>VHpd(>-0P_5*07G}&GS$7b~XnrW<6Yn znJrH})!B&_I94N}$W?8Q&71z_CEcj6$RV9o7aceGV1dAWE3 zudPM&(7bt0=^Z~`oY0=zYPu5H_r1EP(mh^Ld`?#a9pr0W!<5v!N&ivn>?Z4CQ%ZtT zydm;VG!b{?{PCT}Yf^UvJ~|#>^mxzi0e6(kH1wEA=KX1S_MxjgAIoVb4=H0Cd{OVj z@}Cv{ab2ww_zU#z+5Df+|M`#Zn*WJ=o>>p*`02a8b=SAp{5-|Ye79-&+_&exHG5o( zQTc&$-HG zzP}8!FUJST{!^R*4}87DL*rmKX^(l?u)QvI=h2XTQI{Uv(T0h0t}yYPBOyo+j#$C$ zIN6VU^ycfbyK>+4{gSK~uxa~9KTw+o_B<1Wq!A=O=8P4eTXEuDitV6Dm9UlU#%0rL5lyjhc1HYrSKO`_7epkBafHQ0y6E zku>&KYSH=seeb&?UW(K_a9Cp%TG9E;D@!hY`Ta$EYfnzrpDFDzq5mx>|8+A<#x7;w zlvQ3*wxnzck6r4CTp;WHtUROe*rg_l#*LF?=t!|JSics=FSH*E4H);CL$<<_dasCbL z_1ojNSk5f@`$6Ao8{IJSkk+g<^YdS#xH)e$C$@N&)8|FAFJ)Y_BrFM4jgNM(xpvb> zFU^N`I#>8rb#zQ!FW)rsQYhqfk`yX=%sn)F(=2RFG)!p@$(+Z+rc)VrTCEKYns%e_ zZxuzqVf>;8VFc6>_i*d+=cOKu04ctE;3M;o%`YZjq!eFs{Ik!Wati!a>NUSBeqo*^ zh-b8nz3=84ehx(sU^~>!HT+z9=Z{L=WMSY17=B=ZJIMaqHoAHE8rddLU_EacGbe=o zd~6*ea9>;dK*c8t3P}Yxc0Z4QZe7mtlJ~D#e_Zy$=I1+Slw~&s}0>|C#SN699rz;L58CzHy-4N-0r*T(uJU21KA3pf97{4Ap z{_wt61P-%Fihw*_QJ1t=1YMEtNbjlYvZNa9Aq(5Tc#Z}Kk`t`eMIzmtg;Ymz{*%5R zR=uGfOvc{?-DI+%=%LL?dLBLW+}0z4UXLC!%?Zp~v9NmM_VCM6r|XnFV)~ji>8qOJ z6)3)^AnUS$`Cc1wg7jiFNfrZ3?285Om8avZXTP{N+ibUGQ3RSNDI4(lhoaDu@grBr z^IkWZAnQKA^t=n$hJym1wmN9EdQ9Nm7$H-nNZ4skEnC8UIF}r}h3*JfWjKA_g@DE} z`dqfzWot6Q2j*eubBJJRSX8!zqU!ZNcZHebjoL?_<6A%jF0#URVZYWp z;(!06_`~9itc=1;kI74Ip#VdI5qOA3+Kf_8{-dydyr1Nk^yr`B3}@2%rXSYn5q~Eh zJm|;NKRG7mZ_vA8f=)S=(sU)a&ZIzJIKn z(=QOXapKFn@A?+U-162;b7PZfn+vNhV0o)_`EvZW&XP{j-~AMInjqh`J6bXQH|@YJ z{&Oxz3|PdkWAu)y(@IZ-KLud&J{=1k5g75P9*S}|ii76RLYlvfVj*cJy_n2G)$rRMvVrDKh*D!o9mPshI*|LaVSKVB=&T+#IUevRWG`IUcI zwZ*-XBw-v6vXPBi^X*NT%YY@~eBd77+8k#!nC3FC91iy<`2l}^8%O4GSTFkXdnNRw zz<7Rj4ugLJ=Pfh%FY0+Hj>M=>wla$4O~+x9pwh9OB=LuoNuP)GY%OsOqEl zBp0;vm;XXPavPx>x7dMNrt#Q!>CYmV1VI!N;5^anF~OueMV zh_XBT-dkIj8+a%<;d4jNyLzY(fImX}aYrG2RO|7F|B-)WM!DWU;#lAx$)$H(oUzy2+qaAOA{y%8K|Ykq(x_x>Dm!(lw#&X%pIr3O|pi&uHx8T^bmk;k4>>0C5=U z$7SM4*W>Hy(ZcoRdU|@g*B?${8(n)dX)t{Jb00O2f8hjC;#CPYLp@nwISMJ%82_RL zaRPX`(SpFD1q1UI1jadW4MyQD7?`(^j?sdbW>B|<&%WrNy#EAf{^lccR_+g>w;xye ze2w0N@moI4F-9M6p~-~#o6{Tf_pFQ->@im~tj}M(|KZcG&tIP@^W}Kb;@3MW6|aj- zks^LwCR^BuifbQHHC!LPbNCL#{MTjTEjTRMW<=m@xA7JnmQ0caY*Zg>H{k(~GZ@@K z?}{#)!u12!uuY}i6gyT=8aU?9Dxz<%@zb;C^Jk1GT+!p|rQ~`bPA|oU{159#6M0Z5 z8bW`xkR4WLC|(hN%jE}mbXMl9UdRtLr|b1WU!36~FAVRhpvNZG4}iWuG^2D!xC8=v zNFbd+=H;B378@GU<&kd2>nqX+bPx=(-2SN=Kh-mif*Kp$>VVVIikab$H zi!kd8_wNmpZG*Rs6#{$h^b8^b)7l+Be7zj|ST}pucmJ{4lLEIkM0(kL=^2i#6ubXR zvc3y>ovc@drn#rO1jfh=ko54wDqf#HX)R5Ajj?{uO=IIy_C@jw^5SNe0Gqd7<@)fH zGOg^O2mxX5BO5iX|1G*M4 zfnZ?bh)Ee$>{D3KC4S=@R*dvQcX8eE^ke_o-|!x;r1>YQ=&-!(x&{8jF%@&*IaeL& z7>u3^`ky^E?&tQc)1>+4I}G{#6vbrxru;tc7wh-1egNxCa- ztYV5%{Vw^>3R;(UTbA1^UC`mwCd6O1)mOT1E(Sg*U6bl2dm>5&vrxKXFn6VJ%Vm{C}hLKH^S0ll>oO@lg!Hx-sKO}=%| zdcg6t9ZH* zi}Jr`0YetJ`_;Q&T|avBd%!nJ-<8`)5oq~jJ>c^3-M3W~WHYcq+z}c7HY^qOMcc?-?o3wQ2guDvHSgFk#$BvM!D6C4oRb!=WkJcD-!e~n7 zVl&4+r(Lp3 zoA&L4n?`Vx-1=8N)jGO%jNddo5CO|-vLy>_r#Q)53X634%R#FF=g9Lm5NgtJ9Qb<; zPLkpaXLbJ{L@j;mWjC|!?4HP{*=qy47pNoroW|^G z^J;Tj{rcLj+=K=52iEVjtipD#WNck~O~GuzY}riRBY!|@QxrXfmIQx=m?mI0r_^Fr7E2g=!83V&bgtt%jn-kPA z?2TG2MYIgFbx9n{Nth{mgFK+_H6)MA z1((Z*!wdM|0P#O)&VnC``^u)iUqVutz;;`%Gv85O!m-4@MWT`SHJ)|ZL6V@T z&$FKh`5XE~mHbCH@%$$|`tj4{Gs={L`oP8Ic{?_aVErEE{%&@E)ha2|3jG0de``Z~ zjgRCw*iT^htaF@qo$x~k1I}}lxyxn{UA(s+?a{2u;&gSdtFXUv%rl5^e#mK7SRa*s z>f*=IMrLEt*3vUH15@n4cm2D_ZA$cFVpf*bqH?Un7-w8D&Zn_BJp;JE+1>#aZ<_YIo^X2Lhd z|BdK=M0&5F96UU_ztn^1{#s{*wDc$w(f!squo2yFjW=cn$a>+WtKg-)#BZxw>>*Da zFKwfUOn*Btr(56X-O(I^F(CAJ=+8#B6UMI3e!|G^5NF|t$bLfceIwz>_Cb;T1oL;m z@{qFLM-M_TGTF`7`H>lb7x+1}u~Tu>4VJHD$1AG}Xwp z&WDuymfd^n3bNibSZd_=-E%YtT_Y{#I7tkHL3mz=g9rQaF2GJL><50; z10wr?nD0gQ0fCXh<%d7Y8|cQI90uE2;&FLNsea4axa?Z&L=b6+$jI&>*vz*S77~|VgG9-9=W$4k_Wf{ zVfBCK(B|Pek_k1so)u(2SVi-t(Eq^&s}^GvaQz!R4`U!gby2wez`zH{@9w6xd!pqC0{58fHPfBs|zV61)d^De{#ihovn177*zrdOvJ;PVu!``MbWBsqNza?+} z2ESl|NH4HJq+>^N4iWp1VMqMNH!Se!B|ZNT->;<~rr&BLeFq{T(~F(fcBW&@M%Nbu zD{MbIs|fx9Ddc`-Xq%CrL}C|-gD-hs&`a#+Qqg(S+}Apf29X2fQ9XMfORdim7{{L5 z`oiWjiXLvB%AY5&`-bxeV)ea<-XnFCvj2rs(R<|I*H_>3wd=TcNdF$P>1*OfZt!~t zasD0oD>JZy6*F#YL(8hpk~*?t@);Rcn|=Lf$V=pmqT~LH@?(dd+j^cbBEh8i+Ob;7BM98f{;m!5t4VuC z{ZP*6hID#+?1cZvWd{y7X=AEJ$L$pVc>C)sP87~^|H6h9gq+#XDINGru(dWj2*LKb*yW+B(d z#lGL=e}fMD9!b!mE^yuj1M~fr;&Af2JdL$-E!e04%=2MlpUA-{j*A?80wbefu#n;n%%ymNAqU)F#q$$lALIbFS+3nxjPYq@T!s+zpxCI) z8&Ge-@L%v2ewpTA8xJr4ujyGwJ7$1Mgxfrl?<$f-UkKYi7y3wHZ=8*V+sz{#5k?6)PxjmEd4c zb=^}98AQY%LuSPM+d0Ig0OZhX9pw=~VR~a9$cW@e<}2R9JB@cWf?l-nvqIj&-hQ;; zr&X!Y<61}IzcW_B|6Z>?orvBS-;z5Q;si@1XkW_Swh;T&l@|;eSJiZVo zpGPWQU?E<3y$dm2?|6L+ZN~LqhjDJbPV)FdyzqJ#;uwoXlcf4r3RAnu&8i;|h-7eH zKaoyGzZc--d#Cg9xnm(twnxwFe0uw7n2byF=v(6a*W=rLx6^yUsOD4ALM;6f)~ zX^->v7h?VHsNW_yzu?znV6}O@{@zp9zW^K8|I-E6pN@_8exrT8*BaN)pO1m@&Rgos z>D?aI+y70By5Oh$`LxtukN>0V*BgZx@-go}dHe>xxc=axm`zAMhW!Y34252rMw*%) z@BT6QfB31<$_~o|72-n76ali`X80c?Bzruu&&b~k3=f#7kMmkhI|Tor-Mj_kIB(&4 zoK6oL{A4;kc`+s+lBEh-NG}Vq!obmuqWqWr?}|aJ|5}Kp1;-a+b;0q4I8FS~Yc9kK z$o~^is7LcLaYj_J-K~w7SQr08hLX<^`nyi&`yamJ*p^U9Nt+(*m z;{Eo6WJg2%0OW7Ad7XbV+2GLU=17V`?oo~EqtEq3us)C5BYMbZ{mF*Tl4kNo)57AU z{~h@cu{zGhdh`h9tu%M@JXFV;QdRp(|wt<*nFdVZTT0AaV$b_&cWwE5HmKqsYa}_RgX1 z2&aSvf#j3~zT^OgwO*_~T3WBLKevD)aB%e;uYT)b z-#Lb>=NzNxeDS$*ZA3*D^eE9|?c*xx0A(-Z5zxT56z+2F$cIIhyeGbCr909vAuRaN zrIt-KOkh15$~-$;HvI5eZ)|>6smae?~db9zpI&%C58Xtn$&C6^DN<{pqu| zxHsAxd8aY+pD730SIp#$&$yO(1^IQ1|GvQ3_5Xc=F~0ifNa%FMV~4&%3#-L{UpQ60 z>j*IB%}&eEwyByRdEfc}-vA!mi7c>?hxv-V>`PYioS?sp6?|BSNpjB(mQ?>OA?su9 z(O|0ome79>S@EU4ss1}n)xn01E-BA1xco<;g^jZ7#R0@mZtw;2;eX_~)z`A3 ziexg5?KJxk|Lfn;FR(-jN*X2_DF5B>UO#4d-#Ml5zF(9%zR^$d-#b1qy`es&9I%T2 z-tmpw|NhQ%6L_5O>fQ#ug^7|AlZUXNlRCbO_IE&KF zCP)qe@0a5IoxI-hwAxnQl=1=m1$#qzP+m==ikHWV?=shwcdJ?w{{#C-de45GS~UuK zmNRAyCEl|PY}EYCU&uRH!YW+VtWLLI0(%Kp*f|E@nN~-s7xDs2#t<7+1m=4YJ=>ML zap}fnys69-%B9;;DdO)Dzq_x0<@m}8Uf<3n%B5R;t}v?icYC$TXQ6f5#4&&uTbty7 zLt#NhrRvoG<-HLHJu@?L4B**dw>{va=u=6^pQ-aF9~+(D-B#aG8BX=z^8;t9BmzPj(q-1+`vYd2B0uz3X*Qe|kln1$hW+q^r=TNqz zyzIqUNz4{mGEI35|Ng|qUUsdK4*AzohUvL(9kXj=Ct9wI&P5KPda@v9CwaO09`kRk zKNwZ7UwNHCFASG^$3jf$9>)8-{q_t=g0L39H4bN z#Jf{ZuG|8gDT(WWUMqK5aCD^<1Dp?tjYm zLDzsQ;q;*3>nL(`ddMD-#d9gc2l8IesF1yfsW##d{MvC{r{EZwdl3P#*v_Y_ERug3 z7Bwu&r~iM1l7AtGo+L`l!$b@Yn#G0R?U6~FNvwGZwvFy!-q z0ci{tkjB!>9w|h|X2hD*QYKR9f6)73!7TMC-ZPZBzv%pt5LQjMjsD58tjm1mTMOk; z$0i!&tABS68hDUa|0-t%{%z}r&4G0Jo3|k9)78@xCw84Gzis`nIsJxGHUBF=wy+;6 zXG*6luPl1?t}~@!+ZOih7D!Jc55Dx^;3FNCC)m%dj~!a_{?4gepMLC+CwhY2asv4e zGTyuMz09u^pEJ%yI#+7G#$K$xGUN~Pyesh981)xoU`<&Mkt<7%f%aE@{)L`|{*N+6XU6*9f<+u-{V-Pl&M4dm&)5DU|1if`KMYMvTt8nw4DHXRw}+fD zXyKBBOn_vc;q-`rANLOj!<26zJ^C5`yY%R1_}_nCU_?J7ekVQp8UDLRN%~(wF$f+S zgSpNJ%kNuuPj%H|TK%61S!9mASN?qGv)g}A6^>vf)O+RMqx_Ktv$Xnu5MC5Hr{1xR z{xb`t8x-iwTimpICd4tu>UmnpE1nPV2|r@H`18?;Zs23Sw`b|Mb6;%y%YvfZYWwO> z?v=X>{=$@1)6=!$%+DepF^XxAt^Zmf`5x%1>7}-7i`$Tce`814{5QidRUz zZ=Oao@&Y0ZyDX=S4@f_a-kU$V@4ox){oOlHKE8Mfb$G&@vsDPT#;Qhy+=#;OVVjM9 zfSy71XdPOMmZR11$z0R`pRB>}8lJ%~_qRK92Q0{h^s=r-V;u@0zihu8(@2X_sPU?% z1o8zMscA;brZh%6kF zXk)&?c|jCp+u=F93?W2)2BL5WHwu+fwJNtdr15I&=uH%brcw*?R%_qXR%>VHtw{7C zzt3tZX3Eq}j?Io^T|Q*-_4tR*obBD!{o@leL-E@OeO1#Y%i7y~9}f*j+ap9H6Kzvl z8JoIFQwz6`Mn-y)wp>3+J5f8Y5TQ0S+~R4d&1hhTxNkU&o7#2^UOaH1!`7P9Mj9>&tYF=&+ikAmv~A|R!t$ij#F^6I@7{ZraU@*Yezr^CqS8l6^4mBs4_bHC^C$ZzL+{3rc~ zeGhYVi&9Zos47rZsmjyKSyPgp)}lvBCuGl{i?d4%8A&?8p@0ijTl)62JI$!i$0JQ3 z!1e5344C&>cpfQjUq{bTtxZ^~xte$N`SlhX`d;26l|Ovo*|Fy*ZQs1eW3wdf*MF9OyZhl5x|c%BsV>z~tbgbdsuB#BzoGvA;eVO?EA4Fh!PHVU(LY8e zN9}QLaYpsez{URU{7YY8{iC$KT>ouU#p=HwB+2#Pw+=6g(SLKoTzvf(Pk$2q)x~_a zY}1qqM$}(d=KXB*!s+G7lK$AhUTCS+N&2g;qiN?i`?638)x=!WUDN%m`W?`pS!iIULiUEHs%Dnfc{%$uZo<%%VYHzX5@SjQYwF+&%82ojcRgAi9S=4 z0+P6=?!5(D(x-s@W~E^KQu9e}gJVPEkbl702smM6;r^pNZ2?`NqY>jmkbe_0F;m&f zEED|t4`!t$n@}cGGQMCu#vWHE7w`u_2le=d;B{NT1+pJNJ^QUNh6A_IzN;k&-;>%m zb*ll3?HAF7lpX88bfW)emlkBrP!(qvXA}LmmAe)UA(m$&`p+ApLm0R7lK!((hMgZ!|T%(qPn?;Eq38ID@t`#il}Ix;_TVH zU*}KbL$;%Ezf}>OGx(u^#rZG9?io{axlFRFh1Jn~NQl(~iZ54V3FEu1p1e7!LL z;r62bu$y0)`TMPs{y4|)JwEG2tUr{_|H||q+|s+c;qmWL1wnrv)4oIF@n4Yo9Q{+U z-&*IkJwAH;hjU`b|K~YG{-pVn$e%QS4)+gt59gQlZ|o0R@ccP$u%h>D@wmZpgS`UI zrAn#Evhi;=O--Kh9mapW_S?AL82zCM%#YC@O6PB-`tPp(_;B!Al|5mGx=KGo2jgF> zMNj8dBvfiF`qGqiy#a7laS&`J#&7Tsu`a}+-wYZB%=iZl0ho>NZ_4igw%LRl5;`^_6=MJP`>jmXddRVvOjluJ`8ru#8H*y2)0E<08K4HJbSG~Wrv9)o( zgJA6U(Za7UZdx=ZK?Ad>xbdjZ%!34p8?64E&Og$)wV+kvVT4x;s%B$8xDWo|4#dvC zb=uhZw|bQQ9bOkZ|NdxQ?E2y6>yORg0fV0gYDerKgEC1(yXR+>TK-q5q+O;uJFSBm3*I^x4Il_ zPto^zcuolR3))lgeNvyL4c_hc*#0g>mh|az`&$S0cMh??hg(u~p+FFc_IFd;H$e?x z(f)?@2eQ-h^+%z>2L2au{Xwh3!g@noe_RVuG3yVd>n~HXNmGIx`c)-%g8}YtT5^`g z&NkW?+Y1F80MARnQtj*KgDw~BH-PofW3l>;fffPh(dBfpx>#4DH|cb+-)x$eRGC={ z>%VjX>*?K0uw%#%>p$KP`*l}-vZ}sA2kSqB;L-3CliL))yQvpbjV;i28#Z4Z}pS2t<><1zds zb!3(3KPXLnChOAXpFAh|53av{yVa8yN2&OIag>T!9HkN_5egCiIlNks%OXDynBQWs zd|&K)78S9hrovG$_WOT26c+pk()ukR_z$G@+sMFB-wgCYh`Ja*6zVtSsJA&eyo+HQ7X#k&HM{q=ZuUk8C#4OTWf^*VP>yjVN5a>CN3^oEk7#8H6Rj*^ zqLn2a&%XfkOW%OZKX2fR`p(Gw^YQ$1p)&!lwUKp-^JBpo7vT1&e=eSXp=FeRK|RX9 zfDj9Rh&^FNpaG(To<)H1RR)-#E|k)xxlEfhdM!eq>fhJDs(*QIZ+glKjB7I1jJeu; zh4Z+A&TAPJ*1-b@->Q1W*wz_vIx{k?R;m4N+FMLfQv1JK-T)Z4ALg!X^==5g5~|tB z;r6!H@jp5+H0G6>8jh19cMCNoi8L)m?&g+H%%W)=xqD$IMDF&54+r;sg>d9<_wnr~ z9D~&1ef#jbQ||x%?(shw>1m^G8rxv5Rqaw;+d?B9ovts*eyVhH-q*{Uy&UT0njBST zuQSAt_%6Ztn$Nx0eVTuhPval#UeQk4Phpp%mFOc!w0(}p=rJ61HG4bI5a)5&q5YLF zJ~Q z3N|&@!uc-tLEARDu6e^gn*4`me2{;wL|o{GZT%Cd5y+V*S)k{HMofwa~vN=L2?^+3Db& zJSSm?<5m`mO5=B4Qw~bkB_$+k)F=t;HK)l$rR&B3*3vrgKdp1v%trS7vS4Sx=lAjG zz25Wup#SHt*_~FO1+dp{N35RJ8}ubi4oIUTf?0jJ!368z5#;t8+im-87Attcc{HNd z`5XN6{k{Gk@PhM5t2SkrQmgXC>sG5XGE!6XqqwI!U=0}DQCwYZwHgf4evqtr;a`Nd zi|x(kdGmhpi|tVyYzZ=e5^Nhn$RAd1B($-I23~dXkLJtO80-Ziz!nX_l`QSE{>cIzFS~>wYF1B0h zmgsermE@cjFSb~gEYU@=3Z*ciG-!)&mas8QT3SmBm;ez>K5YbPZf&&^0RLm@Zf%Xi zxNrJf+%6+>8^kZR2+IRu2_b%T!&lKpfEczlj^eAdaQ&B!DK+UK_Y#x1;uI={t38LLC+F_#IE!ttC-7VT-v8&@Bz8*c18@vgi zV0Tr8UZrQW5w}x!cSVIt#W0$v8;VBZEKs#BjuSh{%F<|D0uG|k4sX5PMyp`33)_wz z_4PKJDvA;Mz!yScs%x((4L%>%xqAhC_1&iGaAx@JaO2t(Ez)X#d3f%Ew9KEq-Pnl3 zhg$8W=DO6dFMK?l5SkhUYi#3=-@VKFUOb+VFm-A#;Lx(GsZESmYoAbJo{1{yXP!vO zDo;k*{0X^cu)%2WxXUj?4;Mnd0Q0q_ncMc(^KX9jZq5bdV;GBt<3c?l!_~){s_lh! zsV2DME5FLkTKL4=1?ECF72g4Gnm6lma~&J%4{HY1KHte5FTS~M$H0DL|749CFoI17 zf3pxA?mC;&_(bgL76HFNzB)!Ic6E$U?CSVBCv=BDvZ1<++RU2FL;1%h9VN6`pea?nPikb#02ENL_cIsOH(-}5&x_Ip1*uisUlTK$}`10T%TfXn` z<=*k`V&?xC{>1UT4`cWfO{4e|U_StVLgF8J&0dQ~#y_evFS0D1DCy3SI;`80A;oV; z)K_$0zM=GjmZnx2s+bz4OXG#v8lg4QbF)elmri4oLDRy0_eLA_6m15V`g-c3Gj8==t zT{+f;xeUNPjBras3PCH$S=X+K^4Z_j?Pc};}B6VJa|9B4OKdltbKd6TFgTTL7A)Nm?E!H1+ z{cwTvuCPx9{sia`?B7_yy?No+-<%WpSE^p6^Dq8AZ?1tw*az3FSj9Xm8ZEiC4M))(5|7$dV;o9J}QV~87p@zcQV82oq$ z^B-q%s+LImV(Il`a)^f}x^woc^FKFN?CHuMFA@jtvz?1A8T z<2RmvFE7i zqaGh-P>THNAZLX>L<}p47z-X_xdo50+=9ngZoy0XBQ#2Xd_F4v-k@$e-uM+0wt|ajR$X^&%k8s~|SEcs4+LlGz=5@s$ zKkoReiaGwA51_s1zZ2~TiN7zmAL8*BGcKm z`Sk_MOEESvHufpiQ|KvG4frekh+(^X3hE2;3+hjR{RNCn*2bK5oJD6H70i*MSPTBs z=VC4Rr!!(L_%9E}TJYXc@h8`)_|vuiP>g>+`@-ZH|33CV#^cZG7|h_6@(+drn88c< zw+pDknE7)~>8SbB6#)LLG=8>4usD9=jlU|?%#FC*z}F(j5BWU7ZEiRCV9D|0>7RJ~ z#d!8Zh!6N8@ezS)C6k$I0qqQ=;w`S2>pD|zCEp+U(l&?3Bn)9B?x1=1Q9Gr5XN#D6tO6S1WP@L zSnL5o)Zfg`E$o@!Q{6NFqm>xjS(o{c`Vcy#?ldC=j1hBd`~05y)$@DWz`@2NzuCne z;0~Yz+y;>E*d7R$dcauT1Hn=c7|VMQvDgE_QV${)dyrrI?TkO%-`%|b%S)pYB*;$< zD@qWNpA)@N2@>R|f)OQ%$Pd0|u?H-FSm%g6VEMy3N9+O1AJ#cy4_N+umPWf*?=^3* zZ!p;09G`BsvXN5Ec~(`t&H{{ zwC^;FJ&^Wo9nl_y_8VBS2htwPoY(_CK9)JL2Yh@ib7Bwp_*mw|9`NzSYroy`C*3_V zex^eV{Pnx!Kal6|iTQ(CDkqY^C+0t7Me_G< zW&R(J?8#F8!&2JdU08H|C z;?1A&*5C2`>+$#n@#f!n`GfJ!Ki>Qw&;E#)e}u39P<~BjZDt+#)=B>3xd!ZkUoG%c z@cDn0Uop@$Fao}LlK*(F413^D7h^20zG3};TluR>+uvBS?u|Xt`sc>+y_@;}OgdAd zTz{nN#wL!|AJ04OQ|!4o{!jQxukt6qKKuFJ;|~k`r15q8+3#IwfH@>o4+e4~cXrf;pjY*XYXLSE)9NqE1 z^i8b);rje5+o<{ry|VfX2$cfw{yZd796Ggt9P`I)0@VwP4;GcC)nXuv@WeFc{XR=`1v{);dF*aLs#`R`W7-_7cuD3^a__PgBw7|TC= zB+4J~IOXv_C%222;(zz{=s`%S{3{)QO65PE{Sa^c5ikEIp8cSdefA#7?ij@Hu>T=lzg~#n@iR&E4C2*-e)eep zeVq7rJo%63Kls<&cXPjSdQ^5j$=&W--naI(=eE$62*&Gow=8}q)E|(=@01>2Y5RER z57*x!KmUZ0N1=L<6o0(e^}o{dzm@g-&HaCOCVm+r_1CVS-vsu5mHH$z!x|nIR5{I$=SfdHf$Np2%|M;x-{YBV+D*7KcM&^Gpzv+$0{7>?ml-|L6yS-BXnbP=W zJpW&)Czk(H)^lh1Kg#(tG4g*y`Hj>MjE$e4_`q{3_B)OM+=#y-*&ny(zm&$m$9fg` zOH%H^%;_hAztn}UaZOGe)DQF+FSXTXbfIUOck~bT^|m+fT(|S$0r~uWZghJ z2j&mS?GMZ!!dHJ|`$OsIQ@Z|&C%+yBYF`N}P!c~MZe1lXSj70bQu|%0{jocFQtRKI7)|AjNu=tf4!PYj@%PF-M^dpqFVIQ*e__4^2a zsA?2{XhxJjbbtOx#Eahtof z5&NMmT0fK2-+U-rte+V#{#{1{|5d$4E7cF4UAa1ARi;=!m_oRIr-irn5&mm9Qopk( zf_G~dQCrl-33ch-8Ft_+w60t@M4Ya@5S{vzMgc%3zH-gPcdKlJ?jcv~^i)p{svMRRys-~FsZ!~O#_TR03RkZ$Y zGzaHyw^zwD~_l8=+X}UDsTRLg|b9?^R zrxR>yn;ICTh}4gKvanKHskH(o^&@f46|Pq&){n$FR~U=+BXQ1_n8Txm93GsrCFby` z0h9W(jQ@r2Z`9@3HuOX23%ITDmk*L%tEN9|e)f z-=6B5)zWVW%J|zlsK1e{(xPOPP8aJie-C2~rB@mC7NZ00aX3KEfQRYm+&{mXU`TNn_Nz#*)J4vv_og!GO4W;zRq`lJl|IVDnjeD7m{t0~#6~VuM zf`|Fw2l~X~8ulIYJLcW&A_hk=p#F-b+xda>a^of|j$mlf3iWR_za9J0#_fYa$ob*X zIO7vJi8(KO(trnmu?8h-GMQwk-IAd$MpXhHo2Xamv<97pH6tu9xB}_^JG74y|Gj?xar6IR zO@miJ;`39W5{s|`5}%)fuV3_m;~X@C$uo4Wz%u|amTE}2h5b?vT1$seU#~!_-;e9- zJy952zyD_ZRq@!7=l578|2uwu&qrHC|GP_ge$SJP=zs4Kp5HUPPdabIB!K!(uMEga`NIT6Ge>H{aoBKA5zbbcv2UKLVGHMzcqVA|N9Xu&L6fLMgRRrTX6nxo>BDQi}}Mrp7`&@{9z+c{P&r%X9wY5 zFkANQAdKa;2{D$}CdBw&-@;x`-u$d-Q~ys!m~ydowIzRD*0e6sT2S*B|9`^Crr5pf v*D_@bmM(d8`pWC=J^a{j3^fzW$JUvyx3{i#-nhpr@m|mOanHj`Hq!qC;bA90 literal 0 HcmV?d00001 diff --git a/data/sprites/official/eggplant.1.zspr b/data/sprites/official/eggplant.1.zspr new file mode 100644 index 0000000000000000000000000000000000000000..c33c200896c272191be197e1b9c890da24282dcc GIT binary patch literal 28876 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 literal 0 HcmV?d00001 diff --git a/data/sprites/official/goomba.1.zspr b/data/sprites/official/goomba.1.zspr new file mode 100644 index 0000000000000000000000000000000000000000..0438682fe048fa5d6016de650db3be06e1738866 GIT binary patch literal 28863 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 T8||9of0pgm9{%TDr*{8e<=c(F literal 0 HcmV?d00001 diff --git a/data/sprites/official/grunclestan.1.zspr b/data/sprites/official/grunclestan.1.zspr new file mode 100644 index 0000000000000000000000000000000000000000..cf371839f590fcbca16adcb5006a806e28deeb99 GIT binary patch literal 28875 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 literal 0 HcmV?d00001 diff --git a/data/sprites/official/hoarder-bush.1.zspr b/data/sprites/official/hoarder-bush.1.zspr new file mode 100644 index 0000000000000000000000000000000000000000..d2adb22751633620f4e3a1cb6e4950016e305e2f GIT binary patch literal 28882 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 buKTyY__)1a)i&wBiG18%@0rIIuJ!*f>D}i& literal 0 HcmV?d00001 diff --git a/data/sprites/official/hoarder-rock.1.zspr b/data/sprites/official/hoarder-rock.1.zspr new file mode 100644 index 0000000000000000000000000000000000000000..a93fd1c45820670da1b0dee530425f3dfa7a2efb GIT binary patch literal 28882 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 literal 0 HcmV?d00001 diff --git a/data/sprites/official/ignignokt.1.zspr b/data/sprites/official/ignignokt.2.zspr similarity index 93% rename from data/sprites/official/ignignokt.1.zspr rename to data/sprites/official/ignignokt.2.zspr index 56e98bc90f803fe10e6f624d4b899092802ca0e1..f06d07cc61fae0b577a035bd2fe7e2a6b8fc1cd9 100644 GIT binary patch delta 625 zcmcceknzexM$V|)S^*a&A$rw_vDY_y>kH3_xIEQB(5|3~Io9214>6O%T8i zV?eoRd*gC8Y@Czt zpJb#lQ$H|aDa^X7F5Oz00?KILjV8( delta 373 zcmcceknzexM$V|C!5Jqtah6tj2ajxOSm{pp26<0Il|-(qYw)N3j>1z z!v{G0vN_C5k4XemoZ-)82{Rq65}R*W@GwqZV(9?HCX;V)YfN^Cmzq4wN?~$Uyxis+ zRtb!ZER!p(zEfx9CSRwF$`KU)wj8n;cwivBKQHd&4+2DG7vU?@4$WGo~Aj$zU>03}4GXUd2 BhF1Up diff --git a/data/sprites/official/kecleon.1.zspr b/data/sprites/official/kecleon.1.zspr new file mode 100644 index 0000000000000000000000000000000000000000..5e1786ba55de3f168cec86741c38e02fc1b4cf9b GIT binary patch literal 28863 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 i>MJYwJ&D;1W!crPt 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 literal 0 HcmV?d00001 diff --git a/data/sprites/official/lakitu.1.zspr b/data/sprites/official/lakitu.1.zspr new file mode 100644 index 0000000000000000000000000000000000000000..24d0f12ee246d8b9950b7821b10869dd1ca7cb08 GIT binary patch literal 28863 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 literal 0 HcmV?d00001 diff --git a/data/sprites/official/magus.1.zspr b/data/sprites/official/magus.1.zspr new file mode 100644 index 0000000000000000000000000000000000000000..171980ef38dcb5c3e5eecfd5406ba5cc0617e809 GIT binary patch literal 28870 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⁡{4}>~b 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 literal 0 HcmV?d00001 diff --git a/data/sprites/official/meatwad.1.zspr b/data/sprites/official/meatwad.1.zspr new file mode 100644 index 0000000000000000000000000000000000000000..a09a4adf2eb5fb2b5beb172424b38a8c3481c77e GIT binary patch literal 28880 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

2LPxg*7VH-y$BB7S*>X4Y2j` zc%y+>Xi@#5dWpxhxUB)ki7kj3-GKfV$D8L*9kVuTP^`m=@v_d&`csXydLlZmZ%?b* zXhvFK`ezRrS!)F&Aq8a^?JsRbf2?`1bD&x#H$!Fn{#P9S$87A zukUk{#eIw25z9M3bgjjG%W7M&mf-}uvR=d!nn)Kc`$<7h>bddU_(Zy>vi+npxEwab zCWQt3>xVMXLo~|3BYD<)I(S+c({)XQZJ?yR-1)ujXT#Tcq=%>+cnqG4jY;VtD$=|Efn(5oN(m}~cC?bHHkb#Buc z_0QWr->_9lw#1Ym<|pTYcr&?mNG8$!RJ-YvIx>m+T(-&X&{a z2VipzLVnt8kJ5fu$Q!a{H@DSAW$hu@wtTiPsGQH;^RBW&gG$NaF=zrJE$V4Du?+i{adEc#@dGTXOIDrT8JeJ%xaS+#wz z2D6J}AIxTWhAUu(6!YV#WglEPKSsPUrPa32@$9tJ-=ehH77DIC9iO4i3R~yI`u;$s z6y9act~_Lv0I$Ee5#KD0o-e6t`wjqH5Bcgql^=4irQs~QEE}lS>jPzaC~M*Jm%pTb zVc;Hrd3%Xo^R7>Ro?fTN;Jy16tnglMGAZi&VLx=y4cn^glcnuB_2=n<14(k~Z=wSS zU~j||a#JlnV_}ac;OF=ciMQjHy+SYzI-i#1=Z(~J zXI4F9VVA41(M3LQz#D7ke8w0fQnQ8m+Q^8Wp4?RAS8Sz`k#u^~rexBE#NNh$KU5oQ zOs!>YRGlsZ|Cpkd{C*`_|{u*z4qGOHs))w=uqZ@#@|GWMsK=l-#&@{ z^-oQM)L`2;o`7}R@Zb3$xkAvV1Rm9xL)d;S{C`=Czf?o||5$%yZ43TdOG2>zs00`b z2{DA3VVkB?8Ztt|AW8>H2N>(Ngb0ALmbsT;wJs8D8Lp*%sf`h=j-%SZn6Q3lP-Hxl zHB>`bzZu6G`&K5EL>ynO#P3W|;&B^NG2FK@8V-6T4u@B+42QiHJiK-9ExGhS8q=7S zwr;)U7Jv#aZQSc`z#EilNL9V{M_DfL~Az(WRHRwbelRmADu-6a1^Et=k7z zCKCLcw(;V>&%Jm`nzPZVS)5=PxPkE8S;gM18mWl1ujOyYIe? zjdPn)i5os13ikGjab0_DBJuH$2P^o?)S%2SD(x$V4TJ9?lPMM#E!wv)Y-7I0>GSDT z@q0&v{fIGWIzBRD2VwAqcS)!A4dtTnvB+Zk_T_R!t*sKj+h;m$jAhg37s+zWUmyMG zVh%{MQ*CWaW0wS^D2rM@`^9`-M(@CTkLaVlpktw1hOOwMFH*H`$*~-)+d0uk4{&)a zdd8~nT3A1w+_SL0c5(e<;F1s1D6OHDw2Hn=5Xk>Zf(Ml@SFWU5cax4qx8l_>Yt;V{R(;fV)zXdP{L_9Ee+6mYf@iy6PmBre7O=7I1zoLDn8Pha@s zGL?Uj>I=ESv^LHD;0JwuZnvUH8rJErv=d9`{ly$ppsptpQ&U%7>G$U>Ty~egHhgoc z&*K)f;&y-SYd7D_ElAqY=v955%C2X=#q$kI&U~I_^tUYh%dv8HXG4H4yG+bR-}+WI z3zJ#}ANG}f^J_{|@Bvx(a`n|d-z8{L*fT@>o|ty{`i*b5#R zgC#f(TZ*;1CfYt(nojC$-;3)yno7~OjU*SpKEGR-MZ8C%EZKltD1mj{Y%W%{%5iRdT8FR1g{cD1OR^k=u6h=1}g zUg*3fJfno;=EA{JQko&{>vs4_rBoF2Uv-+b_@~Cz>Rw5El1Deb3AxX!|5jgL{TgNe700Hy!VrKAC*Q>^aG;HNaXMQzC9?_O$}Xf-TB2e~cQf zMNAgfo}xOPF4943e$B#*0gW$Hq>-%DzTZ85@zMP+EQnuxbl?RmezAIW$>K(6@BcFX z@!ziRhYYFnv;o7aLDnWhKZw(9RF$2;OHavKQ549sJ~DGa(@fsFM+EhV72`? zfV;1@A2WX2IK9AryeN2jf&KV*Z2M1$YKYejn{E3~2&jhq^n%X%1MByrxUUSYvGfPl z@6F68?sXZzbzdticYXK?(^9OnjI0N(mGvoJPc=fBtZ z#rIlYwJg^P?o{YYYDh#cN(JCqoh^t8xB#yT>DfNEAhHKuUc&;-I*Oo_-&60ebCvz?q`$eSRh^%iRk{jT!Utac4pnsXlf$4`zUzG@&BE2^A6WzgOBl1q_ErE3^(odVt1*G`Xsrs;VWNZPi#)EnDi>lo0%{UUn$ ztocLzbpzP8ZJkwqxc>E4*1L9JbAFMShp$Yg(}xdlx^{7kn1_=|qT1TCX4mq=zIlJC zJFhFs+vkx30g}_s7;-*dOrrgI=a#mKzOFMFQ?R@IioM&6H1#JsLa& z>euip<`DCI{lnjjN<0E;YxP}Pv44FPwZef7t+qHvv?ZdWnjy>YUwG%p`8DN{>^e8>0mNq{W*lOE@FM!(r3Q>+blL;&T3-lQ! zwdNh;4cnf4g3i&8Dds;LwbU76+g3e$KkWqr+qUYhHN21~j%`cVG_>g0w$c{>bKTs6gMSp_79^G} zI9RkGv239la|;d@EmUJ}LEsGd2lxN{+0(OAx+w3b z@~I8RBD1d|KV%ECec6JUs?7I77JTmU*>Q>a6Lt(iH1TS z_IUhQ95YZlgUThNZT7((4}gEhGmL*!ng17C7PYC${2yU89#Pk_1p^57K|{76Fw>kE z1M~p2z%(bu5F>7ZX->9~L4Bq<*#cuxSB_r#zhv|;_!S&0eNQM(rp^6g^h9gz-u;}3 z)CZZ*Pe9_SivDsip5=T~wlHl;0H!%H22q1)uDS)LIWdL;;^#8NG$&dps(Cy?j?)tM zI`OIyKj^8(MSX&D@U=_(OOhja#uK`0|i`3nKdvLq5d)!t%>DoI2daMBLP% zFN6OltoxhJAciYb%*=%aX6?JhkJu-7m}0Irlxd))4Y6R<6AQG}$Le8?g5MDGFCC_$ zmP3A)4rGgoq+T>~YRn^WuuiaYrmL}`j~k4K>1gww zx;l#v1b*|{UC`Z`4j7kcN%Na0U(y$W76pEzxD0Ebw?T`HIi={$j=#UUT7DjlJ@wUU z`B^d_96hdEh4IJ4F09*U`)4I4tU!1KPO6TdD8J zoX7GA-DyX*a~<3ZJRveRl`(T~IMCtkZN^dtiMf|OxE(e=Ho3%>AR_*?+nBc{h=_mX z7)8YIf_8|FLerR06e=h2C45aX%3yi%( zSS333!`Wh%V^3s#wtp_@A2e58|4`y~>en9`ko`}k=lAzd?a#{kwLZu9#`n*$%To7X zoR4$lvhYnX7Lm)sch7hdH6q>)>>m)%?iBJrUX;>X=r64ONcqQOkjaT35m%UkWFCJq1yy6FplZxCxDYR_&n+y>cj}Ai ze<%K5ME_UwANTImH_-RR{qruy>h=R37?!G%dQt!8zZk!_sx*HMTy#I`Mfs*7E^zcw zou|en`7hw%XV(B;5czTRoY&cwE|Q`1*x8nDUx0-`v>>r;L1Nj0#Igm6*(bB`{fQQw ze9?k~MGJENT;dh_sF=G#)GEwvkh&rQH)B^6bJu7_Vj=aI0vE$W>n9=gIQ~D<5WwDP{v@L_7X5SlK1V=f^JQ%3Qdt(hCrf~c(#vkVh zlvz6hC1KFP6fav49vh}P zp}`64_-{tt~^ybdetvm1}1?Fgb?7!0shQxEc`>qf+ z1y0eH=BHP@d6l#NxGi)n@W?$=_lW!wUEY2|KcT;-sHZmP^*BNuVdS5cqoS8DJ~|J5^?pk8MN z17`<5Tr~rhZ!KK2sj9wM|2s3Fv;G$|Adg>iFh4vVzwDne?;qT5&!7e{@BfQh_5 zQX+B!gC%x#OOM*(k@*T8ICZc_+IKYqjl(FOhKWHYqfCEj;8a#hU4h&(v z=x`9$pZ*ZMA650^=7Rdz0}1TZ7vuTO{o6-Tj+FE+!*k%2ibQdCMkE+>3(Wk_@l81z z#M~+8@6pUQ>?dT*@<;5zTw2+GBf(SZKj^qBDgB zo9E{Qp3=X4{s-UHZ+c?ehuBFf?!>Zv;OUC>2Wtnn-+X(9SF)TB+uz*%a}S!utib#Z z>V2>T;YTER|2-iWc+r->L3+bLBs1n>kzX>~=Azb4(6T<9PQm(6HV_Gbp91{>=Jf=f z0}cEMJxKFzKCuF}|0sO;_<4?wp#Oe4MDz69^fPFBeEvmWFc#=hS^kUjFV%GDkC-JD9S56aaY;_YcT6T|x-{$R>Ae3RF^gYJTE z--GKbKmnjM>)nF_+$HVMzNV%-u{-1tZKo$d2Z!Ldf3Nc2k$;UB%fAMee@wHye_EcO zAoRzH%J~VE2Lt)r=I?bN$C0`CJReTH`!}i-4Qao#cK^bYI&N6m_`@e?RNLQSJI5Yc zX@BSQPfj6vae7pg=krhI!-a8i{t53r=Cea0w*5_|R12RS61CU=Vd`t28|4+K#lDn` zA2oJpeENr}iT1j^!)tF_vB%RcAoYeed!RjB*2MxA3EYx@aR1pOL$-cZG&-mM&{(g} zjdO0Cc6qV(XbNL45qMA6_CRMKhIyDVQD^-4)Qd-=6gDhK$ILaxdV_t*?2nDob^erZ zr?MS82rcYcQnP_>Q@5<>P+49>2J2H=K^w$AL<_@oFp?NimC^Lbdzb&Lx%{g0r(o$^ zaQ+lqKArQY`e3={IZ({DV*X_toWyuH`4X+C)rfE9WE#u?{oXb9`6NDaVW*+9e=XA^D1>^rMWLod@%AD+KNQJ>JPUhEa?;DfnA1##sO&7`kTEZ6p^;Oj#7=uU5kbScrOjhDHHXz=)Pe7}U)gH8AtsmfZs=maU$@&qDz#7B5)^A5NdWwePyKEmoPs<0wE27)uo5KmK=|0Q=W&asv-nLH{ z^3T)q=gx(1xAA+G|GfU?oe~W$A^(~0yf^`*!4qtla~mc` z!8i%)3y(pbpOTC%#rQ)N3BdKU*stl_KcC;?U^D?<6EU#e>NN}*Tl=%R>#nhGlQnSG z;DgGXl@Dx1kOj>-%t!A{eshD)3ShZqKXhVPma{{0!3w~}diDNczDBSBcGO9JVH^o{ z$5z_wVaDz8qxsS_e-mli>@2R-CF0L!ZV_!rIHvfnV?eV$1on?KXg{t<%9OC4Q zImE#_=4nH(#=L{l!SGux@HepbFW2u}N@L4FRe23FkW)WJn}biUb>a_FbVq7xw-bL* zLj3Q~pMB+s?5{-6mo}X0HHHJ$`E~U&ek^B2&^E!UY>7fD8P@rAul_74l(t@cCXjghe4W51H8 zzrL*=QH7TE9-5Cbq!lq&$oQQ(eF(eX#Mwc7L#aq7!Fr}}3q1d>#2%K_t`>g`_J78u z>2BIF!rlS{2>E(R-=!6xy9vzx!&)Eq8rvMqK5NziBK8cN*W2S;M$cnibOYkr2>yp@ za|iYV5BqnnV+{WV&bf%uYFoz-2I>MFH@eQ&;16iGWQGr%h@Z8kNX~drzxD2iZaHg9 zkwNe(+aIOO+KD-bH3*4?{V*Sw{uW_BWEqk{?@nU+*|S#Kuh}1cM{4te^KaH9j!#ve zfAf54%|++m@G9165qw?cKj$@UgSRv;^Rc7Idwx#ZqvX{E)p4;Ji&d~J$*bT7@BKm` z;iBz9sPKD=*n{Bge=SmX;*Eks|3#WAE-`xzr@a&nwr>qovrD8iVG_NZ?p-DKMY6 zAa7H{GT_ok4znFUfsEDvF2uYfbZ$Z54K742!-B^eE2sWQD#AKMJv@?}^0xoegr}cn zP{Q)Ru?`_(2wCS7I)Et8Iv?u*vi^&9ebB4I_1D?;C(?6C8G~qb^ndvuwM7XoU1kS0 zQYzJ+T-$p|Z(OQjbYuC(&%b`|7iIAn%4NFo-ZRP>`h|Qf_muDc;e#jcb@J~?J`;Zi zE>Al}%8^)ZDD31%j0<160Oj6J>Oee`$iih}rDE~m#DR&CiOR7Ave^Is{7-%Y;b={L z<6@`L6}@YEFYiquiEF?3r`ONDYQHtU66Cl3Y8gr7-~0SSC+@Dwzv6KGFx~Cshx@*H zIC4Ui<-h;y=jorvd!775Hl9%jocs~I_k$BfB)(X_-sHIqXL$3o5c+#l@Un21 z%2-(N3pl@fpJrp|?*(;E*_UI?$%?+i>>&_iae}bKL{E&B>B)-zU>MgKW&gF$Ir*Z6 zYRoM-ShV0^(Sn1;7#3p3|1PdSF;<<=EmUKi!sD&Ru~2W7{(!Y9>~PijMe~>~PsCLf zE0F5^SSWH){q~FMPcNunUHAXg_Z6PyID4%T>jiP%^or>6wiczaf%gEjGBj)K(~e*d zjDj_!&RE@-JCdAJ6f>bShOPkZf#d(72>?TLfcC)AJBWS&o`>IC*w75C{5<^LtbrI5 z7xh`&uv)0GcFltBkI}a8-T_hqswRmEO2b|W&1?1@9z!K0M>kRYL98n+G z;qO@kUS&<*MXNo-Ylqe{W=-COaW}&P#qsNgjuimS&oqO3IewkbkkS$N+u*MAZE(v7 zSVRKD8g^wR0ya;ubz%K}G%n77GUFzqv!>(n3@D+!^Z3Q1;`NI-QB+`@`l=sFPo(oC z&Mzn#ebdoGQa9tHhJo?-!e_%ZguU5CeU|>uJCDTpA0O@K_}{dFw>PHgv_qet>YwV= z5s_$};8p9cbJsxo$7z-B7;FIb0qk1y*ZJyvIFT3_ae6w(-(&wOWzk-;-G2YYBx9j3vS+nVouUz>6#^~Z6hjnbyRoPR?<3pzMX zmqbsi*q5>Lbo0M&|6gBX-hk8sg^K-uQ=p&uV1t+0s|UV*lg?f97(B7(uCef1bLW%F z8THk+Ct=^4g||0EKY8{wuP@6YTrO)-o*HQ zqeIGlT%3T7iS&JgL)v|V+i}896Jl;;8d{N3qag>k68>9;Zpv(Gn<*(t)4?($0q^9; z-Jg^XfO($26uh%R<|`CbuHW*6Ek9TnX;#0T_*8~ZM|x}d?#njeIdiXP2LAl|zgxYv zJ=c@MDV#*F8TWko%*?&}7U4Z{udlcM(Oqvg|M9N2*%EAG?>+6sf49hWbo#nHP4L3h zc|Hq&)YcWfjeTk?$orqa6kOtMJK8-qr%ytH=k>4q&wJlEa%`jzRsmV%u&*I z(OzYJ{Opl86xJZve)=N4jMKH=uy;tXWeIyC@K>f1wMFNn0&j%>Z43O%TkyFN1vb*@ zjYI88b*TOHM#k&>i+y3b)U`gm7Htz<8EOs10{xN8mZdC@=XD#W^n+s~n$W(8o-+E( zZDtPt!$C)BnN&)spS$FDeb-s^i$4A< ztoyV5mUaIXo-S+uDcf&Z_g@k1Qd##O(OC2EPRyAz2CzPoWzD~Pa!#2Ei}qBU-Tm3+ zTf9#Hopil_Psr)NPr1%}dEDv0o6g6Nn-5lzV3b&kl6S;Uy5HYr^D}$3mw7+3v1O6W z_an~v>BK)48S~1)PxUUQBpYK-3Qkl6B{AkbxG&^S8XKZt*KBOQ(0MYt;n}b6U@Q{v z;B)pbabzbXN~M3IIL<*x#ARv5*?8V?FxyM5?kbnKg$lrzINnQjGN6MvnD3&xIIp0b z^@|1x_K$oGD> z>UG4FbNa%iYdze*Jag<**gwbpOZ(&LnMcMBXgKRQld;OTn%m7B`j_^%b&Dc6H+re7 z0dJAh`#sS>D_RKI9K9}a6#oI>5p9clD3L?{^Tp2MgfWz#otVlpu7SQ&gLT&ue`{?c zW=Qs()%ct1mejQR8u1L~^}QRP0&gG`HB-tHqYdFnBK%m6q= zI0!Ao#JSJY={ar3rX=PKjYe^D??FD1a=NH9=6CMKJ;)P8#s4p8z$tFL`;Ta5CWhIj zpw6m$u+Oi7BE>TFugSzzV%WRXe#a2@TDU^*H0VBH{0`rqu(%l5x3fA#hxk9C1v~XzJD-i z?Le00P5ci4-hnJJdjNP3b2a8Y%ntrl`-ep--ofLPhb^hHe?eU39X!?fyo0A2|0aHa z?6IApQOx|3-v(l4>>=nM5&K)ULMXFWx`M{;Mk*`mG29x%>A}dfJ*_4N2h zm-~k!h;d_yCHD_6^|xB_G|v9vSxet`_75L}HJx|6%J^IH|ARPsS;XIp|NoH%_lOu8 zvHzK)pM?j0+?GhciErH*b9s30iYFT%Tz6Bj?7GhNC`~s1kLH7W)4%;>V^011yZ*J@ jxM$4uZ|83PV*P-V`*P#)4^_8(!}}UZo@Sn;r&;QbG$q8{YC+xgHtMbxPly64QS8Ae z_8^9t{r&HKZ)W7Sn{GL0yY1i#|&GX&=5Fz|~uD^#G029(suGru*^Pi=6G$&v~Ez^nr2wb&=cU z^=LlT*HYi6GWJl7yH3%_#D^$PTEUIam9I6g%*Gk#G%tB+6UAs2`5p>*f<8UaU*B!) z-o{w-7)lEbP#^k7l%ZV4$Z2^czpAb-GY(}`T~SwPm4c$a-(v*yfMr@{D8Tg_+-<5s zA&OF1)Sp0oRkWZKxcje#y?~R#aM{MUn3#)o1v+ zjjoRVdcNR8AA%Ua?HFNBC@b!-X{9RJq3wt7F_pbzbE+K4*`(6)nT zcg^m4>x5S+ea8G4KEqBWF|cuJ2NJJg`UE%03YWqlKR-XU6GoTQ{NriZOuCQE7H zUK4{G%=!M`hB#N)>K2!WirU;cOInG^m00cSwXa4 zPX%J_MSm%gpTL5~jG3U#^foK5Cb)3(0TJb2JLHDoLN$kZFKS$rRp0~xmr`#Y)@#-CP8qCT)O+Qq#ud|2jtsa=n? zVg&8+_8RS*&1`2jlHq(G1wA29Fw4BjE3rwvdI;-ekRfF$lw}IyE_m}2&s$-vqwQE{ z0heE?SA67k`NaI?cV1uPa{-I_n?EtBFY7s)NN2@-89$n*<@sD1m@;T=pktG{({~$< zVU2`=yA8_>`)&)3SqD|dvs9dmh#UZ1P z=-Ck)2U39>0x<#&v+Gavg#vy04#mc~V(y4d`$YR*|EgAn`5{f^#G zb#1p>!}`t4g=U5(Mce$VK)~?|KHq$AaFf=l+Ap5Yj{pZZfcwf+$h;Ju3nj%^%K8GA zNASwdD?4}J5YYlYpNr}3O>`wqfqto2QH=eoQ%|1jnxjP{pUncV(d)DURN+4GC&rvY zG(?5*k_t*Bu{zX`+1H)2`446v#afGcA-5{lhu7fQ+qqOAiFy8x(5arqp|gf)fN{^M zU3uT~FGgtaAwalqH+5dXkeLs@+Acn zusUC-d{zI6^z4Gg`5C;4qm)aG(4ZI};CK%FZKPMOXD*{c-bvDP7Jui&_@KH{)gF&t zplbXSw`Px@2NYrho_<)J5p{vxop_qzlab5~{+-H}^6V!PSiiQ#na@Wi3gESsbU7}W z51EYt)3Z^LyyDHtgsBIDo-67kF60aO>0CZ@%95{oRaNq8E}VIGL}Ks^_dxA+imBF< z8#7k(bh-xA>sm|##*EI#^PzlpSvRs6kxZ5*)8Py#kihd+mICf(tlw+A&IoAOMEJ{N`)}`pE#%=1Rc$%SEs)|s^o)-gX*0< zVG3vgEPXF{J&zvdT)hXvo4|q|oL2Klx;=U*kk1;JhQK^}m6WBC_(>~ouTSO~^Hy#; zf4EWtGmg3{P|U!t%6g|{PfU&3!-nj zPFmyEm>N?t7G@lG&e3?wXm?o1#9UsZ4f@WeQe9Cktu!9w_$IH)e(S({;jy>Syd#OR`XxgDya6s?q+OWh} z_IXqvw<4lGa6Ffo#8ZTQmGU)cVdqs@?#vQ-F9jK0*_seSt9!Bi2N@KN?1V zi?*Xoe}L63dNd>3*(Bonm*4xVBM+SMx9B?@Amproh!A zD8%|eXX21@mnCshjp;GZha(64w+Ws&*&PBG`*7s*{@X(Q1X0Lkh0J#%uT1<3WM}4w zTCRXzJU;O&8sn4^gXY!l?Ng%$Pu@vi3^EKbo{lkUW0uW@Ccz~+aqVi1Igk5A8+ICl zkfxx&pniV+ZQb_@NR?G0={;F+W3ncL>52b45OM=&ywo;@0@58<|W zEFMe1;GuXt8q3eDiA^9so5|_0U*x=bf6k2xRwfIHID&h0LMPH_r*?NV9?MMq!SIvg z-yG3sK)u7dm%bdoME{e1%H73%?n)mV=~ctfA|-xJo1qo7a{8pWKmo5F(9K5kMw>v@ zdfTa1_v+haHl%~e^myV~(I38a6eRoO>Yjy_bFnt4x%hq)|{v=(7h>+WwoS3LHT&hGJ}wlY<3OFIEtAOuF9R^W=9KzL%xOjFv_0dQD}K{G%@f}jBo4rP}06@8zC;x|j#PJ4X8 z?E)1m%l~dV?@rzGk+>+zx%8&`(Da@Y4(7jXd96-tnXSep`pk4SHnV+yAu*&CYlOn! zg=Gv0EDWkBG4ua`cTg?b@&t4R3WORi_;abAhr0fd-WyGI$1wA5qFb@9X5(*QbYliS zG!vg0IW>|`FY9McpULFYpj)6Flb}6kdd~DL>vH~qXSc=lux_d$yweCq-URJo2`;#- zLEhJL_osiGK09>&wpBWa5-U_xp1N<}(fvnnxoK?Ei^C5!?z48g&e6Md`{+@62Nvsl z_0Q_1yWhRvo8Pch46jT-sH{ytL?wL+RO@BPLNBX#QR%U#?>FiC#_JpVng*$@79vu1WM^XF(iim~fNsg(OY<QOf0>;6576Ni*1o$=>>Sm(ePlU z*Zb9G&9OHOs6B1{^%cx(^`-EUi5KE$^kwj$Q}Kh-0uP<(nTEyEbXn$=olTk}|C!)H z)%cyOirLqLyTVC=6&PLGHdiExS$l!}rF0vIj2-3vCOzH8C%YW$3sEt-{HS3ATAf@_Ncka;};Prc&cQcLOPVm!Lg3yR6YbN(FU8b7 zfrolxHmyj&dbP)TNbS=NQGPqE8gJ!Z=`Yy%-h9jQTP?4IR^g%e|0`voM;)!|66;a( z&sAMujjb9A4NhKQd#ftAfP;OY?gr?AOj%+dNca3B|H{F6tnwG>O*@|`fxAsW3v&{1 zB9};{8CN_+T^$l@o(@RY{aC4-Bz0vT;f8$0n5k<&X6$VYQ6JW1$O(F&r%hrX^qUsE z0m&}lp%Jp(%`^8O<9v7qj3bb`UIwj@cjvmHKn@>=wzGe!Ncn_wcj;g9V^YYwOaGF? zUv$hrotv(t%U~tr|LwQD`l7mDKhT>Js|)J=7f<K5f*;%|n2o;lWA_zQRGGR*@R_0?x75H= z+)p13J$3NghaPSER@Z%yBKwhZj=t;ujQ4`Zn7Q@`^Phgu`aXN*eh6AfJjVKqAJjBV zpNHpn0{zR-=!sA!oGIv2ryf1bm}TEd@ZguBp$JKUyyZ#jbp^ZuZw1eOY2k}sf`lu% z8|2*&E%<;T+emtQoQ|QzOge*E!0Aa|<0e49Yfge7lHuV~B)aGBBhjrU)TDRC1_XWM6b9va~gne(p3X1lC zg?%k%_USkH2Ze6U{bBwHEOcweQoDapxnJSCvwfbm`v=wg4TlHmSou2UrToivkjex> z`cL68!94K!9RH~wD+jzCnEj{Uik}S@GZz!@D?7s9g8%d!)(6qPL{JHbEA@SzzTQfG zcwaodz_R{p^nRx3E)ECDslO}!xH~yabVuYa>w%7K4ej0lxm+I41JGNOSi!Ju3B2<= z-x~el4?Y|(B`&#Uj{JmvL~kf&!>o3M{=jwQ2)Y65RRS_!KlmN&$9VCKC#hdGyc%Q? zE`d1(`*Bq3qC#9i;7;75YayAIn5}29;bC;k*n$+*5fSuWUJKFk37GrJiD`Vkj11bM zUZ?IX+q;1EzUG*mWGK~11N!&%*>d?#D|XA-&9ia7;BqxKx~N9+DW+g>jL~PLmNLVe zp3cNi59K9MM4jpBczkFm9CjgrKT*JMHpQ&eM;LRPet%PwWqsr$MCo(}wz;g8A1xea z|3x|-N3yKZ(Zh$~SQQDFawiH$Q@1;q^b<2jzjC_>)nI9#{j+9m@jEh~d*|Lz`}TLP zk{G=5WI=^5>x&X6CQm-6`U3Pt8xu5Q(^Y!A^j)Vug;n~!Uo)?4dwwuR=))Q=+V_5fBVdg!VO>q6k9&@{|y6W)ZC!d6H1)Lg=h4$PY(01;WM0@ySq0sHOYi0Ze zI`?d`sc<;YgU%`Q>}XTd;ltu3hzs)9=i{5L$EPETbBSm8^fVm9f6w&B;pAixu?9}@ z!-pp)Va?g#;Ggw39?zXf#@Cvha`E_ylkwY{guExOZE&YtB_|sWFn5#dVHmPNX+K!} z5x3xXMWA=Qx~&AdAu#g^@PcKXahek8Fy`Irav^PFwqan-1~D%_3Txa}*h@Ck7r+ZI zPmrS3klw3pfQL6&7lU87g?b@hz{Be?e1q=l@@d*0s=^>N(M$!K6sdRUD_@0;vf05N zSBu4zT~j0{z9CF+gk42f(JEzLAw58 z1&O)B+Zo)&HT#SZm(rBU5+=J=QY;+plwNmE0ibb5<%tx*`B9Ex7GM>nx%x54Ig$A@nH@YPo~>O2AmjgK1v zx2aFw`N#}6J7@jRle)-ShZU@zCRc`HJ%&Hbe7r+Nm` z#RM%_k<4pW-+bFLI4zzlMky;5Orif}Ona<7)^4na39PjO>_x?J5wo?7iJ$QT=EMh; zpFe1Qw)-J^GN8hPVPFj~u1AEA7y2oSKUpgb-Pxb>=Dh_E^xKTJU=@V?RHv|blfYY; zrnCB?@WbIv;2FS)Jam*pH4l3?u}CTsBA}EyTGgvC)vdN*{Md$M`ohp<#@l$j7#qHj z+JiXIJq$s=-~q_852QlRbW7D2V9B$p?8n@jYWp$c`;JxY#~EPuCOP(F#)x@>1?mR> z7I-Jw2R{LCn85lLougRb?ScjB$izW97@CCr+b{fQz=&R8`!~F2>TYl8z?U%!Y}00| z;cYjRU;`BP1IXt^{X(Mj%Ac`}hPj22%l^ud61@t0ChI95G=A}e*5`N5a^DXb7? z{J|3}nDBS7F1@Xn?K|)%xWKDGX-q4I=DpD6&1@i7i_f=*1ooEvrr(79=n{C?^&4W> zcY0&4tKB<{Zr32)NKIBdw2P}Z?5K%R>Dse(uh#t!eJ#7924TPcK0Sa~=4+J=%8Jgb z%IQD6<%nN!;){qx{KAp^7oB__`74wgyQ*>9H3NSpagLs~CK3y3pPikf<)b-mq1$4T zi^TTxdUu<id202y!mgKcasvbJx!Ai6Ld1E?c)?ua0v*ThA1{26y3-&==SP z5&_RRM5P@oL$Gzkyh84}dF_h#pJ6_HQ&`Gf`V}Xh zVLluVtF*yA1?~+l>@D=qXH;@G(WL7yYJSe^?eEWIe%AYYzsGrhON94V`0sA#{Vf?< zu1GOg44$7(S2IO|F@Gn;g0Y~$;2?c^C#|hs(4KGlit-ew7$>Ir&+GrD&cRQsF+bbC zD)9?Z7u&xa3vo#=Ot5|6s|jfM&??MqGA;0Z_ZwRg0l?I&(QkMi`!!RqYAo&NAMe^{ z+aIL;{Np{JwIig?Hy7zC^{eW0UAsL4;6;V_`-ykxD~aD584fYNv(-537cwh& z2Gjkt_f`69?|-k`sxhuuw}iS-W!;kaI9BU1#D?Y*MAa$EXE_L?kHcrU3J$~J$oS}?B)>RB;A z1-5c?`R^@&pK(&KieY>6zu#NNB7$|Wtj}V-p@qxhhtPs7@3b)Bt-@%5`M;C0Fsg{@ zXJIWFH(PT0{$s6BwCX;?e_qv_8>);6%=MNgdlH?Zw>pfcN|xYaz)$fxUt3 zd40!Al7E(4NbIqnU$&47jCRZW*)4e2^fE>Zft-y0sqTZ!7cGiDIN0e!6&8JPFvnj9 zluG;~u&)6Td@`S{bbeaYR~E`x@wY5m)$xCvqsZ*?Zy{jVNVZYVLRmlBFnw)mBWSS` zKg;nXjGg$|3t7zXM1h?6S;%18Q+o?kj-ORyzAHNi-8(={SXjyXVu%46bYI&dacPTe zVGQ;lPO*$^!NHhwN_WSm;Gnxti@_(5|K1`rF@bfq(hY2W=c)^k6<>n{$!Xv;dyro1 zeXUnwj=rhxe+&{tb^i;HH>M}@<^Hq$!r1A5AL4h|W9C@;d)k-+R4}ZI%S*x#N&?V8pBbr4ZliwEnY^NxaOFa`;3Kuvk}fFA*4 z3?8QhrRGhB@Lqe?Ni>R5Z^1z^y)%iaw{x^S_eh-}B`U%3GBx_8I z)yHi5lO4@zW1Ds=VL?Bo^f0jX;=H6kz%BLt1E>G8$Du!e&+)^XsU(bFZ|6z{tKhGW z|DUg_3QJ{`e3-1u@z;D+x7epQL^Gk2R-#;N(l--78L!~mX;5oWD#Li!i9x)T3I_iT ztmnTm=%^L`TeLX-?eL`Fzp$`J=Zc!Z;J<8P4=9~AZM8SG4%W#P*x+XS{!L!?ZF4%6 zPD1M86?ebF@w>}<0aA~^@B>G%O9%des`@NnSJ$6}f1r@9)E_-@JYlyd>igV?J*o}X zBL+#_&+CFLuLeD>wGw~b+IOOuxuAVh-v$cRNzaW;9Vu!8Yuv~EZ4dQ4(l2QdH?UuS zNPR@9V7~XFHKj}irH`KPy=dK!ct%Md|33baC4>DV(nG=i5rMnp_{IEvjoY-rrZzkN zFY03IHRyKeH>96w-hr@eO^D}X>4$e9IP_0kw14poT8A-%sxi-?br>_K8e`6_hnR!w zFRZJMEZwT)tB78&UjHieDu@4ZDehfGz6XZBMqv-&D=gbAXY;xf{|}ty81~BeIW5TgtW(Gq z9PG4Eg+&Vv7B$d^br^l9VA;Ytj1~~T>hErc)!vR73Hze1ZUfv{m-BO#<>zTc{j1FF zh+39;232+efaaiuzQ!BfTN;>u8;JVmIe25;mPY2^VO_Sse20^fl`S|p06kUmI~nm; z;fFGUqma+TS`^B_r=Q87egTp%V~$>DT>?+QS^<0zUsc;&GA z1^-P>AA_`=2LERLc|}jAB^JBZKyi9};N#$*Jm;8#^tAOs{_v9l`f*|9N5+qBdSqmS z*$di_HvG6n(kIhr3VB2B&SR^rjcs0(&*p`^A$RvdKEj9Pk394b0%iC5NL-&Yf zVi}2{hb89Ycfw~-#x&nM(r1~BAy=Swo3{x*cN-(Rt4(cMap)IE<}|qL-1S~j0Mw*K z1+J;9qF+V&vVMo%e=b#|r|((6|H#7ot4_dG<%Pynoy}UE`UK)U#_;~PV;!?bU(#p3T!s;o;Df z@XpKmFEBCphP~UrUVbmSE|cFU*URt8^m_UItiMFRP^G^VKU9h{cKF}BSZmet|HF8* z)$%{0@7L)M(aY}texfL3W=H=?f%`MOakI9RIMKI6^Pl%Ldq5Zpr(KB7lz9KWx>|ehT9G zSb4{x0dW(kywZ6_zK$({&wNrB_Jcut*!_8{#SymFcT#jpcPj*p~&yaTE-US4-) z|23{cr{q`}neWC-C}RKgl2wJZ+2H~`VD*s+e@#r6J7D*>#xR?KMRXX^gS2+|kA?~& zK7{K|om}e|*p7dEDAWgyu~I)(6Ke>9COGxKsu$@ANctR}nWk2Mb{m>zVn9WnFpYfddz}7ySjLpp-loU5U7|i_l)! z>uIxBwCmm0QYVY-ziVPxPh+McZZh3@&t@Ib&dYB zx@asy23o{>Tcx#^)?R{#0`FW#Xs&Gf7-Z0V!ims)ZscSAVV~S}qQG}yzVSo%TX^T} zIf-EYrRayjx>b7s{>lDnQ`^+*l)()o;+Dp+uX_ET*W13nrL0}>{-`Uy;lxgIdAxgj2BfI?vZ4%OZQp>H zmg96Q-nN3Dk_Qn;m;=T5T{ky3@1XA^Huyi#FW}wZMa`6o>}-VZk_MY3|40#}M8$*! zLhdj?wEyB8Muq-IGp`2)w&_21ZwmkMU{fr}REu|S$_P!~!2x;)`|G(D$J#6Hujh2f z8q7~1lOH<)n%z4b2!7WNPe&B?OHOhH6^`bQma*brJ)V&EJ6WQJ;~&fNHuiJCl4^_p zqW&wCv@V-$t;_U`Hlv5)I4Ae zZ|g(+lNY+40q%4Fo>m^uW!NexH*|9R==jmlX#zFQf;T{u#H^f_-NEmFIQ z#=@U({iQBv|4aYrH;g~;|HW&a{V&)Tg^v$9n)J8TD*+crn)BHMoW?MBIo2?j$qKw^ z71B$`PQ{(w^N%P~hTK^!vgr}!E=%q#mY8=ASEtKyU-LHYdiPG7`}6rBz)d)l!H$3| zLfU^R%$kx+Mf9f{M>obGg;)3>zx8T-IuvrMiociRR8I*sAWu(grNo_x=7r)-t60SKv23yE&TKr$^Eb{oiTC)cw{cD)gTQJo}sX zSPuOk#wiFFm9Oe$`k!8jUmRLf`nF@8yEa0)^?Nl~gWDm6U>6tmarq&?1}Hh5oL-H8 zv!|F{p;P*-bswDpZTd_25?8B3DE*czkHEWH2M}LSy9v0ZvAClqO^y@*;f6xm~ zyc2~nf^Y?v);q7O2K%s?*h%XhFr**Gm##g3<~81PZTr6lPXDAyV(I_t^T%9>=ik7# zM^0NB*>}ZJ$P#n(O!b^+>t8kAFMNHD+{N~L_We~bTkCQDmo2T6u-+r4u#77^<;3lw z303OymFI>QG3O^`CgYJaJ<@U~FO}dusjgE>tj9cOX5y3~yp1f9f{69gGopCBl46vOz!Lzua0S z>R8b@q&V?Gqk1y@fP43q;G2Tuj&`91*Ph;JLrhS(4Qe#_M*PCzWSVCr-2H=5|EAWcCjqcv&0eCPao}gp;O!ywFM0+eR>QAJPC1&DN>5_lXX2yZq zSZ!Y`*OxL&ZR<_mEsb1X;$!+Bg)W`ElquR2hk0JfTk<-1Kl@+6cN}~Fcw5-V610Oa zvj4M+2DC2A9aigU08v6%uqVs&9hl~OCd%uDz3KICe|f&Mx4mBRm&^0mDDcMcUneQp zhg<#*iJT)?s<4P)aj^VbE^c4GJbvZ2s^Y8#-}a<)f&0&A@Ks@)Q<}fk!FB{wxqoc? z=2Og^d>(-bYr?9+`UF*;pRM?Q%&|(o8y?pkr4e3k+wffcW}0 zX>>sz%MPqZI**fvuJJ(PcdcridhEqp9PG4Eg+&VvCh#6^VLeVgR>87`b+}4?;p^N& zb-El|kRhrQa9Q5r>nwv*Cze5~u?1gXbpp1kF-|eAhG@^Nth;boefk@CeSMZ`K4`K` z{)7TypOja_(3&FnffYwI?aj3=1(zcWlP7Zm7hzLerTgf#t-ExP32z}{{@}szp@e~U z1XkH9M>wPK6eMr>dnkkP2gV6B5{vD#)aEL;pqTyu@fO*F zgL%$%P|S0Ows%ts@rgX=3~=;2diORzg7`$9b50*JsLylG=>y|Y8dg&Msh!<;>IiHc zqg}(>*#92G$%zrzIB@Q&RqQP;F4_4Ty0*@-|Gi-6^WJ;u!AA|$Pw1?Hh!#YBFYmk; z9(>e5zE@=pM6@9C5vdM8P2u2f&mge`1e`cITtE*7H}HuD9JkVd$dwC_f<%4DYB+b2 zdm!rL5kykab_;cI0EmOVe3GDp>sWg(pC3igo$Ffs>-^8$LVwkK2lmSI?70orz7eTh z&S&l0ueZJBw9m11`a1m@SZ%4+hhdc|t0STsaJfAf;*pwNGX9n`f!&RM8Gp+-pE+Z# zoGy&=cTQnC)5B3<0*GH9qQ9VbZ2H3&?xweIe!EKH$Y&PSwS`LgFfCf^=>hklI&mMW zaW0duhFB#Fmb}2{aXf;^s@rS=0UUZHgnb%ze-M*HuYq3vNwxW-T=s9jH3RxI9 z&Czq5b{L;_rKle}rhzx;0R(qX^&`8#ZEOy%&+uMVUH=tuNN|f3~)&1$CLrgQnP$s zLBunF^DuFGKV|?YoL-t)%;L=85TD=A_Q!&;*u!TC+xu%(6BLKfT7dtRJUIW;1mzM~ zSRgN0rEC#VgGUqm1X(;kbZ>=mB7FiaHhW@fUt{-%16oq&JxI-3*mr$XH%>T7LP8JI zaymb840&G>>V`euf%%s;shLddX+Bh_wd|- zQm_xpKyOaqO@}hU?9}w3FZ}9Z#yP>G9z^?}v-_`7XPv2bs-{hERPTnG4uyXzk5j;j zE&CE>oG#GRk*On$oz=IweYe<;RQdlW4~yc?>N`076KZcW z?+|rTbg7V$C%4NhomT(pJY}8i@?Y$do>=?rUwy>6!2grr-zukUdcs~uzxJuy|L_Y= zzD92SYt}}bmY>~o+%tx~YcgS{H62gvu^jAMGhc7d9!js+`OMiK_O2-ocG~-g{+%)& z)F*p-Xp0*@pL$ch7yq&5A?jz-KCKhSxEze*9Ps(P{$2NP!*aQL`h{tZ z12(d{+3s)m*5fnLSBl@=TF8ynq)_{F6qRVEj zS!3et9QofzaGsoZqnqnHxB!m2U?q>vgicvm)BsK|SO=$H7&;Ya{GbulqiRywz3o=9 zpY}8QbvS?E5nhLwf8zgdz<08v>%!dYV!a)Q{|f65QqV=Q9#I5svTdxuUq!+@(0G>w zr(N`oU3d2Mz*_K)UAqK6w=3Bb){{Nw1m35{jGgpo?VJPMe{~7x{TAn?h82a{; zsgKKio;_a-btFDQARisLpDbi zOm!C%zs)MnM80E|A5;z&3K=|%heu3vig;E>lPz7QeO~oy{lWU}wS9Vry`SZ$@xP2Oj;yBhu*Pz__0%n=#!jrN3-*4N<9bTn z*|f86qd0vC{M9$<+uE?BW~10WN3@;Jj4Z|r^Nae7HHrG({GHE^o#6gIH^P`XeXW*~9`K}d9M_#X-l?so5W zEt}he_&*5zKNOxldVG2{@fH=a-!Y5!$Mq!6So`dg90$y}fjVk#bVuqtpf7Ra)puiE z1ivM|xcPi`O?d+}qT9#%(e^((uM3QGH(BbdPKZN|ufytmZv}IVx=kL$MUGMLGRCdF zU9py!5>xt`+tga`c+1}Ah=)IYI^#OR$^D4im*>1K8Fl>~OJ>&bLM$0h`+R!ke3kt^ z3ogw&kez&KzaQ9Kg<-!RIPGA_DbR%GD-am}!CL8#v=Wpk~h>!SRTpsa65u-3#IJT7jdi?A0nRt@K z`Tvl|aV~ItW;AJdFMICGG0y47-nVdbji#sP9$6r89^goAG zN^P&%dDXXXzE}IEf)_LR?9}&KenV@fj;nsn_2ljAazWrM&)=0B7^{o7K74uZ*tMN^ WaLa9=Q+uwFxr;Y*%jXB*cKvV6UP~hY diff --git a/data/sprites/official/minishcaplink.1.zspr b/data/sprites/official/minishcaplink.1.zspr deleted file mode 100644 index 3ae002bfb72a88a7af6c9fc8ba663fe845fbbeb8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28881 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ɟPN=+b{9PF>gU_Ao*MND)^x+46~KB$Lw@tTcLbpx`)nNC z_v=^z=&9F-Mn=u&7Z7}xe}(g|8tvaquLc|TGe;lKAp)q8Qq~1MQ*V#&b03-$_n{ev zAGaCA+nm?M4US&oYgfpJ+3Q@Sl2@MB5BPe~5;r*Zg0BqpmY;0@-&RUNLx&GMDB{mI zsvF(Y09r`IpAR~tg({Vly{`5S|Fb!o`@+E)$lx5A=nSvkFGF+$$GUSuebx0ydGL@M zzh^`ChzP!j$^L5_)GegXCOkh)BdJe%_BlVFck=!WWIQL$8Fk>t!6Jm-2%tO`8%;`u!1ah>CD#Pf@;_RZEaPVmBL;_TvX z-T@TD`!n2UZME8<0XUR5CoG#1HqHZv{ymn@lTMJQp{?PqOS92(u&kEhWn`S|l~<{E zMGl4T!8>rA&^V>x9j`(H6BSML1-|b&{4u;CW+WHZ=v+Y`F9Kd`$m@k`^L7X z{r|qP3j5BWYLSk z_k3e;Zq(^|P&@eXum!3odl6*AQS7ApCc4uWrR19I&h%sZCO-6gH{phxcF+U)u-#${ z$iz8hgTtE9E07A9I}9(>6k6vL;6Fr+C|Dd3Fy8?}z&Pa}IB^H-CKXESf}D9tY7TcV zK!e~FpAz6#)aUgwb-VBZea`q{@r{p`+n1s~@2|+x50rbQd3VO+v`yQrzP!HtmHE>} z1BM&?KfpH6UL?|0L!>7hK2n9)6Pc&cLWA_B;EhtF)LSb`d?rD|98A+>Zp0Qd68Ri z|9?lfowYVh521xG(wO?*Rz>LvcXuv_F8o7!1^WXBz*XSMj;OJZQmgXtn5y>VXQ%es zn*9R(0RQLaB4UEzNjDVd5BB}>haM}gY=^A-@}q?zeG9#tdQ*y~ zYI;6ru?9hyaT^!+oHYosnBdWHm*gu&-TnfWyrP2h}iqEIdS9BZj z8x)yNS%|^2HH+bOSnFCxJwY|ds|5jCn^==vwQTi@#aM;l^?z6nxW1e_lPkE-jcXTY zPmX{6eAOw~dAA=J65=zMKuTU>AIH20@1#pROT8(z)O%^?PUP>TKgQXJz4-fM{Kjzt zl7{G^Ov^}!cO1rPQxx_?Y#SX?cCXwFd*n^pYRyv#5fH+D_|hHAE=3*qFFgA}Jko%y zxkN9}H^V->SABZ#b9YSNDPYE(d+7V>X9_;N9Oq(v=I%wWGxnDl`{`anyb7q{fPMtn z|E-VSi}TXgCK&rOjQw~cmY{L!Q~T66)AxR5zLGK|&)=xy`A@=o=gV8b`Xhs<@3i-e z=ka+%HToCb->=K(5xv~iIw#jR6mbhRwBaXi;TwaG-{Zq!^zMiBvf6-GO5b1F@&;Qy zVkZrspR^eZexX1Jyr4DE8QK^fSZR6~m`Z8yIyvOHd`%psmfz)rFp;nT2iCZ?Nj@40#L=JrfSH@vHy z+AH%0KfU7Vvn`h&gm0lbI;)GJI~gi1%1T*UiCN?{eosMOqitzh>G98mh~GgACxIcb zTVXrL^)tg4w3B&;lUV2Al|Bg+$n>5JEoxyOq!beL&y;vYx>q^|%yp1|>EgpNc=Jg_ zKB~Ah_#o6AP65zed-_pCu7BHvugNT$1p2{06En-uq*R+>k;D$|5pFKXu;1Xj5fE>fJF<oZQ{NGlx%9!3CJ(@a|unMVA`_JurN& zgcf3%mJG@>vLYxtrg!%tieGr(pVQqI?87En0L3S5ZUL4PT40W_1^RlHYB-^!fZD|S zXA%bX|M>Aehk%6e6XApt!H=+irWkdukRM;*R{H<=qgFoE`S;4BTmGP{7AUG;`q1do z7v&q0$B?_CIam7mPmeslw!CBCHNV;M*4%%I?C*H(<6j-wcg?!hoIA4S dTOEGOk8Izy<>0m4^2i4dYud5b-+y=Le*rgxK0yEg diff --git a/data/sprites/official/minishcaplink.2.zspr b/data/sprites/official/minishcaplink.2.zspr new file mode 100644 index 0000000000000000000000000000000000000000..aaca256bdc6ec8d8f8f43b07a8217d2593f46817 GIT binary patch literal 28887 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 literal 0 HcmV?d00001 diff --git a/data/sprites/official/mushy.1.zspr b/data/sprites/official/mushy.1.zspr new file mode 100644 index 0000000000000000000000000000000000000000..a6c924a50f426ccfa54636413f3482e2d7831ed6 GIT binary patch literal 28898 zcmeHw4|EgPneWv|mIg=G4A?0$2uT4F+!Kn$pC&^Qwn#{q_K@I`cGubD6;XJEZquMZ z8kE$r25^DxI)psBUB4Wfy2)l=x9!_{H)+dxO@jh7HHic6HfNX9Lz_v;61K}G6UrtE z5z_v?xf;)vAr>$>k9Oa?b1coLneWb>d%ydA-~Ikv|LLtA%ROH`@TCQ77)oYMhOsW@ zp>vcDwvKIN|DCO8arPOO!RJQyd3G;bi?a^=`gyh*SL5tv_9eCfzplsq>)028xrnU- zd_SG7T1#JErZ82B$8MduA*kmF4zd_)XLqrstc>dh3md+|q+=n|Q}PxGF0djy&Q9U# zSzHgW$?V$jt?>~WPkik3vzfoYZ|-S=!|90WH>He{ zZ79(FQ~c8>-qHGC=%KrZS}XX9g&!S=(fvo*%i$M%huFc;i@^%MVc};Q%n#!Eli33K zcJ0>0uJltW>-m9}K-QlL8A{%2zh=xd9$)bUkd(t76Sq}it)SKvs5bh3C0M-r)!_Q_fY0+H;1)UGJl`Gp5>UH%eN2B?cI=S zPbhd#f7kf$UShY}{!0l&l!

rg6If-CGpM7uFUP)0-5e+ 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 literal 0 HcmV?d00001 diff --git a/data/sprites/official/ness.1.zspr b/data/sprites/official/ness.1.zspr new file mode 100644 index 0000000000000000000000000000000000000000..b8b3de81e25b004052b7f8a3d834c4448d169ddf GIT binary patch literal 28882 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 I@h;E*13T3|3;+NC literal 0 HcmV?d00001 diff --git a/data/sprites/official/parallelworldslink.1.zspr b/data/sprites/official/parallelworldslink.1.zspr new file mode 100644 index 0000000000000000000000000000000000000000..71a9bdc1d4e35e060adf34faf1e60030cc0625f5 GIT binary patch literal 28912 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
X%3>;w9P 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 literal 0 HcmV?d00001 diff --git a/data/sprites/official/phoenix-wright.1.zspr b/data/sprites/official/phoenix-wright.1.zspr new file mode 100644 index 0000000000000000000000000000000000000000..d7cb0be2eeeedd602d2d7af0d7a04ab53de63189 GIT binary patch literal 28882 zcmbuo0elqI^)G&AcCtGOo83u>$pTAufCy0|Ss*2gEZI?MODz>@eTvn}s#LI2iIqx} zm>n?Hw51xAPo*tlYJF`#ul@C(THh;G8U{*%wy0@KHC2RFDMgF0LJCW=?Eb%J?oM`N zpS8c|oexRAbLZZm(PE0@m12sS8qT68bWHlrj@9jB>o#|F|D9g^hLUZ zZlgBR>00^<{#uT^tC9OT`+h5aucWWim-)^ex3zw592-|w{l(u*$)TvK1v{#f(G#07=+ zuYY#`)_1NhYJXxM3Y zwU48l9&GRiEO? z;|Dg6r*ZV{jhR%+&c8QsoKDb}$P23A6sf+EI_fV`y^2R-Vr;Cw2V~YvW5{h2XK=;6 z)KPVV7S@xdiTuG8Tj=+6jQS~#ktCW_y~MTpqKMz?@cOVA^ZwqRq-6mY-robt#QUmmtGQ9d z7m&{`e}UFfeJ8#kMt-||=4kbbdo_Fkwc6#Y)a;6f@C6xsKbPNg-5tvG>KfOW5-}C~ z+SY1wH10uxy^$uGNe%VseESE(2k0Q}rvN2U8t<>U(cMv>@jgji)Cyd$-Gj+{igJ{; zakTyty`!pDJ4+ShL;imCAiYD!ksq>ghkB!WcU{cy_lWPmlkTGHDNLm#zQ04eSG!X2 zQnx9-{~>yjhV0gh@8>pfQZS;bRGJ@k#;RNOs2(S`jK))YSJZH@k7~81tyKdK7UjnY zh|-FSOOJE&4TZ|^&gkB4w9w91(DH*?(?HYSsA=CoPrLC{lvZQ@adM%&;)=SizDQs< zwd}f~XQug>fOz^6E10THJ{%V}bWqcNda&|LK3^vzY__di`}1;fLqUm)=#2#@^7#tM zUa5B7!6$me4K6>3@~`CcxqQ!(b!#8FSlr<9jVS+*d_I>i8Ncq}cb?`Ot+W?!|54>~ znqud-lG$cP-k5OH#7Q>)lu>$$de-U`ENRqKbTXKx&b)az;rr_wiDlJiFu~d70}@@BH@c;{Yx?0~y5qx1k z3Hn*Rb$;ZimZFrd+w(!!A~aXIQu;!mJrF^8JrwpwJRLK>7+GfH4YXS2=PiCQQifJ{ zsj0ACmht`tug(9m%x@N{ch%PAEA5#m@O|_Tt>!^0)exI(tLbol z{u8NGr7jC}wmJEE4qkwy$PWK@K^FKlZL&UpeuN)zVRn~k)I#7N^%ZmE26;*m{o2$Y zbm(`Z8nm_+%|9jWO+||4U-GkU(l|LNkF}){QBSDVula+nP=5X?>ShX{hP}2lLn~2U zMGfiv{NwLvQm4~-vY%vV463JU3^+(la17)xYZQ@yuBcV&fSw`^{X*&b6w_TG2_BS8 zqQ?v6`P+)iGp;v4B`AMDKcZaejgo4YR?@-bQ1C0!=t%jA`5EYS<=>y5fhD>x%x!ea zyVBFq{z7?GI#2zW+6ZYZNKN&eS2n{pr#hG~zezu=*5L~?^U{4ra@oOz|bGuccSrcL4RiCy)lI+m;(33i?I^u%+r4a zt-MVOOM-uZA3%N?v9Mq84?-_br?JE;fhg}KIVxqPtS4sBN+GGAEd7^~*RIi7+}qPT*7 z%_)%QU`3cYn3-_$1rL-*>VtM`bFi2hi!X)H^MqaZmhHU!0VuUebaX0^t{=K|*v#gj zspX`clqLJJ?D`~Z#Fx*$ex2*f*4mdZ%a^HBx3OWt1Nxr2o%EJ`lb+O4 z8!``M&D?rad}+RY{BOJWlq{pGN+zA=> z<;ipHvX7Kcf&^-9ykVBWhas`+%)@k0AEK#Bke=T3w6)EOTH_BN30?v&p;y#Heg!dm zMbaTNc>X(B_A&=~ZoyDsvdv?d=X+DL_Z`U(*iMCrLUm`^c12y$4r_y&vkv%ePsf_V+>;MomP&c|Cy&f)Ze*v zoAqi#-(rDT=5ZUQq91CJA4mK3P{7kNE*50WGEeZp6p(no;DG{5GNz1VXNezK$sTeZ zcD}Ol6Q#pnzt04n7)&S9P1-o+Tk?9tB8%z7P3ukTjU(|R`kV9?E_a9AH|g)5RqpAs ze{2X$;7+xbqQ77L!ZSO61)ZubnM>vN=Jdqm?b3EFM!6cS&L$}5f&Yp=t5LcCf@4Bn zf%j1q8pu|>PNWPyyO%k*gWpPy3#?l=A89gDMMatP_w^lR&(C;%)9c@Pec$nYZ_p09 zpDw3qMo4cAyHyZ#c3sELU+=!>@bd$&Wd4v%CGN?s&CDB~kaNd8ArGcun|aBlPv|=W zZ>p!%Q}$a;(=g(ewRhp(Pcb%4%g}Y*Y*IeF44^$Cpq?u37B zODvSYKfK-SHhis5tyEgquT%#3?WuS+b+A2?&f=e+W_XRcm(S~3^7Zh3eM{I+F<34- zqG#H3tB3W!>D=Ch^e403Xrg*r2L55vK2Y=1+Tp-aZI>;NJrr9tm$LRppkkhGSMU`4np{iY7ot;F20*)U!bL*O~teur>e*Qa50SZ0P zi6_4P@sH1+uj`X1XKrb`W$>SCW;{3Z`R^S1&g(CX@%UYQeaq#S7D;|d$tlCiS>>#p zlkZ#KzJA+a)8D=}^xcy?&%JPVN9J($%`sEPcb9aR@0Ituce(y9z1bi)R)tFZt`Yrp z>|AX;0P*E6;Lvb$+0?5v=j^?L-X9`3xt`rQjk!g?dWeh*U0 zruoA9Jxmtzmv~wmqkd5qkYIiA&vJ>fjK?Q^gVB^I%NW*&)IM~(#Q-TWH|Fz$vs@@$ z4E==2fHe0>ntx`=JR85+`K~@}OaS**AerC#@)9WhH1Y-J~ zJF#Qd(&@1YL`e!H-Dy|b*OuJTf8|ET>0~yY%jE9u>mTan=Zh_H0_QD=u)r~PEQoA@ zbFghegawWn0Xlgv8?WY0I#NIILk!otiq|aZ_RC!_b zM5U4DP(WJRyyoJ@3G-?uxErwZme{e`2Kdm^~Wb`2j?Yo)(%y0{cQ4`cunU`_3@7`w5q_R_== z`K`FhN_Y+9$ZuKq1l-WU?&uztr@3oM%6QVO_m&O*(>JHK*4Dpx1(zRa=ud2caaIqk zzid=%t>=t4ZS6<22BFIXVD(7GV4gbm{`ZGsJ@tCh!{ zZ5Rh4M_XG-lXZE9JieqnPrIzMvkvE2FeJ^bmMKlJVeGQ?Gbsx>4jnLRWw3f7S}Qke zmqT9J6CL;-Pvf{mG^RNCpm9vy33-*D=(Hs{xG5XW=nnpbHeX#vjoJj*tTC z$dq6pZ%-bUpD>;M|NTCy{-!Xq*^N`=P0Y>;+G~@>`>2r z|D1MKJ6kdQ^pm+zt|cdLmuua%?vQ8OmyItNPZ;OgzzVdSeu5s&J(asTCnr#Ch)$$J zzc$RtJIjX;=gdFvd$?zsaT(kSv2&h`XH)E0B6TQjH_HBzq@*^VMNmE^v4XQA4&vXu zf-6qEt`*n=YcE!g-U`u)gs<{I`|{V?N@R*6@v5HM!)wB8SMc*G8c1f6L&=xS2i7_D z#i5gQgReR%j;C5lHyJzpojpVX7d%9a9sbT9A_qGjBE~FH91n|w9S@7Z1rLjZ9S;lZ zla7DsZ`IuptBi$zX}C6r?=wHdzr;0au*(;9t$2z3(~Dt>(HG^N(nItZeTO{5-c!o( z)Ym?~{p(-dka!?5_vy{@jgzjFlJ}myY53+ud{^$4-1l=o2Nk$;U}>38s@E%DpzD=a zONMAzNzm5Z)43lG|0r{Qt|aHlJeav)^J+`L0oI( zABZA`9l`AaaB1y>Xu=epo3tt`dG_AOaEt@gokEG%_!GOYvi?I;h{N0--|yGd9Q3{L+y%tD4|`a z&CySqZ!SLQJ-y;d`W?OP{;T`u;QAYGn!4w@<9QE@Tk=XvTl(6D^Bxwq4<75J#Qhu*|O@7<`-IdG7i}m(L^Pe(B zeiZ*}etx+EF3nwM)1>ggVh!PE{VPtJ^!Y|G6+Aloz?Y$K#VH-%mOhpmOun=Cm2M9_ zMWv8JPEw$W`irm*U)bZ24vs#qA6oqIBR-$x=<7c<+Dr>Hz*N8~+RxZBEl>fc53?^E zqg~`R2UW+uu(_u*-3cD+*cVjHy#QULoS&C)s)sFHk(%fPA@KqhuNBxn=GfO*J{9b9 zyt@A|`3U<2W{0p(2D1jNyFaA-Nsq zoE4LnT=+391ploI<|LO3`d4G)_*z1F8{hua?)fi$=B0(X_!?>3hIi>NW*=>r`e0L> zA#K>eBV?eqRyC|B0oG*%UR68UU>TSC`L z(*z{8zAXq}Ii&@?;G|w^qfHLL@366;w<|t!1G=rEE8zlmv-+8TAJKH}3;NfLheq;! zVOQJzZ4b5b^O96iAyJ9qQ9`yqo-x{tRApm+rmM>`_AW?|)YsKz7z-9eB5a3qf#UtX zP-RR{e9E@V;d!60vQpPS1$zZsE0RW1PcO-IW*{%wm|?(vv1CanR>oX6`pnQN*>kqL z<8uxst!G>J<5yiPuuNXXEr&`A{h=uG_|miTn<76MPxhRoAvyP;!130eZRD5z59TrZ z^g~jjBKKR7kDp=by^8mK`?nEHp{?}U%>zOzq}a92}%umKrA(Qeg!-s z%y@ylpot8v=uT54oI(}e6py-^O4DBGu+SGtS7ty1LJ!*O?`TP#t^fH+Xn@P$a~aT+ zpokvu1)>|ws1-;i;Z1}=2slImISSvZqrZk|yr)=y-AqmJA3kgB*N(<{u)V3Oqbjt| zW06hJK2g3RS{G5nI{vg%MMYhms_J?kQaTW=3kJN3g9CxOxS;4_w*7#gF^ryG_65YnOeQm76&Js5pMc7Z%uwpP6IhLi|jt{d^&Q zX0unKE1>tzq&k{P>qqf7(Ny@Sr~xaiD%nQ?B_i=^Dy)RPn$PRf{PiQ>$4^^u$rUA& zVDl7M!VLSEJXLD5$C$slR*H^^PH6LB1u6OE-%2gk#?tW$tLq-AT;A=9?FjuN^f!MB zwVGkHYd(0lyjezlhKbdDJhK%m*$gbGl-m)Dg4M9oh$&dwu_GFlWmR=3xSJj{bK|gV zYqMvFMJY2gZk*fQX5%d79!V^VMO|`!!R317k!8!chCC*d{%GMTsqd)(Qv<%rLaQX{ zDI1^rey(+u&qLFu*}3%nAGEgmprt!_``2tgK^o+diKZienAmy6?n66Y6 zrOQa?KmR4gwKQF!v_QtNcN5xIDCKW!W-R=3rDkP3inUTdbc-bNJtitkz#kC+fykJkg^|Ve+vtwx zu3zz7Dx2hpC8FV$M9VK5uAE;BuFiOL%8Rp+oA1ZkNRIeJLr?SSYONY|-A4UVPep!p z<&C+Fn3?EVYTB!-gId%QK0K@qIC?LfvE&T<@E~cy`(w0}mMcr~)4>V-`sh-9QJA1v zq|w$PIsy+A9?#>f@@jNQIcd{`1dD4}w)|FG>sW4=M1Cpe&&9SUR@q|Z-^VWs{oDLX zvT;=WW8zTkKZ}1Pj9Y06GZoDg_P8X?(R`$okOYGOMWjDXGS-){Vj;OODdxC##9TSp z$A{%%3=p)hRD3J`=%BbX1NsuLqzCAw@Zv@zraNMh-1zn@z-62StZ)PdV;7anTItU5 zk0rir4-oVjIpjYF13|*(rzZMLx4g-^^nlLKGfrBW)PZzbFRz*&xV*@IJV9$7*D*V(aVj%j`LGIC$auT#8; z-g)%c&ma07>ul(iTNh-?D-vpRA3FPx-HCZS`8l+Dv`$ zK?!>t*ZI+s4|d;$>aFMXUT|IY56eo_9ae4#R484NV_RvvKLo&>dAO{3!%y6cPM7yOW}Ck^L$LT^jaM<7Qy zaRfrQv17!3o+2}1v|A(dPs9&$1cG?pjvut`=ge&i@y{5nBJce|UKEbF6=-%M?8pjHh*227?ofm)g_O`|GT ztu)pJa~coo_n(~iqJuxozHs7w_Jt?kXJ7cR_=UXve8C6V z&$m`@p{)96%mS3?E<8HlQeQ(SkN8)FFu+g6~ggc+@ z0kXHW`jHnO`B}ceNDT!nYH%=nptyzt7Bx87X+tsQ8VXp{P>i_-f#dWBA{dQ){36Rx zbB&oO$j^U?pC#$I6F)n;2B&_f1_wJe6tJkl!Tiqm(1t>S9A93DA7Z}ehYzlh+*Eo5 zVL|!Cv5%#&xjG5)*Pc>$S$_S+5!B+ zbxeU(v_@tBlg)}~66Cjt-xK&C%`{KaHpK5SbrC(9+>)$KMiIX!@GCS$n?v(taB4_A zqCX;j2dKI_6|lO{ndN7%ZUeC#Nq{`HW_}|xk^-84!r>p%hVE# z1tOj~p8H()VaXDq`E-~L=-cQBF2?PVOdyC=N}ttd;)b1=gUtW8@q=FQ@~n}69KXC& z>3!5HVDv5Q`=juv_+O$xQs}SFGl66v<^0X_i!IrO#PdzifO9W}I4I|D{@oJ}^cUj~ zi~kKI>${7e55T{`I1Y=#04+xJqFy2JQLVdSaU;_KW99wvizEky_g(1k{LH`VFWvFc z@t0m$8BQAftVmv}r7f0&xIb&;X$1%iNd;oz3OB-Z)Hqy#q)}J@#vdm@U;X$3Cw*Gq z(8_YfNm-f&u2tYGe^O@nVBB)DKh(Z|lKwQxzQ3hsOL7Bjh>m@~6zyQ@b?p14?1wC} z@3+xrT&rQ!uW??;n+!D-#diN@r#>{ zORP5$Z^itPXMZp`^*}b*qA~t3{pJ1skqy10{Ugl3IeOUH|G@m4?WfNE2llS;4g_ca z1DEF2m$Uz2WFYYeQ&2Hx3M$4-LB*IUs2Fn%qf?Riwll(`voZEgV)>`yauUlwCw^Vr zLrjMnb+Yk0(A|`F_8*Dc9~OVlH564~*HDa^hm20e@{@A{qq9+ixWQgD4e`t2{IJ8H zZu_Ya4rr$&zLdYt=^tS54i)QQr$VQO0v0tm*r}li+ch{CmLt0j#h7a-U{S*;j2fCD zeP_V_G7G_^Oph}lef3b(1?g*JmV1JN(st2}KXxcc;2N20n1daE{IeDm!!@w{h6Vun z%{)icAYxFN=ZG3a3@Xn)j$e1=AJ0BEMLP1YN)JH#v3)FQS!h8Mq&M#$a^xRk80;E+ zQYrDCL5`i_8hn!9&3g)?*fqi)jQx6=EYqZ_fhJr229Ks;2{mo13*t*J%F9otxvDV% zk0U>s=Bo8_=->zSr2YP?fteZ4kpFaTlJQ5?KQu@U_E0+dhlrmk)<3E^{`h_RM{q>{ zV5%$DKbU(K>mMpKpepRaaP$wc|A9Gx&_5dJd-VU&b%B-8&L4st@FJSHX%rWLiHgls z_CNcVFf59nxWTDa-KzAc@$ruS+NxSXD;N(s`*%S38g}pSB(M`&1!Fj*pCBUWmhH5c zE*)8ahiO5R*>1+Hy#0&)k7GdJh4pt?mDEyt+MO@2lYt$0dq(Zwzq&MquOo86ike7Gg5GC{b z2ORx93GO4-A4U4RS-gK}wEq4B`gwl;pWv-;AiS>CmVW~OHqX5Vw6NX$uZ_q*feZ3e zJYSHX0{@vR^YT+X{{+@QLVgPTk>`J&|2h5vp1;NWcia&L{l~kX#Qq(&pYr+x95I>1 z7u{O9T)joT4;uXWpm84=ms~pU(%3>*jAAn5TNfPBc55x>5qg^1K$k1XJOhtR z#$fCu-UIlmeE*354KpxocC1S{`TRRfm@Y*rOxT-{Pyf&5J+6>#-c4Xq1nBP`PcW22 zN+dj<5dMlU2gPMd&W(A^JzE)64nN76nW6Mx>TGH_J)A~v_R>Vp_MHcfeY)PT61myF zmZhP2!R;FkE&Ox*(jDAD)3nX+_|a!F0Vl8;!uBI6OW|-`wA3G&Bi-}n&))2te922E zUJIR`w#SvtOx!kc+Y{SFxg9%<-#}PEeaqUZCAU4-(UDo5$#CtE0_e#Dw4L_krwzwH zY-oMnIOpPAp8w@^37w>4hQOHr?wQ^{c{lW91xY=)QX}!Z2KWzipv4V3<^n&@D~R{U z@0L}S&gS?ekuTm+tUuwMBm4h2*GDt0tIP&VJkPkr@+Fnj8Ca8YWEoa$JFXl(<2&ik z;Y)Hc+%t0YQ^a*-X?D}>y}!qmrDdBI^k%XDJ-Zk8nzHm!%Y&^VP{sKQ#1q6^!ZDV= zCB5M~<@&{#?@c~={(Y10(3WP?nRMp8!IQ6_`+VCMI#wlmdQ1dpba(fs(33`Y_fjKa zCE}~%jmcbcyS~a{s3R}H==%_S$Csb4&6`KE>_2X~FSnLS3@M8%r@+(&>n~jM?9GYa zoK9!6L$99w-nsIe|D3eN{YhJQnv0)esP2>IL3e5?aj>KPID3E{?PuEpF?51|MCHbO z{1K12=5H7~E5ARA?GHgjpE?8WSPvXrMc98`;rABss8@nUXG{;1iW5FdH7gk z!y@lX?!UYL4#F8OqAV^6@#V2ESB@_!w@%#k`|V(4&bLQCb!N{F`>%AFcZ}EXbBAWe zZk!v7&5E5?&h0v_9Y6c0Z+-XsIqMVxOJ1}NzWL-W2Ui`+elvUMH3f6yPr569<)nl9 zH&(xf8h8K3_nVWszhwV;aC`O`?0vhXvK=SO|8n8}vhBvPJiq0=10^!s7)1ic-T_=T z6qdV=u6BA<=NrOuHyfufJkxGJfTvl*8HdZks;9EFCQp-GqNB6jT#YErd_LW4MtfNo z&RH>VL(Gc&b(Aiqk3*Mvlzs+#^Uv71#W_kYnDc_w(r#$;erVNEdL2)`NjD)rlTW~C zcHLg`8srDZXYvUcQT58Eb&ww$y1Z%=D1}eJNI`yx_{^+*0!9k*qub|Lu-iS&uw-FQ z<|8z(pVExIZ1QRmp;?=XCEvyl@@z X}gb@v;!@P*|$E~vz`tk%|ZBVPiKx#^FK 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 N6K}h_`?HU`|9^4S+x-9l literal 0 HcmV?d00001 diff --git a/data/sprites/official/plagueknight.1.zspr b/data/sprites/official/plagueknight.1.zspr new file mode 100644 index 0000000000000000000000000000000000000000..d07fb60b445fe95b35a7f5b9866fee1b31e2a33a GIT binary patch literal 28867 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 literal 0 HcmV?d00001 diff --git a/data/sprites/official/pokey.1.zspr b/data/sprites/official/pokey.1.zspr new file mode 100644 index 0000000000000000000000000000000000000000..4de17faf53e6aae7fd368da700b315c314eb9cd8 GIT binary patch literal 28876 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 literal 0 HcmV?d00001 diff --git a/data/sprites/official/pridelink.1.zspr b/data/sprites/official/pridelink.1.zspr new file mode 100644 index 0000000000000000000000000000000000000000..310a6b7565f0fd25e3f8700f7c1550c3d5f52ecc GIT binary patch literal 28894 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 CY89RU literal 0 HcmV?d00001 diff --git a/data/sprites/official/psyduck.1.zspr b/data/sprites/official/psyduck.1.zspr new file mode 100644 index 0000000000000000000000000000000000000000..2a2ff949482b854d62310401423ab6b757665339 GIT binary patch literal 28868 zcmdUYe|S{Yo%fl^Ff$=TW|ANbFeH}{leAJY1S$iBWNIVEN)@%+(yl9`u)^C?iIr-k zX)?8`W?ig(f6T^468i?MGCqfKGNki4JI z`Q9`4hGN~Vf4tA0d6>-S-h0kH_uTKV^ZkC$;bYftxX!onPrv=O4u#U$(Wz9o^6@vy z26el-OKnk~R-4r)fN#h54t0mR3HWxkj7L7PW{om8wSz2LEpTQMCdsnEH9uG32fP7Wc1mufO2^51ISDMSVQ~+x35jnuDj0 zsDx_6M=8N&p(n1Ud>Flw!gn5vhC>EVsyD)~#j5cJr7VrjJ=t`uI%hCx zrdG}IM*@*R&|jjgii=~57hY6W7AgzPC@E1BYFxFeMwPUZRwiw$K>wrRgTtdEBe{{> zplzczdr*P#E73RL{n>*E>atAe7DiPPG{?es9w>zKNz`R&QcG36za|t7g-UpT-u>bQ z^MYl8kdpiFRCQ{2FrUlWyg%=L{K%2ah?P_3{hff5#o~ntjSu0S$1%QP6_4f7=Wuc~R>&3dh5V>~ z1{uBWfqj9~{>^xv_f&H9J`wu*)-P`+meIS^T4n7>KMnkY4vyXnxnG?4%cqGse)az9 zpn3kfip2>$f5?6QaXf#@GS6Sve=vpT&za{(6S{;!1+S?44OC(9f3BwQGjbq-cl?|h zEAl_^(aNz%z8_+TC7?>D)en@g{>uyR{w&Y3_5REw`^d!A%)Qe)=I3PN|nv zPqsVD`}5wVrz=j@9<4h<99NclKc4;}w4rfG`aiJan>Wh&pn4VkKdX*f8s~zA($l_4 z|3qIG@oaEU4LGJ3? z;<&es-zD$vkElMAy245O__E1s!C^Z>)IK01DTdA{wIioGMt=r<) zgX;TGbuIC^frvgfuw&?&u29{A1rfok>`!Kosr~U$i@i~*^z^LPt8;Znj_BU8{`G2= zYKb*P5>EXMO{vh5s^tm6tL%?wkE)?!4@ytZ98Y-qU+=r!`e>{z9@n*%vT8OoZClw; z#7FV``@;q2ET2D;UvbFA-&R{a(od;J{$$GnSNd`M#;3K=K3sRi+rnJDy}4R~2es~q zMe!+*m4`z?ABjQg9}S<4FN?jV%C-EABtO(xf3)e?RC&4XR}$~`^Ps-1paqs>l-x70 zBU7`enm7pVCiRWQsK0?7>N}Vc`c*3BwD4_x9ylZ|2>rS(2>rS(2>nVW%8=hU_4$V~ zAYY_k^hzC4{hsqlyJN`6AASArtshn^rqu^N)G-v!yA8hG{Vg@A&bgPvBI?QdCfx&X zUw=gFe^bM--`QT`pqh!NKZwygqE7<{Rvc;{?(dA}8ek5##M&HcSE_blGPtuMI+JhUnX2?mYHr_O+f z8t2x40!q;1ZP{(v5sXky<-qrGTAle=juOZM_SR?ry!DAkochCRJb66RrDD0p5!O%H zhg18yx^#W=@LfsTZc?8-+_6&dUD=*&2kvj``zBjqxw`f5Ro8%T(0@mU-Tm3i*517E zy7#Qo(o{j?i3BzEJBIk#FgTo+`!|5+E(UG4;Q3i<7uGIZRLyrFnB#X)Em23+M0{s5 zrO5jSQ;~ckcRap6l~U_V>U~w9{E!|!rP6K2e&gsVJbjlldV^UT*d4tLM$avjNG0l@ ziw6oJHKnG~2h4#OC~zFo#1ztQpy1{IkAQj`oYUn04Nb}DViBUS0H}XoRS#w4f<#Vq zV5pGRwBG^Rrygp692o@dcdX=dR7L6*@OsvM1HAWeM&yUoo^du5j!%Fn9s0Bb*T5L#ria#Vb5lH26H{1;T)_0Q@r=j zDqHhIAA_J-O_yj4~ zFf7!0A_E04N9|R3H?4^ptxc1d^`$~B3u+fuXxt0=F^2jrjtx+8l6JGJ!Rs;p^}gk5 zm19G2_QNM=oGbmGQaiG@W?u+=HzNJ7I9YnSJU@S|+3EjW6+`b6VIzO%hBme?0Io<`HAer$p?%2xhJNC?K;d}2uPaj2pQZ(A z&$J-+1CLREdF2PC2jv)T{~54LXuX#E=Hg0&BYF;D+OuJ=rfgUL5wi_5-+hbuFBoF_ z4BFt%ENce}w2?|+KUaVb=)Z8Vy$=_fe}}wpO=+O3&wsP$1}5q zap*3V*`vqfY~irxUInRDh1o|b#)R5RDOj)YK7>P}y~zK_h5ZXY`jXgJZ@ryrMUGCUGOHqF=-nb*E)g>3bYtG!T>wnpq9?KpL535cq zr`vz@$oio@+fw$1LBV|frI`0c_4xU8|J^6>>G5j;=j2rmwoqF4pZ=51tYFPA(y zpr>_%S>a3-t$e-8iuZvArK{2BH0mcswUl12Sa=#jGmfmuJ2 zF9$;l$Ni!FD-F6HOc#p>)48FhdwMWUAs-m~+w_4_K#D5`1d9xz6qtq~ft&-NU(R0c zH4t1_8q7zH|AaH7J?dxB;HISPJ=;F;gVhHOW*_`;;kpIb*DXw;4~A7QOft8G^KG^{ zVByVP4++-boTmSPn$XB!>VH~L$1J&k`rkJ>oPoIhyE2Skg@^vi0_5ehpukaBuQ#g~ z;l254rhGgC`#q7ndEeKz1Pi`NO~2|=|N6lCz)Amalr;|?yo&dhUA6M6m49*jgWJjd zJ7NDeTg}#;>1S17FFbhtVpcehrzTQePOIgzwTr50|5QaPqQt*a_o+{*{jmaQo@M6veLFw3d&!8w??b<< zp#59oP*o`DHga#{+`0vVr&MpYJ&O^<4E|He7Nw@zZ1V5y(G!WQTUzux=L}A+=KP^< zfjfIJ^MBf3w7zIR(R!i%CAdM4oa=vWh)=)e8j^hxMC&HyL0#IHD64!z46;6aVM)cWv^33vY4723Jx=C$tp zvs(RKY*$L^vj5e&rAOE8m%79s!TjqA*kEx-f^z28zGiVE?)Z?-1y1>&Q$30O@guxk z{rMe#@u`Qm)AJ^n^Nu^M+pLzDo@(gv-_W$7X-Spfv(Wpk2Tum}hvj@hqIb^GztsEw;h-%&T~Ac5VXa1-tPRr;4^u zJ>o*acY+z5ISb7SE#ulxz980)8Po-_<8Y@nv3U8kDp9H{z2!$g46Mn!lN6#@sl&^ zG2dq8&fhxkADlLSn@}=;djg)+)sO*Z{#JkFY@i-8APTyhs}_Lv>hQNr(;a3I!Mgc% z3#uaF(3{X|Q|guAH+{=0ep5LWsr-rmU#b`VsJeC2(wBZ+UHR+wfDPKtLBhWfI2M^q zv}e=!SoXfm*S1$;mc{4e6Q0%)qNn|!X&oW@ZCTlwvNM6nOYOY8fQ_&1p#1 z{=W?V^zUDN;pZox8++s^qbu}LSD>eiP^4S&fsCwxw5^==^1?jy%j@_|pbvRynohMZ z^YHeEwzBX3#j07HF!p7$`giqPco_J8DBqe7 zKiNtTg9Xpo$76p4&-^j9!#`gUe_+MstN-R>FV_9({P{(iFcye8Kuin7U`hb?XgVf+ zN_l7XO>HAT%-tzJr10*|_LSd?D|53d#cOPi!dK|nt>#D@d=?mc-wdC~mdI~%82fTx zPUwgRT+CNuNDVzR5*S{tnF5};$O~l!?83_6(IJ-9Zs3rc1$wYmC8nLfS z{1Y!HRy!Ip2F{OxO69M92#-Jz`ljy+J~&8AV?V^o!a-u%PgB|gnauo0V08+;i%AUi z)=VIfN}2jqDq7OC#8W?7RmGYr*_7W|xscf@)uO#OA^76_`%ewMPXqK#<&ZTo!VdF&KM3^{@ zVp$tE_VtB(*smgiOZ}%xCyV?S2>4f*zTtnF=Pi}X zj18VqXZ%z5%JrGf!Tl=gkKXIxFy!MY-%AxQ{Y1{=JL!9^;1x7rUMehyv;YA>-r_6dt;rrp3)%< z>+|{4D6CJ^uV}4n3%4{TEz1H_6%}=L;c#OkpvHyx{<dvpoNu?|ku#>(}@9XHkeJA9*6!RDuV>^RYbgND!hg7SjM7T3x$s@OFW_I@*$(u8T(2tO*9u z9o2DlGI`x~ks|i1^6+HkL|=h}u1h#vS=rYYFJd{`nXb3K*xw=#i9@9D{{Db&Q?B^^ z-zWNdc2%qHxVfsYZ`Urrii;6#4*s6M>2z-Jj`W+A=8|-Ja43CsB^`oJneX4~`!0GlR^8}z!u7=eCDMLW3#k=(``}6#c$x>zo`Qk zeWv!K;6r8~gbImYUh@2(Jl6XdZL>VJNVc$HB6ccogY#m!L&@Rv#=+U6uf$<}J=xX* zQDXwez9*k-Y4Q8RVMD=6eLg!iZ!%cuBE6wNAkLc?40dTe>7V*i@0PZf62DBi{3T!d z(v~f3K`<*kY2z-wCmzub_pGw**D0eP(fHgqr#g3(hg5?TGXLhcIy>n&H~7F8re;hw zPaKBiiLk9N{A9+A=H|miO#OMY>hZVKEvZ}QU*qH-%_zB~;gSZEe{{L8DcEYI8gJY1 zlw$tTPkwarg^}Em(V-C=wQp4?F6+Ibt>GG9O|Znr{GrSL_{w#Q>wF5F?xXeH5aX)dvH>>=R2`fB){+o$AE3wX|W0yR?@a0g!Zp%lf)HBJKh9)+gMa~gDfVK)29@=)p;QU+xR6#tw=pptTIv*!J z=lGKt9%sxOS`hzwQ0K2`4|JfVq+_MzuYlsfrY+!tS7Bi*+!G#Xiy1tnr@ycZnpV}6 zw^iSmxFv7{B51@F<%_CsUb}1I4U0Ly>r{o#iLPC#TdW_er*OU#IVgQy>-OI`y!xPt ze_61j_VmXF$;VBR`q>~(Ti3e z=PE3q9OT|4qn%Bi+92oLzbm^lI}TmOVyn*V#=$LnclI-WK@Q)G%&WAzLM_5s;LP64 z{hjirbp?C{;X8aC@7EOIK;>98&wN8lzc#foG#omB(}E?3BiqaC(<+O5QV!tqBBmUO z<)VQoa_5*mR-(_91?YWu{qLkpesZ?0&yz0su^fD>uim#3{vYNL%*TB8X6=8H7{VN| z?2UsfY~}#9Acn9pmQ?Gs|4IBu+u#qU?`8u$Zx3P=2Jq~p?hQ@5Z+|c|fKNv4%ASA+ zZJGKhtkY7Af`1|i|I4yxei|&rCkXzXp20}#!`Q##n78tp$!!0%2Ath$slTm_Hm*D^mykEt7+_#v~t zXm`&Z1?iw1z~|4@#&9y0jLj>Js_eS2r0>7uBTY>;O*M01h2_C}3H6wII{Qp^Kdz5i z16CsU$PJh6zidD8J1>p!y|sY?6Y$TF+y%Sw18P9d(065bY5zYp;OmjfF?!Kvj?4Jd z|5ydCt>yeFVI`OWRTZ&nY8Uel&vItE7 zbNa_W83<~pICS$D6ne-*ZUOHU{bPslhM4`(;G8}bN^76X5K$%rK`w~o#eW{e zOYq^4u|Ia;w_tgG${(+Hi}M%3;@x8Xcand-EoSaV|JE%?X*8Jkrw`lQkG_#hZA1); z{plE@4?CSMJbq{T&Dgm?>fu$Xbo%kXPG1wdXz&s0;Z!QD=KCjOQxykhOa>=bKw&Ds zKbEif`Hahh!4)fP+q^&C-vTc)=1A|%EWdewXVux{+5CyzJ>cWl@%~n~|7^v~@#?~4 z*I9bPp&456W^2luqKojC^Ygj|)xL`IWKCOjHRir&F)#X)z$9cC3v(W3oLz9j;Pd?p zgW!Ize_;y#g%+Fs1<7BC>Zos^@Sn|J5dXjvMgO_@2bvEX|2awM@6=cPyAi*rM+A1@ zrY~n6{N$HE@#lA5wesQxi(@?hLB#mz-P)2qs7mi~y<3kSIT)TUy_EJJ{7(KgM#0GL zhcge|`i)y3*3yyVF$MlN{;f3LfXBa;OeZbe{~RJeufjroN-^?WdRjisho6eTCFjgv zGZ@_}bp{?%wh0|nlkJV2Ne{$zYWHA!<`^{w&)tEtvLA z3kI7OJXmMo8f;pahS3KXOAFI5S}>UM&zpZu{{7wjYZHHz{OjGF9Ydx*|1t*YEyjN@ z$C!ovoaeN(QSVy}4aE4B*m{=Mo^Jjg^H-2RTg=~M{z~OoOEG`%1nMsW2P6MQw~#}9 ztEQ!-cA;dTAQ3t{3Eyc8G%*YFo}~rBuYl&5LDLeK3>xbtwva;pjbzY}=1dE=uJ5)$ zO#hy@|BQc0{7s%m{1?N;{-2+J$okBIOsEpHrnLN`hfuQj6}-um07o#hl^9f@KnW1f zZP_a^DAF81CW4lR&X61^S;24?Ej(|HsfloRit&GH@4l|}L(IQq4kY7;m59uk{A-CH zhLHg!`Pa;uAArr9(^ed`>qtB|kYV)R&SueH#+=zkr`4TYjtnctoY}^PruEC4;K3Y& z+#h2Wb);L{Af%ZkBlC|xu)RBLqdqg^S`%&YR4j!#?ByEQCK}?6bNLS1;iOHe?$ks) z5l*N_k%vXxo;n_%J(|eX9jQIa7Fcrl=gl94F6nXW8x$AKFQ#o8<13SN?*>t7DNQEuy6EyrM@%vcR*dIA9I|}M~ORmpp?(@b! zObc?Js{}a$a63E2wBTZnzPJCX(6Tck7Qkv1|Wi>~p+zHBHKz1VNvdwuiVw3>qnHIG5lOF&*Q$Ae3ar`nJ6Cn7K8)^NuqC7be7ub%S5-PAf^Pkt$ zuYYI$Q{g!5IeU;6q3vsG7qUtA%)Hh~E{n*A%G7o4tnkl+GL+Q)k0Edrfiu4!QqygxPBfa~{LJ zVz0maU$oyJ^L8GP=-`{@m| zVhtnX?)TESfZQl{rZ4o2o0R}X%!$Ekp)8$tHLSp&12J+#>3KeXV1 zCjV}QFPR0{qW^$vL5KtBc`15u(&1m=0R0E$#ry@fuv`5D?jVIN?C$*f7Rmn={%;2V zi~X(nKiC|3s)hD{8Y4G|-lcUUUE}m%dZZ~0J?51^K1i@*mb8y|q4Rg2PB}M3AHC0y zK9`gQT=@}zhChzG<950L+sESp1cmR1%>0V)`^6PBA~lDuF)L`eW}0hg%?cW>T;>{D zvx0`JMizsEHaaVC-q+gdt6jLP+|*}g7XAP8ofSBIX08D?^(j@_RBOB`qK6v!tINt) z1?%T6PYCYT^}C_{MAWwr@9x}}*|PU=N-(W=u77(g`{8xa)PUw6u^;a4?#{~UL76|( z|MpJ&2cN~r)(7bQ5L2yvO-spYtl_J2u=o#_6xRS7`{@TA@-9SvFnS{SM_hdrgZx_T zPF5co>kI3z{af`4=8*Gd(`}iWP90yA17oTjd3jGjt2sDE+oe^@4msk( zygdXf;(ql~sMoPKWe72 z@kY1@hWGkzRb)q9f6wRxx;-C|>;Q5Le}dD9#e+?p26r%e#SBd^<_;jlEP4F%`X6BV zPxC*-px3`$CsKFP=N@zF_Ppu3UHpmfR+% zzIYEG_~do(kptX6;a6&Vc3alLh`!F$nfSdmy){#xn7V1|<5Qpf@uz#2Td)E5AR_%` z$m3_*uTfKfe`?ON_*Zjc*6H%`1>;w$H)3}s--x}T-t=QU18sO_3^YH!AFE#EpE2q% z@IStsdEll$|MdFhQ+TRp@vjEfV!4_hEB(rqb4o9Lbz8juU6!}wKgMh;A%7w&8o)*`YTYX4 z|A#{n$X})a9kuo$ekU1J1KFI@f9mkO>dfVk)6t~vp!Y+21C+Y*(s#}I@Vh!znjHkV zdiaQE{{hZFy!$8I>RG$Y{%)^weJ8}nkUzi0D)6T+%%8tu*v0?a@=DFOYnDepy0Uvs zFS0?l)}`X9cuS-w*jv&DyL9T%>C|{(EdS!zfumFCkuwmyI!0s9uATV3rEucbAy$;@4n(Y1aZ>(HDdD_Mb^mCIZ9?%6imap+L~BL^~s zbRu1h{1+se6Wl&Jd0dY0+m-)|ET3A8M{V`>_$dDuDPY8d8|QYcEFj!xe}q*kqUA}`Wn>%zs=X6-MJY{QJ*mQ(sWT--TH4z@*mtKM4v zLy3y~uN3(|-;w{X73IIk{@0P;KN08-eAo~9?TLV1zQ*MDH>s6Yt95JoLizn%clK^* zF#2NBtsCpNzyreQ5A9c--yeI~YQ;#7U?gJJ4c5}5H|}q>4=1U^@W& zgX~@0y#b?bJP!|U=X03aj04e+j+S0JFVWF1)3wjX)a^?S~l9iBMlZVE&{698&;3!w1 z8~L9q%Ks&hd~YrPkHS9o%74l4cjf;&%)c2siw0!>A4c-c=>F!>DSdNbUxn?Wh z*`v*`niq29s*MZS48P7Q`>j z?q|pswqX4`zB|^@zB^ldcf{O(h1wH}Mi=hCLJ4B9Jiohtk;FgU{3By+UpW7@?rrj4 z>-y!c|GD)i7tWt^tbL3E*J7If(1I2HDb{~dTmRG_4z|UUEcfR(d0?Xp9X;$Gp#P#c z|Hol^zr67?a-rp3j$cXizaeh$+mXF%N~#;v8IZe3jz5clw=f0+&96^Nblq@^^RN^zgE0h+l)w zlO2RETtAPypF{13L7O(NXHNL%dYB_j8K}VhD?v4jK|3;n8Q2fBpl6qf47n89PsibT zZ*)d52-}-6$i@+`3{Z+5>;Z6)DZt1wPq!IN4O9vaG6gtT3Z-wb&MkrlH$_&Dy74z- zL7Vf59Cr}h-Dxm=eADw+-1Vn&4O@7?ys_ej$A%{Nfd4%C!AvyczcjTUDqhZ6z=kFhe{ih;bAhqK4Q2})U`M!xQS6~>Tr4(# z2WuNZFg-Q($X_(~=j^3^-jl87{#^U}VZ<*C|1T=?5-1USJ{A~ky$Un(n zp%2fEznKWU9P(R<#Vr4LTxm&}`OvEBIP58?k<>Cxa1ZePEAMVT2rH-BjVdHF+i zjt%h!y!Xr-F*d-Vl~=7;QRa@n$sgMPmia?hfOp~jNE-QfMJfaD$2Ccje3?3ohqzp=k*wMYy40(_Yk1WOBkv{1xo!QH=$ zN2LYl0>S8m!KMWd)-4$Phu;4o_%5!1?5R?S@FHG5u%lxocYcaRxe_l5iQ!UE7B^e= zj7veplsRl+iCR#CRRoGMhb=T!B@lrLX_>R!h0xqnwB zF!#KY7Q|kl{Vsc$38vM{Im}%ab})m*Qc*7TH#Tq=i-e{*wlM1W0J(qKdicGK{FVEQ z^x*i_&yy#h^d>gTVV?~;wgB4{{*AArKc;$um(qGY-12msDG=l3ds~|?^v|5n1Aa>4E!|O zFom(RAa+4Am=SpF;BO%Kmo2#TC$n#^|C1uwzcV}&a`wQLALtS4oBan^hg9mgt9298 z^WRvz0y9BVr2j2N{h35<@BV|b{>JQI${o1VnE!mssSXU@9oR9r$+X8D9qwRQELrY> zXzI&R_Q6}&2QOwHyoG%boWacLwEu@{pTnRT^-=>J%h9>a`q-Qx{}J<@VGg2}2A+s;vMKv-9!$*~Z$3=C2)fg|e*yjHaqL^+?q9(A z!)nx`^y2;`{G{w7@E#L?M(2HD_YLk>0EyRyooi|Ru>X{RXA!G-6*dUhCJttE@W0Cr zoUlH!8JqHt`&Muc-eoa{7mHpz|B~6uu!41?Uc$T$G|LzsaxX9g!utFn?z-GK(sF22 z56Hmm=Mc=2Pt@1i-U zMW+R!zY~x`(n1jjul#$~_u={yC9xyM5(G=^h_M83?1-@hZ|sP%1aw~)<}hG~prXCO zRmkCB3`x-9*%(Q84nDqt@w$x4XY!e$%!pNh#FiqmhwswC!B~`f(3M||1ak#$v1BJ8 zOI`m5pSu^-`a!}l$_o{e1n0wdT%D%>-sN3;1VBXxGBIv-{j2k@8P}6 z?nr5Uitk*<-m!X&2hL&5wpl$!%y(9LT2_w{lXAT+2-UbPkaE2(2-UbPOkqq-?C6g% zi*Q%ZUA~5~WbO@RVn>W6xU1(LK@2ZYsKQPPHQ++7Kwkha7xun)?2ncb;zJhKzx)jR zYw7W8+#vb8W(D&p^%wqYz`bVwIHUi~{&5qK*+(R@5=hqD2l9<0TjGI2D$V~@!R8P;lvQ-40h6)> zx2wNu|4?IN>_d%z)!vS4+ttbT?#5KCyYZyP%kk{Y%rzw$iD9LVix1=J#d{%FL~y~1 z@Igd+rWa=IFbmEU(!SS!#V9tj;7pf+hB z|DU-K8N@TkB|nA-N&ok$Ym4WBx8C>ZYnPe>r2lJig(<)%uKn(PI}PSvAM~KN0Q+3b zT~EEE#{Z8XY`3aba4$!P>zr>=wLZ%igY6S2iIh~%x~ZCH)*(ji!*%o_bKKSq-?rN~ zxzwJWEueX6fw@$*kOYYEqJ?4;+zfV{- zR<&6_7lHL1P<J~bA6i9mhlahu8&FX)G-v^q19N7JPV(rq>~h@Oa_YgrWseNWZoD8cHF{8MWK)>pfQG3a|;sP_PO z=ifqy$35pI{w6#3(}O9ykjbw1;zh2U6%H|PpZn^`I;f*zvu>U-h$SN?|AbnZE0A9) zwx7W~EOyFz$sFMPff@X!$QnAY{E-&Sd9y=yH%2gfH~VjoBl?UzB-KQkpKfhGZ`r$L@1q;}*%Ehm zzL3X1fB(Ri*y|SaV|!Y9biV(Rkz-3%Cu$RywOpq037x&?MzC|*|L#VxcVv6B%wAvb z#NcK1Z}Z{qA&~)GKTHokZ7AAHmR>*1S%63&?w>C$Y_}%x|9x=o%pCsa!#51|0Wf`>M(Zjd@U%k7SZ5=A j@!7o}TRC<8h0ZQpw`%KDFaPy?_*3!tuG81uQS$!)v=(Ng literal 0 HcmV?d00001 diff --git a/data/sprites/official/rainbowlink.1.zspr b/data/sprites/official/rainbowlink.1.zspr new file mode 100644 index 0000000000000000000000000000000000000000..bc8443f9d7d4a2addc01c2f366a0a464c08816bf GIT binary patch literal 28890 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 Ke>rp9{XYN`3BI}j literal 0 HcmV?d00001 diff --git a/data/sprites/official/ryu.1.zspr b/data/sprites/official/ryu.1.zspr new file mode 100644 index 0000000000000000000000000000000000000000..5c6d541156595ccb93e3884e731f25f28c1927ce GIT binary patch literal 28866 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 literal 0 HcmV?d00001 diff --git a/data/sprites/official/sailormoon.1.zspr b/data/sprites/official/sailormoon.1.zspr new file mode 100644 index 0000000000000000000000000000000000000000..1120d3f42b0a1e84c5c67c0a3bd8277f261d6002 GIT binary patch literal 28873 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 py5G$g7e}wI&oZC+W%evGXL~w&J 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 R+cw{H3;p!E^EW-@_@Azz$uR%` diff --git a/data/sprites/official/samus.2.zspr b/data/sprites/official/samus.2.zspr new file mode 100644 index 0000000000000000000000000000000000000000..81b0912fa945ef50df997aef8351bf0cf5d25e92 GIT binary patch literal 28879 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 Rz{hWoMDF?2XKq;Z{{Vc^7}Ed% literal 0 HcmV?d00001 diff --git a/data/sprites/official/snes-controller.1.zspr b/data/sprites/official/snes-controller.1.zspr new file mode 100644 index 0000000000000000000000000000000000000000..5dd70f394385e3ff884284e18b47dbfc2bf83722 GIT binary patch literal 28884 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 Z?D`wVqrJGRYz3Wd{WzT+`dE|m{{WUf@+JTP literal 0 HcmV?d00001 diff --git a/data/sprites/official/thief.1.zspr b/data/sprites/official/thief.1.zspr new file mode 100644 index 0000000000000000000000000000000000000000..b6b0ffefc1b72c4d332878416cc6926b64aabac3 GIT binary patch literal 28863 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

O`vqfJ-oCxRKh_nChBUSS%7_f= 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 literal 0 HcmV?d00001 diff --git a/data/sprites/official/tmnt.1.zspr b/data/sprites/official/tmnt.1.zspr new file mode 100644 index 0000000000000000000000000000000000000000..8f01c1db464361e01e6a366597193f0644581e58 GIT binary patch literal 28859 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 literal 0 HcmV?d00001 diff --git a/data/sprites/official/totem-links.1.zspr b/data/sprites/official/totem-links.1.zspr new file mode 100644 index 0000000000000000000000000000000000000000..e4ac6abcc588211907144713aa55918fa480581e GIT binary patch literal 28871 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 literal 0 HcmV?d00001 diff --git a/data/sprites/official/ultros.1.zspr b/data/sprites/official/ultros.1.zspr new file mode 100644 index 0000000000000000000000000000000000000000..bd312843f789d8a3c1dae26b59813c4325f986c2 GIT binary patch literal 28872 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 literal 0 HcmV?d00001 diff --git a/data/sprites/official/vanillalink.1.zspr b/data/sprites/official/vanillalink.1.zspr new file mode 100644 index 0000000000000000000000000000000000000000..409171fab19e9315e0d7f250e7ab88fb4c579839 GIT binary patch literal 28873 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 K*pcN&mj6H7$(OMJ literal 0 HcmV?d00001 diff --git a/data/sprites/official/vivian.1.zspr b/data/sprites/official/vivian.1.zspr new file mode 100644 index 0000000000000000000000000000000000000000..9de1061f87888ba0e5e9496a090715efc717b44c GIT binary patch literal 28863 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 K`PC))3I7*Q8Zw;# literal 0 HcmV?d00001 diff --git a/data/sprites/official/wixb.1.zspr b/data/sprites/official/wixb.1.zspr new file mode 100644 index 0000000000000000000000000000000000000000..2e67941b4e4c1d8846ab62ccc1ae5323a8fff1aa GIT binary patch literal 28855 zcmeHw4|E$>neUY}*2wlqBmZeE$FfGToj4^_kD9`G~>_$hjI?fIb5AM`pup1-aB{h{qFbgUj5}qcI~#k`qOnQ+X$p&Tau78 zvEg?}N69BiirfOneD?|E(g?zOpVnT)djCmCZ)yMX`d#kj{V!ivzjsJ04~l?fCvM{Ptn$9E+Q7VB;F|-RYbj>P z)69KDO>G}G@#2$eDy?A$VTg>W%K1rKYnd`iavYTkz|H$d-CqjLVF!BlVbcGp)Yp- zefQHDobO@ck=%8~-+SNb)6icM%%r?>yofDfSVS za0+tU6|(`E5FeTGAwuq9&%UpCYjvG%_l@g_(}pX?np*taxjw{DoE~nNOomOLBp5mjF< zAp?DhYCmF62h_Bj6A|OgGe_TNyO)o?r!&h(-)Uv}=)>`+l|YjAq0T1{e)b+Zexv;E z(5ddnyB{~kFLCcKzWBa|(@-Ur(5`%J;b#ja*^WX-XgtL3DuO0y$w6303F~GJOh`XD z>^-5+f4tgHX8Mn(jC_rrET?x_=sEH@cfi*%WZaKbeXD?BWdwT8LT>|lw}oCIYrQi*lU|V`iW)&Ik->OhVj`I2TD3t; zabKdVDMkl1yrUJamB2%d=jTW{SI(K(PKt;Np1#sa%eNEOUJOrPuJKQJ65zlGeQ7bO zWdnbAhSJ#n?=7yD=WX!)xXC>qJl$F#FSi_+Y%VFe}^EIA8(T1`B z%!nL(_9TZAGD(PGsJAx>R}>|Y5QCCemPsXx^xo2HpvTUwp!B@p40#c!NZQpD$$5Qp zZ}NyMLUs53-LC4fE?-XPxL0o!brdB zwRTz6G13dkYZtyhoC_!NgxC3s%69W!FaazohR}&*rR8k4n&nZWGvxnv;W+rERSbt@a zpDQa_X^W8x?H!cC^V8ld*W>{%5>1^*A_rH94CSYDYEA{bYY=_vLx8WZp5*I8VZ#(^h@~p-`7L_LDmASva^s$9Ib8+&u_&_2_ zlBF$0tNGPD;#2#(LLU!pc|M$RvojY{q>047(bJZp&)?$K-+k8Nz%k52V;!ff4`V6FyCu z2Uh`_D5m-xUP1hM*TMeru$lijw{Kwk@BqJ+zn_1Y?W)&wM{%oiP6^NLsf)9I8V7nc{dXC?qud!x%B_ z4=ZL-f2J7i2TqWH+sNUHBuLJ9Z$e1&ZDe~J(#B)-GetI!d7y5**O~JuQ>1PRX{q(Y zuCgF^`PeYO-~X-lvDWcs7BwL#FWxTph#Bz#LPTZWf#3G99RyuzYx+#X1ys9xOkA}_mM+=YbVxDBnJ^Azlu7NeA>}drehN2 z;fd;Zp@9eZmjdgDM`<7H5p_(WiZfR-Zl6K?hfHBU%ttf}1P@XQA@r?#c^B(q5tn4| zA3t{7qeP|tgbdiO-ZE}K;RGqdCnLUpeTqGX_6Hl4e^LM5hxP{#l|gPF3e4Pz_6L#b z>!^R^i=9C4 zF>o$Cl^Bs#Ng)aChSX5@P)ahR-K5oK>;SL2j{6eb(0)>UodH|hNW>;J2(=f5mJD{I-%+8<_r zkpJ-F?YRisV_PCiT*lGp3koq3tV#$Yd(XXpZxC^Wy%@RZ4V9ym67aq@q^mJkxcftn3vX-Aqpl{j@D<+{O&c>VU)Q+J)Z568`#$s^CT zOYPDX=amO3-))$+kJ`ttJbL9p%0D7()Y0vIJ@`Zu9d)>pq$`$!Upvg?TE>o@?hzmC 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 F{|}?T$D;rM literal 0 HcmV?d00001 diff --git a/data/sprites/official/zerosuitsamus.1.zspr b/data/sprites/official/zerosuitsamus.2.zspr similarity index 97% rename from data/sprites/official/zerosuitsamus.1.zspr rename to data/sprites/official/zerosuitsamus.2.zspr index fe9fef361f4ae346c9ddd7c25631c91f47b956cb..0e5a7d1790265e9ff83cbc652a1d14dda4707ace 100644 GIT binary patch delta 276 zcmccpkn!R delta 215 zcmaF-kn#3IMuDi{fFMRUg`M}~8GxW5exiUEOKNIy#>O-~9-)L21|U%gc);+1;m77> zJP#Q~KQts9cyQo>!vls52|Ef3fD#WF9&Db&SI8pt#^Z=X$A%9;Es{%g8^Rc-2yB)Y z?lYf!R?24cORs&5Hu|D^3_1cj3_2`&!ukUCj9Ltu0@_U4LfQhljQR}v0)HB67;G3! zI7~E34qVarqfo*zhvACH6^APfTRJvB_Bp~hdAWzf=I4Gd6h;2(U6GtyqsG9Hc91EI Lp^5ohP#H4-KNw0| From d68a0865c881262b2d17e4c96c7b5f5afc06b073 Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Wed, 26 Sep 2018 13:39:26 -0400 Subject: [PATCH 14/16] Fix awful naming of the write_int## methods --- Rom.py | 90 +++++++++++++++++++++++++++++----------------------------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/Rom.py b/Rom.py index 1e31c4f4..9a9a75d7 100644 --- a/Rom.py +++ b/Rom.py @@ -32,10 +32,10 @@ class JsonRom(object): return self.patches[str(startaddress)] = list(values) - def write_int16_to_rom(self, address, value): + def write_int16(self, address, value): self.write_bytes(address, int16_as_bytes(value)) - def write_int32_to_rom(self, address, value): + def write_int32(self, address, value): self.write_bytes(address, int32_as_bytes(value)) def write_to_file(self, file): @@ -64,10 +64,10 @@ class LocalRom(object): for i, value in enumerate(values): self.write_byte(startaddress + i, value) - def write_int16_to_rom(self, address, value): + def write_int16(self, address, value): self.write_bytes(address, int16_as_bytes(value)) - def write_int32_to_rom(self, address, value): + def write_int32(self, address, value): self.write_bytes(address, int32_as_bytes(value)) def write_to_file(self, file): @@ -320,9 +320,9 @@ def patch_rom(world, rom, hashtable, beep='normal', color='red', sprite=None): rom.write_byte(0x15B8C + offset, ow_area) - rom.write_int16_to_rom(0x15BDB + 2 * offset, vram_loc) - rom.write_int16_to_rom(0x15C79 + 2 * offset, scroll_y) - rom.write_int16_to_rom(0x15D17 + 2 * offset, scroll_x) + rom.write_int16(0x15BDB + 2 * offset, vram_loc) + rom.write_int16(0x15C79 + 2 * offset, scroll_y) + rom.write_int16(0x15D17 + 2 * offset, scroll_x) # for positioning fixups we abuse the roomid as a way of identifying which exit data we are appling # Thanks to Zarby89 for originally finding these values @@ -333,25 +333,25 @@ def patch_rom(world, rom, hashtable, beep='normal', color='red', sprite=None): 'Palace of Darkness Exit', 'Swamp Palace Exit', 'Ganons Tower Exit', 'Desert Palace Exit (North)', 'Agahnims Tower Exit', 'Spiral Cave Exit (Top)', 'Superbunny Cave Exit (Bottom)', 'Turtle Rock Ledge Exit (East)']: # For exits that connot be reached from another, no need to apply offset fixes. - rom.write_int16_to_rom(0x15DB5 + 2 * offset, link_y) # same as final else + rom.write_int16(0x15DB5 + 2 * offset, link_y) # same as final else elif room_id == 0x0059 and world.fix_skullwoods_exit: - rom.write_int16_to_rom(0x15DB5 + 2 * offset, 0x00F8) + rom.write_int16(0x15DB5 + 2 * offset, 0x00F8) elif room_id == 0x004a and world.fix_palaceofdarkness_exit: - rom.write_int16_to_rom(0x15DB5 + 2 * offset, 0x0640) + rom.write_int16(0x15DB5 + 2 * offset, 0x0640) elif room_id == 0x00d6 and world.fix_trock_exit: - rom.write_int16_to_rom(0x15DB5 + 2 * offset, 0x0134) + rom.write_int16(0x15DB5 + 2 * offset, 0x0134) elif room_id == 0x000c and world.fix_gtower_exit: # fix ganons tower exit point - rom.write_int16_to_rom(0x15DB5 + 2 * offset, 0x00A4) + rom.write_int16(0x15DB5 + 2 * offset, 0x00A4) else: - rom.write_int16_to_rom(0x15DB5 + 2 * offset, link_y) + rom.write_int16(0x15DB5 + 2 * offset, link_y) - rom.write_int16_to_rom(0x15E53 + 2 * offset, link_x) - rom.write_int16_to_rom(0x15EF1 + 2 * offset, camera_y) - rom.write_int16_to_rom(0x15F8F + 2 * offset, camera_x) + rom.write_int16(0x15E53 + 2 * offset, link_x) + rom.write_int16(0x15EF1 + 2 * offset, camera_y) + rom.write_int16(0x15F8F + 2 * offset, camera_x) rom.write_byte(0x1602D + offset, unknown_1) rom.write_byte(0x1607C + offset, unknown_2) - rom.write_int16_to_rom(0x160CB + 2 * offset, door_1) - rom.write_int16_to_rom(0x16169 + 2 * offset, door_2) + rom.write_int16(0x160CB + 2 * offset, door_1) + rom.write_int16(0x16169 + 2 * offset, door_2) elif isinstance(exit.addresses, list): # is hole for address in exit.addresses: @@ -428,7 +428,7 @@ def patch_rom(world, rom, hashtable, beep='normal', color='red', sprite=None): rom.write_byte(0x34FD6, 0x80) overflow_replacement = GREEN_TWENTY_RUPEES # Rupoor negative value - rom.write_int16_to_rom(0x180036, world.rupoor_cost) + rom.write_int16(0x180036, world.rupoor_cost) # Set stun items rom.write_byte(0x180180, 0x02) # Hookshot only # Make silver arrows only usable against Ganon @@ -448,7 +448,7 @@ def patch_rom(world, rom, hashtable, beep='normal', color='red', sprite=None): rom.write_byte(0x34FD6, 0x80) overflow_replacement = GREEN_TWENTY_RUPEES # Rupoor negative value - rom.write_int16_to_rom(0x180036, world.rupoor_cost) + rom.write_int16(0x180036, world.rupoor_cost) # Set stun items rom.write_byte(0x180180, 0x00) # Nothing # Make silver arrows only usable against Ganon @@ -468,7 +468,7 @@ def patch_rom(world, rom, hashtable, beep='normal', color='red', sprite=None): rom.write_byte(0x34FD6, 0x80) overflow_replacement = GREEN_TWENTY_RUPEES # Rupoor negative value - rom.write_int16_to_rom(0x180036, world.rupoor_cost) + rom.write_int16(0x180036, world.rupoor_cost) # Set stun items rom.write_byte(0x180180, 0x00) # Nothing # Make silver arrows only usable against Ganon @@ -487,7 +487,7 @@ def patch_rom(world, rom, hashtable, beep='normal', color='red', sprite=None): #Enable catching fairies rom.write_byte(0x34FD6, 0xF0) # Rupoor negative value - rom.write_int16_to_rom(0x180036, world.rupoor_cost) + rom.write_int16(0x180036, world.rupoor_cost) # Set stun items rom.write_byte(0x180180, 0x03) # All standard items # Make silver arrows freely usable @@ -667,39 +667,39 @@ def patch_rom(world, rom, hashtable, beep='normal', color='red', sprite=None): ERtimeincrease = ERtimeincrease + 15 if world.clock_mode == 'off': rom.write_bytes(0x180190, [0x00, 0x00, 0x00]) # turn off clock mode - rom.write_int32_to_rom(0x180200, 0) # red clock adjustment time (in frames, sint32) - rom.write_int32_to_rom(0x180204, 0) # blue clock adjustment time (in frames, sint32) - rom.write_int32_to_rom(0x180208, 0) # green clock adjustment time (in frames, sint32) - rom.write_int32_to_rom(0x18020C, 0) # starting time (in frames, sint32) + rom.write_int32(0x180200, 0) # red clock adjustment time (in frames, sint32) + rom.write_int32(0x180204, 0) # blue clock adjustment time (in frames, sint32) + rom.write_int32(0x180208, 0) # green clock adjustment time (in frames, sint32) + rom.write_int32(0x18020C, 0) # starting time (in frames, sint32) elif world.clock_mode == 'ohko': rom.write_bytes(0x180190, [0x01, 0x02, 0x01]) # ohko timer with resetable timer functionality - rom.write_int32_to_rom(0x180200, 0) # red clock adjustment time (in frames, sint32) - rom.write_int32_to_rom(0x180204, 0) # blue clock adjustment time (in frames, sint32) - rom.write_int32_to_rom(0x180208, 0) # green clock adjustment time (in frames, sint32) - rom.write_int32_to_rom(0x18020C, 0) # starting time (in frames, sint32) + rom.write_int32(0x180200, 0) # red clock adjustment time (in frames, sint32) + rom.write_int32(0x180204, 0) # blue clock adjustment time (in frames, sint32) + rom.write_int32(0x180208, 0) # green clock adjustment time (in frames, sint32) + rom.write_int32(0x18020C, 0) # starting time (in frames, sint32) elif world.clock_mode == 'countdown-ohko': rom.write_bytes(0x180190, [0x01, 0x02, 0x01]) # ohko timer with resetable timer functionality - rom.write_int32_to_rom(0x180200, -100 * 60 * 60 * 60) # red clock adjustment time (in frames, sint32) - rom.write_int32_to_rom(0x180204, 2 * 60 * 60) # blue clock adjustment time (in frames, sint32) - rom.write_int32_to_rom(0x180208, 4 * 60 * 60) # green clock adjustment time (in frames, sint32) + rom.write_int32(0x180200, -100 * 60 * 60 * 60) # red clock adjustment time (in frames, sint32) + rom.write_int32(0x180204, 2 * 60 * 60) # blue clock adjustment time (in frames, sint32) + rom.write_int32(0x180208, 4 * 60 * 60) # green clock adjustment time (in frames, sint32) if world.difficulty == 'easy': - rom.write_int32_to_rom(0x18020C, (20 + ERtimeincrease) * 60 * 60) # starting time (in frames, sint32) + rom.write_int32(0x18020C, (20 + ERtimeincrease) * 60 * 60) # starting time (in frames, sint32) elif world.difficulty == 'normal': - rom.write_int32_to_rom(0x18020C, (10 + ERtimeincrease) * 60 * 60) # starting time (in frames, sint32) + rom.write_int32(0x18020C, (10 + ERtimeincrease) * 60 * 60) # starting time (in frames, sint32) else: - rom.write_int32_to_rom(0x18020C, int((5 + ERtimeincrease / 2) * 60 * 60)) # starting time (in frames, sint32) + rom.write_int32(0x18020C, int((5 + ERtimeincrease / 2) * 60 * 60)) # starting time (in frames, sint32) if world.clock_mode == 'stopwatch': rom.write_bytes(0x180190, [0x02, 0x01, 0x00]) # set stopwatch mode - rom.write_int32_to_rom(0x180200, -2 * 60 * 60) # red clock adjustment time (in frames, sint32) - rom.write_int32_to_rom(0x180204, 2 * 60 * 60) # blue clock adjustment time (in frames, sint32) - rom.write_int32_to_rom(0x180208, 4 * 60 * 60) # green clock adjustment time (in frames, sint32) - rom.write_int32_to_rom(0x18020C, 0) # starting time (in frames, sint32) + rom.write_int32(0x180200, -2 * 60 * 60) # red clock adjustment time (in frames, sint32) + rom.write_int32(0x180204, 2 * 60 * 60) # blue clock adjustment time (in frames, sint32) + rom.write_int32(0x180208, 4 * 60 * 60) # green clock adjustment time (in frames, sint32) + rom.write_int32(0x18020C, 0) # starting time (in frames, sint32) if world.clock_mode == 'countdown': rom.write_bytes(0x180190, [0x01, 0x01, 0x00]) # set countdown, with no reset available - rom.write_int32_to_rom(0x180200, -2 * 60 * 60) # red clock adjustment time (in frames, sint32) - rom.write_int32_to_rom(0x180204, 2 * 60 * 60) # blue clock adjustment time (in frames, sint32) - rom.write_int32_to_rom(0x180208, 4 * 60 * 60) # green clock adjustment time (in frames, sint32) - rom.write_int32_to_rom(0x18020C, (40 + ERtimeincrease) * 60 * 60) # starting time (in frames, sint32) + rom.write_int32(0x180200, -2 * 60 * 60) # red clock adjustment time (in frames, sint32) + rom.write_int32(0x180204, 2 * 60 * 60) # blue clock adjustment time (in frames, sint32) + rom.write_int32(0x180208, 4 * 60 * 60) # green clock adjustment time (in frames, sint32) + rom.write_int32(0x18020C, (40 + ERtimeincrease) * 60 * 60) # starting time (in frames, sint32) # set up goals for treasure hunt rom.write_bytes(0x180165, [0x0E, 0x28] if world.treasure_hunt_icon == 'Triforce Piece' else [0x0D, 0x28]) @@ -746,7 +746,7 @@ def patch_rom(world, rom, hashtable, beep='normal', color='red', sprite=None): rom.write_byte(0x18004D, 0x00) # Escape assist (off) rom.write_byte(0x18004E, 0x00) # escape fills - rom.write_int16_to_rom(0x180183, 0) # rupee fill (for bow if rupee arrows enabled) + rom.write_int16(0x180183, 0) # rupee fill (for bow if rupee arrows enabled) rom.write_bytes(0x180185, [0x00, 0x00, 0x00]) # uncle item refills rom.write_bytes(0x180188, [0x00, 0x00, 0x00]) # zelda item refills rom.write_bytes(0x18018B, [0x00, 0x00, 0x00]) # uncle item refills From 54926a17f4fb6b94949a2f178caa14464ed7d404 Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Wed, 26 Sep 2018 17:34:15 -0400 Subject: [PATCH 15/16] Additional v30 updates --- Adjuster.py | 2 +- Dungeons.py | 2 +- EntranceRandomizer.py | 2 +- Gui.py | 4 ++-- ItemList.py | 5 ++++- Plandomizer_Template.txt | 22 +++++++++---------- Regions.py | 44 ++++++++++++++++++++------------------ Rom.py | 2 +- Rules.py | 46 ++++++++++++++++++++-------------------- Text.py | 14 ++++++++---- 10 files changed, 77 insertions(+), 66 deletions(-) diff --git a/Adjuster.py b/Adjuster.py index 9ca22dd6..63a296be 100755 --- a/Adjuster.py +++ b/Adjuster.py @@ -24,7 +24,7 @@ def main(): ''') parser.add_argument('--quickswap', help='Enable quick item swapping with L and R.', action='store_true') parser.add_argument('--disablemusic', help='Disables game music.', action='store_true') - parser.add_argument('--heartbeep', default='normal', const='normal', nargs='?', choices=['normal', 'half', 'quarter', 'off'], + parser.add_argument('--heartbeep', default='normal', const='normal', nargs='?', choices=['double', 'normal', 'half', 'quarter', 'off'], help='''\ Select the rate at which the heart beep sound is played at low health. (default: %(default)s) diff --git a/Dungeons.py b/Dungeons.py index e477a223..1ef2c17d 100644 --- a/Dungeons.py +++ b/Dungeons.py @@ -150,7 +150,7 @@ dungeon_music_addresses = {'Eastern Palace - Prize': [0x1559A], 'Tower of Hera - Prize': [0x155C5, 0x1107A, 0x10B8C], 'Palace of Darkness - Prize': [0x155B8], 'Swamp Palace - Prize': [0x155B7], - 'Thieves Town - Prize': [0x155C6], + 'Thieves\' Town - Prize': [0x155C6], 'Skull Woods - Prize': [0x155BA, 0x155BB, 0x155BC, 0x155BD, 0x15608, 0x15609, 0x1560A, 0x1560B], 'Ice Palace - Prize': [0x155BF], 'Misery Mire - Prize': [0x155B9], diff --git a/EntranceRandomizer.py b/EntranceRandomizer.py index e1cb4b24..282189da 100755 --- a/EntranceRandomizer.py +++ b/EntranceRandomizer.py @@ -188,7 +188,7 @@ def start(): If set, the Pyramid Hole and Ganon's Tower are not included entrance shuffle pool. ''', action='store_false', dest='shuffleganon') - parser.add_argument('--heartbeep', default='normal', const='normal', nargs='?', choices=['normal', 'half', 'quarter', 'off'], + parser.add_argument('--heartbeep', default='normal', const='normal', nargs='?', choices=['double', 'normal', 'half', 'quarter', 'off'], help='''\ Select the rate at which the heart beep sound is played at low health. (default: %(default)s) diff --git a/Gui.py b/Gui.py index ba8ba9f4..b3026049 100755 --- a/Gui.py +++ b/Gui.py @@ -205,7 +205,7 @@ def guiMain(args=None): heartbeepFrame = Frame(drowDownFrame) heartbeepVar = StringVar() heartbeepVar.set('normal') - heartbeepOptionMenu = OptionMenu(heartbeepFrame, heartbeepVar, 'normal', 'half', 'quarter', 'off') + heartbeepOptionMenu = OptionMenu(heartbeepFrame, heartbeepVar, 'double', 'normal', 'half', 'quarter', 'off') heartbeepOptionMenu.pack(side=RIGHT) heartbeepLabel = Label(heartbeepFrame, text='Heartbeep sound rate') heartbeepLabel.pack(side=LEFT) @@ -361,7 +361,7 @@ def guiMain(args=None): drowDownFrame2 = Frame(topFrame2) heartbeepFrame2 = Frame(drowDownFrame2) - heartbeepOptionMenu2 = OptionMenu(heartbeepFrame2, heartbeepVar, 'normal', 'half', 'quarter', 'off') + heartbeepOptionMenu2 = OptionMenu(heartbeepFrame2, heartbeepVar, 'double', 'normal', 'half', 'quarter', 'off') heartbeepOptionMenu2.pack(side=RIGHT) heartbeepLabel2 = Label(heartbeepFrame2, text='Heartbeep sound rate') heartbeepLabel2.pack(side=LEFT) diff --git a/ItemList.py b/ItemList.py index 3dbf7ef8..55042878 100644 --- a/ItemList.py +++ b/ItemList.py @@ -348,7 +348,7 @@ def create_dynamic_shop_locations(world): def fill_prizes(world, attempts=15): crystals = ItemFactory(['Red Pendant', 'Blue Pendant', 'Green Pendant', 'Crystal 1', 'Crystal 2', 'Crystal 3', 'Crystal 4', 'Crystal 7', 'Crystal 5', 'Crystal 6']) crystal_locations = [world.get_location('Turtle Rock - Prize'), world.get_location('Eastern Palace - Prize'), world.get_location('Desert Palace - Prize'), world.get_location('Tower of Hera - Prize'), world.get_location('Palace of Darkness - Prize'), - world.get_location('Thieves Town - Prize'), world.get_location('Skull Woods - Prize'), world.get_location('Swamp Palace - Prize'), world.get_location('Ice Palace - Prize'), + world.get_location('Thieves\' Town - Prize'), world.get_location('Skull Woods - Prize'), world.get_location('Swamp Palace - Prize'), world.get_location('Ice Palace - Prize'), world.get_location('Misery Mire - Prize')] placed_prizes = [loc.item.name for loc in crystal_locations if loc.item is not None] unplaced_prizes = [crystal for crystal in crystals if crystal.name not in placed_prizes] @@ -376,6 +376,9 @@ def set_up_shops(world): # Changes to basic Shops # TODO: move hard+ mode changes for sheilds here, utilizing the new shops + for shop in world.shops: + shop.active = True + if world.retro: rss = world.get_region('Red Shield Shop').shop rss.active = True diff --git a/Plandomizer_Template.txt b/Plandomizer_Template.txt index 514e2f2c..6c94cc76 100644 --- a/Plandomizer_Template.txt +++ b/Plandomizer_Template.txt @@ -71,14 +71,14 @@ Desert Palace - Torch: Small Key (Desert Palace) Desert Palace - Map Chest: Nothing Desert Palace - Compass Chest: Nothing Desert Palace - Big Key Chest: Big Key (Desert Palace) -Desert Palace - Lanmolas: Nothing +Desert Palace - Boss: Nothing Desert Palace - Prize: Blue Pendant Eastern Palace - Compass Chest: Nothing Eastern Palace - Big Chest: Bow Eastern Palace - Cannonball Chest: Nothing Eastern Palace - Big Key Chest: Big Key (Eastern Palace) Eastern Palace - Map Chest: Nothing -Eastern Palace - Armos Knights: Nothing +Eastern Palace - Boss: Nothing Eastern Palace - Prize: Green Pendant Master Sword Pedestal: Master Sword Hyrule Castle - Boomerang Chest: Nothing @@ -108,7 +108,7 @@ Tower of Hera - Map Chest: Nothing Tower of Hera - Big Key Chest: Big Key (Tower of Hera) Tower of Hera - Compass Chest: Nothing Tower of Hera - Big Chest: Moon Pearl -Tower of Hera - Moldorm: Nothing +Tower of Hera - Boss: Nothing Tower of Hera - Prize: Red Pendant Pyramid: Nothing Catfish: Quake @@ -147,7 +147,7 @@ Swamp Palace - West Chest: Nothing Swamp Palace - Flooded Room - Left: Nothing Swamp Palace - Flooded Room - Right: Nothing Swamp Palace - Waterfall Room: Nothing -Swamp Palace - Arrghus: Nothing +Swamp Palace - Boss: Nothing Swamp Palace - Prize: Crystal 2 Thieves' Town - Big Key Chest: Big Key (Thieves Town) Thieves' Town - Map Chest: Nothing @@ -156,8 +156,8 @@ Thieves' Town - Ambush Chest: Nothing Thieves' Town - Attic: Nothing Thieves' Town - Big Chest: Titans Mitts Thieves' Town - Blind's Cell: Small Key (Thieves Town) -Thieves Town - Blind: Nothing -Thieves Town - Prize: Crystal 4 +Thieves' Town - Boss: Nothing +Thieves' Town - Prize: Crystal 4 Skull Woods - Compass Chest: Nothing Skull Woods - Map Chest: Nothing Skull Woods - Big Chest: Fire Rod @@ -165,7 +165,7 @@ Skull Woods - Pot Prison: Small Key (Skull Woods) Skull Woods - Pinball Room: Small Key (Skull Woods) Skull Woods - Big Key Chest: Big Key (Skull Woods) Skull Woods - Bridge Room: Small Key (Skull Woods) -Skull Woods - Mothula: Nothing +Skull Woods - Boss: Nothing Skull Woods - Prize: Crystal 3 Ice Palace - Compass Chest: Nothing Ice Palace - Freezor Chest: Nothing @@ -174,7 +174,7 @@ Ice Palace - Iced T Room: Small Key (Ice Palace) Ice Palace - Spike Room: Small Key (Ice Palace) Ice Palace - Big Key Chest: Big Key (Ice Palace) Ice Palace - Map Chest: Nothing -Ice Palace - Kholdstare: Nothing +Ice Palace - Boss: Nothing Ice Palace - Prize: Crystal 5 Misery Mire - Big Chest: Cane of Somaria Misery Mire - Map Chest: Nothing @@ -183,7 +183,7 @@ Misery Mire - Bridge Chest: Small Key (Misery Mire) Misery Mire - Spike Chest: Small Key (Misery Mire) Misery Mire - Compass Chest: Nothing Misery Mire - Big Key Chest: Big Key (Misery Mire) -Misery Mire - Vitreous: Nothing +Misery Mire - Boss: Nothing Misery Mire - Prize: Crystal 6 Turtle Rock - Compass Chest: Nothing Turtle Rock - Roller Room - Left: Nothing @@ -196,7 +196,7 @@ Turtle Rock - Eye Bridge - Bottom Left: Small Key (Turtle Rock) Turtle Rock - Eye Bridge - Bottom Right: Nothing Turtle Rock - Eye Bridge - Top Left: Nothing Turtle Rock - Eye Bridge - Top Right: Nothing -Turtle Rock - Trinexx: Nothing +Turtle Rock - Boss: Nothing Turtle Rock - Prize: Crystal 7 Palace of Darkness - Shooter Room: Small Key (Palace of Darkness) Palace of Darkness - The Arena - Bridge: Small Key (Palace of Darkness) @@ -212,7 +212,7 @@ Palace of Darkness - Dark Maze - Top: Nothing Palace of Darkness - Dark Maze - Bottom: Nothing Palace of Darkness - Big Chest: Hammer Palace of Darkness - Harmless Hellway: Nothing -Palace of Darkness - Helmasaur: Nothing +Palace of Darkness - Boss: Nothing Palace of Darkness - Prize: Crystal 1 Ganons Tower - Bob's Torch: Small Key (Ganons Tower) Ganons Tower - Hope Room - Left: Nothing diff --git a/Regions.py b/Regions.py index b0aee49c..cb141d10 100644 --- a/Regions.py +++ b/Regions.py @@ -98,9 +98,9 @@ def create_regions(world): ['Desert Palace Pots (Outer)', 'Desert Palace Exit (West)', 'Desert Palace Exit (East)', 'Desert Palace East Wing']), create_dungeon_region('Desert Palace Main (Inner)', None, ['Desert Palace Exit (South)', 'Desert Palace Pots (Inner)']), create_dungeon_region('Desert Palace East', ['Desert Palace - Compass Chest', 'Desert Palace - Big Key Chest']), - create_dungeon_region('Desert Palace North', ['Desert Palace - Lanmolas', 'Desert Palace - Prize'], ['Desert Palace Exit (North)']), + create_dungeon_region('Desert Palace North', ['Desert Palace - Boss', 'Desert Palace - Prize'], ['Desert Palace Exit (North)']), create_dungeon_region('Eastern Palace', ['Eastern Palace - Compass Chest', 'Eastern Palace - Big Chest', 'Eastern Palace - Cannonball Chest', - 'Eastern Palace - Big Key Chest', 'Eastern Palace - Map Chest', 'Eastern Palace - Armos Knights', 'Eastern Palace - Prize'], ['Eastern Palace Exit']), + 'Eastern Palace - Big Key Chest', 'Eastern Palace - Map Chest', 'Eastern Palace - Boss', 'Eastern Palace - Prize'], ['Eastern Palace Exit']), create_lw_region('Master Sword Meadow', ['Master Sword Pedestal']), create_cave_region('Lost Woods Gamble'), create_lw_region('Hyrule Castle Courtyard', None, ['Hyrule Castle Secret Entrance Stairs', 'Hyrule Castle Entrance (South)']), @@ -147,7 +147,7 @@ def create_regions(world): create_lw_region('Spectacle Rock', ['Spectacle Rock'], ['Spectacle Rock Drop']), create_dungeon_region('Tower of Hera (Bottom)', ['Tower of Hera - Basement Cage', 'Tower of Hera - Map Chest'], ['Tower of Hera Small Key Door', 'Tower of Hera Big Key Door', 'Tower of Hera Exit']), create_dungeon_region('Tower of Hera (Basement)', ['Tower of Hera - Big Key Chest']), - create_dungeon_region('Tower of Hera (Top)', ['Tower of Hera - Compass Chest', 'Tower of Hera - Big Chest', 'Tower of Hera - Moldorm', 'Tower of Hera - Prize']), + create_dungeon_region('Tower of Hera (Top)', ['Tower of Hera - Compass Chest', 'Tower of Hera - Big Chest', 'Tower of Hera - Boss', 'Tower of Hera - Prize']), create_dw_region('East Dark World', ['Pyramid'], ['Pyramid Fairy', 'South Dark World Bridge', 'Palace of Darkness', 'Dark Lake Hylia Drop (East)', 'Dark Lake Hylia Teleporter', 'Hyrule Castle Ledge Mirror Spot', 'Dark Lake Hylia Fairy', 'Palace of Darkness Hint', 'East Dark World Hint', 'Pyramid Hole', 'Northeast Dark World Broken Bridge Pass']), @@ -214,7 +214,7 @@ def create_regions(world): create_dungeon_region('Swamp Palace (Center)', ['Swamp Palace - Big Chest', 'Swamp Palace - Compass Chest', 'Swamp Palace - Big Key Chest', 'Swamp Palace - West Chest'], ['Swamp Palace (North)']), create_dungeon_region('Swamp Palace (North)', ['Swamp Palace - Flooded Room - Left', 'Swamp Palace - Flooded Room - Right', - 'Swamp Palace - Waterfall Room', 'Swamp Palace - Arrghus', 'Swamp Palace - Prize']), + 'Swamp Palace - Waterfall Room', 'Swamp Palace - Boss', 'Swamp Palace - Prize']), create_dungeon_region('Thieves Town (Entrance)', ['Thieves\' Town - Big Key Chest', 'Thieves\' Town - Map Chest', 'Thieves\' Town - Compass Chest', @@ -222,7 +222,7 @@ def create_regions(world): create_dungeon_region('Thieves Town (Deep)', ['Thieves\' Town - Attic', 'Thieves\' Town - Big Chest', 'Thieves\' Town - Blind\'s Cell'], ['Blind Fight']), - create_dungeon_region('Blind Fight', ['Thieves Town - Blind', 'Thieves Town - Prize']), + create_dungeon_region('Blind Fight', ['Thieves\' Town - Boss', 'Thieves\' Town - Prize']), create_dungeon_region('Skull Woods First Section', ['Skull Woods - Map Chest'], ['Skull Woods First Section Exit', 'Skull Woods First Section Bomb Jump', 'Skull Woods First Section South Door', 'Skull Woods First Section West Door']), create_dungeon_region('Skull Woods First Section (Right)', ['Skull Woods - Pinball Room'], ['Skull Woods First Section (Right) North Door']), create_dungeon_region('Skull Woods First Section (Left)', ['Skull Woods - Compass Chest', 'Skull Woods - Pot Prison'], ['Skull Woods First Section (Left) Door to Exit', 'Skull Woods First Section (Left) Door to Right']), @@ -230,19 +230,19 @@ def create_regions(world): create_dungeon_region('Skull Woods Second Section (Drop)', None, ['Skull Woods Second Section (Drop)']), create_dungeon_region('Skull Woods Second Section', ['Skull Woods - Big Key Chest'], ['Skull Woods Second Section Exit (East)', 'Skull Woods Second Section Exit (West)']), create_dungeon_region('Skull Woods Final Section (Entrance)', ['Skull Woods - Bridge Room'], ['Skull Woods Torch Room', 'Skull Woods Final Section Exit']), - create_dungeon_region('Skull Woods Final Section (Mothula)', ['Skull Woods - Mothula', 'Skull Woods - Prize']), + create_dungeon_region('Skull Woods Final Section (Mothula)', ['Skull Woods - Boss', 'Skull Woods - Prize']), create_dungeon_region('Ice Palace (Entrance)', None, ['Ice Palace Entrance Room', 'Ice Palace Exit']), create_dungeon_region('Ice Palace (Main)', ['Ice Palace - Compass Chest', 'Ice Palace - Freezor Chest', 'Ice Palace - Big Chest', 'Ice Palace - Iced T Room'], ['Ice Palace (East)', 'Ice Palace (Kholdstare)']), create_dungeon_region('Ice Palace (East)', ['Ice Palace - Spike Room'], ['Ice Palace (East Top)']), create_dungeon_region('Ice Palace (East Top)', ['Ice Palace - Big Key Chest', 'Ice Palace - Map Chest']), - create_dungeon_region('Ice Palace (Kholdstare)', ['Ice Palace - Kholdstare', 'Ice Palace - Prize']), + create_dungeon_region('Ice Palace (Kholdstare)', ['Ice Palace - Boss', 'Ice Palace - Prize']), create_dungeon_region('Misery Mire (Entrance)', None, ['Misery Mire Entrance Gap', 'Misery Mire Exit']), create_dungeon_region('Misery Mire (Main)', ['Misery Mire - Big Chest', 'Misery Mire - Map Chest', 'Misery Mire - Main Lobby', 'Misery Mire - Bridge Chest', 'Misery Mire - Spike Chest'], ['Misery Mire (West)', 'Misery Mire Big Key Door']), create_dungeon_region('Misery Mire (West)', ['Misery Mire - Compass Chest', 'Misery Mire - Big Key Chest']), create_dungeon_region('Misery Mire (Final Area)', None, ['Misery Mire (Vitreous)']), - create_dungeon_region('Misery Mire (Vitreous)', ['Misery Mire - Vitreous', 'Misery Mire - Prize']), + create_dungeon_region('Misery Mire (Vitreous)', ['Misery Mire - Boss', 'Misery Mire - Prize']), create_dungeon_region('Turtle Rock (Entrance)', None, ['Turtle Rock Entrance Gap', 'Turtle Rock Exit (Front)']), create_dungeon_region('Turtle Rock (First Section)', ['Turtle Rock - Compass Chest', 'Turtle Rock - Roller Room - Left', 'Turtle Rock - Roller Room - Right'], ['Turtle Rock Pokey Room', 'Turtle Rock Entrance Gap Reverse']), @@ -254,7 +254,7 @@ def create_regions(world): create_dungeon_region('Turtle Rock (Eye Bridge)', ['Turtle Rock - Eye Bridge - Bottom Left', 'Turtle Rock - Eye Bridge - Bottom Right', 'Turtle Rock - Eye Bridge - Top Left', 'Turtle Rock - Eye Bridge - Top Right'], ['Turtle Rock Dark Room (South)', 'Turtle Rock (Trinexx)', 'Turtle Rock Isolated Ledge Exit']), - create_dungeon_region('Turtle Rock (Trinexx)', ['Turtle Rock - Trinexx', 'Turtle Rock - Prize']), + create_dungeon_region('Turtle Rock (Trinexx)', ['Turtle Rock - Boss', 'Turtle Rock - Prize']), create_dungeon_region('Palace of Darkness (Entrance)', ['Palace of Darkness - Shooter Room'], ['Palace of Darkness Bridge Room', 'Palace of Darkness Bonk Wall', 'Palace of Darkness Exit']), create_dungeon_region('Palace of Darkness (Center)', ['Palace of Darkness - The Arena - Bridge', 'Palace of Darkness - Stalfos Basement'], ['Palace of Darkness Big Key Chest Staircase', 'Palace of Darkness (North)', 'Palace of Darkness Big Key Door']), @@ -264,7 +264,7 @@ def create_regions(world): ['Palace of Darkness Spike Statue Room Door', 'Palace of Darkness Maze Door']), create_dungeon_region('Palace of Darkness (Maze)', ['Palace of Darkness - Dark Maze - Top', 'Palace of Darkness - Dark Maze - Bottom', 'Palace of Darkness - Big Chest']), create_dungeon_region('Palace of Darkness (Harmless Hellway)', ['Palace of Darkness - Harmless Hellway']), - create_dungeon_region('Palace of Darkness (Final Section)', ['Palace of Darkness - Helmasaur', 'Palace of Darkness - Prize']), + create_dungeon_region('Palace of Darkness (Final Section)', ['Palace of Darkness - Boss', 'Palace of Darkness - Prize']), create_dungeon_region('Ganons Tower (Entrance)', ['Ganons Tower - Bob\'s Torch', 'Ganons Tower - Hope Room - Left', 'Ganons Tower - Hope Room - Right'], ['Ganons Tower (Tile Room)', 'Ganons Tower (Hookshot Room)', 'Ganons Tower Big Key Door', 'Ganons Tower Exit']), create_dungeon_region('Ganons Tower (Tile Room)', ['Ganons Tower - Tile Room'], ['Ganons Tower (Tile Room) Key Door']), @@ -301,6 +301,8 @@ def create_regions(world): region = world.get_region('Capacity Upgrade') shop = Shop(region, 0x0115, ShopType.UpgradeShop, 0x04, True) + region.shop = shop + world.shops.append(shop) shop.add_inventory(0, 'Bomb Upgrade (+5)', 100, 7) shop.add_inventory(1, 'Arrow Upgrade (+5)', 100, 7) world.intialize_regions() @@ -450,13 +452,13 @@ location_table = {'Mushroom': (0x180013, False, 'in the woods'), 'Desert Palace - Map Chest': (0xE9B6, False, 'in Desert Palace'), 'Desert Palace - Compass Chest': (0xE9CB, False, 'in Desert Palace'), 'Desert Palace - Big Key Chest': (0xE9C2, False, 'in Desert Palace'), - 'Desert Palace - Lanmolas': (0x180151, False, 'with Lanmolas'), + 'Desert Palace - Boss': (0x180151, False, 'with Lanmolas'), 'Eastern Palace - Compass Chest': (0xE977, False, 'in Eastern Palace'), 'Eastern Palace - Big Chest': (0xE97D, False, 'in Eastern Palace'), 'Eastern Palace - Cannonball Chest': (0xE9B3, False, 'in Eastern Palace'), 'Eastern Palace - Big Key Chest': (0xE9B9, False, 'in Eastern Palace'), 'Eastern Palace - Map Chest': (0xE9F5, False, 'in Eastern Palace'), - 'Eastern Palace - Armos Knights': (0x180150, False, 'with the Armos'), + 'Eastern Palace - Boss': (0x180150, False, 'with the Armos'), 'Master Sword Pedestal': (0x289B0, False, 'at the pedestal'), 'Hyrule Castle - Boomerang Chest': (0xE974, False, 'in Hyrule Castle'), 'Hyrule Castle - Map Chest': (0xEB0C, False, 'in Hyrule Castle'), @@ -485,7 +487,7 @@ location_table = {'Mushroom': (0x180013, False, 'in the woods'), 'Tower of Hera - Big Key Chest': (0xE9E6, False, 'in Tower of Hera'), 'Tower of Hera - Compass Chest': (0xE9FB, False, 'in Tower of Hera'), 'Tower of Hera - Big Chest': (0xE9F8, False, 'in Tower of Hera'), - 'Tower of Hera - Moldorm': (0x180152, False, 'with Moldorm'), + 'Tower of Hera - Boss': (0x180152, False, 'with Moldorm'), 'Pyramid': (0x180147, False, 'on the pyramid'), 'Catfish': (0xEE185, False, 'with a fish'), 'Stumpy': (0x330C7, False, 'with tree boy'), @@ -523,7 +525,7 @@ location_table = {'Mushroom': (0x180013, False, 'in the woods'), 'Swamp Palace - Flooded Room - Left': (0xEAA9, False, 'in Swamp Palace'), 'Swamp Palace - Flooded Room - Right': (0xEAAC, False, 'in Swamp Palace'), 'Swamp Palace - Waterfall Room': (0xEAAF, False, 'in Swamp Palace'), - 'Swamp Palace - Arrghus': (0x180154, False, 'with Arrghus'), + 'Swamp Palace - Boss': (0x180154, False, 'with Arrghus'), 'Thieves\' Town - Big Key Chest': (0xEA04, False, 'in Thieves\' Town'), 'Thieves\' Town - Map Chest': (0xEA01, False, 'in Thieves\' Town'), 'Thieves\' Town - Compass Chest': (0xEA07, False, 'in Thieves\' Town'), @@ -531,7 +533,7 @@ location_table = {'Mushroom': (0x180013, False, 'in the woods'), 'Thieves\' Town - Attic': (0xEA0D, False, 'in Thieves\' Town'), 'Thieves\' Town - Big Chest': (0xEA10, False, 'in Thieves\' Town'), 'Thieves\' Town - Blind\'s Cell': (0xEA13, False, 'in Thieves\' Town'), - 'Thieves Town - Blind': (0x180156, False, 'with Blind'), + 'Thieves\' Town - Boss': (0x180156, False, 'with Blind'), 'Skull Woods - Compass Chest': (0xE992, False, 'in Skull Woods'), 'Skull Woods - Map Chest': (0xE99B, False, 'in Skull Woods'), 'Skull Woods - Big Chest': (0xE998, False, 'in Skull Woods'), @@ -539,7 +541,7 @@ location_table = {'Mushroom': (0x180013, False, 'in the woods'), 'Skull Woods - Pinball Room': (0xE9C8, False, 'in Skull Woods'), 'Skull Woods - Big Key Chest': (0xE99E, False, 'in Skull Woods'), 'Skull Woods - Bridge Room': (0xE9FE, False, 'near Mothula'), - 'Skull Woods - Mothula': (0x180155, False, 'with Mothula'), + 'Skull Woods - Boss': (0x180155, False, 'with Mothula'), 'Ice Palace - Compass Chest': (0xE9D4, False, 'in Ice Palace'), 'Ice Palace - Freezor Chest': (0xE995, False, 'in Ice Palace'), 'Ice Palace - Big Chest': (0xE9AA, False, 'in Ice Palace'), @@ -547,7 +549,7 @@ location_table = {'Mushroom': (0x180013, False, 'in the woods'), 'Ice Palace - Spike Room': (0xE9E0, False, 'in Ice Palace'), 'Ice Palace - Big Key Chest': (0xE9A4, False, 'in Ice Palace'), 'Ice Palace - Map Chest': (0xE9DD, False, 'in Ice Palace'), - 'Ice Palace - Kholdstare': (0x180157, False, 'with Kholdstare'), + 'Ice Palace - Boss': (0x180157, False, 'with Kholdstare'), 'Misery Mire - Big Chest': (0xEA67, False, 'in Misery Mire'), 'Misery Mire - Map Chest': (0xEA6A, False, 'in Misery Mire'), 'Misery Mire - Main Lobby': (0xEA5E, False, 'in Misery Mire'), @@ -555,7 +557,7 @@ location_table = {'Mushroom': (0x180013, False, 'in the woods'), 'Misery Mire - Spike Chest': (0xE9DA, False, 'in Misery Mire'), 'Misery Mire - Compass Chest': (0xEA64, False, 'in Misery Mire'), 'Misery Mire - Big Key Chest': (0xEA6D, False, 'in Misery Mire'), - 'Misery Mire - Vitreous': (0x180158, False, 'with Vitreous'), + 'Misery Mire - Boss': (0x180158, False, 'with Vitreous'), 'Turtle Rock - Compass Chest': (0xEA22, False, 'in Turtle Rock'), 'Turtle Rock - Roller Room - Left': (0xEA1C, False, 'in Turtle Rock'), 'Turtle Rock - Roller Room - Right': (0xEA1F, False, 'in Turtle Rock'), @@ -567,7 +569,7 @@ location_table = {'Mushroom': (0x180013, False, 'in the woods'), 'Turtle Rock - Eye Bridge - Bottom Right': (0xEA2E, False, 'in Turtle Rock'), 'Turtle Rock - Eye Bridge - Top Left': (0xEA2B, False, 'in Turtle Rock'), 'Turtle Rock - Eye Bridge - Top Right': (0xEA28, False, 'in Turtle Rock'), - 'Turtle Rock - Trinexx': (0x180159, False, 'with Trinexx'), + 'Turtle Rock - Boss': (0x180159, False, 'with Trinexx'), 'Palace of Darkness - Shooter Room': (0xEA5B, False, 'in Palace of Darkness'), 'Palace of Darkness - The Arena - Bridge': (0xEA3D, False, 'in Palace of Darkness'), 'Palace of Darkness - Stalfos Basement': (0xEA49, False, 'in Palace of Darkness'), @@ -581,7 +583,7 @@ location_table = {'Mushroom': (0x180013, False, 'in the woods'), 'Palace of Darkness - Dark Maze - Bottom': (0xEA58, False, 'in Palace of Darkness'), 'Palace of Darkness - Big Chest': (0xEA40, False, 'in Palace of Darkness'), 'Palace of Darkness - Harmless Hellway': (0xEA46, False, 'in Palace of Darkness'), - 'Palace of Darkness - Helmasaur': (0x180153, False, 'with Helmasaur King'), + 'Palace of Darkness - Boss': (0x180153, False, 'with Helmasaur King'), 'Ganons Tower - Bob\'s Torch': (0x180161, False, 'on my torch'), 'Ganons Tower - Hope Room - Left': (0xEAD9, False, 'in My Tower'), 'Ganons Tower - Hope Room - Right': (0xEADC, False, 'in My Tower'), @@ -621,7 +623,7 @@ location_table = {'Mushroom': (0x180013, False, 'in the woods'), 'Tower of Hera - Prize': ([0x120A5, 0x53F0A, 0x53F0B, 0x18005A, 0x18007A, 0xC706], True, 'Tower of Hera'), 'Palace of Darkness - Prize': ([0x120A1, 0x53F00, 0x53F01, 0x180056, 0x18007D, 0xC702], True, 'Palace of Darkness'), 'Swamp Palace - Prize': ([0x120A0, 0x53F6C, 0x53F6D, 0x180055, 0x180071, 0xC701], True, 'Swamp Palace'), - 'Thieves Town - Prize': ([0x120A6, 0x53F36, 0x53F37, 0x18005B, 0x180077, 0xC707], True, 'Thieves\' Town'), + 'Thieves\' Town - Prize': ([0x120A6, 0x53F36, 0x53F37, 0x18005B, 0x180077, 0xC707], True, 'Thieves\' Town'), 'Skull Woods - Prize': ([0x120A3, 0x53F12, 0x53F13, 0x180058, 0x18007B, 0xC704], True, 'Skull Woods'), 'Ice Palace - Prize': ([0x120A4, 0x53F5A, 0x53F5B, 0x180059, 0x180073, 0xC705], True, 'Ice Palace'), 'Misery Mire - Prize': ([0x120A2, 0x53F48, 0x53F49, 0x180057, 0x180075, 0xC703], True, 'Misery Mire'), diff --git a/Rom.py b/Rom.py index 9a9a75d7..c06a30bc 100644 --- a/Rom.py +++ b/Rom.py @@ -975,7 +975,7 @@ def apply_rom_settings(rom, beep, color, quickswap, fastmenu, disable_music, spr rom.write_byte(0xD3DAA, 0xFA) # set heart beep rate - rom.write_byte(0x180033, {'off': 0x00, 'half': 0x40, 'quarter': 0x80, 'normal': 0x20}[beep]) + rom.write_byte(0x180033, {'off': 0x00, 'half': 0x40, 'quarter': 0x80, 'normal': 0x20, 'double': 0x10}[beep]) # set heart color rom.write_byte(0x6FA1E, {'red': 0x24, 'blue': 0x2C, 'green': 0x3C, 'yellow': 0x28}[color]) diff --git a/Rules.py b/Rules.py index 9ae1676b..6c386222 100644 --- a/Rules.py +++ b/Rules.py @@ -233,20 +233,20 @@ def global_rules(world): set_rule(world.get_entrance('Sewers Back Door'), lambda state: state.has_key('Small Key (Escape)')) set_rule(world.get_location('Eastern Palace - Big Chest'), lambda state: state.has('Big Key (Eastern Palace)')) - set_rule(world.get_location('Eastern Palace - Armos Knights'), lambda state: state.can_shoot_arrows() and state.has('Big Key (Eastern Palace)') and world.get_location('Eastern Palace - Armos Knights').parent_region.dungeon.boss.can_defeat(state)) + set_rule(world.get_location('Eastern Palace - Boss'), lambda state: state.can_shoot_arrows() and state.has('Big Key (Eastern Palace)') and world.get_location('Eastern Palace - Boss').parent_region.dungeon.boss.can_defeat(state)) set_rule(world.get_location('Eastern Palace - Prize'), lambda state: state.can_shoot_arrows() and state.has('Big Key (Eastern Palace)') and world.get_location('Eastern Palace - Prize').parent_region.dungeon.boss.can_defeat(state)) - for location in ['Eastern Palace - Armos Knights', 'Eastern Palace - Big Chest']: + for location in ['Eastern Palace - Boss', 'Eastern Palace - Big Chest']: forbid_item(world.get_location(location), 'Big Key (Eastern Palace)') set_rule(world.get_location('Desert Palace - Big Chest'), lambda state: state.has('Big Key (Desert Palace)')) set_rule(world.get_location('Desert Palace - Torch'), lambda state: state.has_Boots()) set_rule(world.get_entrance('Desert Palace East Wing'), lambda state: state.has_key('Small Key (Desert Palace)')) set_rule(world.get_location('Desert Palace - Prize'), lambda state: state.has_key('Small Key (Desert Palace)') and state.has('Big Key (Desert Palace)') and state.has_fire_source() and world.get_location('Desert Palace - Prize').parent_region.dungeon.boss.can_defeat(state)) - set_rule(world.get_location('Desert Palace - Lanmolas'), lambda state: state.has_key('Small Key (Desert Palace)') and state.has('Big Key (Desert Palace)') and state.has_fire_source() and world.get_location('Desert Palace - Lanmolas').parent_region.dungeon.boss.can_defeat(state)) - for location in ['Desert Palace - Lanmolas', 'Desert Palace - Big Chest']: + set_rule(world.get_location('Desert Palace - Boss'), lambda state: state.has_key('Small Key (Desert Palace)') and state.has('Big Key (Desert Palace)') and state.has_fire_source() and world.get_location('Desert Palace - Boss').parent_region.dungeon.boss.can_defeat(state)) + for location in ['Desert Palace - Boss', 'Desert Palace - Big Chest']: forbid_item(world.get_location(location), 'Big Key (Desert Palace)') - for location in ['Desert Palace - Lanmolas', 'Desert Palace - Big Key Chest', 'Desert Palace - Compass Chest']: + for location in ['Desert Palace - Boss', 'Desert Palace - Big Key Chest', 'Desert Palace - Compass Chest']: forbid_item(world.get_location(location), 'Small Key (Desert Palace)') set_rule(world.get_entrance('Tower of Hera Small Key Door'), lambda state: state.has_key('Small Key (Tower of Hera)') or item_name(state, 'Tower of Hera - Big Key Chest') == 'Small Key (Tower of Hera)') @@ -254,9 +254,9 @@ def global_rules(world): set_rule(world.get_location('Tower of Hera - Big Chest'), lambda state: state.has('Big Key (Tower of Hera)')) set_rule(world.get_location('Tower of Hera - Big Key Chest'), lambda state: state.has_fire_source()) set_always_allow(world.get_location('Tower of Hera - Big Key Chest'), lambda state, item: item.name == 'Small Key (Tower of Hera)') - set_defeat_dungeon_boss_rule(world.get_location('Tower of Hera - Moldorm')) + set_defeat_dungeon_boss_rule(world.get_location('Tower of Hera - Boss')) set_defeat_dungeon_boss_rule(world.get_location('Tower of Hera - Prize')) - for location in ['Tower of Hera - Moldorm', 'Tower of Hera - Big Chest', 'Tower of Hera - Compass Chest']: + for location in ['Tower of Hera - Boss', 'Tower of Hera - Big Chest', 'Tower of Hera - Compass Chest']: forbid_item(world.get_location(location), 'Big Key (Tower of Hera)') # for location in ['Tower of Hera - Big Key Chest']: # forbid_item(world.get_location(location), 'Small Key (Tower of Hera)') @@ -269,21 +269,21 @@ def global_rules(world): set_rule(world.get_location('Swamp Palace - Big Chest'), lambda state: state.has('Big Key (Swamp Palace)') or item_name(state, 'Swamp Palace - Big Chest') == 'Big Key (Swamp Palace)') set_always_allow(world.get_location('Swamp Palace - Big Chest'), lambda state, item: item.name == 'Big Key (Swamp Palace)') set_rule(world.get_entrance('Swamp Palace (North)'), lambda state: state.has('Hookshot')) - set_defeat_dungeon_boss_rule(world.get_location('Swamp Palace - Arrghus')) + set_defeat_dungeon_boss_rule(world.get_location('Swamp Palace - Boss')) set_defeat_dungeon_boss_rule(world.get_location('Swamp Palace - Prize')) for location in ['Swamp Palace - Entrance']: forbid_item(world.get_location(location), 'Big Key (Swamp Palace)') set_rule(world.get_entrance('Thieves Town Big Key Door'), lambda state: state.has('Big Key (Thieves Town)')) set_rule(world.get_entrance('Blind Fight'), lambda state: state.has_key('Small Key (Thieves Town)')) - set_defeat_dungeon_boss_rule(world.get_location('Thieves Town - Blind')) - set_defeat_dungeon_boss_rule(world.get_location('Thieves Town - Prize')) + set_defeat_dungeon_boss_rule(world.get_location('Thieves\' Town - Boss')) + set_defeat_dungeon_boss_rule(world.get_location('Thieves\' Town - Prize')) set_rule(world.get_location('Thieves\' Town - Big Chest'), lambda state: (state.has_key('Small Key (Thieves Town)') or item_name(state, 'Thieves\' Town - Big Chest') == 'Small Key (Thieves Town)') and state.has('Hammer')) set_always_allow(world.get_location('Thieves\' Town - Big Chest'), lambda state, item: item.name == 'Small Key (Thieves Town)' and state.has('Hammer')) set_rule(world.get_location('Thieves\' Town - Attic'), lambda state: state.has_key('Small Key (Thieves Town)')) - for location in ['Thieves\' Town - Attic', 'Thieves\' Town - Big Chest', 'Thieves\' Town - Blind\'s Cell', 'Thieves Town - Blind']: + for location in ['Thieves\' Town - Attic', 'Thieves\' Town - Big Chest', 'Thieves\' Town - Blind\'s Cell', 'Thieves\' Town - Boss']: forbid_item(world.get_location(location), 'Big Key (Thieves Town)') - for location in ['Thieves\' Town - Attic', 'Thieves Town - Blind']: + for location in ['Thieves\' Town - Attic', 'Thieves\' Town - Boss']: forbid_item(world.get_location(location), 'Small Key (Thieves Town)') set_rule(world.get_entrance('Skull Woods First Section South Door'), lambda state: state.has_key('Small Key (Skull Woods)')) @@ -293,9 +293,9 @@ def global_rules(world): set_rule(world.get_location('Skull Woods - Big Chest'), lambda state: state.has('Big Key (Skull Woods)') or item_name(state, 'Skull Woods - Big Chest') == 'Big Key (Skull Woods)') set_always_allow(world.get_location('Skull Woods - Big Chest'), lambda state, item: item.name == 'Big Key (Skull Woods)') set_rule(world.get_entrance('Skull Woods Torch Room'), lambda state: state.has_key('Small Key (Skull Woods)', 3) and state.has('Fire Rod') and state.has_sword()) # sword required for curtain - set_defeat_dungeon_boss_rule(world.get_location('Skull Woods - Mothula')) + set_defeat_dungeon_boss_rule(world.get_location('Skull Woods - Boss')) set_defeat_dungeon_boss_rule(world.get_location('Skull Woods - Prize')) - for location in ['Skull Woods - Mothula']: + for location in ['Skull Woods - Boss']: forbid_item(world.get_location(location), 'Small Key (Skull Woods)') set_rule(world.get_entrance('Ice Palace Entrance Room'), lambda state: state.has('Fire Rod') or (state.has('Bombos') and state.has_sword())) @@ -304,9 +304,9 @@ def global_rules(world): # TODO: investigate change from VT. Changed to hookshot or 2 keys (no checking for big key in specific chests) set_rule(world.get_entrance('Ice Palace (East)'), lambda state: (state.has('Hookshot') or (item_in_locations(state, 'Big Key (Ice Palace)', ['Ice Palace - Spike Room', 'Ice Palace - Big Key Chest', 'Ice Palace - Map Chest']) and state.has_key('Small Key (Ice Palace)'))) and (state.world.can_take_damage or state.has('Hookshot') or state.has('Cape') or state.has('Cane of Byrna'))) set_rule(world.get_entrance('Ice Palace (East Top)'), lambda state: state.can_lift_rocks() and state.has('Hammer')) - set_defeat_dungeon_boss_rule(world.get_location('Ice Palace - Kholdstare')) + set_defeat_dungeon_boss_rule(world.get_location('Ice Palace - Boss')) set_defeat_dungeon_boss_rule(world.get_location('Ice Palace - Prize')) - for location in ['Ice Palace - Big Chest', 'Ice Palace - Kholdstare']: + for location in ['Ice Palace - Big Chest', 'Ice Palace - Boss']: forbid_item(world.get_location(location), 'Big Key (Ice Palace)') set_rule(world.get_entrance('Misery Mire Entrance Gap'), lambda state: (state.has_Boots() or state.has('Hookshot')) and (state.has_sword() or state.has('Fire Rod') or state.has('Ice Rod') or state.has('Hammer') or state.has('Cane of Somaria') or state.can_shoot_arrows())) # need to defeat wizzrobes, bombs don't work ... @@ -324,9 +324,9 @@ def global_rules(world): set_rule(world.get_location('Misery Mire - Compass Chest'), lambda state: state.has_fire_source()) set_rule(world.get_location('Misery Mire - Big Key Chest'), lambda state: state.has_fire_source()) set_rule(world.get_entrance('Misery Mire (Vitreous)'), lambda state: state.has('Cane of Somaria')) - set_defeat_dungeon_boss_rule(world.get_location('Misery Mire - Vitreous')) + set_defeat_dungeon_boss_rule(world.get_location('Misery Mire - Boss')) set_defeat_dungeon_boss_rule(world.get_location('Misery Mire - Prize')) - for location in ['Misery Mire - Big Chest', 'Misery Mire - Vitreous']: + for location in ['Misery Mire - Big Chest', 'Misery Mire - Boss']: forbid_item(world.get_location(location), 'Big Key (Misery Mire)') set_rule(world.get_entrance('Turtle Rock Entrance Gap'), lambda state: state.has('Cane of Somaria')) @@ -345,7 +345,7 @@ def global_rules(world): set_rule(world.get_location('Turtle Rock - Eye Bridge - Top Left'), lambda state: state.has('Cane of Byrna') or state.has('Cape') or state.has('Mirror Shield')) set_rule(world.get_location('Turtle Rock - Eye Bridge - Top Right'), lambda state: state.has('Cane of Byrna') or state.has('Cape') or state.has('Mirror Shield')) set_rule(world.get_entrance('Turtle Rock (Trinexx)'), lambda state: state.has_key('Small Key (Turtle Rock)', 4) and state.has('Big Key (Turtle Rock)') and state.has('Cane of Somaria')) - set_defeat_dungeon_boss_rule(world.get_location('Turtle Rock - Trinexx')) + set_defeat_dungeon_boss_rule(world.get_location('Turtle Rock - Boss')) set_defeat_dungeon_boss_rule(world.get_location('Turtle Rock - Prize')) set_trock_key_rules(world) @@ -363,7 +363,7 @@ def global_rules(world): set_rule(world.get_entrance('Palace of Darkness Spike Statue Room Door'), lambda state: state.has_key('Small Key (Palace of Darkness)', 6) or (item_name(state, 'Palace of Darkness - Harmless Hellway') in ['Small Key (Palace of Darkness)'] and state.has_key('Small Key (Palace of Darkness)', 4))) set_always_allow(world.get_location('Palace of Darkness - Harmless Hellway'), lambda state, item: item.name == 'Small Key (Palace of Darkness)' and state.has_key('Small Key (Palace of Darkness)', 5)) set_rule(world.get_entrance('Palace of Darkness Maze Door'), lambda state: state.has_key('Small Key (Palace of Darkness)', 6)) - set_defeat_dungeon_boss_rule(world.get_location('Palace of Darkness - Helmasaur')) + set_defeat_dungeon_boss_rule(world.get_location('Palace of Darkness - Boss')) set_defeat_dungeon_boss_rule(world.get_location('Palace of Darkness - Prize')) # these key rules are conservative, you might be able to get away with more lenient rules @@ -464,7 +464,7 @@ def no_glitches_rules(world): add_conditional_lamp('Old Man House Front to Back', 'Old Man House', 'Entrance') add_conditional_lamp('Old Man House Back to Front', 'Old Man House', 'Entrance') add_conditional_lamp('Eastern Palace - Big Key Chest', 'Eastern Palace', 'Location') - add_conditional_lamp('Eastern Palace - Armos Knights', 'Eastern Palace', 'Location') + add_conditional_lamp('Eastern Palace - Boss', 'Eastern Palace', 'Location') add_conditional_lamp('Eastern Palace - Prize', 'Eastern Palace', 'Location') if not world.sewer_light_cone: @@ -561,7 +561,7 @@ def set_trock_key_rules(world): set_always_allow(world.get_location('Turtle Rock - Big Key Chest'), lambda state, item: item.name == 'Small Key (Turtle Rock)' and state.has_key('Small Key (Turtle Rock)', 3)) # set big key restrictions - non_big_key_locations = ['Turtle Rock - Big Chest', 'Turtle Rock - Trinexx'] + non_big_key_locations = ['Turtle Rock - Big Chest', 'Turtle Rock - Boss'] if not can_reach_back: non_big_key_locations += ['Turtle Rock - Crystaroller Room', 'Turtle Rock - Eye Bridge - Bottom Left', 'Turtle Rock - Eye Bridge - Bottom Right', 'Turtle Rock - Eye Bridge - Top Left', @@ -571,7 +571,7 @@ def set_trock_key_rules(world): forbid_item(world.get_location(location), 'Big Key (Turtle Rock)') # small key restriction - for location in ['Turtle Rock - Trinexx']: + for location in ['Turtle Rock - Boss']: forbid_item(world.get_location(location), 'Small Key (Turtle Rock)') diff --git a/Text.py b/Text.py index cd79abc4..d06a5237 100644 --- a/Text.py +++ b/Text.py @@ -517,6 +517,7 @@ class MultiByteCoreTextMapper(object): outbuf = bytearray() lineindex = 0 is_intro = '{INTRO}' in text + first_line=True while lines: linespace = wrap @@ -526,8 +527,11 @@ class MultiByteCoreTextMapper(object): continue words = line.split(' ') - outbuf.append(0x74 if lineindex == 0 else 0x75 if lineindex == 1 else 0x76) # line starter - + if first_line: + first_line=False + else: + outbuf.append(0x74 if lineindex == 0 else 0x75 if lineindex == 1 else 0x76) # line starter + pending_space = False while words: word = words.pop(0) # sanity check: if the word we have is more than 14 characters, we take as much as we can still fit and push the rest back for later @@ -540,9 +544,11 @@ class MultiByteCoreTextMapper(object): break if cls.wordlen(word) <= linespace: + if pending_space: + outbuf.extend(RawMBTextMapper.convert(' ')) if cls.wordlen(word) < linespace: - word = word + ' ' - linespace -= cls.wordlen(word) + pending_space = True + linespace -= cls.wordlen(word) + 1 if pending_space else 0 outbuf.extend(RawMBTextMapper.convert(word)) else: # ran out of space, push word and lines back and continue with next line From 0f914e47ed056cc4f699b09584e9d70db914216a Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Wed, 26 Sep 2018 20:23:20 -0400 Subject: [PATCH 16/16] Fix captialization of bosses spoiler section --- BaseClasses.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 423ad925..60f305f8 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -971,8 +971,8 @@ class Spoiler(object): out['Shops'] = self.shops out['playthrough'] = self.playthrough out['paths'] = self.paths - if(self.world.boss_shuffle != 'none'): - out['bosses'] = self.bosses + if self.world.boss_shuffle != 'none': + out['Bosses'] = self.bosses out['meta'] = self.metadata return json.dumps(out)