handle progressive bows like other progressive items

This commit is contained in:
Fabian Dill 2020-06-30 23:07:44 +02:00
parent d7c839ef7d
commit 5cc0c2355e
1 changed files with 66 additions and 62 deletions

View File

@ -32,7 +32,7 @@ normalfinal25extra = ['Rupees (20)'] * 23 + ['Rupees (5)'] * 2
Difficulty = namedtuple('Difficulty', Difficulty = namedtuple('Difficulty',
['baseitems', 'bottles', 'bottle_count', 'same_bottle', 'progressiveshield', ['baseitems', 'bottles', 'bottle_count', 'same_bottle', 'progressiveshield',
'basicshield', 'progressivearmor', 'basicarmor', 'swordless', 'basicshield', 'progressivearmor', 'basicarmor', 'swordless',
'progressivesword', 'basicsword', 'basicbow', 'timedohko', 'timedother', 'progressivesword', 'basicsword', 'progressivebow', 'basicbow', 'timedohko', 'timedother',
'triforcehunt', 'retro', 'triforcehunt', 'retro',
'extras', 'progressive_sword_limit', 'progressive_shield_limit', 'extras', 'progressive_sword_limit', 'progressive_shield_limit',
'progressive_armor_limit', 'progressive_bottle_limit', 'progressive_armor_limit', 'progressive_bottle_limit',
@ -43,78 +43,82 @@ total_items_to_place = 153
difficulties = { difficulties = {
'normal': Difficulty( 'normal': Difficulty(
baseitems = normalbaseitems, baseitems = normalbaseitems,
bottles = normalbottles, bottles=normalbottles,
bottle_count = 4, bottle_count=4,
same_bottle = False, same_bottle=False,
progressiveshield = ['Progressive Shield'] * 3, progressiveshield=['Progressive Shield'] * 3,
basicshield = ['Blue Shield', 'Red Shield', 'Mirror Shield'], basicshield=['Blue Shield', 'Red Shield', 'Mirror Shield'],
progressivearmor = ['Progressive Armor'] * 2, progressivearmor=['Progressive Armor'] * 2,
basicarmor = ['Blue Mail', 'Red Mail'], basicarmor=['Blue Mail', 'Red Mail'],
swordless = ['Rupees (20)'] * 4, swordless=['Rupees (20)'] * 4,
progressivesword = ['Progressive Sword'] * 4, progressivesword=['Progressive Sword'] * 4,
basicsword = ['Fighter Sword', 'Master Sword', 'Tempered Sword', 'Golden Sword'], basicsword=['Fighter Sword', 'Master Sword', 'Tempered Sword', 'Golden Sword'],
basicbow = ['Bow', 'Silver Bow'], progressivebow=["Progressive Bow"] * 2,
timedohko = ['Green Clock'] * 25, basicbow=['Bow', 'Silver Bow'],
timedother = ['Green Clock'] * 20 + ['Blue Clock'] * 10 + ['Red Clock'] * 10, timedohko=['Green Clock'] * 25,
triforcehunt = ['Triforce Piece'] * 30, timedother=['Green Clock'] * 20 + ['Blue Clock'] * 10 + ['Red Clock'] * 10,
retro = ['Small Key (Universal)'] * 18 + ['Rupees (20)'] * 10, triforcehunt=['Triforce Piece'] * 30,
extras = [normalfirst15extra, normalsecond15extra, normalthird10extra, normalfourth5extra, normalfinal25extra], retro=['Small Key (Universal)'] * 18 + ['Rupees (20)'] * 10,
progressive_sword_limit = 4, extras=[normalfirst15extra, normalsecond15extra, normalthird10extra, normalfourth5extra, normalfinal25extra],
progressive_shield_limit = 3, progressive_sword_limit=4,
progressive_armor_limit = 2, progressive_shield_limit=3,
progressive_bow_limit = 2, progressive_armor_limit=2,
progressive_bow_limit=2,
progressive_bottle_limit = 4, progressive_bottle_limit = 4,
boss_heart_container_limit = 10, boss_heart_container_limit = 10,
heart_piece_limit = 24, heart_piece_limit = 24,
), ),
'hard': Difficulty( 'hard': Difficulty(
baseitems = normalbaseitems, baseitems = normalbaseitems,
bottles = hardbottles, bottles=hardbottles,
bottle_count = 4, bottle_count=4,
same_bottle = False, same_bottle=False,
progressiveshield = ['Progressive Shield'] * 3, progressiveshield=['Progressive Shield'] * 3,
basicshield = ['Blue Shield', 'Red Shield', 'Red Shield'], basicshield=['Blue Shield', 'Red Shield', 'Red Shield'],
progressivearmor = ['Progressive Armor'] * 2, progressivearmor=['Progressive Armor'] * 2,
basicarmor = ['Progressive Armor'] * 2, # neither will count basicarmor=['Progressive Armor'] * 2, # neither will count
swordless = ['Rupees (20)'] * 4, swordless=['Rupees (20)'] * 4,
progressivesword = ['Progressive Sword'] * 4, progressivesword=['Progressive Sword'] * 4,
basicsword = ['Fighter Sword', 'Master Sword', 'Master Sword', 'Tempered Sword'], basicsword=['Fighter Sword', 'Master Sword', 'Master Sword', 'Tempered Sword'],
basicbow = ['Bow'] * 2, progressivebow=["Progressive Bow"] * 2,
timedohko = ['Green Clock'] * 25, basicbow=['Bow'] * 2,
timedother = ['Green Clock'] * 20 + ['Blue Clock'] * 10 + ['Red Clock'] * 10, timedohko=['Green Clock'] * 25,
triforcehunt = ['Triforce Piece'] * 30, timedother=['Green Clock'] * 20 + ['Blue Clock'] * 10 + ['Red Clock'] * 10,
retro = ['Small Key (Universal)'] * 12 + ['Rupees (5)'] * 16, triforcehunt=['Triforce Piece'] * 30,
extras = [normalfirst15extra, normalsecond15extra, normalthird10extra, normalfourth5extra, normalfinal25extra], retro=['Small Key (Universal)'] * 12 + ['Rupees (5)'] * 16,
progressive_sword_limit = 3, extras=[normalfirst15extra, normalsecond15extra, normalthird10extra, normalfourth5extra, normalfinal25extra],
progressive_shield_limit = 2, progressive_sword_limit=3,
progressive_armor_limit = 0, progressive_shield_limit=2,
progressive_bow_limit = 1, progressive_armor_limit=0,
progressive_bow_limit=1,
progressive_bottle_limit = 4, progressive_bottle_limit = 4,
boss_heart_container_limit = 6, boss_heart_container_limit = 6,
heart_piece_limit = 16, heart_piece_limit = 16,
), ),
'expert': Difficulty( 'expert': Difficulty(
baseitems = normalbaseitems, baseitems = normalbaseitems,
bottles = hardbottles, bottles=hardbottles,
bottle_count = 4, bottle_count=4,
same_bottle = False, same_bottle=False,
progressiveshield = ['Progressive Shield'] * 3, progressiveshield=['Progressive Shield'] * 3,
basicshield = ['Progressive Shield'] * 3, #only the first one will upgrade, making this equivalent to two blue shields basicshield=['Progressive Shield'] * 3,
progressivearmor = ['Progressive Armor'] * 2, # neither will count # only the first one will upgrade, making this equivalent to two blue shields
basicarmor = ['Progressive Armor'] * 2, # neither will count progressivearmor=['Progressive Armor'] * 2, # neither will count
swordless = ['Rupees (20)'] * 4, basicarmor=['Progressive Armor'] * 2, # neither will count
progressivesword = ['Progressive Sword'] * 4, swordless=['Rupees (20)'] * 4,
basicsword = ['Fighter Sword', 'Fighter Sword', 'Master Sword', 'Master Sword'], progressivesword=['Progressive Sword'] * 4,
basicbow = ['Bow'] * 2, basicsword=['Fighter Sword', 'Fighter Sword', 'Master Sword', 'Master Sword'],
timedohko = ['Green Clock'] * 20 + ['Red Clock'] * 5, progressivebow=["Progressive Bow"] * 2,
timedother = ['Green Clock'] * 20 + ['Blue Clock'] * 10 + ['Red Clock'] * 10, basicbow=['Bow'] * 2,
triforcehunt = ['Triforce Piece'] * 30, timedohko=['Green Clock'] * 20 + ['Red Clock'] * 5,
retro = ['Small Key (Universal)'] * 12 + ['Rupees (5)'] * 16, timedother=['Green Clock'] * 20 + ['Blue Clock'] * 10 + ['Red Clock'] * 10,
extras = [normalfirst15extra, normalsecond15extra, normalthird10extra, normalfourth5extra, normalfinal25extra], triforcehunt=['Triforce Piece'] * 30,
progressive_sword_limit = 2, retro=['Small Key (Universal)'] * 12 + ['Rupees (5)'] * 16,
progressive_shield_limit = 1, extras=[normalfirst15extra, normalsecond15extra, normalthird10extra, normalfourth5extra, normalfinal25extra],
progressive_armor_limit = 0, progressive_sword_limit=2,
progressive_bow_limit = 1, progressive_shield_limit=1,
progressive_armor_limit=0,
progressive_bow_limit=1,
progressive_bottle_limit = 4, progressive_bottle_limit = 4,
boss_heart_container_limit = 2, boss_heart_container_limit = 2,
heart_piece_limit = 8, heart_piece_limit = 8,
@ -468,7 +472,7 @@ def get_pool_core(world, player: int):
pool.extend(diff.basicarmor) pool.extend(diff.basicarmor)
if want_progressives(): if want_progressives():
pool.extend(['Progressive Bow'] * 2) pool.extend(diff.progressivebow)
elif swords != 'swordless': elif swords != 'swordless':
pool.extend(diff.basicbow) pool.extend(diff.basicbow)
else: else: