Add Silver Bow as a working start item
This commit is contained in:
parent
c57374a5ff
commit
e0873c1277
16
Rom.py
16
Rom.py
|
@ -993,14 +993,18 @@ def patch_rom(world, rom, player, team, enemized):
|
||||||
|
|
||||||
startingstate = CollectionState(world)
|
startingstate = CollectionState(world)
|
||||||
|
|
||||||
if startingstate.has('Bow', player):
|
if startingstate.has('Silver Bow', player):
|
||||||
|
equip[0x340] = 1
|
||||||
|
equip[0x38E] |= 0x60
|
||||||
|
if not world.retro[player]:
|
||||||
|
equip[0x38E] |= 0x80
|
||||||
|
elif startingstate.has('Bow', player):
|
||||||
equip[0x340] = 1
|
equip[0x340] = 1
|
||||||
equip[0x38E] |= 0x20 # progressive flag to get the correct hint in all cases
|
equip[0x38E] |= 0x20 # progressive flag to get the correct hint in all cases
|
||||||
if not world.retro[player]:
|
if not world.retro[player]:
|
||||||
equip[0x38E] |= 0x80
|
equip[0x38E] |= 0x80
|
||||||
if startingstate.has('Silver Arrows', player):
|
if startingstate.has('Silver Arrows', player):
|
||||||
equip[0x38E] |= 0x40
|
equip[0x38E] |= 0x40
|
||||||
#TODO add Silver Bow
|
|
||||||
|
|
||||||
if startingstate.has('Titans Mitts', player):
|
if startingstate.has('Titans Mitts', player):
|
||||||
equip[0x354] = 2
|
equip[0x354] = 2
|
||||||
|
@ -1039,12 +1043,12 @@ def patch_rom(world, rom, player, team, enemized):
|
||||||
if item.player != player:
|
if item.player != player:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if item.name in ['Bow', 'Silver Bow', 'Silver Arrows', 'Progressive Bow', 'Progressive Bow (Alt)',
|
if item.name in {'Bow', 'Silver Bow', 'Silver Arrows', 'Progressive Bow', 'Progressive Bow (Alt)',
|
||||||
'Titans Mitts', 'Power Glove', 'Progressive Glove',
|
'Titans Mitts', 'Power Glove', 'Progressive Glove',
|
||||||
'Golden Sword', 'Tempered Sword', 'Master Sword', 'Fighter Sword', 'Progressive Sword',
|
'Golden Sword', 'Tempered Sword', 'Master Sword', 'Fighter Sword', 'Progressive Sword',
|
||||||
'Mirror Shield', 'Red Shield', 'Blue Shield', 'Progressive Shield',
|
'Mirror Shield', 'Red Shield', 'Blue Shield', 'Progressive Shield',
|
||||||
'Red Mail', 'Blue Mail', 'Progressive Armor',
|
'Red Mail', 'Blue Mail', 'Progressive Armor',
|
||||||
'Magic Upgrade (1/4)', 'Magic Upgrade (1/2)']:
|
'Magic Upgrade (1/4)', 'Magic Upgrade (1/2)'}:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
set_table = {'Book of Mudora': (0x34E, 1), 'Hammer': (0x34B, 1), 'Bug Catching Net': (0x34D, 1), 'Hookshot': (0x342, 1), 'Magic Mirror': (0x353, 2),
|
set_table = {'Book of Mudora': (0x34E, 1), 'Hammer': (0x34B, 1), 'Bug Catching Net': (0x34D, 1), 'Hookshot': (0x342, 1), 'Magic Mirror': (0x353, 2),
|
||||||
|
@ -1168,7 +1172,7 @@ def patch_rom(world, rom, player, team, enemized):
|
||||||
if world.goal[player] in ['pedestal', 'triforcehunt', 'localtriforcehunt']:
|
if world.goal[player] in ['pedestal', 'triforcehunt', 'localtriforcehunt']:
|
||||||
rom.write_byte(0x18003E, 0x01) # make ganon invincible
|
rom.write_byte(0x18003E, 0x01) # make ganon invincible
|
||||||
elif world.goal[player] in ['ganontriforcehunt', 'localganontriforcehunt']:
|
elif world.goal[player] in ['ganontriforcehunt', 'localganontriforcehunt']:
|
||||||
rom.write_byte(0x18003E, 0x05) # make ganon invincible until 20 triforce pieces are collected
|
rom.write_byte(0x18003E, 0x05) # make ganon invincible until enough triforce pieces are collected
|
||||||
elif world.goal[player] in ['dungeons']:
|
elif world.goal[player] in ['dungeons']:
|
||||||
rom.write_byte(0x18003E, 0x02) # make ganon invincible until all dungeons are beat
|
rom.write_byte(0x18003E, 0x02) # make ganon invincible until all dungeons are beat
|
||||||
elif world.goal[player] in ['crystals']:
|
elif world.goal[player] in ['crystals']:
|
||||||
|
@ -1199,7 +1203,7 @@ def patch_rom(world, rom, player, team, enemized):
|
||||||
# compasses showing dungeon count
|
# compasses showing dungeon count
|
||||||
if world.clock_mode[player] or not world.dungeon_counters[player]:
|
if world.clock_mode[player] or not world.dungeon_counters[player]:
|
||||||
rom.write_byte(0x18003C, 0x00) # Currently must be off if timer is on, because they use same HUD location
|
rom.write_byte(0x18003C, 0x00) # Currently must be off if timer is on, because they use same HUD location
|
||||||
elif world.dungeon_counters[player] == True:
|
elif world.dungeon_counters[player] is True:
|
||||||
rom.write_byte(0x18003C, 0x02) # always on
|
rom.write_byte(0x18003C, 0x02) # always on
|
||||||
elif world.compassshuffle[player] or world.dungeon_counters[player] == 'pickup':
|
elif world.compassshuffle[player] or world.dungeon_counters[player] == 'pickup':
|
||||||
rom.write_byte(0x18003C, 0x01) # show on pickup
|
rom.write_byte(0x18003C, 0x01) # show on pickup
|
||||||
|
|
Loading…
Reference in New Issue