Merge branch 'develop' of https://github.com/Khopa/dcs_liberation into develop

This commit is contained in:
walterroach 2020-11-22 16:41:59 -06:00
commit 57edc5678c
4 changed files with 30 additions and 25 deletions

View File

@ -108,6 +108,15 @@ class Faction:
# List of default livery overrides
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
def from_json(cls: Type[Faction], json: Dict[str, Any]) -> Faction:
@ -194,6 +203,8 @@ class Faction:
if k is not None:
faction.liveries_overrides[k] = [s.lower() for s in v]
faction.unrestricted_satnav = json.get("unrestricted_satnav", False)
return faction
@property

View File

@ -1,6 +1,8 @@
from dataclasses import dataclass, field
from typing import Dict, Optional
from dcs.forcedoptions import ForcedOptions
@dataclass
class Settings:
@ -15,7 +17,7 @@ class Settings:
player_skill: str = "Good"
enemy_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"
only_player_takeoff: bool = True # Legacy parameter do not use
night_disabled: bool = False

View File

@ -1,17 +1,14 @@
from __future__ import annotations
import logging
from typing import TYPE_CHECKING
from enum import IntEnum
from typing import TYPE_CHECKING
from dcs.mission import Mission
from dcs.forcedoptions import ForcedOptions
from .conflictgen import *
if TYPE_CHECKING:
from game.game import Game
class Labels(IntEnum):
Off = 0
Full = 1
@ -20,28 +17,18 @@ class Labels(IntEnum):
class ForcedOptionsGenerator:
def __init__(self, mission: Mission, game: Game):
def __init__(self, mission: Mission, game: Game) -> None:
self.mission = mission
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:
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):
def _set_external_views(self) -> None:
if not 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":
self.mission.forced_options.labels = int(Labels.Abbreviated)
elif self.game.settings.labels == "Dot Only":
@ -49,10 +36,14 @@ class ForcedOptionsGenerator:
elif self.game.settings.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):
self._set_options_view()
self._set_external_views()
self._set_labels()
self._set_unrestricted_satnav()

View File

@ -96,5 +96,6 @@
"ArleighBurkeGroupGenerator"
],
"has_jtac": true,
"jtac_unit": "MQ_9_Reaper"
"jtac_unit": "MQ_9_Reaper",
"unrestricted_satnav": true
}