Fix some edge-cases wrt SetUnlimitedFuel

This commit is contained in:
Raffson 2024-01-19 19:42:19 +01:00
parent a6a872eebb
commit e6e557c18a
No known key found for this signature in database
GPG Key ID: B0402B2C9B764D99
3 changed files with 14 additions and 5 deletions

View File

@ -103,7 +103,7 @@ class AircraftBehavior:
)
# Activate AI unlimited fuel for all flights at startup
if ai_unlimited_fuel:
if ai_unlimited_fuel and not (flight.state.is_at_ip or flight.state.in_combat):
group.points[0].tasks.append(SetUnlimitedFuelCommand(True))
group.points[0].tasks.append(OptReactOnThreat(react_on_threat))

View File

@ -15,15 +15,19 @@ from dcs.task import (
from game.ato import FlightType
from game.theater import NavalControlPoint
from game.utils import nautical_miles, feet
from game.settings import Settings
from .pydcswaypointbuilder import PydcsWaypointBuilder
class JoinPointBuilder(PydcsWaypointBuilder):
def add_tasks(self, waypoint: MovingPoint) -> None:
# Unlimited fuel option : disable at join. Must be first option to work.
# Unlimited fuel option : disable at racetrack start. Must be first option to work.
if self.flight.squadron.coalition.game.settings.ai_unlimited_fuel:
waypoint.tasks.insert(0, SetUnlimitedFuelCommand(False))
if waypoint.tasks and isinstance(
waypoint.tasks[0], SetUnlimitedFuelCommand
):
waypoint.tasks[0] = SetUnlimitedFuelCommand(False)
else:
waypoint.tasks.insert(0, SetUnlimitedFuelCommand(False))
if self.flight.is_helo:
waypoint.tasks.append(OptFormation.rotary_wedge())

View File

@ -23,7 +23,12 @@ class RaceTrackBuilder(PydcsWaypointBuilder):
# Unlimited fuel option : disable at racetrack start. Must be first option to work.
if self.flight.squadron.coalition.game.settings.ai_unlimited_fuel:
waypoint.tasks.insert(0, SetUnlimitedFuelCommand(False))
if waypoint.tasks and isinstance(
waypoint.tasks[0], SetUnlimitedFuelCommand
):
waypoint.tasks[0] = SetUnlimitedFuelCommand(False)
else:
waypoint.tasks.insert(0, SetUnlimitedFuelCommand(False))
if not isinstance(flight_plan, PatrollingFlightPlan):
flight_plan_type = flight_plan.__class__.__name__