diff --git a/game/db.py b/game/db.py index c919b1ed..aa5cff9c 100644 --- a/game/db.py +++ b/game/db.py @@ -35,6 +35,7 @@ from game.factions.libya_2011 import Lybia_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_WESTERN_B, PMC_RUSSIAN, PMC_WESTERN_A from game.factions.russia_1975 import Russia_1975 from game.factions.germany_1944 import Germany_1944 from game.factions.india_2010 import India_2010 @@ -190,6 +191,8 @@ PRICES = { Ka_50: 13, SA342M: 8, SA342L: 5, + SA342Minigun: 4, + SA342Mistral: 8, UH_1H: 4, Mi_8MT: 5, Mi_24V: 18, @@ -413,7 +416,8 @@ UNIT_BY_TASK = { SpitfireLFMkIXCW, SpitfireLFMkIX, A_4E_C, - Rafale_M + Rafale_M, + SA342Mistral ], CAS: [ F_86F_Sabre, @@ -430,6 +434,7 @@ UNIT_BY_TASK = { Ka_50, SA342M, SA342L, + SA342Minigun, Su_24M, Su_24MR, AH_64A, @@ -449,7 +454,8 @@ UNIT_BY_TASK = { Ju_88A4, B_17G, MB_339PAN, - Rafale_A_S + Rafale_A_S, + UH_60A ], Transport: [ IL_76MD, @@ -789,6 +795,10 @@ FACTIONS = { "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, @@ -909,6 +919,7 @@ PLANE_PAYLOAD_OVERRIDES = { MB_339PAN: COMMON_OVERRIDE, Rafale_M: COMMON_OVERRIDE, Rafale_A_S: COMMON_OVERRIDE, + OH_58D: COMMON_OVERRIDE, AH_64D:{ CAS: "AGM-114K*16" @@ -992,6 +1003,7 @@ CARRIER_CAPABLE = [ Ka_50, AH_1W, OH_58D, + UH_60A, SA342L, SA342M, @@ -1007,6 +1019,7 @@ LHA_CAPABLE = [ Ka_50, AH_1W, OH_58D, + UH_60A, SA342L, SA342M, diff --git a/game/factions/france_1995.py b/game/factions/france_1995.py index 5b7fe1b2..acf56495 100644 --- a/game/factions/france_1995.py +++ b/game/factions/france_1995.py @@ -17,6 +17,7 @@ France_1995 = { SA342M, SA342L, + SA342Mistral, Armor.MBT_Leclerc, Armor.TPz_Fuchs, # Standing as VAB diff --git a/game/factions/france_2005.py b/game/factions/france_2005.py index d5e25b49..b2f4b87a 100644 --- a/game/factions/france_2005.py +++ b/game/factions/france_2005.py @@ -18,6 +18,7 @@ France_2005 = { SA342M, SA342L, + SA342Mistral, Armor.MBT_Leclerc, Armor.TPz_Fuchs, # Standing as VAB diff --git a/game/factions/france_modded.py b/game/factions/france_modded.py index ea557f30..ad0f7de5 100644 --- a/game/factions/france_modded.py +++ b/game/factions/france_modded.py @@ -22,6 +22,7 @@ France_2005_Modded = { SA342M, SA342L, + SA342Mistral, Armor.MBT_Leclerc, Artillery.SPH_M109_Paladin, # Standing as AMX30 AuF1 diff --git a/game/factions/private_miltary_companies.py b/game/factions/private_miltary_companies.py new file mode 100644 index 00000000..5738519f --- /dev/null +++ b/game/factions/private_miltary_companies.py @@ -0,0 +1,90 @@ +from dcs.helicopters import * +from dcs.planes import * +from dcs.ships import * +from dcs.vehicles import * + +from pydcs_extensions.mb339.mb339 import MB_339PAN + +PMC_WESTERN_A = { + "country": "USA", + "side": "blue", + "units": [ + C_101CC, + + UH_1H, + UH_60A, + 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, + UH_60A, + 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_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 +} + diff --git a/game/factions/uk_1944.py b/game/factions/uk_1944.py index f71ae039..abfaac59 100644 --- a/game/factions/uk_1944.py +++ b/game/factions/uk_1944.py @@ -17,6 +17,7 @@ UK_1944 = { A_20G, B_17G, + Armor.MT_M4A4_Sherman_Firefly, Armor.MT_M4_Sherman, Armor.APC_M2A1, Armor.CT_Cromwell_IV, diff --git a/game/factions/usa_1944.py b/game/factions/usa_1944.py index 680ce714..5ba73237 100644 --- a/game/factions/usa_1944.py +++ b/game/factions/usa_1944.py @@ -16,7 +16,6 @@ USA_1944 = { B_17G, Armor.MT_M4_Sherman, - Armor.MT_M4A4_Sherman_Firefly, Armor.M30_Cargo_Carrier, Armor.APC_M2A1, Armor.LAC_M8_Greyhound, diff --git a/gen/ground_forces/ai_ground_planner.py b/gen/ground_forces/ai_ground_planner.py index dbce4428..bdc3a18d 100644 --- a/gen/ground_forces/ai_ground_planner.py +++ b/gen/ground_forces/ai_ground_planner.py @@ -185,14 +185,14 @@ class CombatGroupRole(Enum): DISTANCE_FROM_FRONTLINE = { - CombatGroupRole.TANK:2800, - CombatGroupRole.APC:7000, - CombatGroupRole.IFV:3000, - CombatGroupRole.ARTILLERY:14000, - CombatGroupRole.SHORAD:12000, - CombatGroupRole.LOGI:18000, - CombatGroupRole.INFANTRY:2800, - CombatGroupRole.ATGM:5500 + CombatGroupRole.TANK:3200, + CombatGroupRole.APC:8000, + CombatGroupRole.IFV:3700, + CombatGroupRole.ARTILLERY:18000, + CombatGroupRole.SHORAD:13000, + CombatGroupRole.LOGI:20000, + CombatGroupRole.INFANTRY:3000, + CombatGroupRole.ATGM:6200 } GROUP_SIZES_BY_COMBAT_STANCE = { diff --git a/resources/customized_payloads/OH-58D.lua b/resources/customized_payloads/OH-58D.lua new file mode 100644 index 00000000..abcf1359 --- /dev/null +++ b/resources/customized_payloads/OH-58D.lua @@ -0,0 +1,87 @@ +local unitPayloads = { + ["name"] = "OH-58D", + ["payloads"] = { + [1] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "oh-58-brauning", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "AGM114x2_OH_58", + ["num"] = 2, + }, + }, + ["tasks"] = { + [1] = 16, + }, + }, + [2] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "AGM114x2_OH_58", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "AGM114x2_OH_58", + ["num"] = 2, + }, + }, + ["tasks"] = { + [1] = 16, + }, + }, + [3] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "AGM114x2_OH_58", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "AGM114x2_OH_58", + ["num"] = 2, + }, + }, + ["tasks"] = { + [1] = 16, + }, + }, + [4] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "AGM114x2_OH_58", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "AGM114x2_OH_58", + ["num"] = 2, + }, + }, + ["tasks"] = { + [1] = 16, + }, + }, + [5] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "AGM114x2_OH_58", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "AGM114x2_OH_58", + ["num"] = 2, + }, + }, + ["tasks"] = { + [1] = 16, + }, + }, + }, + ["unitType"] = "OH-58D", +} +return unitPayloads