Refactored Items to one concise table and factory. Added credits texts.

This commit is contained in:
LLCoolDave
2017-05-25 15:58:35 +02:00
parent 7af2425c9f
commit bbd52c780d
6 changed files with 344 additions and 771 deletions

748
Items.py
View File

@@ -1,604 +1,148 @@
from BaseClasses import Item
import random
class Bow(Item):
def __init__(self):
super(Bow, self).__init__('Bow', True, code=0x0B)
class Book(Item):
def __init__(self):
super(Book, self).__init__('Book of Mudora', True, code=0x1D)
class Hammer(Item):
def __init__(self):
super(Hammer, self).__init__('Hammer', True, code=0x09)
class Hookshot(Item):
def __init__(self):
super(Hookshot, self).__init__('Hookshot', True, code=0x0A)
class Mirror(Item):
def __init__(self):
super(Mirror, self).__init__('Magic Mirror', True, code=0x1A)
class Ocarina(Item):
def __init__(self):
super(Ocarina, self).__init__('Ocarina', True, code=0x14)
class Boots(Item):
def __init__(self):
super(Boots, self).__init__('Pegasus Boots', True, code=0x4B)
class Glove(Item):
def __init__(self):
super(Glove, self).__init__('Power Glove', True, code=0x1B)
class Cape(Item):
def __init__(self):
super(Cape, self).__init__('Cape', True, code=0x19)
class Mushroom(Item):
def __init__(self):
super(Mushroom, self).__init__('Mushroom', True, code=0x29)
class Shovel(Item):
def __init__(self):
super(Shovel, self).__init__('Shovel', True, code=0x13)
class Lamp(Item):
def __init__(self):
super(Lamp, self).__init__('Lamp', True, code=0x12)
class Powder(Item):
def __init__(self):
super(Powder, self).__init__('Magic Powder', True, code=0x0D)
class Pearl(Item):
def __init__(self):
super(Pearl, self).__init__('Moon Pearl', True, code=0x1F)
class Somaria(Item):
def __init__(self):
super(Somaria, self).__init__('Cane of Somaria', True, code=0x15)
class FireRod(Item):
def __init__(self):
super(FireRod, self).__init__('Fire Rod', True, code=0x07)
class Flippers(Item):
def __init__(self):
super(Flippers, self).__init__('Flippers', True, code=0x1E)
class IceRod(Item):
def __init__(self):
super(IceRod, self).__init__('Ice Rod', True, code=0x08)
class Mitts(Item):
def __init__(self):
super(Mitts, self).__init__("Titans Mitts", True, code=0x1C)
class Ether(Item):
def __init__(self):
super(Ether, self).__init__('Ether', True, code=0x10)
class Bombos(Item):
def __init__(self):
super(Bombos, self).__init__('Bombos', True, code=0x0F)
class Quake(Item):
def __init__(self):
super(Quake, self).__init__('Quake', True, code=0x11)
class Bottle(Item):
def __init__(self):
super(Bottle, self).__init__('Bottle', True, code=[0x16, 0x2B, 0x2C, 0x2D, 0x3C, 0x3D, 0x48][random.randint(0, 6)])
class MasterSword(Item):
def __init__(self):
super(MasterSword, self).__init__('Master Sword', True, code=0x50)
class TemperedSword(Item):
def __init__(self):
super(TemperedSword, self).__init__('Tempered Sword', True, code=0x02)
class FighterSword(Item):
def __init__(self):
super(FighterSword, self).__init__('Fighter Sword', True, code=0x49)
class GoldenSword(Item):
def __init__(self):
super(GoldenSword, self).__init__('GoldenSword', True, code=0x03)
class ProgressiveSword(Item):
def __init__(self):
super(ProgressiveSword, self).__init__('Progressive Sword', True, code=0x5E)
class ProgressiveGlove(Item):
def __init__(self):
super(ProgressiveGlove, self).__init__('Progressive Glove', True, code=0x61)
class SilverArrows(Item):
def __init__(self):
super(SilverArrows, self).__init__('Silver Arrows', True, code=0x58)
class GreenPendant(Item):
def __init__(self):
super(GreenPendant, self).__init__('Green Pendant', True, code=[0x04, 0x38, 0x60, 0x00, 0x69, 0x01])
class RedPendant(Item):
def __init__(self):
super(RedPendant, self).__init__('Red Pendant', True, code=[0x02, 0x34, 0x60, 0x00, 0x69, 0x02])
class BluePendant(Item):
def __init__(self):
super(BluePendant, self).__init__('Blue Pendant', True, code=[0x01, 0x32, 0x60, 0x00, 0x69, 0x03])
class Triforce(Item):
def __init__(self):
super(Triforce, self).__init__('Triforce', True, code=0x6A)
class Crystal1(Item):
def __init__(self):
super(Crystal1, self).__init__('Crystal 1', True, code=[0x02, 0x34, 0x64, 0x40, 0x7F, 0x06])
class Crystal2(Item):
def __init__(self):
super(Crystal2, self).__init__('Crystal 2', True, code=[0x10, 0x34, 0x64, 0x40, 0x79, 0x06])
class Crystal3(Item):
def __init__(self):
super(Crystal3, self).__init__('Crystal 3', True, code=[0x40, 0x34, 0x64, 0x40, 0x6C, 0x06])
class Crystal4(Item):
def __init__(self):
super(Crystal4, self).__init__('Crystal 4', True, code=[0x20, 0x34, 0x64, 0x40, 0x6D, 0x06])
class Crystal5(Item):
def __init__(self):
super(Crystal5, self).__init__('Crystal 5', True, code=[0x04, 0x34, 0x64, 0x40, 0x6E, 0x06])
class Crystal6(Item):
def __init__(self):
super(Crystal6, self).__init__('Crystal 6', True, code=[0x01, 0x34, 0x64, 0x40, 0x6F, 0x06])
class Crystal7(Item):
def __init__(self):
super(Crystal7, self).__init__('Crystal 7', True, code=[0x08, 0x34, 0x64, 0x40, 0x7C, 0x06])
class SingleArrow(Item):
def __init__(self):
super(SingleArrow, self).__init__('Single Arrow', False, code=0x43)
class Arrows10(Item):
def __init__(self):
super(Arrows10, self).__init__('Arrows (10)', False, code=0x44)
class ArrowUpgrade10(Item):
def __init__(self):
super(ArrowUpgrade10, self).__init__('Arrow Upgrade (+10)', False, code=0x54)
class ArrowUpgrade5(Item):
def __init__(self):
super(ArrowUpgrade5, self).__init__('Arrow Upgrade (+5)', False, code=0x53)
class SingleBomb(Item):
def __init__(self):
super(SingleBomb, self).__init__('Single Bomb', False, code=0x27)
class Bombs3(Item):
def __init__(self):
super(Bombs3, self).__init__('Bombs (3)', False, code=0x28)
class BombUpgrade10(Item):
def __init__(self):
super(BombUpgrade10, self).__init__('Bomb Upgrade (+10)', False, code=0x52)
class BombUpgrade5(Item):
def __init__(self):
super(BombUpgrade5, self).__init__('Bomb Upgrade (+5)', False, code=0x51)
class BlueMail(Item):
def __init__(self):
super(BlueMail, self).__init__('Blue Mail', False, code=0x22)
class RedMail(Item):
def __init__(self):
super(RedMail, self).__init__('Red Mail', False, code=0x23)
class ProgressiveArmor(Item):
def __init__(self):
super(ProgressiveArmor, self).__init__('Progressive Armor', False, code=0x60)
class BlueBoomerang(Item):
def __init__(self):
super(BlueBoomerang, self).__init__('Blue Boomerang', False, code=0x0C)
class RedBoomerang(Item):
def __init__(self):
super(RedBoomerang, self).__init__('Red Boomerang', False, code=0x2A)
class BlueShield(Item):
def __init__(self):
super(BlueShield, self).__init__('Blue Shield', False, code=0x04)
class RedShield(Item):
def __init__(self):
super(RedShield, self).__init__('Red Shield', False, code=0x05)
class MirrorShield(Item):
def __init__(self):
super(MirrorShield, self).__init__('Mirror Shield', False, code=0x06)
class ProgressiveShield(Item):
def __init__(self):
super(ProgressiveShield, self).__init__('Progressive Shield', False, code=0x5F)
class Net(Item):
def __init__(self):
super(Net, self).__init__('Bug Catching Net', False, code=0x21)
class Byrna(Item):
def __init__(self):
super(Byrna, self).__init__('Cane of Byrna', False, code=0x18)
class HeartContainer(Item):
def __init__(self):
super(HeartContainer, self).__init__('Boss Heart Container', False, code=0x3E)
class SancHeart(Item):
def __init__(self):
super(SancHeart, self).__init__('Sanctuary Heart Container', False, code=0x3F)
class PieceOfHeart(Item):
def __init__(self):
super(PieceOfHeart, self).__init__('Piece of Heart', False, code=0x17)
class Rupee(Item):
def __init__(self):
super(Rupee, self).__init__('Rupee (1)', False, code=0x34)
class Rupees5(Item):
def __init__(self):
super(Rupees5, self).__init__('Rupees (5)', False, code=0x35)
class Rupees20(Item):
def __init__(self):
super(Rupees20, self).__init__('Rupees (20)', False, code=0x36)
class Rupees50(Item):
def __init__(self):
super(Rupees50, self).__init__('Rupees (50)', False, code=0x41)
class Rupees100(Item):
def __init__(self):
super(Rupees100, self).__init__('Rupees (100)', False, code=0x40)
class Rupees300(Item):
def __init__(self):
super(Rupees300, self).__init__('Rupees (300)', False, code=0x46)
class HalfMagic(Item):
def __init__(self):
super(HalfMagic, self).__init__('Magic Upgrade (1/2)', True, code=0x4E) # can be required to beat mothula in an open seed in very very rare circumstance
class QuarterMagic(Item):
def __init__(self):
super(QuarterMagic, self).__init__('Magic Upgrade (1/4)', True, code=0x4F) # can be required to beat mothula in an open seed in very very rare circumstance
# ToDo Use dungeons specific items once they work correctly
class EPSmallKey(Item):
def __init__(self):
super(EPSmallKey, self).__init__('Small Key (Eastern Palace)', False, True, code=0x24)
class EPBigKey(Item):
def __init__(self):
super(EPBigKey, self).__init__('Big Key (Eastern Palace)', False, True, code=0x32)
class EPCompass(Item):
def __init__(self):
super(EPCompass, self).__init__('Compass (Eastern Palace)', False, code=0x25)
class EPMap(Item):
def __init__(self):
super(EPMap, self).__init__('Map (Eastern Palace)', False, code=0x33)
class DPSmallKey(Item):
def __init__(self):
super(DPSmallKey, self).__init__('Small Key (Desert Palace)', False, True, code=0x24)
class DPBigKey(Item):
def __init__(self):
super(DPBigKey, self).__init__('Big Key (Desert Palace)', False, True, code=0x32)
class DPCompass(Item):
def __init__(self):
super(DPCompass, self).__init__('Compass (Desert Palace)', False, code=0x25)
class DPMap(Item):
def __init__(self):
super(DPMap, self).__init__('Map (Desert Palace)', False, code=0x33)
class THSmallKey(Item):
def __init__(self):
super(THSmallKey, self).__init__('Small Key (Tower of Hera)', False, True, code=0x24)
class THBigKey(Item):
def __init__(self):
super(THBigKey, self).__init__('Big Key (Tower of Hera)', False, True, code=0x32)
class THCompass(Item):
def __init__(self):
super(THCompass, self).__init__('Compass (Tower of Hera)', False, code=0x25)
class THMap(Item):
def __init__(self):
super(THMap, self).__init__('Map (Tower of Hera)', False, code=0x33)
class ESSmallKey(Item):
def __init__(self):
super(ESSmallKey, self).__init__('Small Key (Escape)', False, True, code=0x24)
class ESBigKey(Item):
def __init__(self):
super(ESBigKey, self).__init__('Big Key (Escape)', False, True, code=0x32)
class ESMap(Item):
def __init__(self):
super(ESMap, self).__init__('Map (Escape)', False, code=0x33)
class ATSmallKey(Item):
def __init__(self):
super(ATSmallKey, self).__init__('Small Key (Agahnims Tower)', False, True, code=0x24)
class PDSmallKey(Item):
def __init__(self):
super(PDSmallKey, self).__init__('Small Key (Palace of Darkness)', False, True, code=0x24)
class PDBigKey(Item):
def __init__(self):
super(PDBigKey, self).__init__('Big Key (Palace of Darkness)', False, True, code=0x32)
class PDCompass(Item):
def __init__(self):
super(PDCompass, self).__init__('Compass (Palace of Darkness)', False, code=0x25)
class PDMap(Item):
def __init__(self):
super(PDMap, self).__init__('Map (Palace of Darkness)', False, code=0x33)
class TTSmallKey(Item):
def __init__(self):
super(TTSmallKey, self).__init__('Small Key (Thieves Town)', False, True, code=0x24)
class TTBigKey(Item):
def __init__(self):
super(TTBigKey, self).__init__('Big Key (Thieves Town)', False, True, code=0x32)
class TTCompass(Item):
def __init__(self):
super(TTCompass, self).__init__('Compass (Thieves Town)', False, code=0x25)
class TTMap(Item):
def __init__(self):
super(TTMap, self).__init__('Map (Thieves Town)', False, code=0x33)
class SWSmallKey(Item):
def __init__(self):
super(SWSmallKey, self).__init__('Small Key (Skull Woods)', False, True, code=0x24)
class SWBigKey(Item):
def __init__(self):
super(SWBigKey, self).__init__('Big Key (Skull Woods)', False, True, code=0x32)
class SWCompass(Item):
def __init__(self):
super(SWCompass, self).__init__('Compass (Skull Woods)', False, code=0x25)
class SWMap(Item):
def __init__(self):
super(SWMap, self).__init__('Map (Skull Woods)', False, code=0x33)
class SPSmallKey(Item):
def __init__(self):
super(SPSmallKey, self).__init__('Small Key (Swamp Palace)', False, True, code=0x24)
class SPBigKey(Item):
def __init__(self):
super(SPBigKey, self).__init__('Big Key (Swamp Palace)', False, True, code=0x32)
class SPCompass(Item):
def __init__(self):
super(SPCompass, self).__init__('Compass (Swamp Palace)', False, code=0x25)
class SPMap(Item):
def __init__(self):
super(SPMap, self).__init__('Map (Swamp Palace)', False, code=0x33)
class IPSmallKey(Item):
def __init__(self):
super(IPSmallKey, self).__init__('Small Key (Ice Palace)', False, True, code=0x24)
class IPBigKey(Item):
def __init__(self):
super(IPBigKey, self).__init__('Big Key (Ice Palace)', False, True, code=0x32)
class IPCompass(Item):
def __init__(self):
super(IPCompass, self).__init__('Compass (Ice Palace)', False, code=0x25)
class IPMap(Item):
def __init__(self):
super(IPMap, self).__init__('Map (Ice Palace)', False, code=0x33)
class MMSmallKey(Item):
def __init__(self):
super(MMSmallKey, self).__init__('Small Key (Misery Mire)', False, True, code=0x24)
class MMBigKey(Item):
def __init__(self):
super(MMBigKey, self).__init__('Big Key (Misery Mire)', False, True, code=0x32)
class MMCompass(Item):
def __init__(self):
super(MMCompass, self).__init__('Compass (Misery Mire)', False, code=0x25)
class MMMap(Item):
def __init__(self):
super(MMMap, self).__init__('Map (Misery Mire)', False, code=0x33)
class TRSmallKey(Item):
def __init__(self):
super(TRSmallKey, self).__init__('Small Key (Turtle Rock)', False, True, code=0x24)
class TRBigKey(Item):
def __init__(self):
super(TRBigKey, self).__init__('Big Key (Turtle Rock)', False, True, code=0x32)
class TRCompass(Item):
def __init__(self):
super(TRCompass, self).__init__('Compass (Turtle Rock)', False, code=0x25)
class TRMap(Item):
def __init__(self):
super(TRMap, self).__init__('Map (Turtle Rock)', False, code=0x33)
class GTSmallKey(Item):
def __init__(self):
super(GTSmallKey, self).__init__('Small Key (Ganons Tower)', False, True, code=0x24)
class GTBigKey(Item):
def __init__(self):
super(GTBigKey, self).__init__('Big Key (Ganons Tower)', False, True, code=0x32)
class GTCompass(Item):
def __init__(self):
super(GTCompass, self).__init__('Compass (Ganons Tower)', False, code=0x25)
class GTMap(Item):
def __init__(self):
super(GTMap, self).__init__('Map (Ganons Tower)', False, code=0x33)
import logging
def ItemFactory(items):
ret = []
singleton = False
if isinstance(items, str):
items = [items]
singleton = True
for item in items:
if item in item_table:
advancement, key, crystal, code, altar_hint, altar_credit, sickkid_credit, zora_credit, witch_credit, fluteboy_credit = item_table[item]
if item == 'Bottle':
# randomly fill bottle
code = [0x16, 0x2B, 0x2C, 0x2D, 0x3C, 0x3D, 0x48][random.randint(0, 6)]
ret.append(Item(item, advancement, key, crystal, code, altar_hint, altar_credit, sickkid_credit, zora_credit, witch_credit, fluteboy_credit))
else:
logging.getLogger('').warning('Unknown Items: %s' % item)
if singleton:
return ret[0]
else:
return ret
# Format: Name: (Advancement, Key, Crystal, ItemCode, Altar Hint Text, Altar Credit Text, Sick Kid Credit Text, Zora Credit Text, Witch Credit Text, Flute Boy Credit Text)
item_table = {'Bow': (True, False, False, 0x0B, 'You have\nchosen the\narcher class.', None, None, None, None, None),
'Book of Mudora': (True, False, False, 0x1D, 'This is a\nparadox?!', None, None, None, None, None),
'Hammer': (True, False, False, 0x09, 'stop\nhammer time!', None, None, None, None, None),
'Hookshot': (True, False, False, 0x0A, 'BOING!!!\nBOING!!!\nBOING!!!', None, None, None, None, None),
'Magic Mirror': (True, False, False, 0x1A, 'Isn\'t your\nreflection so\npretty?', None, None, None, None, None),
'Ocarina': (True, False, False, 0x14, 'Save the duck\nand fly to\nfreedom!', None, None, None, None, None),
'Pegasus Boots': (True, False, False, 0x4B, 'Gotta go fast!', None, None, None, None, None),
'Power Glove': (True, False, False, 0x1B, 'Now you can\nlift weak\nstuff!', None, None, None, None, None),
'Cape': (True, False, False, 0x19, 'Wear this to\nbecome\ninvisible!', None, None, None, None, None),
'Mushroom': (True, False, False, 0x29, 'I\'m a fun guy!\n\nI\'m a funghi!', None, None, None, None, None),
'Shovel': (True, False, False, 0x13, 'Can\n You\n Dig it?', None, None, None, None, None),
'Lamp': (True, False, False, 0x12, 'Baby, baby,\nbaby.\nLight my way!', None, None, None, None, None),
'Magic Powder': (True, False, False, 0x0D, 'you can turn\nanti-faeries\ninto fairies', None, None, None, None, None),
'Moon Pearl': (True, False, False, 0x1F, ' Bunny Link\n be\n gone!', None, None, None, None, None),
'Cane of Somaria': (True, False, False, 0x15, 'I make blocks\nto hold down\nswitches!', None, None, None, None, None),
'Fire Rod': (True, False, False, 0x07, 'I\'m the hot\nrod. I make\nthings burn!', None, None, None, None, None),
'Flippers': (True, False, False, 0x1E, 'fancy a swim?', None, None, None, None, None),
'Ice Rod': (True, False, False, 0x08, 'I\'m the cold\nrod. I make\nthings freeze!', None, None, None, None, None),
'Titans Mitts': (True, False, False, 0x1C, 'Now you can\nlift heavy\nstuff!', None, None, None, None, None),
'Ether': (True, False, False, 0x10, 'Zero Kelvin!\nAbsolute zero!\nFear the cold!', None, None, None, None, None),
'Bombos': (True, False, False, 0x0F, 'Burn, baby,\nburn! Fear my\nring of fire!', None, None, None, None, None),
'Quake': (True, False, False, 0x11, 'Maxing out the\nRichter scale\nis what I do!', None, None, None, None, None),
'Bottle': (True, False, False, 0xFF, 'Now you can\nstore potions\nand stuff!', None, None, None, None, None), # specific content written on creation
'Master Sword': (True, False, False, 0x50, 'I thought this\nwas meant to\nbe randomized?', None, None, None, None, None),
'Tempered Sword': (True, False, False, 0x02, 'I stole the\nblacksmith\'s\njob!', None, None, None, None, None),
'Fighter Sword': (True, False, False, 0x49, 'A pathetic\nsword rests\nhere!', None, None, None, None, None),
'GoldenSword': (True, False, False, 0x03, 'The butter\nsword rests\nhere!', None, None, None, None, None),
'Progressive Sword': (True, False, False, 0x5E, 'a better copy\nof your sword\nfor your time', None, None, None, None, None),
'Progressive Glove': (True, False, False, 0x61, 'a way to lift\nheavier things', None, None, None, None, None),
'Silver Arrows': (True, False, False, 0x58, 'Do you fancy\nsilver tipped\narrows?', None, None, None, None, None),
'Green Pendant': (True, False, True, [0x04, 0x38, 0x60, 0x00, 0x69, 0x01], None, None, None, None, None, None),
'Red Pendant': (True, False, True, [0x02, 0x34, 0x60, 0x00, 0x69, 0x02], None, None, None, None, None, None),
'Blue Pendant': (True, False, True, [0x01, 0x32, 0x60, 0x00, 0x69, 0x03], None, None, None, None, None, None),
'Triforce': (True, False, False, 0x6A, '\n YOU WIN!', None, None, None, None, None),
'Crystal 1': (True, False, True, [0x02, 0x34, 0x64, 0x40, 0x7F, 0x06], None, None, None, None, None, None),
'Crystal 2': (True, False, True, [0x10, 0x34, 0x64, 0x40, 0x79, 0x06], None, None, None, None, None, None),
'Crystal 3': (True, False, True, [0x40, 0x34, 0x64, 0x40, 0x6C, 0x06], None, None, None, None, None, None),
'Crystal 4': (True, False, True, [0x20, 0x34, 0x64, 0x40, 0x6D, 0x06], None, None, None, None, None, None),
'Crystal 5': (True, False, True, [0x04, 0x34, 0x64, 0x40, 0x6E, 0x06], None, None, None, None, None, None),
'Crystal 6': (True, False, True, [0x01, 0x34, 0x64, 0x40, 0x6F, 0x06], None, None, None, None, None, None),
'Crystal 7': (True, False, True, [0x08, 0x34, 0x64, 0x40, 0x7C, 0x06], None, None, None, None, None, None),
'Single Arrow': (False, False, False, 0x43, 'a lonely arrow\nsits here.', None, None, None, None, None),
'Arrows (10)': (False, False, False, 0x44, 'This will give\nyou ten shots\nwith your bow!', None, None, None, None, None),
'Arrow Upgrade (+10)': (False, False, False, 0x54, 'increase arrow\nstorage, low\nlow price', None, None, None, None, None),
'Arrow Upgrade (+5)': (False, False, False, 0x53, 'increase arrow\nstorage, low\nlow price', None, None, None, None, None),
'Single Bomb': (False, False, False, 0x27, 'I make things\ngo BOOM! But\njust once.', None, None, None, None, None),
'Bombs (3)': (False, False, False, 0x28, 'I make things\ngo triple\nBOOM!!!', None, None, None, None, None),
'Bomb Upgrade (+10)': (False, False, False, 0x52, 'increase bomb\nstorage, low\nlow price', None, None, None, None, None),
'Bomb Upgrade (+5)': (False, False, False, 0x51, 'increase bomb\nstorage, low\nlow price', None, None, None, None, None),
'Blue Mail': (False, False, False, 0x22, 'Now you\'re a\nblue elf!', None, None, None, None, None),
'Red Mail': (False, False, False, 0x23, 'Now you\'re a\nred elf!', None, None, None, None, None),
'Progressive Armor': (False, False, False, 0x60, 'time for a\nchange of\nclothes?', None, None, None, None, None),
'Blue Boomerang': (False, False, False, 0x0C, 'No matter what\nyou do, blue\nreturns to you', None, None, None, None, None),
'Red Boomerang': (False, False, False, 0x2A, 'No matter what\nyou do, red\nreturns to you', None, None, None, None, None),
'Blue Shield': (False, False, False, 0x04, 'Now you can\ndefend against\npebbles!', None, None, None, None, None),
'Red Shield': (False, False, False, 0x05, 'Now you can\ndefend against\nfireballs!', None, None, None, None, None),
'Mirror Shield': (False, False, False, 0x06, 'Now you can\ndefend against\nlasers!', None, None, None, None, None),
'Progressive Shield': (False, False, False, 0x5F, 'have a better\nblocker in\nfront of you', None, None, None, None, None),
'Bug Catching Net': (False, False, False, 0x21, 'Let\'s catch\nsome bees and\nfaeries!', None, None, None, None, None),
'Cane of Byrna': (False, False, False, 0x18, 'Use this to\nbecome\ninvincible!', None, None, None, None, None),
'Boss Heart Container': (False, False, False, 0x3E, 'Maximum health\nincreased!\nYeah!', None, None, None, None, None),
'Sanctuary Heart Container': (False, False, False, 0x3F, 'Maximum health\nincreased!\nYeah!', None, None, None, None, None),
'Piece of Heart': (False, False, False, 0x17, 'Just a little\npiece of love!', None, None, None, None, None),
'Rupee (1)': (False, False, False, 0x34, 'Just pocket\nchange. Move\nright along.', None, None, None, None, None),
'Rupees (5)': (False, False, False, 0x35, 'Just pocket\nchange. Move\nright along.', None, None, None, None, None),
'Rupees (20)': (False, False, False, 0x36, 'Just couch\ncash. Move\nright along.', None, None, None, None, None),
'Rupees (50)': (False, False, False, 0x41, 'Just couch\ncash. Move\nright along.', None, None, None, None, None),
'Rupees (100)': (False, False, False, 0x40, 'A rupee stash!\nHell yeah!', None, None, None, None, None),
'Rupees (300)': (False, False, False, 0x46, 'A rupee hoard!\nHell yeah!', None, None, None, None, None),
'Magic Upgrade (1/2)': (True, False, False, 0x4E, 'Your magic\npower has been\ndoubled!', None, None, None, None, None), # can be required to beat mothula in an open seed in very very rare circumstance
'Magic Upgrade (1/4)': (True, False, False, 0x4F, 'Your magic\npower has been\nquadrupled!', None, None, None, None, None), # can be required to beat mothula in an open seed in very very rare circumstance
# ToDo Use dungeons specific items once they work correctly
'Small Key (Eastern Palace)': (False, True, False, 0x24, None, None, None, None, None, None),
'Big Key (Eastern Palace)': (False, True, False, 0x32, None, None, None, None, None, None),
'Compass (Eastern Palace)': (False, False, False, 0x25, None, None, None, None, None, None),
'Map (Eastern Palace)': (False, False, False, 0x33, None, None, None, None, None, None),
'Small Key (Desert Palace)': (False, True, False, 0x24, None, None, None, None, None, None),
'Big Key (Desert Palace)': (False, True, False, 0x32, None, None, None, None, None, None),
'Compass (Desert Palace)': (False, False, False, 0x25, None, None, None, None, None, None),
'Map (Desert Palace)': (False, False, False, 0x33, None, None, None, None, None, None),
'Small Key (Tower of Hera)': (False, True, False, 0x24, None, None, None, None, None, None),
'Big Key (Tower of Hera)': (False, True, False, 0x32, None, None, None, None, None, None),
'Compass (Tower of Hera)': (False, False, False, 0x25, None, None, None, None, None, None),
'Map (Tower of Hera)': (False, False, False, 0x33, None, None, None, None, None, None),
'Small Key (Escape)': (False, True, False, 0x24, None, None, None, None, None, None),
'Big Key (Escape)': (False, True, False, 0x32, None, None, None, None, None, None),
'Map (Escape)': (False, False, False, 0x33, None, None, None, None, None, None),
'Small Key (Agahnims Tower)': (False, True, False, 0x24, None, None, None, None, None, None),
'Small Key (Palace of Darkness)': (False, True, False, 0x24, None, None, None, None, None, None),
'Big Key (Palace of Darkness)': (False, True, False, 0x32, None, None, None, None, None, None),
'Compass (Palace of Darkness)': (False, False, False, 0x25, None, None, None, None, None, None),
'Map (Palace of Darkness)': (False, False, False, 0x33, None, None, None, None, None, None),
'Small Key (Thieves Town)': (False, True, False, 0x24, None, None, None, None, None, None),
'Big Key (Thieves Town)': (False, True, False, 0x32, None, None, None, None, None, None),
'Compass (Thieves Town)': (False, False, False, 0x25, None, None, None, None, None, None),
'Map (Thieves Town)': (False, False, False, 0x33, None, None, None, None, None, None),
'Small Key (Skull Woods)': (False, True, False, 0x24, None, None, None, None, None, None),
'Big Key (Skull Woods)': (False, True, False, 0x32, None, None, None, None, None, None),
'Compass (Skull Woods)': (False, False, False, 0x25, None, None, None, None, None, None),
'Map (Skull Woods)': (False, False, False, 0x33, None, None, None, None, None, None),
'Small Key (Swamp Palace)': (False, True, False, 0x24, None, None, None, None, None, None),
'Big Key (Swamp Palace)': (False, True, False, 0x32, None, None, None, None, None, None),
'Compass (Swamp Palace)': (False, False, False, 0x25, None, None, None, None, None, None),
'Map (Swamp Palace)': (False, False, False, 0x33, None, None, None, None, None, None),
'Small Key (Ice Palace)': (False, True, False, 0x24, None, None, None, None, None, None),
'Big Key (Ice Palace)': (False, True, False, 0x32, None, None, None, None, None, None),
'Compass (Ice Palace)': (False, False, False, 0x25, None, None, None, None, None, None),
'Map (Ice Palace)': (False, False, False, 0x33, None, None, None, None, None, None),
'Small Key (Misery Mire)': (False, True, False, 0x24, None, None, None, None, None, None),
'Big Key (Misery Mire)': (False, True, False, 0x32, None, None, None, None, None, None),
'Compass (Misery Mire)': (False, False, False, 0x25, None, None, None, None, None, None),
'Map (Misery Mire)': (False, False, False, 0x33, None, None, None, None, None, None),
'Small Key (Turtle Rock)': (False, True, False, 0x24, None, None, None, None, None, None),
'Big Key (Turtle Rock)': (False, True, False, 0x32, None, None, None, None, None, None),
'Compass (Turtle Rock)': (False, False, False, 0x25, None, None, None, None, None, None),
'Map (Turtle Rock)': (False, False, False, 0x33, None, None, None, None, None, None),
'Small Key (Ganons Tower)': (False, True, False, 0x24, None, None, None, None, None, None),
'Big Key (Ganons Tower)': (False, True, False, 0x32, None, None, None, None, None, None),
'Compass (Ganons Tower)': (False, False, False, 0x25, None, None, None, None, None, None),
'Map (Ganons Tower)': (False, False, False, 0x33, None, None, None, None, None, None)}