Creating a separate copy_world_limited for OWR/ER purposes
This commit is contained in:
@@ -32,7 +32,7 @@ def link_entrances(world, player):
|
|||||||
Cave_Three_Exits = Cave_Three_Exits_Base.copy()
|
Cave_Three_Exits = Cave_Three_Exits_Base.copy()
|
||||||
|
|
||||||
from OverworldShuffle import build_sectors
|
from OverworldShuffle import build_sectors
|
||||||
if not world.owsectors[player]:
|
if not world.owsectors[player] and world.shuffle[player] != 'vanilla':
|
||||||
world.owsectors[player] = build_sectors(world, player)
|
world.owsectors[player] = build_sectors(world, player)
|
||||||
|
|
||||||
# modifications to lists
|
# modifications to lists
|
||||||
|
|||||||
18
Main.py
18
Main.py
@@ -625,8 +625,8 @@ def copy_world_limited(world):
|
|||||||
create_owg_connections(ret, player)
|
create_owg_connections(ret, player)
|
||||||
create_flute_exits(ret, player)
|
create_flute_exits(ret, player)
|
||||||
create_dungeon_regions(ret, player)
|
create_dungeon_regions(ret, player)
|
||||||
|
create_owedges(ret, player)
|
||||||
create_shops(ret, player)
|
create_shops(ret, player)
|
||||||
create_doors(ret, player)
|
|
||||||
create_rooms(ret, player)
|
create_rooms(ret, player)
|
||||||
create_dungeons(ret, player)
|
create_dungeons(ret, player)
|
||||||
|
|
||||||
@@ -654,11 +654,17 @@ def copy_world_limited(world):
|
|||||||
for item in world.precollected_items:
|
for item in world.precollected_items:
|
||||||
ret.push_precollected(ItemFactory(item.name, item.player))
|
ret.push_precollected(ItemFactory(item.name, item.player))
|
||||||
|
|
||||||
ret.owedges = world.owedges.copy()
|
for edge in world.owedges:
|
||||||
for door in ret.doors:
|
copiededge = ret.check_for_owedge(edge.name, edge.player)
|
||||||
entrance = ret.check_for_entrance(door.name, door.player)
|
if copiededge is not None:
|
||||||
if entrance is not None:
|
copiededge.dest = ret.check_for_owedge(edge.dest.name, edge.dest.player)
|
||||||
entrance.door = door
|
# for door in world.doors:
|
||||||
|
# entrance = ret.check_for_entrance(door.name, door.player)
|
||||||
|
# if entrance is not None:
|
||||||
|
# destdoor = ret.check_for_door(entrance.door.name, entrance.door.player)
|
||||||
|
# entrance.door = destdoor
|
||||||
|
# if destdoor is not None:
|
||||||
|
# destdoor.entrance = entrance
|
||||||
ret.key_logic = world.key_logic.copy()
|
ret.key_logic = world.key_logic.copy()
|
||||||
|
|
||||||
from OverworldShuffle import categorize_world_regions
|
from OverworldShuffle import categorize_world_regions
|
||||||
|
|||||||
15
Rules.py
15
Rules.py
@@ -341,7 +341,7 @@ def global_rules(world, player):
|
|||||||
set_rule(world.get_location('Ice Palace - Freezor Chest', player), lambda state: state.can_melt_things(player))
|
set_rule(world.get_location('Ice Palace - Freezor Chest', player), lambda state: state.can_melt_things(player))
|
||||||
set_rule(world.get_entrance('Ice Hookshot Ledge Path', player), lambda state: state.has('Hookshot', player))
|
set_rule(world.get_entrance('Ice Hookshot Ledge Path', player), lambda state: state.has('Hookshot', player))
|
||||||
set_rule(world.get_entrance('Ice Hookshot Balcony Path', player), lambda state: state.has('Hookshot', player))
|
set_rule(world.get_entrance('Ice Hookshot Balcony Path', player), lambda state: state.has('Hookshot', player))
|
||||||
if not world.get_door('Ice Switch Room SE', player).entranceFlag:
|
if not world.is_copied_world and not world.get_door('Ice Switch Room SE', player).entranceFlag:
|
||||||
set_rule(world.get_entrance('Ice Switch Room SE', player), lambda state: state.has('Cane of Somaria', player) or state.has('Convenient Block', player))
|
set_rule(world.get_entrance('Ice Switch Room SE', player), lambda state: state.has('Cane of Somaria', player) or state.has('Convenient Block', player))
|
||||||
set_defeat_dungeon_boss_rule(world.get_location('Ice Palace - Boss', player))
|
set_defeat_dungeon_boss_rule(world.get_location('Ice Palace - Boss', player))
|
||||||
set_defeat_dungeon_boss_rule(world.get_location('Ice Palace - Prize', player))
|
set_defeat_dungeon_boss_rule(world.get_location('Ice Palace - Prize', player))
|
||||||
@@ -398,7 +398,7 @@ def global_rules(world, player):
|
|||||||
set_rule(world.get_entrance('GT Hope Room EN', player), lambda state: state.has('Cane of Somaria', player))
|
set_rule(world.get_entrance('GT Hope Room EN', player), lambda state: state.has('Cane of Somaria', player))
|
||||||
set_rule(world.get_entrance('GT Conveyor Cross WN', player), lambda state: state.has('Hammer', player))
|
set_rule(world.get_entrance('GT Conveyor Cross WN', player), lambda state: state.has('Hammer', player))
|
||||||
set_rule(world.get_entrance('GT Conveyor Cross EN', player), lambda state: state.has('Hookshot', player))
|
set_rule(world.get_entrance('GT Conveyor Cross EN', player), lambda state: state.has('Hookshot', player))
|
||||||
if not world.get_door('GT Speed Torch SE', player).entranceFlag:
|
if not world.is_copied_world and not world.get_door('GT Speed Torch SE', player).entranceFlag:
|
||||||
set_rule(world.get_entrance('GT Speed Torch SE', player), lambda state: state.has('Fire Rod', player))
|
set_rule(world.get_entrance('GT Speed Torch SE', player), lambda state: state.has('Fire Rod', player))
|
||||||
set_rule(world.get_entrance('GT Hookshot South-Mid Path', player), lambda state: state.has('Hookshot', player))
|
set_rule(world.get_entrance('GT Hookshot South-Mid Path', player), lambda state: state.has('Hookshot', player))
|
||||||
set_rule(world.get_entrance('GT Hookshot Mid-North Path', player), lambda state: state.has('Hookshot', player))
|
set_rule(world.get_entrance('GT Hookshot Mid-North Path', player), lambda state: state.has('Hookshot', player))
|
||||||
@@ -421,7 +421,7 @@ def global_rules(world, player):
|
|||||||
set_rule(world.get_entrance('GT Gauntlet 2 EN', player), lambda state: state.can_kill_most_things(player))
|
set_rule(world.get_entrance('GT Gauntlet 2 EN', player), lambda state: state.can_kill_most_things(player))
|
||||||
set_rule(world.get_entrance('GT Gauntlet 2 SW', player), lambda state: state.can_kill_most_things(player))
|
set_rule(world.get_entrance('GT Gauntlet 2 SW', player), lambda state: state.can_kill_most_things(player))
|
||||||
set_rule(world.get_entrance('GT Gauntlet 3 NW', player), lambda state: state.can_kill_most_things(player))
|
set_rule(world.get_entrance('GT Gauntlet 3 NW', player), lambda state: state.can_kill_most_things(player))
|
||||||
if not world.get_door('GT Gauntlet 3 SW', player).entranceFlag:
|
if not world.is_copied_world and not world.get_door('GT Gauntlet 3 SW', player).entranceFlag:
|
||||||
set_rule(world.get_entrance('GT Gauntlet 3 SW', player), lambda state: state.can_kill_most_things(player))
|
set_rule(world.get_entrance('GT Gauntlet 3 SW', player), lambda state: state.can_kill_most_things(player))
|
||||||
set_rule(world.get_entrance('GT Gauntlet 4 NW', player), lambda state: state.can_kill_most_things(player))
|
set_rule(world.get_entrance('GT Gauntlet 4 NW', player), lambda state: state.can_kill_most_things(player))
|
||||||
set_rule(world.get_entrance('GT Gauntlet 4 SW', player), lambda state: state.can_kill_most_things(player))
|
set_rule(world.get_entrance('GT Gauntlet 4 SW', player), lambda state: state.can_kill_most_things(player))
|
||||||
@@ -441,10 +441,11 @@ def global_rules(world, player):
|
|||||||
set_defeat_dungeon_boss_rule(world.get_location('Agahnim 2', player))
|
set_defeat_dungeon_boss_rule(world.get_location('Agahnim 2', player))
|
||||||
|
|
||||||
# crystal switch rules
|
# crystal switch rules
|
||||||
if world.get_door('Thieves Attic ES', player).crystal == CrystalBarrier.Blue:
|
if not world.is_copied_world:
|
||||||
set_rule(world.get_entrance('Thieves Attic ES', player), lambda state: state.can_reach_blue(world.get_region('Thieves Attic', player), player))
|
if world.get_door('Thieves Attic ES', player).crystal == CrystalBarrier.Blue:
|
||||||
else:
|
set_rule(world.get_entrance('Thieves Attic ES', player), lambda state: state.can_reach_blue(world.get_region('Thieves Attic', player), player))
|
||||||
set_rule(world.get_entrance('Thieves Attic ES', player), lambda state: state.can_reach_orange(world.get_region('Thieves Attic', player), player))
|
else:
|
||||||
|
set_rule(world.get_entrance('Thieves Attic ES', player), lambda state: state.can_reach_orange(world.get_region('Thieves Attic', player), player))
|
||||||
set_rule(world.get_entrance('Thieves Attic Orange Barrier', player), lambda state: state.can_reach_orange(world.get_region('Thieves Attic', player), player))
|
set_rule(world.get_entrance('Thieves Attic Orange Barrier', player), lambda state: state.can_reach_orange(world.get_region('Thieves Attic', player), player))
|
||||||
set_rule(world.get_entrance('Thieves Attic Blue Barrier', player), lambda state: state.can_reach_blue(world.get_region('Thieves Attic', player), player))
|
set_rule(world.get_entrance('Thieves Attic Blue Barrier', player), lambda state: state.can_reach_blue(world.get_region('Thieves Attic', player), player))
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user