SC2: make apworld compatible (#1024)
Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com>
This commit is contained in:
parent
4943d26160
commit
e9e15e854d
|
@ -12,21 +12,9 @@ import typing
|
||||||
import queue
|
import queue
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
import nest_asyncio
|
# CommonClient import first to trigger ModuleUpdater
|
||||||
import sc2
|
from CommonClient import CommonContext, server_loop, ClientCommandProcessor, gui_enabled, get_base_parser
|
||||||
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
|
|
||||||
from Utils import init_logging, is_windows
|
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__":
|
if __name__ == "__main__":
|
||||||
init_logging("SC2Client", exception_logger="Client")
|
init_logging("SC2Client", exception_logger="Client")
|
||||||
|
@ -34,10 +22,21 @@ if __name__ == "__main__":
|
||||||
logger = logging.getLogger("Client")
|
logger = logging.getLogger("Client")
|
||||||
sc2_logger = logging.getLogger("Starcraft2")
|
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
|
import colorama
|
||||||
from CommonClient import CommonContext, server_loop, ClientCommandProcessor, gui_enabled, get_base_parser
|
from NetUtils import ClientStatus, NetworkItem, RawJSONtoTextParser
|
||||||
|
from MultiServer import mark_raw
|
||||||
|
|
||||||
nest_asyncio.apply()
|
nest_asyncio.apply()
|
||||||
max_bonus: int = 8
|
max_bonus: int = 8
|
||||||
|
@ -357,8 +356,9 @@ class SC2Context(CommonContext):
|
||||||
|
|
||||||
self.ui = SC2Manager(self)
|
self.ui = SC2Manager(self)
|
||||||
self.ui_task = asyncio.create_task(self.ui.async_run(), name="UI")
|
self.ui_task = asyncio.create_task(self.ui.async_run(), name="UI")
|
||||||
|
import pkgutil
|
||||||
Builder.load_file(Utils.local_path(os.path.dirname(SC2WoLWorld.__file__), "Starcraft2.kv"))
|
data = pkgutil.get_data(SC2WoLWorld.__module__, "Starcraft2.kv").decode()
|
||||||
|
Builder.load_string(data)
|
||||||
|
|
||||||
async def shutdown(self):
|
async def shutdown(self):
|
||||||
await super(SC2Context, self).shutdown()
|
await super(SC2Context, self).shutdown()
|
||||||
|
@ -440,8 +440,8 @@ wol_default_categories = [
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
def calculate_items(items: typing.List[NetUtils.NetworkItem]) -> typing.List[int]:
|
def calculate_items(items: typing.List[NetworkItem]) -> typing.List[int]:
|
||||||
network_item: NetUtils.NetworkItem
|
network_item: NetworkItem
|
||||||
accumulators: typing.List[int] = [0 for _ in type_flaggroups]
|
accumulators: typing.List[int] = [0 for _ in type_flaggroups]
|
||||||
|
|
||||||
for network_item in items:
|
for network_item in items:
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
from BaseClasses import MultiWorld
|
from BaseClasses import MultiWorld
|
||||||
from ..AutoWorld import LogicMixin
|
from worlds.AutoWorld import LogicMixin
|
||||||
|
|
||||||
|
|
||||||
class SC2WoLLogic(LogicMixin):
|
class SC2WoLLogic(LogicMixin):
|
||||||
|
|
|
@ -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 BaseClasses import MultiWorld, Region, Entrance, Location, RegionType
|
||||||
from .Locations import LocationData
|
from .Locations import LocationData
|
||||||
from .Options import get_option_value
|
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
|
no_build_regions_list, easy_regions_list, medium_regions_list, hard_regions_list
|
||||||
import random
|
import random
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,14 @@
|
||||||
import typing
|
import typing
|
||||||
|
|
||||||
from typing import List, Set, Tuple, NamedTuple
|
from typing import List, Set, Tuple
|
||||||
from BaseClasses import Item, MultiWorld, Location, Tutorial, ItemClassification
|
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, \
|
from .Items import StarcraftWoLItem, item_table, filler_items, item_name_groups, get_full_item_list, \
|
||||||
basic_unit
|
basic_unit
|
||||||
from .Locations import get_locations
|
from .Locations import get_locations
|
||||||
from .Regions import create_regions
|
from .Regions import create_regions
|
||||||
from .Options import sc2wol_options, get_option_value
|
from .Options import sc2wol_options, get_option_value
|
||||||
from .LogicMixin import SC2WoLLogic
|
from .LogicMixin import SC2WoLLogic
|
||||||
from ..AutoWorld import World
|
|
||||||
|
|
||||||
|
|
||||||
class Starcraft2WoLWebWorld(WebWorld):
|
class Starcraft2WoLWebWorld(WebWorld):
|
||||||
|
|
Loading…
Reference in New Issue