From bc3cd50a6ca29eb0f826f3d6ccc3ef35e0865e6c Mon Sep 17 00:00:00 2001 From: Dan Albert Date: Thu, 19 Nov 2020 23:47:07 -0800 Subject: [PATCH] Add support for required SAMs in campaigns. "Required" SAMs (designative by redfor long range SAM launchers in the ME) will always be spawned during campaign generation. This makes it possible to build a semi-guaranteed IADS (the exact type of SAM is dependent) on the choice of faction. Requierd SAMs will consume the slots of random SAMs during generation. Later we should differentiate between strategic SAMs like SA-10s and tactical SAMs like SA-11s so we can fill in the medium range SAMs at random locations among the fixed long range SAMs. --- game/theater/conflicttheater.py | 24 +++++++++++++++++++++++ game/theater/controlpoint.py | 2 +- game/theater/start_generator.py | 20 ++++++++++++++++++- resources/campaigns/inherent_resolve.miz | Bin 42140 -> 43422 bytes 4 files changed, 44 insertions(+), 2 deletions(-) diff --git a/game/theater/conflicttheater.py b/game/theater/conflicttheater.py index 8ad73838..566118f9 100644 --- a/game/theater/conflicttheater.py +++ b/game/theater/conflicttheater.py @@ -105,6 +105,20 @@ class MizCampaignLoader: OFFSHORE_STRIKE_TARGET_UNIT_TYPE = Fortification.Oil_platform.id SHIP_UNIT_TYPE = USS_Arleigh_Burke_IIa.id + # Multiple options for the required SAMs so campaign designers can more + # easily see the coverage of their IADS. Designers focused on campaigns that + # will primarily use SA-2s can place SA-2 launchers to ensure that they will + # have adequate coverage, and designers focused on campaigns that will + # primarily use SA-10s can do the same. + REQUIRED_SAM_UNIT_TYPES = { + AirDefence.SAM_Hawk_LN_M192, + AirDefence.SAM_Patriot_LN_M901, + AirDefence.SAM_SA_10_S_300PS_LN_5P85C, + AirDefence.SAM_SA_10_S_300PS_LN_5P85D, + AirDefence.SAM_SA_2_LN_SM_90, + AirDefence.SAM_SA_3_S_125_LN_5P73, + } + BASE_DEFENSE_RADIUS = nm_to_meter(2) def __init__(self, miz: Path, theater: ConflictTheater) -> None: @@ -207,6 +221,12 @@ class MizCampaignLoader: if group.units[0].type == self.OFFSHORE_STRIKE_TARGET_UNIT_TYPE: yield group + @property + def required_sams(self) -> Iterator[VehicleGroup]: + for group in self.red.vehicle_group: + if group.units[0].type == self.REQUIRED_SAM_UNIT_TYPES: + yield group + @cached_property def control_points(self) -> Dict[int, ControlPoint]: control_points = {} @@ -306,6 +326,10 @@ class MizCampaignLoader: closest, distance = self.objective_info(group) closest.preset_locations.ships.append(group.position) + for group in self.required_sams: + closest, distance = self.objective_info(group) + closest.preset_locations.required_sams.append(group.position) + def populate_theater(self) -> None: for control_point in self.control_points.values(): self.theater.add_controlpoint(control_point) diff --git a/game/theater/controlpoint.py b/game/theater/controlpoint.py index 5c549b21..4e61cfa5 100644 --- a/game/theater/controlpoint.py +++ b/game/theater/controlpoint.py @@ -85,7 +85,7 @@ class PresetLocations: offshore_strike_locations: List[Point] = field(default_factory=list) #: Locations of SAMs which should always be spawned. - fixed_sams: List[Point] = field(default_factory=list) + required_sams: List[Point] = field(default_factory=list) @staticmethod def _random_from(points: List[Point]) -> Optional[Point]: diff --git a/game/theater/start_generator.py b/game/theater/start_generator.py index 81aac268..2eee490a 100644 --- a/game/theater/start_generator.py +++ b/game/theater/start_generator.py @@ -544,15 +544,31 @@ class AirbaseGroundObjectGenerator(ControlPointGroundObjectGenerator): # Always generate at least one AA point. self.generate_aa_site() + skip_sams = self.generate_required_aa() + # And between 2 and 7 other objectives. amount = random.randrange(2, 7) for i in range(amount): # 1 in 4 additional objectives are AA. if random.randint(0, 3) == 0: - self.generate_aa_site() + if skip_sams > 0: + skip_sams -= 1 + else: + self.generate_aa_site() else: self.generate_ground_point() + def generate_required_aa(self) -> int: + """Generates the AA sites that are required by the campaign. + + Returns: + The number of AA sites that were generated. + """ + sams = self.control_point.preset_locations.required_sams + for position in sams: + self.generate_aa_at(position) + return len(sams) + def generate_ground_point(self) -> None: try: category = random.choice(self.faction.building_set) @@ -591,7 +607,9 @@ class AirbaseGroundObjectGenerator(ControlPointGroundObjectGenerator): position = self.location_finder.location_for(LocationType.Sam) if position is None: return + self.generate_aa_at(position) + def generate_aa_at(self, position: Point) -> None: group_id = self.game.next_group_id() g = SamGroundObject(namegen.random_objective_name(), group_id, diff --git a/resources/campaigns/inherent_resolve.miz b/resources/campaigns/inherent_resolve.miz index c5d00d7f2903cc79861dfb8cba949eae2204bdf1..12dbaed8ec60fbf467659916adcc3234b55fe0ea 100644 GIT binary patch delta 25943 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 z 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 E3wEqE@Bjb+ delta 24680 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