Limit/Suppress AI radio callouts for player flights

This commit is contained in:
Raffson 2024-09-07 19:32:15 +02:00
parent 1f21ed0c1d
commit 242d1a14a7
No known key found for this signature in database
GPG Key ID: B0402B2C9B764D99
3 changed files with 31 additions and 0 deletions

View File

@ -29,6 +29,7 @@
* **[Mission Generation]** Introducing the Armed Recon flight plan, i.e. CAS against any Theater Ground Object
* **[Doctrine]** Ability to customize the startup time allocated to the player
* **[Mission Generation]** Ability to choose whether player flights can spawn on the sixpack or not
* **[Options]** New options in Mission Generator section: Limit AI radio callouts & Suppress AI radio callouts.
## Fixes
* **[UI/UX]** A-10A flights can be edited again

View File

@ -27,6 +27,9 @@ from dcs.task import (
PinpointStrike,
AFAC,
SetUnlimitedFuelCommand,
OptNoReportWaypointPass,
OptRadioUsageContact,
OptRadioSilence,
)
from dcs.unitgroup import FlyingGroup
@ -151,6 +154,19 @@ class AircraftBehavior:
# Do not restrict afterburner.
# https://forums.eagle.ru/forum/english/digital-combat-simulator/dcs-world-2-5/bugs-and-problems-ai/ai-ad/7121294-ai-stuck-at-high-aoa-after-making-sharp-turn-if-afterburner-is-restricted
if flight.client_count and flight.flight_type != FlightType.AEWC:
# configure AI radio usage for player flights to avoid AI spamming the channel
if flight.coalition.game.settings.silence_ai_radios:
group.points[0].tasks.append(OptRadioSilence(True))
elif flight.coalition.game.settings.limit_ai_radios:
# the pydcs api models this in a quite strange way for some reason,
# and has no proper support to choose "nothing"
radio_usage = OptRadioUsageContact()
radio_usage.params["action"]["params"]["value"] = "none;"
group.points[0].tasks.append(radio_usage)
group.points[0].tasks.append(OptNoReportWaypointPass(True))
@staticmethod
def configure_eplrs(group: FlyingGroup[Any], flight: Flight) -> None:
if flight.unit_type.eplrs_capable:

View File

@ -797,6 +797,20 @@ class Settings:
"which are known to work as of DCS World 2.9.4.53990."
),
)
limit_ai_radios: bool = boolean_option(
"Limit AI radio callouts",
page=MISSION_GENERATOR_PAGE,
section=GAMEPLAY_SECTION,
default=True,
detail="Avoids the target-detection callouts over the radio by AI. (except for AWACS flights)",
)
silence_ai_radios: bool = boolean_option(
"Suppress AI radio callouts",
page=MISSION_GENERATOR_PAGE,
section=GAMEPLAY_SECTION,
default=False,
detail="Keeps the AI silent at all times for flights with human pilots. (except for AWACS flights)",
)
# Mission specific
desired_player_mission_duration: timedelta = minutes_option(
"Desired mission duration",