From d31a7d67918ab1efc8c79fc9f6b8d1e03fb029de Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Mon, 13 Nov 2017 00:29:42 -0500 Subject: [PATCH 01/24] Preliminary implementation of new sprite screen --- Gui.py | 133 +++++++++++++++++- Main.py | 4 +- Plando.py | 4 +- Rom.py | 97 +++++++++++-- data/sprites/official/4slink-armors.1.spr | Bin 0 -> 28792 bytes data/sprites/official/boo.2.spr | Bin 0 -> 28792 bytes data/sprites/official/boy.2.spr | Bin 0 -> 28792 bytes data/sprites/official/cactuar.1.spr | Bin 0 -> 28792 bytes data/sprites/official/cat.1.spr | Bin 0 -> 28792 bytes data/sprites/official/catboo.1.spr | Bin 0 -> 28792 bytes data/sprites/official/cirno.1.spr | Bin 0 -> 28792 bytes data/sprites/official/darkboy.2.spr | Bin 0 -> 28792 bytes data/sprites/official/darkgirl.1.spr | Bin 0 -> 28792 bytes data/sprites/official/darklink.1.spr | Bin 0 -> 28792 bytes data/sprites/official/darkswatchy.1.spr | Bin 0 -> 28792 bytes data/sprites/official/darkzelda.1.spr | Bin 0 -> 28792 bytes data/sprites/official/darkzora.2.spr | Bin 0 -> 28792 bytes data/sprites/official/decidueye.1.spr | Bin 0 -> 28792 bytes data/sprites/official/demonlink.1.spr | Bin 0 -> 28792 bytes data/sprites/official/froglink.2.spr | Bin 0 -> 28792 bytes data/sprites/official/ganondorf.1.spr | Bin 0 -> 28792 bytes data/sprites/official/garfield.1.spr | Bin 0 -> 28792 bytes data/sprites/official/girl.2.spr | Bin 0 -> 28792 bytes data/sprites/official/headlesslink.1.spr | Bin 0 -> 28792 bytes data/sprites/official/inkling.1.spr | Bin 0 -> 28792 bytes data/sprites/official/invisibleman.1.spr | Bin 0 -> 28792 bytes data/sprites/official/kirby-meta.2.spr | Bin 0 -> 28792 bytes data/sprites/official/kore8.1.spr | Bin 0 -> 28792 bytes data/sprites/official/link.1.spr | Bin 0 -> 28792 bytes data/sprites/official/littlepony.1.spr | Bin 0 -> 28792 bytes data/sprites/official/luigi.1.spr | Bin 0 -> 28792 bytes data/sprites/official/maiden.2.spr | Bin 0 -> 28792 bytes data/sprites/official/maplequeen.1.spr | Bin 0 -> 28792 bytes data/sprites/official/mario-classic.1.spr | Bin 0 -> 28792 bytes data/sprites/official/marisa.1.spr | Bin 0 -> 28792 bytes data/sprites/official/mikejones.2.spr | Bin 0 -> 28792 bytes data/sprites/official/minishcaplink.3.spr | Bin 0 -> 28792 bytes data/sprites/official/modernlink.1.spr | Bin 0 -> 28792 bytes data/sprites/official/mog.1.spr | Bin 0 -> 28792 bytes data/sprites/official/mouse.1.spr | Bin 0 -> 28792 bytes data/sprites/official/naturelink.1.spr | Bin 0 -> 28792 bytes data/sprites/official/negativelink.1.spr | Bin 0 -> 28792 bytes data/sprites/official/neonlink.1.spr | Bin 0 -> 28792 bytes data/sprites/official/oldman.1.spr | Bin 0 -> 28792 bytes data/sprites/official/pinkribbonlink.1.spr | Bin 0 -> 28792 bytes data/sprites/official/popoi.1.spr | Bin 0 -> 28792 bytes data/sprites/official/pug.2.spr | Bin 0 -> 28792 bytes .../sprites/official/purplechest-bottle.2.spr | Bin 0 -> 28792 bytes data/sprites/official/roykoopa.1.spr | Bin 0 -> 28792 bytes data/sprites/official/rumia.1.spr | Bin 0 -> 28792 bytes data/sprites/official/samus.4.spr | Bin 0 -> 28792 bytes data/sprites/official/santalink.1.spr | Bin 0 -> 28792 bytes data/sprites/official/shadowsaku.1.spr | Bin 0 -> 28792 bytes data/sprites/official/sodacan.1.spr | Bin 0 -> 28792 bytes data/sprites/official/staticlink.1.spr | Bin 0 -> 28792 bytes data/sprites/official/superbunny.1.spr | Bin 0 -> 28792 bytes data/sprites/official/swatchy.1.spr | Bin 0 -> 28792 bytes data/sprites/official/tingle.1.spr | Bin 0 -> 28792 bytes data/sprites/official/toad.1.spr | Bin 0 -> 28792 bytes data/sprites/official/valeera.1.spr | Bin 0 -> 28792 bytes data/sprites/official/vitreous.1.spr | Bin 0 -> 28792 bytes data/sprites/official/vivi.1.spr | Bin 0 -> 28792 bytes data/sprites/official/will.1.spr | Bin 0 -> 28792 bytes data/sprites/official/wizzrobe.4.spr | Bin 0 -> 28792 bytes data/sprites/official/yunica.1.spr | Bin 0 -> 28792 bytes data/sprites/official/zelda.2.spr | Bin 0 -> 28792 bytes data/sprites/official/zerosuitsamus.1.spr | Bin 0 -> 28792 bytes data/sprites/official/zora.1.spr | Bin 0 -> 28792 bytes data/sprites/unofficial/.gitignore | 2 + 69 files changed, 217 insertions(+), 23 deletions(-) create mode 100644 data/sprites/official/4slink-armors.1.spr create mode 100644 data/sprites/official/boo.2.spr create mode 100644 data/sprites/official/boy.2.spr create mode 100644 data/sprites/official/cactuar.1.spr create mode 100644 data/sprites/official/cat.1.spr create mode 100644 data/sprites/official/catboo.1.spr create mode 100644 data/sprites/official/cirno.1.spr create mode 100644 data/sprites/official/darkboy.2.spr create mode 100644 data/sprites/official/darkgirl.1.spr create mode 100644 data/sprites/official/darklink.1.spr create mode 100644 data/sprites/official/darkswatchy.1.spr create mode 100644 data/sprites/official/darkzelda.1.spr create mode 100644 data/sprites/official/darkzora.2.spr create mode 100644 data/sprites/official/decidueye.1.spr create mode 100644 data/sprites/official/demonlink.1.spr create mode 100644 data/sprites/official/froglink.2.spr create mode 100644 data/sprites/official/ganondorf.1.spr create mode 100644 data/sprites/official/garfield.1.spr create mode 100644 data/sprites/official/girl.2.spr create mode 100644 data/sprites/official/headlesslink.1.spr create mode 100644 data/sprites/official/inkling.1.spr create mode 100644 data/sprites/official/invisibleman.1.spr create mode 100644 data/sprites/official/kirby-meta.2.spr create mode 100644 data/sprites/official/kore8.1.spr create mode 100644 data/sprites/official/link.1.spr create mode 100644 data/sprites/official/littlepony.1.spr create mode 100644 data/sprites/official/luigi.1.spr create mode 100644 data/sprites/official/maiden.2.spr create mode 100644 data/sprites/official/maplequeen.1.spr create mode 100644 data/sprites/official/mario-classic.1.spr create mode 100644 data/sprites/official/marisa.1.spr create mode 100644 data/sprites/official/mikejones.2.spr create mode 100644 data/sprites/official/minishcaplink.3.spr create mode 100644 data/sprites/official/modernlink.1.spr create mode 100644 data/sprites/official/mog.1.spr create mode 100644 data/sprites/official/mouse.1.spr create mode 100644 data/sprites/official/naturelink.1.spr create mode 100644 data/sprites/official/negativelink.1.spr create mode 100644 data/sprites/official/neonlink.1.spr create mode 100644 data/sprites/official/oldman.1.spr create mode 100644 data/sprites/official/pinkribbonlink.1.spr create mode 100644 data/sprites/official/popoi.1.spr create mode 100644 data/sprites/official/pug.2.spr create mode 100644 data/sprites/official/purplechest-bottle.2.spr create mode 100644 data/sprites/official/roykoopa.1.spr create mode 100644 data/sprites/official/rumia.1.spr create mode 100644 data/sprites/official/samus.4.spr create mode 100644 data/sprites/official/santalink.1.spr create mode 100644 data/sprites/official/shadowsaku.1.spr create mode 100644 data/sprites/official/sodacan.1.spr create mode 100644 data/sprites/official/staticlink.1.spr create mode 100644 data/sprites/official/superbunny.1.spr create mode 100644 data/sprites/official/swatchy.1.spr create mode 100644 data/sprites/official/tingle.1.spr create mode 100644 data/sprites/official/toad.1.spr create mode 100644 data/sprites/official/valeera.1.spr create mode 100644 data/sprites/official/vitreous.1.spr create mode 100644 data/sprites/official/vivi.1.spr create mode 100644 data/sprites/official/will.1.spr create mode 100644 data/sprites/official/wizzrobe.4.spr create mode 100644 data/sprites/official/yunica.1.spr create mode 100644 data/sprites/official/zelda.2.spr create mode 100644 data/sprites/official/zerosuitsamus.1.spr create mode 100644 data/sprites/official/zora.1.spr create mode 100644 data/sprites/unofficial/.gitignore diff --git a/Gui.py b/Gui.py index 17214273..ccece2a3 100644 --- a/Gui.py +++ b/Gui.py @@ -1,11 +1,12 @@ from Main import main, __version__ as ESVersion from Utils import is_bundled, local_path, output_path, open_file from argparse import Namespace +from Rom import Sprite +from glob import glob import random -import subprocess import os -import sys -from tkinter import Checkbutton, OptionMenu, Tk, LEFT, RIGHT, BOTTOM, TOP, StringVar, IntVar, Frame, Label, W, E, X, Entry, Spinbox, Button, filedialog, messagebox, PhotoImage +import shutil +from tkinter import Checkbutton, OptionMenu, Toplevel, LabelFrame, PhotoImage, Tk, LEFT, RIGHT, BOTTOM, TOP, StringVar, IntVar, Frame, Label, W, E, X, Y, Entry, Spinbox, Button, filedialog, messagebox def guiMain(args=None): @@ -69,8 +70,9 @@ def guiMain(args=None): spriteEntry = Entry(spriteDialogFrame, textvariable=spriteVar) def SpriteSelect(): - sprite = filedialog.askopenfilename() - spriteVar.set(sprite) + #sprite = filedialog.askopenfilename() + #spriteVar.set(sprite) + SpriteSelector(Toplevel(mainWindow), spriteVar.set) spriteSelectButton = Button(spriteDialogFrame, text='Select Sprite', command=SpriteSelect) @@ -280,5 +282,126 @@ def set_icon(window): er48 = PhotoImage(file=local_path('data/ER32.gif')) window.tk.call('wm', 'iconphoto', window._w, er16, er32, er48) +class SpriteSelector(object): + def __init__(self, parent, callback): + if is_bundled(): + self.deploy_icons() + self.parent = parent + self.callback = callback + parent.wm_title("TAKE ANY ONE YOU WANT") + parent['padx']=5 + parent['pady']=5 + + self.icon_section('Official Sprites', self.official_sprite_dir+'/*', 'Official Sprites not found. Click "Update Official Sprites" to download them.') + self.icon_section('Unofficial Sprites', self.unofficial_sprite_dir+'/*', 'Put sprites in the Sprites/Unofficial folder to have them appear here.') + + frame = Frame(parent) + frame.pack(side=BOTTOM, fill=X, pady=5) + + button = Button(frame, text="Browse for file...", command=self.browse_for_sprite) + button.pack(side=RIGHT, padx=(5,0)) + + # todo: Actually implement this. Requires a yet-to-be coded API from VT + button = Button(frame, text="Update Official Sprites") + button.pack(side=RIGHT, padx=(5,0)) + + button = Button(frame, text="Use Default Sprite", command=self.use_default_sprite) + button.pack(side=LEFT) + + set_icon(parent) + + def icon_section(self, frame_label, path, no_results_label): + frame = LabelFrame(self.parent, text=frame_label, padx=5, pady=5) + frame.pack(side=TOP, fill=X) + + i=0 + for file in glob(output_path(path)): + image = get_image_for_sprite(file) + if image is None: continue + button = Button(frame, image=image, command=lambda file=file:self.select_sprite(file)) + button.image=image + button.grid(row=i//16, column=i%16) + i+=1 + + if i==0: + label = Label(frame, text="Put sprites in the Sprites/Unoffical folder to have them appear here.") + label.pack() + + def browse_for_sprite(self): + sprite = filedialog.askopenfilename() + self.callback(sprite) + self.parent.destroy() + + def use_default_sprite(self): + self.callback("") + self.parent.destroy() + + def select_sprite(self, spritename): + self.callback(spritename) + self.parent.destroy() + + def deploy_icons(self): + if not os.path.exists(self.unofficial_sprite_dir): + os.makedirs(self.unofficial_sprite_dir) + if not os.path.exists(self.official_sprite_dir): + shutil.copytree(self.local_official_sprite_dir, self.official_sprite_dir) + + @property + def official_sprite_dir(self): + if is_bundled(): + return output_path("sprites/official") + else: + return self.local_official_sprite_dir + + @property + def local_official_sprite_dir(site): + return local_path("data/sprites/official") + + @property + def unofficial_sprite_dir(self): + if is_bundled(): + return output_path("sprites/unofficial") + else: + return self.local_unofficial_sprite_dir + + @property + def local_unofficial_sprite_dir(site): + return local_path("data/sprites/unofficial") + +def get_image_for_sprite(filename): + sprite = Sprite(filename) + image = PhotoImage(height=24, width=16, palette="256/256/256") + + def color_to_hex(color): + return "#{0:02X}{1:02X}{2:02X}".format(*color) + + def drawsprite(spr, pal_as_colors, offset): + for y in range(len(spr)): + for x in range(len(spr[y])): + pal_index=spr[y][x] + if pal_index: + color=pal_as_colors[pal_index-1] + image.put(color_to_hex(color),to=(x+offset[0],y+offset[1])) + + shadow_palette = [(40,40,40)] + shadow = [ + [0,0,0,1,1,1,1,1,1,0,0,0], + [0,1,1,1,1,1,1,1,1,1,1,0], + [1,1,1,1,1,1,1,1,1,1,1,1], + [1,1,1,1,1,1,1,1,1,1,1,1], + [0,1,1,1,1,1,1,1,1,1,1,0], + [0,0,0,1,1,1,1,1,1,0,0,0], + ] + + drawsprite(shadow, shadow_palette, (2,17)) + + palettes = sprite.decode_palette() + body = sprite.decode16(0x4C0) + drawsprite(body, palettes[0], (0,8)) + head = sprite.decode16(0x40) + drawsprite(head, palettes[0], (0,0)) + + return image.zoom(2) + if __name__ == '__main__': guiMain() diff --git a/Main.py b/Main.py index e39df18b..1b7ac5c4 100644 --- a/Main.py +++ b/Main.py @@ -1,7 +1,7 @@ from BaseClasses import World, CollectionState, Item from Regions import create_regions from EntranceShuffle import link_entrances -from Rom import patch_rom, LocalRom, JsonRom +from Rom import patch_rom, Sprite, LocalRom, JsonRom from Rules import set_rules from Dungeons import create_dungeons, fill_dungeons, fill_dungeons_restrictive from Items import ItemFactory @@ -91,7 +91,7 @@ def main(args, seed=None): logger.info('Patching ROM.') if args.sprite is not None: - sprite = bytearray(open(args.sprite, 'rb').read()) + sprite = Sprite(args.sprite) else: sprite = None diff --git a/Plando.py b/Plando.py index a0e07edb..5e623115 100644 --- a/Plando.py +++ b/Plando.py @@ -1,7 +1,7 @@ from BaseClasses import World from Regions import create_regions from EntranceShuffle import link_entrances, connect_entrance, connect_two_way, connect_exit -from Rom import patch_rom, LocalRom, write_string_to_rom +from Rom import patch_rom, LocalRom, Sprite, write_string_to_rom from Rules import set_rules from Dungeons import create_dungeons from Items import ItemFactory @@ -74,7 +74,7 @@ def main(args, seed=None): logger.info('Patching ROM.') if args.sprite is not None: - sprite = bytearray(open(args.sprite, 'rb').read()) + sprite = Sprite(args.sprite) else: sprite = None diff --git a/Rom.py b/Rom.py index 24fda4a6..4a93db70 100644 --- a/Rom.py +++ b/Rom.py @@ -84,6 +84,83 @@ class LocalRom(object): inv = crc ^ 0xFFFF self.write_bytes(0x7FDC, [inv & 0xFF, (inv >> 8) & 0xFF, crc & 0xFF, (crc >> 8) & 0xFF]) +class Sprite(object): + default_palette = [255, 127, 126, 35, 183, 17, 158, 54, 165, 20, 255, 1, 120, 16, 157, + 89, 71, 54, 104, 59, 74, 10, 239, 18, 92, 42, 113, 21, 24, 122, + 255, 127, 126, 35, 183, 17, 158, 54, 165, 20, 255, 1, 120, 16, 157, + 89, 128, 105, 145, 118, 184, 38, 127, 67, 92, 42, 153, 17, 24, 122, + 255, 127, 126, 35, 183, 17, 158, 54, 165, 20, 255, 1, 120, 16, 157, + 89, 87, 16, 126, 69, 243, 109, 185, 126, 92, 42, 39, 34, 24, 122, + 255, 127, 126, 35, 218, 17, 158, 54, 165, 20, 255, 1, 120, 16, 151, + 61, 71, 54, 104, 59, 74, 10, 239, 18, 126, 86, 114, 24, 24, 122] + + default_glove_palette = [246, 82, 118, 3] + + def __init__(self, filename): + filedata = bytearray(open(filename, 'rb').read()) + self.valid=True + if len(filedata) == 0x7000: + # sprite file with graphics and without palette data + self.sprite = filedata[:0x7000] + self.palette = None + self.glove_palette = None + elif len(filedata) == 0x7078: + # sprite file with graphics and palette data + self.sprite = filedata[:0x7000] + self.palette = filedata[0x7000:] + self.glove_palette = filedata[0x7036:0x7038] + filedata[0x7054:0x7056] + elif len(filedata) in [0x100000, 0x200000]: + # full rom with patched sprite, extract it + self.sprite = filedata[0x80000:0x87000] + self.palette = filedata[0xDD308:0xDD380] + self.glove_palette = filedata[0xDEDF5:0xDEDF9] + else: + self.valid=False + + def decode8(self, pos): + arr=[[0 for _ in range(8)] for _ in range(8)] + for y in range(8): + for x in range(8): + position = 1<<(7-x) + val=0; + if self.sprite[pos+2*y] & position: val += 1 + if self.sprite[pos+2*y+1] & position: val += 2 + if self.sprite[pos+2*y+16] & position: val += 4 + if self.sprite[pos+2*y+17] & position: val += 8 + arr[y][x]= val + return arr + + def decode16(self, pos): + arr=[[0 for _ in range(16)] for _ in range(16)] + top_left = self.decode8(pos) + top_right = self.decode8(pos+0x20) + bottom_left = self.decode8(pos+0x200) + bottom_right = self.decode8(pos+0x220) + for x in range(8): + for y in range(8): + arr[y][x] = top_left[y][x] + arr[y][x+8] = top_right[y][x] + arr[y+8][x] = bottom_left[y][x] + arr[y+8][x+8] = bottom_right[y][x] + return arr + + def decode_palette(self): + "Returns the palettes as an array of arrays of 15 colors" + def array_chunk(arr,size): + return list(zip(*[iter(arr)] * size)) + def make_int16(pair): + return pair[1]<<8 | pair[0] + def expand_color(i): + return ( (i & 0x1F)*8, (i>>5 & 0x1F)*8, (i>>10 & 0x1F)*8) + raw_palette = self.palette + if raw_palette is None: raw_palette = Sprite.default_palette + # turn palette data into a list of RGB tuples with 8 bit values + palette_as_colors = [expand_color(make_int16(chnk)) for chnk in array_chunk(raw_palette, 2)] + + # split into palettes of 15 colors + return array_chunk(palette_as_colors, 15) + + def int16_as_bytes(value): value = value & 0xFFFF return [value & 0xFF, (value >> 8) & 0xFF] @@ -603,20 +680,12 @@ def patch_rom(world, rom, hashtable, beep='normal', sprite=None): def write_sprite(rom, sprite): - if len(sprite) == 0x7000: - # sprite file with graphics and without palette data - rom.write_bytes(0x80000, sprite[:0x7000]) - elif len(sprite) == 0x7078: - # sprite file with graphics and palette data - rom.write_bytes(0x80000, sprite[:0x7000]) - rom.write_bytes(0xDD308, sprite[0x7000:]) - rom.write_bytes(0xDEDF5, sprite[0x7036:0x7038]) - rom.write_bytes(0xDEDF7, sprite[0x7054:0x7056]) - elif len(sprite) in [0x100000, 0x200000]: - # full rom with patched sprite, extract it - rom.write_bytes(0x80000, sprite[0x80000:0x87000]) - rom.write_bytes(0xDD308, sprite[0xDD308:0xDD380]) - rom.write_bytes(0xDEDF5, sprite[0xDEDF5:0xDEDF9]) + if not sprite.valid: return + rom.write_bytes(0x80000, sprite.sprite) + if sprite.palette is not None: + rom.write_bytes(0xDD308, sprite.palette) + if sprite.glove_palette is not None: + rom.write_bytes(0xDEDF5, sprite.glove_palette) def write_string_to_rom(rom, target, string): diff --git a/data/sprites/official/4slink-armors.1.spr b/data/sprites/official/4slink-armors.1.spr new file mode 100644 index 0000000000000000000000000000000000000000..058a1e878af11f6c2af4f37664ba02f17a9d9588 GIT binary patch literal 28792 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 literal 0 HcmV?d00001 diff --git a/data/sprites/official/boo.2.spr b/data/sprites/official/boo.2.spr new file mode 100644 index 0000000000000000000000000000000000000000..ed6a6547a6d196f47a60f35ea7be55fc6fe60c51 GIT binary patch literal 28792 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 F{}1)3U8n#6 literal 0 HcmV?d00001 diff --git a/data/sprites/official/boy.2.spr b/data/sprites/official/boy.2.spr new file mode 100644 index 0000000000000000000000000000000000000000..8119cd9b94f6e0bc389c3076aa7c941871574e3d GIT binary patch literal 28792 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 L2k+SL@f`YJ6AdV) literal 0 HcmV?d00001 diff --git a/data/sprites/official/cactuar.1.spr b/data/sprites/official/cactuar.1.spr new file mode 100644 index 0000000000000000000000000000000000000000..732d09fbc4b62eb2307e888bdb7d2002f581869c GIT binary patch literal 28792 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 teu-cC`GOnkM?UzjmpLBD!A15W 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 b8+l=I?K?=Bwf&pV2bM^;QSGJ`MEQRKeyCe# literal 0 HcmV?d00001 diff --git a/data/sprites/official/darkgirl.1.spr b/data/sprites/official/darkgirl.1.spr new file mode 100644 index 0000000000000000000000000000000000000000..b30352f4b75507de2765ac5ffdc2f98e2d238ce5 GIT binary patch literal 28792 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 literal 0 HcmV?d00001 diff --git a/data/sprites/official/darklink.1.spr b/data/sprites/official/darklink.1.spr new file mode 100644 index 0000000000000000000000000000000000000000..7980b9d044ceb66adfc7778f968c4b8272261d9c GIT binary patch literal 28792 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 F{|Dh*W;Fl+ literal 0 HcmV?d00001 diff --git a/data/sprites/official/darkzelda.1.spr b/data/sprites/official/darkzelda.1.spr new file mode 100644 index 0000000000000000000000000000000000000000..19449ed7e569f7bf827c74151c3b15eb56da2a45 GIT binary patch literal 28792 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 literal 0 HcmV?d00001 diff --git a/data/sprites/official/darkzora.2.spr b/data/sprites/official/darkzora.2.spr new file mode 100644 index 0000000000000000000000000000000000000000..3f64094d1ea136751fb29b4d6507d687777cc44a GIT binary patch literal 28792 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 Tu-ZaPK5ut?Snc$d``iBy)lu42 literal 0 HcmV?d00001 diff --git a/data/sprites/official/decidueye.1.spr b/data/sprites/official/decidueye.1.spr new file mode 100644 index 0000000000000000000000000000000000000000..2b5ac6e2b7bf01155d0a81fa25cd1ed4d8d3fac2 GIT binary patch literal 28792 zcmdsg4}28Wwg27O$?hbX>`p=mldxnbe+U6086buwEZIqj5HLcdR#Qu5!Bm4%SrB!> zNJdOCYJ^CsV&&0jZJ)Nb4SwwV(D&nKM_#I_Kc0;|>Z3k>?Ubf1wt2oK5ADj^Ccks$ z&g|@_S}OGO`+eT;?uX5O=gztJ&YgSDJ@=e*55eG$U2X@@ikv_eO_K>BZsKxeyQg{m z-b#P9pAelKQeA9NPH4xEolPL_)GsCm<9w`ss5k}$#7R7ikFPDby=3bmLL7i|oKw8B z{p*&jUV`}=i6{YibH{JH_iiRc1w5b)#SX;l&TKnlQs->V-86ga{P_;VK<&A!_{RFx z_4A4?Y7h71fxW%GDq^JmFn&kpw$ANQsLx^7zXR$wOQ7{Hg!)vw{=-neRf19f2?r#n z!{ZdWD!!e)cLC-zB!`*iUFg5xzcQpkLV8iCkvE3#YO(0g#ZJTzC-y^s!1Fr1jGwP} z$o@_@V#dKcr|?TMs`HlD7|*N5l(^ifdgApuVnvm;A^A-Ihs|eSO4d)RxOR4zFTMT- zyM9t5+!ns8GOhkN)}P)2itQF4h8|D0fMUA^%bY>J%;_VU4rn^0&QO^@=%3>CxG5ex z^OM>SF8*x)MNK#Ii-s3#-rrXrFVZQN{hMdW-kPcP?i_dzgjD-(tf>;_7S7M~z?&q5 zkJpa047}8l&sWx7Sz?&o_T3M4HWb3lL1~nloLUa9P{;R#b6R8O) z&abKrO6yu<1~nmP6Q|;X@t0zo@9~C0O-)4ICW0_xYBA(T+pffKlHF zXVfo_w#E#+Ci~8rJEjGl^%*_~<8YAeOKu3QodW&JQN9Ar#==lR1OL9Metu3(Mx z&df<{>mA`n`{M?E%aq8{`=(8E@kVWgY%N(cf0Iy1XzhfIac?EQckTsAHtr_mEq085 zr};FYwG*-?W6R90qAt!)RyWjMT_{FEtsy0}0p38)GUwF}ajgHt=f~T|g{T@M7wcHo zlgLUii9PY5fdNIUBW$O$Wm;+r8s&RtrnaD78>>uh!SUYr%hOw6bR*$7j^vVDo+9|> zI5yXl>#=ZwP$%W-`*jPugd!+sn|Z%QoxIGtTBO=8t%My-oE{+a5 zLRgmJ-1wpSSzNL3Xyj4(fI>0Dd4!AXMfL(mF(Cq};v1$ZWj2<4%NH*TT9_j>^6qoY zppDtU#zV)G`Bz47QLiee(m$ISkN`^j?GsyU4k&4==Qp9@_d zTDH`>zeaxM;3K`S?XfT$xHWP8c*CoN$nyQ29#YIK%2=4U!{|>paL`=f-c|nPA-o^> z7YPVK>0R!(Mn2`BgYnwYcWdAsyA}&y5Nd(z;f%v~KD*#c3l;%F+^!u}6@!B)#t431 zjKW{wVeqZt{RVX%$s}~BQ0fqje~P1urXv50gpH+w95pBhNFU4qOro=jE8?b*eCQ(s zyKANwIQ+zC;#Z~dmXksiF$W6y1$mjgPl8F@TybsLS4%dLVjezFz#6$lelom;6_a&rpY4`nm@7`r{UqTu@ zC9dlmcZK87{s5HH@M_5~j=XhPAAF!ng`lAbeaFBy3uD9|^6bH^HejWXPVbIBZijmG%H(Mv~PgYi;1VvRl= zf0V*1!NOJv6x$_O*eZd*c<5L9NuSg#G?BS5u$0du}z`n*~1fIQBf)A-Q=}jzE3aRvzZbG%_>EABE z0#L$-lykIx6AR_ypVMoT=oJ$~opK9b;udkrL6V3fE5VAw>B)fvJ;)6XH1!+V@P)YP z=pYUOGr1U+$*=(Y&2X~L3m~d zqfa;T@QaQ<8(ZVoZ_GY>{7x}uU)uOJ%CN_8)WAh-KxlC6th~+`&G44pmF}Iv6}|^d z93Z-;sbM9e9F>QNOadD84e2KXWQfE8+w@zF@@#sFc@hJ9g+!HLV3ZRHACrMz13olJ zF2FNhirx|3O$OCylHM`CyR#_}Pp2pML;LOe?>E{{ahUXl1zjLLq=k$^ePPwWdQSvq zq#%+^mz&9fmA8QP8SVFy4B(x9QUn|jQ?DYx%HKnxa)*RH)*BJ@7(971X)`!bjw7G- zFfPXJL}>-&EoM5O17)y;0ZEjQm^!4M;GQR^RZUd^M}X=AIR?}UL2M&aL>KV7cWfq zCvw0~l0Q@!kNxoJQ(BGU4UA=m+YEUhFY+XxEA^f2v+Ad~^bEy3$>U2zNf6BX3|uVv z1uxCV89zq0kwMAE`!{dv9Sm%Ba?Sv|RbFn+w{1CI5+ZBJE)zdLTt3_=zb?&z5n90V zr2XKCcs%%eV4hF}W0WVXlXpyYOmXDUf)P85oyAEUB*5EX^|#iqpeAVpT3>SgN~ebB zOrth9AyA(dVD&cEKS}Ec>T@vu>H4RXrAq+Ig6R?fGng&`91o^T0F6?TgK=KQMV2kK zR^VwQhq%aVd#n{$H=eNJRf~gB%(=3iIT?kdPOO31OknQvBn#$m1)(wv*8aop$3fnp z{0?j1;rbI}$qx&%1vi&b%q;aS6nsFx)a8dVW{@&cZE%3=hu+h#(aw@0kdpA_9`O{q z{wFg|3gCm-Pdu&}Jmyk)%MX&+6eE{n?EgM8tc2lSObMcco^l1Wl#35?JaK` zk}s&(9vn3@JViNEv!|Q$)lc$rrgGDnX&lWL$qVoqCX$xK!VAK%q^ri$I_ljuQ)O@a z+yL-Dcp@@Cb8cakaHBjI_%*axP3SLmv^au%{1eP1^A7jr>o%U}v!fTK9$i`0ADuT$O?UJ*JJcz1V~VQ@G9<&BH}Td*x0low_;?TF1Wgzr ztCy@>G8?rArv7B_=HGU2?g+>cMT40@$hI?eXAZ=NVgs6n#Tf}ljE@VlpBHX71_9OI zmH9U>`g|239?vi8L26J&`%g3edE%V zu>OK1k)(bX#v||_-J-5YB=ujHsek)){A1)GK5z>EIE|R{fQZmh8IdVQ4dj;Mn}7!( zraZvI736!63`HEK%Tl1G88RSpQ)HgH3^j^TsZ;ED|&HT`i ztGIkFi_Ky)fmftqS9S)ypMJYZ{Ebxnuo^J&G@(pbUh(LvK2!c8)2cvs`C!)*Tj>4& z!No#-Pd=#b)y$I4k%{oc_2ZtH5*n_4wz%JWF=NG&Wj@K-RrDW@e^ibr<7`u4Sy1v{ z6bc4k8VdIGsImm(RdpqPf9w?OJEFpH7_hdP5Blmo#V)U78c47O%x4ysO)2r`g5)-x z_dD~m?`_}QysmjvA5%XfzdQKso<|c0;?Ku@u>~i7UNP%*$uEAI{he!$tUtQqz@5Dt zmS@alE-ZOv{r9f_cI%<=zOC0TohAOK`m^UAkIv9H^_^G7gmSI=%vBffdGww+AMH8s zIUXDV-mydcqx+Gq58wY#Q$s0maNr+t@80{m@8A7EL%r-R4-6iCzU}1b{@{h4bL7eJ znfN-jMqQxod?7e=j(iA`Yqau0{;{U7t=iYHhLZ^L{6F}=vHq)DdhcEqEb$}HudZAw zeeQev+&cR`UyBo=U%ze))vw zLvAxjbM=5b94zQ=3mw+}tHaGYJVv8||lf9XUXNI)eL;0Nl~3Cb)yJAHn?xVvfyYaxyGx!0s8|EVtJz4fI2>5A0Kq z%55OQ;r;X9s@Edw5a}@Gw?cQebBQx5e@>i5{24iLHxFye8ge_ScN75@!vgTeV*YF5 z2=KlE*!jdrf{c;hLQC5E2cQR70=hynjVU(T?{ToO@AbF~JrsYp=>cU|%g#0y+8lv9 z{s7$fW%4a3BW~az6J6L*Rs$A{ET({+L6$n3-EHomGsl_Zo}M#<98(Lr^FWpxPzU-? z_Z=lctw=A{gIYvu)jI}`LWx(Vf4frtXFN1~X)qTB6+{#>Ar{ZUVUH^e`WS5%H1#DzJyPJIvrTLJ|?Z_HkH;)Nz=atC+XiV zbVvC(*dT_7r7-!hbr(59x=DLwLWluI`@>d$z+ID_YJZp`1c_~b*cC32o(PDMd$M`Uihz`SMI*{ zjYY5DSW;1!v1`+PWQ%l6i>gnDdvt;5g5 zbD1Owd5+ut-&y~aEsx*Vv;c|7+BXW`Zpy*om zN#MG59#G{J{njYh1yl7~Vp2b7>DOkvsD6-Qg@AoQwe@=%i~+co z)X!Z?zYsLE6SjUKXlN&F{Q}N?nEAr%0Z=gEuSrQJNee1LrG2&E9HH4B7vi%Cw4nYm zKA~O=|Aws#6vv8&0~&wMq1_Q?*+9Ui_d2UV+D_7Yvz=9dk^X@y-r zZ8}Ju1g^ zF3!w!nHby^#F&i#GzDuobxIUv8UHB;?z+2cLzmLk5emST2^Q%K)<>G^jQ^TH^@Dc6YA;9#d4tx)CGRE*s6(ld8pKG?pF=EvU+-pzlrc$`eU77BV9FK3Qm$7`A`Xaynd~JrFq` zTkrZp$^I|FICW-$_uv%oeD5t~`@f{XlMP6s5RekFi%lzQ!O{gg=X0^47$2(}T=@?; zTETmTFM~C}@A3k_0lgX6ljb?x_!gt)1&mwCB1Jx5AuMUc-@xwO*>3z4ffOMeX~}5_4Hkv5u^X&VElWX zjmP#MQmFMX+#7!QYDFrCH*Z)I!@UuFhZTj^`vENuc|onzY&_iGF#--)ci=9`wLpgp}5*;0lz#H3?mtMFq5C;YV40{F-ZFp;#On^ZTPpV6 z`dGLp(g6}SM`Z3=`SHkO5sC#UHLqp<-nTi}LqKkfyf2LL=RI$OpHcycUrFiP^q~2) z{)<;ie^*6qUR~Zax8=WheQ36Sre93@FV@PzKxZTxw)_|0JTW-b9q&o{FZzIUJ00l# zMs;Y#jtuC17(<36L`bD3kaJQTG-eT_zbl7j{a_>tbD3h~e+zQ1E(oRgUsmVNEt0_= z=mZMjf2a6Z)eD_T|I3?wHQcF#y?qfF2UniL;XlTKN3nNh-Cq8m@~f~uf&Ir_=D$AF z7J7WwYr8z;X&3kjR_;`OApEmDHI8^&@BYz8FMR3UAKdY$m;dFOJIkYGrOv`kFDY_O0Xp z;l`&nJaPM>TM_3tKjVFI{h>P#-}#lWG5?i1`Ac`ax95@D79Xdx@6Fg(FD`y($2&i9 zIb5jSD&+DUwNn>38XaEHdxH11r#NTMjCnJ5Ek)hI9=3C!Q*Au9t#_Nx@V@SBI@&U@ zt7o-(b05zAbvZ|_e|pms8=ly3u-T~H^SxW1yz4N0p4tN32WrpBdiu#n_B^tuumI=& zo3RfrZn}2|eBS$z%3b4AC!WJ~cyWNrUAaPkKd!@p0LopiaP@0H${2SgYKAqGyQ1W6 z$2A!)S51wkUFrL4lCPQHB+YYO#TJ7V+XLE_rn+nDW(#wLJecnu*qsk+{c0cBz~~A% z0P9{DxWJIP0$$30VK?Y%IcboTn*Ixo$58W|0NpwDU#J29g&bIKrWn?Au;*p-s6Ti3 zO-%h4qLH|vy@vgbhWhg!(4Pm4p>XK-zBRp{UG2WEWRXGfWc#7;V_R3wUo9^(?DdP! zu6+5(#xeb6b<|j~H&uMJ=k3*b;5j=g$WTIkPN}2Vfz|^SyHTc)@p%;@LM| zU37I`9Y_bLXCq{>R{bVww~!AbKG4+5u3~N~34w10rf0T1cHec2*3DgF;@Rc%tJXGO zR1>EB@beGfe*fjsIj7E;*dT(hn81%Z{;0zErAZe^!u8QZofZcFm%wwwjRO{@-ZRI8 zNog{@@ z>%p$AAOfMp4J$_N69=gM3vu44V|>Fn+P|>8)DkRgm4G<41PfawAWkj8#A?GkKE zOQ0C_0UYcPc>2=uBFljW*7AP>1(YC5VO7wr`{6=5HZs^`HvPfk5|ENaAqBusPKbj4 zN(PKS%YU{Dp4J6C-146-ZynKIP!EFt8GL|ZL@XCO1oS_n{SV9ikp9~MchdQwY z5BQ)^|J%j^s|0#K+U#fvQP{_Wvq4R-V`wAxNQ3)f0U?<%cJkS3@a1qKc4WFTU4@=S zq93rVaWPgI0{c}Yj3pU3J|stAw-EyjI|k$3Zz5kUxfXn>5aYYw0=Ci?(BKhxOHp~J z{8i?~?vvn4g}52^ydN-|Tnl*1f1SXS{AK?^Xr(KcFG-F+1AB1&h2H%u{cpjONrwg} zlSFVn{Ppx^<|OI=%)VgxA8$2!AWVwG zyM0Z``on6mzPocUV9{UNzM!P}F9s+1FJ7wup4Y^*{%b!NPwPMQKQ#Hb(O&dFr2LzT zwnCW7Pn3JZ8Vjo(%1@LVTW^{E#SxTx1xHXS#u1c?aRjAe9E0hJOO9uH9oR`)5+obK z`5!j*emo6io&UkR1S0FH^IrgexQI;-zp#YV3n}M`jLWhl>#6yIG@J_IcXC*p*SWO* zfOTF^1%)Z7|3&#)s#e_U3GXp$cvu5yF zunr>6@jxk4p$zoRK%UdrF9A(I`~!QHij=zXL7bbJ>quSy1W#Vt`WFW2UmeFMTF-?dYJzPr*|07&pKVE^n#euN5WvE1?`zmD19Gz()58wNe3&+Gvry)0QQt6 zWH0nBPo}d{u~9Toqh#9&mbiMjihjuq;1<|Rm4a?A7yP3c;~xA<5Lewpe0vhdS@z;X zo$b@<1-eG}!Ly{{u%ww6NP^8+?8tZxn{1>w>-sNdLNoW@C_iskniXL6M&e0LXeBN%}(AFTC7$m&;Z$0}9>-?3~s>s1RjyacwD%Dz|IbW?3@EU z3HJ|(B~4aefHN!uNDK+E7S*CjJTtpIyOF<@y@7N{s3E8*oFy&`-s;=VwHX=$kl!_* zw3pv#lm`B>1Jr+Pmx)Dt{WSJ3xbIKh|KxSNJ@}&fRC50_#?SX`a{Uq3Pr8C8PY-;; z`KL?y--#~k{L@zB`6i!VVn{+m+24|Xz~|lIeU|*uC@-t+xwYrEeGS)=d2BIhs&88I z*!F#qy^%HY9HE#r^2aylzMgyA`Q0bUb}33qJ4?^JJ@33{t7nYAfr}b-T3>MLAUWRg z+GGqK{AmQ}(Qnb>UpzxF38$5ZX9iO9Q?Z1crRLf^D<5%lO$(ggr-_C4vY_hZP%6%= zT5y75&@($2ID2Bv9|9K`@C3{Pdjd@=@HSCTX}?N9zGmY%-~ZD2Bb=|9OfIvvv9XC) zWMlrq+?#jgt=)-U(BfL<>#$N@&iScJ)lbW}b`L?bI!pU#oqxLg^V5xibPxVz!E_J) z<5Ic@KkmL$J@}W&;5(Ue0$^Ei5!j*Z699N-q>b1o0GLEN{qoEbS1$0CJb1sDRs>3l zb3J}oyD8q-*B$NwiMJWX1E#aS?r2XW4m^b7ELew9<%g_{Pq%;O9H`+eK>lNt&$)Tv zKj1%QNDr`zr~<6N9Vz~^GU)$o|Jf^*-&qF(+;2LE`WKumaAp&@-!$kC%Ky^2AFRh| z+|N8eO|ls;`2S-P;ruk7zRDpKAC+RtA@Ch8HTm6X(4&kRzQc5C){r8mO9+t=nb0QG z3EmSOxiw z+R!a*MWC>}Gx7XQgd8>W*BJc+&);nE|NVN@U;pLvH?+jRYW~3qI(j#L!+tu6P3glK zq@6}A=>suxo_z3OX;L^vRw+j5gIaOy@`AuUC8{(sE*jWcFyV?|Shwu^QG>^s>;M0| z_zCz{txp%}Qexz7`1~AX<8yG5={|hVjtM7y_X#rLE+YR%-hj_cIECLyehL1aoo*`z z2Cf$v^TdjQfhWQ+<_V2~aZU#NZ4Ya#-v9%`oicPzQdg`SriaQ=@*P{8@0=a@zc zV7{X;jPrkpbegBT37p+RANuyBfZr9Kh=t^?u%GyaknDzcIu3H%{jhs0guiZZfgP8y zzrX{jMGs5TE^?9FOI{);;F=Ede53qVuOCL8_WD6%IPlxlFUcz;pRA{ggl>-t}UeM_pSarx^X?M2`QR}}vQA|@EoN0bU$9_+e|=p!ov z6kDf%QGbdFBPgII+t#02CD44}7G?<+wo0(Ewg0eAF4L2&kZ+z`rYBkP$?WJ2CCISN zlgsoZYfX(P-nqG+?1K0q_vd|N?4R6l3Zlec>206(dNm=t$xhNK1ci|Fb0dC;O5$oy zY%umu@kQ^yTTa_^`TRfKdwKyBm+C!TJ%hj~`%CesjQAnofs(^g`vG15@B|LEAK>^O zCT)TxKj8R}!RZrAez4-7EHY**&Oa;u364W6{)tAyie$_=8vjHCErM>~&zAgX>i=kK zN@|X7to*j}_ex6=)A%2yM57&*jQ?R_8h_+R>uxbm{Nd^4!{KizYt8lAI=#H#)VElt zm&Z)}NJEz!R)6rE!PbJk;_fJ{{>V)z#@Hb`Tvy>ACX5}T!(SEtVfvBs!?iyveY~-^ zVQ>2isdQ@pP2XDgwW_S`k8OWs`|`j{v1s(&^1-8T$kz?LKU|}oChv0<@IJici*v?> z3qz-+B>$f}m09d+2w438PGJV(dW-+RU)iDh!n>3F|DEQj>H|&cHO$hi*)Gw=0Uz)& z^SB4|j5J3yWI(^RCLNoqU-bEz>c7i^M#-I9rGLl&dP>PJ{ub>|eFCdIs|^&}ZLqKve z+c>>%#~-1m_wD#2xq`(P@44j$BU9!UX;v)ANgEUWh!RH^0ri5DV7SU80hJy(7c#0 zHW}-qbq~--t=||2Ae%`&uM2*Wc04olHqE}>_+?{CU5E-eBT;Jm`~z}qu>Xh6Z1`hf zoxmu-NFlwEJ@T?F39eiC(avk?XF~rO8VuKbeyh0Kn87CYG}NE%ERP4Kwa=Bka&Evu zBiPM_r~y?%b>SlL$HL8!?_9;HmVw@8I2>iHVW+q|_zOK3+D5_tu0j5#{O3-N{-pLd zzyI;>Wc)yFvF87M=(rU>kjDSBw@EbqpN;AHtVGg4NzZ4ECb6=xx#F=~pKADuvYM^O z_CWlP-pJwb*Tbu1#LS7j_P1YuZ}(4_ZBi#-l)2`6cDO!rt>qCft8Fgpx$P;?p4GD$ zF{5e8wKe;IevMoQl0DqNId3rcw)a4L)+r&!DLr$t>O9bo@#_o@v^cW`yx&0H0MBmh zFWGxf-4fuOJp4l(QMpLBI0*j1Tgg6(W8Klg!13UD58^7aj@@KXQ;*=Qi|&`UnAFHa zczHL!0nQIA@KF)Rc6V+lJ`8=Y8CYa0ot4h~5@qt{MUoJN^(z5zynw_(LE?w32>9^X6tetd9!_5lL5Y zCzgue*!?i$PWep6pxNn~!1Hb9=VS211iW`ELH_@TnD!d>8-2dX7*|_7XR0gK^QU7c zfx~(((BN`3e=-Jct!hRW()`KT!{W!wdfhaCGPd51uF-rOYib`^EOadn`Tbtl1-d3< zH}f#_#_r!8x8Hj@PL`A$0qIw)_l|$DS3Vijmf89LJuvpU*XVuP-pLqxL!&*C?D;h8 z1GyXe9gYOj{K**mgT8IMKT@$(yEXDAW2<&+qBws z+y0gE>xRiVm6vF$3iLLwL2StHM)aV|i~ocDgNb3#YcgfMr#LA;aA19QBphMmX8Z!& z@Ty}xiOmvhOpFq2OiQpaEg=OPC8T03Ar)f@X=xIc%sr`fk3_;L@(JoPQKGaHOI&ID z3Ao?RgkKU-q|^&=e=3CXm`MVYl9rEqf%KFnPC*t!e%JVZQ=&QE8Vl=+23&43PN)BK zWXJ!ZU1i7rp_s=1Ij39aUugUvJPxZFg=J=BI;LjKd?TN;rmu&qT%U}u9GODv@fCbnA_A@M@h_4ZgLGpnz!?c89SS`cwd~l%FC;>f~ zbig>~GBbFvg3V)1=J6Iw*`w`@43!988dBDOLmv3rj`4k%?eYxqsL|`rs_qT>yCegPf>5YB1 zBO_&k!O2K7{w^(3S6fM{|E&ZPwB`SYzDkv(S-RG&-oQe$e636`psf;4EpR8zd=v90 zjr|J7PYj5gtA4ud*LNX5#`uY|{GSOOz3y7dsgts7;-x2js`gc37gV>ET&h3L(ep@{`c|W`P zgGcY+|CPHNV)=zbr`Lr2o8~;=oeoh7ARc(&rH;>)+_Ye09z=EoEXFo#`#Uxcj|_J} z1W7nc7&+5A#y@wc98OTY09q7@d`7yZ^w4!ju77X#`T0j05PzZUD|dbGmUrsks{h_C zEP0dNsVtUrxTg;6>wR2B{Eve_`S62_cXr<0dC$&t{oSYk|2rgdz4V!q^`&3me0W3O znnNoPuPs?u_La@geDUiWpKNC#dghzm7n?q++0mVOVets!Ro!)iKdJrsw?10_-nZZp z$t)6`)#m*^{ZORFvsx<#V{H@rl+KEXO;(mj7`@McszyJ&%u<4rjX>f{H*5k2w zgkAt_%p>q6uYBc(PWI-kY6oR?Z-l@gRKfCyP z{M#35hA55#{jsKh%v$4EWSlr#0rcNk|ARFx3zr!B=;HjV<}5A!LhG2CFwVQ31^ORf z{O%YW;g^xQ9a{F7dtb&HR})zX+9S^O#D;xv_IIVcBCrrnfO^5#v3eD zzYpeb80Mb}^>MLQJ)#fj{hDTUX$3chnVVh3)eE^s*Hjed^0IFca6pO!@TOIuj)Xbj zJKzbaAqGEMKv(?ojT$j#64S{7KhtfTVB<7EM-%yW(+!oCAQgPOsR{C%$ooy5l>wo% z@_hs2JH~!;nzVR&ClmOlg|U^`PnwyJr+4~HU9Ne_{6oi(eT|MG8`CkAhN0ZQUAmI` zDJ_hDbN6+@OSDMLY|R2hVb_%k0JZ%{@P#o&L-FIhjj{c$;KFl`eT#pk3%k; z1~JBTDlOKTN{cv^mSUS0@s*}aw?CnyADuM^^5Ag{i(Fr)>K-=R~kPQ%dk?6 zq@TZyb71aGNdgH-DG-DiQMy*zyK(nz$^vPM2=Wt4*3>+HH=di9{31wlZpQ=}I0kY5 zbzTv`irWXPs4{_Z|9Ln^$;BeNT^>DwY-8Oxfox;YfWrx78&ePb6nvTIhpiHLk`2C~ zcH&qbVxiheMh`R_f^k6B{+9eNrRe{QKOMjBaYosNLJQ0%Ow6D5MY>2e*!?Ls;{Qv> zr3wK*J~RIR@nD6BAN+sArf27-=rugfd?&=DPd-7v+6UHpjQ&dFzlNdD;zsmW8o!^O zAI1}G^t>=VKa3vuDF1`Jji-OL7u2{!Pq10%hfkaS_jrC7P9QUGLteMe59fgFOZ|87 z{P6RwBVfaz_HufDxZOBEtU&pAdM+o!>nh?ff`0(Gjth2@5N(oR1pffR({ls;v2dHP zPOO3xws?9DcLN=;FQ_qn0Fn>;-|)vo*LSb}(Uz{ye=~o=5f%QW@FB<3wX3rJBk#Lc z&z?zkrQ}vdh2Qyp1y>(jUi$ez%LUs1U9pzy3hm^5C06dPvUhV2*V2-oTDqdPV+oeL L>&9)Oxby!2L`ymE literal 0 HcmV?d00001 diff --git a/data/sprites/official/demonlink.1.spr b/data/sprites/official/demonlink.1.spr new file mode 100644 index 0000000000000000000000000000000000000000..21b35ba8382a20d4db7a9ea52e87398dbfe04fce GIT binary patch literal 28792 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 PZlz7R|Fhdvb=Us|*RHYF literal 0 HcmV?d00001 diff --git a/data/sprites/official/froglink.2.spr b/data/sprites/official/froglink.2.spr new file mode 100644 index 0000000000000000000000000000000000000000..3f2eab9e931e9f4103a71abb3ef105e1112588da GIT binary patch literal 28792 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 H^1=TDo{U+B literal 0 HcmV?d00001 diff --git a/data/sprites/official/ganondorf.1.spr b/data/sprites/official/ganondorf.1.spr new file mode 100644 index 0000000000000000000000000000000000000000..bc1692c138528f319b64797fb6851994365cf7ec GIT binary patch literal 28792 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 z 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 U)rVFdvgMJngg8~)k01H}1Ds?@;s5{u literal 0 HcmV?d00001 diff --git a/data/sprites/official/kore8.1.spr b/data/sprites/official/kore8.1.spr new file mode 100644 index 0000000000000000000000000000000000000000..3a95898063776ee9bf987fe72ced9bb3bc968bf8 GIT binary patch literal 28792 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 IQ53iSZ*=$a-~a#s literal 0 HcmV?d00001 diff --git a/data/sprites/official/link.1.spr b/data/sprites/official/link.1.spr new file mode 100644 index 0000000000000000000000000000000000000000..5d9fe070e2573daf7fa9592be628d1674732a502 GIT binary patch literal 28792 zcmdtL4|o*Ul`nX@yVPBhTHPffqmpR4i$4b0kx>IOG|+T+9Ad~sYna3@CNCN&Vq)VA zW7@!)Hni293}b7*;n~EGwHb$iHkoGn3|1T& z+E{_MXu9`z>UMRv$Ry6&?6>>vUVXOot9$RMTUF7R={hpw^ z)w|fg6;FV-;gCJ;o*AB~Ya5=xAk#?d$wX&(I2SX1jJs>besjn;V@8Z3y^8n6g~zPO zJL$WUjs2v0b~gS>5tzp;D+}n?nvHX$nhQqWl*RM=J*wwH8l)jqGcDN@q6bwogvX>U zT94A92F)euE)drF+ZwX9{hy>bbXkf83q&ib}Va z@6T^^Oi|6-asOlC{@LBGMu$fXj9yFriPl98l8ui`KcMf^8wU!xoYmq7i5C;!O?;WW zB=F@#=C+vHA$ui{!+{pxRo2lQYNJMS<6RP6a~2Pz)%8kPGqYLXU&{@2g2rfsbYgt{ zOWV-C8T9a}Q4Tw{DRTnNKCesQBhNm+|8?VxF_JK?`iF8~p6D5im_xe2_WhgcJXVkD z{p&1>_Wg$jO~U|%>iq}tEs4ew=hkGF;R(oX_5V)WKTrZA3X#X^-{!pDQapqwAl>SJ z%h-G5#1rJnwEDlj<^gTj!e#9tzu)Tr5A+3EL-Q+7^o5oOq>Fp^4IJE`v--bBZ&L?N z;0=VW{+AP_ZJA|7UkMbG7|(Z={d70IPbEE{WPI)X%irq{_^5;t`G9YcKSk%MNF{g3 z$N1&jim69iad(e+{t^0f`cqPV7%Aw#InxzhP>Zs&TQ1CmQ}MO`}u6M&bB(y_#0{fKT=15eWUy5iQ- zR)IBIryWateRHAQUZX_V?8|M-trhhczqHc%*1V8uW2e`%+<(=7rMCa`UmBfb<8uFQ zyFK?`c5=^N8<+b}Fiz4ya#WkFOS={{3!G2px^ipvkOuij_Vvw&?yrnrO?F}Q+su%t52F8v?v4uqQ((91U*f;&n~?I1Jrs2I zw8lMs{x4Ya$3rt+9}7i1JG>dIxk)?qhVXRri68AP)rp?;IFcm|Jq1X7TUqgBOO!MsnF)ng5r{%iJ+XCj6zyW;KGl&7Bsm zkGT6Ck5d{?Mc~vTrL*}8uTAdUzOQRt#G=K6`~CyRH*G7=ea5-^ynCxP5=KNNXZ%DF z_p(bS>kr3_DlR&%G^Jf}rOnH;0sXg~UzhYoU1GKnWwL9BVn#t83-fFu@?Txu;0s3$ zG21Xc$M&Wu`p3Nit3J1OyB0?OI0>A|KDKlyW?$&3rDD;unx_g-%T~>B@11^8%4VY{7X^PjDendUP<4QVPr6A?z z4)=!njf%2Wdn_Dp4|p;EE&1E$`jmSfO(Pj|gynBgDz;vldx}QYylDb=nCBsX(zKb> z%3F<4Z}{t*N9Uwn-3n6;%c&l4U$@P_Hupu1o?))9a-WoAOr+6z?I8Gfe434uow=>x zUyJ|IgWBE8YWbJ^)BQ_q{uOax*QkPQg4=hEMsr_9y^>;d|{h3Zx-wUcSBl82BKL7sR;|Fh&{nbP-#T*XvUk1L! zh_+wv(^gpX7dVmAa(c3Bp}q(WxP`^R4~8edUx&nlAN+fV3w{O((J&A zNIHwI;5CmkD8&Nlqfuiq^STlb*!-(atL1*8Qx>k`*T76`mitJ;r?8PF;}>MfhGgnqftr? z^$c_WfLWw|ilTqeVcowx1HG=+Msa_^I`63c*)gTsKmK;mlxzAoIolusasP7vdiO2P zg}4$Z%dm(sA&)BsXg_iPv5^bPxN+gks3z_oqHaZe10m|CHO*<7)xzIE;NkFuEXH3@ zcSa(VADYPS)p`8mmV|9>YN^f2hBX??eQBD z1y;R&Ml0A5Z#JjrzLVQmxnObNT(uSl<;_2vi|bYBJWQZ zv|kLFqTWlvuFxg_RZl)agNglmZz(hkGl2t&Q7zX}R>)yrwI@T_QbmwjP!xCtnHXN>wA0yE6;asn{A6q01(ll?}hQK~4_wB{}pB=bZg9CCbVA~J;bj`kL-Wits;HSmY`9e*hs{JNCPJ{Tk0!JlU`m30iYk;FJfmpEmYn8Zwr>k?hujQP&=NoCJ;;eS?^LUBz`p zOQS>Qq@u=IIu2zsd+@wJ>Rd#2|G3eg?H#Jx0HN{VSZ|FDu-F^+-!^?ABo@mMJbws3 z{#i;`780NY3+Ax?=)R&-R1Tp&bkTn`n2ja+v;A4dZSo9$gEDv-2$+;cwdS3&%tUvHPu$FFVxNZ9EK%e!xvb2u!*)_>d zC0WKJlv0j{^U8=Op5O18Q6Ha?=^RT4dNNI?xpW_W2l6vZW;U#?R|+G=);4_4Ea_N% zk5L!BOSg>K`akIPTD0dVtb0~~_XTF|DaeILDvY6`Ovr4%j#3I=m`fbbTWdkY-SaI9 zwgvop=eQy$M6C7`gBL6c1#7kvb-RO7Q1Uy)>VxPurNhzTXd(&vi_3#*JN;)W8tFAh z2TkBiw*BINj>hN!t;d(FuHV)2`lY&l7ZmLEJFH#9K>Ocd>UR=&&wWNIplv9}lcl7@s`) z^!CfGFR$v)=9N6&;a$-uQ~sQPD5$5hdC=`{3b`94=x`>65~gSYw&49^ z{iQR+JUyfb%&3vWSLE_-N_m$0gTA0!*#GaSkb9nHf4j$Rtq1;vg67s_BpkskFwy=U zwMd7|;anbGEXHiLE^x2&Zt>jh*hDFf@ok=~ z&YLIlzFg3pq}^EzfH@vB_;bFao^LY*<{A8XPYI)C%p4omZV%5ic|Hk_9x>lG?Rp8%QM)GbmHjq`lhVafX85@vy;+4v&crNN&y?&Qb6FU z6tJ-^1q9~*vz6_sLUKCloYnP+liqXAJYRp+Zs4SM8m_%ts$jnEDD%AC#sM1k-~78o z_p`{al#m(!xd3ea^l5RbvA?urSJnPv`+%(vUrw}V{qJAG7F4El*WABP{BZro`P@6= zS&c7QOk7N)G-$*banE6I;b0`3H^-FLv4EM%KBI4@VSLdsWnye%Y;6B5#~jyucbj{< z)U9+Yu*E~s(6V5=ucIlhMA{U8ao-_$p91s%`0k>*>G1aK0bR}o%>F}%H^6d4smCxkw+nhx~_J_fsc5qU}~n`uh(zI^*tQWPD(^bafzuH_((@W}Ku}dP>?L zm)uW3I#XI8-6MU>xzZ7Ltqp&+YX;rk{6`D#P-0jut_^SO`U)+BrY~f-C-x2G@z+=S zmz_Kb>2jEMQl4VQard={u5aF@ZGr_isvXfk^c;rNzfay2%&jfV`C#iEa%lRwH_o1T zBe4y(%0Di7^UNCc9)w5?8FRc|?cj&MboZpd~X( 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 literal 0 HcmV?d00001 diff --git a/data/sprites/official/littlepony.1.spr b/data/sprites/official/littlepony.1.spr new file mode 100644 index 0000000000000000000000000000000000000000..ceb21062c21a74fde2df5ea034e219cd68ae9dbc GIT binary patch literal 28792 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 CGjtUI literal 0 HcmV?d00001 diff --git a/data/sprites/official/maiden.2.spr b/data/sprites/official/maiden.2.spr new file mode 100644 index 0000000000000000000000000000000000000000..ca5b45bde4c4b3cff2ed49e28170161f4ca23369 GIT binary patch literal 28792 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 literal 0 HcmV?d00001 diff --git a/data/sprites/official/maplequeen.1.spr b/data/sprites/official/maplequeen.1.spr new file mode 100644 index 0000000000000000000000000000000000000000..d9d04c8e3df03926c408f6284cf2da9daf6b0f9a GIT binary patch literal 28792 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 F{|DtNp_>2z literal 0 HcmV?d00001 diff --git a/data/sprites/official/mario-classic.1.spr b/data/sprites/official/mario-classic.1.spr new file mode 100644 index 0000000000000000000000000000000000000000..591a225e08ea11be70b1a2a3ec3932e5b134d226 GIT binary patch literal 28792 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 literal 0 HcmV?d00001 diff --git a/data/sprites/official/minishcaplink.3.spr b/data/sprites/official/minishcaplink.3.spr new file mode 100644 index 0000000000000000000000000000000000000000..958b4b9b953967570327bd55aa0faf20e5f3fb8b GIT binary patch literal 28792 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 literal 0 HcmV?d00001 diff --git a/data/sprites/official/mog.1.spr b/data/sprites/official/mog.1.spr new file mode 100644 index 0000000000000000000000000000000000000000..fe8ff7d9d168fb42fd64b5e51c075137032121c5 GIT binary patch literal 28792 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 OtO=7A{r--FU-*Bn=l|va literal 0 HcmV?d00001 diff --git a/data/sprites/official/mouse.1.spr b/data/sprites/official/mouse.1.spr new file mode 100644 index 0000000000000000000000000000000000000000..b279000ed908a0da430d6242ffe843b331be315f GIT binary patch literal 28792 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 Q51&;nXFqnk-+%Z21vdFJqW}N^ literal 0 HcmV?d00001 diff --git a/data/sprites/official/negativelink.1.spr b/data/sprites/official/negativelink.1.spr new file mode 100644 index 0000000000000000000000000000000000000000..2a9cafc374dfc50637f109d932980f47f189e644 GIT binary patch literal 28792 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�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 literal 0 HcmV?d00001 diff --git a/data/sprites/official/neonlink.1.spr b/data/sprites/official/neonlink.1.spr new file mode 100644 index 0000000000000000000000000000000000000000..a54f56525aeec46821c06059272c4ab92c8eebc0 GIT binary patch literal 28792 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 NYR-Rpk7+*kzW_L63I_lH literal 0 HcmV?d00001 diff --git a/data/sprites/official/pinkribbonlink.1.spr b/data/sprites/official/pinkribbonlink.1.spr new file mode 100644 index 0000000000000000000000000000000000000000..41050ec7de116d0c81c2644759f8484b9bc31fe8 GIT binary patch literal 28792 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 literal 0 HcmV?d00001 diff --git a/data/sprites/official/popoi.1.spr b/data/sprites/official/popoi.1.spr new file mode 100644 index 0000000000000000000000000000000000000000..6eb5b349d269d126426228f62f99b4415587f48d GIT binary patch literal 28792 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 L<-z)LasU4Z-DXo- literal 0 HcmV?d00001 diff --git a/data/sprites/official/purplechest-bottle.2.spr b/data/sprites/official/purplechest-bottle.2.spr new file mode 100644 index 0000000000000000000000000000000000000000..6d4e1b01afeae79dba671759c4cea07b81aea010 GIT binary patch literal 28792 zcmeHPU1(cX9RDr7vvG@Q)>Ip{n!BcMHSN~Sl^VN}gfejq5g)SEmCTJj=mbBaQ#wXS ziqAzveNgLWQDT*7SCdH4)^2S zlixk({J+jQ_xy8!M$k!tCOiNy_IUQou@3=H6Wk8JYj0~*j)=RjBa3e^i*KECa!g>x znME>|3%z?NFGni58rE6&M%g?Cdc7f+>5C!?)346G-u*4R{p#Md&i%8lkm1WC4QBAnS^n#mf8F*&clj*++4}32f8F*&clj*++4{5cx7qQ< z>VRTptZ_a|e^&lBJHDE|Roq9d^I7`Wx_%qIpB=yG$FuVvHRtPv6&<}^$Q-b{{eX(z zXWF~lVa@saVa4(OS(R>E`bEXr#8TT5+y0ICQ|o-T{<`sO|GTF(iao8pUN!eu;mL<0 za&)(=F90fhdnhkQ|E!w(tMJL`lpJkK>I*<4+zS+7^`FDD{eQjV+4&FKepdfkJlp@* zJ6<>aYTZ9>^nO-;%NDd5TOC`=NvL$Qd=Ium5z|A{c0#U23{Rz}$`2MX8JjF8q0)=7 zn;z8htq0v6&${*Bh(EQ?XZ3fh;w`D#nD{a=$1tuqb?2X*0VBUOx5qk3bjFa&(Q#c~psj+^8ds zSLCSsVDsH>h|PC9eWh!9Nb%hcqvwaGWKwGT_PcU2yBy ztbXg}zukV8es_xJ>Bsf2to*TfR)1Lh797ThcuGbHyYN0fT}K>Q`mXcJibt7DCRUD; zm5Ihm(L7UoUZ)!f{Q`W{~2fu$d7KUwOr`V$bZ$CCG>S3Dt`(AN=hm%JbSF1Mpe zJRT?3ydP)96Ecg{a4K2ye$0iEu`FAC?Rb`cynU&4|FjW_x&DjQ9~Qq+>+bb@UVgY1 zvi%pUKP;YWy?!(+{|!9rzt7rV4$sPe1F!e{2W!9C@i(jg{P>lVf3|$K{krk&_?y*# zR(^Hk+4k$k>y|%O|8(PZ(~m7*xBThWU$%VR^rOqi=f;%dnD2EQzy~-fUo!nh-V$z%i=o_HQzevmmWTevoe-z!_zp8cH#Vs5?{iQQMhl_$Quda z_6u;!|CE*y$Di`MZC2E6|7y*jTECywUlu=x;y!8-`lH&B+?ivh2{bvKaQ{ zJS&qqPlwZO`ExKWsCWMB)*puU3aflJ#^kWq@RR0QbIi<`QIFr%($r-6Y%I$vPTrD% zEZm0M_{sRy$UAePm24Ke<%cbw#k2Hh%V+Vd{bJ>Zr5{^9i?8?kv-XP}f7Cl(^oQC% zhm{}Qcy|0z?|63q0p0v#%P(fqf$w&FHE_PIxaF+p%VS^cyZqYsyGGK9;M))S&Q<3= rH}F^M;cc%TNCZFIack~~C;jZ-Z~P$G-JPY}pVxVF`sh18-?@JQR_l>d literal 0 HcmV?d00001 diff --git a/data/sprites/official/roykoopa.1.spr b/data/sprites/official/roykoopa.1.spr new file mode 100644 index 0000000000000000000000000000000000000000..94d6d29bb4a47e129b0fc6fb97f1024ecb5ab0e0 GIT binary patch literal 28792 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
~@4a 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 JVOiet{{b+t`2qj{ literal 0 HcmV?d00001 diff --git a/data/sprites/official/rumia.1.spr b/data/sprites/official/rumia.1.spr new file mode 100644 index 0000000000000000000000000000000000000000..472507a207645709f8800bde0b2683e30d79a084 GIT binary patch literal 28792 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 literal 0 HcmV?d00001 diff --git a/data/sprites/official/samus.4.spr b/data/sprites/official/samus.4.spr new file mode 100644 index 0000000000000000000000000000000000000000..478c23f211d4b3a040c1f3e977ce539fac88f403 GIT binary patch literal 28792 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 literal 0 HcmV?d00001 diff --git a/data/sprites/official/santalink.1.spr b/data/sprites/official/santalink.1.spr new file mode 100644 index 0000000000000000000000000000000000000000..81d1bacc1d2624c31c6eeb331fb0e90e54fd2836 GIT binary patch literal 28792 zcmdtL4|o*Ul_z?-yVPBhTHPfOs3e;1;*UXgWYmBR4K&>y4`Y*wo?#O2glsfW#KguK zjcEgG+R#>aGK{VF4QmrG>#z<1y<}#Sx8rg2cDx=YVR6N)U`>|6Npd=iukp&i zxb{WHUe~An*Zq_J@78_Y#qD!OyK*ykGjjdC_zcEjaLArE&m2$GwF6IJkZC0KWTGQHl8YHXz}+?DpgClmH6uomUc>w1!edtC z-Si#F#(q*gyBmM52+U)al_m5`&Bi%W%_XC6$>RC_9@X;@4bl**nU?Gc(L<^k!ei2Q zty^hVgXT5*U3x!}qq9R3XD=0sbWOhZ_;)P&{02j^O81xV&lFl^)pLLO{kSL#>kBRWP z7j~e1Gw9({qa1bYP!Dq}^$+L1IN3cOF^6=4?fW;?d8{7Q z``1|%?fVZ6nuY-i)%y?PTM~^Y&acm`!V{3&>i_N5zo7(16e5q+ztwqTM)3%qfOM<> ztnv5Bi6_XDY4v|+{e#+`rK{RPe!tcKZ|HNho)%Z0=yNk3lrHT*FmU)_&g%a@y+iFZ zi8m0o`d>+uc4Sr+eI-y#Vm#kb4$?jJ0hRQ8lJWHmue{tJ@KFgP@&V71KS39$NF{g3 z$M}`oi>b$2aCeV*{!#i9`Xf@Pp2YLtJd_FEC(Cp&E1tiRzE9V1uN=6|K!3YPpx!7o z)K#(Uu6H+IVB&ha<4k|#FzWC0=s4Z ziqNI_JF&Bji6YdieQn#32P)%Nlbsm-4l^X`gXsUEyZvIo6xgl$SNN~_CZ#-M4+Wjw zEpbn;|8ti7@z7k?$3hX$E^o$aZqjbOAw1jsyd}R0oO{SD8rS3tfhSY5>*q**P{5DH zzpaj$^^J8N$OFOuy9Xu|=9ZkMS^WFP;Kh;g(OfoH=Kq!QDtFA034bB7O^x7g3ulJw zBkq336O_hN5jeF->1@8jYg4;-9_ZW{v1sw&{`SF>TX&S_KI2?{-rZ-7gb`8686Pg< zUUtc3{o$BV#YM-}rnD=rw0e0qp#P2w8` z%r=bAv9l?P{&8=>s?TlMsfE!$P6B7Lj~qP-MvhXt|+^_0hhn>2FwlmOvP(UKceoD2_>DaQjl^B zM|#5iMn&n<9uLRc0$$92OaAt{KH*+OGfBoAVfh=BiY=EHo~AK1Z<@gE<^{-~G;Jfb z@>V0%6aLz^u?1;Ym%>!Ta;h8L*Jbms&3#d$dxYz&+$ZH26KS+bI}HAvm}%o=N3IY2 zYw^j1D7plX|QstsjR81eZ5&z3Fq!zOb zv9Ux!>Qt)zfu*Q2y}#?0{!T}=Khvq|dqFj3WWHKrdF-OAun}IJe zsvXpOwKdlK1y1C&oSy7lDwrB=WNMMqbU-k18Sj=070mCr-d+2?B&X~Vn5ApGG(RvL zNoUa&yykHRrC1<+JZdawURUA)n}4;LwcJm1+TvD|yIDmV@rEOYSw_%L>mPRq9U%&p z=igwf-lq5hmHF2_avJUPlrPUeDJPA{))g^yuWNQaBuH~e#vA|#%bpe&OAs+99C%}? z>_s(TS~AEqDPqVu$&^&pgiOMF^ST1Am?N%me=g`>ANEB&+@H$`<_h;O&{SY&G)k$V z?h)=EFpJbrQS=WwtoxT|px4#XDDE#<=UufwJFZmw$KMH>a!vmxXDcKi?qBX-@1Esc ziYtM#42u|(@`O@=_7nFXAHAqd7#GiuY2yAN>Qclv5Tbr&(}JdXGx!?_JQALi#rO;A z?ns34LzCJ4I*)(ClCUj}ZEhc=waa>YM2bhLm)&j$ur>eR=-}S`_D1pcpqZz=J$^%? zz^d2JY6TnO&F1vnw{r(77c353sMg|u94%uF`fH08g~k^38YMfEU17gg)?Z#)=Kax< zwo4&X)O#t|8M^Gh=E)~$FmX`t33Km&Yejv6d0$U;b8p43wQ_qet(M+i)O6LCYZ({V z*NwhY?z}C3SORU-M#9zcV+2}0oa+(yV~eCgn(2+(5ZEV$y#8hO1(sk(^urHTv5;Uk z77}dra1{#)#u#J9``xbegvI5iK z)KXS8V>4kUlA2z5-(JlB`GHF{I3ULYw*A0Q*X*0=ony%lep)=8FVqyO+Hcac-m6~w z{c!zJZ}C83=m=!~&ZhK&E#WoRy$|{||L2vYH|-L5+u?LJosAkrsTf!WDG@yjD^887 z?dBzlK}RlWUJm^gBKtu#zXttf&px6RnE&YQEe2wijB!q~1X*E--b8Dp+TQq%a}=-Y zv8f690~;dHukmcflZ{A`pfz^|PI)l!JBYd0S=?B( zG&*!nDr%gglaS^C(A(a+sBIM_SX_+6`PIhHiV192y}2haPX&Shlxj~o5jo}sD@5Sj>%_te+`%e`U$?X#CcVzCUt^M~-` zpQnUnApuITV2Zzw77zNji~?6^^F=Ed4I#1FztH?%6)EerN1<)MEuN*6)P5nbgB%uiqITG;@{p zJFlGs-hGX)%suIT>k~J&@!EN&f4Bd_+z&k`9mnwAaz-Rv49`{Xl;_Mi|0dSb#z^i= z_}%_rIh30yfUhZ=l6T&)W_#!I>r-%o=mf8A$^9v4f&ZRGaJ@6DTUEuODn!-mUOJX z$ElOvqgms&{ttS+7VQNJ>z*~>eSw*K3UVQm3S+1!lQP?{W0b-d<`T#A)>;s8_hO5J zZ2`a0F`)=;6;lAPy`XIVpX?L_cnn;5F;_{H%M*oG1Mtc46 zK@&KWZM*beqA@x|oA4#8>vy%heyOhC1qFNk4r|vi(7w8U*Q`0QN1KP$vh95!`iwj; zsQ9b)_qpLW65Gpbb#$lI=1beR9}HWx7-!bReSVthUG7~AI;;zplFt$F#{+8>#;1-y zv-3*JE9?5Rc_oi`cz5)vlt1Sm3hJqB9(22!LheQhI-H52gsF{ubz*JL`0U`3?RfuK zf9VV{PmkyUGiv1U6}fziQl6FmpfBha_W!#ow$lypxKv;*CfdKN z7U_sNlFP%3#h9(uCGL&h?VfuaTPdY6zTK07@9W;k*5D=&;Vq{UogD>pb?zN)g~a%{ z@kTyio(UIewZZ(h2;X88J#l+x$x5_$&|*i%lkxmP@O|ZS+&2|K49y^mlN$-|NB?41(oU8v+%DI-`lihG53ym z?!}iZCN3pX8Z_dZxaX+1a5xgqo8wB$c)(0$pVha~2)^jJGC4juK7MeXV}Wb2yVX5g z>QcHC*y5pRXjQPy*WMIYBCU$Qc;E=UPXT%me0NFRdUR*@kS^x}X8)0++hS+q=SC9+ zJrh{jyjk1PT%-@(L;fSK2dIM{)%GeS{ewpuopECx9@m1KK%NMM#<|E-V-6gWS1;S;)?Y(kLmE-nMF_^v}8tU zd*=C&+Xru|X~`e#eWhq-8o5a$X$o* z4O;dW%U`w~xUl_IT|E%BjC7r4ASvu0)&cB8Q9a#_YysN+*=A=8(3YSd_=#f4G_BQ%Q;U=5x&A0 zJ_j`ujZ1T_(GjJjI4rj~**IoQs>NtQJ6^62Y6bqDWMlSmaeMaHa@lg{hUNFJSrAY? z0^fAMa`($Uv9a{wvsV2v{g`%=Vu@%%;0!FajF!>j${ed+hy9iGC;d^Ez`mR}7ra=M z3bJUAH3wvuFBdfg=1wm7-&VF({ckS#-#Tvbzx^;b-TxLV``;|Nf%r+tzc{qZ{{obr zh@U9_h$oF03d>8jUsB2O+?m{624l8g26CzyGp-|kU>9ozx6nr14lB49s#y3CrsF`l zzlXeaZ4K?-mI`ikw|ZyS2QVI3c8DIl0g17P_TJ7o1?yosb zdB~h^yvh*tG$WPWJ#ZoLYLt6d;!CrxHCWWj@ujJ{n-6g7Umss$iVAgD+MIu%Uf_RI zVrszaE9>80*Te3`@W0hl#s8+B*}ss|Dck>ciS~kjPhj?#AoWw0v`V`yq6b9Z3~cgr z!HTynlGmI^r9yU-BBBRGKZrc9rz_C|qP*w0r*G!YJA0Rl^;+(k!I19XNof-JqPp#H zfznyX0BN;Yzga7|800ap-&C~wG<{BqH~Q;5&^M}QjkMGIMX4Jee|QxfQy;(4QEDm4 z#kRsv^PVTZ{8jiG&N#-f(vNt|knxIUB(hmNNz{1kK>y*Q0xJtx&j!pO_%nvMjfl`p z$w#)GpLatV@{0(~b-JNn`}PM<|C#f8wsbI~e0KJ#MOP2}xbt5p_sD+t>vY9^-res# z+P5$HxPEip7I!No4Exuf$sIGlm-sAJ!+v<{>fL=*kSFOX9oc?Zj~Ef7@8G0f(2F#w z=k@W?@zEP~SLom9UxA0=lilo}C~m!?{G#uJN7BppVRf#BM0{z?cxT;*?ztC&rid>^ z&6C@%%x3-AO6t*_ROwtgMTot z3JoWF*uxcZi`6msAG|I6W5T~S62=PMWdE4(uTA%^{ZswO{>fVZgwSqP{{+u{2w~+^ zgdhRfqMu%>@l#l_9;(DoAvi58;-}}2Al{stE;d1SXYzg0`E>dST z2)t&-$-tGrdi``szwS73;C;Hy`1gq|ju;)F|I2aU06$9t9I;7TsA9$E^1}6k&z-)i6hY!!Tw>5a*QsMN+qC$yUjdJkC9@a&B z{yS`>hVm7x(js-Sy0W6rREn|v*=Vtj|aIcP;}1iNyN#k%$8Y8iM@3(2Tg2`2=IG_xWbb(6mo{f+(9c z;EOZ0{HDVG0>+okCQvkO)299VVcJ?HkqA>^u=thCr)*5h;E97@{nTd!c0xh~ouQw_ zgo46FNpiN=f9Sj*>T`Nwu;41XN-Q8y^yJ_P@;m)cl`+v=E%Xne4@y4}_4qsN_@McN zABY8!buko3>o>n#si#0d*Z2QP760?UHPo^HjlJh$sUf@A|Hl42feXCi&%u9BBUT1L z&k$yaEL&H2F%gIVI_&56!s3f~V1X)%pQQ>jkMKU3Sbgh;0h~Sz&N6}V!#G59q+0tm zM5?RSew|RpvOmpI*Nnpp1*(h`Hmi=f&F~`o=fhB2l1B zFtag!TPWzSFE6)ggTQFE(4;Q@ErSL{x&4u}or6}o*H&ito=0Ax9-!Zc*vo({* zY>!9abZ|NxyLN5enn-Nl9*KCpPT=B`nD_I+d527$+duiF(>Z_s{{4pz=@w3ZG9KRY zDZh8k8X>gTZwQA!^(k)!ze+{9IHRyX&o7;eA?Ihz*uUTU2-XGh*Q1F=+S3EEI{OlH z_`ra>g6-?S>fcNI)2RUUt9JeV{VC|S_6oMI|EhlziQHiN?kUUP&utQk!J))`Gb&i7 zc4x*>s&tphIm7Wd99iHpwk|&n+xa8%kC44nn}1Y7_73MC35!sXw;_Ax&4j?5y|Zo3 z&y~Mr2tMWPokhr=`6H*moV~N?>|65J!56Tg4`*Vv4et+wGC_A_m;m0Fhw0vM+#HSLw?T>9DB0y zVQ(&eim~iDksy;!&4VEV!JmuY6_O zHl|QsfMpH(0ISWC@ovvWEF8kGfir*I3?xi&@VO_dt;libw8#BCXwEnt4|@i zV8`d4Nfu!{W9_8ntO;6rtp7kj3-c97NTR7(H+Da#~3Sua4-i{7wnpkrJ)`{u4t}$?Mw-8%vRrQlckQH|b0CYW5N&CNq1HZaTlze|L0| zDljh9l#2Q-U%M46HEsD<18iKwQq$Ee)&`1sR*M?J369}G(?SPe&9ChX@JhadX$vBX8^Q!BpNAGHO6Q>cS^t+Y zO-WPIRqzDv=)3Mew|JxH0#&xbwdP?_>@A>QWy}$;2KJkS9ca{7_gT7&W{lcnK zcK#yKE;{$A9_gXQD`u@_4h8B`8-6-}=<+=ZqS;{|=kLRB4 za~FuPa@LR2>+oHDJhmXf_#mFR6z;z>6N}ky5JJWio;P5Epj9{{%Fds_3cwlgrb6FR zk6U$E0U(C)kcyl#4`1LZyFHOI59zzDdV`YLf!14$L$Kp6_n0JVNcm$Fjk=oR8;n4<8X_`@EKUa@z|OB}PE;P`nt zhQKjfujy4-gL4ca>RMgbv;3LlFTkDb(+(pZmRecZ1q}azj=8aUaM|e(e6NH1d7a`7 z!*e_lKLc#7Q=;&_EOySps#FyA9Nnh2SMnE+!hT*wZ?@R^i_hyXCc2FGFfyJEu&W$? zXKPLVW00D#wyfqq9+g(phxA+}|M7W!iE)Lh`HyScq3p?yRzPlH?OyMeDj7`wV1AJN zFtRtY8a{k3q2e?Buf^^;vEpWBQ5T;mG&T=&P5yj88oIzq{AM|Kg@A z^mz7)^7@Kr9$We9|WZmmp?zQI+xy;v?cI*!wl6+4*yf+544yruu+>S`b(cy)p!X6JoYi^Pf>)oBxdT zURV&ndH(gg=wItUcvt27{l@;S@wmeGxAUh%=Id{k?XFojzrlKVRYcfb%B;a}upW*? z*zW3w_J$UA7rI9cw!0|h_)*>Oy4~H~hVk2ezvaprHCWI2Lu=+NhJSmBV==WjgN~WB z7Fr=l|FP#xIR5HQ-#Hi#T%7P8`@?ZW@CE*;{DqL&GQRC_)xY4+Nx5}3{)LaqU-&5h z`4uYF7uDytAK1NN=~9gE%Ep}jQ@XC-NcM*rUnh9C)X&ady5y?0+`iu6cfZEoEnmO) z0P3sje*lzQ^RJ826y(p*z9afU{OB~L7xfZd)eDf0EFWw9TULa&#=m9ZV+W5NeEZbf zr+(aX)iR)VT-%Y0Uy5Hk*;gz_eEF`Ne^#Iy(pZ`QF?+P!>D=q1EP_xFFG2?DkCrSw zV`D3W^>XO4z*P!WEGXF6rclL#f{kqowU{YXv7k_knS#JNeHFPoy$kI53!VBG||7j1uqoBYV5u=OX?uqoK|Z3;HFDO9nbU}Kv?E#@&)v7k_knSzZa#DSWe z?0*qOf)!tzf9=CuC{X99UF(y4EvLg5&)V(9znDHv!U0?*kL7~AvL&Og-3 z`A2sC@9u$LpMS{tJDdYy=kIB-UpRth=kIloY&(2JPh|@#av*R&ct1?(u&SrCY`-AC z7d$7%Ap9N7b7Bm_AJTqNP)H9TUq*`%cn%c22crq55V5pB=kMXivKeMMMgAUN;g8on z!d4pc_cYD2w-iRk6rQ6eUI5#~VDX38+V6s2o!k`*316pj8 zoqxu&_oMVLXYp}=yC4T}VbHV@|9flxEc^Fs>+=*bYVo)-UY-wp6?3|5^N2RUun=q8 z=O~q}#Rv6~p<4V=`M-I1&THGlD`sIG(eSei1t)O5PWg>Fk^gAPPxhX+S^0~?e#gvf z5z%)kZ_^X+?}k*xx7sgWidpL)y9MV^1}AL9t5Ei&Rk17~7F(8od=*{*th%c8iiS+u z{1)v%lJ$yR_AM+VS+Ce-N?PiJGs}i_ZXxnrYVc9m|I_{Z)AI)rVNcZh_k$C`iCX`D zy?eTUzuwLEZ=~Yi$IOEVlIKb}fA-+y_DOvkEaJ=5Pf_IB*xWB3)$f=oP4Cb7x7GaJ zk)i!buN5B<{W<@)Hon05zqS1jBsUKtR&Lt&FC_b4h@EEpTlC)}KfZ|9_qO2HTa(uM z-o_WzF}(F+0Qrv!%R@+yvjJ_9A);?YzioVkkKnS*LEb5Jd29-Lm}Y4n%}rx!)DvCx0j+p+$$^VdZi754vF zr9GnAij?H7zG2f?^fTQ6f3TZ>r&O)s_jlWWxJ)fj`g03RGYbODz= z|JVnoAb;7;|AjpT*`=EH{4+^0<(!P%0-K;sp^60s8`~7BSWvLBUO-HkB^w6CSF5fk-mW$nxS%JI3{{8i3>wK<4svCI+r8x{ccH$QW&{$`mYD2NL15{sE@ov*MZ_z`wm;Ax_D4WxiI~Fu1IU`MwLh5a z#2AGAp_qsCb9pHw#o9r*T*8z_WG;s9%rPD(W^fP9 z$4?tP3{AkIq=<8a`yFc0Pe%1axFU{~S_5JsSaYN99?(~M1 z_dtTtXMr{2TwuW9;kzN8<^`~fG)t>@qu>OIs z68i^5`_RN@FK0m8>mSZ9s2#s{%lJQP|C25M?Dzm%KehXJikMlo`*&gn=0AdW>@79% zM7`Q4yL*;zo);(Hf8fKuo7BqGUFrF-=n>KP!RG#P=d#m#_akR6kph4Cx?zF65L;J7 z{yF1nL5{p~PYr*CDWde(V4g$E#7nU{F`vY0F!yJFyIr_{rUrYdTOOWXNN4`HW@(pqw)AM)RrQ2sW zU7arfI6tX;!}2}Eers{hI>-;zBkG;tgd!c)dB1_E1@;#E3gHdmE@gII$QxJ0{+!H; z_>6Ysuf?(2;FrrW7wk0A3nDy6{X=_STCx5JT`b!|+`kn&sVe>NiZ{=x>Cai>mz8S& zsh6%EcyfESKkqrgkJ4rBz9EXW#ocjh?J9f~7ZInzk34CuzBzxO0NTOQu4^lb zzJgScN-mA&AwG5uqvNP&nY}=V_s#GL7D8a@HT#_VsK@*aF)p zfJ|BOZnU*d0C~UTy0u@<_F%t-6F|5l0R2K~-M6nMforM__B?DibMC_RV9;Z9$cM*YnmR`hZBrj6YS>Rf!6exL17{e*V zjXYR)N9iYMc>y^S_6ZnqU)PL#BR^N{6EK$2TFC!jYT^Wp)AE#b0XvZ2lI;^Pio?aR zLgZS5?ZM{#3jx>72Pz)y1tl=SzbB11D~zVhIe*}h5kKP+pC zc#y*#=|zV5L99No0+v%aPbEzeV*dkM0Alq4|0Vk$5Jj|4AmI5Ib!D*I&3d)v{P{kY z*gYun=UM;Tf|l)%+W9B^57uhKIswJ+Xm+y(_geX?4t#N5e+YfeJ8njX4(ZaktSF|? z;QY-n`?32_sIu0^)<(8N#cGV`&5olw=Q?G}U-rwppY?ikA{B!#LGD&^BN@lAa$#?# zUA7FaI&(EJW<&CihO`)R_w9mjU*>=e6;Dahdd%&m$Z0u3_u^}VZ>Z!#1`>FnnAm*x z%$cj{E$l7(_w@Vt_M0K+KU#mpj7JVu<^SqoXTe<~|D&$XnZko1_FvlmR}nwPc?zSP zf8T$gP<{hgJ&yYh2B876_9IyT`l#90=8jjc`3U=8-LW=tfoBjbpo;&FXHfrsFIM1o z2MJu=P*;2YNu9H?u6q6n_fKbghAQ-=%PpsehK~!~-xL0qw?$ox+EznevGu_Fm+>T? z`6}DfGhnyuJTQeBn9d6O8asDS_rH`L+FeetNMSafw@wfd^pi4HKV5u+h`<5tpZ?G~ zK}2A$672L};}b*@bUblH|J*{h9iX!v2{Jc{m4_AzV<##&9xE3}K zp4G*8ejE8;o87-JDYSu|-Tw@}kAd}=o!!rC1fwRq-2P`gVc=GY&WT_K1g%^f zzR)thWOVMOn?8I0ON;3qZ&X@Md;bgXpXJPQk)1;{Q?kxKfld+>dH?*F2LF53u;>qm zhX;obAJ**?LHZqAA{p#lwaZ>94cSq}Rmme-R3(qVE9w#ZXpRTE%JW}q4SPGC%N+Ln z@6YyH>yLc-2C=i#PY{9E1-3`^er$QvVzzyZa$o+3eJ8az(^-Q2&(kX#j_I2gr#uOu z2%-bIL`i2JJ~vRjKNc<-C3^7ig+My{2ig)kLvi={MX|H7-oT(O|JSH-nfG5+<^M`o zW_hNwBL4>p%2n?VyQ}hlB2nxqb|bq#v4uj8xv*AQW*#$NNo+xOT*&G7_+5=s8aBmF zdaTXha_z35$V6Z@ZdX!qv%7d1{K zrp>>6V36t8jzHk*2n7E1Z)Bo3`hELf=*Tbr;o25u9g24`@Osa_*Va4 z*N?$z;9(Q9-oW_ac^eIC3N)!{@%6H%RnT|PpORQFu+)oK`cvRZ`9Lz2%~kX#^!I?A zOjfkVF3VS7+g(Ju<$J4Q_TIzyhBqt zEYU9b5A5A@g!7B^n%#2*o9_hosL)`acP))8${rbWUa>X4xnbMPW!|d)Mfe}8GC=rG zrpo}%SZi?iy8fC5t#P{GId5`pp$#JEa4c=@3YKtym#!+8oh?|`#ca!|9A3N zo&tSX>Spc!7qhLVS*_>jM29jRN2XyugQK>db9t-S4J~5(ANZ;pHhiuBfv*|-S4}Z$ zen+m{wD^k`<87Yqu%nvCwR%>uMxVj%)guqs1U1^D=@wkynZtAN`fPI0`uP6dB~ZwUnK9nofmAiH&zhuy?rAwUfFrWdv9Ob zK3>_4_lNU2Y7Gfc_FtqHr{|>SM4%Ie|6&R;=l*Q0GGl`mp|{SqFB~r0`#m`K;*n-v z#m6lPm+DThNzdGTXAEb>uvT5>y%2b8fNei9-e6~JEH<+DrF2-}Hk@&1oq+}$#Dn&V zU-dwT!v`9)auRb`s-@+Ao*nK^>B$| zBVq-UPZm>|m*b~`npnZ4k$WM07(#~Vkbj!xgB1S%pcycQ4^_wjH{{1ZCj%@Gww{tO zB&+D0Ket`47#4iGR6XK5b`jBaw`ybl_n*e!s_}caz&V4(E4yFsB= ze(F*GkI9A8(9lO4I9Di#!KF;lQH z@1NQle6%7jc>h!;xTWlH;r*-kM6MtoTolFf?UrVjPOWvq{&Xy9Zp98D7b?L$A^i9i zSYwQ>Ob^76#udRo;2!LNmU6Nwbco14vDUwCANI+J?2~Hzt#g#MB{Wz${&w*!PJKiM zi?EAD{LPNw|8wy-KK1dOR&vHqiTss9qS)8}Lfqg}01b>UeM|gO$JlG*mup|0Zb9>z zi?tRspFdO^zYO!KQ#JWVQ_|l3yzaB@`2LsrU+Ny=2&kBU1y_b@^M`U>sg+^uV6r`M zoPGG~@`nnpG}dj^9rXE?=wCB`+b;?Vzbb#|?M3gxTFX!-yu?~TJo5)n>AH2r_TP?b zVZ*H0KbJ>GNztsWLwI|&MQ~8{ir^p{+Z}$#h%wmMrci?|3O4>t?tdZhPw)Sz@9jlbl%zinosT^Lv}Fl6 zXnP{ed-~W4V4t7OL0R0abgIfhj9KRV?LDuD`(1HQ2wC?mbDml86t!S?D^P<))jc=iX;weX~u^nD5UN@|Xi2 zVC(*v119DGV{w0+op)TEA;I@AvP6PRI*$5|)}_9ngP&9sNRMVdztF~>jWwsJI%go{z?{n;LkmiEO!7W!6$jG^q7s=kHr+KnB#x7 z_Oqa1*Hf876$=Wr_}2U(rchgM#nAb+)zIi49e=OwfcCWz{S#X41;p!XAuM!f<#|O# zVp=`N5~mlq1E&=yWFBYita4+nVo#bw@L#LeHV1Q=G4r1|zcO#|47B*ql=2rixi~Jwc%HHAlmB{}Q(u3{i3I(qU`DJInSTT9bYTjSR6nL~*(8K;ZivoM( z88go@h4g|`LMU#0=&y^IQ>Gk1_1mF}Oc?u0QL84JW785o%lJ6Ypfc5hF9Pe1zO zToQ0hy?d>*`EsQ{XT>fHow57l5v+oY6X)#unU#3HOsYH37;LiZ8>DvWlKOOo!P$Cu z=iNexl_>=2wwlZ#rcmAg&#Uit>0Q;PC+vUT|7RDp#~5q`PZKHfZ0r}R7T!x+TM&U% zZ0tZRB7ieVs<;{ZZEbyyeUru;9or6XJ8aiSXsiS07o4>*(Z{u4P{CEjTeT1FuG;TR zVN$mBC%0k>wfdVSX!-c#G7$$g*E|owk5Tiw(59MCiF_y8M;X^AyG2*v@V;;wR-M4e zwZPh^X#BXm9^u@JbKV$Y_~PuefdA9p7nC8KW-rc8o9W$xXUX}$-O8u8b!$Ei9P#A;TgOaq2w8)y|8RmdZWe3`I)dI{6X#Mh=JPwD?O?rUt)bxT zsS%MqC-D5ad*prax1qJ=!HdmJe=M~;jMFID9|DUe#}x8d_i6^uS>!B$!a$OB4`UU& z@6H*!toawm9YP+QAlUGL!t;+Y=aumZoU!4ew*ZV&D9>IT9hQBt{~1R-OZl|n%J~Hy ztzj3Re_1`h0P_a#eLO7o*TM^XHqasDfr$m)O2}Ub zKw9Y8K|DclJaoy2{dWg-9zXOcc#hBSe8QPgGBOSc0nc@K=FNE2k{=P;esCbk=ju+% z1%R>*Z*Cs{_7(L_X9zOZm63%V>79ICo_ZJ`eQ2%M-Eu7oB{WQ(0}k&LUMGgp9=iA z_lH<7v-eW5GrP{5T!}oSQ^kds2OR_Ze$`0cZ2bbC|-9C_b7C+W~v*%kx!s zD}J1(+cdA@@W@gDdtdDQ8zzc9$rHs1&WtO-$~>oK;Kf=Dsjy9(4BtpiJ)CKp?Ohba z?h1-y^{`JW;(KE?O{>-A%KM#}my1KGa6m0C+EdRboqEb6dE4_~+fwYnwQ*eP*C&+2 zx>>HjVLUf}@z%o|Sn7j%Kkg(7Yk{*HAM03J@dvO3$)jyp3qsf);#j*cP;4QarS+%L-_U10+u*{KE&rVI(_Gob> zs?0?6U-3^JnmW?na%f-@{;#u|YThTgrOP;tEsDHg&Y=F;BfD2-f~#qPbAgjj&HQTW zlhLigxU@F7HrNcj1ex~%H3fMi$}-~ua+e11zC__@*-HFhDMH#2?B@vlcZw{Rzd*rS zeN3tsQ+ewf6i6ObwKTrIIKOKFzWG9@;*{|P+1_3dn%6de&I~?I!NQ!q^itwPB1xtt zK_|wK9Dd_$A(u4uvP5Mc3!f;*(o7U^)?{%~;C1vL*4^LHq1@l`AJ(ly^*Xw|F5MAP z(jAvA+~)3_xw|4-og` z)B8*G-?flw<92$#rGBz%KQM(7XxN1*ytV%L9vkC~U5x)HS{2Wgem=WyidQ{|e?Z%X zXsvU(1nh9Zb6fA2>FV;WoSVgaGx3vy1R199;+rKf+Xk~aeY>(Qvbxu%$MJ>f`;T}> zL)HJuXC*)jDb@B0&_J?^1%>H&`hEtcP+ORSjjfoCGh{=4CYRqiqhh~7VB!6k)ds-F z^!WM9IGu~vs)Bon%nhIC{Ub9MSlmN&*T{YFeKEgBEZTKf?*aF889po+$kkZKd7}~^#)JAIem<1;NqfP$ zIpE6^&mR1@&wb|2y@f!IaS-s4Ea<;<;YXz!zH~TtV-EHksuxS>okPcDCbB_8#wH9*@e-AQ9J7;z`uE1BAi~Xyq?$pXiYZx*V zC%HGt?$wewSC9W66U0(S_~d^7RXzm*yD&yuG@G8i1G$R-zuZ5}cjetr0l`GpAb9sv z)&C%@^@w3rS%2~Fr)vIC_4@x@zl|-pF5j@uuoaJ<|JLN65qVi0IcmHw(4`;<&5{P&IA_muEOC;VuyrO<}9dkU7*xEnbx=gk`@M8b4 zMIlnaj2HWdZ3-#u-@)!h*DLzhl6k%zb$IR$C%pyNjk2uWJ#gPp%(&@(+b71?V&3ib zA)0p{v*&+>Qp%Jvf75()#b30{!I|=<%p5!y|LMI0C$a6V)>0qWQXiB({`B5KeYLf7 utlBw!p)~*Ly<-k)U!L_t&?>cGi-%jk9iSE^Yp|Z9i1hz5fGv{GiGJ literal 0 HcmV?d00001 diff --git a/data/sprites/official/shadowsaku.1.spr b/data/sprites/official/shadowsaku.1.spr new file mode 100644 index 0000000000000000000000000000000000000000..023e2be801f57d953f599e68871e3ca8350e9901 GIT binary patch literal 28792 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 literal 0 HcmV?d00001 diff --git a/data/sprites/official/sodacan.1.spr b/data/sprites/official/sodacan.1.spr new file mode 100644 index 0000000000000000000000000000000000000000..42ac0cdd80460cb53a686f4756ea0ea9d42c4f62 GIT binary patch literal 28792 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
cj2beZ_E9KwHw#ud?R%vF||}4BA#ml9zOoZ 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 DjsoyX literal 0 HcmV?d00001 diff --git a/data/sprites/official/swatchy.1.spr b/data/sprites/official/swatchy.1.spr new file mode 100644 index 0000000000000000000000000000000000000000..4dc5e9d03c81465e703bf54e26111acaa8b3f6f5 GIT binary patch literal 28792 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 literal 0 HcmV?d00001 diff --git a/data/sprites/official/tingle.1.spr b/data/sprites/official/tingle.1.spr new file mode 100644 index 0000000000000000000000000000000000000000..53bf67488bd98918afc4b4324da5ca6926b757c3 GIT binary patch literal 28792 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 Z{>9!k{Ont`mcO=5w4DDJPb$ih{}*A(JlFsL literal 0 HcmV?d00001 diff --git a/data/sprites/official/toad.1.spr b/data/sprites/official/toad.1.spr new file mode 100644 index 0000000000000000000000000000000000000000..3b0f22d5ae2ab3ed222ae006bea544e66befe0bf GIT binary patch literal 28792 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 literal 0 HcmV?d00001 diff --git a/data/sprites/official/vitreous.1.spr b/data/sprites/official/vitreous.1.spr new file mode 100644 index 0000000000000000000000000000000000000000..6bd73cfd0fd526022fae88e6210b1d5c30dab1a3 GIT binary patch literal 28792 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 M-Sz#wYgNtv9}XD}CIA2c literal 0 HcmV?d00001 diff --git a/data/sprites/official/will.1.spr b/data/sprites/official/will.1.spr new file mode 100644 index 0000000000000000000000000000000000000000..8990b1ddd9b35e4f37c1a75942e0b0f68b53cff4 GIT binary patch literal 28792 zcmdUY0bEnp+4o6ulia{1xj=*qgyf1*f+9qq5G5q3rISu7)Vh{dDyd^Fbyib#iWo`i zXvbQo)Y+C2vzVG*Y z-+sT}_xp}NA^&^MdCt8z=RD^*|K~XeBofJxN}`FoDefjZA6Ws)R4RrpV&@VI75Vc~ z08OIl@4Q)YtZf?|q6d0fx2K(WFER0HCO>V%lJ%7cp*?7tIj{bq;wqXJ-2k{}^CLfb z^dZ|PyPj@&@k!)FJ`^Ocs=w?n>8e96XZc{;5o%)T2ao<{&S$g!GK5q_DRR-5jVGD& z>>1{Kyke1YqYT1;=exrt=s>W&rg<6CBzc>V%cKa0QZ9O=9SK|8nmR9HgT8^ z*xMU++tv@Z!<&ROHr9T4zrL3+kUj^-Qm4qJeJC}Dpu{pHL8z&r`L0KnnzG_aDIo#e zX0^G@%l+SF+SqR7MQCH*v76qXt;`y857J)1vPp?^ww6|ravubt*N5A$Qq62%s80y> z|I_>D>wok9MP}J{-9zeJB7tweSik*V$I?vwyjkvIHvVN{^+{Vlf;ZaO&{)0gJ5%hjy*+LR;5MtnMeP{6H|}e3GE(CAw^w>? zQJ(n5Bbg#4U{N#QzB=4~^VaPvar+tJ_T5(FjP_mDleqm|Li_lgf)peZlOlyoArr7v zqLRfC@dS^(gg@j6wbt%#;PEICH>GTQcB7h_{MP}Byw>)NXwM-&>uRy zp{I7hbf}-ph1w}g>NS2-Ey?A>7e^pMY!ZKOj)3J7siaKqjOTGEu(G@Q$XG$zJ|4>g zdo;b&U&ZIeJhrM7&FecSmMO0D*r-|-_w$4vrT-X@gFcVtneDFE23kg%1=}&6Q~l6i)$b?$X7Os10^`lLW4o^ZEbwxDU9k$| z3C+9E`hz_mKG^zej4#n&L+hPAH{HMW9LCUb3m4xOs5HFIaP7-cuIf9g->Zf?N4fj= zqKV**32n0NWpW&s_ad23;`{1~_APY~iNsQ*lBKB^%vy(B$R!dHgi1xz2DZVrivC_T zj9Sn=ZkOBT*lYOAcE;x$&pmg1`yD@G7bvdDUYp1esU-@rR3Z~`!xd=>U7S)T6U#;1 za6%((wPWo@qpiA&^?0D|^~To?4Mv~M=k{`Vp`zrbQgPLyTTS&0?hM5lab;z)=0y*) zPK5CT1ABr&V}L6Q5FOaPDL7y>Mewr^KezT_QMlVc{=~u?^EP0`5l)YWt`~(oUI8Lk z=wy*429v+2^A#-1rIRTb43MsNzTDlo!kVljc-;MF(_ZIm{{DU=r>;=dZ+5nbLm1#!`I)tq1u#ZO}2({&mS6}Xnfrlx!OA&TUGyMsR(*v)kVv;AG<;PG-Oetw(U}xMih|Qi_Eq{{1Tt-FwC7B6YGliPkOcKg`|(gzr))CFvf=@9ujz1d7*te3c!ef|@F=XzHm*M9@=O-!rP zJbBEBW)SBW9G70Xd_}uNAIuF)P#I_6;piiuW4^@s&5+bY*_^SlykVrm( z(mmrQY_D*MAhbzl&(Mte64A{1Vo^+esO1T<-wRjgepya*J{pS&f{eBY84`KIjOTIK zP2u;&*J|^&8o5s%)HTPK-6P(~)81AC6*wd%bPc zEnta+K%_WMDqv__k{~B}ED_7SQ=SRC#<&~jOC(aMc1(MGpvBo|DX>y`Npmzp|4k?? zq{@=>2?0AR23V8b8xi|@|A?{O8^zi;blWp2tyma;7ykIb_GD$I1o|{rM>A+9`$2** z{&Ic({$Y?12#?1&k!Dsg%2B7psgPJCLX$&6Pa31H}%-9c}V3BdG;4TeB_ zg-_!hWf;JqgHW7Et0)v3QgD5oC~1nKOu0A}*T;!;m|Jmur~RyEso4zn#g=|tzr#Dl zG#kxGDN;+JeOenHfs`m+WmQ;HGQ%UVqRhA_5L5rNN1IPDG4)AFCMup~NYsVPC&+Z- z1)0`VO&GU3%!5M)joIww+c(hTgJ#xi9tpRvmYJ2gvkS>wwT`>r3}vBGS6D)ort-L} zrlY|L?FXUFa+3))qAi9F_^j~;NvF|-7)c7PAh79$-yT95xhgGQCI^j*-yTA>HBNi< z?ICn1fNOJa&*SA<i1lG;?qq31_48_G`XD(`=dBu7^*(x=CPbD z{2|#$7nm}5oXwUm+g7#Es^=d9c{Q!i5M{(yl`rx6e)PcE&;On=nff-ep|06IB^&eB zFgZ-TS#7g~SHMz&KelO%(iDhx0 zK0k6$z&@F0@iQ*RQ2}3-P3L@Y&z`q949|et5}S)QF5x;IegwAc^+El?V2CKDHONd^l5{Zs z`O$_@p=x1rGL zIY4T;vAc#fLwSF{-*nJBMK_z8Ijp&L4r`SxFS>QfHqr$7P0O@qv&2Qa(p?G4S(Rp7qA+tB;M}C~&A{XPsJ!Y8 zbO+?8U8$OEemqovbTHJ0F_WrB8I)R?O!4nbm8y$}H>lEuvATaC7&JB7JWv*=@qS~l z&(!1baESkrP2Z7MZe<@#D$2^lSF%x+c!#uZ*+RA~4P!6rH@cl@fIOncuNZKE4LXB; z{+97@{}Lpq7vub>gaxyCj3w-DB!<;B0uHeL#$Z2JUxHNPOsY^(jI87~JUgi<4PD3< z7tJ@gaQ_};N8HUGD}Bj+5KRLd+^^oSRyS*@cn|ptY;S)%{=ph$An41~X6tMPS-5E9 zGR#2y<}o{hH5u?9n1RszLwtid?{IwZ)6nBr{(kBBKOVhs^Pj->Mpj}6auHJtzfevo zuc%a|iypDp-FNJXPZC~bUi|~ypWC(@ebPPBSQ{AJ?FEPicAs9ko;XAp=voKl;{|{Y z{#nIVsg;9rokp8dGUujw^YvUlECZ{1*kNOh&&%Vswz0#3iZPOA0ZT-3u_`&A-Y9d4 zpuR*RBN7y5*7cq3HN{zw@Adc$zWOO*NB1;-e_pSV9`+m*PcN#HUfyUfER^M@%+VxK zoau*Dg^OYKw9?uzroejNQqgCsFdDh0ePF%!_6NzvFxID;N_Yu)G$T}+s4C$ksCk_0 z(2VmExUPdnXx}&|0p>C;Z6jUP3pH~ka^RuBdMZ;PwFC1HU@&+&{sGp{ zQT{>Vlr9ljF#kYswp)YE$QBth36)gNVdDwgQMc3WtUhdaDrEXnt8eEp!^ zG#CIZ%2deZig+zv+vB8Vl!Q_-i^gkvoS4B?hhH}YJ%g;B!(-hehLHxd#}~#D7r70X zr)$J@)Cv6vty*^H(sfIpc7Ol=&gbNSyH58P?_Wn=ML{qjoyd6CjQS%$t@czBA`nc*2;?-llRf2EqPf+3LF;btUzM|V7NtjRG1{V1E%&u0Gl@ujCcH^0*2tSQMZVJ$RywQWP&ik@f4U|*o# z(e69_N%J}Q#~Fo-{F z_{09UJCVyh?N9}u+!Dt;b9ORm@-IWK=Dkw+>^)hR9{(ckt4S2rAEnludEZ-CogdL3 zCS6hT+Pc}X`eWF8)Df#c0_+Kg@g&yz5~rxS`ZD?1`s=*bZ?J7~ymM&!>1UtgwZ8F$ zyLp$Z`lYR%yw;bA*QD&c&y{l_EkP7dg06zKD$k!NC2~p*stEpbD}aj6-2XhMYi#x* zo2f^W-Msacn6*6FaagS6H7u<3i|IXWhc z?|JXOU7L2lP!Q9^f8||KXj}yLdwsd%b7&e-;g4^gwknYd9Tl8fTwQfRYr&5FBiE2PM0>p?-_;6v`_l*!VEeLjW> zs*4Lw-)k{n{^fg~h&;Qk&DI8Y8&3E>yJ;^AaE6Bh;0zB9fgSg3tbghJ{a4!lkNzd@d1z$7lX+|sAm-n;k>B9otTFuCsx#t`n}L7x1>i}6 ze|zc4>5q3IKO5lrH&=2#nVKNwtrvv0-DzH^OO8XZg5w4heB;feW4PMRSuenEt~|IW z;4q-JHm?`oPSM?k`*up}3@Zxx_1cB|jvQ=~Z#6i@JoeTO`t7w9hrTX>0k3Ms4l5bC9DcO zUmtk$$8@|n<==JhTBOIGoO<9p7B{FdH}bkWs`pjSYu_+vXFWDIvb&Esj@ECjK3Xl^ z8TPPT(D%ONVs@iBo||I}fl*YvjQooFkoPYIkAx0fe>3$)@f0dT&2*?BC}|S=GS|hS zqN3(|FTHr8Z|8EY0qn(Z+|5L$;AmsCo$6-b5g`RVJ?+X6x27av&qC;Rz1{! zrszwpTiMIq+l(RG2^5;TxC?Ea_vxbLi%&EjeIj%f$p{6ZKr*3g%ZYe0ULlL%V_#^G zr?o1>-T{QxW`1$YvwKu9zw!Ehd@$hlAe-Cfc5@=kgN=Yaz+mt=?MchLjcDcE6*uwy zasS@5>}I+tw{aGa2Wx{qXN$9aiJtGDxlYR0NQ^RghQj20eTLjBg;^KhtEuw&5v9=%4uQV2u0cL%VNT zA9DNb|0I@}g#L+;-A)iD6IBTQ*9_GnnMf|l&jrgfYe|+a*}{VNMUo4co??gB?OtP_ z^laL7qEdtA&#!6Nf2a%DY`b<~Bnp?mbqqenR`5+#DG zLrTaAof_w33_eImY7XOTt*stge?`EAKjYNeYO_^Tm`ox_uz)}+r7p?Jx^BZ5=PQ*- zNi2KYZFs)&*t|9`8>k7k1cC2xyKRtIwx*_~g$(l_Hk*+S^aP)7z6;mI?-0?4diOnh z=iNLOBZ^SQsV-=b^BCV$6=9KP;Ad`LO{6CT?gM|ugBMD>#}Mks+*{ayF* znLi2jX=CD*MOXg$PXWWsq5-CNR}^bBcKc&Lj^h9L6D3LouPtWJxyMFI38T`;F?-Hq zr^)Gn)xINu`01*zXE#`%tuUDldwd{Lud%AEvh&baMsR>J>op8T2>A@7*E0+e!P75=_B2-b++A*7 zVZHRyo;?*60Kz!*f<-M)`&~9ygVm&>BtYSB-hBW4Hd{jjXa-6QIP`c( z9Lj>8x8G~W^&fv+EY8YmY1zNu&S7Vj)mXPuMU|HFI=iCEXk59Hir}TTP#}~PYzZ)4 zFWeq-d&odiQcDZC062`V;q-`Y9=oU25?R3F9^Tq2i(tOgfBy4ai?dOKni-))OG{%T zLg^7KT>sC0+ibpW$I>Z|@5g0qwyy5V6-g0HqVy!|Vpp|LpG4xMo430M0e?IGZ$|Wv z$UHN8r&tf{LrnAznw}ZGbNPJ{`Yvii1)%ump9mk6(8!GtPn*vdOiPo=8aW)2Oh4tSx0=Dl zD986EmOS-TeLa>CUVym~y5fUYL`Pp>aBpyXJXmpvL@#jo#;>Lw8)2Hs&gOE_FMs85 zVD3x6(|?+lg84N7o;~i_AN!M3T2L?$!PvT7lj9Ou^j3BmDwW{)qeWsQo~vKP0--3u z@keFLudT4SgX9(CE_XP7XP(DRkw&B2E!$p~WSn3wlV(^pf zFkCl$(R#)`ow!3`1+U9Ws`u9)Y&-JhvrGR>!gqn*Ay$iz%I^O0SGH^D2GG3?#i+9! zqSJ^e%-*>*&t!f1+ozuT=l!R4O=O)r+rg6n!d*)Q7Lvapk;H}PH=zJTv&~3AV8Y}% zD-K(*d0TUPnKyyGSI{UOmECmDvQInD9YY@EGYsPOYf&CO*a1!~ z4*o7Bu8iu~?`vGF%OqgpJUYB&+;*Yk! z^3(qd{HGlhNKfIPrFZKeOtT`e3w>>Y))PN#x@Gmv^X3Sz+x>V^UiVQUegb%-$4^~c zF~!ACd@KDY(gJ&{6KBGg01kJUPqoR3$;p{?rdq{QKmp7?pn$s(m;g8U!}>k$VfS!_ ziF6n}fX(-rDQl{g%nSPv*47oO45=lg;6tFMG(I&kP8T)sJ_Okmhx6e^fyIs3U3?B_IoipKV{wa~)qXny|1_H%6fB5yx)@r!uw0Q(tP)$1~TAbteh zkKvBh*1Wn33%i-UpTl&>-Vs~>(#4J=;rK_cew65wpcru4;PCS17x7Tm3OS`Pt_;+jOoRQ@5js*4=*;^Y~5gY(X+ZlsCfz5k`#?JnKGnee!Fl^!JNz#SmRTL66`_O zuCh>HBrSURG;(ua#Ebrkfy>6aaRF!UH4`poO@5`3|LWTImdYPs9C@x}9(y+K_NZIx zyVJMuD}0^H>}y;Ay$bPe^ zSKN#W5qj(J(Pyr_Fud=h)}57wfZNKJZZ`qDMLo|RMdRRqT=>r7_vfl|zJBU-(m3EK zzx5x-U!!(=I~hbBY!B^)7))EBy}jMPKe&Im-3RKDMLfU79wWESzk_BG0)DI8-*$Sx zi&!qA;f=j2 z{F$V}Okdv6NgfA-14|D4sPT`3ckmbm{e};!_jcz$62_qDcnJc=;}1&^a8Scb5U^Ln zOAs*J!#}WuC?5R>mJr4KJw!2o4`FQ2eVw^f^O9*bkL~u)pS_~muZsA;WX7CC?PKfW zz;47zCOdQCvM9v+(E7UIhs_i%VF->8G0_5G3UL6b=EyZ%#rK z^Ae&MaT1~!-$TAnz*3Qdh!e$$1T2%p%ajlWAI605qGRfCJrOPs(Tf+AO|?biU>`-3 zL^N}`CI*jWG#7!4>QhmSW#l!PrB*sgnkh;S`}>#3^XPO+3-NmtSG4Qs`hE7-d;{2b zjnkTmO-ZK<%mdhWjZ@l3=EOp^Su`ipim)*`bTTh_zQ!W9%;NFj9fAb@Rp&$eOIQL| zANM&dp-3?&bFoZ|aG&EO#1)IIfN`G_BzT|(?sI|!jPdx*AT>ycKg8oVmC{Ay58KS- zaJ9)R#2>DQ_`|~vCK7*WS`88)22zOs)9VUUI0jOP|4Sb-cU3m@*z0ThOpVaqd|$11 zf1usoI~+7%jQbp~L--h8+~;^5!kbS|H-Q9q<@(nf${R;m6H++l`<$M(U`Io*HwaiO zPfb)H9Bs`L{%LY$nhF*k;6daf5?i|U{f8?0!THPcCtK)|){zR6Z;NEkyQi9o zj2C>Nfga;KAqLo$su0Kc(`B**GGWI0g?2O5d{O?V&pYOb#V~$i#|y03X5v-{_`+gR zj}fLvob0J@lOu*5OsP46gZA+!zwTUBr?(dH`h)O=h=u51Et{w@oDbgjsm~`>He?HsX&sdA*;(`-|#NU_i|+o9biUS1|X~$^$W&k|)U*CG)lM&v+@L%oS)f zz-^Ak?va{kzNfmiTi+}{HVolwD75l-5*Prn-LAISWf zIoCz6S-7HrpKtf=O@{cvO}RV6^KakEmQNf<*0-i_xv0kRgG)9onW)Y6Gkg3KG@gH9 z&xi>4eYL>vE96?>_e-%)nro49RJK>Pbu+#~V;~Js;_4>P5yuKF{_v#W?&dwA|1Z&Xvzz8}!a#oYa#Ty2_ z#*rXfJQ(7v573`aniE{~y*YyYvVU)ZY6HDBSFm3OYkPZ~UC#EVa0F$pvpi7Cjxq;F zdHcnruo??Q(ftp_Dy7jvS%E(V5(N@OFSa_nw^RuFuhO@L#PL@FSVw;|QS$WYdO=nr2?1{W@kOu%6oYXfomBW5xguCX zL>zp;5@InYfx93_@e)SC#0&8^a(ELdDs{yE@Pf058Emy{hWYwl7~ew_^Ach)masS;W?$MOnUk5%_0J+zUUHtsEG`DS0MF+m zH63lv)=Ky5t^BR(8-al*gGMLxAe_=wi!;okLb^DfpTB9PUT2YjggB6Z=WozCyo4UN z2g+le!%JxNU<{*=b3Y36UrKyNf(qi-aRd#1`L)%7{(uqlWBmMg#Ak%PJiw2!c7*Gb z1TR5}6fzPh$9Op}K_yaw{Uk>nJ+;*^{%Jp~moed99ykKyf1K6;_8>PRWgr1-AbK8y z=TC(^UJlj|XaH+kDU6}OSV#Ao@*5W?Q$k)Zw1>tjeQ%AXUc9W+8=7w68YSWsQm%^C%V>?9bUoy$OZeu->&iYLi|i4+zu1Z zOAsP>)X?j&1R;V4`rM%T@Ord=jJH1+N3L(xSg=hq#@in()uMZD-pyz|Dusot9az?k zWIfB^C*=~}zB-SwpbP>NL}DNSD^V8wOGAk$0dP1q#=nwsl=_h(e4(+?|C0-Qo3=&v z^N`;C)msc^dYCUylFt1{Mu+?cz7v5nFx!>*3vzV_@PRlPjWt!5_WE^eh53sZJgqKk zd6>M!=MzNU)JKyU+fzb3E~P{dthzQI7B)OCq3W7mdS~#Uuz$}>^;ufCJKh>z!{?7v zQw5(@@9oKU0`|CBd3EAxy(`YTI0K-^j;_&{pMdCni?DtOqJGOWu7)=~_wn_E=xW{v z_dNTmRapOk?Qb|r?hwX5w*5cu+)@{=FGf=1g1C&9W}+Y02X0(+=EA?Oq;E0{&rim~ zhP60?l=1Q*!ZH=;EopTBlMlH=OaION13n)I%`_h@6CInOuX41j@`Zf-J3DUq4E@_* zw0~V}et`YNwhv`dwxp%0MdF{MwLq|8o?T04CW<3pEv^AJA1Wpx%r9IWY(nsP%te{7 z|3s_ENuC#;J@NjN6o_1p%$|s8GqGST8m9<6dxOp98;1QS1HK7_XK%3I2l(~3Fn+#1 z$?qQ!#*d~N#*aO^f9ME|pLR!d{}6Ln*KN5yFG*OxT-$r8ds8L$AM)#$j*mfmd5ao^ z^~=I5TS$KYoRNDLbApw&Bt+{MsPgCn&i}~Q-~Ds@zS#PkuQVsktpDxS9}Jm7#qQrp zRV63H?%%O%gRuKY*!_f1=%6ONe~0%EEGCTFEZcZ@Z|CQo4p(^m!piyhM?`+x z8h-x9E9bJw&nNSmh56frZk~7OZn*#V`SwkyF8w*U|B;_?7{v9{+_r-GHrjLE^_ivQJ-b%%SqKc zDN{TKnMew2KRT>GFqVrI(zNjW4-PS^b(3L&9p}r7k&?Q)_OH7}`m%nQWK|@^CuTF) zI!EZfn-|VbO-f0$k``_c;J$%p22L~v-LPkjtGc0YUEdpxPIoYj*>$ufE>V#r)UR8b zpOu=Jnv@@||4i*3XY*JP3H8@eo6OGu7V0OK=+lZ63zPZXHxNHFr!=utWPxxLyqgB> zg>ij*Zrkhq{OTK_Eq$>5bvygPd%)#uh*Xh+g8jcriA4mvf5LcofU^6m z2iiw#cvVjXI($cJ>U(;_n71GB4ov?2^V|XKz@+&15Bq=7%>BQ?{@DG$2Kpw&0y-1? ziG0dWEslqG7YR|=6+4O;~lroB(qE zevm)o1Q38TP5=o%7A%^ZyHQ{CtED1ik_W+zkFfK9hg&dC4x)7HyyQ4*LRO1q^!!@Lpwt zxcF;-dE;?TpTH$K5W6~A8Xe|806 zLZ>C_1U`f)51Ec=ok@0FA4@oJs&9N(@Zk6~(8G1?XNGI!rNnFGE7fCYA-WZq<$dU7 z)D8d7rH?Y#NNb;U=7Rj&<&pC* zhAIned4_Q~|6-Or@sfDF@2!Hj#6v9&&&nV|bM{fpV5jFW!c>*| zVmLxGWcaxG7^z$;<|8yiFHb-9?wePqGJj@*vq~%pwfbcyygzo|-V$yG-yyFfos0<$ ztn8X_?5^~h>>lpP3pQydoKy!`5IlzXdD=>?C|Cw{aVk*dCl^xpNnB7DC*c1*vExtU zGtU@*JpZ7QsUT_}2T<_*gF;40RD>LG`yd41ddFb>$M0Wma2)Z$+Jp9a!NZTduy>E4 za#OQ2gdNywDwQgg=Sr;M=)<_KO|84z8)2owr_=tcyXyl1w}1^P`6&W-flFBBi&M-I zYYd_M?!OghX-4?U@UzPI@5azz6fZ9dy}MYpZdOoI$A;b`hzc0niy)?@11*Dq0Rp{M zel6Z|{N?Jq4_~TYvotw*3Hl7BpkJdq;JaUgk`cX~E>k2aK!5Z4YvaxNc>YMXYIyx6 zGiyge4bk~yDwq{~rXf0iEKWDU3bd5WrTG~^uf;3S5@0Z3O$7H#c{F3|TK0`QJ#Ow9 z%&>ZE-me`uhcR~%euz}!WI~sgEnuZ8GciLH@t+g!C;CFBT*2T02JVS;7y+%3^*o#% z0M@o(f5QloNaS&{cws&z+Afxdx<}RF@k$WQFCI8mUO#{*Ar@5^x#qhTC7VRq27s)i zdim|uYjSlKc?xtQl2FIBZ76?Z|BC(nl|6t_5(?ShdSTtt^`0$!Cqt^ui3fA1(_dM< zn!kVN=F3lf`n(TL5aDs4Z)kqo#o(cBM&CkDj)BVV%>zVU=b_-o-PAJfp zf%R~{XQXp=T`q8svvpRmZ^o2EU#K%%HZUU^;KCt-T)SZM%gOX6eGqfuVoGGGex<8U z{pFky;$M`DqAbOGf1E15_{1Laxr2A!i6Bg!9;3$__S56LoWxX5tAlPO>xnj0N#wHo zlHh*6o&Jx;_y36Ah~qDW^QV4L{_t%Z*Fo&Te|i3tBzqo{pQ3}2#wT;OH4Xd-5lneg zY!@s~9X%T!Pa5CRvG+~O1A_mKkz~eEz_;_!IS~IKONry{Z(brb)={pv)eJh^9VsbvNprj6k{<@3jYOY!g@ zxu3eV@7QXx+P39)8edT~-+hz4aVe9HHa>W*?abay_ZrFuEoU{OOIAMg!r!Xj*nQNd z$vdYV(x$(o*m=jLu1#lqdjcoitAEb{EZykOh zdj3(cYohHGf*rqBvOrOY%4RK$1ABeL1J?YKf|MjHy~L0}#LFY`{Rc@u({|7<#82nN z1^r{bgLeE7!1|OX-edRYOcC7pkfS2&hN|Z}hYmKna6ar;4h?;=WhZ@*;S`@2$wCVz zpPbw7A@K2hZTAMvu-;o6sjY3& z2Q-0T7nT>jgNo-k9Jzznx%MM6R`B;P+<^tgaBO|U+w|A5^@lpgXV%}qaOH*i+9o2{ z6knFKSi5H4GGLR8P`OBzL(gHhXS*1Tz~9xihJEvaAKc6Do(F%I?{wGC?Z-ahch5ul z6gD$f|1XeObg}wBw?Wn$tN({QO*8brR;*KCzE3LV{a=}q6fSsH4tpoDO*`v&PVs4D zn;Tv<*Ke(3C$F9`I=o)6O+Aor%!Jc=2t8BC%@zn{=@Rox32O#FdjKCn2U`OUUu3=< z_ibr~Na6_AZo=GKlqP+6Gv?l+IF}r;>l^*tSpv`;@(*{|A$BQ(1>Ozk;Uw^GJc9E! zhRXvZ;k63Bmg_MGgtZICl^xnmu`+(&`S9jg8ALZ_>je*-AfqzS>kHa~?Sc%=5z9&| zm7l1?!XSMO=LZ#1mI&s~U$GnQ9xfN!=hiQ6UID}982v4A0gSQVSAFCBx~|hR&#$}d z@ksn#Q~VZKHn@cSE1RmftlC=Fl*IfUlBhf<0}E=3@yn`7;*HAR1#|yBqju))UQFfeB9&u~??ch;~HC@E}ijG#}&Ywg_fb4nw!$Z2_~atNP5d z0{;nD37=B^=a!v9K0$=yN-xB37sL5=DG%xL#VVlOVZhy#wf)}hHZz-`;P>CNXSz=o zEe}o^d>(EG+R4jRb5Dv6iXr-+3s|KJ$r7Se854hJf%rRXB>oOf8HXD?e0amA54XJp z_OI-2Sx*czeEeH<|2=*y)7KWy)R$2$85OY<8Fa>8dIHOkg3bI!SYPDv7f z0+{3Fz6Xx`Q!4j^2MxD)uxrU$OW(!5@rnS4X<4G&fJzc_G&*>J;Ln4oZfj~mLZMd6 zVNZ8gjeASirGdr%3tk!Q4`_pM9%9Y$uNP%pI0u-PE&4`%(~SC1d+VVKeUrXC-i~M| zL*mu%mR>oXXYzQUJ!XeFlRtxnk3Xn)W$E}cSort@@)9-1aj2l(aru;x8ayCyBH1_W z00?+#i+?UH(mw#U`8(HwJ_sk7OyRu{2=nbQgUBHM@`5aaaYQ$qKo!&9VL>d3i}q*2 zd(j^v`vh@dfnSW9a&8eY{*5KfNFX5w6TT^ROncai{zQ5t-~Lc2cRJ}e0=C4$#HM!B}MRwP=d+!YM{kYV*QIDl1hW|_thVrJ? z3iahB3sxH%E3ONemaA2F*9r4C*dXWpH;9Cmi2jkCi=Vs>R=7|e^e#xK2+z;>Dg&Mz z-u~dr_^x6J(ekpZSb~6Q(vY%N*APB`1^N}5C*CQ#o9m-chNex%tx1!+!ufDMpkc+* zul~MsktxoUVM;S6z!^LoXLJ+zEayQ4OPZYD&r@mJ-2gpk(8Tg~W3Nx$s1D=;i_f2d zr;w$KfPn)~8D8_sfrHc$TA0x}{~Js#<-XlLID(}w!292hn6{8Og2fD&_rEEm3`!M6 z{cmw{9dLMp|IOBWcvI^q?}jFeLtKCF)%;bw^|&>7ve?35eCDE6js2Ir6^zeZgq;!C zf62uo;WHQO+bi8gByTa}GZ&pq&=?F`&`H^8@mPZ3zcl5kRh)#d|5ANo|BC(~_JEqW z@pJL`x}`-y>;dJ+BXx$TRK~;)`8s!~$_k_YJ91RByWZGttY>%zQ{#7x5A^gqg6-p+ zRlt6vucFMDgXG8W$le-Np%wc;`0?AafgDx0tT*llb_2%`r8jB(jpGB|1C8TdIDTmK z_ICM$?2h;uAijr~_=T_pp}ZhLz zKvnZ1Q)&kI+aD5bLm!#`SXF6+RXN~-zwr_rU3NDf?_a$uNbqu)YyUwPQc&F&4i9{}9g?XzLbwSV8_1JjI)+i-;22MG_HXBs)owLeck z+-Dl;>VfjO{pNYW;UMeeuu+~zCQ=#*apIFnRg#vh%!r&oR%CKE;OL=IrrmCbA_IZ_ zT=Wq5b7i;y<30xxz}j%wJkUPwa|40bAqJw`gE6!(&qIk61;-cR_h;0B z{g9ZfjEAWc<4F6kgA*HULi@X62d58kH1Rz+7ULcq!CVijY!)!?f7Xv*^8$v=;IM}T zoClb{0Z0-=GHuO%@RnO{x%*bg??A8-NjO0ZV8=h_hTaoS(BkER_e!dWr=^K90b}wz zU74ojF~WT>)N-5tLKKHAJ4CDTBXUWQ5XHO%0SgjhF_sX;yo6YcB}6eVVI~gE(02yS z%=Lqw{Kop>8~%3__}^pY8JOz4Sj>_uV%8I25vW(qkIg6PO>8Vi$o>snW15+-)Xc<5 zRH6*}n|vP90eg*m45Oq~rc`ShjAah1UuHXs43!l@#su?*7p*&6-#0S$dSI04ar;;= zqBe`m;%*XgCwODo4x5QJvT7QipoKAW9-p1#cH$GXF#eNtrUh?`%SFkWOlc~KqjzBa zp|U1RG!Xw!0xJO6V}a2QwyKwl-hobFF?q26&Wo@%K`2qiOVAL>6xLs9N?t++>>$V_ zRY-qT1q_uZdR&7}BvgLsUhH2Zd z1tc6k;7#v8gzKNS9e6Qm)7DQy;w>P7VOEvAT=&!Mwh!briP=edf?1x~ro5^;x)YM62 zA=bzoLcVfp$<(>v9$txsB@h}WW;~Gc4Bgypp*#+H^@ku}B%BB$E-r5B{0#wv-jHjR zvFlw@o~Tj_^A}f4L+^G+%fnfQKBrH>a=C_L;*Ge=@JXHw_OmH6etlyGHLF2~glyV7 z>Ir(BqXGuciHquGBJuwS+3LQIoL`Jf`2rBXR1hss28R5XV&-qmoM`x<5up&=gYXgm zh9K^l6L>K}99kYkM1R8hhb zl{2|6x2n(z50^ofk~dKslQ&aN4im#I#@%d@=R?hFNATikv~j)33D)~L)0%ONO{ql? z|F4FT&Z}}m>cR|&|BswsU~}5)y+uBlFFCpb^^W$Ajue^T^d^4xGcMyK!1)JoW<3xf zja68}EZB>OPw|oECAgCD38Zu*-HrxpjjIf~gZRrH8yjo&(MRZBHpt<+%PAKg-+tWrV^{08 z$KV{l-mXc{jx zKi!2-|4)hh^#SmX*Ep6g&Wil?0fhH28xNw7&s`(0!Zr!=eK;<&6tp zeQ^GQPV7{i`RP|5e6#>wsftV`Q;D6xUAm~v0OOMr zQ|Zmw>+|P`7SWK8Q#&0rH#tvjc_s|ogQMrf&%g;hM7QIkjP_|JX4jS)KGch z`4VCR?Qo9%zKT!yd`#s9oma(gaPzYUEubx^One8sjK%pHR7fmQSQ8w|2f6iw2@SEe zsMmIYm?CgKtlG%h?qIjp5eg93?VUz>I>fK=>HGIjKW9~Ca&sZRA_>X@$Voc9d^S4Y zceHh+ug5E3{<0m&wE%LFg^~!i4_9w9z%UFa3N|WVMqhZMIGwznRCei>pmb{XX`2;T zJg)BHE?<|wZKv9L6VJUAoU|Ql*|E!6eZ=m@b*0kOS#^ocHO^cwhWPJy1n)oXxNO=c zUW9SK+c)@n+rgHq@#fkIt-^rQ$?ZmzT4(D&z*Qy_mFVSSD z$EPLG^6Hg4s&_n;sV>b{E0cgr^Ho z(PG9-<;zo%g41>oGpQ{E`$tDA!{31085o4KYWrIn+wEQ`A9NZ9hgrQRXb*6B8T*~t zx9DNd6vV^e7kGc#{pk;+Tcqhyow6a0ka#Qz`y6D|XPXv(mnX2}LgA;)*50e@pb z>*FeQ{9iOkvs+*XK&98ndN}F7xU>S|w>unzULNyJ8c`#&Ym!#KC;%` z3q6!yE<;p?am3i`Ga2!YM4VVyI2@ziOz@>fF#Ge$*EWuY=R*Qw5vGk#cB#hrd^r0W z{kiBKf9e#Ec?r|hn-O~+B(k4Y9^EG7%g{8sZv5HdD84~_RQx@tk5Ap?kHAY5VvUc@D>(!+!L^=GNLlvm3UKbJZ43Y$cC4 zws`z-_B>9@K;&C9} zl~hVvpzrXv?yq_{sU*RYm`d! zMM79!pJ{*v_5xyk_yhd-?$FbIh61phh?&9K>=dX=lz+;WPfd@kgJeM=?z{40&Vv zJB{=|pv{nM`s z_9RcpPi&ZO(Td8A`>tSr}Zr;7Z zQ+D=aC4YaFzD?9oN1FEx#pBp#{r~av=^Y2eDFvG4_4F!HBmMk6$8FT+7b+jSzjpo) t5!3X)=T?^-pZ$K;f0o-kcN6&>^&jOvTXx)L++2Qp+}h^5env1&{|f|P`Og3V literal 0 HcmV?d00001 diff --git a/data/sprites/official/wizzrobe.4.spr b/data/sprites/official/wizzrobe.4.spr new file mode 100644 index 0000000000000000000000000000000000000000..95ec6f72a12e743ce64aa78f2b4dd17faebd2183 GIT binary patch literal 28792 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 HE|~upovy9E literal 0 HcmV?d00001 diff --git a/data/sprites/official/zelda.2.spr b/data/sprites/official/zelda.2.spr new file mode 100644 index 0000000000000000000000000000000000000000..11753f3470721a84f077be39479d547240c4ca14 GIT binary patch literal 28792 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ᶭnM6(^RU*5)rFta(l&j# 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 GkNtnpA3|mT literal 0 HcmV?d00001 diff --git a/data/sprites/official/zerosuitsamus.1.spr b/data/sprites/official/zerosuitsamus.1.spr new file mode 100644 index 0000000000000000000000000000000000000000..9773126fdd18b8e7cba77d7d6fdf36a5deede80f GIT binary patch literal 28792 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 E0E);97ytkO literal 0 HcmV?d00001 diff --git a/data/sprites/official/zora.1.spr b/data/sprites/official/zora.1.spr new file mode 100644 index 0000000000000000000000000000000000000000..8116ef4c5d834bc65a4131113c427f401779212d GIT binary patch literal 28792 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 MZ~jWE<-V5x3q3*;l>h($ literal 0 HcmV?d00001 diff --git a/data/sprites/unofficial/.gitignore b/data/sprites/unofficial/.gitignore new file mode 100644 index 00000000..d6b7ef32 --- /dev/null +++ b/data/sprites/unofficial/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore From 1528489201590ab5d840cfb5d1ed14d008d2cc41 Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Sat, 18 Nov 2017 12:22:06 -0500 Subject: [PATCH 02/24] Partial implementation of sprite updating --- Gui.py | 99 +++++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 63 insertions(+), 36 deletions(-) diff --git a/Gui.py b/Gui.py index ccece2a3..c28fff2a 100644 --- a/Gui.py +++ b/Gui.py @@ -3,9 +3,12 @@ from Utils import is_bundled, local_path, output_path, open_file from argparse import Namespace from Rom import Sprite from glob import glob +import json import random import os import shutil +from urllib.parse import urlparse +from urllib.request import urlopen from tkinter import Checkbutton, OptionMenu, Toplevel, LabelFrame, PhotoImage, Tk, LEFT, RIGHT, BOTTOM, TOP, StringVar, IntVar, Frame, Label, W, E, X, Y, Entry, Spinbox, Button, filedialog, messagebox @@ -70,9 +73,7 @@ def guiMain(args=None): spriteEntry = Entry(spriteDialogFrame, textvariable=spriteVar) def SpriteSelect(): - #sprite = filedialog.askopenfilename() - #spriteVar.set(sprite) - SpriteSelector(Toplevel(mainWindow), spriteVar.set) + SpriteSelector(mainWindow, spriteVar.set) spriteSelectButton = Button(spriteDialogFrame, text='Select Sprite', command=SpriteSelect) @@ -287,58 +288,82 @@ class SpriteSelector(object): if is_bundled(): self.deploy_icons() self.parent = parent + self.window = Toplevel(parent) self.callback = callback - parent.wm_title("TAKE ANY ONE YOU WANT") - parent['padx']=5 - parent['pady']=5 + + self.window.wm_title("TAKE ANY ONE YOU WANT") + self.window['padx'] = 5 + self.window['pady'] = 5 self.icon_section('Official Sprites', self.official_sprite_dir+'/*', 'Official Sprites not found. Click "Update Official Sprites" to download them.') self.icon_section('Unofficial Sprites', self.unofficial_sprite_dir+'/*', 'Put sprites in the Sprites/Unofficial folder to have them appear here.') - frame = Frame(parent) + frame = Frame(self.window) frame.pack(side=BOTTOM, fill=X, pady=5) button = Button(frame, text="Browse for file...", command=self.browse_for_sprite) - button.pack(side=RIGHT, padx=(5,0)) + button.pack(side=RIGHT, padx=(5, 0)) - # todo: Actually implement this. Requires a yet-to-be coded API from VT - button = Button(frame, text="Update Official Sprites") - button.pack(side=RIGHT, padx=(5,0)) + button = Button(frame, text="Update Official Sprites", command=self.update_official_sprites) + button.pack(side=RIGHT, padx=(5, 0)) button = Button(frame, text="Use Default Sprite", command=self.use_default_sprite) button.pack(side=LEFT) - set_icon(parent) + set_icon(self.window) def icon_section(self, frame_label, path, no_results_label): - frame = LabelFrame(self.parent, text=frame_label, padx=5, pady=5) + frame = LabelFrame(self.window, text=frame_label, padx=5, pady=5) frame.pack(side=TOP, fill=X) - i=0 + i = 0 for file in glob(output_path(path)): image = get_image_for_sprite(file) if image is None: continue - button = Button(frame, image=image, command=lambda file=file:self.select_sprite(file)) - button.image=image - button.grid(row=i//16, column=i%16) - i+=1 + button = Button(frame, image=image, command=lambda file=file: self.select_sprite(file)) + button.image = image + button.grid(row=i // 16, column=i % 16) + i += 1 - if i==0: + if i == 0: label = Label(frame, text="Put sprites in the Sprites/Unoffical folder to have them appear here.") label.pack() + + def update_official_sprites(self): + # need to wrap in try catch. We don't want errors getting the json or downloading the files to break us. + sprites_arr = json.loads(temp_sprites_json) + current_sprites = [os.path.basename(file) for file in glob('sprites/official/*')] + official_sprites = [(sprite['file'], os.path.basename(urlparse(sprite['file']).path)) for sprite in sprites_arr] + needed_sprites = [(sprite_url, filename) for (sprite_url, filename) in official_sprites if filename not in current_sprites] + + for (sprite_url, filename) in needed_sprites: + target = os.path.join('sprites/official',filename) + with urlopen(sprite_url) as response, open(target, 'wb') as out: + shutil.copyfileobj(response, out) + + official_filenames = [filename for (_, filename) in official_sprites] + obsolete_sprites = [sprite for sprite in current_sprites if sprite not in official_filenames] + for sprite in obsolete_sprites: + os.remove(os.path.join('sprites/official', sprite)) + + self.window.destroy() + SpriteSelector(self.parent, self.callback) + + def browse_for_sprite(self): sprite = filedialog.askopenfilename() self.callback(sprite) - self.parent.destroy() + self.window.destroy() def use_default_sprite(self): self.callback("") - self.parent.destroy() + self.window.destroy() def select_sprite(self, spritename): self.callback(spritename) - self.parent.destroy() + self.window.destroy() + def deploy_icons(self): if not os.path.exists(self.unofficial_sprite_dir): @@ -378,30 +403,32 @@ def get_image_for_sprite(filename): def drawsprite(spr, pal_as_colors, offset): for y in range(len(spr)): for x in range(len(spr[y])): - pal_index=spr[y][x] + pal_index = spr[y][x] if pal_index: - color=pal_as_colors[pal_index-1] - image.put(color_to_hex(color),to=(x+offset[0],y+offset[1])) + color = pal_as_colors[pal_index - 1] + image.put(color_to_hex(color), to=(x + offset[0], y + offset[1])) - shadow_palette = [(40,40,40)] + shadow_palette = [(40, 40, 40)] shadow = [ - [0,0,0,1,1,1,1,1,1,0,0,0], - [0,1,1,1,1,1,1,1,1,1,1,0], - [1,1,1,1,1,1,1,1,1,1,1,1], - [1,1,1,1,1,1,1,1,1,1,1,1], - [0,1,1,1,1,1,1,1,1,1,1,0], - [0,0,0,1,1,1,1,1,1,0,0,0], - ] + [0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0], + [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0], + [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], + [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], + [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0], + [0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0], + ] - drawsprite(shadow, shadow_palette, (2,17)) + drawsprite(shadow, shadow_palette, (2, 17)) palettes = sprite.decode_palette() body = sprite.decode16(0x4C0) - drawsprite(body, palettes[0], (0,8)) + drawsprite(body, palettes[0], (0, 8)) head = sprite.decode16(0x40) - drawsprite(head, palettes[0], (0,0)) + drawsprite(head, palettes[0], (0, 0)) return image.zoom(2) +temp_sprites_json = '''[{"name":"Link","file":"http:\/\/spr.beegunslingers.com\/link.1.spr"},{"name":"Four Swords Link","file":"http:\/\/spr.beegunslingers.com\/4slink-armors.1.spr"},{"name":"Boo","file":"http:\/\/spr.beegunslingers.com\/boo.2.spr"},{"name":"Boy","file":"http:\/\/spr.beegunslingers.com\/boy.2.spr"},{"name":"Cactuar","file":"http:\/\/spr.beegunslingers.com\/cactuar.1.spr"},{"name":"Cat","file":"http:\/\/spr.beegunslingers.com\/cat.1.spr"},{"name":"Cat Boo","file":"http:\/\/spr.beegunslingers.com\/catboo.1.spr"},{"name":"Cirno","file":"http:\/\/spr.beegunslingers.com\/cirno.1.spr"},{"name":"Dark Boy","file":"http:\/\/spr.beegunslingers.com\/darkboy.2.spr"},{"name":"Dark Girl","file":"http:\/\/spr.beegunslingers.com\/darkgirl.1.spr"},{"name":"Dark Link","file":"http:\/\/spr.beegunslingers.com\/darklink.1.spr"},{"name":"Dark Maple Queen","file":"http:\/\/spr.beegunslingers.com\/shadowsaku.1.spr"},{"name":"Dark Swatchy","file":"http:\/\/spr.beegunslingers.com\/darkswatchy.1.spr"},{"name":"Dark Zelda","file":"http:\/\/spr.beegunslingers.com\/darkzelda.1.spr"},{"name":"Dark Zora","file":"http:\/\/spr.beegunslingers.com\/darkzora.2.spr"},{"name":"Decidueye","file":"http:\/\/spr.beegunslingers.com\/decidueye.1.spr"},{"name":"Demon Link","file":"http:\/\/spr.beegunslingers.com\/demonlink.1.spr"},{"name":"Frog","file":"http:\/\/spr.beegunslingers.com\/froglink.2.spr"},{"name":"Ganondorf","file":"http:\/\/spr.beegunslingers.com\/ganondorf.1.spr"},{"name":"Garfield","file":"http:\/\/spr.beegunslingers.com\/garfield.1.spr"},{"name":"Girl","file":"http:\/\/spr.beegunslingers.com\/girl.2.spr"},{"name":"Headless Link","file":"http:\/\/spr.beegunslingers.com\/headlesslink.1.spr"},{"name":"Invisible Man","file":"http:\/\/spr.beegunslingers.com\/invisibleman.1.spr"},{"name":"Inkling","file":"http:\/\/spr.beegunslingers.com\/inkling.1.spr"},{"name":"Kirby","file":"http:\/\/spr.beegunslingers.com\/kirby-meta.2.spr"},{"name":"Kore8","file":"http:\/\/spr.beegunslingers.com\/kore8.1.spr"},{"name":"Pony","file":"http:\/\/spr.beegunslingers.com\/littlepony.1.spr"},{"name":"Luigi","file":"http:\/\/spr.beegunslingers.com\/luigi.1.spr"},{"name":"Maiden","file":"http:\/\/spr.beegunslingers.com\/maiden.2.spr"},{"name":"Maple Queen","file":"http:\/\/spr.beegunslingers.com\/maplequeen.1.spr"},{"name":"Mario","file":"http:\/\/spr.beegunslingers.com\/mario-classic.1.spr"},{"name":"Marisa","file":"http:\/\/spr.beegunslingers.com\/marisa.1.spr"},{"name":"Mike Jones","file":"http:\/\/spr.beegunslingers.com\/mikejones.2.spr"},{"name":"Minish Cap Link","file":"http:\/\/spr.beegunslingers.com\/minishcaplink.3.spr"},{"name":"Modern Link","file":"http:\/\/spr.beegunslingers.com\/modernlink.1.spr"},{"name":"Mog","file":"http:\/\/spr.beegunslingers.com\/mog.1.spr"},{"name":"Mouse","file":"http:\/\/spr.beegunslingers.com\/mouse.1.spr"},{"name":"Nature Link","file":"http:\/\/spr.beegunslingers.com\/naturelink.1.spr"},{"name":"Negative Link","file":"http:\/\/spr.beegunslingers.com\/negativelink.1.spr"},{"name":"Neon Link","file":"http:\/\/spr.beegunslingers.com\/neonlink.1.spr"},{"name":"Old Man","file":"http:\/\/spr.beegunslingers.com\/oldman.1.spr"},{"name":"Pink Ribbon Link","file":"http:\/\/spr.beegunslingers.com\/pinkribbonlink.1.spr"},{"name":"Popoi","file":"http:\/\/spr.beegunslingers.com\/popoi.1.spr"},{"name":"Pug","file":"http:\/\/spr.beegunslingers.com\/pug.2.spr"},{"name":"Purple Chest","file":"http:\/\/spr.beegunslingers.com\/purplechest-bottle.2.spr"},{"name":"Roy Koopa","file":"http:\/\/spr.beegunslingers.com\/roykoopa.1.spr"},{"name":"Rumia","file":"http:\/\/spr.beegunslingers.com\/rumia.1.spr"},{"name":"Samus","file":"http:\/\/spr.beegunslingers.com\/samus.4.spr"},{"name":"Soda Can","file":"http:\/\/spr.beegunslingers.com\/sodacan.1.spr"},{"name":"Static Link","file":"http:\/\/spr.beegunslingers.com\/staticlink.1.spr"},{"name":"Santa Link","file":"http:\/\/spr.beegunslingers.com\/santalink.1.spr"},{"name":"Super Bunny","file":"http:\/\/spr.beegunslingers.com\/superbunny.1.spr"},{"name":"Swatchy","file":"http:\/\/spr.beegunslingers.com\/swatchy.1.spr"},{"name":"Tingle","file":"http:\/\/spr.beegunslingers.com\/tingle.1.spr"},{"name":"Toad","file":"http:\/\/spr.beegunslingers.com\/toad.1.spr"},{"name":"Valeera","file":"http:\/\/spr.beegunslingers.com\/valeera.1.spr"},{"name":"Vitreous","file":"http:\/\/spr.beegunslingers.com\/vitreous.1.spr"},{"name":"Vivi","file":"http:\/\/spr.beegunslingers.com\/vivi.1.spr"},{"name":"Will","file":"http:\/\/spr.beegunslingers.com\/will.1.spr"},{"name":"Wizzrobe","file":"http:\/\/spr.beegunslingers.com\/wizzrobe.4.spr"},{"name":"Yunica","file":"http:\/\/spr.beegunslingers.com\/yunica.1.spr"},{"name":"Zelda","file":"http:\/\/spr.beegunslingers.com\/zelda.2.spr"},{"name":"Zero Suit Samus","file":"http:\/\/spr.beegunslingers.com\/zerosuitsamus.1.spr"},{"name":"Zora","file":"http:\/\/spr.beegunslingers.com\/zora.1.spr"}]''' + if __name__ == '__main__': guiMain() From 1d223dc0b83a425d5bf7a2f88cf06c779ecf7831 Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Thu, 7 Dec 2017 19:43:22 -0500 Subject: [PATCH 03/24] Add preliminary support for ZSPR Format --- Rom.py | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 54 insertions(+), 3 deletions(-) diff --git a/Rom.py b/Rom.py index 4a93db70..08aea9c4 100644 --- a/Rom.py +++ b/Rom.py @@ -7,6 +7,7 @@ import random import json import hashlib import logging +import struct JAP10HASH = '03a63945398191337e896e5771f77173' RANDOMIZERBASEHASH = '1deebb05eccefd2ab68297c6e9c0d25f' @@ -97,8 +98,9 @@ class Sprite(object): default_glove_palette = [246, 82, 118, 3] def __init__(self, filename): - filedata = bytearray(open(filename, 'rb').read()) - self.valid=True + with open(filename, 'rb') as file: + filedata = bytearray(file.read()) + self.valid = True if len(filedata) == 0x7000: # sprite file with graphics and without palette data self.sprite = filedata[:0x7000] @@ -109,13 +111,40 @@ class Sprite(object): self.sprite = filedata[:0x7000] self.palette = filedata[0x7000:] self.glove_palette = filedata[0x7036:0x7038] + filedata[0x7054:0x7056] + elif len(filedata) == 0x707C: + # sprite file with graphics and palette data including gloves + self.sprite = filedata[:0x7000] + self.palette = filedata[0x7000:0x7078] + self.glove_palette = filedata[0x7078:] elif len(filedata) in [0x100000, 0x200000]: # full rom with patched sprite, extract it self.sprite = filedata[0x80000:0x87000] self.palette = filedata[0xDD308:0xDD380] self.glove_palette = filedata[0xDEDF5:0xDEDF9] + elif filedata.startswith(b'ZSPR'): + result = self.parse_zspr(filedata,1) + print(result) + if result is None: + self.valid = False + return + (sprite, palette) = result + if len(sprite) != 0x7000: + self.valid = False + return + self.sprite = sprite + if len(palette) == 0: + self.palette = None + self.glove_palette = None + elif len(palette) == 0x78: + self.palette = palette + self.glove_palette = None + elif len(palette) == 0x7C: + self.palette = palette[:0x78] + self.glove_palette = palette[0x78:] + else: + self.valid = False else: - self.valid=False + self.valid = False def decode8(self, pos): arr=[[0 for _ in range(8)] for _ in range(8)] @@ -144,6 +173,28 @@ class Sprite(object): arr[y+8][x+8] = bottom_right[y][x] return arr + def parse_zspr(self, filedata, expected_kind): + headerstr = "<4xBHHIHIHH6x" + headersize = struct.calcsize(headerstr) + if len(filedata) < headersize: + return None + (version, csum, icsum, sprite_offset, sprite_size, palette_offset, palette_size, kind) = struct.unpack_from(headerstr,filedata) + if version not in [1]: + #ZSPR Version not supported + return None + if kind != expected_kind: + return None + + real_csum = sum(filedata) % 0x10000 + if real_csum != csum or real_csum ^ 0xFFFF != icsum: + #invalid checksum + pass + sprite = filedata[sprite_offset:sprite_offset + sprite_size] + palette = filedata[palette_offset:palette_offset + palette_size] + #FIXME: Check lengths of those byte arrays against the _size values + + return (sprite, palette) + def decode_palette(self): "Returns the palettes as an array of arrays of 15 colors" def array_chunk(arr,size): From 5dbc21ce3a7cc331dc46b0b5aa49ff95d57305f3 Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Thu, 7 Dec 2017 19:44:08 -0500 Subject: [PATCH 04/24] Improve performance by creating in-memory gifs --- Gui.py | 118 +++++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 93 insertions(+), 25 deletions(-) diff --git a/Gui.py b/Gui.py index c28fff2a..14f8adba 100644 --- a/Gui.py +++ b/Gui.py @@ -393,38 +393,106 @@ class SpriteSelector(object): def local_unofficial_sprite_dir(site): return local_path("data/sprites/unofficial") + def get_image_for_sprite(filename): sprite = Sprite(filename) - image = PhotoImage(height=24, width=16, palette="256/256/256") + if not sprite.valid: + return None + height = 24 + width = 16 - def color_to_hex(color): - return "#{0:02X}{1:02X}{2:02X}".format(*color) + def draw_sprite_into_gif(add_palette_color, set_pixel_color_index): - def drawsprite(spr, pal_as_colors, offset): - for y in range(len(spr)): - for x in range(len(spr[y])): - pal_index = spr[y][x] - if pal_index: - color = pal_as_colors[pal_index - 1] - image.put(color_to_hex(color), to=(x + offset[0], y + offset[1])) + def drawsprite(spr, pal_as_colors, offset): + for y in range(len(spr)): + for x in range(len(spr[y])): + pal_index = spr[y][x] + if pal_index: + color = pal_as_colors[pal_index - 1] + set_pixel_color_index(x + offset[0], y + offset[1], color) - shadow_palette = [(40, 40, 40)] - shadow = [ - [0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0], - [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0], - [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], - [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], - [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0], - [0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0], - ] + add_palette_color(16, (40, 40, 40)) + shadow = [ + [0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0], + [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0], + [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], + [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], + [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0], + [0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0], + ] - drawsprite(shadow, shadow_palette, (2, 17)) + drawsprite(shadow, [16], (2, 17)) - palettes = sprite.decode_palette() - body = sprite.decode16(0x4C0) - drawsprite(body, palettes[0], (0, 8)) - head = sprite.decode16(0x40) - drawsprite(head, palettes[0], (0, 0)) + palettes = sprite.decode_palette() + for i in range(15): + add_palette_color(i + 1, palettes[0][i]) + + body = sprite.decode16(0x4C0) + drawsprite(body, list(range(1, 16)), (0, 8)) + head = sprite.decode16(0x40) + drawsprite(head, list(range(1, 16)), (0, 0)) + + def make_gif(callback): + gif_header = b'GIF89a' + + gif_lsd = bytearray(7) + gif_lsd[0] = width + gif_lsd[2] = height + gif_lsd[4] = 0xF4 # 32 color palette follows. transparant + 15 for sprite + 1 for shadow=17 which rounds up to 32 as nearest power of 2 + gif_lsd[5] = 0 # background color is zero + gif_lsd[6] = 0 # aspect raio not specified + gif_gct = bytearray(3 * 32) + + gif_gce = bytearray(8) + gif_gce[0] = 0x21 # start of extention blocked + gif_gce[1] = 0xF9 # identifies this as the Graphics Control extension + gif_gce[2] = 4 # we are suppling only the 4 four bytes + gif_gce[3] = 0x01 # this gif includes transparency + gif_gce[4] = gif_gce[5] = 0 # animation frrame delay (unused) + gif_gce[6] = 0 # transparent color is index 0 + gif_gce[7] = 0 # end of gif_gce + gif_id = bytearray(10) + gif_id[0] = 0x2c + # byte 1,2 are image left. 3,4 are image top both are left as zerosuitsamus + gif_id[5] = width + gif_id[7] = height + gif_id[9] = 0 # no local color table + + gif_img_minimum_code_size = bytes([7]) # we choose 7 bits, so that each pixel is represented by a byte, for conviennce. + + clear = 0x80 + stop = 0x81 + + unchunked_image_data = bytearray(height * (width + 1) + 1) + # we technically need a Clear code once every 125 bytes, but we do it at the start of every row for simplicity + for row in range(height): + unchunked_image_data[row * (width + 1)] = clear + unchunked_image_data[-1] = stop + + def add_palette_color(index, color): + gif_gct[3 * index] = color[0] + gif_gct[3 * index + 1] = color[1] + gif_gct[3 * index + 2] = color[2] + + def set_pixel_color_index(x, y, color): + unchunked_image_data[y * (width + 1) + x + 1] = color + + callback(add_palette_color, set_pixel_color_index) + + def chunk_image(img): + for i in range(0, len(img), 255): + chunk = img[i:i + 255] + yield bytes([len(chunk)]) + yield chunk + + gif_img = b''.join([gif_img_minimum_code_size] + list(chunk_image(unchunked_image_data)) + [b'\x00']) + + gif = b''.join([gif_header, gif_lsd, gif_gct, gif_gce, gif_id, gif_img, b'\x3b']) + + return gif + + gif_data = make_gif(draw_sprite_into_gif) + image = PhotoImage(data=gif_data) return image.zoom(2) From 911737b84f20f94b5ce9ee5234ca77dcdb9a0187 Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Fri, 8 Dec 2017 17:33:59 -0500 Subject: [PATCH 05/24] Add Tooltips for sprites --- Gui.py | 17 ++++---- GuiUtils.py | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++ Rom.py | 37 ++++++++++++++--- 3 files changed, 157 insertions(+), 13 deletions(-) create mode 100644 GuiUtils.py diff --git a/Gui.py b/Gui.py index 14f8adba..13cf98af 100644 --- a/Gui.py +++ b/Gui.py @@ -1,15 +1,17 @@ -from Main import main, __version__ as ESVersion -from Utils import is_bundled, local_path, output_path, open_file from argparse import Namespace -from Rom import Sprite from glob import glob import json import random import os import shutil +from tkinter import Checkbutton, OptionMenu, Toplevel, LabelFrame, PhotoImage, Tk, LEFT, RIGHT, BOTTOM, TOP, StringVar, IntVar, Frame, Label, W, E, X, Y, Entry, Spinbox, Button, filedialog, messagebox from urllib.parse import urlparse from urllib.request import urlopen -from tkinter import Checkbutton, OptionMenu, Toplevel, LabelFrame, PhotoImage, Tk, LEFT, RIGHT, BOTTOM, TOP, StringVar, IntVar, Frame, Label, W, E, X, Y, Entry, Spinbox, Button, filedialog, messagebox + +from GuiUtils import ToolTips +from Main import main, __version__ as ESVersion +from Rom import Sprite +from Utils import is_bundled, local_path, output_path, open_file def guiMain(args=None): @@ -318,9 +320,11 @@ class SpriteSelector(object): i = 0 for file in glob(output_path(path)): - image = get_image_for_sprite(file) + sprite = Sprite(file) + image = get_image_for_sprite(sprite) if image is None: continue button = Button(frame, image=image, command=lambda file=file: self.select_sprite(file)) + ToolTips.register(button, sprite.name + ("\nBy: %s" % sprite.author_name if sprite.author_name is not None else "")) button.image = image button.grid(row=i // 16, column=i % 16) i += 1 @@ -394,8 +398,7 @@ class SpriteSelector(object): return local_path("data/sprites/unofficial") -def get_image_for_sprite(filename): - sprite = Sprite(filename) +def get_image_for_sprite(sprite): if not sprite.valid: return None height = 24 diff --git a/GuiUtils.py b/GuiUtils.py new file mode 100644 index 00000000..722b6ff7 --- /dev/null +++ b/GuiUtils.py @@ -0,0 +1,116 @@ +import tkinter as tk + + +class ToolTips(object): + # This class derived from wckToolTips which is available under the following license: + + # Copyright (c) 1998-2007 by Secret Labs AB + # Copyright (c) 1998-2007 by Fredrik Lundh + # + # By obtaining, using, and/or copying this software and/or its + # associated documentation, you agree that you have read, understood, + # and will comply with the following terms and conditions: + # + # Permission to use, copy, modify, and distribute this software and its + # associated documentation for any purpose and without fee is hereby + # granted, provided that the above copyright notice appears in all + # copies, and that both that copyright notice and this permission notice + # appear in supporting documentation, and that the name of Secret Labs + # AB or the author not be used in advertising or publicity pertaining to + # distribution of the software without specific, written prior + # permission. + # + # SECRET LABS AB AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO + # THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + # FITNESS. IN NO EVENT SHALL SECRET LABS AB OR THE AUTHOR BE LIABLE FOR + # ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT + # OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + label = None + window = None + active = 0 + tag = None + + @classmethod + def getcontroller(cls, widget): + if cls.tag is None: + + cls.tag = "ui_tooltip_%d" % id(cls) + widget.bind_class(cls.tag, "", cls.enter) + widget.bind_class(cls.tag, "", cls.leave) + widget.bind_class(cls.tag, "", cls.motion) + + # pick suitable colors for tooltips + try: + cls.bg = "systeminfobackground" + cls.fg = "systeminfotext" + widget.winfo_rgb(cls.fg) # make sure system colors exist + widget.winfo_rgb(cls.bg) + except: + cls.bg = "#ffffe0" + cls.fg = "black" + + return cls.tag + + @classmethod + def register(cls, widget, text): + widget.ui_tooltip_text = text + tags = list(widget.bindtags()) + tags.append(cls.getcontroller(widget)) + widget.bindtags(tuple(tags)) + + @classmethod + def unregister(cls, widget): + tags = list(widget.bindtags()) + tags.remove(cls.getcontroller(widget)) + widget.bindtags(tuple(tags)) + + # event handlers + @classmethod + def enter(cls, event): + widget = event.widget + if not cls.label: + # create and hide balloon help window + cls.popup = tk.Toplevel(bg=cls.fg, bd=1) + cls.popup.overrideredirect(1) + cls.popup.withdraw() + cls.label = tk.Label( + cls.popup, fg=cls.fg, bg=cls.bg, bd=0, padx=2, justify=tk.LEFT + ) + cls.label.pack() + cls.active = 0 + cls.xy = event.x_root + 16, event.y_root + 10 + cls.event_xy = event.x, event.y + cls.after_id = widget.after(200, cls.display, widget) + + @classmethod + def motion(cls, event): + widget = event.widget + cls.xy = event.x_root + 16, event.y_root + 10 + cls.event_xy = event.x, event.y + + @classmethod + def display(cls, widget): + if not cls.active: + # display balloon help window + text = widget.ui_tooltip_text + if callable(text): + text = text(widget, cls.event_xy) + cls.label.config(text=text) + cls.popup.deiconify() + cls.popup.lift() + cls.popup.geometry("+%d+%d" % cls.xy) + cls.active = 1 + cls.after_id = None + + @classmethod + def leave(cls, event): + widget = event.widget + if cls.active: + cls.popup.withdraw() + cls.active = 0 + if cls.after_id: + widget.after_cancel(cls.after_id) + cls.after_id = None diff --git a/Rom.py b/Rom.py index 08aea9c4..14f6c60a 100644 --- a/Rom.py +++ b/Rom.py @@ -4,9 +4,11 @@ from Text import Uncle_texts, Ganon1_texts, PyramidFairy_texts, TavernMan_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 from Utils import local_path import random +import io import json import hashlib import logging +import os import struct JAP10HASH = '03a63945398191337e896e5771f77173' @@ -100,6 +102,8 @@ class Sprite(object): def __init__(self, filename): with open(filename, 'rb') as file: filedata = bytearray(file.read()) + self.name = os.path.basename(filename) + self.author_name = None self.valid = True if len(filedata) == 0x7000: # sprite file with graphics and without palette data @@ -123,11 +127,10 @@ class Sprite(object): self.glove_palette = filedata[0xDEDF5:0xDEDF9] elif filedata.startswith(b'ZSPR'): result = self.parse_zspr(filedata,1) - print(result) if result is None: self.valid = False return - (sprite, palette) = result + (sprite, palette, self.name, self.author_name) = result if len(sprite) != 0x7000: self.valid = False return @@ -174,26 +177,48 @@ class Sprite(object): return arr def parse_zspr(self, filedata, expected_kind): + logger = logging.getLogger('') headerstr = "<4xBHHIHIHH6x" headersize = struct.calcsize(headerstr) if len(filedata) < headersize: return None (version, csum, icsum, sprite_offset, sprite_size, palette_offset, palette_size, kind) = struct.unpack_from(headerstr,filedata) if version not in [1]: - #ZSPR Version not supported + logger.error('Error parsing ZSPR file: Version %g not supported', version) return None if kind != expected_kind: return None + stream = io.BytesIO(filedata) + stream.seek(headersize) + + def read_utf16le(stream): + "Decodes a null-terminated UTF-16_LE string of unknown size from a stream" + raw = bytearray() + while True: + char = stream.read(2) + if char in [b'', b'\x00\x00']: + break + raw += char + return raw.decode('utf-16_le') + + sprite_name = read_utf16le(stream) + author_name = read_utf16le(stream) + + # Ignoring the Author Rom name for the time being. + real_csum = sum(filedata) % 0x10000 if real_csum != csum or real_csum ^ 0xFFFF != icsum: - #invalid checksum + logger.warning('ZSPR file has incorrect checksum. It may be corrupted.') pass sprite = filedata[sprite_offset:sprite_offset + sprite_size] palette = filedata[palette_offset:palette_offset + palette_size] - #FIXME: Check lengths of those byte arrays against the _size values - return (sprite, palette) + if len(sprite) != sprite_size or len(palette) != palette_size: + logger.error('Error parsing ZSPR file: Unexpected end of file') + return None + + return (sprite, palette, sprite_name, author_name) def decode_palette(self): "Returns the palettes as an array of arrays of 15 colors" From 073ab728c10e2bcf8bab20f5151440f7f5e3073f Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Fri, 8 Dec 2017 19:28:22 -0500 Subject: [PATCH 06/24] Rework how the main form handles sprites makes the presence of a Sprite Picker screen more obvious --- Gui.py | 37 +++++++++++++++++++++++++++---------- Main.py | 5 ++++- 2 files changed, 31 insertions(+), 11 deletions(-) diff --git a/Gui.py b/Gui.py index 13cf98af..bf33d585 100644 --- a/Gui.py +++ b/Gui.py @@ -70,14 +70,27 @@ def guiMain(args=None): romSelectButton.pack(side=LEFT) spriteDialogFrame = Frame(fileDialogFrame) - baseSpriteLabel = Label(spriteDialogFrame, text='Link Sprite') - spriteVar = StringVar() - spriteEntry = Entry(spriteDialogFrame, textvariable=spriteVar) + baseSpriteLabel = Label(spriteDialogFrame, text='Link Sprite:') + + spriteNameVar = StringVar() + sprite=None + def set_sprite(sprite_param): + nonlocal sprite + if sprite_param is None or not sprite_param.valid: + sprite = None + spriteNameVar.set('(default Link)') + else: + sprite = sprite_param + spriteNameVar.set(sprite.name) + + set_sprite(None) + spriteNameVar.set('(default Link)') + spriteEntry = Label(spriteDialogFrame, textvariable=spriteNameVar) def SpriteSelect(): - SpriteSelector(mainWindow, spriteVar.set) + SpriteSelector(mainWindow, set_sprite) - spriteSelectButton = Button(spriteDialogFrame, text='Select Sprite', command=SpriteSelect) + spriteSelectButton = Button(spriteDialogFrame, text='Open Sprite Picker', command=SpriteSelect) baseSpriteLabel.pack(side=LEFT) spriteEntry.pack(side=LEFT) @@ -207,7 +220,7 @@ def guiMain(args=None): guiargs.shuffleganon = bool(shuffleGanonVar.get()) guiargs.rom = romVar.get() guiargs.jsonout = None - guiargs.sprite = spriteVar.get() if spriteVar.get() else None + guiargs.sprite = sprite try: if guiargs.count is not None: seed = guiargs.seed @@ -275,7 +288,7 @@ def guiMain(args=None): romVar.set(args.rom) shuffleGanonVar.set(args.shuffleganon) if args.sprite is not None: - spriteVar.set(args.sprite) + set_sprite(Sprite(args.sprite)) mainWindow.mainloop() @@ -323,7 +336,7 @@ class SpriteSelector(object): sprite = Sprite(file) image = get_image_for_sprite(sprite) if image is None: continue - button = Button(frame, image=image, command=lambda file=file: self.select_sprite(file)) + button = Button(frame, image=image, command=lambda sprite=sprite: self.select_sprite(sprite)) ToolTips.register(button, sprite.name + ("\nBy: %s" % sprite.author_name if sprite.author_name is not None else "")) button.image = image button.grid(row=i // 16, column=i % 16) @@ -357,11 +370,15 @@ class SpriteSelector(object): def browse_for_sprite(self): sprite = filedialog.askopenfilename() - self.callback(sprite) + try: + self.callback(Sprite(sprite)) + except: + self.callback(None) self.window.destroy() + def use_default_sprite(self): - self.callback("") + self.callback(None) self.window.destroy() def select_sprite(self, spritename): diff --git a/Main.py b/Main.py index 1b7ac5c4..05a62361 100644 --- a/Main.py +++ b/Main.py @@ -91,7 +91,10 @@ def main(args, seed=None): logger.info('Patching ROM.') if args.sprite is not None: - sprite = Sprite(args.sprite) + if isinstance(args.sprite,Sprite): + sprite = args.sprite + else: + sprite = Sprite(args.sprite) else: sprite = None From 0372896bc644181cc0bc786d61bcc95f476bf692 Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Sat, 9 Dec 2017 12:25:53 -0500 Subject: [PATCH 07/24] fixup for initial updater code --- Gui.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Gui.py b/Gui.py index bf33d585..80262b28 100644 --- a/Gui.py +++ b/Gui.py @@ -350,19 +350,19 @@ class SpriteSelector(object): def update_official_sprites(self): # need to wrap in try catch. We don't want errors getting the json or downloading the files to break us. sprites_arr = json.loads(temp_sprites_json) - current_sprites = [os.path.basename(file) for file in glob('sprites/official/*')] + current_sprites = [os.path.basename(file) for file in glob('data/sprites/official/*')] official_sprites = [(sprite['file'], os.path.basename(urlparse(sprite['file']).path)) for sprite in sprites_arr] needed_sprites = [(sprite_url, filename) for (sprite_url, filename) in official_sprites if filename not in current_sprites] for (sprite_url, filename) in needed_sprites: - target = os.path.join('sprites/official',filename) + target = os.path.join('data/sprites/official',filename) with urlopen(sprite_url) as response, open(target, 'wb') as out: shutil.copyfileobj(response, out) official_filenames = [filename for (_, filename) in official_sprites] obsolete_sprites = [sprite for sprite in current_sprites if sprite not in official_filenames] for sprite in obsolete_sprites: - os.remove(os.path.join('sprites/official', sprite)) + os.remove(os.path.join('data/sprites/official', sprite)) self.window.destroy() SpriteSelector(self.parent, self.callback) From f44d78d82fc2b7186d044877f03ca065bc3ff9a9 Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Sun, 10 Dec 2017 11:10:04 -0500 Subject: [PATCH 08/24] Made sprite updating a background task Also make it use the correct folders for bundled builds --- Gui.py | 90 +++++++++++++++++++++++++++++++++++++++-------------- GuiUtils.py | 75 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 142 insertions(+), 23 deletions(-) diff --git a/Gui.py b/Gui.py index 80262b28..9780e561 100644 --- a/Gui.py +++ b/Gui.py @@ -8,7 +8,7 @@ from tkinter import Checkbutton, OptionMenu, Toplevel, LabelFrame, PhotoImage, T from urllib.parse import urlparse from urllib.request import urlopen -from GuiUtils import ToolTips +from GuiUtils import ToolTips, set_icon, BackgroundTaskProgress from Main import main, __version__ as ESVersion from Rom import Sprite from Utils import is_bundled, local_path, output_path, open_file @@ -292,12 +292,6 @@ def guiMain(args=None): mainWindow.mainloop() -def set_icon(window): - er16 = PhotoImage(file=local_path('data/ER16.gif')) - er32 = PhotoImage(file=local_path('data/ER32.gif')) - er48 = PhotoImage(file=local_path('data/ER32.gif')) - window.tk.call('wm', 'iconphoto', window._w, er16, er32, er48) - class SpriteSelector(object): def __init__(self, parent, callback): if is_bundled(): @@ -326,6 +320,7 @@ class SpriteSelector(object): button.pack(side=LEFT) set_icon(self.window) + self.window.focus() def icon_section(self, frame_label, path, no_results_label): frame = LabelFrame(self.window, text=frame_label, padx=5, pady=5) @@ -349,23 +344,72 @@ class SpriteSelector(object): def update_official_sprites(self): # need to wrap in try catch. We don't want errors getting the json or downloading the files to break us. - sprites_arr = json.loads(temp_sprites_json) - current_sprites = [os.path.basename(file) for file in glob('data/sprites/official/*')] - official_sprites = [(sprite['file'], os.path.basename(urlparse(sprite['file']).path)) for sprite in sprites_arr] - needed_sprites = [(sprite_url, filename) for (sprite_url, filename) in official_sprites if filename not in current_sprites] - - for (sprite_url, filename) in needed_sprites: - target = os.path.join('data/sprites/official',filename) - with urlopen(sprite_url) as response, open(target, 'wb') as out: - shutil.copyfileobj(response, out) - - official_filenames = [filename for (_, filename) in official_sprites] - obsolete_sprites = [sprite for sprite in current_sprites if sprite not in official_filenames] - for sprite in obsolete_sprites: - os.remove(os.path.join('data/sprites/official', sprite)) - self.window.destroy() - SpriteSelector(self.parent, self.callback) + self.parent.update() + def work(task): + resultmessage="" + successful = True + + def finished(): + task.close_window() + if successful: + messagebox.showinfo("Sprite Updater", resultmessage) + else: + messagebox.showerror("Sprite Updater", resultmessage) + SpriteSelector(self.parent, self.callback) + + try: + task.update_status("Downloading official sprites list") + sprites_arr = json.loads(temp_sprites_json) + except Exception as e: + resultmessage = "Error getting list of official sprites. Sprites not updated.\n\n%s: %s" % (type(e).__name__, e) + successful = False + task.queue_event(finished) + return + + try: + task.update_status("Determining needed sprites") + current_sprites = [os.path.basename(file) for file in glob(self.official_sprite_dir+'/*')] + official_sprites = [(sprite['file'], os.path.basename(urlparse(sprite['file']).path)) for sprite in sprites_arr] + needed_sprites = [(sprite_url, filename) for (sprite_url, filename) in official_sprites if filename not in current_sprites] + bundled_sprites=[] + + official_filenames = [filename for (_, filename) in official_sprites] + obsolete_sprites = [sprite for sprite in current_sprites if sprite not in official_filenames] + except Exception as e: + resultmessage = "Error Determining which sprites to update. Sprites not updated.\n\n%s: %s" % (type(e).__name__, e) + successful = False + task.queue_event(finished) + return + + updated = 0 + for (sprite_url, filename) in needed_sprites: + try: + task.update_status("Downloading needed sprite %g/%g" % (updated + 1, len(needed_sprites))) + target = os.path.join(self.official_sprite_dir, filename) + with urlopen(sprite_url) as response, open(target, 'wb') as out: + shutil.copyfileobj(response, out) + except Exception as e: + resultmessage = "Error downloading sprite. Not all sprites updated.\n\n%s: %s" % (type(e).__name__, e) + successful = False + updated += 1 + + deleted = 0 + for sprite in obsolete_sprites: + try: + task.update_status("Removing obsolete sprite %g/%g" % (deleted + 1, len(obsolete_sprites))) + os.remove(os.path.join(self.official_sprite_dir, sprite)) + except Exception as e: + resultmessage = "Error removing obsolete sprite. Not all sprites updated.\n\n%s: %s" % (type(e).__name__, e) + successful = False + deleted += 1 + + if successful: + resultmessage = "official sprites updated sucessfully" + + task.queue_event(finished) + + BackgroundTaskProgress(self.parent, work, "Updating Sprites") def browse_for_sprite(self): diff --git a/GuiUtils.py b/GuiUtils.py index 722b6ff7..ded1b3b2 100644 --- a/GuiUtils.py +++ b/GuiUtils.py @@ -1,5 +1,79 @@ +import queue +import threading import tkinter as tk +from Utils import local_path + +def set_icon(window): + er16 = tk.PhotoImage(file=local_path('data/ER16.gif')) + er32 = tk.PhotoImage(file=local_path('data/ER32.gif')) + er48 = tk.PhotoImage(file=local_path('data/ER32.gif')) + window.tk.call('wm', 'iconphoto', window._w, er16, er32, er48) + +# Although tkinter is intended to be thread safe, there are many reports of issues +# some which may be platform specific, or depend on if the TCL library was compiled without +# multithreading support. Therefore I will assume it is not thread safe to avoid any possible problems +class BackgroundTask(object): + def __init__(self, window, code_to_run): + self.window = window + self.queue = queue.Queue() + self.running = True + self.process_queue() + self.task=threading.Thread(target=code_to_run , args=(self,)) + self.task.start() + + def stop(self): + self.running = False + + #safe to call from worker + def queue_event(self, event): + self.queue.put(event) + + def process_queue(self): + try: + while True: + if not self.running: + return + event = self.queue.get_nowait() + event() + if self.running: + #if self is no longer running self.window may no longer be valid + self.window.update_idletasks() + except queue.Empty: + pass + if self.running: + self.window.after(100, self.process_queue) + +class BackgroundTaskProgress(BackgroundTask): + def __init__(self, parent, code_to_run, title): + self.parent = parent + self.window = tk.Toplevel(parent) + self.window['padx'] = 5 + self.window['pady'] = 5 + + self.window.attributes("-toolwindow",1) + + self.window.wm_title(title) + self.labelVar = tk.StringVar() + self.labelVar.set("") + self.label = tk.Label(self.window, textvariable = self.labelVar, width=50) + self.label.pack() + self.window.resizable(width=False, height=False) + + set_icon(self.window) + self.window.focus() + super().__init__(self.window, code_to_run) + + #safe to call from worker thread + def update_status(self, text): + self.queue_event(lambda text=text: self.labelVar.set(text)) + + # only call this in an event callback + def close_window(self): + self.stop() + self.window.destroy() + + class ToolTips(object): # This class derived from wckToolTips which is available under the following license: @@ -41,6 +115,7 @@ class ToolTips(object): widget.bind_class(cls.tag, "", cls.enter) widget.bind_class(cls.tag, "", cls.leave) widget.bind_class(cls.tag, "", cls.motion) + widget.bind_class(cls.tag, "", cls.leave) # pick suitable colors for tooltips try: From b36723f2dd5697d3ab3423a30b26933692bac936 Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Sat, 16 Dec 2017 15:38:48 -0500 Subject: [PATCH 09/24] Fix get_all_state to correctly indicate mirror shield is is available if three progessive shields are in pool. --- BaseClasses.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/BaseClasses.py b/BaseClasses.py index 9ce34fd6..82f63765 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -120,6 +120,15 @@ class World(object): ret.prog_items.append('Titans Mitts') else: ret.prog_items.append('Power Glove') + elif 'Shield' in item.name: + if ret.has('Mirror Shield'): + pass + elif ret.has('Red Shield'): + ret.prog_items.append('Mirror Shield') + elif ret.has('Blue Shield'): + ret.prog_items.append('Red Shield') + else: + ret.prog_items.append('Blue Shield') elif item.advancement or item.key: ret.prog_items.append(item.name) From 2286adf2893989e2139363d566aaaae3f78a25cf Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Sat, 16 Dec 2017 15:41:24 -0500 Subject: [PATCH 10/24] Adjuster gui tweaks Make the help button and output directory button available regardless of selected tab. Make controls on both tabs share underlying state where it makes sense to do so. --- Gui.py | 63 +++++++++++++++++++++++++++++----------------------------- 1 file changed, 32 insertions(+), 31 deletions(-) diff --git a/Gui.py b/Gui.py index af631bc4..cfbd9859 100644 --- a/Gui.py +++ b/Gui.py @@ -22,6 +22,25 @@ def guiMain(args=None): notebook.add(adjustWindow, text='Adjust') notebook.pack() + # Shared Controls + + farBottomFrame = Frame(mainWindow) + + def open_output(): + open_file(output_path('')) + + openOutputButton = Button(farBottomFrame, text='Open Output Directory', command=open_output) + + if os.path.exists(local_path('README.html')): + def open_readme(): + open_file(local_path('README.html')) + openReadmeButton = Button(farBottomFrame, text='Open Documentation', command=open_readme) + openReadmeButton.pack(side=LEFT) + + farBottomFrame.pack(side=BOTTOM, fill=X, padx=5, pady=5) + + # randomizer controls + topFrame = Frame(randomizerWindow) rightHalfFrame = Frame(topFrame) checkBoxFrame = Frame(rightHalfFrame) @@ -177,7 +196,6 @@ def guiMain(args=None): heartbeepFrame.pack(expand=True, anchor=E) bottomFrame = Frame(randomizerWindow) - farBottomFrame = Frame(randomizerWindow) seedLabel = Label(bottomFrame, text='Seed #') seedVar = StringVar() @@ -226,17 +244,6 @@ def guiMain(args=None): generateButton = Button(bottomFrame, text='Generate Patched Rom', command=generateRom) - def open_output(): - open_file(output_path('')) - - openOutputButton = Button(farBottomFrame, text='Open Output Directory', command=open_output) - - if os.path.exists(local_path('README.html')): - def open_readme(): - open_file(local_path('README.html')) - openReadmeButton = Button(farBottomFrame, text='Open Documentation', command=open_readme) - openReadmeButton.pack(side=LEFT) - seedLabel.pack(side=LEFT) seedEntry.pack(side=LEFT) countLabel.pack(side=LEFT, padx=(5,0)) @@ -248,19 +255,17 @@ def guiMain(args=None): drowDownFrame.pack(side=LEFT) rightHalfFrame.pack(side=RIGHT) topFrame.pack(side=TOP) - farBottomFrame.pack(side=BOTTOM, fill=X, padx=5, pady=5) bottomFrame.pack(side=BOTTOM) + # Adjuster Controls + topFrame2 = Frame(adjustWindow) rightHalfFrame2 = Frame(topFrame2) checkBoxFrame2 = Frame(rightHalfFrame2) - quickSwapVar2 = IntVar() - quickSwapCheckbutton2 = Checkbutton(checkBoxFrame2, text="Enabled L/R Item quickswapping", variable=quickSwapVar2) - fastMenuVar2 = IntVar() - fastMenuCheckbutton2 = Checkbutton(checkBoxFrame2, text="Enable instant menu", variable=fastMenuVar2) - disableMusicVar2 = IntVar() - disableMusicCheckbutton2 = Checkbutton(checkBoxFrame2, text="Disable game music", variable=disableMusicVar2) + quickSwapCheckbutton2 = Checkbutton(checkBoxFrame2, text="Enabled L/R Item quickswapping", variable=quickSwapVar) + fastMenuCheckbutton2 = Checkbutton(checkBoxFrame2, text="Enable instant menu", variable=fastMenuVar) + disableMusicCheckbutton2 = Checkbutton(checkBoxFrame2, text="Disable game music", variable=disableMusicVar) quickSwapCheckbutton2.pack(expand=True, anchor=W) fastMenuCheckbutton2.pack(expand=True, anchor=W) @@ -284,12 +289,11 @@ def guiMain(args=None): spriteDialogFrame2 = Frame(fileDialogFrame2) baseSpriteLabel2 = Label(spriteDialogFrame2, text='Link Sprite') - spriteVar2 = StringVar() - spriteEntry2 = Entry(spriteDialogFrame2, textvariable=spriteVar2) + spriteEntry2 = Entry(spriteDialogFrame2, textvariable=spriteVar) def SpriteSelect2(): sprite = filedialog.askopenfilename() - spriteVar2.set(sprite) + spriteVar.set(sprite) spriteSelectButton2 = Button(spriteDialogFrame2, text='Select Sprite', command=SpriteSelect2) @@ -304,11 +308,8 @@ def guiMain(args=None): fileDialogFrame2.pack() drowDownFrame2 = Frame(topFrame2) - heartbeepFrame2 = Frame(drowDownFrame2) - heartbeepVar2 = StringVar() - heartbeepVar2.set('normal') - heartbeepOptionMenu2 = OptionMenu(heartbeepFrame2, heartbeepVar2, 'normal', 'half', 'quarter', 'off') + heartbeepOptionMenu2 = OptionMenu(heartbeepFrame2, heartbeepVar, 'normal', 'half', 'quarter', 'off') heartbeepOptionMenu2.pack(side=RIGHT) heartbeepLabel2 = Label(heartbeepFrame2, text='Heartbeep sound rate') heartbeepLabel2.pack(side=LEFT) @@ -319,12 +320,12 @@ def guiMain(args=None): def adjustRom(): guiargs = Namespace - guiargs.heartbeep = heartbeepVar2.get() - guiargs.fastmenu = bool(fastMenuVar2.get()) - guiargs.quickswap = bool(quickSwapVar2.get()) - guiargs.disablemusic = bool(disableMusicVar2.get()) + guiargs.heartbeep = heartbeepVar.get() + guiargs.fastmenu = bool(fastMenuVar.get()) + guiargs.quickswap = bool(quickSwapVar.get()) + guiargs.disablemusic = bool(disableMusicVar.get()) guiargs.rom = romVar2.get() - guiargs.sprite = spriteVar2.get() if spriteVar2.get() else None + guiargs.sprite = spriteVar.get() if spriteVar.get() else None try: adjust(args=guiargs) except Exception as e: From 823657bc26525690d93df68e2ca67ff2ac0e8cbd Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Sun, 17 Dec 2017 00:25:46 -0500 Subject: [PATCH 11/24] Style fixes A bunch of style fixes. Mostly white space and style import order tweaks, but a few other stylistic changes are present too. --- Adjuster.py | 8 ++-- AdjusterMain.py | 11 +++--- BaseClasses.py | 40 +++++++------------ Dungeons.py | 13 +++--- EntranceRandomizer.py | 11 ++++-- EntranceShuffle.py | 6 +-- Fill.py | 8 ++-- Gui.py | 44 ++++++++++----------- GuiUtils.py | 17 ++++---- ItemList.py | 92 ++++++++++++++++++++++--------------------- Items.py | 9 ++--- Main.py | 27 ++++++------- Plando.py | 38 ++++++++++-------- Regions.py | 8 ++-- Rom.py | 69 ++++++++++++++++++-------------- Rules.py | 17 ++++---- Text.py | 9 +++-- Utils.py | 9 +++-- 18 files changed, 224 insertions(+), 212 deletions(-) diff --git a/Adjuster.py b/Adjuster.py index a5aebf48..4d5f2edb 100644 --- a/Adjuster.py +++ b/Adjuster.py @@ -11,8 +11,7 @@ class ArgumentDefaultsHelpFormatter(argparse.RawTextHelpFormatter): def _get_help_string(self, action): return textwrap.dedent(action.help) - -if __name__ == '__main__': +def main(): parser = argparse.ArgumentParser(formatter_class=ArgumentDefaultsHelpFormatter) parser.add_argument('--rom', default='ER_base.sfc', help='Path to an ALttP JAP(1.0) rom to use as a base.') @@ -46,4 +45,7 @@ if __name__ == '__main__': loglevel = {'error': logging.ERROR, 'info': logging.INFO, 'warning': logging.WARNING, 'debug': logging.DEBUG}[args.loglevel] logging.basicConfig(format='%(message)s', level=loglevel) - adjust(args=args) \ No newline at end of file + adjust(args=args) + +if __name__ == '__main__': + main() diff --git a/AdjusterMain.py b/AdjusterMain.py index 2b599aa1..c7835251 100644 --- a/AdjusterMain.py +++ b/AdjusterMain.py @@ -1,10 +1,9 @@ -from collections import OrderedDict -from Utils import output_path import os import time import logging -from Rom import LocalRom, apply_rom_settings +from Utils import output_path +from Rom import LocalRom, Sprite, apply_rom_settings def adjust(args): @@ -13,7 +12,7 @@ def adjust(args): logger.info('Patching ROM.') if args.sprite is not None: - if isinstance(args.sprite,Sprite): + if isinstance(args.sprite, Sprite): sprite = args.sprite else: sprite = Sprite(args.sprite) @@ -22,7 +21,7 @@ def adjust(args): outfilebase = 'ER_adjusted' - if (os.stat(args.rom).st_size == 2097152 and os.path.splitext(args.rom)[-1].lower() == '.sfc'): + if os.stat(args.rom).st_size == 2097152 and os.path.splitext(args.rom)[-1].lower() == '.sfc': rom = LocalRom(args.rom, False) else: raise RuntimeError('Provided Rom is not a valid Link to the Past Randomizer Rom. Please provide one for adjusting.') @@ -32,6 +31,6 @@ def adjust(args): rom.write_to_file(output_path('%s.sfc' % outfilebase)) logger.info('Done. Enjoy.') - logger.debug('Total Time: %s' % (time.clock() - start)) + logger.debug('Total Time: %s', time.clock() - start) return args diff --git a/BaseClasses.py b/BaseClasses.py index 82f63765..ec9c4b54 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -26,7 +26,6 @@ class World(object): self._region_cache = {} self._entrance_cache = {} self._location_cache = {} - self._item_cache = {} self.required_locations = [] self.place_dungeon_items = place_dungeon_items # configurable in future self.shuffle_bonk_prizes = False @@ -142,7 +141,7 @@ class World(object): 'Small Key (Swamp Palace)', 'Big Key (Ice Palace)'] + ['Small Key (Ice Palace)'] * 2 + ['Big Key (Misery Mire)', 'Big Key (Turtle Rock)', 'Big Key (Ganons Tower)'] + ['Small Key (Misery Mire)'] * 3 + ['Small Key (Turtle Rock)'] * 4 + ['Small Key (Ganons Tower)'] * 4): soft_collect(item) ret.sweep_for_events() - ret._clear_cache() + ret.clear_cached_unreachable() return ret def find_items(self, item): @@ -158,7 +157,7 @@ class World(object): if collect: self.state.collect(item, location.event) - logging.getLogger('').debug('Placed %s at %s' % (item, location)) + logging.getLogger('').debug('Placed %s at %s', item, location) else: raise RuntimeError('Cannot assign item %s to location %s.' % (item, location)) @@ -187,7 +186,7 @@ class World(object): def unlocks_new_location(self, item): temp_state = self.state.copy() - temp_state._clear_cache() + temp_state.clear_cached_unreachable() temp_state.collect(item, True) for location in self.get_unfilled_locations(): @@ -197,9 +196,10 @@ class World(object): return False def has_beaten_game(self, state): - if state.has('Triforce'): return True + if state.has('Triforce'): + return True if self.goal in ['triforcehunt']: - if state.item_count('Triforce Piece')+state.item_count('Power Star')> self.treasure_hunt_count: + if state.item_count('Triforce Piece') + state.item_count('Power Star') > self.treasure_hunt_count: return True return False @@ -242,7 +242,7 @@ class World(object): goal = ['ganon', 'pedestal', 'dungeons', 'triforcehunt', 'crystals'].index(self.goal) shuffle = ['vanilla', 'simple', 'restricted', 'full', 'madness', 'insanity', 'dungeonsfull', 'dungeonssimple'].index(self.shuffle) difficulty = ['easy', 'normal', 'hard', 'expert', 'insane'].index(self.difficulty) - timer = ['none', 'display', 'timed', 'timed-ohko', 'timed-countdown','ohko'].index(self.timer) + timer = ['none', 'display', 'timed', 'timed-ohko', 'timed-countdown', 'ohko'].index(self.timer) progressive = ['on', 'off', 'random'].index(self.progressive) algorithm = ['freshness', 'flood', 'vt21', 'vt22', 'vt25', 'vt26', 'balanced'].index(self.algorithm) beatableonly = 1 if self.check_beatable_only else 0 @@ -262,7 +262,7 @@ class CollectionState(object): self.recursion_count = 0 self.events = [] - def _clear_cache(self): + def clear_cached_unreachable(self): # we only need to invalidate results which were False, places we could reach before we can still reach after adding more items self.region_cache = {k: v for k, v in self.region_cache.items() if v} self.location_cache = {k: v for k, v in self.location_cache.items() if v} @@ -337,8 +337,7 @@ class CollectionState(object): def has(self, item, count=1): if count == 1: return item in self.prog_items - else: - return self.item_count(item) >= count + return self.item_count(item) >= count def item_count(self, item): return len([pritem for pritem in self.prog_items if pritem == item]) @@ -424,10 +423,10 @@ class CollectionState(object): changed = True if changed: - self._clear_cache() + self.clear_cached_unreachable() if not event: self.sweep_for_events() - self._clear_cache() + self.clear_cached_unreachable() def remove(self, item): if item.advancement: @@ -497,10 +496,7 @@ class Region(object): is_dungeon_item = item.key or item.map or item.compass sewer_hack = self.world.mode == 'standard' and item.name == 'Small Key (Escape)' if sewer_hack or (is_dungeon_item and not self.world.keysanity): - if self.dungeon and self.dungeon.is_dungeon_item(item): - return True - else: - return False + return self.dungeon and self.dungeon.is_dungeon_item(item) return True @@ -522,9 +518,7 @@ class Entrance(object): self.spot_type = 'Entrance' self.recursion_count = 0 self.vanilla = None - - def access_rule(self, state): - return True + self.access_rule = lambda state: True def can_reach(self, state): if self.access_rule(state) and state.can_reach(self.parent_region): @@ -586,12 +580,8 @@ class Location(object): self.recursion_count = 0 self.staleness_count = 0 self.event = False - - def access_rule(self, state): - return True - - def item_rule(self, item): - return True + self.access_rule = lambda state: True + self.item_rule = lambda state: True def can_fill(self, item): return self.parent_region.can_fill(item) and self.item_rule(item) diff --git a/Dungeons.py b/Dungeons.py index b8ea3a62..4652373b 100644 --- a/Dungeons.py +++ b/Dungeons.py @@ -1,7 +1,8 @@ -from Items import ItemFactory +import random + from BaseClasses import Dungeon from Fill import fill_restrictive -import random +from Items import ItemFactory def create_dungeons(world): @@ -62,7 +63,7 @@ def fill_dungeons(world): world.push_item(bk_location, big_key, False) bk_location.event = True dungeon_locations.remove(bk_location) - all_state._clear_cache() + all_state.clear_cached_unreachable() big_key = None # next place small keys @@ -88,7 +89,7 @@ def fill_dungeons(world): world.push_item(sk_location, small_key, False) sk_location.event = True dungeon_locations.remove(sk_location) - all_state._clear_cache() + all_state.clear_cached_unreachable() if small_keys: # key placement not finished, loop again @@ -100,7 +101,7 @@ def fill_dungeons(world): di_location = dungeon_locations.pop() world.push_item(di_location, dungeon_item, False) - world.state._clear_cache() + world.state.clear_cached_unreachable() def fill_dungeons_restrictive(world, shuffled_locations): @@ -119,7 +120,7 @@ def fill_dungeons_restrictive(world, shuffled_locations): fill_restrictive(world, all_state_base, shuffled_locations, dungeon_items) - world.state._clear_cache() + world.state.clear_cached_unreachable() dungeon_music_addresses = {'Eastern Palace - Prize': [0x1559A], diff --git a/EntranceRandomizer.py b/EntranceRandomizer.py index b1d06949..bdd670ab 100644 --- a/EntranceRandomizer.py +++ b/EntranceRandomizer.py @@ -5,8 +5,8 @@ import random import textwrap import sys -from Main import main from Gui import guiMain +from Main import main from Utils import is_bundled, close_console @@ -16,7 +16,7 @@ class ArgumentDefaultsHelpFormatter(argparse.RawTextHelpFormatter): return textwrap.dedent(action.help) -if __name__ == '__main__': +def start(): parser = argparse.ArgumentParser(formatter_class=ArgumentDefaultsHelpFormatter) parser.add_argument('--create_spoiler', help='Output a Spoiler File', action='store_true') parser.add_argument('--logic', default='noglitches', const='noglitches', nargs='?', choices=['noglitches', 'minorglitches'], @@ -191,7 +191,7 @@ if __name__ == '__main__': ''') args = parser.parse_args() - if is_bundled() and len(sys.argv) == 1 : + if is_bundled() and len(sys.argv) == 1: # for the bundled builds, if we have no arguments, the user # probably wants the gui. Users of the bundled build who want the command line # interface shouuld specify at least one option, possibly setting a value to a @@ -219,8 +219,11 @@ if __name__ == '__main__': guiMain(args) elif args.count is not None: seed = args.seed - for i in range(args.count): + for _ in range(args.count): main(seed=seed, args=args) seed = random.randint(0, 999999999) else: main(seed=args.seed, args=args) + +if __name__ == '__main__': + start() diff --git a/EntranceShuffle.py b/EntranceShuffle.py index d8e4e520..abf9e05c 100644 --- a/EntranceShuffle.py +++ b/EntranceShuffle.py @@ -1298,7 +1298,7 @@ mandatory_connections = [('Links House', 'Links House'), # unshuffled. For now ('Ganons Tower Moldorm Gap', 'Agahnim 2'), ('Ganon Drop', 'Bottom of Pyramid'), ('Pyramid Drop', 'East Dark World') - ] + ] # non-shuffled entrance links default_connections = [('Waterfall of Wishing', 'Waterfall of Wishing'), @@ -1450,7 +1450,7 @@ default_connections = [('Waterfall of Wishing', 'Waterfall of Wishing'), ('Pyramid Hole', 'Pyramid'), ('Pyramid Exit', 'Pyramid Ledge'), ('Pyramid Entrance', 'Bottom of Pyramid') - ] + ] # non shuffled dungeons default_dungeon_connections = [('Desert Palace Entrance (South)', 'Desert Palace Main'), @@ -1510,7 +1510,7 @@ default_dungeon_connections = [('Desert Palace Entrance (South)', 'Desert Palace ('Ganons Tower', 'Ganons Tower (Entrance)'), ('Ganons Tower Exit', 'Dark Death Mountain (Top)') - ] + ] # ToDo somehow merge this with creation of the locations diff --git a/Fill.py b/Fill.py index 6ed0e3da..f9e64378 100644 --- a/Fill.py +++ b/Fill.py @@ -56,7 +56,7 @@ def distribute_items_cutoff(world, cutoffrate=0.33): raise RuntimeError('No more progress items left to place.') spot_to_fill = None - for location in (fill_locations if placed_advancement_items / total_advancement_items < cutoffrate else reversed(fill_locations)): + for location in fill_locations if placed_advancement_items / total_advancement_items < cutoffrate else reversed(fill_locations): if world.state.can_reach(location) and location.can_fill(item_to_place): spot_to_fill = location break @@ -72,7 +72,7 @@ def distribute_items_cutoff(world, cutoffrate=0.33): itempool.remove(item_to_place) fill_locations.remove(spot_to_fill) - logging.getLogger('').debug('Unplaced items: %s - Unfilled Locations: %s' % ([item.name for item in itempool], [location.name for location in fill_locations])) + logging.getLogger('').debug('Unplaced items: %s - Unfilled Locations: %s', [item.name for item in itempool], [location.name for location in fill_locations]) def distribute_items_staleness(world): @@ -153,7 +153,7 @@ def distribute_items_staleness(world): itempool.remove(item_to_place) fill_locations.remove(spot_to_fill) - logging.getLogger('').debug('Unplaced items: %s - Unfilled Locations: %s' % ([item.name for item in itempool], [location.name for location in fill_locations])) + logging.getLogger('').debug('Unplaced items: %s - Unfilled Locations: %s', [item.name for item in itempool], [location.name for location in fill_locations]) def fill_restrictive(world, base_state, locations, itempool): @@ -226,7 +226,7 @@ def distribute_items_restrictive(world, gftower_trash_count=0, fill_locations=No fast_fill(world, restitempool, fill_locations) - logging.getLogger('').debug('Unplaced items: %s - Unfilled Locations: %s' % ([item.name for item in progitempool + prioitempool + restitempool], [location.name for location in fill_locations])) + logging.getLogger('').debug('Unplaced items: %s - Unfilled Locations: %s', [item.name for item in progitempool + prioitempool + restitempool], [location.name for location in fill_locations]) def fast_fill(world, item_pool, fill_locations): diff --git a/Gui.py b/Gui.py index 7b655664..39ce2292 100644 --- a/Gui.py +++ b/Gui.py @@ -4,7 +4,7 @@ import json import random import os import shutil -from tkinter import Checkbutton, OptionMenu, Toplevel, LabelFrame, PhotoImage, Tk, LEFT, RIGHT, BOTTOM, TOP, StringVar, IntVar, Frame, Label, W, E, X, Y, Entry, Spinbox, Button, filedialog, messagebox, ttk +from tkinter import Checkbutton, OptionMenu, Toplevel, LabelFrame, PhotoImage, Tk, LEFT, RIGHT, BOTTOM, TOP, StringVar, IntVar, Frame, Label, W, E, X, Entry, Spinbox, Button, filedialog, messagebox, ttk from urllib.parse import urlparse from urllib.request import urlopen @@ -100,7 +100,7 @@ def guiMain(args=None): baseSpriteLabel = Label(spriteDialogFrame, text='Link Sprite:') spriteNameVar = StringVar() - sprite=None + sprite = None def set_sprite(sprite_param): nonlocal sprite if sprite_param is None or not sprite_param.valid: @@ -250,7 +250,7 @@ def guiMain(args=None): try: if guiargs.count is not None: seed = guiargs.seed - for i in range(guiargs.count): + for _ in range(guiargs.count): main(seed=seed, args=guiargs) seed = random.randint(0, 999999999) else: @@ -264,9 +264,9 @@ def guiMain(args=None): seedLabel.pack(side=LEFT) seedEntry.pack(side=LEFT) - countLabel.pack(side=LEFT, padx=(5,0)) + countLabel.pack(side=LEFT, padx=(5, 0)) countSpinbox.pack(side=LEFT) - generateButton.pack(side=LEFT, padx=(5,0)) + generateButton.pack(side=LEFT, padx=(5, 0)) openOutputButton.pack(side=RIGHT) @@ -349,12 +349,12 @@ def guiMain(args=None): adjustButton = Button(bottomFrame2, text='Adjust Rom', command=adjustRom) - adjustButton.pack(side=LEFT, padx=(5,0)) + adjustButton.pack(side=LEFT, padx=(5, 0)) - drowDownFrame2.pack(side=LEFT, pady=(0,40)) + drowDownFrame2.pack(side=LEFT, pady=(0, 40)) rightHalfFrame2.pack(side=RIGHT) topFrame2.pack(side=TOP, pady=30) - bottomFrame2.pack(side=BOTTOM, pady=(180,0)) + bottomFrame2.pack(side=BOTTOM, pady=(180, 0)) if args is not None: # load values from commandline args @@ -425,15 +425,16 @@ class SpriteSelector(object): for file in glob(output_path(path)): sprite = Sprite(file) image = get_image_for_sprite(sprite) - if image is None: continue - button = Button(frame, image=image, command=lambda sprite=sprite: self.select_sprite(sprite)) + if image is None: + continue + button = Button(frame, image=image, command=lambda spr=sprite: self.select_sprite(spr)) ToolTips.register(button, sprite.name + ("\nBy: %s" % sprite.author_name if sprite.author_name is not None else "")) button.image = image button.grid(row=i // 16, column=i % 16) i += 1 if i == 0: - label = Label(frame, text="Put sprites in the Sprites/Unoffical folder to have them appear here.") + label = Label(frame, text=no_results_label) label.pack() @@ -442,7 +443,7 @@ class SpriteSelector(object): self.window.destroy() self.parent.update() def work(task): - resultmessage="" + resultmessage = "" successful = True def finished(): @@ -467,7 +468,7 @@ class SpriteSelector(object): current_sprites = [os.path.basename(file) for file in glob(self.official_sprite_dir+'/*')] official_sprites = [(sprite['file'], os.path.basename(urlparse(sprite['file']).path)) for sprite in sprites_arr] needed_sprites = [(sprite_url, filename) for (sprite_url, filename) in official_sprites if filename not in current_sprites] - bundled_sprites=[] + bundled_sprites = [] official_filenames = [filename for (_, filename) in official_sprites] obsolete_sprites = [sprite for sprite in current_sprites if sprite not in official_filenames] @@ -511,7 +512,7 @@ class SpriteSelector(object): sprite = filedialog.askopenfilename() try: self.callback(Sprite(sprite)) - except: + except Exception: self.callback(None) self.window.destroy() @@ -535,22 +536,20 @@ class SpriteSelector(object): def official_sprite_dir(self): if is_bundled(): return output_path("sprites/official") - else: - return self.local_official_sprite_dir + return self.local_official_sprite_dir @property - def local_official_sprite_dir(site): + def local_official_sprite_dir(self): return local_path("data/sprites/official") @property def unofficial_sprite_dir(self): if is_bundled(): return output_path("sprites/unofficial") - else: - return self.local_unofficial_sprite_dir + return self.local_unofficial_sprite_dir @property - def local_unofficial_sprite_dir(site): + def local_unofficial_sprite_dir(self): return local_path("data/sprites/unofficial") @@ -563,9 +562,8 @@ def get_image_for_sprite(sprite): def draw_sprite_into_gif(add_palette_color, set_pixel_color_index): def drawsprite(spr, pal_as_colors, offset): - for y in range(len(spr)): - for x in range(len(spr[y])): - pal_index = spr[y][x] + for y, row in enumerate(spr): + for x, pal_index in enumerate(row): if pal_index: color = pal_as_colors[pal_index - 1] set_pixel_color_index(x + offset[0], y + offset[1], color) diff --git a/GuiUtils.py b/GuiUtils.py index ded1b3b2..f987a408 100644 --- a/GuiUtils.py +++ b/GuiUtils.py @@ -8,7 +8,7 @@ def set_icon(window): er16 = tk.PhotoImage(file=local_path('data/ER16.gif')) er32 = tk.PhotoImage(file=local_path('data/ER32.gif')) er48 = tk.PhotoImage(file=local_path('data/ER32.gif')) - window.tk.call('wm', 'iconphoto', window._w, er16, er32, er48) + window.tk.call('wm', 'iconphoto', window._w, er16, er32, er48) # pylint: disable=protected-access # Although tkinter is intended to be thread safe, there are many reports of issues # some which may be platform specific, or depend on if the TCL library was compiled without @@ -19,7 +19,7 @@ class BackgroundTask(object): self.queue = queue.Queue() self.running = True self.process_queue() - self.task=threading.Thread(target=code_to_run , args=(self,)) + self.task = threading.Thread(target=code_to_run, args=(self,)) self.task.start() def stop(self): @@ -51,12 +51,12 @@ class BackgroundTaskProgress(BackgroundTask): self.window['padx'] = 5 self.window['pady'] = 5 - self.window.attributes("-toolwindow",1) + self.window.attributes("-toolwindow", 1) self.window.wm_title(title) - self.labelVar = tk.StringVar() - self.labelVar.set("") - self.label = tk.Label(self.window, textvariable = self.labelVar, width=50) + self.label_var = tk.StringVar() + self.label_var.set("") + self.label = tk.Label(self.window, textvariable=self.label_var, width=50) self.label.pack() self.window.resizable(width=False, height=False) @@ -66,7 +66,7 @@ class BackgroundTaskProgress(BackgroundTask): #safe to call from worker thread def update_status(self, text): - self.queue_event(lambda text=text: self.labelVar.set(text)) + self.queue_event(lambda: self.label_var.set(text)) # only call this in an event callback def close_window(self): @@ -123,7 +123,7 @@ class ToolTips(object): cls.fg = "systeminfotext" widget.winfo_rgb(cls.fg) # make sure system colors exist widget.winfo_rgb(cls.bg) - except: + except Exception: cls.bg = "#ffffe0" cls.fg = "black" @@ -162,7 +162,6 @@ class ToolTips(object): @classmethod def motion(cls, event): - widget = event.widget cls.xy = event.x_root + 16, event.y_root + 10 cls.event_xy = event.x, event.y diff --git a/ItemList.py b/ItemList.py index c0a8473b..1faaa514 100644 --- a/ItemList.py +++ b/ItemList.py @@ -1,13 +1,14 @@ -from Items import ItemFactory -from Fill import fill_restrictive from collections import namedtuple import random +from Items import ItemFactory +from Fill import fill_restrictive + #This file sets the item pools for various modes. Timed modes and triforce hunt are enforced first, and then extra items are specified per mode to fill in the remaining space. #Some basic items that various modes require are placed here, including pendants and crystals. Medallion requirements for the two relevant entrances are also decided. alwaysitems = ['Bombos', 'Book of Mudora', 'Bow', 'Cane of Somaria', 'Ether', 'Fire Rod', 'Flippers', 'Ocarina', 'Hammer', 'Hookshot', 'Ice Rod', 'Lamp', - 'Cape', 'Magic Powder', 'Mushroom', 'Pegasus Boots', 'Quake', 'Shovel', 'Bug Catching Net', 'Cane of Byrna'] + 'Cape', 'Magic Powder', 'Mushroom', 'Pegasus Boots', 'Quake', 'Shovel', 'Bug Catching Net', 'Cane of Byrna'] progressivegloves = ['Progressive Glove'] * 2 basicgloves = ['Power Glove', 'Titans Mitts'] @@ -15,7 +16,7 @@ normalbottles = ['Bottle', 'Bottle (Red Potion)', 'Bottle (Green Potion)', 'Bott hardbottles = ['Bottle', 'Bottle (Red Potion)', 'Bottle (Green Potion)', 'Bottle (Blue Potion)', 'Bottle (Bee)', 'Bottle (Good Bee)'] normalbaseitems = (['Blue Boomerang', 'Red Boomerang', 'Silver Arrows', 'Magic Upgrade (1/2)'] + ['Rupees (300)'] * 4 + - ['Single Arrow', 'Sanctuary Heart Container', 'Arrow Upgrade (+10)', 'Bomb Upgrade (+10)'] + ['Boss Heart Container'] * 10 + ['Piece of Heart'] * 24) + ['Single Arrow', 'Sanctuary Heart Container', 'Arrow Upgrade (+10)', 'Bomb Upgrade (+10)'] + ['Boss Heart Container'] * 10 + ['Piece of Heart'] * 24) normalfirst15extra = ['Rupees (100)', 'Rupees (300)', 'Rupees (50)'] + ['Arrow Upgrade (+5)'] * 6 + ['Bomb Upgrade (+5)'] * 6 normalsecond15extra = ['Bombs (3)'] * 10 + ['Rupees (50)'] * 2 + ['Arrows (10)'] * 2 + ['Rupee (1)'] normalthird10extra = ['Rupees (50)'] * 4 + ['Rupees (20)'] * 3 + ['Arrows (10)', 'Rupee (1)', 'Rupees (5)'] @@ -24,7 +25,7 @@ normalfinal25extra = ['Rupees (20)'] * 23 + ['Rupees (5)'] * 2 easybaseitems = (['Blue Boomerang', 'Red Boomerang', 'Silver Arrows'] + ['Rupees (300)'] * 4 + ['Magic Upgrade (1/2)'] * 2 + ['Lamp'] * 2 + - ['Single Arrow', 'Sanctuary Heart Container'] + ['Boss Heart Container'] * 10 + ['Piece of Heart'] * 12) + ['Single Arrow', 'Sanctuary Heart Container'] + ['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 @@ -34,21 +35,21 @@ easyfinal25extra = ['Rupees (50)'] * 4 + ['Rupees (20)'] * 14 + ['Rupee (1)'] + easytimedotherextra = ['Red Clock'] * 5 hardbaseitems = (['Silver Arrows', 'Single Arrow'] + ['Rupees (300)'] + ['Rupees (100)'] * 2 + ['Rupees (50)'] + ['Bombs (3)'] + - ['Boss Heart Container'] * 5 + ['Piece of Heart'] * 24) + ['Boss Heart Container'] * 5 + ['Piece of Heart'] * 24) hardfirst20extra = ['Bombs (3)'] * 4 + ['Single Bomb'] * 4 + ['Rupees (5)'] * 5 + ['Rupee (1)'] * 2 + ['Rupees (100)'] + ['Rupees (50)'] * 4 hardsecond20extra = ['Single Bomb'] * 4 + ['Rupees (5)'] * 10 + ['Rupees (20)'] * 2 + ['Rupee (1)'] * 3 + ['Arrows (10)'] hardthird20extra = ['Arrows (10)'] * 4 + ['Rupees (20)'] * 3 + ['Rupees (5)'] * 3 + ['Single Bomb'] * 5 + ['Single Arrow'] * 5 hardfinal20extra = ['Single Bomb'] * 4 + ['Rupees (5)'] * 2 + ['Single Arrow'] * 14 expertbaseitems = (['Single Arrow', 'Rupees (300)', 'Rupees (100)', 'Bombs (3)', 'Arrows (10)'] + ['Rupees (50)'] * 4 + ['Rupees (5)'] * 5 + - ['Rupees (20)'] + ['Single Bomb'] * 2 + ['Piece of Heart'] * 24) + ['Rupees (20)'] + ['Single Bomb'] * 2 + ['Piece of Heart'] * 24) expertfirst15extra = ['Single Bomb'] * 13 + ['Rupees (20)'] * 2 expertsecond25extra = ['Single Bomb'] * 8 + ['Single Arrow'] * 9 + ['Rupees (20)'] * 3 + ['Rupee (1)'] * 5 expertthird15extra = ['Rupees (5)'] * 5 + ['Single Bomb'] * 3 + ['Rupees (20)'] * 2 + ['Single Arrow'] * 5 expertfinal25extra = ['Single Bomb'] * 4 + ['Rupees (20)'] * 3 + ['Single Arrow'] * 18 insanebaseitems = (['Single Arrow', 'Bombs (3)', 'Arrows (10)'] + ['Rupees (50)'] * 3 + ['Rupees (5)'] * 10 + ['Rupees (300)'] * 4 + ['Rupees (100)'] * 3 + - ['Rupee (1)'] * 4 + ['Single Bomb'] * 4) + ['Rupee (1)'] * 4 + ['Single Bomb'] * 4) insanefirst15extra = ['Single Bomb'] * 4 + ['Single Arrow'] * 4 + ['Rupee (1)'] * 4 + ['Rupees (300)'] + ['Rupees (100)'] + ['Rupees (50)'] insanesecond25extra = ['Single Bomb'] * 7 + ['Single Arrow'] * 7 + ['Rupee (1)'] * 7 + ['Rupees (20)'] * 4 insanethird10extra = ['Single Bomb'] * 3 + ['Single Arrow'] * 3 + ['Rupee (1)'] * 3 + ['Rupees (20)'] @@ -56,29 +57,27 @@ insanefourth15extra = ['Single Bomb'] * 5 + ['Single Arrow'] * 5 + ['Rupee (1)'] insanefinal25extra = ['Single Bomb'] * 2 + ['Single Arrow'] * 10 + ['Rupee (1)'] * 7 + ['Rupees (20)'] * 6 Difficulty = namedtuple('Difficulty', - ['baseitems', 'bottles', 'bottle_count','same_bottle', 'progressiveshield', - 'basicshield', 'progressivearmor', 'basicarmor', 'swordless', - 'progressivesword', 'basicsword', 'timedohko', 'timedother', - 'triforcehunt', 'triforce_pieces_required', 'conditional_extras', - 'extras']) + ['baseitems', 'bottles', 'bottle_count', 'same_bottle', 'progressiveshield', + 'basicshield', 'progressivearmor', 'basicarmor', 'swordless', + 'progressivesword', 'basicsword', 'timedohko', 'timedother', + 'triforcehunt', 'triforce_pieces_required', 'conditional_extras', + 'extras']) -TotalItemsToPlace = 153 +total_items_to_place = 153 -def easy_conditional_extras(timer, goal, mode, pool, placed_items): - extraitems = TotalItemsToPlace - len(pool) - len(placed_items) +def easy_conditional_extras(timer, _goal, _mode, pool, placed_items): + extraitems = total_items_to_place - len(pool) - len(placed_items) if extraitems < len(easyextra): return easylimitedextra if timer in ['timed', 'timed-countdown']: return easytimedotherextra return [] -def no_conditonal_extras(*args): +def no_conditonal_extras(*_args): return [] -#def Difficulty(**kwargs): -# protodifficulty._replace(**kwargs) - -difficulties= { +# pylint: disable= +difficulties = { 'normal': Difficulty( baseitems = normalbaseitems, bottles = normalbottles, @@ -96,7 +95,7 @@ difficulties= { triforcehunt = ['Triforce Piece'] * 30, triforce_pieces_required = 20, conditional_extras = no_conditonal_extras, - extras = [normalfirst15extra,normalsecond15extra,normalthird10extra,normalfourth5extra,normalfinal25extra] + extras = [normalfirst15extra, normalsecond15extra, normalthird10extra, normalfourth5extra, normalfinal25extra] ), 'easy': Difficulty( baseitems = easybaseitems, @@ -109,7 +108,7 @@ difficulties= { basicarmor = ['Blue Mail', 'Red Mail'] * 2, swordless = ['Rupees (20)'] * 8, progressivesword = ['Progressive Sword'] * 7, - basicsword = ['Master Sword', 'Tempered Sword', 'Golden Sword'] *2 + ['Fighter Sword'], + basicsword = ['Master Sword', 'Tempered Sword', 'Golden Sword'] *2 + ['Fighter Sword'], timedohko = ['Green Clock'] * 25, timedother = ['Green Clock'] * 20 + ['Blue Clock'] * 10 + ['Red Clock'] * 5, # +5 more Red Clocks if there is room triforcehunt = ['Triforce Piece'] * 30, @@ -178,7 +177,7 @@ difficulties= { def generate_itempool(world): if (world.difficulty not in ['easy', 'normal', 'hard', 'expert', 'insane'] or world.goal not in ['ganon', 'pedestal', 'dungeons', 'triforcehunt', 'crystals'] - or world.mode not in ['open', 'standard', 'swordless'] or world.timer not in ['none', 'display', 'timed', 'timed-ohko', 'ohko', 'timed-countdown'] or world.progressive not in ['on', 'off', 'random']): + or world.mode not in ['open', 'standard', 'swordless'] or world.timer not in ['none', 'display', 'timed', 'timed-ohko', 'ohko', 'timed-countdown'] or world.progressive not in ['on', 'off', 'random']): raise NotImplementedError('Not supported yet') world.push_item('Ganon', ItemFactory('Triforce'), False) @@ -217,19 +216,19 @@ def generate_itempool(world): fill_restrictive(world, world.get_all_state(keys=True), crystal_locations, crystals) -def get_pool_core(progressive,shuffle,difficulty,timer, goal, mode): - pool=[] - placed_items=[] - clock_mode=None - treasure_hunt_count=None - treasure_hunt_icon=None +def get_pool_core(progressive, shuffle, difficulty, timer, goal, mode): + pool = [] + placed_items = [] + clock_mode = None + treasure_hunt_count = None + treasure_hunt_icon = None pool.extend(alwaysitems) - def wantProgressives(): - return random.choice([True, False]) if progressive == 'random' else progressive=='on' + def want_progressives(): + return random.choice([True, False]) if progressive == 'random' else progressive == 'on' - if wantProgressives(): + if want_progressives(): pool.extend(progressivegloves) else: pool.extend(basicgloves) @@ -253,17 +252,17 @@ def get_pool_core(progressive,shuffle,difficulty,timer, goal, mode): # all bottles, since only one bottle is available if diff.same_bottle: thisbottle = random.choice(diff.bottles) - for i in range (diff.bottle_count): + for _ in range(diff.bottle_count): if not diff.same_bottle: thisbottle = random.choice(diff.bottles) pool.append(thisbottle) - if wantProgressives(): + if want_progressives(): pool.extend(diff.progressiveshield) else: pool.extend(diff.basicshield) - if wantProgressives(): + if want_progressives(): pool.extend(diff.progressivearmor) else: pool.extend(diff.basicarmor) @@ -271,21 +270,21 @@ def get_pool_core(progressive,shuffle,difficulty,timer, goal, mode): if mode == 'swordless': pool.extend(diff.swordless) elif mode == 'standard': - if wantProgressives(): + if want_progressives(): placed_items.append(('Link\'s Uncle', 'Progressive Sword')) pool.extend(diff.progressivesword) else: placed_items.append(('Link\'s Uncle', 'Fighter Sword')) pool.extend(diff.basicsword) else: - if wantProgressives(): + if want_progressives(): pool.extend(diff.progressivesword) pool.extend(['Progressive Sword']) else: pool.extend(diff.basicsword) pool.extend(['Fighter Sword']) - extraitems = TotalItemsToPlace - len(pool) - len(placed_items) + extraitems = total_items_to_place - len(pool) - len(placed_items) if timer in ['timed', 'timed-countdown']: pool.extend(diff.timedother) @@ -306,8 +305,8 @@ def get_pool_core(progressive,shuffle,difficulty,timer, goal, mode): extraitems -= len(cond_extras) for extra in diff.extras: - if(extraitems > 0): - pool.extend(extra ) + if extraitems > 0: + pool.extend(extra) extraitems -= len(extra) if goal == 'pedestal': @@ -315,19 +314,22 @@ def get_pool_core(progressive,shuffle,difficulty,timer, goal, mode): return (pool, placed_items, clock_mode, treasure_hunt_count, treasure_hunt_icon) # A quick test to ensure all combinations generate the correct amount of items. -if __name__ == '__main__': +def test(): for difficulty in ['easy', 'normal', 'hard', 'expert', 'insane']: for goal in ['ganon', 'triforcehunt', 'pedestal']: for timer in ['none', 'display', 'timed', 'timed-ohko', 'ohko', 'timed-countdown']: for mode in ['open', 'standard', 'swordless']: - for progressive in ['on','off']: - for shuffle in ['full','insane']: + for progressive in ['on', 'off']: + for shuffle in ['full', 'insane']: out = get_pool_core(progressive, shuffle, difficulty, timer, goal, mode) count = len(out[0]) + len(out[1]) - correct_count = TotalItemsToPlace + correct_count = total_items_to_place if goal in ['pedestal']: # pedestal goals generate one extra item correct_count += 1 assert count == correct_count, "expected {0} items but found {1} items for {2}".format(correct_count, count, (progressive, shuffle, difficulty, timer, goal, mode)) + +if __name__ == '__main__': + test() diff --git a/Items.py b/Items.py index 37a83e52..db659086 100644 --- a/Items.py +++ b/Items.py @@ -1,7 +1,7 @@ -from BaseClasses import World, Item -import random import logging +from BaseClasses import Item + def ItemFactory(items): ret = [] @@ -14,13 +14,12 @@ def ItemFactory(items): advancement, priority, type, code, pedestal_hint, pedestal_credit, sickkid_credit, zora_credit, witch_credit, fluteboy_credit = item_table[item] ret.append(Item(item, advancement, priority, type, code, pedestal_hint, pedestal_credit, sickkid_credit, zora_credit, witch_credit, fluteboy_credit)) else: - logging.getLogger('').warning('Unknown Item: %s' % item) + logging.getLogger('').warning('Unknown Item: %s', item) return None if singleton: return ret[0] - else: - return ret + return ret # Format: Name: (Advancement, Priority, Type, ItemCode, Pedestal Hint Text, Pedestal Credit Text, Sick Kid Credit Text, Zora Credit Text, Witch Credit Text, Flute Boy Credit Text) diff --git a/Main.py b/Main.py index 08683c32..ab3ac04f 100644 --- a/Main.py +++ b/Main.py @@ -1,18 +1,18 @@ +from collections import OrderedDict +import json +import logging +import random +import time + from BaseClasses import World, CollectionState, Item from Regions import create_regions, mark_light_world_regions from EntranceShuffle import link_entrances from Rom import patch_rom, Sprite, LocalRom, JsonRom from Rules import set_rules from Dungeons import create_dungeons, fill_dungeons, fill_dungeons_restrictive -from Items import ItemFactory -from Fill import distribute_items_cutoff, distribute_items_staleness, distribute_items_restrictive, fill_restrictive, flood_items -from collections import OrderedDict +from Fill import distribute_items_cutoff, distribute_items_staleness, distribute_items_restrictive, flood_items from ItemList import generate_itempool from Utils import output_path -import random -import time -import logging -import json __version__ = '0.5.1-dev' @@ -39,7 +39,7 @@ def main(args, seed=None): world.seed = int(seed) random.seed(world.seed) - logger.info('ALttP Entrance Randomizer Version %s - Seed: %s\n\n' % (__version__, world.seed)) + logger.info('ALttP Entrance Randomizer Version %s - Seed: %s\n\n', __version__, world.seed) create_regions(world) @@ -92,7 +92,7 @@ def main(args, seed=None): logger.info('Patching ROM.') if args.sprite is not None: - if isinstance(args.sprite,Sprite): + if isinstance(args.sprite, Sprite): sprite = args.sprite else: sprite = Sprite(args.sprite) @@ -116,7 +116,7 @@ def main(args, seed=None): world.spoiler.to_file(output_path('%s_Spoiler.txt' % outfilebase)) logger.info('Done. Enjoy.') - logger.debug('Total Time: %s' % (time.clock() - start)) + logger.debug('Total Time: %s', time.clock() - start) return world @@ -199,10 +199,10 @@ def create_playthrough(world): collection_spheres.append(sphere) - logging.getLogger('').debug('Calculated sphere %i, containing %i of %i progress items.' % (len(collection_spheres), len(sphere), len(prog_locations))) + logging.getLogger('').debug('Calculated sphere %i, containing %i of %i progress items.', len(collection_spheres), len(sphere), len(prog_locations)) if not sphere: - logging.getLogger('').debug('The following items could not be reached: %s' % ['%s at %s' % (location.item.name, location.name) for location in sphere_candidates]) + logging.getLogger('').debug('The following items could not be reached: %s', ['%s at %s' % (location.item.name, location.name) for location in sphere_candidates]) if not world.check_beatable_only: raise RuntimeError('Not all progression items reachable. Something went terribly wrong here.') else: @@ -213,11 +213,10 @@ def create_playthrough(world): to_delete = [] for location in sphere: # we remove the item at location and check if game is still beatable - logging.getLogger('').debug('Checking if %s is required to beat the game.' % location.item.name) + logging.getLogger('').debug('Checking if %s is required to beat the game.', location.item.name) old_item = location.item location.item = None state.remove(old_item) - world._item_cache = {} # need to invalidate if world.can_beat_game(): to_delete.append(location) else: diff --git a/Plando.py b/Plando.py index 5e623115..3908c06c 100644 --- a/Plando.py +++ b/Plando.py @@ -1,18 +1,19 @@ +import argparse +import hashlib +import logging +import os +import random +import time +import sys + from BaseClasses import World from Regions import create_regions from EntranceShuffle import link_entrances, connect_entrance, connect_two_way, connect_exit -from Rom import patch_rom, LocalRom, Sprite, write_string_to_rom +from Rom import patch_rom, LocalRom, write_string_to_rom from Rules import set_rules from Dungeons import create_dungeons from Items import ItemFactory from Main import create_playthrough -import random -import time -import logging -import argparse -import os -import hashlib -import sys __version__ = '0.2-dev' @@ -26,8 +27,8 @@ logic_hash = [182, 244, 144, 92, 149, 200, 93, 183, 124, 169, 226, 46, 111, 163, 153, 217, 252, 158, 25, 205, 22, 133, 254, 138, 203, 118, 210, 204, 82, 97, 52, 164, 68, 139, 120, 109, 54, 3, 41, 179, 212, 42] -def main(args, seed=None): - start = time.clock() +def main(args): + start_time = time.clock() # initialize the world world = World('vanilla', 'noglitches', 'standard', 'normal', 'none', 'on', 'ganon', 'freshness', False, False, False, args.quickswap, args.fastmenu, args.disablemusic, False) @@ -41,7 +42,7 @@ def main(args, seed=None): random.seed(world.seed) - logger.info('ALttP Plandomizer Version %s - Seed: %s\n\n' % (__version__, args.plando)) + logger.info('ALttP Plandomizer Version %s - Seed: %s\n\n', __version__, args.plando) create_regions(world) create_dungeons(world) @@ -74,7 +75,7 @@ def main(args, seed=None): logger.info('Patching ROM.') if args.sprite is not None: - sprite = Sprite(args.sprite) + sprite = bytearray(open(args.sprite, 'rb').read()) else: sprite = None @@ -84,8 +85,8 @@ def main(args, seed=None): for textname, texttype, text in text_patches: if texttype == 'text': write_string_to_rom(rom, textname, text) - elif texttype == 'credit': - write_credits_string_to_rom(rom, textname, text) + #elif texttype == 'credit': + # write_credits_string_to_rom(rom, textname, text) outfilebase = 'Plando_%s_%s' % (os.path.splitext(os.path.basename(args.plando))[0], world.seed) @@ -94,7 +95,7 @@ def main(args, seed=None): world.spoiler.to_file('%s_Spoiler.txt' % outfilebase) logger.info('Done. Enjoy.') - logger.debug('Total Time: %s' % (time.clock() - start)) + logger.debug('Total Time: %s', time.clock() - start_time) return world @@ -171,7 +172,7 @@ def fill_world(world, plando, text_patches): locationstr, itemstr = line.split(':', 1) location = world.get_location(locationstr.strip()) if location is None: - logger.warn('Unknown location: %s' % locationstr) + logger.warning('Unknown location: %s', locationstr) continue else: item = ItemFactory(itemstr.strip()) @@ -198,7 +199,7 @@ def fill_world(world, plando, text_patches): world.get_location('Agahnim 2').item = ItemFactory('Beat Agahnim 2') -if __name__ == '__main__': +def start(): parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter) parser.add_argument('--create_spoiler', help='Output a Spoiler File', action='store_true') parser.add_argument('--ignore_unsolvable', help='Do not abort if seed is deemed unsolvable.', action='store_true') @@ -230,3 +231,6 @@ if __name__ == '__main__': logging.basicConfig(format='%(message)s', level=loglevel) main(args=args) + +if __name__ == '__main__': + start() diff --git a/Regions.py b/Regions.py index 8f3bfaed..b59d80d8 100644 --- a/Regions.py +++ b/Regions.py @@ -134,7 +134,7 @@ def create_regions(world): create_region('Tower of Hera (Top)', ['Tower of Hera - Compass Chest', 'Tower of Hera - Big Chest', 'Tower of Hera - Moldorm', 'Tower of Hera - Prize']), create_region('East Dark World', ['Pyramid', 'Catfish'], ['Pyramid Fairy', 'South Dark World Bridge', 'West Dark World Gap', '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', 'Dark World Potion Shop', 'Pyramid Hole']), + 'Hyrule Castle Ledge Mirror Spot', 'Dark Lake Hylia Fairy', 'Palace of Darkness Hint', 'East Dark World Hint', 'Dark World Potion Shop', 'Pyramid Hole']), create_region('Palace of Darkness Hint'), create_region('East Dark World Hint'), create_region('South Dark World', ['Stumpy', 'Digging Game', 'Bombos Tablet'], ['Dark Lake Hylia Drop (South)', 'Hype Cave', 'Swamp Palace', 'Village of Outcasts Heavy Rock', @@ -147,7 +147,7 @@ def create_regions(world): create_region('Dark Lake Hylia Ledge Hint'), create_region('Dark Lake Hylia Ledge Spike Cave'), create_region('Hype Cave', ['Hype Cave - Top', 'Hype Cave - Middle Right', 'Hype Cave - Middle Left', - 'Hype Cave - Bottom', 'Hype Cave - Generous Guy']), + 'Hype Cave - Bottom', 'Hype Cave - Generous Guy']), create_region('West Dark World', None, ['Village of Outcasts Drop', 'East Dark World River Pier', 'Brewery', 'C-Shaped House', 'Chest Game', 'Thieves Town', 'Graveyard Cave', 'Bumper Cave (Bottom)', 'Skull Woods Forest', 'Bat Cave Drop Ledge Mirror Spot', 'Dark World Hammer Peg Cave', 'Red Shield Shop', 'Dark Sanctuary Hint', 'Fortune Teller (Dark)', 'Dark World Shop', 'Dark World Lumberjack Shop']), create_region('Fortune Teller (Dark)'), @@ -180,7 +180,7 @@ def create_regions(world): create_region('Hookshot Cave', ['Hookshot Cave - Top Right', 'Hookshot Cave - Top Left', 'Hookshot Cave - Bottom Right', 'Hookshot Cave - Bottom Left'], ['Hookshot Cave Exit (South)', 'Hookshot Cave Exit (North)']), create_region('Death Mountain Floating Island (Dark World)', None, ['Floating Island Drop', 'Hookshot Cave Back Entrance', 'Floating Island Mirror Spot']), - create_region('Death Mountain Floating Island (Light World)', ['Floating Island'] ), + create_region('Death Mountain Floating Island (Light World)', ['Floating Island']), create_region('Turtle Rock (Top)', None, ['Turtle Rock Drop']), create_region('Mimic Cave', ['Mimic Cave']), @@ -292,7 +292,7 @@ def mark_light_world_regions(world): # Exclude entrances that represent connections from the light world to the dark world excluded_entrances = set(['Top of Pyramid', 'Lake Hylia Central Island Teleporter', 'Dark Desert Teleporter', 'East Hyrule Teleporter', 'South Hyrule Teleporter', 'Kakariko Teleporter', 'Death Mountain Teleporter', 'East Death Mountain Teleporter', 'Turtle Rock Teleporter']) - starting_regions = ['Links House', 'Cave 45', 'Graveyard Cave','Mimic Cave', 'Death Mountain Floating Island (Light World)','Desert Ledge (West)', 'Lake Hylia Island', 'Spectacle Rock'] + starting_regions = ['Links House', 'Cave 45', 'Graveyard Cave', 'Mimic Cave', 'Death Mountain Floating Island (Light World)', 'Desert Ledge (West)', 'Lake Hylia Island', 'Spectacle Rock'] queue = collections.deque([world.get_region(region) for region in starting_regions]) seen = set(queue) while queue: diff --git a/Rom.py b/Rom.py index b465a7cf..eb860b55 100644 --- a/Rom.py +++ b/Rom.py @@ -1,15 +1,17 @@ -from Dungeons import dungeon_music_addresses -from Text import string_to_alttp_text, text_addresses, Credits -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 -from Utils import local_path -import random import io import json import hashlib import logging import os import struct +import random + +from Dungeons import dungeon_music_addresses +from Text import string_to_alttp_text, text_addresses, Credits +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 +from Utils import local_path + JAP10HASH = '03a63945398191337e896e5771f77173' RANDOMIZERBASEHASH = '1deebb05eccefd2ab68297c6e9c0d25f' @@ -33,13 +35,15 @@ class JsonRom(object): self.write_bytes(address, int32_as_bytes(value)) def write_to_file(self, file): - json.dump([self.patches], open(file, 'w')) + with open(file, 'w') as stream: + json.dump([self.patches], stream) class LocalRom(object): def __init__(self, file, patch=True): - self.buffer = bytearray(open(file, 'rb').read()) + with open(file, 'rb') as stream: + self.buffer = bytearray(stream.read()) if patch: self.patch_base_rom() @@ -64,14 +68,15 @@ class LocalRom(object): # verify correct checksum of baserom basemd5 = hashlib.md5() basemd5.update(self.buffer) - if not JAP10HASH == basemd5.hexdigest(): + if JAP10HASH != basemd5.hexdigest(): logging.getLogger('').warning('Supplied Base Rom does not match known MD5 for JAP(1.0) release. Will try to patch anyway.') # extend to 2MB self.buffer.extend(bytearray([0x00] * (2097152 - len(self.buffer)))) # load randomizer patches - patches = json.load(open(local_path('data/base2current.json'), 'r')) + with open(local_path('data/base2current.json'), 'r') as stream: + patches = json.load(stream) for patch in patches: if isinstance(patch, dict): for baseaddress, values in patch.items(): @@ -80,7 +85,7 @@ class LocalRom(object): # verify md5 patchedmd5 = hashlib.md5() patchedmd5.update(self.buffer) - if not RANDOMIZERBASEHASH == patchedmd5.hexdigest(): + if RANDOMIZERBASEHASH != patchedmd5.hexdigest(): raise RuntimeError('Provided Base Rom unsuitable for patching. Please provide a JAP(1.0) "Zelda no Densetsu - Kamigami no Triforce (Japan).sfc" rom to use as a base.') def write_crc(self): @@ -127,7 +132,7 @@ class Sprite(object): self.palette = filedata[0xDD308:0xDD380] self.glove_palette = filedata[0xDEDF5:0xDEDF9] elif filedata.startswith(b'ZSPR'): - result = self.parse_zspr(filedata,1) + result = self.parse_zspr(filedata, 1) if result is None: self.valid = False return @@ -148,23 +153,27 @@ class Sprite(object): else: self.valid = False else: - self.valid = False + self.valid = False def decode8(self, pos): - arr=[[0 for _ in range(8)] for _ in range(8)] + arr = [[0 for _ in range(8)] for _ in range(8)] for y in range(8): for x in range(8): position = 1<<(7-x) - val=0; - if self.sprite[pos+2*y] & position: val += 1 - if self.sprite[pos+2*y+1] & position: val += 2 - if self.sprite[pos+2*y+16] & position: val += 4 - if self.sprite[pos+2*y+17] & position: val += 8 - arr[y][x]= val + val = 0 + if self.sprite[pos+2*y] & position: + val += 1 + if self.sprite[pos+2*y+1] & position: + val += 2 + if self.sprite[pos+2*y+16] & position: + val += 4 + if self.sprite[pos+2*y+17] & position: + val += 8 + arr[y][x] = val return arr def decode16(self, pos): - arr=[[0 for _ in range(16)] for _ in range(16)] + arr = [[0 for _ in range(16)] for _ in range(16)] top_left = self.decode8(pos) top_right = self.decode8(pos+0x20) bottom_left = self.decode8(pos+0x200) @@ -183,7 +192,7 @@ class Sprite(object): headersize = struct.calcsize(headerstr) if len(filedata) < headersize: return None - (version, csum, icsum, sprite_offset, sprite_size, palette_offset, palette_size, kind) = struct.unpack_from(headerstr,filedata) + (version, csum, icsum, sprite_offset, sprite_size, palette_offset, palette_size, kind) = struct.unpack_from(headerstr, filedata) if version not in [1]: logger.error('Error parsing ZSPR file: Version %g not supported', version) return None @@ -211,7 +220,7 @@ class Sprite(object): real_csum = sum(filedata) % 0x10000 if real_csum != csum or real_csum ^ 0xFFFF != icsum: logger.warning('ZSPR file has incorrect checksum. It may be corrupted.') - pass + sprite = filedata[sprite_offset:sprite_offset + sprite_size] palette = filedata[palette_offset:palette_offset + palette_size] @@ -223,14 +232,15 @@ class Sprite(object): def decode_palette(self): "Returns the palettes as an array of arrays of 15 colors" - def array_chunk(arr,size): + def array_chunk(arr, size): return list(zip(*[iter(arr)] * size)) def make_int16(pair): return pair[1]<<8 | pair[0] def expand_color(i): - return ( (i & 0x1F)*8, (i>>5 & 0x1F)*8, (i>>10 & 0x1F)*8) + return ((i & 0x1F) * 8, (i>>5 & 0x1F) * 8, (i>>10 & 0x1F) * 8) raw_palette = self.palette - if raw_palette is None: raw_palette = Sprite.default_palette + if raw_palette is None: + raw_palette = Sprite.default_palette # turn palette data into a list of RGB tuples with 8 bit values palette_as_colors = [expand_color(make_int16(chnk)) for chnk in array_chunk(raw_palette, 2)] @@ -567,9 +577,9 @@ def patch_rom(world, rom, hashtable, beep='normal', sprite=None): if world.shuffle == 'vanilla': ERtimeincrease = 0 elif world.shuffle in ['dungeonssimple', 'dungeonsfull']: - ERtimeincrease = 10 + ERtimeincrease = 10 else: - ERtimeincrease = 20 + ERtimeincrease = 20 if world.keysanity: ERtimeincrease = ERtimeincrease + 15 if world.clock_mode == 'off': @@ -836,7 +846,8 @@ def apply_rom_settings(rom, beep, quickswap, fastmenu, disable_music, sprite): def write_sprite(rom, sprite): - if not sprite.valid: return + if not sprite.valid: + return rom.write_bytes(0x80000, sprite.sprite) if sprite.palette is not None: rom.write_bytes(0xDD308, sprite.palette) diff --git a/Rules.py b/Rules.py index 8ae89256..e46a3445 100644 --- a/Rules.py +++ b/Rules.py @@ -428,17 +428,17 @@ def open_rules(world): # to prevent key-lock in keysanity we need to prevent these chests from having an item that # blocks the small key - if (world.keysanity): + if world.keysanity: set_rule(world.get_location('Hyrule Castle - Boomerang Chest'), lambda state: state.has('Small Key (Escape)')) set_rule(world.get_location('Hyrule Castle - Zelda\'s Chest'), lambda state: state.has('Small Key (Escape)')) def swordless_rules(world): - - # for the time being swordless mode just inhierits all fixes from open mode. - # should there ever be fixes that apply to open mode but not swordless, this - # can be revisited. - open_rules(world) + + # for the time being swordless mode just inhierits all fixes from open mode. + # should there ever be fixes that apply to open mode but not swordless, this + # can be revisited. + 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('Small Key (Agahnims Tower)', 2)) @@ -483,7 +483,10 @@ def set_trock_key_rules(world): set_rule(world.get_entrance('Turtle Rock (Chain Chomp Room) (South)'), lambda state: state.has('Small Key (Turtle Rock)', 4)) # this is just the pokey room with one more key - set_rule(world.get_entrance('Turtle Rock (Chain Chomp Room) (North)'), lambda state: state.has('Small Key (Turtle Rock)', 2)) if not can_reach_back else set_rule(world.get_entrance('Turtle Rock (Chain Chomp Room) (North)'), lambda state: state.has('Small Key (Turtle Rock)', 3)) + if not can_reach_back: + set_rule(world.get_entrance('Turtle Rock (Chain Chomp Room) (North)'), lambda state: state.has('Small Key (Turtle Rock)', 2)) + else: + set_rule(world.get_entrance('Turtle Rock (Chain Chomp Room) (North)'), lambda state: state.has('Small Key (Turtle Rock)', 3)) # the most complicated one # if we have back entrance access, we could waste all keys before touching this diff --git a/Text.py b/Text.py index f1f308a8..1e54562c 100644 --- a/Text.py +++ b/Text.py @@ -120,7 +120,7 @@ class Credits(object): self.scene_order = ['castle', 'sancturary', 'kakariko', 'desert', 'hera', 'house', 'zora', 'witch', 'lumberjacks', 'grove', 'well', 'smithy', 'kakariko2', 'bridge', 'woods', 'pedestal'] - def update_credits_line(self, scene, line, text, align='center'): + def update_credits_line(self, scene, line, text): scenes = self.credit_scenes text = text[:32] @@ -162,7 +162,7 @@ class SceneCreditLine(CreditLine): """Base class for credit lines for the scene portion of the credits""" def __init__(self, y, text, align='center'): self.y = y - super().__init__(text,align) + super().__init__(text, align) def header(self, x=None, y=None, length=None): if x is None: @@ -456,9 +456,10 @@ def char_to_alttp_char(char): return char_map.get(char, 0xFF) - class TextMapper(object): number_offset = None + alpha_offset = 0 + char_map = {} @classmethod def map_char(cls, char): if cls.number_offset is not None: @@ -492,7 +493,7 @@ class GreenCreditMapper(TextMapper): class RedCreditMapper(TextMapper): char_map = {' ': 0x9F} #fixme - alpha_offset= -0x61 + alpha_offset = -0x61 class LargeCreditTopMapper(TextMapper): char_map = {' ': 0x9F, diff --git a/Utils.py b/Utils.py index 30703287..25489600 100644 --- a/Utils.py +++ b/Utils.py @@ -1,4 +1,5 @@ import os +import subprocess import sys def is_bundled(): @@ -10,7 +11,7 @@ def local_path(path): if is_bundled(): # we are running in a bundle - local_path.cached_path = sys._MEIPASS + local_path.cached_path = sys._MEIPASS # pylint: disable=protected-access,no-member else: # we are running in a normal Python environment local_path.cached_path = os.path.dirname(os.path.abspath(__file__)) @@ -40,7 +41,7 @@ def output_path(path): documents = buf.value elif sys.platform == 'darwin': - from AppKit import NSSearchPathForDirectoriesInDomains + from AppKit import NSSearchPathForDirectoriesInDomains # pylint: disable=import-error # http://developer.apple.com/DOCUMENTATION/Cocoa/Reference/Foundation/Miscellaneous/Foundation_Functions/Reference/reference.html#//apple_ref/c/func/NSSearchPathForDirectoriesInDomains NSDocumentDirectory = 9 NSUserDomainMask = 1 @@ -60,7 +61,7 @@ def open_file(filename): if sys.platform == 'win32': os.startfile(filename) else: - open_Command = 'open' if sys.platform == 'darwin' else 'xdg-open' + open_command = 'open' if sys.platform == 'darwin' else 'xdg-open' subprocess.call([open_command, filename]) def close_console(): @@ -69,5 +70,5 @@ def close_console(): import ctypes.wintypes try: ctypes.windll.kernel32.FreeConsole() - except: + except Exception: pass From ce30913121bb5c69011cd06634f0b31d41955b62 Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Sun, 17 Dec 2017 17:30:50 -0500 Subject: [PATCH 12/24] Get sprite json from vt.alttp.run Fix plando's sprite support Always write both sprite and pallet (using the default if a sprite does not include a pallet) so that the adjuster still works. --- Gui.py | 8 ++++---- Plando.py | 4 ++-- Rom.py | 16 +++++++--------- Zelda.sprite | Bin 28672 -> 0 bytes 4 files changed, 13 insertions(+), 15 deletions(-) delete mode 100644 Zelda.sprite diff --git a/Gui.py b/Gui.py index 39ce2292..e197100d 100644 --- a/Gui.py +++ b/Gui.py @@ -456,7 +456,8 @@ class SpriteSelector(object): try: task.update_status("Downloading official sprites list") - sprites_arr = json.loads(temp_sprites_json) + with urlopen('http://vt.alttp.run/sprites') as response: + sprites_arr = json.load(response) except Exception as e: resultmessage = "Error getting list of official sprites. Sprites not updated.\n\n%s: %s" % (type(e).__name__, e) successful = False @@ -468,7 +469,8 @@ class SpriteSelector(object): current_sprites = [os.path.basename(file) for file in glob(self.official_sprite_dir+'/*')] official_sprites = [(sprite['file'], os.path.basename(urlparse(sprite['file']).path)) for sprite in sprites_arr] needed_sprites = [(sprite_url, filename) for (sprite_url, filename) in official_sprites if filename not in current_sprites] - bundled_sprites = [] + bundled_sprites = [os.path.basename(file) for file in glob(self.local_official_sprite_dir+'/*')] + # todo: eventually use the above list to avoid downloading any sprites that we already have cached in the bundle. official_filenames = [filename for (_, filename) in official_sprites] obsolete_sprites = [sprite for sprite in current_sprites if sprite not in official_filenames] @@ -653,7 +655,5 @@ def get_image_for_sprite(sprite): return image.zoom(2) -temp_sprites_json = '''[{"name":"Link","file":"http:\/\/spr.beegunslingers.com\/link.1.spr"},{"name":"Four Swords Link","file":"http:\/\/spr.beegunslingers.com\/4slink-armors.1.spr"},{"name":"Boo","file":"http:\/\/spr.beegunslingers.com\/boo.2.spr"},{"name":"Boy","file":"http:\/\/spr.beegunslingers.com\/boy.2.spr"},{"name":"Cactuar","file":"http:\/\/spr.beegunslingers.com\/cactuar.1.spr"},{"name":"Cat","file":"http:\/\/spr.beegunslingers.com\/cat.1.spr"},{"name":"Cat Boo","file":"http:\/\/spr.beegunslingers.com\/catboo.1.spr"},{"name":"Cirno","file":"http:\/\/spr.beegunslingers.com\/cirno.1.spr"},{"name":"Dark Boy","file":"http:\/\/spr.beegunslingers.com\/darkboy.2.spr"},{"name":"Dark Girl","file":"http:\/\/spr.beegunslingers.com\/darkgirl.1.spr"},{"name":"Dark Link","file":"http:\/\/spr.beegunslingers.com\/darklink.1.spr"},{"name":"Dark Maple Queen","file":"http:\/\/spr.beegunslingers.com\/shadowsaku.1.spr"},{"name":"Dark Swatchy","file":"http:\/\/spr.beegunslingers.com\/darkswatchy.1.spr"},{"name":"Dark Zelda","file":"http:\/\/spr.beegunslingers.com\/darkzelda.1.spr"},{"name":"Dark Zora","file":"http:\/\/spr.beegunslingers.com\/darkzora.2.spr"},{"name":"Decidueye","file":"http:\/\/spr.beegunslingers.com\/decidueye.1.spr"},{"name":"Demon Link","file":"http:\/\/spr.beegunslingers.com\/demonlink.1.spr"},{"name":"Frog","file":"http:\/\/spr.beegunslingers.com\/froglink.2.spr"},{"name":"Ganondorf","file":"http:\/\/spr.beegunslingers.com\/ganondorf.1.spr"},{"name":"Garfield","file":"http:\/\/spr.beegunslingers.com\/garfield.1.spr"},{"name":"Girl","file":"http:\/\/spr.beegunslingers.com\/girl.2.spr"},{"name":"Headless Link","file":"http:\/\/spr.beegunslingers.com\/headlesslink.1.spr"},{"name":"Invisible Man","file":"http:\/\/spr.beegunslingers.com\/invisibleman.1.spr"},{"name":"Inkling","file":"http:\/\/spr.beegunslingers.com\/inkling.1.spr"},{"name":"Kirby","file":"http:\/\/spr.beegunslingers.com\/kirby-meta.2.spr"},{"name":"Kore8","file":"http:\/\/spr.beegunslingers.com\/kore8.1.spr"},{"name":"Pony","file":"http:\/\/spr.beegunslingers.com\/littlepony.1.spr"},{"name":"Luigi","file":"http:\/\/spr.beegunslingers.com\/luigi.1.spr"},{"name":"Maiden","file":"http:\/\/spr.beegunslingers.com\/maiden.2.spr"},{"name":"Maple Queen","file":"http:\/\/spr.beegunslingers.com\/maplequeen.1.spr"},{"name":"Mario","file":"http:\/\/spr.beegunslingers.com\/mario-classic.1.spr"},{"name":"Marisa","file":"http:\/\/spr.beegunslingers.com\/marisa.1.spr"},{"name":"Mike Jones","file":"http:\/\/spr.beegunslingers.com\/mikejones.2.spr"},{"name":"Minish Cap Link","file":"http:\/\/spr.beegunslingers.com\/minishcaplink.3.spr"},{"name":"Modern Link","file":"http:\/\/spr.beegunslingers.com\/modernlink.1.spr"},{"name":"Mog","file":"http:\/\/spr.beegunslingers.com\/mog.1.spr"},{"name":"Mouse","file":"http:\/\/spr.beegunslingers.com\/mouse.1.spr"},{"name":"Nature Link","file":"http:\/\/spr.beegunslingers.com\/naturelink.1.spr"},{"name":"Negative Link","file":"http:\/\/spr.beegunslingers.com\/negativelink.1.spr"},{"name":"Neon Link","file":"http:\/\/spr.beegunslingers.com\/neonlink.1.spr"},{"name":"Old Man","file":"http:\/\/spr.beegunslingers.com\/oldman.1.spr"},{"name":"Pink Ribbon Link","file":"http:\/\/spr.beegunslingers.com\/pinkribbonlink.1.spr"},{"name":"Popoi","file":"http:\/\/spr.beegunslingers.com\/popoi.1.spr"},{"name":"Pug","file":"http:\/\/spr.beegunslingers.com\/pug.2.spr"},{"name":"Purple Chest","file":"http:\/\/spr.beegunslingers.com\/purplechest-bottle.2.spr"},{"name":"Roy Koopa","file":"http:\/\/spr.beegunslingers.com\/roykoopa.1.spr"},{"name":"Rumia","file":"http:\/\/spr.beegunslingers.com\/rumia.1.spr"},{"name":"Samus","file":"http:\/\/spr.beegunslingers.com\/samus.4.spr"},{"name":"Soda Can","file":"http:\/\/spr.beegunslingers.com\/sodacan.1.spr"},{"name":"Static Link","file":"http:\/\/spr.beegunslingers.com\/staticlink.1.spr"},{"name":"Santa Link","file":"http:\/\/spr.beegunslingers.com\/santalink.1.spr"},{"name":"Super Bunny","file":"http:\/\/spr.beegunslingers.com\/superbunny.1.spr"},{"name":"Swatchy","file":"http:\/\/spr.beegunslingers.com\/swatchy.1.spr"},{"name":"Tingle","file":"http:\/\/spr.beegunslingers.com\/tingle.1.spr"},{"name":"Toad","file":"http:\/\/spr.beegunslingers.com\/toad.1.spr"},{"name":"Valeera","file":"http:\/\/spr.beegunslingers.com\/valeera.1.spr"},{"name":"Vitreous","file":"http:\/\/spr.beegunslingers.com\/vitreous.1.spr"},{"name":"Vivi","file":"http:\/\/spr.beegunslingers.com\/vivi.1.spr"},{"name":"Will","file":"http:\/\/spr.beegunslingers.com\/will.1.spr"},{"name":"Wizzrobe","file":"http:\/\/spr.beegunslingers.com\/wizzrobe.4.spr"},{"name":"Yunica","file":"http:\/\/spr.beegunslingers.com\/yunica.1.spr"},{"name":"Zelda","file":"http:\/\/spr.beegunslingers.com\/zelda.2.spr"},{"name":"Zero Suit Samus","file":"http:\/\/spr.beegunslingers.com\/zerosuitsamus.1.spr"},{"name":"Zora","file":"http:\/\/spr.beegunslingers.com\/zora.1.spr"}]''' - if __name__ == '__main__': guiMain() diff --git a/Plando.py b/Plando.py index 3908c06c..64a72afd 100644 --- a/Plando.py +++ b/Plando.py @@ -9,7 +9,7 @@ import sys from BaseClasses import World from Regions import create_regions from EntranceShuffle import link_entrances, connect_entrance, connect_two_way, connect_exit -from Rom import patch_rom, LocalRom, write_string_to_rom +from Rom import patch_rom, LocalRom, Sprite, write_string_to_rom from Rules import set_rules from Dungeons import create_dungeons from Items import ItemFactory @@ -75,7 +75,7 @@ def main(args): logger.info('Patching ROM.') if args.sprite is not None: - sprite = bytearray(open(args.sprite, 'rb').read()) + sprite = Sprite(args.sprite) else: sprite = None diff --git a/Rom.py b/Rom.py index eb860b55..ffe1b593 100644 --- a/Rom.py +++ b/Rom.py @@ -114,8 +114,8 @@ class Sprite(object): if len(filedata) == 0x7000: # sprite file with graphics and without palette data self.sprite = filedata[:0x7000] - self.palette = None - self.glove_palette = None + self.palette = list(self.default_palette) + self.glove_palette = list(self.default_glove_palette) elif len(filedata) == 0x7078: # sprite file with graphics and palette data self.sprite = filedata[:0x7000] @@ -142,11 +142,11 @@ class Sprite(object): return self.sprite = sprite if len(palette) == 0: - self.palette = None - self.glove_palette = None + self.palette = list(self.default_palette) + self.glove_palette = list(self.default_glove_palette) elif len(palette) == 0x78: self.palette = palette - self.glove_palette = None + self.glove_palette = list(self.default_glove_palette) elif len(palette) == 0x7C: self.palette = palette[:0x78] self.glove_palette = palette[0x78:] @@ -849,10 +849,8 @@ def write_sprite(rom, sprite): if not sprite.valid: return rom.write_bytes(0x80000, sprite.sprite) - if sprite.palette is not None: - rom.write_bytes(0xDD308, sprite.palette) - if sprite.glove_palette is not None: - rom.write_bytes(0xDEDF5, sprite.glove_palette) + rom.write_bytes(0xDD308, sprite.palette) + rom.write_bytes(0xDEDF5, sprite.glove_palette) def write_string_to_rom(rom, target, string): diff --git a/Zelda.sprite b/Zelda.sprite deleted file mode 100644 index 201e4c0e711eb9ae60f12414549d3cd62eb49187..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28672 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 xVqbc;v)lK>mK*zS=~#4X Date: Mon, 1 Jan 2018 11:50:35 -0500 Subject: [PATCH 13/24] Fix running on non-windows platforms Also remove incorrect comment --- GuiUtils.py | 5 ++++- Rom.py | 2 -- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/GuiUtils.py b/GuiUtils.py index f987a408..78e5121f 100644 --- a/GuiUtils.py +++ b/GuiUtils.py @@ -51,7 +51,10 @@ class BackgroundTaskProgress(BackgroundTask): self.window['padx'] = 5 self.window['pady'] = 5 - self.window.attributes("-toolwindow", 1) + try: + self.window.attributes("-toolwindow", 1) + except tk.TclError: + pass self.window.wm_title(title) self.label_var = tk.StringVar() diff --git a/Rom.py b/Rom.py index ffe1b593..b42b4154 100644 --- a/Rom.py +++ b/Rom.py @@ -472,8 +472,6 @@ def patch_rom(world, rom, hashtable, beep='normal', sprite=None): else: rom.write_bytes(0x180090, [0x04, 0x47, 0x03, 0x47, 0x02, 0x47, 0x04, 0x47]) - # TODO: FIXME: need to set capcity upgrade fills (2,3,0,0) for easy, (0,0,0,0) otherwise - # set up game internal RNG seed for i in range(1024): rom.write_byte(0x178000 + i, random.randint(0, 255)) From 23ea19017f2530bf6a1dc93f47f22ab39e53fd0f Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Mon, 1 Jan 2018 12:13:39 -0500 Subject: [PATCH 14/24] Fix json decoding Fix minor tooltip issue --- Gui.py | 2 +- GuiUtils.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Gui.py b/Gui.py index e197100d..5e86546d 100644 --- a/Gui.py +++ b/Gui.py @@ -457,7 +457,7 @@ class SpriteSelector(object): try: task.update_status("Downloading official sprites list") with urlopen('http://vt.alttp.run/sprites') as response: - sprites_arr = json.load(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) successful = False diff --git a/GuiUtils.py b/GuiUtils.py index 78e5121f..e9361632 100644 --- a/GuiUtils.py +++ b/GuiUtils.py @@ -109,6 +109,7 @@ class ToolTips(object): window = None active = 0 tag = None + after_id = None @classmethod def getcontroller(cls, widget): From d8a26fce53923d790d3d4cbe293908b5ee277019 Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Mon, 1 Jan 2018 12:59:20 -0500 Subject: [PATCH 15/24] Add link to open unofficial sprite folder --- Gui.py | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/Gui.py b/Gui.py index 5e86546d..07fa4e2e 100644 --- a/Gui.py +++ b/Gui.py @@ -105,13 +105,13 @@ def guiMain(args=None): nonlocal sprite if sprite_param is None or not sprite_param.valid: sprite = None - spriteNameVar.set('(default Link)') + spriteNameVar.set('(default)') else: sprite = sprite_param spriteNameVar.set(sprite.name) set_sprite(None) - spriteNameVar.set('(default Link)') + spriteNameVar.set('(default)') spriteEntry = Label(spriteDialogFrame, textvariable=spriteNameVar) def SpriteSelect(): @@ -399,8 +399,20 @@ class SpriteSelector(object): self.window['padx'] = 5 self.window['pady'] = 5 - self.icon_section('Official Sprites', self.official_sprite_dir+'/*', 'Official Sprites not found. Click "Update Official Sprites" to download them.') - self.icon_section('Unofficial Sprites', self.unofficial_sprite_dir+'/*', 'Put sprites in the Sprites/Unofficial folder to have them appear here.') + def open_unofficial_sprite_dir(_evt): + open_file(self.unofficial_sprite_dir) + + official_frametitle = Label(self.window, text='Official Sprites') + + unofficial_frametitle = Frame(self.window) + title_text = Label(unofficial_frametitle, text="Unofficial Sprites") + title_link = Label(unofficial_frametitle, text="(open)", fg="blue", cursor="hand2") + title_text.pack(side=LEFT) + title_link.pack(side=LEFT) + title_link.bind("", open_unofficial_sprite_dir) + + self.icon_section(official_frametitle, self.official_sprite_dir+'/*', 'Official Sprites not found. Click "Update Official Sprites" to download them.') + self.icon_section(unofficial_frametitle, self.unofficial_sprite_dir+'/*', 'Put sprites in the unofficial sprites folder (see open link above) to have them appear here.') frame = Frame(self.window) frame.pack(side=BOTTOM, fill=X, pady=5) @@ -418,7 +430,7 @@ class SpriteSelector(object): self.window.focus() def icon_section(self, frame_label, path, no_results_label): - frame = LabelFrame(self.window, text=frame_label, padx=5, pady=5) + frame = LabelFrame(self.window, labelwidget=frame_label, padx=5, pady=5) frame.pack(side=TOP, fill=X) i = 0 From b604179e51309878ad8f503b98902d400b0c6bdf Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Mon, 1 Jan 2018 13:11:11 -0500 Subject: [PATCH 16/24] Mark entry point files as executable for unix systems and add shebang lines --- Adjuster.py | 1 + EntranceRandomizer.py | 1 + Gui.py | 1 + Plando.py | 1 + 4 files changed, 4 insertions(+) mode change 100644 => 100755 Adjuster.py mode change 100644 => 100755 EntranceRandomizer.py mode change 100644 => 100755 Gui.py mode change 100644 => 100755 Plando.py diff --git a/Adjuster.py b/Adjuster.py old mode 100644 new mode 100755 index 4d5f2edb..57863f5a --- a/Adjuster.py +++ b/Adjuster.py @@ -1,3 +1,4 @@ +#!/usr/bin/env python3 import argparse import os import logging diff --git a/EntranceRandomizer.py b/EntranceRandomizer.py old mode 100644 new mode 100755 index bdd670ab..2368d76e --- a/EntranceRandomizer.py +++ b/EntranceRandomizer.py @@ -1,3 +1,4 @@ +#!/usr/bin/env python3 import argparse import os import logging diff --git a/Gui.py b/Gui.py old mode 100644 new mode 100755 index 07fa4e2e..3218c9aa --- a/Gui.py +++ b/Gui.py @@ -1,3 +1,4 @@ +#!/usr/bin/env python3 from argparse import Namespace from glob import glob import json diff --git a/Plando.py b/Plando.py old mode 100644 new mode 100755 index 64a72afd..d91ec44a --- a/Plando.py +++ b/Plando.py @@ -1,3 +1,4 @@ +#!/usr/bin/env python3 import argparse import hashlib import logging From a89260977e23312abce221d5b136fe29dcef539c Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Mon, 1 Jan 2018 13:16:15 -0500 Subject: [PATCH 17/24] Update official sprites --- data/sprites/official/santalink.1.spr | Bin 28792 -> 0 bytes data/sprites/official/santalink.2.spr | Bin 0 -> 28792 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 data/sprites/official/santalink.1.spr create mode 100644 data/sprites/official/santalink.2.spr diff --git a/data/sprites/official/santalink.1.spr b/data/sprites/official/santalink.1.spr deleted file mode 100644 index 81d1bacc1d2624c31c6eeb331fb0e90e54fd2836..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28792 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 diff --git a/data/sprites/official/santalink.2.spr b/data/sprites/official/santalink.2.spr new file mode 100644 index 0000000000000000000000000000000000000000..f8e782c8221802de264781e893b00771ea3c6ca7 GIT binary patch literal 28792 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 literal 0 HcmV?d00001 From e6d23b8700aee973fe9ebcf7fd9950845e519b59 Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Mon, 1 Jan 2018 14:42:23 -0500 Subject: [PATCH 18/24] Add some useful developer commands to Utils.py These can be used in the interactive python shell by importing Utils.py --- Utils.py | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/Utils.py b/Utils.py index 25489600..60ae3abd 100644 --- a/Utils.py +++ b/Utils.py @@ -72,3 +72,37 @@ def close_console(): ctypes.windll.kernel32.FreeConsole() except Exception: pass + +def new_logic_array(): + import random + l = list(range(256)) + random.SystemRandom().shuffle(l) + chunks = [l[i:i + 16] for i in range(0, len(l), 16)] + lines = [", ".join([str(j) for j in i]) for i in chunks] + print("logic_hash = ["+",\n ".join(lines)+"]") + +def make_new_base2current(old_rom='Zelda no Densetsu - Kamigami no Triforce (Japan).sfc', new_rom='working.sfc'): + from collections import OrderedDict + import json + import hashlib + with open(old_rom, 'rb') as stream: + old_rom_data = bytearray(stream.read()) + with open(new_rom, 'rb') as stream: + new_rom_data = bytearray(stream.read()) + # extend to 2 mb + old_rom_data.extend(bytearray([0x00] * (2097152 - len(old_rom_data)))) + + out_data = OrderedDict() + for idx, old in enumerate(old_rom_data): + new = new_rom_data[idx] + if old != new: + out_data[idx] = [int(new)] + for offset in reversed(list(out_data.keys())): + if offset - 1 in out_data: + out_data[offset-1].extend(out_data.pop(offset)) + with open('data/base2current.json', 'wt') as outfile: + json.dump([{key:value} for key, value in out_data.items()], outfile, separators=(",", ":")) + + basemd5 = hashlib.md5() + basemd5.update(new_rom_data) + return "New Rom Hash: " + basemd5.hexdigest() From 13c5050cd8472b63dcb251d03525c3ac32d595fc Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Mon, 1 Jan 2018 19:17:16 -0500 Subject: [PATCH 19/24] Update Flute Boy Text --- Items.py | 246 +++++++++++++++++++++++++++---------------------------- 1 file changed, 123 insertions(+), 123 deletions(-) diff --git a/Items.py b/Items.py index db659086..e121e721 100644 --- a/Items.py +++ b/Items.py @@ -23,48 +23,48 @@ def ItemFactory(items): # Format: Name: (Advancement, Priority, Type, ItemCode, Pedestal Hint Text, Pedestal Credit Text, Sick Kid Credit Text, Zora Credit Text, Witch Credit Text, Flute Boy Credit Text) -item_table = {'Bow': (True, False, None, 0x0B, 'You have\nchosen the\narcher class.', 'the stick and twine', 'arrow-slinging kid', 'arrow sling for sale', 'witch and robin hood', 'boy shoots again'), - 'Book of Mudora': (True, False, None, 0x1D, 'This is a\nparadox?!', 'and the story book', 'the scholarly kid', 'moon runes for sale', 'drugs for literacy', 'boy can read again'), +item_table = {'Bow': (True, False, None, 0x0B, 'You have\nchosen the\narcher class.', 'the stick and twine', 'arrow-slinging kid', 'arrow sling for sale', 'witch and robin hood', 'archer boy shoots again'), + 'Book of Mudora': (True, False, None, 0x1D, 'This is a\nparadox?!', 'and the story book', 'the scholarly kid', 'moon runes for sale', 'drugs for literacy', 'book-worm boy can read again'), 'Hammer': (True, False, None, 0x09, 'stop\nhammer time!', 'and m c hammer', 'hammer-smashing kid', 'm c hammer for sale', 'stop... hammer time', 'stop, hammer time'), - 'Hookshot': (True, False, None, 0x0A, 'BOING!!!\nBOING!!!\nBOING!!!', 'and the tickle beam', 'tickle-monster kid', 'tickle beam for sale', 'witch and tickle boy', 'boy tickles again'), - 'Magic Mirror': (True, False, None, 0x1A, 'Isn\'t your\nreflection so\npretty?', 'the face reflector', 'the narcissistic kid', 'your face for sale', 'trades looking-glass', 'boy sees himself again'), + 'Hookshot': (True, False, None, 0x0A, 'BOING!!!\nBOING!!!\nBOING!!!', 'and the tickle beam', 'tickle-monster kid', 'tickle beam for sale', 'witch and tickle boy', 'beam boy tickles again'), + 'Magic Mirror': (True, False, None, 0x1A, 'Isn\'t your\nreflection so\npretty?', 'the face reflector', 'the narcissistic kid', 'your face for sale', 'trades looking-glass', 'narcissistic boy is happy again'), 'Ocarina': (True, False, None, 0x14, 'Save the duck\nand fly to\nfreedom!', 'and the duck call', 'the duck-call kid', 'duck call for sale', 'duck-calls for trade', 'ocarina boy plays again'), - 'Pegasus Boots': (True, False, None, 0x4B, 'Gotta go fast!', 'and the sprint shoes', 'the running-man kid', 'sprint shoe for sale', 'shrooms for speed', 'boy runs again'), - 'Power Glove': (True, False, None, 0x1B, 'Now you can\nlift weak\nstuff!', 'and the grey mittens', 'body-building kid', 'lift glove for sale', 'fungus for gloves', 'boy lifts again'), - 'Cape': (True, False, None, 0x19, 'Wear this to\nbecome\ninvisible!', 'the camouflage cape', 'red riding-hood kid', 'red hood for sale', 'hood from a hood', 'boy hides again'), - 'Mushroom': (True, False, None, 0x29, 'I\'m a fun guy!\n\nI\'m a funghi!', 'and the legal drugs', 'the drug-dealing kid', 'legal drugs for sale', 'shroom swap', 'boy sells drugs again'), - 'Shovel': (True, False, None, 0x13, 'Can\n You\n Dig it?', 'and the fetch quest', 'archaeologist kid', 'dirt spade for sale', 'can you dig it', 'boy digs again'), - 'Lamp': (True, False, None, 0x12, 'Baby, baby,\nbaby.\nLight my way!', 'and the flashlight', 'light-shining kid', 'flashlight for sale', 'fungus for illumination', 'boy sees at night again'), - 'Magic Powder': (True, False, None, 0x0D, 'you can turn\nanti-faeries\ninto fairies', 'and the magic sack', 'the sack-holding kid', 'magic sack for sale', 'the witch and assistant', 'boy plays marbles again'), - 'Moon Pearl': (True, False, None, 0x1F, ' Bunny Link\n be\n gone!', 'and the jaw breaker', 'fortune-telling kid', 'lunar orb for sale', 'shrooms for moon rock', 'boy plays ball again'), - 'Cane of Somaria': (True, False, None, 0x15, 'I make blocks\nto hold down\nswitches!', 'and the red blocks', 'the block-making kid', 'block stick for sale', 'block stick for trade', 'boy makes blocks again'), - 'Fire Rod': (True, False, None, 0x07, 'I\'m the hot\nrod. I make\nthings burn!', 'and the flamethrower', 'fire-starting kid', 'rage rod for sale', 'fungus for rage-rod', 'boy burns again'), - 'Flippers': (True, False, None, 0x1E, 'fancy a swim?', 'and the toewebs', 'the swimming kid', 'finger webs for sale', 'shrooms let you swim', 'boy swims again'), - 'Ice Rod': (True, False, None, 0x08, 'I\'m the cold\nrod. I make\nthings freeze!', 'and the freeze ray', 'the ice-bending kid', 'freeze ray for sale', 'fungus for ice-rod', 'boy freezes again'), - 'Titans Mitts': (True, False, None, 0x1C, 'Now you can\nlift heavy\nstuff!', 'and the golden glove', 'body-building kid', 'carry glove for sale', 'fungus for bling-gloves', 'boy has bling again'), - 'Ether': (True, False, None, 0x10, 'This magic\ncoin freezes\neverything!', 'and the bolt coin', 'coin-collecting kid', 'bolt coin for sale', 'shrooms for bolt-coin', 'boy hides coin again'), - 'Bombos': (True, False, None, 0x0F, 'Burn, baby,\nburn! Fear my\nring of fire!', 'and the swirly coin', 'coin-collecting kid', 'swirly coin for sale', 'shrooms for swirly-coin', 'boy hides coin again'), - 'Quake': (True, False, None, 0x11, 'Maxing out the\nRichter scale\nis what I do!', 'and the wavy coin', 'coin-collecting kid', 'wavy coin for sale', 'shrooms for wavy-coin', 'boy hides coin again'), - 'Bottle': (True, False, None, 0x16, 'Now you can\nstore potions\nand stuff!', 'and the terrarium', 'the terrarium kid', 'terrarium for sale', 'special promotion', 'boy stores things again'), - 'Bottle (Red Potion)': (True, False, None, 0x2B, 'Hearty red goop!', 'and the red goo', 'the liquid kid', 'potion for sale', 'free samples', 'boy drinks again'), - 'Bottle (Green Potion)': (True, False, None, 0x2C, 'Refreshing green goop!', 'and the green goo', 'the liquid kid', 'potion for sale', 'free samples', 'boy drinks again'), - 'Bottle (Blue Potion)': (True, False, None, 0x2D, 'Delicious blue goop!', 'and the blue goo', 'the liquid kid', 'potion for sale', 'free samples', 'boy stores drinks again'), - 'Bottle (Fairy)': (True, False, None, 0x3D, 'Save me and I will revive you', 'and the captive', 'the tingle kid', 'hostage for sale', 'fairy dust and shrooms', 'boy revives again'), - 'Bottle (Bee)': (True, False, None, 0x3C, 'I will sting your foes a few times', 'and the sting buddy', 'the beekeeper kid', 'insect for sale', 'shroom pollenation', 'boy is stung again'), - 'Bottle (Good Bee)': (True, False, None, 0x48, 'I will sting your foes a whole lot!', 'and the sparkle sting', 'the beekeeper kid', 'insect for sale', 'shroom pollenation', 'boy is stung again'), - 'Master Sword': (True, False, None, 0x50, 'I beat barries and pigs alike', 'and the master sword', 'sword-wielding kid', 'glow sword for sale', 'fungus for blue slasher', 'boy fights again'), - 'Tempered Sword': (True, False, None, 0x02, 'I stole the\nblacksmith\'s\njob!', 'the tempered sword', 'sword-wielding kid', 'flame sword for sale', 'fungus for red slasher', 'boy fights again'), - 'Fighter Sword': (True, False, None, 0x49, 'A pathetic\nsword rests\nhere!', 'the tiny sword', 'sword-wielding kid', 'tiny sword for sale', 'fungus for tiny slasher', 'boy fights again'), - 'Golden Sword': (True, False, None, 0x03, 'The butter\nsword rests\nhere!', 'and the butter sword', 'sword-wielding kid', 'butter for sale', 'cap churned to butter', 'boy fights again'), - 'Progressive Sword': (True, False, None, 0x5E, 'a better copy\nof your sword\nfor your time', 'the unknown sword', 'sword-wielding kid', 'sword for sale', 'fungus for some slasher', 'boy fights again'), - 'Progressive Glove': (True, False, None, 0x61, 'a way to lift\nheavier things', 'and the lift upgrade', 'body-building kid', 'some glove for sale', 'fungus for gloves', 'boy lifts again'), - 'Silver Arrows': (True, False, None, 0x58, 'Do you fancy\nsilver tipped\narrows?', 'and the ganonsbane', 'ganon-killing kid', 'ganon doom for sale', 'fungus for pork', 'boy eats pork chops'), + 'Pegasus Boots': (True, False, None, 0x4B, 'Gotta go fast!', 'and the sprint shoes', 'the running-man kid', 'sprint shoe for sale', 'shrooms for speed', 'gotta-go-fast boy runs again'), + 'Power Glove': (True, False, None, 0x1B, 'Now you can\nlift weak\nstuff!', 'and the grey mittens', 'body-building kid', 'lift glove for sale', 'fungus for gloves', 'body-building boy lifts again'), + 'Cape': (True, False, None, 0x19, 'Wear this to\nbecome\ninvisible!', 'the camouflage cape', 'red riding-hood kid', 'red hood for sale', 'hood from a hood', 'dapper boy hides again'), + 'Mushroom': (True, False, None, 0x29, 'I\'m a fun guy!\n\nI\'m a funghi!', 'and the legal drugs', 'the drug-dealing kid', 'legal drugs for sale', 'shroom swap', 'shroom boy sells drugs again'), + 'Shovel': (True, False, None, 0x13, 'Can\n You\n Dig it?', 'and the fetch quest', 'archaeologist kid', 'dirt spade for sale', 'can you dig it', 'shovel boy digs again'), + 'Lamp': (True, False, None, 0x12, 'Baby, baby,\nbaby.\nLight my way!', 'and the flashlight', 'light-shining kid', 'flashlight for sale', 'fungus for illumination', 'illuminated boy can see again'), + 'Magic Powder': (True, False, None, 0x0D, 'you can turn\nanti-faeries\ninto fairies', 'and the magic sack', 'the sack-holding kid', 'magic sack for sale', 'the witch and assistant', 'magic boy plays marbles again'), + 'Moon Pearl': (True, False, None, 0x1F, ' Bunny Link\n be\n gone!', 'and the jaw breaker', 'fortune-telling kid', 'lunar orb for sale', 'shrooms for moon rock', 'moon boy plays ball again'), + 'Cane of Somaria': (True, False, None, 0x15, 'I make blocks\nto hold down\nswitches!', 'and the red blocks', 'the block-making kid', 'block stick for sale', 'block stick for trade', 'cane boy makes blocks again'), + 'Fire Rod': (True, False, None, 0x07, 'I\'m the hot\nrod. I make\nthings burn!', 'and the flamethrower', 'fire-starting kid', 'rage rod for sale', 'fungus for rage-rod', 'firestarter boy burns again'), + 'Flippers': (True, False, None, 0x1E, 'fancy a swim?', 'and the toewebs', 'the swimming kid', 'finger webs for sale', 'shrooms let you swim', 'swimming boy swims agai'), + 'Ice Rod': (True, False, None, 0x08, 'I\'m the cold\nrod. I make\nthings freeze!', 'and the freeze ray', 'the ice-bending kid', 'freeze ray for sale', 'fungus for ice-rod', 'ice-cube boy freezes again'), + 'Titans Mitts': (True, False, None, 0x1C, 'Now you can\nlift heavy\nstuff!', 'and the golden glove', 'body-building kid', 'carry glove for sale', 'fungus for bling-gloves', 'body-building boy has gold again'), + 'Ether': (True, False, None, 0x10, 'This magic\ncoin freezes\neverything!', 'and the bolt coin', 'coin-collecting kid', 'bolt coin for sale', 'shrooms for bolt-coin', 'medallion boy sees floor again'), + 'Bombos': (True, False, None, 0x0F, 'Burn, baby,\nburn! Fear my\nring of fire!', 'and the swirly coin', 'coin-collecting kid', 'swirly coin for sale', 'shrooms for swirly-coin', 'medallion boy melts room again'), + 'Quake': (True, False, None, 0x11, 'Maxing out the\nRichter scale\nis what I do!', 'and the wavy coin', 'coin-collecting kid', 'wavy coin for sale', 'shrooms for wavy-coin', 'medallion boy shakes dirt again'), + 'Bottle': (True, False, None, 0x16, 'Now you can\nstore potions\nand stuff!', 'and the terrarium', 'the terrarium kid', 'terrarium for sale', 'special promotion', 'bottle boy has terrarium again'), + 'Bottle (Red Potion)': (True, False, None, 0x2B, 'Hearty red goop!', 'and the red goo', 'the liquid kid', 'potion for sale', 'free samples', 'bottle boy has red goo again'), + 'Bottle (Green Potion)': (True, False, None, 0x2C, 'Refreshing green goop!', 'and the green goo', 'the liquid kid', 'potion for sale', 'free samples', 'bottle boy has green goo again'), + 'Bottle (Blue Potion)': (True, False, None, 0x2D, 'Delicious blue goop!', 'and the blue goo', 'the liquid kid', 'potion for sale', 'free samples', 'bottle boy has blue goo again'), + 'Bottle (Fairy)': (True, False, None, 0x3D, 'Save me and I will revive you', 'and the captive', 'the tingle kid', 'hostage for sale', 'fairy dust and shrooms', 'bottle boy has friend again'), + 'Bottle (Bee)': (True, False, None, 0x3C, 'I will sting your foes a few times', 'and the sting buddy', 'the beekeeper kid', 'insect for sale', 'shroom pollenation', 'bottle boy has mad bee again'), + 'Bottle (Good Bee)': (True, False, None, 0x48, 'I will sting your foes a whole lot!', 'and the sparkle sting', 'the beekeeper kid', 'insect for sale', 'shroom pollenation', 'bottle boy has beetor again'), + 'Master Sword': (True, False, None, 0x50, 'I beat barries and pigs alike', 'and the master sword', 'sword-wielding kid', 'glow sword for sale', 'fungus for blue slasher', 'sword boy fights again'), + 'Tempered Sword': (True, False, None, 0x02, 'I stole the\nblacksmith\'s\njob!', 'the tempered sword', 'sword-wielding kid', 'flame sword for sale', 'fungus for red slasher', 'sword boy fights again'), + 'Fighter Sword': (True, False, None, 0x49, 'A pathetic\nsword rests\nhere!', 'the tiny sword', 'sword-wielding kid', 'tiny sword for sale', 'fungus for tiny slasher', 'sword boy fights again'), + 'Golden Sword': (True, False, None, 0x03, 'The butter\nsword rests\nhere!', 'and the butter sword', 'sword-wielding kid', 'butter for sale', 'cap churned to butter', 'sword boy fights again'), + 'Progressive Sword': (True, False, None, 0x5E, 'a better copy\nof your sword\nfor your time', 'the unknown sword', 'sword-wielding kid', 'sword for sale', 'fungus for some slasher', 'sword boy fights again'), + 'Progressive Glove': (True, False, None, 0x61, 'a way to lift\nheavier things', 'and the lift upgrade', 'body-building kid', 'some glove for sale', 'fungus for gloves', 'body-building boy lifts again'), + 'Silver Arrows': (True, False, None, 0x58, 'Do you fancy\nsilver tipped\narrows?', 'and the ganonsbane', 'ganon-killing kid', 'ganon doom for sale', 'fungus for pork', 'archer boy shines again'), 'Green Pendant': (True, False, 'Crystal', [0x04, 0x38, 0x62, 0x00, 0x69, 0x01], None, None, None, None, None, None), 'Red Pendant': (True, False, 'Crystal', [0x02, 0x34, 0x60, 0x00, 0x69, 0x02], None, None, None, None, None, None), 'Blue Pendant': (True, False, 'Crystal', [0x01, 0x32, 0x60, 0x00, 0x69, 0x03], None, None, None, None, None, None), - 'Triforce': (True, False, None, 0x6A, '\n YOU WIN!', 'and the triforce', 'victorious kid', 'victory for sale', 'fungus for the win', 'boy wins again'), - 'Power Star': (True, False, None, 0x6B, 'a small victory', 'and the power star', 'star-struck kid', 'star for sale', 'see stars with shroom', 'boy sees stars again'), - 'Triforce Piece': (True, False, None, 0x6C, 'a small victory', 'and the thirdforce', 'triangular kid', 'triangle for sale', 'fungus for triangle', 'boy triangulates again'), + 'Triforce': (True, False, None, 0x6A, '\n YOU WIN!', 'and the triforce', 'victorious kid', 'victory for sale', 'fungus for the win', 'greedy boy wins game again'), + 'Power Star': (True, False, None, 0x6B, 'a small victory', 'and the power star', 'star-struck kid', 'star for sale', 'see stars with shroom', 'mario powers up again'), + 'Triforce Piece': (True, False, None, 0x6C, 'a small victory', 'and the thirdforce', 'triangular kid', 'triangle for sale', 'fungus for triangle', 'wise boy has triangle again'), 'Crystal 1': (True, False, 'Crystal', [0x02, 0x34, 0x64, 0x40, 0x7F, 0x06], None, None, None, None, None, None), 'Crystal 2': (True, False, 'Crystal', [0x10, 0x34, 0x64, 0x40, 0x79, 0x06], None, None, None, None, None, None), 'Crystal 3': (True, False, 'Crystal', [0x40, 0x34, 0x64, 0x40, 0x6C, 0x06], None, None, None, None, None, None), @@ -72,91 +72,91 @@ item_table = {'Bow': (True, False, None, 0x0B, 'You have\nchosen the\narcher cla 'Crystal 5': (True, False, 'Crystal', [0x04, 0x32, 0x64, 0x40, 0x6E, 0x06], None, None, None, None, None, None), 'Crystal 6': (True, False, 'Crystal', [0x01, 0x32, 0x64, 0x40, 0x6F, 0x06], None, None, None, None, None, None), 'Crystal 7': (True, False, 'Crystal', [0x08, 0x34, 0x64, 0x40, 0x7C, 0x06], None, None, None, None, None, None), - 'Single Arrow': (False, False, None, 0x43, 'a lonely arrow\nsits here.', 'and the arrow', 'stick-collecting kid', 'sewing kit for sale', 'fungus for arrow', 'boy sews again'), - 'Arrows (10)': (False, False, None, 0x44, 'This will give\nyou ten shots\nwith your bow!', 'and the arrow pack', 'stick-collecting kid', 'sewing kit for sale', 'fungus for arrows', 'boy sews again'), - 'Arrow Upgrade (+10)': (False, False, None, 0x54, 'increase arrow\nstorage, low\nlow price', 'and the quiver', 'quiver-enlarging kid', 'arrow boost for sale', 'witch and more skewers', 'boy sews more again'), - 'Arrow Upgrade (+5)': (False, False, None, 0x53, 'increase arrow\nstorage, low\nlow price', 'and the quiver', 'quiver-enlarging kid', 'arrow boost for sale', 'witch and more skewers', 'boy sews more again'), - 'Single Bomb': (False, False, None, 0x27, 'I make things\ngo BOOM! But\njust once.', 'and the explosion', 'the bomb-holding kid', 'firecracker for sale', 'blend fungus into bomb', 'boy explodes again'), - 'Bombs (3)': (False, False, None, 0x28, 'I make things\ngo triple\nBOOM!!!', 'and the explosions', 'the bomb-holding kid', 'firecrackers for sale', 'blend fungus into bombs', 'boy explodes again'), - 'Bomb Upgrade (+10)': (False, False, None, 0x52, 'increase bomb\nstorage, low\nlow price', 'and the bomb bag', 'boom-enlarging kid', 'bomb boost for sale', 'the shroom goes boom', 'boy explodes more again'), - 'Bomb Upgrade (+5)': (False, False, None, 0x51, 'increase bomb\nstorage, low\nlow price', 'and the bomb bag', 'boom-enlarging kid', 'bomb boost for sale', 'the shroom goes boom', 'boy explodes more again'), - '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', 'boy fears little 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', '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', 'boy fears less 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', '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', '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', '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', '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', 'boy defends again'), - 'Progressive Shield': (True, False, None, 0x5F, 'have a better\nblocker in\nfront of you', 'and the new shield', 'shield-wielding kid', 'shield for sale', 'fungus for shield', 'boy defends again'), - 'Bug Catching Net': (True, False, None, 0x21, 'Let\'s catch\nsome bees and\nfaeries!', 'and the bee catcher', 'the bug-catching kid', 'stick web for sale', 'fungus for butterflies', 'boy catches bees again'), - 'Cane of Byrna': (True, False, None, 0x18, 'Use this to\nbecome\ninvincible!', 'and the bad cane', 'the spark-making kid', 'spark stick for sale', 'spark-stick for trade', 'boy encircles again'), - 'Boss Heart Container': (False, False, None, 0x3E, 'Maximum health\nincreased!\nYeah!', 'and the full heart', 'the life-giving kid', 'love for sale', 'fungus for life', 'boy feels love again'), - 'Sanctuary Heart Container': (False, False, None, 0x3F, 'Maximum health\nincreased!\nYeah!', 'and the full heart', 'the life-giving kid', 'love for sale', 'fungus for life', 'boy feels love again'), - 'Piece of Heart': (False, False, None, 0x17, 'Just a little\npiece of love!', 'and the broken heart', 'the life-giving kid', 'little love for sale', 'fungus for life', 'boy feels love again'), - 'Rupee (1)': (False, False, None, 0x34, 'Just pocket\nchange. Move\nright along.', 'the pocket change', 'poverty-struck kid', 'life lesson for sale', 'buying cheap drugs', 'boy has snack again'), - 'Rupees (5)': (False, False, None, 0x35, 'Just pocket\nchange. Move\nright along.', 'the pocket change', 'poverty-struck kid', 'life lesson for sale', 'buying cheap drugs', 'boy has snack again'), - 'Rupees (20)': (False, False, None, 0x36, 'Just couch\ncash. Move\nright along.', 'and the couch cash', 'the piggy-bank kid', 'life lesson for sale', 'the witch buying drugs', 'boy has lunch again'), - 'Rupees (50)': (False, False, None, 0x41, 'A rupee pile!\nOkay?', 'and the rupee pile', 'the well-off kid', 'life lesson for sale', 'buying okay drugs', 'boy has dinner again'), - 'Rupees (100)': (False, False, None, 0x40, 'A rupee stash!\nHell yeah!', 'and the rupee stash', 'the kind-of-rich kid', 'life lesson for sale', 'buying good drugs', 'boy has buffet again'), - 'Rupees (300)': (False, False, None, 0x46, 'A rupee hoard!\nHell yeah!', 'and the rupee hoard', 'the really-rich kid', 'life lesson for sale', 'buying the best drugs', 'boy is rich again'), - 'Rupoor': (False, False, None, 0x59, 'a debt collector', 'and the toll-booth', 'the toll-booth kid', 'double loss for sale', 'witch stole your rupees', 'boy steals rupees again'), - 'Red Clock': (False, True, None, 0x5B, 'a waste of time', 'the ruby clock', 'the ruby-time kid', 'red time for sale', 'for ruby time', 'boy adjusts time again'), - 'Blue Clock': (False, True, None, 0x5C, 'a bit of time', 'the sapphire clock', 'sapphire-time kid', 'blue time for sale', 'for sapphire time', 'boy adjusts time again'), - 'Green Clock': (False, True, None, 0x5D, 'a lot of time', 'the emerald clock', 'the emerald-time kid', 'green time for sale', 'for emerald time', 'boy adjusts time again'), - 'Single RNG': (False, True, None, 0x62, 'something you don\'t yet have', None, None, None, None, None), - 'Multi RNG': (False, True, None, 0x63, 'something you may already have', None, None, None, None, None), - 'Magic Upgrade (1/2)': (True, False, None, 0x4E, 'Your magic\npower has been\ndoubled!', 'and the spell power', 'the magic-saving kid', 'wizardry for sale', 'mekalekahi mekahiney ho', 'boy saves magic again'), # can be required to beat mothula in an open seed in very very rare circumstance - 'Magic Upgrade (1/4)': (True, False, None, 0x4F, 'Your magic\npower has been\nquadrupled!', 'and the spell power', 'the magic-saving kid', 'wizardry for sale', 'mekalekahi mekahiney ho', 'boy saves magic again'), # can be required to beat mothula in an open seed in very very rare circumstance - 'Small Key (Eastern Palace)': (False, False, 'SmallKey', 0xA2, 'A small key to Armos Knights', 'and the key', 'the unlocking kid', 'keys for sale', 'unlock the fungus', 'boy opens door again'), - 'Big Key (Eastern Palace)': (False, False, 'BigKey', 0x9D, 'A big key to Armos Knights', 'and the big key', 'the big-unlock kid', 'big key for sale', 'face key fungus', 'boy opens chest again'), - 'Compass (Eastern Palace)': (False, True, 'Compass', 0x8D, 'Now you can find the Armos Knights!', 'and the compass', 'the magnetic kid', 'compass for sale', 'magnetic fungus', 'boy points north again'), - 'Map (Eastern Palace)': (False, True, 'Map', 0x7D, 'A tightly folded map rests here', 'and the map', 'cartography kid', 'map for sale', 'a map to shrooms', 'boy draws again'), - 'Small Key (Desert Palace)': (False, False, 'SmallKey', 0xA3, 'A small key to the desert', 'and the key', 'the unlocking kid', 'keys for sale', 'unlock the fungus', 'boy opens door again'), - 'Big Key (Desert Palace)': (False, False, 'BigKey', 0x9C, 'A big key to the desert', 'and the big key', 'the big-unlock kid', 'big key for sale', 'face key fungus', 'boy opens chest again'), - 'Compass (Desert Palace)': (False, True, 'Compass', 0x8C, 'Now you can find Lanmolas!', 'and the compass', 'the magnetic kid', 'compass for sale', 'magnetic fungus', 'boy points north again'), - 'Map (Desert Palace)': (False, True, 'Map', 0x7C, 'A tightly folded map rests here', 'and the map', 'cartography kid', 'map for sale', 'a map to shrooms', 'boy draws again'), - 'Small Key (Tower of Hera)': (False, False, 'SmallKey', 0xAA, 'A small key to Hera', 'and the key', 'the unlocking kid', 'keys for sale', 'unlock the fungus', 'boy opens door again'), - 'Big Key (Tower of Hera)': (False, False, 'BigKey', 0x95, 'A big key to Hera', 'and the big key', 'the big-unlock kid', 'big key for sale', 'face key fungus', 'boy opens chest again'), - 'Compass (Tower of Hera)': (False, True, 'Compass', 0x85, 'Now you can find Moldorm!', 'and the compass', 'the magnetic kid', 'compass for sale', 'magnetic fungus', 'boy points north again'), - 'Map (Tower of Hera)': (False, True, 'Map', 0x75, 'A tightly folded map rests here', 'and the map', 'cartography kid', 'map for sale', 'a map to shrooms', 'boy draws again'), - 'Small Key (Escape)': (False, False, 'SmallKey', 0xA0, 'A small key to the castle', 'and the key', 'the unlocking kid', 'keys for sale', 'unlock the fungus', 'boy opens door again'), - 'Big Key (Escape)': (False, False, 'BigKey', 0x9F, 'A big key to the castle', 'and the big key', 'the big-unlock kid', 'big key for sale', 'face key fungus', 'boy opens chest again'), - 'Compass (Escape)': (False, True, 'Compass', 0x8F, 'Now you can find no boss!', 'and the compass', 'the magnetic kid', 'compass for sale', 'magnetic fungus', 'boy points north again'), - 'Map (Escape)': (False, True, 'Map', 0x7F, 'A tightly folded map rests here', 'and the map', 'cartography kid', 'map for sale', 'a map to shrooms', 'boy draws again'), - 'Small Key (Agahnims Tower)': (False, False, 'SmallKey', 0xA4, 'A small key to Agahnim', 'and the key', 'the unlocking kid', 'keys for sale', 'unlock the fungus', 'boy opens door again'), - 'Small Key (Palace of Darkness)': (False, False, 'SmallKey', 0xA6, 'A small key to darkness', 'and the key', 'the unlocking kid', 'keys for sale', 'unlock the fungus', 'boy opens door again'), - 'Big Key (Palace of Darkness)': (False, False, 'BigKey', 0x99, 'A big key to darkness', 'and the big key', 'the big-unlock kid', 'big key for sale', 'face key fungus', 'boy opens chest again'), - 'Compass (Palace of Darkness)': (False, True, 'Compass', 0x89, 'Now you can find Helmasaur King!', 'and the compass', 'the magnetic kid', 'compass for sale', 'magnetic fungus', 'boy points north again'), - 'Map (Palace of Darkness)': (False, True, 'Map', 0x79, 'A tightly folded map rests here', 'and the map', 'cartography kid', 'map for sale', 'a map to shrooms', 'boy draws again'), - 'Small Key (Thieves Town)': (False, False, 'SmallKey', 0xAB, 'A small key to thievery', 'and the key', 'the unlocking kid', 'keys for sale', 'unlock the fungus', 'boy opens door again'), - 'Big Key (Thieves Town)': (False, False, 'BigKey', 0x94, 'A big key to thievery', 'and the big key', 'the big-unlock kid', 'big key for sale', 'face key fungus', 'boy opens chest again'), - 'Compass (Thieves Town)': (False, True, 'Compass', 0x84, 'Now you can find Blind!', 'and the compass', 'the magnetic kid', 'compass for sale', 'magnetic fungus', 'boy points north again'), - 'Map (Thieves Town)': (False, True, 'Map', 0x74, 'A tightly folded map rests here', 'and the map', 'cartography kid', 'map for sale', 'a map to shrooms', 'boy draws again'), - 'Small Key (Skull Woods)': (False, False, 'SmallKey', 0xA8, 'A small key to the woods', 'and the key', 'the unlocking kid', 'keys for sale', 'unlock the fungus', 'boy opens door again'), - 'Big Key (Skull Woods)': (False, False, 'BigKey', 0x97, 'A big key to the woods', 'and the big key', 'the big-unlock kid', 'big key for sale', 'face key fungus', 'boy opens chest again'), - 'Compass (Skull Woods)': (False, True, 'Compass', 0x87, 'Now you can find Mothula!', 'and the compass', 'the magnetic kid', 'compass for sale', 'magnetic fungus', 'boy points north again'), - 'Map (Skull Woods)': (False, True, 'Map', 0x77, 'A tightly folded map rests here', 'and the map', 'cartography kid', 'map for sale', 'a map to shrooms', 'boy draws again'), - 'Small Key (Swamp Palace)': (False, False, 'SmallKey', 0xA5, 'A small key to the swamp', 'and the key', 'the unlocking kid', 'keys for sale', 'unlock the fungus', 'boy opens door again'), - 'Big Key (Swamp Palace)': (False, False, 'BigKey', 0x9A, 'A big key to the swamp', 'and the big key', 'the big-unlock kid', 'big key for sale', 'face key fungus', 'boy opens chest again'), - 'Compass (Swamp Palace)': (False, True, 'Compass', 0x8A, 'Now you can find Arrghus!', 'and the compass', 'the magnetic kid', 'compass for sale', 'magnetic fungus', 'boy points north again'), - 'Map (Swamp Palace)': (False, True, 'Map', 0x7A, 'A tightly folded map rests here', 'and the map', 'cartography kid', 'map for sale', 'a map to shrooms', 'boy draws again'), - 'Small Key (Ice Palace)': (False, False, 'SmallKey', 0xA9, 'A small key to the iceberg', 'and the key', 'the unlocking kid', 'keys for sale', 'unlock the fungus', 'boy opens door again'), - 'Big Key (Ice Palace)': (False, False, 'BigKey', 0x96, 'A big key to the iceberg', 'and the big key', 'the big-unlock kid', 'big key for sale', 'face key fungus', 'boy opens chest again'), - 'Compass (Ice Palace)': (False, True, 'Compass', 0x86, 'Now you can find Kholdstare!', 'and the compass', 'the magnetic kid', 'compass for sale', 'magnetic fungus', 'boy points north again'), - 'Map (Ice Palace)': (False, True, 'Map', 0x76, 'A tightly folded map rests here', 'and the map', 'cartography kid', 'map for sale', 'a map to shrooms', 'boy draws again'), - 'Small Key (Misery Mire)': (False, False, 'SmallKey', 0xA7, 'A small key to the mire', 'and the key', 'the unlocking kid', 'keys for sale', 'unlock the fungus', 'boy opens door again'), - 'Big Key (Misery Mire)': (False, False, 'BigKey', 0x98, 'A big key to the mire', 'and the big key', 'the big-unlock kid', 'big key for sale', 'face key fungus', 'boy opens chest again'), - 'Compass (Misery Mire)': (False, True, 'Compass', 0x88, 'Now you can find Vitreous!', 'and the compass', 'the magnetic kid', 'compass for sale', 'magnetic fungus', 'boy points north again'), - 'Map (Misery Mire)': (False, True, 'Map', 0x78, 'A tightly folded map rests here', 'and the map', 'cartography kid', 'map for sale', 'a map to shrooms', 'boy draws again'), - 'Small Key (Turtle Rock)': (False, False, 'SmallKey', 0xAC, 'A small key to the pipe maze', 'and the key', 'the unlocking kid', 'keys for sale', 'unlock the fungus', 'boy opens door again'), - 'Big Key (Turtle Rock)': (False, False, 'BigKey', 0x93, 'A big key to the pipe maze', 'and the big key', 'the big-unlock kid', 'big key for sale', 'face key fungus', 'boy opens chest again'), - 'Compass (Turtle Rock)': (False, True, 'Compass', 0x83, 'Now you can find Trinexx!', 'and the compass', 'the magnetic kid', 'compass for sale', 'magnetic fungus', 'boy points north again'), - 'Map (Turtle Rock)': (False, True, 'Map', 0x73, 'A tightly folded map rests here', 'and the map', 'cartography kid', 'map for sale', 'a map to shrooms', 'boy draws again'), - 'Small Key (Ganons Tower)': (False, False, 'SmallKey', 0xAD, 'A small key to the evil tower', 'and the key', 'the unlocking kid', 'keys for sale', 'unlock the fungus', 'boy opens door again'), - 'Big Key (Ganons Tower)': (False, False, 'BigKey', 0x92, 'A big key to the evil tower', 'and the big key', 'the big-unlock kid', 'big key for sale', 'face key fungus', 'boy opens chest again'), - 'Compass (Ganons Tower)': (False, True, 'Compass', 0x82, 'Now you can find Agahnim!', 'and the compass', 'the magnetic kid', 'compass for sale', 'magnetic fungus', 'boy points north again'), - 'Map (Ganons Tower)': (False, True, 'Map', 0x72, 'A tightly folded map rests here', 'and the map', 'cartography kid', 'map for sale', 'a map to shrooms', 'boy draws again'), - 'Nothing': (False, False, None, 0x5A, 'Some Hot Air', 'and the Nothing', 'the zen kid', 'outright theft', 'shroom theft', 'boy is bored again'), + 'Single Arrow': (False, False, None, 0x43, 'a lonely arrow\nsits here.', 'and the arrow', 'stick-collecting kid', 'sewing kit for sale', 'fungus for arrow', 'archer boy sews again'), + 'Arrows (10)': (False, False, None, 0x44, 'This will give\nyou ten shots\nwith your bow!', 'and the arrow pack', 'stick-collecting kid', 'sewing kit for sale', 'fungus for arrows', 'archer boy sews again'), + 'Arrow Upgrade (+10)': (False, False, None, 0x54, 'increase arrow\nstorage, low\nlow price', 'and the quiver', 'quiver-enlarging kid', 'arrow boost for sale', 'witch and more skewers', 'upgrade boy sews more again'), + 'Arrow Upgrade (+5)': (False, False, None, 0x53, 'increase arrow\nstorage, low\nlow price', 'and the quiver', 'quiver-enlarging kid', 'arrow boost for sale', 'witch and more skewers', 'upgrade boy sews more again'), + 'Single Bomb': (False, False, None, 0x27, 'I make things\ngo BOOM! But\njust once.', 'and the explosion', 'the bomb-holding kid', 'firecracker for sale', 'blend fungus into bomb', '\'splosion boy explodes again'), + 'Bombs (3)': (False, False, None, 0x28, 'I make things\ngo triple\nBOOM!!!', 'and the explosions', 'the bomb-holding kid', 'firecrackers for sale', 'blend fungus into bombs', '\'splosion boy explodes again'), + 'Bomb Upgrade (+10)': (False, False, None, 0x52, 'increase bomb\nstorage, low\nlow price', 'and the bomb bag', 'boom-enlarging kid', 'bomb boost for sale', 'the shroom goes boom', 'upgrade boy explodes more again'), + 'Bomb Upgrade (+5)': (False, False, None, 0x51, 'increase bomb\nstorage, low\nlow price', 'and the bomb bag', 'boom-enlarging kid', 'bomb boost for sale', 'the shroom goes boom', 'upgrade boy explodes more again'), + '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 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'), + 'Progressive Shield': (True, False, None, 0x5F, 'have a better\nblocker in\nfront of you', 'and the new shield', 'shield-wielding kid', 'shield for sale', 'fungus for shield', 'shield boy defends again'), + 'Bug Catching Net': (True, False, None, 0x21, 'Let\'s catch\nsome bees and\nfaeries!', 'and the bee catcher', 'the bug-catching kid', 'stick web for sale', 'fungus for butterflies', 'wrong boy catches bees again'), + 'Cane of Byrna': (True, False, None, 0x18, 'Use this to\nbecome\ninvincible!', 'and the bad cane', 'the spark-making kid', 'spark stick for sale', 'spark-stick for trade', 'cane boy encircles again'), + 'Boss Heart Container': (False, False, None, 0x3E, 'Maximum health\nincreased!\nYeah!', 'and the full heart', 'the life-giving kid', 'love for sale', 'fungus for life', 'life boy feels love again'), + 'Sanctuary Heart Container': (False, False, None, 0x3F, 'Maximum health\nincreased!\nYeah!', 'and the full heart', 'the life-giving kid', 'love for sale', 'fungus for life', 'life boy feels love again'), + 'Piece of Heart': (False, False, None, 0x17, 'Just a little\npiece of love!', 'and the broken heart', 'the life-giving kid', 'little love for sale', 'fungus for life', 'life boy feels some love again"'), + 'Rupee (1)': (False, False, None, 0x34, 'Just pocket\nchange. Move\nright along.', 'the pocket change', 'poverty-struck kid', 'life lesson for sale', 'buying cheap drugs', 'destitute boy has snack again'), + 'Rupees (5)': (False, False, None, 0x35, 'Just pocket\nchange. Move\nright along.', 'the pocket change', 'poverty-struck kid', 'life lesson for sale', 'buying cheap drugs', 'destitute boy has snack again'), + 'Rupees (20)': (False, False, None, 0x36, 'Just couch\ncash. Move\nright along.', 'and the couch cash', 'the piggy-bank kid', 'life lesson for sale', 'the witch buying drugs', 'destitute boy has lunch again'), + 'Rupees (50)': (False, False, None, 0x41, 'A rupee pile!\nOkay?', 'and the rupee pile', 'the well-off kid', 'life lesson for sale', 'buying okay drugs', 'destitute boy has dinner again'), + 'Rupees (100)': (False, False, None, 0x40, 'A rupee stash!\nHell yeah!', 'and the rupee stash', 'the kind-of-rich kid', 'life lesson for sale', 'buying good drugs', 'affluent boy goes drinking again'), + 'Rupees (300)': (False, False, None, 0x46, 'A rupee hoard!\nHell yeah!', 'and the rupee hoard', 'the really-rich kid', 'life lesson for sale', 'buying the best drugs', 'fat-cat boy is rich again'), + 'Rupoor': (False, False, None, 0x59, 'a debt collector', 'and the toll-booth', 'the toll-booth kid', 'double loss for sale', 'witch stole your rupees', 'affluent boy steals rupees'), + 'Red Clock': (False, True, None, 0x5B, 'a waste of time', 'the ruby clock', 'the ruby-time kid', 'red time for sale', 'for ruby time', 'moment boy travels time again'), + 'Blue Clock': (False, True, None, 0x5C, 'a bit of time', 'the sapphire clock', 'sapphire-time kid', 'blue time for sale', 'for sapphire time', 'moment boy time travels again'), + 'Green Clock': (False, True, None, 0x5D, 'a lot of time', 'the emerald clock', 'the emerald-time kid', 'green time for sale', 'for emerald time', 'moment boy adjusts time again'), + 'Single RNG': (False, True, None, 0x62, 'something you don\'t yet have', None, None, None, None, 'unknown boy somethings again'), + 'Multi RNG': (False, True, None, 0x63, 'something you may already have', None, None, None, None, 'unknown boy somethings again'), + 'Magic Upgrade (1/2)': (True, False, None, 0x4E, 'Your magic\npower has been\ndoubled!', 'and the spell power', 'the magic-saving kid', 'wizardry for sale', 'mekalekahi mekahiney ho', 'magic boy saves magic again'), # can be required to beat mothula in an open seed in very very rare circumstance + 'Magic Upgrade (1/4)': (True, False, None, 0x4F, 'Your magic\npower has been\nquadrupled!', 'and the spell power', 'the magic-saving kid', 'wizardry for sale', 'mekalekahi mekahiney ho', 'magic boy saves magic again'), # can be required to beat mothula in an open seed in very very rare circumstance + 'Small Key (Eastern Palace)': (False, False, 'SmallKey', 0xA2, 'A small key to Armos Knights', 'and the key', 'the unlocking kid', 'keys for sale', 'unlock the fungus', 'key boy opens door again'), + 'Big Key (Eastern Palace)': (False, False, 'BigKey', 0x9D, 'A big key to Armos Knights', 'and the big key', 'the big-unlock kid', 'big key for sale', 'face key fungus', 'key boy opens chest again'), + 'Compass (Eastern Palace)': (False, True, 'Compass', 0x8D, 'Now you can find the Armos Knights!', 'and the compass', 'the magnetic kid', 'compass for sale', 'magnetic fungus', 'compass boy finds boss again'), + 'Map (Eastern Palace)': (False, True, 'Map', 0x7D, 'A tightly folded map rests here', 'and the map', 'cartography kid', 'map for sale', 'a map to shrooms', 'map boy navigates again'), + 'Small Key (Desert Palace)': (False, False, 'SmallKey', 0xA3, 'A small key to the desert', 'and the key', 'the unlocking kid', 'keys for sale', 'unlock the fungus', 'key boy opens door again'), + 'Big Key (Desert Palace)': (False, False, 'BigKey', 0x9C, 'A big key to the desert', 'and the big key', 'the big-unlock kid', 'big key for sale', 'face key fungus', 'key boy opens chest again'), + 'Compass (Desert Palace)': (False, True, 'Compass', 0x8C, 'Now you can find Lanmolas!', 'and the compass', 'the magnetic kid', 'compass for sale', 'magnetic fungus', 'compass boy finds boss again'), + 'Map (Desert Palace)': (False, True, 'Map', 0x7C, 'A tightly folded map rests here', 'and the map', 'cartography kid', 'map for sale', 'a map to shrooms', 'map boy navigates again'), + 'Small Key (Tower of Hera)': (False, False, 'SmallKey', 0xAA, 'A small key to Hera', 'and the key', 'the unlocking kid', 'keys for sale', 'unlock the fungus', 'key boy opens door again'), + 'Big Key (Tower of Hera)': (False, False, 'BigKey', 0x95, 'A big key to Hera', 'and the big key', 'the big-unlock kid', 'big key for sale', 'face key fungus', 'key boy opens chest again'), + 'Compass (Tower of Hera)': (False, True, 'Compass', 0x85, 'Now you can find Moldorm!', 'and the compass', 'the magnetic kid', 'compass for sale', 'magnetic fungus', 'compass boy finds boss again'), + 'Map (Tower of Hera)': (False, True, 'Map', 0x75, 'A tightly folded map rests here', 'and the map', 'cartography kid', 'map for sale', 'a map to shrooms', 'map boy navigates again'), + 'Small Key (Escape)': (False, False, 'SmallKey', 0xA0, 'A small key to the castle', 'and the key', 'the unlocking kid', 'keys for sale', 'unlock the fungus', 'key boy opens door again'), + 'Big Key (Escape)': (False, False, 'BigKey', 0x9F, 'A big key to the castle', 'and the big key', 'the big-unlock kid', 'big key for sale', 'face key fungus', 'key boy opens chest again'), + 'Compass (Escape)': (False, True, 'Compass', 0x8F, 'Now you can find no boss!', 'and the compass', 'the magnetic kid', 'compass for sale', 'magnetic fungus', 'compass boy finds boss again'), + 'Map (Escape)': (False, True, 'Map', 0x7F, 'A tightly folded map rests here', 'and the map', 'cartography kid', 'map for sale', 'a map to shrooms', 'map boy navigates again'), + 'Small Key (Agahnims Tower)': (False, False, 'SmallKey', 0xA4, 'A small key to Agahnim', 'and the key', 'the unlocking kid', 'keys for sale', 'unlock the fungus', 'key boy opens door again'), + 'Small Key (Palace of Darkness)': (False, False, 'SmallKey', 0xA6, 'A small key to darkness', 'and the key', 'the unlocking kid', 'keys for sale', 'unlock the fungus', 'key boy opens door again'), + 'Big Key (Palace of Darkness)': (False, False, 'BigKey', 0x99, 'A big key to darkness', 'and the big key', 'the big-unlock kid', 'big key for sale', 'face key fungus', 'key boy opens chest again'), + 'Compass (Palace of Darkness)': (False, True, 'Compass', 0x89, 'Now you can find Helmasaur King!', 'and the compass', 'the magnetic kid', 'compass for sale', 'magnetic fungus', 'compass boy finds boss again'), + 'Map (Palace of Darkness)': (False, True, 'Map', 0x79, 'A tightly folded map rests here', 'and the map', 'cartography kid', 'map for sale', 'a map to shrooms', 'map boy navigates again'), + 'Small Key (Thieves Town)': (False, False, 'SmallKey', 0xAB, 'A small key to thievery', 'and the key', 'the unlocking kid', 'keys for sale', 'unlock the fungus', 'key boy opens door again'), + 'Big Key (Thieves Town)': (False, False, 'BigKey', 0x94, 'A big key to thievery', 'and the big key', 'the big-unlock kid', 'big key for sale', 'face key fungus', 'key boy opens chest again'), + 'Compass (Thieves Town)': (False, True, 'Compass', 0x84, 'Now you can find Blind!', 'and the compass', 'the magnetic kid', 'compass for sale', 'magnetic fungus', 'compass boy finds boss again'), + 'Map (Thieves Town)': (False, True, 'Map', 0x74, 'A tightly folded map rests here', 'and the map', 'cartography kid', 'map for sale', 'a map to shrooms', 'map boy navigates again'), + 'Small Key (Skull Woods)': (False, False, 'SmallKey', 0xA8, 'A small key to the woods', 'and the key', 'the unlocking kid', 'keys for sale', 'unlock the fungus', 'key boy opens door again'), + 'Big Key (Skull Woods)': (False, False, 'BigKey', 0x97, 'A big key to the woods', 'and the big key', 'the big-unlock kid', 'big key for sale', 'face key fungus', 'key boy opens chest again'), + 'Compass (Skull Woods)': (False, True, 'Compass', 0x87, 'Now you can find Mothula!', 'and the compass', 'the magnetic kid', 'compass for sale', 'magnetic fungus', 'compass boy finds boss again'), + 'Map (Skull Woods)': (False, True, 'Map', 0x77, 'A tightly folded map rests here', 'and the map', 'cartography kid', 'map for sale', 'a map to shrooms', 'map boy navigates again'), + 'Small Key (Swamp Palace)': (False, False, 'SmallKey', 0xA5, 'A small key to the swamp', 'and the key', 'the unlocking kid', 'keys for sale', 'unlock the fungus', 'key boy opens door again'), + 'Big Key (Swamp Palace)': (False, False, 'BigKey', 0x9A, 'A big key to the swamp', 'and the big key', 'the big-unlock kid', 'big key for sale', 'face key fungus', 'key boy opens chest again'), + 'Compass (Swamp Palace)': (False, True, 'Compass', 0x8A, 'Now you can find Arrghus!', 'and the compass', 'the magnetic kid', 'compass for sale', 'magnetic fungus', 'compass boy finds boss again'), + 'Map (Swamp Palace)': (False, True, 'Map', 0x7A, 'A tightly folded map rests here', 'and the map', 'cartography kid', 'map for sale', 'a map to shrooms', 'map boy navigates again'), + 'Small Key (Ice Palace)': (False, False, 'SmallKey', 0xA9, 'A small key to the iceberg', 'and the key', 'the unlocking kid', 'keys for sale', 'unlock the fungus', 'key boy opens door again'), + 'Big Key (Ice Palace)': (False, False, 'BigKey', 0x96, 'A big key to the iceberg', 'and the big key', 'the big-unlock kid', 'big key for sale', 'face key fungus', 'key boy opens chest again'), + 'Compass (Ice Palace)': (False, True, 'Compass', 0x86, 'Now you can find Kholdstare!', 'and the compass', 'the magnetic kid', 'compass for sale', 'magnetic fungus', 'compass boy finds boss again'), + 'Map (Ice Palace)': (False, True, 'Map', 0x76, 'A tightly folded map rests here', 'and the map', 'cartography kid', 'map for sale', 'a map to shrooms', 'map boy navigates again'), + 'Small Key (Misery Mire)': (False, False, 'SmallKey', 0xA7, 'A small key to the mire', 'and the key', 'the unlocking kid', 'keys for sale', 'unlock the fungus', 'key boy opens door again'), + 'Big Key (Misery Mire)': (False, False, 'BigKey', 0x98, 'A big key to the mire', 'and the big key', 'the big-unlock kid', 'big key for sale', 'face key fungus', 'key boy opens chest again'), + 'Compass (Misery Mire)': (False, True, 'Compass', 0x88, 'Now you can find Vitreous!', 'and the compass', 'the magnetic kid', 'compass for sale', 'magnetic fungus', 'compass boy finds boss again'), + 'Map (Misery Mire)': (False, True, 'Map', 0x78, 'A tightly folded map rests here', 'and the map', 'cartography kid', 'map for sale', 'a map to shrooms', 'map boy navigates again'), + 'Small Key (Turtle Rock)': (False, False, 'SmallKey', 0xAC, 'A small key to the pipe maze', 'and the key', 'the unlocking kid', 'keys for sale', 'unlock the fungus', 'key boy opens door again'), + 'Big Key (Turtle Rock)': (False, False, 'BigKey', 0x93, 'A big key to the pipe maze', 'and the big key', 'the big-unlock kid', 'big key for sale', 'face key fungus', 'key boy opens chest again'), + 'Compass (Turtle Rock)': (False, True, 'Compass', 0x83, 'Now you can find Trinexx!', 'and the compass', 'the magnetic kid', 'compass for sale', 'magnetic fungus', 'compass boy finds boss again'), + 'Map (Turtle Rock)': (False, True, 'Map', 0x73, 'A tightly folded map rests here', 'and the map', 'cartography kid', 'map for sale', 'a map to shrooms', 'map boy navigates again'), + 'Small Key (Ganons Tower)': (False, False, 'SmallKey', 0xAD, 'A small key to the evil tower', 'and the key', 'the unlocking kid', 'keys for sale', 'unlock the fungus', 'key boy opens door again'), + 'Big Key (Ganons Tower)': (False, False, 'BigKey', 0x92, 'A big key to the evil tower', 'and the big key', 'the big-unlock kid', 'big key for sale', 'face key fungus', 'key boy opens chest again'), + 'Compass (Ganons Tower)': (False, True, 'Compass', 0x82, 'Now you can find Agahnim!', 'and the compass', 'the magnetic kid', 'compass for sale', 'magnetic fungus', 'compass boy finds boss again'), + 'Map (Ganons Tower)': (False, True, 'Map', 0x72, 'A tightly folded map rests here', 'and the map', 'cartography kid', 'map for sale', 'a map to shrooms', 'map boy navigates again'), + 'Nothing': (False, False, None, 0x5A, 'Some Hot Air', 'and the Nothing', 'the zen kid', 'outright theft', 'shroom theft', 'empty boy is bored again'), 'Beat Agahnim 1': (True, False, 'Event', None, None, None, None, None, None, None), 'Beat Agahnim 2': (True, False, 'Event', None, None, None, None, None, None, None)} From 1c587f9ce1e357804e1802b28f67344a9435d68a Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Mon, 1 Jan 2018 21:17:17 -0500 Subject: [PATCH 20/24] Update various texts Especially the puns. which now have more variety --- Items.py | 2 +- Rom.py | 5 +- Text.py | 261 ++++++++++++++++++++++++++++++++++++++++++++++++++----- 3 files changed, 244 insertions(+), 24 deletions(-) diff --git a/Items.py b/Items.py index e121e721..01597ece 100644 --- a/Items.py +++ b/Items.py @@ -35,7 +35,7 @@ item_table = {'Bow': (True, False, None, 0x0B, 'You have\nchosen the\narcher cla 'Mushroom': (True, False, None, 0x29, 'I\'m a fun guy!\n\nI\'m a funghi!', 'and the legal drugs', 'the drug-dealing kid', 'legal drugs for sale', 'shroom swap', 'shroom boy sells drugs again'), 'Shovel': (True, False, None, 0x13, 'Can\n You\n Dig it?', 'and the fetch quest', 'archaeologist kid', 'dirt spade for sale', 'can you dig it', 'shovel boy digs again'), 'Lamp': (True, False, None, 0x12, 'Baby, baby,\nbaby.\nLight my way!', 'and the flashlight', 'light-shining kid', 'flashlight for sale', 'fungus for illumination', 'illuminated boy can see again'), - 'Magic Powder': (True, False, None, 0x0D, 'you can turn\nanti-faeries\ninto fairies', 'and the magic sack', 'the sack-holding kid', 'magic sack for sale', 'the witch and assistant', 'magic boy plays marbles again'), + 'Magic Powder': (True, False, None, 0x0D, 'you can turn\nanti-faeries\ninto faeries', 'and the magic sack', 'the sack-holding kid', 'magic sack for sale', 'the witch and assistant', 'magic boy plays marbles again'), 'Moon Pearl': (True, False, None, 0x1F, ' Bunny Link\n be\n gone!', 'and the jaw breaker', 'fortune-telling kid', 'lunar orb for sale', 'shrooms for moon rock', 'moon boy plays ball again'), 'Cane of Somaria': (True, False, None, 0x15, 'I make blocks\nto hold down\nswitches!', 'and the red blocks', 'the block-making kid', 'block stick for sale', 'block stick for trade', 'cane boy makes blocks again'), 'Fire Rod': (True, False, None, 0x07, 'I\'m the hot\nrod. I make\nthings burn!', 'and the flamethrower', 'fire-starting kid', 'rage rod for sale', 'fungus for rage-rod', 'firestarter boy burns again'), diff --git a/Rom.py b/Rom.py index b42b4154..03040ac2 100644 --- a/Rom.py +++ b/Rom.py @@ -9,7 +9,7 @@ import random from Dungeons import dungeon_music_addresses from Text import string_to_alttp_text, text_addresses, Credits 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 +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 @@ -911,7 +911,8 @@ def write_strings(rom, world): credits.update_credits_line('castle', 0, random.choice(KingsReturn_texts)) credits.update_credits_line('sancturary', 0, random.choice(Sanctuary_texts)) - credits.update_credits_line('kakariko', 0, random.choice(Kakariko_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)) credits.update_credits_line('hera', 0, random.choice(MountainTower_texts)) credits.update_credits_line('house', 0, random.choice(LinksHouse_texts)) diff --git a/Text.py b/Text.py index 1e54562c..a619a22a 100644 --- a/Text.py +++ b/Text.py @@ -16,31 +16,250 @@ text_addresses = {'Pedestal': (0x180300, 256), 'Ganon2Invincible': (0x181200, 256)} -Uncle_texts = ['Good Luck!\nYou will need it.', 'Forward this message to 10 other people or this seed will be awful.', 'I hope you like your seeds bootless and fluteless.', - '10\n9\n8\n7\n6\n5\n4\n3\n2\n1\nGo!', 'I have crippling depression.', 'I\'m off to visit cousin Fritzl.'] -Triforce_texts = ['Product has Hole in center. Bad seller, 0 out of 5.', 'Who stole the fourth triangle?', 'Trifource?\nMore Like Tritrice, am I right?' - '\n Well Done!', 'You just wasted 2 hours of your life.', 'This was meant to be a trapezoid'] +Uncle_texts = [ + 'Good Luck!\nYou will need it.', + 'Forward this message to 10 other people or this seed will be awful.', + 'I hope you like your seeds bootless and fluteless.', + '10\n9\n8\n7\n6\n5\n4\n3\n2\n1\nGo!', + 'I\'m off to visit cousin Fritzl.' +] * 2 + [ + "We're out of\nWeetabix. To\nthe store!", + "This seed is\nbootless\nuntil boots.", + "Why do we only\nhave one bed?", + "This is the\nonly textbox.", + "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!", + "If this is a\nKanzeon seed,\nI'm quitting.", + "I am not your\nreal uncle.", + "You're going\nto have a very\nbad time.", + "Today you\nwill have\nbad luck.", + "I am leaving\nforever.\nGoodbye.", + "Don't worry.\nI got this\ncovered.", + "Race you to\nthe castle!", + "\n hi", + "I'M JUST GOING\nOUT FOR A\nPACK OF SMOKES", + "It's dangerous\nto go alone.\nSee ya!", + "ARE YOU A BAD\nENOUGH DUDE TO\nRESCUE ZELDA?", + "\n\n I AM ERROR", + "This seed is\nsub 2 hours,\nguaranteed.", + "The chest is\na secret to\neverybody.", + "I'm off to\nfind the\nwind fish.", + "The shortcut\nto Ganon\nis this way!", + "THE MOON IS\nCRASHING! RUN\nFOR YOUR LIFE!", + "Time to fight\nhe who must\nnot be named.", + "RED MAIL\nIS FOR\nCOWARDS.", + "HEY!\n\nLISTEN!", + "Well\nexcuuuuuse me,\nprincess!", + "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 thought this\nwas open mode?", +] +Triforce_texts = [ + 'Product has Hole in center. Bad seller, 0 out of 5.', + 'Who stole the fourth triangle?', + 'Trifource?\nMore Like Tritrice, am I right?' + '\n Well Done!', + 'You just wasted 2 hours of your life.', + 'This was meant to be a trapezoid' +] * 2 + [ + "\n G G", + "All your base\nare belong\nto us.", + "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!", + "\n WINNER!!", + "\n I'm sorry\n\nbut your\nprincess is in\nanother castle", + "\n success!", + " Whelp…\n that just\n happened", + " Oh hey…\n it's you", + "\n Wheeeeee!!", + " 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", + "\n O M G", + " 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", +] 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 bet you expected a vision related pun?\n\nNot Today.\n Didn\'t see that coming, did you?', 'What do you call a blind dinosaur?\n A Doyouthinkhe-saurus', - 'A blind man walks into a bar...\n\n\n and a table\n\n\n and a door.', - 'Why can\'t blind people eat fish?\n Because it\'s see food'] -Ganon1_texts = ['\n\n\n\n\n\n\n\n\nWhy are you reading an empty textbox?', 'Hi', 'Hey, can you turn off the lights?', 'Oink Oink', - 'Uncle: How do you like my Ganon cosplay?', 'I\'ll try spinning - that\'s a good trick!', 'Did you ever hear the tragedy of Darth Plagueis the Wise?'] -TavernMan_texts = ['Did you know that talking to random NPCs wastes time in a race? I hope this information may be of use to you in the future.'] +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", + "Are you doing\na blind run\nof this game?", + "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.", + "Rental agents\noffer quarters\nfor dollars.", + "I got my tires\nfixed for a\nflat rate.", + "New lightbulb\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", + "Broken pencils\nare pointless.", + "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", + "The chimney\nsweep wore a\nsoot and tye.", + "Gardeners like\nto spring into\naction.", + "bad at nuclear\nphysics. I\nGot no fission", +] +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", + "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.", + "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.", + "If we're not\nmeant to have\nmidnight\nsnacks, then\nwhy is there\na light in the\nfridge?\n", + "I feel like we\nkeep ending up\nhere.\n\nDon't you?\n\nIt's like\ndeja vu\nall over again", + "Did you know?\nThe biggest\nand heaviest\ncheese ever\nproduced\nweighed\n57,518 pounds\nand was 32\nfeet long.", + "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", +] +TavernMan_texts = [ + 'Did you know that talking to random NPCs wastes time in a race? I hope this information may be of use to you in the future.' +] + [ + "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", + "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", + "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!", + "Lanmola was\nlate to our\ndinner party.\nHe just came\nfor the desert", + "Moldorm is\nsuch a\nprankster.\nAnd I fall for\nit every time!", + "Helmasaur is\nthrowing a\nparty.\nI hope it's\na masquerade!", + "I'd like to\nknow Arrghus\nbetter.\nBut he won't\ncome out of\nhis shell!", + "Mothula didn't\nhave much fun\nat the party.\nHe's immune to\nspiked punch!", + "Don't set me\nup with that\nchick from\nSteve's Town.\n\n\nI'm not\ninterested in\na Blind date!", + "Kholdstare is\nafraid to go\nto the circus.\nHungry kids\nthought he was\ncotton candy!", + "I asked who\nVitreous' best\nfriends are.\nHe said,\n'Me, Myself,\nand Eye!'", + "Trinexx can be\na hothead or\nhe can be an\nice guy. In\nthe end, he's\na solid\nindividual!", + "Bari thought I\nhad moved out\nof town.\nHe was shocked\nto see me!", + "I can only get\nWeetabix\naround here.\nI have to go\nto Steve's\nTown for Count\nChocula!", + "Don't argue\nwith a frozen\nDeadrock.\nHe'll never\nchange his\nposition!", + "I offered a\ndrink to a\nself-loathing\nGhini.\nHe said he\ndidn't like\nspirits!", + "I was supposed\nto meet Gibdo\nfor lunch.\nBut he got\nwrapped up in\nsomething!", + "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!", + "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!", + "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!", + "My girlfriend\nburrowed under\nthe sand.\nSo I decided\nto Leever!", + "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!", + "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!", + "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!", +] -KingsReturn_texts = ['Who is this even', 'The Harem'] -Sanctuary_texts = ['A Priest\'s love'] -Kakariko_texts = ['Shasschahshahsahahrahsashsa', 'Schaschlik'] -Blacksmiths_texts = ['frogs for bread', 'That\'s not a sword', 'The Rupeesmiths'] -DeathMountain_texts = ['lost again', 'Alzheimer'] -LostWoods_texts = ['thieves\' stump', 'He\'s got wood', 'Dancing pickles'] -WishingWell_texts = ['Bottle for Bottle'] -DesertPalace_texts = ['literacy moves'] -MountainTower_texts = ['up up and away'] -LinksHouse_texts = ['Home Sweet Home', 'Only one bed'] -Lumberjacks_texts = ['Chop Chop', 'logfellas'] +KingsReturn_texts = [ + 'Who is this even', + 'The Harem' +] * 2 + [ + "the return of the king", + "fellowship of the ring", + "the two towers", +] +Sanctuary_texts = [ + 'A Priest\'s love' +] * 2 + [ + "the loyal priest", + "read a book", + "sits in own pew", +] +Sahasrahla_names = [ + "sahasralah", "sabotaging", "sacahuista", "sacahuiste", "saccharase", "saccharide", "saccharify", + "saccharine", "saccharins", "sacerdotal", "sackcloths", "salmonella", "saltarelli", "saltarello", + "saltations", "saltbushes", "saltcellar", "saltshaker", "salubrious", "sandgrouse", "sandlotter", + "sandstorms", "sandwiched", "sauerkraut", "schipperke", "schismatic", "schizocarp", "schmalzier", + "schmeering", "schmoosing", "shibboleth", "shovelnose", "sahananana", "sarararara", "salamander", + "sharshalah", "shahabadoo", "sassafrass", +] + +Kakariko_texts = ["{}'s homecoming"] +Blacksmiths_texts = [ + 'frogs for bread', + 'That\'s not a sword', + 'The Rupeesmiths' +] * 1 + [ + "the dwarven breadsmiths" +] +DeathMountain_texts = [ + "the lost old man", + "gary the old man", + "Your ad here" +] +LostWoods_texts = [ + 'thieves\' stump', + 'He\'s got wood', +] * 2 + [ + "the forest thief", + "dancing pickles", + "flying vultures", +] +WishingWell_texts = [ + "venus. queen of faeries", + "Venus was her name", + "I'm your Venus", + "Yeah, baby, shes got it", + "Venus, I'm your fire", + "Venus, At your desire", +] +DesertPalace_texts = ['vultures rule the desert', 'literacy moves'] +MountainTower_texts = ['the bully makes a friend', 'up up and away'] +LinksHouse_texts = ['your uncle recovers', 'Home Sweet Home', 'Only one bed'] +Lumberjacks_texts = [ + 'Chop Chop' +] * 2 + [ + "twin lumberjacks", + "fresh flapjacks", + "two woodchoppers", + "double lumberman", + "lumberclones", + "woodfellas", +] SickKid_texts = ['Next Time Stay Down'] Zora_texts = ['Splashes For Sale', 'Slippery when wet'] MagicShop_texts = ['Drug deal', 'Shrooms for days'] From 3adf4fadd11414c92103136071ea27b9bef70703 Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Tue, 2 Jan 2018 00:39:53 -0500 Subject: [PATCH 21/24] Partial vt28 logic update --- BaseClasses.py | 21 +++++++++++--- Fill.py | 19 +++++++------ ItemList.py | 3 ++ Main.py | 1 + Rules.py | 76 ++++++++++++++++++++++++++++++-------------------- 5 files changed, 76 insertions(+), 44 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index ec9c4b54..d05b5519 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -52,6 +52,7 @@ class World(object): self.fastmenu = fastmenu self.disable_music = disable_music self.keysanity = keysanity + self.can_take_damage = True self.spoiler = Spoiler(self) def intialize_regions(self): @@ -151,7 +152,7 @@ class World(object): if not isinstance(location, Location): location = self.get_location(location) - if location.can_fill(item): + if location.can_fill(self.state, item, False): location.item = item item.location = location if collect: @@ -351,6 +352,17 @@ class CollectionState(object): def can_lift_heavy_rocks(self): return self.has('Titans Mitts') + def can_extend_magic(self): + return self.has('Half Magic') or self.has('Quarter Magic') or self.has_bottle() # FIXME bottle should really also have a requirement that we can reach some shop that sells green or blue potions + + 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('Bow') + or self.has('Fire Rod') + ) + def has_sword(self): return self.has('Fighter Sword') or self.has('Master Sword') or self.has('Tempered Sword') or self.has('Golden Sword') @@ -580,11 +592,12 @@ class Location(object): self.recursion_count = 0 self.staleness_count = 0 self.event = False + self.always_allow = lambda item, state: False self.access_rule = lambda state: True - self.item_rule = lambda state: True + self.item_rule = lambda item: True - def can_fill(self, item): - return self.parent_region.can_fill(item) and self.item_rule(item) + def can_fill(self, state, item, check_access=True): + return self.always_allow(item, self) or (self.parent_region.can_fill(item) and self.item_rule(item) and (not check_access or self.can_reach(state))) def can_reach(self, state): if self.access_rule(state) and state.can_reach(self.parent_region): diff --git a/Fill.py b/Fill.py index f9e64378..2ac444de 100644 --- a/Fill.py +++ b/Fill.py @@ -57,7 +57,7 @@ def distribute_items_cutoff(world, cutoffrate=0.33): spot_to_fill = None for location in fill_locations if placed_advancement_items / total_advancement_items < cutoffrate else reversed(fill_locations): - if world.state.can_reach(location) and location.can_fill(item_to_place): + if location.can_fill(world.state, item_to_place): spot_to_fill = location break @@ -129,7 +129,7 @@ def distribute_items_staleness(world): if not progress_done and random.randint(0, location.staleness_count) > 2: continue - if world.state.can_reach(location) and location.can_fill(item_to_place): + if location.can_fill(world.state, item_to_place): spot_to_fill = location break else: @@ -138,7 +138,7 @@ def distribute_items_staleness(world): # might have skipped too many locations due to potential staleness. Do not check for staleness now to find a candidate if spot_to_fill is None: for location in fill_locations: - if world.state.can_reach(location) and location.can_fill(item_to_place): + if location.can_fill(world.state, item_to_place): spot_to_fill = location break @@ -168,15 +168,16 @@ def fill_restrictive(world, base_state, locations, itempool): item_to_place = itempool.pop() maximum_exploration_state = sweep_from_pool() + perform_access_check = True if world.check_beatable_only: - can_beat_without = world.has_beaten_game(maximum_exploration_state) + perform_access_check = not world.has_beaten_game(maximum_exploration_state) + spot_to_fill = None for location in locations: - if location.can_fill(item_to_place): - if (world.check_beatable_only and can_beat_without) or maximum_exploration_state.can_reach(location): - spot_to_fill = location - break + if location.can_fill(maximum_exploration_state, item_to_place, perform_access_check): + spot_to_fill = location + break if spot_to_fill is None: # we filled all reachable spots. Maybe the game can be beaten anyway? @@ -251,7 +252,7 @@ def flood_items(world): random.shuffle(location_list) spot_to_fill = None for location in location_list: - if world.state.can_reach(location) and location.can_fill(itempool[0]): + if location.can_fill(world.state, itempool[0]): spot_to_fill = location break diff --git a/ItemList.py b/ItemList.py index 1faaa514..784a51e0 100644 --- a/ItemList.py +++ b/ItemList.py @@ -180,6 +180,9 @@ def generate_itempool(world): or world.mode not in ['open', 'standard', 'swordless'] or world.timer not in ['none', 'display', 'timed', 'timed-ohko', 'ohko', 'timed-countdown'] or world.progressive not in ['on', 'off', 'random']): raise NotImplementedError('Not supported yet') + if world.timer in ['ohko', 'timed-ohko']: + world.can_take_damage = False + world.push_item('Ganon', ItemFactory('Triforce'), False) world.get_location('Ganon').event = True world.push_item('Agahnim 1', ItemFactory('Beat Agahnim 1'), False) diff --git a/Main.py b/Main.py index ab3ac04f..03e172ac 100644 --- a/Main.py +++ b/Main.py @@ -133,6 +133,7 @@ def copy_world(world): ret.dark_world_light_cone = world.dark_world_light_cone ret.seed = world.seed ret.can_access_trock_eyebridge = world.can_access_trock_eyebridge + ret.can_take_damage = world.can_take_damage create_regions(ret) create_dungeons(ret) diff --git a/Rules.py b/Rules.py index e46a3445..77effcb7 100644 --- a/Rules.py +++ b/Rules.py @@ -39,6 +39,9 @@ def set_rules(world): def set_rule(spot, rule): spot.access_rule = rule +def set_always_allow(spot, rule): + spot.always_allow = rule + def add_rule(spot, rule, combine='and'): old_rule = spot.access_rule @@ -60,10 +63,15 @@ def forbid_item(location, item): def item_in_locations(state, item, locations): for location in locations: loc = state.world.get_location(location) - if loc.item is not None and loc.item.name == item: + if item_name(loc) == item: return True return False +def item_name(location): + if location.item is None: + return None + return location.item.name + def global_rules(world): # ganon can only carry triforce @@ -111,6 +119,7 @@ def global_rules(world): set_rule(world.get_location('Master Sword Pedestal'), lambda state: state.has('Red Pendant') and state.has('Blue Pendant') and state.has('Green Pendant')) 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 + # FIXME: VT has a can_kill_most_things(8) call on Aga Tower's entrance. I suspect this needs to be added to first two chests inside the tower instead? set_rule(world.get_entrance('Agahnim 1'), lambda state: state.has_sword() and state.has('Small Key (Agahnims Tower)', 2)) set_rule(world.get_location('Castle Tower - Dark Maze'), lambda state: state.has('Small Key (Agahnims Tower)')) set_rule(world.get_entrance('Top of Pyramid'), lambda state: state.has('Beat Agahnim 1')) @@ -175,7 +184,9 @@ def global_rules(world): set_rule(world.get_entrance('Fairy Ascension Mirror Spot'), lambda state: state.has_Mirror() and state.has_Pearl()) # need to lift flowers set_rule(world.get_entrance('Isolated Ledge Mirror Spot'), lambda state: state.has_Mirror()) set_rule(world.get_entrance('Superbunny Cave Exit (Bottom)'), lambda state: False) # Cannot get to bottom exit from top. Just exists for shuffling - set_rule(world.get_location('Spike Cave'), lambda state: state.has('Hammer') and state.can_lift_rocks() and (state.has('Cane of Byrna') or state.has('Cape')) and (state.has_bottle() or state.has('Half Magic') or state.has('Quarter Magic'))) + set_rule(world.get_location('Spike Cave'), lambda state: state.has('Hammer') and state.can_lift_rocks() and (state.has('Cane of Byrna') or state.has('Cape')) and state.can_extend_magic()) + # TODO: Current-VT logic is: hammer and lift_rocks and ((cape and extend) or (byrna and (can-take-damage OR canextend))) + # Is that really good enough? Can you really get through with byrna, single magic w/o refills and only 3 hearts? set_rule(world.get_location('Hookshot Cave - Top Right'), lambda state: state.has('Hookshot')) set_rule(world.get_location('Hookshot Cave - Top Left'), lambda state: state.has('Hookshot')) set_rule(world.get_location('Hookshot Cave - Bottom Right'), lambda state: state.has('Hookshot') or state.has('Pegasus Boots')) @@ -230,6 +241,7 @@ def global_rules(world): 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('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_location('Thieves\' Town - Big Chest'), lambda state: state.has('Small Key (Thieves Town)') and state.has('Hammer')) + # TODO: add key-for-key logic to above w always_allow, etc. set_rule(world.get_location('Thieves\' Town - Attic'), lambda state: state.has('Small Key (Thieves Town)')) for location in ['Thieves\' Town - Attic', 'Thieves\' Town - Big Chest', 'Thieves\' Town - Blind\'s Cell', 'Thieves Town - Blind']: forbid_item(world.get_location(location), 'Big Key (Thieves Town)') @@ -250,14 +262,14 @@ 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('Small Key (Ice Palace)', 2) or (state.has('Cane of Somaria') and state.has('Small Key (Ice Palace)', 1)))) - 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('Small Key (Ice Palace)')) or state.has('Small Key (Ice Palace)', 2)) and (state.has('Hookshot') or state.has('Cape') or state.has('Cane of Byrna'))) + 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('Small Key (Ice Palace)')) or state.has('Small Key (Ice Palace)', 2)) and (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']: 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.has('Bow'))) # need to defeat wizzrobes, bombs don't work ... set_rule(world.get_location('Misery Mire - Big Chest'), lambda state: state.has('Big Key (Misery Mire)')) - set_rule(world.get_location('Misery Mire - Spike Chest'), lambda state: state.has('Cane of Byrna') or state.has('Cape')) + set_rule(world.get_location('Misery Mire - Spike Chest'), lambda state: world.can_take_damage or state.has('Cane of Byrna') or state.has('Cape')) set_rule(world.get_entrance('Misery Mire Big Key Door'), lambda state: state.has('Big Key (Misery Mire)')) # you can squander the free small key from the pot by opening the south door to the north west switch room, locking you out of accessing a color switch ... # big key gives backdoor access to that from the teleporter in the north west @@ -265,8 +277,8 @@ def global_rules(world): # in addition, you can open the door to the map room before getting access to a color switch, so this is locked behing 2 small keys or the big key... set_rule(world.get_location('Misery Mire - Main Lobby'), lambda state: state.has('Small Key (Misery Mire)', 2) or state.has('Big Key (Misery Mire)')) # we can place a small key in the West wing iff it also contains/blocks the Big Key, as we cannot reach and softlock with the basement key door yet - set_rule(world.get_entrance('Misery Mire (West)'), lambda state: state.has('Small Key (Misery Mire)', 2) if ((state.world.get_location('Misery Mire - Compass Chest').item is not None and state.world.get_location('Misery Mire - Compass Chest').item.name in ['Big Key (Misery Mire)']) or - (state.world.get_location('Misery Mire - Big Key Chest').item is not None and state.world.get_location('Misery Mire - Big Key Chest').item.name in ['Big Key (Misery Mire)'])) else state.has('Small Key (Misery Mire)', 3)) + set_rule(world.get_entrance('Misery Mire (West)'), lambda state: state.has('Small Key (Misery Mire)', 2) if ((item_name(state.world.get_location('Misery Mire - Compass Chest')) in ['Big Key (Misery Mire)']) or + (item_name(state.world.get_location('Misery Mire - Big Key Chest')) in ['Big Key (Misery Mire)'])) else state.has('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.has('Bow') or state.has_blunt_weapon())) @@ -284,29 +296,31 @@ def global_rules(world): set_rule(world.get_entrance('Turtle Rock Dark Room Staircase'), lambda state: state.has('Small Key (Turtle Rock)', 3)) set_rule(world.get_entrance('Turtle Rock (Dark Room) (North)'), lambda state: state.has('Cane of Somaria')) set_rule(world.get_entrance('Turtle Rock (Dark Room) (South)'), lambda state: state.has('Cane of Somaria')) + # FIXME: should shield overflow count check to the progrssive logic stuff, so we don't get false mirror shields which would cause problems here set_rule(world.get_location('Turtle Rock - Eye Bridge - Bottom 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 - 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('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_bottle() or state.has('Half Magic') or state.has('Quarter Magic'))) + (state.has('Hammer') or state.has_beam_sword() or state.can_extend_magic())) + # TODO: Per VT, possibly allow a regular sword with 4x extended magic (ie. quater magic, or half magic+bottle or 3 bottles) set_trock_key_rules(world) set_rule(world.get_entrance('Palace of Darkness Bonk Wall'), lambda state: state.has('Bow')) set_rule(world.get_entrance('Palace of Darkness Hammer Peg Drop'), lambda state: state.has('Hammer')) set_rule(world.get_entrance('Palace of Darkness Bridge Room'), lambda state: state.has('Small Key (Palace of Darkness)', 1)) # If we can reach any other small key door, we already have back door access to this area set_rule(world.get_entrance('Palace of Darkness Big Key Door'), lambda state: state.has('Small Key (Palace of Darkness)', 6) and state.has('Big Key (Palace of Darkness)') and state.has('Bow') and state.has('Hammer')) - set_rule(world.get_entrance('Palace of Darkness Big Key Chest Staircase'), lambda state: state.has('Small Key (Palace of Darkness)', 5) or (state.world.get_location('Palace of Darkness - Big Key Chest').item is not None and (state.world.get_location('Palace of Darkness - Big Key Chest').item.name in ['Small Key (Palace of Darkness)']))) + set_rule(world.get_entrance('Palace of Darkness Big Key Chest Staircase'), lambda state: state.has('Small Key (Palace of Darkness)', 5) or (item_name(state.world.get_location('Palace of Darkness - Big Key Chest')) in ['Small Key (Palace of Darkness)'])) set_rule(world.get_entrance('Palace of Darkness (North)'), lambda state: state.has('Small Key (Palace of Darkness)', 4)) set_rule(world.get_location('Palace of Darkness - Big Chest'), lambda state: state.has('Big Key (Palace of Darkness)')) if world.keysanity: - set_rule(world.get_entrance('Palace of Darkness Spike Statue Room Door'), lambda state: state.has('Small Key (Palace of Darkness)', 6) or (state.world.get_location('Palace of Darkness - Harmless Hellway').item is not None and (state.world.get_location('Palace of Darkness - Harmless Hellway').item.name in ['Small Key (Palace of Darkness)']))) - set_rule(world.get_entrance('Palace of Darkness Big Key Chest Staircase'), lambda state: state.has('Small Key (Palace of Darkness)', 6) or (state.world.get_location('Palace of Darkness - Big Key Chest').item is not None and (state.world.get_location('Palace of Darkness - Big Key Chest').item.name in ['Small Key (Palace of Darkness)']))) + set_rule(world.get_entrance('Palace of Darkness Spike Statue Room Door'), lambda state: state.has('Small Key (Palace of Darkness)', 6) or (item_name(state.world.get_location('Palace of Darkness - Harmless Hellway')) in ['Small Key (Palace of Darkness)'])) + set_rule(world.get_entrance('Palace of Darkness Big Key Chest Staircase'), lambda state: state.has('Small Key (Palace of Darkness)', 6) or (item_name(state.world.get_location('Palace of Darkness - Big Key Chest')) in ['Small Key (Palace of Darkness)'])) set_rule(world.get_entrance('Palace of Darkness Maze Door'), lambda state: state.has('Small Key (Palace of Darkness)', 6)) else: - set_rule(world.get_entrance('Palace of Darkness Spike Statue Room Door'), lambda state: state.has('Small Key (Palace of Darkness)', 5) or (state.world.get_location('Palace of Darkness - Harmless Hellway').item is not None and (state.world.get_location('Palace of Darkness - Harmless Hellway').item.name in ['Small Key (Palace of Darkness)']))) - set_rule(world.get_entrance('Palace of Darkness Big Key Chest Staircase'), lambda state: state.has('Small Key (Palace of Darkness)', 5) or (state.world.get_location('Palace of Darkness - Big Key Chest').item is not None and (state.world.get_location('Palace of Darkness - Big Key Chest').item.name in ['Small Key (Palace of Darkness)']))) + set_rule(world.get_entrance('Palace of Darkness Spike Statue Room Door'), lambda state: state.has('Small Key (Palace of Darkness)', 5) or (item_name(state.world.get_location('Palace of Darkness - Harmless Hellway')) in ['Small Key (Palace of Darkness)'])) + set_rule(world.get_entrance('Palace of Darkness Big Key Chest Staircase'), lambda state: state.has('Small Key (Palace of Darkness)', 5) or (item_name(state.world.get_location('Palace of Darkness - Big Key Chest')) in ['Small Key (Palace of Darkness)'])) set_rule(world.get_entrance('Palace of Darkness Maze Door'), lambda state: state.has('Small Key (Palace of Darkness)', 5)) for location in ['Palace of Darkness - Big Chest', 'Palace of Darkness - Helmasaur']: @@ -322,13 +336,12 @@ def global_rules(world): set_rule(world.get_location('Ganons Tower - Bob\'s Torch'), lambda state: state.has_Boots()) set_rule(world.get_entrance('Ganons Tower (Tile Room)'), lambda state: state.has('Cane of Somaria')) set_rule(world.get_entrance('Ganons Tower (Hookshot Room)'), lambda state: state.has('Hammer')) - if world.keysanity: - set_rule(world.get_entrance('Ganons Tower (Map Room)'), lambda state: state.has('Small Key (Ganons Tower)', 4) or (state.world.get_location('Ganons Tower - Map Chest').item is not None and state.world.get_location('Ganons Tower - Map Chest').item.name == 'Big Key (Ganons Tower)' and state.has('Small Key (Ganons Tower)', 3)) or (state.world.get_location('Ganons Tower - Map Chest').item is not None and state.world.get_location('Ganons Tower - Map Chest').item.name == 'Small Key (Ganons Tower)')) - else: - set_rule(world.get_entrance('Ganons Tower (Map Room)'), lambda state: state.has('Small Key (Ganons Tower)', 3) or (state.world.get_location('Ganons Tower - Map Chest').item is not None and state.world.get_location('Ganons Tower - Map Chest').item.name == 'Small Key (Ganons Tower)')) - # It is possible to need more than 2 keys to get through this entance if you spend keys elsewhere We reflect this in the chest requirements. - # However we need to leave these at the lower values derive that with 3 keys it is always possible to reach Bob and Ice Armos. + set_rule(world.get_entrance('Ganons Tower (Map Room)'), lambda state: state.has('Small Key (Ganons Tower)', 4) or (item_name(state.world.get_location('Ganons Tower - Map Chest')) in ['Big Key (Ganons Tower)', 'Small Key (Ganons Tower)'] and state.has('Small Key (Ganons Tower)', 3))) + set_always_allow(world.get_entrance('Ganons Tower (Map Room)'), lambda state, item: item.name == 'Small Key (Ganons Tower)' and state.has('Small Key (Ganons Tower)', 3)) + + # It is possible to need more than 2 keys to get through this entance if you spend keys elsewhere. We reflect this in the chest requirements. + # However we need to leave these at the lower values to derive that with 3 keys it is always possible to reach Bob and Ice Armos. set_rule(world.get_entrance('Ganons Tower (Double Switch Room)'), lambda state: state.has('Small Key (Ganons Tower)', 2)) # It is possible to need more than 3 keys .... set_rule(world.get_entrance('Ganons Tower (Firesnake Room)'), lambda state: state.has('Small Key (Ganons Tower)', 3)) @@ -361,7 +374,7 @@ def global_rules(world): set_rule(world.get_location('Ganon'), lambda state: state.has_beam_sword() and state.has_fire_source() 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') - and (state.has('Tempered Sword') or state.has('Golden Sword') or (state.has('Silver Arrows') and state.has('Bow')) or state.has('Lamp') or state.has_bottle() or state.has('Half Magic') or state.has('Quarter Magic'))) # need to light torch a sufficient amount of times + and (state.has('Tempered Sword') or state.has('Golden Sword') or (state.has('Silver Arrows') and state.has('Bow')) or state.has('Lamp') or state.can_extend_magic())) # need to light torch a sufficient amount of times set_rule(world.get_entrance('Ganon Drop'), lambda state: state.has_beam_sword()) # need to damage ganon to get tiles to drop @@ -426,11 +439,8 @@ def open_rules(world): forbid_item(world.get_location('Hyrule Castle - Boomerang Chest'), 'Small Key (Escape)') forbid_item(world.get_location('Hyrule Castle - Zelda\'s Chest'), 'Small Key (Escape)') - # to prevent key-lock in keysanity we need to prevent these chests from having an item that - # blocks the small key - if world.keysanity: - set_rule(world.get_location('Hyrule Castle - Boomerang Chest'), lambda state: state.has('Small Key (Escape)')) - set_rule(world.get_location('Hyrule Castle - Zelda\'s Chest'), lambda state: state.has('Small Key (Escape)')) + set_rule(world.get_location('Hyrule Castle - Boomerang Chest'), lambda state: state.has('Small Key (Escape)')) + set_rule(world.get_location('Hyrule Castle - Zelda\'s Chest'), lambda state: state.has('Small Key (Escape)')) def swordless_rules(world): @@ -455,10 +465,13 @@ def swordless_rules(world): def standard_rules(world): # easiest way to enforce key placement not relevant for open - forbid_item(world.get_location('Sewers - Secret Room - Left'), 'Small Key (Escape)') - forbid_item(world.get_location('Sewers - Secret Room - Middle'), 'Small Key (Escape)') - forbid_item(world.get_location('Sewers - Secret Room - Right'), 'Small Key (Escape)') - forbid_item(world.get_location('Sanctuary'), 'Small Key (Escape)') + set_rule(world.get_location('Sewers - Dark Cross'), lambda state: state.can_kill_most_things()) + add_rule(world.get_entrance('Sewers Door'), lambda state: state.can_kill_most_things()) + + set_rule(world.get_location('Hyrule Castle - Boomerang Chest'), lambda state: state.can_kill_most_things()) + set_rule(world.get_location('Hyrule Castle - Zelda\'s Chest'), lambda state: state.can_kill_most_things()) + + def set_trock_key_rules(world): @@ -495,11 +508,12 @@ def set_trock_key_rules(world): # however in keysanity being able to reach all other chests while only having three keys does not imply this contains # a key, so we again need all four keys unless it contains the big key if can_reach_back: - set_rule(world.get_location('Turtle Rock - Big Key Chest'), lambda state: state.has('Small Key (Turtle Rock)', 4) or (state.world.get_location('Turtle Rock - Big Key Chest').item is not None and (state.world.get_location('Turtle Rock - Big Key Chest').item.name in ['Small Key (Turtle Rock)']))) + set_rule(world.get_location('Turtle Rock - Big Key Chest'), lambda state: state.has('Small Key (Turtle Rock)', 4) or (item_name(state.world.get_location('Turtle Rock - Big Key Chest')) in ['Small Key (Turtle Rock)'])) elif world.keysanity: - set_rule(world.get_location('Turtle Rock - Big Key Chest'), lambda state: state.has('Small Key (Turtle Rock)', 2) if (state.world.get_location('Turtle Rock - Big Key Chest').item is not None and (state.world.get_location('Turtle Rock - Big Key Chest').item.name in ['Big Key (Turtle Rock)'])) else state.has('Small Key (Turtle Rock)', 4) or (state.world.get_location('Turtle Rock - Big Key Chest').item is not None and (state.world.get_location('Turtle Rock - Big Key Chest').item.name in ['Small Key (Turtle Rock)']))) + set_rule(world.get_location('Turtle Rock - Big Key Chest'), lambda state: state.has('Small Key (Turtle Rock)', 2) if (item_name(state.world.get_location('Turtle Rock - Big Key Chest')) in ['Big Key (Turtle Rock)']) else state.has('Small Key (Turtle Rock)', 4) or (item_name(state.world.get_location('Turtle Rock - Big Key Chest')) in ['Small Key (Turtle Rock)'])) else: - set_rule(world.get_location('Turtle Rock - Big Key Chest'), lambda state: state.has('Small Key (Turtle Rock)', 2) if (state.world.get_location('Turtle Rock - Big Key Chest').item is not None and (state.world.get_location('Turtle Rock - Big Key Chest').item.name in ['Big Key (Turtle Rock)'])) else state.has('Small Key (Turtle Rock)', 3) or (state.world.get_location('Turtle Rock - Big Key Chest').item is not None and (state.world.get_location('Turtle Rock - Big Key Chest').item.name in ['Small Key (Turtle Rock)']))) + set_rule(world.get_location('Turtle Rock - Big Key Chest'), lambda state: state.has('Small Key (Turtle Rock)', 2) if (item_name(state.world.get_location('Turtle Rock - Big Key Chest')) in ['Big Key (Turtle Rock)']) else state.has('Small Key (Turtle Rock)', 3) or (item_name(state.world.get_location('Turtle Rock - Big Key Chest')) in ['Small Key (Turtle Rock)'])) + # FIXME add key-for-key logic to the above mess via always_allow rules. Ugh! # set big key restrictions non_big_key_locations = ['Turtle Rock - Big Chest', 'Turtle Rock - Trinexx'] From e3ac7ee4a69ebb56dc52d591f9e38255c73670f7 Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Tue, 2 Jan 2018 20:01:16 -0500 Subject: [PATCH 22/24] VT28 update: Keysanity has dungeon items in normal item pool --- BaseClasses.py | 3 +++ Dungeons.py | 13 ++++++++++++- ItemList.py | 4 ++++ Main.py | 2 +- 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index d05b5519..05c1351d 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -145,6 +145,9 @@ class World(object): ret.clear_cached_unreachable() return ret + def get_items(self): + return [loc.item for loc in self.get_filled_locations()] + self.itempool + def find_items(self, item): return [location for location in self.get_locations() if location.item is not None and location.item.name == item] diff --git a/Dungeons.py b/Dungeons.py index 4652373b..58f94f20 100644 --- a/Dungeons.py +++ b/Dungeons.py @@ -103,6 +103,8 @@ def fill_dungeons(world): world.state.clear_cached_unreachable() +def get_dungeon_item_pool(world): + return [item for dungeon in world.dungeons for item in dungeon.all_items if item.key or world.place_dungeon_items] def fill_dungeons_restrictive(world, shuffled_locations): all_state_base = world.get_all_state() @@ -112,7 +114,16 @@ def fill_dungeons_restrictive(world, shuffled_locations): skull_woods_big_chest.event = True shuffled_locations.remove(skull_woods_big_chest) - dungeon_items = [item for dungeon in world.dungeons for item in dungeon.all_items if item.key or world.place_dungeon_items] + if world.keysanity: + #in keysanity dungeon items are distributed as part of the normal item pool + for item in world.get_items(): + if item.key: + item.advancement = True + elif item.map or item.compass: + item.priority = True + return + + dungeon_items = get_dungeon_item_pool(world) # sort in the order Big Key, Small Key, Other before placing dungeon items sort_order = {"BigKey": 3, "SmallKey": 2} diff --git a/ItemList.py b/ItemList.py index 784a51e0..10880d7a 100644 --- a/ItemList.py +++ b/ItemList.py @@ -3,6 +3,7 @@ import random from Items import ItemFactory from Fill import fill_restrictive +from Dungeons import get_dungeon_item_pool #This file sets the item pools for various modes. Timed modes and triforce hunt are enforced first, and then extra items are specified per mode to fill in the remaining space. #Some basic items that various modes require are placed here, including pendants and crystals. Medallion requirements for the two relevant entrances are also decided. @@ -203,6 +204,9 @@ def generate_itempool(world): if treasure_hunt_icon is not None: world.treasure_hunt_icon = treasure_hunt_icon + if world.keysanity: + world.itempool.extend(get_dungeon_item_pool(world)) + # shuffle medallions mm_medallion = ['Ether', 'Quake', 'Bombos'][random.randint(0, 2)] tr_medallion = ['Ether', 'Quake', 'Bombos'][random.randint(0, 2)] diff --git a/Main.py b/Main.py index 03e172ac..6b897367 100644 --- a/Main.py +++ b/Main.py @@ -178,7 +178,7 @@ def create_playthrough(world): raise RuntimeError('Cannot beat game. Something went terribly wrong here!') # get locations containing progress items - prog_locations = [location for location in world.get_locations() if location.item is not None and (location.item.advancement or (location.item.key and world.keysanity))] + prog_locations = [location for location in world.get_filled_locations() if location.item.advancement] collection_spheres = [] state = CollectionState(world) From 73ad4e5fbb5cc48b1c3809178f8a760ba1163398 Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Tue, 2 Jan 2018 20:01:52 -0500 Subject: [PATCH 23/24] Fix balanced algorithm to actually use restrrictive fill for dungeon items --- Main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Main.py b/Main.py index 6b897367..9cb14401 100644 --- a/Main.py +++ b/Main.py @@ -61,7 +61,7 @@ def main(args, seed=None): logger.info('Placing Dungeon Items.') shuffled_locations = None - if args.algorithm == 'vt26' or args.keysanity: + if args.algorithm in ['balanced', 'vt26'] or args.keysanity: shuffled_locations = world.get_unfilled_locations() random.shuffle(shuffled_locations) fill_dungeons_restrictive(world, shuffled_locations) From 9c7a07a1d44487f2f8a4dc2e77f0846942b7612e Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Tue, 2 Jan 2018 21:17:07 -0500 Subject: [PATCH 24/24] More VT28 logic updates --- Rules.py | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/Rules.py b/Rules.py index 77effcb7..4fd3e0d6 100644 --- a/Rules.py +++ b/Rules.py @@ -119,7 +119,7 @@ def global_rules(world): set_rule(world.get_location('Master Sword Pedestal'), lambda state: state.has('Red Pendant') and state.has('Blue Pendant') and state.has('Green Pendant')) 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 - # FIXME: VT has a can_kill_most_things(8) call on Aga Tower's entrance. I suspect this needs to be added to first two chests inside the tower instead? + # FIXME: VT has a can_kill_most_things(8) call on Aga Tower's entrance. I think this is supposed to reflect that a better weapon than 10 bombs is needed to reach the two chests in this tower set_rule(world.get_entrance('Agahnim 1'), lambda state: state.has_sword() and state.has('Small Key (Agahnims Tower)', 2)) set_rule(world.get_location('Castle Tower - Dark Maze'), lambda state: state.has('Small Key (Agahnims Tower)')) set_rule(world.get_entrance('Top of Pyramid'), lambda state: state.has('Beat Agahnim 1')) @@ -171,6 +171,7 @@ def global_rules(world): set_rule(world.get_entrance('Skull Woods Final Section'), lambda state: state.has('Fire Rod') and state.has_Pearl()) # bunny cannot use fire rod set_rule(world.get_entrance('Misery Mire'), lambda state: state.has_Pearl() and state.has_sword() and state.has_misery_mire_medallion()) # sword required to cast magic (!) set_rule(world.get_entrance('Desert Ledge (West) Mirror Spot'), lambda state: state.has_Mirror()) + set_rule(world.get_entrance('Desert Ledge Mirror Spot'), lambda state: state.has_Mirror()) set_rule(world.get_entrance('Desert Palace Stairs Mirror Spot'), lambda state: state.has_Mirror()) set_rule(world.get_entrance('Desert Palace Entrance (North) Mirror Spot'), lambda state: state.has_Mirror()) @@ -186,7 +187,7 @@ def global_rules(world): set_rule(world.get_entrance('Superbunny Cave Exit (Bottom)'), lambda state: False) # Cannot get to bottom exit from top. Just exists for shuffling set_rule(world.get_location('Spike Cave'), lambda state: state.has('Hammer') and state.can_lift_rocks() and (state.has('Cane of Byrna') or state.has('Cape')) and state.can_extend_magic()) # TODO: Current-VT logic is: hammer and lift_rocks and ((cape and extend) or (byrna and (can-take-damage OR canextend))) - # Is that really good enough? Can you really get through with byrna, single magic w/o refills and only 3 hearts? + # Is that really good enough? Can you really get through with byrna, single magic w/o refills and only 3 hearts? (answer: probnably but seems to requires tas-like timing.) set_rule(world.get_location('Hookshot Cave - Top Right'), lambda state: state.has('Hookshot')) set_rule(world.get_location('Hookshot Cave - Top Left'), lambda state: state.has('Hookshot')) set_rule(world.get_location('Hookshot Cave - Bottom Right'), lambda state: state.has('Hookshot') or state.has('Pegasus Boots')) @@ -217,10 +218,11 @@ def global_rules(world): for location in ['Desert Palace - Lanmolas', '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('Small Key (Tower of Hera)')) + set_rule(world.get_entrance('Tower of Hera Small Key Door'), lambda state: state.has('Small Key (Tower of Hera)') or item_name(world.get_location('Tower of Hera - Big Key Chest')) == 'Small Key (Tower of Hera)') set_rule(world.get_entrance('Tower of Hera Big Key Door'), lambda state: state.has('Big Key (Tower of Hera)')) 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()) for location in ['Tower of Hera - Moldorm', 'Tower of Hera - Big Chest', 'Tower of Hera - Compass Chest']: @@ -231,31 +233,31 @@ def global_rules(world): set_rule(world.get_entrance('Swamp Palace Moat'), lambda state: state.has('Flippers') and state.can_reach('Dam')) set_rule(world.get_entrance('Swamp Palace Small Key Door'), lambda state: state.has('Small Key (Swamp Palace)')) set_rule(world.get_entrance('Swamp Palace (Center)'), lambda state: state.has('Hammer')) - set_rule(world.get_location('Swamp Palace - Big Chest'), lambda state: state.has('Big Key (Swamp Palace)')) + set_rule(world.get_location('Swamp Palace - Big Chest'), lambda state: state.has('Big Key (Swamp Palace)') or item_name(world.get_location('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()) - for location in ['Swamp Palace - Big Chest', 'Swamp Palace - Entrance']: + 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('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_location('Thieves\' Town - Big Chest'), lambda state: state.has('Small Key (Thieves Town)') and state.has('Hammer')) - # TODO: add key-for-key logic to above w always_allow, etc. + set_rule(world.get_location('Thieves\' Town - Big Chest'), lambda state: (state.has('Small Key (Thieves Town)') or item_name(world.get_location('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)') set_rule(world.get_location('Thieves\' Town - Attic'), lambda state: state.has('Small Key (Thieves Town)')) for location in ['Thieves\' Town - Attic', 'Thieves\' Town - Big Chest', 'Thieves\' Town - Blind\'s Cell', 'Thieves Town - Blind']: forbid_item(world.get_location(location), 'Big Key (Thieves Town)') - for location in ['Thieves\' Town - Attic', 'Thieves\' Town - Big Chest', 'Thieves Town - Blind']: + for location in ['Thieves\' Town - Attic', 'Thieves Town - Blind']: 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('Small Key (Skull Woods)')) set_rule(world.get_entrance('Skull Woods First Section (Right) North Door'), lambda state: state.has('Small Key (Skull Woods)')) set_rule(world.get_entrance('Skull Woods First Section West Door'), lambda state: state.has('Small Key (Skull Woods)', 2)) # ideally would only be one key, but we may have spent thst key already on escaping the right section set_rule(world.get_entrance('Skull Woods First Section (Left) Door to Exit'), lambda state: state.has('Small Key (Skull Woods)', 2)) - set_rule(world.get_location('Skull Woods - Big Chest'), lambda state: state.has('Big Key (Skull Woods)')) + set_rule(world.get_location('Skull Woods - Big Chest'), lambda state: state.has('Big Key (Skull Woods)') or item_name(world.get_location('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('Small Key (Skull Woods)', 3) and state.has('Fire Rod') and state.has_sword()) # sword required for curtain - for location in ['Skull Woods - Big Chest']: - forbid_item(world.get_location(location), 'Big Key (Skull Woods)') for location in ['Skull Woods - Mothula']: forbid_item(world.get_location(location), 'Small Key (Skull Woods)') @@ -338,7 +340,7 @@ def global_rules(world): set_rule(world.get_entrance('Ganons Tower (Hookshot Room)'), lambda state: state.has('Hammer')) set_rule(world.get_entrance('Ganons Tower (Map Room)'), lambda state: state.has('Small Key (Ganons Tower)', 4) or (item_name(state.world.get_location('Ganons Tower - Map Chest')) in ['Big Key (Ganons Tower)', 'Small Key (Ganons Tower)'] and state.has('Small Key (Ganons Tower)', 3))) - set_always_allow(world.get_entrance('Ganons Tower (Map Room)'), lambda state, item: item.name == 'Small Key (Ganons Tower)' and state.has('Small Key (Ganons Tower)', 3)) + set_always_allow(world.get_location('Ganons Tower - Map Chest'), lambda state, item: item.name == 'Small Key (Ganons Tower)' and state.has('Small Key (Ganons Tower)', 3)) # It is possible to need more than 2 keys to get through this entance if you spend keys elsewhere. We reflect this in the chest requirements. # However we need to leave these at the lower values to derive that with 3 keys it is always possible to reach Bob and Ice Armos. @@ -365,7 +367,7 @@ def global_rules(world): set_rule(world.get_entrance('Ganons Tower Torch Rooms'), lambda state: state.has_fire_source()) set_rule(world.get_location('Ganons Tower - Pre-Moldorm Chest'), lambda state: state.has('Small Key (Ganons Tower)', 3)) set_rule(world.get_entrance('Ganons Tower Moldorm Door'), lambda state: state.has('Small Key (Ganons Tower)', 4)) - set_rule(world.get_entrance('Ganons Tower Moldorm Gap'), lambda state: state.has('Hookshot')) + 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('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', @@ -513,7 +515,7 @@ def set_trock_key_rules(world): set_rule(world.get_location('Turtle Rock - Big Key Chest'), lambda state: state.has('Small Key (Turtle Rock)', 2) if (item_name(state.world.get_location('Turtle Rock - Big Key Chest')) in ['Big Key (Turtle Rock)']) else state.has('Small Key (Turtle Rock)', 4) or (item_name(state.world.get_location('Turtle Rock - Big Key Chest')) in ['Small Key (Turtle Rock)'])) else: set_rule(world.get_location('Turtle Rock - Big Key Chest'), lambda state: state.has('Small Key (Turtle Rock)', 2) if (item_name(state.world.get_location('Turtle Rock - Big Key Chest')) in ['Big Key (Turtle Rock)']) else state.has('Small Key (Turtle Rock)', 3) or (item_name(state.world.get_location('Turtle Rock - Big Key Chest')) in ['Small Key (Turtle Rock)'])) - # FIXME add key-for-key logic to the above mess via always_allow rules. Ugh! + # TODO add key-for-key logic to the above mess via always_allow rules. Ugh! # set big key restrictions non_big_key_locations = ['Turtle Rock - Big Chest', 'Turtle Rock - Trinexx']