mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
The aircraft that have not been fragged will now be spawned in parking to provide more targets for OCA strikes. We do this only at airports, not carriers. The AI has enough trouble taxiing around uncrowded carrier decks that we probably shouldn't make it harder for them, plus most of the aircraft will be stored below the flight deck (we allow 90 aircraft to be stored at the carrier, which certainly will not fit on the flight deck). The aircraft are spawned in an uncontrolled state and nothing will activate them, so aside from the cost of rendering them they shouldn't affect performance. Fixes https://github.com/Khopa/dcs_liberation/issues/148
24 lines
779 B
Python
24 lines
779 B
Python
"""Maps generated units back to their Liberation types."""
|
|
from typing import Dict, Optional
|
|
|
|
from dcs.unitgroup import FlyingGroup
|
|
|
|
from gen.flights.flight import Flight
|
|
|
|
|
|
class UnitMap:
|
|
def __init__(self) -> None:
|
|
self.aircraft: Dict[str, Flight] = {}
|
|
|
|
def add_aircraft(self, group: FlyingGroup, flight: Flight) -> None:
|
|
for unit in group.units:
|
|
# The actual name is a String (the pydcs translatable string), which
|
|
# doesn't define __eq__.
|
|
name = str(unit.name)
|
|
if name in self.aircraft:
|
|
raise RuntimeError(f"Duplicate unit name: {name}")
|
|
self.aircraft[name] = flight
|
|
|
|
def flight(self, unit_name: str) -> Optional[Flight]:
|
|
return self.aircraft.get(unit_name, None)
|