Renamed Lite+ ER to Lean ER
This commit is contained in:
@@ -120,7 +120,7 @@ class World(object):
|
|||||||
set_player_attr('can_access_trock_front', None)
|
set_player_attr('can_access_trock_front', None)
|
||||||
set_player_attr('can_access_trock_big_chest', None)
|
set_player_attr('can_access_trock_big_chest', None)
|
||||||
set_player_attr('can_access_trock_middle', None)
|
set_player_attr('can_access_trock_middle', None)
|
||||||
set_player_attr('fix_fake_world', logic[player] not in ['owglitches', 'nologic'] or shuffle[player] in ['lite', 'liteplus', 'crossed', 'insanity', 'madness_legacy'])
|
set_player_attr('fix_fake_world', logic[player] not in ['owglitches', 'nologic'] or shuffle[player] in ['lite', 'lean', 'crossed', 'insanity', 'madness_legacy'])
|
||||||
set_player_attr('mapshuffle', False)
|
set_player_attr('mapshuffle', False)
|
||||||
set_player_attr('compassshuffle', False)
|
set_player_attr('compassshuffle', False)
|
||||||
set_player_attr('keyshuffle', False)
|
set_player_attr('keyshuffle', False)
|
||||||
@@ -2966,7 +2966,7 @@ class Pot(object):
|
|||||||
# byte 0: DDOO OEEE (DR, OR, ER)
|
# byte 0: DDOO OEEE (DR, OR, ER)
|
||||||
dr_mode = {"basic": 1, "crossed": 2, "vanilla": 0}
|
dr_mode = {"basic": 1, "crossed": 2, "vanilla": 0}
|
||||||
or_mode = {"vanilla": 0, "parallel": 1, "full": 1}
|
or_mode = {"vanilla": 0, "parallel": 1, "full": 1}
|
||||||
er_mode = {"vanilla": 0, "simple": 1, "restricted": 2, "full": 3, "lite": 4, "liteplus": 5, "crossed": 6, "insanity": 7, "dungeonsfull": 8, "dungeonssimple": 9}
|
er_mode = {"vanilla": 0, "simple": 1, "restricted": 2, "full": 3, "lite": 4, "lean": 5, "crossed": 6, "insanity": 7, "dungeonsfull": 8, "dungeonssimple": 9}
|
||||||
|
|
||||||
# byte 1: LLLW WSSR (logic, mode, sword, retro)
|
# byte 1: LLLW WSSR (logic, mode, sword, retro)
|
||||||
logic_mode = {"noglitches": 0, "minorglitches": 1, "nologic": 2, "owglitches": 3, "majorglitches": 4}
|
logic_mode = {"noglitches": 0, "minorglitches": 1, "nologic": 2, "owglitches": 3, "majorglitches": 4}
|
||||||
|
|||||||
@@ -456,7 +456,7 @@ def link_entrances(world, player):
|
|||||||
|
|
||||||
# place remaining doors
|
# place remaining doors
|
||||||
connect_doors(world, list(entrance_pool), list(exit_pool), player)
|
connect_doors(world, list(entrance_pool), list(exit_pool), player)
|
||||||
elif world.shuffle[player] == 'liteplus':
|
elif world.shuffle[player] == 'lean':
|
||||||
for entrancename, exitname in default_connections + ([] if world.shopsanity[player] else default_shop_connections):
|
for entrancename, exitname in default_connections + ([] if world.shopsanity[player] else default_shop_connections):
|
||||||
connect_logical(world, entrancename, exitname, player, False)
|
connect_logical(world, entrancename, exitname, player, False)
|
||||||
if invFlag:
|
if invFlag:
|
||||||
@@ -1055,7 +1055,7 @@ def scramble_holes(world, player):
|
|||||||
hole_targets.append(('Pyramid Exit', 'Pyramid'))
|
hole_targets.append(('Pyramid Exit', 'Pyramid'))
|
||||||
|
|
||||||
# shuffle sanctuary hole in same world as other HC entrances
|
# shuffle sanctuary hole in same world as other HC entrances
|
||||||
if world.shuffle[player] not in ['liteplus', 'crossed']:
|
if world.shuffle[player] not in ['lean', 'crossed']:
|
||||||
drop_owid_map = { # owid, is_light_world
|
drop_owid_map = { # owid, is_light_world
|
||||||
'Lost Woods Hideout Stump': (0x00, True),
|
'Lost Woods Hideout Stump': (0x00, True),
|
||||||
'Lumberjack Tree Cave': (0x02, True),
|
'Lumberjack Tree Cave': (0x02, True),
|
||||||
@@ -1365,7 +1365,7 @@ def place_links_house(world, sectors, player):
|
|||||||
links_house_doors = [i for i in get_distant_entrances(world, dark_sanc, sectors, player) if i in entrance_pool]
|
links_house_doors = [i for i in get_distant_entrances(world, dark_sanc, sectors, player) if i in entrance_pool]
|
||||||
else:
|
else:
|
||||||
links_house_doors = [i for i in get_starting_entrances(world, sectors, player) if i in entrance_pool]
|
links_house_doors = [i for i in get_starting_entrances(world, sectors, player) if i in entrance_pool]
|
||||||
if world.shuffle[player] in ['lite', 'liteplus']:
|
if world.shuffle[player] in ['lite', 'lean']:
|
||||||
links_house_doors = [e for e in links_house_doors if e in list(zip(*(default_item_connections + (default_shop_connections if world.shopsanity[player] else []))))[0]]
|
links_house_doors = [e for e in links_house_doors if e in list(zip(*(default_item_connections + (default_shop_connections if world.shopsanity[player] else []))))[0]]
|
||||||
links_house = random.choice(links_house_doors)
|
links_house = random.choice(links_house_doors)
|
||||||
connect_two_way(world, links_house, 'Links House Exit', player)
|
connect_two_way(world, links_house, 'Links House Exit', player)
|
||||||
@@ -1377,7 +1377,7 @@ def place_dark_sanc(world, sectors, player):
|
|||||||
sanc_doors = [i for i in get_distant_entrances(world, 'Big Bomb Shop', sectors, player) if i in entrance_pool]
|
sanc_doors = [i for i in get_distant_entrances(world, 'Big Bomb Shop', sectors, player) if i in entrance_pool]
|
||||||
else:
|
else:
|
||||||
sanc_doors = [i for i in get_starting_entrances(world, sectors, player) if i in entrance_pool]
|
sanc_doors = [i for i in get_starting_entrances(world, sectors, player) if i in entrance_pool]
|
||||||
if world.shuffle[player] in ['lite', 'liteplus']:
|
if world.shuffle[player] in ['lite', 'lean']:
|
||||||
sanc_doors = [e for e in sanc_doors if e in list(zip(*(default_item_connections + (default_shop_connections if world.shopsanity[player] else []))))[0]]
|
sanc_doors = [e for e in sanc_doors if e in list(zip(*(default_item_connections + (default_shop_connections if world.shopsanity[player] else []))))[0]]
|
||||||
sanc_door = random.choice(sanc_doors)
|
sanc_door = random.choice(sanc_doors)
|
||||||
connect_entrance(world, sanc_door, 'Dark Sanctuary Hint', player)
|
connect_entrance(world, sanc_door, 'Dark Sanctuary Hint', player)
|
||||||
@@ -1402,7 +1402,7 @@ def place_blacksmith(world, links_house, player):
|
|||||||
elif world.doorShuffle[player] == 'vanilla' or world.intensity[player] < 3:
|
elif world.doorShuffle[player] == 'vanilla' or world.intensity[player] < 3:
|
||||||
sanc_region = world.get_entrance('Sanctuary Exit', player).connected_region.name
|
sanc_region = world.get_entrance('Sanctuary Exit', player).connected_region.name
|
||||||
blacksmith_doors = list(set(blacksmith_doors + list(build_accessible_entrance_list(world, sanc_region, player, assumed_inventory, False, True, True))))
|
blacksmith_doors = list(set(blacksmith_doors + list(build_accessible_entrance_list(world, sanc_region, player, assumed_inventory, False, True, True))))
|
||||||
if world.shuffle[player] in ['lite', 'liteplus']:
|
if world.shuffle[player] in ['lite', 'lean']:
|
||||||
blacksmith_doors = [e for e in blacksmith_doors if e in list(zip(*(default_item_connections + (default_shop_connections if world.shopsanity[player] else []))))[0]]
|
blacksmith_doors = [e for e in blacksmith_doors if e in list(zip(*(default_item_connections + (default_shop_connections if world.shopsanity[player] else []))))[0]]
|
||||||
|
|
||||||
random.shuffle(blacksmith_doors)
|
random.shuffle(blacksmith_doors)
|
||||||
@@ -1419,7 +1419,7 @@ def place_old_man(world, pool, player):
|
|||||||
region_name = 'West Dark Death Mountain (Top)'
|
region_name = 'West Dark Death Mountain (Top)'
|
||||||
old_man_entrances = list(build_accessible_entrance_list(world, region_name, player, [], False, True, True, True))
|
old_man_entrances = list(build_accessible_entrance_list(world, region_name, player, [], False, True, True, True))
|
||||||
old_man_entrances = [e for e in old_man_entrances if e != 'Old Man House (Bottom)']
|
old_man_entrances = [e for e in old_man_entrances if e != 'Old Man House (Bottom)']
|
||||||
if world.shuffle[player] in ['lite', 'liteplus']:
|
if world.shuffle[player] in ['lite', 'lean']:
|
||||||
old_man_entrances = [e for e in old_man_entrances if e in pool]
|
old_man_entrances = [e for e in old_man_entrances if e in pool]
|
||||||
random.shuffle(old_man_entrances)
|
random.shuffle(old_man_entrances)
|
||||||
old_man_exit = None
|
old_man_exit = None
|
||||||
@@ -1517,7 +1517,7 @@ def connect_inaccessible_regions(world, lw_entrances, dw_entrances, caves, playe
|
|||||||
inaccessible_entrances = list()
|
inaccessible_entrances = list()
|
||||||
region = world.get_region(region_name, player)
|
region = world.get_region(region_name, player)
|
||||||
for exit in region.exits:
|
for exit in region.exits:
|
||||||
if not exit.connected_region and exit.name in entrance_pool and (world.shuffle[player] not in ['lite', 'liteplus'] or exit.name in pool):
|
if not exit.connected_region and exit.name in entrance_pool and (world.shuffle[player] not in ['lite', 'lean'] or exit.name in pool):
|
||||||
inaccessible_entrances.append(exit.name)
|
inaccessible_entrances.append(exit.name)
|
||||||
if len(inaccessible_entrances):
|
if len(inaccessible_entrances):
|
||||||
random.shuffle(inaccessible_entrances)
|
random.shuffle(inaccessible_entrances)
|
||||||
@@ -1525,7 +1525,7 @@ def connect_inaccessible_regions(world, lw_entrances, dw_entrances, caves, playe
|
|||||||
connect_inaccessible_regions(world, lw_entrances, dw_entrances, caves, player)
|
connect_inaccessible_regions(world, lw_entrances, dw_entrances, caves, player)
|
||||||
|
|
||||||
# connect one connector at a time to ensure multiple connectors aren't assigned to the same inaccessible set of regions
|
# connect one connector at a time to ensure multiple connectors aren't assigned to the same inaccessible set of regions
|
||||||
if world.shuffle[player] in ['liteplus', 'crossed', 'insanity']:
|
if world.shuffle[player] in ['lean', 'crossed', 'insanity']:
|
||||||
combined_must_exit_regions = list(must_exit_regions + otherworld_must_exit_regions)
|
combined_must_exit_regions = list(must_exit_regions + otherworld_must_exit_regions)
|
||||||
if len(combined_must_exit_regions) > 0:
|
if len(combined_must_exit_regions) > 0:
|
||||||
random.shuffle(combined_must_exit_regions)
|
random.shuffle(combined_must_exit_regions)
|
||||||
|
|||||||
@@ -709,7 +709,7 @@ def balance_prices(world, player):
|
|||||||
|
|
||||||
|
|
||||||
def check_hints(world, player):
|
def check_hints(world, player):
|
||||||
if world.shuffle[player] in ['simple', 'restricted', 'full', 'lite', 'liteplus', 'crossed', 'insanity']:
|
if world.shuffle[player] in ['simple', 'restricted', 'full', 'lite', 'lean', 'crossed', 'insanity']:
|
||||||
for shop, location_list in shop_to_location_table.items():
|
for shop, location_list in shop_to_location_table.items():
|
||||||
if shop in ['Capacity Upgrade', 'Light World Death Mountain Shop', 'Potion Shop']:
|
if shop in ['Capacity Upgrade', 'Light World Death Mountain Shop', 'Potion Shop']:
|
||||||
continue # near the queen, near potions, and near 7 chests are fine
|
continue # near the queen, near potions, and near 7 chests are fine
|
||||||
|
|||||||
@@ -428,7 +428,7 @@ def reorganize_tile_groups(world, player):
|
|||||||
groups = {}
|
groups = {}
|
||||||
for (name, groupType) in OWTileGroups.keys():
|
for (name, groupType) in OWTileGroups.keys():
|
||||||
if world.mode[player] != 'standard' or name not in ['Castle', 'Links', 'Central Bonk Rocks'] \
|
if world.mode[player] != 'standard' or name not in ['Castle', 'Links', 'Central Bonk Rocks'] \
|
||||||
or (world.mode[player] == 'standard' and world.shuffle[player] in ['lite', 'liteplus', 'crossed', 'insanity'] and name == 'Castle' and groupType == 'Entrance'):
|
or (world.mode[player] == 'standard' and world.shuffle[player] in ['lite', 'lean', 'crossed', 'insanity'] and name == 'Castle' and groupType == 'Entrance'):
|
||||||
if world.shuffle[player] in ['vanilla', 'dungeonssimple', 'dungeonsfull', 'simple', 'restricted']:
|
if world.shuffle[player] in ['vanilla', 'dungeonssimple', 'dungeonsfull', 'simple', 'restricted']:
|
||||||
groups[(name,)] = ([], [], [])
|
groups[(name,)] = ([], [], [])
|
||||||
else:
|
else:
|
||||||
@@ -436,7 +436,7 @@ def reorganize_tile_groups(world, player):
|
|||||||
|
|
||||||
for (name, groupType) in OWTileGroups.keys():
|
for (name, groupType) in OWTileGroups.keys():
|
||||||
if world.mode[player] != 'standard' or name not in ['Castle', 'Links', 'Central Bonk Rocks'] \
|
if world.mode[player] != 'standard' or name not in ['Castle', 'Links', 'Central Bonk Rocks'] \
|
||||||
or (world.mode[player] == 'standard' and world.shuffle[player] in ['lite', 'liteplus', 'crossed', 'insanity'] and name == 'Castle' and groupType == 'Entrance'):
|
or (world.mode[player] == 'standard' and world.shuffle[player] in ['lite', 'lean', 'crossed', 'insanity'] and name == 'Castle' and groupType == 'Entrance'):
|
||||||
(lw_owids, dw_owids) = OWTileGroups[(name, groupType,)]
|
(lw_owids, dw_owids) = OWTileGroups[(name, groupType,)]
|
||||||
if world.shuffle[player] in ['vanilla', 'dungeonssimple', 'dungeonsfull', 'simple', 'restricted']:
|
if world.shuffle[player] in ['vanilla', 'dungeonssimple', 'dungeonsfull', 'simple', 'restricted']:
|
||||||
(exist_owids, exist_lw_regions, exist_dw_regions) = groups[(name,)]
|
(exist_owids, exist_lw_regions, exist_dw_regions) = groups[(name,)]
|
||||||
|
|||||||
2
Rom.py
2
Rom.py
@@ -1603,7 +1603,7 @@ def patch_rom(world, rom, player, team, enemized, is_mystery=False):
|
|||||||
rom.write_bytes(0x02F539, [0xEA, 0xEA, 0xEA, 0xEA, 0xEA] if world.powder_patch_required[player] else [0xAD, 0xBF, 0x0A, 0xF0, 0x4F])
|
rom.write_bytes(0x02F539, [0xEA, 0xEA, 0xEA, 0xEA, 0xEA] if world.powder_patch_required[player] else [0xAD, 0xBF, 0x0A, 0xF0, 0x4F])
|
||||||
|
|
||||||
# allow smith into multi-entrance caves in appropriate shuffles
|
# allow smith into multi-entrance caves in appropriate shuffles
|
||||||
if world.shuffle[player] in ['restricted', 'full', 'lite', 'liteplus', 'crossed', 'insanity'] or (world.shuffle[player] == 'simple' and world.mode[player] == 'inverted'):
|
if world.shuffle[player] in ['restricted', 'full', 'lite', 'lean', 'crossed', 'insanity'] or (world.shuffle[player] == 'simple' and world.mode[player] == 'inverted'):
|
||||||
rom.write_byte(0x18004C, 0x01)
|
rom.write_byte(0x18004C, 0x01)
|
||||||
|
|
||||||
# set correct flag for hera basement item
|
# set correct flag for hera basement item
|
||||||
|
|||||||
2
Rules.py
2
Rules.py
@@ -848,7 +848,7 @@ def ow_rules(world, player):
|
|||||||
if world.mode[player] != 'inverted':
|
if world.mode[player] != 'inverted':
|
||||||
set_rule(world.get_entrance('Agahnims Tower', player), lambda state: state.has('Cape', player) or state.has_beam_sword(player) or state.has('Beat Agahnim 1', player)) # barrier gets removed after killing agahnim, relevant for entrance shuffle
|
set_rule(world.get_entrance('Agahnims Tower', player), lambda state: state.has('Cape', player) or state.has_beam_sword(player) or state.has('Beat Agahnim 1', player)) # barrier gets removed after killing agahnim, relevant for entrance shuffle
|
||||||
set_rule(world.get_entrance('GT Entry Approach', player), lambda state: state.has_crystals(world.crystals_needed_for_gt[player], player))
|
set_rule(world.get_entrance('GT Entry Approach', player), lambda state: state.has_crystals(world.crystals_needed_for_gt[player], player))
|
||||||
set_rule(world.get_entrance('GT Entry Leave', player), lambda state: state.has_crystals(world.crystals_needed_for_gt[player], player) or state.world.shuffle[player] in ('restricted', 'full', 'lite', 'liteplus', 'crossed', 'insanity'))
|
set_rule(world.get_entrance('GT Entry Leave', player), lambda state: state.has_crystals(world.crystals_needed_for_gt[player], player) or state.world.shuffle[player] in ('restricted', 'full', 'lite', 'lean', 'crossed', 'insanity'))
|
||||||
else:
|
else:
|
||||||
set_rule(world.get_entrance('Agahnims Tower', player), lambda state: state.has_crystals(world.crystals_needed_for_gt[player], player))
|
set_rule(world.get_entrance('Agahnims Tower', player), lambda state: state.has_crystals(world.crystals_needed_for_gt[player], player))
|
||||||
|
|
||||||
|
|||||||
@@ -147,7 +147,7 @@
|
|||||||
"restricted",
|
"restricted",
|
||||||
"full",
|
"full",
|
||||||
"lite",
|
"lite",
|
||||||
"liteplus",
|
"lean",
|
||||||
"crossed",
|
"crossed",
|
||||||
"insanity",
|
"insanity",
|
||||||
"dungeonsfull",
|
"dungeonsfull",
|
||||||
|
|||||||
@@ -141,7 +141,7 @@
|
|||||||
"randomizer.entrance.entranceshuffle.restricted": "Restricted",
|
"randomizer.entrance.entranceshuffle.restricted": "Restricted",
|
||||||
"randomizer.entrance.entranceshuffle.full": "Full",
|
"randomizer.entrance.entranceshuffle.full": "Full",
|
||||||
"randomizer.entrance.entranceshuffle.lite": "Lite",
|
"randomizer.entrance.entranceshuffle.lite": "Lite",
|
||||||
"randomizer.entrance.entranceshuffle.liteplus": "Lite+",
|
"randomizer.entrance.entranceshuffle.lean": "Lean",
|
||||||
"randomizer.entrance.entranceshuffle.crossed": "Crossed",
|
"randomizer.entrance.entranceshuffle.crossed": "Crossed",
|
||||||
"randomizer.entrance.entranceshuffle.insanity": "Insanity",
|
"randomizer.entrance.entranceshuffle.insanity": "Insanity",
|
||||||
"randomizer.entrance.entranceshuffle.restricted_legacy": "Restricted (Legacy)",
|
"randomizer.entrance.entranceshuffle.restricted_legacy": "Restricted (Legacy)",
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
"restricted",
|
"restricted",
|
||||||
"full",
|
"full",
|
||||||
"lite",
|
"lite",
|
||||||
"liteplus",
|
"lean",
|
||||||
"crossed",
|
"crossed",
|
||||||
"insanity",
|
"insanity",
|
||||||
"dungeonsfull",
|
"dungeonsfull",
|
||||||
|
|||||||
Reference in New Issue
Block a user