diff --git a/game/db.py b/game/db.py index 117cb01a..9d5c4edf 100644 --- a/game/db.py +++ b/game/db.py @@ -715,365 +715,6 @@ PRICES = { highdigitsams.SAM_SA_17_Buk_M1_2_LN_9A310M1_2: 40, } -""" -Units separated by tasks. This will include units for both countries. Be advised that unit could only belong to single task! - -Following tasks are present: -* CAP - figther aircraft for CAP/Escort/Intercept -* CAS - CAS aircraft -* Transport - transport aircraft (used as targets in intercept operations) -* AWACS - awacs -* AntishipStrike - units that will engage shipping -* PinpointStrike - armor that will engage in ground war -* AirDefense - AA units -* Reconnaissance - units that will be used as targets in destroy insurgents operations -* Nothing - troops that will be used for helicopter transport operations -* Embarking - helicopters that will be used for helicopter transport operations -* Carriage - aircraft carriers -* CargoTransportation - ships that will be used as targets for ship intercept operations -""" -UNIT_BY_TASK = { - 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, - I_16, - JF_17, - J_11A, - M_2000C, - MiG_19P, - MiG_21Bis, - MiG_23MLD, - MiG_25PD, - MiG_29A, - MiG_29G, - MiG_29S, - MiG_31, - Mirage_2000_5, - P_51D, - P_51D_30_NA, - SA342Mistral, - SpitfireLFMkIX, - SpitfireLFMkIXCW, - Su_27, - Su_30, - Su_33, - Su_57, - ], - CAS: [ - AH_1W, - AH_64A, - AH_64D, - AJS37, - AV8BNA, - A_10A, - A_10C, - A_10C_2, - A_20G, - B_17G, - B_1B, - B_52H, - F_117A, - F_15E, - F_86F_Sabre, - Hercules, - Ju_88A4, - Ka_50, - L_39ZA, - MB_339PAN, - MQ_9_Reaper, - MiG_15bis, - MiG_27K, - Mi_24V, - Mi_28N, - Mi_8MT, - OH_58D, - P_47D_30, - P_47D_30bl1, - P_47D_40, - RQ_1A_Predator, - SA342L, - SA342M, - SA342Minigun, - SH_60B, - S_3B, - Su_17M4, - Su_24M, - Su_24MR, - Su_25, - Su_25T, - Su_34, - Tornado_GR4, - Tornado_IDS, - Tu_160, - Tu_22M3, - Tu_95MS, - UH_1H, - WingLoong_I, - ], - Transport: [ - An_26B, - An_30M, - CH_47D, - CH_53E, - C_130, - C_17A, - IL_76MD, - Mi_26, - UH_60A, - Yak_40, - ], - Refueling: [ - IL_78M, - KC130, - KC135MPRS, - KC_135, - S_3B_Tanker, - ], - AWACS: [ - A_50, - E_2C, - E_3A, - KJ_2000, - ], - PinpointStrike: [ - Armor.APC_MTLB, - Armor.APC_MTLB, - Armor.APC_MTLB, - Armor.APC_MTLB, - Armor.APC_MTLB, - Artillery.Grad_MRL_FDDM__FC, - Artillery.Grad_MRL_FDDM__FC, - Artillery.Grad_MRL_FDDM__FC, - Artillery.Grad_MRL_FDDM__FC, - Artillery.Grad_MRL_FDDM__FC, - Armor.Scout_BRDM_2, - Armor.Scout_BRDM_2, - Armor.Scout_BRDM_2, - Armor.APC_BTR_RD, - Armor.APC_BTR_RD, - Armor.APC_BTR_RD, - Armor.APC_BTR_RD, - Armor.APC_BTR_80, - Armor.APC_BTR_80, - Armor.APC_BTR_80, - Armor.APC_BTR_80, - Armor.APC_BTR_80, - Armor.IFV_BTR_82A, - Armor.IFV_BTR_82A, - Armor.IFV_BMP_1, - Armor.IFV_BMP_1, - Armor.IFV_BMP_1, - Armor.IFV_BMP_2, - Armor.IFV_BMP_2, - Armor.IFV_BMP_3, - Armor.IFV_BMP_3, - Armor.IFV_BMD_1, - Armor.LT_PT_76, - Armor.ZBD_04A, - Armor.ZBD_04A, - Armor.ZBD_04A, - Armor.MBT_T_55, - Armor.MBT_T_55, - Armor.MBT_T_55, - Armor.MBT_T_72B, - Armor.MBT_T_72B, - Armor.MBT_T_72B3, - Armor.MBT_T_72B3, - Armor.MBT_T_80U, - Armor.MBT_T_80U, - Armor.MBT_T_90, - Armor.ZTZ_96B, - Armor.Scout_Cobra, - Armor.Scout_Cobra, - Armor.Scout_Cobra, - Armor.Scout_Cobra, - Armor.APC_M113, - Armor.APC_M113, - Armor.APC_M113, - Armor.APC_M113, - Armor.APC_TPz_Fuchs, - Armor.APC_TPz_Fuchs, - Armor.APC_TPz_Fuchs, - Armor.APC_TPz_Fuchs, - Armor.ATGM_HMMWV, - Armor.ATGM_HMMWV, - Armor.ATGM_VAB_Mephisto, - Armor.ATGM_VAB_Mephisto, - Armor.Scout_HMMWV, - Armor.Scout_HMMWV, - Armor.IFV_M2A2_Bradley, - Armor.IFV_M2A2_Bradley, - Armor.ATGM_Stryker, - Armor.ATGM_Stryker, - Armor.IFV_M1126_Stryker_ICV, - Armor.IFV_M1126_Stryker_ICV, - Armor.IFV_M1126_Stryker_ICV, - Armor.SPG_Stryker_MGS, - Armor.IFV_Warrior, - Armor.IFV_Warrior, - Armor.IFV_Warrior, - Armor.IFV_LAV_25, - Armor.IFV_LAV_25, - Armor.IFV_Marder, - Armor.IFV_Marder, - Armor.IFV_Marder, - Armor.IFV_Marder, - Armor.MBT_M60A3_Patton, - Armor.MBT_M60A3_Patton, - Armor.MBT_M60A3_Patton, - Armor.MBT_Leopard_1A3, - Armor.MBT_Leopard_1A3, - Armor.MBT_M1A2_Abrams, - Armor.MBT_Leclerc, - Armor.MBT_Leopard_2A6M, - Armor.MBT_Challenger_II, - Armor.MBT_Chieftain_Mk_3, - Armor.MBT_Merkava_IV, - Armor.MT_Pz_Kpfw_V_Panther_Ausf_G, - Armor.Tk_PzIV_H, - Armor.HT_Pz_Kpfw_VI_Tiger_I, - Armor.HT_Pz_Kpfw_VI_Ausf__B_Tiger_II, - Armor.APC_Sd_Kfz_251_Halftrack, - Armor.APC_Sd_Kfz_251_Halftrack, - Armor.APC_Sd_Kfz_251_Halftrack, - Armor.APC_Sd_Kfz_251_Halftrack, - Armor.IFV_Sd_Kfz_234_2_Puma, - Armor.IFV_Sd_Kfz_234_2_Puma, - Armor.Tk_M4_Sherman, - Armor.MT_M4A4_Sherman_Firefly, - Armor.CT_Cromwell_IV, - Unarmed.Carrier_M30_Cargo, - Unarmed.Carrier_M30_Cargo, - Armor.APC_M2A1_Halftrack, - Armor.APC_M2A1_Halftrack, - Armor.APC_M2A1_Halftrack, - Armor.APC_M2A1_Halftrack, - Armor.MT_Pz_Kpfw_V_Panther_Ausf_G, - Armor.Tk_PzIV_H, - Armor.HT_Pz_Kpfw_VI_Tiger_I, - Armor.HT_Pz_Kpfw_VI_Ausf__B_Tiger_II, - Armor.SPG_Jagdpanther_G1, - Armor.SPG_Jagdpanzer_IV, - Armor.SPG_Sd_Kfz_184_Elefant, - Armor.APC_Sd_Kfz_251_Halftrack, - Armor.IFV_Sd_Kfz_234_2_Puma, - Armor.Tk_M4_Sherman, - Armor.MT_M4A4_Sherman_Firefly, - Armor.CT_Cromwell_IV, - Unarmed.Carrier_M30_Cargo, - Unarmed.Carrier_M30_Cargo, - Unarmed.Carrier_M30_Cargo, - Armor.APC_M2A1_Halftrack, - Armor.APC_M2A1_Halftrack, - Armor.CT_Centaur_IV, - Armor.CT_Centaur_IV, - Armor.HIT_Churchill_VII, - Armor.Car_M8_Greyhound_Armored, - Armor.Car_M8_Greyhound_Armored, - Armor.SPG_M10_GMC, - Armor.SPG_M10_GMC, - Armor.SPG_StuG_III_Ausf__G, - Armor.SPG_StuG_IV, - Artillery.SPG_M12_GMC_155mm, - Armor.SPG_Sturmpanzer_IV_Brummbar, - Armor.Car_Daimler_Armored, - Armor.LT_Mk_VII_Tetrarch, - Artillery.MLRS_M270_227mm, - Artillery.SPH_M109_Paladin_155mm, - Artillery.SPM_2S9_Nona_120mm_M, - Artillery.SPH_2S1_Gvozdika_122mm, - Artillery.SPH_2S3_Akatsia_152mm, - Artillery.SPH_2S19_Msta_152mm, - Artillery.MLRS_BM_21_Grad_122mm, - Artillery.MLRS_BM_21_Grad_122mm, - Artillery.MLRS_9K57_Uragan_BM_27_220mm, - Artillery.MLRS_9A52_Smerch_HE_300mm, - Artillery.SPH_Dana_vz77_152mm, - Artillery.SPH_T155_Firtina_155mm, - Artillery.PLZ_05, - Artillery.SPG_M12_GMC_155mm, - Armor.SPG_Sturmpanzer_IV_Brummbar, - AirDefence.SPAAA_ZU_23_2_Mounted_Ural_375, - AirDefence.SPAAA_ZU_23_2_Insurgent_Mounted_Ural_375, - AirDefence.SPAAA_ZSU_57_2, - AirDefence.SPAAA_ZSU_23_4_Shilka_Gun_Dish, - AirDefence.SAM_SA_8_Osa_Gecko_TEL, - AirDefence.SAM_SA_9_Strela_1_Gaskin_TEL, - AirDefence.SAM_SA_13_Strela_10M3_Gopher_TEL, - AirDefence.SAM_SA_15_Tor_Gauntlet, - AirDefence.SAM_SA_19_Tunguska_Grison, - AirDefence.SPAAA_Gepard, - AirDefence.SPAAA_Vulcan_M163, - AirDefence.SAM_Linebacker___Bradley_M6, - AirDefence.SAM_Chaparral_M48, - AirDefence.SAM_Avenger__Stinger, - AirDefence.SAM_Roland_ADS, - AirDefence.HQ_7_Self_Propelled_LN, - AirDefence.AAA_8_8cm_Flak_18, - AirDefence.AAA_8_8cm_Flak_36, - AirDefence.AAA_8_8cm_Flak_37, - AirDefence.AAA_8_8cm_Flak_41, - AirDefence.AAA_Bofors_40mm, - AirDefence.AAA_S_60_57mm, - AirDefence.AAA_M1_37mm, - AirDefence.AAA_QF_3_7, - frenchpack.DIM__TOYOTA_BLUE, - frenchpack.DIM__TOYOTA_DESERT, - frenchpack.DIM__TOYOTA_GREEN, - frenchpack.DIM__KAMIKAZE, - frenchpack.AMX_10RCR, - frenchpack.AMX_10RCR_SEPAR, - frenchpack.ERC_90, - frenchpack.TRM_2000_PAMELA, - frenchpack.VAB__50, - frenchpack.VAB_MEPHISTO, - frenchpack.VAB_T20_13, - frenchpack.VBL__50, - frenchpack.VBL_AANF1, - frenchpack.VBAE_CRAB, - frenchpack.VBAE_CRAB_MMP, - frenchpack.AMX_30B2, - frenchpack.Leclerc_Serie_XXI, - frenchpack.DIM__TOYOTA_BLUE, - frenchpack.DIM__TOYOTA_GREEN, - frenchpack.DIM__TOYOTA_DESERT, - frenchpack.DIM__KAMIKAZE, - ], - Reconnaissance: [ - Unarmed.Truck_M818_6x6, - Unarmed.Truck_Ural_375, - Unarmed.LUV_UAZ_469_Jeep, - ], - Nothing: [ - Infantry.Infantry_M4, - Infantry.Infantry_AK_74, - ], - Embarking: [], - Carriage: [ - CVN_74_John_C__Stennis, - LHA_1_Tarawa, - CV_1143_5_Admiral_Kuznetsov, - ], - CargoTransportation: [ - Cargo_Ivanov, - Bulker_Yakushev, - Tanker_Elnya_160, - Boat_Armed_Hi_speed, - ], -} - """ Units separated by country. country : DCS Country name @@ -1216,10 +857,6 @@ def upgrade_to_supercarrier(unit, name: str): return unit -def find_unittype(for_task: Type[MainTask], country_name: str) -> List[Type[UnitType]]: - return [x for x in UNIT_BY_TASK[for_task] if x in FACTIONS[country_name].all_units] - - MANPADS: List[Type[VehicleType]] = [ AirDefence.MANPADS_SA_18_Igla_Grouse, AirDefence.MANPADS_SA_18_Igla_S_Grouse, @@ -1355,24 +992,6 @@ def country_id_from_name(name): return -1 -def _validate_db(): - # check unit by task uniquity - total_set = set() - for t, unit_collection in UNIT_BY_TASK.items(): - for unit_type in set(unit_collection): - assert unit_type not in total_set, "{} is duplicate for task {}".format( - unit_type, t - ) - total_set.add(unit_type) - - # check prices - for unit_type in total_set: - assert unit_type in PRICES, "{} not in prices".format(unit_type) - - -_validate_db() - - class DefaultLiveries: class Default(Enum): af_standard = ""