Add transport aircraft to US factions.

This commit is contained in:
Dan Albert 2021-04-23 21:37:01 -07:00
parent 5320d20f71
commit dac2271084
11 changed files with 152 additions and 80 deletions

View File

@ -9,9 +9,12 @@ from dcs.helicopters import (
AH_1W, AH_1W,
AH_64A, AH_64A,
AH_64D, AH_64D,
CH_47D,
CH_53E,
HelicopterType, HelicopterType,
Ka_50, Ka_50,
Mi_24V, Mi_24V,
Mi_26,
Mi_28N, Mi_28N,
Mi_8MT, Mi_8MT,
OH_58D, OH_58D,
@ -43,6 +46,7 @@ from dcs.planes import (
Bf_109K_4, Bf_109K_4,
C_101CC, C_101CC,
C_130, C_130,
C_17A,
E_3A, E_3A,
E_2C, E_2C,
FA_18C_hornet, FA_18C_hornet,
@ -441,6 +445,10 @@ PRICES = {
AH_64D: 30, AH_64D: 30,
OH_58D: 6, OH_58D: 6,
SH_60B: 6, SH_60B: 6,
CH_47D: 4,
CH_53E: 4,
UH_60A: 4,
Mi_26: 4,
# Bombers # Bombers
B_52H: 35, B_52H: 35,
B_1B: 50, B_1B: 50,
@ -464,6 +472,7 @@ PRICES = {
E_2C: 50, E_2C: 50,
C_130: 25, C_130: 25,
Hercules: 25, Hercules: 25,
C_17A: 20,
# WW2 # WW2
P_51D_30_NA: 18, P_51D_30_NA: 18,
P_51D: 16, P_51D: 16,
@ -729,42 +738,42 @@ Following tasks are present:
""" """
UNIT_BY_TASK = { UNIT_BY_TASK = {
CAP: [ CAP: [
A_4E_C,
Bf_109K_4,
C_101CC,
FA_18C_hornet,
FW_190A8,
FW_190D9,
F_14A_135_GR,
F_14B,
F_15C,
F_16A,
F_16C_50,
F_22A,
F_4E,
F_5E_3, F_5E_3,
Su_27, I_16,
Su_33, JF_17,
Su_57, J_11A,
M_2000C,
MiG_19P, MiG_19P,
MiG_21Bis, MiG_21Bis,
MiG_23MLD, MiG_23MLD,
MiG_25PD, MiG_25PD,
MiG_29A, MiG_29A,
MiG_29G,
MiG_29S, MiG_29S,
MiG_31, MiG_31,
FA_18C_hornet,
F_15C,
F_22A,
F_14A_135_GR,
F_14B,
F_16A,
F_16C_50,
M_2000C,
Mirage_2000_5, Mirage_2000_5,
P_51D_30_NA,
P_51D, P_51D,
MiG_29G, P_51D_30_NA,
Su_30,
J_11A,
JF_17,
F_4E,
C_101CC,
I_16,
Bf_109K_4,
FW_190D9,
FW_190A8,
SpitfireLFMkIXCW,
SpitfireLFMkIX,
A_4E_C,
SA342Mistral, SA342Mistral,
SpitfireLFMkIX,
SpitfireLFMkIXCW,
Su_27,
Su_30,
Su_33,
Su_57,
], ],
CAS: [ CAS: [
AH_1W, AH_1W,
@ -782,6 +791,7 @@ UNIT_BY_TASK = {
F_117A, F_117A,
F_15E, F_15E,
F_86F_Sabre, F_86F_Sabre,
Hercules,
Ju_88A4, Ju_88A4,
Ka_50, Ka_50,
L_39ZA, L_39ZA,
@ -797,10 +807,11 @@ UNIT_BY_TASK = {
P_47D_30bl1, P_47D_30bl1,
P_47D_40, P_47D_40,
RQ_1A_Predator, RQ_1A_Predator,
S_3B,
SA342L, SA342L,
SA342M, SA342M,
SA342Minigun, SA342Minigun,
SH_60B,
S_3B,
Su_17M4, Su_17M4,
Su_24M, Su_24M,
Su_24MR, Su_24MR,
@ -813,19 +824,33 @@ UNIT_BY_TASK = {
Tu_22M3, Tu_22M3,
Tu_95MS, Tu_95MS,
UH_1H, UH_1H,
SH_60B,
WingLoong_I, WingLoong_I,
Hercules,
], ],
Transport: [IL_76MD, An_26B, An_30M, Yak_40, C_130], Transport: [
An_26B,
An_30M,
CH_47D,
CH_53E,
C_130,
C_17A,
IL_76MD,
Mi_26,
UH_60A,
Yak_40,
],
Refueling: [ Refueling: [
IL_78M, IL_78M,
KC_135,
KC130, KC130,
S_3B_Tanker,
KC135MPRS, KC135MPRS,
KC_135,
S_3B_Tanker,
],
AWACS: [
A_50,
E_2C,
E_3A,
KJ_2000,
], ],
AWACS: [E_3A, E_2C, A_50, KJ_2000],
PinpointStrike: [ PinpointStrike: [
Armor.APC_MTLB, Armor.APC_MTLB,
Armor.APC_MTLB, Armor.APC_MTLB,

View File

@ -4,7 +4,7 @@ import math
import typing import typing
from typing import Dict, Type from typing import Dict, Type
from dcs.task import AWACS, CAP, CAS, Embarking, PinpointStrike, Task from dcs.task import AWACS, CAP, CAS, Embarking, PinpointStrike, Task, Transport
from dcs.unittype import FlyingType, UnitType, VehicleType from dcs.unittype import FlyingType, UnitType, VehicleType
from dcs.vehicles import AirDefence, Armor from dcs.vehicles import AirDefence, Armor
@ -152,6 +152,7 @@ class Base:
or for_task == CAS or for_task == CAS
or for_task == CAP or for_task == CAP
or for_task == Embarking or for_task == Embarking
or for_task == Transport
): ):
target_dict = self.aircraft target_dict = self.aircraft
elif for_task == PinpointStrike: elif for_task == PinpointStrike:

View File

@ -5,8 +5,11 @@ from dcs.helicopters import (
AH_1W, AH_1W,
AH_64A, AH_64A,
AH_64D, AH_64D,
CH_47D,
CH_53E,
Ka_50, Ka_50,
Mi_24V, Mi_24V,
Mi_26,
Mi_28N, Mi_28N,
Mi_8MT, Mi_8MT,
OH_58D, OH_58D,
@ -14,6 +17,7 @@ from dcs.helicopters import (
SA342M, SA342M,
SH_60B, SH_60B,
UH_1H, UH_1H,
UH_60A,
) )
from dcs.planes import ( from dcs.planes import (
AJS37, AJS37,
@ -23,11 +27,14 @@ from dcs.planes import (
A_10C_2, A_10C_2,
A_20G, A_20G,
A_50, A_50,
An_26B,
B_17G, B_17G,
B_1B, B_1B,
B_52H, B_52H,
Bf_109K_4, Bf_109K_4,
C_101CC, C_101CC,
C_130,
C_17A,
E_2C, E_2C,
E_3A, E_3A,
FA_18C_hornet, FA_18C_hornet,
@ -43,6 +50,7 @@ from dcs.planes import (
F_4E, F_4E,
F_5E_3, F_5E_3,
F_86F_Sabre, F_86F_Sabre,
IL_76MD,
I_16, I_16,
JF_17, JF_17,
J_11A, J_11A,
@ -88,6 +96,7 @@ from dcs.planes import (
Tu_95MS, Tu_95MS,
WingLoong_I, WingLoong_I,
I_16, I_16,
Yak_40,
) )
from dcs.unittype import FlyingType from dcs.unittype import FlyingType
@ -355,9 +364,20 @@ RUNWAY_ATTACK_CAPABLE = [
# For any aircraft that isn't necessarily directly involved in strike # For any aircraft that isn't necessarily directly involved in strike
# missions in a direct combat sense, but can transport objects and infantry. # missions in a direct combat sense, but can transport objects and infantry.
TRANSPORT_CAPABLE = [ TRANSPORT_CAPABLE = [
C_17A,
Hercules, Hercules,
Mi_8MT, C_130,
IL_76MD,
An_26B,
Yak_40,
CH_53E,
CH_47D,
SH_60B,
UH_60A,
UH_1H, UH_1H,
Mi_8MT,
Mi_8MT,
Mi_26,
] ]
DRONES = [MQ_9_Reaper, RQ_1A_Predator, WingLoong_I] DRONES = [MQ_9_Reaper, RQ_1A_Predator, WingLoong_I]
@ -394,6 +414,8 @@ def aircraft_for_task(task: FlightType) -> List[Type[FlyingType]]:
return CAP_CAPABLE return CAP_CAPABLE
elif task == FlightType.AEWC: elif task == FlightType.AEWC:
return AEWC_CAPABLE return AEWC_CAPABLE
elif task == FlightType.TRANSPORT:
return TRANSPORT_CAPABLE
else: else:
logging.error(f"Unplannable flight type: {task}") logging.error(f"Unplannable flight type: {task}")
return [] return []

View File

@ -13,7 +13,7 @@ from PySide2.QtWidgets import (
QWidget, QWidget,
) )
from dcs.helicopters import helicopter_map from dcs.helicopters import helicopter_map
from dcs.task import CAP, CAS, AWACS from dcs.task import CAP, CAS, AWACS, Transport
from dcs.unittype import FlyingType, UnitType from dcs.unittype import FlyingType, UnitType
from game import db from game import db
@ -45,7 +45,7 @@ class QAircraftRecruitmentMenu(QFrame, QRecruitBehaviour):
def init_ui(self): def init_ui(self):
main_layout = QVBoxLayout() main_layout = QVBoxLayout()
tasks = [CAP, CAS, AWACS] tasks = [CAP, CAS, AWACS, Transport]
scroll_content = QWidget() scroll_content = QWidget()
task_box_layout = QGridLayout() task_box_layout = QGridLayout()

View File

@ -4,10 +4,11 @@
"authors": "Khopa", "authors": "Khopa",
"description": "<p>US army in the 50s, circa Korean War.</p>", "description": "<p>US army in the 50s, circa Korean War.</p>",
"aircrafts": [ "aircrafts": [
"B_52H",
"C_130",
"F_86F_Sabre", "F_86F_Sabre",
"P_51D", "P_51D",
"P_51D_30_NA", "P_51D_30_NA"
"B_52H"
], ],
"frontline_units": [ "frontline_units": [
"MT_M4_Sherman", "MT_M4_Sherman",

View File

@ -4,10 +4,11 @@
"authors": "Khopa", "authors": "Khopa",
"description": "<p>US army in the 60s, pre-Vietnam war.</p>", "description": "<p>US army in the 60s, pre-Vietnam war.</p>",
"aircrafts": [ "aircrafts": [
"B_52H",
"C_130",
"F_86F_Sabre", "F_86F_Sabre",
"P_51D", "P_51D",
"P_51D_30_NA", "P_51D_30_NA",
"B_52H",
"UH_1H" "UH_1H"
], ],
"frontline_units": [ "frontline_units": [

View File

@ -4,9 +4,11 @@
"authors": "Khopa", "authors": "Khopa",
"description": "<p>US army in the late 60s, during Vietnam war.</p>", "description": "<p>US army in the late 60s, during Vietnam war.</p>",
"aircrafts": [ "aircrafts": [
"F_5E_3",
"F_4E",
"B_52H", "B_52H",
"CH_47D",
"C_130",
"F_4E",
"F_5E_3",
"UH_1H" "UH_1H"
], ],
"awacs": [ "awacs": [

View File

@ -4,11 +4,14 @@
"authors": "Khopa", "authors": "Khopa",
"description": "<p>US army in the 70s at the end of the war in Vietnam.</p>", "description": "<p>US army in the 70s at the end of the war in Vietnam.</p>",
"aircrafts": [ "aircrafts": [
"F_5E_3",
"F_4E",
"F_14A_135_GR",
"S_3B",
"B_52H", "B_52H",
"CH_47D",
"CH_53E",
"C_130",
"F_14A_135_GR",
"F_4E",
"F_5E_3",
"S_3B",
"UH_1H" "UH_1H"
], ],
"awacs": [ "awacs": [

View File

@ -4,21 +4,26 @@
"authors": "Khopa", "authors": "Khopa",
"description": "<p>US army in the 90s, Gulf War/Desert Storm.</p>", "description": "<p>US army in the 90s, Gulf War/Desert Storm.</p>",
"aircrafts": [ "aircrafts": [
"F_15C", "AH_64A",
"F_15E", "AV8BNA",
"A_10A",
"B_1B",
"B_52H",
"CH_47D",
"CH_53E",
"C_130",
"FA_18C_hornet",
"F_117A",
"F_14A_135_GR", "F_14A_135_GR",
"F_14B", "F_14B",
"FA_18C_hornet", "F_15C",
"F_15E",
"F_16C_50", "F_16C_50",
"A_10A",
"AV8BNA",
"UH_1H",
"S_3B",
"SH_60B", "SH_60B",
"AH_64A", "SH_60B",
"B_52H", "S_3B",
"B_1B", "UH_1H",
"F_117A" "UH_60A"
], ],
"awacs": [ "awacs": [
"E_3A", "E_3A",

View File

@ -4,21 +4,27 @@
"authors": "Khopa", "authors": "Khopa",
"description": "<p>USA in the 2000s.</p>", "description": "<p>USA in the 2000s.</p>",
"aircrafts": [ "aircrafts": [
"F_15C", "AH_64D",
"F_15E", "AV8BNA",
"F_14B",
"F_117A",
"FA_18C_hornet",
"F_16C_50",
"A_10C", "A_10C",
"A_10C_2", "A_10C_2",
"AV8BNA", "B_1B",
"UH_1H",
"S_3B",
"SH_60B",
"AH_64D",
"B_52H", "B_52H",
"B_1B" "CH_47D",
"CH_53E",
"C_130",
"C_17A",
"FA_18C_hornet",
"F_117A",
"F_14B",
"F_15C",
"F_15E",
"F_16C_50",
"SH_60B",
"SH_60B",
"S_3B",
"UH_1H",
"UH_60A"
], ],
"awacs": [ "awacs": [
"E_3A", "E_3A",

View File

@ -4,22 +4,28 @@
"authors": "Khopa", "authors": "Khopa",
"description": "<p>USA in the 2000s.</p>", "description": "<p>USA in the 2000s.</p>",
"aircrafts": [ "aircrafts": [
"F_15C", "AH_64D",
"F_15E", "AV8BNA",
"F_14B",
"FA_18C_hornet",
"F_16C_50",
"A_10C", "A_10C",
"A_10C_2", "A_10C_2",
"AV8BNA",
"UH_1H",
"S_3B",
"SH_60B",
"AH_64D",
"B_52H",
"B_1B", "B_1B",
"B_52H",
"CH_47D",
"CH_53E",
"C_130",
"C_17A",
"FA_18C_hornet",
"F_117A", "F_117A",
"Hercules" "F_14B",
"F_15C",
"F_15E",
"F_16C_50",
"Hercules",
"SH_60B",
"SH_60B",
"S_3B",
"UH_1H",
"UH_60A"
], ],
"awacs": [ "awacs": [
"E_3A", "E_3A",