From 12bf26223d8b028343d10a35c45de7d0cdc66f11 Mon Sep 17 00:00:00 2001 From: Khopa Date: Tue, 22 Dec 2020 23:23:32 +0100 Subject: [PATCH] Added shorad units on frontline --- changelog.md | 1 + game/db.py | 36 ++-- game/procurement.py | 20 +- game/theater/base.py | 5 + game/theater/controlpoint.py | 21 ++ gen/ground_forces/ai_ground_planner.py | 191 ++--------------- gen/ground_forces/ai_ground_planner_db.py | 197 ++++++++++++++++++ qt_ui/widgets/map/QMapObject.py | 2 +- resources/factions/NATO_Desert_Storm.json | 3 +- resources/factions/allies_1944.json | 4 +- resources/factions/allies_1944_free.json | 3 +- resources/factions/bluefor_coldwar.json | 3 +- resources/factions/bluefor_coldwar_a4.json | 3 +- .../factions/bluefor_coldwar_a4_mb339.json | 3 +- resources/factions/bluefor_modern.json | 4 +- resources/factions/canada_2005.json | 3 +- resources/factions/china_2010.json | 3 +- resources/factions/france_1995.json | 3 +- .../factions/france_2005_frenchpack.json | 3 +- resources/factions/france_2005_modded.json | 3 +- resources/factions/georgia_2008.json | 3 +- resources/factions/germany_1942.json | 3 +- resources/factions/germany_1944.json | 4 +- resources/factions/germany_1944_free.json | 3 +- resources/factions/germany_1990.json | 3 +- resources/factions/india_2010.json | 3 +- resources/factions/insurgents_hard.json | 39 ++++ resources/factions/iran_2015.json | 4 +- resources/factions/iraq_1991.json | 3 +- resources/factions/israel_1948.json | 3 +- resources/factions/israel_1973.json | 3 +- resources/factions/israel_1982.json | 3 +- resources/factions/israel_2000.json | 3 +- resources/factions/italy_1990.json | 3 +- resources/factions/italy_1990_mb339.json | 3 +- resources/factions/japan_2005.json | 3 +- resources/factions/libya_2011.json | 4 +- resources/factions/netherlands_1990.json | 3 +- resources/factions/north_korea_2000.json | 4 +- resources/factions/pakistan_2015.json | 3 +- resources/factions/pmc_russian.json | 3 +- resources/factions/pmc_us.json | 4 +- resources/factions/pmc_us_with_mb339.json | 4 +- resources/factions/russia_1955.json | 3 +- resources/factions/russia_1965.json | 4 +- .../factions/russia_1970_limited_air.json | 3 +- resources/factions/russia_1975.json | 3 +- resources/factions/russia_1990.json | 3 +- resources/factions/russia_2010.json | 3 +- resources/factions/russia_2020.json | 3 +- resources/factions/soviet_union_1943.json | 3 +- resources/factions/spain_1990.json | 3 +- resources/factions/sweden_1970.json | 4 +- resources/factions/sweden_1990.json | 3 +- resources/factions/syria_1948.json | 3 +- resources/factions/syria_1967.json | 4 +- .../factions/syria_1967_with_ww2_weapons.json | 3 +- resources/factions/syria_1973.json | 4 +- resources/factions/syria_1982.json | 4 +- resources/factions/syria_2011.json | 3 +- resources/factions/turkey_2005.json | 3 +- resources/factions/uk_1944.json | 3 +- resources/factions/uk_1990.json | 3 +- resources/factions/ukraine_2010.json | 3 +- resources/factions/us_aggressors.json | 3 +- resources/factions/usa_1944.json | 3 +- resources/factions/usa_1955.json | 3 +- resources/factions/usa_1960.json | 3 +- resources/factions/usa_1965.json | 3 +- resources/factions/usa_1975.json | 4 +- resources/factions/usa_1990.json | 3 +- resources/factions/usa_2005.json | 4 +- resources/factions/usa_2005_c130.json | 4 +- resources/factions/usa_2005_modded.json | 4 +- resources/factions/usn_1985.json | 3 +- 75 files changed, 462 insertions(+), 265 deletions(-) create mode 100644 gen/ground_forces/ai_ground_planner_db.py create mode 100644 resources/factions/insurgents_hard.json diff --git a/changelog.md b/changelog.md index 3e93a0ce..6d2a7bf9 100644 --- a/changelog.md +++ b/changelog.md @@ -10,6 +10,7 @@ ## Fixes: * **[Factions]** AI would never buy artillery units for the frontline - fixed * **[Factions]** Removed the F-111 unit from the NATO desert storm faction. (Recruiting it would cause crashes in DCS, since it is not a valid unit) +* **[Units]** Fixed SPG_Stryker_M1128_MGS not being in db # 2.3.2 diff --git a/game/db.py b/game/db.py index ae3d1d81..42061bc5 100644 --- a/game/db.py +++ b/game/db.py @@ -385,6 +385,7 @@ PRICES = { Armor.ATGM_M1045_HMMWV_TOW: 8, Armor.IFV_M2A2_Bradley: 12, Armor.APC_M1126_Stryker_ICV: 10, + Armor.SPG_M1128_Stryker_MGS: 14, Armor.ATGM_M1134_Stryker: 12, Armor.MBT_M60A3_Patton: 16, Armor.MBT_M1A2_Abrams: 25, @@ -755,6 +756,7 @@ UNIT_BY_TASK = { Armor.APC_M1126_Stryker_ICV, Armor.APC_M1126_Stryker_ICV, Armor.APC_M1126_Stryker_ICV, + Armor.SPG_M1128_Stryker_MGS, Armor.IFV_MCV_80, Armor.IFV_MCV_80, Armor.IFV_MCV_80, @@ -837,6 +839,23 @@ UNIT_BY_TASK = { Artillery.M12_GMC, Artillery.Sturmpanzer_IV_Brummbär, + AirDefence.AAA_ZU_23_on_Ural_375, + AirDefence.AAA_ZU_23_Insurgent_on_Ural_375, + AirDefence.AAA_ZSU_57_2, + AirDefence.SPAAA_ZSU_23_4_Shilka, + AirDefence.SAM_SA_8_Osa_9A33, + AirDefence.SAM_SA_9_Strela_1_9P31, + AirDefence.SAM_SA_13_Strela_10M3_9A35M3, + AirDefence.SAM_SA_15_Tor_9A331, + AirDefence.SAM_SA_19_Tunguska_2S6, + AirDefence.SPAAA_Gepard, + AirDefence.AAA_Vulcan_M163, + AirDefence.SAM_Linebacker_M6, + AirDefence.SAM_Chaparral_M48, + AirDefence.SAM_Avenger_M1097, + AirDefence.SAM_Roland_ADS, + AirDefence.HQ_7_Self_Propelled_LN, + frenchpack.DIM__TOYOTA_BLUE, frenchpack.DIM__TOYOTA_DESERT, frenchpack.DIM__TOYOTA_GREEN, @@ -862,23 +881,6 @@ UNIT_BY_TASK = { ], AirDefence: [ - - # those are listed multiple times here to balance prioritization more into lower tier AAs - AirDefence.AAA_Vulcan_M163, - AirDefence.AAA_Vulcan_M163, - AirDefence.AAA_Vulcan_M163, - AirDefence.SAM_Linebacker_M6, - - AirDefence.SPAAA_ZSU_23_4_Shilka, - AirDefence.AAA_ZU_23_Closed, - AirDefence.SAM_SA_9_Strela_1_9P31, - AirDefence.SAM_SA_8_Osa_9A33, - AirDefence.SAM_SA_19_Tunguska_2S6, - AirDefence.SAM_SA_6_Kub_LN_2P25, - AirDefence.SAM_SA_3_S_125_LN_5P73, - AirDefence.SAM_Hawk_PCP, - AirDefence.SAM_SA_2_LN_SM_90, - AirDefence.SAM_SA_11_Buk_LN_9A310M1, ], Reconnaissance: [Unarmed.Transport_M818, Unarmed.Transport_Ural_375, Unarmed.Transport_UAZ_469], Nothing: [Infantry.Infantry_M4, Infantry.Soldier_AK, ], diff --git a/game/procurement.py b/game/procurement.py index 7c33dd40..68e0a4f9 100644 --- a/game/procurement.py +++ b/game/procurement.py @@ -1,16 +1,16 @@ from __future__ import annotations -from dataclasses import dataclass import math import random +from dataclasses import dataclass from typing import Iterator, List, Optional, TYPE_CHECKING, Type from dcs.task import CAP, CAS -from dcs.unittype import FlyingType, UnitType, VehicleType +from dcs.unittype import FlyingType, VehicleType from game import db from game.factions.faction import Faction -from game.theater import ControlPoint, MissionTarget +from game.theater import ControlPoint, MissionTarget, TYPE_SHORAD from gen.flights.ai_flight_planner_db import ( capable_aircraft_for_task, preferred_aircraft_for_task, @@ -74,9 +74,19 @@ class ProcurementAi: return budget def random_affordable_ground_unit( - self, budget: int) -> Optional[Type[VehicleType]]: + self, budget: int, cp: ControlPoint) -> Optional[Type[VehicleType]]: affordable_units = [u for u in self.faction.frontline_units + self.faction.artillery_units if db.PRICES[u] <= budget] + + total_number_aa = cp.base.total_frontline_aa + cp.pending_frontline_aa_deliveries_count + total_non_aa = cp.base.total_armor + cp.pending_deliveries_count - total_number_aa + max_aa = math.ceil(total_non_aa/8) + + # Limit the number of AA units the AI will buy + if not total_number_aa < max_aa: + for unit in [u for u in affordable_units if u in TYPE_SHORAD]: + affordable_units.remove(unit) + if not affordable_units: return None return random.choice(affordable_units) @@ -91,7 +101,7 @@ class ProcurementAi: break cp = random.choice(candidates) - unit = self.random_affordable_ground_unit(budget) + unit = self.random_affordable_ground_unit(budget, cp) if unit is None: # Can't afford any more units. break diff --git a/game/theater/base.py b/game/theater/base.py index 54b0e4f8..9f0ebe8f 100644 --- a/game/theater/base.py +++ b/game/theater/base.py @@ -9,6 +9,7 @@ from dcs.unittype import FlyingType, UnitType, VehicleType from dcs.vehicles import AirDefence, Armor from game import db +from gen.ground_forces.ai_ground_planner_db import TYPE_SHORAD STRENGTH_AA_ASSEMBLE_MIN = 0.2 PLANES_SCRAMBLE_MIN_BASE = 2 @@ -36,6 +37,10 @@ class Base: def total_armor(self) -> int: return sum(self.armor.values()) + @property + def total_frontline_aa(self) -> int: + return sum([v for k, v in self.armor.items() if k in TYPE_SHORAD]) + @property def total_aa(self) -> int: return sum(self.aa.values()) diff --git a/game/theater/controlpoint.py b/game/theater/controlpoint.py index 3ec23ede..229531d0 100644 --- a/game/theater/controlpoint.py +++ b/game/theater/controlpoint.py @@ -20,6 +20,7 @@ from dcs.terrain.terrain import Airport, ParkingSlot from dcs.unittype import FlyingType from game import db +from gen.ground_forces.ai_ground_planner_db import TYPE_SHORAD from gen.runways import RunwayAssigner, RunwayData from gen.ground_forces.combat_stance import CombatStance from .base import Base @@ -457,6 +458,26 @@ class ControlPoint(MissionTarget, ABC): u.position.x = u.position.x + delta.x u.position.y = u.position.y + delta.y + @property + def pending_frontline_aa_deliveries_count(self): + """ + Get number of pending frontline aa units + """ + if self.pending_unit_deliveries: + return sum([v for k,v in self.pending_unit_deliveries.units.items() if k in TYPE_SHORAD]) + else: + return 0 + + @property + def pending_deliveries_count(self): + """ + Get number of pending units + """ + if self.pending_unit_deliveries: + return sum([v for k, v in self.pending_unit_deliveries.units.items()]) + else: + return 0 + class Airfield(ControlPoint): diff --git a/gen/ground_forces/ai_ground_planner.py b/gen/ground_forces/ai_ground_planner.py index 650f17cd..e98d82d2 100644 --- a/gen/ground_forces/ai_ground_planner.py +++ b/gen/ground_forces/ai_ground_planner.py @@ -3,180 +3,14 @@ from enum import Enum from typing import Dict, List from dcs.unittype import VehicleType -from dcs.vehicles import Armor, Artillery, Infantry, Unarmed -import pydcs_extensions.frenchpack.frenchpack as frenchpack from game.theater import ControlPoint +from gen.ground_forces.ai_ground_planner_db import * from gen.ground_forces.combat_stance import CombatStance -TYPE_TANKS = [ - Armor.MBT_T_55, - Armor.MBT_T_72B, - Armor.MBT_T_72B3, - Armor.MBT_T_80U, - Armor.MBT_T_90, - Armor.MBT_Leopard_2, - Armor.MBT_Leopard_1A3, - Armor.MBT_Leclerc, - Armor.MBT_Challenger_II, - Armor.MBT_M1A2_Abrams, - Armor.MBT_M60A3_Patton, - Armor.MBT_Merkava_Mk__4, - Armor.ZTZ_96B, - - # WW2 - 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.MT_M4_Sherman, - Armor.MT_M4A4_Sherman_Firefly, - Armor.StuG_IV, - Armor.CT_Centaur_IV, - Armor.CT_Cromwell_IV, - Armor.HIT_Churchill_VII, - Armor.LT_Mk_VII_Tetrarch, - - # Mods - frenchpack.DIM__TOYOTA_BLUE, - frenchpack.DIM__TOYOTA_GREEN, - frenchpack.DIM__TOYOTA_DESERT, - frenchpack.DIM__KAMIKAZE, - - frenchpack.AMX_10RCR, - frenchpack.AMX_10RCR_SEPAR, - frenchpack.AMX_30B2, - frenchpack.Leclerc_Serie_XXI, - -] - -TYPE_ATGM = [ - Armor.ATGM_M1045_HMMWV_TOW, - Armor.ATGM_M1134_Stryker, - Armor.IFV_BMP_2, - - # WW2 (Tank Destroyers) - Armor.M30_Cargo_Carrier, - Armor.TD_Jagdpanzer_IV, - Armor.TD_Jagdpanther_G1, - Armor.TD_M10_GMC, - - # Mods - frenchpack.VBAE_CRAB_MMP, - frenchpack.VAB_MEPHISTO, - frenchpack.TRM_2000_PAMELA, - -] - -TYPE_IFV = [ - Armor.IFV_BMP_3, - Armor.IFV_BMP_2, - Armor.IFV_BMP_1, - Armor.IFV_Marder, - Armor.IFV_MCV_80, - Armor.IFV_LAV_25, - Armor.AC_Sd_Kfz_234_2_Puma, - Armor.IFV_M2A2_Bradley, - Armor.IFV_BMD_1, - Armor.ZBD_04A, - - # WW2 - Armor.AC_Sd_Kfz_234_2_Puma, - Armor.LAC_M8_Greyhound, - Armor.Daimler_Armoured_Car, - - # Mods - frenchpack.ERC_90, - frenchpack.VBAE_CRAB, - frenchpack.VAB_T20_13 - -] - -TYPE_APC = [ - Armor.APC_M1043_HMMWV_Armament, - Armor.APC_M1126_Stryker_ICV, - Armor.APC_M113, - Armor.APC_BTR_80, - Armor.APC_BTR_82A, - Armor.APC_MTLB, - Armor.APC_M2A1, - Armor.APC_Cobra, - Armor.APC_Sd_Kfz_251, - Armor.APC_AAV_7, - Armor.TPz_Fuchs, - Armor.ARV_BRDM_2, - Armor.ARV_BTR_RD, - Armor.FDDM_Grad, - - # WW2 - Armor.APC_M2A1, - Armor.APC_Sd_Kfz_251, - - # Mods - frenchpack.VAB__50, - frenchpack.VBL__50, - frenchpack.VBL_AANF1, - -] - -TYPE_ARTILLERY = [ - Artillery.MLRS_9A52_Smerch, - Artillery.SPH_2S1_Gvozdika, - Artillery.SPH_2S3_Akatsia, - Artillery.MLRS_BM_21_Grad, - Artillery.MLRS_9K57_Uragan_BM_27, - Artillery.SPH_M109_Paladin, - Artillery.MLRS_M270, - Artillery.SPH_2S9_Nona, - Artillery.SpGH_Dana, - Artillery.SPH_2S19_Msta, - Artillery.MLRS_FDDM, - - # WW2 - Artillery.Sturmpanzer_IV_Brummbär, - Artillery.M12_GMC -] - -TYPE_LOGI = [ - Unarmed.Transport_M818, - Unarmed.Transport_KAMAZ_43101, - Unarmed.Transport_Ural_375, - Unarmed.Transport_GAZ_66, - Unarmed.Transport_GAZ_3307, - Unarmed.Transport_GAZ_3308, - Unarmed.Transport_Ural_4320_31_Armored, - Unarmed.Transport_Ural_4320T, - Unarmed.Blitz_3_6_6700A, - Unarmed.Kübelwagen_82, - Unarmed.Sd_Kfz_7, - Unarmed.Sd_Kfz_2, - Unarmed.Willys_MB, - Unarmed.Land_Rover_109_S3, - Unarmed.Land_Rover_101_FC, - - # Mods - frenchpack.VBL, - frenchpack.VAB, - -] - -TYPE_INFANTRY = [ - Infantry.Infantry_Soldier_Insurgents, - Infantry.Soldier_AK, - Infantry.Infantry_M1_Garand, - Infantry.Infantry_Mauser_98, - Infantry.Infantry_SMLE_No_4_Mk_1, - Infantry.Georgian_soldier_with_M4, - Infantry.Infantry_Soldier_Rus, - Infantry.Paratrooper_AKS, - Infantry.Paratrooper_RPG_16, - Infantry.Soldier_M249, - Infantry.Infantry_M4, - Infantry.Soldier_RPG, -] - MAX_COMBAT_GROUP_PER_CP = 10 + class CombatGroupRole(Enum): TANK = 1 APC = 2 @@ -224,6 +58,7 @@ class CombatGroup: s += "UNITS " + self.units[0].name + " * " + str(len(self.units)) return s + class GroundPlanner: def __init__(self, cp:ControlPoint, game): @@ -243,7 +78,6 @@ class GroundPlanner: self.units_per_cp[cp.id] = [] self.reserve: List[CombatGroup] = [] - def plan_groundwar(self): if hasattr(self.cp, 'stance'): @@ -275,6 +109,9 @@ class GroundPlanner: elif key in TYPE_ATGM: collection = self.atgm_group role = CombatGroupRole.ATGM + elif key in TYPE_SHORAD: + collection = self.shorad_groups + role = CombatGroupRole.SHORAD else: print("Warning unit type not handled by ground generator") print(key) @@ -282,12 +119,16 @@ class GroundPlanner: available = self.cp.base.armor[key] while available > 0: - n = random.choice(group_size_choice) - if n > available: - if available >= 2: - n = 2 - else: - n = 1 + + if role == CombatGroupRole.SHORAD: + n = 1 + else: + n = random.choice(group_size_choice) + if n > available: + if available >= 2: + n = 2 + else: + n = 1 available -= n group = CombatGroup(role) diff --git a/gen/ground_forces/ai_ground_planner_db.py b/gen/ground_forces/ai_ground_planner_db.py new file mode 100644 index 00000000..794cb128 --- /dev/null +++ b/gen/ground_forces/ai_ground_planner_db.py @@ -0,0 +1,197 @@ +from dcs.vehicles import AirDefence, Infantry, Unarmed, Artillery, Armor + +from pydcs_extensions.frenchpack import frenchpack + +TYPE_TANKS = [ + Armor.MBT_T_55, + Armor.MBT_T_72B, + Armor.MBT_T_72B3, + Armor.MBT_T_80U, + Armor.MBT_T_90, + Armor.MBT_Leopard_2, + Armor.MBT_Leopard_1A3, + Armor.MBT_Leclerc, + Armor.MBT_Challenger_II, + Armor.MBT_M1A2_Abrams, + Armor.MBT_M60A3_Patton, + Armor.MBT_Merkava_Mk__4, + Armor.ZTZ_96B, + + # WW2 + 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.MT_M4_Sherman, + Armor.MT_M4A4_Sherman_Firefly, + Armor.StuG_IV, + Armor.CT_Centaur_IV, + Armor.CT_Cromwell_IV, + Armor.HIT_Churchill_VII, + Armor.LT_Mk_VII_Tetrarch, + + # Mods + frenchpack.DIM__TOYOTA_BLUE, + frenchpack.DIM__TOYOTA_GREEN, + frenchpack.DIM__TOYOTA_DESERT, + frenchpack.DIM__KAMIKAZE, + + frenchpack.AMX_10RCR, + frenchpack.AMX_10RCR_SEPAR, + frenchpack.AMX_30B2, + frenchpack.Leclerc_Serie_XXI, + +] + +TYPE_ATGM = [ + Armor.ATGM_M1045_HMMWV_TOW, + Armor.ATGM_M1134_Stryker, + Armor.IFV_BMP_2, + + # WW2 (Tank Destroyers) + Armor.M30_Cargo_Carrier, + Armor.TD_Jagdpanzer_IV, + Armor.TD_Jagdpanther_G1, + Armor.TD_M10_GMC, + + # Mods + frenchpack.VBAE_CRAB_MMP, + frenchpack.VAB_MEPHISTO, + frenchpack.TRM_2000_PAMELA, + +] + +TYPE_IFV = [ + Armor.IFV_BMP_3, + Armor.IFV_BMP_2, + Armor.IFV_BMP_1, + Armor.IFV_Marder, + Armor.IFV_MCV_80, + Armor.IFV_LAV_25, + Armor.SPG_M1128_Stryker_MGS, + Armor.AC_Sd_Kfz_234_2_Puma, + Armor.IFV_M2A2_Bradley, + Armor.IFV_BMD_1, + Armor.ZBD_04A, + + # WW2 + Armor.AC_Sd_Kfz_234_2_Puma, + Armor.LAC_M8_Greyhound, + Armor.Daimler_Armoured_Car, + + # Mods + frenchpack.ERC_90, + frenchpack.VBAE_CRAB, + frenchpack.VAB_T20_13 + +] + +TYPE_APC = [ + Armor.APC_M1043_HMMWV_Armament, + Armor.APC_M1126_Stryker_ICV, + Armor.APC_M113, + Armor.APC_BTR_80, + Armor.APC_BTR_82A, + Armor.APC_MTLB, + Armor.APC_M2A1, + Armor.APC_Cobra, + Armor.APC_Sd_Kfz_251, + Armor.APC_AAV_7, + Armor.TPz_Fuchs, + Armor.ARV_BRDM_2, + Armor.ARV_BTR_RD, + Armor.FDDM_Grad, + + # WW2 + Armor.APC_M2A1, + Armor.APC_Sd_Kfz_251, + + # Mods + frenchpack.VAB__50, + frenchpack.VBL__50, + frenchpack.VBL_AANF1, + +] + +TYPE_ARTILLERY = [ + Artillery.MLRS_9A52_Smerch, + Artillery.SPH_2S1_Gvozdika, + Artillery.SPH_2S3_Akatsia, + Artillery.MLRS_BM_21_Grad, + Artillery.MLRS_9K57_Uragan_BM_27, + Artillery.SPH_M109_Paladin, + Artillery.MLRS_M270, + Artillery.SPH_2S9_Nona, + Artillery.SpGH_Dana, + Artillery.SPH_2S19_Msta, + Artillery.MLRS_FDDM, + + # WW2 + Artillery.Sturmpanzer_IV_Brummbär, + Artillery.M12_GMC +] + +TYPE_LOGI = [ + Unarmed.Transport_M818, + Unarmed.Transport_KAMAZ_43101, + Unarmed.Transport_Ural_375, + Unarmed.Transport_GAZ_66, + Unarmed.Transport_GAZ_3307, + Unarmed.Transport_GAZ_3308, + Unarmed.Transport_Ural_4320_31_Armored, + Unarmed.Transport_Ural_4320T, + Unarmed.Blitz_3_6_6700A, + Unarmed.Kübelwagen_82, + Unarmed.Sd_Kfz_7, + Unarmed.Sd_Kfz_2, + Unarmed.Willys_MB, + Unarmed.Land_Rover_109_S3, + Unarmed.Land_Rover_101_FC, + + # Mods + frenchpack.VBL, + frenchpack.VAB, + +] + +TYPE_INFANTRY = [ + Infantry.Infantry_Soldier_Insurgents, + Infantry.Soldier_AK, + Infantry.Infantry_M1_Garand, + Infantry.Infantry_Mauser_98, + Infantry.Infantry_SMLE_No_4_Mk_1, + Infantry.Georgian_soldier_with_M4, + Infantry.Infantry_Soldier_Rus, + Infantry.Paratrooper_AKS, + Infantry.Paratrooper_RPG_16, + Infantry.Soldier_M249, + Infantry.Infantry_M4, + Infantry.Soldier_RPG, +] + +TYPE_SHORAD = [ + AirDefence.AAA_ZU_23_on_Ural_375, + AirDefence.AAA_ZU_23_Insurgent_on_Ural_375, + AirDefence.AAA_ZSU_57_2, + AirDefence.SPAAA_ZSU_23_4_Shilka, + AirDefence.SAM_SA_8_Osa_9A33, + AirDefence.SAM_SA_9_Strela_1_9P31, + AirDefence.SAM_SA_13_Strela_10M3_9A35M3, + AirDefence.SAM_SA_15_Tor_9A331, + AirDefence.SAM_SA_19_Tunguska_2S6, + + AirDefence.SPAAA_Gepard, + AirDefence.AAA_Vulcan_M163, + AirDefence.SAM_Linebacker_M6, + AirDefence.SAM_Chaparral_M48, + AirDefence.SAM_Avenger_M1097, + AirDefence.SAM_Roland_ADS, + AirDefence.HQ_7_Self_Propelled_LN, + + AirDefence.AAA_8_8cm_Flak_18, + AirDefence.AAA_8_8cm_Flak_41, + AirDefence.AAA_Bofors_40mm, + AirDefence.AAA_M1_37mm, + AirDefence.AA_gun_QF_3_7, + +] diff --git a/qt_ui/widgets/map/QMapObject.py b/qt_ui/widgets/map/QMapObject.py index 16f07061..a12feb33 100644 --- a/qt_ui/widgets/map/QMapObject.py +++ b/qt_ui/widgets/map/QMapObject.py @@ -47,7 +47,7 @@ class QMapObject(QGraphicsRectItem): object_details_action.triggered.connect(self.on_click) menu.addAction(object_details_action) - # Not all locations have valid objetives. Off-map spawns, for example, + # Not all locations have valid objectives. Off-map spawns, for example, # have no mission types. if list(self.mission_target.mission_types(for_player=True)): new_package_action = QAction(f"New package") diff --git a/resources/factions/NATO_Desert_Storm.json b/resources/factions/NATO_Desert_Storm.json index c0099523..677cd77a 100644 --- a/resources/factions/NATO_Desert_Storm.json +++ b/resources/factions/NATO_Desert_Storm.json @@ -46,7 +46,8 @@ "IFV_MCV_80", "MBT_Challenger_II", "MBT_M60A3_Patton", - "SPG_M1128_Stryker_MGS" + "SPG_M1128_Stryker_MGS", + "SAM_Avenger_M1097" ], "artillery_units": [ "MLRS_M270", diff --git a/resources/factions/allies_1944.json b/resources/factions/allies_1944.json index 1430b8f7..62eefeb9 100644 --- a/resources/factions/allies_1944.json +++ b/resources/factions/allies_1944.json @@ -25,7 +25,9 @@ "LAC_M8_Greyhound", "TD_M10_GMC", "Daimler_Armoured_Car", - "LT_Mk_VII_Tetrarch" + "LT_Mk_VII_Tetrarch", + "AA_gun_QF_3_7", + "AAA_Bofors_40mm" ], "artillery_units": [ "M12_GMC" diff --git a/resources/factions/allies_1944_free.json b/resources/factions/allies_1944_free.json index 133d3bed..cbc68708 100644 --- a/resources/factions/allies_1944_free.json +++ b/resources/factions/allies_1944_free.json @@ -15,7 +15,8 @@ ], "frontline_units": [ "MT_M4_Sherman", - "APC_M2A1" + "APC_M2A1", + "AAA_Bofors_40mm" ], "artillery_units": [ ], diff --git a/resources/factions/bluefor_coldwar.json b/resources/factions/bluefor_coldwar.json index 874484b4..fc3795d7 100644 --- a/resources/factions/bluefor_coldwar.json +++ b/resources/factions/bluefor_coldwar.json @@ -25,7 +25,8 @@ ], "frontline_units": [ "MBT_M60A3_Patton", - "APC_M113" + "APC_M113", + "SAM_Chaparral_M48" ], "artillery_units": [ "SPH_M109_Paladin" diff --git a/resources/factions/bluefor_coldwar_a4.json b/resources/factions/bluefor_coldwar_a4.json index f5a5a56d..85144509 100644 --- a/resources/factions/bluefor_coldwar_a4.json +++ b/resources/factions/bluefor_coldwar_a4.json @@ -26,7 +26,8 @@ ], "frontline_units": [ "MBT_M60A3_Patton", - "APC_M113" + "APC_M113", + "SAM_Chaparral_M48" ], "artillery_units": [ "SPH_M109_Paladin" diff --git a/resources/factions/bluefor_coldwar_a4_mb339.json b/resources/factions/bluefor_coldwar_a4_mb339.json index 57c50355..127c922d 100644 --- a/resources/factions/bluefor_coldwar_a4_mb339.json +++ b/resources/factions/bluefor_coldwar_a4_mb339.json @@ -27,7 +27,8 @@ ], "frontline_units": [ "MBT_M60A3_Patton", - "APC_M113" + "APC_M113", + "SAM_Chaparral_M48" ], "artillery_units": [ "SPH_M109_Paladin" diff --git a/resources/factions/bluefor_modern.json b/resources/factions/bluefor_modern.json index f422a6eb..14590cc4 100644 --- a/resources/factions/bluefor_modern.json +++ b/resources/factions/bluefor_modern.json @@ -43,7 +43,9 @@ "IFV_Marder", "IFV_LAV_25", "APC_M1043_HMMWV_Armament", - "ATGM_M1045_HMMWV_TOW" + "ATGM_M1045_HMMWV_TOW", + "SAM_Linebacker_M6", + "SAM_Avenger_M1097" ], "artillery_units": [ "MLRS_M270", diff --git a/resources/factions/canada_2005.json b/resources/factions/canada_2005.json index 9a170a6f..3312dbac 100644 --- a/resources/factions/canada_2005.json +++ b/resources/factions/canada_2005.json @@ -20,7 +20,8 @@ "MBT_Leopard_2", "IFV_LAV_25", "APC_M113", - "IFV_MCV_80" + "IFV_MCV_80", + "SAM_Avenger_M1097" ], "artillery_units": [ ], diff --git a/resources/factions/china_2010.json b/resources/factions/china_2010.json index fd6f52ed..cc592f1d 100644 --- a/resources/factions/china_2010.json +++ b/resources/factions/china_2010.json @@ -22,7 +22,8 @@ "ZTZ_96B", "MBT_T_55", "ZBD_04A", - "IFV_BMP_1" + "IFV_BMP_1", + "HQ_7_Self_Propelled_LN" ], "artillery_units": [ "MLRS_9A52_Smerch", diff --git a/resources/factions/france_1995.json b/resources/factions/france_1995.json index 2c553009..b50f4422 100644 --- a/resources/factions/france_1995.json +++ b/resources/factions/france_1995.json @@ -24,7 +24,8 @@ "ATGM_M1134_Stryker", "IFV_LAV_25", "APC_M1043_HMMWV_Armament", - "ATGM_M1045_HMMWV_TOW" + "ATGM_M1045_HMMWV_TOW", + "SAM_Roland_ADS" ], "artillery_units": [ "MLRS_M270", diff --git a/resources/factions/france_2005_frenchpack.json b/resources/factions/france_2005_frenchpack.json index cb13cb4e..f9e0dca7 100644 --- a/resources/factions/france_2005_frenchpack.json +++ b/resources/factions/france_2005_frenchpack.json @@ -31,7 +31,8 @@ "VBAE_CRAB", "VBAE_CRAB_MMP", "AMX_30B2", - "Leclerc_Serie_XXI" + "Leclerc_Serie_XXI", + "SAM_Roland_ADS" ], "artillery_units": [ "MLRS_M270", diff --git a/resources/factions/france_2005_modded.json b/resources/factions/france_2005_modded.json index 34e4511a..dd0929fc 100644 --- a/resources/factions/france_2005_modded.json +++ b/resources/factions/france_2005_modded.json @@ -34,7 +34,8 @@ "VBAE_CRAB", "VBAE_CRAB_MMP", "AMX_30B2", - "Leclerc_Serie_XXI" + "Leclerc_Serie_XXI", + "SAM_Roland_ADS" ], "artillery_units": [ "MLRS_M270", diff --git a/resources/factions/georgia_2008.json b/resources/factions/georgia_2008.json index 45b8cfc1..0d861108 100644 --- a/resources/factions/georgia_2008.json +++ b/resources/factions/georgia_2008.json @@ -17,7 +17,8 @@ "IFV_BMP_1", "IFV_BMP_2", "MBT_T_72B", - "MBT_T_55" + "MBT_T_55", + "SAM_SA_13_Strela_10M3_9A35M3" ], "artillery_units": [ "MLRS_BM_21_Grad", diff --git a/resources/factions/germany_1942.json b/resources/factions/germany_1942.json index fda75025..1a84e1ff 100644 --- a/resources/factions/germany_1942.json +++ b/resources/factions/germany_1942.json @@ -13,7 +13,8 @@ "MT_Pz_Kpfw_IV_Ausf_H", "APC_Sd_Kfz_251", "AC_Sd_Kfz_234_2_Puma", - "TD_Jagdpanzer_IV" + "TD_Jagdpanzer_IV", + "AAA_8_8cm_Flak_18" ], "artillery_units": [ "Sturmpanzer_IV_Brummbär" diff --git a/resources/factions/germany_1944.json b/resources/factions/germany_1944.json index 273a4519..297c3c08 100644 --- a/resources/factions/germany_1944.json +++ b/resources/factions/germany_1944.json @@ -18,7 +18,9 @@ "AC_Sd_Kfz_234_2_Puma", "Sd_Kfz_184_Elefant", "TD_Jagdpanther_G1", - "TD_Jagdpanzer_IV" + "TD_Jagdpanzer_IV", + "AAA_8_8cm_Flak_18", + "AAA_8_8cm_Flak_41" ], "artillery_units": [ "Sturmpanzer_IV_Brummbär" diff --git a/resources/factions/germany_1944_free.json b/resources/factions/germany_1944_free.json index 8fc2421c..a27417aa 100644 --- a/resources/factions/germany_1944_free.json +++ b/resources/factions/germany_1944_free.json @@ -10,7 +10,8 @@ ], "frontline_units": [ "MT_Pz_Kpfw_IV_Ausf_H", - "APC_Sd_Kfz_251" + "APC_Sd_Kfz_251", + "AAA_8_8cm_Flak_18" ], "artillery_units": [ ], diff --git a/resources/factions/germany_1990.json b/resources/factions/germany_1990.json index bdf243e7..3e3f5560 100644 --- a/resources/factions/germany_1990.json +++ b/resources/factions/germany_1990.json @@ -22,7 +22,8 @@ "TPz_Fuchs", "MBT_Leopard_1A3", "MBT_Leopard_2", - "IFV_Marder" + "IFV_Marder", + "SPAAA_Gepard" ], "artillery_units": [ ], diff --git a/resources/factions/india_2010.json b/resources/factions/india_2010.json index 7b6cedb3..609fe738 100644 --- a/resources/factions/india_2010.json +++ b/resources/factions/india_2010.json @@ -22,7 +22,8 @@ "frontline_units": [ "MBT_T_90", "MBT_T_72B", - "IFV_BMP_2" + "IFV_BMP_2", + "SAM_SA_19_Tunguska_2S6" ], "artillery_units": [ "MLRS_9K57_Uragan_BM_27", diff --git a/resources/factions/insurgents_hard.json b/resources/factions/insurgents_hard.json new file mode 100644 index 00000000..c0e9038f --- /dev/null +++ b/resources/factions/insurgents_hard.json @@ -0,0 +1,39 @@ +{ + "country": "Insurgents", + "name": "Insurgents", + "authors": "Khopa", + "description": "

Insurgents faction.

", + "aircrafts": [ + ], + "frontline_units": [ + "ATGM_M1045_HMMWV_TOW", + "APC_M1043_HMMWV_Armament", + "ARV_BRDM_2", + "APC_BTR_80", + "ARV_BTR_RD", + "IFV_BMP_1", + "MBT_T_55", + "AAA_ZU_23_Insurgent_on_Ural_375", + "AAA_ZSU_57_2", + "AAA_ZSU_57_2" + ], + "artillery_units": [ + "MLRS_BM_21_Grad", + "SPH_2S19_Msta" + ], + "logistics_units": [ + "Transport_Ural_375", + "Transport_UAZ_469" + ], + "infantry_units": [ + "Infantry_Soldier_Insurgents", + "Soldier_RPG", + "SAM_SA_18_Igla_MANPADS" + ], + "air_defenses": [ + "SA9Generator", + "ZSU57Generator", + "ZU23Generator", + "ZU23UralInsurgentGenerator" + ] +} diff --git a/resources/factions/iran_2015.json b/resources/factions/iran_2015.json index cb6ba5f2..b8621de2 100644 --- a/resources/factions/iran_2015.json +++ b/resources/factions/iran_2015.json @@ -27,7 +27,9 @@ "APC_BTR_80", "MBT_M60A3_Patton", "IFV_BMP_1", - "MBT_T_72B" + "MBT_T_72B", + "SPAAA_ZSU_23_4_Shilka", + "AAA_ZSU_57_2" ], "artillery_units": [ "MLRS_BM_21_Grad", diff --git a/resources/factions/iraq_1991.json b/resources/factions/iraq_1991.json index 9fc32ce6..0ff517ee 100644 --- a/resources/factions/iraq_1991.json +++ b/resources/factions/iraq_1991.json @@ -33,7 +33,8 @@ "APC_BTR_80", "ARV_BRDM_2", "SPH_2S1_Gvozdika", - "AAA_ZSU_57_2" + "AAA_ZSU_57_2", + "SPAAA_ZSU_23_4_Shilka" ], "artillery_units": [ "MLRS_BM_21_Grad" diff --git a/resources/factions/israel_1948.json b/resources/factions/israel_1948.json index b2c86e7b..5f296689 100644 --- a/resources/factions/israel_1948.json +++ b/resources/factions/israel_1948.json @@ -15,7 +15,8 @@ "MT_M4A4_Sherman_Firefly", "APC_M2A1", "MT_M4_Sherman", - "LAC_M8_Greyhound" + "LAC_M8_Greyhound", + "AAA_Bofors_40mm" ], "artillery_units": [ ], diff --git a/resources/factions/israel_1973.json b/resources/factions/israel_1973.json index c0d3482b..b3b30840 100644 --- a/resources/factions/israel_1973.json +++ b/resources/factions/israel_1973.json @@ -19,7 +19,8 @@ "MT_M4_Sherman", "APC_M2A1", "MBT_M60A3_Patton", - "APC_M113" + "APC_M113", + "SAM_Chaparral_M48" ], "artillery_units": [ ], diff --git a/resources/factions/israel_1982.json b/resources/factions/israel_1982.json index b527416a..b975c7b9 100644 --- a/resources/factions/israel_1982.json +++ b/resources/factions/israel_1982.json @@ -22,7 +22,8 @@ "frontline_units": [ "APC_M113", "MBT_M60A3_Patton", - "MBT_Merkava_Mk__4" + "MBT_Merkava_Mk__4", + "AAA_Vulcan_M163" ], "artillery_units": [ ], diff --git a/resources/factions/israel_2000.json b/resources/factions/israel_2000.json index c23c315e..667df3bd 100644 --- a/resources/factions/israel_2000.json +++ b/resources/factions/israel_2000.json @@ -23,7 +23,8 @@ "APC_M113", "APC_M1043_HMMWV_Armament", "ATGM_M1045_HMMWV_TOW", - "MBT_Merkava_Mk__4" + "MBT_Merkava_Mk__4", + "AAA_Vulcan_M163" ], "artillery_units": [ "SPH_M109_Paladin", diff --git a/resources/factions/italy_1990.json b/resources/factions/italy_1990.json index 62ac4ce5..1f0250da 100644 --- a/resources/factions/italy_1990.json +++ b/resources/factions/italy_1990.json @@ -18,7 +18,8 @@ ], "frontline_units": [ "MBT_Leopard_1A3", - "APC_M113" + "APC_M113", + "SAM_Avenger_M1097" ], "artillery_units": [ "SPH_M109_Paladin" diff --git a/resources/factions/italy_1990_mb339.json b/resources/factions/italy_1990_mb339.json index 186926f7..00cc2914 100644 --- a/resources/factions/italy_1990_mb339.json +++ b/resources/factions/italy_1990_mb339.json @@ -19,7 +19,8 @@ ], "frontline_units": [ "MBT_Leopard_1A3", - "APC_M113" + "APC_M113", + "SAM_Avenger_M1097" ], "artillery_units": [ "SPH_M109_Paladin" diff --git a/resources/factions/japan_2005.json b/resources/factions/japan_2005.json index de03dbd8..a2f24933 100644 --- a/resources/factions/japan_2005.json +++ b/resources/factions/japan_2005.json @@ -23,7 +23,8 @@ "IFV_Marder", "TPz_Fuchs", "IFV_LAV_25", - "APC_M1043_HMMWV_Armament" + "APC_M1043_HMMWV_Armament", + "SPAAA_Gepard" ], "artillery_units": [ "SPH_M109_Paladin", diff --git a/resources/factions/libya_2011.json b/resources/factions/libya_2011.json index 8090ea3c..dd758824 100644 --- a/resources/factions/libya_2011.json +++ b/resources/factions/libya_2011.json @@ -20,7 +20,9 @@ "IFV_BMP_1", "ARV_BRDM_2", "MBT_T_72B", - "MBT_T_55" + "MBT_T_55", + "SPAAA_ZSU_23_4_Shilka", + "SAM_SA_8_Osa_9A33" ], "artillery_units": [ "MLRS_BM_21_Grad" diff --git a/resources/factions/netherlands_1990.json b/resources/factions/netherlands_1990.json index 44fc54ed..26462102 100644 --- a/resources/factions/netherlands_1990.json +++ b/resources/factions/netherlands_1990.json @@ -17,7 +17,8 @@ ], "frontline_units": [ "APC_M113", - "MBT_Leopard_1A3" + "MBT_Leopard_1A3", + "SAM_Avenger_M1097" ], "artillery_units": [ ], diff --git a/resources/factions/north_korea_2000.json b/resources/factions/north_korea_2000.json index 769c595d..794852d4 100644 --- a/resources/factions/north_korea_2000.json +++ b/resources/factions/north_korea_2000.json @@ -24,7 +24,9 @@ "IFV_BMP_1", "MBT_T_55", "MBT_T_72B", - "MBT_T_80U" + "MBT_T_80U", + "AAA_ZSU_57_2", + "SAM_SA_9_Strela_1_9P31" ], "artillery_units": [ "MLRS_BM_21_Grad", diff --git a/resources/factions/pakistan_2015.json b/resources/factions/pakistan_2015.json index 43ba4bba..32e1495d 100644 --- a/resources/factions/pakistan_2015.json +++ b/resources/factions/pakistan_2015.json @@ -23,7 +23,8 @@ "MBT_T_55", "ZBD_04A", "APC_BTR_80", - "APC_M113" + "APC_M113", + "HQ_7_Self_Propelled_LN" ], "artillery_units": [ "MLRS_9A52_Smerch", diff --git a/resources/factions/pmc_russian.json b/resources/factions/pmc_russian.json index 844bdb3c..aec2c021 100644 --- a/resources/factions/pmc_russian.json +++ b/resources/factions/pmc_russian.json @@ -13,7 +13,8 @@ "frontline_units": [ "APC_Cobra", "APC_BTR_80", - "ARV_BRDM_2" + "ARV_BRDM_2", + "SAM_SA_13_Strela_10M3_9A35M3" ], "artillery_units": [ "SPH_2S19_Msta" diff --git a/resources/factions/pmc_us.json b/resources/factions/pmc_us.json index e75e193f..0c46beca 100644 --- a/resources/factions/pmc_us.json +++ b/resources/factions/pmc_us.json @@ -11,7 +11,9 @@ ], "frontline_units": [ "APC_M1043_HMMWV_Armament", - "IFV_MCV_80" + "IFV_MCV_80", + "IFV_LAV_25", + "SAM_Avenger_M1097" ], "artillery_units": [ ], diff --git a/resources/factions/pmc_us_with_mb339.json b/resources/factions/pmc_us_with_mb339.json index ef01e093..e4f706e1 100644 --- a/resources/factions/pmc_us_with_mb339.json +++ b/resources/factions/pmc_us_with_mb339.json @@ -12,7 +12,9 @@ ], "frontline_units": [ "APC_M1043_HMMWV_Armament", - "IFV_MCV_80" + "IFV_MCV_80", + "IFV_LAV_25", + "SAM_Avenger_M1097" ], "artillery_units": [ ], diff --git a/resources/factions/russia_1955.json b/resources/factions/russia_1955.json index ca7e1994..d7cfff94 100644 --- a/resources/factions/russia_1955.json +++ b/resources/factions/russia_1955.json @@ -17,7 +17,8 @@ "FDDM_Grad", "APC_MTLB", "MBT_T_55", - "AAA_ZU_23_on_Ural_375" + "AAA_ZU_23_on_Ural_375", + "AAA_8_8cm_Flak_18" ], "artillery_units": [ "MLRS_BM_21_Grad" diff --git a/resources/factions/russia_1965.json b/resources/factions/russia_1965.json index 2de7b41f..9f986f1d 100644 --- a/resources/factions/russia_1965.json +++ b/resources/factions/russia_1965.json @@ -21,7 +21,9 @@ "ARV_BTR_RD", "IFV_BMD_1", "IFV_BMP_1", - "MBT_T_55" + "MBT_T_55", + "AAA_ZU_23_on_Ural_375", + "AAA_ZSU_57_2" ], "artillery_units": [ "MLRS_BM_21_Grad" diff --git a/resources/factions/russia_1970_limited_air.json b/resources/factions/russia_1970_limited_air.json index 8a1b8daa..9043ad72 100644 --- a/resources/factions/russia_1970_limited_air.json +++ b/resources/factions/russia_1970_limited_air.json @@ -14,7 +14,8 @@ "APC_BTR_80", "IFV_BMD_1", "IFV_BMP_1", - "MBT_T_55" + "MBT_T_55", + "AAA_ZSU_57_2" ], "artillery_units": [ "MLRS_BM_21_Grad", diff --git a/resources/factions/russia_1975.json b/resources/factions/russia_1975.json index a9a0884d..7649f5d5 100644 --- a/resources/factions/russia_1975.json +++ b/resources/factions/russia_1975.json @@ -25,7 +25,8 @@ "APC_BTR_80", "IFV_BMD_1", "IFV_BMP_1", - "MBT_T_55" + "MBT_T_55", + "SAM_SA_8_Osa_9A33" ], "artillery_units": [ "MLRS_BM_21_Grad", diff --git a/resources/factions/russia_1990.json b/resources/factions/russia_1990.json index dd9048bd..ef0e75be 100644 --- a/resources/factions/russia_1990.json +++ b/resources/factions/russia_1990.json @@ -29,7 +29,8 @@ "IFV_BMP_1", "IFV_BMP_2", "MBT_T_72B", - "MBT_T_80U" + "MBT_T_80U", + "SAM_SA_13_Strela_10M3_9A35M3" ], "artillery_units": [ "MLRS_9K57_Uragan_BM_27", diff --git a/resources/factions/russia_2010.json b/resources/factions/russia_2010.json index 29414763..3617cdd3 100644 --- a/resources/factions/russia_2010.json +++ b/resources/factions/russia_2010.json @@ -34,7 +34,8 @@ "APC_BTR_82A", "MBT_T_90", "MBT_T_80U", - "MBT_T_72B3" + "MBT_T_72B3", + "SAM_SA_19_Tunguska_2S6" ], "artillery_units": [ "MLRS_9K57_Uragan_BM_27", diff --git a/resources/factions/russia_2020.json b/resources/factions/russia_2020.json index b1c45b8a..91554c82 100644 --- a/resources/factions/russia_2020.json +++ b/resources/factions/russia_2020.json @@ -32,7 +32,8 @@ "IFV_BMP_3", "MBT_T_90", "MBT_T_80U", - "MBT_T_72B" + "MBT_T_72B", + "SAM_SA_19_Tunguska_2S6" ], "artillery_units": [ "MLRS_9K57_Uragan_BM_27", diff --git a/resources/factions/soviet_union_1943.json b/resources/factions/soviet_union_1943.json index e30a34dc..3b0bb9a5 100644 --- a/resources/factions/soviet_union_1943.json +++ b/resources/factions/soviet_union_1943.json @@ -11,7 +11,8 @@ "MT_M4_Sherman", "APC_M2A1", "Daimler_Armoured_Car", - "LT_Mk_VII_Tetrarch" + "LT_Mk_VII_Tetrarch", + "AAA_Bofors_40mm" ], "artillery_units": [ "MLRS_BM_21_Grad" diff --git a/resources/factions/spain_1990.json b/resources/factions/spain_1990.json index 8eb658bf..b736b672 100644 --- a/resources/factions/spain_1990.json +++ b/resources/factions/spain_1990.json @@ -20,7 +20,8 @@ "frontline_units": [ "MBT_M60A3_Patton", "MBT_Leopard_2", - "APC_M113" + "APC_M113", + "SAM_Avenger_M1097" ], "artillery_units": [ ], diff --git a/resources/factions/sweden_1970.json b/resources/factions/sweden_1970.json index 55362275..41a79c1e 100644 --- a/resources/factions/sweden_1970.json +++ b/resources/factions/sweden_1970.json @@ -18,7 +18,8 @@ "frontline_units": [ "IFV_MCV_80", "MBT_Leopard_2", - "APC_M1126_Stryker_ICV" + "APC_M1126_Stryker_ICV", + "SAM_Chaparral_M48" ], "artillery_units": [ ], @@ -32,7 +33,6 @@ "air_defenses": [ "ChaparralGenerator", "EarlyColdWarFlakGenerator", - "AvengerGenerator", "HawkGenerator", "VulcanGenerator" ], diff --git a/resources/factions/sweden_1990.json b/resources/factions/sweden_1990.json index c5d78b6e..e6c20950 100644 --- a/resources/factions/sweden_1990.json +++ b/resources/factions/sweden_1990.json @@ -17,7 +17,8 @@ "frontline_units": [ "IFV_MCV_80", "MBT_Leopard_2", - "APC_M1126_Stryker_ICV" + "APC_M1126_Stryker_ICV", + "SAM_Avenger_M1097" ], "artillery_units": [ ], diff --git a/resources/factions/syria_1948.json b/resources/factions/syria_1948.json index b8814e6e..3ff2e29d 100644 --- a/resources/factions/syria_1948.json +++ b/resources/factions/syria_1948.json @@ -11,7 +11,8 @@ "AC_Sd_Kfz_234_2_Puma", "APC_Sd_Kfz_251", "MT_Pz_Kpfw_IV_Ausf_H", - "MT_M4_Sherman" + "MT_M4_Sherman", + "AAA_Bofors_40mm" ], "artillery_units": [ ], diff --git a/resources/factions/syria_1967.json b/resources/factions/syria_1967.json index d63cc699..b84c590f 100644 --- a/resources/factions/syria_1967.json +++ b/resources/factions/syria_1967.json @@ -19,7 +19,9 @@ "frontline_units": [ "ARV_BRDM_2", "MT_Pz_Kpfw_IV_Ausf_H", - "MBT_T_55" + "MBT_T_55", + "AAA_ZU_23_on_Ural_375", + "AAA_ZSU_57_2" ], "artillery_units": [ "MLRS_BM_21_Grad" diff --git a/resources/factions/syria_1967_with_ww2_weapons.json b/resources/factions/syria_1967_with_ww2_weapons.json index d97cc2da..46b6bb34 100644 --- a/resources/factions/syria_1967_with_ww2_weapons.json +++ b/resources/factions/syria_1967_with_ww2_weapons.json @@ -22,7 +22,8 @@ "MBT_T_55", "MT_Pz_Kpfw_IV_Ausf_H", "StuG_III_Ausf__G", - "TD_Jagdpanzer_IV" + "TD_Jagdpanzer_IV", + "AAA_ZSU_57_2" ], "artillery_units": [ "MLRS_BM_21_Grad" diff --git a/resources/factions/syria_1973.json b/resources/factions/syria_1973.json index 1d1a5c55..83af1f67 100644 --- a/resources/factions/syria_1973.json +++ b/resources/factions/syria_1973.json @@ -19,7 +19,9 @@ "frontline_units": [ "IFV_BMP_1", "APC_MTLB", - "MBT_T_55" + "MBT_T_55", + "AAA_ZU_23_on_Ural_375", + "AAA_ZSU_57_2" ], "artillery_units": [ "MLRS_BM_21_Grad" diff --git a/resources/factions/syria_1982.json b/resources/factions/syria_1982.json index cde94609..ab74b0de 100644 --- a/resources/factions/syria_1982.json +++ b/resources/factions/syria_1982.json @@ -21,7 +21,9 @@ "IFV_BMP_1", "APC_MTLB", "MBT_T_55", - "MBT_T_72B" + "MBT_T_72B", + "AAA_ZU_23_on_Ural_375", + "AAA_ZSU_57_2" ], "artillery_units": [ "MLRS_BM_21_Grad" diff --git a/resources/factions/syria_2011.json b/resources/factions/syria_2011.json index 4153f679..25d94f56 100644 --- a/resources/factions/syria_2011.json +++ b/resources/factions/syria_2011.json @@ -31,7 +31,8 @@ "APC_Cobra", "MBT_T_55", "MBT_T_72B", - "MBT_T_90" + "MBT_T_90", + "AAA_ZSU_57_2" ], "artillery_units": [ "MLRS_9K57_Uragan_BM_27", diff --git a/resources/factions/turkey_2005.json b/resources/factions/turkey_2005.json index 0a11e63a..4aad1c46 100644 --- a/resources/factions/turkey_2005.json +++ b/resources/factions/turkey_2005.json @@ -21,7 +21,8 @@ "MBT_Leopard_1A3", "MBT_M60A3_Patton", "APC_Cobra", - "APC_BTR_80" + "APC_BTR_80", + "SAM_Avenger_M1097" ], "artillery_units": [ "SPH_M109_Paladin" diff --git a/resources/factions/uk_1944.json b/resources/factions/uk_1944.json index c771db2c..418e2d79 100644 --- a/resources/factions/uk_1944.json +++ b/resources/factions/uk_1944.json @@ -22,7 +22,8 @@ "CT_Centaur_IV", "HIT_Churchill_VII", "Daimler_Armoured_Car", - "LT_Mk_VII_Tetrarch" + "LT_Mk_VII_Tetrarch", + "AAA_Bofors_40mm" ], "artillery_units": [ ], diff --git a/resources/factions/uk_1990.json b/resources/factions/uk_1990.json index b3db7880..f79c71ab 100644 --- a/resources/factions/uk_1990.json +++ b/resources/factions/uk_1990.json @@ -21,7 +21,8 @@ "MBT_Challenger_II", "IFV_MCV_80", "APC_M1043_HMMWV_Armament", - "ATGM_M1045_HMMWV_TOW" + "ATGM_M1045_HMMWV_TOW", + "SAM_Avenger_M1097" ], "artillery_units": [ "MLRS_M270", diff --git a/resources/factions/ukraine_2010.json b/resources/factions/ukraine_2010.json index dac93cb8..b92f90c6 100644 --- a/resources/factions/ukraine_2010.json +++ b/resources/factions/ukraine_2010.json @@ -25,7 +25,8 @@ "IFV_BMP_2", "APC_BTR_80", "MBT_T_80U", - "MBT_T_72B" + "MBT_T_72B", + "SAM_SA_13_Strela_10M3_9A35M3" ], "artillery_units": [ ], diff --git a/resources/factions/us_aggressors.json b/resources/factions/us_aggressors.json index eefebd9a..7568ccd5 100644 --- a/resources/factions/us_aggressors.json +++ b/resources/factions/us_aggressors.json @@ -33,7 +33,8 @@ "ATGM_M1134_Stryker", "IFV_M2A2_Bradley", "IFV_LAV_25", - "APC_M1043_HMMWV_Armament" + "APC_M1043_HMMWV_Armament", + "SAM_Avenger_M1097" ], "artillery_units": [ "MLRS_M270", diff --git a/resources/factions/usa_1944.json b/resources/factions/usa_1944.json index f1c78ece..053ace3c 100644 --- a/resources/factions/usa_1944.json +++ b/resources/factions/usa_1944.json @@ -19,7 +19,8 @@ "APC_M2A1", "M30_Cargo_Carrier", "LAC_M8_Greyhound", - "TD_M10_GMC" + "TD_M10_GMC", + "AA_gun_QF_3_7" ], "artillery_units": [ "M12_GMC" diff --git a/resources/factions/usa_1955.json b/resources/factions/usa_1955.json index 482fd683..1c2a1ec8 100644 --- a/resources/factions/usa_1955.json +++ b/resources/factions/usa_1955.json @@ -12,7 +12,8 @@ "frontline_units": [ "MT_M4_Sherman", "MBT_M60A3_Patton", - "APC_M2A1" + "APC_M2A1", + "AAA_Bofors_40mm" ], "artillery_units": [ "M12_GMC" diff --git a/resources/factions/usa_1960.json b/resources/factions/usa_1960.json index 4397748f..e9d7c4c7 100644 --- a/resources/factions/usa_1960.json +++ b/resources/factions/usa_1960.json @@ -12,7 +12,8 @@ ], "frontline_units": [ "MBT_M60A3_Patton", - "APC_M113" + "APC_M113", + "AAA_Vulcan_M163" ], "artillery_units": [ ], diff --git a/resources/factions/usa_1965.json b/resources/factions/usa_1965.json index 2acd421a..e0a03e3f 100644 --- a/resources/factions/usa_1965.json +++ b/resources/factions/usa_1965.json @@ -11,7 +11,8 @@ ], "frontline_units": [ "MBT_M60A3_Patton", - "APC_M113" + "APC_M113", + "AAA_Vulcan_M163" ], "artillery_units": [ "SPH_M109_Paladin" diff --git a/resources/factions/usa_1975.json b/resources/factions/usa_1975.json index a72383d8..cd818384 100644 --- a/resources/factions/usa_1975.json +++ b/resources/factions/usa_1975.json @@ -12,7 +12,9 @@ ], "frontline_units": [ "MBT_M60A3_Patton", - "APC_M113" + "APC_M113", + "SAM_Chaparral_M48", + "AAA_Vulcan_M163" ], "artillery_units": [ "SPH_M109_Paladin" diff --git a/resources/factions/usa_1990.json b/resources/factions/usa_1990.json index dfe64438..58b5ac14 100644 --- a/resources/factions/usa_1990.json +++ b/resources/factions/usa_1990.json @@ -32,7 +32,8 @@ "IFV_M2A2_Bradley", "IFV_LAV_25", "APC_M1043_HMMWV_Armament", - "ATGM_M1045_HMMWV_TOW" + "ATGM_M1045_HMMWV_TOW", + "SAM_Avenger_M1097" ], "artillery_units": [ "MLRS_M270", diff --git a/resources/factions/usa_2005.json b/resources/factions/usa_2005.json index 5ebe5d1c..916c61a8 100644 --- a/resources/factions/usa_2005.json +++ b/resources/factions/usa_2005.json @@ -32,7 +32,9 @@ "IFV_M2A2_Bradley", "IFV_LAV_25", "APC_M1043_HMMWV_Armament", - "ATGM_M1045_HMMWV_TOW" + "ATGM_M1045_HMMWV_TOW", + "SAM_Avenger_M1097", + "SAM_Linebacker_M6" ], "artillery_units": [ "MLRS_M270", diff --git a/resources/factions/usa_2005_c130.json b/resources/factions/usa_2005_c130.json index 356f62c0..60c5c6da 100644 --- a/resources/factions/usa_2005_c130.json +++ b/resources/factions/usa_2005_c130.json @@ -33,7 +33,9 @@ "IFV_M2A2_Bradley", "IFV_LAV_25", "APC_M1043_HMMWV_Armament", - "ATGM_M1045_HMMWV_TOW" + "ATGM_M1045_HMMWV_TOW", + "SAM_Avenger_M1097", + "SAM_Linebacker_M6" ], "artillery_units": [ "MLRS_M270", diff --git a/resources/factions/usa_2005_modded.json b/resources/factions/usa_2005_modded.json index e4839515..2e10263a 100644 --- a/resources/factions/usa_2005_modded.json +++ b/resources/factions/usa_2005_modded.json @@ -33,7 +33,9 @@ "IFV_M2A2_Bradley", "IFV_LAV_25", "APC_M1043_HMMWV_Armament", - "ATGM_M1045_HMMWV_TOW" + "ATGM_M1045_HMMWV_TOW", + "SAM_Avenger_M1097", + "SAM_Linebacker_M6" ], "artillery_units": [ "MLRS_M270", diff --git a/resources/factions/usn_1985.json b/resources/factions/usn_1985.json index 55bc56e5..c21cf03c 100644 --- a/resources/factions/usn_1985.json +++ b/resources/factions/usn_1985.json @@ -20,7 +20,8 @@ "frontline_units": [ "MBT_M60A3_Patton", "APC_M113", - "APC_M1025_HMMWV" + "APC_M1025_HMMWV", + "AAA_Vulcan_M163" ], "artillery_units": [ "SPH_M109_Paladin",