Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
    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)