605 lines
15 KiB
Python
605 lines
15 KiB
Python
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=0x0F)
|
|
|
|
|
|
class Bombos(Item):
|
|
def __init__(self):
|
|
super(Bombos, self).__init__('Bombos', True, code=0x10)
|
|
|
|
|
|
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)
|