Files
dcs-retribution/game/missiongenerator/aircraft/waypoints/refuel.py
Druss99 dd7e4c908e Recovery tanker support (#429)
* fix conflict

* squash bugs and reuse patrol layout

* fix tanker tacan and formatting

* fix unlimited fuel option

* update pretense for tanker changes

* reuse refueling flight plan and bugfix for sunken carrier

changelog

* remove unitmap dependency

* formatting and more unit map removal

* more formatting

* typing and black

* keep tanker out of clouds

* fix if there are no clouds

* better cloud handling

* groundwork for recovery task

* remove changes to game/commander

* Finishing up recovery tankers

---------

Co-authored-by: Raffson <Raffson@users.noreply.github.com>
2024-12-23 04:39:10 +00:00

25 lines
1018 B
Python

from dcs.point import MovingPoint
from dcs.task import RefuelingTaskAction, ControlledTask
from .pydcswaypointbuilder import PydcsWaypointBuilder
class RefuelPointBuilder(PydcsWaypointBuilder):
def add_tasks(self, waypoint: MovingPoint) -> None:
if not self.ai_despawn(waypoint, True):
refuel = ControlledTask(RefuelingTaskAction())
refuel.start_if_lua_predicate(self._get_lua_predicate(0.2))
refuel.stop_if_lua_predicate(self._get_lua_predicate(0.5))
waypoint.add_task(refuel)
return super().add_tasks(waypoint)
def _get_lua_predicate(self, fuel_level: float) -> str:
return f"""
local okfuel = true
for i, unitObject in pairs(Group.getByName('{self.group.name}'):getUnits()) do
--trigger.action.outText(tostring(Unit.getFuel(unitObject)), 15)
if Unit.getFuel(unitObject) < {fuel_level} then okfuel = false; break end
end
return lowfuel
"""