Crystal book setting
This commit is contained in:
@@ -171,6 +171,7 @@ class World(object):
|
|||||||
set_player_attr('pseudoboots', False)
|
set_player_attr('pseudoboots', False)
|
||||||
set_player_attr('mirrorscroll', False)
|
set_player_attr('mirrorscroll', False)
|
||||||
set_player_attr('dark_rooms', 'require_lamp')
|
set_player_attr('dark_rooms', 'require_lamp')
|
||||||
|
set_player_attr('crystal_book', False)
|
||||||
set_player_attr('collection_rate', False)
|
set_player_attr('collection_rate', False)
|
||||||
set_player_attr('colorizepots', True)
|
set_player_attr('colorizepots', True)
|
||||||
set_player_attr('pot_pool', {})
|
set_player_attr('pot_pool', {})
|
||||||
@@ -3065,6 +3066,7 @@ class Spoiler(object):
|
|||||||
'pseudoboots': self.world.pseudoboots,
|
'pseudoboots': self.world.pseudoboots,
|
||||||
'mirrorscroll': self.world.mirrorscroll,
|
'mirrorscroll': self.world.mirrorscroll,
|
||||||
'dark_rooms': self.world.dark_rooms,
|
'dark_rooms': self.world.dark_rooms,
|
||||||
|
'crystal_book': self.world.crystal_book,
|
||||||
'triforcegoal': self.world.treasure_hunt_count,
|
'triforcegoal': self.world.treasure_hunt_count,
|
||||||
'triforcepool': self.world.treasure_hunt_total,
|
'triforcepool': self.world.treasure_hunt_total,
|
||||||
'race': self.world.settings.world_rep['meta']['race'],
|
'race': self.world.settings.world_rep['meta']['race'],
|
||||||
@@ -3315,6 +3317,7 @@ class Spoiler(object):
|
|||||||
outfile.write('Pseudoboots:'.ljust(line_width) + '%s\n' % yn(self.metadata['pseudoboots'][player]))
|
outfile.write('Pseudoboots:'.ljust(line_width) + '%s\n' % yn(self.metadata['pseudoboots'][player]))
|
||||||
outfile.write('Mirror Scroll:'.ljust(line_width) + '%s\n' % yn(self.metadata['mirrorscroll'][player]))
|
outfile.write('Mirror Scroll:'.ljust(line_width) + '%s\n' % yn(self.metadata['mirrorscroll'][player]))
|
||||||
outfile.write('Dark Rooms:'.ljust(line_width) + '%s\n' % self.metadata['dark_rooms'][player])
|
outfile.write('Dark Rooms:'.ljust(line_width) + '%s\n' % self.metadata['dark_rooms'][player])
|
||||||
|
outfile.write('Crystal Book:'.ljust(line_width) + '%s\n' % yn(self.metadata['crystal_book'][player]))
|
||||||
outfile.write('Hints:'.ljust(line_width) + '%s\n' % yn(self.metadata['hints'][player]))
|
outfile.write('Hints:'.ljust(line_width) + '%s\n' % yn(self.metadata['hints'][player]))
|
||||||
outfile.write('Race:'.ljust(line_width) + '%s\n' % yn(self.world.settings.world_rep['meta']['race']))
|
outfile.write('Race:'.ljust(line_width) + '%s\n' % yn(self.world.settings.world_rep['meta']['race']))
|
||||||
|
|
||||||
|
|||||||
3
CLI.py
3
CLI.py
@@ -139,7 +139,7 @@ def parse_cli(argv, no_defaults=False):
|
|||||||
'triforce_max_difference', 'triforce_pool_min', 'triforce_pool_max', 'triforce_goal_min', 'triforce_goal_max',
|
'triforce_max_difference', 'triforce_pool_min', 'triforce_pool_max', 'triforce_goal_min', 'triforce_goal_max',
|
||||||
'triforce_min_difference', 'triforce_goal', 'triforce_pool', 'shufflelinks', 'shuffletavern',
|
'triforce_min_difference', 'triforce_goal', 'triforce_pool', 'shufflelinks', 'shuffletavern',
|
||||||
'skullwoods', 'linked_drops',
|
'skullwoods', 'linked_drops',
|
||||||
'pseudoboots', 'mirrorscroll', "dark_rooms", 'retro', 'accessibility', 'hints', 'beemizer', 'experimental', 'dungeon_counters',
|
'pseudoboots', 'mirrorscroll', 'dark_rooms', 'crystal_book', 'retro', 'accessibility', 'hints', 'beemizer', 'experimental', 'dungeon_counters',
|
||||||
'shufflebosses', 'shuffleenemies', 'enemy_health', 'enemy_damage', 'shufflepots',
|
'shufflebosses', 'shuffleenemies', 'enemy_health', 'enemy_damage', 'shufflepots',
|
||||||
'ow_palettes', 'uw_palettes', 'sprite', 'disablemusic', 'quickswap', 'fastmenu', 'heartcolor',
|
'ow_palettes', 'uw_palettes', 'sprite', 'disablemusic', 'quickswap', 'fastmenu', 'heartcolor',
|
||||||
'heartbeep', 'remote_items', 'shopsanity', 'dropshuffle', 'pottery', 'keydropshuffle',
|
'heartbeep', 'remote_items', 'shopsanity', 'dropshuffle', 'pottery', 'keydropshuffle',
|
||||||
@@ -211,6 +211,7 @@ def parse_settings():
|
|||||||
"pseudoboots": False,
|
"pseudoboots": False,
|
||||||
"mirrorscroll": False,
|
"mirrorscroll": False,
|
||||||
"dark_rooms": "require_lamp",
|
"dark_rooms": "require_lamp",
|
||||||
|
"crystal_book": False,
|
||||||
|
|
||||||
"shuffleenemies": "none",
|
"shuffleenemies": "none",
|
||||||
"shufflebosses": "none",
|
"shufflebosses": "none",
|
||||||
|
|||||||
3
Main.py
3
Main.py
@@ -509,6 +509,7 @@ def init_world(args, fish):
|
|||||||
world.pseudoboots = args.pseudoboots.copy()
|
world.pseudoboots = args.pseudoboots.copy()
|
||||||
world.mirrorscroll = args.mirrorscroll.copy()
|
world.mirrorscroll = args.mirrorscroll.copy()
|
||||||
world.dark_rooms = args.dark_rooms.copy()
|
world.dark_rooms = args.dark_rooms.copy()
|
||||||
|
world.crystal_book = args.crystal_book.copy()
|
||||||
world.overworld_map = args.overworld_map.copy()
|
world.overworld_map = args.overworld_map.copy()
|
||||||
world.take_any = args.take_any.copy()
|
world.take_any = args.take_any.copy()
|
||||||
world.restrict_boss_items = args.restrict_boss_items.copy()
|
world.restrict_boss_items = args.restrict_boss_items.copy()
|
||||||
@@ -605,6 +606,7 @@ def copy_world(world):
|
|||||||
ret.pseudoboots = world.pseudoboots.copy()
|
ret.pseudoboots = world.pseudoboots.copy()
|
||||||
ret.mirrorscroll = world.mirrorscroll.copy()
|
ret.mirrorscroll = world.mirrorscroll.copy()
|
||||||
ret.dark_rooms = world.dark_rooms.copy()
|
ret.dark_rooms = world.dark_rooms.copy()
|
||||||
|
ret.crystal_book = world.crystal_book.copy()
|
||||||
ret.overworld_map = world.overworld_map.copy()
|
ret.overworld_map = world.overworld_map.copy()
|
||||||
ret.take_any = world.take_any.copy()
|
ret.take_any = world.take_any.copy()
|
||||||
ret.boss_shuffle = world.boss_shuffle.copy()
|
ret.boss_shuffle = world.boss_shuffle.copy()
|
||||||
@@ -826,6 +828,7 @@ def copy_world_premature(world, player):
|
|||||||
ret.pseudoboots = world.pseudoboots.copy()
|
ret.pseudoboots = world.pseudoboots.copy()
|
||||||
ret.mirrorscroll = world.mirrorscroll.copy()
|
ret.mirrorscroll = world.mirrorscroll.copy()
|
||||||
ret.dark_rooms = world.dark_rooms.copy()
|
ret.dark_rooms = world.dark_rooms.copy()
|
||||||
|
ret.crystal_book = world.crystal_book.copy()
|
||||||
ret.overworld_map = world.overworld_map.copy()
|
ret.overworld_map = world.overworld_map.copy()
|
||||||
ret.take_any = world.take_any.copy()
|
ret.take_any = world.take_any.copy()
|
||||||
ret.boss_shuffle = world.boss_shuffle.copy()
|
ret.boss_shuffle = world.boss_shuffle.copy()
|
||||||
|
|||||||
6
Rom.py
6
Rom.py
@@ -43,7 +43,7 @@ from source.enemizer.Enemizer import write_enemy_shuffle_settings
|
|||||||
|
|
||||||
|
|
||||||
JAP10HASH = '03a63945398191337e896e5771f77173'
|
JAP10HASH = '03a63945398191337e896e5771f77173'
|
||||||
RANDOMIZERBASEHASH = '5d715dfd920f9eadf5db51b5719e1ff6'
|
RANDOMIZERBASEHASH = 'd4315f2f34fae3ac852d433fa990888b'
|
||||||
|
|
||||||
|
|
||||||
class JsonRom(object):
|
class JsonRom(object):
|
||||||
@@ -1231,6 +1231,10 @@ def patch_rom(world, rom, player, team, is_mystery=False):
|
|||||||
# Starting equipment
|
# Starting equipment
|
||||||
if world.pseudoboots[player]:
|
if world.pseudoboots[player]:
|
||||||
rom.write_byte(0x18008E, 0x01)
|
rom.write_byte(0x18008E, 0x01)
|
||||||
|
|
||||||
|
if world.crystal_book[player]:
|
||||||
|
rom.write_byte(0x1800A6, 0x01)
|
||||||
|
|
||||||
rom.initial_sram.set_starting_equipment(world, player)
|
rom.initial_sram.set_starting_equipment(world, player)
|
||||||
|
|
||||||
rom.write_byte(0x18004A, 0x00 if world.mode[player] != 'inverted' else 0x01) # Inverted mode
|
rom.write_byte(0x18004A, 0x00 if world.mode[player] != 'inverted' else 0x01) # Inverted mode
|
||||||
|
|||||||
Binary file not shown.
@@ -566,6 +566,10 @@
|
|||||||
"always_in_logic"
|
"always_in_logic"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"crystal_book": {
|
||||||
|
"action": "store_true",
|
||||||
|
"type": "bool"
|
||||||
|
},
|
||||||
"calc_playthrough": {
|
"calc_playthrough": {
|
||||||
"action": "store_false",
|
"action": "store_false",
|
||||||
"type": "bool"
|
"type": "bool"
|
||||||
|
|||||||
@@ -401,6 +401,7 @@
|
|||||||
"NoDarkRooms: Dark rooms are changed to no longer be dark, and are always in logic",
|
"NoDarkRooms: Dark rooms are changed to no longer be dark, and are always in logic",
|
||||||
"AlwaysInLogic: Dark rooms are always considered to be in logic, even if the player cannot see"
|
"AlwaysInLogic: Dark rooms are always considered to be in logic, even if the player cannot see"
|
||||||
],
|
],
|
||||||
|
"crystal_book": [ " Book can be used indoors to flip the state of colored pegs (default: %(default)s)"],
|
||||||
"bombbag": ["Start with 0 bomb capacity. Two capacity upgrades (+10) are added to the pool (default: %(default)s)" ],
|
"bombbag": ["Start with 0 bomb capacity. Two capacity upgrades (+10) are added to the pool (default: %(default)s)" ],
|
||||||
"any_enemy_logic": [
|
"any_enemy_logic": [
|
||||||
"How to handle potential traversal between dungeon in Crossed door shuffle",
|
"How to handle potential traversal between dungeon in Crossed door shuffle",
|
||||||
|
|||||||
Reference in New Issue
Block a user