mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
#257 CasIngressBuilder changes
* Calculate radius from frontline length global * Determine CAS waypoint by waypoint type rather than name * Change logging from error to exception
This commit is contained in:
parent
1e5bd916d9
commit
fa01303460
@ -76,6 +76,7 @@ from gen.flights.flight import (
|
|||||||
)
|
)
|
||||||
from gen.radios import MHz, Radio, RadioFrequency, RadioRegistry, get_radio
|
from gen.radios import MHz, Radio, RadioFrequency, RadioRegistry, get_radio
|
||||||
from gen.runways import RunwayData
|
from gen.runways import RunwayData
|
||||||
|
from gen.conflictgen import FRONTLINE_LENGTH
|
||||||
from dcs.mapping import Point
|
from dcs.mapping import Point
|
||||||
from theater import TheaterGroundObject
|
from theater import TheaterGroundObject
|
||||||
from theater.controlpoint import ControlPoint, ControlPointType
|
from theater.controlpoint import ControlPoint, ControlPointType
|
||||||
@ -1105,11 +1106,6 @@ class PydcsWaypointBuilder:
|
|||||||
waypoint.ETA = tot
|
waypoint.ETA = tot
|
||||||
waypoint.ETA_locked = True
|
waypoint.ETA_locked = True
|
||||||
waypoint.speed_locked = False
|
waypoint.speed_locked = False
|
||||||
|
|
||||||
def get_flight_point(self, name):
|
|
||||||
for i in self.flight.points:
|
|
||||||
if i.name == name:
|
|
||||||
return i
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def for_waypoint(cls, waypoint: FlightWaypoint, group: FlyingGroup,
|
def for_waypoint(cls, waypoint: FlightWaypoint, group: FlyingGroup,
|
||||||
@ -1168,16 +1164,11 @@ class IngressBuilder(PydcsWaypointBuilder):
|
|||||||
class CasIngressBuilder(IngressBuilder):
|
class CasIngressBuilder(IngressBuilder):
|
||||||
def build(self) -> MovingPoint:
|
def build(self) -> MovingPoint:
|
||||||
waypoint = super().build()
|
waypoint = super().build()
|
||||||
ingress_waypoint = self.get_flight_point('INGRESS')
|
|
||||||
cas_waypoint = self.get_flight_point('CAS')
|
|
||||||
try:
|
try:
|
||||||
ingress_point = Point(ingress_waypoint.position.x, ingress_waypoint.position.y)
|
cas_waypoint = self.flight.waypoint_with_type((FlightWaypointType.CAS,))
|
||||||
|
|
||||||
waypoint.add_task(EngageTargetsInZone(
|
waypoint.add_task(EngageTargetsInZone(
|
||||||
position=cas_waypoint,
|
position=cas_waypoint.position,
|
||||||
radius=ingress_point.distance_to_point(
|
radius=FRONTLINE_LENGTH / 2,
|
||||||
cas_waypoint.position
|
|
||||||
),
|
|
||||||
targets=[
|
targets=[
|
||||||
Targets.All.GroundUnits.GroundVehicles,
|
Targets.All.GroundUnits.GroundVehicles,
|
||||||
Targets.All.GroundUnits.AirDefence.AAA,
|
Targets.All.GroundUnits.AirDefence.AAA,
|
||||||
@ -1185,7 +1176,7 @@ class CasIngressBuilder(IngressBuilder):
|
|||||||
])
|
])
|
||||||
)
|
)
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
logging.error(f'Unable to create CAS target zone. Falling back to search and engage')
|
logging.exception('Unable to create CAS target zone. Falling back to search and engage')
|
||||||
waypoint.add_task(EngageTargets(max_distance=nm_to_meter(10),
|
waypoint.add_task(EngageTargets(max_distance=nm_to_meter(10),
|
||||||
targets=[
|
targets=[
|
||||||
Targets.All.GroundUnits.GroundVehicles,
|
Targets.All.GroundUnits.GroundVehicles,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user