diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 000000000..8f7f7b92b --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,29 @@ +name: Build + +on: + push: + branches: + - master + pull_request: ~ + +jobs: + artifacts: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@master + + - uses: docker://node:10-alpine + name: Setup Node + + - name: Install dependencies + working-directory: _tools + run: npm install + + - name: Assemble and pack + working-directory: _tools + run: npx gulp + + - uses: actions/upload-artifact@master + with: + name: PBO-Files + path: _tools/build/pbo diff --git a/Missionframework/kp_liberation_config.sqf b/Missionframework/kp_liberation_config.sqf index 0c993250b..505ff654b 100644 --- a/Missionframework/kp_liberation_config.sqf +++ b/Missionframework/kp_liberation_config.sqf @@ -87,29 +87,30 @@ If you want to change a preset, it's recommended to set all four presets to 0 an 6 = RHS USAF (Woodland) 7 = RHS USAF (Desert) 8 = RHS AFRF (VDV/MSV) -9 = Germany West (Global Mobilization) -10 = Germany West Winter (Global Mobilization) -11 = Germany East (Global Mobilization) -12 = Germany East Winter (Global Mobilization) -13 = CSAT Brown -14 = CSAT Green -15 = Unsung US -16 = CUP British Armed Forces (Desert) -17 = CUP British Armed Forces (Woodland) -18 = CUP US Marine Corps (Desert) -19 = CUP US Marine Corps (Woodland) -20 = CUP US Army (Desert) -21 = CUP US Army (Woodland) -22 = CUP Chernarus Defense Force -23 = CUP Army of the Czech Republic (Desert) -24 = CUP Army of the Czech Republic (Woodland) -25 = CUP Chernarussian Movement of the Red Star -26 = CUP Sahrani Liberation Army -27 = CUP Takistani Army -28 = SFP (Woodland) -29 = SFP (Desert) -30 = LDF (Contact DLC) */ -KP_liberation_preset_blufor = 0; +9 = RHS AFRF (Drone Mods) +10 = Germany West (Global Mobilization) +11 = Germany West Winter (Global Mobilization) +12 = Germany East (Global Mobilization) +13 = Germany East Winter (Global Mobilization) +14 = CSAT Brown +15 = CSAT Green +16 = Unsung US +17 = CUP British Armed Forces (Desert) +18 = CUP British Armed Forces (Woodland) +19 = CUP US Marine Corps (Desert) +20 = CUP US Marine Corps (Woodland) +21 = CUP US Army (Desert) +22 = CUP US Army (Woodland) +23 = CUP Chernarus Defense Force +24 = CUP Army of the Czech Republic (Desert) +25 = CUP Army of the Czech Republic (Woodland) +26 = CUP Chernarussian Movement of the Red Star +27 = CUP Sahrani Liberation Army +28 = CUP Takistani Army +29 = SFP (Woodland) +30 = SFP (Desert) +31 = LDF (Contact DLC) */ +KP_liberation_preset_blufor = 9; /* OPFOR preset: 0 = Custom (default vanilla CSAT) @@ -132,7 +133,8 @@ KP_liberation_preset_blufor = 0; 17 = CUP Armed Forces of the Russian Federation (Modern MSV) 18 = CUP Chernarus Defense Force 19 = CUP British Armed Forces (Desert) -20 = CUP British Armed Forces (Woodland) */ +20 = CUP British Armed Forces (Woodland) +21 = RHS USAF (Woodland) */ KP_liberation_preset_opfor = 0; /* Resistance preset: diff --git a/Missionframework/presets/blufor/rhs_afrf_drones.sqf b/Missionframework/presets/blufor/rhs_afrf_drones.sqf new file mode 100644 index 000000000..d450a2cbd --- /dev/null +++ b/Missionframework/presets/blufor/rhs_afrf_drones.sqf @@ -0,0 +1,353 @@ +/* + Needed Mods: + - RHS AFRF + - Orion UAV (https://steamcommunity.com/sharedfiles/filedetails/?id=3093850989) + - Orlan UAV (https://steamcommunity.com/sharedfiles/filedetails/?id=3083949886) + + Optional Mods: + - None +*/ + +/* + --- Support classnames --- + Each of these should be unique. + The same classnames for different purposes may cause various unpredictable issues with player actions. + Or not, just don't try! +*/ +FOB_typename = "Land_Cargo_HQ_V1_F"; // This is the main FOB HQ building. +FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +FOB_truck_typename = "rhs_gaz66_r142_msv"; // This is the FOB as a vehicle. +Arsenal_typename = "O_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +Respawn_truck_typename = "rhs_gaz66_ap2_msv"; // This is the mobile respawn (and medical) truck. +huron_typename = "RHS_Mi8mt_vvs"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. +crewman_classname = "rhs_msv_emr_armoredcrew"; // This defines the crew for vehicles. +pilot_classname = "rhs_pilot_combat_heli"; // This defines the pilot for helicopters. +KP_liberation_little_bird_classname = "rhs_ka60_grey"; // These are the little birds which spawn on the Freedom or at Chimera base. +KP_liberation_boat_classname = "O_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KP_liberation_truck_classname = "rhs_kamaz5350_flatbed_vdv"; // These are the trucks which are used in the logistic convoy system. +KP_liberation_small_storage_building = "ContainmentArea_02_forest_F"; // A small storage area for resources. +KP_liberation_large_storage_building = "ContainmentArea_01_forest_F"; // A large storage area for resources. +KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KP_liberation_air_vehicle_building = "rhs_prv13"; // The building defined to unlock FOB air vehicle functionality. +KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. + +/* + --- Friendly classnames --- + Each array below represents one of the 7 pages within the build menu. + Format: ["vehicle_classname",supplies,ammunition,fuel], + Example: ["B_APC_Tracked_01_AA_F",300,150,150], + The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. + IMPORTANT: The last element inside each array must have no comma at the end! +*/ +infantry_units = [ + ["rhs_vdv_rifleman_lite",15,0,0], // Rifleman (Light) + ["rhs_vdv_rifleman",20,0,0], // Rifleman + ["rhs_vdv_LAT",30,0,0], // Rifleman (LAT) + ["rhs_vdv_grenadier_alt",25,0,0], // Grenadier + ["rhs_vdv_machinegunner", 25,0,0], // Machinegunner + ["rhs_vdv_arifleman",30,0,0], // Autorifleman + ["rhs_vdv_marksman",30,0,0], // Marksman + ["rhs_vdv_at",50,10,0], // AT Specialist + ["rhs_vdv_aa",50,10,0], // AA Specialist + ["rhs_vdv_medic",30,0,0], // Combat Life Saver + ["rhs_vdv_engineer",30,0,0], // Engineer + ["rhs_vdv_recon_rifleman",20,0,0], // Recon Rifleman + ["rhs_vdv_recon_rifleman_lat",30,0,0], // Recon Rifleman (AT) + ["rhs_vdv_recon_arifleman",30,0,0], // Recon Autorifleman + ["rhs_vdv_recon_arifleman_scout",25,0,0], // Recon Autorifleman Scout + ["rhs_vdv_recon_marksman",30,0,0], // Recon Marksman + ["rhs_vdv_armoredcrew",10,0,0], // Crewman + ["rhs_pilot_combat_heli",10,0,0], // Helicopter Pilot + ["rhs_pilot_transport_heli",10,0,0], // Helicopter Pilot Transport + ["rhs_pilot",10,0,0] // Pilot +]; + +light_vehicles = [ + ["O_Quadbike_01_F",50,0,25], // Quad Bike + ["rhs_uaz_vdv",50,0,45], // UAZ + ["rhs_uaz_open_vdv",50,0,45], // UAZ (Open) + ["rhs_tigr_m_vdv",100,0,50], // GAZ-233114 (Unarmed) + ["rhs_tigr_m_3camo_vdv",100,0,50], // GAZ-233114 (Unarmed) Camo + ["rhs_tigr_sts_vdv",100,60,50], // GAZ-233014 (Armed) + ["rhs_tigr_sts_3camo_vdv",100,60,50], // GAZ-233014 (Armed) Camo + ["rhs_gaz66_ap2_vdv",120,0,60], // GAZ-66-AP-2 (Medical) + ["rhs_kamaz5350_vdv",125,0,75], // KamAZ-5350 (covered infantry truck) + ["RHS_Ural_VDV_01",105,0,75], // Ural-4320 (covered infantry truck) + ["rhs_kamaz5350_open_vdv",125,0,75], // KamaZ-5350 (open infantry truck) + ["RHS_Ural_Open_VDV_01",105,0,75], // Ural-4320 (open infantry truck) + ["rhs_pts_vmf",125,0,100], // PTS + ["rhs_gaz66_zu23_vdv",105,70,65], // GAZ-66 (ZU-23) + ["rhs_btr60_vdv",150,40,100], // BTR-60PB + ["rhs_btr70_vdv",180,60,100], // BTR-70 + ["rhs_btr80_vdv",180,80,100], // BTR-80 + ["rhs_btr80a_vdv",220,80,100], // BTR-80A + ["RHS_BM21_VDV_01",200,1500,200], // BM-21 (Grad) + ["O_UGV_01_F",150,0,50], // UGV Saif + ["O_UGV_01_rcws_F",150,40,50], // UGV Saif (RCWS) + ["O_Boat_Transport_01_F",100,0,25], // Assault Boat + ["O_Boat_Armed_01_minigun_F",200,80,75], // Speedboat Minigun + ["O_SDV_01_F",150,0,50] // SDV +]; + +heavy_vehicles = [ + ["rhs_bmp1k_vdv",200,40,100], // BMP-1K + ["rhs_bmp2k_vdv",240,150,100], // BMP-2K + ["rhs_bmd2m",260,170,120], // BMD-2M (Berezhok) + ["rhs_bmd4m_vdv",300,200,150], // BMD-4M + ["rhs_bmd4ma_vdv",300,250,150], // BMD-4M (Armored) + ["rhs_zsu234_aa",300,250,175], // ZSU-23-4 + ["rhs_t72bd_tv",400,250,200], // T-72B3 + ["rhs_t80ue1",400,350,250], // T-80UE1 + ["rhs_t90a_tv",500,400,300], // T-90A + ["rhs_t90sab_tv",600,400,300], // T-90SA (2016) + ["rhs_t14_tv",600,500,400], // T-14 + ["rhs_2s1_tv",600,1000,300], // 2S1 + ["rhs_2s3_tv",600,1250,300] // 2S3M1 +]; + +air_vehicles = [ + ["O_UAV_01_F",75,0,25], // AR-2 Tayran + ["O_UAV_06_F",80,0,30], // AL-6 Jinaah (Cargo) + ["orlan_tripod_launcher_OPF",75,0,25], // Orlan Drone Launcher + ["rhs_ka60_c",200,0,100], // KA-60 + ["RHS_Mi8AMT_vdv",225,0,125], // Mi-8AMT (Unarmed) + ["RHS_Mi8MTV3_vdv",225,200,125], // Mi-8MTV-3 + ["RHS_Ka52_vvsc",500,500,200], // Ka-52 + ["RHS_Mi24V_vdv",550,550,250], // Mi-24V + ["rhs_mi28n_vvsc",650,600,300], // Mi-28N + ["orion_F_KORNET_OPF",400,300,200], // Orion Kornet + ["O_T_UAV_04_CAS_F",450,500,250], // KH-3A + ["RHS_Su25SM_vvsc",900,900,400], // Su-25SM + ["rhs_mig29s_vvsc",1250,1250,450] // Mig-29S +]; + +static_vehicles = [ + ["RHS_NSV_TriPod_VDV",25,40,0], // NSV Low Tripod + ["rhs_KORD_high_VDV",25,40,0], // KORD High Tripod + ["RHS_AGS30_TriPod_VDV",25,60,0], // AGS30 Low Tripod + ["rhs_Kornet_9M133_2_vdv",50,100,0], // Kornet (AT) + ["rhs_Igla_AA_pod_vdv",50,100,0], // Igla Pod (AA) + ["RHS_ZU23_VDV",80,120,0], // ZU-23 + ["rhs_SPG9M_VDV",40,90,0], // SPG-9 Low Tripod + ["rhs_D30_vdv",100,200,0], // D-30 + ["rhs_D30_at_vdv",100,200,0] // D-30 AT +]; + +buildings = [ + ["Land_Cargo_House_V1_F",0,0,0], + ["Land_Cargo_Patrol_V1_F",0,0,0], + ["Land_Cargo_Tower_V1_F",0,0,0], + ["rhs_Flag_Russia_F",0,0,0], + ["rhs_Flag_vdv_F",0,0,0], + ["BWA3_Flag_Ger_F",0,0,0], + ["rhs_Flag_vmf_F",0,0,0], + ["Flag_White_F",0,0,0], + ["Land_Medevac_house_V1_F",0,0,0], + ["Land_Medevac_HQ_V1_F",0,0,0], + ["Flag_RedCrystal_F",0,0,0], + ["CamoNet_BLUFOR_F",0,0,0], + ["CamoNet_BLUFOR_open_F",0,0,0], + ["CamoNet_BLUFOR_big_F",0,0,0], + ["Land_PortableLight_single_F",0,0,0], + ["Land_PortableLight_double_F",0,0,0], + ["Land_LampSolar_F",0,0,0], + ["Land_LampHalogen_F",0,0,0], + ["Land_LampStreet_small_F",0,0,0], + ["Land_LampAirport_F",0,0,0], + ["Land_HelipadCircle_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["Land_HelipadRescue_F",0,0,0], // Strictly aesthetic - as in it does not increase helicopter cap! + ["PortableHelipadLight_01_blue_F",0,0,0], + ["PortableHelipadLight_01_green_F",0,0,0], + ["PortableHelipadLight_01_red_F",0,0,0], + ["Land_CampingChair_V1_F",0,0,0], + ["Land_CampingChair_V2_F",0,0,0], + ["Land_CampingTable_F",0,0,0], + ["MapBoard_altis_F",0,0,0], + ["MapBoard_stratis_F",0,0,0], + ["MapBoard_seismic_F",0,0,0], + ["Land_Pallet_MilBoxes_F",0,0,0], + ["Land_PaperBox_open_empty_F",0,0,0], + ["Land_PaperBox_open_full_F",0,0,0], + ["Land_PaperBox_closed_F",0,0,0], + ["Land_DieselGroundPowerUnit_01_F",0,0,0], + ["Land_ToolTrolley_02_F",0,0,0], + ["Land_WeldingTrolley_01_F",0,0,0], + ["Land_Workbench_01_F",0,0,0], + ["Land_GasTank_01_blue_F",0,0,0], + ["Land_GasTank_01_khaki_F",0,0,0], + ["Land_GasTank_01_yellow_F",0,0,0], + ["Land_GasTank_02_F",0,0,0], + ["Land_BarrelWater_F",0,0,0], + ["Land_BarrelWater_grey_F",0,0,0], + ["Land_WaterBarrel_F",0,0,0], + ["Land_WaterTank_F",0,0,0], + ["Land_BagFence_Round_F",0,0,0], + ["Land_BagFence_Short_F",0,0,0], + ["Land_BagFence_Long_F",0,0,0], + ["Land_BagFence_Corner_F",0,0,0], + ["Land_BagFence_End_F",0,0,0], + ["Land_BagBunker_Small_F",0,0,0], + ["Land_BagBunker_Large_F",0,0,0], + ["Land_BagBunker_Tower_F",0,0,0], + ["Land_HBarrier_1_F",0,0,0], + ["Land_HBarrier_3_F",0,0,0], + ["Land_HBarrier_5_F",0,0,0], + ["Land_HBarrier_Big_F",0,0,0], + ["Land_HBarrierWall4_F",0,0,0], + ["Land_HBarrierWall6_F",0,0,0], + ["Land_HBarrierWall_corner_F",0,0,0], + ["Land_HBarrierWall_corridor_F",0,0,0], + ["Land_HBarrierTower_F",0,0,0], + ["Land_CncBarrierMedium_F",0,0,0], + ["Land_CncBarrierMedium4_F",0,0,0], + ["Land_Concrete_SmallWall_4m_F",0,0,0], + ["Land_Concrete_SmallWall_8m_F",0,0,0], + ["Land_CncShelter_F",0,0,0], + ["Land_CncWall1_F",0,0,0], + ["Land_CncWall4_F",0,0,0], + ["Land_Sign_WarningMilitaryArea_F",0,0,0], + ["Land_Sign_WarningMilAreaSmall_F",0,0,0], + ["Land_Sign_WarningMilitaryVehicles_F",0,0,0], + ["Land_Razorwire_F",0,0,0], + ["Land_ClutterCutter_large_F",0,0,0] +]; + +support_vehicles = [ + [Arsenal_typename,100,200,0], + [Respawn_truck_typename,200,0,100], + [FOB_box_typename,300,500,0], + [FOB_truck_typename,300,500,75], + [KP_liberation_small_storage_building,0,0,0], + [KP_liberation_large_storage_building,0,0,0], + [KP_liberation_recycle_building,250,0,0], + [KP_liberation_air_vehicle_building,1000,0,0], + [KP_liberation_heli_slot_building,250,0,0], + [KP_liberation_plane_slot_building,500,0,0], + ["ACE_medicalSupplyCrate_advanced",50,0,0], + ["ACE_Box_82mm_Mo_HE",50,40,0], + ["ACE_Box_82mm_Mo_Smoke",50,10,0], + ["ACE_Box_82mm_Mo_Illum",50,10,0], + ["ACE_Wheel",10,0,0], + ["ACE_Track",10,0,0], + ["RHS_Ural_Repair_VDV_01",325,0,75], // Ural Repair + ["RHS_Ural_Fuel_VDV_01",125,0,275], // Ural Fuel + ["rhs_kamaz5350_ammo_vdv",125,200,75], // Kamaz Ammo + ["B_Slingload_01_Repair_F",275,0,0], // Huron Container Repair + ["B_Slingload_01_Fuel_F",75,0,200], // Huron Container Fuel + ["B_Slingload_01_Ammo_F",75,200,0] // Huron Container Ammo +]; + +/* + --- Squads --- + Pre-made squads for the commander build menu. + These shouldn't exceed 10 members. +*/ + +// Light infantry squad. +blufor_squad_inf_light = [ + "rhs_vdv_sergeant ", + "rhs_vdv_rifleman", + "rhs_vdv_LAT", + "rhs_vdv_at", + "rhs_vdv_grenadier_alt", + "rhs_vdv_arifleman", + "rhs_vdv_arifleman", + "rhs_vdv_marksman", + "rhs_vdv_medic", + "rhs_vdv_engineer" +]; + +// Heavy infantry squad. +blufor_squad_inf = [ + "rhs_vdv_sergeant ", + "rhs_vdv_rifleman", + "rhs_vdv_LAT", + "rhs_vdv_grenadier_alt", + "rhs_vdv_arifleman", + "rhs_vdv_arifleman", + "rhs_vdv_machinegunner", + "rhs_vdv_marksman", + "rhs_vdv_medic", + "rhs_vdv_engineer" +]; + +// AT specialists squad. +blufor_squad_at = [ + "rhs_vdv_sergeant ", + "rhs_vdv_rifleman", + "rhs_vdv_LAT", + "rhs_vdv_at", + "rhs_vdv_at", + "rhs_vdv_at", + "rhs_vdv_medic", + "rhs_vdv_rifleman" +]; + +// AA specialists squad. +blufor_squad_aa = [ + "rhs_vdv_sergeant ", + "rhs_vdv_rifleman", + "rhs_vdv_LAT", + "rhs_vdv_aa", + "rhs_vdv_aa", + "rhs_vdv_aa", + "rhs_vdv_medic", + "rhs_vdv_rifleman" +]; + +// Force recon squad. +blufor_squad_recon = [ + "rhs_vdv_recon_sergeant", + "rhs_vdv_rifleman", + "rhs_vdv_recon_grenadier", + "rhs_vdv_recon_at", + "rhs_vdv_recon_machinegunner", + "rhs_vdv_recon_machinegunner", + "rhs_vdv_recon_marksman", + "rhs_vdv_recon_marksman", + "rhs_vdv_recon_medic", + "rhs_vdv_recon_engineer" +]; + +// Paratroopers squad (The units of this squad will automatically get parachutes on build) +blufor_squad_para = [ + "rhs_vdv_recon_rifleman", + "rhs_vdv_recon_rifleman", + "rhs_vdv_recon_rifleman_lat", + "rhs_vdv_recon_rifleman", + "rhs_vdv_recon_rifleman", + "rhs_vdv_recon_rifleman_lat", + "rhs_vdv_recon_medic", + "rhs_vdv_recon_rifleman", + "rhs_vdv_recon_rifleman_lat", + "rhs_vdv_recon_marksman" +]; + +/* + --- Elite vehicles --- + Classnames below have to be unlocked by capturing military bases. + Which base locks a vehicle is randomized on the first start of the campaign. +*/ +elite_vehicles = [ + "rhs_t80ue1", // T-80UE1 + "rhs_t90a_tv", // T-90A + "rhs_t90sab_tv", // T-90SA (2016) + "rhs_t14_tv", // T-14 + "rhs_2s1_tv", // 2S1 + "rhs_2s3_tv", // 2S3M1 + "rhs_mi28n_vvsc", // Mi-28N + "orion_F_KORNET_OPF", // Orion Kornet + "O_T_UAV_04_CAS_F", // KH-3A + "RHS_Su25SM_vvsc", // Su-25SM + "rhs_mig29s_vvsc", // Mig-29S + "rhs_bmd4m_vdv", // BMD-4M + "rhs_bmd4ma_vdv", // BMD-4MA + "RHS_Ka52_vvsc", // Ka-52 + "rhs_btr80a_vdv", // BTR-80A + "rhs_bmd2m", // BMD-2M (Berezhok) + "RHS_BM21_VDV_01" // BM-21 (Grad) +]; diff --git a/Missionframework/presets/init_presets.sqf b/Missionframework/presets/init_presets.sqf index 5eafe1b0e..73d12e85b 100644 --- a/Missionframework/presets/init_presets.sqf +++ b/Missionframework/presets/init_presets.sqf @@ -17,28 +17,29 @@ switch (KP_liberation_preset_blufor) do { case 6: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\rhs_usaf_wdl.sqf";}; case 7: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\rhs_usaf_des.sqf";}; case 8: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\rhs_afrf.sqf";}; - case 9: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\gm_west.sqf";}; - case 10: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\gm_west_win.sqf";}; - case 11: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\gm_east.sqf";}; - case 12: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\gm_east_win.sqf";}; - case 13: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\csat.sqf";}; - case 14: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\csat_apex.sqf";}; - case 15: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\unsung.sqf";}; - case 16: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_BAF_Desert.sqf";}; - case 17: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_BAF_Woodland.sqf";}; - case 18: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_USMC_Desert.sqf";}; - case 19: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_USMC_Woodland.sqf";}; - case 20: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_USA_Desert.sqf";}; - case 21: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_USA_Woodland.sqf";}; - case 22: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_CDF.sqf";}; - case 23: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_ACR_Desert.sqf";}; - case 24: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_ACR_Woodland.sqf";}; - case 25: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_ChDKZ.sqf";}; - case 26: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_SLA.sqf";}; - case 27: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_TakiArmy.sqf";}; - case 28: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\sfp_wdl.sqf";}; - case 29: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\sfp_des.sqf";}; - case 30: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\enoch.sqf";}; + case 9: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\rhs_afrf_drones.sqf"} + case 10: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\gm_west.sqf";}; + case 11: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\gm_west_win.sqf";}; + case 12: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\gm_east.sqf";}; + case 13: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\gm_east_win.sqf";}; + case 14: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\csat.sqf";}; + case 15: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\csat_apex.sqf";}; + case 16: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\unsung.sqf";}; + case 17: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_BAF_Desert.sqf";}; + case 18: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_BAF_Woodland.sqf";}; + case 19: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_USMC_Desert.sqf";}; + case 20: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_USMC_Woodland.sqf";}; + case 21: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_USA_Desert.sqf";}; + case 22: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_USA_Woodland.sqf";}; + case 23: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_CDF.sqf";}; + case 24: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_ACR_Desert.sqf";}; + case 25: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_ACR_Woodland.sqf";}; + case 26: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_ChDKZ.sqf";}; + case 27: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_SLA.sqf";}; + case 28: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_TakiArmy.sqf";}; + case 29: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\sfp_wdl.sqf";}; + case 30: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\sfp_des.sqf";}; + case 31: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\enoch.sqf";}; default {[] call compileFinal preprocessFileLineNumbers "presets\blufor\custom.sqf";}; }; @@ -63,6 +64,7 @@ switch (KP_liberation_preset_opfor) do { case 18: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\CUP_CDF.sqf";}; case 19: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\CUP_BAF_Desert.sqf";}; case 20: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\CUP_BAF_Woodland.sqf";}; + case 21: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\rhs_usaf_wdl.sqf";}; default {[] call compileFinal preprocessFileLineNumbers "presets\opfor\custom.sqf";}; }; diff --git a/Missionframework/presets/opfor/rhs_usaf_wdl.sqf b/Missionframework/presets/opfor/rhs_usaf_wdl.sqf new file mode 100644 index 000000000..2f9b60a04 --- /dev/null +++ b/Missionframework/presets/opfor/rhs_usaf_wdl.sqf @@ -0,0 +1,143 @@ +/* + Needed Mods: + - RHS USAF + + Optional Mods: + - None +*/ + +// Enemy infantry classes +opfor_officer = "rhsusf_army_ucp_officer"; // Officer +opfor_squad_leader = "rhsusf_army_ucp_squadleader"; // Squad Leader +opfor_team_leader = "rhsusf_army_ucp_teamleader"; // Team Leader +opfor_sentry = "rhsusf_army_ucp_riflemanl"; // Rifleman (Lite) +opfor_rifleman = "rhsusf_army_ucp_rifleman_m4"; // Rifleman M4 +opfor_rpg = "rhsusf_army_ucp_maaws"; // Rifleman (MAAWS) +opfor_grenadier = "rhsusf_army_ucp_grenadier"; // Grenadier +opfor_machinegunner = "rhsusf_army_ucp_autorifleman"; // Autorifleman +opfor_heavygunner = "rhsusf_army_ucp_machinegunner"; // Heavy Gunner +opfor_marksman = "rhsusf_army_ucp_marksman"; // Marksman +opfor_sharpshooter = "rhsusf_army_ucp_m107"; // Sharpshooter +opfor_sniper = "rhsusf_army_ucp_sniper"; // Sniper +opfor_at = "rhsusf_army_ucp_javelin"; // AT Specialist +opfor_aa = "rhsusf_army_ucp_aa"; // AA Specialist +opfor_medic = "rhsusf_army_ucp_medic"; // Combat Life Saver +opfor_engineer = "rhsusf_army_ucp_engineer"; // Engineer +opfor_paratrooper = "O_soldier_PG_F"; // Paratrooper + +// Enemy vehicles used by secondary objectives. +opfor_mrap = "rhsusf_M1220_usarmy_wd"; // M1220 MRAP +KPLIB_o_mrapArmed = "rhsusf_M1120_M2_usarmy_wd"; // HMMWV (M2) +opfor_transport_helo = "RHS_UH60M"; // UH 60 M +opfor_transport_truck = "rhsusf_M1083A1P2_WD_fmtv_usarmy"; // M1083A1P2 (Covered) +opfor_ammobox_transport = "rhsusf_M1083A1P2_WD_flatbed_fmtv_usarmy"; // M1083A1P2 (Open) +opfor_fuel_truck = "rhsusf_M978A4_BKIT_usarmy_wd"; // M978A4 Fuel +opfor_ammo_truck = "rhsusf_M977A4_AMMO_BKIT_usarmy_wd"; // M977A4 Ammo +opfor_fuel_container = "Land_Pod_Heli_Transport_04_fuel_F"; // Taru Fuel Pod +opfor_ammo_container = "Land_Pod_Heli_Transport_04_ammo_F"; // Taru Ammo Pod +opfor_flag = "Flag_US_F"; // Flag + +/* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. +Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ + +/* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. +Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ +militia_squad = [ + "rhsusf_army_ucp_riflemanl", // Rifleman (Lite) + "rhsusf_army_ucp_riflemanl", // Rifleman (Lite) + "rhsusf_army_ucp_rifleman", // Rifleman + "rhsusf_army_ucp_rifleman", // Rifleman + "rhsusf_army_ucp_riflemanat", // Rifleman (AT) + "rhsusf_army_ucp_autorifleman", // Autorifleman + "rhsusf_army_ucp_marksman", // Marksman + "rhsusf_army_ucp_medic", // Medic + "rhsusf_army_ucp_engineer" // Engineer +]; + +// Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. +militia_vehicles = [ + "rhsusf_m1025_w_m2" // HMMWV (M2) +]; + +// All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). +opfor_vehicles = [ + "rhsusf_m1151_m2_v1_usarmy_wd", // HMMWV (M2) + "rhsusf_m1151_m2crows_usarmy_wd", // HMMWV (M2 Crows) + "rhsusf_m1151_mk19_v2_usarmy_wd", // HMMWV (MK19) + "rhsusf_m1151_m240_usarmy_wd", // HMMWV (TOW) + "RHS_M2A3_BUSKI_wd ", // M2A3 Bradley + "RHS_M2A3_wd", // M2A3 Bradley + "RHS_M6_wd", // M6 AA Bradley + "RHS_M6_wd", // M6 AA Bradley + "rhsusf_m1a1aimwd_usarmy", // M1A1 Abrams + "rhsusf_m1a1aim_tuski_wd", // M1A1 Abrams TUSK I + "rhsusf_m1a2sep1wd_usarmy", // M1A2 Abrams + "rhsusf_m1a2sep1tuskiiwd_usarmy" // M1A2 Abrams TUSK II +]; + +// All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). +opfor_vehicles_low_intensity = [ + "rhsusf_m1025_w_m2", // HMMWV (HMG) + "rhsusf_m1025_w_m2", // HMMWV (HMG) + "rhsusf_m1045_w_s", // HMMWV (TOW) + "rhsusf_m1240a1_m2_usarmy_wd", // M-ATV (HMG) + "rhsusf_m113_usarmy" // M113 +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles = [ + "rhsusf_m1151_m2_v1_usarmy_wd", // HMMWV (M2) + "rhsusf_m1025_w_m2", // HMMWV (M2) + "rhsusf_m1025_w_mk19", // HMMWV (MK19) + "rhsusf_m966_w", // HMMWV (TOW) + "rhsusf_M1232_M2_usarmy_wd", // M1232 Transport (M2) + "rhsusf_M1078A1P2_WD_fmtv_usarmy", // M1078A1P2 Transport (Covered) + "rhsusf_stryker_m1127_m2_wd", // Stryker + "RHS_M2A2_wd", // Bradley + "RHS_M6_wd", // M6 AA Bradley + "RHS_M6_wd", // M6 AA Bradley + "rhsusf_m1a1aimwd_usarmy", // M1A1 Abrams + "rhsusf_m1a2sep1wd_usarmy", // M1A2 Abrams + "rhsusf_m1a2sep1tskiwd_usarmy", // M1A2 Abrams TUSK I + "rhsusf_m1a2sep1tskiiwd_usarmy", // M1A2 Abrams TUSK II + "RHS_UH1Y_d", // UH1Y (Armed) + "RHS_UH60M_d", // UH60M + "RHS_CH_47F_10", // Chinhook + "RHS_AH64D_wd" // AH64D +]; + +// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). +opfor_battlegroup_vehicles_low_intensity = [ + "rhsusf_m1025_w_m2", // HMMWV (M2) + "rhsusf_m1151_ma_v1_usarmy_wd", // HMMWV (M2) + "rhsusf_M1232_M2_usarmy_wd", // M1232 Transport (M2) + "rhsusf_m113_usarmy_M240", // M113 (M240) + "RHS_M2A2_wd", // M2A2 Bradley + "RHS_M6_wdF", // M6 AA Bradley + "RHS_UH1Y_d", // UH1Y (Armed) + "RHS_UH60M_d" // UH60M +]; + +/* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. +If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ +opfor_troup_transports = [ + "rhsusf_M1078A1P2_WD_fmtv_usarmy", // M1078A1P2 Transport (Covered) + "rhsusf_stryker_m1127_m2_wd", // Stryker + "rhsusf_M1232_M2_usarmy_wd", // M1232 Transport (M2) + "RHS_UH60M_d", // UH60M + "RHS_CH_47F_10" // Chinhook +]; + +// Enemy rotary-wings that will need to spawn in flight. +opfor_choppers = [ + "RHS_UH60M_d", // UH60M + "RHS_UH1Y_d", // UH1Y (Armed) + "RHS_AH64D_wd", // AH64D + "RHS_CH_47F_10" // Chinhook +]; + +// Enemy fixed-wings that will need to spawn in the air. +opfor_air = [ + "RHS_A10", // A10 + "rhsuf_f22" // F22 +];