Dan Albert 515efd0598 Draw frozen combat on the map.
Very basic display. Draws the engagement footprint for air-to-air
combat, a line from the flight to the target for IP, and lines from SAMs
to their target for air defense.

https://github.com/dcs-liberation/dcs_liberation/issues/1680
2021-12-21 14:56:25 -08:00

38 lines
1.1 KiB
Python

from PySide2.QtCore import Property, QObject, Signal
from game.sim.combat.defendingsam import DefendingSam
from qt_ui.models import GameModel
from .flightjs import FlightJs
from .groundobjectjs import GroundObjectJs
class SamCombatJs(QObject):
flightChanged = Signal()
airDefensesChanged = Signal()
def __init__(self, combat: DefendingSam, game_model: GameModel) -> None:
super().__init__()
assert game_model.game is not None
self.combat = combat
self.theater = game_model.game.theater
self._flight = FlightJs(
combat.flight,
selected=False,
theater=game_model.game.theater,
ato_model=game_model.ato_model_for(combat.flight.squadron.player),
)
self._air_defenses = [
GroundObjectJs(tgo, game_model.game) for tgo in self.combat.air_defenses
]
@Property(FlightJs, notify=flightChanged)
def flight(self) -> FlightJs:
return self._flight
@Property(list, notify=airDefensesChanged)
def airDefenses(self) -> list[GroundObjectJs]:
return self._air_defenses
def refresh(self) -> None:
pass