Add reversed_heading property to ground units

This allows to define if a unit should be placed backwards in the generated mission. This is required for example for the SA-11/SA-17 or Silkworm Launchers.
This commit is contained in:
RndName 2022-05-12 15:36:42 +02:00
parent f20d0effe9
commit 88a8caa023
No known key found for this signature in database
GPG Key ID: 5EF516FD9537F7C0
7 changed files with 21 additions and 6 deletions

View File

@ -289,12 +289,19 @@ class ForceGroup:
# Align heading to GroundObject defined by the campaign designer
unit.position.heading + rotation,
)
if unit.unit_type and unit.unit_type.dcs_unit_type in UNITS_WITH_RADAR:
# Head Radars towards the center of the conflict
unit.position.heading = (
game.theater.heading_to_conflict_from(unit.position)
or unit.position.heading
)
if unit.unit_type is not None:
if unit.unit_type.dcs_unit_type in UNITS_WITH_RADAR:
# Head Radars towards the center of the conflict
unit.position.heading = (
game.theater.heading_to_conflict_from(unit.position)
or unit.position.heading
)
if (
isinstance(unit.unit_type, GroundUnitType)
and unit.unit_type.reversed_heading
):
# Reverse the heading of the unit
unit.position.heading = unit.position.heading.opposite
# Rotate unit around the center to align the orientation of the group
unit.position.rotate(ground_object.position, rotation)

View File

@ -55,6 +55,10 @@ class GroundUnitType(UnitType[Type[VehicleType]]):
spawn_weight: int
skynet_properties: SkynetProperties
# Defines if we should place the ground unit with an inverted heading.
# Some units like few Launchers have to be placed backwards to be able to fire.
reversed_heading: bool
@classmethod
def named(cls, name: str) -> GroundUnitType:
if not cls._loaded:
@ -117,4 +121,5 @@ class GroundUnitType(UnitType[Type[VehicleType]]):
skynet_properties=SkynetProperties.from_data(
data.get("skynet_properties", {})
),
reversed_heading=data.get("reversed_heading", False),
)

View File

@ -1,4 +1,5 @@
class: TELAR
price: 30
reversed_heading: true # Needs to be placed backwards!
variants:
SAM SA-11 Buk "Gadfly" Fire Dome TEL: null

View File

@ -1,4 +1,5 @@
class: TELAR
price: 40
reversed_heading: true # Needs to be placed backwards!
variants:
SAM SA-17 Buk M1-2 LN 9A310M1-2: null

View File

@ -1,4 +1,5 @@
class: AntiShipMissile
price: 0
reversed_heading: true # Needs to be placed backwards!
variants:
AShM SS-N-2 Silkworm: null