def __init__(self, replay): self._file = open(replay) game_type_name = self.replay_read() if game_type_name in ("multiplayer", "training"): self.default_triggers = _MultiplayerGame.default_triggers game_name = self.replay_read() voice.alert([game_name]) version = self.replay_read() mods = self.replay_read() if mods != config.mods: config.mods = mods reload_all() _compatibility_version = self.replay_read() if _compatibility_version != compatibility_version(): voice.alert([1029, 4012]) # hostile sound "version error" warning( "Version mismatch. Version should be: %s. Mods should be: %s.", version, mods) self.map = Map() self.map.unpack(self.replay_read()) players = self.replay_read().split() self.alliances = map(int, self.replay_read().split()) self.factions = self.replay_read().split() self.seed = int(self.replay_read()) self.me = ReplayClient(players[0], self) self.players = [self.me] for x in players[1:]: if x in ["aggressive", "easy"]: # the "ai_" prefix wasn't recorded self.players += [DummyClient(x)] else: self.players += [HalfDummyClient(x)] self.me.nb_humans += 1
def __init__(self, replay): self._file = open(replay) game_type_name = self.replay_read() if game_type_name in ("multiplayer", "training"): self.default_triggers = _MultiplayerGame.default_triggers game_name = self.replay_read() voice.alert([game_name]) version = self.replay_read() mods = self.replay_read() res.set_mods(mods) _compatibility_version = self.replay_read() if _compatibility_version != compatibility_version(): voice.alert([1029, 4012]) # hostile sound "version error" warning("Version mismatch. Version should be: %s. Mods should be: %s.", version, mods) campaign_path_or_packed_map = self.replay_read() if game_type_name == "mission" and "***" not in campaign_path_or_packed_map: from campaign import Campaign self.map = Campaign(campaign_path_or_packed_map)._get(int(self.replay_read())) else: self.map = Map() self.map.unpack(campaign_path_or_packed_map) players = self.replay_read().split() self.alliances = map(int, self.replay_read().split()) self.factions = self.replay_read().split() self.seed = int(self.replay_read()) self.me = ReplayClient(players[0], self) self.players = [self.me] for x in players[1:]: if x in ["aggressive", "easy"]: # the "ai_" prefix wasn't recorded self.players += [DummyClient(x)] else: self.players += [HalfDummyClient(x)] self.me.nb_humans += 1
def _add_custom_multi(w): from mapfile import Map for mp in get_all_packages_paths(): d = os.path.join(mp, "multi") if os.path.isdir(d): for n in os.listdir(d): p = os.path.join(d, n) if os.path.normpath(p) not in (os.path.normpath(x.path) for x in w): w.append(Map(p, None))
def __init__(self, replay): self._file = open(replay) game_type_name = self.replay_read() if game_type_name in ("multiplayer", "training"): self.default_triggers = _MultiplayerGame.default_triggers self.must_apply_equivalent_type = True game_name = self.replay_read() voice.alert([game_name]) version = self.replay_read() mods = self.replay_read() res.set_mods(mods) _compatibility_version = self.replay_read() if _compatibility_version != compatibility_version(): voice.alert(mp.BEEP + mp.VERSION_ERROR) warning( "Version mismatch. Version should be: %s. Mods should be: %s.", version, mods) campaign_path_or_packed_map = self.replay_read() if game_type_name == "mission" and "***" not in campaign_path_or_packed_map: from campaign import Campaign self.map = Campaign(campaign_path_or_packed_map)._get( int(self.replay_read())) else: self.map = Map() self.map.unpack(campaign_path_or_packed_map) players = self.replay_read().split() alliances = self.replay_read().split() factions = self.replay_read().split() self.seed = int(self.replay_read()) self.me = ReplayClient(players[0], self) self.players = [self.me] for x in players[1:]: if x.startswith("ai_"): x = x[3:] if x in ["aggressive", "easy", "ai2"]: self.players += [DummyClient(x)] else: self.players += [RemoteClient(x)] self.me.nb_humans += 1 for p, a, f in zip(self.players, alliances, factions): p.alliance = a p.faction = f
def _add_official_multi(w): from mapfile import Map maps = [line.strip().split() for line in open("cfg/official_maps.txt")] for n, digest in maps: p = os.path.join("multi", n) w.append(Map(p, digest, official=True))