Adapt to DCS update.

This commit is contained in:
Dan Albert 2021-06-17 01:27:40 -07:00
parent edd0b90576
commit 4c3ac0af91
92 changed files with 457 additions and 521 deletions

View File

@ -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,
]

View File

@ -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

View File

@ -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,
}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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,
)

View File

@ -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,

View File

@ -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,

View File

@ -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
)

View File

@ -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
)

View File

@ -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
)

View File

@ -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)

View File

@ -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),

View File

@ -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),

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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),

View File

@ -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,

View File

@ -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,

View File

@ -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],

View File

@ -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,

View File

@ -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,

View File

@ -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

View File

@ -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,

View File

@ -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],

View File

@ -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],

View File

@ -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,

View File

@ -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]]:

View File

@ -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],

View File

@ -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],

View File

@ -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],

View File

@ -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,

View File

@ -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],

View File

@ -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,

View File

@ -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,

View File

@ -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],

View File

@ -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],

View File

@ -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,

View File

@ -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,

View File

@ -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],

View File

@ -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],

View File

@ -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],

View File

@ -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],

View File

@ -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,

View File

@ -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],

View File

@ -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,

View File

@ -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],

View File

@ -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,

View File

@ -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],

View File

@ -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],

View File

@ -82,10 +82,10 @@
"LHA_1_Tarawa"
],
"destroyers": [
"FFG_Oliver_Hazzard_Perry"
"PERRY"
],
"cruisers": [
"CG_Ticonderoga"
"TICONDEROG"
],
"requirements": {},
"carrier_names": [

View File

@ -44,7 +44,7 @@
"LHA_1_Tarawa"
],
"destroyers": [
"DDG_Arleigh_Burke_IIa"
"USS_Arleigh_Burke_IIa"
],
"cruisers": [],
"requirements": {},

View File

@ -45,7 +45,7 @@
"LHA_1_Tarawa"
],
"destroyers": [
"DDG_Arleigh_Burke_IIa"
"USS_Arleigh_Burke_IIa"
],
"cruisers": [],
"requirements": {

View File

@ -55,10 +55,10 @@
"LHA_1_Tarawa"
],
"destroyers": [
"DDG_Arleigh_Burke_IIa"
"USS_Arleigh_Burke_IIa"
],
"cruisers": [
"CG_Ticonderoga"
"TICONDEROG"
],
"requirements": {},
"carrier_names": [

View File

@ -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/"

View File

@ -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/",

View File

@ -78,10 +78,10 @@
"LHA_1_Tarawa"
],
"destroyers": [
"DDG_Arleigh_Burke_IIa"
"USS_Arleigh_Burke_IIa"
],
"cruisers": [
"CG_Ticonderoga"
"TICONDEROG"
],
"requirements": {},
"carrier_names": [

View File

@ -47,10 +47,10 @@
"aircraft_carrier": [],
"helicopter_carrier": [],
"destroyers": [
"DDG_Arleigh_Burke_IIa"
"USS_Arleigh_Burke_IIa"
],
"cruisers": [
"CG_Ticonderoga"
"TICONDEROG"
],
"requirements": {},
"carrier_names": [],

View File

@ -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/"

View File

@ -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": [

View File

@ -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"

View File

@ -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": [],

View File

@ -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"

View File

@ -57,7 +57,7 @@
"helicopter_carrier": [],
"destroyers": [],
"cruisers": [
"CG_Ticonderoga"
"TICONDEROG"
],
"requirements": {},
"carrier_names": [],

View File

@ -50,10 +50,10 @@
"aircraft_carrier": [],
"helicopter_carrier": [],
"destroyers": [
"FFG_Oliver_Hazzard_Perry"
"PERRY"
],
"cruisers": [
"CG_Ticonderoga"
"TICONDEROG"
],
"requirements": {},
"carrier_names": [],

View File

@ -64,7 +64,7 @@
"helicopter_carrier": [],
"helicopter_carrier_names": [],
"destroyers": [
"Frigate_1135M_Rezky"
"REZKY"
],
"cruisers": [],
"requirements": {},

View File

@ -59,10 +59,10 @@
"helicopter_carrier": [],
"helicopter_carrier_names": [],
"destroyers": [
"Frigate_1135M_Rezky"
"REZKY"
],
"cruisers": [
"Corvette_1241_1_Molniya"
"MOLNIYA"
],
"requirements": {},
"carrier_names": [],

View File

@ -68,10 +68,10 @@
"helicopter_carrier": [],
"helicopter_carrier_names": [],
"destroyers": [
"Frigate_1135M_Rezky"
"REZKY"
],
"cruisers": [
"Corvette_1241_1_Molniya"
"MOLNIYA"
],
"requirements": {},
"carrier_names": [],

View File

@ -47,10 +47,10 @@
"LHA_1_Tarawa"
],
"destroyers": [
"FFG_Oliver_Hazzard_Perry"
"PERRY"
],
"cruisers": [
"CG_Ticonderoga"
"TICONDEROG"
],
"requirements": {},
"carrier_names": [],

View File

@ -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/"

View File

@ -54,10 +54,10 @@
"LHA_1_Tarawa"
],
"destroyers": [
"DDG_Arleigh_Burke_IIa"
"USS_Arleigh_Burke_IIa"
],
"cruisers": [
"CG_Ticonderoga"
"TICONDEROG"
],
"requirements": {},
"carrier_names": [],

View File

@ -60,10 +60,10 @@
],
"missiles_group_count": 1,
"destroyers": [
"Frigate_1135M_Rezky"
"REZKY"
],
"cruisers": [
"Corvette_1241_1_Molniya"
"MOLNIYA"
],
"requirements": {},
"carrier_names": [],

View File

@ -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": [

View File

@ -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": [

View File

@ -79,10 +79,10 @@
"helicopter_carrier": [],
"helicopter_carrier_names": [],
"destroyers": [
"Frigate_1135M_Rezky"
"REZKY"
],
"cruisers": [
"Corvette_1241_1_Molniya"
"MOLNIYA"
],
"requirements": {},
"carrier_names": [

View File

@ -82,10 +82,10 @@
"helicopter_carrier": [],
"helicopter_carrier_names": [],
"destroyers": [
"Frigate_1135M_Rezky"
"REZKY"
],
"cruisers": [
"Corvette_1241_1_Molniya"
"MOLNIYA"
],
"requirements": {},
"carrier_names": [

View File

@ -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"

View File

@ -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/"

View File

@ -50,10 +50,10 @@
"LHA_1_Tarawa"
],
"destroyers": [
"FFG_Oliver_Hazzard_Perry"
"PERRY"
],
"cruisers": [
"CG_Ticonderoga"
"TICONDEROG"
],
"requirements": {},
"carrier_names": [

View File

@ -56,10 +56,10 @@
"LHA_1_Tarawa"
],
"destroyers": [
"FFG_Oliver_Hazzard_Perry"
"PERRY"
],
"cruisers": [
"CG_Ticonderoga"
"TICONDEROG"
],
"requirements": {},
"carrier_names": [],

View File

@ -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": [

View File

@ -78,10 +78,10 @@
"LHA_1_Tarawa"
],
"destroyers": [
"DDG_Arleigh_Burke_IIa"
"USS_Arleigh_Burke_IIa"
],
"cruisers": [
"CG_Ticonderoga"
"TICONDEROG"
],
"requirements": {},
"carrier_names": [

View File

@ -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/"

View File

@ -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",

View File

@ -52,10 +52,10 @@
"LHA_1_Tarawa"
],
"destroyers": [
"FFG_Oliver_Hazzard_Perry"
"PERRY"
],
"cruisers": [
"CG_Ticonderoga"
"TICONDEROG"
],
"carrier_names": [
"CVN-71 Theodore Roosevelt",

View File

@ -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": [

View File

@ -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": [

View File

@ -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())