mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Strengthen SA-10, add point defense.
Fixes https://github.com/Khopa/dcs_liberation/issues/417, though the notes on that bug about this being non-optimal for skynet are still true. This doesn't make skynet behavior any worse though, and does improve it some compared to not having PD. Adds two new SA-10 generator variants: * Tier 2, with SA-15 for point defense * Tier 3, with SA-15 for point defense and the Shilka upgraded to a Tunguska. Updated factions that are capable of those systems, added missing SAMs to those factions, and removed use of SA-19 as an independent SAM from those factions. Will do a larger audit of faction SAMs later.
This commit is contained in:
@@ -11,7 +11,7 @@ class SA10Generator(GenericSamGroupGenerator):
|
||||
"""
|
||||
|
||||
name = "SA-10/S-300PS Battery"
|
||||
price = 450
|
||||
price = 550
|
||||
|
||||
def generate(self):
|
||||
# Search Radar
|
||||
@@ -38,15 +38,51 @@ class SA10Generator(GenericSamGroupGenerator):
|
||||
else:
|
||||
self.add_unit(AirDefence.SAM_SA_10_S_300PS_LN_5P85D, "LN#" + str(i), position[0], position[1], position[2])
|
||||
|
||||
# Then let's add short range protection to this high value site
|
||||
# Sa-13 Strela are great for that
|
||||
num_launchers = random.randint(2, 4)
|
||||
positions = self.get_circular_position(num_launchers, launcher_distance=140, coverage=360)
|
||||
for i, position in enumerate(positions):
|
||||
self.add_unit(AirDefence.SAM_SA_13_Strela_10M3_9A35M3, "IR#" + str(i), position[0], position[1], position[2])
|
||||
self.generate_defensive_groups()
|
||||
|
||||
# And even some AA
|
||||
def generate_defensive_groups(self) -> None:
|
||||
# AAA for defending against close targets.
|
||||
num_launchers = random.randint(6, 8)
|
||||
positions = self.get_circular_position(num_launchers, launcher_distance=210, coverage=360)
|
||||
positions = self.get_circular_position(
|
||||
num_launchers, launcher_distance=210, coverage=360)
|
||||
for i, position in enumerate(positions):
|
||||
self.add_unit(AirDefence.SPAAA_ZSU_23_4_Shilka, "AA#" + str(i), position[0], position[1], position[2])
|
||||
self.add_unit(AirDefence.SPAAA_ZSU_23_4_Shilka, "AA#" + str(i),
|
||||
position[0], position[1], position[2])
|
||||
|
||||
|
||||
class Tier2SA10Generator(SA10Generator):
|
||||
def generate_defensive_groups(self) -> None:
|
||||
# SA-15 for both shorter range targets and point defense.
|
||||
num_launchers = random.randint(2, 4)
|
||||
positions = self.get_circular_position(
|
||||
num_launchers, launcher_distance=140, coverage=360)
|
||||
for i, position in enumerate(positions):
|
||||
self.add_unit(AirDefence.SAM_SA_15_Tor_9A331, "PD#" + str(i),
|
||||
position[0], position[1], position[2])
|
||||
|
||||
# AAA for defending against close targets.
|
||||
num_launchers = random.randint(6, 8)
|
||||
positions = self.get_circular_position(
|
||||
num_launchers, launcher_distance=210, coverage=360)
|
||||
for i, position in enumerate(positions):
|
||||
self.add_unit(AirDefence.SPAAA_ZSU_23_4_Shilka, "AA#" + str(i),
|
||||
position[0], position[1], position[2])
|
||||
|
||||
|
||||
class Tier3SA10Generator(SA10Generator):
|
||||
def generate_defensive_groups(self) -> None:
|
||||
# SA-15 for both shorter range targets and point defense.
|
||||
num_launchers = random.randint(2, 4)
|
||||
positions = self.get_circular_position(
|
||||
num_launchers, launcher_distance=140, coverage=360)
|
||||
for i, position in enumerate(positions):
|
||||
self.add_unit(AirDefence.SAM_SA_15_Tor_9A331, "PD#" + str(i),
|
||||
position[0], position[1], position[2])
|
||||
|
||||
# AAA for defending against close targets.
|
||||
num_launchers = random.randint(6, 8)
|
||||
positions = self.get_circular_position(
|
||||
num_launchers, launcher_distance=210, coverage=360)
|
||||
for i, position in enumerate(positions):
|
||||
self.add_unit(AirDefence.SAM_SA_19_Tunguska_2S6, "AA#" + str(i),
|
||||
position[0], position[1], position[2])
|
||||
|
||||
Reference in New Issue
Block a user