2021-07-04 14:18:21 +00:00
|
|
|
from argparse import Namespace
|
|
|
|
|
2020-10-24 03:38:56 +00:00
|
|
|
from BaseClasses import MultiWorld
|
|
|
|
from worlds.alttp.Dungeons import create_dungeons, get_dungeon_item_pool
|
|
|
|
from worlds.alttp.EntranceShuffle import link_inverted_entrances
|
|
|
|
from worlds.alttp.InvertedRegions import create_inverted_regions
|
2021-08-30 14:38:21 +00:00
|
|
|
from worlds.alttp.ItemPool import difficulties
|
2020-10-24 03:38:56 +00:00
|
|
|
from worlds.alttp.Items import ItemFactory
|
2021-01-30 22:29:32 +00:00
|
|
|
from worlds.alttp.Regions import mark_light_world_regions
|
2021-01-30 22:43:15 +00:00
|
|
|
from worlds.alttp.Shops import create_shops
|
2020-04-28 15:34:30 +00:00
|
|
|
from test.TestBase import TestBase
|
2021-07-04 14:18:21 +00:00
|
|
|
|
|
|
|
from worlds import AutoWorld
|
2020-03-16 06:39:54 +00:00
|
|
|
|
2020-04-28 15:34:30 +00:00
|
|
|
class TestInverted(TestBase):
|
2020-03-16 06:39:54 +00:00
|
|
|
def setUp(self):
|
2022-11-01 02:41:21 +00:00
|
|
|
self.multiworld = MultiWorld(1)
|
2023-07-02 10:50:14 +00:00
|
|
|
self.multiworld.set_seed(None)
|
2021-07-04 14:18:21 +00:00
|
|
|
args = Namespace()
|
2022-08-15 21:46:59 +00:00
|
|
|
for name, option in AutoWorld.AutoWorldRegister.world_types["A Link to the Past"].option_definitions.items():
|
2021-07-04 14:18:21 +00:00
|
|
|
setattr(args, name, {1: option.from_any(option.default)})
|
2022-11-01 02:41:21 +00:00
|
|
|
self.multiworld.set_options(args)
|
|
|
|
self.multiworld.set_default_common_options()
|
|
|
|
self.multiworld.difficulty_requirements[1] = difficulties['normal']
|
|
|
|
self.multiworld.mode[1] = "inverted"
|
|
|
|
create_inverted_regions(self.multiworld, 1)
|
2023-05-20 17:57:48 +00:00
|
|
|
self.multiworld.worlds[1].create_dungeons()
|
2022-11-01 02:41:21 +00:00
|
|
|
create_shops(self.multiworld, 1)
|
|
|
|
link_inverted_entrances(self.multiworld, 1)
|
|
|
|
self.multiworld.worlds[1].create_items()
|
|
|
|
self.multiworld.required_medallions[1] = ['Ether', 'Quake']
|
|
|
|
self.multiworld.itempool.extend(get_dungeon_item_pool(self.multiworld))
|
|
|
|
self.multiworld.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.multiworld.get_location('Agahnim 1', 1).item = None
|
|
|
|
self.multiworld.get_location('Agahnim 2', 1).item = None
|
|
|
|
mark_light_world_regions(self.multiworld, 1)
|
|
|
|
self.multiworld.worlds[1].set_rules()
|