mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Merge branch 'f16i-mod-support-v2.2' of https://github.com/dcs-retribution/dcs-retribution into f16i-mod-support-v2.2
This commit is contained in:
commit
c1b7911d56
@ -26,7 +26,6 @@ the patreon link will keep pointing to [Khopa's](https://github.com/Khopa) accou
|
|||||||
|
|
||||||
Currently, Retribution supports the following new features:
|
Currently, Retribution supports the following new features:
|
||||||
* A livery selector in the air wing configuration dialog
|
* A livery selector in the air wing configuration dialog
|
||||||
* Fixed mod support (still unfixed in Liberation)
|
|
||||||
* Support for campaigns with quad-point triggers
|
* Support for campaigns with quad-point triggers
|
||||||
* Support for the F-15D 'Baz' mod
|
* Support for the F-15D 'Baz' mod
|
||||||
* Support for the Su-30 mod
|
* Support for the Su-30 mod
|
||||||
|
|||||||
@ -2,13 +2,16 @@
|
|||||||
|
|
||||||
## Features/Improvements
|
## Features/Improvements
|
||||||
* **[Mission Generation]** Add option to configure the maximum front-line length in settings
|
* **[Mission Generation]** Add option to configure the maximum front-line length in settings
|
||||||
* **[Mission Generation]** Variable flight-size (2/3/4-ship) for BAI/ANTISHIP/DEAD/STRIKE (main) missions
|
* **[Mission Generation]** Variable flight-size (2/3/4-ship) for
|
||||||
|
BAI/ANTISHIP/DEAD/STRIKE/BARCAP/CAS/OCA/AIR-ASSAULT (main) missions
|
||||||
* **[Modding]** Support for F-15D 'Baz' mod version 1.0
|
* **[Modding]** Support for F-15D 'Baz' mod version 1.0
|
||||||
* **[Modding]** Support for Su-30 mod version 2.01B
|
* **[Modding]** Support for Su-30 mod version 2.01B
|
||||||
|
* **[Modding]** Support for A-6A Intruder version 2.7.5.01
|
||||||
* **[Modding]** Support for F-4B Phantom II mod version v2.7.10.02, patch 2022.10.02
|
* **[Modding]** Support for F-4B Phantom II mod version v2.7.10.02, patch 2022.10.02
|
||||||
* **[Modding]** Support for F-100 Super Sabre mod versions v2.7.18.01 & 2.7.18.30765 and patches 30.09.22 & 09.10.22
|
* **[Modding]** Support for F-100 Super Sabre mod versions v2.7.18.01 & 2.7.18.30765 and patches 30.09.22 & 09.10.22
|
||||||
* **[Modding]** Support for F-105 mod version 2.7.12.23x
|
* **[Modding]** Support for F-105 mod version 2.7.12.23x
|
||||||
* **[Modding]** Support IDF Mod Project F-16I Sufa & F-16D v2.2 mod
|
* **[Modding]** Support IDF Mod Project F-16I Sufa & F-16D v2.2 mod
|
||||||
|
* **[Modding]** Support for F-84G mod version 2.5.7.01
|
||||||
* **[Modding]** Updated F-104 mod version support to 2.7.11.222.01
|
* **[Modding]** Updated F-104 mod version support to 2.7.11.222.01
|
||||||
* **[UI]** Add livery selector to Air Wing Configurator's squadrons.
|
* **[UI]** Add livery selector to Air Wing Configurator's squadrons.
|
||||||
* **[Performance]** Added performance option: Maximum front-line unit supply per control point.
|
* **[Performance]** Added performance option: Maximum front-line unit supply per control point.
|
||||||
@ -69,6 +72,7 @@ Saves from 5.x are not compatible with 6.0.
|
|||||||
* **[Squadrons]** Fixed issue in air wing configuration that would allow squadrons to be created with no home base if no base was available.
|
* **[Squadrons]** Fixed issue in air wing configuration that would allow squadrons to be created with no home base if no base was available.
|
||||||
* **[UI]** Fixed and issue where the liberation main exe was still running after application close.
|
* **[UI]** Fixed and issue where the liberation main exe was still running after application close.
|
||||||
* **[UI]** Disable player slots for non-flyable aircraft.
|
* **[UI]** Disable player slots for non-flyable aircraft.
|
||||||
|
* **[UI]** Add vanilla theme weather and time of day icons
|
||||||
|
|
||||||
|
|
||||||
# 5.2.0
|
# 5.2.0
|
||||||
|
|||||||
731
client/package-lock.json
generated
731
client/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -69,7 +69,9 @@
|
|||||||
"electron": "^21.1.0",
|
"electron": "^21.1.0",
|
||||||
"electron-is-dev": "^2.0.0",
|
"electron-is-dev": "^2.0.0",
|
||||||
"generate-license-file": "^2.0.0",
|
"generate-license-file": "^2.0.0",
|
||||||
|
"got": "^11.8.5",
|
||||||
"license-checker": "^25.0.1",
|
"license-checker": "^25.0.1",
|
||||||
|
"nth-check": "^2.0.1",
|
||||||
"react-scripts": "5.0.1",
|
"react-scripts": "5.0.1",
|
||||||
"ts-node": "^10.9.1",
|
"ts-node": "^10.9.1",
|
||||||
"wait-on": "^6.0.1"
|
"wait-on": "^6.0.1"
|
||||||
|
|||||||
@ -2,8 +2,9 @@ from __future__ import annotations
|
|||||||
|
|
||||||
import random
|
import random
|
||||||
from typing import TYPE_CHECKING, Iterator, Optional
|
from typing import TYPE_CHECKING, Iterator, Optional
|
||||||
from game.data.groups import GroupTask
|
|
||||||
from game.armedforces.forcegroup import ForceGroup
|
from game.armedforces.forcegroup import ForceGroup
|
||||||
|
from game.data.groups import GroupTask
|
||||||
from game.layout import LAYOUTS
|
from game.layout import LAYOUTS
|
||||||
from game.profiling import logged_duration
|
from game.profiling import logged_duration
|
||||||
|
|
||||||
|
|||||||
@ -10,19 +10,18 @@ import yaml
|
|||||||
from dcs.unittype import ShipType, StaticType, UnitType as DcsUnitType, VehicleType
|
from dcs.unittype import ShipType, StaticType, UnitType as DcsUnitType, VehicleType
|
||||||
|
|
||||||
from game.data.groups import GroupTask
|
from game.data.groups import GroupTask
|
||||||
from game.data.radar_db import UNITS_WITH_RADAR
|
|
||||||
from game.dcs.groundunittype import GroundUnitType
|
from game.dcs.groundunittype import GroundUnitType
|
||||||
from game.dcs.helpers import static_type_from_name
|
from game.dcs.helpers import static_type_from_name
|
||||||
from game.dcs.shipunittype import ShipUnitType
|
from game.dcs.shipunittype import ShipUnitType
|
||||||
from game.dcs.unittype import UnitType
|
from game.dcs.unittype import UnitType
|
||||||
|
from game.layout import LAYOUTS
|
||||||
|
from game.layout.layout import TgoLayout, TgoLayoutUnitGroup
|
||||||
|
from game.point_with_heading import PointWithHeading
|
||||||
from game.theater.theatergroundobject import (
|
from game.theater.theatergroundobject import (
|
||||||
IadsGroundObject,
|
IadsGroundObject,
|
||||||
IadsBuildingGroundObject,
|
IadsBuildingGroundObject,
|
||||||
NavalGroundObject,
|
NavalGroundObject,
|
||||||
)
|
)
|
||||||
from game.layout import LAYOUTS
|
|
||||||
from game.layout.layout import TgoLayout, TgoLayoutUnitGroup
|
|
||||||
from game.point_with_heading import PointWithHeading
|
|
||||||
from game.theater.theatergroup import IadsGroundGroup, IadsRole, TheaterGroup
|
from game.theater.theatergroup import IadsGroundGroup, IadsRole, TheaterGroup
|
||||||
from game.utils import escape_string_for_lua
|
from game.utils import escape_string_for_lua
|
||||||
|
|
||||||
|
|||||||
@ -121,6 +121,7 @@ from dcs.unittype import FlyingType
|
|||||||
|
|
||||||
from game.dcs.aircrafttype import AircraftType
|
from game.dcs.aircrafttype import AircraftType
|
||||||
from pydcs_extensions.a4ec.a4ec import A_4E_C
|
from pydcs_extensions.a4ec.a4ec import A_4E_C
|
||||||
|
from pydcs_extensions.a6a.a6a import VSN_A6A
|
||||||
from pydcs_extensions.f100.f100 import VSN_F100
|
from pydcs_extensions.f100.f100 import VSN_F100
|
||||||
from pydcs_extensions.f104.f104 import VSN_F104C, VSN_F104G, VSN_F104S, VSN_F104S_AG
|
from pydcs_extensions.f104.f104 import VSN_F104C, VSN_F104G, VSN_F104S, VSN_F104S_AG
|
||||||
from pydcs_extensions.f105.f105 import VSN_F105D, VSN_F105G
|
from pydcs_extensions.f105.f105 import VSN_F105D, VSN_F105G
|
||||||
@ -135,6 +136,7 @@ from pydcs_extensions.f16i_idf.f16i_idf import (
|
|||||||
)
|
)
|
||||||
from pydcs_extensions.f22a.f22a import F_22A
|
from pydcs_extensions.f22a.f22a import F_22A
|
||||||
from pydcs_extensions.f4b.f4b import VSN_F4B
|
from pydcs_extensions.f4b.f4b import VSN_F4B
|
||||||
|
from pydcs_extensions.f84g.f84g import VSN_F84G
|
||||||
from pydcs_extensions.hercules.hercules import Hercules
|
from pydcs_extensions.hercules.hercules import Hercules
|
||||||
from pydcs_extensions.jas39.jas39 import JAS39Gripen, JAS39Gripen_AG
|
from pydcs_extensions.jas39.jas39 import JAS39Gripen, JAS39Gripen_AG
|
||||||
from pydcs_extensions.su30.su30 import Su_30MKA, Su_30MKI, Su_30MKM, Su_30SM
|
from pydcs_extensions.su30.su30 import Su_30MKA, Su_30MKI, Su_30MKM, Su_30SM
|
||||||
@ -207,6 +209,7 @@ CAP_CAPABLE = [
|
|||||||
MiG_15bis,
|
MiG_15bis,
|
||||||
C_101CC,
|
C_101CC,
|
||||||
L_39ZA,
|
L_39ZA,
|
||||||
|
VSN_F84G,
|
||||||
P_51D_30_NA,
|
P_51D_30_NA,
|
||||||
P_51D,
|
P_51D,
|
||||||
SpitfireLFMkIXCW,
|
SpitfireLFMkIXCW,
|
||||||
@ -233,6 +236,7 @@ CAS_CAPABLE = [
|
|||||||
Su_25,
|
Su_25,
|
||||||
F_15D,
|
F_15D,
|
||||||
F_15E,
|
F_15E,
|
||||||
|
F_16A,
|
||||||
F_16C_50,
|
F_16C_50,
|
||||||
F_16I,
|
F_16I,
|
||||||
F_16D_Barak,
|
F_16D_Barak,
|
||||||
@ -256,7 +260,6 @@ CAS_CAPABLE = [
|
|||||||
Su_17M4,
|
Su_17M4,
|
||||||
Su_33,
|
Su_33,
|
||||||
F_4E,
|
F_4E,
|
||||||
VSN_F4B,
|
|
||||||
S_3B,
|
S_3B,
|
||||||
Su_30,
|
Su_30,
|
||||||
Su_30MKA,
|
Su_30MKA,
|
||||||
@ -296,12 +299,6 @@ CAS_CAPABLE = [
|
|||||||
C_101CC,
|
C_101CC,
|
||||||
L_39ZA,
|
L_39ZA,
|
||||||
UH_1H,
|
UH_1H,
|
||||||
VSN_F105G,
|
|
||||||
VSN_F105D,
|
|
||||||
VSN_F104S_AG,
|
|
||||||
VSN_F104G,
|
|
||||||
VSN_F104C,
|
|
||||||
VSN_F100,
|
|
||||||
A_20G,
|
A_20G,
|
||||||
Ju_88A4,
|
Ju_88A4,
|
||||||
P_47D_40,
|
P_47D_40,
|
||||||
@ -319,6 +316,15 @@ CAS_CAPABLE = [
|
|||||||
WingLoong_I,
|
WingLoong_I,
|
||||||
MQ_9_Reaper,
|
MQ_9_Reaper,
|
||||||
RQ_1A_Predator,
|
RQ_1A_Predator,
|
||||||
|
VSN_A6A,
|
||||||
|
VSN_F100,
|
||||||
|
VSN_F105G,
|
||||||
|
VSN_F105D,
|
||||||
|
VSN_F104S_AG,
|
||||||
|
VSN_F104G,
|
||||||
|
VSN_F104C,
|
||||||
|
VSN_F4B,
|
||||||
|
VSN_F84G,
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
@ -361,6 +367,7 @@ DEAD_CAPABLE = SEAD_CAPABLE + [
|
|||||||
AJS37,
|
AJS37,
|
||||||
F_14B,
|
F_14B,
|
||||||
F_14A_135_GR,
|
F_14A_135_GR,
|
||||||
|
F_16A,
|
||||||
JAS39Gripen_AG,
|
JAS39Gripen_AG,
|
||||||
B_1B,
|
B_1B,
|
||||||
B_52H,
|
B_52H,
|
||||||
@ -369,11 +376,6 @@ DEAD_CAPABLE = SEAD_CAPABLE + [
|
|||||||
H_6J,
|
H_6J,
|
||||||
A_20G,
|
A_20G,
|
||||||
Ju_88A4,
|
Ju_88A4,
|
||||||
VSN_F105D,
|
|
||||||
VSN_F104S_AG,
|
|
||||||
VSN_F104G,
|
|
||||||
VSN_F104C,
|
|
||||||
VSN_F100,
|
|
||||||
P_47D_40,
|
P_47D_40,
|
||||||
P_47D_30bl1,
|
P_47D_30bl1,
|
||||||
P_47D_30,
|
P_47D_30,
|
||||||
@ -385,6 +387,13 @@ DEAD_CAPABLE = SEAD_CAPABLE + [
|
|||||||
Bf_109K_4,
|
Bf_109K_4,
|
||||||
FW_190D9,
|
FW_190D9,
|
||||||
FW_190A8,
|
FW_190A8,
|
||||||
|
VSN_A6A,
|
||||||
|
VSN_F105D,
|
||||||
|
VSN_F104S_AG,
|
||||||
|
VSN_F104G,
|
||||||
|
VSN_F104C,
|
||||||
|
VSN_F100,
|
||||||
|
VSN_F84G,
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
@ -433,7 +442,6 @@ STRIKE_CAPABLE = [
|
|||||||
MiG_29G,
|
MiG_29G,
|
||||||
MiG_29A,
|
MiG_29A,
|
||||||
F_4E,
|
F_4E,
|
||||||
VSN_F4B,
|
|
||||||
A_10C_2,
|
A_10C_2,
|
||||||
A_10C,
|
A_10C,
|
||||||
S_3B,
|
S_3B,
|
||||||
@ -448,8 +456,6 @@ STRIKE_CAPABLE = [
|
|||||||
Mirage_F1M_EE,
|
Mirage_F1M_EE,
|
||||||
Mirage_F1CT,
|
Mirage_F1CT,
|
||||||
MiG_27K,
|
MiG_27K,
|
||||||
VSN_F105G,
|
|
||||||
VSN_F105D,
|
|
||||||
MiG_21Bis,
|
MiG_21Bis,
|
||||||
MiG_15bis,
|
MiG_15bis,
|
||||||
F_5E_3,
|
F_5E_3,
|
||||||
@ -459,10 +465,6 @@ STRIKE_CAPABLE = [
|
|||||||
B_17G,
|
B_17G,
|
||||||
A_20G,
|
A_20G,
|
||||||
Ju_88A4,
|
Ju_88A4,
|
||||||
VSN_F104S_AG,
|
|
||||||
VSN_F104G,
|
|
||||||
VSN_F104C,
|
|
||||||
VSN_F100,
|
|
||||||
P_47D_40,
|
P_47D_40,
|
||||||
P_47D_30bl1,
|
P_47D_30bl1,
|
||||||
P_47D_30,
|
P_47D_30,
|
||||||
@ -474,6 +476,15 @@ STRIKE_CAPABLE = [
|
|||||||
Bf_109K_4,
|
Bf_109K_4,
|
||||||
FW_190D9,
|
FW_190D9,
|
||||||
FW_190A8,
|
FW_190A8,
|
||||||
|
VSN_A6A,
|
||||||
|
VSN_F100,
|
||||||
|
VSN_F104S_AG,
|
||||||
|
VSN_F104G,
|
||||||
|
VSN_F104C,
|
||||||
|
VSN_F105G,
|
||||||
|
VSN_F105D,
|
||||||
|
VSN_F4B,
|
||||||
|
VSN_F84G,
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
@ -482,6 +493,7 @@ ANTISHIP_CAPABLE = [
|
|||||||
Tu_142,
|
Tu_142,
|
||||||
Tu_22M3,
|
Tu_22M3,
|
||||||
H_6J,
|
H_6J,
|
||||||
|
F_16A,
|
||||||
FA_18C_hornet,
|
FA_18C_hornet,
|
||||||
JAS39Gripen_AG,
|
JAS39Gripen_AG,
|
||||||
Su_24M,
|
Su_24M,
|
||||||
@ -551,7 +563,6 @@ RUNWAY_ATTACK_CAPABLE = [
|
|||||||
MiG_29G,
|
MiG_29G,
|
||||||
MiG_29A,
|
MiG_29A,
|
||||||
F_4E,
|
F_4E,
|
||||||
VSN_F4B,
|
|
||||||
A_10C_2,
|
A_10C_2,
|
||||||
A_10C,
|
A_10C,
|
||||||
S_3B,
|
S_3B,
|
||||||
@ -566,8 +577,6 @@ RUNWAY_ATTACK_CAPABLE = [
|
|||||||
Mirage_F1M_EE,
|
Mirage_F1M_EE,
|
||||||
Mirage_F1CT,
|
Mirage_F1CT,
|
||||||
MiG_27K,
|
MiG_27K,
|
||||||
VSN_F105G,
|
|
||||||
VSN_F105D,
|
|
||||||
MiG_21Bis,
|
MiG_21Bis,
|
||||||
MiG_15bis,
|
MiG_15bis,
|
||||||
F_5E_3,
|
F_5E_3,
|
||||||
@ -577,10 +586,6 @@ RUNWAY_ATTACK_CAPABLE = [
|
|||||||
B_17G,
|
B_17G,
|
||||||
A_20G,
|
A_20G,
|
||||||
Ju_88A4,
|
Ju_88A4,
|
||||||
VSN_F104S_AG,
|
|
||||||
VSN_F104G,
|
|
||||||
VSN_F104C,
|
|
||||||
VSN_F100,
|
|
||||||
P_47D_40,
|
P_47D_40,
|
||||||
P_47D_30bl1,
|
P_47D_30bl1,
|
||||||
P_47D_30,
|
P_47D_30,
|
||||||
@ -592,6 +597,14 @@ RUNWAY_ATTACK_CAPABLE = [
|
|||||||
Bf_109K_4,
|
Bf_109K_4,
|
||||||
FW_190D9,
|
FW_190D9,
|
||||||
FW_190A8,
|
FW_190A8,
|
||||||
|
VSN_A6A,
|
||||||
|
VSN_F105G,
|
||||||
|
VSN_F105D,
|
||||||
|
VSN_F104S_AG,
|
||||||
|
VSN_F104G,
|
||||||
|
VSN_F104C,
|
||||||
|
VSN_F100,
|
||||||
|
VSN_F4B,
|
||||||
]
|
]
|
||||||
|
|
||||||
# For any aircraft that isn't necessarily directly involved in strike
|
# For any aircraft that isn't necessarily directly involved in strike
|
||||||
|
|||||||
@ -3,7 +3,7 @@ from __future__ import annotations
|
|||||||
import datetime
|
import datetime
|
||||||
import logging
|
import logging
|
||||||
from collections.abc import Iterable
|
from collections.abc import Iterable
|
||||||
from typing import Iterator, Mapping, Optional, TYPE_CHECKING, Type, Dict, Any
|
from typing import Iterator, Mapping, Optional, TYPE_CHECKING, Type, Dict
|
||||||
|
|
||||||
from dcs.unittype import FlyingType
|
from dcs.unittype import FlyingType
|
||||||
|
|
||||||
|
|||||||
@ -3,8 +3,8 @@ import logging
|
|||||||
import re
|
import re
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from dcs.unitgroup import FlyingGroup
|
|
||||||
from dcs.flyingunit import FlyingUnit
|
from dcs.flyingunit import FlyingUnit
|
||||||
|
from dcs.unitgroup import FlyingGroup
|
||||||
|
|
||||||
|
|
||||||
def callsign_for_support_unit(group: FlyingGroup[Any]) -> str:
|
def callsign_for_support_unit(group: FlyingGroup[Any]) -> str:
|
||||||
|
|||||||
@ -1,13 +1,12 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
import dataclasses
|
|
||||||
import logging
|
import logging
|
||||||
from typing import Optional, TYPE_CHECKING, Dict, Union
|
from typing import Optional, TYPE_CHECKING
|
||||||
|
|
||||||
from game.squadrons import Squadron
|
from game.squadrons import Squadron
|
||||||
from game.squadrons.squadrondef import SquadronDef
|
from game.squadrons.squadrondef import SquadronDef
|
||||||
from ..ato.flighttype import FlightType
|
|
||||||
from .campaignairwingconfig import CampaignAirWingConfig, SquadronConfig
|
from .campaignairwingconfig import CampaignAirWingConfig, SquadronConfig
|
||||||
|
from ..ato.flighttype import FlightType
|
||||||
from ..dcs.aircrafttype import AircraftType
|
from ..dcs.aircrafttype import AircraftType
|
||||||
from ..theater import ControlPoint
|
from ..theater import ControlPoint
|
||||||
|
|
||||||
|
|||||||
@ -4,12 +4,12 @@ import itertools
|
|||||||
import random
|
import random
|
||||||
from typing import Optional, TYPE_CHECKING
|
from typing import Optional, TYPE_CHECKING
|
||||||
|
|
||||||
|
from game.ato.ai_flight_planner_db import aircraft_for_task, tasks_for_aircraft
|
||||||
from game.ato.flighttype import FlightType
|
from game.ato.flighttype import FlightType
|
||||||
from game.dcs.aircrafttype import AircraftType
|
from game.dcs.aircrafttype import AircraftType
|
||||||
from game.squadrons.operatingbases import OperatingBases
|
from game.squadrons.operatingbases import OperatingBases
|
||||||
from game.squadrons.squadrondef import SquadronDef
|
from game.squadrons.squadrondef import SquadronDef
|
||||||
from game.theater import ControlPoint
|
from game.theater import ControlPoint
|
||||||
from game.ato.ai_flight_planner_db import aircraft_for_task, tasks_for_aircraft
|
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from game.factions.faction import Faction
|
from game.factions.faction import Faction
|
||||||
|
|||||||
@ -2,8 +2,8 @@ from dataclasses import field, dataclass
|
|||||||
from enum import Enum, auto
|
from enum import Enum, auto
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
from game.theater import MissionTarget
|
|
||||||
from game.ato.flighttype import FlightType
|
from game.ato.flighttype import FlightType
|
||||||
|
from game.theater import MissionTarget
|
||||||
|
|
||||||
|
|
||||||
class EscortType(Enum):
|
class EscortType(Enum):
|
||||||
|
|||||||
@ -6,9 +6,9 @@ from collections import defaultdict
|
|||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
from typing import Iterator, Dict, TYPE_CHECKING
|
from typing import Iterator, Dict, TYPE_CHECKING
|
||||||
|
|
||||||
from game.theater import MissionTarget
|
|
||||||
from game.ato.flighttype import FlightType
|
from game.ato.flighttype import FlightType
|
||||||
from game.ato.traveltime import TotEstimator
|
from game.ato.traveltime import TotEstimator
|
||||||
|
from game.theater import MissionTarget
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from game.coalition import Coalition
|
from game.coalition import Coalition
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import operator
|
|||||||
from collections.abc import Iterable, Iterator
|
from collections.abc import Iterable, Iterator
|
||||||
from typing import TYPE_CHECKING, TypeVar
|
from typing import TYPE_CHECKING, TypeVar
|
||||||
|
|
||||||
|
from game.ato.closestairfields import ClosestAirfields, ObjectiveDistanceCache
|
||||||
from game.theater import (
|
from game.theater import (
|
||||||
Airfield,
|
Airfield,
|
||||||
ControlPoint,
|
ControlPoint,
|
||||||
@ -20,7 +21,6 @@ from game.theater.theatergroundobject import (
|
|||||||
IadsBuildingGroundObject,
|
IadsBuildingGroundObject,
|
||||||
)
|
)
|
||||||
from game.utils import meters, nautical_miles
|
from game.utils import meters, nautical_miles
|
||||||
from game.ato.closestairfields import ClosestAirfields, ObjectiveDistanceCache
|
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from game import Game
|
from game import Game
|
||||||
|
|||||||
@ -4,8 +4,8 @@ from dataclasses import dataclass
|
|||||||
from game.commander.tasks.compound.attackairinfrastructure import (
|
from game.commander.tasks.compound.attackairinfrastructure import (
|
||||||
AttackAirInfrastructure,
|
AttackAirInfrastructure,
|
||||||
)
|
)
|
||||||
from game.commander.tasks.compound.attackbuildings import AttackBuildings
|
|
||||||
from game.commander.tasks.compound.attackbattlepositions import AttackBattlePositions
|
from game.commander.tasks.compound.attackbattlepositions import AttackBattlePositions
|
||||||
|
from game.commander.tasks.compound.attackbuildings import AttackBuildings
|
||||||
from game.commander.tasks.compound.capturebases import CaptureBases
|
from game.commander.tasks.compound.capturebases import CaptureBases
|
||||||
from game.commander.tasks.compound.defendbases import DefendBases
|
from game.commander.tasks.compound.defendbases import DefendBases
|
||||||
from game.commander.tasks.compound.degradeiads import DegradeIads
|
from game.commander.tasks.compound.degradeiads import DegradeIads
|
||||||
|
|||||||
@ -2,10 +2,10 @@ from __future__ import annotations
|
|||||||
|
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
|
|
||||||
|
from game.ato.flighttype import FlightType
|
||||||
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
||||||
from game.commander.theaterstate import TheaterState
|
from game.commander.theaterstate import TheaterState
|
||||||
from game.theater import MissionTarget
|
from game.theater import MissionTarget
|
||||||
from game.ato.flighttype import FlightType
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
|
|||||||
@ -3,10 +3,10 @@ from __future__ import annotations
|
|||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from random import randint
|
from random import randint
|
||||||
|
|
||||||
|
from game.ato.flighttype import FlightType
|
||||||
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
||||||
from game.commander.theaterstate import TheaterState
|
from game.commander.theaterstate import TheaterState
|
||||||
from game.theater import ControlPoint
|
from game.theater import ControlPoint
|
||||||
from game.ato.flighttype import FlightType
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
|
|||||||
@ -3,11 +3,11 @@ from __future__ import annotations
|
|||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from random import randint
|
from random import randint
|
||||||
|
|
||||||
|
from game.ato.flighttype import FlightType
|
||||||
from game.commander.missionproposals import EscortType
|
from game.commander.missionproposals import EscortType
|
||||||
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
||||||
from game.commander.theaterstate import TheaterState
|
from game.commander.theaterstate import TheaterState
|
||||||
from game.theater.theatergroundobject import NavalGroundObject
|
from game.theater.theatergroundobject import NavalGroundObject
|
||||||
from game.ato.flighttype import FlightType
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
|
|||||||
@ -3,10 +3,10 @@ from __future__ import annotations
|
|||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from random import randint
|
from random import randint
|
||||||
|
|
||||||
|
from game.ato.flighttype import FlightType
|
||||||
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
||||||
from game.commander.theaterstate import TheaterState
|
from game.commander.theaterstate import TheaterState
|
||||||
from game.transfers import CargoShip
|
from game.transfers import CargoShip
|
||||||
from game.ato.flighttype import FlightType
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
|
|||||||
@ -2,10 +2,10 @@ from __future__ import annotations
|
|||||||
|
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
|
|
||||||
|
from game.ato.flighttype import FlightType
|
||||||
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
||||||
from game.commander.theaterstate import TheaterState
|
from game.commander.theaterstate import TheaterState
|
||||||
from game.theater.theatergroundobject import VehicleGroupGroundObject
|
from game.theater.theatergroundobject import VehicleGroupGroundObject
|
||||||
from game.ato.flighttype import FlightType
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
|
|||||||
@ -3,10 +3,10 @@ from __future__ import annotations
|
|||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from random import randint
|
from random import randint
|
||||||
|
|
||||||
|
from game.ato.flighttype import FlightType
|
||||||
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
||||||
from game.commander.theaterstate import TheaterState
|
from game.commander.theaterstate import TheaterState
|
||||||
from game.theater import ControlPoint
|
from game.theater import ControlPoint
|
||||||
from game.ato.flighttype import FlightType
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
|
|||||||
@ -3,10 +3,10 @@ from __future__ import annotations
|
|||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from random import randint
|
from random import randint
|
||||||
|
|
||||||
|
from game.ato.flighttype import FlightType
|
||||||
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
||||||
from game.commander.theaterstate import TheaterState
|
from game.commander.theaterstate import TheaterState
|
||||||
from game.theater import FrontLine
|
from game.theater import FrontLine
|
||||||
from game.ato.flighttype import FlightType
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
|
|||||||
@ -2,11 +2,10 @@ from __future__ import annotations
|
|||||||
|
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
|
|
||||||
|
from game.ato.flighttype import FlightType
|
||||||
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
||||||
from game.commander.theaterstate import TheaterState
|
from game.commander.theaterstate import TheaterState
|
||||||
from game.data.doctrine import Doctrine
|
|
||||||
from game.transfers import Convoy
|
from game.transfers import Convoy
|
||||||
from game.ato.flighttype import FlightType
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
|
|||||||
@ -2,11 +2,11 @@ from __future__ import annotations
|
|||||||
|
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
|
|
||||||
|
from game.ato.flighttype import FlightType
|
||||||
from game.commander.missionproposals import EscortType
|
from game.commander.missionproposals import EscortType
|
||||||
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
||||||
from game.commander.theaterstate import TheaterState
|
from game.commander.theaterstate import TheaterState
|
||||||
from game.theater.theatergroundobject import IadsGroundObject
|
from game.theater.theatergroundobject import IadsGroundObject
|
||||||
from game.ato.flighttype import FlightType
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
|
|||||||
@ -3,10 +3,10 @@ from __future__ import annotations
|
|||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from random import randint
|
from random import randint
|
||||||
|
|
||||||
|
from game.ato.flighttype import FlightType
|
||||||
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
||||||
from game.commander.theaterstate import TheaterState
|
from game.commander.theaterstate import TheaterState
|
||||||
from game.theater import ControlPoint
|
from game.theater import ControlPoint
|
||||||
from game.ato.flighttype import FlightType
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
|
|||||||
@ -2,10 +2,10 @@ from __future__ import annotations
|
|||||||
|
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
|
|
||||||
|
from game.ato.flighttype import FlightType
|
||||||
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
||||||
from game.commander.theaterstate import TheaterState
|
from game.commander.theaterstate import TheaterState
|
||||||
from game.theater import MissionTarget
|
from game.theater import MissionTarget
|
||||||
from game.ato.flighttype import FlightType
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
|
|||||||
@ -1,12 +1,11 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from typing import Any
|
|
||||||
|
|
||||||
|
from game.ato.flighttype import FlightType
|
||||||
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
||||||
from game.commander.theaterstate import TheaterState
|
from game.commander.theaterstate import TheaterState
|
||||||
from game.theater.theatergroundobject import TheaterGroundObject
|
from game.theater.theatergroundobject import TheaterGroundObject
|
||||||
from game.ato.flighttype import FlightType
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
|
|||||||
@ -3,9 +3,9 @@ from typing import Optional, Type
|
|||||||
from dcs.helicopters import helicopter_map
|
from dcs.helicopters import helicopter_map
|
||||||
from dcs.planes import plane_map
|
from dcs.planes import plane_map
|
||||||
from dcs.ships import ship_map
|
from dcs.ships import ship_map
|
||||||
|
from dcs.statics import fortification_map, groundobject_map, warehouse_map, cargo_map
|
||||||
from dcs.unittype import UnitType
|
from dcs.unittype import UnitType
|
||||||
from dcs.vehicles import vehicle_map
|
from dcs.vehicles import vehicle_map
|
||||||
from dcs.statics import fortification_map, groundobject_map, warehouse_map, cargo_map
|
|
||||||
|
|
||||||
|
|
||||||
def unit_type_from_name(name: str) -> Optional[Type[UnitType]]:
|
def unit_type_from_name(name: str) -> Optional[Type[UnitType]]:
|
||||||
|
|||||||
@ -11,6 +11,7 @@ from dcs.countries import country_dict
|
|||||||
from dcs.unittype import ShipType, StaticType
|
from dcs.unittype import ShipType, StaticType
|
||||||
from dcs.unittype import UnitType as DcsUnitType
|
from dcs.unittype import UnitType as DcsUnitType
|
||||||
|
|
||||||
|
from game.armedforces.forcegroup import ForceGroup
|
||||||
from game.data.building_data import (
|
from game.data.building_data import (
|
||||||
WW2_ALLIES_BUILDINGS,
|
WW2_ALLIES_BUILDINGS,
|
||||||
DEFAULT_AVAILABLE_BUILDINGS,
|
DEFAULT_AVAILABLE_BUILDINGS,
|
||||||
@ -25,12 +26,11 @@ from game.data.doctrine import (
|
|||||||
COLDWAR_DOCTRINE,
|
COLDWAR_DOCTRINE,
|
||||||
WWII_DOCTRINE,
|
WWII_DOCTRINE,
|
||||||
)
|
)
|
||||||
from game.data.units import UnitClass
|
|
||||||
from game.data.groups import GroupRole
|
from game.data.groups import GroupRole
|
||||||
|
from game.data.units import UnitClass
|
||||||
from game.dcs.aircrafttype import AircraftType
|
from game.dcs.aircrafttype import AircraftType
|
||||||
from game.dcs.groundunittype import GroundUnitType
|
from game.dcs.groundunittype import GroundUnitType
|
||||||
from game.dcs.shipunittype import ShipUnitType
|
from game.dcs.shipunittype import ShipUnitType
|
||||||
from game.armedforces.forcegroup import ForceGroup
|
|
||||||
from game.dcs.unittype import UnitType
|
from game.dcs.unittype import UnitType
|
||||||
from pydcs_extensions.f16i_idf.f16i_idf import inject_F16I
|
from pydcs_extensions.f16i_idf.f16i_idf import inject_F16I
|
||||||
|
|
||||||
@ -336,6 +336,8 @@ class Faction:
|
|||||||
inject_F16I()
|
inject_F16I()
|
||||||
if not mod_settings.f22_raptor:
|
if not mod_settings.f22_raptor:
|
||||||
self.remove_aircraft("F-22A")
|
self.remove_aircraft("F-22A")
|
||||||
|
if not mod_settings.f84g_thunderjet:
|
||||||
|
self.remove_aircraft("VSN_F84G")
|
||||||
if not mod_settings.f100_supersabre:
|
if not mod_settings.f100_supersabre:
|
||||||
self.remove_aircraft("VSN_F100")
|
self.remove_aircraft("VSN_F100")
|
||||||
if not mod_settings.f104_starfighter:
|
if not mod_settings.f104_starfighter:
|
||||||
@ -345,6 +347,8 @@ class Faction:
|
|||||||
if not mod_settings.f105_thunderchief:
|
if not mod_settings.f105_thunderchief:
|
||||||
self.remove_aircraft("VSN_F105D")
|
self.remove_aircraft("VSN_F105D")
|
||||||
self.remove_aircraft("VSN_F105G")
|
self.remove_aircraft("VSN_F105G")
|
||||||
|
if not mod_settings.a6a_intruder:
|
||||||
|
self.remove_aircraft("VSN_A6A")
|
||||||
if not mod_settings.jas39_gripen:
|
if not mod_settings.jas39_gripen:
|
||||||
self.remove_aircraft("JAS39Gripen")
|
self.remove_aircraft("JAS39Gripen")
|
||||||
self.remove_aircraft("JAS39Gripen_AG")
|
self.remove_aircraft("JAS39Gripen_AG")
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
import json
|
import json
|
||||||
import logging
|
import logging
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|||||||
@ -1,7 +1,5 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
from collections import defaultdict
|
|
||||||
|
|
||||||
import logging
|
|
||||||
import random
|
import random
|
||||||
from dataclasses import dataclass, field
|
from dataclasses import dataclass, field
|
||||||
from typing import TYPE_CHECKING, Iterator, Type, Optional
|
from typing import TYPE_CHECKING, Iterator, Type, Optional
|
||||||
@ -28,7 +26,6 @@ from game.theater.theatergroundobject import (
|
|||||||
IadsGroundObject,
|
IadsGroundObject,
|
||||||
)
|
)
|
||||||
from game.theater.theatergroup import TheaterUnit
|
from game.theater.theatergroup import TheaterUnit
|
||||||
from game.utils import Heading
|
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from game.factions.faction import Faction
|
from game.factions.faction import Faction
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
from collections import defaultdict
|
|
||||||
|
|
||||||
import itertools
|
import itertools
|
||||||
import logging
|
import logging
|
||||||
import pickle
|
import pickle
|
||||||
|
from collections import defaultdict
|
||||||
from concurrent.futures import ThreadPoolExecutor
|
from concurrent.futures import ThreadPoolExecutor
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Iterator
|
from typing import Iterator
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
from collections import defaultdict
|
|
||||||
|
|
||||||
|
from collections import defaultdict
|
||||||
from dataclasses import dataclass, field
|
from dataclasses import dataclass, field
|
||||||
from typing import Any, Optional, Type
|
from typing import Any, Optional, Type
|
||||||
|
|
||||||
|
|||||||
@ -17,8 +17,8 @@ from game.ato.flighttype import FlightType
|
|||||||
from game.ato.package import Package
|
from game.ato.package import Package
|
||||||
from game.ato.starttype import StartType
|
from game.ato.starttype import StartType
|
||||||
from game.factions.faction import Faction
|
from game.factions.faction import Faction
|
||||||
from game.missiongenerator.missiondata import MissionData
|
|
||||||
from game.missiongenerator.lasercoderegistry import LaserCodeRegistry
|
from game.missiongenerator.lasercoderegistry import LaserCodeRegistry
|
||||||
|
from game.missiongenerator.missiondata import MissionData
|
||||||
from game.radio.radios import RadioRegistry
|
from game.radio.radios import RadioRegistry
|
||||||
from game.radio.tacan import TacanRegistry
|
from game.radio.tacan import TacanRegistry
|
||||||
from game.runways import RunwayData
|
from game.runways import RunwayData
|
||||||
|
|||||||
@ -12,9 +12,9 @@ from dcs.unitgroup import FlyingGroup
|
|||||||
from game.ato import Flight, FlightType
|
from game.ato import Flight, FlightType
|
||||||
from game.callsigns import callsign_for_support_unit
|
from game.callsigns import callsign_for_support_unit
|
||||||
from game.data.weapons import Pylon, WeaponType as WeaponTypeEnum
|
from game.data.weapons import Pylon, WeaponType as WeaponTypeEnum
|
||||||
from game.missiongenerator.missiondata import MissionData, AwacsInfo, TankerInfo
|
|
||||||
from game.missiongenerator.lasercoderegistry import LaserCodeRegistry
|
from game.missiongenerator.lasercoderegistry import LaserCodeRegistry
|
||||||
from game.missiongenerator.logisticsgenerator import LogisticsGenerator
|
from game.missiongenerator.logisticsgenerator import LogisticsGenerator
|
||||||
|
from game.missiongenerator.missiondata import MissionData, AwacsInfo, TankerInfo
|
||||||
from game.radio.radios import RadioFrequency, RadioRegistry
|
from game.radio.radios import RadioFrequency, RadioRegistry
|
||||||
from game.radio.tacan import TacanBand, TacanRegistry, TacanUsage
|
from game.radio.tacan import TacanBand, TacanRegistry, TacanUsage
|
||||||
from game.runways import RunwayData
|
from game.runways import RunwayData
|
||||||
|
|||||||
@ -1,10 +1,8 @@
|
|||||||
from dcs.point import MovingPoint
|
from dcs.point import MovingPoint
|
||||||
|
from dcs.point import PointAction
|
||||||
from dcs.task import Land
|
from dcs.task import Land
|
||||||
|
|
||||||
from game.utils import feet
|
from game.utils import feet
|
||||||
from dcs.point import PointAction
|
|
||||||
|
|
||||||
|
|
||||||
from .pydcswaypointbuilder import PydcsWaypointBuilder
|
from .pydcswaypointbuilder import PydcsWaypointBuilder
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -11,6 +11,7 @@ from dcs.task import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
from game.ato import FlightType
|
from game.ato import FlightType
|
||||||
|
from game.theater import NavalControlPoint
|
||||||
from game.utils import nautical_miles
|
from game.utils import nautical_miles
|
||||||
from .pydcswaypointbuilder import PydcsWaypointBuilder
|
from .pydcswaypointbuilder import PydcsWaypointBuilder
|
||||||
|
|
||||||
@ -32,6 +33,15 @@ class JoinPointBuilder(PydcsWaypointBuilder):
|
|||||||
waypoint.tasks.append(OptFormation.spread_four_open())
|
waypoint.tasks.append(OptFormation.spread_four_open())
|
||||||
|
|
||||||
elif self.flight.flight_type == FlightType.SEAD_ESCORT:
|
elif self.flight.flight_type == FlightType.SEAD_ESCORT:
|
||||||
|
if isinstance(self.flight.package.target, NavalControlPoint):
|
||||||
|
self.configure_escort_tasks(
|
||||||
|
waypoint,
|
||||||
|
[
|
||||||
|
Targets.All.Naval,
|
||||||
|
Targets.All.GroundUnits.AirDefence.AAA.SAMRelated,
|
||||||
|
],
|
||||||
|
)
|
||||||
|
else:
|
||||||
self.configure_escort_tasks(
|
self.configure_escort_tasks(
|
||||||
waypoint, [Targets.All.GroundUnits.AirDefence.AAA.SAMRelated]
|
waypoint, [Targets.All.GroundUnits.AirDefence.AAA.SAMRelated]
|
||||||
)
|
)
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
from dcs.point import MovingPoint
|
from dcs.point import MovingPoint
|
||||||
from dcs.task import RefuelingTaskAction
|
from dcs.task import RefuelingTaskAction
|
||||||
|
|
||||||
from .pydcswaypointbuilder import PydcsWaypointBuilder
|
from .pydcswaypointbuilder import PydcsWaypointBuilder
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -8,8 +8,8 @@ from dcs.task import (
|
|||||||
OptECMUsing,
|
OptECMUsing,
|
||||||
WeaponType as DcsWeaponType,
|
WeaponType as DcsWeaponType,
|
||||||
)
|
)
|
||||||
from game.data.weapons import WeaponType
|
|
||||||
|
|
||||||
|
from game.data.weapons import WeaponType
|
||||||
from game.theater import TheaterGroundObject
|
from game.theater import TheaterGroundObject
|
||||||
from .pydcswaypointbuilder import PydcsWaypointBuilder
|
from .pydcswaypointbuilder import PydcsWaypointBuilder
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,4 @@
|
|||||||
from dcs.point import MovingPoint, PointAction
|
from dcs.point import MovingPoint, PointAction
|
||||||
from dcs.task import Land
|
|
||||||
|
|
||||||
from .pydcswaypointbuilder import PydcsWaypointBuilder
|
from .pydcswaypointbuilder import PydcsWaypointBuilder
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,9 @@
|
|||||||
from typing import Any, Optional
|
from typing import Any, Optional
|
||||||
|
|
||||||
from dcs import Mission
|
from dcs import Mission
|
||||||
from dcs.unitgroup import FlyingGroup
|
|
||||||
from dcs.statics import Fortification
|
from dcs.statics import Fortification
|
||||||
|
from dcs.unitgroup import FlyingGroup
|
||||||
|
|
||||||
from game.ato import Flight
|
from game.ato import Flight
|
||||||
from game.ato.flightplans.airassault import AirAssaultFlightPlan
|
from game.ato.flightplans.airassault import AirAssaultFlightPlan
|
||||||
from game.ato.flightwaypointtype import FlightWaypointType
|
from game.ato.flightwaypointtype import FlightWaypointType
|
||||||
@ -9,7 +11,6 @@ from game.missiongenerator.missiondata import CargoInfo, LogisticsInfo
|
|||||||
from game.settings.settings import Settings
|
from game.settings.settings import Settings
|
||||||
from game.transfers import TransferOrder
|
from game.transfers import TransferOrder
|
||||||
|
|
||||||
|
|
||||||
ZONE_RADIUS = 300
|
ZONE_RADIUS = 300
|
||||||
CRATE_ZONE_RADIUS = 50
|
CRATE_ZONE_RADIUS = 50
|
||||||
|
|
||||||
|
|||||||
@ -17,7 +17,6 @@ from game.plugins import LuaPluginManager
|
|||||||
from game.theater import TheaterGroundObject
|
from game.theater import TheaterGroundObject
|
||||||
from game.theater.iadsnetwork.iadsrole import IadsRole
|
from game.theater.iadsnetwork.iadsrole import IadsRole
|
||||||
from game.utils import escape_string_for_lua
|
from game.utils import escape_string_for_lua
|
||||||
|
|
||||||
from .missiondata import MissionData
|
from .missiondata import MissionData
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
|
|||||||
@ -3,9 +3,9 @@ from __future__ import annotations
|
|||||||
from dataclasses import dataclass, field
|
from dataclasses import dataclass, field
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
from typing import Optional, TYPE_CHECKING
|
from typing import Optional, TYPE_CHECKING
|
||||||
|
|
||||||
from game.dcs.aircrafttype import AircraftType
|
from game.dcs.aircrafttype import AircraftType
|
||||||
from game.missiongenerator.aircraft.flightdata import FlightData
|
from game.missiongenerator.aircraft.flightdata import FlightData
|
||||||
|
|
||||||
from game.runways import RunwayData
|
from game.runways import RunwayData
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
|
|||||||
@ -9,15 +9,13 @@ from __future__ import annotations
|
|||||||
|
|
||||||
import logging
|
import logging
|
||||||
import random
|
import random
|
||||||
from collections import defaultdict
|
|
||||||
from typing import Any, Dict, Iterator, List, Optional, TYPE_CHECKING, Type
|
from typing import Any, Dict, Iterator, List, Optional, TYPE_CHECKING, Type
|
||||||
|
|
||||||
import dcs.vehicles
|
import dcs.vehicles
|
||||||
from dcs import Mission, Point, unitgroup
|
from dcs import Mission, Point
|
||||||
from dcs.action import DoScript, SceneryDestructionZone
|
from dcs.action import DoScript, SceneryDestructionZone
|
||||||
from dcs.condition import MapObjectIsDead
|
from dcs.condition import MapObjectIsDead
|
||||||
from dcs.country import Country
|
from dcs.country import Country
|
||||||
from dcs.point import StaticPoint
|
|
||||||
from dcs.ships import (
|
from dcs.ships import (
|
||||||
CVN_71,
|
CVN_71,
|
||||||
CVN_72,
|
CVN_72,
|
||||||
@ -41,8 +39,8 @@ from dcs.unit import Unit, InvisibleFARP
|
|||||||
from dcs.unitgroup import MovingGroup, ShipGroup, StaticGroup, VehicleGroup
|
from dcs.unitgroup import MovingGroup, ShipGroup, StaticGroup, VehicleGroup
|
||||||
from dcs.unittype import ShipType, VehicleType
|
from dcs.unittype import ShipType, VehicleType
|
||||||
from dcs.vehicles import vehicle_map
|
from dcs.vehicles import vehicle_map
|
||||||
from game.missiongenerator.missiondata import CarrierInfo, MissionData
|
|
||||||
|
|
||||||
|
from game.missiongenerator.missiondata import CarrierInfo, MissionData
|
||||||
from game.radio.radios import RadioFrequency, RadioRegistry
|
from game.radio.radios import RadioFrequency, RadioRegistry
|
||||||
from game.radio.tacan import TacanBand, TacanChannel, TacanRegistry, TacanUsage
|
from game.radio.tacan import TacanBand, TacanChannel, TacanRegistry, TacanUsage
|
||||||
from game.runways import RunwayData
|
from game.runways import RunwayData
|
||||||
@ -53,7 +51,7 @@ from game.theater.theatergroundobject import (
|
|||||||
LhaGroundObject,
|
LhaGroundObject,
|
||||||
MissileSiteGroundObject,
|
MissileSiteGroundObject,
|
||||||
)
|
)
|
||||||
from game.theater.theatergroup import SceneryUnit, TheaterGroup, IadsGroundGroup
|
from game.theater.theatergroup import SceneryUnit, IadsGroundGroup
|
||||||
from game.unitmap import UnitMap
|
from game.unitmap import UnitMap
|
||||||
from game.utils import Heading, feet, knots, mps
|
from game.utils import Heading, feet, knots, mps
|
||||||
|
|
||||||
|
|||||||
@ -4,7 +4,6 @@ from pathlib import Path
|
|||||||
from typing import Dict, List
|
from typing import Dict, List
|
||||||
|
|
||||||
from game.settings import Settings
|
from game.settings import Settings
|
||||||
|
|
||||||
from .luaplugin import LuaPlugin
|
from .luaplugin import LuaPlugin
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import logging
|
|||||||
import re
|
import re
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from typing import Dict, FrozenSet, Iterator, List, Set, Tuple
|
from typing import Dict, FrozenSet, Iterator, List, Set, Tuple
|
||||||
|
|
||||||
from dcs.task import Modulation
|
from dcs.task import Modulation
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from typing import Iterable, List, TYPE_CHECKING
|
from typing import Iterable, List, TYPE_CHECKING
|
||||||
|
|
||||||
from dcs.mapping import Polygon
|
from dcs.mapping import Polygon
|
||||||
|
|||||||
@ -12,10 +12,10 @@ from game.server.frontlines.models import FrontLineJs
|
|||||||
from game.server.iadsnetwork.models import IadsConnectionJs
|
from game.server.iadsnetwork.models import IadsConnectionJs
|
||||||
from game.server.leaflet import LeafletPoint
|
from game.server.leaflet import LeafletPoint
|
||||||
from game.server.mapzones.models import ThreatZonesJs
|
from game.server.mapzones.models import ThreatZonesJs
|
||||||
from game.server.navmesh.models import NavMeshJs
|
|
||||||
from game.server.tgos.models import TgoJs
|
|
||||||
from game.server.mapzones.models import UnculledZoneJs
|
from game.server.mapzones.models import UnculledZoneJs
|
||||||
|
from game.server.navmesh.models import NavMeshJs
|
||||||
from game.server.supplyroutes.models import SupplyRouteJs
|
from game.server.supplyroutes.models import SupplyRouteJs
|
||||||
|
from game.server.tgos.models import TgoJs
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from game import Game
|
from game import Game
|
||||||
|
|||||||
@ -7,12 +7,12 @@ from pydantic import BaseModel
|
|||||||
from game.server.controlpoints.models import ControlPointJs
|
from game.server.controlpoints.models import ControlPointJs
|
||||||
from game.server.flights.models import FlightJs
|
from game.server.flights.models import FlightJs
|
||||||
from game.server.frontlines.models import FrontLineJs
|
from game.server.frontlines.models import FrontLineJs
|
||||||
|
from game.server.iadsnetwork.models import IadsNetworkJs
|
||||||
from game.server.leaflet import LeafletPoint
|
from game.server.leaflet import LeafletPoint
|
||||||
from game.server.mapzones.models import ThreatZoneContainerJs, UnculledZoneJs
|
from game.server.mapzones.models import ThreatZoneContainerJs, UnculledZoneJs
|
||||||
from game.server.navmesh.models import NavMeshesJs
|
from game.server.navmesh.models import NavMeshesJs
|
||||||
from game.server.supplyroutes.models import SupplyRouteJs
|
from game.server.supplyroutes.models import SupplyRouteJs
|
||||||
from game.server.tgos.models import TgoJs
|
from game.server.tgos.models import TgoJs
|
||||||
from game.server.iadsnetwork.models import IadsConnectionJs, IadsNetworkJs
|
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from game import Game
|
from game import Game
|
||||||
|
|||||||
@ -1,11 +1,11 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from uuid import UUID
|
from uuid import UUID
|
||||||
|
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
|
|
||||||
from game.server.leaflet import LeafletPoint
|
from game.server.leaflet import LeafletPoint
|
||||||
from game.theater.iadsnetwork.iadsnetwork import IadsNetworkNode, IadsNetwork
|
from game.theater.iadsnetwork.iadsnetwork import IadsNetworkNode, IadsNetwork
|
||||||
from game.theater.theatergroundobject import TheaterGroundObject
|
|
||||||
|
|
||||||
|
|
||||||
class IadsConnectionJs(BaseModel):
|
class IadsConnectionJs(BaseModel):
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
from uuid import UUID
|
from uuid import UUID
|
||||||
|
|
||||||
from fastapi import APIRouter, Depends
|
from fastapi import APIRouter, Depends
|
||||||
|
|
||||||
from game import Game
|
from game import Game
|
||||||
|
|||||||
@ -1,8 +1,6 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
import uuid
|
|
||||||
from typing import Any, TYPE_CHECKING
|
from typing import Any, TYPE_CHECKING
|
||||||
from uuid import UUID
|
|
||||||
|
|
||||||
from dcs import Point
|
from dcs import Point
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
|
|||||||
@ -4,9 +4,9 @@ import itertools
|
|||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
from typing import Sequence, Iterator, TYPE_CHECKING, Optional
|
from typing import Sequence, Iterator, TYPE_CHECKING, Optional
|
||||||
|
|
||||||
from game.dcs.aircrafttype import AircraftType
|
|
||||||
from game.ato.ai_flight_planner_db import aircraft_for_task
|
from game.ato.ai_flight_planner_db import aircraft_for_task
|
||||||
from game.ato.closestairfields import ObjectiveDistanceCache
|
from game.ato.closestairfields import ObjectiveDistanceCache
|
||||||
|
from game.dcs.aircrafttype import AircraftType
|
||||||
from .squadrondefloader import SquadronDefLoader
|
from .squadrondefloader import SquadronDefLoader
|
||||||
from ..campaignloader.squadrondefgenerator import SquadronDefGenerator
|
from ..campaignloader.squadrondefgenerator import SquadronDefGenerator
|
||||||
from ..factions.faction import Faction
|
from ..factions.faction import Faction
|
||||||
|
|||||||
@ -63,7 +63,6 @@ from .frontline import FrontLine
|
|||||||
from .missiontarget import MissionTarget
|
from .missiontarget import MissionTarget
|
||||||
from .theatergroundobject import (
|
from .theatergroundobject import (
|
||||||
GenericCarrierGroundObject,
|
GenericCarrierGroundObject,
|
||||||
IadsGroundObject,
|
|
||||||
TheaterGroundObject,
|
TheaterGroundObject,
|
||||||
VehicleGroupGroundObject,
|
VehicleGroupGroundObject,
|
||||||
)
|
)
|
||||||
@ -1177,7 +1176,10 @@ class NavalControlPoint(ControlPoint, ABC):
|
|||||||
# TODO: Inter-ship logistics?
|
# TODO: Inter-ship logistics?
|
||||||
]
|
]
|
||||||
else:
|
else:
|
||||||
yield FlightType.ANTISHIP
|
yield from [
|
||||||
|
FlightType.ANTISHIP,
|
||||||
|
FlightType.SEAD_ESCORT,
|
||||||
|
]
|
||||||
yield from super().mission_types(for_player)
|
yield from super().mission_types(for_player)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@ -1425,6 +1427,7 @@ class Fob(ControlPoint):
|
|||||||
if not self.is_friendly(for_player):
|
if not self.is_friendly(for_player):
|
||||||
yield FlightType.STRIKE
|
yield FlightType.STRIKE
|
||||||
yield FlightType.AIR_ASSAULT
|
yield FlightType.AIR_ASSAULT
|
||||||
|
yield FlightType.OCA_AIRCRAFT
|
||||||
|
|
||||||
yield from super().mission_types(for_player)
|
yield from super().mission_types(for_player)
|
||||||
|
|
||||||
|
|||||||
@ -1,13 +1,14 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
from collections import defaultdict
|
|
||||||
from dataclasses import dataclass, field
|
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
|
import uuid
|
||||||
|
from collections import defaultdict
|
||||||
|
from dataclasses import dataclass, field
|
||||||
from typing import TYPE_CHECKING, Iterator, Optional
|
from typing import TYPE_CHECKING, Iterator, Optional
|
||||||
from uuid import UUID
|
from uuid import UUID
|
||||||
import uuid
|
|
||||||
from game.theater.iadsnetwork.iadsrole import IadsRole
|
|
||||||
from game.dcs.groundunittype import GroundUnitType
|
from game.dcs.groundunittype import GroundUnitType
|
||||||
|
from game.theater.iadsnetwork.iadsrole import IadsRole
|
||||||
from game.theater.theatergroundobject import (
|
from game.theater.theatergroundobject import (
|
||||||
IadsBuildingGroundObject,
|
IadsBuildingGroundObject,
|
||||||
IadsGroundObject,
|
IadsGroundObject,
|
||||||
|
|||||||
@ -1,9 +1,8 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from dataclasses import dataclass, field
|
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
from game.data.groups import GroupTask
|
|
||||||
|
|
||||||
|
from game.data.groups import GroupTask
|
||||||
from game.utils import Distance
|
from game.utils import Distance
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
from dataclasses import dataclass
|
|
||||||
import pickle
|
|
||||||
from functools import cached_property
|
|
||||||
from typing import Optional, Tuple, Union
|
|
||||||
import logging
|
import logging
|
||||||
|
import pickle
|
||||||
|
from dataclasses import dataclass
|
||||||
|
from functools import cached_property
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
from typing import Optional, Union
|
||||||
|
|
||||||
from shapely import geometry
|
from shapely import geometry
|
||||||
from shapely.geometry import MultiPolygon, Polygon
|
from shapely.geometry import MultiPolygon, Polygon
|
||||||
|
|||||||
@ -1,10 +1,8 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from collections.abc import Sequence
|
from typing import Iterator, TYPE_CHECKING
|
||||||
from typing import Iterator, TYPE_CHECKING, Union
|
|
||||||
|
|
||||||
from dcs.mapping import Point
|
from dcs.mapping import Point
|
||||||
from dcs.unit import Unit
|
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from game.ato.flighttype import FlightType
|
from game.ato.flighttype import FlightType
|
||||||
|
|||||||
@ -52,10 +52,12 @@ class GeneratorSettings:
|
|||||||
@dataclass
|
@dataclass
|
||||||
class ModSettings:
|
class ModSettings:
|
||||||
a4_skyhawk: bool = False
|
a4_skyhawk: bool = False
|
||||||
|
a6a_intruder: bool = False
|
||||||
f4b_phantom: bool = False
|
f4b_phantom: bool = False
|
||||||
f15d_baz: bool = False
|
f15d_baz: bool = False
|
||||||
f_16_idf: bool = False
|
f_16_idf: bool = False
|
||||||
f22_raptor: bool = False
|
f22_raptor: bool = False
|
||||||
|
f84g_thunderjet: bool = False
|
||||||
f100_supersabre: bool = False
|
f100_supersabre: bool = False
|
||||||
f104_starfighter: bool = False
|
f104_starfighter: bool = False
|
||||||
f105_thunderchief: bool = False
|
f105_thunderchief: bool = False
|
||||||
|
|||||||
@ -6,7 +6,6 @@ from abc import ABC
|
|||||||
from typing import Any, Iterator, List, Optional, TYPE_CHECKING
|
from typing import Any, Iterator, List, Optional, TYPE_CHECKING
|
||||||
|
|
||||||
from dcs.mapping import Point
|
from dcs.mapping import Point
|
||||||
|
|
||||||
from shapely.geometry import Point as ShapelyPoint
|
from shapely.geometry import Point as ShapelyPoint
|
||||||
|
|
||||||
from game.sidc import (
|
from game.sidc import (
|
||||||
@ -351,7 +350,10 @@ class NavalGroundObject(TheaterGroundObject, ABC):
|
|||||||
from game.ato import FlightType
|
from game.ato import FlightType
|
||||||
|
|
||||||
if not self.is_friendly(for_player):
|
if not self.is_friendly(for_player):
|
||||||
yield FlightType.ANTISHIP
|
yield from [
|
||||||
|
FlightType.ANTISHIP,
|
||||||
|
FlightType.SEAD_ESCORT,
|
||||||
|
]
|
||||||
yield from super().mission_types(for_player)
|
yield from super().mission_types(for_player)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
|||||||
@ -10,10 +10,10 @@ from dcs.triggers import TriggerZone
|
|||||||
from dcs.unit import Unit
|
from dcs.unit import Unit
|
||||||
from dcs.unitgroup import FlyingGroup, VehicleGroup, ShipGroup
|
from dcs.unitgroup import FlyingGroup, VehicleGroup, ShipGroup
|
||||||
|
|
||||||
|
from game.ato.flight import Flight
|
||||||
from game.dcs.groundunittype import GroundUnitType
|
from game.dcs.groundunittype import GroundUnitType
|
||||||
from game.squadrons import Pilot
|
from game.squadrons import Pilot
|
||||||
from game.theater import Airfield, ControlPoint, TheaterUnit
|
from game.theater import Airfield, ControlPoint, TheaterUnit
|
||||||
from game.ato.flight import Flight
|
|
||||||
from game.theater.theatergroup import SceneryUnit
|
from game.theater.theatergroup import SceneryUnit
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
|
|||||||
@ -9,7 +9,6 @@ from typing import Optional, TYPE_CHECKING
|
|||||||
from dcs.cloud_presets import Clouds as PydcsClouds
|
from dcs.cloud_presets import Clouds as PydcsClouds
|
||||||
from dcs.weather import CloudPreset, Weather as PydcsWeather, Wind
|
from dcs.weather import CloudPreset, Weather as PydcsWeather, Wind
|
||||||
|
|
||||||
from game.theater.daytimemap import DaytimeMap
|
|
||||||
from game.theater.seasonalconditions import determine_season
|
from game.theater.seasonalconditions import determine_season
|
||||||
from game.timeofday import TimeOfDay
|
from game.timeofday import TimeOfDay
|
||||||
from game.utils import Distance, Heading, Pressure, inches_hg, interpolate, meters
|
from game.utils import Distance, Heading, Pressure, inches_hg, interpolate, meters
|
||||||
|
|||||||
@ -1,5 +1,10 @@
|
|||||||
from .a4ec import *
|
from .a4ec import *
|
||||||
|
from .a6a import *
|
||||||
|
from .f4b import *
|
||||||
|
from .f84g import *
|
||||||
|
from .f100 import *
|
||||||
from .f104 import *
|
from .f104 import *
|
||||||
|
from .f105 import *
|
||||||
from .f22a import *
|
from .f22a import *
|
||||||
from .frenchpack import *
|
from .frenchpack import *
|
||||||
from .hercules import *
|
from .hercules import *
|
||||||
|
|||||||
257
pydcs_extensions/a6a/a6a.py
Normal file
257
pydcs_extensions/a6a/a6a.py
Normal file
@ -0,0 +1,257 @@
|
|||||||
|
from typing import Set
|
||||||
|
|
||||||
|
from dcs import task
|
||||||
|
from dcs.planes import PlaneType
|
||||||
|
from dcs.weapons_data import Weapons
|
||||||
|
from dcs.liveries_scanner import Liveries
|
||||||
|
|
||||||
|
from game.modsupport import planemod
|
||||||
|
|
||||||
|
|
||||||
|
@planemod
|
||||||
|
class VSN_A6A(PlaneType):
|
||||||
|
id = "VSN_A6A"
|
||||||
|
flyable = True
|
||||||
|
group_size_max = 1
|
||||||
|
height = 4.57
|
||||||
|
width = 10.15
|
||||||
|
length = 17.98
|
||||||
|
fuel_max = 6994
|
||||||
|
max_speed = 1047.96
|
||||||
|
chaff = 30
|
||||||
|
flare = 30
|
||||||
|
charge_total = 60
|
||||||
|
chaff_charge_size = 1
|
||||||
|
flare_charge_size = 1
|
||||||
|
eplrs = True
|
||||||
|
radio_frequency = 250.5
|
||||||
|
|
||||||
|
livery_name = "VSN_A6A" # from type
|
||||||
|
Liveries = Liveries()[livery_name]
|
||||||
|
|
||||||
|
class Pylon1:
|
||||||
|
F_5_275Gal_Fuel_tank = (1, Weapons.F_5_275Gal_Fuel_tank)
|
||||||
|
AIM_9M_Sidewinder_IR_AAM = (1, Weapons.AIM_9M_Sidewinder_IR_AAM)
|
||||||
|
AIM_9X_Sidewinder_IR_AAM = (1, Weapons.AIM_9X_Sidewinder_IR_AAM)
|
||||||
|
Mk_82___500lb_GP_Bomb_LD = (1, Weapons.Mk_82___500lb_GP_Bomb_LD)
|
||||||
|
Mk_83___1000lb_GP_Bomb_LD = (1, Weapons.Mk_83___1000lb_GP_Bomb_LD)
|
||||||
|
Mk_84___2000lb_GP_Bomb_LD = (1, Weapons.Mk_84___2000lb_GP_Bomb_LD)
|
||||||
|
BRU_42_with_3_x_Mk_82___500lb_GP_Bombs_LD = (
|
||||||
|
1,
|
||||||
|
Weapons.BRU_42_with_3_x_Mk_82___500lb_GP_Bombs_LD,
|
||||||
|
)
|
||||||
|
BRU_42_with_3_x_Mk_82_AIR_Ballute___500lb_GP_Bombs_HD = (
|
||||||
|
1,
|
||||||
|
Weapons.BRU_42_with_3_x_Mk_82_AIR_Ballute___500lb_GP_Bombs_HD,
|
||||||
|
)
|
||||||
|
LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = (
|
||||||
|
1,
|
||||||
|
Weapons.LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG,
|
||||||
|
)
|
||||||
|
LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT = (
|
||||||
|
1,
|
||||||
|
Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT,
|
||||||
|
)
|
||||||
|
LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE = (
|
||||||
|
1,
|
||||||
|
Weapons.LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE,
|
||||||
|
)
|
||||||
|
BRU_33_with_2_x_LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE = (
|
||||||
|
1,
|
||||||
|
Weapons.BRU_33_with_2_x_LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE,
|
||||||
|
)
|
||||||
|
BRU_33_with_2_x_LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE = (
|
||||||
|
1,
|
||||||
|
Weapons.BRU_33_with_2_x_LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE,
|
||||||
|
)
|
||||||
|
BRU_33_with_2_x_LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = (
|
||||||
|
1,
|
||||||
|
Weapons.BRU_33_with_2_x_LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG,
|
||||||
|
)
|
||||||
|
|
||||||
|
# ERRR {ac94375e-aa45-491e-858b-a8b93ee8b959}
|
||||||
|
# ERRR <CLEAN>
|
||||||
|
|
||||||
|
class Pylon2:
|
||||||
|
F_5_275Gal_Fuel_tank = (2, Weapons.F_5_275Gal_Fuel_tank)
|
||||||
|
AIM_9M_Sidewinder_IR_AAM = (2, Weapons.AIM_9M_Sidewinder_IR_AAM)
|
||||||
|
AIM_9X_Sidewinder_IR_AAM = (2, Weapons.AIM_9X_Sidewinder_IR_AAM)
|
||||||
|
Mk_82___500lb_GP_Bomb_LD = (2, Weapons.Mk_82___500lb_GP_Bomb_LD)
|
||||||
|
Mk_83___1000lb_GP_Bomb_LD = (2, Weapons.Mk_83___1000lb_GP_Bomb_LD)
|
||||||
|
Mk_84___2000lb_GP_Bomb_LD = (2, Weapons.Mk_84___2000lb_GP_Bomb_LD)
|
||||||
|
MER6_with_6_x_Mk_82___500lb_GP_Bombs_LD = (
|
||||||
|
2,
|
||||||
|
Weapons.MER6_with_6_x_Mk_82___500lb_GP_Bombs_LD,
|
||||||
|
)
|
||||||
|
MER6_with_6_x_Mk_20_Rockeye___490lbs_CBUs__247_x_HEAT_Bomblets = (
|
||||||
|
2,
|
||||||
|
Weapons.MER6_with_6_x_Mk_20_Rockeye___490lbs_CBUs__247_x_HEAT_Bomblets,
|
||||||
|
)
|
||||||
|
BRU_42_with_3_x_Mk_82___500lb_GP_Bombs_LD = (
|
||||||
|
2,
|
||||||
|
Weapons.BRU_42_with_3_x_Mk_82___500lb_GP_Bombs_LD,
|
||||||
|
)
|
||||||
|
BRU_42_with_3_x_Mk_82_AIR_Ballute___500lb_GP_Bombs_HD = (
|
||||||
|
2,
|
||||||
|
Weapons.BRU_42_with_3_x_Mk_82_AIR_Ballute___500lb_GP_Bombs_HD,
|
||||||
|
)
|
||||||
|
LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = (
|
||||||
|
2,
|
||||||
|
Weapons.LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG,
|
||||||
|
)
|
||||||
|
LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT = (
|
||||||
|
2,
|
||||||
|
Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT,
|
||||||
|
)
|
||||||
|
LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE = (
|
||||||
|
2,
|
||||||
|
Weapons.LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE,
|
||||||
|
)
|
||||||
|
BRU_33_with_2_x_LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE = (
|
||||||
|
2,
|
||||||
|
Weapons.BRU_33_with_2_x_LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE,
|
||||||
|
)
|
||||||
|
BRU_33_with_2_x_LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE = (
|
||||||
|
2,
|
||||||
|
Weapons.BRU_33_with_2_x_LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE,
|
||||||
|
)
|
||||||
|
BRU_33_with_2_x_LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = (
|
||||||
|
2,
|
||||||
|
Weapons.BRU_33_with_2_x_LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG,
|
||||||
|
)
|
||||||
|
|
||||||
|
# ERRR {ac94375e-aa45-491e-858b-a8b93ee8b959}
|
||||||
|
# ERRR <CLEAN>
|
||||||
|
|
||||||
|
class Pylon3:
|
||||||
|
F_5_275Gal_Fuel_tank = (3, Weapons.F_5_275Gal_Fuel_tank)
|
||||||
|
Mk_82___500lb_GP_Bomb_LD = (3, Weapons.Mk_82___500lb_GP_Bomb_LD)
|
||||||
|
Mk_83___1000lb_GP_Bomb_LD = (3, Weapons.Mk_83___1000lb_GP_Bomb_LD)
|
||||||
|
Mk_84___2000lb_GP_Bomb_LD = (3, Weapons.Mk_84___2000lb_GP_Bomb_LD)
|
||||||
|
MER6_with_6_x_Mk_82___500lb_GP_Bombs_LD = (
|
||||||
|
3,
|
||||||
|
Weapons.MER6_with_6_x_Mk_82___500lb_GP_Bombs_LD,
|
||||||
|
)
|
||||||
|
MER6_with_6_x_Mk_20_Rockeye___490lbs_CBUs__247_x_HEAT_Bomblets = (
|
||||||
|
3,
|
||||||
|
Weapons.MER6_with_6_x_Mk_20_Rockeye___490lbs_CBUs__247_x_HEAT_Bomblets,
|
||||||
|
)
|
||||||
|
BRU_42_with_3_x_Mk_82___500lb_GP_Bombs_LD = (
|
||||||
|
3,
|
||||||
|
Weapons.BRU_42_with_3_x_Mk_82___500lb_GP_Bombs_LD,
|
||||||
|
)
|
||||||
|
BRU_42_with_3_x_Mk_82_AIR_Ballute___500lb_GP_Bombs_HD = (
|
||||||
|
3,
|
||||||
|
Weapons.BRU_42_with_3_x_Mk_82_AIR_Ballute___500lb_GP_Bombs_HD,
|
||||||
|
)
|
||||||
|
|
||||||
|
# ERRR {ac94375e-aa45-491e-858b-a8b93ee8b959}
|
||||||
|
# ERRR <CLEAN>
|
||||||
|
|
||||||
|
class Pylon4:
|
||||||
|
F_5_275Gal_Fuel_tank = (4, Weapons.F_5_275Gal_Fuel_tank)
|
||||||
|
AIM_9M_Sidewinder_IR_AAM = (4, Weapons.AIM_9M_Sidewinder_IR_AAM)
|
||||||
|
AIM_9X_Sidewinder_IR_AAM = (4, Weapons.AIM_9X_Sidewinder_IR_AAM)
|
||||||
|
Mk_82___500lb_GP_Bomb_LD = (4, Weapons.Mk_82___500lb_GP_Bomb_LD)
|
||||||
|
Mk_83___1000lb_GP_Bomb_LD = (4, Weapons.Mk_83___1000lb_GP_Bomb_LD)
|
||||||
|
Mk_84___2000lb_GP_Bomb_LD = (4, Weapons.Mk_84___2000lb_GP_Bomb_LD)
|
||||||
|
MER6_with_6_x_Mk_82___500lb_GP_Bombs_LD = (
|
||||||
|
4,
|
||||||
|
Weapons.MER6_with_6_x_Mk_82___500lb_GP_Bombs_LD,
|
||||||
|
)
|
||||||
|
MER6_with_6_x_Mk_20_Rockeye___490lbs_CBUs__247_x_HEAT_Bomblets = (
|
||||||
|
4,
|
||||||
|
Weapons.MER6_with_6_x_Mk_20_Rockeye___490lbs_CBUs__247_x_HEAT_Bomblets,
|
||||||
|
)
|
||||||
|
BRU_42_with_3_x_Mk_82___500lb_GP_Bombs_LD = (
|
||||||
|
4,
|
||||||
|
Weapons.BRU_42_with_3_x_Mk_82___500lb_GP_Bombs_LD,
|
||||||
|
)
|
||||||
|
BRU_42_with_3_x_Mk_82_AIR_Ballute___500lb_GP_Bombs_HD = (
|
||||||
|
4,
|
||||||
|
Weapons.BRU_42_with_3_x_Mk_82_AIR_Ballute___500lb_GP_Bombs_HD,
|
||||||
|
)
|
||||||
|
LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = (
|
||||||
|
4,
|
||||||
|
Weapons.LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG,
|
||||||
|
)
|
||||||
|
LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT = (
|
||||||
|
4,
|
||||||
|
Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT,
|
||||||
|
)
|
||||||
|
LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE = (
|
||||||
|
4,
|
||||||
|
Weapons.LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE,
|
||||||
|
)
|
||||||
|
BRU_33_with_2_x_LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE = (
|
||||||
|
4,
|
||||||
|
Weapons.BRU_33_with_2_x_LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE,
|
||||||
|
)
|
||||||
|
BRU_33_with_2_x_LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE = (
|
||||||
|
4,
|
||||||
|
Weapons.BRU_33_with_2_x_LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE,
|
||||||
|
)
|
||||||
|
BRU_33_with_2_x_LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = (
|
||||||
|
4,
|
||||||
|
Weapons.BRU_33_with_2_x_LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG,
|
||||||
|
)
|
||||||
|
|
||||||
|
# ERRR {ac94375e-aa45-491e-858b-a8b93ee8b959}
|
||||||
|
# ERRR <CLEAN>
|
||||||
|
|
||||||
|
class Pylon5:
|
||||||
|
F_5_275Gal_Fuel_tank = (5, Weapons.F_5_275Gal_Fuel_tank)
|
||||||
|
AIM_9M_Sidewinder_IR_AAM = (5, Weapons.AIM_9M_Sidewinder_IR_AAM)
|
||||||
|
AIM_9X_Sidewinder_IR_AAM = (5, Weapons.AIM_9X_Sidewinder_IR_AAM)
|
||||||
|
Mk_82___500lb_GP_Bomb_LD = (5, Weapons.Mk_82___500lb_GP_Bomb_LD)
|
||||||
|
Mk_83___1000lb_GP_Bomb_LD = (5, Weapons.Mk_83___1000lb_GP_Bomb_LD)
|
||||||
|
Mk_84___2000lb_GP_Bomb_LD = (5, Weapons.Mk_84___2000lb_GP_Bomb_LD)
|
||||||
|
BRU_42_with_3_x_Mk_82___500lb_GP_Bombs_LD = (
|
||||||
|
5,
|
||||||
|
Weapons.BRU_42_with_3_x_Mk_82___500lb_GP_Bombs_LD,
|
||||||
|
)
|
||||||
|
BRU_42_with_3_x_Mk_82_AIR_Ballute___500lb_GP_Bombs_HD = (
|
||||||
|
5,
|
||||||
|
Weapons.BRU_42_with_3_x_Mk_82_AIR_Ballute___500lb_GP_Bombs_HD,
|
||||||
|
)
|
||||||
|
LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = (
|
||||||
|
5,
|
||||||
|
Weapons.LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG,
|
||||||
|
)
|
||||||
|
LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT = (
|
||||||
|
5,
|
||||||
|
Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT,
|
||||||
|
)
|
||||||
|
LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE = (
|
||||||
|
5,
|
||||||
|
Weapons.LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE,
|
||||||
|
)
|
||||||
|
BRU_33_with_2_x_LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE = (
|
||||||
|
5,
|
||||||
|
Weapons.BRU_33_with_2_x_LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE,
|
||||||
|
)
|
||||||
|
BRU_33_with_2_x_LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE = (
|
||||||
|
5,
|
||||||
|
Weapons.BRU_33_with_2_x_LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE,
|
||||||
|
)
|
||||||
|
BRU_33_with_2_x_LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = (
|
||||||
|
5,
|
||||||
|
Weapons.BRU_33_with_2_x_LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG,
|
||||||
|
)
|
||||||
|
|
||||||
|
# ERRR {ac94375e-aa45-491e-858b-a8b93ee8b959}
|
||||||
|
# ERRR <CLEAN>
|
||||||
|
|
||||||
|
pylons: Set[int] = {1, 2, 3, 4, 5}
|
||||||
|
|
||||||
|
tasks = [
|
||||||
|
task.Escort,
|
||||||
|
task.Reconnaissance,
|
||||||
|
task.GroundAttack,
|
||||||
|
task.CAS,
|
||||||
|
task.AFAC,
|
||||||
|
task.RunwayAttack,
|
||||||
|
task.AntishipStrike,
|
||||||
|
task.SEAD,
|
||||||
|
]
|
||||||
|
task_default = task.GroundAttack
|
||||||
@ -1,6 +1,3 @@
|
|||||||
from enum import Enum
|
|
||||||
from typing import Dict, Any
|
|
||||||
|
|
||||||
from dcs import task
|
from dcs import task
|
||||||
from dcs.planes import PlaneType
|
from dcs.planes import PlaneType
|
||||||
from dcs.weapons_data import Weapons
|
from dcs.weapons_data import Weapons
|
||||||
|
|||||||
217
pydcs_extensions/f84g/f84g.py
Normal file
217
pydcs_extensions/f84g/f84g.py
Normal file
@ -0,0 +1,217 @@
|
|||||||
|
from typing import Set
|
||||||
|
|
||||||
|
from dcs import task
|
||||||
|
from dcs.liveries_scanner import Liveries
|
||||||
|
from dcs.planes import PlaneType
|
||||||
|
from dcs.weapons_data import Weapons
|
||||||
|
|
||||||
|
from game.modsupport import planemod
|
||||||
|
from pydcs_extensions.weapon_injector import inject_weapons
|
||||||
|
|
||||||
|
|
||||||
|
class WeaponsF84G:
|
||||||
|
Tank = {"clsid": "{PTB_F84G}", "name": "Tank", "weight": 910}
|
||||||
|
|
||||||
|
|
||||||
|
inject_weapons(WeaponsF84G)
|
||||||
|
|
||||||
|
|
||||||
|
@planemod
|
||||||
|
class VSN_F84G(PlaneType):
|
||||||
|
id = "VSN_F84G"
|
||||||
|
flyable = True
|
||||||
|
height = 4.496
|
||||||
|
width = 11.9
|
||||||
|
length = 11.43
|
||||||
|
fuel_max = 1282
|
||||||
|
max_speed = 964.8
|
||||||
|
category = "Interceptor" # {78EFB7A2-FD52-4b57-A6A6-3BF0E1D6555F}
|
||||||
|
radio_frequency = 127.5
|
||||||
|
|
||||||
|
livery_name = "VSN_F84G" # from type
|
||||||
|
Liveries = Liveries()[livery_name]
|
||||||
|
|
||||||
|
class Pylon2:
|
||||||
|
Tank = (2, WeaponsF84G.Tank)
|
||||||
|
|
||||||
|
class Pylon3:
|
||||||
|
AN_ASQ_T50_TCTS_Pod___ACMI_Pod = (3, Weapons.AN_ASQ_T50_TCTS_Pod___ACMI_Pod)
|
||||||
|
AIM_9B_Sidewinder_IR_AAM = (3, Weapons.AIM_9B_Sidewinder_IR_AAM)
|
||||||
|
Mk_83___1000lb_GP_Bomb_LD = (3, Weapons.Mk_83___1000lb_GP_Bomb_LD)
|
||||||
|
LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk1__Practice = (
|
||||||
|
3,
|
||||||
|
Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk1__Practice,
|
||||||
|
)
|
||||||
|
LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT = (
|
||||||
|
3,
|
||||||
|
Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT,
|
||||||
|
)
|
||||||
|
LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk61__Practice = (
|
||||||
|
3,
|
||||||
|
Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk61__Practice,
|
||||||
|
)
|
||||||
|
LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE = (
|
||||||
|
3,
|
||||||
|
Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE,
|
||||||
|
)
|
||||||
|
LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos = (
|
||||||
|
3,
|
||||||
|
Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos,
|
||||||
|
)
|
||||||
|
LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice = (
|
||||||
|
3,
|
||||||
|
Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice,
|
||||||
|
)
|
||||||
|
LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M257__Para_Illum = (
|
||||||
|
3,
|
||||||
|
Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M257__Para_Illum,
|
||||||
|
)
|
||||||
|
LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M274__Practice_Smk = (
|
||||||
|
3,
|
||||||
|
Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M274__Practice_Smk,
|
||||||
|
)
|
||||||
|
LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk1__Practice = (
|
||||||
|
3,
|
||||||
|
Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk1__Practice,
|
||||||
|
)
|
||||||
|
LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT = (
|
||||||
|
3,
|
||||||
|
Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT,
|
||||||
|
)
|
||||||
|
LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk61__Practice = (
|
||||||
|
3,
|
||||||
|
Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk61__Practice,
|
||||||
|
)
|
||||||
|
LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE = (
|
||||||
|
3,
|
||||||
|
Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE,
|
||||||
|
)
|
||||||
|
LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos = (
|
||||||
|
3,
|
||||||
|
Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos,
|
||||||
|
)
|
||||||
|
LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice = (
|
||||||
|
3,
|
||||||
|
Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice,
|
||||||
|
)
|
||||||
|
LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M257__Para_Illum = (
|
||||||
|
3,
|
||||||
|
Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M257__Para_Illum,
|
||||||
|
)
|
||||||
|
LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M274__Practice_Smk = (
|
||||||
|
3,
|
||||||
|
Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M274__Practice_Smk,
|
||||||
|
)
|
||||||
|
M117___750lb_GP_Bomb_LD = (3, Weapons.M117___750lb_GP_Bomb_LD)
|
||||||
|
AN_M64___500lb_GP_Bomb_LD_ = (3, Weapons.AN_M64___500lb_GP_Bomb_LD_)
|
||||||
|
_2_x_HVAR__UnGd_Rkts = (3, Weapons._2_x_HVAR__UnGd_Rkts)
|
||||||
|
# ERRR <CLEAN>
|
||||||
|
Smoke_Generator___red_ = (3, Weapons.Smoke_Generator___red_)
|
||||||
|
Smoke_Generator___green_ = (3, Weapons.Smoke_Generator___green_)
|
||||||
|
Smoke_Generator___blue_ = (3, Weapons.Smoke_Generator___blue_)
|
||||||
|
Smoke_Generator___white_ = (3, Weapons.Smoke_Generator___white_)
|
||||||
|
Smoke_Generator___yellow_ = (3, Weapons.Smoke_Generator___yellow_)
|
||||||
|
Smoke_Generator___orange_ = (3, Weapons.Smoke_Generator___orange_)
|
||||||
|
|
||||||
|
class Pylon6:
|
||||||
|
Smoke_Generator___red_ = (6, Weapons.Smoke_Generator___red_)
|
||||||
|
Smoke_Generator___green_ = (6, Weapons.Smoke_Generator___green_)
|
||||||
|
Smoke_Generator___blue_ = (6, Weapons.Smoke_Generator___blue_)
|
||||||
|
Smoke_Generator___white_ = (6, Weapons.Smoke_Generator___white_)
|
||||||
|
Smoke_Generator___yellow_ = (6, Weapons.Smoke_Generator___yellow_)
|
||||||
|
Smoke_Generator___orange_ = (6, Weapons.Smoke_Generator___orange_)
|
||||||
|
|
||||||
|
class Pylon9:
|
||||||
|
AN_ASQ_T50_TCTS_Pod___ACMI_Pod = (9, Weapons.AN_ASQ_T50_TCTS_Pod___ACMI_Pod)
|
||||||
|
AIM_9B_Sidewinder_IR_AAM = (9, Weapons.AIM_9B_Sidewinder_IR_AAM)
|
||||||
|
Mk_83___1000lb_GP_Bomb_LD = (9, Weapons.Mk_83___1000lb_GP_Bomb_LD)
|
||||||
|
LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk1__Practice = (
|
||||||
|
9,
|
||||||
|
Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk1__Practice,
|
||||||
|
)
|
||||||
|
LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT = (
|
||||||
|
9,
|
||||||
|
Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT,
|
||||||
|
)
|
||||||
|
LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk61__Practice = (
|
||||||
|
9,
|
||||||
|
Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk61__Practice,
|
||||||
|
)
|
||||||
|
LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE = (
|
||||||
|
9,
|
||||||
|
Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE,
|
||||||
|
)
|
||||||
|
LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos = (
|
||||||
|
9,
|
||||||
|
Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos,
|
||||||
|
)
|
||||||
|
LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice = (
|
||||||
|
9,
|
||||||
|
Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice,
|
||||||
|
)
|
||||||
|
LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M257__Para_Illum = (
|
||||||
|
9,
|
||||||
|
Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M257__Para_Illum,
|
||||||
|
)
|
||||||
|
LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M274__Practice_Smk = (
|
||||||
|
9,
|
||||||
|
Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M274__Practice_Smk,
|
||||||
|
)
|
||||||
|
LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk1__Practice = (
|
||||||
|
9,
|
||||||
|
Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk1__Practice,
|
||||||
|
)
|
||||||
|
LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT = (
|
||||||
|
9,
|
||||||
|
Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT,
|
||||||
|
)
|
||||||
|
LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk61__Practice = (
|
||||||
|
9,
|
||||||
|
Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk61__Practice,
|
||||||
|
)
|
||||||
|
LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE = (
|
||||||
|
9,
|
||||||
|
Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE,
|
||||||
|
)
|
||||||
|
LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos = (
|
||||||
|
9,
|
||||||
|
Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M156__Wht_Phos,
|
||||||
|
)
|
||||||
|
LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice = (
|
||||||
|
9,
|
||||||
|
Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_WTU_1_B__Practice,
|
||||||
|
)
|
||||||
|
LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M257__Para_Illum = (
|
||||||
|
9,
|
||||||
|
Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M257__Para_Illum,
|
||||||
|
)
|
||||||
|
LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M274__Practice_Smk = (
|
||||||
|
9,
|
||||||
|
Weapons.LAU_131_pod___7_x_2_75_Hydra__UnGd_Rkts_M274__Practice_Smk,
|
||||||
|
)
|
||||||
|
M117___750lb_GP_Bomb_LD = (9, Weapons.M117___750lb_GP_Bomb_LD)
|
||||||
|
AN_M64___500lb_GP_Bomb_LD_ = (9, Weapons.AN_M64___500lb_GP_Bomb_LD_)
|
||||||
|
_2_x_HVAR__UnGd_Rkts = (9, Weapons._2_x_HVAR__UnGd_Rkts)
|
||||||
|
# ERRR <CLEAN>
|
||||||
|
Smoke_Generator___red_ = (9, Weapons.Smoke_Generator___red_)
|
||||||
|
Smoke_Generator___green_ = (9, Weapons.Smoke_Generator___green_)
|
||||||
|
Smoke_Generator___blue_ = (9, Weapons.Smoke_Generator___blue_)
|
||||||
|
Smoke_Generator___white_ = (9, Weapons.Smoke_Generator___white_)
|
||||||
|
Smoke_Generator___yellow_ = (9, Weapons.Smoke_Generator___yellow_)
|
||||||
|
Smoke_Generator___orange_ = (9, Weapons.Smoke_Generator___orange_)
|
||||||
|
|
||||||
|
class Pylon10:
|
||||||
|
Tank = (10, WeaponsF84G.Tank)
|
||||||
|
|
||||||
|
pylons: Set[int] = {2, 3, 6, 9, 10}
|
||||||
|
|
||||||
|
tasks = [
|
||||||
|
task.CAP,
|
||||||
|
task.CAS,
|
||||||
|
task.Escort,
|
||||||
|
task.FighterSweep,
|
||||||
|
task.GroundAttack,
|
||||||
|
task.Intercept,
|
||||||
|
task.AntishipStrike,
|
||||||
|
]
|
||||||
|
task_default = task.GroundAttack
|
||||||
@ -306,8 +306,10 @@ def create_game(
|
|||||||
),
|
),
|
||||||
ModSettings(
|
ModSettings(
|
||||||
a4_skyhawk=False,
|
a4_skyhawk=False,
|
||||||
|
a6a_intruder=False,
|
||||||
f4b_phantom=False,
|
f4b_phantom=False,
|
||||||
f22_raptor=False,
|
f22_raptor=False,
|
||||||
|
f84g_thunderjet=False,
|
||||||
f100_supersabre=False,
|
f100_supersabre=False,
|
||||||
f104_starfighter=False,
|
f104_starfighter=False,
|
||||||
f105_thunderchief=False,
|
f105_thunderchief=False,
|
||||||
|
|||||||
@ -63,10 +63,18 @@ def load_icons():
|
|||||||
|
|
||||||
ICONS["Hangar"] = QPixmap("./resources/ui/misc/hangar.png")
|
ICONS["Hangar"] = QPixmap("./resources/ui/misc/hangar.png")
|
||||||
|
|
||||||
ICONS["Dawn"] = QPixmap("./resources/ui/conditions/timeofday/dawn.png")
|
ICONS["Dawn"] = QPixmap(
|
||||||
ICONS["Day"] = QPixmap("./resources/ui/conditions/timeofday/day.png")
|
"./resources/ui/conditions/" + get_theme_icons() + "/timeofday/dawn.png"
|
||||||
ICONS["Dusk"] = QPixmap("./resources/ui/conditions/timeofday/dusk.png")
|
)
|
||||||
ICONS["Night"] = QPixmap("./resources/ui/conditions/timeofday/night.png")
|
ICONS["Day"] = QPixmap(
|
||||||
|
"./resources/ui/conditions/" + get_theme_icons() + "/timeofday/day.png"
|
||||||
|
)
|
||||||
|
ICONS["Dusk"] = QPixmap(
|
||||||
|
"./resources/ui/conditions/" + get_theme_icons() + "/timeofday/dusk.png"
|
||||||
|
)
|
||||||
|
ICONS["Night"] = QPixmap(
|
||||||
|
"./resources/ui/conditions/" + get_theme_icons() + "/timeofday/night.png"
|
||||||
|
)
|
||||||
|
|
||||||
ICONS["Money"] = QPixmap(
|
ICONS["Money"] = QPixmap(
|
||||||
"./resources/ui/misc/" + get_theme_icons() + "/money_icon.png"
|
"./resources/ui/misc/" + get_theme_icons() + "/money_icon.png"
|
||||||
@ -116,46 +124,64 @@ def load_icons():
|
|||||||
"""
|
"""
|
||||||
Weather Icons
|
Weather Icons
|
||||||
"""
|
"""
|
||||||
ICONS["Weather_winds"] = QPixmap("./resources/ui/conditions/weather/winds.png")
|
ICONS["Weather_winds"] = QPixmap(
|
||||||
|
"./resources/ui/conditions/" + get_theme_icons() + "/weather/winds.png"
|
||||||
|
)
|
||||||
ICONS["Weather_day-clear"] = QPixmap(
|
ICONS["Weather_day-clear"] = QPixmap(
|
||||||
"./resources/ui/conditions/weather/day-clear.png"
|
"./resources/ui/conditions/" + get_theme_icons() + "/weather/day-clear.png"
|
||||||
)
|
)
|
||||||
ICONS["Weather_day-cloudy-fog"] = QPixmap(
|
ICONS["Weather_day-cloudy-fog"] = QPixmap(
|
||||||
"./resources/ui/conditions/weather/day-cloudy-fog.png"
|
"./resources/ui/conditions/" + get_theme_icons() + "/weather/day-cloudy-fog.png"
|
||||||
|
)
|
||||||
|
ICONS["Weather_day-fog"] = QPixmap(
|
||||||
|
"./resources/ui/conditions/" + get_theme_icons() + "/weather/day-fog.png"
|
||||||
)
|
)
|
||||||
ICONS["Weather_day-fog"] = QPixmap("./resources/ui/conditions/weather/day-fog.png")
|
|
||||||
ICONS["Weather_day-partly-cloudy"] = QPixmap(
|
ICONS["Weather_day-partly-cloudy"] = QPixmap(
|
||||||
"./resources/ui/conditions/weather/day-partly-cloudy.png"
|
"./resources/ui/conditions/"
|
||||||
|
+ get_theme_icons()
|
||||||
|
+ "/weather/day-partly-cloudy.png"
|
||||||
)
|
)
|
||||||
ICONS["Weather_day-rain"] = QPixmap(
|
ICONS["Weather_day-rain"] = QPixmap(
|
||||||
"./resources/ui/conditions/weather/day-rain.png"
|
"./resources/ui/conditions/" + get_theme_icons() + "/weather/day-rain.png"
|
||||||
)
|
)
|
||||||
ICONS["Weather_day-thunderstorm"] = QPixmap(
|
ICONS["Weather_day-thunderstorm"] = QPixmap(
|
||||||
"./resources/ui/conditions/weather/day-thunderstorm.png"
|
"./resources/ui/conditions/"
|
||||||
|
+ get_theme_icons()
|
||||||
|
+ "/weather/day-thunderstorm.png"
|
||||||
)
|
)
|
||||||
ICONS["Weather_day-totally-cloud"] = QPixmap(
|
ICONS["Weather_day-totally-cloud"] = QPixmap(
|
||||||
"./resources/ui/conditions/weather/day-totally-cloud.png"
|
"./resources/ui/conditions/"
|
||||||
|
+ get_theme_icons()
|
||||||
|
+ "/weather/day-totally-cloud.png"
|
||||||
)
|
)
|
||||||
ICONS["Weather_night-clear"] = QPixmap(
|
ICONS["Weather_night-clear"] = QPixmap(
|
||||||
"./resources/ui/conditions/weather/night-clear.png"
|
"./resources/ui/conditions/" + get_theme_icons() + "/weather/night-clear.png"
|
||||||
)
|
)
|
||||||
ICONS["Weather_night-cloudy-fog"] = QPixmap(
|
ICONS["Weather_night-cloudy-fog"] = QPixmap(
|
||||||
"./resources/ui/conditions/weather/night-cloudy-fog.png"
|
"./resources/ui/conditions/"
|
||||||
|
+ get_theme_icons()
|
||||||
|
+ "/weather/night-cloudy-fog.png"
|
||||||
)
|
)
|
||||||
ICONS["Weather_night-fog"] = QPixmap(
|
ICONS["Weather_night-fog"] = QPixmap(
|
||||||
"./resources/ui/conditions/weather/night-fog.png"
|
"./resources/ui/conditions/" + get_theme_icons() + "/weather/night-fog.png"
|
||||||
)
|
)
|
||||||
ICONS["Weather_night-partly-cloudy"] = QPixmap(
|
ICONS["Weather_night-partly-cloudy"] = QPixmap(
|
||||||
"./resources/ui/conditions/weather/night-partly-cloudy.png"
|
"./resources/ui/conditions/"
|
||||||
|
+ get_theme_icons()
|
||||||
|
+ "/weather/night-partly-cloudy.png"
|
||||||
)
|
)
|
||||||
ICONS["Weather_night-rain"] = QPixmap(
|
ICONS["Weather_night-rain"] = QPixmap(
|
||||||
"./resources/ui/conditions/weather/night-rain.png"
|
"./resources/ui/conditions/" + get_theme_icons() + "/weather/night-rain.png"
|
||||||
)
|
)
|
||||||
ICONS["Weather_night-thunderstorm"] = QPixmap(
|
ICONS["Weather_night-thunderstorm"] = QPixmap(
|
||||||
"./resources/ui/conditions/weather/night-thunderstorm.png"
|
"./resources/ui/conditions/"
|
||||||
|
+ get_theme_icons()
|
||||||
|
+ "/weather/night-thunderstorm.png"
|
||||||
)
|
)
|
||||||
ICONS["Weather_night-totally-cloud"] = QPixmap(
|
ICONS["Weather_night-totally-cloud"] = QPixmap(
|
||||||
"./resources/ui/conditions/weather/night-totally-cloud.png"
|
"./resources/ui/conditions/"
|
||||||
|
+ get_theme_icons()
|
||||||
|
+ "/weather/night-totally-cloud.png"
|
||||||
)
|
)
|
||||||
|
|
||||||
ICONS["heading"] = QPixmap("./resources/ui/misc/heading.png")
|
ICONS["heading"] = QPixmap("./resources/ui/misc/heading.png")
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
from PySide2.QtWidgets import QLabel, QHBoxLayout, QGroupBox, QPushButton
|
from PySide2.QtWidgets import QHBoxLayout, QGroupBox, QPushButton
|
||||||
|
|
||||||
import qt_ui.uiconstants as CONST
|
import qt_ui.uiconstants as CONST
|
||||||
from game import Game
|
from game import Game
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
from PySide2.QtWidgets import QLabel, QGroupBox, QGridLayout
|
from PySide2.QtWidgets import QLabel, QGroupBox, QGridLayout
|
||||||
|
|
||||||
from game import Game
|
from game import Game
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -41,15 +41,6 @@ class QIntelBox(QGroupBox):
|
|||||||
self.economic_strength = QLabel()
|
self.economic_strength = QLabel()
|
||||||
summary.addWidget(self.economic_strength, 2, 1)
|
summary.addWidget(self.economic_strength, 2, 1)
|
||||||
|
|
||||||
# some dirty styling to make the labels show up well on the button
|
|
||||||
button_text_style = "background-color: rgba(0,0,0,0%); color: white;"
|
|
||||||
air_superiority.setStyleSheet(button_text_style)
|
|
||||||
front_line.setStyleSheet(button_text_style)
|
|
||||||
economy.setStyleSheet(button_text_style)
|
|
||||||
self.air_strength.setStyleSheet(button_text_style)
|
|
||||||
self.ground_strength.setStyleSheet(button_text_style)
|
|
||||||
self.economic_strength.setStyleSheet(button_text_style)
|
|
||||||
|
|
||||||
self.details = QPushButton()
|
self.details = QPushButton()
|
||||||
self.details.setMinimumHeight(50)
|
self.details.setMinimumHeight(50)
|
||||||
self.details.setMinimumWidth(210)
|
self.details.setMinimumWidth(210)
|
||||||
|
|||||||
@ -11,7 +11,6 @@ from PySide2.QtWidgets import (
|
|||||||
|
|
||||||
import qt_ui.uiconstants as CONST
|
import qt_ui.uiconstants as CONST
|
||||||
from game import Game, persistency
|
from game import Game, persistency
|
||||||
from game.game import TurnState
|
|
||||||
from game.ato.package import Package
|
from game.ato.package import Package
|
||||||
from game.ato.traveltime import TotEstimator
|
from game.ato.traveltime import TotEstimator
|
||||||
from game.profiling import logged_duration
|
from game.profiling import logged_duration
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
"""Combo box for selecting aircraft types."""
|
"""Combo box for selecting aircraft types."""
|
||||||
from PySide2.QtWidgets import QComboBox
|
from PySide2.QtWidgets import QComboBox
|
||||||
|
|
||||||
from game.dcs.aircrafttype import AircraftType
|
from game.dcs.aircrafttype import AircraftType
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
"""Combo box for selecting a flight's task type."""
|
"""Combo box for selecting a flight's task type."""
|
||||||
|
|
||||||
from PySide2.QtWidgets import QComboBox
|
from PySide2.QtWidgets import QComboBox
|
||||||
|
|
||||||
from game.ato.flighttype import FlightType
|
from game.ato.flighttype import FlightType
|
||||||
from game.settings.settings import Settings
|
from game.settings.settings import Settings
|
||||||
|
|
||||||
from game.theater import ConflictTheater, MissionTarget
|
from game.theater import ConflictTheater, MissionTarget
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,10 +1,6 @@
|
|||||||
import random
|
|
||||||
|
|
||||||
from PySide2.QtGui import QStandardItemModel, QStandardItem
|
from PySide2.QtGui import QStandardItemModel, QStandardItem
|
||||||
from PySide2.QtWidgets import (
|
from PySide2.QtWidgets import (
|
||||||
QGroupBox,
|
QGroupBox,
|
||||||
QLabel,
|
|
||||||
QWidget,
|
|
||||||
QVBoxLayout,
|
QVBoxLayout,
|
||||||
QListView,
|
QListView,
|
||||||
QAbstractItemView,
|
QAbstractItemView,
|
||||||
|
|||||||
@ -29,6 +29,7 @@ from PySide2.QtWidgets import (
|
|||||||
QToolButton,
|
QToolButton,
|
||||||
QMessageBox,
|
QMessageBox,
|
||||||
)
|
)
|
||||||
|
|
||||||
from game import Game
|
from game import Game
|
||||||
from game.ato.flighttype import FlightType
|
from game.ato.flighttype import FlightType
|
||||||
from game.coalition import Coalition
|
from game.coalition import Coalition
|
||||||
|
|||||||
@ -17,9 +17,9 @@ from PySide2.QtWidgets import (
|
|||||||
QHBoxLayout,
|
QHBoxLayout,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
from game.ato.flight import Flight
|
||||||
from game.squadrons import Squadron
|
from game.squadrons import Squadron
|
||||||
from game.theater import ConflictTheater
|
from game.theater import ConflictTheater
|
||||||
from game.ato.flight import Flight
|
|
||||||
from qt_ui.delegates import TwoColumnRowDelegate
|
from qt_ui.delegates import TwoColumnRowDelegate
|
||||||
from qt_ui.models import GameModel, AirWingModel, SquadronModel, AtoModel
|
from qt_ui.models import GameModel, AirWingModel, SquadronModel, AtoModel
|
||||||
from qt_ui.windows.SquadronDialog import SquadronDialog
|
from qt_ui.windows.SquadronDialog import SquadronDialog
|
||||||
|
|||||||
@ -5,8 +5,8 @@ from typing import Optional
|
|||||||
from PySide2.QtCore import QObject, Signal
|
from PySide2.QtCore import QObject, Signal
|
||||||
|
|
||||||
from game import Game
|
from game import Game
|
||||||
from game.game import TurnState
|
|
||||||
from game.debriefing import Debriefing
|
from game.debriefing import Debriefing
|
||||||
|
from game.game import TurnState
|
||||||
|
|
||||||
|
|
||||||
class GameUpdateSignal(QObject):
|
class GameUpdateSignal(QObject):
|
||||||
|
|||||||
@ -12,10 +12,8 @@ from PySide2.QtWidgets import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
from game.debriefing import Debriefing
|
from game.debriefing import Debriefing
|
||||||
from game.game import TurnState
|
|
||||||
from qt_ui.windows.GameUpdateSignal import GameUpdateSignal
|
from qt_ui.windows.GameUpdateSignal import GameUpdateSignal
|
||||||
|
|
||||||
|
|
||||||
T = TypeVar("T")
|
T = TypeVar("T")
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -11,11 +11,11 @@ from PySide2.QtWidgets import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
import game.ato.ai_flight_planner_db
|
import game.ato.ai_flight_planner_db
|
||||||
|
from game.ato.flighttype import FlightType
|
||||||
from game.dcs.aircrafttype import AircraftType
|
from game.dcs.aircrafttype import AircraftType
|
||||||
from game.dcs.groundunittype import GroundUnitType
|
from game.dcs.groundunittype import GroundUnitType
|
||||||
from game.dcs.unittype import UnitType
|
from game.dcs.unittype import UnitType
|
||||||
from game.game import Game
|
from game.game import Game
|
||||||
from game.ato.flighttype import FlightType
|
|
||||||
from qt_ui.uiconstants import AIRCRAFT_BANNERS, VEHICLE_BANNERS
|
from qt_ui.uiconstants import AIRCRAFT_BANNERS, VEHICLE_BANNERS
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -9,12 +9,10 @@ from PySide2.QtWidgets import (
|
|||||||
QVBoxLayout,
|
QVBoxLayout,
|
||||||
QWidget,
|
QWidget,
|
||||||
)
|
)
|
||||||
from dcs.ships import Stennis, KUZNECOW
|
|
||||||
|
|
||||||
from game import Game
|
from game import Game
|
||||||
from game.ato.flighttype import FlightType
|
from game.ato.flighttype import FlightType
|
||||||
from game.config import RUNWAY_REPAIR_COST
|
from game.config import RUNWAY_REPAIR_COST
|
||||||
from game.game import TurnState
|
|
||||||
from game.server import EventStream
|
from game.server import EventStream
|
||||||
from game.sim import GameUpdateEvents
|
from game.sim import GameUpdateEvents
|
||||||
from game.theater import (
|
from game.theater import (
|
||||||
|
|||||||
@ -11,12 +11,12 @@ from PySide2.QtWidgets import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
from game.dcs.aircrafttype import AircraftType
|
from game.dcs.aircrafttype import AircraftType
|
||||||
|
from game.purchaseadapter import AircraftPurchaseAdapter
|
||||||
from game.squadrons import Squadron
|
from game.squadrons import Squadron
|
||||||
from game.theater import ControlPoint
|
from game.theater import ControlPoint
|
||||||
from qt_ui.models import GameModel
|
from qt_ui.models import GameModel
|
||||||
from qt_ui.uiconstants import ICONS
|
from qt_ui.uiconstants import ICONS
|
||||||
from qt_ui.windows.basemenu.UnitTransactionFrame import UnitTransactionFrame
|
from qt_ui.windows.basemenu.UnitTransactionFrame import UnitTransactionFrame
|
||||||
from game.purchaseadapter import AircraftPurchaseAdapter
|
|
||||||
|
|
||||||
|
|
||||||
class QAircraftRecruitmentMenu(UnitTransactionFrame[Squadron]):
|
class QAircraftRecruitmentMenu(UnitTransactionFrame[Squadron]):
|
||||||
|
|||||||
@ -2,10 +2,10 @@ from PySide2.QtCore import Qt
|
|||||||
from PySide2.QtWidgets import QGridLayout, QScrollArea, QVBoxLayout, QWidget
|
from PySide2.QtWidgets import QGridLayout, QScrollArea, QVBoxLayout, QWidget
|
||||||
|
|
||||||
from game.dcs.groundunittype import GroundUnitType
|
from game.dcs.groundunittype import GroundUnitType
|
||||||
|
from game.purchaseadapter import GroundUnitPurchaseAdapter
|
||||||
from game.theater import ControlPoint
|
from game.theater import ControlPoint
|
||||||
from qt_ui.models import GameModel
|
from qt_ui.models import GameModel
|
||||||
from qt_ui.windows.basemenu.UnitTransactionFrame import UnitTransactionFrame
|
from qt_ui.windows.basemenu.UnitTransactionFrame import UnitTransactionFrame
|
||||||
from game.purchaseadapter import GroundUnitPurchaseAdapter
|
|
||||||
|
|
||||||
|
|
||||||
class QArmorRecruitmentMenu(UnitTransactionFrame[GroundUnitType]):
|
class QArmorRecruitmentMenu(UnitTransactionFrame[GroundUnitType]):
|
||||||
|
|||||||
@ -2,9 +2,9 @@ import os
|
|||||||
|
|
||||||
from PySide2.QtGui import QPixmap
|
from PySide2.QtGui import QPixmap
|
||||||
from PySide2.QtWidgets import QGroupBox, QHBoxLayout, QLabel, QVBoxLayout
|
from PySide2.QtWidgets import QGroupBox, QHBoxLayout, QLabel, QVBoxLayout
|
||||||
from game.theater import TheaterUnit
|
|
||||||
|
|
||||||
from game.config import REWARDS
|
from game.config import REWARDS
|
||||||
|
from game.theater import TheaterUnit
|
||||||
|
|
||||||
|
|
||||||
class QBuildingInfo(QGroupBox):
|
class QBuildingInfo(QGroupBox):
|
||||||
|
|||||||
@ -2,7 +2,7 @@ from PySide2.QtCore import QItemSelectionModel, QPoint
|
|||||||
from PySide2.QtGui import QStandardItemModel
|
from PySide2.QtGui import QStandardItemModel
|
||||||
from PySide2.QtWidgets import QListView
|
from PySide2.QtWidgets import QListView
|
||||||
|
|
||||||
from game import Game, game
|
from game import Game
|
||||||
from qt_ui.windows.infos.QInfoItem import QInfoItem
|
from qt_ui.windows.infos.QInfoItem import QInfoItem
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
from PySide2.QtWidgets import QFrame, QVBoxLayout, QLabel, QGroupBox
|
from PySide2.QtWidgets import QVBoxLayout, QGroupBox
|
||||||
|
|
||||||
from game import Game
|
from game import Game
|
||||||
from qt_ui.windows.infos.QInfoList import QInfoList
|
from qt_ui.windows.infos.QInfoList import QInfoList
|
||||||
|
|||||||
@ -2,13 +2,13 @@ import logging
|
|||||||
import typing
|
import typing
|
||||||
|
|
||||||
from PySide2.QtCore import Signal
|
from PySide2.QtCore import Signal
|
||||||
|
from PySide2.QtGui import QTextCursor, QIcon
|
||||||
from PySide2.QtWidgets import (
|
from PySide2.QtWidgets import (
|
||||||
QDialog,
|
QDialog,
|
||||||
QPlainTextEdit,
|
QPlainTextEdit,
|
||||||
QVBoxLayout,
|
QVBoxLayout,
|
||||||
QPushButton,
|
QPushButton,
|
||||||
)
|
)
|
||||||
from PySide2.QtGui import QTextCursor, QIcon
|
|
||||||
|
|
||||||
from qt_ui.logging_handler import HookableInMemoryHandler
|
from qt_ui.logging_handler import HookableInMemoryHandler
|
||||||
|
|
||||||
|
|||||||
@ -14,12 +14,12 @@ from PySide2.QtWidgets import (
|
|||||||
from dcs.unittype import FlyingType
|
from dcs.unittype import FlyingType
|
||||||
|
|
||||||
from game import Game
|
from game import Game
|
||||||
|
from game.ato.flight import Flight
|
||||||
|
from game.ato.flightroster import FlightRoster
|
||||||
|
from game.ato.package import Package
|
||||||
from game.ato.starttype import StartType
|
from game.ato.starttype import StartType
|
||||||
from game.squadrons.squadron import Squadron
|
from game.squadrons.squadron import Squadron
|
||||||
from game.theater import ControlPoint, OffMapSpawn
|
from game.theater import ControlPoint, OffMapSpawn
|
||||||
from game.ato.package import Package
|
|
||||||
from game.ato.flightroster import FlightRoster
|
|
||||||
from game.ato.flight import Flight
|
|
||||||
from qt_ui.uiconstants import EVENT_ICONS
|
from qt_ui.uiconstants import EVENT_ICONS
|
||||||
from qt_ui.widgets.QFlightSizeSpinner import QFlightSizeSpinner
|
from qt_ui.widgets.QFlightSizeSpinner import QFlightSizeSpinner
|
||||||
from qt_ui.widgets.QLabeledWidget import QLabeledWidget
|
from qt_ui.widgets.QLabeledWidget import QLabeledWidget
|
||||||
|
|||||||
@ -3,9 +3,9 @@ from typing import Optional
|
|||||||
|
|
||||||
from PySide2.QtWidgets import QComboBox
|
from PySide2.QtWidgets import QComboBox
|
||||||
|
|
||||||
|
from game.ato.flighttype import FlightType
|
||||||
from game.dcs.aircrafttype import AircraftType
|
from game.dcs.aircrafttype import AircraftType
|
||||||
from game.squadrons.airwing import AirWing
|
from game.squadrons.airwing import AirWing
|
||||||
from game.ato.flighttype import FlightType
|
|
||||||
|
|
||||||
|
|
||||||
class SquadronSelector(QComboBox):
|
class SquadronSelector(QComboBox):
|
||||||
|
|||||||
@ -7,8 +7,8 @@ from PySide2.QtWidgets import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
from game import Game
|
from game import Game
|
||||||
from game.data.weapons import Pylon
|
|
||||||
from game.ato.flight import Flight
|
from game.ato.flight import Flight
|
||||||
|
from game.data.weapons import Pylon
|
||||||
from qt_ui.windows.mission.flight.payload.QPylonEditor import QPylonEditor
|
from qt_ui.windows.mission.flight.payload.QPylonEditor import QPylonEditor
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -5,9 +5,9 @@ from typing import Optional
|
|||||||
from PySide2.QtWidgets import QComboBox
|
from PySide2.QtWidgets import QComboBox
|
||||||
|
|
||||||
from game import Game
|
from game import Game
|
||||||
from game.data.weapons import Pylon, Weapon
|
|
||||||
from game.ato.flight import Flight
|
from game.ato.flight import Flight
|
||||||
from game.ato.loadouts import Loadout
|
from game.ato.loadouts import Loadout
|
||||||
|
from game.data.weapons import Pylon, Weapon
|
||||||
|
|
||||||
|
|
||||||
class QPylonEditor(QComboBox):
|
class QPylonEditor(QComboBox):
|
||||||
|
|||||||
@ -14,9 +14,9 @@ from PySide2.QtWidgets import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
from game import Game
|
from game import Game
|
||||||
from game.squadrons.pilot import Pilot
|
|
||||||
from game.ato.flightroster import FlightRoster
|
|
||||||
from game.ato.flight import Flight
|
from game.ato.flight import Flight
|
||||||
|
from game.ato.flightroster import FlightRoster
|
||||||
|
from game.squadrons.pilot import Pilot
|
||||||
from qt_ui.models import PackageModel
|
from qt_ui.models import PackageModel
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -7,12 +7,12 @@ from qt_ui.models import PackageModel
|
|||||||
from qt_ui.windows.mission.flight.settings.FlightAirfieldDisplay import (
|
from qt_ui.windows.mission.flight.settings.FlightAirfieldDisplay import (
|
||||||
FlightAirfieldDisplay,
|
FlightAirfieldDisplay,
|
||||||
)
|
)
|
||||||
|
from qt_ui.windows.mission.flight.settings.QCustomName import QFlightCustomName
|
||||||
from qt_ui.windows.mission.flight.settings.QFlightSlotEditor import QFlightSlotEditor
|
from qt_ui.windows.mission.flight.settings.QFlightSlotEditor import QFlightSlotEditor
|
||||||
from qt_ui.windows.mission.flight.settings.QFlightStartType import QFlightStartType
|
from qt_ui.windows.mission.flight.settings.QFlightStartType import QFlightStartType
|
||||||
from qt_ui.windows.mission.flight.settings.QFlightTypeTaskInfo import (
|
from qt_ui.windows.mission.flight.settings.QFlightTypeTaskInfo import (
|
||||||
QFlightTypeTaskInfo,
|
QFlightTypeTaskInfo,
|
||||||
)
|
)
|
||||||
from qt_ui.windows.mission.flight.settings.QCustomName import QFlightCustomName
|
|
||||||
|
|
||||||
|
|
||||||
class QGeneralFlightSettingsTab(QFrame):
|
class QGeneralFlightSettingsTab(QFrame):
|
||||||
|
|||||||
@ -1,5 +1,3 @@
|
|||||||
from typing import List
|
|
||||||
|
|
||||||
from PySide2.QtGui import QStandardItem
|
from PySide2.QtGui import QStandardItem
|
||||||
|
|
||||||
from game.ato.flightwaypoint import FlightWaypoint
|
from game.ato.flightwaypoint import FlightWaypoint
|
||||||
|
|||||||
@ -4,10 +4,10 @@ from PySide2.QtCore import QItemSelectionModel, QPoint
|
|||||||
from PySide2.QtGui import QStandardItem, QStandardItemModel
|
from PySide2.QtGui import QStandardItem, QStandardItemModel
|
||||||
from PySide2.QtWidgets import QHeaderView, QTableView
|
from PySide2.QtWidgets import QHeaderView, QTableView
|
||||||
|
|
||||||
from game.ato.package import Package
|
|
||||||
from game.ato.flightwaypointtype import FlightWaypointType
|
|
||||||
from game.ato.flightwaypoint import FlightWaypoint
|
|
||||||
from game.ato.flight import Flight
|
from game.ato.flight import Flight
|
||||||
|
from game.ato.flightwaypoint import FlightWaypoint
|
||||||
|
from game.ato.flightwaypointtype import FlightWaypointType
|
||||||
|
from game.ato.package import Package
|
||||||
from qt_ui.windows.mission.flight.waypoints.QFlightWaypointItem import QWaypointItem
|
from qt_ui.windows.mission.flight.waypoints.QFlightWaypointItem import QWaypointItem
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -159,10 +159,12 @@ class NewGameWizard(QtWidgets.QWizard):
|
|||||||
)
|
)
|
||||||
mod_settings = ModSettings(
|
mod_settings = ModSettings(
|
||||||
a4_skyhawk=self.field("a4_skyhawk"),
|
a4_skyhawk=self.field("a4_skyhawk"),
|
||||||
|
a6a_intruder=self.field("a6a_intruder"),
|
||||||
f4b_phantom=self.field("f4b_phantom"),
|
f4b_phantom=self.field("f4b_phantom"),
|
||||||
f15d_baz=self.field("f15d_baz"),
|
f15d_baz=self.field("f15d_baz"),
|
||||||
f_16_idf=self.field("f_16_idf"),
|
f_16_idf=self.field("f_16_idf"),
|
||||||
f22_raptor=self.field("f22_raptor"),
|
f22_raptor=self.field("f22_raptor"),
|
||||||
|
f84g_thunderjet=self.field("f84g_thunderjet"),
|
||||||
f100_supersabre=self.field("f100_supersabre"),
|
f100_supersabre=self.field("f100_supersabre"),
|
||||||
f104_starfighter=self.field("f104_starfighter"),
|
f104_starfighter=self.field("f104_starfighter"),
|
||||||
f105_thunderchief=self.field("f105_thunderchief"),
|
f105_thunderchief=self.field("f105_thunderchief"),
|
||||||
@ -657,6 +659,8 @@ class GeneratorOptions(QtWidgets.QWizardPage):
|
|||||||
modSettingsGroup = QtWidgets.QGroupBox("Mod Settings")
|
modSettingsGroup = QtWidgets.QGroupBox("Mod Settings")
|
||||||
a4_skyhawk = QtWidgets.QCheckBox()
|
a4_skyhawk = QtWidgets.QCheckBox()
|
||||||
self.registerField("a4_skyhawk", a4_skyhawk)
|
self.registerField("a4_skyhawk", a4_skyhawk)
|
||||||
|
a6a_intruder = QtWidgets.QCheckBox()
|
||||||
|
self.registerField("a6a_intruder", a6a_intruder)
|
||||||
hercules = QtWidgets.QCheckBox()
|
hercules = QtWidgets.QCheckBox()
|
||||||
self.registerField("hercules", hercules)
|
self.registerField("hercules", hercules)
|
||||||
uh_60l = QtWidgets.QCheckBox()
|
uh_60l = QtWidgets.QCheckBox()
|
||||||
@ -669,6 +673,8 @@ class GeneratorOptions(QtWidgets.QWizardPage):
|
|||||||
self.registerField("f_16_idf", f_16_idf)
|
self.registerField("f_16_idf", f_16_idf)
|
||||||
f22_raptor = QtWidgets.QCheckBox()
|
f22_raptor = QtWidgets.QCheckBox()
|
||||||
self.registerField("f22_raptor", f22_raptor)
|
self.registerField("f22_raptor", f22_raptor)
|
||||||
|
f84g_thunderjet = QtWidgets.QCheckBox()
|
||||||
|
self.registerField("f84g_thunderjet", f84g_thunderjet)
|
||||||
f100_supersabre = QtWidgets.QCheckBox()
|
f100_supersabre = QtWidgets.QCheckBox()
|
||||||
self.registerField("f100_supersabre", f100_supersabre)
|
self.registerField("f100_supersabre", f100_supersabre)
|
||||||
f104_starfighter = QtWidgets.QCheckBox()
|
f104_starfighter = QtWidgets.QCheckBox()
|
||||||
@ -698,6 +704,11 @@ class GeneratorOptions(QtWidgets.QWizardPage):
|
|||||||
)
|
)
|
||||||
modLayout.addWidget(a4_skyhawk, modLayout_row, 1)
|
modLayout.addWidget(a4_skyhawk, modLayout_row, 1)
|
||||||
modLayout_row += 1
|
modLayout_row += 1
|
||||||
|
modLayout.addWidget(
|
||||||
|
QtWidgets.QLabel("A-6A Intruder (v2.7.5.01)"), modLayout_row, 0
|
||||||
|
)
|
||||||
|
modLayout.addWidget(a6a_intruder, modLayout_row, 1)
|
||||||
|
modLayout_row += 1
|
||||||
modLayout.addWidget(
|
modLayout.addWidget(
|
||||||
QtWidgets.QLabel("F-4B Phantom II (v2.7.10.02 EFM + Patch 2022.10.02)"),
|
QtWidgets.QLabel("F-4B Phantom II (v2.7.10.02 EFM + Patch 2022.10.02)"),
|
||||||
modLayout_row,
|
modLayout_row,
|
||||||
@ -715,11 +726,18 @@ class GeneratorOptions(QtWidgets.QWizardPage):
|
|||||||
)
|
)
|
||||||
modLayout.addWidget(f_16_idf, modLayout_row, 1)
|
modLayout.addWidget(f_16_idf, modLayout_row, 1)
|
||||||
modLayout_row += 1
|
modLayout_row += 1
|
||||||
|
# Section break here for readability
|
||||||
|
modLayout.addWidget(QtWidgets.QWidget(), modLayout_row, 0)
|
||||||
|
modLayout_row += 1
|
||||||
modLayout.addWidget(QtWidgets.QLabel("F-22A Raptor"), modLayout_row, 0)
|
modLayout.addWidget(QtWidgets.QLabel("F-22A Raptor"), modLayout_row, 0)
|
||||||
modLayout.addWidget(f22_raptor, modLayout_row, 1)
|
modLayout.addWidget(f22_raptor, modLayout_row, 1)
|
||||||
modLayout_row += 1
|
modLayout_row += 1
|
||||||
# Section break here for readability
|
modLayout.addWidget(
|
||||||
modLayout.addWidget(QtWidgets.QWidget(), modLayout_row, 0)
|
QtWidgets.QLabel("F-84G Thunderjet (version 2.5.7.01)"),
|
||||||
|
modLayout_row,
|
||||||
|
0,
|
||||||
|
)
|
||||||
|
modLayout.addWidget(f84g_thunderjet, modLayout_row, 1)
|
||||||
modLayout_row += 1
|
modLayout_row += 1
|
||||||
modLayout.addWidget(
|
modLayout.addWidget(
|
||||||
QtWidgets.QLabel("F-100 Super Sabre (version 2.7.18.30765 patch 09.10.22)"),
|
QtWidgets.QLabel("F-100 Super Sabre (version 2.7.18.30765 patch 09.10.22)"),
|
||||||
@ -742,6 +760,9 @@ class GeneratorOptions(QtWidgets.QWizardPage):
|
|||||||
)
|
)
|
||||||
modLayout.addWidget(f105_thunderchief, modLayout_row, 1)
|
modLayout.addWidget(f105_thunderchief, modLayout_row, 1)
|
||||||
modLayout_row += 1
|
modLayout_row += 1
|
||||||
|
# Section break here for readability
|
||||||
|
modLayout.addWidget(QtWidgets.QWidget(), modLayout_row, 0)
|
||||||
|
modLayout_row += 1
|
||||||
modLayout.addWidget(
|
modLayout.addWidget(
|
||||||
QtWidgets.QLabel("C-130J-30 Super Hercules"), modLayout_row, 0
|
QtWidgets.QLabel("C-130J-30 Super Hercules"), modLayout_row, 0
|
||||||
)
|
)
|
||||||
@ -752,9 +773,6 @@ class GeneratorOptions(QtWidgets.QWizardPage):
|
|||||||
)
|
)
|
||||||
modLayout.addWidget(uh_60l, modLayout_row, 1)
|
modLayout.addWidget(uh_60l, modLayout_row, 1)
|
||||||
modLayout_row += 1
|
modLayout_row += 1
|
||||||
# Section break here for readability
|
|
||||||
modLayout.addWidget(QtWidgets.QWidget(), modLayout_row, 0)
|
|
||||||
modLayout_row += 1
|
|
||||||
modLayout.addWidget(
|
modLayout.addWidget(
|
||||||
QtWidgets.QLabel("JAS 39 Gripen (version v1.8.0-beta)"), modLayout_row, 0
|
QtWidgets.QLabel("JAS 39 Gripen (version v1.8.0-beta)"), modLayout_row, 0
|
||||||
)
|
)
|
||||||
@ -768,11 +786,16 @@ class GeneratorOptions(QtWidgets.QWizardPage):
|
|||||||
modLayout.addWidget(QtWidgets.QLabel("Su-57 Felon"), modLayout_row, 0)
|
modLayout.addWidget(QtWidgets.QLabel("Su-57 Felon"), modLayout_row, 0)
|
||||||
modLayout.addWidget(su57_felon, modLayout_row, 1)
|
modLayout.addWidget(su57_felon, modLayout_row, 1)
|
||||||
modLayout_row += 1
|
modLayout_row += 1
|
||||||
|
# Section break here for readability
|
||||||
|
modLayout.addWidget(QtWidgets.QWidget(), modLayout_row, 0)
|
||||||
|
modLayout_row += 14
|
||||||
modLayout.addWidget(QtWidgets.QLabel("Frenchpack"), modLayout_row, 0)
|
modLayout.addWidget(QtWidgets.QLabel("Frenchpack"), modLayout_row, 0)
|
||||||
modLayout.addWidget(frenchpack, modLayout_row, 1)
|
modLayout.addWidget(frenchpack, modLayout_row, 1)
|
||||||
modLayout_row += 1
|
|
||||||
modLayout.addWidget(QtWidgets.QLabel("High Digit SAMs"), modLayout_row, 0)
|
# new column starts here
|
||||||
modLayout.addWidget(high_digit_sams, modLayout_row, 1)
|
modLayout_row = 1
|
||||||
|
modLayout.addWidget(QtWidgets.QLabel("High Digit SAMs"), modLayout_row, 2)
|
||||||
|
modLayout.addWidget(high_digit_sams, modLayout_row, 3)
|
||||||
modSettingsGroup.setLayout(modLayout)
|
modSettingsGroup.setLayout(modLayout)
|
||||||
|
|
||||||
mlayout = QVBoxLayout()
|
mlayout = QVBoxLayout()
|
||||||
|
|||||||
@ -1,3 +1,5 @@
|
|||||||
|
from PySide2.QtCore import QTimer
|
||||||
|
from PySide2.QtGui import QTextCursor
|
||||||
from PySide2.QtWidgets import (
|
from PySide2.QtWidgets import (
|
||||||
QDialog,
|
QDialog,
|
||||||
QPlainTextEdit,
|
QPlainTextEdit,
|
||||||
@ -6,14 +8,10 @@ from PySide2.QtWidgets import (
|
|||||||
QPushButton,
|
QPushButton,
|
||||||
QLabel,
|
QLabel,
|
||||||
)
|
)
|
||||||
from PySide2.QtGui import QTextCursor
|
|
||||||
from PySide2.QtCore import QTimer
|
|
||||||
|
|
||||||
import qt_ui.uiconstants as CONST
|
import qt_ui.uiconstants as CONST
|
||||||
from game.game import Game
|
from game.game import Game
|
||||||
|
|
||||||
from time import sleep
|
|
||||||
|
|
||||||
|
|
||||||
class QNotesWindow(QDialog):
|
class QNotesWindow(QDialog):
|
||||||
def __init__(self, game: Game):
|
def __init__(self, game: Game):
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
from PySide2.QtGui import QIcon, Qt
|
from PySide2.QtGui import QIcon
|
||||||
from PySide2.QtWidgets import QDialog, QVBoxLayout, QPushButton, QHBoxLayout
|
from PySide2.QtWidgets import QDialog, QVBoxLayout, QPushButton, QHBoxLayout
|
||||||
|
|
||||||
from qt_ui.windows.preferences.QLiberationPreferences import QLiberationPreferences
|
from qt_ui.windows.preferences.QLiberationPreferences import QLiberationPreferences
|
||||||
|
|||||||
@ -2,6 +2,7 @@ from PySide2.QtCharts import QtCharts
|
|||||||
from PySide2.QtCore import QPoint, Qt
|
from PySide2.QtCore import QPoint, Qt
|
||||||
from PySide2.QtGui import QPainter
|
from PySide2.QtGui import QPainter
|
||||||
from PySide2.QtWidgets import QFrame, QGridLayout
|
from PySide2.QtWidgets import QFrame, QGridLayout
|
||||||
|
|
||||||
from game import Game
|
from game import Game
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -2,6 +2,7 @@ from PySide2.QtCharts import QtCharts
|
|||||||
from PySide2.QtCore import QPoint, Qt
|
from PySide2.QtCore import QPoint, Qt
|
||||||
from PySide2.QtGui import QPainter
|
from PySide2.QtGui import QPainter
|
||||||
from PySide2.QtWidgets import QFrame, QGridLayout
|
from PySide2.QtWidgets import QFrame, QGridLayout
|
||||||
|
|
||||||
from game import Game
|
from game import Game
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user