def generate_shorad(self) -> None: position = self.location_finder.location_for( LocationType.BaseAirDefense) if position is None: return group_id = self.game.next_group_id() g = SamGroundObject( namegen.random_objective_name(), group_id, position, self.control_point, for_airbase=True, ) groups = generate_anti_air_group(self.game, g, self.faction, ranges=[{AirDefenseRange.Short}]) if not groups: logging.error( f"Could not generate SHORAD group at {self.control_point}") return g.groups = groups self.control_point.base_defenses.append(g)
def generate_aa_at(self, position: Point, ranges: Iterable[Set[AirDefenseRange]]) -> None: group_id = self.game.next_group_id() g = SamGroundObject(namegen.random_objective_name(), group_id, position, self.control_point, for_airbase=False) group = generate_anti_air_group(self.game, g, self.faction, ranges) if group is None: logging.error("Could not generate air defense group for %s at %s", g.name, self.control_point) return g.groups = [group] self.control_point.connected_objectives.append(g)