Add priority attribute to items. They are placed after advancement items, but before the rest. Ensures they are available even in seeds that overfill the itempool.
This commit is contained in:
parent
fd158e332f
commit
4ed2a5b510
|
@ -464,9 +464,10 @@ class Location(object):
|
|||
|
||||
class Item(object):
|
||||
|
||||
def __init__(self, name='', advancement=False, key=False, crystal=False, code=None, altar_hint=None, altar_credit=None, sickkid_credit=None, zora_credit=None, witch_credit=None, fluteboy_credit=None):
|
||||
def __init__(self, name='', advancement=False, priority=False, key=False, crystal=False, code=None, altar_hint=None, altar_credit=None, sickkid_credit=None, zora_credit=None, witch_credit=None, fluteboy_credit=None):
|
||||
self.name = name
|
||||
self.advancement = advancement
|
||||
self.priority = priority
|
||||
self.key = key
|
||||
self.crystal = crystal
|
||||
self.altar_hint_text = altar_hint
|
||||
|
|
262
Items.py
262
Items.py
|
@ -11,11 +11,11 @@ def ItemFactory(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]
|
||||
advancement, priority, 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))
|
||||
ret.append(Item(item, advancement, priority, key, crystal, code, altar_hint, altar_credit, sickkid_credit, zora_credit, witch_credit, fluteboy_credit))
|
||||
else:
|
||||
logging.getLogger('').warning('Unknown Item: %s' % item)
|
||||
return None
|
||||
|
@ -26,133 +26,133 @@ def ItemFactory(items):
|
|||
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, 'This magic\ncoin freezes\neverything!', 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),
|
||||
'Golden Sword': (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),
|
||||
'Power Star': (True, False, False, 0x6B, 'a small victory', None, None, None, None, None),
|
||||
'Triforce Piece': (True, False, False, 0x6C, 'a small victory', 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),
|
||||
'Rupoor': (False, False, False, 0x59, 'a debt collector', None, None, None, None, None),
|
||||
'Red Clock': (False, False, False, 0x5B, 'a waste of time', None, None, None, None, None),
|
||||
'Blue Clock': (False, False, False, 0x5C, 'a bit of time', None, None, None, None, None),
|
||||
'Green Clock': (False, False, False, 0x5D, 'a lot of time', None, None, None, None, None),
|
||||
'Single RNG': (False, False, False, 0x62, 'something you don\'t yet have', None, None, None, None, None),
|
||||
'Multi RNG': (False, False, False, 0x63, 'something you may already have', 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
|
||||
# Format: Name: (Advancement, Priority, 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, False, 0x0B, 'You have\nchosen the\narcher class.', None, None, None, None, None),
|
||||
'Book of Mudora': (True, False, False, False, 0x1D, 'This is a\nparadox?!', None, None, None, None, None),
|
||||
'Hammer': (True, False, False, False, 0x09, 'stop\nhammer time!', None, None, None, None, None),
|
||||
'Hookshot': (True, False, False, False, 0x0A, 'BOING!!!\nBOING!!!\nBOING!!!', None, None, None, None, None),
|
||||
'Magic Mirror': (True, False, False, False, 0x1A, 'Isn\'t your\nreflection so\npretty?', None, None, None, None, None),
|
||||
'Ocarina': (True, False, False, False, 0x14, 'Save the duck\nand fly to\nfreedom!', None, None, None, None, None),
|
||||
'Pegasus Boots': (True, False, False, False, 0x4B, 'Gotta go fast!', None, None, None, None, None),
|
||||
'Power Glove': (True, False, False, False, 0x1B, 'Now you can\nlift weak\nstuff!', None, None, None, None, None),
|
||||
'Cape': (True, False, False, False, 0x19, 'Wear this to\nbecome\ninvisible!', None, None, None, None, None),
|
||||
'Mushroom': (True, False, False, False, 0x29, 'I\'m a fun guy!\n\nI\'m a funghi!', None, None, None, None, None),
|
||||
'Shovel': (True, False, False, False, 0x13, 'Can\n You\n Dig it?', None, None, None, None, None),
|
||||
'Lamp': (True, False, False, False, 0x12, 'Baby, baby,\nbaby.\nLight my way!', None, None, None, None, None),
|
||||
'Magic Powder': (True, False, False, False, 0x0D, 'you can turn\nanti-faeries\ninto fairies', None, None, None, None, None),
|
||||
'Moon Pearl': (True, False, False, False, 0x1F, ' Bunny Link\n be\n gone!', None, None, None, None, None),
|
||||
'Cane of Somaria': (True, False, False, False, 0x15, 'I make blocks\nto hold down\nswitches!', None, None, None, None, None),
|
||||
'Fire Rod': (True, False, False, False, 0x07, 'I\'m the hot\nrod. I make\nthings burn!', None, None, None, None, None),
|
||||
'Flippers': (True, False, False, False, 0x1E, 'fancy a swim?', None, None, None, None, None),
|
||||
'Ice Rod': (True, False, False, False, 0x08, 'I\'m the cold\nrod. I make\nthings freeze!', None, None, None, None, None),
|
||||
'Titans Mitts': (True, False, False, False, 0x1C, 'Now you can\nlift heavy\nstuff!', None, None, None, None, None),
|
||||
'Ether': (True, False, False, False, 0x10, 'This magic\ncoin freezes\neverything!', None, None, None, None, None),
|
||||
'Bombos': (True, False, False, False, 0x0F, 'Burn, baby,\nburn! Fear my\nring of fire!', None, None, None, None, None),
|
||||
'Quake': (True, False, False, False, 0x11, 'Maxing out the\nRichter scale\nis what I do!', None, None, None, None, None),
|
||||
'Bottle': (True, False, 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, False, 0x50, 'I thought this\nwas meant to\nbe randomized?', None, None, None, None, None),
|
||||
'Tempered Sword': (True, False, False, False, 0x02, 'I stole the\nblacksmith\'s\njob!', None, None, None, None, None),
|
||||
'Fighter Sword': (True, False, False, False, 0x49, 'A pathetic\nsword rests\nhere!', None, None, None, None, None),
|
||||
'Golden Sword': (True, False, False, False, 0x03, 'The butter\nsword rests\nhere!', None, None, None, None, None),
|
||||
'Progressive Sword': (True, False, False, False, 0x5E, 'a better copy\nof your sword\nfor your time', None, None, None, None, None),
|
||||
'Progressive Glove': (True, False, False, False, 0x61, 'a way to lift\nheavier things', None, None, None, None, None),
|
||||
'Silver Arrows': (True, False, False, False, 0x58, 'Do you fancy\nsilver tipped\narrows?', None, None, None, None, None),
|
||||
'Green Pendant': (True, False, False, True, [0x04, 0x38, 0x60, 0x00, 0x69, 0x01], None, None, None, None, None, None),
|
||||
'Red Pendant': (True, False, False, True, [0x02, 0x34, 0x60, 0x00, 0x69, 0x02], None, None, None, None, None, None),
|
||||
'Blue Pendant': (True, False, False, True, [0x01, 0x32, 0x60, 0x00, 0x69, 0x03], None, None, None, None, None, None),
|
||||
'Triforce': (True, False, False, False, 0x6A, '\n YOU WIN!', None, None, None, None, None),
|
||||
'Power Star': (True, False, False, False, 0x6B, 'a small victory', None, None, None, None, None),
|
||||
'Triforce Piece': (True, False, False, False, 0x6C, 'a small victory', None, None, None, None, None),
|
||||
'Crystal 1': (True, False, False, True, [0x02, 0x34, 0x64, 0x40, 0x7F, 0x06], None, None, None, None, None, None),
|
||||
'Crystal 2': (True, False, False, True, [0x10, 0x34, 0x64, 0x40, 0x79, 0x06], None, None, None, None, None, None),
|
||||
'Crystal 3': (True, False, False, True, [0x40, 0x34, 0x64, 0x40, 0x6C, 0x06], None, None, None, None, None, None),
|
||||
'Crystal 4': (True, False, False, True, [0x20, 0x34, 0x64, 0x40, 0x6D, 0x06], None, None, None, None, None, None),
|
||||
'Crystal 5': (True, False, False, True, [0x04, 0x34, 0x64, 0x40, 0x6E, 0x06], None, None, None, None, None, None),
|
||||
'Crystal 6': (True, False, False, True, [0x01, 0x34, 0x64, 0x40, 0x6F, 0x06], None, None, None, None, None, None),
|
||||
'Crystal 7': (True, False, False, True, [0x08, 0x34, 0x64, 0x40, 0x7C, 0x06], None, None, None, None, None, None),
|
||||
'Single Arrow': (False, False, False, False, 0x43, 'a lonely arrow\nsits here.', None, None, None, None, None),
|
||||
'Arrows (10)': (False, False, False, False, 0x44, 'This will give\nyou ten shots\nwith your bow!', None, None, None, None, None),
|
||||
'Arrow Upgrade (+10)': (False, False, False, False, 0x54, 'increase arrow\nstorage, low\nlow price', None, None, None, None, None),
|
||||
'Arrow Upgrade (+5)': (False, False, False, False, 0x53, 'increase arrow\nstorage, low\nlow price', None, None, None, None, None),
|
||||
'Single Bomb': (False, False, False, False, 0x27, 'I make things\ngo BOOM! But\njust once.', None, None, None, None, None),
|
||||
'Bombs (3)': (False, False, False, False, 0x28, 'I make things\ngo triple\nBOOM!!!', None, None, None, None, None),
|
||||
'Bomb Upgrade (+10)': (False, False, False, False, 0x52, 'increase bomb\nstorage, low\nlow price', None, None, None, None, None),
|
||||
'Bomb Upgrade (+5)': (False, False, False, False, 0x51, 'increase bomb\nstorage, low\nlow price', None, None, None, None, None),
|
||||
'Blue Mail': (False, True, False, False, 0x22, 'Now you\'re a\nblue elf!', None, None, None, None, None),
|
||||
'Red Mail': (False, True, False, False, 0x23, 'Now you\'re a\nred elf!', None, None, None, None, None),
|
||||
'Progressive Armor': (False, True, False, False, 0x60, 'time for a\nchange of\nclothes?', None, None, None, None, None),
|
||||
'Blue Boomerang': (False, True, False, False, 0x0C, 'No matter what\nyou do, blue\nreturns to you', None, None, None, None, None),
|
||||
'Red Boomerang': (False, True, False, False, 0x2A, 'No matter what\nyou do, red\nreturns to you', None, None, None, None, None),
|
||||
'Blue Shield': (False, True, False, False, 0x04, 'Now you can\ndefend against\npebbles!', None, None, None, None, None),
|
||||
'Red Shield': (False, True, False, False, 0x05, 'Now you can\ndefend against\nfireballs!', None, None, None, None, None),
|
||||
'Mirror Shield': (False, True, False, False, 0x06, 'Now you can\ndefend against\nlasers!', None, None, None, None, None),
|
||||
'Progressive Shield': (False, True, False, False, 0x5F, 'have a better\nblocker in\nfront of you', None, None, None, None, None),
|
||||
'Bug Catching Net': (False, True, False, False, 0x21, 'Let\'s catch\nsome bees and\nfaeries!', None, None, None, None, None),
|
||||
'Cane of Byrna': (False, True, False, False, 0x18, 'Use this to\nbecome\ninvincible!', None, None, None, None, None),
|
||||
'Boss Heart Container': (False, False, False, False, 0x3E, 'Maximum health\nincreased!\nYeah!', None, None, None, None, None),
|
||||
'Sanctuary Heart Container': (False, False, False, False, 0x3F, 'Maximum health\nincreased!\nYeah!', None, None, None, None, None),
|
||||
'Piece of Heart': (False, False, False, False, 0x17, 'Just a little\npiece of love!', None, None, None, None, None),
|
||||
'Rupee (1)': (False, False, False, False, 0x34, 'Just pocket\nchange. Move\nright along.', None, None, None, None, None),
|
||||
'Rupees (5)': (False, False, False, False, 0x35, 'Just pocket\nchange. Move\nright along.', None, None, None, None, None),
|
||||
'Rupees (20)': (False, False, False, False, 0x36, 'Just couch\ncash. Move\nright along.', None, None, None, None, None),
|
||||
'Rupees (50)': (False, False, False, False, 0x41, 'Just couch\ncash. Move\nright along.', None, None, None, None, None),
|
||||
'Rupees (100)': (False, False, False, False, 0x40, 'A rupee stash!\nHell yeah!', None, None, None, None, None),
|
||||
'Rupees (300)': (False, False, False, False, 0x46, 'A rupee hoard!\nHell yeah!', None, None, None, None, None),
|
||||
'Rupoor': (False, False, False, False, 0x59, 'a debt collector', None, None, None, None, None),
|
||||
'Red Clock': (False, True, False, False, 0x5B, 'a waste of time', None, None, None, None, None),
|
||||
'Blue Clock': (False, True, False, False, 0x5C, 'a bit of time', None, None, None, None, None),
|
||||
'Green Clock': (False, True, False, False, 0x5D, 'a lot of time', None, None, None, None, None),
|
||||
'Single RNG': (False, True, False, False, 0x62, 'something you don\'t yet have', None, None, None, None, None),
|
||||
'Multi RNG': (False, True, False, False, 0x63, 'something you may already have', None, None, None, None, None),
|
||||
'Magic Upgrade (1/2)': (True, False, 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, 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),
|
||||
'Nothing': (False, False, False, 0x5A, 'Some Hot Air', None, None, None, None, None)}
|
||||
'Small Key (Eastern Palace)': (False, False, True, False, 0x24, None, None, None, None, None, None),
|
||||
'Big Key (Eastern Palace)': (False, False, True, False, 0x32, None, None, None, None, None, None),
|
||||
'Compass (Eastern Palace)': (False, True, False, False, 0x25, None, None, None, None, None, None),
|
||||
'Map (Eastern Palace)': (False, True, False, False, 0x33, None, None, None, None, None, None),
|
||||
'Small Key (Desert Palace)': (False, False, True, False, 0x24, None, None, None, None, None, None),
|
||||
'Big Key (Desert Palace)': (False, False, True, False, 0x32, None, None, None, None, None, None),
|
||||
'Compass (Desert Palace)': (False, True, False, False, 0x25, None, None, None, None, None, None),
|
||||
'Map (Desert Palace)': (False, True, False, False, 0x33, None, None, None, None, None, None),
|
||||
'Small Key (Tower of Hera)': (False, False, True, False, 0x24, None, None, None, None, None, None),
|
||||
'Big Key (Tower of Hera)': (False, False, True, False, 0x32, None, None, None, None, None, None),
|
||||
'Compass (Tower of Hera)': (False, True, False, False, 0x25, None, None, None, None, None, None),
|
||||
'Map (Tower of Hera)': (False, True, False, False, 0x33, None, None, None, None, None, None),
|
||||
'Small Key (Escape)': (False, False, True, False, 0x24, None, None, None, None, None, None),
|
||||
'Big Key (Escape)': (False, False, True, False, 0x32, None, None, None, None, None, None),
|
||||
'Map (Escape)': (False, True, False, False, 0x33, None, None, None, None, None, None),
|
||||
'Small Key (Agahnims Tower)': (False, False, True, False, 0x24, None, None, None, None, None, None),
|
||||
'Small Key (Palace of Darkness)': (False, False, True, False, 0x24, None, None, None, None, None, None),
|
||||
'Big Key (Palace of Darkness)': (False, False, True, False, 0x32, None, None, None, None, None, None),
|
||||
'Compass (Palace of Darkness)': (False, True, False, False, 0x25, None, None, None, None, None, None),
|
||||
'Map (Palace of Darkness)': (False, True, False, False, 0x33, None, None, None, None, None, None),
|
||||
'Small Key (Thieves Town)': (False, False, True, False, 0x24, None, None, None, None, None, None),
|
||||
'Big Key (Thieves Town)': (False, False, True, False, 0x32, None, None, None, None, None, None),
|
||||
'Compass (Thieves Town)': (False, True, False, False, 0x25, None, None, None, None, None, None),
|
||||
'Map (Thieves Town)': (False, True, False, False, 0x33, None, None, None, None, None, None),
|
||||
'Small Key (Skull Woods)': (False, False, True, False, 0x24, None, None, None, None, None, None),
|
||||
'Big Key (Skull Woods)': (False, False, True, False, 0x32, None, None, None, None, None, None),
|
||||
'Compass (Skull Woods)': (False, True, False, False, 0x25, None, None, None, None, None, None),
|
||||
'Map (Skull Woods)': (False, True, False, False, 0x33, None, None, None, None, None, None),
|
||||
'Small Key (Swamp Palace)': (False, False, True, False, 0x24, None, None, None, None, None, None),
|
||||
'Big Key (Swamp Palace)': (False, False, True, False, 0x32, None, None, None, None, None, None),
|
||||
'Compass (Swamp Palace)': (False, True, False, False, 0x25, None, None, None, None, None, None),
|
||||
'Map (Swamp Palace)': (False, True, False, False, 0x33, None, None, None, None, None, None),
|
||||
'Small Key (Ice Palace)': (False, False, True, False, 0x24, None, None, None, None, None, None),
|
||||
'Big Key (Ice Palace)': (False, False, True, False, 0x32, None, None, None, None, None, None),
|
||||
'Compass (Ice Palace)': (False, True, False, False, 0x25, None, None, None, None, None, None),
|
||||
'Map (Ice Palace)': (False, True, False, False, 0x33, None, None, None, None, None, None),
|
||||
'Small Key (Misery Mire)': (False, False, True, False, 0x24, None, None, None, None, None, None),
|
||||
'Big Key (Misery Mire)': (False, False, True, False, 0x32, None, None, None, None, None, None),
|
||||
'Compass (Misery Mire)': (False, True, False, False, 0x25, None, None, None, None, None, None),
|
||||
'Map (Misery Mire)': (False, True, False, False, 0x33, None, None, None, None, None, None),
|
||||
'Small Key (Turtle Rock)': (False, False, True, False, 0x24, None, None, None, None, None, None),
|
||||
'Big Key (Turtle Rock)': (False, False, True, False, 0x32, None, None, None, None, None, None),
|
||||
'Compass (Turtle Rock)': (False, True, False, False, 0x25, None, None, None, None, None, None),
|
||||
'Map (Turtle Rock)': (False, True, False, False, 0x33, None, None, None, None, None, None),
|
||||
'Small Key (Ganons Tower)': (False, False, True, False, 0x24, None, None, None, None, None, None),
|
||||
'Big Key (Ganons Tower)': (False, False, True, False, 0x32, None, None, None, None, None, None),
|
||||
'Compass (Ganons Tower)': (False, True, False, False, 0x25, None, None, None, None, None, None),
|
||||
'Map (Ganons Tower)': (False, True, False, False, 0x33, None, None, None, None, None, None),
|
||||
'Nothing': (False, False, False, False, 0x5A, 'Some Hot Air', None, None, None, None, None)}
|
||||
|
|
16
Main.py
16
Main.py
|
@ -118,13 +118,10 @@ def distribute_items_cutoff(world, cutoffrate=0.33):
|
|||
candidate_item_to_place = None
|
||||
item_to_place = None
|
||||
for item in itempool:
|
||||
if advancement_placed:
|
||||
if advancement_placed or (progress_done and (item.advancement or item.priority)):
|
||||
item_to_place = item
|
||||
break
|
||||
if item.advancement:
|
||||
if progress_done:
|
||||
item_to_place = item
|
||||
break
|
||||
candidate_item_to_place = item
|
||||
if world.unlocks_new_location(item):
|
||||
item_to_place = item
|
||||
|
@ -188,13 +185,10 @@ def distribute_items_staleness(world):
|
|||
candidate_item_to_place = None
|
||||
item_to_place = None
|
||||
for item in itempool:
|
||||
if advancement_placed:
|
||||
if advancement_placed or (progress_done and (item.advancement or item.priority)):
|
||||
item_to_place = item
|
||||
break
|
||||
if item.advancement:
|
||||
if progress_done:
|
||||
item_to_place = item
|
||||
break
|
||||
candidate_item_to_place = item
|
||||
if world.unlocks_new_location(item):
|
||||
item_to_place = item
|
||||
|
@ -300,7 +294,7 @@ def flood_items(world):
|
|||
location_list = world.get_reachable_locations()
|
||||
random.shuffle(location_list)
|
||||
for location in location_list:
|
||||
if location.item is not None and not location.item.advancement and not location.item.key and 'Map' not in location.item.name and 'Compass' not in location.item.name:
|
||||
if location.item is not None and not location.item.advancement and not location.item.priority and not location.item.key:
|
||||
# safe to replace
|
||||
replace_item = location.item
|
||||
replace_item.location = None
|
||||
|
@ -398,13 +392,13 @@ def copy_world(world):
|
|||
# fill locations
|
||||
for location in world.get_locations():
|
||||
if location.item is not None:
|
||||
item = Item(location.item.name, location.item.advancement, location.item.key)
|
||||
item = Item(location.item.name, location.item.advancement, location.item.priority, location.item.key)
|
||||
ret.get_location(location.name).item = item
|
||||
item.location = ret.get_location(location.name)
|
||||
|
||||
# copy remaining itempool. No item in itempool should have an assigned location
|
||||
for item in world.itempool:
|
||||
ret.itempool.append(Item(item.name, item.advancement, item.key))
|
||||
ret.itempool.append(Item(item.name, item.advancement, item.priority, item.key))
|
||||
|
||||
# copy progress items in state
|
||||
ret.state.prog_items = list(world.state.prog_items)
|
||||
|
|
|
@ -165,13 +165,13 @@ def copy_world(world):
|
|||
# fill locations
|
||||
for location in world.get_locations():
|
||||
if location.item is not None:
|
||||
item = Item(location.item.name, location.item.advancement, location.item.key)
|
||||
item = Item(location.item.name, location.item.advancement, location.item.priority, location.item.key)
|
||||
ret.get_location(location.name).item = item
|
||||
item.location = ret.get_location(location.name)
|
||||
|
||||
# copy remaining itempool. No item in itempool should have an assigned location
|
||||
for item in world.itempool:
|
||||
ret.itempool.append(Item(item.name, item.advancement, item.key))
|
||||
ret.itempool.append(Item(item.name, item.advancement, item.priority, item.key))
|
||||
|
||||
# copy progress items in state
|
||||
ret.state.prog_items = list(world.state.prog_items)
|
||||
|
|
Loading…
Reference in New Issue