mirror of
https://github.com/dcs-liberation/dcs_liberation.git
synced 2025-11-10 14:22:26 +00:00
Adapt to DCS update.
This commit is contained in:
parent
edd0b90576
commit
4c3ac0af91
@ -1,22 +0,0 @@
|
||||
from dcs.vehicles import AirDefence
|
||||
|
||||
AAA_UNITS = [
|
||||
AirDefence.SPAAA_Gepard,
|
||||
AirDefence.SPAAA_ZSU_23_4_Shilka_Gun_Dish,
|
||||
AirDefence.SPAAA_Vulcan_M163,
|
||||
AirDefence.AAA_ZU_23_Closed_Emplacement,
|
||||
AirDefence.AAA_ZU_23_Emplacement,
|
||||
AirDefence.SPAAA_ZU_23_2_Mounted_Ural_375,
|
||||
AirDefence.AAA_ZU_23_Insurgent_Closed_Emplacement,
|
||||
AirDefence.SPAAA_ZU_23_2_Insurgent_Mounted_Ural_375,
|
||||
AirDefence.AAA_ZU_23_Insurgent_Emplacement,
|
||||
AirDefence.AAA_8_8cm_Flak_18,
|
||||
AirDefence.AAA_Flak_38_20mm,
|
||||
AirDefence.AAA_8_8cm_Flak_36,
|
||||
AirDefence.AAA_8_8cm_Flak_37,
|
||||
AirDefence.AAA_Flak_Vierling_38_Quad_20mm,
|
||||
AirDefence.AAA_SP_Kdo_G_40,
|
||||
AirDefence.AAA_8_8cm_Flak_41,
|
||||
AirDefence.AAA_Bofors_40mm,
|
||||
AirDefence.AAA_S_60_57mm,
|
||||
]
|
||||
@ -4,35 +4,35 @@ from dcs.vehicles import AirDefence
|
||||
|
||||
class AlicCodes:
|
||||
CODES = {
|
||||
AirDefence.EWR_1L13.id: 101,
|
||||
AirDefence.EWR_55G6.id: 102,
|
||||
AirDefence.SAM_SA_10_S_300_Grumble_Clam_Shell_SR.id: 103,
|
||||
AirDefence.SAM_SA_10_S_300_Grumble_Big_Bird_SR.id: 104,
|
||||
AirDefence.SAM_SA_11_Buk_Gadfly_Snow_Drift_SR.id: 107,
|
||||
AirDefence.SAM_SA_6_Kub_Straight_Flush_STR.id: 108,
|
||||
AirDefence.MCC_SR_Sborka_Dog_Ear_SR.id: 109,
|
||||
AirDefence.SAM_SA_10_S_300_Grumble_Flap_Lid_TR.id: 110,
|
||||
AirDefence.SAM_SA_11_Buk_Gadfly_Fire_Dome_TEL.id: 115,
|
||||
AirDefence.SAM_SA_8_Osa_Gecko_TEL.id: 117,
|
||||
AirDefence.SAM_SA_13_Strela_10M3_Gopher_TEL.id: 118,
|
||||
AirDefence.SAM_SA_15_Tor_Gauntlet.id: 119,
|
||||
AirDefence.SAM_SA_19_Tunguska_Grison.id: 120,
|
||||
AirDefence.SPAAA_ZSU_23_4_Shilka_Gun_Dish.id: 121,
|
||||
AirDefence.SAM_P19_Flat_Face_SR__SA_2_3.id: 122,
|
||||
AirDefence.SAM_SA_3_S_125_Low_Blow_TR.id: 123,
|
||||
AirDefence.SAM_Rapier_Blindfire_TR.id: 124,
|
||||
AirDefence.SAM_Rapier_LN.id: 125,
|
||||
AirDefence.SAM_SA_2_S_75_Fan_Song_TR.id: 126,
|
||||
AirDefence.HQ_7_Self_Propelled_LN.id: 127,
|
||||
AirDefence.HQ_7_Self_Propelled_STR.id: 128,
|
||||
AirDefence.SAM_Roland_ADS.id: 201,
|
||||
AirDefence.SAM_Patriot_STR.id: 202,
|
||||
AirDefence.SAM_Hawk_SR__AN_MPQ_50.id: 203,
|
||||
AirDefence.SAM_Hawk_TR__AN_MPQ_46.id: 204,
|
||||
AirDefence.SAM_Roland_EWR.id: 205,
|
||||
AirDefence.SAM_Hawk_CWAR_AN_MPQ_55.id: 206,
|
||||
AirDefence.SPAAA_Gepard.id: 207,
|
||||
AirDefence.SPAAA_Vulcan_M163.id: 208,
|
||||
AirDefence._1L13_EWR.id: 101,
|
||||
AirDefence._55G6_EWR.id: 102,
|
||||
AirDefence.S_300PS_40B6MD_sr.id: 103,
|
||||
AirDefence.S_300PS_64H6E_sr.id: 104,
|
||||
AirDefence.SA_11_Buk_SR_9S18M1.id: 107,
|
||||
AirDefence.Kub_1S91_str.id: 108,
|
||||
AirDefence.Dog_Ear_radar.id: 109,
|
||||
AirDefence.S_300PS_40B6M_tr.id: 110,
|
||||
AirDefence.SA_11_Buk_LN_9A310M1.id: 115,
|
||||
AirDefence.Osa_9A33_ln.id: 117,
|
||||
AirDefence.Strela_10M3.id: 118,
|
||||
AirDefence.Tor_9A331.id: 119,
|
||||
AirDefence._2S6_Tunguska.id: 120,
|
||||
AirDefence.ZSU_23_4_Shilka.id: 121,
|
||||
AirDefence.P_19_s_125_sr.id: 122,
|
||||
AirDefence.Snr_s_125_tr.id: 123,
|
||||
AirDefence.Rapier_fsa_blindfire_radar.id: 124,
|
||||
AirDefence.Rapier_fsa_launcher.id: 125,
|
||||
AirDefence.SNR_75V.id: 126,
|
||||
AirDefence.HQ_7_LN_SP.id: 127,
|
||||
AirDefence.HQ_7_STR_SP.id: 128,
|
||||
AirDefence.Roland_ADS.id: 201,
|
||||
AirDefence.Patriot_str.id: 202,
|
||||
AirDefence.Hawk_sr.id: 203,
|
||||
AirDefence.Hawk_tr.id: 204,
|
||||
AirDefence.Roland_Radar.id: 205,
|
||||
AirDefence.Hawk_cwar.id: 206,
|
||||
AirDefence.Gepard.id: 207,
|
||||
AirDefence.Vulcan.id: 208,
|
||||
}
|
||||
|
||||
@classmethod
|
||||
|
||||
@ -1,108 +1,108 @@
|
||||
from dcs.ships import (
|
||||
Battlecruiser_1144_2_Pyotr_Velikiy,
|
||||
Cruiser_1164_Moskva,
|
||||
CVN_70_Carl_Vinson,
|
||||
CVN_71_Theodore_Roosevelt,
|
||||
CVN_72_Abraham_Lincoln,
|
||||
CVN_73_George_Washington,
|
||||
CVN_74_John_C__Stennis,
|
||||
CV_1143_5_Admiral_Kuznetsov,
|
||||
CV_1143_5_Admiral_Kuznetsov_2017,
|
||||
Frigate_11540_Neustrashimy,
|
||||
Corvette_1124_4_Grisha,
|
||||
Frigate_1135M_Rezky,
|
||||
Corvette_1241_1_Molniya,
|
||||
LHA_1_Tarawa,
|
||||
FFG_Oliver_Hazzard_Perry,
|
||||
CG_Ticonderoga,
|
||||
Type_052B_Destroyer,
|
||||
Type_052C_Destroyer,
|
||||
Type_054A_Frigate,
|
||||
DDG_Arleigh_Burke_IIa,
|
||||
PIOTR,
|
||||
MOSCOW,
|
||||
VINSON,
|
||||
CVN_71,
|
||||
CVN_72,
|
||||
CVN_73,
|
||||
Stennis,
|
||||
KUZNECOW,
|
||||
CV_1143_5,
|
||||
NEUSTRASH,
|
||||
ALBATROS,
|
||||
REZKY,
|
||||
MOLNIYA,
|
||||
LHA_Tarawa,
|
||||
PERRY,
|
||||
TICONDEROG,
|
||||
Type_052B,
|
||||
Type_052C,
|
||||
Type_054A,
|
||||
USS_Arleigh_Burke_IIa,
|
||||
)
|
||||
from dcs.vehicles import AirDefence
|
||||
|
||||
TELARS = {
|
||||
AirDefence.SAM_SA_19_Tunguska_Grison,
|
||||
AirDefence.SAM_SA_11_Buk_Gadfly_Fire_Dome_TEL,
|
||||
AirDefence.SAM_SA_8_Osa_Gecko_TEL,
|
||||
AirDefence.SAM_SA_15_Tor_Gauntlet,
|
||||
AirDefence.SAM_Roland_ADS,
|
||||
AirDefence._2S6_Tunguska,
|
||||
AirDefence.SA_11_Buk_SR_9S18M1,
|
||||
AirDefence.Osa_9A33_ln,
|
||||
AirDefence.Tor_9A331,
|
||||
AirDefence.Roland_ADS,
|
||||
}
|
||||
|
||||
TRACK_RADARS = {
|
||||
AirDefence.SAM_SA_6_Kub_Straight_Flush_STR,
|
||||
AirDefence.SAM_SA_3_S_125_Low_Blow_TR,
|
||||
AirDefence.SAM_SA_10_S_300_Grumble_Flap_Lid_TR,
|
||||
AirDefence.SAM_Hawk_TR__AN_MPQ_46,
|
||||
AirDefence.SAM_Patriot_STR,
|
||||
AirDefence.SAM_SA_2_S_75_Fan_Song_TR,
|
||||
AirDefence.SAM_Rapier_Blindfire_TR,
|
||||
AirDefence.HQ_7_Self_Propelled_STR,
|
||||
AirDefence.Kub_1S91_str,
|
||||
AirDefence.Snr_s_125_tr,
|
||||
AirDefence.S_300PS_40B6M_tr,
|
||||
AirDefence.Hawk_tr,
|
||||
AirDefence.Patriot_str,
|
||||
AirDefence.SNR_75V,
|
||||
AirDefence.Rapier_fsa_blindfire_radar,
|
||||
AirDefence.HQ_7_STR_SP,
|
||||
}
|
||||
|
||||
LAUNCHER_TRACKER_PAIRS = {
|
||||
AirDefence.SAM_SA_6_Kub_Gainful_TEL: AirDefence.SAM_SA_6_Kub_Straight_Flush_STR,
|
||||
AirDefence.SAM_SA_3_S_125_Goa_LN: AirDefence.SAM_SA_3_S_125_Low_Blow_TR,
|
||||
AirDefence.SAM_SA_10_S_300_Grumble_TEL_D: AirDefence.SAM_SA_10_S_300_Grumble_Flap_Lid_TR,
|
||||
AirDefence.SAM_SA_10_S_300_Grumble_TEL_C: AirDefence.SAM_SA_10_S_300_Grumble_Flap_Lid_TR,
|
||||
AirDefence.SAM_Hawk_LN_M192: AirDefence.SAM_Hawk_TR__AN_MPQ_46,
|
||||
AirDefence.SAM_Patriot_LN: AirDefence.SAM_Patriot_STR,
|
||||
AirDefence.SAM_SA_2_S_75_Guideline_LN: AirDefence.SAM_SA_2_S_75_Fan_Song_TR,
|
||||
AirDefence.SAM_Rapier_LN: AirDefence.SAM_Rapier_Blindfire_TR,
|
||||
AirDefence.HQ_7_Self_Propelled_LN: AirDefence.HQ_7_Self_Propelled_STR,
|
||||
AirDefence.Kub_2P25_ln: AirDefence.Kub_1S91_str,
|
||||
AirDefence._5p73_s_125_ln: AirDefence.Snr_s_125_tr,
|
||||
AirDefence.S_300PS_5P85C_ln: AirDefence.S_300PS_40B6M_tr,
|
||||
AirDefence.S_300PS_5P85D_ln: AirDefence.S_300PS_40B6M_tr,
|
||||
AirDefence.Hawk_ln: AirDefence.Hawk_tr,
|
||||
AirDefence.Patriot_ln: AirDefence.Patriot_str,
|
||||
AirDefence.S_75M_Volhov: AirDefence.SNR_75V,
|
||||
AirDefence.Rapier_fsa_launcher: AirDefence.Rapier_fsa_blindfire_radar,
|
||||
AirDefence.HQ_7_LN_SP: AirDefence.HQ_7_STR_SP,
|
||||
}
|
||||
|
||||
UNITS_WITH_RADAR = {
|
||||
# Radars
|
||||
AirDefence.SAM_SA_19_Tunguska_Grison,
|
||||
AirDefence.SAM_SA_11_Buk_Gadfly_Fire_Dome_TEL,
|
||||
AirDefence.SAM_SA_8_Osa_Gecko_TEL,
|
||||
AirDefence.SAM_SA_15_Tor_Gauntlet,
|
||||
AirDefence.SPAAA_Gepard,
|
||||
AirDefence.SPAAA_Vulcan_M163,
|
||||
AirDefence.SAM_Roland_ADS,
|
||||
AirDefence.SPAAA_ZSU_23_4_Shilka_Gun_Dish,
|
||||
AirDefence.EWR_1L13,
|
||||
AirDefence.SAM_SA_6_Kub_Straight_Flush_STR,
|
||||
AirDefence.SAM_SA_10_S_300_Grumble_Flap_Lid_TR,
|
||||
AirDefence.SAM_SA_10_S_300_Grumble_Clam_Shell_SR,
|
||||
AirDefence.EWR_55G6,
|
||||
AirDefence.SAM_SA_10_S_300_Grumble_Big_Bird_SR,
|
||||
AirDefence.SAM_SA_11_Buk_Gadfly_Snow_Drift_SR,
|
||||
AirDefence.MCC_SR_Sborka_Dog_Ear_SR,
|
||||
AirDefence.SAM_Hawk_TR__AN_MPQ_46,
|
||||
AirDefence.SAM_Hawk_SR__AN_MPQ_50,
|
||||
AirDefence.SAM_Patriot_STR,
|
||||
AirDefence.SAM_Hawk_CWAR_AN_MPQ_55,
|
||||
AirDefence.SAM_P19_Flat_Face_SR__SA_2_3,
|
||||
AirDefence.SAM_Roland_EWR,
|
||||
AirDefence.SAM_SA_3_S_125_Low_Blow_TR,
|
||||
AirDefence.SAM_SA_2_S_75_Fan_Song_TR,
|
||||
AirDefence.SAM_Rapier_Blindfire_TR,
|
||||
AirDefence.HQ_7_Self_Propelled_LN,
|
||||
AirDefence.HQ_7_Self_Propelled_STR,
|
||||
AirDefence.EWR_FuMG_401_Freya_LZ,
|
||||
AirDefence.EWR_FuSe_65_Würzburg_Riese,
|
||||
AirDefence._2S6_Tunguska,
|
||||
AirDefence.SA_11_Buk_LN_9A310M1,
|
||||
AirDefence.Osa_9A33_ln,
|
||||
AirDefence.Tor_9A331,
|
||||
AirDefence.Gepard,
|
||||
AirDefence.Vulcan,
|
||||
AirDefence.Roland_ADS,
|
||||
AirDefence.ZSU_23_4_Shilka,
|
||||
AirDefence._1L13_EWR,
|
||||
AirDefence.Kub_1S91_str,
|
||||
AirDefence.S_300PS_40B6M_tr,
|
||||
AirDefence.S_300PS_40B6MD_sr,
|
||||
AirDefence._55G6_EWR,
|
||||
AirDefence.S_300PS_64H6E_sr,
|
||||
AirDefence.SA_11_Buk_SR_9S18M1,
|
||||
AirDefence.Dog_Ear_radar,
|
||||
AirDefence.Hawk_tr,
|
||||
AirDefence.Hawk_sr,
|
||||
AirDefence.Patriot_str,
|
||||
AirDefence.Hawk_cwar,
|
||||
AirDefence.P_19_s_125_sr,
|
||||
AirDefence.Roland_Radar,
|
||||
AirDefence.Snr_s_125_tr,
|
||||
AirDefence.SNR_75V,
|
||||
AirDefence.Rapier_fsa_blindfire_radar,
|
||||
AirDefence.HQ_7_LN_SP,
|
||||
AirDefence.HQ_7_STR_SP,
|
||||
AirDefence.FuMG_401,
|
||||
AirDefence.FuSe_65,
|
||||
# Ships
|
||||
CVN_70_Carl_Vinson,
|
||||
FFG_Oliver_Hazzard_Perry,
|
||||
CG_Ticonderoga,
|
||||
Corvette_1124_4_Grisha,
|
||||
CV_1143_5_Admiral_Kuznetsov,
|
||||
Corvette_1241_1_Molniya,
|
||||
Cruiser_1164_Moskva,
|
||||
Frigate_11540_Neustrashimy,
|
||||
Battlecruiser_1144_2_Pyotr_Velikiy,
|
||||
Frigate_1135M_Rezky,
|
||||
CV_1143_5_Admiral_Kuznetsov_2017,
|
||||
CVN_74_John_C__Stennis,
|
||||
CVN_71_Theodore_Roosevelt,
|
||||
CVN_72_Abraham_Lincoln,
|
||||
CVN_73_George_Washington,
|
||||
DDG_Arleigh_Burke_IIa,
|
||||
LHA_1_Tarawa,
|
||||
Type_052B_Destroyer,
|
||||
Type_054A_Frigate,
|
||||
Type_052C_Destroyer,
|
||||
VINSON,
|
||||
PERRY,
|
||||
TICONDEROG,
|
||||
ALBATROS,
|
||||
KUZNECOW,
|
||||
MOLNIYA,
|
||||
MOSCOW,
|
||||
NEUSTRASH,
|
||||
PIOTR,
|
||||
REZKY,
|
||||
CV_1143_5,
|
||||
Stennis,
|
||||
CVN_71,
|
||||
CVN_72,
|
||||
CVN_73,
|
||||
USS_Arleigh_Burke_IIa,
|
||||
LHA_Tarawa,
|
||||
Type_052B,
|
||||
Type_054A,
|
||||
Type_052C,
|
||||
}
|
||||
|
||||
32
game/db.py
32
game/db.py
@ -19,14 +19,14 @@ from dcs.planes import (
|
||||
plane_map,
|
||||
)
|
||||
from dcs.ships import (
|
||||
CVN_71_Theodore_Roosevelt,
|
||||
CVN_72_Abraham_Lincoln,
|
||||
CVN_73_George_Washington,
|
||||
CVN_74_John_C__Stennis,
|
||||
CVN_75_Harry_S__Truman,
|
||||
CV_1143_5_Admiral_Kuznetsov,
|
||||
CV_1143_5_Admiral_Kuznetsov_2017,
|
||||
ship_map,
|
||||
Stennis,
|
||||
KUZNECOW,
|
||||
CVN_71,
|
||||
CVN_75,
|
||||
CVN_73,
|
||||
CVN_72,
|
||||
CV_1143_5,
|
||||
)
|
||||
from dcs.terrain.terrain import Airport
|
||||
from dcs.unitgroup import ShipGroup, StaticGroup
|
||||
@ -321,21 +321,21 @@ StartingPosition = Union[ShipGroup, StaticGroup, Airport, Point]
|
||||
|
||||
|
||||
def upgrade_to_supercarrier(unit, name: str):
|
||||
if unit == CVN_74_John_C__Stennis:
|
||||
if unit == Stennis:
|
||||
if name == "CVN-71 Theodore Roosevelt":
|
||||
return CVN_71_Theodore_Roosevelt
|
||||
return CVN_71
|
||||
elif name == "CVN-72 Abraham Lincoln":
|
||||
return CVN_72_Abraham_Lincoln
|
||||
return CVN_72
|
||||
elif name == "CVN-73 George Washington":
|
||||
return CVN_73_George_Washington
|
||||
return CVN_73
|
||||
elif name == "CVN-75 Harry S. Truman":
|
||||
return CVN_75_Harry_S__Truman
|
||||
return CVN_75
|
||||
elif name == "Carrier Strike Group 8":
|
||||
return CVN_75_Harry_S__Truman
|
||||
return CVN_75
|
||||
else:
|
||||
return CVN_71_Theodore_Roosevelt
|
||||
elif unit == CV_1143_5_Admiral_Kuznetsov:
|
||||
return CV_1143_5_Admiral_Kuznetsov_2017
|
||||
return CVN_71
|
||||
elif unit == KUZNECOW:
|
||||
return CV_1143_5
|
||||
else:
|
||||
return unit
|
||||
|
||||
|
||||
@ -16,10 +16,10 @@ from dcs.country import Country
|
||||
from dcs.mapping import Point
|
||||
from dcs.planes import F_15C
|
||||
from dcs.ships import (
|
||||
Bulker_Handy_Wind,
|
||||
CVN_74_John_C__Stennis,
|
||||
DDG_Arleigh_Burke_IIa,
|
||||
LHA_1_Tarawa,
|
||||
HandyWind,
|
||||
Stennis,
|
||||
USS_Arleigh_Burke_IIa,
|
||||
LHA_Tarawa,
|
||||
)
|
||||
from dcs.statics import Fortification, Warehouse
|
||||
from dcs.terrain import (
|
||||
@ -77,53 +77,53 @@ class MizCampaignLoader:
|
||||
|
||||
OFF_MAP_UNIT_TYPE = F_15C.id
|
||||
|
||||
CV_UNIT_TYPE = CVN_74_John_C__Stennis.id
|
||||
LHA_UNIT_TYPE = LHA_1_Tarawa.id
|
||||
FRONT_LINE_UNIT_TYPE = Armor.APC_M113.id
|
||||
SHIPPING_LANE_UNIT_TYPE = Bulker_Handy_Wind.id
|
||||
CV_UNIT_TYPE = Stennis.id
|
||||
LHA_UNIT_TYPE = LHA_Tarawa.id
|
||||
FRONT_LINE_UNIT_TYPE = Armor.M_113.id
|
||||
SHIPPING_LANE_UNIT_TYPE = HandyWind.id
|
||||
|
||||
FOB_UNIT_TYPE = Unarmed.Truck_SKP_11_Mobile_ATC.id
|
||||
FOB_UNIT_TYPE = Unarmed.SKP_11.id
|
||||
FARP_HELIPAD = "SINGLE_HELIPAD"
|
||||
|
||||
OFFSHORE_STRIKE_TARGET_UNIT_TYPE = Fortification.Oil_platform.id
|
||||
SHIP_UNIT_TYPE = DDG_Arleigh_Burke_IIa.id
|
||||
MISSILE_SITE_UNIT_TYPE = MissilesSS.SSM_SS_1C_Scud_B.id
|
||||
COASTAL_DEFENSE_UNIT_TYPE = MissilesSS.AShM_SS_N_2_Silkworm.id
|
||||
SHIP_UNIT_TYPE = USS_Arleigh_Burke_IIa.id
|
||||
MISSILE_SITE_UNIT_TYPE = MissilesSS.Scud_B.id
|
||||
COASTAL_DEFENSE_UNIT_TYPE = MissilesSS.Hy_launcher.id
|
||||
|
||||
# Multiple options for air defenses so campaign designers can more accurately see
|
||||
# the coverage of their IADS for the expected type.
|
||||
LONG_RANGE_SAM_UNIT_TYPES = {
|
||||
AirDefence.SAM_Patriot_LN.id,
|
||||
AirDefence.SAM_SA_10_S_300_Grumble_TEL_C.id,
|
||||
AirDefence.SAM_SA_10_S_300_Grumble_TEL_D.id,
|
||||
AirDefence.Patriot_ln.id,
|
||||
AirDefence.S_300PS_5P85C_ln.id,
|
||||
AirDefence.S_300PS_5P85D_ln.id,
|
||||
}
|
||||
|
||||
MEDIUM_RANGE_SAM_UNIT_TYPES = {
|
||||
AirDefence.SAM_Hawk_LN_M192.id,
|
||||
AirDefence.SAM_SA_2_S_75_Guideline_LN.id,
|
||||
AirDefence.SAM_SA_3_S_125_Goa_LN.id,
|
||||
AirDefence.Hawk_ln.id,
|
||||
AirDefence.S_75M_Volhov.id,
|
||||
AirDefence._5p73_s_125_ln.id,
|
||||
}
|
||||
|
||||
SHORT_RANGE_SAM_UNIT_TYPES = {
|
||||
AirDefence.SAM_Avenger__Stinger.id,
|
||||
AirDefence.SAM_Rapier_LN.id,
|
||||
AirDefence.SAM_SA_19_Tunguska_Grison.id,
|
||||
AirDefence.SAM_SA_9_Strela_1_Gaskin_TEL.id,
|
||||
AirDefence.M1097_Avenger.id,
|
||||
AirDefence.Rapier_fsa_launcher.id,
|
||||
AirDefence._2S6_Tunguska.id,
|
||||
AirDefence.Strela_1_9P31.id,
|
||||
}
|
||||
|
||||
AAA_UNIT_TYPES = {
|
||||
AirDefence.AAA_8_8cm_Flak_18.id,
|
||||
AirDefence.SPAAA_Vulcan_M163.id,
|
||||
AirDefence.SPAAA_ZSU_23_4_Shilka_Gun_Dish.id,
|
||||
AirDefence.Flak18.id,
|
||||
AirDefence.Vulcan.id,
|
||||
AirDefence.ZSU_23_4_Shilka.id,
|
||||
}
|
||||
|
||||
EWR_UNIT_TYPE = AirDefence.EWR_1L13.id
|
||||
EWR_UNIT_TYPE = AirDefence._1L13_EWR.id
|
||||
|
||||
ARMOR_GROUP_UNIT_TYPE = Armor.MBT_M1A2_Abrams.id
|
||||
ARMOR_GROUP_UNIT_TYPE = Armor.M_1_Abrams.id
|
||||
|
||||
FACTORY_UNIT_TYPE = Fortification.Workshop_A.id
|
||||
|
||||
AMMUNITION_DEPOT_UNIT_TYPE = Warehouse.Ammunition_depot.id
|
||||
AMMUNITION_DEPOT_UNIT_TYPE = Warehouse._Ammunition_depot.id
|
||||
|
||||
STRIKE_TARGET_UNIT_TYPE = Fortification.Tech_combine.id
|
||||
|
||||
|
||||
@ -24,10 +24,10 @@ from typing import (
|
||||
|
||||
from dcs.mapping import Point
|
||||
from dcs.ships import (
|
||||
CVN_74_John_C__Stennis,
|
||||
CV_1143_5_Admiral_Kuznetsov,
|
||||
LHA_1_Tarawa,
|
||||
Type_071_Amphibious_Transport_Dock,
|
||||
Stennis,
|
||||
KUZNECOW,
|
||||
LHA_Tarawa,
|
||||
Type_071,
|
||||
)
|
||||
from dcs.terrain.terrain import Airport, ParkingSlot
|
||||
from dcs.unit import Unit
|
||||
@ -485,14 +485,14 @@ class ControlPoint(MissionTarget, ABC):
|
||||
for group in g.groups:
|
||||
for u in group.units:
|
||||
if db.unit_type_from_name(u.type) in [
|
||||
CVN_74_John_C__Stennis,
|
||||
CV_1143_5_Admiral_Kuznetsov,
|
||||
Stennis,
|
||||
KUZNECOW,
|
||||
]:
|
||||
return group.name
|
||||
elif g.dcs_identifier == "LHA":
|
||||
for group in g.groups:
|
||||
for u in group.units:
|
||||
if db.unit_type_from_name(u.type) in [LHA_1_Tarawa]:
|
||||
if db.unit_type_from_name(u.type) in [LHA_Tarawa]:
|
||||
return group.name
|
||||
return None
|
||||
|
||||
@ -891,10 +891,10 @@ class NavalControlPoint(ControlPoint, ABC):
|
||||
for group in self.find_main_tgo().groups:
|
||||
for u in group.units:
|
||||
if db.unit_type_from_name(u.type) in [
|
||||
CVN_74_John_C__Stennis,
|
||||
LHA_1_Tarawa,
|
||||
CV_1143_5_Admiral_Kuznetsov,
|
||||
Type_071_Amphibious_Transport_Dock,
|
||||
Stennis,
|
||||
LHA_Tarawa,
|
||||
KUZNECOW,
|
||||
Type_071,
|
||||
]:
|
||||
return True
|
||||
return False
|
||||
|
||||
@ -70,9 +70,9 @@ VERSION = _build_version_string()
|
||||
#: Version 4.2
|
||||
#: * Adds support for AAA objectives. Place with any of the following units (either red
|
||||
#: or blue):
|
||||
#: * AAA_8_8cm_Flak_18,
|
||||
#: * SPAAA_Vulcan_M163,
|
||||
#: * SPAAA_ZSU_23_4_Shilka_Gun_Dish,
|
||||
#: * Flak18,
|
||||
#: * Vulcan,
|
||||
#: * ZSU_23_4_Shilka,
|
||||
#:
|
||||
#: Version 5.0
|
||||
#: * Ammunition Depots objective locations are now predetermined using the "Ammunition
|
||||
|
||||
@ -4,7 +4,7 @@ import itertools
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from dcs import Mission
|
||||
from dcs.ships import Bulker_Handy_Wind
|
||||
from dcs.ships import HandyWind
|
||||
from dcs.unitgroup import ShipGroup
|
||||
|
||||
from game.transfers import CargoShip
|
||||
@ -35,7 +35,7 @@ class CargoShipGenerator:
|
||||
group = self.mission.ship_group(
|
||||
country,
|
||||
ship.name,
|
||||
Bulker_Handy_Wind,
|
||||
HandyWind,
|
||||
position=waypoints[0],
|
||||
group_size=1,
|
||||
)
|
||||
|
||||
@ -32,7 +32,7 @@ class SilkwormGenerator(GroupGenerator):
|
||||
|
||||
# Commander
|
||||
self.add_unit(
|
||||
Unarmed.Truck_KAMAZ_43101,
|
||||
Unarmed.KAMAZ_Truck,
|
||||
"KAMAZ#0",
|
||||
self.position.x - 35,
|
||||
self.position.y - 20,
|
||||
@ -41,7 +41,7 @@ class SilkwormGenerator(GroupGenerator):
|
||||
|
||||
# Shorad
|
||||
self.add_unit(
|
||||
AirDefence.SPAAA_ZSU_23_4_Shilka_Gun_Dish,
|
||||
AirDefence.ZSU_23_4_Shilka,
|
||||
"SHILKA#0",
|
||||
self.position.x - 55,
|
||||
self.position.y - 38,
|
||||
@ -50,7 +50,7 @@ class SilkwormGenerator(GroupGenerator):
|
||||
|
||||
# Shorad 2
|
||||
self.add_unit(
|
||||
AirDefence.SAM_SA_9_Strela_1_Gaskin_TEL,
|
||||
AirDefence.Strela_1_9P31,
|
||||
"STRELA#0",
|
||||
self.position.x + 200,
|
||||
self.position.y + 15,
|
||||
|
||||
@ -2,7 +2,7 @@ import random
|
||||
|
||||
from gen.sam.group_generator import ShipGroupGenerator
|
||||
|
||||
from dcs.ships import DDG_Arleigh_Burke_IIa, CG_Ticonderoga
|
||||
from dcs.ships import USS_Arleigh_Burke_IIa, TICONDEROG
|
||||
|
||||
|
||||
class CarrierGroupGenerator(ShipGroupGenerator):
|
||||
@ -22,7 +22,7 @@ class CarrierGroupGenerator(ShipGroupGenerator):
|
||||
|
||||
# Add Arleigh Burke escort
|
||||
self.add_unit(
|
||||
DDG_Arleigh_Burke_IIa,
|
||||
USS_Arleigh_Burke_IIa,
|
||||
"USS Ramage",
|
||||
self.position.x + 6482,
|
||||
self.position.y + 6667,
|
||||
@ -30,7 +30,7 @@ class CarrierGroupGenerator(ShipGroupGenerator):
|
||||
)
|
||||
|
||||
self.add_unit(
|
||||
DDG_Arleigh_Burke_IIa,
|
||||
USS_Arleigh_Burke_IIa,
|
||||
"USS Mitscher",
|
||||
self.position.x - 7963,
|
||||
self.position.y + 7037,
|
||||
@ -38,7 +38,7 @@ class CarrierGroupGenerator(ShipGroupGenerator):
|
||||
)
|
||||
|
||||
self.add_unit(
|
||||
DDG_Arleigh_Burke_IIa,
|
||||
USS_Arleigh_Burke_IIa,
|
||||
"USS Forrest Sherman",
|
||||
self.position.x - 7408,
|
||||
self.position.y - 7408,
|
||||
@ -46,7 +46,7 @@ class CarrierGroupGenerator(ShipGroupGenerator):
|
||||
)
|
||||
|
||||
self.add_unit(
|
||||
DDG_Arleigh_Burke_IIa,
|
||||
USS_Arleigh_Burke_IIa,
|
||||
"USS Lassen",
|
||||
self.position.x + 8704,
|
||||
self.position.y - 6296,
|
||||
@ -56,7 +56,7 @@ class CarrierGroupGenerator(ShipGroupGenerator):
|
||||
# Add Ticonderoga escort
|
||||
if self.heading >= 180:
|
||||
self.add_unit(
|
||||
CG_Ticonderoga,
|
||||
TICONDEROG,
|
||||
"USS Hué City",
|
||||
self.position.x + 2222,
|
||||
self.position.y - 3333,
|
||||
@ -64,7 +64,7 @@ class CarrierGroupGenerator(ShipGroupGenerator):
|
||||
)
|
||||
else:
|
||||
self.add_unit(
|
||||
CG_Ticonderoga,
|
||||
TICONDEROG,
|
||||
"USS Hué City",
|
||||
self.position.x - 3333,
|
||||
self.position.y + 2222,
|
||||
|
||||
@ -5,9 +5,9 @@ from typing import TYPE_CHECKING
|
||||
|
||||
|
||||
from dcs.ships import (
|
||||
Type_052C_Destroyer,
|
||||
Type_052B_Destroyer,
|
||||
Type_054A_Frigate,
|
||||
Type_052C,
|
||||
Type_052B,
|
||||
Type_054A,
|
||||
)
|
||||
|
||||
from game.factions.faction import Faction
|
||||
@ -30,14 +30,14 @@ class ChineseNavyGroupGenerator(ShipGroupGenerator):
|
||||
|
||||
if include_frigate:
|
||||
self.add_unit(
|
||||
Type_054A_Frigate,
|
||||
Type_054A,
|
||||
"FF1",
|
||||
self.position.x + 1200,
|
||||
self.position.y + 900,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
Type_054A_Frigate,
|
||||
Type_054A,
|
||||
"FF2",
|
||||
self.position.x + 1200,
|
||||
self.position.y - 900,
|
||||
@ -45,7 +45,7 @@ class ChineseNavyGroupGenerator(ShipGroupGenerator):
|
||||
)
|
||||
|
||||
if include_dd:
|
||||
dd_type = random.choice([Type_052C_Destroyer, Type_052B_Destroyer])
|
||||
dd_type = random.choice([Type_052C, Type_052B])
|
||||
self.add_unit(
|
||||
dd_type,
|
||||
"DD1",
|
||||
@ -69,5 +69,5 @@ class Type54GroupGenerator(DDGroupGenerator):
|
||||
self, game: Game, ground_object: TheaterGroundObject, faction: Faction
|
||||
):
|
||||
super(Type54GroupGenerator, self).__init__(
|
||||
game, ground_object, faction, Type_054A_Frigate
|
||||
game, ground_object, faction, Type_054A
|
||||
)
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
from __future__ import annotations
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, Type
|
||||
|
||||
from game.factions.faction import Faction
|
||||
from game.theater.theatergroundobject import TheaterGroundObject
|
||||
|
||||
from gen.sam.group_generator import ShipGroupGenerator
|
||||
from dcs.unittype import ShipType
|
||||
from dcs.ships import FFG_Oliver_Hazzard_Perry, DDG_Arleigh_Burke_IIa
|
||||
from dcs.ships import PERRY, USS_Arleigh_Burke_IIa
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from game.game import Game
|
||||
@ -18,7 +18,7 @@ class DDGroupGenerator(ShipGroupGenerator):
|
||||
game: Game,
|
||||
ground_object: TheaterGroundObject,
|
||||
faction: Faction,
|
||||
ddtype: ShipType,
|
||||
ddtype: Type[ShipType],
|
||||
):
|
||||
super(DDGroupGenerator, self).__init__(game, ground_object, faction)
|
||||
self.ddtype = ddtype
|
||||
@ -46,7 +46,7 @@ class OliverHazardPerryGroupGenerator(DDGroupGenerator):
|
||||
self, game: Game, ground_object: TheaterGroundObject, faction: Faction
|
||||
):
|
||||
super(OliverHazardPerryGroupGenerator, self).__init__(
|
||||
game, ground_object, faction, FFG_Oliver_Hazzard_Perry
|
||||
game, ground_object, faction, PERRY
|
||||
)
|
||||
|
||||
|
||||
@ -55,5 +55,5 @@ class ArleighBurkeGroupGenerator(DDGroupGenerator):
|
||||
self, game: Game, ground_object: TheaterGroundObject, faction: Faction
|
||||
):
|
||||
super(ArleighBurkeGroupGenerator, self).__init__(
|
||||
game, ground_object, faction, DDG_Arleigh_Burke_IIa
|
||||
game, ground_object, faction, USS_Arleigh_Burke_IIa
|
||||
)
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
from dcs.ships import FAC_La_Combattante_IIa
|
||||
from dcs.ships import La_Combattante_II
|
||||
|
||||
from game.factions.faction import Faction
|
||||
from game.theater import TheaterGroundObject
|
||||
@ -8,5 +8,5 @@ from gen.fleet.dd_group import DDGroupGenerator
|
||||
class LaCombattanteIIGroupGenerator(DDGroupGenerator):
|
||||
def __init__(self, game, ground_object: TheaterGroundObject, faction: Faction):
|
||||
super(LaCombattanteIIGroupGenerator, self).__init__(
|
||||
game, ground_object, faction, FAC_La_Combattante_IIa
|
||||
game, ground_object, faction, La_Combattante_II
|
||||
)
|
||||
|
||||
@ -3,13 +3,13 @@ import random
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from dcs.ships import (
|
||||
Corvette_1124_4_Grisha,
|
||||
Corvette_1241_1_Molniya,
|
||||
Frigate_11540_Neustrashimy,
|
||||
Frigate_1135M_Rezky,
|
||||
Cruiser_1164_Moskva,
|
||||
SSK_877V_Kilo,
|
||||
SSK_641B_Tango,
|
||||
ALBATROS,
|
||||
MOLNIYA,
|
||||
NEUSTRASH,
|
||||
REZKY,
|
||||
MOSCOW,
|
||||
KILO,
|
||||
SOM,
|
||||
)
|
||||
|
||||
from gen.fleet.dd_group import DDGroupGenerator
|
||||
@ -37,9 +37,7 @@ class RussianNavyGroupGenerator(ShipGroupGenerator):
|
||||
include_frigate = True
|
||||
|
||||
if include_frigate:
|
||||
frigate_type = random.choice(
|
||||
[Corvette_1124_4_Grisha, Corvette_1241_1_Molniya]
|
||||
)
|
||||
frigate_type = random.choice([ALBATROS, MOLNIYA])
|
||||
self.add_unit(
|
||||
frigate_type,
|
||||
"FF1",
|
||||
@ -56,7 +54,7 @@ class RussianNavyGroupGenerator(ShipGroupGenerator):
|
||||
)
|
||||
|
||||
if include_dd:
|
||||
dd_type = random.choice([Frigate_11540_Neustrashimy, Frigate_1135M_Rezky])
|
||||
dd_type = random.choice([NEUSTRASH, REZKY])
|
||||
self.add_unit(
|
||||
dd_type,
|
||||
"DD1",
|
||||
@ -76,7 +74,7 @@ class RussianNavyGroupGenerator(ShipGroupGenerator):
|
||||
# Only include the Moskva for now, the Pyotry Velikiy is an unkillable monster.
|
||||
# See https://github.com/dcs-liberation/dcs_liberation/issues/567
|
||||
self.add_unit(
|
||||
Cruiser_1164_Moskva,
|
||||
MOSCOW,
|
||||
"CC1",
|
||||
self.position.x,
|
||||
self.position.y,
|
||||
@ -91,7 +89,7 @@ class GrishaGroupGenerator(DDGroupGenerator):
|
||||
self, game: Game, ground_object: TheaterGroundObject, faction: Faction
|
||||
):
|
||||
super(GrishaGroupGenerator, self).__init__(
|
||||
game, ground_object, faction, Corvette_1124_4_Grisha
|
||||
game, ground_object, faction, ALBATROS
|
||||
)
|
||||
|
||||
|
||||
@ -100,7 +98,7 @@ class MolniyaGroupGenerator(DDGroupGenerator):
|
||||
self, game: Game, ground_object: TheaterGroundObject, faction: Faction
|
||||
):
|
||||
super(MolniyaGroupGenerator, self).__init__(
|
||||
game, ground_object, faction, Corvette_1241_1_Molniya
|
||||
game, ground_object, faction, MOLNIYA
|
||||
)
|
||||
|
||||
|
||||
@ -108,15 +106,11 @@ class KiloSubGroupGenerator(DDGroupGenerator):
|
||||
def __init__(
|
||||
self, game: Game, ground_object: TheaterGroundObject, faction: Faction
|
||||
):
|
||||
super(KiloSubGroupGenerator, self).__init__(
|
||||
game, ground_object, faction, SSK_877V_Kilo
|
||||
)
|
||||
super(KiloSubGroupGenerator, self).__init__(game, ground_object, faction, KILO)
|
||||
|
||||
|
||||
class TangoSubGroupGenerator(DDGroupGenerator):
|
||||
def __init__(
|
||||
self, game: Game, ground_object: TheaterGroundObject, faction: Faction
|
||||
):
|
||||
super(TangoSubGroupGenerator, self).__init__(
|
||||
game, ground_object, faction, SSK_641B_Tango
|
||||
)
|
||||
super(TangoSubGroupGenerator, self).__init__(game, ground_object, faction, SOM)
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import random
|
||||
|
||||
from dcs.ships import Boat_Schnellboot_type_S130
|
||||
from dcs.ships import Schnellboot_type_S130
|
||||
|
||||
from gen.sam.group_generator import ShipGroupGenerator
|
||||
|
||||
@ -10,7 +10,7 @@ class SchnellbootGroupGenerator(ShipGroupGenerator):
|
||||
|
||||
for i in range(random.randint(2, 4)):
|
||||
self.add_unit(
|
||||
Boat_Schnellboot_type_S130,
|
||||
Schnellboot_type_S130,
|
||||
"Schnellboot" + str(i),
|
||||
self.position.x + i * random.randint(100, 250),
|
||||
self.position.y + (random.randint(100, 200) - 100),
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import random
|
||||
|
||||
from dcs.ships import U_boat_VIIC_U_flak
|
||||
from dcs.ships import Uboat_VIIC
|
||||
|
||||
from gen.sam.group_generator import ShipGroupGenerator
|
||||
|
||||
@ -10,7 +10,7 @@ class UBoatGroupGenerator(ShipGroupGenerator):
|
||||
|
||||
for i in range(random.randint(1, 4)):
|
||||
self.add_unit(
|
||||
U_boat_VIIC_U_flak,
|
||||
Uboat_VIIC,
|
||||
"Uboat" + str(i),
|
||||
self.position.x + i * random.randint(100, 250),
|
||||
self.position.y + (random.randint(100, 200) - 100),
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import random
|
||||
|
||||
from dcs.ships import LS_Samuel_Chase, LST_Mk_II
|
||||
from dcs.ships import USS_Samuel_Chase, LST_Mk2
|
||||
|
||||
from gen.sam.group_generator import ShipGroupGenerator
|
||||
|
||||
@ -10,7 +10,7 @@ class WW2LSTGroupGenerator(ShipGroupGenerator):
|
||||
|
||||
# Add LS Samuel Chase
|
||||
self.add_unit(
|
||||
LS_Samuel_Chase,
|
||||
USS_Samuel_Chase,
|
||||
"SamuelChase",
|
||||
self.position.x,
|
||||
self.position.y,
|
||||
@ -19,7 +19,7 @@ class WW2LSTGroupGenerator(ShipGroupGenerator):
|
||||
|
||||
for i in range(1, random.randint(3, 4)):
|
||||
self.add_unit(
|
||||
LST_Mk_II,
|
||||
LST_Mk2,
|
||||
"LST" + str(i),
|
||||
self.position.x + i * random.randint(800, 1200),
|
||||
self.position.y,
|
||||
|
||||
@ -37,7 +37,7 @@ class ScudGenerator(GroupGenerator):
|
||||
|
||||
# Commander
|
||||
self.add_unit(
|
||||
Unarmed.LUV_UAZ_469_Jeep,
|
||||
Unarmed.UAZ_469,
|
||||
"Kubel#0",
|
||||
self.position.x - 35,
|
||||
self.position.y - 20,
|
||||
@ -46,7 +46,7 @@ class ScudGenerator(GroupGenerator):
|
||||
|
||||
# Shorad
|
||||
self.add_unit(
|
||||
AirDefence.SPAAA_ZSU_23_4_Shilka_Gun_Dish,
|
||||
AirDefence.ZSU_23_4_Shilka,
|
||||
"SHILKA#0",
|
||||
self.position.x - 55,
|
||||
self.position.y - 38,
|
||||
@ -54,7 +54,7 @@ class ScudGenerator(GroupGenerator):
|
||||
)
|
||||
|
||||
self.add_unit(
|
||||
AirDefence.SAM_SA_9_Strela_1_Gaskin_TEL,
|
||||
AirDefence.Strela_1_9P31,
|
||||
"STRELA#0",
|
||||
self.position.x + 200,
|
||||
self.position.y + 15,
|
||||
|
||||
@ -37,7 +37,7 @@ class V1GroupGenerator(GroupGenerator):
|
||||
|
||||
# Commander
|
||||
self.add_unit(
|
||||
Unarmed.LUV_Kubelwagen_82,
|
||||
Unarmed.Kubelwagen_82,
|
||||
"Kubel#0",
|
||||
self.position.x - 35,
|
||||
self.position.y - 20,
|
||||
@ -45,9 +45,7 @@ class V1GroupGenerator(GroupGenerator):
|
||||
)
|
||||
|
||||
# Self defense flak
|
||||
flak_unit = random.choice(
|
||||
[AirDefence.AAA_Flak_Vierling_38_Quad_20mm, AirDefence.AAA_Flak_38_20mm]
|
||||
)
|
||||
flak_unit = random.choice([AirDefence.Flak38, AirDefence.Flak30])
|
||||
|
||||
self.add_unit(
|
||||
flak_unit,
|
||||
@ -58,7 +56,7 @@ class V1GroupGenerator(GroupGenerator):
|
||||
)
|
||||
|
||||
self.add_unit(
|
||||
Unarmed.Truck_Opel_Blitz,
|
||||
Unarmed.Blitz_36_6700A,
|
||||
"Blitz#0",
|
||||
self.position.x + 200,
|
||||
self.position.y + 15,
|
||||
|
||||
@ -27,7 +27,7 @@ class BoforsGenerator(AirDefenseGroupGenerator):
|
||||
for j in range(grid_y):
|
||||
index = index + 1
|
||||
self.add_unit(
|
||||
AirDefence.AAA_Bofors_40mm,
|
||||
AirDefence.Bofors40,
|
||||
"AAA#" + str(index),
|
||||
self.position.x + spacing * i,
|
||||
self.position.y + spacing * j,
|
||||
|
||||
@ -8,12 +8,12 @@ from gen.sam.airdefensegroupgenerator import (
|
||||
)
|
||||
|
||||
GFLAK = [
|
||||
AirDefence.AAA_Flak_Vierling_38_Quad_20mm,
|
||||
AirDefence.AAA_8_8cm_Flak_18,
|
||||
AirDefence.AAA_8_8cm_Flak_36,
|
||||
AirDefence.AAA_8_8cm_Flak_37,
|
||||
AirDefence.AAA_8_8cm_Flak_41,
|
||||
AirDefence.AAA_Flak_38_20mm,
|
||||
AirDefence.Flak38,
|
||||
AirDefence.Flak18,
|
||||
AirDefence.Flak36,
|
||||
AirDefence.Flak37,
|
||||
AirDefence.Flak41,
|
||||
AirDefence.Flak30,
|
||||
]
|
||||
|
||||
|
||||
@ -53,7 +53,7 @@ class FlakGenerator(AirDefenseGroupGenerator):
|
||||
search_pos = self.get_circular_position(random.randint(2, 3), 80)
|
||||
for index, pos in enumerate(search_pos):
|
||||
self.add_unit(
|
||||
AirDefence.SL_Flakscheinwerfer_37,
|
||||
AirDefence.Flakscheinwerfer_37,
|
||||
"SearchLight#" + str(index),
|
||||
pos[0],
|
||||
pos[1],
|
||||
@ -62,14 +62,14 @@ class FlakGenerator(AirDefenseGroupGenerator):
|
||||
|
||||
# Support
|
||||
self.add_unit(
|
||||
AirDefence.PU_Maschinensatz_33,
|
||||
AirDefence.Maschinensatz_33,
|
||||
"MC33#",
|
||||
self.position.x - 20,
|
||||
self.position.y - 20,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
AirDefence.AAA_SP_Kdo_G_40,
|
||||
AirDefence.KDO_Mod40,
|
||||
"KDO#",
|
||||
self.position.x - 25,
|
||||
self.position.y - 20,
|
||||
@ -78,7 +78,7 @@ class FlakGenerator(AirDefenseGroupGenerator):
|
||||
|
||||
# Commander
|
||||
self.add_unit(
|
||||
Unarmed.LUV_Kubelwagen_82,
|
||||
Unarmed.Kubelwagen_82,
|
||||
"Kubel#",
|
||||
self.position.x - 35,
|
||||
self.position.y - 20,
|
||||
@ -89,7 +89,7 @@ class FlakGenerator(AirDefenseGroupGenerator):
|
||||
for i in range(int(max(1, grid_x / 2))):
|
||||
for j in range(int(max(1, grid_x / 2))):
|
||||
self.add_unit(
|
||||
Unarmed.Truck_Opel_Blitz,
|
||||
Unarmed.Blitz_36_6700A,
|
||||
"BLITZ#" + str(index),
|
||||
self.position.x + 125 + 15 * i + random.randint(1, 5),
|
||||
self.position.y + 15 * j + random.randint(1, 5),
|
||||
|
||||
@ -25,7 +25,7 @@ class Flak18Generator(AirDefenseGroupGenerator):
|
||||
for j in range(2):
|
||||
index = index + 1
|
||||
self.add_unit(
|
||||
AirDefence.AAA_8_8cm_Flak_18,
|
||||
AirDefence.Flak18,
|
||||
"AAA#" + str(index),
|
||||
self.position.x + spacing * i + random.randint(1, 5),
|
||||
self.position.y + spacing * j + random.randint(1, 5),
|
||||
@ -34,7 +34,7 @@ class Flak18Generator(AirDefenseGroupGenerator):
|
||||
|
||||
# Add a commander truck
|
||||
self.add_unit(
|
||||
Unarmed.Truck_Opel_Blitz,
|
||||
Unarmed.Blitz_36_6700A,
|
||||
"Blitz#",
|
||||
self.position.x - 35,
|
||||
self.position.y - 20,
|
||||
|
||||
@ -21,7 +21,7 @@ class AllyWW2FlakGenerator(AirDefenseGroupGenerator):
|
||||
positions = self.get_circular_position(4, launcher_distance=30, coverage=360)
|
||||
for i, position in enumerate(positions):
|
||||
self.add_unit(
|
||||
AirDefence.AAA_QF_3_7,
|
||||
AirDefence.QF_37_AA,
|
||||
"AA#" + str(i),
|
||||
position[0],
|
||||
position[1],
|
||||
@ -31,7 +31,7 @@ class AllyWW2FlakGenerator(AirDefenseGroupGenerator):
|
||||
positions = self.get_circular_position(8, launcher_distance=60, coverage=360)
|
||||
for i, position in enumerate(positions):
|
||||
self.add_unit(
|
||||
AirDefence.AAA_M1_37mm,
|
||||
AirDefence.M1_37mm,
|
||||
"AA#" + str(4 + i),
|
||||
position[0],
|
||||
position[1],
|
||||
@ -41,7 +41,7 @@ class AllyWW2FlakGenerator(AirDefenseGroupGenerator):
|
||||
positions = self.get_circular_position(8, launcher_distance=90, coverage=360)
|
||||
for i, position in enumerate(positions):
|
||||
self.add_unit(
|
||||
AirDefence.AAA_M45_Quadmount_HB_12_7mm,
|
||||
AirDefence.M45_Quadmount,
|
||||
"AA#" + str(12 + i),
|
||||
position[0],
|
||||
position[1],
|
||||
@ -50,28 +50,28 @@ class AllyWW2FlakGenerator(AirDefenseGroupGenerator):
|
||||
|
||||
# Add a commander truck
|
||||
self.add_unit(
|
||||
Unarmed.Car_Willys_Jeep,
|
||||
Unarmed.Willys_MB,
|
||||
"CMD#1",
|
||||
self.position.x,
|
||||
self.position.y - 20,
|
||||
random.randint(0, 360),
|
||||
)
|
||||
self.add_unit(
|
||||
Unarmed.Carrier_M30_Cargo,
|
||||
Unarmed.M30_CC,
|
||||
"LOG#1",
|
||||
self.position.x,
|
||||
self.position.y + 20,
|
||||
random.randint(0, 360),
|
||||
)
|
||||
self.add_unit(
|
||||
Unarmed.Tractor_M4_Hi_Speed,
|
||||
Unarmed.M4_Tractor,
|
||||
"LOG#2",
|
||||
self.position.x + 20,
|
||||
self.position.y,
|
||||
random.randint(0, 360),
|
||||
)
|
||||
self.add_unit(
|
||||
Unarmed.Truck_Bedford,
|
||||
Unarmed.Bedford_MWD,
|
||||
"LOG#3",
|
||||
self.position.x - 20,
|
||||
self.position.y,
|
||||
|
||||
@ -21,7 +21,7 @@ class ZSU57Generator(AirDefenseGroupGenerator):
|
||||
)
|
||||
for i, position in enumerate(positions):
|
||||
self.add_unit(
|
||||
AirDefence.SPAAA_ZSU_57_2,
|
||||
AirDefence.ZSU_57_2,
|
||||
"SPAA#" + str(i),
|
||||
position[0],
|
||||
position[1],
|
||||
|
||||
@ -27,7 +27,7 @@ class ZU23InsurgentGenerator(AirDefenseGroupGenerator):
|
||||
for j in range(grid_y):
|
||||
index = index + 1
|
||||
self.add_unit(
|
||||
AirDefence.AAA_ZU_23_Insurgent_Closed_Emplacement,
|
||||
AirDefence.ZU_23_Closed_Insurgent,
|
||||
"AAA#" + str(index),
|
||||
self.position.x + spacing * i,
|
||||
self.position.y + spacing * j,
|
||||
|
||||
@ -29,7 +29,7 @@ class EarlyColdWarFlakGenerator(AirDefenseGroupGenerator):
|
||||
for j in range(2):
|
||||
index = index + 1
|
||||
self.add_unit(
|
||||
AirDefence.AAA_8_8cm_Flak_18,
|
||||
AirDefence.Flak18,
|
||||
"AAA#" + str(index),
|
||||
self.position.x + spacing * i + random.randint(1, 5),
|
||||
self.position.y + spacing * j + random.randint(1, 5),
|
||||
@ -38,14 +38,14 @@ class EarlyColdWarFlakGenerator(AirDefenseGroupGenerator):
|
||||
|
||||
# Medium range guns
|
||||
self.add_unit(
|
||||
AirDefence.AAA_S_60_57mm,
|
||||
AirDefence.S_60_Type59_Artillery,
|
||||
"SHO#1",
|
||||
self.position.x - 40,
|
||||
self.position.y - 40,
|
||||
self.heading + 180,
|
||||
),
|
||||
self.add_unit(
|
||||
AirDefence.AAA_S_60_57mm,
|
||||
AirDefence.S_60_Type59_Artillery,
|
||||
"SHO#2",
|
||||
self.position.x + spacing * 2 + 40,
|
||||
self.position.y + spacing + 40,
|
||||
@ -54,14 +54,14 @@ class EarlyColdWarFlakGenerator(AirDefenseGroupGenerator):
|
||||
|
||||
# Short range guns
|
||||
self.add_unit(
|
||||
AirDefence.AAA_ZU_23_Closed_Emplacement,
|
||||
AirDefence.ZU_23_Emplacement_Closed,
|
||||
"SHO#3",
|
||||
self.position.x - 80,
|
||||
self.position.y - 40,
|
||||
self.heading + 180,
|
||||
),
|
||||
self.add_unit(
|
||||
AirDefence.AAA_ZU_23_Closed_Emplacement,
|
||||
AirDefence.ZU_23_Emplacement_Closed,
|
||||
"SHO#4",
|
||||
self.position.x + spacing * 2 + 80,
|
||||
self.position.y + spacing + 40,
|
||||
@ -70,7 +70,7 @@ class EarlyColdWarFlakGenerator(AirDefenseGroupGenerator):
|
||||
|
||||
# Add a truck
|
||||
self.add_unit(
|
||||
Unarmed.Truck_KAMAZ_43101,
|
||||
Unarmed.KAMAZ_Truck,
|
||||
"Truck#",
|
||||
self.position.x - 60,
|
||||
self.position.y - 20,
|
||||
@ -102,7 +102,7 @@ class ColdWarFlakGenerator(AirDefenseGroupGenerator):
|
||||
for j in range(2):
|
||||
index = index + 1
|
||||
self.add_unit(
|
||||
AirDefence.AAA_8_8cm_Flak_18,
|
||||
AirDefence.Flak18,
|
||||
"AAA#" + str(index),
|
||||
self.position.x + spacing * i + random.randint(1, 5),
|
||||
self.position.y + spacing * j + random.randint(1, 5),
|
||||
@ -111,14 +111,14 @@ class ColdWarFlakGenerator(AirDefenseGroupGenerator):
|
||||
|
||||
# Medium range guns
|
||||
self.add_unit(
|
||||
AirDefence.AAA_S_60_57mm,
|
||||
AirDefence.S_60_Type59_Artillery,
|
||||
"SHO#1",
|
||||
self.position.x - 40,
|
||||
self.position.y - 40,
|
||||
self.heading + 180,
|
||||
),
|
||||
self.add_unit(
|
||||
AirDefence.AAA_S_60_57mm,
|
||||
AirDefence.S_60_Type59_Artillery,
|
||||
"SHO#2",
|
||||
self.position.x + spacing * 2 + 40,
|
||||
self.position.y + spacing + 40,
|
||||
@ -127,14 +127,14 @@ class ColdWarFlakGenerator(AirDefenseGroupGenerator):
|
||||
|
||||
# Short range guns
|
||||
self.add_unit(
|
||||
AirDefence.AAA_ZU_23_Closed_Emplacement,
|
||||
AirDefence.ZU_23_Emplacement_Closed,
|
||||
"SHO#3",
|
||||
self.position.x - 80,
|
||||
self.position.y - 40,
|
||||
self.heading + 180,
|
||||
),
|
||||
self.add_unit(
|
||||
AirDefence.AAA_ZU_23_Closed_Emplacement,
|
||||
AirDefence.ZU_23_Emplacement_Closed,
|
||||
"SHO#4",
|
||||
self.position.x + spacing * 2 + 80,
|
||||
self.position.y + spacing + 40,
|
||||
@ -143,7 +143,7 @@ class ColdWarFlakGenerator(AirDefenseGroupGenerator):
|
||||
|
||||
# Add a P19 Radar for EWR
|
||||
self.add_unit(
|
||||
AirDefence.SAM_P19_Flat_Face_SR__SA_2_3,
|
||||
AirDefence.P_19_s_125_sr,
|
||||
"SR#0",
|
||||
self.position.x - 60,
|
||||
self.position.y - 20,
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
from typing import Type
|
||||
|
||||
from dcs.vehicles import AirDefence
|
||||
from dcs.unittype import VehicleType
|
||||
|
||||
@ -5,7 +7,7 @@ from gen.sam.group_generator import GroupGenerator
|
||||
|
||||
|
||||
class EwrGenerator(GroupGenerator):
|
||||
unit_type: VehicleType
|
||||
unit_type: Type[VehicleType]
|
||||
|
||||
@classmethod
|
||||
def name(cls) -> str:
|
||||
@ -25,13 +27,13 @@ class EwrGenerator(GroupGenerator):
|
||||
class BoxSpringGenerator(EwrGenerator):
|
||||
"""1L13 "Box Spring" EWR."""
|
||||
|
||||
unit_type = AirDefence.EWR_1L13
|
||||
unit_type = AirDefence._1L13_EWR
|
||||
|
||||
|
||||
class TallRackGenerator(EwrGenerator):
|
||||
"""55G6 "Tall Rack" EWR."""
|
||||
|
||||
unit_type = AirDefence.EWR_55G6
|
||||
unit_type = AirDefence._55G6_EWR
|
||||
|
||||
|
||||
class DogEarGenerator(EwrGenerator):
|
||||
@ -40,7 +42,7 @@ class DogEarGenerator(EwrGenerator):
|
||||
This is the SA-8 search radar, but used as an early warning radar.
|
||||
"""
|
||||
|
||||
unit_type = AirDefence.MCC_SR_Sborka_Dog_Ear_SR
|
||||
unit_type = AirDefence.Dog_Ear_radar
|
||||
|
||||
|
||||
class RolandEwrGenerator(EwrGenerator):
|
||||
@ -49,7 +51,7 @@ class RolandEwrGenerator(EwrGenerator):
|
||||
This is the Roland search radar, but used as an early warning radar.
|
||||
"""
|
||||
|
||||
unit_type = AirDefence.SAM_Roland_EWR
|
||||
unit_type = AirDefence.Roland_Radar
|
||||
|
||||
|
||||
class FlatFaceGenerator(EwrGenerator):
|
||||
@ -58,7 +60,7 @@ class FlatFaceGenerator(EwrGenerator):
|
||||
This is the SA-3 search radar, but used as an early warning radar.
|
||||
"""
|
||||
|
||||
unit_type = AirDefence.SAM_P19_Flat_Face_SR__SA_2_3
|
||||
unit_type = AirDefence.P_19_s_125_sr
|
||||
|
||||
|
||||
class PatriotEwrGenerator(EwrGenerator):
|
||||
@ -67,7 +69,7 @@ class PatriotEwrGenerator(EwrGenerator):
|
||||
This is the Patriot search/track radar, but used as an early warning radar.
|
||||
"""
|
||||
|
||||
unit_type = AirDefence.SAM_Patriot_STR
|
||||
unit_type = AirDefence.Patriot_str
|
||||
|
||||
|
||||
class BigBirdGenerator(EwrGenerator):
|
||||
@ -76,7 +78,7 @@ class BigBirdGenerator(EwrGenerator):
|
||||
This is the SA-10 track radar, but used as an early warning radar.
|
||||
"""
|
||||
|
||||
unit_type = AirDefence.SAM_SA_10_S_300_Grumble_Big_Bird_SR
|
||||
unit_type = AirDefence.S_300PS_64H6E_sr
|
||||
|
||||
|
||||
class SnowDriftGenerator(EwrGenerator):
|
||||
@ -85,7 +87,7 @@ class SnowDriftGenerator(EwrGenerator):
|
||||
This is the SA-11 search radar, but used as an early warning radar.
|
||||
"""
|
||||
|
||||
unit_type = AirDefence.SAM_SA_11_Buk_Gadfly_Snow_Drift_SR
|
||||
unit_type = AirDefence.SA_11_Buk_SR_9S18M1
|
||||
|
||||
|
||||
class StraightFlushGenerator(EwrGenerator):
|
||||
@ -94,7 +96,7 @@ class StraightFlushGenerator(EwrGenerator):
|
||||
This is the SA-6 search/track radar, but used as an early warning radar.
|
||||
"""
|
||||
|
||||
unit_type = AirDefence.SAM_SA_6_Kub_Straight_Flush_STR
|
||||
unit_type = AirDefence.Kub_1S91_str
|
||||
|
||||
|
||||
class HawkEwrGenerator(EwrGenerator):
|
||||
@ -103,4 +105,4 @@ class HawkEwrGenerator(EwrGenerator):
|
||||
This is the Hawk search radar, but used as an early warning radar.
|
||||
"""
|
||||
|
||||
unit_type = AirDefence.SAM_Hawk_SR__AN_MPQ_50
|
||||
unit_type = AirDefence.Hawk_sr
|
||||
|
||||
@ -18,7 +18,7 @@ class FreyaGenerator(AirDefenseGroupGenerator):
|
||||
|
||||
# TODO : would be better with the Concrete structure that is supposed to protect it
|
||||
self.add_unit(
|
||||
AirDefence.EWR_FuMG_401_Freya_LZ,
|
||||
AirDefence.FuMG_401,
|
||||
"EWR#1",
|
||||
self.position.x,
|
||||
self.position.y,
|
||||
@ -28,7 +28,7 @@ class FreyaGenerator(AirDefenseGroupGenerator):
|
||||
positions = self.get_circular_position(4, launcher_distance=50, coverage=360)
|
||||
for i, position in enumerate(positions):
|
||||
self.add_unit(
|
||||
AirDefence.AAA_Flak_Vierling_38_Quad_20mm,
|
||||
AirDefence.Flak38,
|
||||
"AA#" + str(i),
|
||||
position[0],
|
||||
position[1],
|
||||
@ -38,7 +38,7 @@ class FreyaGenerator(AirDefenseGroupGenerator):
|
||||
positions = self.get_circular_position(4, launcher_distance=100, coverage=360)
|
||||
for i, position in enumerate(positions):
|
||||
self.add_unit(
|
||||
AirDefence.AAA_8_8cm_Flak_18,
|
||||
AirDefence.Flak18,
|
||||
"AA#" + str(4 + i),
|
||||
position[0],
|
||||
position[1],
|
||||
@ -47,58 +47,58 @@ class FreyaGenerator(AirDefenseGroupGenerator):
|
||||
|
||||
# Command/Logi
|
||||
self.add_unit(
|
||||
Unarmed.LUV_Kubelwagen_82,
|
||||
Unarmed.Kubelwagen_82,
|
||||
"Kubel#1",
|
||||
self.position.x - 20,
|
||||
self.position.y - 20,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
Unarmed.Carrier_Sd_Kfz_7_Tractor,
|
||||
Unarmed.Sd_Kfz_7,
|
||||
"Sdkfz#1",
|
||||
self.position.x + 20,
|
||||
self.position.y + 22,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
Unarmed.LUV_Kettenrad,
|
||||
Unarmed.Sd_Kfz_2,
|
||||
"Sdkfz#2",
|
||||
self.position.x - 22,
|
||||
self.position.y + 20,
|
||||
self.heading,
|
||||
)
|
||||
|
||||
# PU_Maschinensatz_33 and Kdo.g 40 Telemeter
|
||||
# Maschinensatz_33 and Kdo.g 40 Telemeter
|
||||
self.add_unit(
|
||||
AirDefence.PU_Maschinensatz_33,
|
||||
AirDefence.Maschinensatz_33,
|
||||
"Energy#1",
|
||||
self.position.x + 20,
|
||||
self.position.y - 20,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
AirDefence.AAA_SP_Kdo_G_40,
|
||||
AirDefence.KDO_Mod40,
|
||||
"Telemeter#1",
|
||||
self.position.x + 20,
|
||||
self.position.y - 10,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
Infantry.Infantry_Mauser_98,
|
||||
Infantry.Soldier_mauser98,
|
||||
"Inf#1",
|
||||
self.position.x + 20,
|
||||
self.position.y - 14,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
Infantry.Infantry_Mauser_98,
|
||||
Infantry.Soldier_mauser98,
|
||||
"Inf#2",
|
||||
self.position.x + 20,
|
||||
self.position.y - 22,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
Infantry.Infantry_Mauser_98,
|
||||
Infantry.Soldier_mauser98,
|
||||
"Inf#3",
|
||||
self.position.x + 20,
|
||||
self.position.y - 24,
|
||||
|
||||
@ -20,7 +20,7 @@ class AvengerGenerator(AirDefenseGroupGenerator):
|
||||
num_launchers = random.randint(2, 3)
|
||||
|
||||
self.add_unit(
|
||||
Unarmed.Truck_M818_6x6,
|
||||
Unarmed.M_818,
|
||||
"TRUCK",
|
||||
self.position.x,
|
||||
self.position.y,
|
||||
@ -31,7 +31,7 @@ class AvengerGenerator(AirDefenseGroupGenerator):
|
||||
)
|
||||
for i, position in enumerate(positions):
|
||||
self.add_unit(
|
||||
AirDefence.SAM_Avenger__Stinger,
|
||||
AirDefence.M1097_Avenger,
|
||||
"SPAA#" + str(i),
|
||||
position[0],
|
||||
position[1],
|
||||
|
||||
@ -20,7 +20,7 @@ class ChaparralGenerator(AirDefenseGroupGenerator):
|
||||
num_launchers = random.randint(2, 4)
|
||||
|
||||
self.add_unit(
|
||||
Unarmed.Truck_M818_6x6,
|
||||
Unarmed.M_818,
|
||||
"TRUCK",
|
||||
self.position.x,
|
||||
self.position.y,
|
||||
@ -31,7 +31,7 @@ class ChaparralGenerator(AirDefenseGroupGenerator):
|
||||
)
|
||||
for i, position in enumerate(positions):
|
||||
self.add_unit(
|
||||
AirDefence.SAM_Chaparral_M48,
|
||||
AirDefence.M48_Chaparral,
|
||||
"SPAA#" + str(i),
|
||||
position[0],
|
||||
position[1],
|
||||
|
||||
@ -18,7 +18,7 @@ class GepardGenerator(AirDefenseGroupGenerator):
|
||||
|
||||
def generate(self):
|
||||
self.add_unit(
|
||||
AirDefence.SPAAA_Gepard,
|
||||
AirDefence.Gepard,
|
||||
"SPAAA",
|
||||
self.position.x,
|
||||
self.position.y,
|
||||
@ -26,14 +26,14 @@ class GepardGenerator(AirDefenseGroupGenerator):
|
||||
)
|
||||
if random.randint(0, 1) == 1:
|
||||
self.add_unit(
|
||||
AirDefence.SPAAA_Gepard,
|
||||
AirDefence.Gepard,
|
||||
"SPAAA2",
|
||||
self.position.x,
|
||||
self.position.y,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
Unarmed.Truck_M818_6x6,
|
||||
Unarmed.M_818,
|
||||
"TRUCK",
|
||||
self.position.x + 80,
|
||||
self.position.y,
|
||||
|
||||
@ -2,7 +2,6 @@ import random
|
||||
from typing import Dict, Iterable, List, Optional, Sequence, Set, Type
|
||||
|
||||
from dcs.unitgroup import VehicleGroup
|
||||
from dcs.vehicles import AirDefence
|
||||
|
||||
from game import Game
|
||||
from game.factions.faction import Faction
|
||||
@ -104,41 +103,6 @@ SAM_MAP: Dict[str, Type[AirDefenseGroupGenerator]] = {
|
||||
}
|
||||
|
||||
|
||||
SAM_PRICES = {
|
||||
AirDefence.SAM_Hawk_Platoon_Command_Post__PCP: 35,
|
||||
AirDefence.AAA_ZU_23_Emplacement: 10,
|
||||
AirDefence.AAA_ZU_23_Closed_Emplacement: 10,
|
||||
AirDefence.SPAAA_ZU_23_2_Mounted_Ural_375: 10,
|
||||
AirDefence.SPAAA_ZU_23_2_Insurgent_Mounted_Ural_375: 10,
|
||||
AirDefence.AAA_ZU_23_Insurgent_Closed_Emplacement: 10,
|
||||
AirDefence.AAA_ZU_23_Insurgent_Emplacement: 10,
|
||||
AirDefence.SPAAA_ZSU_23_4_Shilka_Gun_Dish: 10,
|
||||
AirDefence.SPAAA_Vulcan_M163: 15,
|
||||
AirDefence.SAM_Linebacker___Bradley_M6: 20,
|
||||
AirDefence.SAM_Rapier_LN: 20,
|
||||
AirDefence.SAM_Avenger__Stinger: 22,
|
||||
AirDefence.SPAAA_Gepard: 24,
|
||||
AirDefence.SAM_Roland_ADS: 40,
|
||||
AirDefence.SAM_Patriot_LN: 85,
|
||||
AirDefence.SAM_Patriot_EPP_III: 85,
|
||||
AirDefence.SAM_Chaparral_M48: 25,
|
||||
AirDefence.AAA_Bofors_40mm: 15,
|
||||
AirDefence.AAA_8_8cm_Flak_36: 15,
|
||||
AirDefence.SAM_SA_2_S_75_Guideline_LN: 30,
|
||||
AirDefence.SAM_SA_3_S_125_Goa_LN: 35,
|
||||
AirDefence.SAM_SA_6_Kub_Gainful_TEL: 45,
|
||||
AirDefence.SAM_SA_8_Osa_Gecko_TEL: 30,
|
||||
AirDefence.SAM_SA_9_Strela_1_Gaskin_TEL: 25,
|
||||
AirDefence.SAM_SA_10_S_300_Grumble_TEL_C: 80,
|
||||
AirDefence.SAM_SA_10_S_300_Grumble_C2: 80,
|
||||
AirDefence.SAM_SA_11_Buk_Gadfly_Fire_Dome_TEL: 60,
|
||||
AirDefence.SAM_SA_13_Strela_10M3_Gopher_TEL: 30,
|
||||
AirDefence.SAM_SA_15_Tor_Gauntlet: 40,
|
||||
AirDefence.SAM_SA_19_Tunguska_Grison: 35,
|
||||
AirDefence.HQ_7_Self_Propelled_LN: 35,
|
||||
}
|
||||
|
||||
|
||||
def get_faction_possible_sams_generator(
|
||||
faction: Faction,
|
||||
) -> List[Type[AirDefenseGroupGenerator]]:
|
||||
|
||||
@ -19,21 +19,21 @@ class HawkGenerator(AirDefenseGroupGenerator):
|
||||
|
||||
def generate(self):
|
||||
self.add_unit(
|
||||
AirDefence.SAM_Hawk_SR__AN_MPQ_50,
|
||||
AirDefence.Hawk_sr,
|
||||
"SR",
|
||||
self.position.x + 20,
|
||||
self.position.y,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
AirDefence.SAM_Hawk_Platoon_Command_Post__PCP,
|
||||
AirDefence.Hawk_pcp,
|
||||
"PCP",
|
||||
self.position.x,
|
||||
self.position.y,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
AirDefence.SAM_Hawk_TR__AN_MPQ_46,
|
||||
AirDefence.Hawk_tr,
|
||||
"TR",
|
||||
self.position.x + 40,
|
||||
self.position.y,
|
||||
@ -44,7 +44,7 @@ class HawkGenerator(AirDefenseGroupGenerator):
|
||||
aa_group = self.add_auxiliary_group("AA")
|
||||
self.add_unit_to_group(
|
||||
aa_group,
|
||||
AirDefence.SPAAA_Vulcan_M163,
|
||||
AirDefence.Vulcan,
|
||||
"AAA",
|
||||
self.position + Point(20, 30),
|
||||
self.heading,
|
||||
@ -57,7 +57,7 @@ class HawkGenerator(AirDefenseGroupGenerator):
|
||||
|
||||
for i, position in enumerate(positions):
|
||||
self.add_unit(
|
||||
AirDefence.SAM_Hawk_LN_M192,
|
||||
AirDefence.Hawk_ln,
|
||||
"LN#" + str(i),
|
||||
position[0],
|
||||
position[1],
|
||||
|
||||
@ -19,14 +19,14 @@ class HQ7Generator(AirDefenseGroupGenerator):
|
||||
|
||||
def generate(self):
|
||||
self.add_unit(
|
||||
AirDefence.HQ_7_Self_Propelled_STR,
|
||||
AirDefence.HQ_7_STR_SP,
|
||||
"STR",
|
||||
self.position.x,
|
||||
self.position.y,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
AirDefence.HQ_7_Self_Propelled_LN,
|
||||
AirDefence.HQ_7_LN_SP,
|
||||
"LN",
|
||||
self.position.x + 20,
|
||||
self.position.y,
|
||||
@ -37,14 +37,14 @@ class HQ7Generator(AirDefenseGroupGenerator):
|
||||
aa_group = self.add_auxiliary_group("AA")
|
||||
self.add_unit_to_group(
|
||||
aa_group,
|
||||
AirDefence.SPAAA_ZU_23_2_Mounted_Ural_375,
|
||||
AirDefence.Ural_375_ZU_23,
|
||||
"AAA1",
|
||||
self.position + Point(20, 30),
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit_to_group(
|
||||
aa_group,
|
||||
AirDefence.SPAAA_ZU_23_2_Mounted_Ural_375,
|
||||
AirDefence.Ural_375_ZU_23,
|
||||
"AAA2",
|
||||
self.position - Point(20, 30),
|
||||
self.heading,
|
||||
@ -57,7 +57,7 @@ class HQ7Generator(AirDefenseGroupGenerator):
|
||||
)
|
||||
for i, position in enumerate(positions):
|
||||
self.add_unit(
|
||||
AirDefence.HQ_7_Self_Propelled_LN,
|
||||
AirDefence.HQ_7_LN_SP,
|
||||
"LN#" + str(i),
|
||||
position[0],
|
||||
position[1],
|
||||
|
||||
@ -20,7 +20,7 @@ class LinebackerGenerator(AirDefenseGroupGenerator):
|
||||
num_launchers = random.randint(2, 4)
|
||||
|
||||
self.add_unit(
|
||||
Unarmed.Truck_M818_6x6,
|
||||
Unarmed.M_818,
|
||||
"TRUCK",
|
||||
self.position.x,
|
||||
self.position.y,
|
||||
@ -31,7 +31,7 @@ class LinebackerGenerator(AirDefenseGroupGenerator):
|
||||
)
|
||||
for i, position in enumerate(positions):
|
||||
self.add_unit(
|
||||
AirDefence.SAM_Linebacker___Bradley_M6,
|
||||
AirDefence.M6_Linebacker,
|
||||
"M6#" + str(i),
|
||||
position[0],
|
||||
position[1],
|
||||
|
||||
@ -20,35 +20,35 @@ class PatriotGenerator(AirDefenseGroupGenerator):
|
||||
def generate(self):
|
||||
# Command Post
|
||||
self.add_unit(
|
||||
AirDefence.SAM_Patriot_STR,
|
||||
AirDefence.Patriot_str,
|
||||
"STR",
|
||||
self.position.x + 30,
|
||||
self.position.y + 30,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
AirDefence.SAM_Patriot_CR__AMG_AN_MRC_137,
|
||||
AirDefence.Patriot_AMG,
|
||||
"MRC",
|
||||
self.position.x,
|
||||
self.position.y,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
AirDefence.SAM_Patriot_ECS,
|
||||
AirDefence.Patriot_ECS,
|
||||
"MSQ",
|
||||
self.position.x + 30,
|
||||
self.position.y,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
AirDefence.SAM_Patriot_C2_ICC,
|
||||
AirDefence.Patriot_cp,
|
||||
"ICC",
|
||||
self.position.x + 60,
|
||||
self.position.y,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
AirDefence.SAM_Patriot_EPP_III,
|
||||
AirDefence.Patriot_EPP,
|
||||
"EPP",
|
||||
self.position.x,
|
||||
self.position.y + 30,
|
||||
@ -61,7 +61,7 @@ class PatriotGenerator(AirDefenseGroupGenerator):
|
||||
)
|
||||
for i, position in enumerate(positions):
|
||||
self.add_unit(
|
||||
AirDefence.SAM_Patriot_LN,
|
||||
AirDefence.Patriot_ln,
|
||||
"LN#" + str(i),
|
||||
position[0],
|
||||
position[1],
|
||||
@ -77,7 +77,7 @@ class PatriotGenerator(AirDefenseGroupGenerator):
|
||||
for i, (x, y, heading) in enumerate(positions):
|
||||
self.add_unit_to_group(
|
||||
aa_group,
|
||||
AirDefence.SPAAA_Vulcan_M163,
|
||||
AirDefence.Vulcan,
|
||||
f"SPAAA#{i}",
|
||||
Point(x, y),
|
||||
heading,
|
||||
|
||||
@ -18,14 +18,14 @@ class RapierGenerator(AirDefenseGroupGenerator):
|
||||
|
||||
def generate(self):
|
||||
self.add_unit(
|
||||
AirDefence.SAM_Rapier_Blindfire_TR,
|
||||
AirDefence.Rapier_fsa_blindfire_radar,
|
||||
"BT",
|
||||
self.position.x,
|
||||
self.position.y,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
AirDefence.SAM_Rapier_Tracker,
|
||||
AirDefence.Rapier_fsa_optical_tracker_unit,
|
||||
"OT",
|
||||
self.position.x + 20,
|
||||
self.position.y,
|
||||
@ -39,7 +39,7 @@ class RapierGenerator(AirDefenseGroupGenerator):
|
||||
|
||||
for i, position in enumerate(positions):
|
||||
self.add_unit(
|
||||
AirDefence.SAM_Rapier_LN,
|
||||
AirDefence.Rapier_fsa_launcher,
|
||||
"LN#" + str(i),
|
||||
position[0],
|
||||
position[1],
|
||||
|
||||
@ -16,21 +16,21 @@ class RolandGenerator(AirDefenseGroupGenerator):
|
||||
|
||||
def generate(self):
|
||||
self.add_unit(
|
||||
AirDefence.SAM_Roland_EWR,
|
||||
AirDefence.Roland_Radar,
|
||||
"EWR",
|
||||
self.position.x + 40,
|
||||
self.position.y,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
AirDefence.SAM_Roland_ADS,
|
||||
AirDefence.Roland_ADS,
|
||||
"ADS",
|
||||
self.position.x,
|
||||
self.position.y,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
Unarmed.Truck_M818_6x6,
|
||||
Unarmed.M_818,
|
||||
"TRUCK",
|
||||
self.position.x + 80,
|
||||
self.position.y,
|
||||
|
||||
@ -22,13 +22,13 @@ class SA10Generator(AirDefenseGroupGenerator):
|
||||
|
||||
def __init__(self, game: Game, ground_object: SamGroundObject):
|
||||
super().__init__(game, ground_object)
|
||||
self.sr1 = AirDefence.SAM_SA_10_S_300_Grumble_Clam_Shell_SR
|
||||
self.sr2 = AirDefence.SAM_SA_10_S_300_Grumble_Big_Bird_SR
|
||||
self.cp = AirDefence.SAM_SA_10_S_300_Grumble_C2
|
||||
self.tr1 = AirDefence.SAM_SA_10_S_300_Grumble_Flap_Lid_TR
|
||||
self.tr2 = AirDefence.SAM_SA_10_S_300_Grumble_Flap_Lid_TR
|
||||
self.ln1 = AirDefence.SAM_SA_10_S_300_Grumble_TEL_C
|
||||
self.ln2 = AirDefence.SAM_SA_10_S_300_Grumble_TEL_D
|
||||
self.sr1 = AirDefence.S_300PS_40B6MD_sr
|
||||
self.sr2 = AirDefence.S_300PS_64H6E_sr
|
||||
self.cp = AirDefence.S_300PS_54K6_cp
|
||||
self.tr1 = AirDefence.S_300PS_40B6M_tr
|
||||
self.tr2 = AirDefence.S_300PS_40B6M_tr
|
||||
self.ln1 = AirDefence.S_300PS_5P85C_ln
|
||||
self.ln2 = AirDefence.S_300PS_5P85D_ln
|
||||
|
||||
def generate(self):
|
||||
# Search Radar
|
||||
@ -84,7 +84,7 @@ class SA10Generator(AirDefenseGroupGenerator):
|
||||
for i, (x, y, heading) in enumerate(positions):
|
||||
self.add_unit_to_group(
|
||||
aa_group,
|
||||
AirDefence.SPAAA_ZSU_23_4_Shilka_Gun_Dish,
|
||||
AirDefence.ZSU_23_4_Shilka,
|
||||
f"AA#{i}",
|
||||
Point(x, y),
|
||||
heading,
|
||||
@ -109,7 +109,7 @@ class Tier2SA10Generator(SA10Generator):
|
||||
for i, (x, y, heading) in enumerate(positions):
|
||||
self.add_unit_to_group(
|
||||
pd_group,
|
||||
AirDefence.SAM_SA_15_Tor_Gauntlet,
|
||||
AirDefence.Tor_9A331,
|
||||
f"PD#{i}",
|
||||
Point(x, y),
|
||||
heading,
|
||||
@ -131,7 +131,7 @@ class Tier3SA10Generator(SA10Generator):
|
||||
for i, (x, y, heading) in enumerate(positions):
|
||||
self.add_unit_to_group(
|
||||
aa_group,
|
||||
AirDefence.SAM_SA_19_Tunguska_Grison,
|
||||
AirDefence._2S6_Tunguska,
|
||||
f"AA#{i}",
|
||||
Point(x, y),
|
||||
heading,
|
||||
@ -146,7 +146,7 @@ class Tier3SA10Generator(SA10Generator):
|
||||
for i, (x, y, heading) in enumerate(positions):
|
||||
self.add_unit_to_group(
|
||||
pd_group,
|
||||
AirDefence.SAM_SA_15_Tor_Gauntlet,
|
||||
AirDefence.Tor_9A331,
|
||||
f"PD#{i}",
|
||||
Point(x, y),
|
||||
heading,
|
||||
|
||||
@ -18,14 +18,14 @@ class SA11Generator(AirDefenseGroupGenerator):
|
||||
|
||||
def generate(self):
|
||||
self.add_unit(
|
||||
AirDefence.SAM_SA_11_Buk_Gadfly_Snow_Drift_SR,
|
||||
AirDefence.SA_11_Buk_SR_9S18M1,
|
||||
"SR",
|
||||
self.position.x + 20,
|
||||
self.position.y,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
AirDefence.SAM_SA_11_Buk_Gadfly_C2,
|
||||
AirDefence.SA_11_Buk_CC_9S470M1,
|
||||
"CC",
|
||||
self.position.x,
|
||||
self.position.y,
|
||||
@ -39,7 +39,7 @@ class SA11Generator(AirDefenseGroupGenerator):
|
||||
|
||||
for i, position in enumerate(positions):
|
||||
self.add_unit(
|
||||
AirDefence.SAM_SA_11_Buk_Gadfly_Fire_Dome_TEL,
|
||||
AirDefence.SA_11_Buk_LN_9A310M1,
|
||||
"LN#" + str(i),
|
||||
position[0],
|
||||
position[1],
|
||||
|
||||
@ -18,14 +18,14 @@ class SA13Generator(AirDefenseGroupGenerator):
|
||||
|
||||
def generate(self):
|
||||
self.add_unit(
|
||||
Unarmed.LUV_UAZ_469_Jeep,
|
||||
Unarmed.UAZ_469,
|
||||
"UAZ",
|
||||
self.position.x,
|
||||
self.position.y,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
Unarmed.Truck_KAMAZ_43101,
|
||||
Unarmed.KAMAZ_Truck,
|
||||
"TRUCK",
|
||||
self.position.x + 40,
|
||||
self.position.y,
|
||||
@ -38,7 +38,7 @@ class SA13Generator(AirDefenseGroupGenerator):
|
||||
)
|
||||
for i, position in enumerate(positions):
|
||||
self.add_unit(
|
||||
AirDefence.SAM_SA_13_Strela_10M3_Gopher_TEL,
|
||||
AirDefence.Strela_10M3,
|
||||
"LN#" + str(i),
|
||||
position[0],
|
||||
position[1],
|
||||
|
||||
@ -16,21 +16,21 @@ class SA15Generator(AirDefenseGroupGenerator):
|
||||
|
||||
def generate(self):
|
||||
self.add_unit(
|
||||
AirDefence.SAM_SA_15_Tor_Gauntlet,
|
||||
AirDefence.Tor_9A331,
|
||||
"ADS",
|
||||
self.position.x,
|
||||
self.position.y,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
Unarmed.LUV_UAZ_469_Jeep,
|
||||
Unarmed.UAZ_469,
|
||||
"EWR",
|
||||
self.position.x + 40,
|
||||
self.position.y,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
Unarmed.Truck_KAMAZ_43101,
|
||||
Unarmed.KAMAZ_Truck,
|
||||
"TRUCK",
|
||||
self.position.x + 80,
|
||||
self.position.y,
|
||||
|
||||
@ -17,14 +17,14 @@ class SA17Generator(AirDefenseGroupGenerator):
|
||||
|
||||
def generate(self):
|
||||
self.add_unit(
|
||||
AirDefence.SAM_SA_11_Buk_Gadfly_Snow_Drift_SR,
|
||||
AirDefence.SA_11_Buk_SR_9S18M1,
|
||||
"SR",
|
||||
self.position.x + 20,
|
||||
self.position.y,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
AirDefence.SAM_SA_11_Buk_Gadfly_C2,
|
||||
AirDefence.SA_11_Buk_CC_9S470M1,
|
||||
"CC",
|
||||
self.position.x,
|
||||
self.position.y,
|
||||
|
||||
@ -21,7 +21,7 @@ class SA19Generator(AirDefenseGroupGenerator):
|
||||
|
||||
if num_launchers == 1:
|
||||
self.add_unit(
|
||||
AirDefence.SAM_SA_19_Tunguska_Grison,
|
||||
AirDefence._2S6_Tunguska,
|
||||
"LN#0",
|
||||
self.position.x,
|
||||
self.position.y,
|
||||
@ -33,7 +33,7 @@ class SA19Generator(AirDefenseGroupGenerator):
|
||||
)
|
||||
for i, position in enumerate(positions):
|
||||
self.add_unit(
|
||||
AirDefence.SAM_SA_19_Tunguska_Grison,
|
||||
AirDefence._2S6_Tunguska,
|
||||
"LN#" + str(i),
|
||||
position[0],
|
||||
position[1],
|
||||
|
||||
@ -18,14 +18,14 @@ class SA2Generator(AirDefenseGroupGenerator):
|
||||
|
||||
def generate(self):
|
||||
self.add_unit(
|
||||
AirDefence.SAM_P19_Flat_Face_SR__SA_2_3,
|
||||
AirDefence.P_19_s_125_sr,
|
||||
"SR",
|
||||
self.position.x,
|
||||
self.position.y,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
AirDefence.SAM_SA_2_S_75_Fan_Song_TR,
|
||||
AirDefence.SNR_75V,
|
||||
"TR",
|
||||
self.position.x + 20,
|
||||
self.position.y,
|
||||
@ -39,7 +39,7 @@ class SA2Generator(AirDefenseGroupGenerator):
|
||||
|
||||
for i, position in enumerate(positions):
|
||||
self.add_unit(
|
||||
AirDefence.SAM_SA_2_S_75_Guideline_LN,
|
||||
AirDefence.S_75M_Volhov,
|
||||
"LN#" + str(i),
|
||||
position[0],
|
||||
position[1],
|
||||
|
||||
@ -18,14 +18,14 @@ class SA3Generator(AirDefenseGroupGenerator):
|
||||
|
||||
def generate(self):
|
||||
self.add_unit(
|
||||
AirDefence.SAM_P19_Flat_Face_SR__SA_2_3,
|
||||
AirDefence.P_19_s_125_sr,
|
||||
"SR",
|
||||
self.position.x,
|
||||
self.position.y,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
AirDefence.SAM_SA_3_S_125_Low_Blow_TR,
|
||||
AirDefence.Snr_s_125_tr,
|
||||
"TR",
|
||||
self.position.x + 20,
|
||||
self.position.y,
|
||||
@ -39,7 +39,7 @@ class SA3Generator(AirDefenseGroupGenerator):
|
||||
|
||||
for i, position in enumerate(positions):
|
||||
self.add_unit(
|
||||
AirDefence.SAM_SA_3_S_125_Goa_LN,
|
||||
AirDefence._5p73_s_125_ln,
|
||||
"LN#" + str(i),
|
||||
position[0],
|
||||
position[1],
|
||||
|
||||
@ -18,7 +18,7 @@ class SA6Generator(AirDefenseGroupGenerator):
|
||||
|
||||
def generate(self):
|
||||
self.add_unit(
|
||||
AirDefence.SAM_SA_6_Kub_Straight_Flush_STR,
|
||||
AirDefence.Kub_1S91_str,
|
||||
"STR",
|
||||
self.position.x,
|
||||
self.position.y,
|
||||
@ -32,7 +32,7 @@ class SA6Generator(AirDefenseGroupGenerator):
|
||||
|
||||
for i, position in enumerate(positions):
|
||||
self.add_unit(
|
||||
AirDefence.SAM_SA_6_Kub_Gainful_TEL,
|
||||
AirDefence.Kub_2P25_ln,
|
||||
"LN#" + str(i),
|
||||
position[0],
|
||||
position[1],
|
||||
|
||||
@ -16,14 +16,14 @@ class SA8Generator(AirDefenseGroupGenerator):
|
||||
|
||||
def generate(self):
|
||||
self.add_unit(
|
||||
AirDefence.SAM_SA_8_Osa_Gecko_TEL,
|
||||
AirDefence.Osa_9A33_ln,
|
||||
"OSA",
|
||||
self.position.x,
|
||||
self.position.y,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
AirDefence.SAM_SA_8_Osa_LD_9T217,
|
||||
AirDefence.SA_8_Osa_LD_9T217,
|
||||
"LD",
|
||||
self.position.x + 20,
|
||||
self.position.y,
|
||||
|
||||
@ -18,14 +18,14 @@ class SA9Generator(AirDefenseGroupGenerator):
|
||||
|
||||
def generate(self):
|
||||
self.add_unit(
|
||||
Unarmed.LUV_UAZ_469_Jeep,
|
||||
Unarmed.UAZ_469,
|
||||
"UAZ",
|
||||
self.position.x,
|
||||
self.position.y,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
Unarmed.Truck_KAMAZ_43101,
|
||||
Unarmed.KAMAZ_Truck,
|
||||
"TRUCK",
|
||||
self.position.x + 40,
|
||||
self.position.y,
|
||||
@ -38,7 +38,7 @@ class SA9Generator(AirDefenseGroupGenerator):
|
||||
)
|
||||
for i, position in enumerate(positions):
|
||||
self.add_unit(
|
||||
AirDefence.SAM_SA_9_Strela_1_Gaskin_TEL,
|
||||
AirDefence.Strela_1_9P31,
|
||||
"LN#" + str(i),
|
||||
position[0],
|
||||
position[1],
|
||||
|
||||
@ -18,7 +18,7 @@ class VulcanGenerator(AirDefenseGroupGenerator):
|
||||
|
||||
def generate(self):
|
||||
self.add_unit(
|
||||
AirDefence.SPAAA_Vulcan_M163,
|
||||
AirDefence.Vulcan,
|
||||
"SPAAA",
|
||||
self.position.x,
|
||||
self.position.y,
|
||||
@ -26,14 +26,14 @@ class VulcanGenerator(AirDefenseGroupGenerator):
|
||||
)
|
||||
if random.randint(0, 1) == 1:
|
||||
self.add_unit(
|
||||
AirDefence.SPAAA_Vulcan_M163,
|
||||
AirDefence.Vulcan,
|
||||
"SPAAA2",
|
||||
self.position.x,
|
||||
self.position.y,
|
||||
self.heading,
|
||||
)
|
||||
self.add_unit(
|
||||
Unarmed.Truck_M818_6x6,
|
||||
Unarmed.M_818,
|
||||
"TRUCK",
|
||||
self.position.x + 80,
|
||||
self.position.y,
|
||||
|
||||
@ -24,7 +24,7 @@ class ZSU23Generator(AirDefenseGroupGenerator):
|
||||
)
|
||||
for i, position in enumerate(positions):
|
||||
self.add_unit(
|
||||
AirDefence.SPAAA_ZSU_23_4_Shilka_Gun_Dish,
|
||||
AirDefence.ZSU_23_4_Shilka,
|
||||
"SPAA#" + str(i),
|
||||
position[0],
|
||||
position[1],
|
||||
|
||||
@ -27,7 +27,7 @@ class ZU23Generator(AirDefenseGroupGenerator):
|
||||
for j in range(grid_y):
|
||||
index = index + 1
|
||||
self.add_unit(
|
||||
AirDefence.AAA_ZU_23_Closed_Emplacement,
|
||||
AirDefence.ZU_23_Emplacement_Closed,
|
||||
"AAA#" + str(index),
|
||||
self.position.x + spacing * i,
|
||||
self.position.y + spacing * j,
|
||||
|
||||
@ -24,7 +24,7 @@ class ZU23UralGenerator(AirDefenseGroupGenerator):
|
||||
)
|
||||
for i, position in enumerate(positions):
|
||||
self.add_unit(
|
||||
AirDefence.SPAAA_ZU_23_2_Mounted_Ural_375,
|
||||
AirDefence.Ural_375_ZU_23,
|
||||
"SPAA#" + str(i),
|
||||
position[0],
|
||||
position[1],
|
||||
|
||||
@ -24,7 +24,7 @@ class ZU23UralInsurgentGenerator(AirDefenseGroupGenerator):
|
||||
)
|
||||
for i, position in enumerate(positions):
|
||||
self.add_unit(
|
||||
AirDefence.SPAAA_ZU_23_2_Insurgent_Mounted_Ural_375,
|
||||
AirDefence.Ural_375_ZU_23_Insurgent,
|
||||
"SPAA#" + str(i),
|
||||
position[0],
|
||||
position[1],
|
||||
|
||||
@ -82,10 +82,10 @@
|
||||
"LHA_1_Tarawa"
|
||||
],
|
||||
"destroyers": [
|
||||
"FFG_Oliver_Hazzard_Perry"
|
||||
"PERRY"
|
||||
],
|
||||
"cruisers": [
|
||||
"CG_Ticonderoga"
|
||||
"TICONDEROG"
|
||||
],
|
||||
"requirements": {},
|
||||
"carrier_names": [
|
||||
|
||||
@ -44,7 +44,7 @@
|
||||
"LHA_1_Tarawa"
|
||||
],
|
||||
"destroyers": [
|
||||
"DDG_Arleigh_Burke_IIa"
|
||||
"USS_Arleigh_Burke_IIa"
|
||||
],
|
||||
"cruisers": [],
|
||||
"requirements": {},
|
||||
|
||||
@ -45,7 +45,7 @@
|
||||
"LHA_1_Tarawa"
|
||||
],
|
||||
"destroyers": [
|
||||
"DDG_Arleigh_Burke_IIa"
|
||||
"USS_Arleigh_Burke_IIa"
|
||||
],
|
||||
"cruisers": [],
|
||||
"requirements": {
|
||||
|
||||
@ -55,10 +55,10 @@
|
||||
"LHA_1_Tarawa"
|
||||
],
|
||||
"destroyers": [
|
||||
"DDG_Arleigh_Burke_IIa"
|
||||
"USS_Arleigh_Burke_IIa"
|
||||
],
|
||||
"cruisers": [
|
||||
"CG_Ticonderoga"
|
||||
"TICONDEROG"
|
||||
],
|
||||
"requirements": {},
|
||||
"carrier_names": [
|
||||
|
||||
@ -56,10 +56,10 @@
|
||||
"LHA_1_Tarawa"
|
||||
],
|
||||
"destroyers": [
|
||||
"DDG_Arleigh_Burke_IIa"
|
||||
"USS_Arleigh_Burke_IIa"
|
||||
],
|
||||
"cruisers": [
|
||||
"CG_Ticonderoga"
|
||||
"TICONDEROG"
|
||||
],
|
||||
"requirements": {
|
||||
"Community A-4E": "https://heclak.github.io/community-a4e-c/"
|
||||
|
||||
@ -57,10 +57,10 @@
|
||||
"LHA_1_Tarawa"
|
||||
],
|
||||
"destroyers": [
|
||||
"DDG_Arleigh_Burke_IIa"
|
||||
"USS_Arleigh_Burke_IIa"
|
||||
],
|
||||
"cruisers": [
|
||||
"CG_Ticonderoga"
|
||||
"TICONDEROG"
|
||||
],
|
||||
"requirements": {
|
||||
"MB-339A/PAN by Frecce Tricolori Virtuali": "http://www.freccetricolorivirtuali.net/",
|
||||
|
||||
@ -78,10 +78,10 @@
|
||||
"LHA_1_Tarawa"
|
||||
],
|
||||
"destroyers": [
|
||||
"DDG_Arleigh_Burke_IIa"
|
||||
"USS_Arleigh_Burke_IIa"
|
||||
],
|
||||
"cruisers": [
|
||||
"CG_Ticonderoga"
|
||||
"TICONDEROG"
|
||||
],
|
||||
"requirements": {},
|
||||
"carrier_names": [
|
||||
|
||||
@ -47,10 +47,10 @@
|
||||
"aircraft_carrier": [],
|
||||
"helicopter_carrier": [],
|
||||
"destroyers": [
|
||||
"DDG_Arleigh_Burke_IIa"
|
||||
"USS_Arleigh_Burke_IIa"
|
||||
],
|
||||
"cruisers": [
|
||||
"CG_Ticonderoga"
|
||||
"TICONDEROG"
|
||||
],
|
||||
"requirements": {},
|
||||
"carrier_names": [],
|
||||
|
||||
@ -48,10 +48,10 @@
|
||||
"aircraft_carrier": [],
|
||||
"helicopter_carrier": [],
|
||||
"destroyers": [
|
||||
"DDG_Arleigh_Burke_IIa"
|
||||
"USS_Arleigh_Burke_IIa"
|
||||
],
|
||||
"cruisers": [
|
||||
"CG_Ticonderoga"
|
||||
"TICONDEROG"
|
||||
],
|
||||
"requirements": {
|
||||
"C-130J-30 Super Hercules Mod by Anubis": "https://forums.eagle.ru/topic/252075-dcs-super-hercules-mod-by-anubis/"
|
||||
|
||||
@ -85,11 +85,11 @@
|
||||
"Wudang Shan"
|
||||
],
|
||||
"destroyers": [
|
||||
"Type_052B_Destroyer",
|
||||
"Type_052C_Destroyer"
|
||||
"Type_052B",
|
||||
"Type_052C"
|
||||
],
|
||||
"cruiser": [
|
||||
"Type_054A_Frigate"
|
||||
"Type_054A"
|
||||
],
|
||||
"requirements": {},
|
||||
"navy_generators": [
|
||||
|
||||
@ -54,10 +54,10 @@
|
||||
"LHA_1_Tarawa"
|
||||
],
|
||||
"destroyers": [
|
||||
"DDG_Arleigh_Burke_IIa"
|
||||
"USS_Arleigh_Burke_IIa"
|
||||
],
|
||||
"cruisers": [
|
||||
"CG_Ticonderoga"
|
||||
"TICONDEROG"
|
||||
],
|
||||
"requirements": {
|
||||
"frenchpack V3.5": "https://forums.eagle.ru/showthread.php?t=279974"
|
||||
|
||||
@ -53,11 +53,11 @@
|
||||
"LHA_1_Tarawa"
|
||||
],
|
||||
"destroyers": [
|
||||
"DDG_Arleigh_Burke_IIa",
|
||||
"FFG_Oliver_Hazzard_Perry"
|
||||
"USS_Arleigh_Burke_IIa",
|
||||
"PERRY"
|
||||
],
|
||||
"cruisers": [
|
||||
"CG_Ticonderoga"
|
||||
"TICONDEROG"
|
||||
],
|
||||
"requirements": {},
|
||||
"carrier_names": [],
|
||||
|
||||
@ -61,10 +61,10 @@
|
||||
"LHA_1_Tarawa"
|
||||
],
|
||||
"destroyers": [
|
||||
"DDG_Arleigh_Burke_IIa"
|
||||
"USS_Arleigh_Burke_IIa"
|
||||
],
|
||||
"cruisers": [
|
||||
"CG_Ticonderoga"
|
||||
"TICONDEROG"
|
||||
],
|
||||
"requirements": {
|
||||
"frenchpack V3.5": "https://forums.eagle.ru/showthread.php?t=279974"
|
||||
|
||||
@ -57,7 +57,7 @@
|
||||
"helicopter_carrier": [],
|
||||
"destroyers": [],
|
||||
"cruisers": [
|
||||
"CG_Ticonderoga"
|
||||
"TICONDEROG"
|
||||
],
|
||||
"requirements": {},
|
||||
"carrier_names": [],
|
||||
|
||||
@ -50,10 +50,10 @@
|
||||
"aircraft_carrier": [],
|
||||
"helicopter_carrier": [],
|
||||
"destroyers": [
|
||||
"FFG_Oliver_Hazzard_Perry"
|
||||
"PERRY"
|
||||
],
|
||||
"cruisers": [
|
||||
"CG_Ticonderoga"
|
||||
"TICONDEROG"
|
||||
],
|
||||
"requirements": {},
|
||||
"carrier_names": [],
|
||||
|
||||
@ -64,7 +64,7 @@
|
||||
"helicopter_carrier": [],
|
||||
"helicopter_carrier_names": [],
|
||||
"destroyers": [
|
||||
"Frigate_1135M_Rezky"
|
||||
"REZKY"
|
||||
],
|
||||
"cruisers": [],
|
||||
"requirements": {},
|
||||
|
||||
@ -59,10 +59,10 @@
|
||||
"helicopter_carrier": [],
|
||||
"helicopter_carrier_names": [],
|
||||
"destroyers": [
|
||||
"Frigate_1135M_Rezky"
|
||||
"REZKY"
|
||||
],
|
||||
"cruisers": [
|
||||
"Corvette_1241_1_Molniya"
|
||||
"MOLNIYA"
|
||||
],
|
||||
"requirements": {},
|
||||
"carrier_names": [],
|
||||
|
||||
@ -68,10 +68,10 @@
|
||||
"helicopter_carrier": [],
|
||||
"helicopter_carrier_names": [],
|
||||
"destroyers": [
|
||||
"Frigate_1135M_Rezky"
|
||||
"REZKY"
|
||||
],
|
||||
"cruisers": [
|
||||
"Corvette_1241_1_Molniya"
|
||||
"MOLNIYA"
|
||||
],
|
||||
"requirements": {},
|
||||
"carrier_names": [],
|
||||
|
||||
@ -47,10 +47,10 @@
|
||||
"LHA_1_Tarawa"
|
||||
],
|
||||
"destroyers": [
|
||||
"FFG_Oliver_Hazzard_Perry"
|
||||
"PERRY"
|
||||
],
|
||||
"cruisers": [
|
||||
"CG_Ticonderoga"
|
||||
"TICONDEROG"
|
||||
],
|
||||
"requirements": {},
|
||||
"carrier_names": [],
|
||||
|
||||
@ -48,10 +48,10 @@
|
||||
"LHA_1_Tarawa"
|
||||
],
|
||||
"destroyers": [
|
||||
"FFG_Oliver_Hazzard_Perry"
|
||||
"PERRY"
|
||||
],
|
||||
"cruisers": [
|
||||
"CG_Ticonderoga"
|
||||
"TICONDEROG"
|
||||
],
|
||||
"requirements": {
|
||||
"MB-339A/PAN by Frecce Tricolori Virtuali": "http://www.freccetricolorivirtuali.net/"
|
||||
|
||||
@ -54,10 +54,10 @@
|
||||
"LHA_1_Tarawa"
|
||||
],
|
||||
"destroyers": [
|
||||
"DDG_Arleigh_Burke_IIa"
|
||||
"USS_Arleigh_Burke_IIa"
|
||||
],
|
||||
"cruisers": [
|
||||
"CG_Ticonderoga"
|
||||
"TICONDEROG"
|
||||
],
|
||||
"requirements": {},
|
||||
"carrier_names": [],
|
||||
|
||||
@ -60,10 +60,10 @@
|
||||
],
|
||||
"missiles_group_count": 1,
|
||||
"destroyers": [
|
||||
"Frigate_1135M_Rezky"
|
||||
"REZKY"
|
||||
],
|
||||
"cruisers": [
|
||||
"Corvette_1241_1_Molniya"
|
||||
"MOLNIYA"
|
||||
],
|
||||
"requirements": {},
|
||||
"carrier_names": [],
|
||||
|
||||
@ -103,13 +103,13 @@
|
||||
"Wudang Shan"
|
||||
],
|
||||
"destroyers": [
|
||||
"Frigate_1135M_Rezky",
|
||||
"Type_052B_Destroyer",
|
||||
"Type_052C_Destroyer"
|
||||
"REZKY",
|
||||
"Type_052B",
|
||||
"Type_052C"
|
||||
],
|
||||
"cruiser": [
|
||||
"Corvette_1241_1_Molniya",
|
||||
"Type_054A_Frigate"
|
||||
"MOLNIYA",
|
||||
"Type_054A"
|
||||
],
|
||||
"requirements": {},
|
||||
"navy_generators": [
|
||||
|
||||
@ -97,13 +97,13 @@
|
||||
"Mitrofan Moskalenko"
|
||||
],
|
||||
"destroyers": [
|
||||
"Frigate_1135M_Rezky",
|
||||
"Type_052B_Destroyer",
|
||||
"Type_052C_Destroyer"
|
||||
"REZKY",
|
||||
"Type_052B",
|
||||
"Type_052C"
|
||||
],
|
||||
"cruisers": [
|
||||
"Corvette_1241_1_Molniya",
|
||||
"Type_054A_Frigate"
|
||||
"MOLNIYA",
|
||||
"Type_054A"
|
||||
],
|
||||
"requirements": {},
|
||||
"carrier_names": [
|
||||
|
||||
@ -79,10 +79,10 @@
|
||||
"helicopter_carrier": [],
|
||||
"helicopter_carrier_names": [],
|
||||
"destroyers": [
|
||||
"Frigate_1135M_Rezky"
|
||||
"REZKY"
|
||||
],
|
||||
"cruisers": [
|
||||
"Corvette_1241_1_Molniya"
|
||||
"MOLNIYA"
|
||||
],
|
||||
"requirements": {},
|
||||
"carrier_names": [
|
||||
|
||||
@ -82,10 +82,10 @@
|
||||
"helicopter_carrier": [],
|
||||
"helicopter_carrier_names": [],
|
||||
"destroyers": [
|
||||
"Frigate_1135M_Rezky"
|
||||
"REZKY"
|
||||
],
|
||||
"cruisers": [
|
||||
"Corvette_1241_1_Molniya"
|
||||
"MOLNIYA"
|
||||
],
|
||||
"requirements": {},
|
||||
"carrier_names": [
|
||||
|
||||
@ -79,10 +79,10 @@
|
||||
"helicopter_carrier": [],
|
||||
"helicopter_carrier_names": [],
|
||||
"destroyers": [
|
||||
"Frigate_1135M_Rezky"
|
||||
"REZKY"
|
||||
],
|
||||
"cruisers": [
|
||||
"Corvette_1241_1_Molniya"
|
||||
"MOLNIYA"
|
||||
],
|
||||
"requirements": {
|
||||
"High Digit SAMs": "https://github.com/Auranis/HighDigitSAMs/releases"
|
||||
|
||||
@ -78,10 +78,10 @@
|
||||
"helicopter_carrier": [],
|
||||
"helicopter_carrier_names": [],
|
||||
"destroyers": [
|
||||
"Frigate_1135M_Rezky"
|
||||
"REZKY"
|
||||
],
|
||||
"cruisers": [
|
||||
"Corvette_1241_1_Molniya"
|
||||
"MOLNIYA"
|
||||
],
|
||||
"requirements": {
|
||||
"SU-57 Felon By CubanAce Simulations": "https://www.digitalcombatsimulator.com/fr/files/2539621/"
|
||||
|
||||
@ -50,10 +50,10 @@
|
||||
"LHA_1_Tarawa"
|
||||
],
|
||||
"destroyers": [
|
||||
"FFG_Oliver_Hazzard_Perry"
|
||||
"PERRY"
|
||||
],
|
||||
"cruisers": [
|
||||
"CG_Ticonderoga"
|
||||
"TICONDEROG"
|
||||
],
|
||||
"requirements": {},
|
||||
"carrier_names": [
|
||||
|
||||
@ -56,10 +56,10 @@
|
||||
"LHA_1_Tarawa"
|
||||
],
|
||||
"destroyers": [
|
||||
"FFG_Oliver_Hazzard_Perry"
|
||||
"PERRY"
|
||||
],
|
||||
"cruisers": [
|
||||
"CG_Ticonderoga"
|
||||
"TICONDEROG"
|
||||
],
|
||||
"requirements": {},
|
||||
"carrier_names": [],
|
||||
|
||||
@ -76,11 +76,11 @@
|
||||
"LHA_1_Tarawa"
|
||||
],
|
||||
"destroyers": [
|
||||
"FFG_Oliver_Hazzard_Perry",
|
||||
"DDG_Arleigh_Burke_IIa"
|
||||
"PERRY",
|
||||
"USS_Arleigh_Burke_IIa"
|
||||
],
|
||||
"cruisers": [
|
||||
"CG_Ticonderoga"
|
||||
"TICONDEROG"
|
||||
],
|
||||
"requirements": {},
|
||||
"carrier_names": [
|
||||
|
||||
@ -78,10 +78,10 @@
|
||||
"LHA_1_Tarawa"
|
||||
],
|
||||
"destroyers": [
|
||||
"DDG_Arleigh_Burke_IIa"
|
||||
"USS_Arleigh_Burke_IIa"
|
||||
],
|
||||
"cruisers": [
|
||||
"CG_Ticonderoga"
|
||||
"TICONDEROG"
|
||||
],
|
||||
"requirements": {},
|
||||
"carrier_names": [
|
||||
|
||||
@ -78,10 +78,10 @@
|
||||
"LHA_1_Tarawa"
|
||||
],
|
||||
"destroyers": [
|
||||
"DDG_Arleigh_Burke_IIa"
|
||||
"USS_Arleigh_Burke_IIa"
|
||||
],
|
||||
"cruisers": [
|
||||
"CG_Ticonderoga"
|
||||
"TICONDEROG"
|
||||
],
|
||||
"requirements": {
|
||||
"C-130J-30 Super Hercules Mod by Anubis": "https://forums.eagle.ru/topic/252075-dcs-super-hercules-mod-by-anubis/"
|
||||
|
||||
@ -74,10 +74,10 @@
|
||||
"LHA_1_Tarawa"
|
||||
],
|
||||
"destroyers": [
|
||||
"DDG_Arleigh_Burke_IIa"
|
||||
"USS_Arleigh_Burke_IIa"
|
||||
],
|
||||
"cruisers": [
|
||||
"CG_Ticonderoga"
|
||||
"TICONDEROG"
|
||||
],
|
||||
"carrier_names": [
|
||||
"CVN-71 Theodore Roosevelt",
|
||||
|
||||
@ -52,10 +52,10 @@
|
||||
"LHA_1_Tarawa"
|
||||
],
|
||||
"destroyers": [
|
||||
"FFG_Oliver_Hazzard_Perry"
|
||||
"PERRY"
|
||||
],
|
||||
"cruisers": [
|
||||
"CG_Ticonderoga"
|
||||
"TICONDEROG"
|
||||
],
|
||||
"carrier_names": [
|
||||
"CVN-71 Theodore Roosevelt",
|
||||
|
||||
@ -38,7 +38,7 @@
|
||||
"SPH_M109_Paladin_155mm"
|
||||
],
|
||||
"logistics_units": [
|
||||
"Truck_M818_6x6"
|
||||
"M_818"
|
||||
],
|
||||
"infantry_units": [
|
||||
"Infantry_M4",
|
||||
@ -57,11 +57,11 @@
|
||||
"LHA_1_Tarawa"
|
||||
],
|
||||
"destroyers": [
|
||||
"FFG_Oliver_Hazzard_Perry",
|
||||
"DDG_Arleigh_Burke_IIa"
|
||||
"PERRY",
|
||||
"USS_Arleigh_Burke_IIa"
|
||||
],
|
||||
"cruisers": [
|
||||
"CG_Ticonderoga"
|
||||
"TICONDEROG"
|
||||
],
|
||||
"requirements": {"mod": "Some mod is required"},
|
||||
"carrier_names": [
|
||||
|
||||
@ -40,7 +40,7 @@
|
||||
"SPH_M109_Paladin_155mm"
|
||||
],
|
||||
"logistics_units": [
|
||||
"Truck_M818_6x6"
|
||||
"M_818"
|
||||
],
|
||||
"infantry_units": [
|
||||
"Infantry_M4",
|
||||
@ -59,11 +59,11 @@
|
||||
"LHA_1_Tarawa"
|
||||
],
|
||||
"destroyers": [
|
||||
"FFG_Oliver_Hazzard_Perry",
|
||||
"DDG_Arleigh_Burke_IIa"
|
||||
"PERRY",
|
||||
"USS_Arleigh_Burke_IIa"
|
||||
],
|
||||
"cruisers": [
|
||||
"CG_Ticonderoga"
|
||||
"TICONDEROG"
|
||||
],
|
||||
"requirements": {"mod": "Some mod is required"},
|
||||
"carrier_names": [
|
||||
|
||||
@ -25,9 +25,9 @@ from dcs.planes import (
|
||||
from dcs.ships import (
|
||||
CVN_74_John_C__Stennis,
|
||||
LHA_1_Tarawa,
|
||||
FFG_Oliver_Hazzard_Perry,
|
||||
DDG_Arleigh_Burke_IIa,
|
||||
CG_Ticonderoga,
|
||||
PERRY,
|
||||
USS_Arleigh_Burke_IIa,
|
||||
TICONDEROG,
|
||||
)
|
||||
from dcs.vehicles import Armor, Unarmed, Infantry, Artillery
|
||||
|
||||
@ -88,7 +88,7 @@ class TestFactionLoader(unittest.TestCase):
|
||||
self.assertIn(Artillery.MLRS_M270_227mm, faction.artillery_units)
|
||||
self.assertIn(Artillery.SPH_M109_Paladin_155mm, faction.artillery_units)
|
||||
|
||||
self.assertIn(Unarmed.Truck_M818_6x6, faction.logistics_units)
|
||||
self.assertIn(Unarmed.M_818, faction.logistics_units)
|
||||
|
||||
self.assertIn(Infantry.Infantry_M4, faction.infantry_units)
|
||||
self.assertIn(Infantry.Infantry_M249, faction.infantry_units)
|
||||
@ -99,9 +99,9 @@ class TestFactionLoader(unittest.TestCase):
|
||||
|
||||
self.assertIn(CVN_74_John_C__Stennis, faction.aircraft_carrier)
|
||||
self.assertIn(LHA_1_Tarawa, faction.helicopter_carrier)
|
||||
self.assertIn(FFG_Oliver_Hazzard_Perry, faction.destroyers)
|
||||
self.assertIn(DDG_Arleigh_Burke_IIa, faction.destroyers)
|
||||
self.assertIn(CG_Ticonderoga, faction.cruisers)
|
||||
self.assertIn(PERRY, faction.destroyers)
|
||||
self.assertIn(USS_Arleigh_Burke_IIa, faction.destroyers)
|
||||
self.assertIn(TICONDEROG, faction.cruisers)
|
||||
|
||||
self.assertIn("mod", faction.requirements.keys())
|
||||
self.assertIn("Some mod is required", faction.requirements.values())
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user