Various worlds: Fix more absolute world imports (#3510)
* Adventure: remove absolute imports * Alttp: remove absolute imports (all but tests) * Aquaria: remove absolute imports in tests running tests from apworld may fail (on 3.8 and maybe in the future) otherwise * DKC3: remove absolute imports * LADX: remove absolute imports * Overcooked 2: remove absolute imports in tests running tests from apworld may fail otherwise * Rogue Legacy: remove absolute imports in tests running tests from apworld may fail otherwise * SC2: remove absolute imports * SMW: remove absolute imports * Subnautica: remove absolute imports in tests running tests from apworld may fail otherwise * Zillion: remove absolute imports in tests running tests from apworld may fail otherwise
This commit is contained in:
parent
6c54b3596b
commit
5882ce7380
|
@ -1,7 +1,5 @@
|
||||||
from worlds.adventure import location_table
|
from .Options import BatLogic, DifficultySwitchB
|
||||||
from worlds.adventure.Options import BatLogic, DifficultySwitchB, DifficultySwitchA
|
|
||||||
from worlds.generic.Rules import add_rule, set_rule, forbid_item
|
from worlds.generic.Rules import add_rule, set_rule, forbid_item
|
||||||
from BaseClasses import LocationProgressType
|
|
||||||
|
|
||||||
|
|
||||||
def set_rules(self) -> None:
|
def set_rules(self) -> None:
|
||||||
|
|
|
@ -682,7 +682,7 @@ def get_alttp_settings(romfile: str):
|
||||||
|
|
||||||
if 'yes' in choice:
|
if 'yes' in choice:
|
||||||
import LttPAdjuster
|
import LttPAdjuster
|
||||||
from worlds.alttp.Rom import get_base_rom_path
|
from .Rom import get_base_rom_path
|
||||||
last_settings.rom = romfile
|
last_settings.rom = romfile
|
||||||
last_settings.baserom = get_base_rom_path()
|
last_settings.baserom = get_base_rom_path()
|
||||||
last_settings.world = None
|
last_settings.world = None
|
||||||
|
|
|
@ -1437,7 +1437,7 @@ def connect_mandatory_exits(world, entrances, caves, must_be_exits, player):
|
||||||
invalid_cave_connections = defaultdict(set)
|
invalid_cave_connections = defaultdict(set)
|
||||||
|
|
||||||
if world.glitches_required[player] in ['overworld_glitches', 'hybrid_major_glitches', 'no_logic']:
|
if world.glitches_required[player] in ['overworld_glitches', 'hybrid_major_glitches', 'no_logic']:
|
||||||
from worlds.alttp import OverworldGlitchRules
|
from . import OverworldGlitchRules
|
||||||
for entrance in OverworldGlitchRules.get_non_mandatory_exits(world.mode[player] == 'inverted'):
|
for entrance in OverworldGlitchRules.get_non_mandatory_exits(world.mode[player] == 'inverted'):
|
||||||
invalid_connections[entrance] = set()
|
invalid_connections[entrance] = set()
|
||||||
if entrance in must_be_exits:
|
if entrance in must_be_exits:
|
||||||
|
|
|
@ -486,7 +486,7 @@ class LTTPBosses(PlandoBosses):
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def can_place_boss(cls, boss: str, location: str) -> bool:
|
def can_place_boss(cls, boss: str, location: str) -> bool:
|
||||||
from worlds.alttp.Bosses import can_place_boss
|
from .Bosses import can_place_boss
|
||||||
level = ''
|
level = ''
|
||||||
words = location.split(" ")
|
words = location.split(" ")
|
||||||
if words[-1] in ("top", "middle", "bottom"):
|
if words[-1] in ("top", "middle", "bottom"):
|
||||||
|
|
|
@ -406,7 +406,7 @@ def create_dungeon_region(world: MultiWorld, player: int, name: str, hint: str,
|
||||||
|
|
||||||
def _create_region(world: MultiWorld, player: int, name: str, type: LTTPRegionType, hint: str, locations=None,
|
def _create_region(world: MultiWorld, player: int, name: str, type: LTTPRegionType, hint: str, locations=None,
|
||||||
exits=None):
|
exits=None):
|
||||||
from worlds.alttp.SubClasses import ALttPLocation
|
from .SubClasses import ALttPLocation
|
||||||
ret = LTTPRegion(name, type, hint, player, world)
|
ret = LTTPRegion(name, type, hint, player, world)
|
||||||
if exits:
|
if exits:
|
||||||
for exit in exits:
|
for exit in exits:
|
||||||
|
@ -760,7 +760,7 @@ location_table: typing.Dict[str,
|
||||||
'Turtle Rock - Prize': (
|
'Turtle Rock - Prize': (
|
||||||
[0x120A7, 0x53F24, 0x53F25, 0x18005C, 0x180079, 0xC708], None, True, 'Turtle Rock')}
|
[0x120A7, 0x53F24, 0x53F25, 0x18005C, 0x180079, 0xC708], None, True, 'Turtle Rock')}
|
||||||
|
|
||||||
from worlds.alttp.Shops import shop_table_by_location_id, shop_table_by_location
|
from .Shops import shop_table_by_location_id, shop_table_by_location
|
||||||
lookup_id_to_name = {data[0]: name for name, data in location_table.items() if type(data[0]) == int}
|
lookup_id_to_name = {data[0]: name for name, data in location_table.items() if type(data[0]) == int}
|
||||||
lookup_id_to_name = {**lookup_id_to_name, **{data[1]: name for name, data in key_drop_data.items()}}
|
lookup_id_to_name = {**lookup_id_to_name, **{data[1]: name for name, data in key_drop_data.items()}}
|
||||||
lookup_id_to_name.update(shop_table_by_location_id)
|
lookup_id_to_name.update(shop_table_by_location_id)
|
||||||
|
|
|
@ -4,7 +4,7 @@ Date: Thu, 18 Apr 2024 18:45:56 +0000
|
||||||
Description: Unit test used to test accessibility of locations with and without the beast form
|
Description: Unit test used to test accessibility of locations with and without the beast form
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from worlds.aquaria.test import AquariaTestBase
|
from . import AquariaTestBase
|
||||||
|
|
||||||
|
|
||||||
class BeastFormAccessTest(AquariaTestBase):
|
class BeastFormAccessTest(AquariaTestBase):
|
||||||
|
|
|
@ -5,7 +5,7 @@ Description: Unit test used to test accessibility of locations with and without
|
||||||
under rock needing bind song option)
|
under rock needing bind song option)
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from worlds.aquaria.test import AquariaTestBase, after_home_water_locations
|
from . import AquariaTestBase, after_home_water_locations
|
||||||
|
|
||||||
|
|
||||||
class BindSongAccessTest(AquariaTestBase):
|
class BindSongAccessTest(AquariaTestBase):
|
||||||
|
|
|
@ -5,8 +5,8 @@ Description: Unit test used to test accessibility of locations with and without
|
||||||
under rock needing bind song option)
|
under rock needing bind song option)
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from worlds.aquaria.test import AquariaTestBase
|
from . import AquariaTestBase
|
||||||
from worlds.aquaria.test.test_bind_song_access import after_home_water_locations
|
from .test_bind_song_access import after_home_water_locations
|
||||||
|
|
||||||
|
|
||||||
class BindSongOptionAccessTest(AquariaTestBase):
|
class BindSongOptionAccessTest(AquariaTestBase):
|
||||||
|
|
|
@ -4,7 +4,7 @@ Date: Fri, 03 May 2024 14:07:35 +0000
|
||||||
Description: Unit test used to test accessibility of region with the home water confine via option
|
Description: Unit test used to test accessibility of region with the home water confine via option
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from worlds.aquaria.test import AquariaTestBase
|
from . import AquariaTestBase
|
||||||
|
|
||||||
|
|
||||||
class ConfinedHomeWaterAccessTest(AquariaTestBase):
|
class ConfinedHomeWaterAccessTest(AquariaTestBase):
|
||||||
|
|
|
@ -4,7 +4,7 @@ Date: Thu, 18 Apr 2024 18:45:56 +0000
|
||||||
Description: Unit test used to test accessibility of locations with and without the dual song
|
Description: Unit test used to test accessibility of locations with and without the dual song
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from worlds.aquaria.test import AquariaTestBase
|
from . import AquariaTestBase
|
||||||
|
|
||||||
|
|
||||||
class LiAccessTest(AquariaTestBase):
|
class LiAccessTest(AquariaTestBase):
|
||||||
|
|
|
@ -5,7 +5,7 @@ Description: Unit test used to test accessibility of locations with and without
|
||||||
energy form option)
|
energy form option)
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from worlds.aquaria.test import AquariaTestBase
|
from . import AquariaTestBase
|
||||||
|
|
||||||
|
|
||||||
class EnergyFormAccessTest(AquariaTestBase):
|
class EnergyFormAccessTest(AquariaTestBase):
|
||||||
|
|
|
@ -4,7 +4,7 @@ Date: Thu, 18 Apr 2024 18:45:56 +0000
|
||||||
Description: Unit test used to test accessibility of locations with and without the fish form
|
Description: Unit test used to test accessibility of locations with and without the fish form
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from worlds.aquaria.test import AquariaTestBase
|
from . import AquariaTestBase
|
||||||
|
|
||||||
|
|
||||||
class FishFormAccessTest(AquariaTestBase):
|
class FishFormAccessTest(AquariaTestBase):
|
||||||
|
|
|
@ -4,7 +4,7 @@ Date: Thu, 18 Apr 2024 18:45:56 +0000
|
||||||
Description: Unit test used to test accessibility of locations with and without Li
|
Description: Unit test used to test accessibility of locations with and without Li
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from worlds.aquaria.test import AquariaTestBase
|
from . import AquariaTestBase
|
||||||
|
|
||||||
|
|
||||||
class LiAccessTest(AquariaTestBase):
|
class LiAccessTest(AquariaTestBase):
|
||||||
|
|
|
@ -4,7 +4,7 @@ Date: Thu, 18 Apr 2024 18:45:56 +0000
|
||||||
Description: Unit test used to test accessibility of locations with and without a light (Dumbo pet or sun form)
|
Description: Unit test used to test accessibility of locations with and without a light (Dumbo pet or sun form)
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from worlds.aquaria.test import AquariaTestBase
|
from . import AquariaTestBase
|
||||||
|
|
||||||
|
|
||||||
class LightAccessTest(AquariaTestBase):
|
class LightAccessTest(AquariaTestBase):
|
||||||
|
|
|
@ -4,7 +4,7 @@ Date: Thu, 18 Apr 2024 18:45:56 +0000
|
||||||
Description: Unit test used to test accessibility of locations with and without the nature form
|
Description: Unit test used to test accessibility of locations with and without the nature form
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from worlds.aquaria.test import AquariaTestBase
|
from . import AquariaTestBase
|
||||||
|
|
||||||
|
|
||||||
class NatureFormAccessTest(AquariaTestBase):
|
class NatureFormAccessTest(AquariaTestBase):
|
||||||
|
|
|
@ -4,7 +4,7 @@ Date: Fri, 03 May 2024 14:07:35 +0000
|
||||||
Description: Unit test used to test that no progression items can be put in hard or hidden locations when option enabled
|
Description: Unit test used to test that no progression items can be put in hard or hidden locations when option enabled
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from worlds.aquaria.test import AquariaTestBase
|
from . import AquariaTestBase
|
||||||
from BaseClasses import ItemClassification
|
from BaseClasses import ItemClassification
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -4,8 +4,7 @@ Date: Fri, 03 May 2024 14:07:35 +0000
|
||||||
Description: Unit test used to test that progression items can be put in hard or hidden locations when option disabled
|
Description: Unit test used to test that progression items can be put in hard or hidden locations when option disabled
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from worlds.aquaria.test import AquariaTestBase
|
from . import AquariaTestBase
|
||||||
from BaseClasses import ItemClassification
|
|
||||||
|
|
||||||
|
|
||||||
class UNoProgressionHardHiddenTest(AquariaTestBase):
|
class UNoProgressionHardHiddenTest(AquariaTestBase):
|
||||||
|
|
|
@ -4,7 +4,7 @@ Date: Thu, 18 Apr 2024 18:45:56 +0000
|
||||||
Description: Unit test used to test accessibility of locations with and without the spirit form
|
Description: Unit test used to test accessibility of locations with and without the spirit form
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from worlds.aquaria.test import AquariaTestBase
|
from . import AquariaTestBase
|
||||||
|
|
||||||
|
|
||||||
class SpiritFormAccessTest(AquariaTestBase):
|
class SpiritFormAccessTest(AquariaTestBase):
|
||||||
|
|
|
@ -4,7 +4,7 @@ Date: Thu, 18 Apr 2024 18:45:56 +0000
|
||||||
Description: Unit test used to test accessibility of locations with and without the sun form
|
Description: Unit test used to test accessibility of locations with and without the sun form
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from worlds.aquaria.test import AquariaTestBase
|
from . import AquariaTestBase
|
||||||
|
|
||||||
|
|
||||||
class SunFormAccessTest(AquariaTestBase):
|
class SunFormAccessTest(AquariaTestBase):
|
||||||
|
|
|
@ -5,7 +5,7 @@ Description: Unit test used to test accessibility of region with the unconfined
|
||||||
turtle and energy door
|
turtle and energy door
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from worlds.aquaria.test import AquariaTestBase
|
from . import AquariaTestBase
|
||||||
|
|
||||||
|
|
||||||
class UnconfineHomeWaterBothAccessTest(AquariaTestBase):
|
class UnconfineHomeWaterBothAccessTest(AquariaTestBase):
|
||||||
|
|
|
@ -4,7 +4,7 @@ Date: Fri, 03 May 2024 14:07:35 +0000
|
||||||
Description: Unit test used to test accessibility of region with the unconfined home water option via the energy door
|
Description: Unit test used to test accessibility of region with the unconfined home water option via the energy door
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from worlds.aquaria.test import AquariaTestBase
|
from . import AquariaTestBase
|
||||||
|
|
||||||
|
|
||||||
class UnconfineHomeWaterEnergyDoorAccessTest(AquariaTestBase):
|
class UnconfineHomeWaterEnergyDoorAccessTest(AquariaTestBase):
|
||||||
|
|
|
@ -4,7 +4,7 @@ Date: Fri, 03 May 2024 14:07:35 +0000
|
||||||
Description: Unit test used to test accessibility of region with the unconfined home water option via transturtle
|
Description: Unit test used to test accessibility of region with the unconfined home water option via transturtle
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from worlds.aquaria.test import AquariaTestBase
|
from . import AquariaTestBase
|
||||||
|
|
||||||
|
|
||||||
class UnconfineHomeWaterTransturtleAccessTest(AquariaTestBase):
|
class UnconfineHomeWaterTransturtleAccessTest(AquariaTestBase):
|
||||||
|
|
|
@ -60,7 +60,7 @@ class DKC3SNIClient(SNIClient):
|
||||||
return
|
return
|
||||||
|
|
||||||
new_checks = []
|
new_checks = []
|
||||||
from worlds.dkc3.Rom import location_rom_data, item_rom_data, boss_location_ids, level_unlock_map
|
from .Rom import location_rom_data, item_rom_data, boss_location_ids, level_unlock_map
|
||||||
location_ram_data = await snes_read(ctx, WRAM_START + 0x5FE, 0x81)
|
location_ram_data = await snes_read(ctx, WRAM_START + 0x5FE, 0x81)
|
||||||
for loc_id, loc_data in location_rom_data.items():
|
for loc_id, loc_data in location_rom_data.items():
|
||||||
if loc_id not in ctx.locations_checked:
|
if loc_id not in ctx.locations_checked:
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
from worlds.ladx.LADXR.checkMetadata import checkMetadataTable
|
from .LADXR.checkMetadata import checkMetadataTable
|
||||||
import json
|
import json
|
||||||
import logging
|
import logging
|
||||||
import websockets
|
import websockets
|
||||||
|
|
|
@ -4,10 +4,11 @@ from random import Random
|
||||||
from worlds.AutoWorld import AutoWorldRegister
|
from worlds.AutoWorld import AutoWorldRegister
|
||||||
from test.general import setup_solo_multiworld
|
from test.general import setup_solo_multiworld
|
||||||
|
|
||||||
from worlds.overcooked2.Items import *
|
from ..Items import *
|
||||||
from worlds.overcooked2.Overcooked2Levels import Overcooked2Dlc, Overcooked2Level, OverworldRegion, overworld_region_by_level, level_id_to_shortname
|
from ..Overcooked2Levels import (Overcooked2Dlc, Overcooked2Level, OverworldRegion, overworld_region_by_level,
|
||||||
from worlds.overcooked2.Logic import level_logic, overworld_region_logic, level_shuffle_factory
|
level_id_to_shortname)
|
||||||
from worlds.overcooked2.Locations import oc2_location_name_to_id
|
from ..Logic import level_logic, overworld_region_logic, level_shuffle_factory
|
||||||
|
from ..Locations import oc2_location_name_to_id
|
||||||
|
|
||||||
|
|
||||||
class Overcooked2Test(unittest.TestCase):
|
class Overcooked2Test(unittest.TestCase):
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
from typing import Dict
|
from typing import Dict
|
||||||
|
|
||||||
from . import RLTestBase
|
from . import RLTestBase
|
||||||
from worlds.rogue_legacy.Items import RLItemData, item_table
|
from ..Items import item_table
|
||||||
from worlds.rogue_legacy.Locations import RLLocationData, location_table
|
from ..Locations import location_table
|
||||||
|
|
||||||
|
|
||||||
class UniqueTest(RLTestBase):
|
class UniqueTest(RLTestBase):
|
||||||
|
|
|
@ -22,10 +22,9 @@ from pathlib import Path
|
||||||
# CommonClient import first to trigger ModuleUpdater
|
# CommonClient import first to trigger ModuleUpdater
|
||||||
from CommonClient import CommonContext, server_loop, ClientCommandProcessor, gui_enabled, get_base_parser
|
from CommonClient import CommonContext, server_loop, ClientCommandProcessor, gui_enabled, get_base_parser
|
||||||
from Utils import init_logging, is_windows, async_start
|
from Utils import init_logging, is_windows, async_start
|
||||||
from worlds.sc2 import ItemNames
|
from . import ItemNames, Options
|
||||||
from worlds.sc2.ItemGroups import item_name_groups, unlisted_item_name_groups
|
from .ItemGroups import item_name_groups
|
||||||
from worlds.sc2 import Options
|
from .Options import (
|
||||||
from worlds.sc2.Options import (
|
|
||||||
MissionOrder, KerriganPrimalStatus, kerrigan_unit_available, KerriganPresence,
|
MissionOrder, KerriganPrimalStatus, kerrigan_unit_available, KerriganPresence,
|
||||||
GameSpeed, GenericUpgradeItems, GenericUpgradeResearch, ColorChoice, GenericUpgradeMissions,
|
GameSpeed, GenericUpgradeItems, GenericUpgradeResearch, ColorChoice, GenericUpgradeMissions,
|
||||||
LocationInclusion, ExtraLocations, MasteryLocations, ChallengeLocations, VanillaLocations,
|
LocationInclusion, ExtraLocations, MasteryLocations, ChallengeLocations, VanillaLocations,
|
||||||
|
@ -46,11 +45,12 @@ from worlds._sc2common import bot
|
||||||
from worlds._sc2common.bot.data import Race
|
from worlds._sc2common.bot.data import Race
|
||||||
from worlds._sc2common.bot.main import run_game
|
from worlds._sc2common.bot.main import run_game
|
||||||
from worlds._sc2common.bot.player import Bot
|
from worlds._sc2common.bot.player import Bot
|
||||||
from worlds.sc2.Items import lookup_id_to_name, get_full_item_list, ItemData, type_flaggroups, upgrade_numbers, upgrade_numbers_all
|
from .Items import (lookup_id_to_name, get_full_item_list, ItemData, type_flaggroups, upgrade_numbers,
|
||||||
from worlds.sc2.Locations import SC2WOL_LOC_ID_OFFSET, LocationType, SC2HOTS_LOC_ID_OFFSET
|
upgrade_numbers_all)
|
||||||
from worlds.sc2.MissionTables import lookup_id_to_mission, SC2Campaign, lookup_name_to_mission, \
|
from .Locations import SC2WOL_LOC_ID_OFFSET, LocationType, SC2HOTS_LOC_ID_OFFSET
|
||||||
lookup_id_to_campaign, MissionConnection, SC2Mission, campaign_mission_table, SC2Race, get_no_build_missions
|
from .MissionTables import (lookup_id_to_mission, SC2Campaign, lookup_name_to_mission,
|
||||||
from worlds.sc2.Regions import MissionInfo
|
lookup_id_to_campaign, MissionConnection, SC2Mission, campaign_mission_table, SC2Race)
|
||||||
|
from .Regions import MissionInfo
|
||||||
|
|
||||||
import colorama
|
import colorama
|
||||||
from Options import Option
|
from Options import Option
|
||||||
|
|
|
@ -13,12 +13,12 @@ from kivy.uix.floatlayout import FloatLayout
|
||||||
from kivy.uix.scrollview import ScrollView
|
from kivy.uix.scrollview import ScrollView
|
||||||
from kivy.properties import StringProperty
|
from kivy.properties import StringProperty
|
||||||
|
|
||||||
from worlds.sc2.Client import SC2Context, calc_unfinished_missions, parse_unlock
|
from .Client import SC2Context, calc_unfinished_missions, parse_unlock
|
||||||
from worlds.sc2.MissionTables import lookup_id_to_mission, lookup_name_to_mission, campaign_race_exceptions, \
|
from .MissionTables import (lookup_id_to_mission, lookup_name_to_mission, campaign_race_exceptions, SC2Mission, SC2Race,
|
||||||
SC2Mission, SC2Race, SC2Campaign
|
SC2Campaign)
|
||||||
from worlds.sc2.Locations import LocationType, lookup_location_id_to_type
|
from .Locations import LocationType, lookup_location_id_to_type
|
||||||
from worlds.sc2.Options import LocationInclusion
|
from .Options import LocationInclusion
|
||||||
from worlds.sc2 import SC2World, get_first_mission
|
from . import SC2World, get_first_mission
|
||||||
|
|
||||||
|
|
||||||
class HoverableButton(HoverBehavior, Button):
|
class HoverableButton(HoverBehavior, Button):
|
||||||
|
|
|
@ -223,7 +223,7 @@ class SMWSNIClient(SNIClient):
|
||||||
|
|
||||||
next_trap, message = self.trap_queue.pop(0)
|
next_trap, message = self.trap_queue.pop(0)
|
||||||
|
|
||||||
from worlds.smw.Rom import trap_rom_data
|
from .Rom import trap_rom_data
|
||||||
if next_trap.item in trap_rom_data:
|
if next_trap.item in trap_rom_data:
|
||||||
trap_active = await snes_read(ctx, WRAM_START + trap_rom_data[next_trap.item][0], 0x3)
|
trap_active = await snes_read(ctx, WRAM_START + trap_rom_data[next_trap.item][0], 0x3)
|
||||||
|
|
||||||
|
@ -349,8 +349,8 @@ class SMWSNIClient(SNIClient):
|
||||||
blocksanity_flags = bytearray(await snes_read(ctx, SMW_BLOCKSANITY_FLAGS, 0xC))
|
blocksanity_flags = bytearray(await snes_read(ctx, SMW_BLOCKSANITY_FLAGS, 0xC))
|
||||||
blocksanity_active = await snes_read(ctx, SMW_BLOCKSANITY_ACTIVE_ADDR, 0x1)
|
blocksanity_active = await snes_read(ctx, SMW_BLOCKSANITY_ACTIVE_ADDR, 0x1)
|
||||||
level_clear_flags = bytearray(await snes_read(ctx, SMW_LEVEL_CLEAR_FLAGS, 0x60))
|
level_clear_flags = bytearray(await snes_read(ctx, SMW_LEVEL_CLEAR_FLAGS, 0x60))
|
||||||
from worlds.smw.Rom import item_rom_data, ability_rom_data, trap_rom_data, icon_rom_data
|
from .Rom import item_rom_data, ability_rom_data, trap_rom_data, icon_rom_data
|
||||||
from worlds.smw.Levels import location_id_to_level_id, level_info_dict, level_blocks_data
|
from .Levels import location_id_to_level_id, level_info_dict, level_blocks_data
|
||||||
from worlds import AutoWorldRegister
|
from worlds import AutoWorldRegister
|
||||||
for loc_name, level_data in location_id_to_level_id.items():
|
for loc_name, level_data in location_id_to_level_id.items():
|
||||||
loc_id = AutoWorldRegister.world_types[ctx.game].location_name_to_id[loc_name]
|
loc_id = AutoWorldRegister.world_types[ctx.game].location_name_to_id[loc_name]
|
||||||
|
|
|
@ -15,7 +15,7 @@ class SubnauticaTest(unittest.TestCase):
|
||||||
self.assertGreater(self.scancutoff, id)
|
self.assertGreater(self.scancutoff, id)
|
||||||
|
|
||||||
def testGroupAssociation(self):
|
def testGroupAssociation(self):
|
||||||
from worlds.subnautica import items
|
from .. import items
|
||||||
for item_id, item_data in items.item_table.items():
|
for item_id, item_data in items.item_table.items():
|
||||||
if item_data.type == items.ItemType.group:
|
if item_data.type == items.ItemType.group:
|
||||||
with self.subTest(item=item_data.name):
|
with self.subTest(item=item_data.name):
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
from . import ZillionTestBase
|
from . import ZillionTestBase
|
||||||
|
|
||||||
from worlds.zillion.options import ZillionJumpLevels, ZillionGunLevels, ZillionOptions, validate
|
from ..options import ZillionJumpLevels, ZillionGunLevels, ZillionOptions, validate
|
||||||
from zilliandomizer.options import VBLR_CHOICES
|
from zilliandomizer.options import VBLR_CHOICES
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
from typing import cast
|
from typing import cast
|
||||||
from . import ZillionTestBase
|
from . import ZillionTestBase
|
||||||
|
|
||||||
from worlds.zillion import ZillionWorld
|
from .. import ZillionWorld
|
||||||
|
|
||||||
|
|
||||||
class SeedTest(ZillionTestBase):
|
class SeedTest(ZillionTestBase):
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
from typing import cast
|
from typing import cast
|
||||||
from test.bases import WorldTestBase
|
from test.bases import WorldTestBase
|
||||||
from worlds.zillion import ZillionWorld
|
from .. import ZillionWorld
|
||||||
|
|
||||||
|
|
||||||
class ZillionTestBase(WorldTestBase):
|
class ZillionTestBase(WorldTestBase):
|
||||||
|
|
Loading…
Reference in New Issue