Merge branch 'SynthesisOWRMerge' of github.com:codemann8/ALttPDoorRandomizer into codemann8-SynthesisOWRMerge
# Conflicts: # Rules.py # source/overworld/EntranceShuffle2.py
This commit is contained in:
@@ -2,11 +2,10 @@ from BaseClasses import World
|
||||
from DoorShuffle import link_doors
|
||||
from Doors import create_doors
|
||||
from Dungeons import create_dungeons, get_dungeon_item_pool
|
||||
from EntranceShuffle import link_inverted_entrances
|
||||
from InvertedRegions import create_inverted_regions
|
||||
from EntranceShuffle import link_entrances
|
||||
from ItemList import generate_itempool, difficulties
|
||||
from Items import ItemFactory
|
||||
from Regions import mark_light_world_regions, create_dungeon_regions, create_shops
|
||||
from Regions import create_regions, mark_light_dark_world_regions, create_dungeon_regions, create_shops
|
||||
from RoomData import create_rooms
|
||||
from Rules import set_rules
|
||||
from test.TestBase import TestBase
|
||||
@@ -18,13 +17,13 @@ class TestInverted(TestBase):
|
||||
{1: True}, {1: False}, False, None, {1: False})
|
||||
self.world.difficulty_requirements[1] = difficulties['normal']
|
||||
self.world.intensity = {1: 1}
|
||||
create_inverted_regions(self.world, 1)
|
||||
create_regions(self.world, 1)
|
||||
create_dungeon_regions(self.world, 1)
|
||||
create_shops(self.world, 1)
|
||||
create_doors(self.world, 1)
|
||||
create_rooms(self.world, 1)
|
||||
create_dungeons(self.world, 1)
|
||||
link_inverted_entrances(self.world, 1)
|
||||
link_entrances(self.world, 1)
|
||||
link_doors(self.world, 1)
|
||||
generate_itempool(self.world, 1)
|
||||
self.world.required_medallions[1] = ['Ether', 'Quake']
|
||||
@@ -32,5 +31,5 @@ class TestInverted(TestBase):
|
||||
self.world.itempool.extend(ItemFactory(['Green Pendant', 'Red Pendant', 'Blue Pendant', 'Beat Agahnim 1', 'Beat Agahnim 2', 'Crystal 1', 'Crystal 2', 'Crystal 3', 'Crystal 4', 'Crystal 5', 'Crystal 6', 'Crystal 7'], 1))
|
||||
self.world.get_location('Agahnim 1', 1).item = None
|
||||
self.world.get_location('Agahnim 2', 1).item = None
|
||||
mark_light_world_regions(self.world, 1)
|
||||
mark_light_dark_world_regions(self.world, 1)
|
||||
set_rules(self.world, 1)
|
||||
|
||||
@@ -4,7 +4,7 @@ from BaseClasses import World
|
||||
from Dungeons import create_dungeons
|
||||
from EntranceShuffle import connect_entrance, Inverted_LW_Entrances, Inverted_LW_Dungeon_Entrances, Inverted_LW_Single_Cave_Doors, Inverted_Old_Man_Entrances, Inverted_DW_Entrances, Inverted_DW_Dungeon_Entrances, Inverted_DW_Single_Cave_Doors, \
|
||||
Inverted_LW_Entrances_Must_Exit, Inverted_LW_Dungeon_Entrances_Must_Exit, Inverted_Bomb_Shop_Multi_Cave_Doors, Inverted_Bomb_Shop_Single_Cave_Doors, Inverted_Blacksmith_Single_Cave_Doors, Inverted_Blacksmith_Multi_Cave_Doors
|
||||
from InvertedRegions import create_inverted_regions
|
||||
from Regions import create_regions
|
||||
from ItemList import difficulties
|
||||
from Rules import set_inverted_big_bomb_rules
|
||||
from test.inverted.TestInverted import TestInverted
|
||||
@@ -20,8 +20,8 @@ class TestInvertedBombRules(TestInverted):
|
||||
if entrance_name not in ['Desert Palace Entrance (East)', 'Spectacle Rock Cave', 'Spectacle Rock Cave (Bottom)']:
|
||||
entrance = self.world.get_entrance(entrance_name, 1)
|
||||
entrance.connected_region = None
|
||||
self.world.get_region('Inverted Big Bomb Shop', 1).entrances = []
|
||||
connect_entrance(self.world, entrance, 'Inverted Big Bomb Shop', 1)
|
||||
self.world.get_region('Big Bomb Shop', 1).entrances = []
|
||||
connect_entrance(self.world, entrance, 'Big Bomb Shop', 1)
|
||||
set_inverted_big_bomb_rules(self.world, 1)
|
||||
entrance.connected_region.entrances.remove(entrance)
|
||||
entrance.connected_region = None
|
||||
@@ -35,8 +35,8 @@ class TestInvertedBombRules(TestInverted):
|
||||
def testInvalidEntrances(self):
|
||||
for entrance_name in ['Desert Palace Entrance (East)', 'Spectacle Rock Cave', 'Spectacle Rock Cave (Bottom)']:
|
||||
entrance = self.world.get_entrance(entrance_name, 1)
|
||||
self.world.get_region('Inverted Big Bomb Shop', 1).entrances = []
|
||||
connect_entrance(self.world, entrance, 'Inverted Big Bomb Shop', 1)
|
||||
self.world.get_region('Big Bomb Shop', 1).entrances = []
|
||||
connect_entrance(self.world, entrance, 'Big Bomb Shop', 1)
|
||||
with self.assertRaises(Exception):
|
||||
set_inverted_big_bomb_rules(self.world, 1)
|
||||
entrance.connected_region.entrances.remove(entrance)
|
||||
|
||||
@@ -49,15 +49,15 @@ class TestEntrances(TestInverted):
|
||||
["Tower of Hera", True, ["Moon Pearl", "Hammer", "Hookshot", "Progressive Glove", "Ocarina"]],
|
||||
["Tower of Hera", True, ["Moon Pearl", "Hammer", "Beat Agahnim 1", "Ocarina", "Hookshot"]],
|
||||
|
||||
["Inverted Agahnims Tower", False, []],
|
||||
["Inverted Agahnims Tower", False, [], ["Ocarina", "Lamp"]],
|
||||
["Inverted Agahnims Tower", False, [], ["Ocarina", "Progressive Glove"]],
|
||||
["Inverted Agahnims Tower", False, [], ["Moon Pearl", "Lamp"]],
|
||||
["Inverted Agahnims Tower", False, [], ["Moon Pearl", "Progressive Glove"]],
|
||||
["Inverted Agahnims Tower", True, ["Lamp", "Progressive Glove"]],
|
||||
["Inverted Agahnims Tower", True, ["Ocarina", "Beat Agahnim 1", "Moon Pearl"]],
|
||||
["Inverted Agahnims Tower", True, ["Ocarina", "Progressive Glove", "Progressive Glove", "Moon Pearl"]],
|
||||
["Inverted Agahnims Tower", True, ["Ocarina", "Progressive Glove", "Hammer", "Moon Pearl"]],
|
||||
["Agahnims Tower", False, []],
|
||||
["Agahnims Tower", False, [], ["Ocarina", "Lamp"]],
|
||||
["Agahnims Tower", False, [], ["Ocarina", "Progressive Glove"]],
|
||||
["Agahnims Tower", False, [], ["Moon Pearl", "Lamp"]],
|
||||
["Agahnims Tower", False, [], ["Moon Pearl", "Progressive Glove"]],
|
||||
["Agahnims Tower", True, ["Lamp", "Progressive Glove"]],
|
||||
["Agahnims Tower", True, ["Ocarina", "Beat Agahnim 1", "Moon Pearl"]],
|
||||
["Agahnims Tower", True, ["Ocarina", "Progressive Glove", "Progressive Glove", "Moon Pearl"]],
|
||||
["Agahnims Tower", True, ["Ocarina", "Progressive Glove", "Hammer", "Moon Pearl"]],
|
||||
|
||||
["Palace of Darkness", False, []],
|
||||
["Palace of Darkness", False, [], ["Hammer", "Flippers", "Magic Mirror", "Ocarina"]],
|
||||
@@ -104,15 +104,15 @@ class TestEntrances(TestInverted):
|
||||
["Turtle Rock", True, ["Quake", "Progressive Sword", "Progressive Glove", "Hammer", "Moon Pearl", "Ocarina"]],
|
||||
["Turtle Rock", True, ["Quake", "Progressive Sword", "Beat Agahnim 1", "Moon Pearl", "Ocarina"]],
|
||||
|
||||
["Inverted Ganons Tower", False, []],
|
||||
["Inverted Ganons Tower", False, [], ["Crystal 1"]],
|
||||
["Inverted Ganons Tower", False, [], ["Crystal 2"]],
|
||||
["Inverted Ganons Tower", False, [], ["Crystal 3"]],
|
||||
["Inverted Ganons Tower", False, [], ["Crystal 4"]],
|
||||
["Inverted Ganons Tower", False, [], ["Crystal 5"]],
|
||||
["Inverted Ganons Tower", False, [], ["Crystal 6"]],
|
||||
["Inverted Ganons Tower", False, [], ["Crystal 7"]],
|
||||
["Inverted Ganons Tower", True, ["Beat Agahnim 1", "Crystal 1", "Crystal 2", "Crystal 3", "Crystal 4", "Crystal 5", "Crystal 6", "Crystal 7"]],
|
||||
["Inverted Ganons Tower", True, ["Moon Pearl", "Progressive Glove", "Progressive Glove", "Crystal 1", "Crystal 2", "Crystal 3", "Crystal 4", "Crystal 5", "Crystal 6", "Crystal 7"]],
|
||||
["Inverted Ganons Tower", True, ["Moon Pearl", "Hammer", "Progressive Glove", "Progressive Glove", "Crystal 1", "Crystal 2", "Crystal 3", "Crystal 4", "Crystal 5", "Crystal 6", "Crystal 7"]],
|
||||
["Ganons Tower", False, []],
|
||||
["Ganons Tower", False, [], ["Crystal 1"]],
|
||||
["Ganons Tower", False, [], ["Crystal 2"]],
|
||||
["Ganons Tower", False, [], ["Crystal 3"]],
|
||||
["Ganons Tower", False, [], ["Crystal 4"]],
|
||||
["Ganons Tower", False, [], ["Crystal 5"]],
|
||||
["Ganons Tower", False, [], ["Crystal 6"]],
|
||||
["Ganons Tower", False, [], ["Crystal 7"]],
|
||||
["Ganons Tower", True, ["Beat Agahnim 1", "Crystal 1", "Crystal 2", "Crystal 3", "Crystal 4", "Crystal 5", "Crystal 6", "Crystal 7"]],
|
||||
["Ganons Tower", True, ["Moon Pearl", "Progressive Glove", "Progressive Glove", "Crystal 1", "Crystal 2", "Crystal 3", "Crystal 4", "Crystal 5", "Crystal 6", "Crystal 7"]],
|
||||
["Ganons Tower", True, ["Moon Pearl", "Hammer", "Progressive Glove", "Progressive Glove", "Crystal 1", "Crystal 2", "Crystal 3", "Crystal 4", "Crystal 5", "Crystal 6", "Crystal 7"]],
|
||||
])
|
||||
@@ -2,12 +2,11 @@ from BaseClasses import World
|
||||
from DoorShuffle import link_doors
|
||||
from Doors import create_doors
|
||||
from Dungeons import create_dungeons, get_dungeon_item_pool
|
||||
from EntranceShuffle import link_inverted_entrances
|
||||
from InvertedRegions import create_inverted_regions
|
||||
from EntranceShuffle import link_entrances
|
||||
from ItemList import generate_itempool, difficulties
|
||||
from Items import ItemFactory
|
||||
from OverworldGlitchRules import create_owg_connections
|
||||
from Regions import mark_light_world_regions, create_dungeon_regions, create_shops
|
||||
from Regions import create_regions, mark_light_dark_world_regions, create_dungeon_regions, create_shops
|
||||
from RoomData import create_rooms
|
||||
from Rules import set_rules
|
||||
from test.TestBase import TestBase
|
||||
@@ -19,14 +18,14 @@ class TestInvertedOWG(TestBase):
|
||||
{1: True}, {1: False}, False, None, {1: False})
|
||||
self.world.difficulty_requirements[1] = difficulties['normal']
|
||||
self.world.intensity = {1: 1}
|
||||
create_inverted_regions(self.world, 1)
|
||||
create_regions(self.world, 1)
|
||||
create_dungeon_regions(self.world, 1)
|
||||
create_shops(self.world, 1)
|
||||
create_doors(self.world, 1)
|
||||
create_rooms(self.world, 1)
|
||||
create_dungeons(self.world, 1)
|
||||
create_owg_connections(self.world, 1)
|
||||
link_inverted_entrances(self.world, 1)
|
||||
link_entrances(self.world, 1)
|
||||
link_doors(self.world, 1)
|
||||
generate_itempool(self.world, 1)
|
||||
self.world.required_medallions[1] = ['Ether', 'Quake']
|
||||
@@ -36,5 +35,5 @@ class TestInvertedOWG(TestBase):
|
||||
self.world.get_location('Agahnim 2', 1).item = None
|
||||
self.world.precollected_items.clear()
|
||||
self.world.itempool.append(ItemFactory('Pegasus Boots', 1))
|
||||
mark_light_world_regions(self.world, 1)
|
||||
mark_light_dark_world_regions(self.world, 1)
|
||||
set_rules(self.world, 1)
|
||||
|
||||
@@ -3,11 +3,10 @@ from DoorShuffle import link_doors
|
||||
from Doors import create_doors
|
||||
from Dungeons import create_dungeons, get_dungeon_item_pool
|
||||
from EntranceShuffle import link_entrances
|
||||
from InvertedRegions import mark_dark_world_regions
|
||||
from ItemList import difficulties, generate_itempool
|
||||
from Items import ItemFactory
|
||||
from OverworldGlitchRules import create_owg_connections
|
||||
from Regions import create_regions, create_dungeon_regions, create_shops
|
||||
from Regions import create_regions, create_dungeon_regions, create_shops, mark_light_dark_world_regions
|
||||
from RoomData import create_rooms
|
||||
from Rules import set_rules
|
||||
from test.TestBase import TestBase
|
||||
@@ -36,5 +35,5 @@ class TestVanillaOWG(TestBase):
|
||||
self.world.get_location('Agahnim 2', 1).item = None
|
||||
self.world.precollected_items.clear()
|
||||
self.world.itempool.append(ItemFactory('Pegasus Boots', 1))
|
||||
mark_dark_world_regions(self.world, 1)
|
||||
mark_light_dark_world_regions(self.world, 1)
|
||||
set_rules(self.world, 1)
|
||||
@@ -7,10 +7,9 @@ import time
|
||||
from collections import Counter, defaultdict
|
||||
|
||||
from source.overworld.EntranceShuffle2 import link_entrances_new
|
||||
from EntranceShuffle import link_entrances, link_inverted_entrances
|
||||
from EntranceShuffle import link_entrances
|
||||
from BaseClasses import World
|
||||
from Regions import create_regions, create_dungeon_regions
|
||||
from InvertedRegions import create_inverted_regions
|
||||
|
||||
|
||||
# tested: open + crossed (lh) Mar. 17 (made changes)
|
||||
@@ -32,10 +31,7 @@ def run_stats():
|
||||
link_entrances_new(world, 1)
|
||||
|
||||
def runner_old(world):
|
||||
if main_mode == 'inverted':
|
||||
link_inverted_entrances(world, 1)
|
||||
else:
|
||||
link_entrances(world, 1)
|
||||
link_entrances(world, 1)
|
||||
compare_tests(tests, shuffle_mode, main_mode, ls, runner_old, runner_new)
|
||||
|
||||
|
||||
@@ -70,10 +66,7 @@ def run_old_stats():
|
||||
continue
|
||||
|
||||
def runner(world):
|
||||
if main_mode == 'inverted':
|
||||
link_inverted_entrances(world, 1)
|
||||
else:
|
||||
link_entrances(world, 1)
|
||||
link_entrances(world, 1)
|
||||
run_tests(tests, shuffle_mode, main_mode, ls, runner)
|
||||
|
||||
|
||||
@@ -111,10 +104,8 @@ def test_loop(tests, entrance_set, exit_set, ctr, shuffle_mode, main_mode, links
|
||||
{}, {}, {}, {}, {}, True, {}, [], {})
|
||||
world.customizer = False
|
||||
world.shufflelinks = {1: links}
|
||||
if world.mode[1] != 'inverted':
|
||||
create_regions(world, 1)
|
||||
else:
|
||||
create_inverted_regions(world, 1)
|
||||
world.shuffletavern = {1: False}
|
||||
create_regions(world, 1)
|
||||
create_dungeon_regions(world, 1)
|
||||
# print(f'Linking seed {seed}')
|
||||
# try:
|
||||
|
||||
@@ -3,10 +3,9 @@ from DoorShuffle import link_doors
|
||||
from Doors import create_doors
|
||||
from Dungeons import create_dungeons, get_dungeon_item_pool
|
||||
from EntranceShuffle import link_entrances
|
||||
from InvertedRegions import mark_dark_world_regions
|
||||
from ItemList import difficulties, generate_itempool
|
||||
from Items import ItemFactory
|
||||
from Regions import create_regions, create_dungeon_regions, create_shops
|
||||
from Regions import create_regions, create_dungeon_regions, create_shops, mark_light_dark_world_regions
|
||||
from RoomData import create_rooms
|
||||
from Rules import set_rules
|
||||
from test.TestBase import TestBase
|
||||
@@ -32,5 +31,5 @@ class TestVanilla(TestBase):
|
||||
self.world.itempool.extend(ItemFactory(['Green Pendant', 'Red Pendant', 'Blue Pendant', 'Beat Agahnim 1', 'Beat Agahnim 2', 'Crystal 1', 'Crystal 2', 'Crystal 3', 'Crystal 4', 'Crystal 5', 'Crystal 6', 'Crystal 7'], 1))
|
||||
self.world.get_location('Agahnim 1', 1).item = None
|
||||
self.world.get_location('Agahnim 2', 1).item = None
|
||||
mark_dark_world_regions(self.world, 1)
|
||||
mark_light_dark_world_regions(self.world, 1)
|
||||
set_rules(self.world, 1)
|
||||
|
||||
Reference in New Issue
Block a user