diff --git a/Starcraft2Client.py b/Starcraft2Client.py index d91adffb..c1eed74b 100644 --- a/Starcraft2Client.py +++ b/Starcraft2Client.py @@ -12,21 +12,9 @@ import typing import queue from pathlib import Path -import nest_asyncio -import sc2 -from sc2.bot_ai import BotAI -from sc2.data import Race -from sc2.main import run_game -from sc2.player import Bot - -import NetUtils -from MultiServer import mark_raw +# CommonClient import first to trigger ModuleUpdater +from CommonClient import CommonContext, server_loop, ClientCommandProcessor, gui_enabled, get_base_parser from Utils import init_logging, is_windows -from worlds.sc2wol import SC2WoLWorld -from worlds.sc2wol.Items import lookup_id_to_name, item_table, ItemData, type_flaggroups -from worlds.sc2wol.Locations import SC2WOL_LOC_ID_OFFSET -from worlds.sc2wol.MissionTables import lookup_id_to_mission -from worlds.sc2wol.Regions import MissionInfo if __name__ == "__main__": init_logging("SC2Client", exception_logger="Client") @@ -34,10 +22,21 @@ if __name__ == "__main__": logger = logging.getLogger("Client") sc2_logger = logging.getLogger("Starcraft2") -import colorama +import nest_asyncio +import sc2 +from sc2.bot_ai import BotAI +from sc2.data import Race +from sc2.main import run_game +from sc2.player import Bot +from worlds.sc2wol import SC2WoLWorld +from worlds.sc2wol.Items import lookup_id_to_name, item_table, ItemData, type_flaggroups +from worlds.sc2wol.Locations import SC2WOL_LOC_ID_OFFSET +from worlds.sc2wol.MissionTables import lookup_id_to_mission +from worlds.sc2wol.Regions import MissionInfo -from NetUtils import ClientStatus, RawJSONtoTextParser -from CommonClient import CommonContext, server_loop, ClientCommandProcessor, gui_enabled, get_base_parser +import colorama +from NetUtils import ClientStatus, NetworkItem, RawJSONtoTextParser +from MultiServer import mark_raw nest_asyncio.apply() max_bonus: int = 8 @@ -357,8 +356,9 @@ class SC2Context(CommonContext): self.ui = SC2Manager(self) self.ui_task = asyncio.create_task(self.ui.async_run(), name="UI") - - Builder.load_file(Utils.local_path(os.path.dirname(SC2WoLWorld.__file__), "Starcraft2.kv")) + import pkgutil + data = pkgutil.get_data(SC2WoLWorld.__module__, "Starcraft2.kv").decode() + Builder.load_string(data) async def shutdown(self): await super(SC2Context, self).shutdown() @@ -440,8 +440,8 @@ wol_default_categories = [ ] -def calculate_items(items: typing.List[NetUtils.NetworkItem]) -> typing.List[int]: - network_item: NetUtils.NetworkItem +def calculate_items(items: typing.List[NetworkItem]) -> typing.List[int]: + network_item: NetworkItem accumulators: typing.List[int] = [0 for _ in type_flaggroups] for network_item in items: diff --git a/worlds/sc2wol/LogicMixin.py b/worlds/sc2wol/LogicMixin.py index 7a081426..52bb6b09 100644 --- a/worlds/sc2wol/LogicMixin.py +++ b/worlds/sc2wol/LogicMixin.py @@ -1,5 +1,5 @@ from BaseClasses import MultiWorld -from ..AutoWorld import LogicMixin +from worlds.AutoWorld import LogicMixin class SC2WoLLogic(LogicMixin): diff --git a/worlds/sc2wol/Regions.py b/worlds/sc2wol/Regions.py index 4e207529..8219a982 100644 --- a/worlds/sc2wol/Regions.py +++ b/worlds/sc2wol/Regions.py @@ -1,8 +1,8 @@ -from typing import List, Set, Dict, Tuple, Optional, Callable, NamedTuple +from typing import List, Set, Dict, Tuple, Optional, Callable from BaseClasses import MultiWorld, Region, Entrance, Location, RegionType from .Locations import LocationData from .Options import get_option_value -from worlds.sc2wol.MissionTables import MissionInfo, vanilla_shuffle_order, vanilla_mission_req_table, \ +from .MissionTables import MissionInfo, vanilla_shuffle_order, vanilla_mission_req_table, \ no_build_regions_list, easy_regions_list, medium_regions_list, hard_regions_list import random diff --git a/worlds/sc2wol/__init__.py b/worlds/sc2wol/__init__.py index 4f9b3360..6d056df8 100644 --- a/worlds/sc2wol/__init__.py +++ b/worlds/sc2wol/__init__.py @@ -1,15 +1,14 @@ import typing -from typing import List, Set, Tuple, NamedTuple +from typing import List, Set, Tuple from BaseClasses import Item, MultiWorld, Location, Tutorial, ItemClassification -from ..AutoWorld import WebWorld +from worlds.AutoWorld import WebWorld, World from .Items import StarcraftWoLItem, item_table, filler_items, item_name_groups, get_full_item_list, \ basic_unit from .Locations import get_locations from .Regions import create_regions from .Options import sc2wol_options, get_option_value from .LogicMixin import SC2WoLLogic -from ..AutoWorld import World class Starcraft2WoLWebWorld(WebWorld):