Rename Progressive Armor to Progressive Mail to bring it in line with Red Mail and Blue Mail
Also add some more item groups
This commit is contained in:
parent
1ce4f55ea4
commit
f6439dadea
18
ItemPool.py
18
ItemPool.py
|
@ -58,7 +58,7 @@ difficulties = {
|
|||
same_bottle=False,
|
||||
progressiveshield=['Progressive Shield'] * 6,
|
||||
basicshield=['Blue Shield', 'Red Shield', 'Mirror Shield'] * 2,
|
||||
progressivearmor=['Progressive Armor'] * 4,
|
||||
progressivearmor=['Progressive Mail'] * 4,
|
||||
basicarmor=['Blue Mail', 'Red Mail'] * 2,
|
||||
swordless=['Rupees (20)'] * 8,
|
||||
progressivemagic=['Magic Upgrade (1/2)'] * 2,
|
||||
|
@ -86,7 +86,7 @@ difficulties = {
|
|||
same_bottle=False,
|
||||
progressiveshield=['Progressive Shield'] * 3,
|
||||
basicshield=['Blue Shield', 'Red Shield', 'Mirror Shield'],
|
||||
progressivearmor=['Progressive Armor'] * 2,
|
||||
progressivearmor=['Progressive Mail'] * 2,
|
||||
basicarmor=['Blue Mail', 'Red Mail'],
|
||||
swordless=['Rupees (20)'] * 4,
|
||||
progressivemagic=['Magic Upgrade (1/2)', 'Rupees (300)'],
|
||||
|
@ -108,14 +108,14 @@ difficulties = {
|
|||
heart_piece_limit=24,
|
||||
),
|
||||
'hard': Difficulty(
|
||||
baseitems = normalbaseitems,
|
||||
baseitems=normalbaseitems,
|
||||
bottles=hardbottles,
|
||||
bottle_count=4,
|
||||
same_bottle=False,
|
||||
progressiveshield=['Progressive Shield'] * 3,
|
||||
basicshield=['Blue Shield', 'Red Shield', 'Red Shield'],
|
||||
progressivearmor=['Progressive Armor'] * 2,
|
||||
basicarmor=['Progressive Armor'] * 2, # neither will count
|
||||
progressivearmor=['Progressive Mail'] * 2,
|
||||
basicarmor=['Progressive Mail'] * 2, # neither will count
|
||||
swordless=['Rupees (20)'] * 4,
|
||||
progressivemagic=['Magic Upgrade (1/2)', 'Rupees (300)'],
|
||||
basicmagic=['Magic Upgrade (1/2)', 'Rupees (300)'],
|
||||
|
@ -136,15 +136,15 @@ difficulties = {
|
|||
heart_piece_limit=16,
|
||||
),
|
||||
'expert': Difficulty(
|
||||
baseitems = normalbaseitems,
|
||||
baseitems=normalbaseitems,
|
||||
bottles=hardbottles,
|
||||
bottle_count=4,
|
||||
same_bottle=False,
|
||||
progressiveshield=['Progressive Shield'] * 3,
|
||||
basicshield=['Progressive Shield'] * 3,
|
||||
# only the first one will upgrade, making this equivalent to two blue shields
|
||||
progressivearmor=['Progressive Armor'] * 2, # neither will count
|
||||
basicarmor=['Progressive Armor'] * 2, # neither will count
|
||||
progressivearmor=['Progressive Mail'] * 2, # neither will count
|
||||
basicarmor=['Progressive Mail'] * 2, # neither will count
|
||||
swordless=['Rupees (20)'] * 4,
|
||||
progressivemagic=['Magic Upgrade (1/2)', 'Rupees (300)'],
|
||||
basicmagic=['Magic Upgrade (1/2)', 'Rupees (300)'],
|
||||
|
@ -761,7 +761,7 @@ def make_custom_item_pool(world, player):
|
|||
pool.extend(['Progressive Shield'] * customitemarray[40])
|
||||
pool.extend(['Blue Mail'] * customitemarray[41])
|
||||
pool.extend(['Red Mail'] * customitemarray[42])
|
||||
pool.extend(['Progressive Armor'] * customitemarray[43])
|
||||
pool.extend(['Progressive Mail'] * customitemarray[43])
|
||||
pool.extend(['Magic Upgrade (1/2)'] * customitemarray[44])
|
||||
pool.extend(['Magic Upgrade (1/4)'] * customitemarray[45])
|
||||
pool.extend(['Bomb Upgrade (+5)'] * customitemarray[46])
|
||||
|
|
112
Items.py
112
Items.py
|
@ -76,27 +76,78 @@ item_table = {'Bow': (True, False, None, 0x0B, 'You have\nchosen the\narcher cla
|
|||
'Crystal 6': (True, False, 'Crystal', (0x01, 0x32, 0x64, 0x40, 0x6F, 0x06), None, None, None, None, None, None, None),
|
||||
'Crystal 7': (True, False, 'Crystal', (0x08, 0x34, 0x64, 0x40, 0x7C, 0x06), None, None, None, None, None, None, None),
|
||||
'Single Arrow': (False, False, None, 0x43, 'a lonely arrow\nsits here.', 'and the arrow', 'stick-collecting kid', 'sewing needle for sale', 'fungus for arrow', 'archer boy sews again', 'an arrow'),
|
||||
'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', 'ten arrows'),
|
||||
'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 capacity'),
|
||||
'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', 'arrow capacity'),
|
||||
'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', 'a bomb'),
|
||||
'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', 'three bombs'),
|
||||
'Bombs (10)': (False, False, None, 0x31, 'I make things\ngo BOOM! Ten\ntimes!', 'and the explosions', 'the bomb-holding kid', 'firecrackers for sale', 'blend fungus into bombs', '\'splosion boy explodes again', 'ten bombs'),
|
||||
'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 capacity'),
|
||||
'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', 'bomb capacity'),
|
||||
'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', 'the Blue Mail'),
|
||||
'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', 'the Red Mail'),
|
||||
'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', 'some armor'),
|
||||
'Blue Boomerang': (True, False, 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', 'the Blue Boomerang'),
|
||||
'Red Boomerang': (True, False, 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', 'the Red Boomerang'),
|
||||
'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', 'the Blue Shield'),
|
||||
'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', 'the Red Shield'),
|
||||
'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', 'the Mirror Shield'),
|
||||
'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', 'a shield'),
|
||||
'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', 'the Bug Net'),
|
||||
'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', 'the Blue Cane'),
|
||||
'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', 'a heart'),
|
||||
'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', 'a heart'),
|
||||
'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',
|
||||
'ten arrows'),
|
||||
'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 capacity'),
|
||||
'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',
|
||||
'arrow capacity'),
|
||||
'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', 'a bomb'),
|
||||
'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', 'three bombs'),
|
||||
'Bombs (10)': (False, False, None, 0x31, 'I make things\ngo BOOM! Ten\ntimes!', 'and the explosions',
|
||||
'the bomb-holding kid', 'firecrackers for sale', 'blend fungus into bombs',
|
||||
'\'splosion boy explodes again', 'ten bombs'),
|
||||
'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 capacity'),
|
||||
'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',
|
||||
'bomb capacity'),
|
||||
'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', 'the Blue Mail'),
|
||||
'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', 'the Red Mail'),
|
||||
'Progressive Mail': (
|
||||
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', 'some armor'),
|
||||
'Blue Boomerang': (
|
||||
True, False, 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',
|
||||
'the Blue Boomerang'),
|
||||
'Red Boomerang': (
|
||||
True, False, 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',
|
||||
'the Red Boomerang'),
|
||||
'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',
|
||||
'the Blue Shield'),
|
||||
'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', 'the Red Shield'),
|
||||
'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',
|
||||
'the Mirror Shield'),
|
||||
'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', 'a shield'),
|
||||
'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',
|
||||
'the Bug Net'),
|
||||
'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', 'the Blue Cane'),
|
||||
'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', 'a heart'),
|
||||
'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', 'a heart'),
|
||||
'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', 'a heart piece'),
|
||||
'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', 'a green rupee'),
|
||||
'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', 'a blue rupee'),
|
||||
|
@ -186,11 +237,19 @@ lookup_id_to_name = {data[3]: name for name, data in item_table.items()}
|
|||
|
||||
hint_blacklist = {"Triforce"}
|
||||
|
||||
item_name_groups = {"Bows": {"Bow", "Silver Arrows", "Silver Bow", "Progressive Bow (Alt)", "Progressive Bow"},
|
||||
"Gloves": {"Power Glove", "Progressive Glove", "Titans Mitts"},
|
||||
"Medallions": {"Ether", "Bombos", "Quake"}}
|
||||
item_name_groups = {"Bows":
|
||||
{"Bow", "Silver Arrows", "Silver Bow", "Progressive Bow (Alt)", "Progressive Bow"},
|
||||
"Gloves":
|
||||
{"Power Glove", "Progressive Glove", "Titans Mitts"},
|
||||
"Medallions":
|
||||
{"Ether", "Bombos", "Quake"}}
|
||||
# generic groups, (Name, substring)
|
||||
_simple_groups = {("Swords", "Sword"),
|
||||
("Shields", "Shield"),
|
||||
("Mails", "Mail"),
|
||||
|
||||
("Boomerangs", "Boomerang"),
|
||||
("Rods", "Rod"),
|
||||
|
||||
("Small Keys", "Small Key"),
|
||||
("Big Keys", "Big Key"),
|
||||
|
@ -200,7 +259,10 @@ _simple_groups = {("Swords", "Sword"),
|
|||
("Bottles", "Bottle"),
|
||||
("Potions", "Potion"),
|
||||
("Rupees", "Rupee"),
|
||||
("Clocks", "Clock")
|
||||
("Clocks", "Clock"),
|
||||
|
||||
("Crystals", "Crystal"),
|
||||
("Pendants", "Pendant")
|
||||
}
|
||||
for basename, substring in _simple_groups:
|
||||
tempset = item_name_groups[basename] = set()
|
||||
|
|
|
@ -417,6 +417,7 @@ def roll_settings(weights):
|
|||
ret.remote_items = get_choice('remote_items', weights, False)
|
||||
|
||||
if get_choice("local_keys", weights, "l" in dungeon_items):
|
||||
# () important for ordering of commands, without them the Big Keys section is part of the Small Key else
|
||||
ret.local_items = (item_name_groups["Small Keys"] if "s" in dungeon_items else set()) \
|
||||
| item_name_groups["Big Keys"] if "b" in dungeon_items else set()
|
||||
else:
|
||||
|
|
4
Rom.py
4
Rom.py
|
@ -1063,7 +1063,7 @@ def patch_rom(world, rom, player, team, enemized):
|
|||
'Titans Mitts', 'Power Glove', 'Progressive Glove',
|
||||
'Golden Sword', 'Tempered Sword', 'Master Sword', 'Fighter Sword', 'Progressive Sword',
|
||||
'Mirror Shield', 'Red Shield', 'Blue Shield', 'Progressive Shield',
|
||||
'Red Mail', 'Blue Mail', 'Progressive Armor',
|
||||
'Red Mail', 'Blue Mail', 'Progressive Mail',
|
||||
'Magic Upgrade (1/4)', 'Magic Upgrade (1/2)'}:
|
||||
continue
|
||||
|
||||
|
@ -2418,7 +2418,7 @@ RelevantItems = ['Bow',
|
|||
'Single Arrow',
|
||||
'Blue Mail',
|
||||
'Red Mail',
|
||||
'Progressive Armor',
|
||||
'Progressive Mail',
|
||||
'Blue Boomerang',
|
||||
'Red Boomerang',
|
||||
'Blue Shield',
|
||||
|
|
Loading…
Reference in New Issue