/*
    Needed Mods:
    - Global Mobilization

    Optional Mods:
    - LEN - Cold War Helicopters (due to lack fo air assets in GM for now) - https://steamcommunity.com/sharedfiles/filedetails/?id=1726445116
*/

// Enemy infantry classes
opfor_officer = "gm_ge_army_officer_p1_90_flk";                         // Officer
opfor_squad_leader = "gm_ge_army_squadleader_g36a1_p2a1_90_flk";        // Squad Leader
opfor_team_leader = "gm_ge_army_squadleader_g36a1_p2a1_90_flk";         // Team Leader
opfor_sentry = "gm_ge_army_rifleman_g36a1_90_flk";                      // Rifleman (Lite)
opfor_rifleman = "gm_ge_army_rifleman_g36a1_90_flk";                    // Rifleman
opfor_rpg = "gm_ge_army_antitank_g36a1_milan_90_flk";                   // Rifleman (LAT)
opfor_grenadier = "gm_ge_army_grenadier_hk69a1_90_flk";                 // Grenadier
opfor_machinegunner = "gm_ge_army_machinegunner_mg3_90_flk";            // Autorifleman
opfor_heavygunner = "gm_ge_army_machinegunner_mg3_90_flk";              // Heavy Gunner
opfor_marksman = "gm_ge_army_marksman_g3a3_90_flk";                     // Marksman
opfor_sharpshooter = "gm_ge_army_marksman_g3a3_90_flk";                 // Sharpshooter
opfor_sniper = "gm_ge_army_marksman_g3a3_90_flk";                       // Sniper
opfor_at = "gm_ge_army_antitank_g36a1_pzf3_90_flk";                     // AT Specialist
opfor_aa = "gm_ge_army_antiair_g36a1_fim43_90_flk";                     // AA Specialist
opfor_medic = "gm_ge_army_medic_g36a1_90_flk";                          // Combat Life Saver
opfor_engineer = "gm_ge_army_engineer_g36a1_90_flks";                   // Engineer
opfor_paratrooper = "gm_ge_army_paratrooper_g36a1_90_flk";              // Paratrooper

// Enemy vehicles used by secondary objectives.
opfor_mrap = "gm_ge_army_iltis_cargo";                                  // Truck 0.5t
opfor_mrap_armed = "gm_ge_army_iltis_milan";                            // Truck 0.5t MILAN
opfor_transport_helo = "gm_ge_army_kat1_454_cargo";                     // Truck 10t mil gl Transport
opfor_transport_truck = "gm_ge_army_kat1_451_cargo";                    // Truck 5t mil gl Transport
opfor_ammobox_transport = "gm_ge_army_kat1_451_container";              // Truck 5t mil gl Container -> Has to be able to transport resource crates!
opfor_fuel_truck = "gm_ge_army_kat1_451_refuel";                        // Truck 5t mil gl Fuel
opfor_ammo_truck = "gm_ge_army_kat1_451_reammo";                        // Truck 5t mil gl Ammo
opfor_fuel_container = "B_Slingload_01_Fuel_F";                         // Huron Fuel Container
opfor_ammo_container = "B_Slingload_01_Ammo_F";                         // Huron Ammo Container
opfor_flag = "FlagPole_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 = [
    "gm_ge_army_rifleman_g36a1_90_flk",                                  // Rifleman (Lite)
    "gm_ge_army_rifleman_g36a1_90_flk",                                  // Rifleman (Lite)
    "gm_ge_army_rifleman_g36a1_90_flk",                                  // Rifleman
    "gm_ge_army_rifleman_g36a1_90_flk",                                  // Rifleman
    "gm_ge_army_antitank_g36a1_pzf3_90_flk",                             // Rifleman (AT)
    "gm_ge_army_machinegunner_mg3_90_flk",                               // Autorifleman
    "gm_ge_army_marksman_g3a3_90_flk",                                   // Marksman
    "gm_ge_army_medic_g36a1_90_flk",                                     // Medic
    "gm_ge_army_engineer_g36a1_90_flk"                                   // 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 = [
    "gm_ge_army_u1300l_cargo",                                           // Truck 2t Transport
    "gm_ge_army_iltis_mg3",                                              // ILTIS MG3
    "gm_ge_army_iltis_milan",                                            // ILTIS MILAN
    "UK3CB_CW_US_B_LATE_M151_Jeep_HMG",                                  // M151 HMG
    "UK3CB_CW_US_B_LATE_M151_Jeep_TOW",                                  // M151 TOW
    "UK3CB_CW_US_B_LATE_M1025_M2",                                       // M1025 MG
    "UK3CB_CW_US_B_LATE_M1025_MK19",                                     // M1025 MK19
    "UK3CB_CW_US_B_LATE_M1025_TOW"                                       // M1025A2 TOW
];

// All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels).
opfor_vehicles = [
    "gm_ge_army_u1300l_cargo",                                          // Truck 2t Transport
    "gm_ge_army_iltis_mg3",                                             // ILTIS MG3
    "gm_ge_army_iltis_milan",                                           // Truck 0.5t MILAN
    "gm_ge_army_fuchsa0_engineer",                                      // Fuchs (Engineer)
    "gm_ge_army_fuchsa0_reconnaissance",                                // Fuchs (Recon, MILAN)
    "gm_ge_army_m113a1g_apc",                                           // M113A3 (MG3)
    "gm_ge_army_m113a1g_apc_milan",                                     // M113A3 (MILAN)
    "gm_ge_army_marder1a1plus",                                         // Marder 1A1+
    "gm_ge_army_marder1a1a",                                            // Marder 1A1A
    "gm_ge_army_marder1a2",                                             // Marder 1A2
    "UK3CB_CW_US_B_LATE_LAV25",                                         // LAV-25
    "UK3CB_CW_US_B_LATE_AAV",                                           // AAVP-7A1
    "UK3CB_CW_US_B_LATE_M2A2",                                          // M2A2 Bradley
    "gm_ge_army_gepard1a1",                                             // Gepard 1A1
    "gm_ge_army_Leopard1a1",                                            // Leopard 1A1
    "gm_ge_army_Leopard1a1a1",                                          // Leopard 1A1A1
    "gm_ge_army_Leopard1a1a2",                                          // Leopard 1A1A2
    "gm_ge_army_Leopard1a3",                                            // Leopard 1A3
    "gm_ge_army_Leopard1a3a1",                                          // Leopard 1A3A1
    "gm_ge_army_Leopard1a5",                                            // Leopard 1A5
    "UK3CB_CW_US_B_LATE_M60a3",                                         // M60A3
    "UK3CB_CW_US_B_LATE_M1A1"                                           // M1A1
];

// All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels).
opfor_vehicles_low_intensity = [
    "gm_ge_army_u1300l_cargo",                                          // Truck 2t Transport
    "gm_ge_army_iltis_milan",                                           // Truck 0.5t MILAN
    "gm_ge_army_fuchsa0_engineer",                                      // Fuchs (Engineer)
    "gm_ge_army_fuchsa0_reconnaissance",                                // Fuchs (Recon, MILAN)
    "UK3CB_CW_US_B_LATE_M151_Jeep_HMG",                                 // M151 M2
    "UK3CB_CW_US_B_LATE_M151_Jeep_TOW",                                 // M151 TOW
    "UK3CB_CW_US_B_LATE_M1025_M2",                                      // M1025 M2
    "UK3CB_CW_US_B_LATE_M1025_MK19",                                    // M1025 Mk19
    "UK3CB_CW_US_B_LATE_M1025_TOW",                                     // M1025 TOW
    "gm_ge_army_m113a1g_apc",                                           // M113A1G
    "gm_ge_army_m113a1g_apc_milan",                                     // M113A1G MILAN
    "UK3CB_CW_US_B_LATE_M113_M2",                                       // M113 M2
    "UK3CB_CW_US_B_LATE_M113_M240",                                     // M113 M240
    "UK3CB_CW_US_B_LATE_M113_MK19",                                     // M113 Mk19
    "gm_ge_army_luchsa1",                                               // Luchs 2A1
    "gm_ge_army_luchsa2"                                                // Luchs 2A2
];

// All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels).
opfor_battlegroup_vehicles = [
    "gm_ge_army_u1300l_cargo",                                          // Truck 2t Transport
    "gm_ge_army_iltis_mg3",                                             // ILTIS MG3
    "gm_ge_army_iltis_milan",                                           // Truck 0.5t MILAN
    "gm_ge_army_fuchsa0_engineer",                                      // Fuchs (Engineer)
    "gm_ge_army_fuchsa0_reconnaissance",                                // Fuchs (Recon, MILAN)
    "gm_ge_army_m113a1g_apc",                                           // M113A3 (MG3)
    "gm_ge_army_m113a1g_apc_milan",                                     // M113A3 (MILAN)
    "gm_ge_army_marder1a1plus",                                         // Marder 1A1+
    "gm_ge_army_marder1a1a",                                            // Marder 1A1A
    "gm_ge_army_marder1a2",                                             // Marder 1A2
    "UK3CB_CW_US_B_LATE_LAV25",                                         // LAV-25
    "UK3CB_CW_US_B_LATE_AAV",                                           // AAVP-7A1
    "UK3CB_CW_US_B_LATE_M2A2",                                          // M2A2 Bradley
    "gm_ge_army_gepard1a1",                                             // Gepard 1A1
    "gm_ge_army_Leopard1a1",                                            // Leopard 1A1
    "gm_ge_army_Leopard1a1a1",                                          // Leopard 1A1A1
    "gm_ge_army_Leopard1a1a2",                                          // Leopard 1A1A2
    "gm_ge_army_Leopard1a3",                                            // Leopard 1A3
    "gm_ge_army_Leopard1a3a1",                                          // Leopard 1A3A1
    "gm_ge_army_Leopard1a5",                                            // Leopard 1A5
    "UK3CB_CW_US_B_LATE_M109",                                          // M109A3
    "UK3CB_CW_US_B_LATE_M270_MLRS_CLUSTER",                             // M270 (Cluster)
    "UK3CB_CW_US_B_LATE_M270_MLRS_HE",                                  // M270 HE
    "gm_ge_army_m109g",                                                 // M109G
    "gm_ge_army_kat1_463_mlrs",                                         // SF2 LARS 2
    "UK3CB_CW_US_B_LATE_M60a3",                                         // M60A3
    "UK3CB_CW_US_B_LATE_M1A1",                                          // M1A1
    "len_uh1d_bw",                                                      // BW UH-1D
    "gm_ge_army_bo105p_pah1a1",                                         // PAH 1A1
    "gm_ge_army_bo105p_pah1",                                           // PAH-1
    "UK3CB_CW_US_B_LATE_UH1H_M240",                                     // UH-1H Armed
    "UK3CB_CW_US_B_LATE_UH1H_GUNSHIP",                                  // UH-1H Gunship
    "UK3CB_CW_US_B_LATE_UH60M",                                         // UH-60A
    "UK3CB_CW_US_B_LATE_AH64"                                           // AH-64A

];

// 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 = [
    "gm_ge_army_u1300l_cargo",                                          // Truck 2t Transport
    "gm_ge_army_iltis_milan",                                           // Truck 0.5t MILAN
    "gm_ge_army_fuchsa0_engineer",                                      // Fuchs (Engineer)
    "gm_ge_army_fuchsa0_reconnaissance",                                // Fuchs (Recon, MILAN)
    "gm_ge_army_luchsa1",                                               // Luchs 2A1
    "gm_ge_army_luchsa2",                                               // Luchs 2A2
    "gm_ge_army_m113a1g_apc",                                           // M113A3 (MG3)
    "gm_ge_army_m113a1g_apc_milan",                                     // M113A3 (MILAN)
    "gm_ge_army_gepard1a1",                                             // Gepard 1A1
    "len_uh1d_bw"                                                       // BW UH-1D
];

/* 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 = [
    "gm_ge_army_u1300l_cargo",                                          // Truck 2t Transport
    "gm_ge_army_fuchsa0_engineer",                                      // Fuchs (Engineer)
    "gm_ge_army_fuchsa0_reconnaissance",                                // Fuchs (Recon, MILAN)
    "gm_ge_army_m113a1g_apc",                                           // M113A3 (MG3)
    "gm_ge_army_m113a1g_apc_milan",                                     // M113A3 (MILAN)
    "gm_ge_army_ch53g"                                                  // CH-53G
];

// Enemy rotary-wings that will need to spawn in flight.
opfor_choppers = [
    "gm_ge_army_bo105p_pah1",                                           // PAH 1
    "gm_ge_army_bo105p_pah1a1",                                         // PAH 1A1
    "gm_ge_army_ch53g",                                                 // CH-53G
    "len_uh1d_bw",                                                      // BW UH-1D
    "UK3CB_CW_US_B_LATE_UH1H_M240",                                     // UH-1H Armed
    "UK3CB_CW_US_B_LATE_UH1H_GUNSHIP",                                  // UH-1H Gunship
    "UK3CB_CW_US_B_LATE_UH60M",                                         // UH-60A
    "UK3CB_CW_US_B_LATE_AH64"                                           // AH-64A
];

// Enemy fixed-wings that will need to spawn in the air.
opfor_air = [
    "UK3CB_CW_US_B_LATE_A10"                                            // A-10A
];
