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