mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Merge remote-tracking branch 'upstream/develop'
into skynet-iads-plugin
This commit is contained in:
parent
33fa719e8d
commit
e0319a4047
14
.github/workflows/build.yml
vendored
14
.github/workflows/build.yml
vendored
@ -27,12 +27,24 @@ jobs:
|
|||||||
# For some reason the shiboken2.abi3.dll is not found properly, so I copy it instead
|
# For some reason the shiboken2.abi3.dll is not found properly, so I copy it instead
|
||||||
Copy-Item .\venv\Lib\site-packages\shiboken2\shiboken2.abi3.dll .\venv\Lib\site-packages\PySide2\ -Force
|
Copy-Item .\venv\Lib\site-packages\shiboken2\shiboken2.abi3.dll .\venv\Lib\site-packages\PySide2\ -Force
|
||||||
|
|
||||||
- name: Build binaries
|
- name: mypy game
|
||||||
run: |
|
run: |
|
||||||
./venv/scripts/activate
|
./venv/scripts/activate
|
||||||
mypy game
|
mypy game
|
||||||
|
|
||||||
|
- name: mypy gen
|
||||||
|
run: |
|
||||||
|
./venv/scripts/activate
|
||||||
mypy gen
|
mypy gen
|
||||||
|
|
||||||
|
- name: mypy theater
|
||||||
|
run: |
|
||||||
|
./venv/scripts/activate
|
||||||
mypy theater
|
mypy theater
|
||||||
|
|
||||||
|
- name: Build binaries
|
||||||
|
run: |
|
||||||
|
./venv/scripts/activate
|
||||||
$env:PYTHONPATH=".;./pydcs"
|
$env:PYTHONPATH=".;./pydcs"
|
||||||
pyinstaller pyinstaller.spec
|
pyinstaller pyinstaller.spec
|
||||||
|
|
||||||
|
|||||||
14
.github/workflows/release.yml
vendored
14
.github/workflows/release.yml
vendored
@ -29,12 +29,24 @@ jobs:
|
|||||||
# For some reason the shiboken2.abi3.dll is not found properly, so I copy it instead
|
# For some reason the shiboken2.abi3.dll is not found properly, so I copy it instead
|
||||||
Copy-Item .\venv\Lib\site-packages\shiboken2\shiboken2.abi3.dll .\venv\Lib\site-packages\PySide2\ -Force
|
Copy-Item .\venv\Lib\site-packages\shiboken2\shiboken2.abi3.dll .\venv\Lib\site-packages\PySide2\ -Force
|
||||||
|
|
||||||
- name: Build binaries
|
- name: mypy game
|
||||||
run: |
|
run: |
|
||||||
./venv/scripts/activate
|
./venv/scripts/activate
|
||||||
mypy game
|
mypy game
|
||||||
|
|
||||||
|
- name: mypy gen
|
||||||
|
run: |
|
||||||
|
./venv/scripts/activate
|
||||||
mypy gen
|
mypy gen
|
||||||
|
|
||||||
|
- name: mypy theater
|
||||||
|
run: |
|
||||||
|
./venv/scripts/activate
|
||||||
mypy theater
|
mypy theater
|
||||||
|
|
||||||
|
- name: Build binaries
|
||||||
|
run: |
|
||||||
|
./venv/scripts/activate
|
||||||
$env:PYTHONPATH=".;./pydcs"
|
$env:PYTHONPATH=".;./pydcs"
|
||||||
pyinstaller pyinstaller.spec
|
pyinstaller pyinstaller.spec
|
||||||
|
|
||||||
|
|||||||
1
.gitignore
vendored
1
.gitignore
vendored
@ -8,7 +8,6 @@ logs.txt
|
|||||||
dist/**
|
dist/**
|
||||||
a.py
|
a.py
|
||||||
resources/tools/a.miz
|
resources/tools/a.miz
|
||||||
tests/**
|
|
||||||
# User-specific stuff
|
# User-specific stuff
|
||||||
.idea/
|
.idea/
|
||||||
|
|
||||||
|
|||||||
173
game/db.py
173
game/db.py
@ -1,6 +1,6 @@
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
from typing import Any, Dict, List, Optional, Tuple, Type, Union
|
from typing import Dict, List, Optional, Tuple, Type, Union
|
||||||
|
|
||||||
from dcs.countries import country_dict
|
from dcs.countries import country_dict
|
||||||
from dcs.helicopters import (
|
from dcs.helicopters import (
|
||||||
@ -153,71 +153,9 @@ from dcs.vehicles import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
import pydcs_extensions.frenchpack.frenchpack as frenchpack
|
import pydcs_extensions.frenchpack.frenchpack as frenchpack
|
||||||
from game.factions.australia_2005 import Australia_2005
|
from game.factions.faction import Faction
|
||||||
from game.factions.bluefor_coldwar import BLUEFOR_COLDWAR
|
|
||||||
from game.factions.bluefor_coldwar_a4 import BLUEFOR_COLDWAR_A4
|
|
||||||
from game.factions.bluefor_coldwar_mods import BLUEFOR_COLDWAR_MODS
|
|
||||||
from game.factions.bluefor_modern import BLUEFOR_MODERN
|
|
||||||
from game.factions.canada_2005 import Canada_2005
|
|
||||||
from game.factions.china_2010 import China_2010
|
|
||||||
from game.factions.france_1995 import France_1995
|
|
||||||
from game.factions.france_2005 import France_2005
|
|
||||||
from game.factions.france_modded import France_2005_Modded
|
|
||||||
from game.factions.germany_1944 import Germany_1944
|
|
||||||
from game.factions.germany_1944_easy import Germany_1944_Easy
|
|
||||||
from game.factions.germany_1990 import Germany_1990
|
|
||||||
from game.factions.india_2010 import India_2010
|
|
||||||
from game.factions.insurgent import Insurgent
|
|
||||||
from game.factions.insurgent_modded import Insurgent_modded
|
|
||||||
from game.factions.iran_2015 import Iran_2015
|
|
||||||
from game.factions.israel_1948 import Israel_1948
|
|
||||||
from game.factions.israel_1973 import (
|
|
||||||
Israel_1973,
|
|
||||||
Israel_1973_NO_WW2_UNITS,
|
|
||||||
Israel_1982,
|
|
||||||
)
|
|
||||||
from game.factions.israel_2000 import Israel_2000
|
|
||||||
from game.factions.italy_1990 import Italy_1990
|
|
||||||
from game.factions.italy_1990_mb339 import Italy_1990_MB339
|
|
||||||
from game.factions.japan_2005 import Japan_2005
|
|
||||||
from game.factions.libya_2011 import Libya_2011
|
|
||||||
from game.factions.netherlands_1990 import Netherlands_1990
|
|
||||||
from game.factions.north_korea_2000 import NorthKorea_2000
|
|
||||||
from game.factions.pakistan_2015 import Pakistan_2015
|
|
||||||
from game.factions.private_miltary_companies import (
|
|
||||||
PMC_RUSSIAN,
|
|
||||||
PMC_WESTERN_A,
|
|
||||||
PMC_WESTERN_B,
|
|
||||||
)
|
|
||||||
from game.factions.russia_1955 import Russia_1955
|
|
||||||
from game.factions.russia_1965 import Russia_1965
|
|
||||||
from game.factions.russia_1975 import Russia_1975
|
|
||||||
from game.factions.russia_1990 import Russia_1990
|
|
||||||
from game.factions.russia_2010 import Russia_2010
|
|
||||||
from game.factions.russia_2020 import Russia_2020
|
|
||||||
from game.factions.spain_1990 import Spain_1990
|
|
||||||
from game.factions.sweden_1990 import Sweden_1990
|
|
||||||
from game.factions.syria import (
|
|
||||||
Arab_Armies_1948,
|
|
||||||
Syria_1967,
|
|
||||||
Syria_1967_WW2_Weapons,
|
|
||||||
Syria_1973,
|
|
||||||
Syria_1982,
|
|
||||||
Syria_2011,
|
|
||||||
)
|
|
||||||
from game.factions.turkey_2005 import Turkey_2005
|
|
||||||
from game.factions.uae_2005 import UAE_2005
|
|
||||||
from game.factions.uk_1944 import UK_1944
|
|
||||||
from game.factions.uk_1990 import UnitedKingdom_1990
|
|
||||||
from game.factions.ukraine_2010 import Ukraine_2010
|
|
||||||
from game.factions.us_aggressors import US_Aggressors
|
|
||||||
from game.factions.usa_1944 import ALLIES_1944, USA_1944
|
|
||||||
from game.factions.usa_1955 import USA_1955
|
|
||||||
from game.factions.usa_1960 import USA_1960
|
|
||||||
from game.factions.usa_1965 import USA_1965
|
|
||||||
from game.factions.usa_1990 import USA_1990
|
|
||||||
from game.factions.usa_2005 import USA_2005
|
|
||||||
# PATCH pydcs data with MODS
|
# PATCH pydcs data with MODS
|
||||||
|
from game.factions.faction_loader import FactionLoader
|
||||||
from pydcs_extensions.a4ec.a4ec import A_4E_C
|
from pydcs_extensions.a4ec.a4ec import A_4E_C
|
||||||
from pydcs_extensions.mb339.mb339 import MB_339PAN
|
from pydcs_extensions.mb339.mb339 import MB_339PAN
|
||||||
from pydcs_extensions.rafale.rafale import Rafale_A_S, Rafale_M
|
from pydcs_extensions.rafale.rafale import Rafale_A_S, Rafale_M
|
||||||
@ -973,99 +911,7 @@ CARRIER_TAKEOFF_BAN: List[Type[FlyingType]] = [
|
|||||||
Units separated by country.
|
Units separated by country.
|
||||||
country : DCS Country name
|
country : DCS Country name
|
||||||
"""
|
"""
|
||||||
FACTIONS: Dict[str, Dict[str, Any]] = {
|
FACTIONS: Dict[str, Faction] = FactionLoader.load_factions()
|
||||||
|
|
||||||
"Bluefor Modern": BLUEFOR_MODERN,
|
|
||||||
"Bluefor Cold War 1970s": BLUEFOR_COLDWAR,
|
|
||||||
"Bluefor Cold War (with A-4)": BLUEFOR_COLDWAR_A4,
|
|
||||||
"Bluefor Cold War (with A-4 and MB339)": BLUEFOR_COLDWAR_MODS,
|
|
||||||
|
|
||||||
"USA 1955 (WW2 Pack)": USA_1955,
|
|
||||||
"USA 1960": USA_1960,
|
|
||||||
"USA 1965": USA_1965,
|
|
||||||
"USA 1990": USA_1990,
|
|
||||||
"USA 2005": USA_2005,
|
|
||||||
"USA Aggressors 2005": US_Aggressors,
|
|
||||||
|
|
||||||
"Russia 1955": Russia_1955,
|
|
||||||
"Russia 1965": Russia_1965,
|
|
||||||
"Russia 1975": Russia_1975,
|
|
||||||
"Russia 1990": Russia_1990,
|
|
||||||
"Russia 2010": Russia_2010,
|
|
||||||
"Russia 2020 (Modded)": Russia_2020,
|
|
||||||
|
|
||||||
"France 1995": France_1995,
|
|
||||||
"France 2005": France_2005,
|
|
||||||
"France 2005 (Modded)": France_2005_Modded,
|
|
||||||
|
|
||||||
"Germany 1990": Germany_1990,
|
|
||||||
|
|
||||||
"Netherlands 1990": Netherlands_1990,
|
|
||||||
|
|
||||||
"United Kingdom 1990": UnitedKingdom_1990,
|
|
||||||
|
|
||||||
"Spain 1990": Spain_1990,
|
|
||||||
|
|
||||||
"Italy 1990": Italy_1990,
|
|
||||||
"Italy 1990 (With MB339)": Italy_1990_MB339,
|
|
||||||
|
|
||||||
"Israel 2000": Israel_2000,
|
|
||||||
"Israel 1982": Israel_1982,
|
|
||||||
"Israel 1973 (WW2 Pack)": Israel_1973,
|
|
||||||
"Israel 1973": Israel_1973_NO_WW2_UNITS,
|
|
||||||
"Israel 1948": Israel_1948,
|
|
||||||
|
|
||||||
"Arab Armies 1982": Syria_1982,
|
|
||||||
"Arab Armies 1973": Syria_1973,
|
|
||||||
"Arab Armies 1967 (WW2 Pack)": Syria_1967_WW2_Weapons,
|
|
||||||
"Arab Armies 1967": Syria_1967,
|
|
||||||
"Arab League 1948": Arab_Armies_1948,
|
|
||||||
|
|
||||||
"China 2010": China_2010,
|
|
||||||
|
|
||||||
"Sweden 1990": Sweden_1990,
|
|
||||||
|
|
||||||
"Australia 2005": Australia_2005,
|
|
||||||
|
|
||||||
"Canada 2005": Canada_2005,
|
|
||||||
|
|
||||||
"Japan 2005": Japan_2005,
|
|
||||||
|
|
||||||
"Turkey 2005": Turkey_2005,
|
|
||||||
|
|
||||||
"United Arab Emirates 2005": UAE_2005,
|
|
||||||
|
|
||||||
"Ukraine 2010": Ukraine_2010,
|
|
||||||
|
|
||||||
"India 2010": India_2010,
|
|
||||||
|
|
||||||
"Libya 2011": Libya_2011,
|
|
||||||
|
|
||||||
"Syria 2011": Syria_2011,
|
|
||||||
|
|
||||||
|
|
||||||
"Pakistan 2015": Pakistan_2015,
|
|
||||||
|
|
||||||
"Iran 2015": Iran_2015,
|
|
||||||
|
|
||||||
"North Korea 2000": NorthKorea_2000,
|
|
||||||
|
|
||||||
"Insurgent": Insurgent,
|
|
||||||
"Insurgent (Modded)": Insurgent_modded,
|
|
||||||
|
|
||||||
"PMC (American)": PMC_WESTERN_A,
|
|
||||||
"PMC (American) - MB339": PMC_WESTERN_B,
|
|
||||||
"PMC (Russian)": PMC_RUSSIAN,
|
|
||||||
|
|
||||||
"Allies 1944 (WW2 Pack)": USA_1944,
|
|
||||||
"USA 1944 (WW2 Pack)": ALLIES_1944,
|
|
||||||
"UK 1944 (WW2 Pack)": UK_1944,
|
|
||||||
|
|
||||||
"Germany 1944 (WW2 Pack)": Germany_1944,
|
|
||||||
"Germany 1944 Easy (WW2 Pack)": Germany_1944_Easy,
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
CARRIER_TYPE_BY_PLANE = {
|
CARRIER_TYPE_BY_PLANE = {
|
||||||
FA_18C_hornet: CVN_74_John_C__Stennis,
|
FA_18C_hornet: CVN_74_John_C__Stennis,
|
||||||
@ -1295,6 +1141,7 @@ CARRIER_CAPABLE = [
|
|||||||
AV8BNA,
|
AV8BNA,
|
||||||
Su_33,
|
Su_33,
|
||||||
A_4E_C,
|
A_4E_C,
|
||||||
|
Rafale_M,
|
||||||
|
|
||||||
UH_1H,
|
UH_1H,
|
||||||
Mi_8MT,
|
Mi_8MT,
|
||||||
@ -1358,6 +1205,7 @@ def upgrade_to_supercarrier(unit, name: str):
|
|||||||
else:
|
else:
|
||||||
return unit
|
return unit
|
||||||
|
|
||||||
|
|
||||||
def unit_task(unit: UnitType) -> Optional[Task]:
|
def unit_task(unit: UnitType) -> Optional[Task]:
|
||||||
for task, units in UNIT_BY_TASK.items():
|
for task, units in UNIT_BY_TASK.items():
|
||||||
if unit in units:
|
if unit in units:
|
||||||
@ -1369,8 +1217,10 @@ def unit_task(unit: UnitType) -> Optional[Task]:
|
|||||||
print(unit.name + " cause issue")
|
print(unit.name + " cause issue")
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
def find_unittype(for_task: Task, country_name: str) -> List[UnitType]:
|
def find_unittype(for_task: Task, country_name: str) -> List[UnitType]:
|
||||||
return [x for x in UNIT_BY_TASK[for_task] if x in FACTIONS[country_name]["units"]]
|
return [x for x in UNIT_BY_TASK[for_task] if x in FACTIONS[country_name].units]
|
||||||
|
|
||||||
|
|
||||||
def find_infantry(country_name: str) -> List[UnitType]:
|
def find_infantry(country_name: str) -> List[UnitType]:
|
||||||
inf = [
|
inf = [
|
||||||
@ -1387,14 +1237,17 @@ def find_infantry(country_name: str) -> List[UnitType]:
|
|||||||
Infantry.Infantry_M1_Garand, Infantry.Infantry_M1_Garand, Infantry.Infantry_M1_Garand,
|
Infantry.Infantry_M1_Garand, Infantry.Infantry_M1_Garand, Infantry.Infantry_M1_Garand,
|
||||||
Infantry.Infantry_Soldier_Insurgents, Infantry.Infantry_Soldier_Insurgents, Infantry.Infantry_Soldier_Insurgents
|
Infantry.Infantry_Soldier_Insurgents, Infantry.Infantry_Soldier_Insurgents, Infantry.Infantry_Soldier_Insurgents
|
||||||
]
|
]
|
||||||
return [x for x in inf if x in FACTIONS[country_name]["units"]]
|
return [x for x in inf if x in FACTIONS[country_name].infantry_units]
|
||||||
|
|
||||||
|
|
||||||
def unit_type_name(unit_type) -> str:
|
def unit_type_name(unit_type) -> str:
|
||||||
return unit_type.id and unit_type.id or unit_type.name
|
return unit_type.id and unit_type.id or unit_type.name
|
||||||
|
|
||||||
|
|
||||||
def unit_type_name_2(unit_type) -> str:
|
def unit_type_name_2(unit_type) -> str:
|
||||||
return unit_type.name and unit_type.name or unit_type.id
|
return unit_type.name and unit_type.name or unit_type.id
|
||||||
|
|
||||||
|
|
||||||
def unit_type_from_name(name: str) -> Optional[UnitType]:
|
def unit_type_from_name(name: str) -> Optional[UnitType]:
|
||||||
if name in vehicle_map:
|
if name in vehicle_map:
|
||||||
return vehicle_map[name]
|
return vehicle_map[name]
|
||||||
|
|||||||
@ -195,29 +195,19 @@ class Event:
|
|||||||
if cp.id == id:
|
if cp.id == id:
|
||||||
|
|
||||||
if cp.captured and new_owner_coalition != coalition:
|
if cp.captured and new_owner_coalition != coalition:
|
||||||
cp.captured = False
|
for_player = False
|
||||||
info = Information(cp.name + " lost !", "The ennemy took control of " + cp.name + "\nShame on us !", self.game.turn)
|
info = Information(cp.name + " lost !", "The ennemy took control of " + cp.name + "\nShame on us !", self.game.turn)
|
||||||
self.game.informations.append(info)
|
self.game.informations.append(info)
|
||||||
pname = self.game.enemy_name
|
|
||||||
captured_cps.append(cp)
|
captured_cps.append(cp)
|
||||||
elif not(cp.captured) and new_owner_coalition == coalition:
|
elif not(cp.captured) and new_owner_coalition == coalition:
|
||||||
cp.captured = True
|
for_player = True
|
||||||
info = Information(cp.name + " captured !", "We took control of " + cp.name + "! Great job !", self.game.turn)
|
info = Information(cp.name + " captured !", "We took control of " + cp.name + "! Great job !", self.game.turn)
|
||||||
self.game.informations.append(info)
|
self.game.informations.append(info)
|
||||||
pname = self.game.player_name
|
|
||||||
captured_cps.append(cp)
|
captured_cps.append(cp)
|
||||||
else:
|
else:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
cp.base.aircraft = {}
|
cp.capture(self.game, for_player)
|
||||||
cp.base.armor = {}
|
|
||||||
|
|
||||||
airbase_def_id = 0
|
|
||||||
for g in cp.ground_objects:
|
|
||||||
g.groups = []
|
|
||||||
if g.airbase_group and pname != "":
|
|
||||||
generate_airbase_defense_group(airbase_def_id, g, pname, self.game, cp)
|
|
||||||
airbase_def_id = airbase_def_id + 1
|
|
||||||
|
|
||||||
for cp in captured_cps:
|
for cp in captured_cps:
|
||||||
logging.info("Will run redeploy for " + cp.name)
|
logging.info("Will run redeploy for " + cp.name)
|
||||||
|
|||||||
@ -1,70 +0,0 @@
|
|||||||
from dcs.helicopters import (
|
|
||||||
AH_1W,
|
|
||||||
UH_1H,
|
|
||||||
)
|
|
||||||
from dcs.planes import (
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
FA_18C_hornet,
|
|
||||||
KC130,
|
|
||||||
KC_135,
|
|
||||||
)
|
|
||||||
from dcs.ships import (
|
|
||||||
Armed_speedboat,
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
Ticonderoga_class,
|
|
||||||
USS_Arleigh_Burke_IIa,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
Australia_2005 = {
|
|
||||||
"country": "Australia",
|
|
||||||
"side": "blue",
|
|
||||||
"units": [
|
|
||||||
FA_18C_hornet,
|
|
||||||
|
|
||||||
KC_135,
|
|
||||||
KC130,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
|
|
||||||
Armor.MBT_M1A2_Abrams,
|
|
||||||
Armor.MBT_Leopard_1A3,
|
|
||||||
Armor.APC_M113,
|
|
||||||
Armor.IFV_LAV_25,
|
|
||||||
Armor.IFV_MCV_80,
|
|
||||||
|
|
||||||
UH_1H,
|
|
||||||
AH_1W, # Standing as EC Tiger
|
|
||||||
|
|
||||||
Unarmed.Transport_M818,
|
|
||||||
Infantry.Infantry_M4,
|
|
||||||
Infantry.Soldier_M249,
|
|
||||||
|
|
||||||
AirDefence.SAM_Hawk_PCP,
|
|
||||||
AirDefence.Rapier_FSA_Launcher,
|
|
||||||
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
Armed_speedboat,
|
|
||||||
], "shorad": [
|
|
||||||
AirDefence.Rapier_FSA_Launcher,
|
|
||||||
], "helicopter_carrier": [
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
], "destroyer": [
|
|
||||||
USS_Arleigh_Burke_IIa,
|
|
||||||
], "cruiser": [
|
|
||||||
Ticonderoga_class,
|
|
||||||
], "lhanames": [
|
|
||||||
"HMAS Canberra",
|
|
||||||
"HMAS Adelaide"
|
|
||||||
], "boat":[
|
|
||||||
"ArleighBurkeGroupGenerator"
|
|
||||||
], "has_jtac": True
|
|
||||||
}
|
|
||||||
@ -1,84 +0,0 @@
|
|||||||
from dcs.helicopters import (
|
|
||||||
SA342L,
|
|
||||||
SA342M,
|
|
||||||
UH_1H,
|
|
||||||
)
|
|
||||||
from dcs.planes import (
|
|
||||||
AJS37,
|
|
||||||
A_10A,
|
|
||||||
B_52H,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
F_14B,
|
|
||||||
F_4E,
|
|
||||||
F_5E_3,
|
|
||||||
KC130,
|
|
||||||
KC_135,
|
|
||||||
)
|
|
||||||
from dcs.ships import (
|
|
||||||
Armed_speedboat,
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
BLUEFOR_COLDWAR = {
|
|
||||||
"country": "Combined Joint Task Forces Blue",
|
|
||||||
"side": "blue",
|
|
||||||
"units": [
|
|
||||||
|
|
||||||
F_14B,
|
|
||||||
F_4E,
|
|
||||||
F_5E_3,
|
|
||||||
A_10A,
|
|
||||||
AJS37,
|
|
||||||
|
|
||||||
B_52H,
|
|
||||||
|
|
||||||
KC_135,
|
|
||||||
KC130,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
|
|
||||||
UH_1H,
|
|
||||||
SA342M,
|
|
||||||
SA342L,
|
|
||||||
|
|
||||||
Armor.MBT_M60A3_Patton,
|
|
||||||
Armor.APC_M113,
|
|
||||||
|
|
||||||
Unarmed.Transport_M818,
|
|
||||||
Infantry.Infantry_M4,
|
|
||||||
Infantry.Soldier_M249,
|
|
||||||
|
|
||||||
AirDefence.SAM_Hawk_PCP,
|
|
||||||
AirDefence.SAM_Chaparral_M48,
|
|
||||||
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
Armed_speedboat,
|
|
||||||
], "shorad": [
|
|
||||||
AirDefence.AAA_Vulcan_M163,
|
|
||||||
], "aircraft_carrier": [
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
], "helicopter_carrier": [
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
], "carrier_names": [
|
|
||||||
"CVN-71 Theodore Roosevelt",
|
|
||||||
"CVN-72 Abraham Lincoln",
|
|
||||||
"CVN-73 George Washington",
|
|
||||||
"CVN-74 John C. Stennis",
|
|
||||||
], "lhanames": [
|
|
||||||
"LHA-1 Tarawa",
|
|
||||||
"LHA-2 Saipan",
|
|
||||||
"LHA-3 Belleau Wood",
|
|
||||||
"LHA-4 Nassau",
|
|
||||||
"LHA-5 Peleliu"
|
|
||||||
], "boat": [
|
|
||||||
], "has_jtac": True
|
|
||||||
}
|
|
||||||
@ -1,92 +0,0 @@
|
|||||||
from dcs.helicopters import (
|
|
||||||
SA342L,
|
|
||||||
SA342M,
|
|
||||||
UH_1H,
|
|
||||||
)
|
|
||||||
from dcs.planes import (
|
|
||||||
AJS37,
|
|
||||||
A_10A,
|
|
||||||
B_52H,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
F_14B,
|
|
||||||
F_4E,
|
|
||||||
F_5E_3,
|
|
||||||
KC130,
|
|
||||||
KC_135,
|
|
||||||
)
|
|
||||||
from dcs.ships import (
|
|
||||||
Armed_speedboat,
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
Ticonderoga_class,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
from pydcs_extensions.a4ec.a4ec import A_4E_C
|
|
||||||
|
|
||||||
BLUEFOR_COLDWAR_A4 = {
|
|
||||||
"country": "Combined Joint Task Forces Blue",
|
|
||||||
"side": "blue",
|
|
||||||
"units": [
|
|
||||||
|
|
||||||
F_14B,
|
|
||||||
F_4E,
|
|
||||||
F_5E_3,
|
|
||||||
A_10A,
|
|
||||||
AJS37,
|
|
||||||
A_4E_C,
|
|
||||||
|
|
||||||
B_52H,
|
|
||||||
|
|
||||||
KC_135,
|
|
||||||
KC130,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
|
|
||||||
UH_1H,
|
|
||||||
SA342M,
|
|
||||||
SA342L,
|
|
||||||
|
|
||||||
Armor.MBT_M60A3_Patton,
|
|
||||||
Armor.APC_M113,
|
|
||||||
|
|
||||||
Unarmed.Transport_M818,
|
|
||||||
Infantry.Infantry_M4,
|
|
||||||
Infantry.Soldier_M249,
|
|
||||||
|
|
||||||
AirDefence.SAM_Hawk_PCP,
|
|
||||||
AirDefence.SAM_Chaparral_M48,
|
|
||||||
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
Armed_speedboat,
|
|
||||||
], "shorad": [
|
|
||||||
AirDefence.AAA_Vulcan_M163,
|
|
||||||
], "aircraft_carrier": [
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
], "helicopter_carrier": [
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
], "cruiser": [
|
|
||||||
Ticonderoga_class,
|
|
||||||
], "carrier_names": [
|
|
||||||
"CVN-71 Theodore Roosevelt",
|
|
||||||
"CVN-72 Abraham Lincoln",
|
|
||||||
"CVN-73 George Washington",
|
|
||||||
"CVN-74 John C. Stennis",
|
|
||||||
], "lhanames": [
|
|
||||||
"LHA-1 Tarawa",
|
|
||||||
"LHA-2 Saipan",
|
|
||||||
"LHA-3 Belleau Wood",
|
|
||||||
"LHA-4 Nassau",
|
|
||||||
"LHA-5 Peleliu"
|
|
||||||
], "boat": [
|
|
||||||
], "requirements": {
|
|
||||||
"Community A-4E": "https://heclak.github.io/community-a4e-c/",
|
|
||||||
}, "has_jtac": True
|
|
||||||
}
|
|
||||||
@ -1,95 +0,0 @@
|
|||||||
from dcs.helicopters import (
|
|
||||||
SA342L,
|
|
||||||
SA342M,
|
|
||||||
UH_1H,
|
|
||||||
)
|
|
||||||
from dcs.planes import (
|
|
||||||
AJS37,
|
|
||||||
A_10A,
|
|
||||||
B_52H,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
F_14B,
|
|
||||||
F_4E,
|
|
||||||
F_5E_3,
|
|
||||||
KC130,
|
|
||||||
KC_135,
|
|
||||||
)
|
|
||||||
from dcs.ships import (
|
|
||||||
Armed_speedboat,
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
Ticonderoga_class,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
from pydcs_extensions.a4ec.a4ec import A_4E_C
|
|
||||||
from pydcs_extensions.mb339.mb339 import MB_339PAN
|
|
||||||
|
|
||||||
BLUEFOR_COLDWAR_MODS = {
|
|
||||||
"country": "USA",
|
|
||||||
"side": "blue",
|
|
||||||
"units": [
|
|
||||||
|
|
||||||
F_14B,
|
|
||||||
F_4E,
|
|
||||||
F_5E_3,
|
|
||||||
A_10A,
|
|
||||||
AJS37,
|
|
||||||
A_4E_C,
|
|
||||||
MB_339PAN,
|
|
||||||
|
|
||||||
B_52H,
|
|
||||||
|
|
||||||
KC_135,
|
|
||||||
KC130,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
|
|
||||||
UH_1H,
|
|
||||||
SA342M,
|
|
||||||
SA342L,
|
|
||||||
|
|
||||||
Armor.MBT_M60A3_Patton,
|
|
||||||
Armor.APC_M113,
|
|
||||||
|
|
||||||
Unarmed.Transport_M818,
|
|
||||||
Infantry.Infantry_M4,
|
|
||||||
Infantry.Soldier_M249,
|
|
||||||
|
|
||||||
AirDefence.SAM_Hawk_PCP,
|
|
||||||
AirDefence.SAM_Chaparral_M48,
|
|
||||||
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
Armed_speedboat,
|
|
||||||
], "shorad": [
|
|
||||||
AirDefence.AAA_Vulcan_M163,
|
|
||||||
], "aircraft_carrier": [
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
], "helicopter_carrier": [
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
], "cruiser": [
|
|
||||||
Ticonderoga_class,
|
|
||||||
], "carrier_names": [
|
|
||||||
"CVN-71 Theodore Roosevelt",
|
|
||||||
"CVN-72 Abraham Lincoln",
|
|
||||||
"CVN-73 George Washington",
|
|
||||||
"CVN-74 John C. Stennis",
|
|
||||||
], "lhanames": [
|
|
||||||
"LHA-1 Tarawa",
|
|
||||||
"LHA-2 Saipan",
|
|
||||||
"LHA-3 Belleau Wood",
|
|
||||||
"LHA-4 Nassau",
|
|
||||||
"LHA-5 Peleliu"
|
|
||||||
], "boat": [
|
|
||||||
], "requirements": {
|
|
||||||
"MB-339A": "http://www.freccetricolorivirtuali.net/",
|
|
||||||
"Community A-4E": "https://heclak.github.io/community-a4e-c/",
|
|
||||||
}, "has_jtac": True
|
|
||||||
}
|
|
||||||
@ -1,128 +0,0 @@
|
|||||||
from dcs.helicopters import (
|
|
||||||
AH_64D,
|
|
||||||
Ka_50,
|
|
||||||
SA342L,
|
|
||||||
SA342M,
|
|
||||||
UH_1H,
|
|
||||||
)
|
|
||||||
from dcs.planes import (
|
|
||||||
AJS37,
|
|
||||||
AV8BNA,
|
|
||||||
A_10A,
|
|
||||||
A_10C,
|
|
||||||
A_10C_2,
|
|
||||||
B_1B,
|
|
||||||
B_52H,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
FA_18C_hornet,
|
|
||||||
F_14B,
|
|
||||||
F_15C,
|
|
||||||
F_15E,
|
|
||||||
F_16C_50,
|
|
||||||
F_5E_3,
|
|
||||||
JF_17,
|
|
||||||
KC130,
|
|
||||||
KC_135,
|
|
||||||
M_2000C,
|
|
||||||
Su_25T,
|
|
||||||
Su_27,
|
|
||||||
)
|
|
||||||
from dcs.ships import (
|
|
||||||
Armed_speedboat,
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
Oliver_Hazzard_Perry_class,
|
|
||||||
Ticonderoga_class,
|
|
||||||
USS_Arleigh_Burke_IIa,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Artillery,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
BLUEFOR_MODERN = {
|
|
||||||
"country": "Combined Joint Task Forces Blue",
|
|
||||||
"side": "blue",
|
|
||||||
"units": [
|
|
||||||
|
|
||||||
F_15C,
|
|
||||||
F_15E,
|
|
||||||
F_14B,
|
|
||||||
FA_18C_hornet,
|
|
||||||
F_16C_50,
|
|
||||||
JF_17,
|
|
||||||
M_2000C,
|
|
||||||
F_5E_3,
|
|
||||||
Su_27,
|
|
||||||
|
|
||||||
Su_25T,
|
|
||||||
A_10A,
|
|
||||||
A_10C,
|
|
||||||
A_10C_2,
|
|
||||||
AV8BNA,
|
|
||||||
AJS37,
|
|
||||||
|
|
||||||
B_1B,
|
|
||||||
B_52H,
|
|
||||||
|
|
||||||
KC_135,
|
|
||||||
KC130,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
|
|
||||||
UH_1H,
|
|
||||||
AH_64D,
|
|
||||||
Ka_50,
|
|
||||||
SA342M,
|
|
||||||
SA342L,
|
|
||||||
|
|
||||||
Armor.MBT_M1A2_Abrams,
|
|
||||||
Armor.MBT_Leopard_2,
|
|
||||||
Armor.ATGM_M1134_Stryker,
|
|
||||||
Armor.IFV_M2A2_Bradley,
|
|
||||||
Armor.IFV_Marder,
|
|
||||||
Armor.APC_M1043_HMMWV_Armament,
|
|
||||||
|
|
||||||
Artillery.MLRS_M270,
|
|
||||||
Artillery.SPH_M109_Paladin,
|
|
||||||
|
|
||||||
Unarmed.Transport_M818,
|
|
||||||
Infantry.Infantry_M4,
|
|
||||||
Infantry.Soldier_M249,
|
|
||||||
|
|
||||||
AirDefence.SAM_Hawk_PCP,
|
|
||||||
AirDefence.SAM_Patriot_EPP_III,
|
|
||||||
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
Armed_speedboat,
|
|
||||||
], "shorad": [
|
|
||||||
AirDefence.SAM_Avenger_M1097,
|
|
||||||
], "aircraft_carrier": [
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
], "helicopter_carrier": [
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
], "destroyer": [
|
|
||||||
Oliver_Hazzard_Perry_class,
|
|
||||||
USS_Arleigh_Burke_IIa,
|
|
||||||
], "cruiser": [
|
|
||||||
Ticonderoga_class,
|
|
||||||
], "carrier_names": [
|
|
||||||
"CVN-71 Theodore Roosevelt",
|
|
||||||
"CVN-72 Abraham Lincoln",
|
|
||||||
"CVN-73 George Washington",
|
|
||||||
"CVN-74 John C. Stennis",
|
|
||||||
], "lhanames": [
|
|
||||||
"LHA-1 Tarawa",
|
|
||||||
"LHA-2 Saipan",
|
|
||||||
"LHA-3 Belleau Wood",
|
|
||||||
"LHA-4 Nassau",
|
|
||||||
"LHA-5 Peleliu"
|
|
||||||
], "boat":[
|
|
||||||
"ArleighBurkeGroupGenerator", "OliverHazardPerryGroupGenerator"
|
|
||||||
], "has_jtac": True
|
|
||||||
}
|
|
||||||
@ -1,62 +0,0 @@
|
|||||||
from dcs.helicopters import (
|
|
||||||
UH_1H,
|
|
||||||
)
|
|
||||||
from dcs.planes import (
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
FA_18C_hornet,
|
|
||||||
KC130,
|
|
||||||
KC_135,
|
|
||||||
)
|
|
||||||
from dcs.ships import (
|
|
||||||
Armed_speedboat,
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
Ticonderoga_class,
|
|
||||||
USS_Arleigh_Burke_IIa,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
Canada_2005 = {
|
|
||||||
"country": "Canada",
|
|
||||||
"side": "blue",
|
|
||||||
"units": [
|
|
||||||
FA_18C_hornet,
|
|
||||||
|
|
||||||
KC_135,
|
|
||||||
KC130,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
|
|
||||||
Armor.MBT_Leopard_1A3,
|
|
||||||
Armor.MBT_Leopard_2,
|
|
||||||
Armor.IFV_LAV_25,
|
|
||||||
Armor.APC_M113,
|
|
||||||
Armor.IFV_MCV_80,
|
|
||||||
|
|
||||||
UH_1H,
|
|
||||||
|
|
||||||
Unarmed.Transport_M818,
|
|
||||||
Infantry.Infantry_M4,
|
|
||||||
Infantry.Soldier_M249,
|
|
||||||
|
|
||||||
AirDefence.SAM_Avenger_M1097,
|
|
||||||
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
Armed_speedboat,
|
|
||||||
], "shorad": [
|
|
||||||
AirDefence.SAM_Avenger_M1097,
|
|
||||||
], "destroyer": [
|
|
||||||
USS_Arleigh_Burke_IIa,
|
|
||||||
], "cruiser": [
|
|
||||||
Ticonderoga_class,
|
|
||||||
], "boat":[
|
|
||||||
"ArleighBurkeGroupGenerator"
|
|
||||||
], "has_jtac": True
|
|
||||||
}
|
|
||||||
@ -1,111 +0,0 @@
|
|||||||
from dcs.helicopters import (
|
|
||||||
Mi_28N,
|
|
||||||
Mi_8MT,
|
|
||||||
)
|
|
||||||
from dcs.planes import (
|
|
||||||
An_26B,
|
|
||||||
An_30M,
|
|
||||||
IL_76MD,
|
|
||||||
IL_78M,
|
|
||||||
JF_17,
|
|
||||||
J_11A,
|
|
||||||
KJ_2000,
|
|
||||||
MiG_21Bis,
|
|
||||||
Su_30,
|
|
||||||
Su_33,
|
|
||||||
WingLoong_I,
|
|
||||||
Yak_40,
|
|
||||||
)
|
|
||||||
from dcs.ships import (
|
|
||||||
Bulk_cargo_ship_Yakushev,
|
|
||||||
CV_1143_5_Admiral_Kuznetsov,
|
|
||||||
Dry_cargo_ship_Ivanov,
|
|
||||||
Tanker_Elnya_160,
|
|
||||||
Type_052B_Destroyer,
|
|
||||||
Type_052C_Destroyer,
|
|
||||||
Type_054A_Frigate,
|
|
||||||
Type_071_Amphibious_Transport_Dock,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Artillery,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
China_2010 = {
|
|
||||||
"country": "China",
|
|
||||||
"side": "red",
|
|
||||||
"units": [
|
|
||||||
|
|
||||||
MiG_21Bis, # Standing as J-7
|
|
||||||
Su_30,
|
|
||||||
Su_33,
|
|
||||||
J_11A,
|
|
||||||
JF_17,
|
|
||||||
|
|
||||||
IL_76MD,
|
|
||||||
IL_78M,
|
|
||||||
An_26B,
|
|
||||||
An_30M,
|
|
||||||
Yak_40,
|
|
||||||
|
|
||||||
KJ_2000,
|
|
||||||
|
|
||||||
Mi_8MT,
|
|
||||||
Mi_28N,
|
|
||||||
|
|
||||||
AirDefence.SAM_SA_10_S_300PS_LN_5P85C, # Standing as HQ-9+
|
|
||||||
AirDefence.SAM_SA_6_Kub_LN_2P25,
|
|
||||||
AirDefence.HQ_7_Self_Propelled_LN,
|
|
||||||
|
|
||||||
Armor.ZTZ_96B,
|
|
||||||
Armor.MBT_T_55,
|
|
||||||
Armor.ZBD_04A,
|
|
||||||
Armor.IFV_BMP_1,
|
|
||||||
Artillery.MLRS_9A52_Smerch,
|
|
||||||
Artillery.SPH_2S9_Nona,
|
|
||||||
|
|
||||||
Unarmed.Transport_Ural_375,
|
|
||||||
Unarmed.Transport_UAZ_469,
|
|
||||||
|
|
||||||
Infantry.Paratrooper_AKS,
|
|
||||||
Infantry.Infantry_Soldier_Rus,
|
|
||||||
Infantry.Paratrooper_RPG_16,
|
|
||||||
|
|
||||||
CV_1143_5_Admiral_Kuznetsov,
|
|
||||||
Bulk_cargo_ship_Yakushev,
|
|
||||||
Dry_cargo_ship_Ivanov,
|
|
||||||
Tanker_Elnya_160
|
|
||||||
],
|
|
||||||
"shorad":[
|
|
||||||
AirDefence.SPAAA_ZSU_23_4_Shilka,
|
|
||||||
AirDefence.Rapier_FSA_Launcher, # Standing as PL-9C Shorad
|
|
||||||
AirDefence.HQ_7_Self_Propelled_LN
|
|
||||||
], "aircraft_carrier": [
|
|
||||||
CV_1143_5_Admiral_Kuznetsov,
|
|
||||||
], "destroyer": [
|
|
||||||
Type_052B_Destroyer,
|
|
||||||
Type_052C_Destroyer
|
|
||||||
], "cruiser": [
|
|
||||||
Type_054A_Frigate,
|
|
||||||
], "helicopter_carrier": [
|
|
||||||
Type_071_Amphibious_Transport_Dock,
|
|
||||||
], "lhanames": [
|
|
||||||
"Kunlun Shan",
|
|
||||||
"Jinggang Shan",
|
|
||||||
"Changbai Shan",
|
|
||||||
"Yimeng Shan",
|
|
||||||
"Longhu Shan",
|
|
||||||
"Wuzhi Shan",
|
|
||||||
"Wudang Shan"
|
|
||||||
], "carrier_names": [
|
|
||||||
"001 Liaoning",
|
|
||||||
"002 Shandong",
|
|
||||||
], "boat":[
|
|
||||||
"Type54GroupGenerator"
|
|
||||||
],
|
|
||||||
"has_jtac": True,
|
|
||||||
"jtac_unit": WingLoong_I
|
|
||||||
}
|
|
||||||
252
game/factions/faction.py
Normal file
252
game/factions/faction.py
Normal file
@ -0,0 +1,252 @@
|
|||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
import logging
|
||||||
|
from dataclasses import dataclass, field
|
||||||
|
from typing import Optional, Dict, Type, List, Any, cast
|
||||||
|
|
||||||
|
import dcs
|
||||||
|
from dcs.countries import country_dict
|
||||||
|
from dcs.planes import plane_map
|
||||||
|
from dcs.unittype import FlyingType, ShipType, VehicleType, UnitType
|
||||||
|
from dcs.vehicles import Armor, Unarmed, Infantry, Artillery, AirDefence
|
||||||
|
|
||||||
|
from game.data.building_data import WW2_ALLIES_BUILDINGS, DEFAULT_AVAILABLE_BUILDINGS, WW2_GERMANY_BUILDINGS
|
||||||
|
from game.data.doctrine import Doctrine, MODERN_DOCTRINE, COLDWAR_DOCTRINE, WWII_DOCTRINE
|
||||||
|
from pydcs_extensions.mod_units import MODDED_VEHICLES, MODDED_AIRPLANES
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class Faction:
|
||||||
|
|
||||||
|
# Country used by this faction
|
||||||
|
country: str = field(default="")
|
||||||
|
|
||||||
|
# Nice name of the faction
|
||||||
|
name: str = field(default="")
|
||||||
|
|
||||||
|
# List of faction file authors
|
||||||
|
authors: str = field(default="")
|
||||||
|
|
||||||
|
# A description of the faction
|
||||||
|
description: str = field(default="")
|
||||||
|
|
||||||
|
# Available aircraft
|
||||||
|
aircrafts: List[UnitType] = field(default_factory=list)
|
||||||
|
|
||||||
|
# Available awacs aircraft
|
||||||
|
awacs: List[UnitType] = field(default_factory=list)
|
||||||
|
|
||||||
|
# Available tanker aircraft
|
||||||
|
tankers: List[UnitType] = field(default_factory=list)
|
||||||
|
|
||||||
|
# Available frontline units
|
||||||
|
frontline_units: List[VehicleType] = field(default_factory=list)
|
||||||
|
|
||||||
|
# Available artillery units
|
||||||
|
artillery_units: List[VehicleType] = field(default_factory=list)
|
||||||
|
|
||||||
|
# Infantry units used
|
||||||
|
infantry_units: List[VehicleType] = field(default_factory=list)
|
||||||
|
|
||||||
|
# Logistics units used
|
||||||
|
logistics_units: List[VehicleType] = field(default_factory=list)
|
||||||
|
|
||||||
|
# List of units that can be deployed as SHORAD
|
||||||
|
shorads: List[str] = field(default_factory=list)
|
||||||
|
|
||||||
|
# Possible SAMS site generators for this faction
|
||||||
|
sams: List[str] = field(default_factory=list)
|
||||||
|
|
||||||
|
# Possible Missile site generators for this faction
|
||||||
|
missiles: List[str] = field(default_factory=list)
|
||||||
|
|
||||||
|
# Required mods or asset packs
|
||||||
|
requirements: Dict[str, str] = field(default_factory=dict)
|
||||||
|
|
||||||
|
# possible aircraft carrier units
|
||||||
|
aircraft_carrier: List[UnitType] = field(default_factory=list)
|
||||||
|
|
||||||
|
# possible helicopter carrier units
|
||||||
|
helicopter_carrier: List[UnitType] = field(default_factory=list)
|
||||||
|
|
||||||
|
# Possible carrier names
|
||||||
|
carrier_names: List[str] = field(default_factory=list)
|
||||||
|
|
||||||
|
# Possible helicopter carrier names
|
||||||
|
helicopter_carrier_names: List[str] = field(default_factory=list)
|
||||||
|
|
||||||
|
# Navy group generators
|
||||||
|
navy_generators: List[str] = field(default_factory=list)
|
||||||
|
|
||||||
|
# Available destroyers
|
||||||
|
destroyers: List[str] = field(default_factory=list)
|
||||||
|
|
||||||
|
# Available cruisers
|
||||||
|
cruisers: List[str] = field(default_factory=list)
|
||||||
|
|
||||||
|
# How many navy group should we try to generate per CP on startup for this faction
|
||||||
|
navy_group_count: int = field(default=1)
|
||||||
|
|
||||||
|
# How many missiles group should we try to generate per CP on startup for this faction
|
||||||
|
missiles_group_count: int = field(default=1)
|
||||||
|
|
||||||
|
# Whether this faction has JTAC access
|
||||||
|
has_jtac: bool = field(default=False)
|
||||||
|
|
||||||
|
# Unit to use as JTAC for this faction
|
||||||
|
jtac_unit: Optional[FlyingType] = field(default=None)
|
||||||
|
|
||||||
|
# doctrine
|
||||||
|
doctrine: Doctrine = field(default=MODERN_DOCTRINE)
|
||||||
|
|
||||||
|
# List of available buildings for this faction
|
||||||
|
building_set: List[str] = field(default_factory=list)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def from_json(cls: Type[Faction], json: Dict[str, Any]) -> Faction:
|
||||||
|
|
||||||
|
faction = Faction()
|
||||||
|
|
||||||
|
faction.country = json.get("country", "/")
|
||||||
|
if faction.country not in [c.name for c in country_dict.values()]:
|
||||||
|
raise AssertionError("Faction's country (\"{}\") is not a valid DCS country ID".format(faction.country))
|
||||||
|
|
||||||
|
faction.name = json.get("name", "")
|
||||||
|
if not faction.name:
|
||||||
|
raise AssertionError("Faction has no valid name")
|
||||||
|
|
||||||
|
faction.authors = json.get("authors", "")
|
||||||
|
faction.description = json.get("description", "")
|
||||||
|
|
||||||
|
faction.aircrafts = load_all_aircraft(json.get("aircrafts", []))
|
||||||
|
faction.awacs = load_all_aircraft(json.get("awacs", []))
|
||||||
|
faction.tankers = load_all_aircraft(json.get("tankers", []))
|
||||||
|
|
||||||
|
faction.frontline_units = load_all_vehicles(
|
||||||
|
json.get("frontline_units", []))
|
||||||
|
faction.artillery_units = load_all_vehicles(
|
||||||
|
json.get("artillery_units", []))
|
||||||
|
faction.infantry_units = load_all_vehicles(
|
||||||
|
json.get("infantry_units", []))
|
||||||
|
faction.logistics_units = load_all_vehicles(
|
||||||
|
json.get("logistics_units", []))
|
||||||
|
|
||||||
|
faction.sams = json.get("sams", [])
|
||||||
|
faction.shorads = json.get("shorads", [])
|
||||||
|
faction.missiles = json.get("missiles", [])
|
||||||
|
faction.requirements = json.get("requirements", {})
|
||||||
|
|
||||||
|
faction.carrier_names = json.get("carrier_names", [])
|
||||||
|
faction.helicopter_carrier_names = json.get(
|
||||||
|
"helicopter_carrier_names", [])
|
||||||
|
faction.navy_generators = json.get("navy_generators", [])
|
||||||
|
faction.aircraft_carrier = load_all_ships(
|
||||||
|
json.get("aircraft_carrier", []))
|
||||||
|
faction.helicopter_carrier = load_all_ships(
|
||||||
|
json.get("helicopter_carrier", []))
|
||||||
|
faction.destroyers = load_all_ships(json.get("destroyers", []))
|
||||||
|
faction.cruisers = load_all_ships(json.get("cruisers", []))
|
||||||
|
faction.has_jtac = json.get("has_jtac", False)
|
||||||
|
jtac_name = json.get("jtac_unit", None)
|
||||||
|
if jtac_name is not None:
|
||||||
|
faction.jtac_unit = load_aircraft(jtac_name)
|
||||||
|
else:
|
||||||
|
faction.jtac_unit = None
|
||||||
|
faction.navy_group_count = int(json.get("navy_group_count", 1))
|
||||||
|
faction.missiles_group_count = int(json.get("missiles_group_count", 0))
|
||||||
|
|
||||||
|
# Load doctrine
|
||||||
|
doctrine = json.get("doctrine", "modern")
|
||||||
|
if doctrine == "modern":
|
||||||
|
faction.doctrine = MODERN_DOCTRINE
|
||||||
|
elif doctrine == "coldwar":
|
||||||
|
faction.doctrine = COLDWAR_DOCTRINE
|
||||||
|
elif doctrine == "ww2":
|
||||||
|
faction.doctrine = WWII_DOCTRINE
|
||||||
|
else:
|
||||||
|
faction.doctrine = MODERN_DOCTRINE
|
||||||
|
|
||||||
|
# Load the building set
|
||||||
|
building_set = json.get("building_set", "default")
|
||||||
|
if building_set == "default":
|
||||||
|
faction.building_set = DEFAULT_AVAILABLE_BUILDINGS
|
||||||
|
elif building_set == "ww2ally":
|
||||||
|
faction.building_set = WW2_ALLIES_BUILDINGS
|
||||||
|
elif building_set == "ww2germany":
|
||||||
|
faction.building_set = WW2_GERMANY_BUILDINGS
|
||||||
|
else:
|
||||||
|
faction.building_set = DEFAULT_AVAILABLE_BUILDINGS
|
||||||
|
|
||||||
|
return faction
|
||||||
|
|
||||||
|
@property
|
||||||
|
def units(self) -> List[UnitType]:
|
||||||
|
return (self.infantry_units + self.aircrafts + self.awacs +
|
||||||
|
self.artillery_units + self.frontline_units +
|
||||||
|
self.tankers + self.logistics_units)
|
||||||
|
|
||||||
|
|
||||||
|
def unit_loader(unit: str, class_repository: List[Any]) -> Optional[UnitType]:
|
||||||
|
"""
|
||||||
|
Find unit by name
|
||||||
|
:param unit: Unit name as string
|
||||||
|
:param class_repository: Repository of classes (Either a module, a class, or a list of classes)
|
||||||
|
:return: The unit as a PyDCS type
|
||||||
|
"""
|
||||||
|
if unit is None:
|
||||||
|
return None
|
||||||
|
elif unit in plane_map.keys():
|
||||||
|
return plane_map[unit]
|
||||||
|
else:
|
||||||
|
for mother_class in class_repository:
|
||||||
|
if getattr(mother_class, unit, None) is not None:
|
||||||
|
return getattr(mother_class, unit)
|
||||||
|
if type(mother_class) is list:
|
||||||
|
for m in mother_class:
|
||||||
|
if m.__name__ == unit:
|
||||||
|
return m
|
||||||
|
logging.error(f"FACTION ERROR : Unable to find {unit} in pydcs")
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
def load_aircraft(name: str) -> Optional[FlyingType]:
|
||||||
|
return cast(Optional[FlyingType], unit_loader(
|
||||||
|
name, [dcs.planes, dcs.helicopters, MODDED_AIRPLANES]
|
||||||
|
))
|
||||||
|
|
||||||
|
|
||||||
|
def load_all_aircraft(data) -> List[FlyingType]:
|
||||||
|
items = []
|
||||||
|
for name in data:
|
||||||
|
item = load_aircraft(name)
|
||||||
|
if item is not None:
|
||||||
|
items.append(item)
|
||||||
|
return items
|
||||||
|
|
||||||
|
|
||||||
|
def load_vehicle(name: str) -> Optional[VehicleType]:
|
||||||
|
return cast(Optional[FlyingType], unit_loader(
|
||||||
|
name, [Infantry, Unarmed, Armor, AirDefence, Artillery, MODDED_VEHICLES]
|
||||||
|
))
|
||||||
|
|
||||||
|
|
||||||
|
def load_all_vehicles(data) -> List[VehicleType]:
|
||||||
|
items = []
|
||||||
|
for name in data:
|
||||||
|
item = load_vehicle(name)
|
||||||
|
if item is not None:
|
||||||
|
items.append(item)
|
||||||
|
return items
|
||||||
|
|
||||||
|
|
||||||
|
def load_ship(name: str) -> Optional[ShipType]:
|
||||||
|
return cast(Optional[FlyingType], unit_loader(name, [dcs.ships]))
|
||||||
|
|
||||||
|
|
||||||
|
def load_all_ships(data) -> List[ShipType]:
|
||||||
|
items = []
|
||||||
|
for name in data:
|
||||||
|
item = load_ship(name)
|
||||||
|
if item is not None:
|
||||||
|
items.append(item)
|
||||||
|
return items
|
||||||
28
game/factions/faction_loader.py
Normal file
28
game/factions/faction_loader.py
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
from __future__ import annotations
|
||||||
|
import json
|
||||||
|
import logging
|
||||||
|
from pathlib import Path
|
||||||
|
from typing import Dict, Type
|
||||||
|
|
||||||
|
from game.factions.faction import Faction
|
||||||
|
|
||||||
|
FACTION_DIRECTORY = Path("./resources/factions/")
|
||||||
|
|
||||||
|
|
||||||
|
class FactionLoader:
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def load_factions(cls: Type[FactionLoader]) -> Dict[str, Faction]:
|
||||||
|
files = [f for f in FACTION_DIRECTORY.glob("*.json") if f.is_file()]
|
||||||
|
factions = {}
|
||||||
|
|
||||||
|
for f in files:
|
||||||
|
try:
|
||||||
|
with f.open("r", encoding="utf-8") as fdata:
|
||||||
|
data = json.load(fdata, encoding="utf-8")
|
||||||
|
factions[data["name"]] = Faction.from_json(data)
|
||||||
|
logging.info("Loaded faction : " + str(f))
|
||||||
|
except Exception:
|
||||||
|
logging.exception(f"Unable to load faction : {f}")
|
||||||
|
|
||||||
|
return factions
|
||||||
@ -1,68 +0,0 @@
|
|||||||
from dcs.helicopters import (
|
|
||||||
SA342L,
|
|
||||||
SA342M,
|
|
||||||
SA342Mistral,
|
|
||||||
)
|
|
||||||
from dcs.planes import (
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
KC130,
|
|
||||||
KC_135,
|
|
||||||
M_2000C,
|
|
||||||
Mirage_2000_5,
|
|
||||||
)
|
|
||||||
from dcs.ships import (
|
|
||||||
Armed_speedboat,
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Artillery,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
France_1995 = {
|
|
||||||
"country": "France",
|
|
||||||
"side": "blue",
|
|
||||||
"units": [
|
|
||||||
M_2000C,
|
|
||||||
Mirage_2000_5,
|
|
||||||
|
|
||||||
KC_135,
|
|
||||||
KC130,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
|
|
||||||
SA342M,
|
|
||||||
SA342L,
|
|
||||||
SA342Mistral,
|
|
||||||
|
|
||||||
Armor.MBT_Leclerc,
|
|
||||||
Armor.TPz_Fuchs, # Standing as VAB
|
|
||||||
Armor.APC_Cobra, # Standing as VBL
|
|
||||||
Armor.ATGM_M1134_Stryker, # Standing as VAB Mephisto
|
|
||||||
Artillery.SPH_M109_Paladin, # Standing as AMX30 AuF1
|
|
||||||
Artillery.MLRS_M270,
|
|
||||||
|
|
||||||
Unarmed.Transport_M818,
|
|
||||||
Infantry.Infantry_M4,
|
|
||||||
Infantry.Soldier_M249,
|
|
||||||
|
|
||||||
AirDefence.SAM_Roland_ADS,
|
|
||||||
AirDefence.SAM_Hawk_PCP,
|
|
||||||
AirDefence.HQ_7_Self_Propelled_LN, # Standing as Crotale
|
|
||||||
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
Armed_speedboat,
|
|
||||||
|
|
||||||
], "shorad": [
|
|
||||||
AirDefence.HQ_7_Self_Propelled_LN,
|
|
||||||
AirDefence.SAM_Roland_ADS
|
|
||||||
], "boat":[
|
|
||||||
"ArleighBurkeGroupGenerator", "OliverHazardPerryGroupGenerator"
|
|
||||||
], "has_jtac": True
|
|
||||||
}
|
|
||||||
@ -1,86 +0,0 @@
|
|||||||
from dcs.helicopters import (
|
|
||||||
SA342L,
|
|
||||||
SA342M,
|
|
||||||
SA342Mistral,
|
|
||||||
)
|
|
||||||
from dcs.planes import (
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
FA_18C_hornet,
|
|
||||||
KC130,
|
|
||||||
KC_135,
|
|
||||||
M_2000C,
|
|
||||||
Mirage_2000_5,
|
|
||||||
)
|
|
||||||
from dcs.ships import (
|
|
||||||
Armed_speedboat,
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
Oliver_Hazzard_Perry_class,
|
|
||||||
Ticonderoga_class,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Artillery,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
France_2005 = {
|
|
||||||
"country": "France",
|
|
||||||
"side": "blue",
|
|
||||||
"units":[
|
|
||||||
M_2000C,
|
|
||||||
Mirage_2000_5,
|
|
||||||
FA_18C_hornet, # Standing as Rafale M
|
|
||||||
|
|
||||||
KC_135,
|
|
||||||
KC130,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
|
|
||||||
SA342M,
|
|
||||||
SA342L,
|
|
||||||
SA342Mistral,
|
|
||||||
|
|
||||||
Armor.MBT_Leclerc,
|
|
||||||
Armor.TPz_Fuchs, # Standing as VAB
|
|
||||||
Armor.APC_Cobra, # Standing as VBL
|
|
||||||
Armor.ATGM_M1134_Stryker, # Standing as VAB Mephisto
|
|
||||||
Artillery.SPH_M109_Paladin, # Standing as AMX30 AuF1
|
|
||||||
Artillery.MLRS_M270,
|
|
||||||
|
|
||||||
Unarmed.Transport_M818,
|
|
||||||
Infantry.Infantry_M4,
|
|
||||||
Infantry.Soldier_M249,
|
|
||||||
|
|
||||||
AirDefence.SAM_Roland_ADS,
|
|
||||||
AirDefence.SAM_Hawk_PCP,
|
|
||||||
AirDefence.HQ_7_Self_Propelled_LN, # Standing as Crotale
|
|
||||||
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
Armed_speedboat,
|
|
||||||
|
|
||||||
], "shorad":[
|
|
||||||
AirDefence.HQ_7_Self_Propelled_LN,
|
|
||||||
AirDefence.SAM_Roland_ADS
|
|
||||||
], "aircraft_carrier": [
|
|
||||||
CVN_74_John_C__Stennis, # Standing as CDG Aircraft Carrier
|
|
||||||
], "helicopter_carrier": [
|
|
||||||
LHA_1_Tarawa, # Standing as Mistral Class
|
|
||||||
], "destroyer": [
|
|
||||||
Oliver_Hazzard_Perry_class,
|
|
||||||
], "cruiser": [
|
|
||||||
Ticonderoga_class,
|
|
||||||
], "carrier_names": [
|
|
||||||
"PA Charles de Gaulle",
|
|
||||||
], "lhanames": [
|
|
||||||
"L9013 Mistral",
|
|
||||||
"L9014 Tonerre",
|
|
||||||
"L9015 Dixmude"
|
|
||||||
], "boat":[
|
|
||||||
"ArleighBurkeGroupGenerator", "OliverHazardPerryGroupGenerator"
|
|
||||||
], "has_jtac": True
|
|
||||||
}
|
|
||||||
@ -1,103 +0,0 @@
|
|||||||
from dcs.helicopters import (
|
|
||||||
SA342L,
|
|
||||||
SA342M,
|
|
||||||
SA342Mistral,
|
|
||||||
)
|
|
||||||
from dcs.planes import (
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
KC130,
|
|
||||||
KC_135,
|
|
||||||
M_2000C,
|
|
||||||
Mirage_2000_5,
|
|
||||||
)
|
|
||||||
from dcs.ships import (
|
|
||||||
Armed_speedboat,
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
Oliver_Hazzard_Perry_class,
|
|
||||||
Ticonderoga_class,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Artillery,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
import pydcs_extensions.frenchpack.frenchpack as frenchpack
|
|
||||||
from pydcs_extensions.rafale.rafale import Rafale_A_S, Rafale_M
|
|
||||||
|
|
||||||
France_2005_Modded = {
|
|
||||||
"country": "France",
|
|
||||||
"side": "blue",
|
|
||||||
"units": [
|
|
||||||
M_2000C,
|
|
||||||
Mirage_2000_5,
|
|
||||||
Rafale_M,
|
|
||||||
Rafale_A_S,
|
|
||||||
|
|
||||||
KC_135,
|
|
||||||
KC130,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
|
|
||||||
SA342M,
|
|
||||||
SA342L,
|
|
||||||
SA342Mistral,
|
|
||||||
|
|
||||||
Armor.MBT_Leclerc,
|
|
||||||
Artillery.SPH_M109_Paladin, # Standing as AMX30 AuF1
|
|
||||||
Artillery.MLRS_M270,
|
|
||||||
|
|
||||||
frenchpack.AMX_10RCR,
|
|
||||||
frenchpack.AMX_10RCR_SEPAR,
|
|
||||||
frenchpack.ERC_90,
|
|
||||||
frenchpack.TRM_2000_PAMELA,
|
|
||||||
frenchpack.VAB__50,
|
|
||||||
frenchpack.VAB_MEPHISTO,
|
|
||||||
frenchpack.VAB_T20_13,
|
|
||||||
frenchpack.VBL__50,
|
|
||||||
frenchpack.VBL_AANF1,
|
|
||||||
frenchpack.VBAE_CRAB,
|
|
||||||
frenchpack.VBAE_CRAB_MMP,
|
|
||||||
frenchpack.AMX_30B2,
|
|
||||||
frenchpack.Leclerc_Serie_XXI,
|
|
||||||
|
|
||||||
Unarmed.Transport_M818,
|
|
||||||
Infantry.Infantry_M4,
|
|
||||||
Infantry.Soldier_M249,
|
|
||||||
|
|
||||||
AirDefence.SAM_Roland_ADS,
|
|
||||||
AirDefence.SAM_Hawk_PCP,
|
|
||||||
AirDefence.HQ_7_Self_Propelled_LN, # Standing as Crotale
|
|
||||||
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
Armed_speedboat,
|
|
||||||
|
|
||||||
], "shorad": [
|
|
||||||
AirDefence.HQ_7_Self_Propelled_LN,
|
|
||||||
AirDefence.SAM_Roland_ADS
|
|
||||||
], "aircraft_carrier": [
|
|
||||||
CVN_74_John_C__Stennis, # Standing as CDG Aircraft Carrier
|
|
||||||
], "helicopter_carrier": [
|
|
||||||
LHA_1_Tarawa, # Standing as Mistral Class
|
|
||||||
], "destroyer": [
|
|
||||||
Oliver_Hazzard_Perry_class,
|
|
||||||
], "cruiser": [
|
|
||||||
Ticonderoga_class,
|
|
||||||
], "carrier_names": [
|
|
||||||
"PA Charles de Gaulle",
|
|
||||||
], "lhanames": [
|
|
||||||
"L9013 Mistral",
|
|
||||||
"L9014 Tonerre",
|
|
||||||
"L9015 Dixmude"
|
|
||||||
], "boat": [
|
|
||||||
"ArleighBurkeGroupGenerator", "OliverHazardPerryGroupGenerator"
|
|
||||||
], "requirements": {
|
|
||||||
"frenchpack V3.5": "https://forums.eagle.ru/showthread.php?t=279974",
|
|
||||||
"RAFALE 2.5.5": "https://www.digitalcombatsimulator.com/fr/files/3307478/",
|
|
||||||
}, "has_jtac": True
|
|
||||||
}
|
|
||||||
@ -1,58 +0,0 @@
|
|||||||
from dcs.planes import (
|
|
||||||
Bf_109K_4,
|
|
||||||
FW_190A8,
|
|
||||||
FW_190D9,
|
|
||||||
Ju_88A4,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Artillery,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
from game.data.building_data import WW2_GERMANY_BUILDINGS
|
|
||||||
from game.data.doctrine import WWII_DOCTRINE
|
|
||||||
|
|
||||||
Germany_1944 = {
|
|
||||||
"country": "Third Reich",
|
|
||||||
"side": "red",
|
|
||||||
"units": [
|
|
||||||
|
|
||||||
FW_190A8,
|
|
||||||
FW_190D9,
|
|
||||||
Bf_109K_4,
|
|
||||||
Ju_88A4,
|
|
||||||
|
|
||||||
Armor.MT_Pz_Kpfw_V_Panther_Ausf_G,
|
|
||||||
Armor.MT_Pz_Kpfw_IV_Ausf_H,
|
|
||||||
Armor.HT_Pz_Kpfw_VI_Tiger_I,
|
|
||||||
Armor.HT_Pz_Kpfw_VI_Ausf__B__Tiger_II,
|
|
||||||
Armor.APC_Sd_Kfz_251,
|
|
||||||
Armor.IFV_Sd_Kfz_234_2_Puma,
|
|
||||||
Armor.Sd_Kfz_184_Elefant,
|
|
||||||
Armor.TD_Jagdpanther_G1,
|
|
||||||
Armor.TD_Jagdpanzer_IV,
|
|
||||||
|
|
||||||
Artillery.Sturmpanzer_IV_Brummbär,
|
|
||||||
|
|
||||||
Unarmed.Sd_Kfz_2,
|
|
||||||
Unarmed.Sd_Kfz_7,
|
|
||||||
Unarmed.Kübelwagen_82,
|
|
||||||
|
|
||||||
Infantry.Infantry_Mauser_98,
|
|
||||||
AirDefence.AAA_8_8cm_Flak_36,
|
|
||||||
],"requirements":{
|
|
||||||
"WW2 Asset Pack": "https://www.digitalcombatsimulator.com/en/products/other/wwii_assets_pack/",
|
|
||||||
},
|
|
||||||
"shorad": [
|
|
||||||
AirDefence.AAA_8_8cm_Flak_36,
|
|
||||||
],
|
|
||||||
"objects": WW2_GERMANY_BUILDINGS,
|
|
||||||
"doctrine": WWII_DOCTRINE,
|
|
||||||
"boat": ["UBoatGroupGenerator", "SchnellbootGroupGenerator"],
|
|
||||||
"boat_count": 2,
|
|
||||||
"missiles": ["V1GroupGenerator"],
|
|
||||||
"missiles_count": 1
|
|
||||||
}
|
|
||||||
@ -1,51 +0,0 @@
|
|||||||
from dcs.planes import (
|
|
||||||
Bf_109K_4,
|
|
||||||
FW_190A8,
|
|
||||||
FW_190D9,
|
|
||||||
Ju_88A4,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Artillery,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
from game.data.building_data import WW2_GERMANY_BUILDINGS
|
|
||||||
from game.data.doctrine import WWII_DOCTRINE
|
|
||||||
|
|
||||||
Germany_1944_Easy = {
|
|
||||||
"country": "Third Reich",
|
|
||||||
"side": "red",
|
|
||||||
"units": [
|
|
||||||
|
|
||||||
FW_190A8,
|
|
||||||
FW_190D9,
|
|
||||||
Bf_109K_4,
|
|
||||||
Ju_88A4,
|
|
||||||
|
|
||||||
Armor.MT_Pz_Kpfw_IV_Ausf_H,
|
|
||||||
Armor.APC_Sd_Kfz_251,
|
|
||||||
Armor.IFV_Sd_Kfz_234_2_Puma,
|
|
||||||
Artillery.Sturmpanzer_IV_Brummbär,
|
|
||||||
|
|
||||||
Unarmed.Sd_Kfz_2,
|
|
||||||
Unarmed.Sd_Kfz_7,
|
|
||||||
Unarmed.Kübelwagen_82,
|
|
||||||
|
|
||||||
Infantry.Infantry_Mauser_98,
|
|
||||||
AirDefence.AAA_8_8cm_Flak_36,
|
|
||||||
],"requirements":{
|
|
||||||
"WW2 Asset Pack": "https://www.digitalcombatsimulator.com/en/products/other/wwii_assets_pack/",
|
|
||||||
},
|
|
||||||
"shorad":[
|
|
||||||
AirDefence.AAA_8_8cm_Flak_36,
|
|
||||||
],
|
|
||||||
"objects": WW2_GERMANY_BUILDINGS,
|
|
||||||
"doctrine": WWII_DOCTRINE,
|
|
||||||
"boat": ["UBoatGroupGenerator", "SchnellbootGroupGenerator"],
|
|
||||||
"boat_count": 1,
|
|
||||||
"missiles": ["V1GroupGenerator"],
|
|
||||||
"missiles_count": 1
|
|
||||||
}
|
|
||||||
@ -1,66 +0,0 @@
|
|||||||
from dcs.helicopters import (
|
|
||||||
SA342L,
|
|
||||||
SA342M,
|
|
||||||
UH_1H,
|
|
||||||
)
|
|
||||||
from dcs.planes import (
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
F_4E,
|
|
||||||
KC130,
|
|
||||||
KC_135,
|
|
||||||
MiG_29G,
|
|
||||||
Tornado_IDS,
|
|
||||||
)
|
|
||||||
from dcs.ships import (
|
|
||||||
Armed_speedboat,
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
Germany_1990 = {
|
|
||||||
"country": "Germany",
|
|
||||||
"side": "blue",
|
|
||||||
"units":[
|
|
||||||
MiG_29G,
|
|
||||||
Tornado_IDS,
|
|
||||||
F_4E,
|
|
||||||
|
|
||||||
KC_135,
|
|
||||||
KC130,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
|
|
||||||
UH_1H,
|
|
||||||
SA342M,
|
|
||||||
SA342L,
|
|
||||||
|
|
||||||
Armor.TPz_Fuchs,
|
|
||||||
Armor.MBT_Leopard_1A3,
|
|
||||||
Armor.MBT_Leopard_2,
|
|
||||||
Armor.IFV_Marder,
|
|
||||||
|
|
||||||
Unarmed.Transport_M818,
|
|
||||||
Infantry.Infantry_M4,
|
|
||||||
Infantry.Soldier_M249,
|
|
||||||
|
|
||||||
AirDefence.SAM_Roland_ADS,
|
|
||||||
AirDefence.SAM_Hawk_PCP,
|
|
||||||
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
Armed_speedboat,
|
|
||||||
],
|
|
||||||
"shorad":[
|
|
||||||
AirDefence.SPAAA_Gepard,
|
|
||||||
AirDefence.SAM_Roland_ADS,
|
|
||||||
], "boat":[
|
|
||||||
"OliverHazardPerryGroupGenerator"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@ -1,80 +0,0 @@
|
|||||||
from dcs.helicopters import (
|
|
||||||
AH_64A,
|
|
||||||
Mi_8MT,
|
|
||||||
)
|
|
||||||
from dcs.planes import (
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
KC130,
|
|
||||||
KC_135,
|
|
||||||
M_2000C,
|
|
||||||
MiG_21Bis,
|
|
||||||
MiG_27K,
|
|
||||||
MiG_29S,
|
|
||||||
Mirage_2000_5,
|
|
||||||
Su_30,
|
|
||||||
)
|
|
||||||
from dcs.ships import (
|
|
||||||
Armed_speedboat,
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
CV_1143_5_Admiral_Kuznetsov,
|
|
||||||
FSG_1241_1MP_Molniya,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
India_2010 = {
|
|
||||||
"country": "India",
|
|
||||||
"side": "blue",
|
|
||||||
"units": [
|
|
||||||
Mirage_2000_5,
|
|
||||||
M_2000C,
|
|
||||||
MiG_27K,
|
|
||||||
MiG_21Bis,
|
|
||||||
MiG_29S,
|
|
||||||
Su_30,
|
|
||||||
|
|
||||||
KC_135,
|
|
||||||
KC130,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
|
|
||||||
AH_64A,
|
|
||||||
Mi_8MT,
|
|
||||||
|
|
||||||
Armor.MBT_T_90,
|
|
||||||
Armor.MBT_T_72B,
|
|
||||||
Armor.IFV_BMP_2,
|
|
||||||
|
|
||||||
Unarmed.Transport_M818,
|
|
||||||
Infantry.Infantry_M4,
|
|
||||||
|
|
||||||
AirDefence.SAM_SA_6_Kub_LN_2P25,
|
|
||||||
AirDefence.SAM_SA_3_S_125_LN_5P73,
|
|
||||||
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
Armed_speedboat,
|
|
||||||
],
|
|
||||||
"shorad":[
|
|
||||||
AirDefence.SAM_SA_8_Osa_9A33,
|
|
||||||
AirDefence.AAA_ZU_23_Emplacement,
|
|
||||||
AirDefence.SPAAA_ZSU_23_4_Shilka,
|
|
||||||
AirDefence.SAM_SA_13_Strela_10M3_9A35M3,
|
|
||||||
AirDefence.SAM_SA_8_Osa_9A33,
|
|
||||||
AirDefence.SAM_SA_19_Tunguska_2S6
|
|
||||||
], "aircraft_carrier": [
|
|
||||||
CV_1143_5_Admiral_Kuznetsov,
|
|
||||||
], "destroyer": [
|
|
||||||
FSG_1241_1MP_Molniya,
|
|
||||||
], "carrier_names": [
|
|
||||||
"INS Vikramaditya"
|
|
||||||
], "boat":[
|
|
||||||
"ArleighBurkeGroupGenerator", "OliverHazardPerryGroupGenerator", "MolniyaGroupGenerator"
|
|
||||||
], "has_jtac": True
|
|
||||||
}
|
|
||||||
@ -1,34 +0,0 @@
|
|||||||
from dcs.ships import (
|
|
||||||
Bulk_cargo_ship_Yakushev,
|
|
||||||
Dry_cargo_ship_Ivanov,
|
|
||||||
Tanker_Elnya_160,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
Insurgent = {
|
|
||||||
"country": "Insurgents",
|
|
||||||
"side": "red",
|
|
||||||
"units": [
|
|
||||||
|
|
||||||
AirDefence.AAA_ZU_23_Insurgent_Closed,
|
|
||||||
AirDefence.AAA_ZU_23_Insurgent_on_Ural_375,
|
|
||||||
|
|
||||||
Armor.APC_Cobra,
|
|
||||||
Armor.APC_MTLB,
|
|
||||||
Armor.ARV_BRDM_2,
|
|
||||||
|
|
||||||
Unarmed.Transport_Ural_375,
|
|
||||||
Unarmed.Transport_UAZ_469,
|
|
||||||
Infantry.Infantry_Soldier_Insurgents,
|
|
||||||
Infantry.Soldier_RPG,
|
|
||||||
|
|
||||||
Bulk_cargo_ship_Yakushev,
|
|
||||||
Dry_cargo_ship_Ivanov,
|
|
||||||
Tanker_Elnya_160
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@ -1,46 +0,0 @@
|
|||||||
from dcs.ships import (
|
|
||||||
Bulk_cargo_ship_Yakushev,
|
|
||||||
Dry_cargo_ship_Ivanov,
|
|
||||||
Tanker_Elnya_160,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
from pydcs_extensions.frenchpack.frenchpack import (
|
|
||||||
DIM__KAMIKAZE,
|
|
||||||
DIM__TOYOTA_BLUE,
|
|
||||||
DIM__TOYOTA_DESERT,
|
|
||||||
DIM__TOYOTA_GREEN,
|
|
||||||
)
|
|
||||||
|
|
||||||
Insurgent_modded = {
|
|
||||||
"country": "Insurgents",
|
|
||||||
"side": "red",
|
|
||||||
"units": [
|
|
||||||
|
|
||||||
AirDefence.AAA_ZU_23_Insurgent_Closed,
|
|
||||||
AirDefence.AAA_ZU_23_Insurgent_on_Ural_375,
|
|
||||||
|
|
||||||
DIM__TOYOTA_BLUE,
|
|
||||||
DIM__TOYOTA_DESERT,
|
|
||||||
DIM__TOYOTA_GREEN,
|
|
||||||
DIM__KAMIKAZE,
|
|
||||||
Armor.ARV_BRDM_2,
|
|
||||||
Armor.APC_Cobra,
|
|
||||||
|
|
||||||
Unarmed.Transport_Ural_375,
|
|
||||||
Unarmed.Transport_UAZ_469,
|
|
||||||
Infantry.Soldier_AK,
|
|
||||||
Infantry.Infantry_Soldier_Insurgents,
|
|
||||||
|
|
||||||
Bulk_cargo_ship_Yakushev,
|
|
||||||
Dry_cargo_ship_Ivanov,
|
|
||||||
Tanker_Elnya_160
|
|
||||||
], "requirements": {
|
|
||||||
"frenchpack V3.5": "https://forums.eagle.ru/showthread.php?t=279974",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,86 +0,0 @@
|
|||||||
from dcs.helicopters import (
|
|
||||||
Mi_24V,
|
|
||||||
Mi_28N,
|
|
||||||
)
|
|
||||||
from dcs.planes import (
|
|
||||||
A_50,
|
|
||||||
An_26B,
|
|
||||||
An_30M,
|
|
||||||
F_14B,
|
|
||||||
F_4E,
|
|
||||||
F_5E_3,
|
|
||||||
IL_76MD,
|
|
||||||
IL_78M,
|
|
||||||
MiG_21Bis,
|
|
||||||
MiG_29A,
|
|
||||||
Su_17M4,
|
|
||||||
Su_24M,
|
|
||||||
Su_25,
|
|
||||||
Yak_40,
|
|
||||||
)
|
|
||||||
from dcs.ships import (
|
|
||||||
Bulk_cargo_ship_Yakushev,
|
|
||||||
CV_1143_5_Admiral_Kuznetsov,
|
|
||||||
Dry_cargo_ship_Ivanov,
|
|
||||||
Tanker_Elnya_160,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
Iran_2015 = {
|
|
||||||
"country": "Iran",
|
|
||||||
"side": "red",
|
|
||||||
"units": [
|
|
||||||
|
|
||||||
MiG_29A,
|
|
||||||
F_4E,
|
|
||||||
F_14B,
|
|
||||||
F_5E_3,
|
|
||||||
|
|
||||||
MiG_21Bis,
|
|
||||||
Su_24M,
|
|
||||||
Su_25,
|
|
||||||
Su_17M4,
|
|
||||||
|
|
||||||
IL_76MD,
|
|
||||||
IL_78M,
|
|
||||||
An_26B,
|
|
||||||
An_30M,
|
|
||||||
Yak_40,
|
|
||||||
|
|
||||||
A_50,
|
|
||||||
|
|
||||||
Mi_28N,
|
|
||||||
Mi_24V,
|
|
||||||
|
|
||||||
AirDefence.SAM_Hawk_PCP,
|
|
||||||
AirDefence.SAM_SA_2_LN_SM_90,
|
|
||||||
AirDefence.SAM_SA_6_Kub_LN_2P25,
|
|
||||||
AirDefence.HQ_7_Self_Propelled_LN,
|
|
||||||
AirDefence.SAM_SA_11_Buk_LN_9A310M1,
|
|
||||||
|
|
||||||
Armor.APC_M113,
|
|
||||||
Armor.APC_BTR_80,
|
|
||||||
Armor.MBT_M60A3_Patton,
|
|
||||||
Armor.MBT_T_72B,
|
|
||||||
|
|
||||||
Unarmed.Transport_Ural_375,
|
|
||||||
Unarmed.Transport_UAZ_469,
|
|
||||||
Infantry.Soldier_AK,
|
|
||||||
|
|
||||||
CV_1143_5_Admiral_Kuznetsov,
|
|
||||||
Bulk_cargo_ship_Yakushev,
|
|
||||||
Dry_cargo_ship_Ivanov,
|
|
||||||
Tanker_Elnya_160
|
|
||||||
],
|
|
||||||
"shorad":[
|
|
||||||
AirDefence.HQ_7_Self_Propelled_LN,
|
|
||||||
AirDefence.AAA_ZU_23_Insurgent_Closed
|
|
||||||
], "boat":[
|
|
||||||
"GrishaGroupGenerator", "MolniyaGroupGenerator", "KiloSubGroupGenerator"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@ -1,47 +0,0 @@
|
|||||||
from dcs.planes import (
|
|
||||||
B_17G,
|
|
||||||
Bf_109K_4,
|
|
||||||
P_51D,
|
|
||||||
P_51D_30_NA,
|
|
||||||
SpitfireLFMkIX,
|
|
||||||
SpitfireLFMkIXCW,
|
|
||||||
)
|
|
||||||
from dcs.ships import (
|
|
||||||
Armed_speedboat,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
Israel_1948 = {
|
|
||||||
"country": "Israel",
|
|
||||||
"side": "blue",
|
|
||||||
"units":[
|
|
||||||
SpitfireLFMkIXCW,
|
|
||||||
SpitfireLFMkIX,
|
|
||||||
P_51D,
|
|
||||||
P_51D_30_NA,
|
|
||||||
Bf_109K_4, # Standing as Avia S-199
|
|
||||||
B_17G,
|
|
||||||
|
|
||||||
Armor.MT_M4A4_Sherman_Firefly,
|
|
||||||
Armor.APC_M2A1,
|
|
||||||
Armor.MT_M4_Sherman,
|
|
||||||
Armor.LAC_M8_Greyhound,
|
|
||||||
|
|
||||||
Unarmed.Transport_M818,
|
|
||||||
Infantry.Infantry_SMLE_No_4_Mk_1,
|
|
||||||
|
|
||||||
AirDefence.AAA_Bofors_40mm,
|
|
||||||
Armed_speedboat,
|
|
||||||
],"requirements":{
|
|
||||||
"WW2 Asset Pack": "https://www.digitalcombatsimulator.com/en/products/other/wwii_assets_pack/",
|
|
||||||
},
|
|
||||||
"shorad": [
|
|
||||||
AirDefence.AAA_Bofors_40mm
|
|
||||||
], "boat": [
|
|
||||||
], "has_jtac": False
|
|
||||||
}
|
|
||||||
@ -1,131 +0,0 @@
|
|||||||
from dcs.helicopters import (
|
|
||||||
AH_1W,
|
|
||||||
UH_1H,
|
|
||||||
)
|
|
||||||
from dcs.planes import (
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
F_15C,
|
|
||||||
F_16A,
|
|
||||||
F_16C_50,
|
|
||||||
F_4E,
|
|
||||||
KC130,
|
|
||||||
KC_135,
|
|
||||||
)
|
|
||||||
from dcs.ships import (
|
|
||||||
Armed_speedboat,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
from pydcs_extensions.a4ec.a4ec import A_4E_C
|
|
||||||
|
|
||||||
Israel_1973 = {
|
|
||||||
"country": "Israel",
|
|
||||||
"side": "blue",
|
|
||||||
"units":[
|
|
||||||
F_4E,
|
|
||||||
A_4E_C,
|
|
||||||
|
|
||||||
KC_135,
|
|
||||||
KC130,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
|
|
||||||
UH_1H,
|
|
||||||
|
|
||||||
Armor.MT_M4A4_Sherman_Firefly,
|
|
||||||
Armor.APC_M2A1,
|
|
||||||
Armor.MBT_M60A3_Patton,
|
|
||||||
Armor.APC_M113,
|
|
||||||
|
|
||||||
Unarmed.Transport_M818,
|
|
||||||
Infantry.Infantry_M4,
|
|
||||||
|
|
||||||
AirDefence.SAM_Hawk_PCP,
|
|
||||||
AirDefence.AAA_Bofors_40mm,
|
|
||||||
AirDefence.SAM_Chaparral_M48,
|
|
||||||
|
|
||||||
Armed_speedboat,
|
|
||||||
], "requirements": {
|
|
||||||
"Community A-4E": "https://heclak.github.io/community-a4e-c/",
|
|
||||||
"WW2 Asset Pack": "https://www.digitalcombatsimulator.com/en/products/other/wwii_assets_pack/",
|
|
||||||
}, "shorad": [
|
|
||||||
AirDefence.SAM_Chaparral_M48,
|
|
||||||
AirDefence.AAA_Bofors_40mm
|
|
||||||
], "boat": [
|
|
||||||
], "has_jtac": True
|
|
||||||
}
|
|
||||||
|
|
||||||
Israel_1973_NO_WW2_UNITS = {
|
|
||||||
"country": "Israel",
|
|
||||||
"side": "blue",
|
|
||||||
"units":[
|
|
||||||
F_4E,
|
|
||||||
A_4E_C,
|
|
||||||
|
|
||||||
KC_135,
|
|
||||||
KC130,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
|
|
||||||
UH_1H,
|
|
||||||
|
|
||||||
Armor.MBT_M60A3_Patton,
|
|
||||||
Armor.APC_M113,
|
|
||||||
|
|
||||||
Unarmed.Transport_M818,
|
|
||||||
Infantry.Infantry_M4,
|
|
||||||
|
|
||||||
AirDefence.SAM_Hawk_PCP,
|
|
||||||
AirDefence.SAM_Chaparral_M48,
|
|
||||||
|
|
||||||
Armed_speedboat,
|
|
||||||
], "requirements": {
|
|
||||||
"Community A-4E": "https://heclak.github.io/community-a4e-c/",
|
|
||||||
}, "shorad": [
|
|
||||||
AirDefence.SAM_Chaparral_M48,
|
|
||||||
], "boat": [
|
|
||||||
], "has_jtac": True
|
|
||||||
}
|
|
||||||
|
|
||||||
Israel_1982 = {
|
|
||||||
"country": "Israel",
|
|
||||||
"side": "blue",
|
|
||||||
"units":[
|
|
||||||
F_4E,
|
|
||||||
A_4E_C,
|
|
||||||
F_15C,
|
|
||||||
F_16A,
|
|
||||||
F_16C_50,
|
|
||||||
|
|
||||||
KC_135,
|
|
||||||
KC130,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
|
|
||||||
UH_1H,
|
|
||||||
AH_1W,
|
|
||||||
|
|
||||||
Armor.APC_M113,
|
|
||||||
Armor.MBT_M60A3_Patton,
|
|
||||||
Armor.MBT_Merkava_Mk__4,
|
|
||||||
|
|
||||||
Unarmed.Transport_M818,
|
|
||||||
Infantry.Infantry_M4,
|
|
||||||
|
|
||||||
AirDefence.SAM_Hawk_PCP,
|
|
||||||
AirDefence.SAM_Chaparral_M48,
|
|
||||||
|
|
||||||
Armed_speedboat,
|
|
||||||
], "requirements": {
|
|
||||||
"Community A-4E": "https://heclak.github.io/community-a4e-c/",
|
|
||||||
}, "shorad": [
|
|
||||||
AirDefence.SAM_Chaparral_M48,
|
|
||||||
], "boat": [
|
|
||||||
], "has_jtac": True
|
|
||||||
}
|
|
||||||
@ -1,66 +0,0 @@
|
|||||||
from dcs.helicopters import (
|
|
||||||
AH_1W,
|
|
||||||
AH_64D,
|
|
||||||
)
|
|
||||||
from dcs.planes import (
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
F_15C,
|
|
||||||
F_15E,
|
|
||||||
F_16C_50,
|
|
||||||
F_4E,
|
|
||||||
KC130,
|
|
||||||
KC_135,
|
|
||||||
)
|
|
||||||
from dcs.ships import (
|
|
||||||
Armed_speedboat,
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Artillery,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
Israel_2000 = {
|
|
||||||
"country": "Israel",
|
|
||||||
"side": "blue",
|
|
||||||
"units":[
|
|
||||||
F_16C_50,
|
|
||||||
F_15C,
|
|
||||||
F_15E,
|
|
||||||
F_4E,
|
|
||||||
|
|
||||||
KC_135,
|
|
||||||
KC130,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
|
|
||||||
AH_1W,
|
|
||||||
AH_64D,
|
|
||||||
|
|
||||||
Armor.MBT_Merkava_Mk__4,
|
|
||||||
Armor.APC_M113,
|
|
||||||
Armor.APC_M1043_HMMWV_Armament,
|
|
||||||
Armor.ATGM_M1045_HMMWV_TOW,
|
|
||||||
Artillery.SPH_M109_Paladin,
|
|
||||||
Artillery.MLRS_M270,
|
|
||||||
|
|
||||||
Unarmed.Transport_M818,
|
|
||||||
Infantry.Infantry_M4,
|
|
||||||
|
|
||||||
AirDefence.SAM_Patriot_EPP_III,
|
|
||||||
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
Armed_speedboat,
|
|
||||||
],
|
|
||||||
"shorad": [
|
|
||||||
AirDefence.SAM_Avenger_M1097
|
|
||||||
], "boat": [
|
|
||||||
"ArleighBurkeGroupGenerator"
|
|
||||||
], "has_jtac": True
|
|
||||||
}
|
|
||||||
@ -1,69 +0,0 @@
|
|||||||
from dcs.helicopters import (
|
|
||||||
AH_1W,
|
|
||||||
UH_1H,
|
|
||||||
)
|
|
||||||
from dcs.planes import (
|
|
||||||
AV8BNA,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
KC_135,
|
|
||||||
S_3B_Tanker,
|
|
||||||
Tornado_IDS,
|
|
||||||
)
|
|
||||||
from dcs.ships import (
|
|
||||||
Armed_speedboat,
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
Oliver_Hazzard_Perry_class,
|
|
||||||
Ticonderoga_class,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
Italy_1990 = {
|
|
||||||
"country": "Italy",
|
|
||||||
"side": "blue",
|
|
||||||
"units": [
|
|
||||||
Tornado_IDS,
|
|
||||||
AV8BNA,
|
|
||||||
# MB339,
|
|
||||||
|
|
||||||
KC_135,
|
|
||||||
S_3B_Tanker,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
|
|
||||||
AH_1W,
|
|
||||||
UH_1H,
|
|
||||||
|
|
||||||
Armor.MBT_Leopard_1A3, # OF-40 MBT
|
|
||||||
Armor.APC_M113,
|
|
||||||
|
|
||||||
Unarmed.Transport_M818,
|
|
||||||
Infantry.Infantry_M4,
|
|
||||||
|
|
||||||
AirDefence.SAM_Hawk_PCP,
|
|
||||||
AirDefence.SAM_Avenger_M1097,
|
|
||||||
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
Armed_speedboat,
|
|
||||||
], "shorad":[
|
|
||||||
AirDefence.SAM_Avenger_M1097,
|
|
||||||
], "helicopter_carrier": [
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
], "destroyer": [
|
|
||||||
Oliver_Hazzard_Perry_class,
|
|
||||||
], "cruiser": [
|
|
||||||
Ticonderoga_class,
|
|
||||||
], "lhanames": [
|
|
||||||
"Giuseppe Garibaldi",
|
|
||||||
"Cavour",
|
|
||||||
], "boat":[
|
|
||||||
"OliverHazardPerryGroupGenerator"
|
|
||||||
], "has_jtac": True
|
|
||||||
}
|
|
||||||
@ -1,73 +0,0 @@
|
|||||||
from dcs.helicopters import (
|
|
||||||
AH_1W,
|
|
||||||
UH_1H,
|
|
||||||
)
|
|
||||||
from dcs.planes import (
|
|
||||||
AV8BNA,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
KC_135,
|
|
||||||
S_3B_Tanker,
|
|
||||||
Tornado_IDS,
|
|
||||||
)
|
|
||||||
from dcs.ships import (
|
|
||||||
Armed_speedboat,
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
Oliver_Hazzard_Perry_class,
|
|
||||||
Ticonderoga_class,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
from pydcs_extensions.mb339.mb339 import MB_339PAN
|
|
||||||
|
|
||||||
Italy_1990_MB339 = {
|
|
||||||
"country": "Italy",
|
|
||||||
"side": "blue",
|
|
||||||
"units": [
|
|
||||||
Tornado_IDS,
|
|
||||||
AV8BNA,
|
|
||||||
MB_339PAN,
|
|
||||||
|
|
||||||
KC_135,
|
|
||||||
S_3B_Tanker,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
|
|
||||||
AH_1W,
|
|
||||||
UH_1H,
|
|
||||||
|
|
||||||
Armor.MBT_Leopard_1A3, # OF-40 MBT
|
|
||||||
Armor.APC_M113,
|
|
||||||
|
|
||||||
Unarmed.Transport_M818,
|
|
||||||
Infantry.Infantry_M4,
|
|
||||||
|
|
||||||
AirDefence.SAM_Hawk_PCP,
|
|
||||||
AirDefence.SAM_Avenger_M1097,
|
|
||||||
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
Armed_speedboat,
|
|
||||||
], "shorad":[
|
|
||||||
AirDefence.SAM_Avenger_M1097,
|
|
||||||
], "helicopter_carrier": [
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
], "destroyer": [
|
|
||||||
Oliver_Hazzard_Perry_class,
|
|
||||||
], "cruiser": [
|
|
||||||
Ticonderoga_class,
|
|
||||||
], "lhanames": [
|
|
||||||
"Giuseppe Garibaldi",
|
|
||||||
"Cavour",
|
|
||||||
], "boat": [
|
|
||||||
"OliverHazardPerryGroupGenerator"
|
|
||||||
], "requirements": {
|
|
||||||
"MB-339A": "http://www.freccetricolorivirtuali.net/",
|
|
||||||
}, "has_jtac": True
|
|
||||||
}
|
|
||||||
@ -1,71 +0,0 @@
|
|||||||
from dcs.helicopters import (
|
|
||||||
AH_1W,
|
|
||||||
AH_64D,
|
|
||||||
)
|
|
||||||
from dcs.planes import (
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
F_15C,
|
|
||||||
F_16C_50,
|
|
||||||
F_4E,
|
|
||||||
KC130,
|
|
||||||
KC_135,
|
|
||||||
)
|
|
||||||
from dcs.ships import LHA_1_Tarawa, Ticonderoga_class, USS_Arleigh_Burke_IIa
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Artillery,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
Japan_2005 = {
|
|
||||||
"country": "Japan",
|
|
||||||
"side": "blue",
|
|
||||||
"units": [
|
|
||||||
F_15C, # F-15J/DJ
|
|
||||||
F_16C_50, # F-2A/B
|
|
||||||
F_4E, # F-4EJ
|
|
||||||
|
|
||||||
KC_135,
|
|
||||||
KC130,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
|
|
||||||
AH_1W,
|
|
||||||
AH_64D,
|
|
||||||
|
|
||||||
Armor.MBT_Merkava_Mk__4, # Standing as Type 10 MBT
|
|
||||||
Armor.MBT_M1A2_Abrams, # Standing as Type 90 MBT
|
|
||||||
Armor.IFV_Marder, # Standing as Type 89 IFV
|
|
||||||
Armor.TPz_Fuchs, # Standing as Type 96 APC
|
|
||||||
Armor.IFV_LAV_25, # Standing as Type 16 or Type 87
|
|
||||||
Armor.APC_M1043_HMMWV_Armament,
|
|
||||||
|
|
||||||
Artillery.MLRS_M270,
|
|
||||||
Artillery.SPH_M109_Paladin, # Standing as Type 99 SPH
|
|
||||||
|
|
||||||
Unarmed.Transport_M818,
|
|
||||||
Infantry.Infantry_M4,
|
|
||||||
Infantry.Soldier_M249,
|
|
||||||
|
|
||||||
AirDefence.SAM_Hawk_PCP,
|
|
||||||
AirDefence.SAM_Patriot_EPP_III,
|
|
||||||
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
], "shorad": [
|
|
||||||
AirDefence.SPAAA_Gepard, # Type 87 SPAG
|
|
||||||
], "helicopter_carrier": [
|
|
||||||
LHA_1_Tarawa, # Standing as Hyuga-class helicopter carrier
|
|
||||||
], "destroyer": [
|
|
||||||
USS_Arleigh_Burke_IIa,
|
|
||||||
], "cruiser": [
|
|
||||||
Ticonderoga_class,
|
|
||||||
], "lhanames": [
|
|
||||||
"Hyuga",
|
|
||||||
"Ise",
|
|
||||||
], "boat":[
|
|
||||||
"ArleighBurkeGroupGenerator"
|
|
||||||
], "has_jtac": True
|
|
||||||
}
|
|
||||||
@ -1,68 +0,0 @@
|
|||||||
from dcs.helicopters import (
|
|
||||||
Mi_24V,
|
|
||||||
)
|
|
||||||
from dcs.planes import (
|
|
||||||
A_50,
|
|
||||||
An_26B,
|
|
||||||
An_30M,
|
|
||||||
IL_76MD,
|
|
||||||
IL_78M,
|
|
||||||
MiG_21Bis,
|
|
||||||
MiG_23MLD,
|
|
||||||
Su_17M4,
|
|
||||||
Su_24M,
|
|
||||||
Yak_40,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Artillery,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
Libya_2011 = {
|
|
||||||
"country": "Libya",
|
|
||||||
"side": "red",
|
|
||||||
"units": [
|
|
||||||
|
|
||||||
MiG_21Bis,
|
|
||||||
MiG_23MLD,
|
|
||||||
Su_24M,
|
|
||||||
Su_17M4,
|
|
||||||
Mi_24V,
|
|
||||||
|
|
||||||
IL_76MD,
|
|
||||||
IL_78M,
|
|
||||||
An_26B,
|
|
||||||
An_30M,
|
|
||||||
Yak_40,
|
|
||||||
A_50,
|
|
||||||
|
|
||||||
AirDefence.SAM_SA_8_Osa_9A33,
|
|
||||||
AirDefence.SAM_SA_2_LN_SM_90,
|
|
||||||
AirDefence.SAM_SA_3_S_125_LN_5P73,
|
|
||||||
AirDefence.SAM_SA_6_Kub_LN_2P25,
|
|
||||||
AirDefence.HQ_7_Self_Propelled_LN,
|
|
||||||
|
|
||||||
Armor.IFV_BMP_1,
|
|
||||||
Armor.FDDM_Grad,
|
|
||||||
Armor.ARV_BRDM_2,
|
|
||||||
Armor.MBT_T_55,
|
|
||||||
Armor.MBT_T_72B,
|
|
||||||
Artillery.MLRS_BM_21_Grad,
|
|
||||||
|
|
||||||
Unarmed.Transport_Ural_375,
|
|
||||||
Unarmed.Transport_UAZ_469,
|
|
||||||
|
|
||||||
Infantry.Paratrooper_RPG_16,
|
|
||||||
Infantry.Infantry_Soldier_Insurgents
|
|
||||||
|
|
||||||
],
|
|
||||||
"shorad":[
|
|
||||||
AirDefence.HQ_7_Self_Propelled_LN,
|
|
||||||
AirDefence.SAM_SA_8_Osa_9A33,
|
|
||||||
], "boat": [
|
|
||||||
"GrishaGroupGenerator", "MolniyaGroupGenerator"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@ -1,56 +0,0 @@
|
|||||||
from dcs.helicopters import (
|
|
||||||
AH_64A,
|
|
||||||
)
|
|
||||||
from dcs.planes import (
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
F_16C_50,
|
|
||||||
F_5E_3,
|
|
||||||
KC130,
|
|
||||||
KC_135,
|
|
||||||
)
|
|
||||||
from dcs.ships import (
|
|
||||||
Armed_speedboat,
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
Netherlands_1990 = {
|
|
||||||
"country": "The Netherlands",
|
|
||||||
"side": "blue",
|
|
||||||
"units": [
|
|
||||||
F_16C_50,
|
|
||||||
F_5E_3,
|
|
||||||
|
|
||||||
KC_135,
|
|
||||||
KC130,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
|
|
||||||
AH_64A,
|
|
||||||
|
|
||||||
Armor.APC_M113,
|
|
||||||
Armor.MBT_Leopard_1A3,
|
|
||||||
|
|
||||||
Unarmed.Transport_M818,
|
|
||||||
Infantry.Infantry_M4,
|
|
||||||
|
|
||||||
AirDefence.SAM_Hawk_PCP,
|
|
||||||
AirDefence.SAM_Avenger_M1097,
|
|
||||||
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
Armed_speedboat,
|
|
||||||
],
|
|
||||||
"shorad": [
|
|
||||||
AirDefence.SAM_Avenger_M1097
|
|
||||||
], "boat": [
|
|
||||||
"OliverHazardPerryGroupGenerator"
|
|
||||||
], "has_jtac": True
|
|
||||||
}
|
|
||||||
@ -1,79 +0,0 @@
|
|||||||
from dcs.helicopters import (
|
|
||||||
Mi_24V,
|
|
||||||
Mi_8MT,
|
|
||||||
)
|
|
||||||
from dcs.planes import (
|
|
||||||
A_50,
|
|
||||||
An_26B,
|
|
||||||
An_30M,
|
|
||||||
IL_76MD,
|
|
||||||
IL_78M,
|
|
||||||
MiG_15bis,
|
|
||||||
MiG_19P,
|
|
||||||
MiG_21Bis,
|
|
||||||
MiG_23MLD,
|
|
||||||
MiG_29A,
|
|
||||||
Su_25,
|
|
||||||
Yak_40,
|
|
||||||
)
|
|
||||||
from dcs.ships import (
|
|
||||||
Bulk_cargo_ship_Yakushev,
|
|
||||||
CV_1143_5_Admiral_Kuznetsov,
|
|
||||||
Dry_cargo_ship_Ivanov,
|
|
||||||
Tanker_Elnya_160,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
NorthKorea_2000 = {
|
|
||||||
"country": "North Korea",
|
|
||||||
"side": "red",
|
|
||||||
"units":[
|
|
||||||
MiG_29A,
|
|
||||||
Su_25,
|
|
||||||
MiG_15bis,
|
|
||||||
MiG_21Bis,
|
|
||||||
MiG_23MLD,
|
|
||||||
MiG_19P,
|
|
||||||
|
|
||||||
IL_76MD,
|
|
||||||
IL_78M,
|
|
||||||
An_26B,
|
|
||||||
An_30M,
|
|
||||||
Yak_40,
|
|
||||||
|
|
||||||
A_50,
|
|
||||||
|
|
||||||
Mi_8MT,
|
|
||||||
Mi_24V,
|
|
||||||
|
|
||||||
Armor.MBT_T_55,
|
|
||||||
Armor.MBT_T_72B,
|
|
||||||
Armor.MBT_T_80U,
|
|
||||||
Armor.IFV_BMP_1,
|
|
||||||
Armor.APC_BTR_80,
|
|
||||||
Armor.ARV_BRDM_2,
|
|
||||||
|
|
||||||
Unarmed.Transport_M818,
|
|
||||||
Infantry.Soldier_AK,
|
|
||||||
|
|
||||||
AirDefence.SAM_SA_2_LN_SM_90,
|
|
||||||
AirDefence.SAM_SA_3_S_125_LN_5P73,
|
|
||||||
|
|
||||||
CV_1143_5_Admiral_Kuznetsov,
|
|
||||||
Bulk_cargo_ship_Yakushev,
|
|
||||||
Dry_cargo_ship_Ivanov,
|
|
||||||
Tanker_Elnya_160
|
|
||||||
],
|
|
||||||
"shorad":[
|
|
||||||
AirDefence.AAA_ZU_23_Emplacement,
|
|
||||||
AirDefence.SPAAA_ZSU_23_4_Shilka
|
|
||||||
],
|
|
||||||
"boat": [
|
|
||||||
"GrishaGroupGenerator", "MolniyaGroupGenerator"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@ -1,60 +0,0 @@
|
|||||||
from dcs.helicopters import (
|
|
||||||
AH_1W,
|
|
||||||
UH_1H,
|
|
||||||
)
|
|
||||||
from dcs.planes import (
|
|
||||||
E_3A,
|
|
||||||
F_16C_50,
|
|
||||||
IL_78M,
|
|
||||||
JF_17,
|
|
||||||
MiG_19P,
|
|
||||||
MiG_21Bis,
|
|
||||||
WingLoong_I,
|
|
||||||
)
|
|
||||||
from dcs.ships import (
|
|
||||||
Armed_speedboat,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
Pakistan_2015 = {
|
|
||||||
"country": "Pakistan",
|
|
||||||
"side": "blue",
|
|
||||||
"units": [
|
|
||||||
JF_17,
|
|
||||||
F_16C_50,
|
|
||||||
MiG_21Bis, # Standing as J-7
|
|
||||||
MiG_19P, # Standing as J-6
|
|
||||||
IL_78M,
|
|
||||||
E_3A,
|
|
||||||
|
|
||||||
UH_1H,
|
|
||||||
AH_1W,
|
|
||||||
|
|
||||||
Armor.MBT_T_80U,
|
|
||||||
Armor.MBT_T_55, # Standing as Al-Zarrar / Type 59 MBT
|
|
||||||
Armor.ZBD_04A,
|
|
||||||
Armor.APC_BTR_80,
|
|
||||||
Armor.APC_M113,
|
|
||||||
|
|
||||||
Unarmed.Transport_M818,
|
|
||||||
Infantry.Infantry_M4,
|
|
||||||
|
|
||||||
AirDefence.SAM_SA_2_LN_SM_90, # Standing as HQ-2
|
|
||||||
AirDefence.SAM_SA_10_S_300PS_LN_5P85C, # Standing as HQ-9
|
|
||||||
|
|
||||||
Armed_speedboat,
|
|
||||||
], "shorad": [
|
|
||||||
AirDefence.HQ_7_Self_Propelled_LN,
|
|
||||||
AirDefence.AAA_ZU_23_Insurgent_on_Ural_375,
|
|
||||||
AirDefence.AAA_ZU_23_Closed
|
|
||||||
], "boat": [
|
|
||||||
"Type54GroupGenerator", "OliverHazardPerryGroupGenerator"
|
|
||||||
],
|
|
||||||
"has_jtac": True,
|
|
||||||
"jtac_unit": WingLoong_I
|
|
||||||
}
|
|
||||||
@ -1,109 +0,0 @@
|
|||||||
from dcs.helicopters import (
|
|
||||||
Ka_50,
|
|
||||||
Mi_24V,
|
|
||||||
Mi_8MT,
|
|
||||||
OH_58D,
|
|
||||||
SA342M,
|
|
||||||
UH_1H,
|
|
||||||
)
|
|
||||||
from dcs.planes import (
|
|
||||||
C_101CC,
|
|
||||||
L_39C,
|
|
||||||
L_39ZA,
|
|
||||||
)
|
|
||||||
from dcs.ships import (
|
|
||||||
Armed_speedboat,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
from pydcs_extensions.mb339.mb339 import MB_339PAN
|
|
||||||
|
|
||||||
PMC_WESTERN_A = {
|
|
||||||
"country": "USA",
|
|
||||||
"side": "blue",
|
|
||||||
"units": [
|
|
||||||
C_101CC,
|
|
||||||
|
|
||||||
UH_1H,
|
|
||||||
Mi_8MT,
|
|
||||||
OH_58D,
|
|
||||||
SA342M,
|
|
||||||
|
|
||||||
Armor.APC_M1043_HMMWV_Armament,
|
|
||||||
Armor.IFV_MCV_80,
|
|
||||||
|
|
||||||
Unarmed.Transport_M818,
|
|
||||||
Infantry.Infantry_M4,
|
|
||||||
Infantry.Soldier_M249,
|
|
||||||
|
|
||||||
AirDefence.SAM_Avenger_M1097,
|
|
||||||
|
|
||||||
Armed_speedboat,
|
|
||||||
], "shorad":[
|
|
||||||
AirDefence.SAM_Avenger_M1097,
|
|
||||||
], "has_jtac": True
|
|
||||||
}
|
|
||||||
|
|
||||||
PMC_WESTERN_B = {
|
|
||||||
"country": "USA",
|
|
||||||
"side": "blue",
|
|
||||||
"units": [
|
|
||||||
MB_339PAN,
|
|
||||||
C_101CC,
|
|
||||||
|
|
||||||
UH_1H,
|
|
||||||
Mi_8MT,
|
|
||||||
OH_58D,
|
|
||||||
SA342M,
|
|
||||||
|
|
||||||
Armor.APC_M1043_HMMWV_Armament,
|
|
||||||
Armor.IFV_MCV_80,
|
|
||||||
|
|
||||||
Unarmed.Transport_M818,
|
|
||||||
Infantry.Infantry_M4,
|
|
||||||
Infantry.Soldier_M249,
|
|
||||||
|
|
||||||
AirDefence.SAM_Avenger_M1097,
|
|
||||||
|
|
||||||
Armed_speedboat,
|
|
||||||
], "shorad":[
|
|
||||||
AirDefence.SAM_Avenger_M1097,
|
|
||||||
], "has_jtac": True,
|
|
||||||
"requirements": {
|
|
||||||
"MB-339A": "http://www.freccetricolorivirtuali.net/",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
PMC_RUSSIAN = {
|
|
||||||
"country": "Russia",
|
|
||||||
"side": "blue",
|
|
||||||
"units": [
|
|
||||||
L_39C,
|
|
||||||
L_39ZA,
|
|
||||||
|
|
||||||
Mi_8MT,
|
|
||||||
Mi_24V,
|
|
||||||
Ka_50,
|
|
||||||
|
|
||||||
Armor.APC_Cobra,
|
|
||||||
Armor.APC_BTR_80,
|
|
||||||
Armor.ARV_BRDM_2,
|
|
||||||
|
|
||||||
Unarmed.Transport_Ural_375,
|
|
||||||
Infantry.Paratrooper_AKS,
|
|
||||||
Infantry.Paratrooper_RPG_16,
|
|
||||||
|
|
||||||
AirDefence.AAA_ZU_23_on_Ural_375,
|
|
||||||
|
|
||||||
Armed_speedboat,
|
|
||||||
], "shorad":[
|
|
||||||
AirDefence.AAA_ZU_23_on_Ural_375,
|
|
||||||
AirDefence.AAA_ZU_23_Closed,
|
|
||||||
], "has_jtac": True
|
|
||||||
}
|
|
||||||
|
|
||||||
@ -1,53 +0,0 @@
|
|||||||
from dcs.planes import (
|
|
||||||
An_26B,
|
|
||||||
An_30M,
|
|
||||||
IL_76MD,
|
|
||||||
IL_78M,
|
|
||||||
MiG_15bis,
|
|
||||||
Tu_95MS,
|
|
||||||
Yak_40,
|
|
||||||
)
|
|
||||||
from dcs.ships import (
|
|
||||||
Bulk_cargo_ship_Yakushev,
|
|
||||||
CV_1143_5_Admiral_Kuznetsov,
|
|
||||||
Dry_cargo_ship_Ivanov,
|
|
||||||
Tanker_Elnya_160,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import AirDefence, Armor, Artillery, Infantry, Unarmed
|
|
||||||
|
|
||||||
Russia_1955 = {
|
|
||||||
"country": "Russia",
|
|
||||||
"side": "red",
|
|
||||||
"units": [
|
|
||||||
MiG_15bis,
|
|
||||||
|
|
||||||
IL_76MD,
|
|
||||||
IL_78M,
|
|
||||||
An_26B,
|
|
||||||
An_30M,
|
|
||||||
Yak_40,
|
|
||||||
|
|
||||||
Tu_95MS,
|
|
||||||
|
|
||||||
AirDefence.AAA_ZU_23_Closed,
|
|
||||||
AirDefence.AAA_ZU_23_on_Ural_375,
|
|
||||||
Armor.ARV_BRDM_2,
|
|
||||||
Armor.FDDM_Grad,
|
|
||||||
Armor.APC_MTLB,
|
|
||||||
Armor.MBT_T_55,
|
|
||||||
Artillery.MLRS_BM_21_Grad,
|
|
||||||
|
|
||||||
Unarmed.Transport_Ural_375,
|
|
||||||
Unarmed.Transport_UAZ_469,
|
|
||||||
|
|
||||||
CV_1143_5_Admiral_Kuznetsov,
|
|
||||||
Bulk_cargo_ship_Yakushev,
|
|
||||||
Dry_cargo_ship_Ivanov,
|
|
||||||
Tanker_Elnya_160,
|
|
||||||
|
|
||||||
# Infantry squad
|
|
||||||
Infantry.Paratrooper_AKS,
|
|
||||||
Infantry.Infantry_Soldier_Rus,
|
|
||||||
Infantry.Paratrooper_RPG_16,
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@ -1,73 +0,0 @@
|
|||||||
from dcs.helicopters import Mi_8MT
|
|
||||||
from dcs.planes import (
|
|
||||||
A_50,
|
|
||||||
An_26B,
|
|
||||||
An_30M,
|
|
||||||
IL_76MD,
|
|
||||||
IL_78M,
|
|
||||||
MiG_15bis,
|
|
||||||
MiG_19P,
|
|
||||||
MiG_21Bis,
|
|
||||||
Tu_95MS,
|
|
||||||
Yak_40,
|
|
||||||
)
|
|
||||||
from dcs.ships import (
|
|
||||||
Bulk_cargo_ship_Yakushev,
|
|
||||||
CV_1143_5_Admiral_Kuznetsov,
|
|
||||||
Dry_cargo_ship_Ivanov,
|
|
||||||
Tanker_Elnya_160,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import AirDefence, Armor, Artillery, Infantry, Unarmed
|
|
||||||
|
|
||||||
Russia_1965 = {
|
|
||||||
"country": "Russia",
|
|
||||||
"side": "red",
|
|
||||||
"units": [
|
|
||||||
MiG_15bis,
|
|
||||||
MiG_19P,
|
|
||||||
MiG_21Bis,
|
|
||||||
|
|
||||||
IL_76MD,
|
|
||||||
IL_78M,
|
|
||||||
An_26B,
|
|
||||||
An_30M,
|
|
||||||
Yak_40,
|
|
||||||
|
|
||||||
Tu_95MS,
|
|
||||||
|
|
||||||
A_50,
|
|
||||||
|
|
||||||
Mi_8MT,
|
|
||||||
|
|
||||||
AirDefence.SAM_SA_6_Kub_LN_2P25,
|
|
||||||
AirDefence.SAM_SA_2_LN_SM_90,
|
|
||||||
AirDefence.SAM_SA_3_S_125_LN_5P73,
|
|
||||||
|
|
||||||
Armor.ARV_BRDM_2,
|
|
||||||
Armor.APC_BTR_80,
|
|
||||||
Armor.ARV_BTR_RD,
|
|
||||||
Armor.IFV_BMD_1,
|
|
||||||
Armor.IFV_BMP_1,
|
|
||||||
Armor.MBT_T_55,
|
|
||||||
Artillery.MLRS_BM_21_Grad,
|
|
||||||
|
|
||||||
Unarmed.Transport_Ural_375,
|
|
||||||
Unarmed.Transport_UAZ_469,
|
|
||||||
|
|
||||||
CV_1143_5_Admiral_Kuznetsov,
|
|
||||||
Bulk_cargo_ship_Yakushev,
|
|
||||||
Dry_cargo_ship_Ivanov,
|
|
||||||
Tanker_Elnya_160,
|
|
||||||
|
|
||||||
# Infantry squad
|
|
||||||
Infantry.Paratrooper_AKS,
|
|
||||||
Infantry.Infantry_Soldier_Rus,
|
|
||||||
Infantry.Paratrooper_RPG_16,
|
|
||||||
|
|
||||||
],
|
|
||||||
"shorad":[
|
|
||||||
AirDefence.AAA_ZU_23_Closed
|
|
||||||
], "boat": [
|
|
||||||
"GrishaGroupGenerator"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@ -1,99 +0,0 @@
|
|||||||
from dcs.helicopters import (
|
|
||||||
Mi_24V,
|
|
||||||
Mi_8MT,
|
|
||||||
)
|
|
||||||
from dcs.planes import (
|
|
||||||
A_50,
|
|
||||||
An_26B,
|
|
||||||
An_30M,
|
|
||||||
IL_76MD,
|
|
||||||
IL_78M,
|
|
||||||
MiG_21Bis,
|
|
||||||
MiG_23MLD,
|
|
||||||
MiG_25PD,
|
|
||||||
MiG_29A,
|
|
||||||
Su_17M4,
|
|
||||||
Su_24M,
|
|
||||||
Su_25,
|
|
||||||
Tu_22M3,
|
|
||||||
Tu_95MS,
|
|
||||||
Yak_40,
|
|
||||||
)
|
|
||||||
from dcs.ships import (
|
|
||||||
Bulk_cargo_ship_Yakushev,
|
|
||||||
CGN_1144_2_Pyotr_Velikiy,
|
|
||||||
CV_1143_5_Admiral_Kuznetsov,
|
|
||||||
Dry_cargo_ship_Ivanov,
|
|
||||||
FF_1135M_Rezky,
|
|
||||||
Tanker_Elnya_160,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import AirDefence, Armor, Artillery, Infantry, Unarmed
|
|
||||||
|
|
||||||
Russia_1975 = {
|
|
||||||
"country": "Russia",
|
|
||||||
"side": "red",
|
|
||||||
"units": [
|
|
||||||
|
|
||||||
MiG_21Bis,
|
|
||||||
MiG_23MLD,
|
|
||||||
MiG_25PD,
|
|
||||||
MiG_29A,
|
|
||||||
|
|
||||||
Su_17M4,
|
|
||||||
Su_24M,
|
|
||||||
Su_25,
|
|
||||||
|
|
||||||
Tu_22M3,
|
|
||||||
Tu_95MS,
|
|
||||||
|
|
||||||
IL_76MD,
|
|
||||||
IL_78M,
|
|
||||||
An_26B,
|
|
||||||
An_30M,
|
|
||||||
Yak_40,
|
|
||||||
|
|
||||||
A_50,
|
|
||||||
|
|
||||||
Mi_8MT,
|
|
||||||
Mi_24V,
|
|
||||||
|
|
||||||
AirDefence.AAA_ZU_23_Closed,
|
|
||||||
AirDefence.SAM_SA_6_Kub_LN_2P25,
|
|
||||||
AirDefence.SAM_SA_3_S_125_LN_5P73,
|
|
||||||
|
|
||||||
Armor.ARV_BRDM_2,
|
|
||||||
Armor.APC_BTR_80,
|
|
||||||
Armor.IFV_BMD_1,
|
|
||||||
Armor.IFV_BMP_1,
|
|
||||||
Armor.MBT_T_55,
|
|
||||||
|
|
||||||
Artillery.SPH_2S9_Nona,
|
|
||||||
Artillery.SPH_2S1_Gvozdika,
|
|
||||||
|
|
||||||
Unarmed.Transport_Ural_375,
|
|
||||||
Unarmed.Transport_UAZ_469,
|
|
||||||
|
|
||||||
CV_1143_5_Admiral_Kuznetsov,
|
|
||||||
Bulk_cargo_ship_Yakushev,
|
|
||||||
Dry_cargo_ship_Ivanov,
|
|
||||||
Tanker_Elnya_160,
|
|
||||||
|
|
||||||
# Infantry squad
|
|
||||||
Infantry.Paratrooper_AKS,
|
|
||||||
Infantry.Infantry_Soldier_Rus,
|
|
||||||
Infantry.Paratrooper_RPG_16,
|
|
||||||
|
|
||||||
],
|
|
||||||
"shorad": [
|
|
||||||
AirDefence.AAA_ZU_23_Emplacement,
|
|
||||||
AirDefence.SPAAA_ZSU_23_4_Shilka
|
|
||||||
], "aircraft_carrier": [
|
|
||||||
CV_1143_5_Admiral_Kuznetsov,
|
|
||||||
], "destroyer": [
|
|
||||||
FF_1135M_Rezky,
|
|
||||||
], "cruiser": [
|
|
||||||
CGN_1144_2_Pyotr_Velikiy,
|
|
||||||
], "boat": [
|
|
||||||
"RussianNavyGroupGenerator", "KiloSubGroupGenerator", "MolniyaGroupGenerator"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@ -1,113 +0,0 @@
|
|||||||
from dcs.helicopters import (
|
|
||||||
Ka_50,
|
|
||||||
Mi_24V,
|
|
||||||
Mi_8MT,
|
|
||||||
)
|
|
||||||
from dcs.planes import (
|
|
||||||
A_50,
|
|
||||||
An_26B,
|
|
||||||
An_30M,
|
|
||||||
IL_76MD,
|
|
||||||
IL_78M,
|
|
||||||
MiG_23MLD,
|
|
||||||
MiG_25PD,
|
|
||||||
MiG_29A,
|
|
||||||
MiG_29S,
|
|
||||||
MiG_31,
|
|
||||||
Su_24M,
|
|
||||||
Su_25,
|
|
||||||
Su_27,
|
|
||||||
Tu_160,
|
|
||||||
Tu_22M3,
|
|
||||||
Tu_95MS,
|
|
||||||
Yak_40,
|
|
||||||
)
|
|
||||||
from dcs.ships import (
|
|
||||||
Bulk_cargo_ship_Yakushev,
|
|
||||||
CV_1143_5_Admiral_Kuznetsov,
|
|
||||||
Dry_cargo_ship_Ivanov,
|
|
||||||
FF_1135M_Rezky,
|
|
||||||
FSG_1241_1MP_Molniya,
|
|
||||||
Tanker_Elnya_160,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Artillery,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
Russia_1990 = {
|
|
||||||
"country": "Russia",
|
|
||||||
"side": "red",
|
|
||||||
"units": [
|
|
||||||
|
|
||||||
MiG_23MLD,
|
|
||||||
MiG_25PD,
|
|
||||||
MiG_29A,
|
|
||||||
MiG_29S,
|
|
||||||
MiG_31,
|
|
||||||
Su_27,
|
|
||||||
|
|
||||||
Su_24M,
|
|
||||||
Su_25,
|
|
||||||
Ka_50,
|
|
||||||
|
|
||||||
Tu_160,
|
|
||||||
Tu_22M3,
|
|
||||||
Tu_95MS,
|
|
||||||
|
|
||||||
IL_76MD,
|
|
||||||
IL_78M,
|
|
||||||
An_26B,
|
|
||||||
An_30M,
|
|
||||||
Yak_40,
|
|
||||||
|
|
||||||
A_50,
|
|
||||||
|
|
||||||
Mi_8MT,
|
|
||||||
Mi_24V,
|
|
||||||
|
|
||||||
AirDefence.AAA_ZU_23_Closed,
|
|
||||||
AirDefence.SAM_SA_6_Kub_LN_2P25,
|
|
||||||
AirDefence.SAM_SA_3_S_125_LN_5P73,
|
|
||||||
|
|
||||||
Armor.ARV_BRDM_2,
|
|
||||||
Armor.APC_BTR_80,
|
|
||||||
Armor.IFV_BMD_1,
|
|
||||||
Armor.IFV_BMP_1,
|
|
||||||
Armor.MBT_T_55,
|
|
||||||
Artillery.MLRS_9K57_Uragan_BM_27,
|
|
||||||
Artillery.SPH_2S19_Msta,
|
|
||||||
|
|
||||||
Unarmed.Transport_Ural_375,
|
|
||||||
Unarmed.Transport_UAZ_469,
|
|
||||||
|
|
||||||
CV_1143_5_Admiral_Kuznetsov,
|
|
||||||
Bulk_cargo_ship_Yakushev,
|
|
||||||
Dry_cargo_ship_Ivanov,
|
|
||||||
Tanker_Elnya_160,
|
|
||||||
|
|
||||||
# Infantry squad
|
|
||||||
Infantry.Paratrooper_AKS,
|
|
||||||
Infantry.Infantry_Soldier_Rus,
|
|
||||||
Infantry.Paratrooper_RPG_16,
|
|
||||||
],
|
|
||||||
"shorad":[
|
|
||||||
AirDefence.SAM_SA_9_Strela_1_9P31,
|
|
||||||
AirDefence.SAM_SA_13_Strela_10M3_9A35M3,
|
|
||||||
AirDefence.SPAAA_ZSU_23_4_Shilka
|
|
||||||
], "carrier_names": [
|
|
||||||
"Admiral Kuznetov",
|
|
||||||
"Admiral Gorshkov"
|
|
||||||
], "aircraft_carrier": [
|
|
||||||
CV_1143_5_Admiral_Kuznetsov,
|
|
||||||
], "destroyer": [
|
|
||||||
FF_1135M_Rezky,
|
|
||||||
], "cruiser": [
|
|
||||||
FSG_1241_1MP_Molniya,
|
|
||||||
], "boat":[
|
|
||||||
"RussianNavyGroupGenerator", "KiloSubGroupGenerator"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@ -1,119 +0,0 @@
|
|||||||
from dcs.helicopters import (
|
|
||||||
Ka_50,
|
|
||||||
Mi_24V,
|
|
||||||
Mi_28N,
|
|
||||||
Mi_8MT,
|
|
||||||
)
|
|
||||||
from dcs.planes import (
|
|
||||||
A_50,
|
|
||||||
An_26B,
|
|
||||||
An_30M,
|
|
||||||
IL_76MD,
|
|
||||||
IL_78M,
|
|
||||||
L_39ZA,
|
|
||||||
MiG_29S,
|
|
||||||
MiG_31,
|
|
||||||
Su_24M,
|
|
||||||
Su_25,
|
|
||||||
Su_25T,
|
|
||||||
Su_27,
|
|
||||||
Su_30,
|
|
||||||
Su_33,
|
|
||||||
Su_34,
|
|
||||||
Tu_160,
|
|
||||||
Tu_22M3,
|
|
||||||
Tu_95MS,
|
|
||||||
Yak_40,
|
|
||||||
)
|
|
||||||
from dcs.ships import (
|
|
||||||
Bulk_cargo_ship_Yakushev,
|
|
||||||
CV_1143_5_Admiral_Kuznetsov,
|
|
||||||
Dry_cargo_ship_Ivanov,
|
|
||||||
FF_1135M_Rezky,
|
|
||||||
FSG_1241_1MP_Molniya,
|
|
||||||
Tanker_Elnya_160,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Artillery,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
Russia_2010 = {
|
|
||||||
"country": "Russia",
|
|
||||||
"side": "red",
|
|
||||||
"units": [
|
|
||||||
|
|
||||||
Su_27,
|
|
||||||
Su_30,
|
|
||||||
Su_33,
|
|
||||||
MiG_29S,
|
|
||||||
MiG_31,
|
|
||||||
|
|
||||||
Su_25,
|
|
||||||
Su_25T,
|
|
||||||
Su_34,
|
|
||||||
Su_24M,
|
|
||||||
L_39ZA,
|
|
||||||
|
|
||||||
Tu_160,
|
|
||||||
Tu_22M3,
|
|
||||||
Tu_95MS,
|
|
||||||
|
|
||||||
IL_76MD,
|
|
||||||
IL_78M,
|
|
||||||
An_26B,
|
|
||||||
An_30M,
|
|
||||||
Yak_40,
|
|
||||||
A_50,
|
|
||||||
|
|
||||||
Ka_50,
|
|
||||||
Mi_8MT,
|
|
||||||
Mi_24V,
|
|
||||||
Mi_28N,
|
|
||||||
|
|
||||||
AirDefence.SAM_SA_19_Tunguska_2S6,
|
|
||||||
AirDefence.SAM_SA_11_Buk_LN_9A310M1,
|
|
||||||
AirDefence.SAM_SA_10_S_300PS_LN_5P85C,
|
|
||||||
|
|
||||||
Armor.APC_BTR_80,
|
|
||||||
Armor.MBT_T_90,
|
|
||||||
Armor.MBT_T_80U,
|
|
||||||
Armor.MBT_T_72B,
|
|
||||||
Armor.IFV_BMP_1,
|
|
||||||
Armor.IFV_BMP_2,
|
|
||||||
Armor.IFV_BMP_3,
|
|
||||||
|
|
||||||
Artillery.MLRS_9K57_Uragan_BM_27,
|
|
||||||
Artillery.SPH_2S19_Msta,
|
|
||||||
|
|
||||||
Unarmed.Transport_Ural_375,
|
|
||||||
Unarmed.Transport_UAZ_469,
|
|
||||||
|
|
||||||
CV_1143_5_Admiral_Kuznetsov,
|
|
||||||
Bulk_cargo_ship_Yakushev,
|
|
||||||
Dry_cargo_ship_Ivanov,
|
|
||||||
Tanker_Elnya_160,
|
|
||||||
|
|
||||||
# Infantry squad
|
|
||||||
Infantry.Paratrooper_AKS,
|
|
||||||
Infantry.Infantry_Soldier_Rus,
|
|
||||||
Infantry.Paratrooper_RPG_16,
|
|
||||||
],
|
|
||||||
"shorad":[
|
|
||||||
AirDefence.SAM_SA_19_Tunguska_2S6,
|
|
||||||
AirDefence.SAM_SA_13_Strela_10M3_9A35M3
|
|
||||||
], "aircraft_carrier": [
|
|
||||||
CV_1143_5_Admiral_Kuznetsov,
|
|
||||||
], "carrier_names": [
|
|
||||||
"Admiral Kuznetov"
|
|
||||||
], "destroyer": [
|
|
||||||
FF_1135M_Rezky,
|
|
||||||
], "cruiser": [
|
|
||||||
FSG_1241_1MP_Molniya,
|
|
||||||
], "boat": [
|
|
||||||
"RussianNavyGroupGenerator", "KiloSubGroupGenerator"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@ -1,124 +0,0 @@
|
|||||||
from dcs.helicopters import (
|
|
||||||
Ka_50,
|
|
||||||
Mi_24V,
|
|
||||||
Mi_28N,
|
|
||||||
Mi_8MT,
|
|
||||||
)
|
|
||||||
from dcs.planes import (
|
|
||||||
A_50,
|
|
||||||
An_26B,
|
|
||||||
An_30M,
|
|
||||||
IL_76MD,
|
|
||||||
IL_78M,
|
|
||||||
L_39ZA,
|
|
||||||
MiG_29S,
|
|
||||||
MiG_31,
|
|
||||||
Su_24M,
|
|
||||||
Su_25,
|
|
||||||
Su_25T,
|
|
||||||
Su_27,
|
|
||||||
Su_30,
|
|
||||||
Su_33,
|
|
||||||
Su_34,
|
|
||||||
Tu_160,
|
|
||||||
Tu_22M3,
|
|
||||||
Tu_95MS,
|
|
||||||
Yak_40,
|
|
||||||
)
|
|
||||||
from dcs.ships import (
|
|
||||||
Bulk_cargo_ship_Yakushev,
|
|
||||||
CV_1143_5_Admiral_Kuznetsov,
|
|
||||||
Dry_cargo_ship_Ivanov,
|
|
||||||
FF_1135M_Rezky,
|
|
||||||
FSG_1241_1MP_Molniya,
|
|
||||||
Tanker_Elnya_160,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Artillery,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
from pydcs_extensions.su57.su57 import Su_57
|
|
||||||
|
|
||||||
Russia_2020 = {
|
|
||||||
"country": "Russia",
|
|
||||||
"side": "red",
|
|
||||||
"units": [
|
|
||||||
|
|
||||||
Su_27,
|
|
||||||
Su_30,
|
|
||||||
Su_33,
|
|
||||||
MiG_29S,
|
|
||||||
MiG_31,
|
|
||||||
Su_57,
|
|
||||||
|
|
||||||
Su_25,
|
|
||||||
Su_25T,
|
|
||||||
Su_34,
|
|
||||||
Su_24M,
|
|
||||||
L_39ZA,
|
|
||||||
|
|
||||||
Tu_160,
|
|
||||||
Tu_22M3,
|
|
||||||
Tu_95MS,
|
|
||||||
|
|
||||||
IL_76MD,
|
|
||||||
IL_78M,
|
|
||||||
An_26B,
|
|
||||||
An_30M,
|
|
||||||
Yak_40,
|
|
||||||
A_50,
|
|
||||||
|
|
||||||
Ka_50,
|
|
||||||
Mi_8MT,
|
|
||||||
Mi_24V,
|
|
||||||
Mi_28N,
|
|
||||||
|
|
||||||
AirDefence.SAM_SA_19_Tunguska_2S6,
|
|
||||||
AirDefence.SAM_SA_11_Buk_LN_9A310M1,
|
|
||||||
AirDefence.SAM_SA_10_S_300PS_LN_5P85C,
|
|
||||||
|
|
||||||
Armor.APC_BTR_80,
|
|
||||||
Armor.MBT_T_90,
|
|
||||||
Armor.MBT_T_80U,
|
|
||||||
Armor.MBT_T_72B,
|
|
||||||
Armor.IFV_BMP_1,
|
|
||||||
Armor.IFV_BMP_2,
|
|
||||||
Armor.IFV_BMP_3,
|
|
||||||
|
|
||||||
Artillery.MLRS_9K57_Uragan_BM_27,
|
|
||||||
Artillery.SPH_2S19_Msta,
|
|
||||||
|
|
||||||
Unarmed.Transport_Ural_375,
|
|
||||||
Unarmed.Transport_UAZ_469,
|
|
||||||
|
|
||||||
CV_1143_5_Admiral_Kuznetsov,
|
|
||||||
Bulk_cargo_ship_Yakushev,
|
|
||||||
Dry_cargo_ship_Ivanov,
|
|
||||||
Tanker_Elnya_160,
|
|
||||||
|
|
||||||
# Infantry squad
|
|
||||||
Infantry.Paratrooper_AKS,
|
|
||||||
Infantry.Infantry_Soldier_Rus,
|
|
||||||
Infantry.Paratrooper_RPG_16,
|
|
||||||
],
|
|
||||||
"shorad":[
|
|
||||||
AirDefence.SAM_SA_19_Tunguska_2S6,
|
|
||||||
AirDefence.SAM_SA_13_Strela_10M3_9A35M3
|
|
||||||
], "aircraft_carrier": [
|
|
||||||
CV_1143_5_Admiral_Kuznetsov,
|
|
||||||
], "carrier_names": [
|
|
||||||
"Admiral Kuznetov"
|
|
||||||
], "destroyer": [
|
|
||||||
FF_1135M_Rezky,
|
|
||||||
], "cruiser": [
|
|
||||||
FSG_1241_1MP_Molniya,
|
|
||||||
], "boat": [
|
|
||||||
"RussianNavyGroupGenerator", "KiloSubGroupGenerator"
|
|
||||||
], "requirements": {
|
|
||||||
"SU-57 Felon By CubanAce Simulations": "https://www.digitalcombatsimulator.com/fr/files/2539621/"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,70 +0,0 @@
|
|||||||
from dcs.planes import (
|
|
||||||
AV8BNA,
|
|
||||||
C_101CC,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
FA_18C_hornet,
|
|
||||||
F_5E_3,
|
|
||||||
KC130,
|
|
||||||
KC_135,
|
|
||||||
)
|
|
||||||
from dcs.ships import (
|
|
||||||
Armed_speedboat,
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
Oliver_Hazzard_Perry_class,
|
|
||||||
Ticonderoga_class,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
Spain_1990 = {
|
|
||||||
"country": "Spain",
|
|
||||||
"side": "blue",
|
|
||||||
"units": [
|
|
||||||
FA_18C_hornet,
|
|
||||||
AV8BNA,
|
|
||||||
F_5E_3,
|
|
||||||
C_101CC,
|
|
||||||
|
|
||||||
KC_135,
|
|
||||||
KC130,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
|
|
||||||
Armor.MBT_M60A3_Patton,
|
|
||||||
Armor.MBT_Leopard_2,
|
|
||||||
Armor.APC_M113,
|
|
||||||
|
|
||||||
Unarmed.Transport_M818,
|
|
||||||
Infantry.Infantry_M4,
|
|
||||||
Infantry.Soldier_M249,
|
|
||||||
|
|
||||||
AirDefence.SAM_Hawk_PCP,
|
|
||||||
AirDefence.SAM_Avenger_M1097,
|
|
||||||
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
Armed_speedboat,
|
|
||||||
], "shorad":[
|
|
||||||
AirDefence.SAM_Avenger_M1097,
|
|
||||||
], "aircraft_carrier": [
|
|
||||||
CVN_74_John_C__Stennis, # Standing as Principe de Asturias
|
|
||||||
], "helicopter_carrier": [
|
|
||||||
LHA_1_Tarawa, # Standing as Juan Carlos
|
|
||||||
], "destroyer": [
|
|
||||||
Oliver_Hazzard_Perry_class,
|
|
||||||
], "cruiser": [
|
|
||||||
Ticonderoga_class,
|
|
||||||
], "carrier_names": [
|
|
||||||
"Principe de Asturias",
|
|
||||||
], "lhanames": [
|
|
||||||
"Juan Carlos I",
|
|
||||||
], "boat":[
|
|
||||||
"OliverHazardPerryGroupGenerator"
|
|
||||||
], "has_jtac": True
|
|
||||||
}
|
|
||||||
@ -1,45 +0,0 @@
|
|||||||
from dcs.helicopters import (
|
|
||||||
UH_1H,
|
|
||||||
)
|
|
||||||
from dcs.planes import (
|
|
||||||
AJS37,
|
|
||||||
)
|
|
||||||
from dcs.ships import (
|
|
||||||
Bulk_cargo_ship_Yakushev,
|
|
||||||
CV_1143_5_Admiral_Kuznetsov,
|
|
||||||
Dry_cargo_ship_Ivanov,
|
|
||||||
Tanker_Elnya_160,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
Sweden_1990 = {
|
|
||||||
"country": "Sweden",
|
|
||||||
"side": "blue",
|
|
||||||
"units": [
|
|
||||||
AJS37,
|
|
||||||
|
|
||||||
UH_1H,
|
|
||||||
|
|
||||||
AirDefence.SAM_Hawk_PCP,
|
|
||||||
|
|
||||||
Armor.IFV_MCV_80, # Standing as Strf 90
|
|
||||||
Armor.MBT_Leopard_2,
|
|
||||||
Armor.APC_M1126_Stryker_ICV, # Closest thing available
|
|
||||||
|
|
||||||
Unarmed.Transport_Ural_375,
|
|
||||||
Unarmed.Transport_UAZ_469,
|
|
||||||
Infantry.Soldier_AK,
|
|
||||||
CV_1143_5_Admiral_Kuznetsov,
|
|
||||||
Bulk_cargo_ship_Yakushev,
|
|
||||||
Dry_cargo_ship_Ivanov,
|
|
||||||
Tanker_Elnya_160,
|
|
||||||
],
|
|
||||||
"shorad": [
|
|
||||||
AirDefence.SAM_Avenger_M1097
|
|
||||||
], "has_jtac": True
|
|
||||||
}
|
|
||||||
@ -1,296 +0,0 @@
|
|||||||
from dcs.helicopters import (
|
|
||||||
Mi_24V,
|
|
||||||
Mi_8MT,
|
|
||||||
SA342L,
|
|
||||||
SA342M,
|
|
||||||
)
|
|
||||||
from dcs.planes import (
|
|
||||||
A_50,
|
|
||||||
An_26B,
|
|
||||||
An_30M,
|
|
||||||
IL_76MD,
|
|
||||||
IL_78M,
|
|
||||||
L_39ZA,
|
|
||||||
MiG_15bis,
|
|
||||||
MiG_19P,
|
|
||||||
MiG_21Bis,
|
|
||||||
MiG_23MLD,
|
|
||||||
MiG_25PD,
|
|
||||||
MiG_29S,
|
|
||||||
SpitfireLFMkIX,
|
|
||||||
SpitfireLFMkIXCW,
|
|
||||||
Su_17M4,
|
|
||||||
Su_24M,
|
|
||||||
Yak_40,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Artillery,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
Syria_2011 = {
|
|
||||||
"country": "Syria",
|
|
||||||
"side": "red",
|
|
||||||
"units": [
|
|
||||||
|
|
||||||
MiG_21Bis,
|
|
||||||
MiG_23MLD,
|
|
||||||
MiG_25PD,
|
|
||||||
MiG_29S,
|
|
||||||
|
|
||||||
Su_17M4,
|
|
||||||
Su_24M,
|
|
||||||
|
|
||||||
L_39ZA,
|
|
||||||
|
|
||||||
Mi_24V,
|
|
||||||
Mi_8MT,
|
|
||||||
SA342M,
|
|
||||||
SA342L,
|
|
||||||
|
|
||||||
IL_76MD,
|
|
||||||
IL_78M,
|
|
||||||
An_26B,
|
|
||||||
An_30M,
|
|
||||||
Yak_40,
|
|
||||||
A_50,
|
|
||||||
|
|
||||||
AirDefence.SAM_SA_6_Kub_LN_2P25,
|
|
||||||
AirDefence.SAM_SA_3_S_125_LN_5P73,
|
|
||||||
AirDefence.SAM_SA_2_LN_SM_90,
|
|
||||||
AirDefence.SAM_SA_8_Osa_9A33,
|
|
||||||
AirDefence.SAM_SA_11_Buk_LN_9A310M1,
|
|
||||||
AirDefence.SAM_SA_10_S_300PS_LN_5P85C,
|
|
||||||
|
|
||||||
Armor.IFV_BMP_1,
|
|
||||||
Armor.IFV_BMP_2,
|
|
||||||
Armor.APC_BTR_80,
|
|
||||||
Armor.ARV_BRDM_2,
|
|
||||||
Armor.APC_MTLB,
|
|
||||||
Armor.APC_Cobra,
|
|
||||||
Armor.MBT_T_55,
|
|
||||||
Armor.MBT_T_72B,
|
|
||||||
Armor.MBT_T_90,
|
|
||||||
Artillery.MLRS_BM_21_Grad,
|
|
||||||
Artillery.MLRS_9K57_Uragan_BM_27,
|
|
||||||
Artillery.SPH_2S1_Gvozdika,
|
|
||||||
Artillery.SPH_2S9_Nona,
|
|
||||||
|
|
||||||
Unarmed.Transport_Ural_375,
|
|
||||||
Unarmed.Transport_UAZ_469,
|
|
||||||
|
|
||||||
Infantry.Paratrooper_RPG_16,
|
|
||||||
Infantry.Soldier_AK
|
|
||||||
|
|
||||||
],
|
|
||||||
"shorad": [
|
|
||||||
AirDefence.SAM_SA_8_Osa_9A33,
|
|
||||||
AirDefence.SAM_SA_13_Strela_10M3_9A35M3,
|
|
||||||
AirDefence.SAM_SA_9_Strela_1_9P31,
|
|
||||||
AirDefence.SAM_SA_19_Tunguska_2S6,
|
|
||||||
AirDefence.AAA_ZU_23_on_Ural_375,
|
|
||||||
], "boat": [
|
|
||||||
"GrishaGroupGenerator", "MolniyaGroupGenerator"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
Syria_1973 = {
|
|
||||||
"country": "Syria",
|
|
||||||
"side": "red",
|
|
||||||
"units": [
|
|
||||||
|
|
||||||
MiG_21Bis,
|
|
||||||
MiG_19P,
|
|
||||||
MiG_15bis, # Standing as Mig-17
|
|
||||||
|
|
||||||
Su_17M4, # Standing as Su-7
|
|
||||||
Mi_8MT,
|
|
||||||
|
|
||||||
IL_76MD,
|
|
||||||
IL_78M,
|
|
||||||
An_26B,
|
|
||||||
An_30M,
|
|
||||||
Yak_40,
|
|
||||||
|
|
||||||
AirDefence.SAM_SA_6_Kub_LN_2P25,
|
|
||||||
AirDefence.SAM_SA_3_S_125_LN_5P73,
|
|
||||||
AirDefence.SAM_SA_2_LN_SM_90,
|
|
||||||
|
|
||||||
Armor.IFV_BMP_1,
|
|
||||||
Armor.APC_MTLB,
|
|
||||||
Armor.MBT_T_55,
|
|
||||||
Artillery.MLRS_BM_21_Grad,
|
|
||||||
|
|
||||||
Unarmed.Transport_Ural_375,
|
|
||||||
Unarmed.Transport_UAZ_469,
|
|
||||||
|
|
||||||
Infantry.Paratrooper_RPG_16,
|
|
||||||
Infantry.Soldier_AK
|
|
||||||
|
|
||||||
],
|
|
||||||
"shorad": [
|
|
||||||
AirDefence.AAA_ZU_23_on_Ural_375,
|
|
||||||
], "boat": [
|
|
||||||
"GrishaGroupGenerator"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
Syria_1982 = {
|
|
||||||
"country": "Syria",
|
|
||||||
"side": "red",
|
|
||||||
"units": [
|
|
||||||
|
|
||||||
MiG_21Bis,
|
|
||||||
MiG_23MLD,
|
|
||||||
MiG_25PD,
|
|
||||||
MiG_19P,
|
|
||||||
|
|
||||||
Su_17M4, # Standing as Su-7
|
|
||||||
Mi_8MT,
|
|
||||||
|
|
||||||
IL_76MD,
|
|
||||||
IL_78M,
|
|
||||||
An_26B,
|
|
||||||
An_30M,
|
|
||||||
Yak_40,
|
|
||||||
|
|
||||||
AirDefence.SAM_SA_6_Kub_LN_2P25,
|
|
||||||
AirDefence.SAM_SA_3_S_125_LN_5P73,
|
|
||||||
AirDefence.SAM_SA_2_LN_SM_90,
|
|
||||||
|
|
||||||
Armor.IFV_BMP_1,
|
|
||||||
Armor.APC_MTLB,
|
|
||||||
Armor.MBT_T_55,
|
|
||||||
Armor.MBT_T_72B,
|
|
||||||
Artillery.MLRS_BM_21_Grad,
|
|
||||||
|
|
||||||
Unarmed.Transport_Ural_375,
|
|
||||||
Unarmed.Transport_UAZ_469,
|
|
||||||
|
|
||||||
Infantry.Paratrooper_RPG_16,
|
|
||||||
Infantry.Soldier_AK
|
|
||||||
|
|
||||||
],
|
|
||||||
"shorad": [
|
|
||||||
AirDefence.AAA_ZU_23_on_Ural_375,
|
|
||||||
], "boat": [
|
|
||||||
"GrishaGroupGenerator"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
Syria_1967 = {
|
|
||||||
"country": "Syria",
|
|
||||||
"side": "red",
|
|
||||||
"units": [
|
|
||||||
|
|
||||||
MiG_21Bis,
|
|
||||||
MiG_19P,
|
|
||||||
MiG_15bis, # Standing as Mig-17
|
|
||||||
|
|
||||||
Su_17M4, # Standing as Su-7
|
|
||||||
Mi_8MT,
|
|
||||||
|
|
||||||
IL_76MD,
|
|
||||||
IL_78M,
|
|
||||||
An_26B,
|
|
||||||
An_30M,
|
|
||||||
Yak_40,
|
|
||||||
|
|
||||||
AirDefence.SAM_SA_2_LN_SM_90,
|
|
||||||
|
|
||||||
Armor.ARV_BRDM_2,
|
|
||||||
Armor.MBT_T_55,
|
|
||||||
Artillery.MLRS_BM_21_Grad,
|
|
||||||
|
|
||||||
Unarmed.Transport_Ural_375,
|
|
||||||
Unarmed.Transport_UAZ_469,
|
|
||||||
|
|
||||||
Infantry.Paratrooper_RPG_16,
|
|
||||||
Infantry.Soldier_AK
|
|
||||||
|
|
||||||
],
|
|
||||||
"shorad": [
|
|
||||||
AirDefence.AAA_ZU_23_on_Ural_375,
|
|
||||||
], "boat": [
|
|
||||||
"GrishaGroupGenerator"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
Syria_1967_WW2_Weapons = {
|
|
||||||
"country": "Syria",
|
|
||||||
"side": "red",
|
|
||||||
"units": [
|
|
||||||
|
|
||||||
MiG_21Bis,
|
|
||||||
MiG_19P,
|
|
||||||
MiG_15bis, # Standing as Mig-17
|
|
||||||
|
|
||||||
Su_17M4, # Standing as Su-7
|
|
||||||
Mi_8MT,
|
|
||||||
|
|
||||||
IL_76MD,
|
|
||||||
IL_78M,
|
|
||||||
An_26B,
|
|
||||||
An_30M,
|
|
||||||
Yak_40,
|
|
||||||
|
|
||||||
AirDefence.SAM_SA_2_LN_SM_90,
|
|
||||||
|
|
||||||
Armor.ARV_BRDM_2,
|
|
||||||
Armor.MBT_T_55,
|
|
||||||
Armor.MT_Pz_Kpfw_IV_Ausf_H,
|
|
||||||
Armor.StuG_III_Ausf__G,
|
|
||||||
Armor.TD_Jagdpanzer_IV,
|
|
||||||
Artillery.MLRS_BM_21_Grad,
|
|
||||||
|
|
||||||
Unarmed.Transport_Ural_375,
|
|
||||||
Unarmed.Transport_UAZ_469,
|
|
||||||
|
|
||||||
Infantry.Soldier_RPG,
|
|
||||||
Infantry.Soldier_AK
|
|
||||||
|
|
||||||
], "requirements": {
|
|
||||||
"WW2 Asset Pack": "https://www.digitalcombatsimulator.com/en/products/other/wwii_assets_pack/",
|
|
||||||
},
|
|
||||||
"shorad": [
|
|
||||||
AirDefence.AAA_ZU_23_on_Ural_375,
|
|
||||||
], "boat": [
|
|
||||||
"GrishaGroupGenerator"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
Arab_Armies_1948 = {
|
|
||||||
"country": "Syria",
|
|
||||||
"side": "red",
|
|
||||||
"units": [
|
|
||||||
SpitfireLFMkIX,
|
|
||||||
SpitfireLFMkIXCW,
|
|
||||||
|
|
||||||
AirDefence.SAM_SA_2_LN_SM_90,
|
|
||||||
|
|
||||||
Armor.MT_M4_Sherman,
|
|
||||||
Armor.MT_Pz_Kpfw_IV_Ausf_H,
|
|
||||||
Armor.APC_Sd_Kfz_251,
|
|
||||||
Armor.IFV_Sd_Kfz_234_2_Puma,
|
|
||||||
|
|
||||||
Unarmed.Transport_Ural_375,
|
|
||||||
Unarmed.Transport_UAZ_469,
|
|
||||||
|
|
||||||
Infantry.Infantry_SMLE_No_4_Mk_1,
|
|
||||||
|
|
||||||
AirDefence.AAA_8_8cm_Flak_36,
|
|
||||||
|
|
||||||
], "requirements": {
|
|
||||||
"WW2 Asset Pack": "https://www.digitalcombatsimulator.com/en/products/other/wwii_assets_pack/",
|
|
||||||
},
|
|
||||||
"shorad": [
|
|
||||||
AirDefence.AAA_8_8cm_Flak_36,
|
|
||||||
], "boat": [
|
|
||||||
"GrishaGroupGenerator"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@ -1,60 +0,0 @@
|
|||||||
from dcs.helicopters import (
|
|
||||||
AH_1W,
|
|
||||||
UH_1H,
|
|
||||||
)
|
|
||||||
from dcs.planes import (
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
F_16C_50,
|
|
||||||
F_4E,
|
|
||||||
KC130,
|
|
||||||
KC_135,
|
|
||||||
)
|
|
||||||
from dcs.ships import (
|
|
||||||
Armed_speedboat,
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
Turkey_2005 = {
|
|
||||||
"country": "Turkey",
|
|
||||||
"side": "blue",
|
|
||||||
"units":[
|
|
||||||
F_16C_50,
|
|
||||||
F_4E,
|
|
||||||
|
|
||||||
KC_135,
|
|
||||||
KC130,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
|
|
||||||
UH_1H,
|
|
||||||
AH_1W,
|
|
||||||
|
|
||||||
Armor.MBT_Leopard_2,
|
|
||||||
Armor.MBT_Leopard_1A3,
|
|
||||||
Armor.MBT_M60A3_Patton,
|
|
||||||
Armor.APC_Cobra,
|
|
||||||
Armor.APC_BTR_80,
|
|
||||||
|
|
||||||
Unarmed.Transport_M818,
|
|
||||||
Infantry.Infantry_M4,
|
|
||||||
|
|
||||||
AirDefence.SAM_Avenger_M1097,
|
|
||||||
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
Armed_speedboat,
|
|
||||||
], "shorad":[
|
|
||||||
AirDefence.AAA_ZU_23_Emplacement,
|
|
||||||
AirDefence.SPAAA_ZSU_23_4_Shilka
|
|
||||||
], "boat":[
|
|
||||||
"OliverHazardPerryGroupGenerator"
|
|
||||||
], "has_jtac": True
|
|
||||||
}
|
|
||||||
@ -1,58 +0,0 @@
|
|||||||
from dcs.helicopters import (
|
|
||||||
AH_64D,
|
|
||||||
)
|
|
||||||
from dcs.planes import (
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
F_16C_50,
|
|
||||||
KC130,
|
|
||||||
KC_135,
|
|
||||||
M_2000C,
|
|
||||||
Mirage_2000_5,
|
|
||||||
WingLoong_I,
|
|
||||||
)
|
|
||||||
from dcs.ships import (
|
|
||||||
Armed_speedboat,
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
UAE_2005 = {
|
|
||||||
"country": "United Arab Emirates",
|
|
||||||
"side": "blue",
|
|
||||||
"units":[
|
|
||||||
M_2000C,
|
|
||||||
Mirage_2000_5,
|
|
||||||
F_16C_50,
|
|
||||||
|
|
||||||
KC_135,
|
|
||||||
KC130,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
|
|
||||||
AH_64D,
|
|
||||||
|
|
||||||
Armor.MBT_Leclerc,
|
|
||||||
Armor.IFV_BMP_3,
|
|
||||||
Armor.TPz_Fuchs,
|
|
||||||
|
|
||||||
Unarmed.Transport_M818,
|
|
||||||
Infantry.Infantry_M4,
|
|
||||||
|
|
||||||
AirDefence.Rapier_FSA_Launcher,
|
|
||||||
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
Armed_speedboat,
|
|
||||||
], "boat":[
|
|
||||||
"OliverHazardPerryGroupGenerator"
|
|
||||||
],
|
|
||||||
"has_jtac": True,
|
|
||||||
"jtac_unit": WingLoong_I
|
|
||||||
}
|
|
||||||
@ -1,57 +0,0 @@
|
|||||||
from dcs.planes import (
|
|
||||||
A_20G,
|
|
||||||
B_17G,
|
|
||||||
P_47D_30,
|
|
||||||
P_51D,
|
|
||||||
P_51D_30_NA,
|
|
||||||
SpitfireLFMkIX,
|
|
||||||
SpitfireLFMkIXCW,
|
|
||||||
)
|
|
||||||
from dcs.ships import LCVP__Higgins_boat, LST_Mk_II, LS_Samuel_Chase
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
from game.data.building_data import WW2_ALLIES_BUILDINGS
|
|
||||||
from game.data.doctrine import WWII_DOCTRINE
|
|
||||||
|
|
||||||
UK_1944 = {
|
|
||||||
"country": "UK",
|
|
||||||
"side": "blue",
|
|
||||||
"units": [
|
|
||||||
P_51D,
|
|
||||||
P_51D_30_NA,
|
|
||||||
P_47D_30,
|
|
||||||
SpitfireLFMkIX,
|
|
||||||
SpitfireLFMkIXCW,
|
|
||||||
A_20G,
|
|
||||||
B_17G,
|
|
||||||
|
|
||||||
Armor.MT_M4A4_Sherman_Firefly,
|
|
||||||
Armor.MT_M4_Sherman,
|
|
||||||
Armor.APC_M2A1,
|
|
||||||
Armor.CT_Cromwell_IV,
|
|
||||||
Armor.ST_Centaur_IV,
|
|
||||||
Armor.HIT_Churchill_VII,
|
|
||||||
|
|
||||||
Infantry.Infantry_SMLE_No_4_Mk_1,
|
|
||||||
|
|
||||||
LS_Samuel_Chase,
|
|
||||||
LST_Mk_II,
|
|
||||||
LCVP__Higgins_boat,
|
|
||||||
|
|
||||||
Unarmed.CCKW_353,
|
|
||||||
AirDefence.AAA_Bofors_40mm,
|
|
||||||
], "shorad":[
|
|
||||||
AirDefence.AAA_Bofors_40mm,
|
|
||||||
],"requirements":{
|
|
||||||
"WW2 Asset Pack": "https://www.digitalcombatsimulator.com/en/products/other/wwii_assets_pack/",
|
|
||||||
},
|
|
||||||
"objects": WW2_ALLIES_BUILDINGS,
|
|
||||||
"doctrine": WWII_DOCTRINE,
|
|
||||||
"boat": ["WW2LSTGroupGenerator"],
|
|
||||||
"boat_count": 1
|
|
||||||
}
|
|
||||||
@ -1,74 +0,0 @@
|
|||||||
from dcs.helicopters import (
|
|
||||||
AH_64A,
|
|
||||||
SA342M,
|
|
||||||
)
|
|
||||||
from dcs.planes import (
|
|
||||||
AV8BNA,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
F_4E,
|
|
||||||
KC130,
|
|
||||||
KC_135,
|
|
||||||
Tornado_GR4,
|
|
||||||
)
|
|
||||||
from dcs.ships import (
|
|
||||||
Armed_speedboat,
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
Oliver_Hazzard_Perry_class,
|
|
||||||
Ticonderoga_class,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
UnitedKingdom_1990 = {
|
|
||||||
"country": "UK",
|
|
||||||
"side": "blue",
|
|
||||||
"units":[
|
|
||||||
AV8BNA, # Standing as BAE Harrier 2
|
|
||||||
Tornado_GR4,
|
|
||||||
F_4E,
|
|
||||||
|
|
||||||
KC_135,
|
|
||||||
KC130,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
|
|
||||||
SA342M,
|
|
||||||
AH_64A,
|
|
||||||
|
|
||||||
Armor.MBT_Challenger_II,
|
|
||||||
Armor.IFV_MCV_80,
|
|
||||||
Armor.APC_M1043_HMMWV_Armament,
|
|
||||||
Armor.ATGM_M1045_HMMWV_TOW,
|
|
||||||
|
|
||||||
Unarmed.Transport_M818,
|
|
||||||
Infantry.Infantry_M4,
|
|
||||||
Infantry.Soldier_M249,
|
|
||||||
|
|
||||||
AirDefence.Rapier_FSA_Launcher,
|
|
||||||
AirDefence.SAM_Avenger_M1097, # Standing as Starstreak
|
|
||||||
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
Armed_speedboat,
|
|
||||||
], "shorad":[
|
|
||||||
AirDefence.SAM_Avenger_M1097,
|
|
||||||
], "helicopter_carrier": [
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
], "destroyer": [
|
|
||||||
Oliver_Hazzard_Perry_class,
|
|
||||||
], "cruiser": [
|
|
||||||
Ticonderoga_class,
|
|
||||||
], "lhanames": [
|
|
||||||
"HMS Invincible",
|
|
||||||
"HMS Illustrious",
|
|
||||||
"HMS Ark Royal",
|
|
||||||
], "boat":[
|
|
||||||
"ArleighBurkeGroupGenerator", "OliverHazardPerryGroupGenerator"
|
|
||||||
], "has_jtac": True
|
|
||||||
}
|
|
||||||
@ -1,79 +0,0 @@
|
|||||||
from dcs.helicopters import (
|
|
||||||
Mi_24V,
|
|
||||||
Mi_8MT,
|
|
||||||
)
|
|
||||||
from dcs.planes import (
|
|
||||||
A_50,
|
|
||||||
An_26B,
|
|
||||||
An_30M,
|
|
||||||
IL_76MD,
|
|
||||||
IL_78M,
|
|
||||||
L_39ZA,
|
|
||||||
MiG_29S,
|
|
||||||
Su_24M,
|
|
||||||
Su_25,
|
|
||||||
Su_25T,
|
|
||||||
Su_27,
|
|
||||||
Yak_40,
|
|
||||||
)
|
|
||||||
from dcs.ships import (
|
|
||||||
Bulk_cargo_ship_Yakushev,
|
|
||||||
CV_1143_5_Admiral_Kuznetsov,
|
|
||||||
Dry_cargo_ship_Ivanov,
|
|
||||||
Tanker_Elnya_160,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
Ukraine_2010 = {
|
|
||||||
"country": "Ukraine",
|
|
||||||
"side": "blue",
|
|
||||||
"units": [
|
|
||||||
Su_25,
|
|
||||||
Su_25T,
|
|
||||||
Su_24M,
|
|
||||||
Su_27,
|
|
||||||
MiG_29S,
|
|
||||||
L_39ZA,
|
|
||||||
|
|
||||||
IL_76MD,
|
|
||||||
IL_78M,
|
|
||||||
An_26B,
|
|
||||||
An_30M,
|
|
||||||
Yak_40,
|
|
||||||
A_50,
|
|
||||||
|
|
||||||
Mi_8MT,
|
|
||||||
Mi_24V,
|
|
||||||
|
|
||||||
AirDefence.SAM_SA_3_S_125_LN_5P73,
|
|
||||||
AirDefence.SAM_SA_11_Buk_LN_9A310M1,
|
|
||||||
AirDefence.SAM_SA_10_S_300PS_LN_5P85C,
|
|
||||||
|
|
||||||
Armor.APC_M1043_HMMWV_Armament,
|
|
||||||
Armor.IFV_BMP_3,
|
|
||||||
Armor.IFV_BMP_2,
|
|
||||||
Armor.APC_BTR_80,
|
|
||||||
Armor.MBT_T_80U,
|
|
||||||
Armor.MBT_T_72B,
|
|
||||||
|
|
||||||
Unarmed.Transport_Ural_375,
|
|
||||||
Unarmed.Transport_UAZ_469,
|
|
||||||
Infantry.Soldier_AK,
|
|
||||||
CV_1143_5_Admiral_Kuznetsov,
|
|
||||||
Bulk_cargo_ship_Yakushev,
|
|
||||||
Dry_cargo_ship_Ivanov,
|
|
||||||
Tanker_Elnya_160,
|
|
||||||
],
|
|
||||||
"shorad":[
|
|
||||||
AirDefence.SAM_SA_19_Tunguska_2S6,
|
|
||||||
AirDefence.SAM_SA_13_Strela_10M3_9A35M3,
|
|
||||||
AirDefence.AAA_ZU_23_on_Ural_375
|
|
||||||
], "boat":[
|
|
||||||
"GrishaGroupGenerator"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@ -1,108 +0,0 @@
|
|||||||
from dcs.helicopters import (
|
|
||||||
AH_64D,
|
|
||||||
Ka_50,
|
|
||||||
SA342L,
|
|
||||||
SA342M,
|
|
||||||
UH_1H,
|
|
||||||
)
|
|
||||||
from dcs.planes import (
|
|
||||||
B_1B,
|
|
||||||
B_52H,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
FA_18C_hornet,
|
|
||||||
F_15C,
|
|
||||||
F_15E,
|
|
||||||
F_16C_50,
|
|
||||||
F_5E_3,
|
|
||||||
KC130,
|
|
||||||
KC_135,
|
|
||||||
Su_27,
|
|
||||||
)
|
|
||||||
from dcs.ships import (
|
|
||||||
Armed_speedboat,
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
Oliver_Hazzard_Perry_class,
|
|
||||||
Ticonderoga_class,
|
|
||||||
USS_Arleigh_Burke_IIa,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Artillery,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
US_Aggressors = {
|
|
||||||
"country": "USAF Aggressors",
|
|
||||||
"side": "red",
|
|
||||||
"units": [
|
|
||||||
|
|
||||||
F_15C,
|
|
||||||
F_15E,
|
|
||||||
F_5E_3,
|
|
||||||
FA_18C_hornet,
|
|
||||||
F_16C_50,
|
|
||||||
Su_27,
|
|
||||||
|
|
||||||
B_1B,
|
|
||||||
B_52H,
|
|
||||||
|
|
||||||
KC_135,
|
|
||||||
KC130,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
|
|
||||||
UH_1H,
|
|
||||||
AH_64D,
|
|
||||||
Ka_50,
|
|
||||||
SA342M,
|
|
||||||
SA342L,
|
|
||||||
|
|
||||||
Armor.MBT_M1A2_Abrams,
|
|
||||||
Armor.MBT_Leopard_2,
|
|
||||||
Armor.ATGM_M1134_Stryker,
|
|
||||||
Armor.IFV_M2A2_Bradley,
|
|
||||||
Armor.APC_M1043_HMMWV_Armament,
|
|
||||||
|
|
||||||
Artillery.MLRS_M270,
|
|
||||||
Artillery.SPH_M109_Paladin,
|
|
||||||
|
|
||||||
Unarmed.Transport_M818,
|
|
||||||
Infantry.Infantry_M4,
|
|
||||||
Infantry.Soldier_M249,
|
|
||||||
|
|
||||||
AirDefence.SAM_Hawk_PCP,
|
|
||||||
AirDefence.SAM_Patriot_EPP_III,
|
|
||||||
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
Armed_speedboat,
|
|
||||||
], "shorad": [
|
|
||||||
AirDefence.SAM_Avenger_M1097,
|
|
||||||
], "aircraft_carrier": [
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
], "helicopter_carrier": [
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
], "destroyer": [
|
|
||||||
Oliver_Hazzard_Perry_class,
|
|
||||||
USS_Arleigh_Burke_IIa,
|
|
||||||
], "cruiser": [
|
|
||||||
Ticonderoga_class,
|
|
||||||
], "carrier_names": [
|
|
||||||
"CVN-71 Theodore Roosevelt",
|
|
||||||
"CVN-72 Abraham Lincoln",
|
|
||||||
"CVN-73 George Washington",
|
|
||||||
"CVN-74 John C. Stennis",
|
|
||||||
], "lhanames": [
|
|
||||||
"LHA-1 Tarawa",
|
|
||||||
"LHA-2 Saipan",
|
|
||||||
"LHA-3 Belleau Wood",
|
|
||||||
"LHA-4 Nassau",
|
|
||||||
"LHA-5 Peleliu"
|
|
||||||
], "boat":[
|
|
||||||
"ArleighBurkeGroupGenerator", "OliverHazardPerryGroupGenerator"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@ -1,100 +0,0 @@
|
|||||||
from dcs.planes import (
|
|
||||||
A_20G,
|
|
||||||
B_17G,
|
|
||||||
P_47D_30,
|
|
||||||
P_51D,
|
|
||||||
P_51D_30_NA,
|
|
||||||
SpitfireLFMkIX,
|
|
||||||
SpitfireLFMkIXCW,
|
|
||||||
)
|
|
||||||
from dcs.ships import LCVP__Higgins_boat, LST_Mk_II, LS_Samuel_Chase
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Artillery,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
from game.data.building_data import WW2_ALLIES_BUILDINGS
|
|
||||||
from game.data.doctrine import WWII_DOCTRINE
|
|
||||||
|
|
||||||
USA_1944 = {
|
|
||||||
"country": "USA",
|
|
||||||
"side": "blue",
|
|
||||||
"units": [
|
|
||||||
P_51D,
|
|
||||||
P_51D_30_NA,
|
|
||||||
P_47D_30,
|
|
||||||
A_20G,
|
|
||||||
B_17G,
|
|
||||||
|
|
||||||
Armor.MT_M4_Sherman,
|
|
||||||
Armor.M30_Cargo_Carrier,
|
|
||||||
Armor.APC_M2A1,
|
|
||||||
Armor.LAC_M8_Greyhound,
|
|
||||||
Armor.TD_M10_GMC,
|
|
||||||
Artillery.M12_GMC,
|
|
||||||
|
|
||||||
Infantry.Infantry_M1_Garand,
|
|
||||||
|
|
||||||
LS_Samuel_Chase,
|
|
||||||
LST_Mk_II,
|
|
||||||
LCVP__Higgins_boat,
|
|
||||||
|
|
||||||
Unarmed.CCKW_353,
|
|
||||||
AirDefence.AAA_Bofors_40mm,
|
|
||||||
], "shorad":[
|
|
||||||
AirDefence.AAA_Bofors_40mm,
|
|
||||||
],"requirements":{
|
|
||||||
"WW2 Asset Pack": "https://www.digitalcombatsimulator.com/en/products/other/wwii_assets_pack/",
|
|
||||||
},
|
|
||||||
"objects": WW2_ALLIES_BUILDINGS,
|
|
||||||
"doctrine": WWII_DOCTRINE,
|
|
||||||
"boat": ["WW2LSTGroupGenerator"],
|
|
||||||
"boat_count": 2
|
|
||||||
}
|
|
||||||
|
|
||||||
ALLIES_1944 = {
|
|
||||||
"country": "USA",
|
|
||||||
"side": "blue",
|
|
||||||
"units": [
|
|
||||||
P_51D,
|
|
||||||
P_51D_30_NA,
|
|
||||||
P_47D_30,
|
|
||||||
SpitfireLFMkIX,
|
|
||||||
SpitfireLFMkIXCW,
|
|
||||||
A_20G,
|
|
||||||
B_17G,
|
|
||||||
|
|
||||||
Armor.MT_M4_Sherman,
|
|
||||||
Armor.MT_M4A4_Sherman_Firefly,
|
|
||||||
Armor.CT_Cromwell_IV,
|
|
||||||
Armor.M30_Cargo_Carrier,
|
|
||||||
Armor.APC_M2A1,
|
|
||||||
Armor.CT_Cromwell_IV,
|
|
||||||
Armor.ST_Centaur_IV,
|
|
||||||
Armor.HIT_Churchill_VII,
|
|
||||||
Armor.LAC_M8_Greyhound,
|
|
||||||
Armor.TD_M10_GMC,
|
|
||||||
Artillery.M12_GMC,
|
|
||||||
|
|
||||||
Infantry.Infantry_M1_Garand,
|
|
||||||
Infantry.Infantry_SMLE_No_4_Mk_1,
|
|
||||||
|
|
||||||
LS_Samuel_Chase,
|
|
||||||
LST_Mk_II,
|
|
||||||
LCVP__Higgins_boat,
|
|
||||||
|
|
||||||
Unarmed.CCKW_353,
|
|
||||||
AirDefence.AAA_Bofors_40mm,
|
|
||||||
], "shorad":[
|
|
||||||
AirDefence.AAA_Bofors_40mm,
|
|
||||||
],"requirements":{
|
|
||||||
"WW2 Asset Pack": "https://www.digitalcombatsimulator.com/en/products/other/wwii_assets_pack/",
|
|
||||||
},
|
|
||||||
"objects": WW2_ALLIES_BUILDINGS,
|
|
||||||
"doctrine": WWII_DOCTRINE,
|
|
||||||
"boat": ["WW2LSTGroupGenerator"],
|
|
||||||
"boat_count": 2
|
|
||||||
}
|
|
||||||
@ -1,51 +0,0 @@
|
|||||||
from dcs.planes import (
|
|
||||||
B_52H,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
F_86F_Sabre,
|
|
||||||
KC130,
|
|
||||||
KC_135,
|
|
||||||
P_51D,
|
|
||||||
)
|
|
||||||
from dcs.ships import (
|
|
||||||
Armed_speedboat,
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
USA_1955 = {
|
|
||||||
"country": "USA",
|
|
||||||
"side": "blue",
|
|
||||||
"units": [
|
|
||||||
F_86F_Sabre,
|
|
||||||
P_51D,
|
|
||||||
|
|
||||||
B_52H,
|
|
||||||
|
|
||||||
KC_135,
|
|
||||||
KC130,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
|
|
||||||
Armor.MT_M4A4_Sherman_Firefly,
|
|
||||||
Armor.MT_M4_Sherman,
|
|
||||||
Armor.MBT_M60A3_Patton,
|
|
||||||
Armor.APC_M2A1,
|
|
||||||
Armor.M30_Cargo_Carrier,
|
|
||||||
|
|
||||||
Unarmed.Transport_M818,
|
|
||||||
Infantry.Infantry_M4,
|
|
||||||
|
|
||||||
AirDefence.AAA_Bofors_40mm,
|
|
||||||
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
Armed_speedboat,
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@ -1,57 +0,0 @@
|
|||||||
from dcs.helicopters import (
|
|
||||||
UH_1H,
|
|
||||||
)
|
|
||||||
from dcs.planes import (
|
|
||||||
B_52H,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
F_86F_Sabre,
|
|
||||||
KC130,
|
|
||||||
KC_135,
|
|
||||||
P_51D,
|
|
||||||
)
|
|
||||||
from dcs.ships import (
|
|
||||||
Armed_speedboat,
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
USA_1960 = {
|
|
||||||
"country": "USA",
|
|
||||||
"side": "blue",
|
|
||||||
"units": [
|
|
||||||
F_86F_Sabre,
|
|
||||||
P_51D,
|
|
||||||
|
|
||||||
B_52H,
|
|
||||||
|
|
||||||
KC_135,
|
|
||||||
KC130,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
|
|
||||||
UH_1H,
|
|
||||||
|
|
||||||
Armor.MBT_M60A3_Patton,
|
|
||||||
Armor.APC_M113,
|
|
||||||
|
|
||||||
Unarmed.Transport_M818,
|
|
||||||
Infantry.Infantry_M4,
|
|
||||||
Infantry.Soldier_M249,
|
|
||||||
|
|
||||||
AirDefence.AAA_Vulcan_M163,
|
|
||||||
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
Armed_speedboat,
|
|
||||||
],
|
|
||||||
"shorad":[
|
|
||||||
AirDefence.AAA_Vulcan_M163
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@ -1,60 +0,0 @@
|
|||||||
from dcs.helicopters import (
|
|
||||||
UH_1H,
|
|
||||||
)
|
|
||||||
from dcs.planes import (
|
|
||||||
B_52H,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
F_4E,
|
|
||||||
F_5E_3,
|
|
||||||
KC130,
|
|
||||||
KC_135,
|
|
||||||
)
|
|
||||||
from dcs.ships import (
|
|
||||||
Armed_speedboat,
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
USA_1965 = {
|
|
||||||
"country": "USA",
|
|
||||||
"side": "blue",
|
|
||||||
"units": [
|
|
||||||
|
|
||||||
F_5E_3,
|
|
||||||
F_4E,
|
|
||||||
|
|
||||||
KC_135,
|
|
||||||
KC130,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
|
|
||||||
B_52H,
|
|
||||||
|
|
||||||
UH_1H,
|
|
||||||
|
|
||||||
Armor.MBT_M60A3_Patton,
|
|
||||||
Armor.APC_M113,
|
|
||||||
Unarmed.Transport_M818,
|
|
||||||
Infantry.Infantry_M4,
|
|
||||||
Infantry.Soldier_M249,
|
|
||||||
|
|
||||||
AirDefence.SAM_Chaparral_M48,
|
|
||||||
AirDefence.SAM_Hawk_PCP,
|
|
||||||
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
Armed_speedboat,
|
|
||||||
],
|
|
||||||
"shorad":[
|
|
||||||
AirDefence.AAA_Vulcan_M163,
|
|
||||||
AirDefence.SAM_Chaparral_M48
|
|
||||||
], "boat":[
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@ -1,99 +0,0 @@
|
|||||||
from dcs.helicopters import (
|
|
||||||
AH_64A,
|
|
||||||
UH_1H,
|
|
||||||
)
|
|
||||||
from dcs.planes import (
|
|
||||||
AV8BNA,
|
|
||||||
A_10A,
|
|
||||||
B_1B,
|
|
||||||
B_52H,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
FA_18C_hornet,
|
|
||||||
F_117A,
|
|
||||||
F_14B,
|
|
||||||
F_15C,
|
|
||||||
F_15E,
|
|
||||||
F_16C_50,
|
|
||||||
KC130,
|
|
||||||
KC_135,
|
|
||||||
)
|
|
||||||
from dcs.ships import (
|
|
||||||
Armed_speedboat,
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
Oliver_Hazzard_Perry_class,
|
|
||||||
Ticonderoga_class,
|
|
||||||
USS_Arleigh_Burke_IIa,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
USA_1990 = {
|
|
||||||
"country": "USA",
|
|
||||||
"side": "blue",
|
|
||||||
"units": [
|
|
||||||
F_15C,
|
|
||||||
F_15E,
|
|
||||||
F_14B,
|
|
||||||
FA_18C_hornet,
|
|
||||||
F_16C_50,
|
|
||||||
|
|
||||||
A_10A,
|
|
||||||
AV8BNA,
|
|
||||||
|
|
||||||
B_1B,
|
|
||||||
B_52H,
|
|
||||||
F_117A,
|
|
||||||
|
|
||||||
KC_135,
|
|
||||||
KC130,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
|
|
||||||
UH_1H,
|
|
||||||
AH_64A,
|
|
||||||
|
|
||||||
Armor.MBT_M1A2_Abrams,
|
|
||||||
Armor.IFV_LAV_25,
|
|
||||||
Armor.APC_M1043_HMMWV_Armament,
|
|
||||||
Armor.ATGM_M1045_HMMWV_TOW,
|
|
||||||
Armor.ATGM_M1134_Stryker,
|
|
||||||
Unarmed.Transport_M818,
|
|
||||||
Infantry.Infantry_M4,
|
|
||||||
Infantry.Soldier_M249,
|
|
||||||
|
|
||||||
AirDefence.SAM_Hawk_PCP,
|
|
||||||
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
Armed_speedboat,
|
|
||||||
], "shorad":[
|
|
||||||
AirDefence.SAM_Avenger_M1097,
|
|
||||||
], "aircraft_carrier": [
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
], "helicopter_carrier": [
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
], "destroyer": [
|
|
||||||
Oliver_Hazzard_Perry_class,
|
|
||||||
USS_Arleigh_Burke_IIa,
|
|
||||||
], "cruiser": [
|
|
||||||
Ticonderoga_class,
|
|
||||||
], "carrier_names": [
|
|
||||||
"CVN-72 Abraham Lincoln",
|
|
||||||
"CVN-73 Georges Washington",
|
|
||||||
"CVN-74 John C. Stennis",
|
|
||||||
], "lhanames": [
|
|
||||||
"LHA-1 Tarawa",
|
|
||||||
"LHA-2 Saipan",
|
|
||||||
"LHA-3 Belleau Wood",
|
|
||||||
"LHA-4 Nassau",
|
|
||||||
"LHA-5 Peleliu"
|
|
||||||
], "boat":[
|
|
||||||
"ArleighBurkeGroupGenerator", "OliverHazardPerryGroupGenerator"
|
|
||||||
], "has_jtac": True
|
|
||||||
}
|
|
||||||
@ -1,109 +0,0 @@
|
|||||||
from dcs.helicopters import (
|
|
||||||
AH_64D,
|
|
||||||
UH_1H,
|
|
||||||
)
|
|
||||||
from dcs.planes import (
|
|
||||||
AV8BNA,
|
|
||||||
A_10C,
|
|
||||||
A_10C_2,
|
|
||||||
B_1B,
|
|
||||||
B_52H,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
FA_18C_hornet,
|
|
||||||
F_117A,
|
|
||||||
F_14B,
|
|
||||||
F_15C,
|
|
||||||
F_15E,
|
|
||||||
F_16C_50,
|
|
||||||
KC130,
|
|
||||||
KC_135,
|
|
||||||
MQ_9_Reaper,
|
|
||||||
)
|
|
||||||
from dcs.ships import (
|
|
||||||
Armed_speedboat,
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
Ticonderoga_class,
|
|
||||||
USS_Arleigh_Burke_IIa,
|
|
||||||
)
|
|
||||||
from dcs.vehicles import (
|
|
||||||
AirDefence,
|
|
||||||
Armor,
|
|
||||||
Artillery,
|
|
||||||
Infantry,
|
|
||||||
Unarmed,
|
|
||||||
)
|
|
||||||
|
|
||||||
USA_2005 = {
|
|
||||||
"country": "USA",
|
|
||||||
"side": "blue",
|
|
||||||
"units": [
|
|
||||||
F_15C,
|
|
||||||
F_15E,
|
|
||||||
F_14B,
|
|
||||||
FA_18C_hornet,
|
|
||||||
F_16C_50,
|
|
||||||
A_10C,
|
|
||||||
A_10C_2,
|
|
||||||
AV8BNA,
|
|
||||||
MQ_9_Reaper,
|
|
||||||
|
|
||||||
B_1B,
|
|
||||||
B_52H,
|
|
||||||
F_117A,
|
|
||||||
|
|
||||||
KC_135,
|
|
||||||
KC130,
|
|
||||||
C_130,
|
|
||||||
E_3A,
|
|
||||||
|
|
||||||
UH_1H,
|
|
||||||
AH_64D,
|
|
||||||
|
|
||||||
Armor.MBT_M1A2_Abrams,
|
|
||||||
Armor.ATGM_M1134_Stryker,
|
|
||||||
Armor.APC_M1126_Stryker_ICV,
|
|
||||||
Armor.IFV_M2A2_Bradley,
|
|
||||||
Armor.IFV_LAV_25,
|
|
||||||
Armor.APC_M1043_HMMWV_Armament,
|
|
||||||
Armor.ATGM_M1045_HMMWV_TOW,
|
|
||||||
|
|
||||||
Artillery.MLRS_M270,
|
|
||||||
Artillery.SPH_M109_Paladin,
|
|
||||||
|
|
||||||
Unarmed.Transport_M818,
|
|
||||||
Infantry.Infantry_M4,
|
|
||||||
Infantry.Soldier_M249,
|
|
||||||
|
|
||||||
AirDefence.SAM_Hawk_PCP,
|
|
||||||
AirDefence.SAM_Patriot_EPP_III,
|
|
||||||
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
Armed_speedboat,
|
|
||||||
], "shorad": [
|
|
||||||
AirDefence.SAM_Avenger_M1097,
|
|
||||||
], "aircraft_carrier": [
|
|
||||||
CVN_74_John_C__Stennis,
|
|
||||||
], "helicopter_carrier": [
|
|
||||||
LHA_1_Tarawa,
|
|
||||||
], "destroyer": [
|
|
||||||
USS_Arleigh_Burke_IIa,
|
|
||||||
], "cruiser": [
|
|
||||||
Ticonderoga_class,
|
|
||||||
], "carrier_names": [
|
|
||||||
"CVN-71 Theodore Roosevelt",
|
|
||||||
"CVN-72 Abraham Lincoln",
|
|
||||||
"CVN-73 George Washington",
|
|
||||||
"CVN-74 John C. Stennis",
|
|
||||||
], "lhanames": [
|
|
||||||
"LHA-1 Tarawa",
|
|
||||||
"LHA-2 Saipan",
|
|
||||||
"LHA-3 Belleau Wood",
|
|
||||||
"LHA-4 Nassau",
|
|
||||||
"LHA-5 Peleliu"
|
|
||||||
], "boat":[
|
|
||||||
"ArleighBurkeGroupGenerator"
|
|
||||||
], "has_jtac": True
|
|
||||||
}
|
|
||||||
50
game/game.py
50
game/game.py
@ -26,6 +26,7 @@ from . import persistency
|
|||||||
from .debriefing import Debriefing
|
from .debriefing import Debriefing
|
||||||
from .event.event import Event, UnitsDeliveryEvent
|
from .event.event import Event, UnitsDeliveryEvent
|
||||||
from .event.frontlineattack import FrontlineAttackEvent
|
from .event.frontlineattack import FrontlineAttackEvent
|
||||||
|
from .factions.faction import Faction
|
||||||
from .infos.information import Information
|
from .infos.information import Information
|
||||||
from .settings import Settings
|
from .settings import Settings
|
||||||
from plugin import LuaPluginManager
|
from plugin import LuaPluginManager
|
||||||
@ -76,9 +77,9 @@ class Game:
|
|||||||
self.events: List[Event] = []
|
self.events: List[Event] = []
|
||||||
self.theater = theater
|
self.theater = theater
|
||||||
self.player_name = player_name
|
self.player_name = player_name
|
||||||
self.player_country = db.FACTIONS[player_name]["country"]
|
self.player_country = db.FACTIONS[player_name].country
|
||||||
self.enemy_name = enemy_name
|
self.enemy_name = enemy_name
|
||||||
self.enemy_country = db.FACTIONS[enemy_name]["country"]
|
self.enemy_country = db.FACTIONS[enemy_name].country
|
||||||
self.turn = 0
|
self.turn = 0
|
||||||
self.date = date(start_date.year, start_date.month, start_date.day)
|
self.date = date(start_date.year, start_date.month, start_date.day)
|
||||||
self.game_stats = GameStats()
|
self.game_stats = GameStats()
|
||||||
@ -123,11 +124,11 @@ class Game:
|
|||||||
self.enemy_country = "Russia"
|
self.enemy_country = "Russia"
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def player_faction(self) -> Dict[str, Any]:
|
def player_faction(self) -> Faction:
|
||||||
return db.FACTIONS[self.player_name]
|
return db.FACTIONS[self.player_name]
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def enemy_faction(self) -> Dict[str, Any]:
|
def enemy_faction(self) -> Faction:
|
||||||
return db.FACTIONS[self.enemy_name]
|
return db.FACTIONS[self.enemy_name]
|
||||||
|
|
||||||
def _roll(self, prob, mult):
|
def _roll(self, prob, mult):
|
||||||
@ -141,8 +142,10 @@ class Game:
|
|||||||
self.events.append(event_class(self, player_cp, enemy_cp, enemy_cp.position, self.player_name, self.enemy_name))
|
self.events.append(event_class(self, player_cp, enemy_cp, enemy_cp.position, self.player_name, self.enemy_name))
|
||||||
|
|
||||||
def _generate_events(self):
|
def _generate_events(self):
|
||||||
for player_cp, enemy_cp in self.theater.conflicts(True):
|
for front_line in self.theater.conflicts(True):
|
||||||
self._generate_player_event(FrontlineAttackEvent, player_cp, enemy_cp)
|
self._generate_player_event(FrontlineAttackEvent,
|
||||||
|
front_line.control_point_a,
|
||||||
|
front_line.control_point_b)
|
||||||
|
|
||||||
def commision_unit_types(self, cp: ControlPoint, for_task: Task) -> List[UnitType]:
|
def commision_unit_types(self, cp: ControlPoint, for_task: Task) -> List[UnitType]:
|
||||||
importance_factor = (cp.importance - IMPORTANCE_LOW) / (IMPORTANCE_HIGH - IMPORTANCE_LOW)
|
importance_factor = (cp.importance - IMPORTANCE_LOW) / (IMPORTANCE_HIGH - IMPORTANCE_LOW)
|
||||||
@ -235,10 +238,10 @@ class Game:
|
|||||||
if not hasattr(self, "conditions"):
|
if not hasattr(self, "conditions"):
|
||||||
self.conditions = self.generate_conditions()
|
self.conditions = self.generate_conditions()
|
||||||
|
|
||||||
def pass_turn(self, no_action=False):
|
def pass_turn(self, no_action: bool = False) -> None:
|
||||||
logging.info("Pass turn")
|
logging.info("Pass turn")
|
||||||
self.informations.append(Information("End of turn #" + str(self.turn), "-" * 40, 0))
|
self.informations.append(Information("End of turn #" + str(self.turn), "-" * 40, 0))
|
||||||
self.turn = self.turn + 1
|
self.turn += 1
|
||||||
|
|
||||||
for event in self.events:
|
for event in self.events:
|
||||||
if self.settings.version == "dev":
|
if self.settings.version == "dev":
|
||||||
@ -259,6 +262,14 @@ class Game:
|
|||||||
if not cp.is_carrier and not cp.is_lha:
|
if not cp.is_carrier and not cp.is_lha:
|
||||||
cp.base.affect_strength(-PLAYER_BASE_STRENGTH_RECOVERY)
|
cp.base.affect_strength(-PLAYER_BASE_STRENGTH_RECOVERY)
|
||||||
|
|
||||||
|
self.conditions = self.generate_conditions()
|
||||||
|
|
||||||
|
self.initialize_turn()
|
||||||
|
|
||||||
|
# Autosave progress
|
||||||
|
persistency.autosave(self)
|
||||||
|
|
||||||
|
def initialize_turn(self) -> None:
|
||||||
self.events = []
|
self.events = []
|
||||||
self._generate_events()
|
self._generate_events()
|
||||||
|
|
||||||
@ -269,8 +280,6 @@ class Game:
|
|||||||
for cp in self.theater.controlpoints:
|
for cp in self.theater.controlpoints:
|
||||||
self.aircraft_inventory.set_from_control_point(cp)
|
self.aircraft_inventory.set_from_control_point(cp)
|
||||||
|
|
||||||
self.conditions = self.generate_conditions()
|
|
||||||
|
|
||||||
# Plan flights & combat for next turn
|
# Plan flights & combat for next turn
|
||||||
self.__culling_points = self.compute_conflicts_position()
|
self.__culling_points = self.compute_conflicts_position()
|
||||||
self.ground_planners = {}
|
self.ground_planners = {}
|
||||||
@ -284,9 +293,6 @@ class Game:
|
|||||||
gplanner.plan_groundwar()
|
gplanner.plan_groundwar()
|
||||||
self.ground_planners[cp.id] = gplanner
|
self.ground_planners[cp.id] = gplanner
|
||||||
|
|
||||||
# Autosave progress
|
|
||||||
persistency.autosave(self)
|
|
||||||
|
|
||||||
def _enemy_reinforcement(self):
|
def _enemy_reinforcement(self):
|
||||||
"""
|
"""
|
||||||
Compute and commision reinforcement for enemy bases
|
Compute and commision reinforcement for enemy bases
|
||||||
@ -314,7 +320,7 @@ class Game:
|
|||||||
potential_cp_armor = self.theater.enemy_points()
|
potential_cp_armor = self.theater.enemy_points()
|
||||||
|
|
||||||
i = 0
|
i = 0
|
||||||
potential_units = [u for u in db.FACTIONS[self.enemy_name]["units"] if u in db.UNIT_BY_TASK[PinpointStrike]]
|
potential_units = db.FACTIONS[self.enemy_name].frontline_units
|
||||||
|
|
||||||
print("Enemy Recruiting")
|
print("Enemy Recruiting")
|
||||||
print(potential_cp_armor)
|
print(potential_cp_armor)
|
||||||
@ -340,8 +346,9 @@ class Game:
|
|||||||
if budget_for_armored_units > 0:
|
if budget_for_armored_units > 0:
|
||||||
budget_for_aircraft += budget_for_armored_units
|
budget_for_aircraft += budget_for_armored_units
|
||||||
|
|
||||||
potential_units = [u for u in db.FACTIONS[self.enemy_name]["units"] if
|
potential_units = [u for u in db.FACTIONS[self.enemy_name].aircrafts
|
||||||
u in db.UNIT_BY_TASK[CAS] or u in db.UNIT_BY_TASK[CAP]]
|
if u in db.UNIT_BY_TASK[CAS] or u in db.UNIT_BY_TASK[CAP]]
|
||||||
|
|
||||||
if len(potential_units) > 0 and len(potential_cp_armor) > 0:
|
if len(potential_units) > 0 and len(potential_cp_armor) > 0:
|
||||||
while budget_for_aircraft > 0:
|
while budget_for_aircraft > 0:
|
||||||
i = i + 1
|
i = i + 1
|
||||||
@ -388,10 +395,13 @@ class Game:
|
|||||||
points = []
|
points = []
|
||||||
|
|
||||||
# By default, use the existing frontline conflict position
|
# By default, use the existing frontline conflict position
|
||||||
for conflict in self.theater.conflicts():
|
for front_line in self.theater.conflicts():
|
||||||
points.append(Conflict.frontline_position(self.theater, conflict[0], conflict[1])[0])
|
position = Conflict.frontline_position(self.theater,
|
||||||
points.append(conflict[0].position)
|
front_line.control_point_a,
|
||||||
points.append(conflict[1].position)
|
front_line.control_point_b)
|
||||||
|
points.append(position[0])
|
||||||
|
points.append(front_line.control_point_a.position)
|
||||||
|
points.append(front_line.control_point_b.position)
|
||||||
|
|
||||||
# If there is no conflict take the center point between the two nearest opposing bases
|
# If there is no conflict take the center point between the two nearest opposing bases
|
||||||
if len(points) == 0:
|
if len(points) == 0:
|
||||||
|
|||||||
@ -67,9 +67,9 @@ class Operation:
|
|||||||
to_cp: ControlPoint):
|
to_cp: ControlPoint):
|
||||||
self.game = game
|
self.game = game
|
||||||
self.attacker_name = attacker_name
|
self.attacker_name = attacker_name
|
||||||
self.attacker_country = db.FACTIONS[attacker_name]["country"]
|
self.attacker_country = db.FACTIONS[attacker_name].country
|
||||||
self.defender_name = defender_name
|
self.defender_name = defender_name
|
||||||
self.defender_country = db.FACTIONS[defender_name]["country"]
|
self.defender_country = db.FACTIONS[defender_name].country
|
||||||
print(self.defender_country, self.attacker_country)
|
print(self.defender_country, self.attacker_country)
|
||||||
self.from_cp = from_cp
|
self.from_cp = from_cp
|
||||||
self.departure_cp = departure_cp
|
self.departure_cp = departure_cp
|
||||||
@ -253,7 +253,9 @@ class Operation:
|
|||||||
|
|
||||||
# Generate ground units on frontline everywhere
|
# Generate ground units on frontline everywhere
|
||||||
jtacs: List[JtacInfo] = []
|
jtacs: List[JtacInfo] = []
|
||||||
for player_cp, enemy_cp in self.game.theater.conflicts(True):
|
for front_line in self.game.theater.conflicts(True):
|
||||||
|
player_cp = front_line.control_point_a
|
||||||
|
enemy_cp = front_line.control_point_b
|
||||||
conflict = Conflict.frontline_cas_conflict(self.attacker_name, self.defender_name,
|
conflict = Conflict.frontline_cas_conflict(self.attacker_name, self.defender_name,
|
||||||
self.current_mission.country(self.attacker_country),
|
self.current_mission.country(self.attacker_country),
|
||||||
self.current_mission.country(self.defender_country),
|
self.current_mission.country(self.defender_country),
|
||||||
|
|||||||
@ -142,13 +142,13 @@ class GroundConflictGenerator:
|
|||||||
# Add JTAC
|
# Add JTAC
|
||||||
jtacPlugin = LuaPluginManager().getPlugin("jtacautolase")
|
jtacPlugin = LuaPluginManager().getPlugin("jtacautolase")
|
||||||
useJTAC = jtacPlugin and jtacPlugin.isEnabled()
|
useJTAC = jtacPlugin and jtacPlugin.isEnabled()
|
||||||
if "has_jtac" in self.game.player_faction and self.game.player_faction["has_jtac"] and useJTAC:
|
if self.game.player_faction.has_jtac and useJTAC:
|
||||||
n = "JTAC" + str(self.conflict.from_cp.id) + str(self.conflict.to_cp.id)
|
n = "JTAC" + str(self.conflict.from_cp.id) + str(self.conflict.to_cp.id)
|
||||||
code = 1688 - len(self.jtacs)
|
code = 1688 - len(self.jtacs)
|
||||||
|
|
||||||
utype = MQ_9_Reaper
|
utype = MQ_9_Reaper
|
||||||
if "jtac_unit" in self.game.player_faction:
|
if self.game.player_faction.jtac_unit is not None:
|
||||||
utype = self.game.player_faction["jtac_unit"]
|
utype = self.game.player_faction.jtac_unit
|
||||||
|
|
||||||
jtac = self.mission.flight_group(country=self.mission.country(self.game.player_country),
|
jtac = self.mission.flight_group(country=self.mission.country(self.game.player_country),
|
||||||
name=n,
|
name=n,
|
||||||
|
|||||||
@ -194,14 +194,10 @@ class BriefingGenerator(MissionInfoGenerator):
|
|||||||
|
|
||||||
conflict_number = 0
|
conflict_number = 0
|
||||||
|
|
||||||
for c in self.game.theater.conflicts():
|
for front_line in self.game.theater.conflicts(from_player=True):
|
||||||
conflict_number = conflict_number + 1
|
conflict_number = conflict_number + 1
|
||||||
if c[0].captured:
|
player_base = front_line.control_point_a
|
||||||
player_base = c[0]
|
enemy_base = front_line.control_point_b
|
||||||
enemy_base = c[1]
|
|
||||||
else:
|
|
||||||
player_base = c[1]
|
|
||||||
enemy_base = c[0]
|
|
||||||
|
|
||||||
has_numerical_superiority = player_base.base.total_armor > enemy_base.base.total_armor
|
has_numerical_superiority = player_base.base.total_armor > enemy_base.base.total_armor
|
||||||
self.description += self.__random_frontline_sentence(player_base.name, enemy_base.name)
|
self.description += self.__random_frontline_sentence(player_base.name, enemy_base.name)
|
||||||
|
|||||||
@ -11,8 +11,7 @@ def generate_armor_group(faction:str, game, ground_object):
|
|||||||
This generate a group of ground units
|
This generate a group of ground units
|
||||||
:return: Generated group
|
:return: Generated group
|
||||||
"""
|
"""
|
||||||
|
possible_unit = [u for u in db.FACTIONS[faction].frontline_units if u in Armor.__dict__.values()]
|
||||||
possible_unit = [u for u in db.FACTIONS[faction]["units"] if u in Armor.__dict__.values()]
|
|
||||||
if len(possible_unit) > 0:
|
if len(possible_unit) > 0:
|
||||||
unit_type = random.choice(possible_unit)
|
unit_type = random.choice(possible_unit)
|
||||||
return generate_armor_group_of_type(game, ground_object, unit_type)
|
return generate_armor_group_of_type(game, ground_object, unit_type)
|
||||||
|
|||||||
@ -12,19 +12,15 @@ class CarrierGroupGenerator(GroupGenerator):
|
|||||||
def generate(self):
|
def generate(self):
|
||||||
|
|
||||||
# Add carrier
|
# Add carrier
|
||||||
if "aircraft_carrier" in self.faction.keys():
|
if len(self.faction.aircraft_carrier) > 0:
|
||||||
|
carrier_type = random.choice(self.faction.aircraft_carrier)
|
||||||
if "supercarrier" in self.faction.keys() and self.game.settings.supercarrier:
|
|
||||||
carrier_type = random.choice(self.faction["supercarrier"])
|
|
||||||
else:
|
|
||||||
carrier_type = random.choice(self.faction["aircraft_carrier"])
|
|
||||||
self.add_unit(carrier_type, "Carrier", self.position.x, self.position.y, self.heading)
|
self.add_unit(carrier_type, "Carrier", self.position.x, self.position.y, self.heading)
|
||||||
else:
|
else:
|
||||||
return
|
return
|
||||||
|
|
||||||
# Add destroyers escort
|
# Add destroyers escort
|
||||||
if "destroyer" in self.faction.keys():
|
if len(self.faction.destroyers) > 0:
|
||||||
dd_type = random.choice(self.faction["destroyer"])
|
dd_type = random.choice(self.faction.destroyers)
|
||||||
self.add_unit(dd_type, "DD1", self.position.x + 2500, self.position.y + 4500, self.heading)
|
self.add_unit(dd_type, "DD1", self.position.x + 2500, self.position.y + 4500, self.heading)
|
||||||
self.add_unit(dd_type, "DD2", self.position.x + 2500, self.position.y - 4500, self.heading)
|
self.add_unit(dd_type, "DD2", self.position.x + 2500, self.position.y - 4500, self.heading)
|
||||||
|
|
||||||
|
|||||||
@ -12,13 +12,13 @@ class LHAGroupGenerator(GroupGenerator):
|
|||||||
def generate(self):
|
def generate(self):
|
||||||
|
|
||||||
# Add carrier
|
# Add carrier
|
||||||
if "helicopter_carrier" in self.faction.keys():
|
if len(self.faction.helicopter_carrier) > 0:
|
||||||
carrier_type = random.choice(self.faction["helicopter_carrier"])
|
carrier_type = random.choice(self.faction.helicopter_carrier)
|
||||||
self.add_unit(carrier_type, "LHA", self.position.x, self.position.y, self.heading)
|
self.add_unit(carrier_type, "LHA", self.position.x, self.position.y, self.heading)
|
||||||
|
|
||||||
# Add destroyers escort
|
# Add destroyers escort
|
||||||
if "destroyer" in self.faction.keys():
|
if len(self.faction.destroyers) > 0:
|
||||||
dd_type = random.choice(self.faction["destroyer"])
|
dd_type = random.choice(self.faction.destroyers)
|
||||||
self.add_unit(dd_type, "DD1", self.position.x + 1250, self.position.y + 1450, self.heading)
|
self.add_unit(dd_type, "DD1", self.position.x + 1250, self.position.y + 1450, self.heading)
|
||||||
self.add_unit(dd_type, "DD2", self.position.x + 1250, self.position.y - 1450, self.heading)
|
self.add_unit(dd_type, "DD2", self.position.x + 1250, self.position.y - 1450, self.heading)
|
||||||
|
|
||||||
|
|||||||
@ -34,16 +34,14 @@ def generate_ship_group(game, ground_object, faction_name: str):
|
|||||||
:return: Nothing, but put the group reference inside the ground object
|
:return: Nothing, but put the group reference inside the ground object
|
||||||
"""
|
"""
|
||||||
faction = db.FACTIONS[faction_name]
|
faction = db.FACTIONS[faction_name]
|
||||||
if "boat" in faction:
|
if len(faction.navy_generators) > 0:
|
||||||
generators = faction["boat"]
|
gen = random.choice(faction.navy_generators)
|
||||||
if len(generators) > 0:
|
if gen in SHIP_MAP.keys():
|
||||||
gen = random.choice(generators)
|
generator = SHIP_MAP[gen](game, ground_object, faction)
|
||||||
if gen in SHIP_MAP.keys():
|
generator.generate()
|
||||||
generator = SHIP_MAP[gen](game, ground_object, faction)
|
return generator.get_generated_group()
|
||||||
generator.generate()
|
else:
|
||||||
return generator.get_generated_group()
|
logging.info("Unable to generate ship group, generator : " + str(gen) + "does not exists")
|
||||||
else:
|
|
||||||
logging.info("Unable to generate ship group, generator : " + str(gen) + "does not exists")
|
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -46,7 +46,7 @@ class FlightPlanBuilder:
|
|||||||
faction = self.game.player_faction
|
faction = self.game.player_faction
|
||||||
else:
|
else:
|
||||||
faction = self.game.enemy_faction
|
faction = self.game.enemy_faction
|
||||||
self.doctrine: Doctrine = faction.get("doctrine", MODERN_DOCTRINE)
|
self.doctrine: Doctrine = faction.doctrine
|
||||||
|
|
||||||
def populate_flight_plan(
|
def populate_flight_plan(
|
||||||
self, flight: Flight,
|
self, flight: Flight,
|
||||||
|
|||||||
@ -14,8 +14,8 @@ def generate_missile_group(game, ground_object, faction_name: str):
|
|||||||
:return: Nothing, but put the group reference inside the ground object
|
:return: Nothing, but put the group reference inside the ground object
|
||||||
"""
|
"""
|
||||||
faction = db.FACTIONS[faction_name]
|
faction = db.FACTIONS[faction_name]
|
||||||
if "missiles" in faction:
|
if len(faction.missiles) > 0:
|
||||||
generators = faction["missiles"]
|
generators = faction.missiles
|
||||||
if len(generators) > 0:
|
if len(generators) > 0:
|
||||||
gen = random.choice(generators)
|
gen = random.choice(generators)
|
||||||
if gen in MISSILES_MAP.keys():
|
if gen in MISSILES_MAP.keys():
|
||||||
|
|||||||
@ -10,12 +10,10 @@ class GenericSamGroupGenerator(GroupGenerator):
|
|||||||
This is the base for all SAM group generators
|
This is the base for all SAM group generators
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def getGroupNamePrefix(self, faction):
|
@property
|
||||||
if not faction:
|
def groupNamePrefix(self):
|
||||||
return ""
|
|
||||||
|
|
||||||
# prefix the SAM site for use with the Skynet IADS plugin
|
# prefix the SAM site for use with the Skynet IADS plugin
|
||||||
prefix = "BLUE SAM "
|
if self.faction == self.game.player_name: # this is the player faction
|
||||||
if db.FACTIONS[faction]["side"] == "red":
|
return "BLUE SAM "
|
||||||
prefix = "RED SAM "
|
else:
|
||||||
return prefix
|
return "RED SAM "
|
||||||
|
|||||||
@ -8,21 +8,18 @@ from dcs.unit import Vehicle
|
|||||||
|
|
||||||
class GroupGenerator():
|
class GroupGenerator():
|
||||||
|
|
||||||
def __init__(self, game, ground_object, faction = None):
|
def __init__(self, game, ground_object, faction = None): # faction is not mandatory because some subclasses do not use it
|
||||||
self.game = game
|
self.game = game
|
||||||
self.go = ground_object
|
self.go = ground_object
|
||||||
self.position = ground_object.position
|
self.position = ground_object.position
|
||||||
self.heading = random.randint(0, 359)
|
self.heading = random.randint(0, 359)
|
||||||
groupNamePrefix = self.getGroupNamePrefix(faction)
|
self.faction = faction
|
||||||
self.vg = unitgroup.VehicleGroup(self.game.next_group_id(), groupNamePrefix + self.go.group_identifier)
|
self.vg = unitgroup.VehicleGroup(self.game.next_group_id(), self.groupNamePrefix + self.go.group_identifier)
|
||||||
|
|
||||||
wp = self.vg.add_waypoint(self.position, PointAction.OffRoad, 0)
|
wp = self.vg.add_waypoint(self.position, PointAction.OffRoad, 0)
|
||||||
wp.ETA_locked = True
|
wp.ETA_locked = True
|
||||||
|
|
||||||
def getGroupNamePrefix(self, faction):
|
@property
|
||||||
if not faction:
|
def groupNamePrefix(self):
|
||||||
return ""
|
|
||||||
|
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
def generate(self):
|
def generate(self):
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
import random
|
import random
|
||||||
from typing import List
|
from typing import List, Type
|
||||||
|
|
||||||
from dcs.unittype import UnitType
|
from dcs.unittype import UnitType
|
||||||
from dcs.vehicles import AirDefence
|
from dcs.vehicles import AirDefence
|
||||||
@ -8,6 +8,7 @@ from game import db
|
|||||||
from gen.sam.aaa_bofors import BoforsGenerator
|
from gen.sam.aaa_bofors import BoforsGenerator
|
||||||
from gen.sam.aaa_flak import FlakGenerator
|
from gen.sam.aaa_flak import FlakGenerator
|
||||||
from gen.sam.aaa_zu23_insurgent import ZU23InsurgentGenerator
|
from gen.sam.aaa_zu23_insurgent import ZU23InsurgentGenerator
|
||||||
|
from gen.sam.group_generator import GroupGenerator
|
||||||
from gen.sam.sam_avenger import AvengerGenerator
|
from gen.sam.sam_avenger import AvengerGenerator
|
||||||
from gen.sam.sam_chaparral import ChaparralGenerator
|
from gen.sam.sam_chaparral import ChaparralGenerator
|
||||||
from gen.sam.sam_gepard import GepardGenerator
|
from gen.sam.sam_gepard import GepardGenerator
|
||||||
@ -34,37 +35,33 @@ from gen.sam.sam_zu23_ural import ZU23UralGenerator
|
|||||||
from gen.sam.sam_zu23_ural_insurgent import ZU23UralInsurgentGenerator
|
from gen.sam.sam_zu23_ural_insurgent import ZU23UralInsurgentGenerator
|
||||||
|
|
||||||
SAM_MAP = {
|
SAM_MAP = {
|
||||||
AirDefence.SAM_Hawk_PCP: HawkGenerator,
|
"HawkGenerator": HawkGenerator,
|
||||||
AirDefence.AAA_ZU_23_Emplacement: ZU23Generator,
|
"ZU23Generator": ZU23Generator,
|
||||||
AirDefence.AAA_ZU_23_Closed: ZU23Generator,
|
"ZU23UralGenerator": ZU23UralGenerator,
|
||||||
AirDefence.AAA_ZU_23_on_Ural_375: ZU23UralGenerator,
|
"ZU23UralInsurgentGenerator": ZU23UralInsurgentGenerator,
|
||||||
AirDefence.AAA_ZU_23_Insurgent_on_Ural_375: ZU23UralInsurgentGenerator,
|
"ZU23InsurgentGenerator": ZU23InsurgentGenerator,
|
||||||
AirDefence.AAA_ZU_23_Insurgent_Closed: ZU23InsurgentGenerator,
|
"ZSU23Generator": ZSU23Generator,
|
||||||
AirDefence.AAA_ZU_23_Insurgent: ZU23InsurgentGenerator,
|
"VulcanGenerator": VulcanGenerator,
|
||||||
AirDefence.SPAAA_ZSU_23_4_Shilka: ZSU23Generator,
|
"LinebackerGenerator": LinebackerGenerator,
|
||||||
AirDefence.AAA_Vulcan_M163: VulcanGenerator,
|
"RapierGenerator": RapierGenerator,
|
||||||
AirDefence.SAM_Linebacker_M6: LinebackerGenerator,
|
"AvengerGenerator": AvengerGenerator,
|
||||||
AirDefence.Rapier_FSA_Launcher: RapierGenerator,
|
"GepardGenerator": GepardGenerator,
|
||||||
AirDefence.SAM_Avenger_M1097: AvengerGenerator,
|
"RolandGenerator": RolandGenerator,
|
||||||
AirDefence.SPAAA_Gepard: GepardGenerator,
|
"PatriotGenerator": PatriotGenerator,
|
||||||
AirDefence.SAM_Roland_ADS: RolandGenerator,
|
"ChaparralGenerator": ChaparralGenerator,
|
||||||
AirDefence.SAM_Patriot_LN_M901: PatriotGenerator,
|
"BoforsGenerator": BoforsGenerator,
|
||||||
AirDefence.SAM_Patriot_EPP_III: PatriotGenerator,
|
"FlakGenerator": FlakGenerator,
|
||||||
AirDefence.SAM_Chaparral_M48: ChaparralGenerator,
|
"SA2Generator": SA2Generator,
|
||||||
AirDefence.AAA_Bofors_40mm: BoforsGenerator,
|
"SA3Generator": SA3Generator,
|
||||||
AirDefence.AAA_8_8cm_Flak_36: FlakGenerator,
|
"SA6Generator": SA6Generator,
|
||||||
AirDefence.SAM_SA_2_LN_SM_90: SA2Generator,
|
"SA8Generator": SA8Generator,
|
||||||
AirDefence.SAM_SA_3_S_125_LN_5P73: SA3Generator,
|
"SA9Generator": SA9Generator,
|
||||||
AirDefence.SAM_SA_6_Kub_LN_2P25: SA6Generator,
|
"SA10Generator": SA10Generator,
|
||||||
AirDefence.SAM_SA_8_Osa_9A33: SA8Generator,
|
"SA11Generator": SA11Generator,
|
||||||
AirDefence.SAM_SA_9_Strela_1_9P31: SA9Generator,
|
"SA13Generator": SA13Generator,
|
||||||
AirDefence.SAM_SA_10_S_300PS_LN_5P85C: SA10Generator,
|
"SA15Generator": SA15Generator,
|
||||||
AirDefence.SAM_SA_10_S_300PS_CP_54K6: SA10Generator,
|
"SA19Generator": SA19Generator,
|
||||||
AirDefence.SAM_SA_11_Buk_LN_9A310M1: SA11Generator,
|
"HQ7Generator": HQ7Generator
|
||||||
AirDefence.SAM_SA_13_Strela_10M3_9A35M3: SA13Generator,
|
|
||||||
AirDefence.SAM_SA_15_Tor_9A331: SA15Generator,
|
|
||||||
AirDefence.SAM_SA_19_Tunguska_2S6: SA19Generator,
|
|
||||||
AirDefence.HQ_7_Self_Propelled_LN: HQ7Generator
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SAM_PRICES = {
|
SAM_PRICES = {
|
||||||
@ -102,20 +99,12 @@ SAM_PRICES = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
def get_faction_possible_sams_units(faction: str) -> List[UnitType]:
|
def get_faction_possible_sams_generator(faction: str) -> List[Type[GroupGenerator]]:
|
||||||
"""
|
|
||||||
Return the list
|
|
||||||
:param faction: Faction to search units for
|
|
||||||
"""
|
|
||||||
return [u for u in db.FACTIONS[faction]["units"] if u in AirDefence.__dict__.values()]
|
|
||||||
|
|
||||||
|
|
||||||
def get_faction_possible_sams_generator(faction: str) -> List[UnitType]:
|
|
||||||
"""
|
"""
|
||||||
Return the list of possible SAM generator for the given faction
|
Return the list of possible SAM generator for the given faction
|
||||||
:param faction: Faction to search units for
|
:param faction: Faction name to search units for
|
||||||
"""
|
"""
|
||||||
return [SAM_MAP[u] for u in get_faction_possible_sams_units(faction)]
|
return [SAM_MAP[s] for s in db.FACTIONS[faction].sams if s in SAM_MAP.keys()]
|
||||||
|
|
||||||
def generate_anti_air_group(game, parent_cp, ground_object, faction:str):
|
def generate_anti_air_group(game, parent_cp, ground_object, faction:str):
|
||||||
"""
|
"""
|
||||||
@ -125,24 +114,25 @@ def generate_anti_air_group(game, parent_cp, ground_object, faction:str):
|
|||||||
:param country: Owner country
|
:param country: Owner country
|
||||||
:return: Nothing, but put the group reference inside the ground object
|
:return: Nothing, but put the group reference inside the ground object
|
||||||
"""
|
"""
|
||||||
possible_sams = get_faction_possible_sams_units(faction)
|
possible_sams_generators = get_faction_possible_sams_generator(faction)
|
||||||
if len(possible_sams) > 0:
|
if len(possible_sams_generators) > 0:
|
||||||
sam = random.choice(possible_sams)
|
sam_generator_class = random.choice(possible_sams_generators)
|
||||||
generator = SAM_MAP[sam](game, ground_object, faction)
|
generator = sam_generator_class(game, ground_object, faction)
|
||||||
generator.generate()
|
generator.generate()
|
||||||
return generator.get_generated_group()
|
return generator.get_generated_group()
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
def generate_shorad_group(game, parent_cp, ground_object, faction:str):
|
def generate_shorad_group(game, parent_cp, ground_object, faction_name: str):
|
||||||
if("shorad") in db.FACTIONS[faction].keys():
|
faction = db.FACTIONS[faction_name]
|
||||||
shorad = db.FACTIONS[faction]["shorad"]
|
|
||||||
sam = random.choice(shorad)
|
if len(faction.shorads) > 0:
|
||||||
|
sam = random.choice(faction.shorads)
|
||||||
generator = SAM_MAP[sam](game, ground_object)
|
generator = SAM_MAP[sam](game, ground_object)
|
||||||
generator.generate()
|
generator.generate()
|
||||||
return generator.get_generated_group()
|
return generator.get_generated_group()
|
||||||
else:
|
else:
|
||||||
return generate_anti_air_group(game, parent_cp, ground_object, faction)
|
return generate_anti_air_group(game, parent_cp, ground_object, faction_name)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -98,7 +98,9 @@ class VisualGenerator:
|
|||||||
self.game = game
|
self.game = game
|
||||||
|
|
||||||
def _generate_frontline_smokes(self):
|
def _generate_frontline_smokes(self):
|
||||||
for from_cp, to_cp in self.game.theater.conflicts():
|
for front_line in self.game.theater.conflicts():
|
||||||
|
from_cp = front_line.control_point_a
|
||||||
|
to_cp = front_line.control_point_b
|
||||||
if from_cp.is_global or to_cp.is_global:
|
if from_cp.is_global or to_cp.is_global:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
|||||||
43
pydcs_extensions/mod_units.py
Normal file
43
pydcs_extensions/mod_units.py
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
from pydcs_extensions.a4ec.a4ec import A_4E_C
|
||||||
|
from pydcs_extensions.mb339.mb339 import MB_339PAN
|
||||||
|
from pydcs_extensions.rafale.rafale import Rafale_M, Rafale_A_S
|
||||||
|
from pydcs_extensions.su57.su57 import Su_57
|
||||||
|
import pydcs_extensions.frenchpack.frenchpack as frenchpack
|
||||||
|
|
||||||
|
MODDED_AIRPLANES = [A_4E_C, MB_339PAN, Rafale_A_S, Rafale_M, Su_57]
|
||||||
|
MODDED_VEHICLES = [
|
||||||
|
frenchpack._FIELD_HIDE,
|
||||||
|
frenchpack._FIELD_HIDE_SMALL,
|
||||||
|
frenchpack.SMOKE_SAM_IR,
|
||||||
|
frenchpack.SmokeD1,
|
||||||
|
frenchpack.SmokeD3,
|
||||||
|
frenchpack.AMX_10RCR,
|
||||||
|
frenchpack.AMX_10RCR_SEPAR,
|
||||||
|
frenchpack.ERC_90,
|
||||||
|
frenchpack.MO_120_RT,
|
||||||
|
frenchpack._53T2,
|
||||||
|
frenchpack.TRM_2000,
|
||||||
|
frenchpack.TRM_2000_Fuel,
|
||||||
|
frenchpack.TRM_2000_53T2,
|
||||||
|
frenchpack.TRM_2000_PAMELA,
|
||||||
|
frenchpack.VAB_MEDICAL,
|
||||||
|
frenchpack.VAB,
|
||||||
|
frenchpack.VAB__50,
|
||||||
|
frenchpack.VAB_T20_13,
|
||||||
|
frenchpack.VAB_MEPHISTO,
|
||||||
|
frenchpack.VAB_MORTIER,
|
||||||
|
frenchpack.VBL__50,
|
||||||
|
frenchpack.VBL_AANF1,
|
||||||
|
frenchpack.VBL,
|
||||||
|
frenchpack.VBAE_CRAB,
|
||||||
|
frenchpack.VBAE_CRAB_MMP,
|
||||||
|
frenchpack.AMX_30B2,
|
||||||
|
frenchpack.Tracma_TD_1500,
|
||||||
|
frenchpack.Infantry_Soldier_JTAC,
|
||||||
|
frenchpack.Char_M551_Sheridan,
|
||||||
|
frenchpack.Leclerc_Serie_XXI,
|
||||||
|
frenchpack.DIM__TOYOTA_BLUE,
|
||||||
|
frenchpack.DIM__TOYOTA_GREEN,
|
||||||
|
frenchpack.DIM__TOYOTA_DESERT,
|
||||||
|
frenchpack.DIM__KAMIKAZE
|
||||||
|
]
|
||||||
@ -156,7 +156,9 @@ class QTopPanel(QFrame):
|
|||||||
"Packages panel on the left of the main window, and then a flight "
|
"Packages panel on the left of the main window, and then a flight "
|
||||||
"from the Flights panel below the Packages panel. The edit button "
|
"from the Flights panel below the Packages panel. The edit button "
|
||||||
"below the Flights panel will allow you to edit the number of "
|
"below the Flights panel will allow you to edit the number of "
|
||||||
"client slots in the flight. Each client slot allows one player."),
|
"client slots in the flight. Each client slot allows one player.<br />"
|
||||||
|
"<br />Click 'Yes' to continue with an AI only mission"
|
||||||
|
"<br />Click 'No' if you'd like to make more changes."),
|
||||||
QMessageBox.No,
|
QMessageBox.No,
|
||||||
QMessageBox.Yes
|
QMessageBox.Yes
|
||||||
)
|
)
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
from PySide2.QtGui import QColor, QPainter
|
from PySide2.QtGui import QColor, QPainter
|
||||||
|
from PySide2.QtWidgets import QAction, QMenu
|
||||||
|
|
||||||
import qt_ui.uiconstants as const
|
import qt_ui.uiconstants as const
|
||||||
from qt_ui.models import GameModel
|
from qt_ui.models import GameModel
|
||||||
@ -8,6 +9,7 @@ from qt_ui.windows.basemenu.QBaseMenu2 import QBaseMenu2
|
|||||||
from theater import ControlPoint
|
from theater import ControlPoint
|
||||||
from .QMapObject import QMapObject
|
from .QMapObject import QMapObject
|
||||||
from ...displayoptions import DisplayOptions
|
from ...displayoptions import DisplayOptions
|
||||||
|
from ...windows.GameUpdateSignal import GameUpdateSignal
|
||||||
|
|
||||||
|
|
||||||
class QMapControlPoint(QMapObject):
|
class QMapControlPoint(QMapObject):
|
||||||
@ -20,6 +22,9 @@ class QMapControlPoint(QMapObject):
|
|||||||
self.setZValue(1)
|
self.setZValue(1)
|
||||||
self.setToolTip(self.control_point.name)
|
self.setToolTip(self.control_point.name)
|
||||||
self.base_details_dialog: Optional[QBaseMenu2] = None
|
self.base_details_dialog: Optional[QBaseMenu2] = None
|
||||||
|
self.capture_action = QAction(
|
||||||
|
f"CHEAT: Capture {self.control_point.name}")
|
||||||
|
self.capture_action.triggered.connect(self.cheat_capture)
|
||||||
|
|
||||||
def paint(self, painter, option, widget=None) -> None:
|
def paint(self, painter, option, widget=None) -> None:
|
||||||
if DisplayOptions.control_points:
|
if DisplayOptions.control_points:
|
||||||
@ -64,3 +69,24 @@ class QMapControlPoint(QMapObject):
|
|||||||
self.game_model
|
self.game_model
|
||||||
)
|
)
|
||||||
self.base_details_dialog.show()
|
self.base_details_dialog.show()
|
||||||
|
|
||||||
|
def add_context_menu_actions(self, menu: QMenu) -> None:
|
||||||
|
if self.control_point.is_fleet:
|
||||||
|
return
|
||||||
|
|
||||||
|
if self.control_point.captured:
|
||||||
|
return
|
||||||
|
|
||||||
|
for connected in self.control_point.connected_points:
|
||||||
|
if connected.captured:
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
return
|
||||||
|
|
||||||
|
menu.addAction(self.capture_action)
|
||||||
|
|
||||||
|
def cheat_capture(self) -> None:
|
||||||
|
self.control_point.capture(self.game_model.game, for_player=True)
|
||||||
|
# Reinitialized ground planners and the like.
|
||||||
|
self.game_model.game.initialize_turn()
|
||||||
|
GameUpdateSignal.get_instance().updateGame(self.game_model.game)
|
||||||
|
|||||||
@ -37,6 +37,9 @@ class QMapObject(QGraphicsRectItem):
|
|||||||
if event.button() == Qt.LeftButton:
|
if event.button() == Qt.LeftButton:
|
||||||
self.on_click()
|
self.on_click()
|
||||||
|
|
||||||
|
def add_context_menu_actions(self, menu: QMenu) -> None:
|
||||||
|
pass
|
||||||
|
|
||||||
def contextMenuEvent(self, event: QGraphicsSceneContextMenuEvent) -> None:
|
def contextMenuEvent(self, event: QGraphicsSceneContextMenuEvent) -> None:
|
||||||
menu = QMenu("Menu", self.parent)
|
menu = QMenu("Menu", self.parent)
|
||||||
|
|
||||||
@ -48,6 +51,8 @@ class QMapObject(QGraphicsRectItem):
|
|||||||
new_package_action.triggered.connect(self.open_new_package_dialog)
|
new_package_action.triggered.connect(self.open_new_package_dialog)
|
||||||
menu.addAction(new_package_action)
|
menu.addAction(new_package_action)
|
||||||
|
|
||||||
|
self.add_context_menu_actions(menu)
|
||||||
|
|
||||||
menu.exec_(event.screenPos())
|
menu.exec_(event.screenPos())
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
|||||||
@ -19,6 +19,7 @@ from theater import ConflictTheater
|
|||||||
class Campaign:
|
class Campaign:
|
||||||
name: str
|
name: str
|
||||||
icon_name: str
|
icon_name: str
|
||||||
|
authors: str
|
||||||
theater: ConflictTheater
|
theater: ConflictTheater
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@ -27,7 +28,7 @@ class Campaign:
|
|||||||
data = json.load(campaign_file)
|
data = json.load(campaign_file)
|
||||||
|
|
||||||
sanitized_theater = data["theater"].replace(" ", "")
|
sanitized_theater = data["theater"].replace(" ", "")
|
||||||
return cls(data["name"], f"Terrain_{sanitized_theater}",
|
return cls(data["name"], f"Terrain_{sanitized_theater}", data.get("authors", "???"),
|
||||||
ConflictTheater.from_json(data))
|
ConflictTheater.from_json(data))
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -150,11 +150,15 @@ class FactionSelection(QtWidgets.QWizardPage):
|
|||||||
|
|
||||||
redFaction = QtWidgets.QLabel("<b>Enemy Faction :</b>")
|
redFaction = QtWidgets.QLabel("<b>Enemy Faction :</b>")
|
||||||
self.redFactionSelect = QtWidgets.QComboBox()
|
self.redFactionSelect = QtWidgets.QComboBox()
|
||||||
|
redFaction.setBuddy(self.redFactionSelect)
|
||||||
|
|
||||||
|
# Setup default selected factions
|
||||||
for i, r in enumerate(db.FACTIONS):
|
for i, r in enumerate(db.FACTIONS):
|
||||||
self.redFactionSelect.addItem(r)
|
self.redFactionSelect.addItem(r)
|
||||||
if r == "Russia 1990": # Default ennemy
|
if r == "Russia 1990":
|
||||||
self.redFactionSelect.setCurrentIndex(i)
|
self.redFactionSelect.setCurrentIndex(i)
|
||||||
redFaction.setBuddy(self.redFactionSelect)
|
if r == "USA 2005":
|
||||||
|
self.blueFactionSelect.setCurrentIndex(i)
|
||||||
|
|
||||||
self.blueSideRecap = QtWidgets.QLabel("")
|
self.blueSideRecap = QtWidgets.QLabel("")
|
||||||
self.blueSideRecap.setFont(CONST.FONT_PRIMARY_I)
|
self.blueSideRecap.setFont(CONST.FONT_PRIMARY_I)
|
||||||
@ -200,8 +204,8 @@ class FactionSelection(QtWidgets.QWizardPage):
|
|||||||
red_faction = db.FACTIONS[self.redFactionSelect.currentText()]
|
red_faction = db.FACTIONS[self.redFactionSelect.currentText()]
|
||||||
blue_faction = db.FACTIONS[self.blueFactionSelect.currentText()]
|
blue_faction = db.FACTIONS[self.blueFactionSelect.currentText()]
|
||||||
|
|
||||||
red_units = red_faction["units"]
|
red_units = red_faction.aircrafts
|
||||||
blue_units = blue_faction["units"]
|
blue_units = blue_faction.aircrafts
|
||||||
|
|
||||||
blue_txt = ""
|
blue_txt = ""
|
||||||
for u in blue_units:
|
for u in blue_units:
|
||||||
@ -218,16 +222,16 @@ class FactionSelection(QtWidgets.QWizardPage):
|
|||||||
self.redSideRecap.setText(red_txt)
|
self.redSideRecap.setText(red_txt)
|
||||||
|
|
||||||
has_mod = False
|
has_mod = False
|
||||||
if "requirements" in red_faction.keys():
|
if len(red_faction.requirements.keys()) > 0:
|
||||||
has_mod = True
|
has_mod = True
|
||||||
for mod in red_faction["requirements"].keys():
|
for mod in red_faction.requirements.keys():
|
||||||
self.requiredMods.setText(self.requiredMods.text() + "\n<li>" + mod + ": <a href=\""+red_faction["requirements"][mod]+"\">" + red_faction["requirements"][mod] + "</a></li>")
|
self.requiredMods.setText(self.requiredMods.text() + "\n<li>" + mod + ": <a href=\""+red_faction.requirements[mod]+"\">" + red_faction.requirements[mod] + "</a></li>")
|
||||||
|
|
||||||
if "requirements" in blue_faction.keys():
|
if len(blue_faction.requirements.keys()) > 0:
|
||||||
has_mod = True
|
has_mod = True
|
||||||
for mod in blue_faction["requirements"].keys():
|
for mod in blue_faction.requirements.keys():
|
||||||
if not "requirements" in red_faction.keys() or mod not in red_faction["requirements"].keys():
|
if not "requirements" in red_faction.keys() or mod not in red_faction.requirements.keys():
|
||||||
self.requiredMods.setText(self.requiredMods.text() + "\n<li>" + mod + ": <a href=\""+blue_faction["requirements"][mod]+"\">" + blue_faction["requirements"][mod] + "</a></li>")
|
self.requiredMods.setText(self.requiredMods.text() + "\n<li>" + mod + ": <a href=\""+blue_faction.requirements[mod]+"\">" + blue_faction.requirements[mod] + "</a></li>")
|
||||||
|
|
||||||
if has_mod:
|
if has_mod:
|
||||||
self.requiredMods.setText(self.requiredMods.text() + "</ul>\n\n")
|
self.requiredMods.setText(self.requiredMods.text() + "</ul>\n\n")
|
||||||
|
|||||||
@ -1,86 +1,88 @@
|
|||||||
{
|
{
|
||||||
"name": "The Channel - Battle of Britain",
|
"name": "The Channel - Battle of Britain",
|
||||||
"theater": "The Channel",
|
"theater": "The Channel",
|
||||||
"player_points": [
|
"authors": "Khopa",
|
||||||
{
|
"description": "",
|
||||||
"type": "airbase",
|
"player_points": [
|
||||||
"id": "Hawkinge",
|
{
|
||||||
"size": 600,
|
"type": "airbase",
|
||||||
"importance": 1
|
"id": "Hawkinge",
|
||||||
},
|
"size": 600,
|
||||||
{
|
"importance": 1
|
||||||
"type": "airbase",
|
},
|
||||||
"id": "Lympne",
|
{
|
||||||
"size": 600,
|
"type": "airbase",
|
||||||
"importance": 1
|
"id": "Lympne",
|
||||||
},
|
"size": 600,
|
||||||
{
|
"importance": 1
|
||||||
"type": "airbase",
|
},
|
||||||
"id": "Manston",
|
{
|
||||||
"size": 600,
|
"type": "airbase",
|
||||||
"importance": 1
|
"id": "Manston",
|
||||||
},
|
"size": 600,
|
||||||
{
|
"importance": 1
|
||||||
"type": "airbase",
|
},
|
||||||
"id": "High Halden",
|
{
|
||||||
"size": 600,
|
"type": "airbase",
|
||||||
"importance": 1
|
"id": "High Halden",
|
||||||
}
|
"size": 600,
|
||||||
|
"importance": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"enemy_points": [
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Dunkirk Mardyck",
|
||||||
|
"size": 600,
|
||||||
|
"importance": 1,
|
||||||
|
"captured_invert": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Saint Omer Longuenesse",
|
||||||
|
"size": 600,
|
||||||
|
"importance": 1,
|
||||||
|
"captured_invert": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Merville Calonne",
|
||||||
|
"size": 600,
|
||||||
|
"importance": 1,
|
||||||
|
"captured_invert": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Abbeville Drucat",
|
||||||
|
"size": 600,
|
||||||
|
"importance": 1,
|
||||||
|
"captured_invert": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"links": [
|
||||||
|
[
|
||||||
|
"Hawkinge",
|
||||||
|
"Lympne"
|
||||||
],
|
],
|
||||||
"enemy_points": [
|
[
|
||||||
{
|
"Hawkinge",
|
||||||
"type": "airbase",
|
"Manston"
|
||||||
"id": "Dunkirk Mardyck",
|
|
||||||
"size": 600,
|
|
||||||
"importance": 1,
|
|
||||||
"captured_invert": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Saint Omer Longuenesse",
|
|
||||||
"size": 600,
|
|
||||||
"importance": 1,
|
|
||||||
"captured_invert": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Merville Calonne",
|
|
||||||
"size": 600,
|
|
||||||
"importance": 1,
|
|
||||||
"captured_invert": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Abbeville Drucat",
|
|
||||||
"size": 600,
|
|
||||||
"importance": 1,
|
|
||||||
"captured_invert": true
|
|
||||||
}
|
|
||||||
],
|
],
|
||||||
"links": [
|
[
|
||||||
[
|
"High Halden",
|
||||||
"Hawkinge",
|
"Lympne"
|
||||||
"Lympne"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Dunkirk Mardyck",
|
||||||
"Hawkinge",
|
"Saint Omer Longuenesse"
|
||||||
"Manston"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Merville Calonne",
|
||||||
"High Halden",
|
"Saint Omer Longuenesse"
|
||||||
"Lympne"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Abbeville Drucat",
|
||||||
"Dunkirk Mardyck",
|
"Saint Omer Longuenesse"
|
||||||
"Saint Omer Longuenesse"
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"Merville Calonne",
|
|
||||||
"Saint Omer Longuenesse"
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"Abbeville Drucat",
|
|
||||||
"Saint Omer Longuenesse"
|
|
||||||
]
|
|
||||||
]
|
]
|
||||||
|
]
|
||||||
}
|
}
|
||||||
@ -1,61 +1,63 @@
|
|||||||
{
|
{
|
||||||
"name": "Persian Gulf - Desert War",
|
"name": "Persian Gulf - Desert War",
|
||||||
"theater": "Persian Gulf",
|
"theater": "Persian Gulf",
|
||||||
"player_points": [
|
"authors": "Khopa",
|
||||||
{
|
"description": "",
|
||||||
"type": "airbase",
|
"player_points": [
|
||||||
"id": "Liwa Airbase",
|
{
|
||||||
"size": 2000,
|
"type": "airbase",
|
||||||
"importance": 1.2
|
"id": "Liwa Airbase",
|
||||||
},
|
"size": 2000,
|
||||||
{
|
"importance": 1.2
|
||||||
"type": "lha",
|
},
|
||||||
"id": 1002,
|
{
|
||||||
"x": -164000,
|
"type": "lha",
|
||||||
"y": -257000,
|
"id": 1002,
|
||||||
"captured_invert": true
|
"x": -164000,
|
||||||
},
|
"y": -257000,
|
||||||
{
|
"captured_invert": true
|
||||||
"type": "carrier",
|
},
|
||||||
"id": 1001,
|
{
|
||||||
"x": -124000,
|
"type": "carrier",
|
||||||
"y": -303000,
|
"id": 1001,
|
||||||
"captured_invert": true
|
"x": -124000,
|
||||||
}
|
"y": -303000,
|
||||||
|
"captured_invert": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"enemy_points": [
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Al Ain International Airport",
|
||||||
|
"size": 2000,
|
||||||
|
"importance": 1,
|
||||||
|
"captured_invert": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Al Maktoum Intl",
|
||||||
|
"size": 2000,
|
||||||
|
"importance": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Al Minhad AB",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"links": [
|
||||||
|
[
|
||||||
|
"Al Ain International Airport",
|
||||||
|
"Liwa Airbase"
|
||||||
],
|
],
|
||||||
"enemy_points": [
|
[
|
||||||
{
|
"Al Ain International Airport",
|
||||||
"type": "airbase",
|
"Al Maktoum Intl"
|
||||||
"id": "Al Ain International Airport",
|
|
||||||
"size": 2000,
|
|
||||||
"importance": 1,
|
|
||||||
"captured_invert": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Al Maktoum Intl",
|
|
||||||
"size": 2000,
|
|
||||||
"importance": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Al Minhad AB",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1
|
|
||||||
}
|
|
||||||
],
|
],
|
||||||
"links": [
|
[
|
||||||
[
|
"Al Maktoum Intl",
|
||||||
"Al Ain International Airport",
|
"Al Minhad AB"
|
||||||
"Liwa Airbase"
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"Al Ain International Airport",
|
|
||||||
"Al Maktoum Intl"
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"Al Maktoum Intl",
|
|
||||||
"Al Minhad AB"
|
|
||||||
]
|
|
||||||
]
|
]
|
||||||
|
]
|
||||||
}
|
}
|
||||||
@ -1,77 +1,79 @@
|
|||||||
{
|
{
|
||||||
"name": "The Channel - Dunkirk",
|
"name": "The Channel - Dunkirk",
|
||||||
"theater": "The Channel",
|
"theater": "The Channel",
|
||||||
"player_points": [
|
"authors": "Khopa",
|
||||||
{
|
"description": "",
|
||||||
"type": "airbase",
|
"player_points": [
|
||||||
"id": "Hawkinge",
|
{
|
||||||
"size": 600,
|
"type": "airbase",
|
||||||
"importance": 1
|
"id": "Hawkinge",
|
||||||
},
|
"size": 600,
|
||||||
{
|
"importance": 1
|
||||||
"type": "airbase",
|
},
|
||||||
"id": "Lympne",
|
{
|
||||||
"size": 600,
|
"type": "airbase",
|
||||||
"importance": 1
|
"id": "Lympne",
|
||||||
},
|
"size": 600,
|
||||||
{
|
"importance": 1
|
||||||
"type": "airbase",
|
},
|
||||||
"id": "Manston",
|
{
|
||||||
"size": 600,
|
"type": "airbase",
|
||||||
"importance": 1,
|
"id": "Manston",
|
||||||
"captured_invert": true
|
"size": 600,
|
||||||
},
|
"importance": 1,
|
||||||
{
|
"captured_invert": true
|
||||||
"type": "airbase",
|
},
|
||||||
"id": "Dunkirk Mardyck",
|
{
|
||||||
"size": 600,
|
"type": "airbase",
|
||||||
"importance": 1,
|
"id": "Dunkirk Mardyck",
|
||||||
"captured_invert": true
|
"size": 600,
|
||||||
}
|
"importance": 1,
|
||||||
|
"captured_invert": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"enemy_points": [
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Saint Omer Longuenesse",
|
||||||
|
"size": 600,
|
||||||
|
"importance": 1,
|
||||||
|
"captured_invert": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Merville Calonne",
|
||||||
|
"size": 600,
|
||||||
|
"importance": 1,
|
||||||
|
"captured_invert": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Abbeville Drucat",
|
||||||
|
"size": 600,
|
||||||
|
"importance": 1,
|
||||||
|
"captured_invert": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"links": [
|
||||||
|
[
|
||||||
|
"Hawkinge",
|
||||||
|
"Lympne"
|
||||||
],
|
],
|
||||||
"enemy_points": [
|
[
|
||||||
{
|
"Hawkinge",
|
||||||
"type": "airbase",
|
"Manston"
|
||||||
"id": "Saint Omer Longuenesse",
|
|
||||||
"size": 600,
|
|
||||||
"importance": 1,
|
|
||||||
"captured_invert": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Merville Calonne",
|
|
||||||
"size": 600,
|
|
||||||
"importance": 1,
|
|
||||||
"captured_invert": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Abbeville Drucat",
|
|
||||||
"size": 600,
|
|
||||||
"importance": 1,
|
|
||||||
"captured_invert": true
|
|
||||||
}
|
|
||||||
],
|
],
|
||||||
"links": [
|
[
|
||||||
[
|
"Dunkirk Mardyck",
|
||||||
"Hawkinge",
|
"Saint Omer Longuenesse"
|
||||||
"Lympne"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Merville Calonne",
|
||||||
"Hawkinge",
|
"Saint Omer Longuenesse"
|
||||||
"Manston"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Abbeville Drucat",
|
||||||
"Dunkirk Mardyck",
|
"Saint Omer Longuenesse"
|
||||||
"Saint Omer Longuenesse"
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"Merville Calonne",
|
|
||||||
"Saint Omer Longuenesse"
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"Abbeville Drucat",
|
|
||||||
"Saint Omer Longuenesse"
|
|
||||||
]
|
|
||||||
]
|
]
|
||||||
|
]
|
||||||
}
|
}
|
||||||
@ -1,106 +1,108 @@
|
|||||||
{
|
{
|
||||||
"name": "Persian Gulf - Emirates",
|
"name": "Persian Gulf - Emirates",
|
||||||
"theater": "Persian Gulf",
|
"theater": "Persian Gulf",
|
||||||
"player_points": [
|
"authors": "Khopa",
|
||||||
{
|
"description": "",
|
||||||
"type": "airbase",
|
"player_points": [
|
||||||
"id": "Fujairah Intl",
|
{
|
||||||
"radials": [
|
"type": "airbase",
|
||||||
180,
|
"id": "Fujairah Intl",
|
||||||
225,
|
"radials": [
|
||||||
270,
|
180,
|
||||||
315,
|
225,
|
||||||
0
|
270,
|
||||||
],
|
315,
|
||||||
"size": 1000,
|
0
|
||||||
"importance": 1,
|
],
|
||||||
"captured_invert": true
|
"size": 1000,
|
||||||
},
|
"importance": 1,
|
||||||
{
|
"captured_invert": true
|
||||||
"type": "lha",
|
},
|
||||||
"id": 1002,
|
{
|
||||||
"x": -79770,
|
"type": "lha",
|
||||||
"y": 49430,
|
"id": 1002,
|
||||||
"captured_invert": true
|
"x": -79770,
|
||||||
},
|
"y": 49430,
|
||||||
{
|
"captured_invert": true
|
||||||
"type": "carrier",
|
},
|
||||||
"id": 1001,
|
{
|
||||||
"x": -61770,
|
"type": "carrier",
|
||||||
"y": 69039,
|
"id": 1001,
|
||||||
"captured_invert": true
|
"x": -61770,
|
||||||
}
|
"y": 69039,
|
||||||
|
"captured_invert": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"enemy_points": [
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Al Dhafra AB",
|
||||||
|
"size": 2000,
|
||||||
|
"importance": 1.2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Al Ain International Airport",
|
||||||
|
"size": 2000,
|
||||||
|
"importance": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Al Maktoum Intl",
|
||||||
|
"size": 2000,
|
||||||
|
"importance": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Al Minhad AB",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Sharjah Intl",
|
||||||
|
"size": 2000,
|
||||||
|
"importance": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Ras Al Khaimah",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"links": [
|
||||||
|
[
|
||||||
|
"Al Ain International Airport",
|
||||||
|
"Al Dhafra AB"
|
||||||
],
|
],
|
||||||
"enemy_points": [
|
[
|
||||||
{
|
"Al Dhafra AB",
|
||||||
"type": "airbase",
|
"Al Maktoum Intl"
|
||||||
"id": "Al Dhafra AB",
|
|
||||||
"size": 2000,
|
|
||||||
"importance": 1.2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Al Ain International Airport",
|
|
||||||
"size": 2000,
|
|
||||||
"importance": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Al Maktoum Intl",
|
|
||||||
"size": 2000,
|
|
||||||
"importance": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Al Minhad AB",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Sharjah Intl",
|
|
||||||
"size": 2000,
|
|
||||||
"importance": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Ras Al Khaimah",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1
|
|
||||||
}
|
|
||||||
],
|
],
|
||||||
"links": [
|
[
|
||||||
[
|
"Al Ain International Airport",
|
||||||
"Al Ain International Airport",
|
"Fujairah Intl"
|
||||||
"Al Dhafra AB"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Al Ain International Airport",
|
||||||
"Al Dhafra AB",
|
"Al Maktoum Intl"
|
||||||
"Al Maktoum Intl"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Al Maktoum Intl",
|
||||||
"Al Ain International Airport",
|
"Al Minhad AB"
|
||||||
"Fujairah Intl"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Al Minhad AB",
|
||||||
"Al Ain International Airport",
|
"Sharjah Intl"
|
||||||
"Al Maktoum Intl"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Ras Al Khaimah",
|
||||||
"Al Maktoum Intl",
|
"Sharjah Intl"
|
||||||
"Al Minhad AB"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Fujairah Intl",
|
||||||
"Al Minhad AB",
|
"Sharjah Intl"
|
||||||
"Sharjah Intl"
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"Ras Al Khaimah",
|
|
||||||
"Sharjah Intl"
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"Fujairah Intl",
|
|
||||||
"Sharjah Intl"
|
|
||||||
]
|
|
||||||
]
|
]
|
||||||
|
]
|
||||||
}
|
}
|
||||||
168
resources/campaigns/full_caucasus.json
Normal file
168
resources/campaigns/full_caucasus.json
Normal file
@ -0,0 +1,168 @@
|
|||||||
|
{
|
||||||
|
"name": "Caucasus - Full Map",
|
||||||
|
"theater": "Caucasus",
|
||||||
|
"authors": "george",
|
||||||
|
"description": "Full Caucasus Map",
|
||||||
|
"player_points": [
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Kobuleti",
|
||||||
|
"size": 600,
|
||||||
|
"importance": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Senaki-Kolkhi",
|
||||||
|
"size": 600,
|
||||||
|
"importance": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Kutaisi",
|
||||||
|
"size": 600,
|
||||||
|
"importance": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "carrier",
|
||||||
|
"id": 1001,
|
||||||
|
"x": -304708,
|
||||||
|
"y": 552839,
|
||||||
|
"captured_invert": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "lha",
|
||||||
|
"id": 1002,
|
||||||
|
"x": -326050.6875,
|
||||||
|
"y": 519452.1875,
|
||||||
|
"captured_invert": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"enemy_points": [
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Beslan",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1.3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Nalchik",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1.1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Mozdok",
|
||||||
|
"size": 2000,
|
||||||
|
"importance": 1.1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Mineralnye Vody",
|
||||||
|
"size": 2000,
|
||||||
|
"importance": 1.2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Maykop-Khanskaya",
|
||||||
|
"size": 3000,
|
||||||
|
"importance": 1.2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Sukhumi-Babushara",
|
||||||
|
"size": 2000,
|
||||||
|
"importance": 1.3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Gudauta",
|
||||||
|
"size": 2000,
|
||||||
|
"importance": 1.3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Sochi-Adler",
|
||||||
|
"size": 2000,
|
||||||
|
"importance": 1.1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Gelendzhik",
|
||||||
|
"size": 2000,
|
||||||
|
"importance": 1.3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Vaziani",
|
||||||
|
"size": 2000,
|
||||||
|
"importance": 1.3
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"links": [
|
||||||
|
[
|
||||||
|
"Kutaisi",
|
||||||
|
"Vaziani"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Beslan",
|
||||||
|
"Vaziani"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Beslan",
|
||||||
|
"Mozdok"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Beslan",
|
||||||
|
"Nalchik"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Mozdok",
|
||||||
|
"Nalchik"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Mineralnye Vody",
|
||||||
|
"Nalchik"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Mineralnye Vody",
|
||||||
|
"Mozdok"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Maykop-Khanskaya",
|
||||||
|
"Mineralnye Vody"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Maykop-Khanskaya",
|
||||||
|
"Gelendzhik"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Gelendzhik",
|
||||||
|
"Sochi-Adler"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Gudauta",
|
||||||
|
"Sochi-Adler"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Gudauta",
|
||||||
|
"Sukhumi-Babushara"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Senaki-Kolkhi",
|
||||||
|
"Sukhumi-Babushara"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Kutaisi",
|
||||||
|
"Senaki-Kolkhi"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Senaki-Kolkhi",
|
||||||
|
"Kobuleti"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Kobuleti",
|
||||||
|
"Kutaisi"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
@ -1,183 +1,185 @@
|
|||||||
{
|
{
|
||||||
"name": "Syria - Full Map",
|
"name": "Syria - Full Map",
|
||||||
"theater": "Syria",
|
"theater": "Syria",
|
||||||
"player_points": [
|
"authors": "Khopa",
|
||||||
{
|
"description": "",
|
||||||
"type": "airbase",
|
"player_points": [
|
||||||
"id": "Ramat David",
|
{
|
||||||
"size": 1000,
|
"type": "airbase",
|
||||||
"importance": 1.4
|
"id": "Ramat David",
|
||||||
},
|
"size": 1000,
|
||||||
{
|
"importance": 1.4
|
||||||
"type": "carrier",
|
},
|
||||||
"id": 1001,
|
{
|
||||||
"x": -151000,
|
"type": "carrier",
|
||||||
"y": -106000,
|
"id": 1001,
|
||||||
"captured_invert": true
|
"x": -151000,
|
||||||
},
|
"y": -106000,
|
||||||
{
|
"captured_invert": true
|
||||||
"type": "lha",
|
},
|
||||||
"id": 1002,
|
{
|
||||||
"x": -131000,
|
"type": "lha",
|
||||||
"y": -161000,
|
"id": 1002,
|
||||||
"captured_invert": true
|
"x": -131000,
|
||||||
}
|
"y": -161000,
|
||||||
|
"captured_invert": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"enemy_points": [
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "King Hussein Air College",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1.4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Khalkhalah",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1.2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Al-Dumayr",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1.2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Al Qusayr",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Rene Mouawad",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1.4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Hama",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Bassel Al-Assad",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1.4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Palmyra",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Tabqa",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Jirah",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Aleppo",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1.2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Minakh",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Hatay",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1.4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Incirlik",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1.4,
|
||||||
|
"captured_invert": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"links": [
|
||||||
|
[
|
||||||
|
"King Hussein Air College",
|
||||||
|
"Ramat David"
|
||||||
],
|
],
|
||||||
"enemy_points": [
|
[
|
||||||
{
|
"Khalkhalah",
|
||||||
"type": "airbase",
|
"King Hussein Air College"
|
||||||
"id": "King Hussein Air College",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1.4
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Khalkhalah",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1.2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Al-Dumayr",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1.2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Al Qusayr",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Rene Mouawad",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1.4
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Hama",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Bassel Al-Assad",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1.4
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Palmyra",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Tabqa",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Jirah",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Aleppo",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1.2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Minakh",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Hatay",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1.4
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Incirlik",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1.4,
|
|
||||||
"captured_invert": true
|
|
||||||
}
|
|
||||||
],
|
],
|
||||||
"links": [
|
[
|
||||||
[
|
"Al-Dumayr",
|
||||||
"King Hussein Air College",
|
"Khalkhalah"
|
||||||
"Ramat David"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Al Qusayr",
|
||||||
"Khalkhalah",
|
"Al-Dumayr"
|
||||||
"King Hussein Air College"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Al Qusayr",
|
||||||
"Al-Dumayr",
|
"Hama"
|
||||||
"Khalkhalah"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Al Qusayr",
|
||||||
"Al Qusayr",
|
"Palmyra"
|
||||||
"Al-Dumayr"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Al Qusayr",
|
||||||
"Al Qusayr",
|
"Rene Mouawad"
|
||||||
"Hama"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Bassel Al-Assad",
|
||||||
"Al Qusayr",
|
"Rene Mouawad"
|
||||||
"Palmyra"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Aleppo",
|
||||||
"Al Qusayr",
|
"Hama"
|
||||||
"Rene Mouawad"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Bassel Al-Assad",
|
||||||
"Bassel Al-Assad",
|
"Hama"
|
||||||
"Rene Mouawad"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Bassel Al-Assad",
|
||||||
"Aleppo",
|
"Hatay"
|
||||||
"Hama"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Palmyra",
|
||||||
"Bassel Al-Assad",
|
"Tabqa"
|
||||||
"Hama"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Jirah",
|
||||||
"Bassel Al-Assad",
|
"Tabqa"
|
||||||
"Hatay"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Aleppo",
|
||||||
"Palmyra",
|
"Jirah"
|
||||||
"Tabqa"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Aleppo",
|
||||||
"Jirah",
|
"Minakh"
|
||||||
"Tabqa"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Hatay",
|
||||||
"Aleppo",
|
"Minakh"
|
||||||
"Jirah"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Incirlik",
|
||||||
"Aleppo",
|
"Minakh"
|
||||||
"Minakh"
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"Hatay",
|
|
||||||
"Minakh"
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"Incirlik",
|
|
||||||
"Minakh"
|
|
||||||
]
|
|
||||||
]
|
]
|
||||||
|
]
|
||||||
}
|
}
|
||||||
@ -1,81 +1,83 @@
|
|||||||
{
|
{
|
||||||
"name": "Syria - Golan heights battle",
|
"name": "Syria - Golan heights battle",
|
||||||
"theater": "Syria",
|
"theater": "Syria",
|
||||||
"player_points": [
|
"authors": "Khopa",
|
||||||
{
|
"description": "",
|
||||||
"type": "airbase",
|
"player_points": [
|
||||||
"id": "Ramat David",
|
{
|
||||||
"size": 1000,
|
"type": "airbase",
|
||||||
"importance": 1.4
|
"id": "Ramat David",
|
||||||
},
|
"size": 1000,
|
||||||
{
|
"importance": 1.4
|
||||||
"type": "carrier",
|
},
|
||||||
"id": 1001,
|
{
|
||||||
"x": -280000,
|
"type": "carrier",
|
||||||
"y": -238000,
|
"id": 1001,
|
||||||
"captured_invert": true
|
"x": -280000,
|
||||||
},
|
"y": -238000,
|
||||||
{
|
"captured_invert": true
|
||||||
"type": "lha",
|
},
|
||||||
"id": 1002,
|
{
|
||||||
"x": -237000,
|
"type": "lha",
|
||||||
"y": -89800,
|
"id": 1002,
|
||||||
"captured_invert": true
|
"x": -237000,
|
||||||
}
|
"y": -89800,
|
||||||
|
"captured_invert": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"enemy_points": [
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Khalkhalah",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1.2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "King Hussein Air College",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1.4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Marj Ruhayyil",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Mezzeh",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1.2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Al-Dumayr",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1.2,
|
||||||
|
"captured_invert": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"links": [
|
||||||
|
[
|
||||||
|
"Khalkhalah",
|
||||||
|
"Ramat David"
|
||||||
],
|
],
|
||||||
"enemy_points": [
|
[
|
||||||
{
|
"Khalkhalah",
|
||||||
"type": "airbase",
|
"King Hussein Air College"
|
||||||
"id": "Khalkhalah",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1.2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "King Hussein Air College",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1.4
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Marj Ruhayyil",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Mezzeh",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1.2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Al-Dumayr",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1.2,
|
|
||||||
"captured_invert": true
|
|
||||||
}
|
|
||||||
],
|
],
|
||||||
"links": [
|
[
|
||||||
[
|
"Khalkhalah",
|
||||||
"Khalkhalah",
|
"Marj Ruhayyil"
|
||||||
"Ramat David"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Marj Ruhayyil",
|
||||||
"Khalkhalah",
|
"Mezzeh"
|
||||||
"King Hussein Air College"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Al-Dumayr",
|
||||||
"Khalkhalah",
|
"Marj Ruhayyil"
|
||||||
"Marj Ruhayyil"
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"Marj Ruhayyil",
|
|
||||||
"Mezzeh"
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"Al-Dumayr",
|
|
||||||
"Marj Ruhayyil"
|
|
||||||
]
|
|
||||||
]
|
]
|
||||||
|
]
|
||||||
}
|
}
|
||||||
@ -1,82 +1,84 @@
|
|||||||
{
|
{
|
||||||
"name": "Syria - Inherent Resolve",
|
"name": "Syria - Inherent Resolve",
|
||||||
"theater": "Syria",
|
"theater": "Syria",
|
||||||
"player_points": [
|
"authors": "Khopa",
|
||||||
{
|
"description": "",
|
||||||
"type": "airbase",
|
"player_points": [
|
||||||
"id": "King Hussein Air College",
|
{
|
||||||
"size": 1000,
|
"type": "airbase",
|
||||||
"importance": 1.4
|
"id": "King Hussein Air College",
|
||||||
},
|
"size": 1000,
|
||||||
{
|
"importance": 1.4
|
||||||
"type": "airbase",
|
},
|
||||||
"id": "Incirlik",
|
{
|
||||||
"size": 1000,
|
"type": "airbase",
|
||||||
"importance": 1.4,
|
"id": "Incirlik",
|
||||||
"captured_invert": true
|
"size": 1000,
|
||||||
},
|
"importance": 1.4,
|
||||||
{
|
"captured_invert": true
|
||||||
"type": "carrier",
|
},
|
||||||
"id": 1001,
|
{
|
||||||
"x": -210000,
|
"type": "carrier",
|
||||||
"y": -200000,
|
"id": 1001,
|
||||||
"captured_invert": true
|
"x": -210000,
|
||||||
},
|
"y": -200000,
|
||||||
{
|
"captured_invert": true
|
||||||
"type": "lha",
|
},
|
||||||
"id": 1002,
|
{
|
||||||
"x": -131000,
|
"type": "lha",
|
||||||
"y": -161000,
|
"id": 1002,
|
||||||
"captured_invert": true
|
"x": -131000,
|
||||||
}
|
"y": -161000,
|
||||||
|
"captured_invert": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"enemy_points": [
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Khalkhalah",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1.2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Palmyra",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Tabqa",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Jirah",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1,
|
||||||
|
"captured_invert": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"links": [
|
||||||
|
[
|
||||||
|
"Khalkhalah",
|
||||||
|
"King Hussein Air College"
|
||||||
],
|
],
|
||||||
"enemy_points": [
|
[
|
||||||
{
|
"Incirlik",
|
||||||
"type": "airbase",
|
"Incirlik"
|
||||||
"id": "Khalkhalah",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1.2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Palmyra",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Tabqa",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Jirah",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1,
|
|
||||||
"captured_invert": true
|
|
||||||
}
|
|
||||||
],
|
],
|
||||||
"links": [
|
[
|
||||||
[
|
"Khalkhalah",
|
||||||
"Khalkhalah",
|
"Palmyra"
|
||||||
"King Hussein Air College"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Palmyra",
|
||||||
"Incirlik",
|
"Tabqa"
|
||||||
"Incirlik"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Jirah",
|
||||||
"Khalkhalah",
|
"Tabqa"
|
||||||
"Palmyra"
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"Palmyra",
|
|
||||||
"Tabqa"
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"Jirah",
|
|
||||||
"Tabqa"
|
|
||||||
]
|
|
||||||
]
|
]
|
||||||
|
]
|
||||||
}
|
}
|
||||||
@ -1,85 +1,87 @@
|
|||||||
{
|
{
|
||||||
"name": "Syria - Invasion from Turkey",
|
"name": "Syria - Invasion from Turkey",
|
||||||
"theater": "Syria",
|
"theater": "Syria",
|
||||||
"player_points": [
|
"authors": "Khopa",
|
||||||
{
|
"description": "",
|
||||||
"type": "airbase",
|
"player_points": [
|
||||||
"id": "Incirlik",
|
{
|
||||||
"size": 1000,
|
"type": "airbase",
|
||||||
"importance": 1.4
|
"id": "Incirlik",
|
||||||
},
|
"size": 1000,
|
||||||
{
|
"importance": 1.4
|
||||||
"type": "airbase",
|
},
|
||||||
"id": "Hatay",
|
{
|
||||||
"size": 1000,
|
"type": "airbase",
|
||||||
"importance": 1.4
|
"id": "Hatay",
|
||||||
},
|
"size": 1000,
|
||||||
{
|
"importance": 1.4
|
||||||
"type": "carrier",
|
},
|
||||||
"id": 1001,
|
{
|
||||||
"x": 133000,
|
"type": "carrier",
|
||||||
"y": -54000
|
"id": 1001,
|
||||||
},
|
"x": 133000,
|
||||||
{
|
"y": -54000
|
||||||
"type": "lha",
|
},
|
||||||
"id": 1002,
|
{
|
||||||
"x": 155000,
|
"type": "lha",
|
||||||
"y": -19000
|
"id": 1002,
|
||||||
}
|
"x": 155000,
|
||||||
|
"y": -19000
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"enemy_points": [
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Minakh",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Aleppo",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1.2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Kuweires",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Jirah",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Tabqa",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1,
|
||||||
|
"captured_invert": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"links": [
|
||||||
|
[
|
||||||
|
"Hatay",
|
||||||
|
"Minakh"
|
||||||
],
|
],
|
||||||
"enemy_points": [
|
[
|
||||||
{
|
"Aleppo",
|
||||||
"type": "airbase",
|
"Minakh"
|
||||||
"id": "Minakh",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Aleppo",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1.2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Kuweires",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Jirah",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Tabqa",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1,
|
|
||||||
"captured_invert": true
|
|
||||||
}
|
|
||||||
],
|
],
|
||||||
"links": [
|
[
|
||||||
[
|
"Aleppo",
|
||||||
"Hatay",
|
"Kuweires"
|
||||||
"Minakh"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Jirah",
|
||||||
"Aleppo",
|
"Kuweires"
|
||||||
"Minakh"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Jirah",
|
||||||
"Aleppo",
|
"Tabqa"
|
||||||
"Kuweires"
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"Jirah",
|
|
||||||
"Kuweires"
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"Jirah",
|
|
||||||
"Tabqa"
|
|
||||||
]
|
|
||||||
]
|
]
|
||||||
|
]
|
||||||
}
|
}
|
||||||
@ -1,141 +1,143 @@
|
|||||||
{
|
{
|
||||||
"name": "Persian Gulf - Invasion of Iran",
|
"name": "Persian Gulf - Invasion of Iran",
|
||||||
"theater": "Persian Gulf",
|
"theater": "Persian Gulf",
|
||||||
"player_points": [
|
"authors": "Khopa",
|
||||||
{
|
"description": "",
|
||||||
"type": "airbase",
|
"player_points": [
|
||||||
"id": "Ras Al Khaimah",
|
{
|
||||||
"size": 1000,
|
"type": "airbase",
|
||||||
"importance": 1.2
|
"id": "Ras Al Khaimah",
|
||||||
},
|
"size": 1000,
|
||||||
{
|
"importance": 1.2
|
||||||
"type": "airbase",
|
},
|
||||||
"id": "Khasab",
|
{
|
||||||
"size": 600,
|
"type": "airbase",
|
||||||
"importance": 1.2
|
"id": "Khasab",
|
||||||
},
|
"size": 600,
|
||||||
{
|
"importance": 1.2
|
||||||
"type": "airbase",
|
},
|
||||||
"id": "Qeshm Island",
|
{
|
||||||
"radials": [
|
"type": "airbase",
|
||||||
270,
|
"id": "Qeshm Island",
|
||||||
315,
|
"radials": [
|
||||||
0,
|
270,
|
||||||
45,
|
315,
|
||||||
90,
|
0,
|
||||||
135,
|
45,
|
||||||
180
|
90,
|
||||||
],
|
135,
|
||||||
"size": 600,
|
180
|
||||||
"importance": 1.1
|
],
|
||||||
},
|
"size": 600,
|
||||||
{
|
"importance": 1.1
|
||||||
"type": "airbase",
|
},
|
||||||
"id": "Havadarya",
|
{
|
||||||
"radials": [
|
"type": "airbase",
|
||||||
225,
|
"id": "Havadarya",
|
||||||
270,
|
"radials": [
|
||||||
315,
|
225,
|
||||||
0,
|
270,
|
||||||
45
|
315,
|
||||||
],
|
0,
|
||||||
"size": 1000,
|
45
|
||||||
"importance": 1.4
|
],
|
||||||
},
|
"size": 1000,
|
||||||
{
|
"importance": 1.4
|
||||||
"type": "airbase",
|
},
|
||||||
"id": "Bandar Abbas Intl",
|
{
|
||||||
"size": 2000,
|
"type": "airbase",
|
||||||
"importance": 1.4
|
"id": "Bandar Abbas Intl",
|
||||||
},
|
"size": 2000,
|
||||||
{
|
"importance": 1.4
|
||||||
"type": "carrier",
|
},
|
||||||
"id": 1001,
|
{
|
||||||
"x": 59514.324335475,
|
"type": "carrier",
|
||||||
"y": 28165.517980635
|
"id": 1001,
|
||||||
},
|
"x": 59514.324335475,
|
||||||
{
|
"y": 28165.517980635
|
||||||
"type": "lha",
|
},
|
||||||
"id": 1002,
|
{
|
||||||
"x": -27500.813952358,
|
"type": "lha",
|
||||||
"y": -147000.65947136
|
"id": 1002,
|
||||||
}
|
"x": -27500.813952358,
|
||||||
|
"y": -147000.65947136
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"enemy_points": [
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Bandar Lengeh",
|
||||||
|
"radials": [
|
||||||
|
270,
|
||||||
|
315,
|
||||||
|
0,
|
||||||
|
45
|
||||||
|
],
|
||||||
|
"size": 600,
|
||||||
|
"importance": 1.4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Shiraz International Airport",
|
||||||
|
"size": 2000,
|
||||||
|
"importance": 1.4,
|
||||||
|
"captured_invert": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Jiroft Airport",
|
||||||
|
"size": 2000,
|
||||||
|
"importance": 1.4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Kerman Airport",
|
||||||
|
"size": 2000,
|
||||||
|
"importance": 1.4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Lar Airbase",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1.4
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"links": [
|
||||||
|
[
|
||||||
|
"Khasab",
|
||||||
|
"Ras Al Khaimah"
|
||||||
],
|
],
|
||||||
"enemy_points": [
|
[
|
||||||
{
|
"Bandar Lengeh",
|
||||||
"type": "airbase",
|
"Lar Airbase"
|
||||||
"id": "Bandar Lengeh",
|
|
||||||
"radials": [
|
|
||||||
270,
|
|
||||||
315,
|
|
||||||
0,
|
|
||||||
45
|
|
||||||
],
|
|
||||||
"size": 600,
|
|
||||||
"importance": 1.4
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Shiraz International Airport",
|
|
||||||
"size": 2000,
|
|
||||||
"importance": 1.4,
|
|
||||||
"captured_invert": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Jiroft Airport",
|
|
||||||
"size": 2000,
|
|
||||||
"importance": 1.4
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Kerman Airport",
|
|
||||||
"size": 2000,
|
|
||||||
"importance": 1.4
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Lar Airbase",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1.4
|
|
||||||
}
|
|
||||||
],
|
],
|
||||||
"links": [
|
[
|
||||||
[
|
"Havadarya",
|
||||||
"Khasab",
|
"Lar Airbase"
|
||||||
"Ras Al Khaimah"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Bandar Abbas Intl",
|
||||||
"Bandar Lengeh",
|
"Havadarya"
|
||||||
"Lar Airbase"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Bandar Abbas Intl",
|
||||||
"Havadarya",
|
"Jiroft Airport"
|
||||||
"Lar Airbase"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Lar Airbase",
|
||||||
"Bandar Abbas Intl",
|
"Shiraz International Airport"
|
||||||
"Havadarya"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Kerman Airport",
|
||||||
"Bandar Abbas Intl",
|
"Shiraz International Airport"
|
||||||
"Jiroft Airport"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Jiroft Airport",
|
||||||
"Lar Airbase",
|
"Kerman Airport"
|
||||||
"Shiraz International Airport"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Kerman Airport",
|
||||||
"Kerman Airport",
|
"Lar Airbase"
|
||||||
"Shiraz International Airport"
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"Jiroft Airport",
|
|
||||||
"Kerman Airport"
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"Kerman Airport",
|
|
||||||
"Lar Airbase"
|
|
||||||
]
|
|
||||||
]
|
]
|
||||||
|
]
|
||||||
}
|
}
|
||||||
@ -1,75 +1,77 @@
|
|||||||
{
|
{
|
||||||
"name": "Persian Gulf - Invasion of Iran [Lite]",
|
"name": "Persian Gulf - Invasion of Iran [Lite]",
|
||||||
"theater": "Persian Gulf",
|
"theater": "Persian Gulf",
|
||||||
"player_points": [
|
"authors": "Khopa",
|
||||||
{
|
"description": "",
|
||||||
"type": "airbase",
|
"player_points": [
|
||||||
"id": "Bandar Lengeh",
|
{
|
||||||
"radials": [
|
"type": "airbase",
|
||||||
270,
|
"id": "Bandar Lengeh",
|
||||||
315,
|
"radials": [
|
||||||
0,
|
270,
|
||||||
45
|
315,
|
||||||
],
|
0,
|
||||||
"size": 600,
|
45
|
||||||
"importance": 1.4
|
],
|
||||||
},
|
"size": 600,
|
||||||
{
|
"importance": 1.4
|
||||||
"type": "carrier",
|
},
|
||||||
"id": 1001,
|
{
|
||||||
"x": 72000.324335475,
|
"type": "carrier",
|
||||||
"y": -376000
|
"id": 1001,
|
||||||
},
|
"x": 72000.324335475,
|
||||||
{
|
"y": -376000
|
||||||
"type": "lha",
|
},
|
||||||
"id": 1002,
|
{
|
||||||
"x": -27500.813952358,
|
"type": "lha",
|
||||||
"y": -147000.65947136
|
"id": 1002,
|
||||||
}
|
"x": -27500.813952358,
|
||||||
|
"y": -147000.65947136
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"enemy_points": [
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Shiraz International Airport",
|
||||||
|
"size": 2000,
|
||||||
|
"importance": 1.4,
|
||||||
|
"captured_invert": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Jiroft Airport",
|
||||||
|
"size": 2000,
|
||||||
|
"importance": 1.4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Kerman Airport",
|
||||||
|
"size": 2000,
|
||||||
|
"importance": 1.4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Lar Airbase",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1.4
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"links": [
|
||||||
|
[
|
||||||
|
"Bandar Lengeh",
|
||||||
|
"Lar Airbase"
|
||||||
],
|
],
|
||||||
"enemy_points": [
|
[
|
||||||
{
|
"Lar Airbase",
|
||||||
"type": "airbase",
|
"Shiraz International Airport"
|
||||||
"id": "Shiraz International Airport",
|
|
||||||
"size": 2000,
|
|
||||||
"importance": 1.4,
|
|
||||||
"captured_invert": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Jiroft Airport",
|
|
||||||
"size": 2000,
|
|
||||||
"importance": 1.4
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Kerman Airport",
|
|
||||||
"size": 2000,
|
|
||||||
"importance": 1.4
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Lar Airbase",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1.4
|
|
||||||
}
|
|
||||||
],
|
],
|
||||||
"links": [
|
[
|
||||||
[
|
"Kerman Airport",
|
||||||
"Bandar Lengeh",
|
"Shiraz International Airport"
|
||||||
"Lar Airbase"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Jiroft Airport",
|
||||||
"Lar Airbase",
|
"Kerman Airport"
|
||||||
"Shiraz International Airport"
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"Kerman Airport",
|
|
||||||
"Shiraz International Airport"
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"Jiroft Airport",
|
|
||||||
"Kerman Airport"
|
|
||||||
]
|
|
||||||
]
|
]
|
||||||
|
]
|
||||||
}
|
}
|
||||||
@ -1,83 +1,85 @@
|
|||||||
{
|
{
|
||||||
"name": "Normandy - Normandy",
|
"name": "Normandy - Normandy",
|
||||||
"theater": "Normandy",
|
"theater": "Normandy",
|
||||||
"player_points": [
|
"authors": "Khopa",
|
||||||
{
|
"description": "",
|
||||||
"type": "airbase",
|
"player_points": [
|
||||||
"id": "Chailey",
|
{
|
||||||
"size": 600,
|
"type": "airbase",
|
||||||
"importance": 1
|
"id": "Chailey",
|
||||||
},
|
"size": 600,
|
||||||
{
|
"importance": 1
|
||||||
"type": "airbase",
|
},
|
||||||
"id": "Needs Oar Point",
|
{
|
||||||
"size": 600,
|
"type": "airbase",
|
||||||
"importance": 1
|
"id": "Needs Oar Point",
|
||||||
},
|
"size": 600,
|
||||||
{
|
"importance": 1
|
||||||
"type": "airbase",
|
},
|
||||||
"id": "Deux Jumeaux",
|
{
|
||||||
"size": 600,
|
"type": "airbase",
|
||||||
"importance": 1
|
"id": "Deux Jumeaux",
|
||||||
}
|
"size": 600,
|
||||||
|
"importance": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"enemy_points": [
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Lignerolles",
|
||||||
|
"size": 600,
|
||||||
|
"importance": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Lessay",
|
||||||
|
"size": 600,
|
||||||
|
"importance": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Carpiquet",
|
||||||
|
"size": 600,
|
||||||
|
"importance": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Maupertus",
|
||||||
|
"size": 600,
|
||||||
|
"importance": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Evreux",
|
||||||
|
"size": 600,
|
||||||
|
"importance": 1,
|
||||||
|
"captured_invert": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"links": [
|
||||||
|
[
|
||||||
|
"Chailey",
|
||||||
|
"Needs Oar Point"
|
||||||
],
|
],
|
||||||
"enemy_points": [
|
[
|
||||||
{
|
"Deux Jumeaux",
|
||||||
"type": "airbase",
|
"Lignerolles"
|
||||||
"id": "Lignerolles",
|
|
||||||
"size": 600,
|
|
||||||
"importance": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Lessay",
|
|
||||||
"size": 600,
|
|
||||||
"importance": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Carpiquet",
|
|
||||||
"size": 600,
|
|
||||||
"importance": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Maupertus",
|
|
||||||
"size": 600,
|
|
||||||
"importance": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Evreux",
|
|
||||||
"size": 600,
|
|
||||||
"importance": 1,
|
|
||||||
"captured_invert": true
|
|
||||||
}
|
|
||||||
],
|
],
|
||||||
"links": [
|
[
|
||||||
[
|
"Lessay",
|
||||||
"Chailey",
|
"Lignerolles"
|
||||||
"Needs Oar Point"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Carpiquet",
|
||||||
"Deux Jumeaux",
|
"Lignerolles"
|
||||||
"Lignerolles"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Lessay",
|
||||||
"Lessay",
|
"Maupertus"
|
||||||
"Lignerolles"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Carpiquet",
|
||||||
"Carpiquet",
|
"Evreux"
|
||||||
"Lignerolles"
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"Lessay",
|
|
||||||
"Maupertus"
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"Carpiquet",
|
|
||||||
"Evreux"
|
|
||||||
]
|
|
||||||
]
|
]
|
||||||
|
]
|
||||||
}
|
}
|
||||||
@ -1,53 +1,55 @@
|
|||||||
{
|
{
|
||||||
"name": "Normandy - Normandy Small",
|
"name": "Normandy - Normandy Small",
|
||||||
"theater": "Normandy",
|
"theater": "Normandy",
|
||||||
"player_points": [
|
"authors": "Khopa",
|
||||||
{
|
"description": "",
|
||||||
"type": "airbase",
|
"player_points": [
|
||||||
"id": "Needs Oar Point",
|
{
|
||||||
"size": 600,
|
"type": "airbase",
|
||||||
"importance": 1
|
"id": "Needs Oar Point",
|
||||||
},
|
"size": 600,
|
||||||
{
|
"importance": 1
|
||||||
"type": "airbase",
|
},
|
||||||
"id": "Deux Jumeaux",
|
{
|
||||||
"size": 600,
|
"type": "airbase",
|
||||||
"importance": 1
|
"id": "Deux Jumeaux",
|
||||||
}
|
"size": 600,
|
||||||
|
"importance": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"enemy_points": [
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Lignerolles",
|
||||||
|
"size": 600,
|
||||||
|
"importance": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Carpiquet",
|
||||||
|
"size": 600,
|
||||||
|
"importance": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Evreux",
|
||||||
|
"size": 600,
|
||||||
|
"importance": 1,
|
||||||
|
"captured_invert": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"links": [
|
||||||
|
[
|
||||||
|
"Deux Jumeaux",
|
||||||
|
"Lignerolles"
|
||||||
],
|
],
|
||||||
"enemy_points": [
|
[
|
||||||
{
|
"Carpiquet",
|
||||||
"type": "airbase",
|
"Lignerolles"
|
||||||
"id": "Lignerolles",
|
|
||||||
"size": 600,
|
|
||||||
"importance": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Carpiquet",
|
|
||||||
"size": 600,
|
|
||||||
"importance": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Evreux",
|
|
||||||
"size": 600,
|
|
||||||
"importance": 1,
|
|
||||||
"captured_invert": true
|
|
||||||
}
|
|
||||||
],
|
],
|
||||||
"links": [
|
[
|
||||||
[
|
"Carpiquet",
|
||||||
"Deux Jumeaux",
|
"Evreux"
|
||||||
"Lignerolles"
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"Carpiquet",
|
|
||||||
"Lignerolles"
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"Carpiquet",
|
|
||||||
"Evreux"
|
|
||||||
]
|
|
||||||
]
|
]
|
||||||
|
]
|
||||||
}
|
}
|
||||||
@ -1,99 +1,101 @@
|
|||||||
{
|
{
|
||||||
"name": "Caucasus - North Caucasus",
|
"name": "Caucasus - North Caucasus",
|
||||||
"theater": "Caucasus",
|
"theater": "Caucasus",
|
||||||
"player_points": [
|
"authors": "Khopa",
|
||||||
{
|
"description": "",
|
||||||
"type": "airbase",
|
"player_points": [
|
||||||
"id": "Kutaisi",
|
{
|
||||||
"size": 600,
|
"type": "airbase",
|
||||||
"importance": 1
|
"id": "Kutaisi",
|
||||||
},
|
"size": 600,
|
||||||
{
|
"importance": 1
|
||||||
"type": "airbase",
|
},
|
||||||
"id": "Vaziani",
|
{
|
||||||
"size": 600,
|
"type": "airbase",
|
||||||
"importance": 1
|
"id": "Vaziani",
|
||||||
},
|
"size": 600,
|
||||||
{
|
"importance": 1
|
||||||
"type": "carrier",
|
},
|
||||||
"id": 1001,
|
{
|
||||||
"x": -285810.6875,
|
"type": "carrier",
|
||||||
"y": 496399.1875,
|
"id": 1001,
|
||||||
"captured_invert": true
|
"x": -285810.6875,
|
||||||
},
|
"y": 496399.1875,
|
||||||
{
|
"captured_invert": true
|
||||||
"type": "lha",
|
},
|
||||||
"id": 1002,
|
{
|
||||||
"x": -326050.6875,
|
"type": "lha",
|
||||||
"y": 519452.1875,
|
"id": 1002,
|
||||||
"captured_invert": true
|
"x": -326050.6875,
|
||||||
}
|
"y": 519452.1875,
|
||||||
|
"captured_invert": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"enemy_points": [
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Beslan",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Nalchik",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1.1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Mozdok",
|
||||||
|
"size": 2000,
|
||||||
|
"importance": 1.1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Mineralnye Vody",
|
||||||
|
"size": 2000,
|
||||||
|
"importance": 1.3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Maykop-Khanskaya",
|
||||||
|
"size": 3000,
|
||||||
|
"importance": 1.4,
|
||||||
|
"captured_invert": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"links": [
|
||||||
|
[
|
||||||
|
"Kutaisi",
|
||||||
|
"Vaziani"
|
||||||
],
|
],
|
||||||
"enemy_points": [
|
[
|
||||||
{
|
"Beslan",
|
||||||
"type": "airbase",
|
"Vaziani"
|
||||||
"id": "Beslan",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Nalchik",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1.1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Mozdok",
|
|
||||||
"size": 2000,
|
|
||||||
"importance": 1.1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Mineralnye Vody",
|
|
||||||
"size": 2000,
|
|
||||||
"importance": 1.3
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Maykop-Khanskaya",
|
|
||||||
"size": 3000,
|
|
||||||
"importance": 1.4,
|
|
||||||
"captured_invert": true
|
|
||||||
}
|
|
||||||
],
|
],
|
||||||
"links": [
|
[
|
||||||
[
|
"Beslan",
|
||||||
"Kutaisi",
|
"Mozdok"
|
||||||
"Vaziani"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Beslan",
|
||||||
"Beslan",
|
"Nalchik"
|
||||||
"Vaziani"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Mozdok",
|
||||||
"Beslan",
|
"Nalchik"
|
||||||
"Mozdok"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Mineralnye Vody",
|
||||||
"Beslan",
|
"Nalchik"
|
||||||
"Nalchik"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Mineralnye Vody",
|
||||||
"Mozdok",
|
"Mozdok"
|
||||||
"Nalchik"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Maykop-Khanskaya",
|
||||||
"Mineralnye Vody",
|
"Mineralnye Vody"
|
||||||
"Nalchik"
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"Mineralnye Vody",
|
|
||||||
"Mozdok"
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"Maykop-Khanskaya",
|
|
||||||
"Mineralnye Vody"
|
|
||||||
]
|
|
||||||
]
|
]
|
||||||
|
]
|
||||||
}
|
}
|
||||||
@ -1,71 +1,73 @@
|
|||||||
{
|
{
|
||||||
"name": "Nevada - North Nevada",
|
"name": "Nevada - North Nevada",
|
||||||
"theater": "Nevada",
|
"theater": "Nevada",
|
||||||
"player_points": [
|
"authors": "Khopa",
|
||||||
{
|
"description": "",
|
||||||
"type": "airbase",
|
"player_points": [
|
||||||
"id": "Nellis AFB",
|
{
|
||||||
"size": 2000,
|
"type": "airbase",
|
||||||
"importance": 1.4
|
"id": "Nellis AFB",
|
||||||
}
|
"size": 2000,
|
||||||
|
"importance": 1.4
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"enemy_points": [
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Tonopah Test Range Airfield",
|
||||||
|
"size": 600,
|
||||||
|
"importance": 1,
|
||||||
|
"captured_invert": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Lincoln County",
|
||||||
|
"size": 600,
|
||||||
|
"importance": 1.2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Groom Lake AFB",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1.4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Creech AFB",
|
||||||
|
"size": 2000,
|
||||||
|
"importance": 1.4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Mesquite",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1.3
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"links": [
|
||||||
|
[
|
||||||
|
"Lincoln County",
|
||||||
|
"Tonopah Test Range Airfield"
|
||||||
],
|
],
|
||||||
"enemy_points": [
|
[
|
||||||
{
|
"Groom Lake AFB",
|
||||||
"type": "airbase",
|
"Tonopah Test Range Airfield"
|
||||||
"id": "Tonopah Test Range Airfield",
|
|
||||||
"size": 600,
|
|
||||||
"importance": 1,
|
|
||||||
"captured_invert": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Lincoln County",
|
|
||||||
"size": 600,
|
|
||||||
"importance": 1.2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Groom Lake AFB",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1.4
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Creech AFB",
|
|
||||||
"size": 2000,
|
|
||||||
"importance": 1.4
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Mesquite",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1.3
|
|
||||||
}
|
|
||||||
],
|
],
|
||||||
"links": [
|
[
|
||||||
[
|
"Lincoln County",
|
||||||
"Lincoln County",
|
"Mesquite"
|
||||||
"Tonopah Test Range Airfield"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Groom Lake AFB",
|
||||||
"Groom Lake AFB",
|
"Mesquite"
|
||||||
"Tonopah Test Range Airfield"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Creech AFB",
|
||||||
"Lincoln County",
|
"Groom Lake AFB"
|
||||||
"Mesquite"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Creech AFB",
|
||||||
"Groom Lake AFB",
|
"Nellis AFB"
|
||||||
"Mesquite"
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"Creech AFB",
|
|
||||||
"Groom Lake AFB"
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"Creech AFB",
|
|
||||||
"Nellis AFB"
|
|
||||||
]
|
|
||||||
]
|
]
|
||||||
|
]
|
||||||
}
|
}
|
||||||
@ -1,37 +1,39 @@
|
|||||||
{
|
{
|
||||||
"name": "Caucasus - Russia Small",
|
"name": "Caucasus - Russia Small",
|
||||||
"theater": "Caucasus",
|
"theater": "Caucasus",
|
||||||
"player_points": [
|
"authors": "Khopa",
|
||||||
{
|
"description": "",
|
||||||
"type": "airbase",
|
"player_points": [
|
||||||
"id": "Mozdok",
|
{
|
||||||
"size": 2000,
|
"type": "airbase",
|
||||||
"importance": 1.1
|
"id": "Mozdok",
|
||||||
}
|
"size": 2000,
|
||||||
|
"importance": 1.1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"enemy_points": [
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Mineralnye Vody",
|
||||||
|
"size": 2000,
|
||||||
|
"importance": 1.3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Maykop-Khanskaya",
|
||||||
|
"size": 3000,
|
||||||
|
"importance": 1.4,
|
||||||
|
"captured_invert": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"links": [
|
||||||
|
[
|
||||||
|
"Mineralnye Vody",
|
||||||
|
"Mozdok"
|
||||||
],
|
],
|
||||||
"enemy_points": [
|
[
|
||||||
{
|
"Maykop-Khanskaya",
|
||||||
"type": "airbase",
|
"Mineralnye Vody"
|
||||||
"id": "Mineralnye Vody",
|
|
||||||
"size": 2000,
|
|
||||||
"importance": 1.3
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Maykop-Khanskaya",
|
|
||||||
"size": 3000,
|
|
||||||
"importance": 1.4,
|
|
||||||
"captured_invert": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"links": [
|
|
||||||
[
|
|
||||||
"Mineralnye Vody",
|
|
||||||
"Mozdok"
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"Maykop-Khanskaya",
|
|
||||||
"Mineralnye Vody"
|
|
||||||
]
|
|
||||||
]
|
]
|
||||||
|
]
|
||||||
}
|
}
|
||||||
@ -1,91 +1,93 @@
|
|||||||
{
|
{
|
||||||
"name": "Syria - Syrian Civil War",
|
"name": "Syria - Syrian Civil War",
|
||||||
"theater": "Syria",
|
"theater": "Syria",
|
||||||
"player_points": [
|
"authors": "Khopa",
|
||||||
{
|
"description": "",
|
||||||
"type": "airbase",
|
"player_points": [
|
||||||
"id": "Bassel Al-Assad",
|
{
|
||||||
"size": 1000,
|
"type": "airbase",
|
||||||
"importance": 1.4
|
"id": "Bassel Al-Assad",
|
||||||
},
|
"size": 1000,
|
||||||
{
|
"importance": 1.4
|
||||||
"type": "airbase",
|
},
|
||||||
"id": "Marj Ruhayyil",
|
{
|
||||||
"size": 1000,
|
"type": "airbase",
|
||||||
"importance": 1
|
"id": "Marj Ruhayyil",
|
||||||
},
|
"size": 1000,
|
||||||
{
|
"importance": 1
|
||||||
"type": "carrier",
|
},
|
||||||
"id": 1001,
|
{
|
||||||
"x": 18537,
|
"type": "carrier",
|
||||||
"y": -52000,
|
"id": 1001,
|
||||||
"captured_invert": true
|
"x": 18537,
|
||||||
},
|
"y": -52000,
|
||||||
{
|
"captured_invert": true
|
||||||
"type": "lha",
|
},
|
||||||
"id": 1002,
|
{
|
||||||
"x": 116000,
|
"type": "lha",
|
||||||
"y": -30000,
|
"id": 1002,
|
||||||
"captured_invert": true
|
"x": 116000,
|
||||||
}
|
"y": -30000,
|
||||||
|
"captured_invert": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"enemy_points": [
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Hama",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Aleppo",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1.2,
|
||||||
|
"captured_invert": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Al Qusayr",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Palmyra",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Al-Dumayr",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1.2
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"links": [
|
||||||
|
[
|
||||||
|
"Bassel Al-Assad",
|
||||||
|
"Hama"
|
||||||
],
|
],
|
||||||
"enemy_points": [
|
[
|
||||||
{
|
"Al-Dumayr",
|
||||||
"type": "airbase",
|
"Marj Ruhayyil"
|
||||||
"id": "Hama",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Aleppo",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1.2,
|
|
||||||
"captured_invert": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Al Qusayr",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Palmyra",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Al-Dumayr",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1.2
|
|
||||||
}
|
|
||||||
],
|
],
|
||||||
"links": [
|
[
|
||||||
[
|
"Aleppo",
|
||||||
"Bassel Al-Assad",
|
"Hama"
|
||||||
"Hama"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Al Qusayr",
|
||||||
"Al-Dumayr",
|
"Hama"
|
||||||
"Marj Ruhayyil"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Al Qusayr",
|
||||||
"Aleppo",
|
"Al-Dumayr"
|
||||||
"Hama"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Al Qusayr",
|
||||||
"Al Qusayr",
|
"Palmyra"
|
||||||
"Hama"
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"Al Qusayr",
|
|
||||||
"Al-Dumayr"
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"Al Qusayr",
|
|
||||||
"Palmyra"
|
|
||||||
]
|
|
||||||
]
|
]
|
||||||
|
]
|
||||||
}
|
}
|
||||||
@ -1,111 +1,113 @@
|
|||||||
{
|
{
|
||||||
"name": "Caucasus - Western Georgia",
|
"name": "Caucasus - Western Georgia",
|
||||||
"theater": "Caucasus",
|
"theater": "Caucasus",
|
||||||
"player_points": [
|
"authors": "Khopa",
|
||||||
{
|
"description": "",
|
||||||
"type": "airbase",
|
"player_points": [
|
||||||
"id": "Kobuleti",
|
{
|
||||||
"radials": [
|
"type": "airbase",
|
||||||
0,
|
"id": "Kobuleti",
|
||||||
45,
|
"radials": [
|
||||||
90,
|
0,
|
||||||
135,
|
45,
|
||||||
180,
|
90,
|
||||||
225,
|
135,
|
||||||
315
|
180,
|
||||||
],
|
225,
|
||||||
"size": 600,
|
315
|
||||||
"importance": 1.1
|
],
|
||||||
},
|
"size": 600,
|
||||||
{
|
"importance": 1.1
|
||||||
"type": "carrier",
|
},
|
||||||
"id": 1001,
|
{
|
||||||
"x": -285810.6875,
|
"type": "carrier",
|
||||||
"y": 496399.1875,
|
"id": 1001,
|
||||||
"captured_invert": true
|
"x": -285810.6875,
|
||||||
},
|
"y": 496399.1875,
|
||||||
{
|
"captured_invert": true
|
||||||
"type": "lha",
|
},
|
||||||
"id": 1002,
|
{
|
||||||
"x": -326050.6875,
|
"type": "lha",
|
||||||
"y": 519452.1875,
|
"id": 1002,
|
||||||
"captured_invert": true
|
"x": -326050.6875,
|
||||||
}
|
"y": 519452.1875,
|
||||||
|
"captured_invert": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"enemy_points": [
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Kutaisi",
|
||||||
|
"size": 600,
|
||||||
|
"importance": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Senaki-Kolkhi",
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Sukhumi-Babushara",
|
||||||
|
"radials": [
|
||||||
|
315,
|
||||||
|
0,
|
||||||
|
45,
|
||||||
|
90,
|
||||||
|
135
|
||||||
|
],
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1.2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Gudauta",
|
||||||
|
"radials": [
|
||||||
|
315,
|
||||||
|
0,
|
||||||
|
45,
|
||||||
|
90,
|
||||||
|
135
|
||||||
|
],
|
||||||
|
"size": 1000,
|
||||||
|
"importance": 1.2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "airbase",
|
||||||
|
"id": "Sochi-Adler",
|
||||||
|
"radials": [
|
||||||
|
315,
|
||||||
|
0,
|
||||||
|
45,
|
||||||
|
90,
|
||||||
|
135
|
||||||
|
],
|
||||||
|
"size": 2000,
|
||||||
|
"importance": 1.4,
|
||||||
|
"captured_invert": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"links": [
|
||||||
|
[
|
||||||
|
"Kutaisi",
|
||||||
|
"Senaki-Kolkhi"
|
||||||
],
|
],
|
||||||
"enemy_points": [
|
[
|
||||||
{
|
"Kobuleti",
|
||||||
"type": "airbase",
|
"Senaki-Kolkhi"
|
||||||
"id": "Kutaisi",
|
|
||||||
"size": 600,
|
|
||||||
"importance": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Senaki-Kolkhi",
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Sukhumi-Babushara",
|
|
||||||
"radials": [
|
|
||||||
315,
|
|
||||||
0,
|
|
||||||
45,
|
|
||||||
90,
|
|
||||||
135
|
|
||||||
],
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1.2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Gudauta",
|
|
||||||
"radials": [
|
|
||||||
315,
|
|
||||||
0,
|
|
||||||
45,
|
|
||||||
90,
|
|
||||||
135
|
|
||||||
],
|
|
||||||
"size": 1000,
|
|
||||||
"importance": 1.2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "airbase",
|
|
||||||
"id": "Sochi-Adler",
|
|
||||||
"radials": [
|
|
||||||
315,
|
|
||||||
0,
|
|
||||||
45,
|
|
||||||
90,
|
|
||||||
135
|
|
||||||
],
|
|
||||||
"size": 2000,
|
|
||||||
"importance": 1.4,
|
|
||||||
"captured_invert": true
|
|
||||||
}
|
|
||||||
],
|
],
|
||||||
"links": [
|
[
|
||||||
[
|
"Senaki-Kolkhi",
|
||||||
"Kutaisi",
|
"Sukhumi-Babushara"
|
||||||
"Senaki-Kolkhi"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Gudauta",
|
||||||
"Kobuleti",
|
"Sukhumi-Babushara"
|
||||||
"Senaki-Kolkhi"
|
],
|
||||||
],
|
[
|
||||||
[
|
"Gudauta",
|
||||||
"Senaki-Kolkhi",
|
"Sochi-Adler"
|
||||||
"Sukhumi-Babushara"
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"Gudauta",
|
|
||||||
"Sukhumi-Babushara"
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"Gudauta",
|
|
||||||
"Sochi-Adler"
|
|
||||||
]
|
|
||||||
]
|
]
|
||||||
|
]
|
||||||
}
|
}
|
||||||
65
resources/factions/allies_1944.json
Normal file
65
resources/factions/allies_1944.json
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
{
|
||||||
|
"country": "USA",
|
||||||
|
"name": "Allies 1944",
|
||||||
|
"authors": "Khopa",
|
||||||
|
"description": "",
|
||||||
|
"aircrafts": [
|
||||||
|
"P_51D",
|
||||||
|
"P_51D_30_NA",
|
||||||
|
"P_47D_30",
|
||||||
|
"SpitfireLFMkIX",
|
||||||
|
"SpitfireLFMkIXCW",
|
||||||
|
"A_20G",
|
||||||
|
"B_17G"
|
||||||
|
],
|
||||||
|
"frontline_units": [
|
||||||
|
"MT_M4A4_Sherman_Firefly",
|
||||||
|
"MT_M4_Sherman",
|
||||||
|
"APC_M2A1",
|
||||||
|
"CT_Cromwell_IV",
|
||||||
|
"ST_Centaur_IV",
|
||||||
|
"HIT_Churchill_VII",
|
||||||
|
"M30_Cargo_Carrier",
|
||||||
|
"LAC_M8_Greyhound",
|
||||||
|
"TD_M10_GMC"
|
||||||
|
],
|
||||||
|
"artillery_units": [
|
||||||
|
"M12_GMC"
|
||||||
|
],
|
||||||
|
"logistics_units": [
|
||||||
|
"Bedford_MWD",
|
||||||
|
"CCKW_353"
|
||||||
|
],
|
||||||
|
"infantry_units": [
|
||||||
|
"Infantry_SMLE_No_4_Mk_1",
|
||||||
|
"Infantry_M1_Garand"
|
||||||
|
],
|
||||||
|
"shorads": [
|
||||||
|
"BoforsGenerator"
|
||||||
|
],
|
||||||
|
"sams": [
|
||||||
|
"BoforsGenerator"
|
||||||
|
],
|
||||||
|
"aircraft_carrier": [
|
||||||
|
],
|
||||||
|
"helicopter_carrier": [
|
||||||
|
],
|
||||||
|
"destroyers": [
|
||||||
|
],
|
||||||
|
"cruisers": [
|
||||||
|
],
|
||||||
|
"requirements": {
|
||||||
|
"WW2 Asset Pack": "https://www.digitalcombatsimulator.com/en/products/other/wwii_assets_pack/"
|
||||||
|
},
|
||||||
|
"carrier_names": [
|
||||||
|
],
|
||||||
|
"helicopter_carrier_names": [
|
||||||
|
],
|
||||||
|
"navy_generators": [
|
||||||
|
"WW2LSTGroupGenerator"
|
||||||
|
],
|
||||||
|
"navy_group_count": 1,
|
||||||
|
"has_jtac": false,
|
||||||
|
"doctrine": "ww2",
|
||||||
|
"building_set": "ww2ally"
|
||||||
|
}
|
||||||
63
resources/factions/australia_2005.json
Normal file
63
resources/factions/australia_2005.json
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
{
|
||||||
|
"country": "Australia",
|
||||||
|
"name": "Australia 2005",
|
||||||
|
"authors": "Khopa",
|
||||||
|
"description": "",
|
||||||
|
"aircrafts": [
|
||||||
|
"FA_18C_hornet",
|
||||||
|
"UH_1H",
|
||||||
|
"AH_1W"
|
||||||
|
],
|
||||||
|
"awacs": [
|
||||||
|
"E_3A"
|
||||||
|
],
|
||||||
|
"tankers": [
|
||||||
|
"KC_135",
|
||||||
|
"KC130"
|
||||||
|
],
|
||||||
|
"frontline_units": [
|
||||||
|
"MBT_M1A2_Abrams",
|
||||||
|
"MBT_Leopard_1A3",
|
||||||
|
"APC_M113",
|
||||||
|
"IFV_LAV_25",
|
||||||
|
"IFV_MCV_80"
|
||||||
|
],
|
||||||
|
"artillery_units": [
|
||||||
|
],
|
||||||
|
"logistics_units": [
|
||||||
|
"Transport_M818"
|
||||||
|
],
|
||||||
|
"infantry_units": [
|
||||||
|
"Infantry_M4",
|
||||||
|
"Soldier_M249"
|
||||||
|
],
|
||||||
|
"shorads": [
|
||||||
|
"RapierGenerator"
|
||||||
|
],
|
||||||
|
"sams": [
|
||||||
|
"HawkGenerator",
|
||||||
|
"RapierGenerator"
|
||||||
|
],
|
||||||
|
"aircraft_carrier": [
|
||||||
|
],
|
||||||
|
"helicopter_carrier": [
|
||||||
|
"LHA_1_Tarawa"
|
||||||
|
],
|
||||||
|
"destroyers": [
|
||||||
|
"USS_Arleigh_Burke_IIa"
|
||||||
|
],
|
||||||
|
"cruisers": [
|
||||||
|
],
|
||||||
|
"requirements": {},
|
||||||
|
"carrier_names": [
|
||||||
|
],
|
||||||
|
"helicopter_carrier_names": [
|
||||||
|
"HMAS Canberra",
|
||||||
|
"HMAS Adelaide"
|
||||||
|
],
|
||||||
|
"navy_generators": [
|
||||||
|
"ArleighBurkeGroupGenerator"
|
||||||
|
],
|
||||||
|
"has_jtac": true,
|
||||||
|
"jtac_unit": "MQ_9_Reaper"
|
||||||
|
}
|
||||||
78
resources/factions/bluefor_coldwar.json
Normal file
78
resources/factions/bluefor_coldwar.json
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
{
|
||||||
|
"country": "Combined Joint Task Forces Blue",
|
||||||
|
"name": "Bluefor Coldwar",
|
||||||
|
"authors": "Khopa",
|
||||||
|
"description": "",
|
||||||
|
"aircrafts": [
|
||||||
|
"F_14B",
|
||||||
|
"F_4E",
|
||||||
|
"F_5E_3",
|
||||||
|
"A_10A",
|
||||||
|
"AJS37",
|
||||||
|
"UH_1H",
|
||||||
|
"SA342M",
|
||||||
|
"SA342L",
|
||||||
|
"B_52H"
|
||||||
|
],
|
||||||
|
"awacs": [
|
||||||
|
"C_130",
|
||||||
|
"E_3A"
|
||||||
|
],
|
||||||
|
"tankers": [
|
||||||
|
"KC_135",
|
||||||
|
"KC130"
|
||||||
|
],
|
||||||
|
"frontline_units": [
|
||||||
|
"MBT_M60A3_Patton",
|
||||||
|
"APC_M113"
|
||||||
|
],
|
||||||
|
"artillery_units": [
|
||||||
|
"SPH_M109_Paladin"
|
||||||
|
],
|
||||||
|
"logistics_units": [
|
||||||
|
"Transport_M818"
|
||||||
|
],
|
||||||
|
"infantry_units": [
|
||||||
|
"Infantry_M4",
|
||||||
|
"Soldier_M249"
|
||||||
|
],
|
||||||
|
"shorads": [
|
||||||
|
"VulcanGenerator"
|
||||||
|
],
|
||||||
|
"sams": [
|
||||||
|
"HawkGenerator",
|
||||||
|
"ChaparralGenerator"
|
||||||
|
],
|
||||||
|
"aircraft_carrier": [
|
||||||
|
"CVN_74_John_C__Stennis"
|
||||||
|
],
|
||||||
|
"helicopter_carrier": [
|
||||||
|
"LHA_1_Tarawa"
|
||||||
|
],
|
||||||
|
"destroyers": [
|
||||||
|
"USS_Arleigh_Burke_IIa"
|
||||||
|
],
|
||||||
|
"cruisers": [
|
||||||
|
"Ticonderoga_class"
|
||||||
|
],
|
||||||
|
"requirements": {},
|
||||||
|
"carrier_names": [
|
||||||
|
"CVN-71 Theodore Roosevelt",
|
||||||
|
"CVN-72 Abraham Lincoln",
|
||||||
|
"CVN-73 George Washington",
|
||||||
|
"CVN-74 John C. Stennis"
|
||||||
|
],
|
||||||
|
"helicopter_carrier_names": [
|
||||||
|
"LHA-1 Tarawa",
|
||||||
|
"LHA-2 Saipan",
|
||||||
|
"LHA-3 Belleau Wood",
|
||||||
|
"LHA-4 Nassau",
|
||||||
|
"LHA-5 Peleliu"
|
||||||
|
],
|
||||||
|
"navy_generators": [
|
||||||
|
"ArleighBurkeGroupGenerator"
|
||||||
|
],
|
||||||
|
"has_jtac": true,
|
||||||
|
"jtac_unit": "MQ_9_Reaper",
|
||||||
|
"doctrine": "coldwar"
|
||||||
|
}
|
||||||
81
resources/factions/bluefor_coldwar_a4.json
Normal file
81
resources/factions/bluefor_coldwar_a4.json
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
{
|
||||||
|
"country": "Combined Joint Task Forces Blue",
|
||||||
|
"name": "Bluefor Coldwar (With A4)",
|
||||||
|
"authors": "Khopa",
|
||||||
|
"description": "",
|
||||||
|
"aircrafts": [
|
||||||
|
"F_14B",
|
||||||
|
"F_4E",
|
||||||
|
"F_5E_3",
|
||||||
|
"A_10A",
|
||||||
|
"AJS37",
|
||||||
|
"UH_1H",
|
||||||
|
"SA342M",
|
||||||
|
"SA342L",
|
||||||
|
"A_4E_C",
|
||||||
|
"B_52H"
|
||||||
|
],
|
||||||
|
"awacs": [
|
||||||
|
"C_130",
|
||||||
|
"E_3A"
|
||||||
|
],
|
||||||
|
"tankers": [
|
||||||
|
"KC_135",
|
||||||
|
"KC130"
|
||||||
|
],
|
||||||
|
"frontline_units": [
|
||||||
|
"MBT_M60A3_Patton",
|
||||||
|
"APC_M113"
|
||||||
|
],
|
||||||
|
"artillery_units": [
|
||||||
|
"SPH_M109_Paladin"
|
||||||
|
],
|
||||||
|
"logistics_units": [
|
||||||
|
"Transport_M818"
|
||||||
|
],
|
||||||
|
"infantry_units": [
|
||||||
|
"Infantry_M4",
|
||||||
|
"Soldier_M249"
|
||||||
|
],
|
||||||
|
"shorads": [
|
||||||
|
"VulcanGenerator"
|
||||||
|
],
|
||||||
|
"sams": [
|
||||||
|
"HawkGenerator",
|
||||||
|
"ChaparralGenerator"
|
||||||
|
],
|
||||||
|
"aircraft_carrier": [
|
||||||
|
"CVN_74_John_C__Stennis"
|
||||||
|
],
|
||||||
|
"helicopter_carrier": [
|
||||||
|
"LHA_1_Tarawa"
|
||||||
|
],
|
||||||
|
"destroyers": [
|
||||||
|
"USS_Arleigh_Burke_IIa"
|
||||||
|
],
|
||||||
|
"cruisers": [
|
||||||
|
"Ticonderoga_class"
|
||||||
|
],
|
||||||
|
"requirements": {
|
||||||
|
"Community A-4E": "https://heclak.github.io/community-a4e-c/"
|
||||||
|
},
|
||||||
|
"carrier_names": [
|
||||||
|
"CVN-71 Theodore Roosevelt",
|
||||||
|
"CVN-72 Abraham Lincoln",
|
||||||
|
"CVN-73 George Washington",
|
||||||
|
"CVN-74 John C. Stennis"
|
||||||
|
],
|
||||||
|
"helicopter_carrier_names": [
|
||||||
|
"LHA-1 Tarawa",
|
||||||
|
"LHA-2 Saipan",
|
||||||
|
"LHA-3 Belleau Wood",
|
||||||
|
"LHA-4 Nassau",
|
||||||
|
"LHA-5 Peleliu"
|
||||||
|
],
|
||||||
|
"navy_generators": [
|
||||||
|
"ArleighBurkeGroupGenerator"
|
||||||
|
],
|
||||||
|
"has_jtac": true,
|
||||||
|
"jtac_unit": "MQ_9_Reaper",
|
||||||
|
"doctrine": "coldwar"
|
||||||
|
}
|
||||||
82
resources/factions/bluefor_coldwar_a4_mb339.json
Normal file
82
resources/factions/bluefor_coldwar_a4_mb339.json
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
{
|
||||||
|
"country": "Combined Joint Task Forces Blue",
|
||||||
|
"name": "Bluefor Coldwar (With A4 & MB339)",
|
||||||
|
"authors": "Khopa",
|
||||||
|
"description": "",
|
||||||
|
"aircrafts": [
|
||||||
|
"F_14B",
|
||||||
|
"F_4E",
|
||||||
|
"F_5E_3",
|
||||||
|
"A_10A",
|
||||||
|
"AJS37",
|
||||||
|
"UH_1H",
|
||||||
|
"SA342M",
|
||||||
|
"SA342L",
|
||||||
|
"A_4E_C",
|
||||||
|
"MB_339PAN",
|
||||||
|
"B_52H"
|
||||||
|
],
|
||||||
|
"awacs": [
|
||||||
|
"C_130",
|
||||||
|
"E_3A"
|
||||||
|
],
|
||||||
|
"tankers": [
|
||||||
|
"KC_135",
|
||||||
|
"KC130"
|
||||||
|
],
|
||||||
|
"frontline_units": [
|
||||||
|
"MBT_M60A3_Patton",
|
||||||
|
"APC_M113"
|
||||||
|
],
|
||||||
|
"artillery_units": [
|
||||||
|
"SPH_M109_Paladin"
|
||||||
|
],
|
||||||
|
"logistics_units": [
|
||||||
|
"Transport_M818"
|
||||||
|
],
|
||||||
|
"infantry_units": [
|
||||||
|
"Infantry_M4",
|
||||||
|
"Soldier_M249"
|
||||||
|
],
|
||||||
|
"shorads": [
|
||||||
|
"VulcanGenerator"
|
||||||
|
],
|
||||||
|
"sams": [
|
||||||
|
"HawkGenerator",
|
||||||
|
"ChaparralGenerator"
|
||||||
|
],
|
||||||
|
"aircraft_carrier": [
|
||||||
|
"CVN_74_John_C__Stennis"
|
||||||
|
],
|
||||||
|
"helicopter_carrier": [
|
||||||
|
"LHA_1_Tarawa"
|
||||||
|
],
|
||||||
|
"destroyers": [
|
||||||
|
"USS_Arleigh_Burke_IIa"
|
||||||
|
],
|
||||||
|
"cruisers": [
|
||||||
|
"Ticonderoga_class"
|
||||||
|
],
|
||||||
|
"requirements": {
|
||||||
|
"Community A-4E": "https://heclak.github.io/community-a4e-c/"
|
||||||
|
},
|
||||||
|
"carrier_names": [
|
||||||
|
"CVN-71 Theodore Roosevelt",
|
||||||
|
"CVN-72 Abraham Lincoln",
|
||||||
|
"CVN-73 George Washington",
|
||||||
|
"CVN-74 John C. Stennis"
|
||||||
|
],
|
||||||
|
"helicopter_carrier_names": [
|
||||||
|
"LHA-1 Tarawa",
|
||||||
|
"LHA-2 Saipan",
|
||||||
|
"LHA-3 Belleau Wood",
|
||||||
|
"LHA-4 Nassau",
|
||||||
|
"LHA-5 Peleliu"
|
||||||
|
],
|
||||||
|
"navy_generators": [
|
||||||
|
"ArleighBurkeGroupGenerator"
|
||||||
|
],
|
||||||
|
"has_jtac": true,
|
||||||
|
"jtac_unit": "MQ_9_Reaper",
|
||||||
|
"doctrine": "coldwar"
|
||||||
|
}
|
||||||
96
resources/factions/bluefor_modern.json
Normal file
96
resources/factions/bluefor_modern.json
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
{
|
||||||
|
"country": "Combined Joint Task Forces Blue",
|
||||||
|
"name": "Bluefor Modern",
|
||||||
|
"authors": "Khopa",
|
||||||
|
"description": "",
|
||||||
|
"aircrafts": [
|
||||||
|
"F_14B",
|
||||||
|
"F_15C",
|
||||||
|
"F_16C_50",
|
||||||
|
"FA_18C_hornet",
|
||||||
|
"JF_17",
|
||||||
|
"M_2000C",
|
||||||
|
"F_5E_3",
|
||||||
|
"Su_27",
|
||||||
|
"Su_25T",
|
||||||
|
"A_10A",
|
||||||
|
"A_10C",
|
||||||
|
"A_10C_2",
|
||||||
|
"AV8BNA",
|
||||||
|
"AJS37",
|
||||||
|
"UH_1H",
|
||||||
|
"AH_64D",
|
||||||
|
"Ka_50",
|
||||||
|
"SA342M",
|
||||||
|
"SA342L",
|
||||||
|
"B_52H",
|
||||||
|
"B_1B"
|
||||||
|
],
|
||||||
|
"awacs": [
|
||||||
|
"E_3A"
|
||||||
|
],
|
||||||
|
"tankers": [
|
||||||
|
"KC_135",
|
||||||
|
"KC130"
|
||||||
|
],
|
||||||
|
"frontline_units": [
|
||||||
|
"MBT_M1A2_Abrams",
|
||||||
|
"MBT_Leopard_2",
|
||||||
|
"MBT_Merkava_Mk__4",
|
||||||
|
"ATGM_M1134_Stryker",
|
||||||
|
"IFV_M2A2_Bradley",
|
||||||
|
"IFV_Marder",
|
||||||
|
"IFV_LAV_25",
|
||||||
|
"APC_M1043_HMMWV_Armament",
|
||||||
|
"ATGM_M1045_HMMWV_TOW"
|
||||||
|
],
|
||||||
|
"artillery_units": [
|
||||||
|
"MLRS_M270",
|
||||||
|
"SPH_M109_Paladin"
|
||||||
|
],
|
||||||
|
"logistics_units": [
|
||||||
|
"Transport_M818"
|
||||||
|
],
|
||||||
|
"infantry_units": [
|
||||||
|
"Infantry_M4",
|
||||||
|
"Soldier_M249"
|
||||||
|
],
|
||||||
|
"shorads": [
|
||||||
|
"AvengerGenerator"
|
||||||
|
],
|
||||||
|
"sams": [
|
||||||
|
"HawkGenerator",
|
||||||
|
"PatriotGenerator"
|
||||||
|
],
|
||||||
|
"aircraft_carrier": [
|
||||||
|
"CVN_74_John_C__Stennis"
|
||||||
|
],
|
||||||
|
"helicopter_carrier": [
|
||||||
|
"LHA_1_Tarawa"
|
||||||
|
],
|
||||||
|
"destroyers": [
|
||||||
|
"USS_Arleigh_Burke_IIa"
|
||||||
|
],
|
||||||
|
"cruisers": [
|
||||||
|
"Ticonderoga_class"
|
||||||
|
],
|
||||||
|
"requirements": {},
|
||||||
|
"carrier_names": [
|
||||||
|
"CVN-71 Theodore Roosevelt",
|
||||||
|
"CVN-72 Abraham Lincoln",
|
||||||
|
"CVN-73 George Washington",
|
||||||
|
"CVN-74 John C. Stennis"
|
||||||
|
],
|
||||||
|
"helicopter_carrier_names": [
|
||||||
|
"LHA-1 Tarawa",
|
||||||
|
"LHA-2 Saipan",
|
||||||
|
"LHA-3 Belleau Wood",
|
||||||
|
"LHA-4 Nassau",
|
||||||
|
"LHA-5 Peleliu"
|
||||||
|
],
|
||||||
|
"navy_generators": [
|
||||||
|
"ArleighBurkeGroupGenerator"
|
||||||
|
],
|
||||||
|
"has_jtac": true,
|
||||||
|
"jtac_unit": "MQ_9_Reaper"
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user