From d31876b65ef9ccf33912e9859e94e925dea03960 Mon Sep 17 00:00:00 2001 From: Vasyl Horbachenko Date: Tue, 11 Sep 2018 03:12:33 +0300 Subject: [PATCH] FARP spawn for helis on frontline cas; updated ground object placements --- game/db.py | 24 +++++++++- game/event/event.py | 2 +- game/operation/frontlineattack.py | 9 ++-- gen/aaa.py | 5 ++- gen/aircraft.py | 61 ++++++++++++++------------ gen/groundobjectsgen.py | 21 +++++---- gen/triggergen.py | 29 ++++++------ resources/tools/cau_groundobjects.miz | Bin 22598 -> 26686 bytes 8 files changed, 97 insertions(+), 54 deletions(-) diff --git a/game/db.py b/game/db.py index 9d4f714d..dd29ae0a 100644 --- a/game/db.py +++ b/game/db.py @@ -358,7 +358,8 @@ PLANE_PAYLOAD_OVERRIDES = { }, Ka_50: { - "*": "12x9A4172, 40xS-8", + CAS: "12x9A4172, 40xS-8", + GroundAttack: "12x9A4172, 40xS-8", }, M_2000C: { @@ -483,6 +484,27 @@ def assigned_units_from(d: PlaneDict) -> AssignedUnitsDict: return {k: (v, 0) for k, v in d.items()} +def assignedunits_split_to_count(dict: AssignedUnitsDict, count: int): + buffer_dict = {} + for unit_type, (unit_count, client_count) in dict.items(): + for _ in range(unit_count): + new_count, new_client_count = buffer_dict.get(unit_type, (0, 0)) + + new_count += 1 + + if client_count > 0: + new_client_count += 1 + client_count -= 1 + + buffer_dict[unit_type] = new_count, new_client_count + if new_count >= count: + yield buffer_dict + buffer_dict = {} + + if len(buffer_dict): + yield buffer_dict + + def unitdict_from(fd: AssignedUnitsDict) -> Dict: return {k: v1 for k, (v1, v2) in fd.items()} diff --git a/game/event/event.py b/game/event/event.py index 55439e30..56aba0fb 100644 --- a/game/event/event.py +++ b/game/event/event.py @@ -2,7 +2,7 @@ import typing import logging from dcs.unittype import UnitType -from dcs.task import Task +from dcs.task import * from dcs.unittype import UnitType from game import * diff --git a/game/operation/frontlineattack.py b/game/operation/frontlineattack.py index 4b80fa39..3be6ca03 100644 --- a/game/operation/frontlineattack.py +++ b/game/operation/frontlineattack.py @@ -39,12 +39,15 @@ class FrontlineAttackOperation(Operation): def generate(self): self.armorgen.generate_vec(self.attackers, self.target) - planes_flights = {k: v for k, v in self.strikegroup.items() if k in plane_map} + planes_flights = {k: v for k, v in self.strikegroup.items() if k in plane_map.values()} self.airgen.generate_cas_strikegroup(*assigned_units_split(planes_flights), at=self.attackers_starting_position) - heli_flights = {k: v for k, v in self.strikegroup.items() if k in helicopters.helicopter_map} + heli_flights = {k: v for k, v in self.strikegroup.items() if k in helicopters.helicopter_map.values()} if heli_flights: - self.airgen.generate_cas_strikegroup(*assigned_units_split(heli_flights), at=self.groundobjectgen.generate_farp()) + self.briefinggen.append_frequency("FARP", "127.5 MHz AM") + for farp, dict in zip(self.groundobjectgen.generate_farps(sum([x[0] for x in heli_flights.values()])), + db.assignedunits_split_to_count(heli_flights, self.groundobjectgen.FARP_CAPACITY)): + self.airgen.generate_cas_strikegroup(*assigned_units_split(dict), at=farp, escort=False) self.briefinggen.title = "Frontline CAS" self.briefinggen.description = "Provide CAS for the ground forces attacking enemy lines. Operation will be considered successful if total number of enemy units will be lower than your own by a factor of 1.5 (i.e. with 12 units from both sides, enemy forces need to be reduced to at least 8), meaning that you (and, probably, your wingmans) should concentrate on destroying the enemy units. Target base strength will be lowered as a result. Be advised that your flight will not attack anything until you explicitly tell them so by comms menu." diff --git a/gen/aaa.py b/gen/aaa.py index d9a46cc1..b2811824 100644 --- a/gen/aaa.py +++ b/gen/aaa.py @@ -5,6 +5,7 @@ from dcs.mission import * DISTANCE_FACTOR = 0.5, 1 EXTRA_AA_MIN_DISTANCE = 35000 +EXTRA_AA_MAX_DISTANCE = 150000 EXTRA_AA_POSITION_FROM_CP = 550 @@ -58,7 +59,9 @@ class ExtraAAConflictGenerator: if cp.position.distance_to_point(self.conflict.from_cp.position) < EXTRA_AA_MIN_DISTANCE: continue - print("generated extra aa for {}".format(cp)) + if cp.position.distance_to_point(self.conflict.position) > EXTRA_AA_MAX_DISTANCE: + continue + country_name = cp.captured and self.player_name or self.enemy_name position = cp.position.point_from_heading(0, EXTRA_AA_POSITION_FROM_CP) diff --git a/gen/aircraft.py b/gen/aircraft.py index a2c6cb9c..b550ba18 100644 --- a/gen/aircraft.py +++ b/gen/aircraft.py @@ -112,6 +112,7 @@ class AircraftConflictGenerator: group.units[idx].set_client() group.points[0].tasks.append(OptReactOnThreat(OptReactOnThreat.Values.EvadeFire)) + group.set_frequency(251.0) def _generate_at_airport(self, name: str, side: Country, unit_type: FlyingType, count: int, client_count: int, airport: Airport = None) -> FlyingGroup: assert count > 0 @@ -155,11 +156,11 @@ class AircraftConflictGenerator: start_type=self._start_type(), group_size=count) - def _generate_at_carrier(self, name: str, side: Country, unit_type: FlyingType, count: int, client_count: int, at: ShipGroup) -> FlyingGroup: + def _generate_at_group(self, name: str, side: Country, unit_type: FlyingType, count: int, client_count: int, at: typing.Union[ShipGroup, StaticGroup]) -> FlyingGroup: assert count > 0 assert unit is not None - logging.info("airgen: {} for {} at carrier {}".format(unit_type, side.id, at)) + logging.info("airgen: {} for {} at unit {}".format(unit_type, side.id, at)) return self.m.flight_group_from_unit( country=side, name=name, @@ -172,10 +173,10 @@ class AircraftConflictGenerator: def _generate_group(self, name: str, side: Country, unit_type: FlyingType, count: int, client_count: int, at: db.StartingPosition): if isinstance(at, Point): return self._generate_inflight(name, side, unit_type, count, client_count, at) - elif isinstance(at, ShipGroup): + elif isinstance(at, Group): takeoff_ban = unit_type in db.CARRIER_TAKEOFF_BAN if not takeoff_ban: - return self._generate_at_carrier(name, side, unit_type, count, client_count, at) + return self._generate_at_group(name, side, unit_type, count, client_count, at) else: return self._generate_inflight(name, side, unit_type, count, client_count, at.position) elif issubclass(at, Airport): @@ -192,14 +193,16 @@ class AircraftConflictGenerator: assert False def _rtb_for(self, group: FlyingGroup, cp: ControlPoint, at: db.StartingPosition = None): - group.add_waypoint(cp.position, RTB_ALTITUDE) + if not at: + at = cp.at - if isinstance(cp.at, Point): - pass - elif isinstance(cp.at, ShipGroup): - pass - elif issubclass(cp.at, Airport): - group.land_at(cp.at) + if isinstance(at, Point): + group.add_waypoint(at, RTB_ALTITUDE) + elif isinstance(at, Group): + group.add_waypoint(at.position, RTB_ALTITUDE) + elif issubclass(at, Airport): + group.add_waypoint(at.position, RTB_ALTITUDE) + group.land_at(at) def _at_position(self, at) -> Point: if isinstance(at, Point): @@ -243,8 +246,8 @@ class AircraftConflictGenerator: groups.append(group) return groups - def generate_cas_strikegroup(self, attackers: db.PlaneDict, clients: db.PlaneDict, at: db.StartingPosition = None): - assert len(self.escort_targets) == 0 + def generate_cas_strikegroup(self, attackers: db.PlaneDict, clients: db.PlaneDict, at: db.StartingPosition = None, escort=True): + assert not escort or len(self.escort_targets) == 0 for flying_type, count, client_count in self._split_to_groups(attackers, clients): group = self._generate_group( @@ -261,11 +264,12 @@ class AircraftConflictGenerator: group.task = CAS.name self._setup_group(group, CAS, client_count) - self.escort_targets.append((group, group.points.index(waypoint))) + if escort: + self.escort_targets.append((group, group.points.index(waypoint))) self._rtb_for(group, self.conflict.from_cp, at) - def generate_ground_attack_strikegroup(self, strikegroup: db.PlaneDict, clients: db.PlaneDict, targets: typing.List[typing.Tuple[str, Point]], at: db.StartingPosition = None): - assert len(self.escort_targets) == 0 + def generate_ground_attack_strikegroup(self, strikegroup: db.PlaneDict, clients: db.PlaneDict, targets: typing.List[typing.Tuple[str, Point]], at: db.StartingPosition = None, escort=True): + assert not escort or len(self.escort_targets) == 0 for flying_type, count, client_count in self._split_to_groups(strikegroup, clients): group = self._generate_group( @@ -285,11 +289,12 @@ class AircraftConflictGenerator: group.task = GroundAttack.name self._setup_group(group, GroundAttack, client_count) - self.escort_targets.append((group, group.points.index(escort_until_waypoint))) + if escort: + self.escort_targets.append((group, group.points.index(escort_until_waypoint))) self._rtb_for(group, self.conflict.from_cp, at) - def generate_defenders_cas(self, defenders: db.PlaneDict, clients: db.PlaneDict, at: db.StartingPosition = None): - assert len(self.escort_targets) == 0 + def generate_defenders_cas(self, defenders: db.PlaneDict, clients: db.PlaneDict, at: db.StartingPosition = None, escort=True): + assert not escort or len(self.escort_targets) == 0 for flying_type, count, client_count in self._split_to_groups(defenders, clients): group = self._generate_group( @@ -310,11 +315,12 @@ class AircraftConflictGenerator: group.task = CAS.name self._setup_group(group, CAS, client_count) - self.escort_targets.append((group, group.points.index(waypoint))) + if escort: + self.escort_targets.append((group, group.points.index(waypoint))) self._rtb_for(group, self.conflict.to_cp, at) - def generate_ship_strikegroup(self, attackers: db.PlaneDict, clients: db.PlaneDict, target_groups: typing.Collection[ShipGroup], at: db.StartingPosition = None): - assert len(self.escort_targets) == 0 + def generate_ship_strikegroup(self, attackers: db.PlaneDict, clients: db.PlaneDict, target_groups: typing.Collection[ShipGroup], at: db.StartingPosition = None, escort=True): + assert not escort or len(self.escort_targets) == 0 for flying_type, count, client_count in self._split_to_groups(attackers, clients): group = self._generate_group( @@ -331,7 +337,8 @@ class AircraftConflictGenerator: group.task = AntishipStrike.name self._setup_group(group, AntishipStrike, client_count) - self.escort_targets.append((group, group.points.index(wayp))) + if escort: + self.escort_targets.append((group, group.points.index(wayp))) self._rtb_for(group, self.conflict.from_cp, at) def generate_attackers_escort(self, attackers: db.PlaneDict, clients: db.PlaneDict, at: db.StartingPosition = None): @@ -413,8 +420,8 @@ class AircraftConflictGenerator: self._setup_group(group, CAP, client_count) self._rtb_for(group, self.conflict.to_cp, at) - def generate_transport(self, transport: db.PlaneDict, destination: Airport): - assert len(self.escort_targets) == 0 + def generate_transport(self, transport: db.PlaneDict, destination: Airport, escort=True): + assert not escort or len(self.escort_targets) == 0 for flying_type, count, client_count in self._split_to_groups(transport): group = self._generate_group( @@ -426,8 +433,8 @@ class AircraftConflictGenerator: at=self._group_point(self.conflict.air_defenders_location)) waypoint = group.add_waypoint(destination.position.random_point_within(0, 0), TRANSPORT_LANDING_ALT) - self.escort_targets.append((group, group.points.index(waypoint))) - + if escort: + self.escort_targets.append((group, group.points.index(waypoint))) group.task = Transport.name group.land_at(destination) diff --git a/gen/groundobjectsgen.py b/gen/groundobjectsgen.py index 33517ab1..93f33c4f 100644 --- a/gen/groundobjectsgen.py +++ b/gen/groundobjectsgen.py @@ -22,21 +22,26 @@ CATEGORY_MAPPING = { class GroundObjectsGenerator: + FARP_CAPACITY = 4 + def __init__(self, mission: Mission, conflict: Conflict, game): self.m = mission self.conflict = conflict self.game = game - def generate_farp(self) -> StaticGroup: + def generate_farps(self, number_of_units=1) -> typing.Collection[StaticGroup]: assert self.conflict.is_vector, "FARP could be generated only on frontline conflicts!" - position = self.conflict.find_ground_position(self.conflict.center.point_from_heading(self.conflict.opposite_heading, FARP_FRONTLINE_DISTANCE)) - return self.m.static_group( - country=self.m.country(self.game.player), - name="", - _type=Fortification.FARP_Command_Post, - position=position - ) + for i, _ in enumerate(range(0, number_of_units, self.FARP_CAPACITY)): + heading = self.conflict.heading - 90 + position = self.conflict.find_ground_position(self.conflict.center.point_from_heading(heading, FARP_FRONTLINE_DISTANCE), heading) + position = position.point_from_heading(0, i * 275) + + yield self.m.farp( + country=self.m.country(self.game.player), + name="FARP", + position=position, + ) def generate(self): side = self.m.country(self.game.enemy) diff --git a/gen/triggergen.py b/gen/triggergen.py index f797eff4..6377d796 100644 --- a/gen/triggergen.py +++ b/gen/triggergen.py @@ -72,32 +72,35 @@ class TriggersGenerator: for coalition_name, coalition in self.mission.coalition.items(): for country in coalition.countries.values(): if coalition_name == player_coalition: - for plane_group in country.plane_group + country.helicopter_group: - if plane_group.task == AWACS.name or plane_group.task == Refueling.name: + for group in country.plane_group + country.helicopter_group: + if group.task == AWACS.name or group.task == Refueling.name: + continue + + if player_cp.position.distance_to_point(group.position) > PUSH_TRIGGER_SIZE * 3: continue regroup_heading = self.conflict.to_cp.position.heading_between_point(player_cp.position) - pos1 = plane_group.position.point_from_heading(regroup_heading, REGROUP_ZONE_DISTANCE) - pos2 = plane_group.position.point_from_heading(regroup_heading, REGROUP_ZONE_DISTANCE+5000) - w1 = plane_group.add_waypoint(pos1, REGROUP_ALT) - w2 = plane_group.add_waypoint(pos2, REGROUP_ALT) + pos1 = group.position.point_from_heading(regroup_heading, REGROUP_ZONE_DISTANCE) + pos2 = group.position.point_from_heading(regroup_heading, REGROUP_ZONE_DISTANCE+5000) + w1 = group.add_waypoint(pos1, REGROUP_ALT) + w2 = group.add_waypoint(pos2, REGROUP_ALT) - plane_group.points.remove(w1) - plane_group.points.remove(w2) + group.points.remove(w1) + group.points.remove(w2) - plane_group.points.insert(1, w2) - plane_group.points.insert(1, w1) + group.points.insert(1, w2) + group.points.insert(1, w1) w1.tasks.append(Silence(True)) switch_waypoint_task = ControlledTask(SwitchWaypoint(from_waypoint=3, to_waypoint=2)) switch_waypoint_task.start_if_user_flag(1, False) w2.tasks.append(switch_waypoint_task) - plane_group.points[3].tasks.append(Silence(False)) + group.points[3].tasks.append(Silence(False)) - plane_group.add_trigger_action(SwitchWaypoint(to_waypoint=4)) - push_by_trigger.append(plane_group) + group.add_trigger_action(SwitchWaypoint(to_waypoint=4)) + push_by_trigger.append(group) push_trigger_zone = self.mission.triggers.add_triggerzone(player_cp.position, PUSH_TRIGGER_SIZE, name="Push zone") push_trigger = TriggerOnce(Event.NoEvent, "Push trigger") diff --git a/resources/tools/cau_groundobjects.miz b/resources/tools/cau_groundobjects.miz index 87eef17a472cb92137d6cff23809faa9a89d104d..17fde93d8c4954d484bce58f2f494d4b624cf5e8 100644 GIT binary patch literal 26686 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 literal 22598 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