From 71f77dd8fb761ff66db8acfbfc90230ebc29f429 Mon Sep 17 00:00:00 2001 From: Khopa Date: Wed, 7 Oct 2020 00:09:11 +0200 Subject: [PATCH] Added moddable campaigns through json files. --- qt_ui/uiconstants.py | 4 +- qt_ui/windows/newgame/QCampaignList.py | 49 ++-- qt_ui/windows/newgame/QNewGameWizard.py | 34 +-- theater/caucasus.py | 212 ----------------- theater/conflicttheater.py | 160 ++++++++++++- theater/nevada.py | 42 ---- theater/normandy.py | 83 ------- theater/persiangulf.py | 298 ------------------------ theater/syria.py | 225 ------------------ theater/thechannel.py | 109 --------- 10 files changed, 185 insertions(+), 1031 deletions(-) delete mode 100644 theater/caucasus.py delete mode 100644 theater/nevada.py delete mode 100644 theater/normandy.py delete mode 100644 theater/persiangulf.py delete mode 100644 theater/syria.py delete mode 100644 theater/thechannel.py diff --git a/qt_ui/uiconstants.py b/qt_ui/uiconstants.py index 30f61ef1..f822b0fc 100644 --- a/qt_ui/uiconstants.py +++ b/qt_ui/uiconstants.py @@ -85,10 +85,10 @@ def load_icons(): ICONS["Hangar"] = QPixmap("./resources/ui/misc/hangar.png") ICONS["Terrain_Caucasus"] = QPixmap("./resources/ui/terrain_caucasus.gif") - ICONS["Terrain_Persian_Gulf"] = QPixmap("./resources/ui/terrain_pg.gif") + ICONS["Terrain_PersianGulf"] = QPixmap("./resources/ui/terrain_pg.gif") ICONS["Terrain_Nevada"] = QPixmap("./resources/ui/terrain_nevada.gif") ICONS["Terrain_Normandy"] = QPixmap("./resources/ui/terrain_normandy.gif") - ICONS["Terrain_Channel"] = QPixmap("./resources/ui/terrain_channel.gif") + ICONS["Terrain_TheChannel"] = QPixmap("./resources/ui/terrain_channel.gif") ICONS["Terrain_Syria"] = QPixmap("./resources/ui/terrain_syria.gif") ICONS["Dawn"] = QPixmap("./resources/ui/daytime/dawn.png") diff --git a/qt_ui/windows/newgame/QCampaignList.py b/qt_ui/windows/newgame/QCampaignList.py index 06c42d9f..e83fae46 100644 --- a/qt_ui/windows/newgame/QCampaignList.py +++ b/qt_ui/windows/newgame/QCampaignList.py @@ -1,41 +1,38 @@ +import json +import logging +import os + from PySide2 import QtGui from PySide2.QtCore import QSize, QItemSelectionModel from PySide2.QtGui import QStandardItemModel, QStandardItem from PySide2.QtWidgets import QListView, QAbstractItemView -from theater import caucasus, nevada, persiangulf, normandy, thechannel, syria +from theater import caucasus, nevada, persiangulf, normandy, thechannel, syria, ConflictTheater import qt_ui.uiconstants as CONST -CAMPAIGNS = [ - ("Caucasus - Western Georgia", caucasus.WesternGeorgia, "Terrain_Caucasus"), - ("Caucasus - Russia Small", caucasus.RussiaSmall, "Terrain_Caucasus"), - ("Caucasus - North Caucasus", caucasus.NorthCaucasus, "Terrain_Caucasus"), - ("Caucasus - Full Map", caucasus.CaucasusTheater, "Terrain_Caucasus"), - ("Nevada - North Nevada", nevada.NevadaTheater, "Terrain_Nevada"), - ("Persian Gulf - Invasion of Iran", persiangulf.IranianCampaign, "Terrain_Persian_Gulf"), - ("Persian Gulf - Invasion of Iran [Lite]", persiangulf.IranInvasionLite, "Terrain_Persian_Gulf"), - ("Persian Gulf - Emirates", persiangulf.Emirates, "Terrain_Persian_Gulf"), - ("Persian Gulf - Desert War", persiangulf.DesertWar, "Terrain_Persian_Gulf"), - ("Persian Gulf - Full Map", persiangulf.PersianGulfTheater, "Terrain_Persian_Gulf"), - - ("Syria - Golan heights battle", syria.GolanHeights, "Terrain_Syria"), - ("Syria - Invasion from Turkey", syria.TurkishInvasion, "Terrain_Syria"), - ("Syria - Syrian Civil War", syria.SyrianCivilWar, "Terrain_Syria"), - ("Syria - Inherent Resolve", syria.InherentResolve, "Terrain_Syria"), - ("Syria - Full Map", syria.SyriaFullMap, "Terrain_Syria"), - - ("Normandy - Normandy", normandy.NormandyTheater, "Terrain_Normandy"), - ("Normandy - Normandy Small", normandy.NormandySmall, "Terrain_Normandy"), - ("The Channel - Battle of Britain", thechannel.BattleOfBritain, "Terrain_Channel"), - ("The Channel - Dunkirk", thechannel.Dunkirk, "Terrain_Channel"), -] +CAMPAIGN_DIR = ".\\resources\\campaigns" +CAMPAIGNS = [] +# Load the campaigns files from the directory +campaign_files = os.listdir(CAMPAIGN_DIR) +for f in campaign_files: + try: + ff = os.path.join(CAMPAIGN_DIR, f) + with open(ff, "r") as campaign_data: + data = json.load(campaign_data) + choice = (data["name"], ff, "Terrain_" + data["theater"].replace(" ", "")) + logging.info("Loaded campaign : " + data["name"]) + CAMPAIGNS.append(choice) + ConflictTheater.from_file(choice[1]) + logging.info("Loaded campaign :" + ff) + except Exception as e: + logging.info("Unable to load campaign :" + f) class QCampaignItem(QStandardItem): - def __init__(self, text, theater, icon): + def __init__(self, text, filename, icon): super(QCampaignItem, self).__init__() - self.theater = theater + self.filename = filename self.setIcon(QtGui.QIcon(CONST.ICONS[icon])) self.setEditable(False) self.setText(text) diff --git a/qt_ui/windows/newgame/QNewGameWizard.py b/qt_ui/windows/newgame/QNewGameWizard.py index cba58371..9b82f14f 100644 --- a/qt_ui/windows/newgame/QNewGameWizard.py +++ b/qt_ui/windows/newgame/QNewGameWizard.py @@ -44,7 +44,8 @@ class NewGameWizard(QtWidgets.QWizard): selectedCampaign = self.field("selectedCampaign") if selectedCampaign is None: selectedCampaign = CAMPAIGNS[0] - conflictTheater = selectedCampaign[1]() + + conflictTheater = ConflictTheater.from_file(selectedCampaign[1]) timePeriod = db.TIME_PERIODS[list(db.TIME_PERIODS.keys())[self.field("timePeriod")]] midGame = self.field("midGame") @@ -242,35 +243,6 @@ class TheaterConfiguration(QtWidgets.QWizardPage): self.setPixmap(QtWidgets.QWizard.WatermarkPixmap, QtGui.QPixmap('./resources/ui/wizard/watermark3.png')) - # Terrain selection - terrainGroup = QtWidgets.QGroupBox("Terrain") - terrainCaucasusSmall = QtWidgets.QRadioButton("Caucasus - Western Georgia") - terrainCaucasusSmall.setIcon(QtGui.QIcon(CONST.ICONS["Terrain_Caucasus"])) - terrainRussia = QtWidgets.QRadioButton("Caucasus - Russia Small") - terrainRussia.setIcon(QtGui.QIcon(CONST.ICONS["Terrain_Caucasus"])) - terrainCaucasus = QtWidgets.QRadioButton("Caucasus - Full map [NOT RECOMMENDED]") - terrainCaucasus.setIcon(QtGui.QIcon(CONST.ICONS["Terrain_Caucasus"])) - terrainCaucasusNorth = QtWidgets.QRadioButton("Caucasus - North") - terrainCaucasusNorth.setIcon(QtGui.QIcon(CONST.ICONS["Terrain_Caucasus"])) - - terrainPg = QtWidgets.QRadioButton("Persian Gulf - Full Map [NOT RECOMMENDED]") - terrainPg.setIcon(QtGui.QIcon(CONST.ICONS["Terrain_Persian_Gulf"])) - terrainIran = QtWidgets.QRadioButton("Persian Gulf - Invasion of Iran") - terrainIran.setIcon(QtGui.QIcon(CONST.ICONS["Terrain_Persian_Gulf"])) - terrainEmirates = QtWidgets.QRadioButton("Persian Gulf - Emirates") - terrainEmirates.setIcon(QtGui.QIcon(CONST.ICONS["Terrain_Persian_Gulf"])) - terrainNttr = QtWidgets.QRadioButton("Nevada - North Nevada") - terrainNttr.setIcon(QtGui.QIcon(CONST.ICONS["Terrain_Nevada"])) - terrainNormandy = QtWidgets.QRadioButton("Normandy") - terrainNormandy.setIcon(QtGui.QIcon(CONST.ICONS["Terrain_Normandy"])) - terrainNormandySmall = QtWidgets.QRadioButton("Normandy Small") - terrainNormandySmall.setIcon(QtGui.QIcon(CONST.ICONS["Terrain_Normandy"])) - terrainChannel = QtWidgets.QRadioButton("The Channel : Start in Dunkirk") - terrainChannel.setIcon(QtGui.QIcon(CONST.ICONS["Terrain_Channel"])) - terrainChannelComplete = QtWidgets.QRadioButton("The Channel : Battle of Britain") - terrainChannelComplete.setIcon(QtGui.QIcon(CONST.ICONS["Terrain_Channel"])) - terrainCaucasusSmall.setChecked(True) - # List of campaigns campaignList = QCampaignList() self.registerField("selectedCampaign", campaignList) @@ -284,8 +256,6 @@ class TheaterConfiguration(QtWidgets.QWizardPage): campaignList.selectionModel().selectionChanged.connect(on_campaign_selected) on_campaign_selected() - - # Campaign settings mapSettingsGroup = QtWidgets.QGroupBox("Map Settings") invertMap = QtWidgets.QCheckBox() diff --git a/theater/caucasus.py b/theater/caucasus.py deleted file mode 100644 index 1ebad24d..00000000 --- a/theater/caucasus.py +++ /dev/null @@ -1,212 +0,0 @@ -from dcs import mapping -from dcs.terrain import caucasus - -from .conflicttheater import * -from .landmap import * - - -class CaucasusTheater(ConflictTheater): - terrain = caucasus.Caucasus() - overview_image = "caumap.gif" - reference_points = {(-317948.32727306, 635639.37385346): (278.5*4, 319*4), - (-355692.3067714, 617269.96285781): (263*4, 352*4), } - - landmap = load_landmap("resources\\caulandmap.p") - daytime_map = { - "dawn": (6, 9), - "day": (9, 18), - "dusk": (18, 20), - "night": (0, 5), - } - - - - def __init__(self, load_ground_objects=True): - super(CaucasusTheater, self).__init__() - - self.vaziani = ControlPoint.from_airport(caucasus.Vaziani, LAND, SIZE_SMALL, IMPORTANCE_LOW) - self.kutaisi = ControlPoint.from_airport(caucasus.Kutaisi, LAND, SIZE_SMALL, IMPORTANCE_LOW) - self.senaki = ControlPoint.from_airport(caucasus.Senaki_Kolkhi, LAND, SIZE_REGULAR, IMPORTANCE_LOW) - self.kobuleti = ControlPoint.from_airport(caucasus.Kobuleti, COAST_A_E, SIZE_SMALL, 1.1) - self.batumi = ControlPoint.from_airport(caucasus.Batumi, COAST_DL_E, SIZE_SMALL, 1.3) - self.sukhumi = ControlPoint.from_airport(caucasus.Sukhumi_Babushara, COAST_DR_E, SIZE_REGULAR, 1.2) - self.gudauta = ControlPoint.from_airport(caucasus.Gudauta, COAST_DR_E, SIZE_REGULAR, 1.2) - self.sochi = ControlPoint.from_airport(caucasus.Sochi_Adler, COAST_DR_E, SIZE_BIG, IMPORTANCE_HIGH) - self.gelendzhik = ControlPoint.from_airport(caucasus.Gelendzhik, COAST_DR_E, SIZE_BIG, 1.1) - self.maykop = ControlPoint.from_airport(caucasus.Maykop_Khanskaya, LAND, SIZE_LARGE, IMPORTANCE_HIGH) - self.krasnodar = ControlPoint.from_airport(caucasus.Krasnodar_Center, LAND, SIZE_LARGE, IMPORTANCE_HIGH) - self.krymsk = ControlPoint.from_airport(caucasus.Krymsk, LAND, SIZE_LARGE, 1.2) - self.anapa = ControlPoint.from_airport(caucasus.Anapa_Vityazevo, LAND, SIZE_LARGE, IMPORTANCE_HIGH) - self.beslan = ControlPoint.from_airport(caucasus.Beslan, LAND, SIZE_REGULAR, IMPORTANCE_LOW) - self.nalchik = ControlPoint.from_airport(caucasus.Nalchik, LAND, SIZE_REGULAR, 1.1) - self.mineralnye = ControlPoint.from_airport(caucasus.Mineralnye_Vody, LAND, SIZE_BIG, 1.3) - self.mozdok = ControlPoint.from_airport(caucasus.Mozdok, LAND, SIZE_BIG, 1.1) - - self.carrier_1 = ControlPoint.carrier("Carrier", mapping.Point(-305810.6875, 406399.1875), 1001) - self.lha = ControlPoint.lha("Tarawa", mapping.Point(-326050.6875, 519452.1875), 1002) - - self.vaziani.frontline_offset = 0.5 - self.vaziani.base.strength = 1 - - self.add_controlpoint(self.vaziani, connected_to=[self.kutaisi, self.beslan]) - self.add_controlpoint(self.beslan, connected_to=[self.vaziani, self.mozdok, self.nalchik]) - self.add_controlpoint(self.nalchik, connected_to=[self.beslan, self.mozdok, self.mineralnye]) - self.add_controlpoint(self.mozdok, connected_to=[self.nalchik, self.beslan, self.mineralnye]) - self.add_controlpoint(self.mineralnye, connected_to=[self.nalchik, self.mozdok, self.maykop]) - self.add_controlpoint(self.maykop, connected_to=[self.mineralnye, self.krasnodar]) - - self.add_controlpoint(self.kutaisi, connected_to=[self.vaziani, self.senaki]) - self.add_controlpoint(self.senaki, connected_to=[self.kobuleti, self.sukhumi, self.kutaisi]) - self.add_controlpoint(self.kobuleti, connected_to=[self.batumi, self.senaki]) - self.add_controlpoint(self.batumi, connected_to=[self.kobuleti]) - self.add_controlpoint(self.sukhumi, connected_to=[self.gudauta, self.senaki]) - self.add_controlpoint(self.gudauta, connected_to=[self.sochi, self.sukhumi]) - self.add_controlpoint(self.sochi, connected_to=[self.gudauta, self.gelendzhik]) - - self.add_controlpoint(self.gelendzhik, connected_to=[self.sochi, self.krymsk]) - self.add_controlpoint(self.krymsk, connected_to=[self.anapa, self.krasnodar, self.gelendzhik]) - self.add_controlpoint(self.anapa, connected_to=[self.krymsk]) - self.add_controlpoint(self.krasnodar, connected_to=[self.krymsk, self.maykop]) - - self.add_controlpoint(self.carrier_1) - self.add_controlpoint(self.lha) - - self.carrier_1.captured = True - self.carrier_1.captured_invert = True - self.lha.captured = True - self.lha.captured_invert = True - - self.batumi.captured = True - self.anapa.captured_invert = True - - -""" -A smaller version of the caucasus map in western georgia. -Ideal for smaller scale campaign -""" -class WesternGeorgia(ConflictTheater): - - terrain = caucasus.Caucasus() - overview_image = "caumap.gif" - reference_points = {(-317948.32727306, 635639.37385346): (278.5 * 4, 319 * 4), - (-355692.3067714, 617269.96285781): (263 * 4, 352 * 4), } - landmap = load_landmap("resources\\caulandmap.p") - daytime_map = { - "dawn": (6, 9), - "day": (9, 18), - "dusk": (18, 20), - "night": (0, 5), - } - - - def __init__(self, load_ground_objects=True): - super(WesternGeorgia, self).__init__() - - self.kobuleti = ControlPoint.from_airport(caucasus.Kobuleti, COAST_A_E, SIZE_SMALL, 1.1) - self.senaki = ControlPoint.from_airport(caucasus.Senaki_Kolkhi, LAND, SIZE_REGULAR, IMPORTANCE_LOW) - self.kutaisi = ControlPoint.from_airport(caucasus.Kutaisi, LAND, SIZE_SMALL, IMPORTANCE_LOW) - self.sukhumi = ControlPoint.from_airport(caucasus.Sukhumi_Babushara, COAST_DR_E, SIZE_REGULAR, 1.2) - self.gudauta = ControlPoint.from_airport(caucasus.Gudauta, COAST_DR_E, SIZE_REGULAR, 1.2) - self.sochi = ControlPoint.from_airport(caucasus.Sochi_Adler, COAST_DR_E, SIZE_BIG, IMPORTANCE_HIGH) - self.carrier_1 = ControlPoint.carrier("Carrier", mapping.Point(-285810.6875, 496399.1875), 1001) - self.lha = ControlPoint.lha("Tarawa", mapping.Point(-326050.6875, 519452.1875), 1002) - - self.add_controlpoint(self.kutaisi, connected_to=[self.senaki]) - self.add_controlpoint(self.senaki, connected_to=[self.kobuleti, self.sukhumi, self.kutaisi]) - self.add_controlpoint(self.kobuleti, connected_to=[self.senaki]) - self.add_controlpoint(self.sukhumi, connected_to=[self.gudauta, self.senaki]) - self.add_controlpoint(self.gudauta, connected_to=[self.sochi, self.sukhumi]) - self.add_controlpoint(self.sochi, connected_to=[self.gudauta]) - self.add_controlpoint(self.carrier_1) - self.add_controlpoint(self.lha) - - self.carrier_1.captured = True - self.carrier_1.captured_invert = True - self.lha.captured = True - self.lha.captured_invert = True - self.kobuleti.captured = True - self.sochi.captured_invert = True - - -""" -Georgian Theather [inverted starting position] -Ideal for smaller scale campaign -""" -class RussiaSmall(ConflictTheater): - terrain = caucasus.Caucasus() - overview_image = "caumap.gif" - reference_points = {(-317948.32727306, 635639.37385346): (278.5 * 4, 319 * 4), - (-355692.3067714, 617269.96285781): (263 * 4, 352 * 4), } - - landmap = load_landmap("resources\\caulandmap.p") - daytime_map = { - "dawn": (6, 9), - "day": (9, 18), - "dusk": (18, 20), - "night": (0, 5), - } - - def __init__(self, load_ground_objects=True): - super(RussiaSmall, self).__init__() - - self.maykop = ControlPoint.from_airport(caucasus.Maykop_Khanskaya, LAND, SIZE_LARGE, IMPORTANCE_HIGH) - self.mineralnye = ControlPoint.from_airport(caucasus.Mineralnye_Vody, LAND, SIZE_BIG, 1.3) - self.mozdok = ControlPoint.from_airport(caucasus.Mozdok, LAND, SIZE_BIG, 1.1) - - self.add_controlpoint(self.mozdok, connected_to=[self.mineralnye]) - self.add_controlpoint(self.mineralnye, connected_to=[self.mozdok, self.maykop]) - self.add_controlpoint(self.maykop, connected_to=[self.mineralnye]) - - self.mozdok.captured = True - self.maykop.captured_invert = True - - -class NorthCaucasus(ConflictTheater): - terrain = caucasus.Caucasus() - overview_image = "caumap.gif" - reference_points = {(-317948.32727306, 635639.37385346): (278.5*4, 319*4), - (-355692.3067714, 617269.96285781): (263*4, 352*4), } - - landmap = load_landmap("resources\\caulandmap.p") - daytime_map = { - "dawn": (6, 9), - "day": (9, 18), - "dusk": (18, 20), - "night": (0, 5), - } - - def __init__(self, load_ground_objects=True): - super(NorthCaucasus, self).__init__() - - self.kutaisi = ControlPoint.from_airport(caucasus.Kutaisi, LAND, SIZE_SMALL, IMPORTANCE_LOW) - self.vaziani = ControlPoint.from_airport(caucasus.Vaziani, LAND, SIZE_SMALL, IMPORTANCE_LOW) - self.maykop = ControlPoint.from_airport(caucasus.Maykop_Khanskaya, LAND, SIZE_LARGE, IMPORTANCE_HIGH) - self.beslan = ControlPoint.from_airport(caucasus.Beslan, LAND, SIZE_REGULAR, IMPORTANCE_LOW) - self.nalchik = ControlPoint.from_airport(caucasus.Nalchik, LAND, SIZE_REGULAR, 1.1) - self.mineralnye = ControlPoint.from_airport(caucasus.Mineralnye_Vody, LAND, SIZE_BIG, 1.3) - self.mozdok = ControlPoint.from_airport(caucasus.Mozdok, LAND, SIZE_BIG, 1.1) - self.carrier_1 = ControlPoint.carrier("Carrier", mapping.Point(-285810.6875, 496399.1875), 1001) - self.lha = ControlPoint.lha("Tarawa", mapping.Point(-326050.6875, 519452.1875), 1002) - - self.vaziani.frontline_offset = 0.5 - self.vaziani.base.strength = 1 - - self.add_controlpoint(self.kutaisi, connected_to=[self.vaziani]) - self.add_controlpoint(self.vaziani, connected_to=[self.beslan, self.kutaisi]) - self.add_controlpoint(self.beslan, connected_to=[self.vaziani, self.mozdok, self.nalchik]) - self.add_controlpoint(self.nalchik, connected_to=[self.beslan, self.mozdok, self.mineralnye]) - self.add_controlpoint(self.mozdok, connected_to=[self.nalchik, self.beslan, self.mineralnye]) - self.add_controlpoint(self.mineralnye, connected_to=[self.nalchik, self.mozdok, self.maykop]) - self.add_controlpoint(self.maykop, connected_to=[self.mineralnye]) - self.add_controlpoint(self.carrier_1, connected_to=[]) - self.add_controlpoint(self.lha, connected_to=[]) - - self.carrier_1.captured = True - self.vaziani.captured = True - self.kutaisi.captured = True - - self.carrier_1.captured_invert = True - self.maykop.captured_invert = True - self.lha.captured = True - self.lha.captured_invert = True - self.mineralnye.captured_invert = True diff --git a/theater/conflicttheater.py b/theater/conflicttheater.py index b796ed3e..e21a4e6d 100644 --- a/theater/conflicttheater.py +++ b/theater/conflicttheater.py @@ -1,10 +1,12 @@ +import json import typing import dcs from dcs.mapping import Point +from dcs.terrain import caucasus, persiangulf, nevada, normandy, thechannel, syria from .controlpoint import ControlPoint -from .landmap import poly_contains +from .landmap import poly_contains, load_landmap SIZE_TINY = 150 SIZE_SMALL = 600 @@ -32,7 +34,7 @@ LAND = [0, 45, 90, 135, 180, 225, 270, 315, ] COAST_V_E = [0, 45, 90, 135, 180] COAST_V_W = [180, 225, 270, 315, 0] -COAST_A_W = [315, 0, 45, 135, 180, 225, 270] +COAST_A_W = [315, 0, 45, 135, 180, 225, 270] COAST_A_E = [0, 45, 90, 135, 180, 225, 315] COAST_H_N = [270, 315, 0, 45, 90] @@ -117,4 +119,158 @@ class ConflictTheater: def enemy_points(self) -> typing.Collection[ControlPoint]: return [point for point in self.controlpoints if not point.captured] + def add_json_cp(self, theater, p: dict) -> ControlPoint: + if p["type"] == "airbase": + + airbase = theater.terrain.airports[p["id"]].__class__ + + if "radials" in p.keys(): + radials = p["radials"] + else: + radials = LAND + + if "size" in p.keys(): + size = p["size"] + else: + size = SIZE_REGULAR + + if "importance" in p.keys(): + importance = p["importance"] + else: + importance = IMPORTANCE_MEDIUM + + cp = ControlPoint.from_airport(airbase, radials, size, importance) + elif p["type"] == "carrier": + cp = ControlPoint.carrier("carrier", Point(p["x"], p["y"]), p["id"]) + else: + cp = ControlPoint.lha("lha", Point(p["x"], p["y"]), p["id"]) + + if "captured_invert" in p.keys(): + cp.captured_invert = p["captured_invert"] + else: + cp.captured_invert = False + + return cp + + @staticmethod + def from_file(filename): + with open(filename, "r") as content: + json_data = json.loads(content.read()) + + + theaters = { + "Caucasus": CaucasusTheater, + "Nevada": NevadaTheater, + "Persian Gulf": PersianGulfTheater, + "Normandy": NormandyTheater, + "The Channel": TheChannelTheater, + "Syria": SyriaTheater, + } + theater = theaters[json_data["theater"]] + t = theater() + cps = {} + + for p in json_data["player_points"]: + cp = t.add_json_cp(theater, p) + cp.captured = True + cps[p["id"]] = cp + t.add_controlpoint(cp) + + for p in json_data["enemy_points"]: + cp = t.add_json_cp(theater, p) + cps[p["id"]] = cp + t.add_controlpoint(cp) + + for l in json_data["links"]: + cps[l[0]].connect(cps[l[1]]) + cps[l[1]].connect(cps[l[0]]) + + return t + + +class CaucasusTheater(ConflictTheater): + terrain = caucasus.Caucasus() + overview_image = "caumap.gif" + reference_points = {(-317948.32727306, 635639.37385346): (278.5 * 4, 319 * 4), + (-355692.3067714, 617269.96285781): (263 * 4, 352 * 4), } + + landmap = load_landmap("resources\\caulandmap.p") + daytime_map = { + "dawn": (6, 9), + "day": (9, 18), + "dusk": (18, 20), + "night": (0, 5), + } + + +class PersianGulfTheater(ConflictTheater): + terrain = dcs.terrain.PersianGulf() + overview_image = "persiangulf.gif" + reference_points = { + (persiangulf.Shiraz_International_Airport.position.x, persiangulf.Shiraz_International_Airport.position.y): ( + 772, -1970), + (persiangulf.Liwa_Airbase.position.x, persiangulf.Liwa_Airbase.position.y): (1188, 78), } + landmap = load_landmap("resources\\gulflandmap.p") + daytime_map = { + "dawn": (6, 8), + "day": (8, 16), + "dusk": (16, 18), + "night": (0, 5), + } + + +class NevadaTheater(ConflictTheater): + terrain = dcs.terrain.Nevada() + overview_image = "nevada.gif" + reference_points = {(nevada.Mina_Airport_3Q0.position.x, nevada.Mina_Airport_3Q0.position.y): (45 * 2, -360 * 2), + (nevada.Laughlin_Airport.position.x, nevada.Laughlin_Airport.position.y): (440 * 2, 80 * 2), } + landmap = load_landmap("resources\\nev_landmap.p") + daytime_map = { + "dawn": (4, 6), + "day": (6, 17), + "dusk": (17, 18), + "night": (0, 5), + } + + +class NormandyTheater(ConflictTheater): + terrain = dcs.terrain.Normandy() + overview_image = "normandy.gif" + reference_points = {(normandy.Needs_Oar_Point.position.x, normandy.Needs_Oar_Point.position.y): (-170, -1000), + (normandy.Evreux.position.x, normandy.Evreux.position.y): (2020, 500)} + landmap = load_landmap("resources\\normandylandmap.p") + daytime_map = { + "dawn": (6, 8), + "day": (10, 17), + "dusk": (17, 18), + "night": (0, 5), + } + + +class TheChannelTheater(ConflictTheater): + terrain = dcs.terrain.TheChannel() + overview_image = "thechannel.gif" + reference_points = {(thechannel.Abbeville_Drucat.position.x, thechannel.Abbeville_Drucat.position.y): (2400, 4100), + (thechannel.Detling.position.x, thechannel.Detling.position.y): (1100, 2000)} + landmap = load_landmap("resources\\channellandmap.p") + daytime_map = { + "dawn": (6, 8), + "day": (10, 17), + "dusk": (17, 18), + "night": (0, 5), + } + + +class SyriaTheater(ConflictTheater): + terrain = dcs.terrain.Syria() + overview_image = "syria.gif" + reference_points = {(syria.Eyn_Shemer.position.x, syria.Eyn_Shemer.position.y): (1300, 1380), + (syria.Tabqa.position.x, syria.Tabqa.position.y): (2060, 570)} + landmap = load_landmap("resources\\syrialandmap.p") + daytime_map = { + "dawn": (6, 8), + "day": (8, 16), + "dusk": (16, 18), + "night": (0, 5), + } diff --git a/theater/nevada.py b/theater/nevada.py deleted file mode 100644 index a7b7d030..00000000 --- a/theater/nevada.py +++ /dev/null @@ -1,42 +0,0 @@ -from dcs.terrain import nevada -from dcs import mapping - -from .landmap import * -from .conflicttheater import * -from .base import * - - -class NevadaTheater(ConflictTheater): - terrain = dcs.terrain.Nevada() - overview_image = "nevada.gif" - reference_points = {(nevada.Mina_Airport_3Q0.position.x, nevada.Mina_Airport_3Q0.position.y): (45*2, -360*2), - (nevada.Laughlin_Airport.position.x, nevada.Laughlin_Airport.position.y): (440*2, 80*2), } - landmap = load_landmap("resources\\nev_landmap.p") - daytime_map = { - "dawn": (4, 6), - "day": (6, 17), - "dusk": (17, 18), - "night": (0, 5), - } - - def __init__(self): - super(NevadaTheater, self).__init__() - - self.tonopah_test_range = ControlPoint.from_airport(nevada.Tonopah_Test_Range_Airfield, LAND, SIZE_SMALL,IMPORTANCE_LOW) - self.lincoln_conty = ControlPoint.from_airport(nevada.Lincoln_County, LAND, SIZE_SMALL, 1.2) - self.groom_lake = ControlPoint.from_airport(nevada.Groom_Lake_AFB, LAND, SIZE_REGULAR, IMPORTANCE_HIGH) - self.mesquite = ControlPoint.from_airport(nevada.Mesquite, LAND, SIZE_REGULAR, 1.3) - self.creech = ControlPoint.from_airport(nevada.Creech_AFB, LAND, SIZE_BIG, IMPORTANCE_HIGH) - self.nellis = ControlPoint.from_airport(nevada.Nellis_AFB, LAND, SIZE_BIG, IMPORTANCE_HIGH) - - self.add_controlpoint(self.tonopah_test_range, connected_to=[self.lincoln_conty, self.groom_lake]) - self.add_controlpoint(self.lincoln_conty, connected_to=[self.tonopah_test_range, self.mesquite]) - self.add_controlpoint(self.groom_lake, connected_to=[self.mesquite, self.creech, self.tonopah_test_range]) - - self.add_controlpoint(self.creech, connected_to=[self.groom_lake, self.nellis]) - self.add_controlpoint(self.mesquite, connected_to=[self.lincoln_conty, self.groom_lake]) - self.add_controlpoint(self.nellis, connected_to=[self.creech]) - - self.nellis.captured = True - self.tonopah_test_range.captured_invert = True - diff --git a/theater/normandy.py b/theater/normandy.py deleted file mode 100644 index dd67e9a6..00000000 --- a/theater/normandy.py +++ /dev/null @@ -1,83 +0,0 @@ -from dcs.terrain import normandy - -from .conflicttheater import * -from .landmap import * - - -class NormandyTheater(ConflictTheater): - terrain = dcs.terrain.Normandy() - overview_image = "normandy.gif" - reference_points = {(normandy.Needs_Oar_Point.position.x, normandy.Needs_Oar_Point.position.y): (-170, -1000), - (normandy.Evreux.position.x, normandy.Evreux.position.y): (2020, 500)} - landmap = load_landmap("resources\\normandylandmap.p") - daytime_map = { - "dawn": (6, 8), - "day": (10, 17), - "dusk": (17, 18), - "night": (0, 5), - } - - def __init__(self): - super(NormandyTheater, self).__init__() - - self.needOarPoint = ControlPoint.from_airport(normandy.Needs_Oar_Point, LAND, SIZE_SMALL, IMPORTANCE_LOW) - self.chailey = ControlPoint.from_airport(normandy.Chailey, LAND, SIZE_SMALL, IMPORTANCE_LOW) - - self.deuxjumeaux = ControlPoint.from_airport(normandy.Deux_Jumeaux, LAND, SIZE_SMALL, IMPORTANCE_LOW) - self.lignerolles = ControlPoint.from_airport(normandy.Lignerolles, LAND, SIZE_SMALL, IMPORTANCE_LOW) - self.carpiquet = ControlPoint.from_airport(normandy.Carpiquet, LAND, SIZE_SMALL, IMPORTANCE_LOW) - self.lessay = ControlPoint.from_airport(normandy.Lessay, LAND, SIZE_SMALL, IMPORTANCE_LOW) - self.maupertus = ControlPoint.from_airport(normandy.Maupertus, LAND, SIZE_SMALL, IMPORTANCE_LOW) - self.evreux = ControlPoint.from_airport(normandy.Evreux, LAND, SIZE_SMALL, IMPORTANCE_LOW) - - self.add_controlpoint(self.chailey, connected_to=[self.needOarPoint]) - self.add_controlpoint(self.needOarPoint, connected_to=[self.chailey]) - - self.add_controlpoint(self.deuxjumeaux, connected_to=[self.lignerolles]) - self.add_controlpoint(self.lignerolles, connected_to=[self.deuxjumeaux, self.lessay, self.carpiquet]) - self.add_controlpoint(self.lessay, connected_to=[self.lignerolles, self.maupertus]) - self.add_controlpoint(self.carpiquet, connected_to=[self.lignerolles, self.evreux]) - self.add_controlpoint(self.maupertus, connected_to=[self.lessay]) - self.add_controlpoint(self.evreux, connected_to=[self.carpiquet]) - - self.deuxjumeaux.captured = True - self.chailey.captured = True - self.needOarPoint.captured = True - - self.evreux.captured_invert = True - - -class NormandySmall(ConflictTheater): - terrain = dcs.terrain.Normandy() - overview_image = "normandy.gif" - reference_points = {(normandy.Needs_Oar_Point.position.x, normandy.Needs_Oar_Point.position.y): (-170, -1000), - (normandy.Evreux.position.x, normandy.Evreux.position.y): (2020, 500)} - landmap = load_landmap("resources\\normandylandmap.p") - daytime_map = { - "dawn": (6, 8), - "day": (10, 17), - "dusk": (17, 18), - "night": (0, 5), - } - - def __init__(self): - super(NormandySmall, self).__init__() - - self.needOarPoint = ControlPoint.from_airport(normandy.Needs_Oar_Point, LAND, SIZE_SMALL, IMPORTANCE_LOW) - - self.deuxjumeaux = ControlPoint.from_airport(normandy.Deux_Jumeaux, LAND, SIZE_SMALL, IMPORTANCE_LOW) - self.lignerolles = ControlPoint.from_airport(normandy.Lignerolles, LAND, SIZE_SMALL, IMPORTANCE_LOW) - self.carpiquet = ControlPoint.from_airport(normandy.Carpiquet, LAND, SIZE_SMALL, IMPORTANCE_LOW) - self.evreux = ControlPoint.from_airport(normandy.Evreux, LAND, SIZE_SMALL, IMPORTANCE_LOW) - - self.add_controlpoint(self.needOarPoint, connected_to=[self.needOarPoint]) - - self.add_controlpoint(self.deuxjumeaux, connected_to=[self.lignerolles]) - self.add_controlpoint(self.lignerolles, connected_to=[self.deuxjumeaux, self.carpiquet]) - self.add_controlpoint(self.carpiquet, connected_to=[self.lignerolles, self.evreux]) - self.add_controlpoint(self.evreux, connected_to=[self.carpiquet]) - - self.deuxjumeaux.captured = True - self.needOarPoint.captured = True - - self.evreux.captured_invert = True diff --git a/theater/persiangulf.py b/theater/persiangulf.py deleted file mode 100644 index 0960c947..00000000 --- a/theater/persiangulf.py +++ /dev/null @@ -1,298 +0,0 @@ -from dcs.terrain import persiangulf -from dcs import mapping - -from .conflicttheater import * -from .base import * -from .landmap import load_landmap - - -class PersianGulfTheater(ConflictTheater): - terrain = dcs.terrain.PersianGulf() - overview_image = "persiangulf.gif" - reference_points = { - (persiangulf.Shiraz_International_Airport.position.x, persiangulf.Shiraz_International_Airport.position.y): (772, -1970), - (persiangulf.Liwa_Airbase.position.x, persiangulf.Liwa_Airbase.position.y): (1188, 78), } - landmap = load_landmap("resources\\gulflandmap.p") - daytime_map = { - "dawn": (6, 8), - "day": (8, 16), - "dusk": (16, 18), - "night": (0, 5), - } - - - def __init__(self): - super(PersianGulfTheater, self).__init__() - - self.al_dhafra = ControlPoint.from_airport(persiangulf.Al_Dhafra_AB, LAND, SIZE_BIG, IMPORTANCE_LOW) - self.al_maktoum = ControlPoint.from_airport(persiangulf.Al_Maktoum_Intl, LAND, SIZE_BIG, IMPORTANCE_LOW) - self.al_minhad = ControlPoint.from_airport(persiangulf.Al_Minhad_AB, LAND, SIZE_REGULAR, 1.1) - self.sir_abu_nuayr = ControlPoint.from_airport(persiangulf.Sir_Abu_Nuayr, [0, 330], SIZE_SMALL, 1.1,has_frontline=False) - self.dubai = ControlPoint.from_airport(persiangulf.Dubai_Intl, COAST_DL_E, SIZE_LARGE, IMPORTANCE_MEDIUM) - self.sharjah = ControlPoint.from_airport(persiangulf.Sharjah_Intl, LAND, SIZE_BIG, 1.0) - self.fujairah = ControlPoint.from_airport(persiangulf.Fujairah_Intl, COAST_V_W, SIZE_REGULAR, 1.0) - self.khasab = ControlPoint.from_airport(persiangulf.Khasab, LAND, SIZE_SMALL, IMPORTANCE_MEDIUM) - self.sirri = ControlPoint.from_airport(persiangulf.Sirri_Island, COAST_DL_W, SIZE_REGULAR, IMPORTANCE_LOW,has_frontline=False) - self.abu_musa = ControlPoint.from_airport(persiangulf.Abu_Musa_Island_Airport, LAND, SIZE_SMALL,IMPORTANCE_MEDIUM, has_frontline=False) - self.tunb_island = ControlPoint.from_airport(persiangulf.Tunb_Island_AFB, [0, 270, 330], SIZE_SMALL,IMPORTANCE_MEDIUM, has_frontline=False) - self.tunb_kochak = ControlPoint.from_airport(persiangulf.Tunb_Kochak, [135, 180], SIZE_SMALL, 1.1,has_frontline=False) - self.bandar_lengeh = ControlPoint.from_airport(persiangulf.Bandar_Lengeh, [270, 315, 0, 45], SIZE_SMALL,IMPORTANCE_HIGH) - self.qeshm = ControlPoint.from_airport(persiangulf.Qeshm_Island, [270, 315, 0, 45, 90, 135, 180], SIZE_SMALL,1.1, has_frontline=False) - self.havadarya = ControlPoint.from_airport(persiangulf.Havadarya, COAST_DL_W, SIZE_REGULAR, IMPORTANCE_HIGH) - self.bandar_abbas = ControlPoint.from_airport(persiangulf.Bandar_Abbas_Intl, LAND, SIZE_BIG, IMPORTANCE_HIGH) - self.lar = ControlPoint.from_airport(persiangulf.Lar_Airbase, LAND, SIZE_REGULAR, IMPORTANCE_HIGH) - self.shiraz = ControlPoint.from_airport(persiangulf.Shiraz_International_Airport, LAND, SIZE_BIG,IMPORTANCE_HIGH) - self.kerman = ControlPoint.from_airport(persiangulf.Kerman_Airport, LAND, SIZE_BIG, IMPORTANCE_HIGH) - self.ras_al_khaimah = ControlPoint.from_airport(persiangulf.Ras_Al_Khaimah, LAND, SIZE_REGULAR,IMPORTANCE_MEDIUM) - self.al_ain = ControlPoint.from_airport(persiangulf.Al_Ain_International_Airport, LAND, SIZE_BIG,IMPORTANCE_HIGH) - self.liwa = ControlPoint.from_airport(persiangulf.Liwa_Airbase, LAND, SIZE_BIG, IMPORTANCE_HIGH) - self.jiroft = ControlPoint.from_airport(persiangulf.Jiroft_Airport, LAND, SIZE_BIG, IMPORTANCE_HIGH) - self.bandar_e_jask = ControlPoint.from_airport(persiangulf.Bandar_e_Jask_airfield, LAND, SIZE_TINY,IMPORTANCE_LOW) - self.west_carrier = ControlPoint.carrier("West carrier", Point(-69043.813952358, -159916.65947136), 1001) - self.east_carrier = ControlPoint.carrier("East carrier", Point(59514.324335475, 28165.517980635), 1002) - - self.add_controlpoint(self.liwa, connected_to=[self.al_dhafra]) - self.add_controlpoint(self.al_dhafra, connected_to=[self.liwa, self.al_maktoum, self.al_ain]) - self.add_controlpoint(self.al_ain, connected_to=[self.al_dhafra, self.al_maktoum]) - self.add_controlpoint(self.al_maktoum, connected_to=[self.al_dhafra, self.al_minhad, self.al_ain]) - self.add_controlpoint(self.al_minhad, connected_to=[self.al_maktoum, self.dubai]) - self.add_controlpoint(self.dubai, connected_to=[self.al_minhad, self.sharjah, self.fujairah]) - self.add_controlpoint(self.sharjah, connected_to=[self.dubai, self.ras_al_khaimah]) - self.add_controlpoint(self.ras_al_khaimah, connected_to=[self.sharjah, self.khasab]) - self.add_controlpoint(self.fujairah, connected_to=[self.dubai, self.khasab]) - self.add_controlpoint(self.khasab, connected_to=[self.ras_al_khaimah, self.fujairah]) - - self.add_controlpoint(self.sir_abu_nuayr, connected_to=[]) - self.add_controlpoint(self.sirri, connected_to=[]) - self.add_controlpoint(self.abu_musa, connected_to=[]) - self.add_controlpoint(self.tunb_kochak, connected_to=[]) - - self.add_controlpoint(self.tunb_island, connected_to=[]) - self.add_controlpoint(self.bandar_lengeh, connected_to=[self.lar, self.qeshm]) - self.add_controlpoint(self.qeshm, connected_to=[self.bandar_lengeh, self.havadarya]) - self.add_controlpoint(self.havadarya, connected_to=[self.lar, self.qeshm, self.bandar_abbas]) - self.add_controlpoint(self.bandar_abbas, connected_to=[self.havadarya, self.kerman]) - - self.add_controlpoint(self.shiraz, connected_to=[self.lar, self.kerman]) - self.add_controlpoint(self.kerman, connected_to=[self.lar, self.shiraz, self.bandar_abbas]) - self.add_controlpoint(self.lar, connected_to=[self.havadarya, self.shiraz, self.kerman]) - - self.add_controlpoint(self.west_carrier) - self.add_controlpoint(self.east_carrier) - - self.west_carrier.captured = True - self.east_carrier.captured = True - self.liwa.captured = True - - self.west_carrier.captured_invert = True - self.east_carrier.captured_invert = True - self.shiraz.captured_invert = True - - -class IranianCampaign(ConflictTheater): - - terrain = dcs.terrain.PersianGulf() - overview_image = "persiangulf.gif" - reference_points = { - (persiangulf.Shiraz_International_Airport.position.x, persiangulf.Shiraz_International_Airport.position.y): ( - 772, -1970), - (persiangulf.Liwa_Airbase.position.x, persiangulf.Liwa_Airbase.position.y): (1188, 78), } - landmap = load_landmap("resources\\gulflandmap.p") - daytime_map = { - "dawn": (6, 8), - "day": (8, 16), - "dusk": (16, 18), - "night": (0, 5), - } - - def __init__(self): - super(IranianCampaign, self).__init__() - self.al_dhafra = ControlPoint.from_airport(persiangulf.Al_Dhafra_AB, LAND, SIZE_BIG, IMPORTANCE_LOW) - self.al_maktoum = ControlPoint.from_airport(persiangulf.Al_Maktoum_Intl, LAND, SIZE_BIG, IMPORTANCE_LOW) - self.al_minhad = ControlPoint.from_airport(persiangulf.Al_Minhad_AB, LAND, SIZE_REGULAR, 1.1) - self.sir_abu_nuayr = ControlPoint.from_airport(persiangulf.Sir_Abu_Nuayr, [0, 330], SIZE_SMALL, 1.1,has_frontline=False) - self.dubai = ControlPoint.from_airport(persiangulf.Dubai_Intl, COAST_DL_E, SIZE_LARGE, IMPORTANCE_MEDIUM) - self.sharjah = ControlPoint.from_airport(persiangulf.Sharjah_Intl, LAND, SIZE_BIG, 1.0) - self.fujairah = ControlPoint.from_airport(persiangulf.Fujairah_Intl, COAST_V_W, SIZE_REGULAR, 1.0) - self.khasab = ControlPoint.from_airport(persiangulf.Khasab, LAND, SIZE_SMALL, IMPORTANCE_MEDIUM) - self.sirri = ControlPoint.from_airport(persiangulf.Sirri_Island, COAST_DL_W, SIZE_REGULAR, IMPORTANCE_LOW,has_frontline=False) - self.abu_musa = ControlPoint.from_airport(persiangulf.Abu_Musa_Island_Airport, LAND, SIZE_SMALL,IMPORTANCE_MEDIUM, has_frontline=False) - self.tunb_island = ControlPoint.from_airport(persiangulf.Tunb_Island_AFB, [0, 270, 330], SIZE_SMALL,IMPORTANCE_MEDIUM, has_frontline=False) - self.tunb_kochak = ControlPoint.from_airport(persiangulf.Tunb_Kochak, [135, 180], SIZE_SMALL, 1.1,has_frontline=False) - self.bandar_lengeh = ControlPoint.from_airport(persiangulf.Bandar_Lengeh, [270, 315, 0, 45], SIZE_SMALL,IMPORTANCE_HIGH) - self.qeshm = ControlPoint.from_airport(persiangulf.Qeshm_Island, [270, 315, 0, 45, 90, 135, 180], SIZE_SMALL,1.1, has_frontline=False) - self.havadarya = ControlPoint.from_airport(persiangulf.Havadarya, COAST_DL_W, SIZE_REGULAR, IMPORTANCE_HIGH) - self.bandar_abbas = ControlPoint.from_airport(persiangulf.Bandar_Abbas_Intl, LAND, SIZE_BIG, IMPORTANCE_HIGH) - self.lar = ControlPoint.from_airport(persiangulf.Lar_Airbase, LAND, SIZE_REGULAR, IMPORTANCE_HIGH) - self.shiraz = ControlPoint.from_airport(persiangulf.Shiraz_International_Airport, LAND, SIZE_BIG,IMPORTANCE_HIGH) - self.kerman = ControlPoint.from_airport(persiangulf.Kerman_Airport, LAND, SIZE_BIG, IMPORTANCE_HIGH) - self.jiroft = ControlPoint.from_airport(persiangulf.Jiroft_Airport, LAND, SIZE_BIG, IMPORTANCE_HIGH) - self.bandar_e_jask = ControlPoint.from_airport(persiangulf.Bandar_e_Jask_airfield, LAND, SIZE_TINY,IMPORTANCE_LOW) - self.ras_al_khaimah = ControlPoint.from_airport(persiangulf.Ras_Al_Khaimah, LAND, SIZE_REGULAR,IMPORTANCE_MEDIUM) - - self.east_carrier = ControlPoint.carrier("East carrier", Point(59514.324335475, 28165.517980635), 1001) - self.west_carrier = ControlPoint.lha("Tarawa", Point(-27500.813952358, -147000.65947136), 1002) - - self.add_controlpoint(self.ras_al_khaimah, connected_to=[self.khasab]) - self.add_controlpoint(self.khasab, connected_to=[self.ras_al_khaimah]) - - self.add_controlpoint(self.bandar_lengeh, connected_to=[self.lar]) - self.add_controlpoint(self.qeshm, connected_to=[]) - self.add_controlpoint(self.havadarya, connected_to=[self.lar, self.bandar_abbas]) - self.add_controlpoint(self.bandar_abbas, connected_to=[self.havadarya, self.jiroft]) - - self.add_controlpoint(self.shiraz, connected_to=[self.lar, self.kerman]) - self.add_controlpoint(self.jiroft, connected_to=[self.kerman, self.bandar_abbas]) - self.add_controlpoint(self.kerman, connected_to=[self.lar, self.shiraz, self.jiroft]) - self.add_controlpoint(self.lar, connected_to=[self.bandar_lengeh, self.havadarya, self.shiraz, self.kerman]) - - self.add_controlpoint(self.east_carrier) - self.add_controlpoint(self.west_carrier) - - self.east_carrier.captured = True - self.west_carrier.captured = True - self.al_dhafra.captured = True - self.ras_al_khaimah.captured = True - self.khasab.captured = True - self.qeshm.captured = True - self.havadarya.captured = True - self.bandar_abbas.captured = True - - self.shiraz.captured_invert = True - - -class Emirates(ConflictTheater): - terrain = dcs.terrain.PersianGulf() - overview_image = "persiangulf.gif" - reference_points = { - (persiangulf.Shiraz_International_Airport.position.x, persiangulf.Shiraz_International_Airport.position.y): ( - 772, -1970), - (persiangulf.Liwa_Airbase.position.x, persiangulf.Liwa_Airbase.position.y): (1188, 78), } - landmap = load_landmap("resources\\gulflandmap.p") - daytime_map = { - "dawn": (6, 8), - "day": (8, 16), - "dusk": (16, 18), - "night": (0, 5), - } - - - def __init__(self): - super(Emirates, self).__init__() - - self.al_dhafra = ControlPoint.from_airport(persiangulf.Al_Dhafra_AB, LAND, SIZE_BIG, IMPORTANCE_MEDIUM) - self.al_maktoum = ControlPoint.from_airport(persiangulf.Al_Maktoum_Intl, LAND, SIZE_BIG, IMPORTANCE_LOW) - self.al_minhad = ControlPoint.from_airport(persiangulf.Al_Minhad_AB, LAND, SIZE_REGULAR, IMPORTANCE_LOW) - self.sharjah = ControlPoint.from_airport(persiangulf.Sharjah_Intl, LAND, SIZE_BIG, IMPORTANCE_LOW) - self.fujairah = ControlPoint.from_airport(persiangulf.Fujairah_Intl, COAST_V_W, SIZE_REGULAR, IMPORTANCE_LOW) - self.ras_al_khaimah = ControlPoint.from_airport(persiangulf.Ras_Al_Khaimah, LAND, SIZE_REGULAR,IMPORTANCE_LOW) - self.al_ain = ControlPoint.from_airport(persiangulf.Al_Ain_International_Airport, LAND, SIZE_BIG,IMPORTANCE_LOW) - - self.east_carrier = ControlPoint.carrier("Carrier", Point(-61770, 69039), 1001) - self.tarawa_carrier = ControlPoint.lha("LHA Carrier", Point(-79770, 49430), 1002) - - self.add_controlpoint(self.al_dhafra, connected_to=[self.al_ain, self.al_maktoum]) - self.add_controlpoint(self.al_ain, connected_to=[self.fujairah, self.al_maktoum, self.al_dhafra]) - self.add_controlpoint(self.al_maktoum, connected_to=[self.al_dhafra, self.al_minhad, self.al_ain]) - self.add_controlpoint(self.al_minhad, connected_to=[self.al_maktoum, self.sharjah]) - self.add_controlpoint(self.sharjah, connected_to=[self.al_minhad, self.ras_al_khaimah, self.fujairah]) - self.add_controlpoint(self.ras_al_khaimah, connected_to=[self.sharjah]) - self.add_controlpoint(self.fujairah, connected_to=[self.sharjah, self.al_ain]) - - self.add_controlpoint(self.tarawa_carrier) - self.add_controlpoint(self.east_carrier) - - self.tarawa_carrier.captured = True - self.east_carrier.captured = True - self.fujairah.captured = True - - self.tarawa_carrier.captured_invert = True - self.east_carrier.captured_invert = True - self.fujairah.captured_invert = True - - -class DesertWar(ConflictTheater): - terrain = dcs.terrain.PersianGulf() - overview_image = "persiangulf.gif" - reference_points = { - (persiangulf.Shiraz_International_Airport.position.x, persiangulf.Shiraz_International_Airport.position.y): ( - 772, -1970), - (persiangulf.Liwa_Airbase.position.x, persiangulf.Liwa_Airbase.position.y): (1188, 78), } - landmap = load_landmap("resources\\gulflandmap.p") - daytime_map = { - "dawn": (6, 8), - "day": (8, 16), - "dusk": (16, 18), - "night": (0, 5), - } - - - def __init__(self): - super(DesertWar, self).__init__() - - self.liwa = ControlPoint.from_airport(persiangulf.Liwa_Airbase, LAND, SIZE_BIG, IMPORTANCE_MEDIUM) - self.al_maktoum = ControlPoint.from_airport(persiangulf.Al_Maktoum_Intl, LAND, SIZE_BIG, IMPORTANCE_LOW) - self.al_minhad = ControlPoint.from_airport(persiangulf.Al_Minhad_AB, LAND, SIZE_REGULAR, IMPORTANCE_LOW) - self.al_ain = ControlPoint.from_airport(persiangulf.Al_Ain_International_Airport, LAND, SIZE_BIG,IMPORTANCE_LOW) - - self.carrier = ControlPoint.carrier("Carrier", Point(-124000, -303000), 1001) - self.tarawa_carrier = ControlPoint.lha("LHA Carrier", Point(-164000, -257000), 1002) - - self.add_controlpoint(self.liwa, connected_to=[self.al_ain]) - self.add_controlpoint(self.al_ain, connected_to=[self.al_maktoum, self.liwa]) - self.add_controlpoint(self.al_maktoum, connected_to=[self.al_minhad, self.al_ain]) - self.add_controlpoint(self.al_minhad, connected_to=[self.al_maktoum]) - - self.add_controlpoint(self.tarawa_carrier) - self.add_controlpoint(self.carrier) - - self.tarawa_carrier.captured = True - self.carrier.captured = True - self.liwa.captured = True - - self.tarawa_carrier.captured_invert = True - self.carrier.captured_invert = True - self.al_ain.captured_invert = True - - -class IranInvasionLite(ConflictTheater): - terrain = dcs.terrain.PersianGulf() - overview_image = "persiangulf.gif" - reference_points = { - (persiangulf.Shiraz_International_Airport.position.x, persiangulf.Shiraz_International_Airport.position.y): ( - 772, -1970), - (persiangulf.Liwa_Airbase.position.x, persiangulf.Liwa_Airbase.position.y): (1188, 78), } - landmap = load_landmap("resources\\gulflandmap.p") - daytime_map = { - "dawn": (6, 8), - "day": (8, 16), - "dusk": (16, 18), - "night": (0, 5), - } - - def __init__(self): - super(IranInvasionLite, self).__init__() - - self.bandar_lengeh = ControlPoint.from_airport(persiangulf.Bandar_Lengeh, [270, 315, 0, 45], SIZE_SMALL, IMPORTANCE_HIGH) - self.lar = ControlPoint.from_airport(persiangulf.Lar_Airbase, LAND, SIZE_REGULAR, IMPORTANCE_HIGH) - self.shiraz = ControlPoint.from_airport(persiangulf.Shiraz_International_Airport, LAND, SIZE_BIG, IMPORTANCE_HIGH) - self.kerman = ControlPoint.from_airport(persiangulf.Kerman_Airport, LAND, SIZE_BIG, IMPORTANCE_HIGH) - self.jiroft = ControlPoint.from_airport(persiangulf.Jiroft_Airport, LAND, SIZE_BIG, IMPORTANCE_HIGH) - self.carrier = ControlPoint.carrier("Carrier", Point(72000.324335475, -376000), 1001) - self.lha = ControlPoint.lha("LHA", Point(-27500.813952358, -147000.65947136), 1002) - - self.add_controlpoint(self.bandar_lengeh, connected_to=[self.lar]) - self.add_controlpoint(self.shiraz, connected_to=[self.lar, self.kerman]) - self.add_controlpoint(self.jiroft, connected_to=[self.kerman]) - self.add_controlpoint(self.kerman, connected_to=[self.shiraz, self.jiroft]) - self.add_controlpoint(self.lar, connected_to=[self.bandar_lengeh, self.shiraz]) - - self.add_controlpoint(self.carrier) - self.add_controlpoint(self.lha) - - self.carrier.captured = True - self.lha.captured = True - - self.shiraz.captured_invert = True - self.bandar_lengeh.captured = True - diff --git a/theater/syria.py b/theater/syria.py deleted file mode 100644 index 1465f58e..00000000 --- a/theater/syria.py +++ /dev/null @@ -1,225 +0,0 @@ -from dcs.terrain import syria - -from .conflicttheater import * -from .landmap import * - - -class SyriaTheater(ConflictTheater): - terrain = dcs.terrain.Syria() - overview_image = "syria.gif" - reference_points = {(syria.Eyn_Shemer.position.x, syria.Eyn_Shemer.position.y): (1300, 1380), - (syria.Tabqa.position.x, syria.Tabqa.position.y): (2060, 570)} - landmap = load_landmap("resources\\syrialandmap.p") - daytime_map = { - "dawn": (6, 8), - "day": (8, 16), - "dusk": (16, 18), - "night": (0, 5), - } - - def __init__(self): - super(SyriaTheater, self).__init__() - - -class GolanHeights(SyriaTheater): - - def __init__(self): - super(GolanHeights, self).__init__() - - self.ramatDavid = ControlPoint.from_airport(syria.Ramat_David, LAND, SIZE_REGULAR, IMPORTANCE_HIGH) - self.kinghussein = ControlPoint.from_airport(syria.King_Hussein_Air_College, LAND, SIZE_REGULAR, IMPORTANCE_HIGH) - self.khalkhala = ControlPoint.from_airport(syria.Khalkhalah, LAND, SIZE_REGULAR, IMPORTANCE_MEDIUM) - - self.khalkhala.allow_sea_units = False - self.ramatDavid.allow_sea_units = False - self.kinghussein.allow_sea_units = False - - self.marjruhayyil = ControlPoint.from_airport(syria.Marj_Ruhayyil, LAND, SIZE_REGULAR, IMPORTANCE_LOW) - self.mezzeh = ControlPoint.from_airport(syria.Mezzeh, LAND, SIZE_REGULAR, IMPORTANCE_MEDIUM) - self.aldumayr = ControlPoint.from_airport(syria.Al_Dumayr, LAND, SIZE_REGULAR, IMPORTANCE_MEDIUM) - - self.carrier = ControlPoint.carrier("Carrier", Point(-280000, -238000), 1001) - self.lha = ControlPoint.lha("LHA Carrier", Point(-237000, -89800), 1002) - - self.add_controlpoint(self.ramatDavid, connected_to=[self.khalkhala]) - self.add_controlpoint(self.khalkhala, connected_to=[self.ramatDavid, self.kinghussein, self.marjruhayyil]) - self.add_controlpoint(self.kinghussein, connected_to=[self.khalkhala]) - self.add_controlpoint(self.marjruhayyil, connected_to=[self.khalkhala, self.mezzeh, self.aldumayr]) - self.add_controlpoint(self.mezzeh, connected_to=[self.marjruhayyil]) - self.add_controlpoint(self.aldumayr, connected_to=[self.marjruhayyil]) - - self.add_controlpoint(self.carrier) - self.add_controlpoint(self.lha) - - self.ramatDavid.captured = True - self.carrier.captured = True - self.lha.captured = True - - self.aldumayr.captured_invert = True - self.carrier.captured_invert = True - self.lha.captured_invert = True - - -class TurkishInvasion(SyriaTheater): - - def __init__(self): - super(TurkishInvasion, self).__init__() - - self.hatay = ControlPoint.from_airport(syria.Hatay, LAND, SIZE_REGULAR, IMPORTANCE_HIGH) - self.incirlik = ControlPoint.from_airport(syria.Incirlik, LAND, SIZE_REGULAR, IMPORTANCE_HIGH) - self.minakh = ControlPoint.from_airport(syria.Minakh, LAND, SIZE_REGULAR, IMPORTANCE_LOW) - self.aleppo = ControlPoint.from_airport(syria.Aleppo, LAND, SIZE_REGULAR, IMPORTANCE_MEDIUM) - self.kuweires = ControlPoint.from_airport(syria.Kuweires, LAND, SIZE_REGULAR, IMPORTANCE_LOW) - self.jirah = ControlPoint.from_airport(syria.Jirah, LAND, SIZE_REGULAR, IMPORTANCE_LOW) - self.tabqa = ControlPoint.from_airport(syria.Tabqa, LAND, SIZE_REGULAR, IMPORTANCE_LOW) - - self.carrier = ControlPoint.carrier("Carrier", Point(133000, -54000), 1001) - self.lha = ControlPoint.lha("LHA", Point(155000, -19000), 1002) - - self.add_controlpoint(self.incirlik, connected_to=[]) - self.add_controlpoint(self.hatay, connected_to=[self.minakh]) - self.add_controlpoint(self.minakh, connected_to=[self.aleppo, self.hatay]) - self.add_controlpoint(self.aleppo, connected_to=[self.kuweires, self.minakh]) - self.add_controlpoint(self.kuweires, connected_to=[self.jirah, self.aleppo]) - self.add_controlpoint(self.jirah, connected_to=[self.tabqa, self.kuweires]) - self.add_controlpoint(self.tabqa, connected_to=[self.jirah]) - - self.add_controlpoint(self.carrier) - self.add_controlpoint(self.lha) - - self.incirlik.captured = True - self.hatay.captured = True - self.carrier.captured = True - self.lha.captured = True - - self.tabqa.captured_invert = True - - -class SyrianCivilWar(SyriaTheater): - - def __init__(self): - super(SyrianCivilWar, self).__init__() - - self.basselAlAssad = ControlPoint.from_airport(syria.Bassel_Al_Assad, LAND, SIZE_REGULAR, IMPORTANCE_HIGH) - self.marjruhayyil = ControlPoint.from_airport(syria.Marj_Ruhayyil, LAND, SIZE_REGULAR, IMPORTANCE_LOW) - self.aldumayr = ControlPoint.from_airport(syria.Al_Dumayr, LAND, SIZE_REGULAR, IMPORTANCE_MEDIUM) - self.hama = ControlPoint.from_airport(syria.Hama, LAND, SIZE_REGULAR, IMPORTANCE_LOW) - self.alqusair= ControlPoint.from_airport(syria.Al_Qusayr, LAND, SIZE_REGULAR, IMPORTANCE_LOW) - self.aleppo = ControlPoint.from_airport(syria.Aleppo, LAND, SIZE_REGULAR, IMPORTANCE_MEDIUM) - - self.palmyra = ControlPoint.from_airport(syria.Palmyra, LAND, SIZE_REGULAR, IMPORTANCE_LOW) - - self.carrier = ControlPoint.carrier("Carrier", Point(18537, -52000), 1001) - self.lha = ControlPoint.lha("LHA", Point(116000, -30000), 1002) - - self.add_controlpoint(self.basselAlAssad, connected_to=[self.hama]) - self.add_controlpoint(self.marjruhayyil, connected_to=[self.aldumayr]) - - self.add_controlpoint(self.hama, connected_to=[self.basselAlAssad, self.aleppo, self.alqusair]) - self.add_controlpoint(self.aleppo, connected_to=[self.hama]) - self.add_controlpoint(self.alqusair, connected_to=[self.hama, self.aldumayr, self.palmyra]) - self.add_controlpoint(self.palmyra, connected_to=[self.alqusair]) - self.add_controlpoint(self.aldumayr, connected_to=[self.alqusair, self.marjruhayyil]) - - self.add_controlpoint(self.carrier) - self.add_controlpoint(self.lha) - - self.basselAlAssad.captured = True - self.marjruhayyil.captured = True - self.carrier.captured = True - self.lha.captured = True - - self.aleppo.captured_invert = True - self.carrier.captured_invert = True - self.lha.captured_invert = True - - -class InherentResolve(SyriaTheater): - - def __init__(self): - super(InherentResolve, self).__init__() - - self.kinghussein = ControlPoint.from_airport(syria.King_Hussein_Air_College, LAND, SIZE_REGULAR, IMPORTANCE_HIGH) - self.incirlik = ControlPoint.from_airport(syria.Incirlik, LAND, SIZE_REGULAR, IMPORTANCE_HIGH) - self.khalkhala = ControlPoint.from_airport(syria.Khalkhalah, LAND, SIZE_REGULAR, IMPORTANCE_MEDIUM) - self.palmyra = ControlPoint.from_airport(syria.Palmyra, LAND, SIZE_REGULAR, IMPORTANCE_LOW) - self.jirah = ControlPoint.from_airport(syria.Jirah, LAND, SIZE_REGULAR, IMPORTANCE_LOW) - self.tabqa = ControlPoint.from_airport(syria.Tabqa, LAND, SIZE_REGULAR, IMPORTANCE_LOW) - - self.carrier = ControlPoint.carrier("Carrier", Point(-210000, -200000), 1001) - self.lha = ControlPoint.lha("LHA", Point(-131000, -161000), 1002) - - self.add_controlpoint(self.kinghussein, connected_to=[self.khalkhala]) - self.add_controlpoint(self.incirlik, connected_to=[self.incirlik]) - self.add_controlpoint(self.khalkhala, connected_to=[self.kinghussein, self.palmyra]) - self.add_controlpoint(self.palmyra, connected_to=[self.khalkhala, self.tabqa]) - self.add_controlpoint(self.tabqa, connected_to=[self.palmyra, self.jirah]) - self.add_controlpoint(self.jirah, connected_to=[self.tabqa]) - - self.add_controlpoint(self.carrier) - self.add_controlpoint(self.lha) - - self.kinghussein.captured = True - self.incirlik.captured = True - self.carrier.captured = True - self.lha.captured = True - - self.jirah.captured_invert = True - self.incirlik.captured_invert = True - self.carrier.captured_invert = True - self.lha.captured_invert = True - - -class SyriaFullMap(SyriaTheater): - - def __init__(self): - super(SyriaFullMap, self).__init__() - - self.ramatDavid = ControlPoint.from_airport(syria.Ramat_David, LAND, SIZE_REGULAR, IMPORTANCE_HIGH) - self.kinghussein = ControlPoint.from_airport(syria.King_Hussein_Air_College, LAND, SIZE_REGULAR, IMPORTANCE_HIGH) - self.khalkhala = ControlPoint.from_airport(syria.Khalkhalah, LAND, SIZE_REGULAR, IMPORTANCE_MEDIUM) - self.palmyra = ControlPoint.from_airport(syria.Palmyra, LAND, SIZE_REGULAR, IMPORTANCE_LOW) - self.jirah = ControlPoint.from_airport(syria.Jirah, LAND, SIZE_REGULAR, IMPORTANCE_LOW) - self.tabqa = ControlPoint.from_airport(syria.Tabqa, LAND, SIZE_REGULAR, IMPORTANCE_LOW) - self.aldumayr = ControlPoint.from_airport(syria.Al_Dumayr, LAND, SIZE_REGULAR, IMPORTANCE_MEDIUM) - self.hama = ControlPoint.from_airport(syria.Hama, LAND, SIZE_REGULAR, IMPORTANCE_LOW) - self.alqusair= ControlPoint.from_airport(syria.Al_Qusayr, LAND, SIZE_REGULAR, IMPORTANCE_LOW) - self.aleppo = ControlPoint.from_airport(syria.Aleppo, LAND, SIZE_REGULAR, IMPORTANCE_MEDIUM) - self.basselAlAssad = ControlPoint.from_airport(syria.Bassel_Al_Assad, LAND, SIZE_REGULAR, IMPORTANCE_HIGH) - self.renemouawad = ControlPoint.from_airport(syria.Rene_Mouawad, LAND, SIZE_REGULAR, IMPORTANCE_HIGH) - self.minakh = ControlPoint.from_airport(syria.Minakh, LAND, SIZE_REGULAR, IMPORTANCE_LOW) - self.hatay = ControlPoint.from_airport(syria.Hatay, LAND, SIZE_REGULAR, IMPORTANCE_HIGH) - self.incirlik = ControlPoint.from_airport(syria.Incirlik, LAND, SIZE_REGULAR, IMPORTANCE_HIGH) - - - self.carrier = ControlPoint.carrier("Carrier", Point(-151000, -106000), 1001) - self.lha = ControlPoint.lha("LHA", Point(-131000, -161000), 1002) - - self.add_controlpoint(self.ramatDavid, connected_to=[self.kinghussein]) - self.add_controlpoint(self.kinghussein, connected_to=[self.khalkhala, self.ramatDavid]) - self.add_controlpoint(self.khalkhala, connected_to=[self.kinghussein, self.aldumayr]) - self.add_controlpoint(self.aldumayr, connected_to=[self.khalkhala, self.alqusair]) - self.add_controlpoint(self.alqusair, connected_to=[self.hama, self.aldumayr, self.palmyra, self.renemouawad]) - self.add_controlpoint(self.renemouawad, connected_to=[self.alqusair, self.basselAlAssad]) - self.add_controlpoint(self.hama, connected_to=[self.aleppo, self.alqusair, self.basselAlAssad]) - self.add_controlpoint(self.basselAlAssad, connected_to=[self.hama, self.hatay, self.renemouawad]) - self.add_controlpoint(self.palmyra, connected_to=[self.tabqa, self.alqusair]) - self.add_controlpoint(self.tabqa, connected_to=[self.palmyra, self.jirah]) - self.add_controlpoint(self.jirah, connected_to=[self.tabqa, self.aleppo]) - self.add_controlpoint(self.aleppo, connected_to=[self.hama, self.jirah, self.minakh]) - self.add_controlpoint(self.minakh, connected_to=[self.hatay, self.aleppo, self.incirlik]) - self.add_controlpoint(self.hatay, connected_to=[self.minakh, self.basselAlAssad]) - self.add_controlpoint(self.incirlik, connected_to=[self.minakh]) - - self.add_controlpoint(self.carrier) - self.add_controlpoint(self.lha) - - self.ramatDavid.captured = True - self.carrier.captured = True - self.lha.captured = True - - self.incirlik.captured_invert = True - self.carrier.captured_invert = True - self.lha.captured_invert = True - - diff --git a/theater/thechannel.py b/theater/thechannel.py deleted file mode 100644 index b37bbca3..00000000 --- a/theater/thechannel.py +++ /dev/null @@ -1,109 +0,0 @@ -from dcs.terrain import thechannel - -from .conflicttheater import * -from .landmap import * - - -class Dunkirk(ConflictTheater): - terrain = dcs.terrain.TheChannel() - overview_image = "thechannel.gif" - reference_points = {(thechannel.Abbeville_Drucat.position.x, thechannel.Abbeville_Drucat.position.y): (2400, 4100), - (thechannel.Detling.position.x, thechannel.Detling.position.y): (1100, 2000)} - landmap = load_landmap("resources\\channellandmap.p") - daytime_map = { - "dawn": (6, 8), - "day": (10, 17), - "dusk": (17, 18), - "night": (0, 5), - } - - def __init__(self): - super(Dunkirk, self).__init__() - - self.abeville = ControlPoint.from_airport(thechannel.Abbeville_Drucat, LAND, SIZE_SMALL, IMPORTANCE_LOW) - #self.detling = ControlPoint.from_airport(thechannel.Detling, LAND, SIZE_SMALL, IMPORTANCE_LOW) - - self.stomer = ControlPoint.from_airport(thechannel.Saint_Omer_Longuenesse, LAND, SIZE_SMALL, IMPORTANCE_LOW) - self.dunkirk = ControlPoint.from_airport(thechannel.Dunkirk_Mardyck, LAND, SIZE_SMALL, IMPORTANCE_LOW) - self.hawkinge = ControlPoint.from_airport(thechannel.Hawkinge, LAND, SIZE_SMALL, IMPORTANCE_LOW) - #self.highhalden = ControlPoint.from_airport(thechannel.High_Halden, LAND, SIZE_SMALL, IMPORTANCE_LOW) - self.lympne = ControlPoint.from_airport(thechannel.Lympne, LAND, SIZE_SMALL, IMPORTANCE_LOW) - self.manston = ControlPoint.from_airport(thechannel.Manston, LAND, SIZE_SMALL, IMPORTANCE_LOW) - self.merville = ControlPoint.from_airport(thechannel.Merville_Calonne, LAND, SIZE_SMALL, IMPORTANCE_LOW) - - - # England - self.add_controlpoint(self.hawkinge, connected_to=[self.lympne, self.manston]) - self.add_controlpoint(self.lympne, connected_to=[self.hawkinge]) - self.add_controlpoint(self.manston, connected_to=[self.hawkinge]) - - # France - self.add_controlpoint(self.dunkirk, connected_to=[self.stomer]) - self.add_controlpoint(self.stomer, connected_to=[self.dunkirk, self.merville, self.abeville]) - self.add_controlpoint(self.merville, connected_to=[self.stomer]) - self.add_controlpoint(self.abeville, connected_to=[self.stomer]) - - #self.detling.captured = True - self.hawkinge.captured = True - self.dunkirk.captured = True - #self.highhalden.captured = True - self.lympne.captured = True - self.manston.captured = True - - self.manston.captured_invert = True - self.dunkirk.captured_invert = True - self.stomer.captured_invert = True - self.merville.captured_invert = True - self.abeville.captured_invert = True - - -class BattleOfBritain(ConflictTheater): - terrain = dcs.terrain.TheChannel() - overview_image = "thechannel.gif" - reference_points = {(thechannel.Abbeville_Drucat.position.x, thechannel.Abbeville_Drucat.position.y): (2400, 4100), - (thechannel.Detling.position.x, thechannel.Detling.position.y): (1100, 2000)} - landmap = load_landmap("resources\\channellandmap.p") - daytime_map = { - "dawn": (6, 8), - "day": (10, 17), - "dusk": (17, 18), - "night": (0, 5), - } - - def __init__(self): - super(BattleOfBritain, self).__init__() - - self.abeville = ControlPoint.from_airport(thechannel.Abbeville_Drucat, LAND, SIZE_SMALL, IMPORTANCE_LOW) - #self.detling = ControlPoint.from_airport(thechannel.Detling, LAND, SIZE_SMALL, IMPORTANCE_LOW) - - self.stomer = ControlPoint.from_airport(thechannel.Saint_Omer_Longuenesse, LAND, SIZE_SMALL, IMPORTANCE_LOW) - self.dunkirk = ControlPoint.from_airport(thechannel.Dunkirk_Mardyck, LAND, SIZE_SMALL, IMPORTANCE_LOW) - self.hawkinge = ControlPoint.from_airport(thechannel.Hawkinge, LAND, SIZE_SMALL, IMPORTANCE_LOW) - self.highhalden = ControlPoint.from_airport(thechannel.High_Halden, LAND, SIZE_SMALL, IMPORTANCE_LOW) - self.lympne = ControlPoint.from_airport(thechannel.Lympne, LAND, SIZE_SMALL, IMPORTANCE_LOW) - self.manston = ControlPoint.from_airport(thechannel.Manston, LAND, SIZE_SMALL, IMPORTANCE_LOW) - self.merville = ControlPoint.from_airport(thechannel.Merville_Calonne, LAND, SIZE_SMALL, IMPORTANCE_LOW) - - # England - self.add_controlpoint(self.hawkinge, connected_to=[self.lympne, self.manston]) - self.add_controlpoint(self.lympne, connected_to=[self.hawkinge, self.highhalden]) - self.add_controlpoint(self.manston, connected_to=[self.hawkinge]) - self.add_controlpoint(self.highhalden, connected_to=[self.lympne]) - - # France - self.add_controlpoint(self.dunkirk, connected_to=[self.stomer]) - self.add_controlpoint(self.stomer, connected_to=[self.dunkirk, self.merville, self.abeville]) - self.add_controlpoint(self.merville, connected_to=[self.stomer]) - self.add_controlpoint(self.abeville, connected_to=[self.stomer]) - - #self.detling.captured = True - self.hawkinge.captured = True - #self.dunkirk.captured = True - self.highhalden.captured = True - self.lympne.captured = True - self.manston.captured = True - - self.dunkirk.captured_invert = True - self.stomer.captured_invert = True - self.merville.captured_invert = True - self.abeville.captured_invert = True