diff --git a/gen/sam/sam_group_generator.py b/gen/sam/sam_group_generator.py index 4bebcd27..d9cb7d75 100644 --- a/gen/sam/sam_group_generator.py +++ b/gen/sam/sam_group_generator.py @@ -49,6 +49,7 @@ from gen.sam.sam_sa17 import SA17Generator from gen.sam.sam_sa19 import SA19Generator from gen.sam.sam_sa2 import SA2Generator from gen.sam.sam_sa3 import SA3Generator +from gen.sam.sam_sa5 import SA5Generator from gen.sam.sam_sa6 import SA6Generator from gen.sam.sam_sa8 import SA8Generator from gen.sam.sam_sa9 import SA9Generator @@ -77,6 +78,7 @@ SAM_MAP: Dict[str, Type[AirDefenseGroupGenerator]] = { "FlakGenerator": FlakGenerator, "SA2Generator": SA2Generator, "SA3Generator": SA3Generator, + "SA5Generator": SA5Generator, "SA6Generator": SA6Generator, "SA8Generator": SA8Generator, "SA9Generator": SA9Generator, diff --git a/gen/sam/sam_sa5.py b/gen/sam/sam_sa5.py new file mode 100644 index 00000000..5407aab5 --- /dev/null +++ b/gen/sam/sam_sa5.py @@ -0,0 +1,48 @@ +from dcs.vehicles import AirDefence + +from gen.sam.airdefensegroupgenerator import ( + AirDefenseRange, + AirDefenseGroupGenerator, +) + + +class SA5Generator(AirDefenseGroupGenerator): + """ + This generate a SA-5 group + """ + + name = "SA-5/S-200 Site" + + def generate(self) -> None: + self.add_unit( + AirDefence.RLS_19J6, + "SR", + self.position.x, + self.position.y, + self.heading, + ) + self.add_unit( + AirDefence.RPC_5N62V, + "TR", + self.position.x + 20, + self.position.y, + self.heading, + ) + + num_launchers = 6 + positions = self.get_circular_position( + num_launchers, launcher_distance=120, coverage=360 + ) + + for i, position in enumerate(positions): + self.add_unit( + AirDefence.S_200_Launcher, + "LN#" + str(i), + position[0], + position[1], + position[2], + ) + + @classmethod + def range(cls) -> AirDefenseRange: + return AirDefenseRange.Long diff --git a/resources/campaigns/golan_heights_lite.miz b/resources/campaigns/golan_heights_lite.miz index 16d3098e..d7041e4d 100644 Binary files a/resources/campaigns/golan_heights_lite.miz and b/resources/campaigns/golan_heights_lite.miz differ diff --git a/resources/campaigns/mozdok_to_maykop.miz b/resources/campaigns/mozdok_to_maykop.miz index b1c47dfc..a84ff27b 100644 Binary files a/resources/campaigns/mozdok_to_maykop.miz and b/resources/campaigns/mozdok_to_maykop.miz differ diff --git a/resources/factions/iran_1988.json b/resources/factions/iran_1988.json index b6d729c8..99d1f0ca 100644 --- a/resources/factions/iran_1988.json +++ b/resources/factions/iran_1988.json @@ -47,6 +47,7 @@ "HawkGenerator", "RapierGenerator", "SA2Generator", + "SA5Generator", "ZSU57Generator", "ZSU23Generator", "ZU23Generator", diff --git a/resources/factions/iran_2015.json b/resources/factions/iran_2015.json index 6b426d29..92aa5887 100644 --- a/resources/factions/iran_2015.json +++ b/resources/factions/iran_2015.json @@ -55,6 +55,7 @@ "HawkGenerator", "RapierGenerator", "SA2Generator", + "SA5Generator", "SA6Generator", "SA11Generator", "SA15Generator", diff --git a/resources/factions/libya_2011.json b/resources/factions/libya_2011.json index 6c77d0e6..dc383794 100644 --- a/resources/factions/libya_2011.json +++ b/resources/factions/libya_2011.json @@ -45,6 +45,7 @@ "RapierGenerator", "SA2Generator", "SA3Generator", + "SA5Generator", "SA6Generator", "SA8Generator", "SA9Generator", diff --git a/resources/factions/north_korea_2000.json b/resources/factions/north_korea_2000.json index fe8411d0..9d780323 100644 --- a/resources/factions/north_korea_2000.json +++ b/resources/factions/north_korea_2000.json @@ -48,6 +48,7 @@ "air_defenses": [ "SA2Generator", "SA3Generator", + "SA5Generator", "SA6Generator", "SA9Generator", "SA13Generator", diff --git a/resources/factions/poland_2010.json b/resources/factions/poland_2010.json index 57585c3e..8b2db7e1 100644 --- a/resources/factions/poland_2010.json +++ b/resources/factions/poland_2010.json @@ -44,6 +44,7 @@ "Paratrooper AKS" ], "air_defenses": [ + "SA5Generator", "SA6Generator", "SA8Generator", "ZSU23Generator", diff --git a/resources/factions/russia_1975.json b/resources/factions/russia_1975.json index 5c672293..39f4a1f9 100644 --- a/resources/factions/russia_1975.json +++ b/resources/factions/russia_1975.json @@ -53,6 +53,7 @@ "ColdWarFlakGenerator", "SA2Generator", "SA3Generator", + "SA5Generator", "SA6Generator", "SA8Generator", "SA9Generator", diff --git a/resources/factions/syria_2011.json b/resources/factions/syria_2011.json index a089d47e..b6612e56 100644 --- a/resources/factions/syria_2011.json +++ b/resources/factions/syria_2011.json @@ -57,6 +57,7 @@ "ColdWarFlakGenerator", "SA2Generator", "SA3Generator", + "SA5Generator", "SA6Generator", "SA8Generator", "SA8Generator", diff --git a/resources/factions/syria_2012.json b/resources/factions/syria_2012.json index ec4190d9..76b83cfd 100644 --- a/resources/factions/syria_2012.json +++ b/resources/factions/syria_2012.json @@ -58,6 +58,7 @@ "ColdWarFlakGenerator", "SA2Generator", "SA3Generator", + "SA5Generator", "SA6Generator", "SA8Generator", "SA8Generator", diff --git a/resources/factions/ukraine_2010.json b/resources/factions/ukraine_2010.json index 56e6baf2..32614005 100644 --- a/resources/factions/ukraine_2010.json +++ b/resources/factions/ukraine_2010.json @@ -43,6 +43,7 @@ ], "air_defenses": [ "SA3Generator", + "SA5Generator", "SA6Generator", "SA8Generator", "SA9Generator", @@ -70,4 +71,4 @@ "navy_generators": [ "GrishaGroupGenerator" ] -} \ No newline at end of file +} diff --git a/resources/units/ground_units/RPC_5N62V.yaml b/resources/units/ground_units/RPC_5N62V.yaml new file mode 100644 index 00000000..d6558bc9 --- /dev/null +++ b/resources/units/ground_units/RPC_5N62V.yaml @@ -0,0 +1,3 @@ +price: 18 +variants: + SAM SA-5 S-200 "Square Pair" TR": null diff --git a/resources/units/ground_units/S-200_Launcher.yaml b/resources/units/ground_units/S-200_Launcher.yaml new file mode 100644 index 00000000..ea13823e --- /dev/null +++ b/resources/units/ground_units/S-200_Launcher.yaml @@ -0,0 +1,3 @@ +price: 12 +variants: + SAM SA-5 S-200 "Gammon" LN": null