mirror of
https://github.com/dcs-liberation/dcs_liberation.git
synced 2025-11-10 14:22:26 +00:00
Merge branch 'develop' of https://github.com/Khopa/dcs_liberation into develop
This commit is contained in:
commit
57edc5678c
@ -108,6 +108,15 @@ class Faction:
|
|||||||
# List of default livery overrides
|
# List of default livery overrides
|
||||||
liveries_overrides: Dict[UnitType, List[str]] = field(default_factory=dict)
|
liveries_overrides: Dict[UnitType, List[str]] = field(default_factory=dict)
|
||||||
|
|
||||||
|
#: Set to True if the faction should force the "Unrestricted satnav" option
|
||||||
|
#: for the mission. This option enables GPS for capable aircraft regardless
|
||||||
|
#: of the time period or operator. For example, the CJTF "countries" don't
|
||||||
|
#: appear to have GPS capability, so they need this.
|
||||||
|
#:
|
||||||
|
#: Note that this option cannot be set per-side. If either faction needs it,
|
||||||
|
#: both will use it.
|
||||||
|
unrestricted_satnav: bool = False
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls: Type[Faction], json: Dict[str, Any]) -> Faction:
|
def from_json(cls: Type[Faction], json: Dict[str, Any]) -> Faction:
|
||||||
|
|
||||||
@ -194,6 +203,8 @@ class Faction:
|
|||||||
if k is not None:
|
if k is not None:
|
||||||
faction.liveries_overrides[k] = [s.lower() for s in v]
|
faction.liveries_overrides[k] = [s.lower() for s in v]
|
||||||
|
|
||||||
|
faction.unrestricted_satnav = json.get("unrestricted_satnav", False)
|
||||||
|
|
||||||
return faction
|
return faction
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
|||||||
@ -1,6 +1,8 @@
|
|||||||
from dataclasses import dataclass, field
|
from dataclasses import dataclass, field
|
||||||
from typing import Dict, Optional
|
from typing import Dict, Optional
|
||||||
|
|
||||||
|
from dcs.forcedoptions import ForcedOptions
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class Settings:
|
class Settings:
|
||||||
@ -15,7 +17,7 @@ class Settings:
|
|||||||
player_skill: str = "Good"
|
player_skill: str = "Good"
|
||||||
enemy_skill: str = "Average"
|
enemy_skill: str = "Average"
|
||||||
enemy_vehicle_skill: str = "Average"
|
enemy_vehicle_skill: str = "Average"
|
||||||
map_coalition_visibility: str = "All Units"
|
map_coalition_visibility: ForcedOptions.Views = ForcedOptions.Views.All
|
||||||
labels: str = "Full"
|
labels: str = "Full"
|
||||||
only_player_takeoff: bool = True # Legacy parameter do not use
|
only_player_takeoff: bool = True # Legacy parameter do not use
|
||||||
night_disabled: bool = False
|
night_disabled: bool = False
|
||||||
|
|||||||
@ -1,17 +1,14 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
import logging
|
|
||||||
from typing import TYPE_CHECKING
|
|
||||||
from enum import IntEnum
|
from enum import IntEnum
|
||||||
|
from typing import TYPE_CHECKING
|
||||||
|
|
||||||
from dcs.mission import Mission
|
from dcs.mission import Mission
|
||||||
from dcs.forcedoptions import ForcedOptions
|
|
||||||
|
|
||||||
from .conflictgen import *
|
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from game.game import Game
|
from game.game import Game
|
||||||
|
|
||||||
|
|
||||||
class Labels(IntEnum):
|
class Labels(IntEnum):
|
||||||
Off = 0
|
Off = 0
|
||||||
Full = 1
|
Full = 1
|
||||||
@ -20,28 +17,18 @@ class Labels(IntEnum):
|
|||||||
|
|
||||||
|
|
||||||
class ForcedOptionsGenerator:
|
class ForcedOptionsGenerator:
|
||||||
def __init__(self, mission: Mission, game: Game):
|
def __init__(self, mission: Mission, game: Game) -> None:
|
||||||
self.mission = mission
|
self.mission = mission
|
||||||
self.game = game
|
self.game = game
|
||||||
|
|
||||||
def _set_options_view(self):
|
def _set_options_view(self) -> None:
|
||||||
|
self.mission.forced_options.options_view = self.game.settings.map_coalition_visibility
|
||||||
|
|
||||||
if self.game.settings.map_coalition_visibility == ForcedOptions.Views.All:
|
def _set_external_views(self) -> None:
|
||||||
self.mission.forced_options.options_view = ForcedOptions.Views.All
|
|
||||||
elif self.game.settings.map_coalition_visibility == ForcedOptions.Views.Allies:
|
|
||||||
self.mission.forced_options.options_view = ForcedOptions.Views.Allies
|
|
||||||
elif self.game.settings.map_coalition_visibility == ForcedOptions.Views.OnlyAllies:
|
|
||||||
self.mission.forced_options.options_view = ForcedOptions.Views.OnlyAllies
|
|
||||||
elif self.game.settings.map_coalition_visibility == ForcedOptions.Views.MyAircraft:
|
|
||||||
self.mission.forced_options.options_view = ForcedOptions.Views.MyAircraft
|
|
||||||
elif self.game.settings.map_coalition_visibility == ForcedOptions.Views.OnlyMap:
|
|
||||||
self.mission.forced_options.options_view = ForcedOptions.Views.OnlyMap
|
|
||||||
|
|
||||||
def _set_external_views(self):
|
|
||||||
if not self.game.settings.external_views_allowed:
|
if not self.game.settings.external_views_allowed:
|
||||||
self.mission.forced_options.external_views = self.game.settings.external_views_allowed
|
self.mission.forced_options.external_views = self.game.settings.external_views_allowed
|
||||||
|
|
||||||
def _set_labels(self):
|
def _set_labels(self) -> None:
|
||||||
if self.game.settings.labels == "Abbreviated":
|
if self.game.settings.labels == "Abbreviated":
|
||||||
self.mission.forced_options.labels = int(Labels.Abbreviated)
|
self.mission.forced_options.labels = int(Labels.Abbreviated)
|
||||||
elif self.game.settings.labels == "Dot Only":
|
elif self.game.settings.labels == "Dot Only":
|
||||||
@ -49,10 +36,14 @@ class ForcedOptionsGenerator:
|
|||||||
elif self.game.settings.labels == "Off":
|
elif self.game.settings.labels == "Off":
|
||||||
self.mission.forced_options.labels = int(Labels.Off)
|
self.mission.forced_options.labels = int(Labels.Off)
|
||||||
|
|
||||||
|
def _set_unrestricted_satnav(self) -> None:
|
||||||
|
blue = self.game.player_faction
|
||||||
|
red = self.game.enemy_faction
|
||||||
|
if blue.unrestricted_satnav or red.unrestricted_satnav:
|
||||||
|
self.mission.forced_options.unrestricted_satnav = True
|
||||||
|
|
||||||
def generate(self):
|
def generate(self):
|
||||||
self._set_options_view()
|
self._set_options_view()
|
||||||
self._set_external_views()
|
self._set_external_views()
|
||||||
self._set_labels()
|
self._set_labels()
|
||||||
|
self._set_unrestricted_satnav()
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -96,5 +96,6 @@
|
|||||||
"ArleighBurkeGroupGenerator"
|
"ArleighBurkeGroupGenerator"
|
||||||
],
|
],
|
||||||
"has_jtac": true,
|
"has_jtac": true,
|
||||||
"jtac_unit": "MQ_9_Reaper"
|
"jtac_unit": "MQ_9_Reaper",
|
||||||
|
"unrestricted_satnav": true
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user