diff --git a/A3A/addons/config_fixes/Aegis/CfgVehicles.hpp b/A3A/addons/config_fixes/Aegis/CfgVehicles.hpp new file mode 100644 index 0000000000..4e7bef596e --- /dev/null +++ b/A3A/addons/config_fixes/Aegis/CfgVehicles.hpp @@ -0,0 +1,10 @@ +//Aegis - CfgVehicles.hpp + +class CfgVehicles +{ +//#include "air.hpp" +//#include "armor.hpp" +#include "ifv.hpp" +//#include "sea.hpp" +//#include "soft.hpp" +}; \ No newline at end of file diff --git a/A3A/addons/config_fixes/Aegis/CfgWeapons.hpp b/A3A/addons/config_fixes/Aegis/CfgWeapons.hpp new file mode 100644 index 0000000000..5054571040 --- /dev/null +++ b/A3A/addons/config_fixes/Aegis/CfgWeapons.hpp @@ -0,0 +1,10 @@ +//Aegis - CfgWeapons.hpp + +class CfgWeapons +{ + class Aegis_arifle_AKM74_F; + class Aegis_arifle_AKM74_sand_F : Aegis_arifle_AKM74_F + { + baseWeapon = "Aegis_arifle_AKM74_sand_F"; + }; +}; diff --git a/A3A/addons/config_fixes/Aegis/config.cpp b/A3A/addons/config_fixes/Aegis/config.cpp new file mode 100644 index 0000000000..31f337fd57 --- /dev/null +++ b/A3A/addons/config_fixes/Aegis/config.cpp @@ -0,0 +1,25 @@ +//Aegis - config.cpp + +#include "..\script_component.hpp" + + +class CfgPatches +{ + class PATCHNAME(Aegis) + { + name = COMPONENT_NAME; + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = {"A3_Aegis_Weapons_F_Aegis_Rifles_AKM74", "A3_Aegis_Data_F_Aegis_Loadorder"}; + author = AUTHOR; + authors[] = { AUTHORS }; + authorUrl = ""; + VERSION_CONFIG; + skipWhenMissingDependencies = 1; + }; +}; + +// Uncomment when needed +#include "CfgVehicles.hpp" +#include "CfgWeapons.hpp" diff --git a/A3A/addons/config_fixes/Aegis/ifv.hpp b/A3A/addons/config_fixes/Aegis/ifv.hpp new file mode 100644 index 0000000000..4e4339e876 --- /dev/null +++ b/A3A/addons/config_fixes/Aegis/ifv.hpp @@ -0,0 +1,169 @@ +//Aegis - ifv.hpp + +// Mora/Lancer/Odyniec // +class APC_Tracked_03_base_v2_F; +class I_APC_tracked_03_cannon_v2_F : APC_Tracked_03_base_v2_F { class EventHandlers; }; +class a3a_I_APC_tracked_03_cannon_v2_F : I_APC_tracked_03_cannon_v2_F +{ + animationList[] = {"showBags",0.3,"showBags2",0.3,"showCamonetHull",0,"showCamonetTurret",0,"showTools",0.3,"showSLATHull",1,"showSLATTurret",1}; + class EventHandlers : EventHandlers + { + init = "if (local (_this select 0)) then {[(_this select 0), """", [], false] call bis_fnc_initVehicle;};"; + }; +}; +class I_E_APC_tracked_03_cannon_v2_F : APC_Tracked_03_base_v2_F { class EventHandlers; }; +class a3a_I_E_APC_tracked_03_cannon_v2_F : I_E_APC_tracked_03_cannon_v2_F +{ + animationList[] = {"showBags",0.3,"showBags2",0.3,"showCamonetHull",0,"showCamonetTurret",0,"showTools",0.3,"showSLATHull",1,"showSLATTurret",1}; + class EventHandlers : EventHandlers + { + init = "if (local (_this select 0)) then {[(_this select 0), """", [], false] call bis_fnc_initVehicle;};"; + }; +}; +class B_A_APC_tracked_03_cannon_v2_F : APC_Tracked_03_base_v2_F { class EventHandlers; }; +class a3a_B_A_APC_tracked_03_cannon_v2_F : B_A_APC_tracked_03_cannon_v2_F +{ + animationList[] = {"showBags",0.3,"showBags2",0.3,"showCamonetHull",0,"showCamonetTurret",0,"showTools",0.3,"showSLATHull",1,"showSLATTurret",1}; + class EventHandlers : EventHandlers + { + init = "if (local (_this select 0)) then {[(_this select 0), """", [], false] call bis_fnc_initVehicle;};"; + }; +}; +class B_A_APC_tracked_03_cannon_v2_wdl_F : APC_Tracked_03_base_v2_F { class EventHandlers; }; +class a3a_B_A_APC_tracked_03_cannon_v2_wdl_F : B_A_APC_tracked_03_cannon_v2_wdl_F +{ + animationList[] = {"showBags",0.3,"showBags2",0.3,"showCamonetHull",0,"showCamonetTurret",0,"showTools",0.3,"showSLATHull",1,"showSLATTurret",1}; + class EventHandlers : EventHandlers + { + init = "if (local (_this select 0)) then {[(_this select 0), """", [], false] call bis_fnc_initVehicle;};"; + }; +}; +class B_A_APC_tracked_03_cannon_v2_tna_F : APC_Tracked_03_base_v2_F { class EventHandlers; }; +class a3a_B_A_APC_tracked_03_cannon_v2_tna_F : B_A_APC_tracked_03_cannon_v2_tna_F +{ + animationList[] = {"showBags",0.3,"showBags2",0.3,"showCamonetHull",0,"showCamonetTurret",0,"showTools",0.3,"showSLATHull",1,"showSLATTurret",1}; + class EventHandlers : EventHandlers + { + init = "if (local (_this select 0)) then {[(_this select 0), """", [], false] call bis_fnc_initVehicle;};"; + }; +}; + +// Marshall/Borsuk // +class APC_Wheeled_01_base_v2_F; +class B_APC_Wheeled_01_cannon_v2_F : APC_Wheeled_01_base_v2_F { class EventHandlers; }; +class a3a_B_APC_Wheeled_01_cannon_v2_F : B_APC_Wheeled_01_cannon_v2_F +{ + animationList[] = {"showBags",0.5,"showCamonetHull",0,"showCamonetTurret",0,"showSLATHull",1,"showSLATTurret",1}; + class EventHandlers : EventHandlers + { + init = "if (local (_this select 0)) then {[(_this select 0), """", [], false] call bis_fnc_initVehicle;};"; + }; +}; +class B_W_APC_Wheeled_01_cannon_v2_F : APC_Wheeled_01_base_v2_F { class EventHandlers; }; +class a3a_B_W_APC_Wheeled_01_cannon_v2_F : B_W_APC_Wheeled_01_cannon_v2_F +{ + animationList[] = {"showBags",0.5,"showCamonetHull",0,"showCamonetTurret",0,"showSLATHull",1,"showSLATTurret",1}; + class EventHandlers : EventHandlers + { + init = "if (local (_this select 0)) then {[(_this select 0), """", [], false] call bis_fnc_initVehicle;};"; + }; +}; +class B_T_APC_Wheeled_01_cannon_v2_F : APC_Wheeled_01_base_v2_F { class EventHandlers; }; +class a3a_B_T_APC_Wheeled_01_cannon_v2_F : B_T_APC_Wheeled_01_cannon_v2_F +{ + animationList[] = {"showBags",0.5,"showCamonetHull",0,"showCamonetTurret",0,"showSLATHull",1,"showSLATTurret",1}; + class EventHandlers : EventHandlers + { + init = "if (local (_this select 0)) then {[(_this select 0), """", [], false] call bis_fnc_initVehicle;};"; + }; +}; +class Aegis_I_E_APC_Wheeled_01_cannon_v2_F : APC_Wheeled_01_base_v2_F { class EventHandlers; }; +class a3a_Aegis_I_E_APC_Wheeled_01_cannon_v2_F : Aegis_I_E_APC_Wheeled_01_cannon_v2_F +{ + animationList[] = {"showBags",0.5,"showCamonetHull",0,"showCamonetTurret",0,"showSLATHull",1,"showSLATTurret",1}; + class EventHandlers : EventHandlers + { + init = "if (local (_this select 0)) then {[(_this select 0), """", [], false] call bis_fnc_initVehicle;};"; + }; +}; + +// Marid/Kazak // +class APC_Wheeled_02_base_v2_F; +class O_APC_Wheeled_02_rcws_v2_F : APC_Wheeled_02_base_v2_F { class EventHandlers; }; +class a3a_O_APC_Wheeled_02_rcws_v2_F : O_APC_Wheeled_02_rcws_v2_F +{ + animationList[] = {"showBags",0.2,"showCanisters",0.2,"showTools",0.2,"showCamonetHull",0,"showSLATHull",1}; + class EventHandlers : EventHandlers + { + init = "if (local (_this select 0)) then {[(_this select 0), """", [], false] call bis_fnc_initVehicle;};"; + }; +}; +class O_T_APC_Wheeled_02_rcws_v2_ghex_F : APC_Wheeled_02_base_v2_F { class EventHandlers; }; +class a3a_O_T_APC_Wheeled_02_rcws_v2_ghex_F : O_T_APC_Wheeled_02_rcws_v2_ghex_F +{ + animationList[] = {"showBags",0.2,"showCanisters",0.2,"showTools",0.2,"showCamonetHull",0,"showSLATHull",1}; + class EventHandlers : EventHandlers + { + init = "if (local (_this select 0)) then {[(_this select 0), """", [], false] call bis_fnc_initVehicle;};"; + }; +}; +class O_R_APC_Wheeled_02_rcws_v2_F : APC_Wheeled_02_base_v2_F { class EventHandlers; }; +class a3a_O_R_APC_Wheeled_02_rcws_v2_F : O_R_APC_Wheeled_02_rcws_v2_F +{ + animationList[] = {"showBags",0.2,"showCanisters",0.2,"showTools",0.2,"showCamonetHull",0,"showSLATHull",1}; + class EventHandlers : EventHandlers + { + init = "if (local (_this select 0)) then {[(_this select 0), """", [], false] call bis_fnc_initVehicle;};"; + }; +}; + +// Kamysh/Okhotnik // +class O_APC_Tracked_02_base_F; +class O_APC_Tracked_02_cannon_F : O_APC_Tracked_02_base_F { class EventHandlers; }; +class a3a_O_APC_Tracked_02_cannon_F : O_APC_Tracked_02_cannon_F +{ + animationList[] = {"showTracks",0.5,"showCamonetHull",0,"showBags",0.5,"showSLATHull",1}; + class EventHandlers : EventHandlers + { + init = "if (local (_this select 0)) then {[(_this select 0), """", [], false] call bis_fnc_initVehicle;};"; + }; +}; +class O_T_APC_Tracked_02_cannon_ghex_F : O_APC_Tracked_02_base_F { class EventHandlers; }; +class a3a_O_T_APC_Tracked_02_cannon_ghex_F : O_T_APC_Tracked_02_cannon_ghex_F +{ + animationList[] = {"showTracks",0.5,"showCamonetHull",0,"showBags",0.5,"showSLATHull",1}; + class EventHandlers : EventHandlers + { + init = "if (local (_this select 0)) then {[(_this select 0), """", [], false] call bis_fnc_initVehicle;};"; + }; +}; +class O_APC_Tracked_02_30mm_lxWS : O_APC_Tracked_02_cannon_F {}; +class Aegis_O_R_APC_Tracked_02_30mm_lxWS : O_APC_Tracked_02_30mm_lxWS {}; +class a3a_Aegis_O_R_APC_Tracked_02_30mm_lxWS : Aegis_O_R_APC_Tracked_02_30mm_lxWS +{ + animationList[] = {"showTracks",0.5,"showCamonetHull",0,"showBags",0.5,"showSLATHull",1}; + class EventHandlers : EventHandlers + { + init = "if (local (_this select 0)) then {[(_this select 0), """", [], false] call bis_fnc_initVehicle;};"; + }; +}; + +// Bogatyr // +class Wheeled_APC_F; +class APC_Wheeled_04_base_F : Wheeled_APC_F { class Turrets; }; +class O_R_APC_Wheeled_04_cannon_F : APC_Wheeled_04_base_F { class EventHandlers; class Turrets : Turrets { class MainTurret; }; }; +class a3a_O_R_APC_Wheeled_04_cannon_F : O_R_APC_Wheeled_04_cannon_F +{ + class EventHandlers : EventHandlers + { + init = "if (local (_this select 0)) then {[(_this select 0), """", [], false] call bis_fnc_initVehicle;};"; + }; + class Turrets : Turrets + { + class MainTurret : MainTurret + { + magazines[] = {"140Rnd_30mm_MP_shells_Tracer_Green","140Rnd_30mm_MP_shells_Tracer_Green","60Rnd_30mm_APFSDS_shells_Tracer_Green","60Rnd_30mm_APFSDS_shells_Tracer_Green","2000Rnd_762x51_Belt_Green","4rnd_Vorona_HEAT","4rnd_Vorona_HE"}; + weapons[] = {"autocannon_30mm_CTWS","LMG_coax_ext","missiles_Vorona_vehicle"}; + }; + }; +}; diff --git a/A3A/addons/core/Templates/AircraftLoadouts/Aegis/config.cpp b/A3A/addons/core/Templates/AircraftLoadouts/Aegis/config.cpp new file mode 100644 index 0000000000..7dd7726db8 --- /dev/null +++ b/A3A/addons/core/Templates/AircraftLoadouts/Aegis/config.cpp @@ -0,0 +1,67 @@ +#include "..\..\..\script_component.hpp" + +class CfgPatches { + class PATCHNAME(AirLoadout_Aegis) { + name = COMPONENT_NAME; + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = {"A3_Aegis_Weapons_F_Aegis"}; + skipWhenMissingDependencies = 1; + author = AUTHOR; + authors[] = { AUTHORS }; + authorUrl = ""; + VERSION_CONFIG; + }; +}; + +class A3A { + class Loadouts + { + class CASPlane + { + class baseCAS; + + class B_Plane_CAS_01_dynamicLoadout_F; + + class O_Plane_CAS_02_dynamicLoadout_F; + class O_T_Plane_CAS_02_dynamicLoadout_ghex_F : O_Plane_CAS_02_dynamicLoadout_F{}; + class O_R_Plane_CAS_02_dynamicLoadout_F : O_Plane_CAS_02_dynamicLoadout_F{}; + + class I_Plane_Fighter_03_dynamicLoadout_F; + + class I_E_Plane_Fighter_04_F : baseCAS { + loadout[] = {"magazine_Fighter04_Gun20mm_AA_x120_red","PylonRack_7Rnd_Rocket_04_HE_F","PylonRack_7Rnd_Rocket_04_HE_F","PylonRack_Missile_AGM_02_x2","PylonRack_Missile_AGM_02_x2"}; + mainGun[] = {"weapon_Fighter_Gun20mm_AA"}; + rocketLauncher[] = {"Rocket_04_HE_Plane_CAS_01_F"}; + missileLauncher[] = {"weapon_AGM_65Launcher"}; + }; + class B_A_Plane_Fighter_05_F : baseCAS { + loadout[] = {"PylonRack_Missile_AGM_02_x1","PylonRack_Missile_AGM_02_x1","PylonRack_Missile_AGM_02_x1","PylonRack_Missile_AGM_02_x1","PylonRack_Missile_AGM_02_x1","PylonRack_Missile_AGM_02_x1","PylonRack_7Rnd_Rocket_04_HE_F","PylonRack_7Rnd_Rocket_04_HE_F","PylonRack_Missile_AGM_02_x1","PylonRack_Missile_AGM_02_x1","PylonWeapon_220Rnd_25mm_shells"}; + mainGun[] = {"gatling_25mm"}; + rocketLauncher[] = {"Rocket_04_HE_Plane_CAS_01_F"}; + missileLauncher[] = {"weapon_AGM_65Launcher"}; + }; + + }; + class CAPPlane + { + class baseCAP; + + class B_Plane_Fighter_01_F; + + class O_Plane_Fighter_02_F; + class O_T_Plane_Fighter_02_ghex_F : O_Plane_Fighter_02_F{}; + class O_R_Plane_Fighter_02_F : O_Plane_Fighter_02_F{}; + + class I_Plane_Fighter_04_F; + class I_E_Plane_Fighter_04_F : I_Plane_Fighter_04_F {}; + + class B_Plane_Fighter_05_F : baseCAP { + loadout[] = {"PylonRack_Missile_BIM9X_x1","PylonRack_Missile_BIM9X_x1","PylonRack_Missile_BIM9X_x2","PylonRack_Missile_BIM9X_x2","PylonRack_Missile_AMRAAM_D_x2","PylonRack_Missile_AMRAAM_D_x2","PylonMissile_Missile_AMRAAM_D_INT_x1","PylonMissile_Missile_AMRAAM_D_INT_x1","PylonMissile_Missile_AMRAAM_D_INT_x1","PylonMissile_Missile_AMRAAM_D_INT_x1","PylonWeapon_220Rnd_25mm_shells"}; + }; + class B_A_Plane_Fighter_05_F : B_Plane_Fighter_05_F{}; + + }; + }; +}; diff --git a/A3A/addons/core/Templates/Templates.hpp b/A3A/addons/core/Templates/Templates.hpp index c429f84f9d..e6bcc1eec7 100644 --- a/A3A/addons/core/Templates/Templates.hpp +++ b/A3A/addons/core/Templates/Templates.hpp @@ -303,6 +303,129 @@ class Templates lore = $STR_A3A_templates_lore_VN_Civ; }; + // ***************************** Aegis ***************************** + class Aegis_Base : Vanilla_Base + { + requiredAddons[] = {"A3_Aegis_Weapons_F_Aegis"}; + logo = "\A3_Aegis\Data_F_Aegis\Logos\arma3_aegis_logo_CA.paa"; + basepath = QPATHTOFOLDER(Templates\Templates\Aegis) + priority = 25; + }; + + class Aegis_Iran : Aegis_Base + { + side = "Inv"; + flagTexture = "\A3_Aegis\Data_F_Aegis\Flags\flag_Iran_CO.paa"; + name = "Aegis Iran"; + file = "Aegis_AI_Iran"; + climate[] = {"arid", "arctic"}; + }; + class Aegis_China : Aegis_Iran + { + flagTexture = "\A3_Aegis\Data_F_Aegis\Flags\flag_China_CO.paa"; + name = "Aegis China"; + file = "Aegis_AI_China"; + climate[] = {"tropical"}; + forceDLC[] = {"expansion"}; + }; + class Aegis_Russia : Aegis_Iran + { + flagTexture = "a3_aegis\data_f_aegis\flags\flag_rus_co.paa"; + name = "Aegis Russia"; + file = "Aegis_AI_Russia"; + climate[] = {"temperate"}; + forceDLC[] = {"enoch"}; + }; + class Aegis_US_Arid : Aegis_Base + { + side = "Occ"; + flagTexture = "\A3_Aegis\data_f_aegis\Flags\flag_USA_51_CO.paa"; + name = "Aegis US Arid"; + file = "Aegis_AI_US_Arid"; + climate[] = {"arid"}; + }; + class Aegis_US_Tropical : Aegis_US_Arid + { + name = "Aegis US Tropical"; + file = "Aegis_AI_US_Tropical"; + climate[] = {"tropical"}; + }; + class Aegis_US_Temperate : Aegis_US_Arid + { + name = "Aegis US Temperate"; + file = "Aegis_AI_US_Temperate"; + climate[] = {"temperate", "arctic"}; + }; + class Aegis_BAF_Arid : Aegis_Base + { + side = "Occ"; + flagTexture = "\A3\Data_F\Flags\Flag_uk_CO.paa"; + name = "Aegis BAF Arid"; + file = "Aegis_AI_BAF_Arid"; + climate[] = {"arid"}; + forceDLC[] = {"enoch"}; + }; + class Aegis_BAF_Tropical : Aegis_BAF_Arid + { + name = "Aegis BAF Tropical"; + file = "Aegis_AI_BAF_Tropical"; + climate[] = {"tropical"}; + forceDLC[] = {"enoch"}; + }; + class Aegis_BAF_Temperate : Aegis_BAF_Arid + { + name = "Aegis BAF Temperate"; + file = "Aegis_AI_BAF_Temperate"; + climate[] = {"temperate", "arctic"}; + forceDLC[] = {"enoch"}; + }; + class Aegis_LDF : Aegis_Base + { + side = "Occ"; + flagTexture = "a3\data_f_enoch\flags\flag_enoch_co.paa"; + name = "Aegis LDF"; + file = "Aegis_AI_LDF"; + maps[] = {"enoch","vt7"}; + climate[] = {"temperate"}; + forceDLC[] = {"enoch"}; + }; + class Aegis_AAF : Aegis_Base + { + side = "Occ"; + flagTexture = "a3\data_f\flags\flag_aaf_co.paa"; + name = "Aegis AAF"; + file = "Aegis_AI_AAF"; + maps[] = {"altis"}; + climate[] = {"arid"}; + }; + + class Aegis_FIA : Aegis_Base + { + side = "Reb"; + flagTexture = "a3\data_f\flags\flag_fia_co.paa"; + name = "Aegis FIA"; + file = "Aegis_Reb_FIA"; + }; + + class Aegis_SDK : Aegis_Base + { + side = "Reb"; + flagTexture = "\A3\Data_F_exp\Flags\Flag_Synd_CO.paa"; + name = "Aegis SDK"; + file = "Aegis_Reb_SDK"; + maps[] = {"Tanoa"}; + climate[] = {"tropical"}; + forceDLC[] = {"expansion"}; + }; + + class Aegis_Civ : Aegis_Base + { + side = "Civ"; + flagTexture = "a3\data_f\flags\flag_aaf_co.paa"; + name = "Aegis"; + file = "Aegis_Civ"; + }; + // ***************************** RHS ***************************** class RHS_Base diff --git a/A3A/addons/core/Templates/Templates/Aegis/Aegis_AI_AAF.sqf b/A3A/addons/core/Templates/Templates/Aegis/Aegis_AI_AAF.sqf new file mode 100644 index 0000000000..9e0a72e60e --- /dev/null +++ b/A3A/addons/core/Templates/Templates/Aegis/Aegis_AI_AAF.sqf @@ -0,0 +1,1057 @@ +////////////////////////// +// Side Information // +////////////////////////// + +["name", "AAF"] call _fnc_saveToTemplate; +["spawnMarkerName", "AAF Support Corridor"] call _fnc_saveToTemplate; + +["flag", "Flag_AAF_F"] call _fnc_saveToTemplate; +["flagTexture", "a3\data_f\flags\flag_aaf_co.paa"] call _fnc_saveToTemplate; +["flagMarkerType", "flag_AAF"] call _fnc_saveToTemplate; + +////////////////////////// +// Vehicles // +////////////////////////// + +["ammobox", "B_supplyCrate_F"] call _fnc_saveToTemplate; //Don't touch or you die a sad and lonely death! +["surrenderCrate", "Box_IND_Wps_F"] call _fnc_saveToTemplate; //Changeing this from default will require you to define logistics attachement offset for the box type +["equipmentBox", "Box_NATO_Equip_F"] call _fnc_saveToTemplate; //Changeing this from default will require you to define logistics attachement offset for the box type + +["vehiclesBasic", ["I_Quadbike_01_F"]] call _fnc_saveToTemplate; +["vehiclesLightUnarmed", ["I_MRAP_03_F"]] call _fnc_saveToTemplate; +private _lightArmed = ["I_MRAP_03_hmg_F", "I_MRAP_03_gmg_F"]; +["vehiclesTrucks", ["I_Truck_02_transport_F", "I_Truck_02_covered_F"]] call _fnc_saveToTemplate; +private _cargoTrucks = ["I_Truck_02_transport_F", "I_Truck_02_covered_F"]; +["vehiclesAmmoTrucks", ["I_Truck_02_ammo_F"]] call _fnc_saveToTemplate; +["vehiclesRepairTrucks", ["I_Truck_02_box_F"]] call _fnc_saveToTemplate; +["vehiclesFuelTrucks", ["I_Truck_02_fuel_F"]] call _fnc_saveToTemplate; +["vehiclesMedical", ["I_Truck_02_medical_F"]] call _fnc_saveToTemplate; +["vehiclesLightAPCs", []] call _fnc_saveToTemplate; +["vehiclesAPCs", ["I_APC_tracked_03_cannon_v2_F", "I_APC_Wheeled_03_cannon_F", "I_APC_Wheeled_03_cannon_F"]] call _fnc_saveToTemplate;; +["vehiclesIFVs", ["a3a_I_APC_tracked_03_cannon_v2_F", "a3a_APC_Wheeled_03_cannon_F"]] call _fnc_saveToTemplate; +["vehiclesTanks", ["I_MBT_03_cannon_F"]] call _fnc_saveToTemplate; +private _AA = ["I_LT_01_AA_F"]; + +["vehiclesTransportBoats", ["I_Boat_Transport_01_F"]] call _fnc_saveToTemplate; +["vehiclesGunBoats", ["I_Boat_Armed_01_minigun_F"]] call _fnc_saveToTemplate; +["vehiclesAmphibious", ["I_APC_Wheeled_03_cannon_F", "I_MRAP_03_hmg_F", "I_MRAP_03_gmg_F", "I_MRAP_03_F"]] call _fnc_saveToTemplate; + +["vehiclesPlanesCAS", ["I_Plane_Fighter_03_dynamicLoadout_F"]] call _fnc_saveToTemplate; +["vehiclesPlanesAA", ["I_Plane_Fighter_04_F"]] call _fnc_saveToTemplate; +["vehiclesPlanesTransport", ["I_Plane_Transport_01_infantry_F"]] call _fnc_saveToTemplate; + +private _vehiclesHelisLight = ["I_Heli_light_03_unarmed_F", "I_Heli_Light_01_F"]; +private _vehiclesHelisTransport = ["I_Heli_Transport_02_F", "Aegis_I_Heli_Transport_02_Heavy_F"]; +private _vehiclesHelisLightAttack = ["I_Heli_light_03_dynamicLoadout_F", "I_Heli_Light_01_dynamicLoadout_F"]; +private _vehiclesHelisAttack = ["I_Heli_Attack_03_F"]; + +["vehiclesArtillery", ["I_Truck_02_MRL_F", "B_MBT_01_arty_F"]] call _fnc_saveToTemplate; +["magazines", createHashMapFromArray [ +["I_Truck_02_MRL_F", ["12Rnd_230mm_rockets"]], +["B_MBT_01_arty_F",["32Rnd_155mm_Mo_shells"]] +]] call _fnc_saveToTemplate; + +["uavsAttack", ["I_UAV_02_dynamicLoadout_F"]] call _fnc_saveToTemplate; +["uavsPortable", ["I_UAV_01_F"]] call _fnc_saveToTemplate; + +//Config special vehicles - militia vehicles are mostly used in the early game, police cars are being used by troops around cities. +private _vehiclesMilitiaLightArmed = ["a3a_Offroad_01_green_armed_F", "a3a_Offroad_01_green_AT_F"]; +["vehiclesMilitiaTrucks", ["I_C_Van_01_transport_F"]] call _fnc_saveToTemplate; +private _vehiclesMilitiaCars = ["a3a_Offroad_01_green_F"]; + +private _vehiclesPolice = ["B_GEN_Offroad_01_gen_F"]; + +["staticMGs", ["I_HMG_02_high_F"]] call _fnc_saveToTemplate; +["staticAT", ["I_static_AT_F"]] call _fnc_saveToTemplate; +["staticAA", ["I_static_AA_F"]] call _fnc_saveToTemplate; +["staticMortars", ["B_Mortar_01_F"]] call _fnc_saveToTemplate; + +["mortarMagazineHE", "8Rnd_82mm_Mo_shells"] call _fnc_saveToTemplate; +["mortarMagazineSmoke", "8Rnd_82mm_Mo_Smoke_white"] call _fnc_saveToTemplate; +["mortarMagazineFlare", "8Rnd_82mm_Mo_Flare_white"] call _fnc_saveToTemplate; + +//Minefield definition +["minefieldAT", ["ATMine"]] call _fnc_saveToTemplate; +["minefieldAPERS", ["APERSMine"]] call _fnc_saveToTemplate; + +if ("tanks" in A3A_enabledDLC) then { + // No seats so can't be APC, too weak to be IFV ;-; + _lightArmed append ["I_LT_01_AT_F", "I_LT_01_cannon_F"]; +}; +if ("ws" in A3A_enabledDLC) then { + _cargoTrucks = ["I_Truck_02_flatbed_lxWS", "I_Truck_02_cargo_lxWS"]; + _AA append ["I_A_Truck_02_aa_lxWS"]; + ["uavsPortable", ["I_UAV_01_F", "I_UAV_02_lxWS"]] call _fnc_saveToTemplate; +}; +if ("enoch" in A3A_enabledDLC) then { + _vehiclesMilitiaCars append ["a3a_Offroad_01_comms_green_F", "a3a_Offroad_01_covered_green_F"]; + _vehiclesPolice append ["B_GEN_Offroad_01_comms_F","B_GEN_Offroad_01_covered_F"]; +}; +if ("orange" in A3A_enabledDLC) then { + _vehiclesPolice append ["B_GEN_Van_02_vehicle_F","B_GEN_Van_02_transport_F"]; +}; +if ("rf" in A3A_enabledDLC) then { + _vehiclesPolice append ["a3a_police_Pickup_rf", "B_GEN_Pickup_covered_rf", "a3a_police_Pickup_comms_rf"]; + _vehiclesHelisTransport append ["I_Heli_EC_01A_military_RF"]; + _vehiclesHelisLight append ["a3a_green_Heli_light_03_unarmed_rf"]; + _vehiclesHelisLightAttack append ["a3a_AAF_Heli_light_03_dynamicLoadout_rf"]; + _vehiclesHelisAttack = ["a3a_AAF_Heli_EC_02_rf"]; + _vehiclesMilitiaCars append ["I_Pickup_rf"]; + _vehiclesMilitiaLightArmed append ["I_Pickup_mmg_rf","I_Pickup_hmg_rf"]; +}; + +["vehiclesHelisLight", _vehiclesHelisLight] call _fnc_saveToTemplate; +["vehiclesHelisTransport", _vehiclesHelisTransport] call _fnc_saveToTemplate; +["vehiclesHelisLightAttack", _vehiclesHelisLightAttack] call _fnc_saveToTemplate; +["vehiclesHelisAttack", _vehiclesHelisAttack] call _fnc_saveToTemplate; +["vehiclesPolice", _vehiclesPolice] call _fnc_saveToTemplate; + +["vehiclesCargoTrucks", _cargoTrucks] call _fnc_saveToTemplate; +["vehiclesLightArmed", _lightArmed] call _fnc_saveToTemplate; +["vehiclesAA", _AA] call _fnc_saveToTemplate; + +["vehiclesMilitiaCars", _vehiclesMilitiaCars] call _fnc_saveToTemplate; +["vehiclesMilitiaLightArmed", _vehiclesMilitiaLightArmed] call _fnc_saveToTemplate; + +#include "Aegis_Vehicle_Attributes.sqf" + +///////////////////// +/// Identities /// +///////////////////// + +["faces", ["GreekHead_A3_02","GreekHead_A3_03","GreekHead_A3_04","GreekHead_A3_05","GreekHead_A3_06","GreekHead_A3_07","GreekHead_A3_08","GreekHead_A3_09","Ioannou","Mavros"]] call _fnc_saveToTemplate; +["voices", ["Male01GRE","Male02GRE","Male03GRE","Male04GRE","Male05GRE","Male06GRE"]] call _fnc_saveToTemplate; +"GreekMen" call _fnc_saveNames; + +////////////////////////// +// Loadouts // +////////////////////////// + +private _loadoutData = call _fnc_createLoadoutData; +_loadoutData set ["slRifles", []]; +_loadoutData set ["rifles", []]; +_loadoutData set ["carbines", []]; +_loadoutData set ["grenadeLaunchers", []]; +_loadoutData set ["shotGuns", []]; +_loadoutData set ["SMGs", []]; +_loadoutData set ["machineGuns", []]; +_loadoutData set ["marksmanRifles", []]; +_loadoutData set ["sniperRifles", []]; +_loadoutData set ["lightATLaunchers", ["launch_NLAW_F"]]; +_loadoutData set ["ATLaunchers", [ +["launch_MRAWS_green_F", "", "acc_pointer_IR", "", ["MRAWS_HE_F", "MRAWS_HEAT55_F"], [], ""], +["launch_MRAWS_green_F", "", "acc_pointer_IR", "", ["MRAWS_HEAT_F", "MRAWS_HEAT55_F"], [], ""], +["launch_MRAWS_green_F", "", "acc_pointer_IR", "", ["MRAWS_HEAT_F", "MRAWS_HE_F"], [], ""], +["launch_MRAWS_green_rail_F", "", "acc_pointer_IR", "", ["MRAWS_HE_F", "MRAWS_HEAT55_F"], [], ""], +["launch_MRAWS_green_rail_F", "", "acc_pointer_IR", "", ["MRAWS_HEAT_F", "MRAWS_HEAT55_F"], [], ""], +["launch_MRAWS_green_rail_F", "", "acc_pointer_IR", "", ["MRAWS_HEAT_F", "MRAWS_HE_F"], [], ""] +]]; +_loadoutData set ["missileATLaunchers", [ +["launch_I_Titan_short_F", "", "acc_pointer_IR", "", ["Titan_AT"], [], ""] +]]; +_loadoutData set ["AALaunchers", [ +["launch_I_Titan_F", "", "acc_pointer_IR", "", ["Titan_AA"], [], ""] +]]; +_loadoutData set ["sidearms", []]; + +_loadoutData set ["ATMines", ["ATMine_Range_Mag"]]; +_loadoutData set ["APMines", ["APERSMine_Range_Mag"]]; +_loadoutData set ["lightExplosives", ["DemoCharge_Remote_Mag"]]; +_loadoutData set ["heavyExplosives", ["SatchelCharge_Remote_Mag"]]; + +_loadoutData set ["antiInfantryGrenades", ["HandGrenade", "MiniGrenade"]]; +_loadoutData set ["antiTankGrenades", []]; +_loadoutData set ["smokeGrenades", ["SmokeShell"]]; +_loadoutData set ["signalsmokeGrenades", ["SmokeShellYellow", "SmokeShellRed", "SmokeShellPurple", "SmokeShellOrange", "SmokeShellGreen", "SmokeShellBlue"]]; + +//Basic equipment. Shouldn't need touching most of the time. +//Mods might override this, or certain mods might want items removed (No GPSs in WW2, for example) +_loadoutData set ["maps", ["ItemMap"]]; +_loadoutData set ["watches", ["ItemWatch"]]; +_loadoutData set ["compasses", ["ItemCompass"]]; +_loadoutData set ["radios", ["ItemRadio"]]; +_loadoutData set ["gpses", ["ItemGPS"]]; +_loadoutData set ["NVGs", ["NVGoggles_INDEP"]]; +_loadoutData set ["binoculars", ["Binocular"]]; +_loadoutData set ["rangefinders", ["Rangefinder"]]; + +_loadoutData set ["uniforms", []]; +_loadoutData set ["slUniforms", []]; +_loadoutData set ["vests", []]; +_loadoutData set ["Hvests", []]; +_loadoutData set ["sniVests", ["V_Chestrig_oli", "V_ChestrigF_oli"]]; +_loadoutData set ["backpacks", []]; +_loadoutData set ["atBackpacks", ["B_Carryall_oli"]]; +_loadoutData set ["longRangeRadios", []]; +_loadoutData set ["helmets", []]; +_loadoutData set ["slHat", ["H_Beret_AAF_01_F"]]; +_loadoutData set ["sniHats", ["H_Booniehat_dgtl"]]; + +_loadoutData set ["glasses", ["G_Tactical_Clear", "G_Tactical_Black", "G_Shades_Black", "G_Shades_Blue", "G_Shades_Green", "G_Shades_Red", "G_Aviator", "G_Spectacles", "G_Spectacles_Tinted", "G_Sport_BlackWhite", "G_Sport_Blackyellow", "G_Sport_Greenblack", "G_Sport_Checkered", "G_Sport_Red", "G_Squares", "G_Squares_Tinted"]]; +_loadoutData set ["goggles", ["G_Combat", "G_Lowprofile"]]; + +//Item *set* definitions. These are added in their entirety to unit loadouts. No randomisation is applied. +_loadoutData set ["items_medical_basic", ["BASIC"] call A3A_fnc_itemset_medicalSupplies]; //this line defines the basic medical loadout for vanilla +_loadoutData set ["items_medical_standard", ["STANDARD"] call A3A_fnc_itemset_medicalSupplies]; //this line defines the standard medical loadout for vanilla +_loadoutData set ["items_medical_medic", ["MEDIC"] call A3A_fnc_itemset_medicalSupplies]; //this line defines the medic medical loadout for vanilla +_loadoutData set ["items_miscEssentials", [] call A3A_fnc_itemset_miscEssentials]; + +//Unit type specific item sets. Add or remove these, depending on the unit types in use. +private _slItems = ["Laserbatteries", "Laserbatteries", "Laserbatteries"]; +private _eeItems = ["ToolKit", "MineDetector"]; +private _mmItems = []; + +if (A3A_hasACE) then { + _slItems append ["ACE_microDAGR", "ACE_DAGR"]; + _eeItems append ["ACE_Clacker", "ACE_DefusalKit"]; + _mmItems append ["ACE_RangeCard", "ACE_ATragMX", "ACE_Kestrel4500"]; +}; + +_loadoutData set ["items_squadLeader_extras", _slItems]; +_loadoutData set ["items_rifleman_extras", []]; +_loadoutData set ["items_medic_extras", []]; +_loadoutData set ["items_grenadier_extras", []]; +_loadoutData set ["items_explosivesExpert_extras", _eeItems]; +_loadoutData set ["items_engineer_extras", _eeItems]; +_loadoutData set ["items_lat_extras", []]; +_loadoutData set ["items_at_extras", []]; +_loadoutData set ["items_aa_extras", []]; +_loadoutData set ["items_machineGunner_extras", []]; +_loadoutData set ["items_marksman_extras", _mmItems]; +_loadoutData set ["items_sniper_extras", _mmItems]; +_loadoutData set ["items_police_extras", []]; +_loadoutData set ["items_crew_extras", []]; +_loadoutData set ["items_unarmed_extras", []]; + +//TODO - ACE overrides for misc essentials, medical and engineer gear + +/////////////////////////////////////// +// Special Forces Loadout Data // +/////////////////////////////////////// + +private _sfLoadoutData = _loadoutData call _fnc_copyLoadoutData; // touch and shit breaks +_sfLoadoutData set ["uniforms", ["U_I_CombatUniform", "U_I_CombatUniform_shortsleeve"]]; +_sfLoadoutData set ["vests", ["V_TacVest_oli", "V_PlateCarrierIA2_dgtl", "V_PlateCarrierIA1_dgtl"]]; +_sfLoadoutData set ["Hvests", ["V_PlateCarrierIAGL_dgtl"]]; +_sfLoadoutData set ["backpacks", ["B_TacticalPack_oli", "B_FieldPack_oli", "B_Carryall_oli", "B_AssaultPack_dgtl", "B_Kitbag_dgtl"]]; +_sfLoadoutData set ["helmets", ["H_HelmetIA", "H_Watchcap_camo_hs", "H_Cap_blk_Raven_hs"]]; +_sfLoadoutData set ["binoculars", ["Laserdesignator_03"]]; + +_sfLoadoutData set ["slRifles", [ +["arifle_Mk20_F", "muzzle_snds_M", "acc_pointer_IR", "optic_MRCO", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["arifle_Mk20_F", "muzzle_snds_M", "acc_pointer_IR", "optic_Hamr", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["arifle_Mk20_F", "muzzle_snds_M", "acc_pointer_IR", "Aegis_optic_ACOG", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["arifle_Mk20_GL_F", "muzzle_snds_M", "acc_pointer_IR", "optic_MRCO", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_Mk20_GL_F", "muzzle_snds_M", "acc_pointer_IR", "optic_Hamr", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_Mk20_GL_F", "muzzle_snds_M", "acc_pointer_IR", "Aegis_optic_ACOG", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_SCAR_grip_black_F", "muzzle_snds_B", "acc_pointer_IR", "optic_MRCO", [], [], ""], +["arifle_SCAR_grip_black_F", "muzzle_snds_B", "acc_pointer_IR", "optic_Hamr", [], [], ""], +["arifle_SCAR_grip_black_F", "muzzle_snds_B", "acc_pointer_IR", "Aegis_optic_ACOG", [], [], ""], +["arifle_SCAR_GL_black_F", "muzzle_snds_B", "acc_pointer_IR", "optic_MRCO", [], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_SCAR_GL_black_F", "muzzle_snds_B", "acc_pointer_IR", "optic_Hamr", [], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_SCAR_GL_black_F", "muzzle_snds_B", "acc_pointer_IR", "Aegis_optic_ACOG", [], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_sfLoadoutData set ["rifles", [ +["arifle_Mk20_F", "muzzle_snds_M", "acc_pointer_IR", "optic_Aco", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["arifle_Mk20_F", "muzzle_snds_M", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["arifle_Mk20_F", "muzzle_snds_M", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["arifle_SCAR_grip_black_F", "muzzle_snds_B", "acc_pointer_IR", "optic_Aco", [], [], ""], +["arifle_SCAR_grip_black_F", "muzzle_snds_B", "acc_pointer_IR", "Aegis_optic_ROS", [], [], ""], +["arifle_SCAR_grip_black_F", "muzzle_snds_B", "acc_pointer_IR", "optic_Holosight_blk_F", [], [], ""] +]]; +_sfLoadoutData set ["carbines", [ +["arifle_Mk20C_F", "muzzle_snds_M", "acc_pointer_IR", "optic_Aco", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["arifle_Mk20C_F", "muzzle_snds_M", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["arifle_Mk20C_F", "muzzle_snds_M", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["arifle_SCAR_short_black_F", "muzzle_snds_B", "acc_pointer_IR", "optic_Aco", [], [], ""], +["arifle_SCAR_short_black_F", "muzzle_snds_B", "acc_pointer_IR", "Aegis_optic_ROS", [], [], ""], +["arifle_SCAR_short_black_F", "muzzle_snds_B", "acc_pointer_IR", "optic_Holosight_blk_F", [], [], ""] +]]; +_sfLoadoutData set ["grenadeLaunchers", [ +["arifle_Mk20_GL_F", "muzzle_snds_M", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_Mk20_GL_F", "muzzle_snds_M", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_Mk20_GL_F", "muzzle_snds_M", "acc_pointer_IR", "optic_Aco", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_SCAR_GL_black_F", "muzzle_snds_B", "acc_pointer_IR", "optic_Holosight_blk_F", [], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_SCAR_GL_black_F", "muzzle_snds_B", "acc_pointer_IR", "Aegis_optic_ROS", [], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_SCAR_GL_black_F", "muzzle_snds_B", "acc_pointer_IR", "optic_Aco", [], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_sfLoadoutData set ["SMGs", [ +["SMG_03C_TR_camo", "muzzle_snds_570", "acc_pointer_IR", "optic_Holosight_smg_blk_F", [], [], ""], +["SMG_03C_TR_camo", "muzzle_snds_570", "acc_pointer_IR", "optic_Aco_smg", [], [], ""], +["SMG_03C_TR_camo", "muzzle_snds_570", "acc_pointer_IR", "Aegis_optic_ROS_SMG", [], [], ""], +["hgun_PDW2000_F", "muzzle_snds_L", "", "optic_Holosight_smg_blk_F", [], [], ""], +["hgun_PDW2000_F", "muzzle_snds_L", "", "optic_Aco_smg", [], [], ""], +["hgun_PDW2000_F", "muzzle_snds_L", "", "Aegis_optic_ROS_SMG", [], [], ""] +]]; +_sfLoadoutData set ["machineGuns", [ +["LMG_Mk200_F", "muzzle_snds_H", "acc_pointer_IR", "optic_MRCO", ["200Rnd_65x39_cased_Box_Red", "200Rnd_65x39_cased_Box_Red", "200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_03_F_blk"], +["LMG_Mk200_F", "muzzle_snds_H", "acc_pointer_IR", "Aegis_optic_ACOG", ["200Rnd_65x39_cased_Box_Red", "200Rnd_65x39_cased_Box_Red", "200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_03_F_blk"], +["LMG_Mk200_F", "muzzle_snds_H", "acc_pointer_IR", "optic_Aco", ["200Rnd_65x39_cased_Box_Red", "200Rnd_65x39_cased_Box_Red", "200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_03_F_blk"], +["LMG_Mk200_F", "muzzle_snds_H", "acc_pointer_IR", "optic_Holosight_blk_F", ["200Rnd_65x39_cased_Box_Red", "200Rnd_65x39_cased_Box_Red", "200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_03_F_blk"], +["LMG_Mk200_F", "muzzle_snds_H", "acc_pointer_IR", "Aegis_optic_ROS", ["200Rnd_65x39_cased_Box_Red", "200Rnd_65x39_cased_Box_Red", "200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_03_F_blk"] +]]; +_sfLoadoutData set ["marksmanRifles", [ +["srifle_EBR_F", "muzzle_snds_B", "acc_pointer_IR", "optic_SOS", [], [], "bipod_03_F_blk"], +["srifle_EBR_F", "muzzle_snds_B", "acc_pointer_IR", "optic_MRCO", [], [], "bipod_03_F_blk"], +["srifle_EBR_F", "muzzle_snds_B", "acc_pointer_IR", "optic_DMS", [], [], "bipod_03_F_blk"], +["Aegis_arifle_SR25_MR_blk_F", "aegis_muzzle_snds_sr25_blk", "acc_pointer_IR", "optic_SOS", [], [], "bipod_01_F_blk"], +["Aegis_arifle_SR25_MR_blk_F", "aegis_muzzle_snds_sr25_blk", "acc_pointer_IR", "optic_MRCO", [], [], "bipod_01_F_blk"], +["Aegis_arifle_SR25_MR_blk_F", "aegis_muzzle_snds_sr25_blk", "acc_pointer_IR", "optic_DMS", [], [], "bipod_01_F_blk"], +["arifle_SCAR_black_F", "muzzle_snds_B", "acc_pointer_IR", "optic_SOS", [], [], "bipod_01_F_blk"], +["arifle_SCAR_black_F", "muzzle_snds_B", "acc_pointer_IR", "optic_MRCO", [], [], "bipod_01_F_blk"], +["arifle_SCAR_black_F", "muzzle_snds_B", "acc_pointer_IR", "optic_DMS", [], [], "bipod_01_F_blk"] +]]; +_sfLoadoutData set ["sniperRifles", [ +["srifle_GM6_F", "", "", "optic_SOS", ["5Rnd_127x108_Mag", "5Rnd_127x108_APDS_Mag"], [], ""], +["srifle_GM6_F", "", "", "optic_LRPS", ["5Rnd_127x108_Mag", "5Rnd_127x108_APDS_Mag"], [], ""] +]]; +_sfLoadoutData set ["sidearms", [ +["hgun_Pistol_heavy_01_F", "muzzle_snds_acp", "acc_flashlight_pistol", "", [], [], ""], +["hgun_ACPC2_F", "muzzle_snds_acp", "acc_flashlight_pistol", "", [], [], ""] +]]; + +///////////////////////////////// +// Military Loadout Data // +///////////////////////////////// + +private _militaryLoadoutData = _loadoutData call _fnc_copyLoadoutData; // touch and shit breaks +_militaryLoadoutData set ["uniforms", ["U_I_CombatUniform_shortsleeve", "U_I_CombatUniform"]]; +_militaryLoadoutData set ["slUniforms", ["U_I_OfficerUniform"]]; +_militaryLoadoutData set ["vests", ["V_PlateCarrierIA2_dgtl", "V_PlateCarrierIA2_oli", "V_PlateCarrierIA1_dgtl", "V_PlateCarrierIA1_oli"]]; +_militaryLoadoutData set ["Hvests", ["V_PlateCarrierIAGL_dgtl", "V_PlateCarrierIAGL_oli"]]; +_militaryLoadoutData set ["backpacks", ["B_TacticalPack_oli", "B_FieldPack_oli", "B_Carryall_oli", "B_AssaultPack_dgtl", "B_Kitbag_dgtl"]]; +_militaryLoadoutData set ["helmets", ["H_HelmetIA"]]; +_militaryLoadoutData set ["binoculars", ["Laserdesignator_03"]]; + +_militaryLoadoutData set ["slRifles", [ +["arifle_Mk20_F", "", "acc_pointer_IR", "optic_MRCO", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["arifle_Mk20_F", "", "acc_pointer_IR", "Aegis_optic_ACOG", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["arifle_Mk20_F", "", "acc_pointer_IR", "optic_Hamr", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["arifle_Mk20_GL_F", "", "acc_pointer_IR", "optic_MRCO", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_Mk20_GL_F", "", "acc_pointer_IR", "Aegis_optic_ACOG", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_Mk20_GL_F", "", "acc_pointer_IR", "optic_Hamr", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["Aegis_arifle_M4A1_grip_F", "", "acc_pointer_IR", "optic_MRCO", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["Aegis_arifle_M4A1_grip_F", "", "acc_pointer_IR", "Aegis_optic_ACOG", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["Aegis_arifle_M4A1_grip_F", "", "acc_pointer_IR", "optic_Hamr", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["Aegis_arifle_M4A1_GL_F", "", "acc_pointer_IR", "optic_MRCO", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["Aegis_arifle_M4A1_GL_F", "", "acc_pointer_IR", "Aegis_optic_ACOG", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["Aegis_arifle_M4A1_GL_F", "", "acc_pointer_IR", "optic_Hamr", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_militaryLoadoutData set ["rifles", [ +["arifle_Mk20_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["arifle_Mk20_F", "", "acc_pointer_IR", "optic_Aco", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["arifle_Mk20_F", "", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["Aegis_arifle_M4A1_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["Aegis_arifle_M4A1_F", "", "acc_pointer_IR", "optic_Aco", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["Aegis_arifle_M4A1_F", "", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""] +]]; +_militaryLoadoutData set ["carbines", [ +["arifle_Mk20C_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["arifle_Mk20C_F", "", "acc_pointer_IR", "optic_Aco", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["arifle_Mk20C_F", "", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["Aegis_arifle_M4A1_short_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["Aegis_arifle_M4A1_short_F", "", "acc_pointer_IR", "optic_Aco", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["Aegis_arifle_M4A1_short_F", "", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""] +]]; +_militaryLoadoutData set ["grenadeLaunchers", [ +["arifle_Mk20_GL_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_Mk20_GL_F", "", "acc_pointer_IR", "optic_Aco", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_Mk20_GL_F", "", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["Aegis_arifle_M4A1_GL_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["Aegis_arifle_M4A1_GL_F", "", "acc_pointer_IR", "optic_Aco", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["Aegis_arifle_M4A1_GL_F", "", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_militaryLoadoutData set ["shotGuns", [ +["sgun_M4_F", "", "", "optic_Holosight_smg_blk_F", ["8Rnd_12Gauge_Pellets", "8Rnd_12Gauge_Slug"], [], ""], +["sgun_M4_F", "", "", "optic_Aco_smg", ["8Rnd_12Gauge_Pellets", "8Rnd_12Gauge_Slug"], [], ""], +["sgun_M4_F", "", "", "Aegis_optic_ROS_SMG", ["8Rnd_12Gauge_Pellets", "8Rnd_12Gauge_Slug"], [], ""] +]]; +_militaryLoadoutData set ["SMGs", [ +["SMG_03C_TR_camo", "", "acc_pointer_IR", "optic_Holosight_smg_blk_F", [], [], ""], +["SMG_03C_TR_camo", "", "acc_pointer_IR", "optic_Aco_smg", [], [], ""], +["SMG_03C_TR_camo", "", "acc_pointer_IR", "Aegis_optic_ROS_SMG", [], [], ""], +["hgun_PDW2000_F", "", "", "optic_Holosight_smg_blk_F", [], [], ""], +["hgun_PDW2000_F", "", "", "optic_Aco_smg", [], [], ""], +["hgun_PDW2000_F", "", "", "Aegis_optic_ROS_SMG", [], [], ""] +]]; +_militaryLoadoutData set ["machineGuns", [ +["LMG_Mk200_F", "", "acc_pointer_IR", "optic_MRCO", ["200Rnd_65x39_cased_Box_Red", "200Rnd_65x39_cased_Box_Red", "200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_blk"], +["LMG_Mk200_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", ["200Rnd_65x39_cased_Box_Red", "200Rnd_65x39_cased_Box_Red", "200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_blk"], +["LMG_Mk200_F", "", "acc_pointer_IR", "Aegis_optic_ACOG", ["200Rnd_65x39_cased_Box_Red", "200Rnd_65x39_cased_Box_Red", "200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_blk"], +["LMG_Mk200_F", "", "acc_pointer_IR", "optic_Aco", ["200Rnd_65x39_cased_Box_Red", "200Rnd_65x39_cased_Box_Red", "200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_blk"], +["LMG_Mk200_F", "", "acc_pointer_IR", "Aegis_optic_ROS", ["200Rnd_65x39_cased_Box_Red", "200Rnd_65x39_cased_Box_Red", "200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_blk"] +]]; +_militaryLoadoutData set ["marksmanRifles", [ +["srifle_EBR_F", "", "acc_pointer_IR", "optic_SOS", [], [], "bipod_01_F_blk"], +["srifle_EBR_F", "", "acc_pointer_IR", "optic_MRCO", [], [], "bipod_01_F_blk"], +["srifle_EBR_F", "", "acc_pointer_IR", "optic_DMS", [], [], "bipod_01_F_blk"], +["Aegis_arifle_SR25_blk_F", "", "acc_pointer_IR", "optic_SOS", [], [], "bipod_01_F_blk"], +["Aegis_arifle_SR25_blk_F", "", "acc_pointer_IR", "optic_Hamr", [], [], "bipod_01_F_blk"], +["Aegis_arifle_SR25_blk_F", "", "acc_pointer_IR", "optic_DMS", [], [], "bipod_01_F_blk"] +]]; +_militaryLoadoutData set ["sniperRifles", [ +["srifle_GM6_F", "", "", "optic_SOS", ["5Rnd_127x108_Mag", "5Rnd_127x108_APDS_Mag"], [], ""], +["srifle_GM6_F", "", "", "optic_LRPS", ["5Rnd_127x108_Mag", "5Rnd_127x108_APDS_Mag"], [], ""] +]]; +_militaryLoadoutData set ["sidearms", [ +["hgun_ACPC2_F", "", "acc_flashlight_pistol", "", [], [], ""] +]]; + +/////////////////////////////// +// Police Loadout Data // +/////////////////////////////// + +private _policeLoadoutData = _loadoutData call _fnc_copyLoadoutData; // touch and shit breaks +_policeLoadoutData set ["uniforms", ["U_B_GEN_Soldier_F", "U_B_GEN_Commander_F"]]; +_policeLoadoutData set ["vests", ["V_TacVest_blk_POLICE"]]; +_policeLoadoutData set ["helmets", ["H_Cap_police"]]; +_policeLoadoutData set ["carbines", [ +["arifle_Mk20_black_F", "", "acc_flashlight", "", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["arifle_Mk20C_black_F", "", "acc_flashlight", "", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""] +]]; +_policeLoadoutData set ["shotGuns", [ +["sgun_M4_F", "", "acc_flashlight_pistol", "", ["8Rnd_12Gauge_Pellets", "8Rnd_12Gauge_Slug"], [], ""] +]]; +_policeLoadoutData set ["SMGs", [ +["SMG_03C_TR_camo", "", "acc_flashlight", "", [], [], ""], +["hgun_PDW2000_F", "", "", "", [], [], ""] +]]; +_policeLoadoutData set ["sidearms", ["hgun_ACPC2_black_F"]]; + +//////////////////////////////// +// Militia Loadout Data // +//////////////////////////////// + +private _militiaLoadoutData = _loadoutData call _fnc_copyLoadoutData; // touch and shit breaks +_militiaLoadoutData set ["uniforms", ["U_I_CombatUniform_shortsleeve", "U_I_Uniform_01_tanktop_F", "U_I_CombatUniform_tshirt"]]; +_militiaLoadoutData set ["vests", ["V_BandollierB_oli", "V_Chestrig_oli", "V_ChestrigF_oli"]]; +_militiaLoadoutData set ["Hvests", ["V_TacVest_oli"]]; +_militiaLoadoutData set ["backpacks", ["B_TacticalPack_oli", "B_FieldPack_oli", "B_Carryall_oli", "B_AssaultPack_dgtl", "B_Kitbag_dgtl"]]; +_militiaLoadoutData set ["helmets", ["H_MilCap_dgtl"]]; + +_militiaLoadoutData set ["rifles", [ +["arifle_Mk20_F", "", "", "", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["arifle_TRG21_F", "", "", "", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""] +]]; +_militiaLoadoutData set ["carbines", [ +["arifle_Mk20C_F", "", "", "", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["arifle_TRG20_F", "", "", "", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""] +]]; +_militiaLoadoutData set ["grenadeLaunchers", [ +["arifle_Mk20_GL_F", "", "", "", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_TRG21_GL_F", "", "", "", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_militiaLoadoutData set ["SMGs", [ +["SMG_03C_camo", "", "", "", [], [], ""] +]]; +_militiaLoadoutData set ["machineGuns", [ +["LMG_Mk200_F", "", "", "", ["200Rnd_65x39_cased_Box_Red", "200Rnd_65x39_cased_Box_Red", "200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_03_F_blk"] +]]; +_militiaLoadoutData set ["marksmanRifles", [ +["srifle_EBR_F", "", "", "optic_MRCO", [], [], ""] +]]; +_militiaLoadoutData set ["sniperRifles", [ +["srifle_EBR_F", "", "", "optic_SOS", [], [], "bipod_03_F_blk"] +]]; +_militiaLoadoutData set ["sidearms", ["hgun_ACPC2_black_F"]]; + +////////////////////////// +// Misc Loadouts // +////////////////////////// + +private _crewLoadoutData = _militaryLoadoutData call _fnc_copyLoadoutData; +_crewLoadoutData set ["uniforms", ["U_Tank_green_F"]]; +_crewLoadoutData set ["vests", ["V_BandollierB_oli"]]; +_crewLoadoutData set ["helmets", ["H_HelmetCrew_I"]]; + +private _pilotLoadoutData = _militaryLoadoutData call _fnc_copyLoadoutData; +_pilotLoadoutData set ["uniforms", ["U_I_HeliPilotCoveralls"]]; +_pilotLoadoutData set ["vests", ["V_TacVest_oli"]]; +_pilotLoadoutData set ["helmets", ["H_PilotHelmetHeli_I", "H_CrewHelmetHeli_I", "H_PilotHelmetHeli_I_visor_up"]]; + +private _traitorLoadoutData = _militaryLoadoutData call _fnc_copyLoadoutData; +_traitorLoadoutData set ["uniforms", ["U_BG_Guerilla1_2_F"]]; +_traitorLoadoutData set ["vests", ["V_TacVest_camo"]]; + +private _officerLoadoutData = _loadoutData call _fnc_copyLoadoutData; +_officerLoadoutData set ["uniforms", ["U_I_ParadeUniform_01_AAF_F", "U_I_ParadeUniform_01_AAF_decorated_F"]]; +_officerLoadoutData set ["vests", ["V_Rangemaster_belt_blk"]]; +_officerLoadoutData set ["helmets", ["H_ParadeDressCap_01_AAF_F"]]; +_officerLoadoutData set ["backpacks", []]; +_officerLoadoutData set ["SMGs", [ +["arifle_Mk20C_black_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", [], [], ""], +["arifle_Mk20C_black_F", "", "acc_pointer_IR", "optic_Aco", [], [], ""], +["arifle_Mk20C_black_F", "", "acc_pointer_IR", "Aegis_optic_ROS", [], [], ""], +["Aegis_arifle_M4A1_short_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", [], [], ""], +["Aegis_arifle_M4A1_short_F", "", "acc_pointer_IR", "optic_Aco", [], [], ""], +["Aegis_arifle_M4A1_short_F", "", "acc_pointer_IR", "Aegis_optic_ROS", [], [], ""] +]]; + +if ("mark" in A3A_enabledDLC) then { + (_sfLoadoutData get "marksmanRifles") append [ + ["srifle_DMR_03_khaki_F", "muzzle_snds_B_khk_F", "acc_pointer_IR", "optic_AMS_khk", ["20Rnd_762x51_Mag"], [], "bipod_01_F_khk"], + ["srifle_DMR_03_khaki_F", "muzzle_snds_B_khk_F", "acc_pointer_IR", "optic_SOS_khk_F", ["20Rnd_762x51_Mag"], [], "bipod_01_F_khk"]]; + (_sfLoadoutData get "sniperRifles") append [ + ["srifle_DMR_05_tan_f", "muzzle_snds_93mmg_tan", "acc_pointer_IR", "optic_KHS_tan", [], [], "bipod_03_F_blk"], + ["srifle_DMR_05_tan_f", "muzzle_snds_93mmg_tan", "acc_pointer_IR", "optic_LRPS", [], [], "bipod_03_F_blk"]]; + + (_militaryLoadoutData get "marksmanRifles") append [ + ["srifle_DMR_03_khaki_F", "", "acc_pointer_IR", "optic_AMS_khk", ["20Rnd_762x51_Mag"], [], "bipod_01_F_khk"], + ["srifle_DMR_03_khaki_F", "", "acc_pointer_IR", "optic_SOS_khk_F", ["20Rnd_762x51_Mag"], [], "bipod_01_F_khk"]]; + (_militaryLoadoutData get "sniperRifles") append [ + ["srifle_DMR_02_camo_F", "", "acc_pointer_IR", "optic_LRPS", [], [], "bipod_01_F_khk"], + ["srifle_DMR_02_camo_F", "", "acc_pointer_IR", "optic_LRPS", [], [], "bipod_01_F_khk"]]; + + _militiaLoadoutData set ["marksmanRifles", [["srifle_DMR_06_olive_F", "", "", "optic_MRCO", [], [], ""] ]]; + _militiaLoadoutData set ["sniperRifles", [["srifle_DMR_06_olive_F", "", "", "optic_KHS_old", [], [], ""], + ["srifle_DMR_06_olive_F", "", "", "optic_KHS_blk", [], [], ""]]]; + //Overwrites the ABR/EBR - not fitting for the AAF militia, others will still use it +}; +if ("rf" in A3A_enabledDLC) then { + (_sfLoadoutData get "sidearms") append [ + ["hgun_Glock19_Tan_RF", "muzzle_snds_L", "acc_flashlight_IR_pistol_RF", "optic_MRD_tan_RF", [], [], ""], + ["hgun_Glock19_Tan_RF", "muzzle_snds_L", "acc_flashlight_IR_pistol_RF", "optic_MRD_tan_RF", [], [], ""], + ["hgun_Glock19_auto_Tan_RF", "muzzle_snds_L", "acc_flashlight_IR_pistol_RF", "optic_MRD_tan_RF", [], [], ""], + ["hgun_Glock19_auto_Tan_RF", "muzzle_snds_L", "acc_flashlight_IR_pistol_RF", "optic_MRD_tan_RF", [], [], ""], + ["hgun_Glock19_auto_Tan_RF", "muzzle_snds_L", "acc_flashlight_IR_pistol_RF", "optic_MRD_tan_RF", [], [], ""] + ]; + (_policeLoadoutData get "sidearms") append ["hgun_Glock19_RF"]; + (_sfLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "muzzle_snds_acp", "", "optic_Holosight", [], [], ""], + ["SMG_01_black_RF", "muzzle_snds_acp", "", "optic_Aco_smg", [], [], ""] + ]; + (_militaryLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "", "", "optic_Holosight", [], [], ""], + ["SMG_01_black_RF", "", "", "optic_Aco_smg", [], [], ""] + ]; + (_militiaLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "", "acc_flashlight_smg_01", "", [], [], ""] + ]; + (_policeLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "", "acc_flashlight_smg_01", "optic_Holosight", [], [], ""], + ["SMG_01_black_RF", "", "acc_flashlight_smg_01", "optic_Aco_smg", [], [], ""] + ]; + (_sfLoadoutData get "helmets") append [ + "H_HelmetIA_sb_digital_RF", + "H_HelmetHeavy_Olive_RF", + "H_HelmetHeavy_Simple_Olive_RF", + "H_HelmetHeavy_VisorUp_Olive_RF"]; + (_militaryLoadoutData get "helmets") append ["H_HelmetIA_sb_digital_RF"]; + (_militiaLoadoutData get "helmets") append ["H_HelmetIA_sb_digital_RF"]; +}; + + +///////////////////////////////// +// Unit Type Definitions // +///////////////////////////////// + + +private _squadLeaderTemplate = { + ["slHat"] call _fnc_setHelmet; + [selectRandomWeighted [[], 1.25, "glasses", 1, "goggles", 0.75]] call _fnc_setFacewear; + [["Hvests", "vests"] call _fnc_fallback] call _fnc_setVest; + [["slUniforms", "uniforms"] call _fnc_fallback] call _fnc_setUniform; + + ["backpacks"] call _fnc_setBackpack; + + [["slRifles", "rifles"] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + ["primary", 4] call _fnc_addAdditionalMuzzleMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_squadLeader_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 2] call _fnc_addItem; + ["signalsmokeGrenades", 2] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["gpses"] call _fnc_addGPS; + ["binoculars"] call _fnc_addBinoculars; + ["NVGs"] call _fnc_addNVGs; +}; + +private _riflemanTemplate = { + ["helmets"] call _fnc_setHelmet; + [selectRandomWeighted [[], 1.25, "glasses", 1, "goggles", 0.75]] call _fnc_setFacewear; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_rifleman_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 2] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _medicTemplate = { + ["helmets"] call _fnc_setHelmet; + [selectRandomWeighted [[], 1.25, "glasses", 1, "goggles", 0.75]] call _fnc_setFacewear; + [["Hvests", "vests"] call _fnc_fallback] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + [selectRandom ["carbines", "SMGs"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_medic"] call _fnc_addItemSet; + ["items_medic_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _grenadierTemplate = { + ["helmets"] call _fnc_setHelmet; + [selectRandomWeighted [[], 1.25, "glasses", 1, "goggles", 0.75]] call _fnc_setFacewear; + [["Hvests", "vests"] call _fnc_fallback] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + ["grenadeLaunchers"] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + ["primary", 10] call _fnc_addAdditionalMuzzleMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_grenadier_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 4] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _explosivesExpertTemplate = { + ["helmets"] call _fnc_setHelmet; + [selectRandomWeighted [[], 1.25, "glasses", 1, "goggles", 0.75]] call _fnc_setFacewear; + [["Hvests", "vests"] call _fnc_fallback] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [[selectRandom ["carbines", "shotGuns", "rifles"], selectRandom ["carbines", "rifles"]] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_explosivesExpert_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + + ["lightExplosives", 2] call _fnc_addItem; + if (random 1 > 0.5) then {["heavyExplosives", 1] call _fnc_addItem;}; + if (random 1 > 0.5) then {["atMines", 1] call _fnc_addItem;}; + if (random 1 > 0.5) then {["apMines", 1] call _fnc_addItem;}; + + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _engineerTemplate = { + ["helmets"] call _fnc_setHelmet; + [selectRandomWeighted [[], 1.25, "glasses", 1, "goggles", 0.75]] call _fnc_setFacewear; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [[selectRandom ["carbines", "shotGuns", "SMGs"], selectRandom ["carbines", "SMGs"]] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_engineer_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + + if (random 1 > 0.5) then {["lightExplosives", 1] call _fnc_addItem;}; + + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _latTemplate = { + ["helmets"] call _fnc_setHelmet; + [selectRandomWeighted [[], 1.25, "glasses", 1, "goggles", 0.75]] call _fnc_setFacewear; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + [["atBackpacks", "backpacks"] call _fnc_fallback] call _fnc_setBackpack; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + [["lightATLaunchers", "ATLaunchers"] call _fnc_fallback] call _fnc_setLauncher; + //TODO - Add a check if it's disposable. + ["launcher", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_lat_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _atTemplate = { + ["helmets"] call _fnc_setHelmet; + [selectRandomWeighted [[], 1.25, "glasses", 1, "goggles", 0.75]] call _fnc_setFacewear; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + [["atBackpacks", "backpacks"] call _fnc_fallback] call _fnc_setBackpack; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + [selectRandom ["ATLaunchers", "missileATLaunchers"]] call _fnc_setLauncher; + //TODO - Add a check if it's disposable. + ["launcher", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_at_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _aaTemplate = { + ["helmets"] call _fnc_setHelmet; + [selectRandomWeighted [[], 1.25, "glasses", 1, "goggles", 0.75]] call _fnc_setFacewear; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + [["atBackpacks", "backpacks"] call _fnc_fallback] call _fnc_setBackpack; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["AALaunchers"] call _fnc_setLauncher; + //TODO - Add a check if it's disposable. + ["launcher", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_aa_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _machineGunnerTemplate = { + ["helmets"] call _fnc_setHelmet; + [selectRandomWeighted [[], 1.25, "glasses", 1, "goggles", 0.75]] call _fnc_setFacewear; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + ["machineGuns"] call _fnc_setPrimary; + ["primary", 4] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_machineGunner_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _marksmanTemplate = { + ["sniHats"] call _fnc_setHelmet; + [selectRandomWeighted [[], 1.25, "glasses", 1, "goggles", 0.75]] call _fnc_setFacewear; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + + ["marksmanRifles"] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_marksman_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["rangefinders"] call _fnc_addBinoculars; + ["NVGs"] call _fnc_addNVGs; +}; + +private _sniperTemplate = { + ["sniHats"] call _fnc_setHelmet; + [selectRandomWeighted [[], 1.25, "glasses", 1, "goggles", 0.75]] call _fnc_setFacewear; + [["sniVests","vests"] call _fnc_fallback] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + + ["sniperRifles"] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_sniper_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["rangefinders"] call _fnc_addBinoculars; + ["NVGs"] call _fnc_addNVGs; +}; + +private _policeTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + + [[selectRandom ["carbines", "shotGuns", "SMGs"], "SMGs"] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_police_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; +}; + +private _crewTemplate = { + ["helmets"] call _fnc_setHelmet; + [selectRandomWeighted [[], 1.25, "glasses", 1, "goggles", 0.75]] call _fnc_setFacewear; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + [selectRandom ["carbines", "SMGs"]] call _fnc_setPrimary; + ["primary", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_basic"] call _fnc_addItemSet; + ["items_crew_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["gpses"] call _fnc_addGPS; + ["NVGs"] call _fnc_addNVGs; +}; + +private _unarmedTemplate = { + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + ["items_medical_basic"] call _fnc_addItemSet; + ["items_unarmed_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; +}; + +private _traitorTemplate = { + call _unarmedTemplate; + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; +}; + +//////////////////////////////////////////////////////////////////////////////////////// +// You shouldn't touch below this line unless you really really know what you're doing. +// Things below here can and will break the gamemode if improperly changed. +//////////////////////////////////////////////////////////////////////////////////////// + +///////////////////////////// +// Special Forces Units // +///////////////////////////// +private _prefix = "SF"; +private _unitTypes = [ + ["SquadLeader", _squadLeaderTemplate], + ["Rifleman", _riflemanTemplate], + ["Medic", _medicTemplate, [["medic", true]]], + ["Engineer", _engineerTemplate, [["engineer", true]]], + ["ExplosivesExpert", _explosivesExpertTemplate, [["explosiveSpecialist", true]]], + ["Grenadier", _grenadierTemplate], + ["LAT", _latTemplate], + ["AT", _atTemplate], + ["AA", _aaTemplate], + ["MachineGunner", _machineGunnerTemplate], + ["Marksman", _marksmanTemplate], + ["Sniper", _sniperTemplate] +]; + +[_prefix, _unitTypes, _sfLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +/*{ + params ["_name", "_loadoutTemplate"]; + private _loadouts = [_sfLoadoutData, _loadoutTemplate] call _fnc_buildLoadouts; + private _finalName = _prefix + _name; + [_finalName, _loadouts] call _fnc_saveToTemplate; +} forEach _unitTypes; +*/ + +/////////////////////// +// Military Units // +/////////////////////// +private _prefix = "military"; +private _unitTypes = [ + ["SquadLeader", _squadLeaderTemplate], + ["Rifleman", _riflemanTemplate], + ["Medic", _medicTemplate, [["medic", true]]], + ["Engineer", _engineerTemplate, [["engineer", true]]], + ["ExplosivesExpert", _explosivesExpertTemplate, [["explosiveSpecialist", true]]], + ["Grenadier", _grenadierTemplate], + ["LAT", _latTemplate], + ["AT", _atTemplate], + ["AA", _aaTemplate], + ["MachineGunner", _machineGunnerTemplate], + ["Marksman", _marksmanTemplate], + ["Sniper", _sniperTemplate] +]; + +[_prefix, _unitTypes, _militaryLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +//////////////////////// +// Police Units // +//////////////////////// +private _prefix = "police"; +private _unitTypes = [ + ["SquadLeader", _policeTemplate], + ["Standard", _policeTemplate] +]; + +[_prefix, _unitTypes, _policeLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +//////////////////////// +// Militia Units // +//////////////////////// +private _prefix = "militia"; +private _unitTypes = [ + ["SquadLeader", _squadLeaderTemplate], + ["Rifleman", _riflemanTemplate], + ["Medic", _medicTemplate, [["medic", true]]], + ["Engineer", _engineerTemplate, [["engineer", true]]], + ["ExplosivesExpert", _explosivesExpertTemplate, [["explosiveSpecialist", true]]], + ["Grenadier", _grenadierTemplate], + ["LAT", _latTemplate], + ["AT", _atTemplate], + ["AA", _aaTemplate], + ["MachineGunner", _machineGunnerTemplate], + ["Marksman", _marksmanTemplate], + ["Sniper", _sniperTemplate] +]; + +[_prefix, _unitTypes, _militiaLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +////////////////////// +// Misc Units // +////////////////////// + +//The following lines are determining the loadout of vehicle crew +["other", [["Crew", _crewTemplate]], _crewLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout of the pilots +["other", [["Pilot", _crewTemplate]], _pilotLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout for the unit used in the "kill the official" mission +["other", [["Official", _policeTemplate]], _officerLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout for the AI used in the "kill the traitor" mission +["other", [["Traitor", _traitorTemplate]], _traitorLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout for the AI used in the "Invader Punishment" mission +["other", [["Unarmed", _UnarmedTemplate]], _militaryLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; diff --git a/A3A/addons/core/Templates/Templates/Aegis/Aegis_AI_BAF_Arid.sqf b/A3A/addons/core/Templates/Templates/Aegis/Aegis_AI_BAF_Arid.sqf new file mode 100644 index 0000000000..e6d36dfabf --- /dev/null +++ b/A3A/addons/core/Templates/Templates/Aegis/Aegis_AI_BAF_Arid.sqf @@ -0,0 +1,992 @@ +////////////////////////// +// Side Information // +////////////////////////// + +["name", "BAF"] call _fnc_saveToTemplate; +["spawnMarkerName", "BAF support corridor"] call _fnc_saveToTemplate; + +["flag", "Flag_UK_F"] call _fnc_saveToTemplate; +["flagTexture", "\A3\Data_F\Flags\Flag_uk_CO.paa"] call _fnc_saveToTemplate; +["flagMarkerType", "flag_UK"] call _fnc_saveToTemplate; + +////////////////////////// +// Vehicles // +////////////////////////// + +["ammobox", "B_supplyCrate_F"] call _fnc_saveToTemplate; //Don't touch or you die a sad and lonely death! +["surrenderCrate", "Box_IND_Wps_F"] call _fnc_saveToTemplate; //Changeing this from default will require you to define logistics attachement offset for the box type +["equipmentBox", "Box_NATO_Equip_F"] call _fnc_saveToTemplate; //Changeing this from default will require you to define logistics attachement offset for the box type + +["vehiclesBasic", ["B_A_Quadbike_01_F"]] call _fnc_saveToTemplate; +["vehiclesLightUnarmed", ["B_A_MRAP_03_F", "B_A_MRAP_03_F", "B_A_LSV_01_light_F"]] call _fnc_saveToTemplate; +["vehiclesLightArmed",["B_A_MRAP_03_hmg_F", "B_A_MRAP_03_hmg_F", "B_A_MRAP_03_gmg_F", "B_A_MRAP_03_gmg_F", "B_A_LSV_01_AT_F", "B_A_LSV_01_armed_F"]] call _fnc_saveToTemplate; +["vehiclesTrucks", ["B_A_Truck_01_covered_F", "B_A_Truck_01_transport_F"]] call _fnc_saveToTemplate; +["vehiclesCargoTrucks", ["B_A_Truck_01_cargo_F", "B_A_Truck_01_flatbed_F"]] call _fnc_saveToTemplate; +["vehiclesAmmoTrucks", ["B_A_Truck_01_ammo_F"]] call _fnc_saveToTemplate; +["vehiclesRepairTrucks", ["B_A_Truck_01_Repair_F"]] call _fnc_saveToTemplate; +["vehiclesFuelTrucks", ["B_A_Truck_01_fuel_F"]] call _fnc_saveToTemplate; +["vehiclesMedical", ["B_A_Truck_01_medical_F"]] call _fnc_saveToTemplate; +["vehiclesLightAPCs", []] call _fnc_saveToTemplate; +["vehiclesAPCs", ["B_A_APC_tracked_03_cannon_v2_F"]] call _fnc_saveToTemplate; +["vehiclesIFVs", ["a3a_B_A_APC_tracked_03_cannon_v2_F"]] call _fnc_saveToTemplate; +["vehiclesTanks", ["B_MBT_01_TUSK_F", "B_MBT_01_cannon_F"]] call _fnc_saveToTemplate; +["vehiclesAA", ["B_APC_Tracked_01_AA_F"]] call _fnc_saveToTemplate; + +["vehiclesTransportBoats", ["B_Boat_Transport_01_F"]] call _fnc_saveToTemplate; +["vehiclesGunBoats", ["B_Boat_Armed_01_minigun_F"]] call _fnc_saveToTemplate; +["vehiclesAmphibious", []] call _fnc_saveToTemplate; + +["vehiclesPlanesCAS", ["B_A_Plane_Fighter_05_F"]] call _fnc_saveToTemplate; +["vehiclesPlanesAA", ["B_A_Plane_Fighter_05_F"]] call _fnc_saveToTemplate; +["vehiclesPlanesTransport", ["B_A_Plane_Transport_01_infantry_F"]] call _fnc_saveToTemplate; + +private _vehiclesHelisLight = ["B_A_Heli_light_03_unarmed_F"]; +private _HelisTransport = ["Aegis_B_A_Heli_Transport_02_F"]; +private _vehiclesHelisLightAttack = ["B_A_Heli_light_03_dynamicLoadout_F"]; +["vehiclesHelisAttack", ["Aegis_B_A_Heli_Attack_03_F"]] call _fnc_saveToTemplate; + +["vehiclesArtillery", ["B_MBT_01_arty_F","B_MBT_01_mlrs_F"]] call _fnc_saveToTemplate; //this line determines artillery vehicles -- Example: ["vehiclesArtillery", ["B_MBT_01_arty_F"]] -- Array, can contain multiple assets +//new magazines storing methode, all vehicle magazines should be defined here in format [Vehicle class, [magazines]], +["magazines", createHashMapFromArray [ + ["B_MBT_01_arty_F",["32Rnd_155mm_Mo_shells"]], + ["B_MBT_01_mlrs_F",["12Rnd_230mm_rockets"]] +]] call _fnc_saveToTemplate; + +["uavsAttack", ["B_UAV_02_dynamicLoadout_F"]] call _fnc_saveToTemplate; +["uavsPortable", ["B_UAV_01_F"]] call _fnc_saveToTemplate; + +//Config special vehicles - militia vehicles are mostly used in the early game, police cars are being used by troops around cities. +private _vehiclesMilitiaLightArmed = ["B_A_LSV_01_armed_F"]; +["vehiclesMilitiaTrucks", ["B_A_Truck_01_covered_F", "B_A_Truck_01_transport_F"]] call _fnc_saveToTemplate; +private _vehiclesMilitiaCars = ["B_A_LSV_01_light_F"]; + +private _vehiclesPolice = ["B_GEN_Offroad_01_gen_F"]; + +["staticMGs", ["B_G_HMG_02_high_F"]] call _fnc_saveToTemplate; +["staticAT", ["B_static_AT_F"]] call _fnc_saveToTemplate; +["staticAA", ["B_static_AA_F"]] call _fnc_saveToTemplate; +["staticMortars", ["B_Mortar_01_F"]] call _fnc_saveToTemplate; + +["mortarMagazineHE", "8Rnd_82mm_Mo_shells"] call _fnc_saveToTemplate; +["mortarMagazineSmoke", "8Rnd_82mm_Mo_Smoke_white"] call _fnc_saveToTemplate; +["mortarMagazineFlare", "8Rnd_82mm_Mo_Flare_white"] call _fnc_saveToTemplate; + +//Minefield definition +["minefieldAT", ["ATMine"]] call _fnc_saveToTemplate; +["minefieldAPERS", ["APERSMine"]] call _fnc_saveToTemplate; + +if ("rf" in A3A_enabledDLC) then { + _vehiclesPolice append ["a3a_police_Pickup_rf", "B_GEN_Pickup_covered_rf", "a3a_police_Pickup_comms_rf"]; + _HelisTransport append ["B_Heli_EC_04_military_RF"]; + _vehiclesHelisLight append ["B_Heli_light_03_unarmed_RF"]; + _vehiclesHelisLightAttack append ["a3a_Heli_light_03_dynamicLoadout_rf","B_Heli_EC_03_RF"]; + _vehiclesMilitiaCars append ["B_Pickup_rf"]; + _vehiclesMilitiaLightArmed append ["B_Pickup_mmg_rf"]; +}; + +["vehiclesHelisLight", _vehiclesHelisLight] call _fnc_saveToTemplate; +["vehiclesHelisLightAttack", _vehiclesHelisLightAttack] call _fnc_saveToTemplate; +["vehiclesHelisTransport", _HelisTransport] call _fnc_saveToTemplate; + +["vehiclesMilitiaCars", _vehiclesMilitiaCars] call _fnc_saveToTemplate; +["vehiclesMilitiaLightArmed", _vehiclesMilitiaLightArmed] call _fnc_saveToTemplate; +["vehiclesPolice", _vehiclesPolice] call _fnc_saveToTemplate; + + +#include "Aegis_Vehicle_Attributes.sqf" + +///////////////////// +/// Identities /// +///////////////////// + +["voices", ["Male01ENGB", "Male02ENGB", "Male03ENGB", "Male04ENGB", "Male05ENGB"]] call _fnc_saveToTemplate; +["faces", ["AfricanHead_01","AfricanHead_02","AfricanHead_03","Barklem", +"GreekHead_A3_05","GreekHead_A3_07","Sturrock","WhiteHead_01","WhiteHead_02", +"WhiteHead_03","WhiteHead_04","WhiteHead_05","WhiteHead_06","WhiteHead_07", +"WhiteHead_08","WhiteHead_09","WhiteHead_11","WhiteHead_12","WhiteHead_14", +"WhiteHead_15","WhiteHead_16","WhiteHead_18","WhiteHead_19","WhiteHead_20", +"WhiteHead_21"]] call _fnc_saveToTemplate; +"NATOMen" call _fnc_saveNames; + +////////////////////////// +// Loadouts // +////////////////////////// + +private _loadoutData = call _fnc_createLoadoutData; +_loadoutData set ["slRifles", []]; +_loadoutData set ["rifles", []]; +_loadoutData set ["carbines", []]; +_loadoutData set ["grenadeLaunchers", []]; +_loadoutData set ["shotGuns", []]; +_loadoutData set ["SMGs", []]; +_loadoutData set ["machineGuns", []]; +_loadoutData set ["marksmanRifles", []]; +_loadoutData set ["sniperRifles", []]; +_loadoutData set ["lightATLaunchers", ["launch_NLAW_F"]]; +_loadoutData set ["ATLaunchers", [ +["launch_MRAWS_sand_F", "", "acc_pointer_IR", "", ["MRAWS_HE_F", "MRAWS_HEAT55_F"], [], ""], +["launch_MRAWS_sand_F", "", "acc_pointer_IR", "", ["MRAWS_HEAT_F", "MRAWS_HEAT55_F"], [], ""], +["launch_MRAWS_sand_F", "", "acc_pointer_IR", "", ["MRAWS_HEAT_F", "MRAWS_HE_F"], [], ""], +["launch_MRAWS_sand_rail_F", "", "acc_pointer_IR", "", ["MRAWS_HE_F", "MRAWS_HEAT55_F"], [], ""], +["launch_MRAWS_sand_rail_F", "", "acc_pointer_IR", "", ["MRAWS_HEAT_F", "MRAWS_HEAT55_F"], [], ""], +["launch_MRAWS_sand_rail_F", "", "acc_pointer_IR", "", ["MRAWS_HEAT_F", "MRAWS_HE_F"], [], ""], +["launch_NLAW_F", "", "", "", [], [], ""], +["launch_NLAW_F", "", "", "", [], [], ""] +]]; +_loadoutData set ["missileATLaunchers", [ +["launch_B_Titan_short_F", "", "acc_pointer_IR", "", ["Titan_AT"], [], ""] +]]; +_loadoutData set ["AALaunchers", [ +["launch_B_Titan_F", "", "acc_pointer_IR", "", ["Titan_AA"], [], ""] +]]; +_loadoutData set ["sidearms", []]; + +_loadoutData set ["ATMines", ["ATMine_Range_Mag"]]; +_loadoutData set ["APMines", ["APERSMine_Range_Mag"]]; +_loadoutData set ["lightExplosives", ["DemoCharge_Remote_Mag"]]; +_loadoutData set ["heavyExplosives", ["SatchelCharge_Remote_Mag"]]; + +_loadoutData set ["antiInfantryGrenades", ["HandGrenade", "MiniGrenade"]]; +_loadoutData set ["antiTankGrenades", []]; +_loadoutData set ["smokeGrenades", ["SmokeShell"]]; +_loadoutData set ["signalsmokeGrenades", ["SmokeShellYellow", "SmokeShellRed", "SmokeShellPurple", "SmokeShellOrange", "SmokeShellGreen", "SmokeShellBlue"]]; + + +//Basic equipment. Shouldn't need touching most of the time. +//Mods might override this, or certain mods might want items removed (No GPSs in WW2, for example) +_loadoutData set ["maps", ["ItemMap"]]; +_loadoutData set ["watches", ["ItemWatch"]]; +_loadoutData set ["compasses", ["ItemCompass"]]; +_loadoutData set ["radios", ["ItemRadio"]]; +_loadoutData set ["gpses", ["ItemGPS"]]; +_loadoutData set ["NVGs", ["NVGoggles"]]; +_loadoutData set ["binoculars", ["Binocular"]]; +_loadoutData set ["rangefinders", ["Rangefinder"]]; + +//Basically all the clothing which the units use. +//don't fill these lines - this is only to set the variables. +_loadoutData set ["uniforms", []]; +_loadoutData set ["vests", []]; +_loadoutData set ["Hvests", []]; +_loadoutData set ["backpacks", []]; +_loadoutData set ["longRangeRadios", []]; +_loadoutData set ["helmets", []]; +_loadoutData set ["slHat", ["H_Beret_red"]]; +_loadoutData set ["sniHats", ["H_Booniehat_mcamo_hs"]]; + +//Item *set* definitions. These are added in their entirety to unit loadouts. No randomisation is applied. +_loadoutData set ["items_medical_basic", ["BASIC"] call A3A_fnc_itemset_medicalSupplies]; //this line defines the basic medical loadout for vanilla +_loadoutData set ["items_medical_standard", ["STANDARD"] call A3A_fnc_itemset_medicalSupplies]; //this line defines the standard medical loadout for vanilla +_loadoutData set ["items_medical_medic", ["MEDIC"] call A3A_fnc_itemset_medicalSupplies]; //this line defines the medic medical loadout for vanilla +_loadoutData set ["items_miscEssentials", [] call A3A_fnc_itemset_miscEssentials]; + +//Unit type specific item sets. Add or remove these, depending on the unit types in use. +private _slItems = ["Laserbatteries", "Laserbatteries", "Laserbatteries"]; +private _eeItems = ["ToolKit", "MineDetector"]; +private _mmItems = []; + +if (A3A_hasACE) then { + _slItems append ["ACE_microDAGR", "ACE_DAGR"]; + _eeItems append ["ACE_Clacker", "ACE_DefusalKit"]; + _mmItems append ["ACE_RangeCard", "ACE_ATragMX", "ACE_Kestrel4500"]; +}; + +_loadoutData set ["items_squadLeader_extras", _slItems]; +_loadoutData set ["items_rifleman_extras", []]; +_loadoutData set ["items_medic_extras", []]; +_loadoutData set ["items_grenadier_extras", []]; +_loadoutData set ["items_explosivesExpert_extras", _eeItems]; +_loadoutData set ["items_engineer_extras", _eeItems]; +_loadoutData set ["items_lat_extras", []]; +_loadoutData set ["items_at_extras", []]; +_loadoutData set ["items_aa_extras", []]; +_loadoutData set ["items_machineGunner_extras", []]; +_loadoutData set ["items_marksman_extras", _mmItems]; +_loadoutData set ["items_sniper_extras", _mmItems]; +_loadoutData set ["items_police_extras", []]; +_loadoutData set ["items_crew_extras", []]; +_loadoutData set ["items_unarmed_extras", []]; + +//TODO - ACE overrides for misc essentials, medical and engineer gear + +/////////////////////////////////////// +// Special Forces Loadout Data // +/////////////////////////////////////// + +private _sfLoadoutData = _loadoutData call _fnc_copyLoadoutData; // touch and shit breaks +_sfLoadoutData set ["uniforms", ["U_B_UBACS_mtp_f", "U_B_UBACS_vest_mtp_f", "U_B_UBACS_tshirt_mtp_f"]]; +_sfLoadoutData set ["vests", ["Aegis_V_CarrierRigKBT_01_recon_mtp_F","V_TacVest_oli"]]; +_sfLoadoutData set ["Hvests", ["Aegis_V_CarrierRigKBT_01_cqb_mtp_F"]]; +_sfLoadoutData set ["backpacks", ["B_Kitbag_mcamo", "B_Carryall_mcamo", "B_TacticalPack_mcamo", "B_AssaultPack_mcamo"]]; +_sfLoadoutData set ["helmets", ["Aegis_H_Helmet_FASTMT_Cover_UK_mtp_F", "H_Booniehat_mcamo_hs", "H_Cap_khaki_specops_UK_hs", "H_Watchcap_khk_hs"]]; +_sfLoadoutData set ["binoculars", ["Laserdesignator"]]; + +_sfLoadoutData set ["slRifles", [ +["arifle_MX_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "optic_Hamr", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], [], ""], +["arifle_MX_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "optic_MRCO", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], [], ""], +["arifle_MX_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "Aegis_optic_ACOG_sand", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], [], ""], +["arifle_MX_GL_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "optic_Hamr", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_MX_GL_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "optic_MRCO", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_MX_GL_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "Aegis_optic_ACOG_sand", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_sfLoadoutData set ["rifles", [ +["arifle_MX_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], [], ""], +["arifle_MX_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "optic_Holosight", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], [], ""], +["arifle_MX_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], [], ""] +]]; +_sfLoadoutData set ["carbines", [ +["arifle_MXC_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], [], ""], +["arifle_MXC_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "optic_Holosight", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], [], ""], +["arifle_MXC_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], [], ""] +]]; +_sfLoadoutData set ["grenadeLaunchers", [ +["arifle_MX_GL_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_MX_GL_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "optic_Holosight", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_MX_GL_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_sfLoadoutData set ["SMGs", [ +["SMG_04_snd_F", "Aegis_muzzle_snds_460_sand", "", "optic_Holosight_smg", [], [], ""], +["SMG_04_snd_F", "Aegis_muzzle_snds_460_sand", "", "optic_Holosight_smg_blk_F", [], [], ""], +["SMG_04_snd_F", "Aegis_muzzle_snds_460_sand", "", "Aegis_optic_ROS_SMG", [], [], ""] +]]; +_sfLoadoutData set ["machineGuns", [ +["arifle_MX_SW_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "optic_Holosight_blk_F", ["100Rnd_65x39_caseless_mag", "100Rnd_65x39_caseless_mag", "100Rnd_65x39_caseless_mag_Tracer"], [], "bipod_01_F_snd"], +["arifle_MX_SW_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "optic_Holosight", ["100Rnd_65x39_caseless_mag", "100Rnd_65x39_caseless_mag", "100Rnd_65x39_caseless_mag_Tracer"], [], "bipod_01_F_snd"], +["arifle_MX_SW_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "Aegis_optic_ROS", ["100Rnd_65x39_caseless_mag", "100Rnd_65x39_caseless_mag", "100Rnd_65x39_caseless_mag_Tracer"], [], "bipod_01_F_snd"], +["arifle_MX_SW_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "optic_Hamr", ["100Rnd_65x39_caseless_mag", "100Rnd_65x39_caseless_mag", "100Rnd_65x39_caseless_mag_Tracer"], [], "bipod_01_F_snd"], +["arifle_MX_SW_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "optic_MRCO", ["100Rnd_65x39_caseless_mag", "100Rnd_65x39_caseless_mag", "100Rnd_65x39_caseless_mag_Tracer"], [], "bipod_01_F_snd"], +["arifle_MX_SW_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "Aegis_optic_ACOG_sand", ["100Rnd_65x39_caseless_mag", "100Rnd_65x39_caseless_mag", "100Rnd_65x39_caseless_mag_Tracer"], [], "bipod_01_F_snd"], +["LMG_Mk200_plain_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "optic_Holosight_blk_F", ["200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_snd"], +["LMG_Mk200_plain_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "optic_Holosight", ["200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_snd"], +["LMG_Mk200_plain_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "Aegis_optic_ROS", ["200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_snd"], +["LMG_Mk200_plain_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "optic_Hamr", ["200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_snd"], +["LMG_Mk200_plain_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "optic_MRCO", ["200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_snd"], +["LMG_Mk200_plain_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "Aegis_optic_ACOG_sand", ["200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_snd"] +]]; +_sfLoadoutData set ["marksmanRifles", [ +["arifle_MXM_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "optic_SOS", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], [], "bipod_01_F_snd"], +["arifle_MXM_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "optic_Hamr", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], [], "bipod_01_F_snd"], +["arifle_MXM_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "optic_DMS", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], [], "bipod_01_F_snd"], +["Aegis_arifle_SR25_MR_snd_F", "aegis_muzzle_snds_sr25_snd", "acc_pointer_IR", "optic_SOS", ["Aegis_20Rnd_762x51_Sand_SMAG"], [], "bipod_01_F_snd"], +["Aegis_arifle_SR25_MR_snd_F", "aegis_muzzle_snds_sr25_snd", "acc_pointer_IR", "optic_Hamr", ["Aegis_20Rnd_762x51_Sand_SMAG"], [], "bipod_01_F_snd"], +["Aegis_arifle_SR25_MR_snd_F", "aegis_muzzle_snds_sr25_snd", "acc_pointer_IR", "optic_DMS", ["Aegis_20Rnd_762x51_Sand_SMAG"], [], "bipod_01_F_snd"] +]]; +_sfLoadoutData set ["sniperRifles", [ +["srifle_LRR_F", "", "", "optic_SOS", [], [], ""], +["srifle_LRR_F", "", "", "optic_LRPS", [], [], ""] +]]; +_sfLoadoutData set ["sidearms", [ +["hgun_G17_F", "muzzle_snds_L", "", "", [], [], ""], +["hgun_Mk26_F", "", "", "", [], [], ""] +]]; +///////////////////////////////// +// Military Loadout Data // +///////////////////////////////// + +private _militaryLoadoutData = _loadoutData call _fnc_copyLoadoutData; // touch and shit breaks +_militaryLoadoutData set ["uniforms", ["U_B_UBACS_mtp_f", "U_B_UBACS_vest_mtp_f", "U_B_UBACS_tshirt_mtp_f"]]; +_militaryLoadoutData set ["vests", ["V_CarrierRigKBT_01_light_Coyote_F", "V_CarrierRigKBT_01_light_MTP_F", "Aegis_V_CarrierRigKBT_01_cqb_mtp_F", "Aegis_V_CarrierRigKBT_01_cqb_cbr_F"]]; +_militaryLoadoutData set ["Hvests", ["V_CarrierRigKBT_01_heavy_Coyote_F", "V_CarrierRigKBT_01_heavy_MTP_F", "Aegis_V_CarrierRigKBT_01_tac_cbr_F"]]; +_militaryLoadoutData set ["backpacks", ["B_Kitbag_mcamo", "B_Carryall_mcamo", "B_TacticalPack_mcamo"]]; +_militaryLoadoutData set ["helmets", ["H_HelmetB_sand", "H_HelmetB_camo", "H_HelmetSpecB_sand", "H_HelmetB_plain_mcamo", "H_HelmetB_camo_mcamo", "H_HelmetSpecB_mcamo"]]; +_militaryLoadoutData set ["binoculars", ["Laserdesignator"]]; + +_militaryLoadoutData set ["rifles", [ +["arifle_SA80_snd_F", "", "acc_pointer_IR", "optic_Hamr", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], [], ""], +["arifle_SA80_snd_F", "", "acc_pointer_IR", "optic_MRCO", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], [], ""], +["arifle_SA80_snd_F", "", "acc_pointer_IR", "Aegis_optic_ACOG", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], [], ""], +["arifle_SA80_GL_snd_F", "", "acc_pointer_IR", "optic_Hamr", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_SA80_GL_snd_F", "", "acc_pointer_IR", "optic_MRCO", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_SA80_GL_snd_F", "", "acc_pointer_IR", "Aegis_optic_ACOG", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_militaryLoadoutData set ["rifles", [ +["arifle_SA80_snd_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], [], ""], +["arifle_SA80_snd_F", "", "acc_pointer_IR", "optic_Holosight", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], [], ""], +["arifle_SA80_snd_F", "", "acc_pointer_IR", "optic_ACO_grn", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], [], ""], +["arifle_SA80_snd_F", "", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], [], ""] +]]; +_militaryLoadoutData set ["carbines", [ +["arifle_SA80_C_snd_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], [], ""], +["arifle_SA80_C_snd_F", "", "acc_pointer_IR", "optic_Holosight", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], [], ""], +["arifle_SA80_C_snd_F", "", "acc_pointer_IR", "optic_ACO_grn", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], [], ""], +["arifle_SA80_C_snd_F", "", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], [], ""] +]]; +_militaryLoadoutData set ["grenadeLaunchers", [ +["arifle_SA80_GL_snd_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_SA80_GL_snd_F", "", "acc_pointer_IR", "optic_Holosight", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_SA80_GL_snd_F", "", "acc_pointer_IR", "optic_ACO_grn", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_SA80_GL_snd_F", "", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_militaryLoadoutData set ["shotGuns", [ +["sgun_M4_F", "", "", "optic_Aco_smg", ["8Rnd_12Gauge_Pellets", "8Rnd_12Gauge_Slug"], [], ""], +["sgun_M4_F", "", "", "Aegis_optic_ROS_SMG", ["8Rnd_12Gauge_Pellets", "8Rnd_12Gauge_Slug"], [], ""] +]]; +_militaryLoadoutData set ["SMGs", [ +["SMG_04_snd_F", "", "", "optic_Holosight_smg", [], [], ""], +["SMG_04_snd_F", "", "", "optic_Holosight_smg_blk_F", [], [], ""], +["SMG_04_snd_F", "", "", "optic_Aco_smg", [], [], ""], +["SMG_04_snd_F", "", "", "Aegis_optic_ROS_SMG", [], [], ""] +]]; +_militaryLoadoutData set ["machineGuns", [ +["LMG_Mk200_plain_F", "", "acc_pointer_IR", "optic_Holosight", ["200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_snd"], +["LMG_Mk200_plain_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", ["200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_snd"], +["LMG_Mk200_plain_F", "", "acc_pointer_IR", "optic_ACO_grn", ["200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_snd"], +["LMG_Mk200_plain_F", "", "acc_pointer_IR", "Aegis_optic_ROS", ["200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_snd"] +]]; +_militaryLoadoutData set ["marksmanRifles", [ +["arifle_SPAR_03_snd_F", "", "acc_pointer_IR", "optic_SOS", [], [], "bipod_01_F_snd"], +["arifle_SPAR_03_snd_F", "", "acc_pointer_IR", "optic_Hamr", [], [], "bipod_01_F_snd"], +["arifle_SPAR_03_snd_F", "", "acc_pointer_IR", "optic_DMS", [], [], "bipod_01_F_snd"], +["Aegis_arifle_SR25_snd_F", "", "acc_pointer_IR", "optic_SOS", ["Aegis_20Rnd_762x51_Sand_SMAG"], [], "bipod_01_F_snd"], +["Aegis_arifle_SR25_snd_F", "", "acc_pointer_IR", "optic_Hamr", ["Aegis_20Rnd_762x51_Sand_SMAG"], [], "bipod_01_F_snd"], +["Aegis_arifle_SR25_snd_F", "", "acc_pointer_IR", "optic_DMS", ["Aegis_20Rnd_762x51_Sand_SMAG"], [], "bipod_01_F_snd"] +]]; +_militaryLoadoutData set ["sniperRifles", [ +["srifle_LRR_F", "", "", "optic_SOS", [], [], ""], +["srifle_LRR_F", "", "", "optic_LRPS", [], [], ""] +]]; +_militaryLoadoutData set ["sidearms", [ +["hgun_G17_F", "", "", "", [], [], ""] +]]; +/////////////////////////////// +// Police Loadout Data // +/////////////////////////////// + +private _policeLoadoutData = _loadoutData call _fnc_copyLoadoutData; // touch and shit breaks +_policeLoadoutData set ["uniforms", ["U_B_GEN_Soldier_F", "U_B_GEN_Commander_F"]]; +_policeLoadoutData set ["vests", ["V_TacVest_blk_POLICE"]]; +_policeLoadoutData set ["helmets", ["H_Cap_police"]]; + +_policeLoadoutData set ["shotGuns", [ +["sgun_M4_F", "", "acc_flashlight_pistol", "", ["8Rnd_12Gauge_Pellets", "8Rnd_12Gauge_Slug"], [], ""] +]]; +_policeLoadoutData set ["SMGs", [ +["SMG_04_blk_F", "", "acc_flashlight", "optic_Holosight_smg_blk_F", [], [], ""], +["SMG_04_blk_F", "", "acc_flashlight", "optic_ACO_grn_smg", [], [], ""], +["SMG_04_blk_F", "", "acc_flashlight", "Aegis_optic_ROS_SMG", [], [], ""] +]]; +_policeLoadoutData set ["sidearms", ["hgun_G17_black_F"]]; + +//////////////////////////////// +// Militia Loadout Data // +//////////////////////////////// + +private _militiaLoadoutData = _loadoutData call _fnc_copyLoadoutData; // touch and shit breaks +_militiaLoadoutData set ["uniforms", ["U_B_UBACS_mtp_f", "U_B_UBACS_vest_mtp_f", "U_B_UBACS_tshirt_mtp_f"]]; +_militiaLoadoutData set ["vests", ["V_Chestrig_rgr", "V_BandollierB_rgr"]]; +_militiaLoadoutData set ["Hvests", ["V_TacVest_oli"]]; +_militiaLoadoutData set ["backpacks", ["B_TacticalPack_mcamo", "B_Kitbag_mcamo", "B_Carryall_mcamo"]]; +_militiaLoadoutData set ["helmets", ["H_MilCap_mcamo", "H_HelmetB_light_mcamo", "H_Bandanna_mcamo_hs"]]; + +_militiaLoadoutData set ["rifles", [ +["arifle_SA80_snd_F", "", "acc_flashlight", "", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], [], ""] +]]; +_militiaLoadoutData set ["carbines", [ +["arifle_SA80_C_snd_F", "", "acc_flashlight", "", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], [], ""] +]]; +_militiaLoadoutData set ["grenadeLaunchers", [ +["arifle_SA80_GL_snd_F", "", "acc_flashlight", "", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_militiaLoadoutData set ["SMGs", [ +["SMG_04_blk_F", "", "acc_flashlight", "", [], [], ""] +]]; +_militiaLoadoutData set ["machineGuns", [ +["LMG_Mk200_plain_F", "", "acc_flashlight", "", ["200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_snd"] +]]; +_militiaLoadoutData set ["marksmanRifles", [ +["arifle_SPAR_03_snd_F", "", "acc_flashlight", "optic_MRCO", [], [], "bipod_01_F_snd"], +["arifle_SPAR_03_snd_F", "", "acc_flashlight", "optic_Hamr", [], [], "bipod_01_F_snd"] +]]; +_militiaLoadoutData set ["sniperRifles", [ +["srifle_LRR_F", "", "", "optic_SOS", [], [], ""], +["srifle_LRR_F", "", "", "optic_LRPS", [], [], ""] +]]; +_militiaLoadoutData set ["sidearms", ["hgun_G17_black_F"]]; + +////////////////////////// +// Misc Loadouts // +////////////////////////// + +private _crewLoadoutData = _militaryLoadoutData call _fnc_copyLoadoutData; +_crewLoadoutData set ["uniforms", ["U_B_UBACS_vest_mtp_f"]]; +_crewLoadoutData set ["vests", ["V_CarrierRigKBT_01_MTP_F"]]; +_crewLoadoutData set ["helmets", ["H_HelmetCrew_B"]]; + +private _pilotLoadoutData = _militaryLoadoutData call _fnc_copyLoadoutData; +_pilotLoadoutData set ["uniforms", ["U_B_UBACS_vest_mtp_f"]]; +_pilotLoadoutData set ["vests", ["V_CarrierRigKBT_01_MTP_F"]]; +_pilotLoadoutData set ["helmets", ["H_CrewHelmetHeli_O", "H_PilotHelmetHeli_O", "H_PilotHelmetHeli_O_visor_up"]]; + +private _traitorLoadoutData = _militaryLoadoutData call _fnc_copyLoadoutData; +_traitorLoadoutData set ["uniforms", ["U_B_UBACS_tshirt_mtp_f"]]; +_traitorLoadoutData set ["vests", ["V_TacVest_camo"]]; + +private _officerLoadoutData = _loadoutData call _fnc_copyLoadoutData; +_officerLoadoutData set ["uniforms", ["U_B_ParadeUniform_01_US_F", "U_B_ParadeUniform_01_US_decorated_F"]]; +_officerLoadoutData set ["vests", ["Aegis_V_CarrierRigKBT_01_holster_cbr_F"]]; +_officerLoadoutData set ["helmets", ["H_ParadeDressCap_01_US_F"]]; +_officerLoadoutData set ["backpacks", []]; +_officerLoadoutData set ["SMGs", [ +["arifle_SA80_C_snd_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", [], [], ""], +["arifle_SA80_C_snd_F", "", "acc_pointer_IR", "optic_ACO_grn", [], [], ""], +["arifle_SA80_C_snd_F", "", "acc_pointer_IR", "Aegis_optic_ROS", [], [], ""] +]]; + +if ("mark" in A3A_enabledDLC) then { + (_sfLoadoutData get "marksmanRifles") append [ + ["srifle_DMR_02_sniper_F", "muzzle_snds_338_sand", "acc_pointer_IR", "optic_SOS", [], [], "bipod_01_F_snd"], + ["srifle_DMR_02_sniper_F", "muzzle_snds_338_sand", "acc_pointer_IR", "optic_AMS_snd", [], [], "bipod_01_F_snd"]]; + (_sfLoadoutData get "sniperRifles") append [ + ["srifle_DMR_02_sniper_F", "muzzle_snds_338_sand", "acc_pointer_IR", "optic_LRPS", [], [], "bipod_01_F_snd"], + ["srifle_DMR_02_sniper_F", "muzzle_snds_338_sand", "acc_pointer_IR", "optic_AMS_snd", [], [], "bipod_01_F_snd"]]; + + (_militaryLoadoutData get "marksmanRifles") append [ + ["srifle_DMR_02_sniper_F", "", "acc_pointer_IR", "optic_SOS", [], [], "bipod_01_F_snd"], + ["srifle_DMR_02_sniper_F", "", "acc_pointer_IR", "optic_AMS_snd", [], [], "bipod_01_F_snd"]]; + (_militaryLoadoutData get "sniperRifles") append [ + ["srifle_DMR_02_sniper_F", "", "acc_pointer_IR", "optic_LRPS", [], [], "bipod_01_F_snd"], + ["srifle_DMR_02_sniper_F", "", "acc_pointer_IR", "optic_AMS_snd", [], [], "bipod_01_F_snd"]]; +}; +if ("rf" in A3A_enabledDLC) then { + (_sfLoadoutData get "sidearms") append [ + ["hgun_Glock19_Tan_RF", "muzzle_snds_L", "acc_flashlight_IR_pistol_RF", "optic_MRD_tan_RF", [], [], ""], + ["hgun_Glock19_Tan_RF", "muzzle_snds_L", "acc_flashlight_IR_pistol_RF", "optic_MRD_tan_RF", [], [], ""], + ["hgun_Glock19_auto_Tan_RF", "muzzle_snds_L", "acc_flashlight_IR_pistol_RF", "optic_MRD_tan_RF", [], [], ""], + ["hgun_Glock19_auto_Tan_RF", "muzzle_snds_L", "acc_flashlight_IR_pistol_RF", "optic_MRD_tan_RF", [], [], ""], + ["hgun_Glock19_auto_Tan_RF", "muzzle_snds_L", "acc_flashlight_IR_pistol_RF", "optic_MRD_tan_RF", [], [], ""] + ]; + (_militaryLoadoutData get "sidearms") append [ + ["hgun_Glock19_Tan_RF", "", "acc_flashlight_pistol", "", [], [], ""], + ["hgun_Glock19_Tan_RF", "", "acc_flashlight_pistol", "", [], [], ""], + ["hgun_Glock19_Tan_RF", "", "acc_flashlight_pistol", "", [], [], ""], + ["hgun_Glock19_Tan_RF", "", "acc_flashlight_pistol", "optic_MRD_tan_RF", [], [], ""], + ["hgun_Glock19_auto_Tan_RF", "", "acc_flashlight_pistol", "", [], [], ""] + ]; + (_policeLoadoutData get "sidearms") append ["hgun_Glock19_RF"]; + (_pilotLoadoutData get "uniforms") append ["U_B_HeliPilotCoveralls_MTP_RF"]; + (_sfLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "muzzle_snds_acp", "", "optic_Holosight", [], [], ""] + ]; + (_militaryLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "", "", "optic_Holosight", [], [], ""], + ["SMG_01_black_RF", "", "", "optic_Aco_smg", [], [], ""] + ]; + (_militiaLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "", "acc_flashlight_smg_01", "", [], [], ""] + ]; + (_policeLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "", "acc_flashlight_smg_01", "optic_Holosight", [], [], ""], + ["SMG_01_black_RF", "", "acc_flashlight_smg_01", "optic_Aco_smg", [], [], ""] + ]; + (_sfLoadoutData get "helmets") append [ + "H_HelmetB_plain_sb_mtp_RF", + "H_HelmetHeavy_Sand_RF", + "H_HelmetHeavy_Simple_Sand_RF", + "H_HelmetHeavy_VisorUp_Sand_RF"]; + (_militaryLoadoutData get "helmets") append ["H_HelmetB_plain_sb_mtp_RF"]; +}; + + +///////////////////////////////// +// Unit Type Definitions // +///////////////////////////////// + + +private _squadLeaderTemplate = { + ["slHat"] call _fnc_setHelmet; + [["Hvests", "vests"] call _fnc_fallback] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + ["backpacks"] call _fnc_setBackpack; + + [["slRifles", "rifles"] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + ["primary", 4] call _fnc_addAdditionalMuzzleMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_squadLeader_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 2] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + ["signalsmokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["gpses"] call _fnc_addGPS; + ["binoculars"] call _fnc_addBinoculars; + ["NVGs"] call _fnc_addNVGs; +}; + +private _riflemanTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_rifleman_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 2] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _medicTemplate = { + ["helmets"] call _fnc_setHelmet; + [["Hvests", "vests"] call _fnc_fallback] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["carbines", "SMGs"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_medic"] call _fnc_addItemSet; + ["items_medic_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _grenadierTemplate = { + ["helmets"] call _fnc_setHelmet; + ["Hvests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + ["grenadeLaunchers"] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + ["primary", 10] call _fnc_addAdditionalMuzzleMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_grenadier_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 4] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _explosivesExpertTemplate = { + ["helmets"] call _fnc_setHelmet; + ["Hvests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [[selectRandom ["carbines", "shotGuns", "rifles"], selectRandom ["carbines", "rifles"]] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_explosivesExpert_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + + ["lightExplosives", 2] call _fnc_addItem; + if (random 1 > 0.5) then {["heavyExplosives", 1] call _fnc_addItem;}; + if (random 1 > 0.5) then {["atMines", 1] call _fnc_addItem;}; + if (random 1 > 0.5) then {["apMines", 1] call _fnc_addItem;}; + + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _engineerTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [[selectRandom ["carbines", "shotGuns", "SMGs"], selectRandom ["carbines", "SMGs"]] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_engineer_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + + if (random 1 > 0.5) then {["lightExplosives", 1] call _fnc_addItem;}; + + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _latTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + [["lightATLaunchers", "ATLaunchers"] call _fnc_fallback] call _fnc_setLauncher; + //TODO - Add a check if it's disposable. + ["launcher", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_lat_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _atTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + [selectRandom ["ATLaunchers", "missileATLaunchers"]] call _fnc_setLauncher; + //TODO - Add a check if it's disposable. + ["launcher", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_at_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _aaTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["AALaunchers"] call _fnc_setLauncher; + //TODO - Add a check if it's disposable. + ["launcher", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_aa_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _machineGunnerTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + ["machineGuns"] call _fnc_setPrimary; + ["primary", 4] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_machineGunner_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _marksmanTemplate = { + ["sniHats"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + + ["marksmanRifles"] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_marksman_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["rangefinders"] call _fnc_addBinoculars; + ["NVGs"] call _fnc_addNVGs; +}; + +private _sniperTemplate = { + ["sniHats"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + + ["sniperRifles"] call _fnc_setPrimary; + ["primary", 7] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_sniper_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["rangefinders"] call _fnc_addBinoculars; + ["NVGs"] call _fnc_addNVGs; +}; + +private _policeTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + + [[selectRandom ["shotGuns", "SMGs"], "SMGs"] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_police_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; +}; + +private _crewTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + [selectRandom ["carbines", "SMGs"]] call _fnc_setPrimary; + ["primary", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_basic"] call _fnc_addItemSet; + ["items_crew_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["gpses"] call _fnc_addGPS; + ["NVGs"] call _fnc_addNVGs; +}; + +private _unarmedTemplate = { + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + ["items_medical_basic"] call _fnc_addItemSet; + ["items_unarmed_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; +}; + +private _traitorTemplate = { + call _unarmedTemplate; + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; +}; + +//////////////////////////////////////////////////////////////////////////////////////// +// You shouldn't touch below this line unless you really really know what you're doing. +// Things below here can and will break the gamemode if improperly changed. +//////////////////////////////////////////////////////////////////////////////////////// + +///////////////////////////// +// Special Forces Units // +///////////////////////////// +private _prefix = "SF"; +private _unitTypes = [ + ["SquadLeader", _squadLeaderTemplate], + ["Rifleman", _riflemanTemplate], + ["Medic", _medicTemplate, [["medic", true]]], + ["Engineer", _engineerTemplate, [["engineer", true]]], + ["ExplosivesExpert", _explosivesExpertTemplate, [["explosiveSpecialist", true]]], + ["Grenadier", _grenadierTemplate], + ["LAT", _latTemplate], + ["AT", _atTemplate], + ["AA", _aaTemplate], + ["MachineGunner", _machineGunnerTemplate], + ["Marksman", _marksmanTemplate], + ["Sniper", _sniperTemplate] +]; + +[_prefix, _unitTypes, _sfLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +/*{ + params ["_name", "_loadoutTemplate"]; + private _loadouts = [_sfLoadoutData, _loadoutTemplate] call _fnc_buildLoadouts; + private _finalName = _prefix + _name; + [_finalName, _loadouts] call _fnc_saveToTemplate; +} forEach _unitTypes; +*/ + +/////////////////////// +// Military Units // +/////////////////////// +private _prefix = "military"; +private _unitTypes = [ + ["SquadLeader", _squadLeaderTemplate], + ["Rifleman", _riflemanTemplate], + ["Medic", _medicTemplate, [["medic", true]]], + ["Engineer", _engineerTemplate, [["engineer", true]]], + ["ExplosivesExpert", _explosivesExpertTemplate, [["explosiveSpecialist", true]]], + ["Grenadier", _grenadierTemplate], + ["LAT", _latTemplate], + ["AT", _atTemplate], + ["AA", _aaTemplate], + ["MachineGunner", _machineGunnerTemplate], + ["Marksman", _marksmanTemplate], + ["Sniper", _sniperTemplate] +]; + +[_prefix, _unitTypes, _militaryLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +//////////////////////// +// Police Units // +//////////////////////// +private _prefix = "police"; +private _unitTypes = [ + ["SquadLeader", _policeTemplate], + ["Standard", _policeTemplate] +]; + +[_prefix, _unitTypes, _policeLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +//////////////////////// +// Militia Units // +//////////////////////// +private _prefix = "militia"; +private _unitTypes = [ + ["SquadLeader", _squadLeaderTemplate], + ["Rifleman", _riflemanTemplate], + ["Medic", _medicTemplate, [["medic", true]]], + ["Engineer", _engineerTemplate, [["engineer", true]]], + ["ExplosivesExpert", _explosivesExpertTemplate, [["explosiveSpecialist", true]]], + ["Grenadier", _grenadierTemplate], + ["LAT", _latTemplate], + ["AT", _atTemplate], + ["AA", _aaTemplate], + ["MachineGunner", _machineGunnerTemplate], + ["Marksman", _marksmanTemplate], + ["Sniper", _sniperTemplate] +]; + +[_prefix, _unitTypes, _militiaLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +////////////////////// +// Misc Units // +////////////////////// + +//The following lines are determining the loadout of vehicle crew +["other", [["Crew", _crewTemplate]], _crewLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout of the pilots +["other", [["Pilot", _crewTemplate]], _pilotLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout for the unit used in the "kill the official" mission +["other", [["Official", _policeTemplate]], _officerLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout for the AI used in the "kill the traitor" mission +["other", [["Traitor", _traitorTemplate]], _traitorLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout for the AI used in the "Invader Punishment" mission +["other", [["Unarmed", _UnarmedTemplate]], _militaryLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; diff --git a/A3A/addons/core/Templates/Templates/Aegis/Aegis_AI_BAF_Temperate.sqf b/A3A/addons/core/Templates/Templates/Aegis/Aegis_AI_BAF_Temperate.sqf new file mode 100644 index 0000000000..dd8c12f630 --- /dev/null +++ b/A3A/addons/core/Templates/Templates/Aegis/Aegis_AI_BAF_Temperate.sqf @@ -0,0 +1,980 @@ +////////////////////////// +// Side Information // +////////////////////////// + +["name", "BAF"] call _fnc_saveToTemplate; +["spawnMarkerName", "BAF support corridor"] call _fnc_saveToTemplate; + +["flag", "Flag_UK_F"] call _fnc_saveToTemplate; +["flagTexture", "\A3\Data_F\Flags\Flag_uk_CO.paa"] call _fnc_saveToTemplate; +["flagMarkerType", "flag_UK"] call _fnc_saveToTemplate; + +////////////////////////// +// Vehicles // +////////////////////////// + +["ammobox", "B_supplyCrate_F"] call _fnc_saveToTemplate; //Don't touch or you die a sad and lonely death! +["surrenderCrate", "Box_IND_Wps_F"] call _fnc_saveToTemplate; //Changeing this from default will require you to define logistics attachement offset for the box type +["equipmentBox", "Box_NATO_Equip_F"] call _fnc_saveToTemplate; //Changeing this from default will require you to define logistics attachement offset for the box type + +["vehiclesBasic", ["B_A_Quadbike_01_wdl_F"]] call _fnc_saveToTemplate; +["vehiclesLightUnarmed", ["B_A_MRAP_03_wdl_F", "B_A_MRAP_03_wdl_F", "B_A_LSV_01_light_wdl_F"]] call _fnc_saveToTemplate; +["vehiclesLightArmed",["B_A_MRAP_03_hmg_wdl_F", "B_A_MRAP_03_hmg_wdl_F", "B_A_MRAP_03_gmg_wdl_F", "B_A_MRAP_03_gmg_wdl_F", "B_A_LSV_01_AT_wdl_F", "B_A_LSV_01_armed_wdl_F"]] call _fnc_saveToTemplate; +["vehiclesTrucks", ["B_A_Truck_01_covered_wdl_F", "B_A_Truck_01_transport_wdl_F"]] call _fnc_saveToTemplate; +["vehiclesCargoTrucks", ["B_A_Truck_01_cargo_wdl_F", "B_A_Truck_01_flatbed_wdl_F"]] call _fnc_saveToTemplate; +["vehiclesAmmoTrucks", ["B_A_Truck_01_ammo_wdl_F"]] call _fnc_saveToTemplate; +["vehiclesRepairTrucks", ["B_A_Truck_01_Repair_wdl_F"]] call _fnc_saveToTemplate; +["vehiclesFuelTrucks", ["B_A_Truck_01_fuel_wdl_F"]] call _fnc_saveToTemplate; +["vehiclesMedical", ["B_A_Truck_01_medical_wdl_F"]] call _fnc_saveToTemplate; +["vehiclesLightAPCs", []] call _fnc_saveToTemplate; +["vehiclesAPCs", ["B_A_APC_tracked_03_cannon_v2_wdl_F"]] call _fnc_saveToTemplate; +["vehiclesIFVs", ["a3a_B_A_APC_tracked_03_cannon_v2_wdl_F"]] call _fnc_saveToTemplate; +["vehiclesTanks", ["B_W_MBT_01_TUSK_F", "B_W_MBT_01_cannon_F"]] call _fnc_saveToTemplate; +["vehiclesAA", ["B_W_APC_Tracked_01_AA_F"]] call _fnc_saveToTemplate; + +["vehiclesTransportBoats", ["B_Boat_Transport_01_F"]] call _fnc_saveToTemplate; +["vehiclesGunBoats", ["B_Boat_Armed_01_minigun_F"]] call _fnc_saveToTemplate; +["vehiclesAmphibious", []] call _fnc_saveToTemplate; + +["vehiclesPlanesCAS", ["B_A_Plane_Fighter_05_F"]] call _fnc_saveToTemplate; +["vehiclesPlanesAA", ["B_A_Plane_Fighter_05_F"]] call _fnc_saveToTemplate; +["vehiclesPlanesTransport", ["B_A_Plane_Transport_01_infantry_F"]] call _fnc_saveToTemplate; + +private _vehiclesHelisLight = ["B_A_Heli_light_03_unarmed_F"]; +private _HelisTransport = ["Aegis_B_A_Heli_Transport_02_F"]; +private _vehiclesHelisLightAttack = ["B_A_Heli_light_03_dynamicLoadout_F"]; +["vehiclesHelisAttack", ["Aegis_B_A_Heli_Attack_03_F"]] call _fnc_saveToTemplate; + +["vehiclesArtillery", ["B_T_MBT_01_mlrs_F","B_T_MBT_01_arty_F"]] call _fnc_saveToTemplate; +["magazines", createHashMapFromArray [ + ["B_T_MBT_01_mlrs_F", ["12Rnd_230mm_rockets"]], + ["B_T_MBT_01_arty_F", ["32Rnd_155mm_Mo_shells"]] +]] call _fnc_saveToTemplate; + +["uavsAttack", ["B_UAV_02_dynamicLoadout_F"]] call _fnc_saveToTemplate; +["uavsPortable", ["B_UAV_01_F"]] call _fnc_saveToTemplate; + +//Config special vehicles - militia vehicles are mostly used in the early game, police cars are being used by troops around cities. +private _vehiclesMilitiaLightArmed = ["B_A_LSV_01_armed_wdl_F"]; +["vehiclesMilitiaTrucks", ["B_A_Truck_01_covered_wdl_F", "B_A_Truck_01_transport_wdl_F"]] call _fnc_saveToTemplate; +private _vehiclesMilitiaCars = ["B_A_LSV_01_light_wdl_F"]; + +private _vehiclesPolice = ["B_GEN_Offroad_01_gen_F"]; + +["staticMGs", ["B_G_HMG_02_high_F"]] call _fnc_saveToTemplate; +["staticAT", ["B_static_AT_F"]] call _fnc_saveToTemplate; +["staticAA", ["B_static_AA_F"]] call _fnc_saveToTemplate; +["staticMortars", ["B_Mortar_01_F"]] call _fnc_saveToTemplate; + +["mortarMagazineHE", "8Rnd_82mm_Mo_shells"] call _fnc_saveToTemplate; +["mortarMagazineSmoke", "8Rnd_82mm_Mo_Smoke_white"] call _fnc_saveToTemplate; +["mortarMagazineFlare", "8Rnd_82mm_Mo_Flare_white"] call _fnc_saveToTemplate; + +//Minefield definition +["minefieldAT", ["ATMine"]] call _fnc_saveToTemplate; +["minefieldAPERS", ["APERSMine"]] call _fnc_saveToTemplate; + +if ("rf" in A3A_enabledDLC) then { + _vehiclesPolice append ["a3a_police_Pickup_rf", "B_GEN_Pickup_covered_rf", "a3a_police_Pickup_comms_rf"]; + _HelisTransport append ["B_Heli_EC_04_military_RF"]; + _vehiclesHelisLight append ["B_Heli_light_03_unarmed_RF"]; + _vehiclesHelisLightAttack append ["a3a_Heli_light_03_dynamicLoadout_rf","B_Heli_EC_03_RF"]; + _vehiclesMilitiaCars append ["B_Pickup_rf"]; + _vehiclesMilitiaLightArmed append ["B_Pickup_mmg_rf"]; +}; + +["vehiclesHelisLight", _vehiclesHelisLight] call _fnc_saveToTemplate; +["vehiclesHelisLightAttack", _vehiclesHelisLightAttack] call _fnc_saveToTemplate; +["vehiclesHelisTransport", _HelisTransport] call _fnc_saveToTemplate; + +["vehiclesMilitiaCars", _vehiclesMilitiaCars] call _fnc_saveToTemplate; +["vehiclesMilitiaLightArmed", _vehiclesMilitiaLightArmed] call _fnc_saveToTemplate; +["vehiclesPolice", _vehiclesPolice] call _fnc_saveToTemplate; + + +#include "Aegis_Vehicle_Attributes.sqf" + +///////////////////// +/// Identities /// +///////////////////// + +["voices", ["Male01ENGB", "Male02ENGB", "Male03ENGB", "Male04ENGB", "Male05ENGB"]] call _fnc_saveToTemplate; +["faces", ["AfricanHead_01","AfricanHead_02","AfricanHead_03","Barklem", +"GreekHead_A3_05","GreekHead_A3_07","Sturrock","WhiteHead_01","WhiteHead_02", +"WhiteHead_03","WhiteHead_04","WhiteHead_05","WhiteHead_06","WhiteHead_07", +"WhiteHead_08","WhiteHead_09","WhiteHead_11","WhiteHead_12","WhiteHead_14", +"WhiteHead_15","WhiteHead_16","WhiteHead_18","WhiteHead_19","WhiteHead_20", +"WhiteHead_21"]] call _fnc_saveToTemplate; +"NATOMen" call _fnc_saveNames; + +////////////////////////// +// Loadouts // +////////////////////////// + +private _loadoutData = call _fnc_createLoadoutData; +_loadoutData set ["slRifles", []]; +_loadoutData set ["rifles", []]; +_loadoutData set ["carbines", []]; +_loadoutData set ["grenadeLaunchers", []]; +_loadoutData set ["shotGuns", []]; +_loadoutData set ["SMGs", []]; +_loadoutData set ["machineGuns", []]; +_loadoutData set ["marksmanRifles", []]; +_loadoutData set ["sniperRifles", []]; +_loadoutData set ["lightATLaunchers", ["launch_NLAW_F"]]; +_loadoutData set ["ATLaunchers", [ +["launch_MRAWS_olive_F", "", "acc_pointer_IR", "", ["MRAWS_HE_F", "MRAWS_HEAT55_F"], [], ""], +["launch_MRAWS_olive_F", "", "acc_pointer_IR", "", ["MRAWS_HEAT_F", "MRAWS_HEAT55_F"], [], ""], +["launch_MRAWS_olive_F", "", "acc_pointer_IR", "", ["MRAWS_HEAT_F", "MRAWS_HE_F"], [], ""], +["launch_MRAWS_olive_rail_F", "", "acc_pointer_IR", "", ["MRAWS_HE_F", "MRAWS_HEAT55_F"], [], ""], +["launch_MRAWS_olive_rail_F", "", "acc_pointer_IR", "", ["MRAWS_HEAT_F", "MRAWS_HEAT55_F"], [], ""], +["launch_MRAWS_olive_rail_F", "", "acc_pointer_IR", "", ["MRAWS_HEAT_F", "MRAWS_HE_F"], [], ""], +["launch_NLAW_F", "", "", "", [], [], ""], +["launch_NLAW_F", "", "", "", [], [], ""] +]]; +_loadoutData set ["missileATLaunchers", [ +["launch_I_Titan_short_F", "", "acc_pointer_IR", "", ["Titan_AT"], [], ""] +]]; +_loadoutData set ["AALaunchers", [ +["launch_B_Titan_olive_F", "", "acc_pointer_IR", "", ["Titan_AA"], [], ""] +]]; +_loadoutData set ["sidearms", []]; + +_loadoutData set ["ATMines", ["ATMine_Range_Mag"]]; +_loadoutData set ["APMines", ["APERSMine_Range_Mag"]]; +_loadoutData set ["lightExplosives", ["DemoCharge_Remote_Mag"]]; +_loadoutData set ["heavyExplosives", ["SatchelCharge_Remote_Mag"]]; + +_loadoutData set ["antiInfantryGrenades", ["HandGrenade", "MiniGrenade"]]; +_loadoutData set ["antiTankGrenades", []]; +_loadoutData set ["smokeGrenades", ["SmokeShell"]]; +_loadoutData set ["signalsmokeGrenades", ["SmokeShellYellow", "SmokeShellRed", "SmokeShellPurple", "SmokeShellOrange", "SmokeShellGreen", "SmokeShellBlue"]]; + + +//Basic equipment. Shouldn't need touching most of the time. +//Mods might override this, or certain mods might want items removed (No GPSs in WW2, for example) +_loadoutData set ["maps", ["ItemMap"]]; +_loadoutData set ["watches", ["ItemWatch"]]; +_loadoutData set ["compasses", ["ItemCompass"]]; +_loadoutData set ["radios", ["ItemRadio"]]; +_loadoutData set ["gpses", ["ItemGPS"]]; +_loadoutData set ["NVGs", ["NVGoggles_INDEP"]]; +_loadoutData set ["binoculars", ["Binocular"]]; +_loadoutData set ["rangefinders", ["Rangefinder"]]; + +//Basically all the clothing which the units use. +//don't fill these lines - this is only to set the variables. +_loadoutData set ["uniforms", []]; +_loadoutData set ["vests", []]; +_loadoutData set ["Hvests", []]; +_loadoutData set ["backpacks", []]; +_loadoutData set ["longRangeRadios", []]; +_loadoutData set ["helmets", []]; +_loadoutData set ["slHat", ["H_Beret_red"]]; +_loadoutData set ["sniHats", ["H_Booniehat_wdl_hs"]]; + +//Item *set* definitions. These are added in their entirety to unit loadouts. No randomisation is applied. +_loadoutData set ["items_medical_basic", ["BASIC"] call A3A_fnc_itemset_medicalSupplies]; //this line defines the basic medical loadout for vanilla +_loadoutData set ["items_medical_standard", ["STANDARD"] call A3A_fnc_itemset_medicalSupplies]; //this line defines the standard medical loadout for vanilla +_loadoutData set ["items_medical_medic", ["MEDIC"] call A3A_fnc_itemset_medicalSupplies]; //this line defines the medic medical loadout for vanilla +_loadoutData set ["items_miscEssentials", [] call A3A_fnc_itemset_miscEssentials]; + +//Unit type specific item sets. Add or remove these, depending on the unit types in use. +private _slItems = ["Laserbatteries", "Laserbatteries", "Laserbatteries"]; +private _eeItems = ["ToolKit", "MineDetector"]; +private _mmItems = []; + +if (A3A_hasACE) then { + _slItems append ["ACE_microDAGR", "ACE_DAGR"]; + _eeItems append ["ACE_Clacker", "ACE_DefusalKit"]; + _mmItems append ["ACE_RangeCard", "ACE_ATragMX", "ACE_Kestrel4500"]; +}; + +_loadoutData set ["items_squadLeader_extras", _slItems]; +_loadoutData set ["items_rifleman_extras", []]; +_loadoutData set ["items_medic_extras", []]; +_loadoutData set ["items_grenadier_extras", []]; +_loadoutData set ["items_explosivesExpert_extras", _eeItems]; +_loadoutData set ["items_engineer_extras", _eeItems]; +_loadoutData set ["items_lat_extras", []]; +_loadoutData set ["items_at_extras", []]; +_loadoutData set ["items_aa_extras", []]; +_loadoutData set ["items_machineGunner_extras", []]; +_loadoutData set ["items_marksman_extras", _mmItems]; +_loadoutData set ["items_sniper_extras", _mmItems]; +_loadoutData set ["items_police_extras", []]; +_loadoutData set ["items_crew_extras", []]; +_loadoutData set ["items_unarmed_extras", []]; + +//TODO - ACE overrides for misc essentials, medical and engineer gear + +/////////////////////////////////////// +// Special Forces Loadout Data // +/////////////////////////////////////// + +private _sfLoadoutData = _loadoutData call _fnc_copyLoadoutData; // touch and shit breaks +_sfLoadoutData set ["uniforms", ["U_B_UBACS_wdl_f", "U_B_UBACS_vest_wdl_f", "U_B_UBACS_tshirt_wdl_f"]]; +_sfLoadoutData set ["vests", ["Aegis_V_CarrierRigKBT_01_recon_olive_F","V_TacVest_grn"]]; +_sfLoadoutData set ["Hvests", ["Aegis_V_CarrierRigKBT_01_cqb_olive_F"]]; +_sfLoadoutData set ["backpacks", ["B_Kitbag_rgr", "B_Kitbag_wdl_F", "B_Carryall_green_F", "B_Carryall_wdl_F", "B_TacticalPack_rgr", "B_AssaultPack_rgr", "B_AssaultPackSpec_rgr"]]; +_sfLoadoutData set ["helmets", ["Aegis_H_Helmet_FASTMT_Cover_UK_wdl_F", "H_Booniehat_wdl_hs", "H_Watchcap_camo_hs", "H_Cap_khaki_specops_UK_hs"]]; +_sfLoadoutData set ["binoculars", ["Laserdesignator_01_khk_F"]]; + +_sfLoadoutData set ["slRifles", [ +["arifle_MX_Black_F", "muzzle_snds_H", "acc_pointer_IR", "optic_Hamr", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], [], ""], +["arifle_MX_Black_F", "muzzle_snds_H", "acc_pointer_IR", "optic_MRCO", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], [], ""], +["arifle_MX_Black_F", "muzzle_snds_H", "acc_pointer_IR", "Aegis_optic_ACOG", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], [], ""], +["arifle_MX_GL_Black_F", "muzzle_snds_H", "acc_pointer_IR", "optic_Hamr", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_MX_GL_Black_F", "muzzle_snds_H", "acc_pointer_IR", "optic_MRCO", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_MX_GL_Black_F", "muzzle_snds_H", "acc_pointer_IR", "Aegis_optic_ACOG", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_sfLoadoutData set ["rifles", [ +["arifle_MX_Black_F", "muzzle_snds_H", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], [], ""], +["arifle_MX_Black_F", "muzzle_snds_H", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], [], ""] +]]; +_sfLoadoutData set ["carbines", [ +["arifle_MXC_Black_F", "muzzle_snds_H", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], [], ""], +["arifle_MXC_Black_F", "muzzle_snds_H", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], [], ""] +]]; +_sfLoadoutData set ["grenadeLaunchers", [ +["arifle_MX_GL_Black_F", "muzzle_snds_H", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_MX_GL_Black_F", "muzzle_snds_H", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_sfLoadoutData set ["SMGs", [ +["SMG_04_blk_F", "muzzle_snds_460", "", "optic_Holosight_smg_blk_F", [], [], ""], +["SMG_04_blk_F", "muzzle_snds_460", "", "Aegis_optic_ROS_SMG", [], [], ""] +]]; +_sfLoadoutData set ["machineGuns", [ +["arifle_MX_SW_Black_F", "muzzle_snds_H", "acc_pointer_IR", "optic_Holosight_blk_F", ["100Rnd_65x39_caseless_black_mag", "100Rnd_65x39_caseless_black_mag", "100Rnd_65x39_caseless_black_mag_tracer"], [], "bipod_01_F_blk"], +["arifle_MX_SW_Black_F", "muzzle_snds_H", "acc_pointer_IR", "Aegis_optic_ROS", ["100Rnd_65x39_caseless_black_mag", "100Rnd_65x39_caseless_black_mag", "100Rnd_65x39_caseless_black_mag_tracer"], [], "bipod_01_F_blk"], +["arifle_MX_SW_Black_F", "muzzle_snds_H", "acc_pointer_IR", "optic_Hamr", ["100Rnd_65x39_caseless_black_mag", "100Rnd_65x39_caseless_black_mag", "100Rnd_65x39_caseless_black_mag_tracer"], [], "bipod_01_F_blk"], +["arifle_MX_SW_Black_F", "muzzle_snds_H", "acc_pointer_IR", "optic_MRCO", ["100Rnd_65x39_caseless_black_mag", "100Rnd_65x39_caseless_black_mag", "100Rnd_65x39_caseless_black_mag_tracer"], [], "bipod_01_F_blk"], +["arifle_MX_SW_Black_F", "muzzle_snds_H", "acc_pointer_IR", "Aegis_optic_ACOG", ["100Rnd_65x39_caseless_black_mag", "100Rnd_65x39_caseless_black_mag", "100Rnd_65x39_caseless_black_mag_tracer"], [], "bipod_01_F_blk"], +["LMG_Mk200_black_F", "muzzle_snds_H", "acc_pointer_IR", "optic_Holosight_blk_F", ["200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_snd"], +["LMG_Mk200_black_F", "muzzle_snds_H", "acc_pointer_IR", "Aegis_optic_ROS", ["200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_snd"], +["LMG_Mk200_black_F", "muzzle_snds_H", "acc_pointer_IR", "optic_Hamr", ["200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_snd"], +["LMG_Mk200_black_F", "muzzle_snds_H", "acc_pointer_IR", "optic_MRCO", ["200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_snd"], +["LMG_Mk200_black_F", "muzzle_snds_H", "acc_pointer_IR", "Aegis_optic_ACOG", ["200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_snd"] +]]; +_sfLoadoutData set ["marksmanRifles", [ +["arifle_MXM_Black_F", "muzzle_snds_H", "acc_pointer_IR", "optic_SOS", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], [], "bipod_01_F_blk"], +["arifle_MXM_Black_F", "muzzle_snds_H", "acc_pointer_IR", "optic_Hamr", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], [], "bipod_01_F_blk"], +["arifle_MXM_Black_F", "muzzle_snds_H", "acc_pointer_IR", "optic_DMS", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], [], "bipod_01_F_blk"], +["Aegis_arifle_SR25_MR_blk_F", "aegis_muzzle_snds_sr25_blk", "acc_pointer_IR", "optic_SOS", [], [], "bipod_01_F_blk"], +["Aegis_arifle_SR25_MR_blk_F", "aegis_muzzle_snds_sr25_blk", "acc_pointer_IR", "optic_Hamr", [], [], "bipod_01_F_blk"], +["Aegis_arifle_SR25_MR_blk_F", "aegis_muzzle_snds_sr25_blk", "acc_pointer_IR", "optic_DMS", [], [], "bipod_01_F_blk"] +]]; +_sfLoadoutData set ["sniperRifles", [ +["srifle_LRR_F", "", "", "optic_SOS", [], [], ""], +["srifle_LRR_F", "", "", "optic_LRPS", [], [], ""] +]]; +_sfLoadoutData set ["sidearms", [ +["hgun_G17_black_F", "muzzle_snds_L", "", "", [], [], ""], +["hgun_Mk26_F", "", "", "", [], [], ""] +]]; +///////////////////////////////// +// Military Loadout Data // +///////////////////////////////// + +private _militaryLoadoutData = _loadoutData call _fnc_copyLoadoutData; // touch and shit breaks +_militaryLoadoutData set ["uniforms", ["U_B_UBACS_wdl_f", "U_B_UBACS_vest_wdl_f", "U_B_UBACS_tshirt_wdl_f"]]; +_militaryLoadoutData set ["vests", ["V_CarrierRigKBT_01_light_Olive_F", "Aegis_V_CarrierRigKBT_01_cqb_olive_F"]]; +_militaryLoadoutData set ["Hvests", ["V_CarrierRigKBT_01_heavy_Olive_F", "Aegis_V_CarrierRigKBT_01_tac_olive_F"]]; +_militaryLoadoutData set ["backpacks", ["B_Kitbag_rgr", "B_Kitbag_wdl_F", "B_Carryall_green_F", "B_Carryall_wdl_F", "B_TacticalPack_rgr"]]; +_militaryLoadoutData set ["helmets", ["H_HelmetB_plain_wdl", "H_HelmetB_camo_wdl", "H_HelmetSpecB_wdl"]]; +_militaryLoadoutData set ["binoculars", ["Laserdesignator_01_khk_F"]]; + +_militaryLoadoutData set ["slRifles", [ +["arifle_SA80_blk_F", "", "acc_pointer_IR", "optic_Hamr", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], [], ""], +["arifle_SA80_blk_F", "", "acc_pointer_IR", "optic_MRCO", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], [], ""], +["arifle_SA80_blk_F", "", "acc_pointer_IR", "Aegis_optic_ACOG", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], [], ""], +["arifle_SA80_GL_blk_F", "", "acc_pointer_IR", "optic_Hamr", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_SA80_GL_blk_F", "", "acc_pointer_IR", "optic_MRCO", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_SA80_GL_blk_F", "", "acc_pointer_IR", "Aegis_optic_ACOG", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_militaryLoadoutData set ["rifles", [ +["arifle_SA80_blk_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], [], ""], +["arifle_SA80_blk_F", "", "acc_pointer_IR", "optic_ACO_grn", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], [], ""], +["arifle_SA80_blk_F", "", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], [], ""] +]]; +_militaryLoadoutData set ["carbines", [ +["arifle_SA80_C_blk_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], [], ""], +["arifle_SA80_C_blk_F", "", "acc_pointer_IR", "optic_ACO_grn", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], [], ""], +["arifle_SA80_C_blk_F", "", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], [], ""] +]]; +_militaryLoadoutData set ["grenadeLaunchers", [ +["arifle_SA80_GL_blk_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_SA80_GL_blk_F", "", "acc_pointer_IR", "optic_ACO_grn", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_SA80_GL_blk_F", "", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_militaryLoadoutData set ["shotGuns", [ +["sgun_M4_F", "", "", "optic_Aco_smg", ["8Rnd_12Gauge_Pellets", "8Rnd_12Gauge_Slug"], [], ""], +["sgun_M4_F", "", "", "Aegis_optic_ROS_SMG", ["8Rnd_12Gauge_Pellets", "8Rnd_12Gauge_Slug"], [], ""] +]]; +_militaryLoadoutData set ["SMGs", [ +["SMG_04_blk_F", "", "", "optic_Holosight_smg_blk_F", [], [], ""], +["SMG_04_blk_F", "", "", "optic_Aco_smg", [], [], ""], +["SMG_04_blk_F", "", "", "Aegis_optic_ROS_SMG", [], [], ""] +]]; +_militaryLoadoutData set ["machineGuns", [ +["LMG_Mk200_black_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", ["200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_blk"], +["LMG_Mk200_black_F", "", "acc_pointer_IR", "optic_ACO_grn", ["200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_blk"], +["LMG_Mk200_black_F", "", "acc_pointer_IR", "Aegis_optic_ROS", ["200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_blk"] +]]; +_militaryLoadoutData set ["marksmanRifles", [ +["arifle_SPAR_03_blk_F", "", "acc_pointer_IR", "optic_SOS", [], [], "bipod_01_F_blk"], +["arifle_SPAR_03_blk_F", "", "acc_pointer_IR", "optic_DMS", [], [], "bipod_01_F_blk"], +["arifle_SPAR_03_blk_F", "", "acc_pointer_IR", "optic_Hamr", [], [], "bipod_01_F_blk"], +["Aegis_arifle_SR25_blk_F", "", "acc_pointer_IR", "optic_SOS", [], [], "bipod_01_F_blk"], +["Aegis_arifle_SR25_blk_F", "", "acc_pointer_IR", "optic_DMS", [], [], "bipod_01_F_blk"], +["Aegis_arifle_SR25_blk_F", "", "acc_pointer_IR", "optic_Hamr", [], [], "bipod_01_F_blk"] +]]; +_militaryLoadoutData set ["sniperRifles", [ +["srifle_LRR_F", "", "", "optic_SOS", [], [], ""], +["srifle_LRR_F", "", "", "optic_LRPS", [], [], ""] +]]; +_militaryLoadoutData set ["sidearms", [ +["hgun_G17_black_F", "", "", "", [], [], ""] +]]; +/////////////////////////////// +// Police Loadout Data // +/////////////////////////////// + +private _policeLoadoutData = _loadoutData call _fnc_copyLoadoutData; // touch and shit breaks +_policeLoadoutData set ["uniforms", ["U_B_GEN_Soldier_F", "U_B_GEN_Commander_F"]]; +_policeLoadoutData set ["vests", ["V_TacVest_blk_POLICE"]]; +_policeLoadoutData set ["helmets", ["H_Cap_police"]]; + +_policeLoadoutData set ["shotGuns", [ +["sgun_M4_F", "", "acc_flashlight_pistol", "", ["8Rnd_12Gauge_Pellets", "8Rnd_12Gauge_Slug"], [], ""] +]]; +_policeLoadoutData set ["SMGs", [ +["SMG_04_blk_F", "", "acc_flashlight", "optic_Holosight_smg_blk_F", [], [], ""], +["SMG_04_blk_F", "", "acc_flashlight", "optic_Aco_smg", [], [], ""], +["SMG_04_blk_F", "", "acc_flashlight", "Aegis_optic_ROS_SMG", [], [], ""] +]]; +_policeLoadoutData set ["sidearms", ["hgun_G17_black_F"]]; + +//////////////////////////////// +// Militia Loadout Data // +//////////////////////////////// + +private _militiaLoadoutData = _loadoutData call _fnc_copyLoadoutData; // touch and shit breaks +_militiaLoadoutData set ["uniforms", ["U_B_UBACS_wdl_f", "U_B_UBACS_vest_wdl_f", "U_B_UBACS_tshirt_wdl_f"]]; +_militiaLoadoutData set ["vests", ["V_Chestrig_rgr", "V_BandollierB_rgr"]]; +_militiaLoadoutData set ["Hvests", ["V_TacVest_grn"]]; +_militiaLoadoutData set ["backpacks", ["B_TacticalPack_rgr", "B_Kitbag_wdl_F", "B_Carryall_wdl_F"]]; +_militiaLoadoutData set ["helmets", ["H_MilCap_wdl", "H_HelmetB_light_wdl", "H_Bandanna_khk_hs"]]; + +_militiaLoadoutData set ["rifles", [ +["arifle_SA80_blk_F", "", "acc_flashlight", "", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], [], ""] +]]; +_militiaLoadoutData set ["carbines", [ +["arifle_SA80_C_blk_F", "", "acc_flashlight", "", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], [], ""] +]]; +_militiaLoadoutData set ["grenadeLaunchers", [ +["arifle_SA80_GL_blk_F", "", "acc_flashlight", "", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_militiaLoadoutData set ["SMGs", [ +["SMG_04_blk_F", "", "acc_flashlight", "", [], [], ""] +]]; +_militiaLoadoutData set ["machineGuns", [ +["LMG_Mk200_black_F", "", "acc_flashlight", "", ["200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_blk"] +]]; +_militiaLoadoutData set ["marksmanRifles", [ +["arifle_SPAR_03_blk_F", "", "acc_pointer_IR", "optic_MRCO", [], [], "bipod_01_F_blk"], +["arifle_SPAR_03_blk_F", "", "acc_pointer_IR", "optic_Hamr", [], [], "bipod_01_F_blk"] +]]; +_militiaLoadoutData set ["sniperRifles", [ +["srifle_LRR_F", "", "", "optic_SOS", [], [], ""], +["srifle_LRR_F", "", "", "optic_LRPS", [], [], ""] +]]; +_militiaLoadoutData set ["sidearms", ["hgun_G17_black_F"]]; + +////////////////////////// +// Misc Loadouts // +////////////////////////// + +private _crewLoadoutData = _militaryLoadoutData call _fnc_copyLoadoutData; +_crewLoadoutData set ["uniforms", ["U_B_UBACS_vest_wdl_f"]]; +_crewLoadoutData set ["vests", ["V_CarrierRigKBT_01_Olive_F"]]; +_crewLoadoutData set ["helmets", ["H_HelmetCrew_B"]]; + +private _pilotLoadoutData = _militaryLoadoutData call _fnc_copyLoadoutData; +_pilotLoadoutData set ["uniforms", ["U_B_UBACS_vest_wdl_f"]]; +_pilotLoadoutData set ["vests", ["V_CarrierRigKBT_01_Olive_F"]]; +_pilotLoadoutData set ["helmets", ["H_CrewHelmetHeli_O", "H_PilotHelmetHeli_O", "H_PilotHelmetHeli_O_visor_up"]]; + +private _traitorLoadoutData = _militaryLoadoutData call _fnc_copyLoadoutData; +_traitorLoadoutData set ["uniforms", ["U_B_UBACS_tshirt_wdl_f"]]; +_traitorLoadoutData set ["vests", ["V_TacVest_camo"]]; + +private _officerLoadoutData = _loadoutData call _fnc_copyLoadoutData; +_officerLoadoutData set ["uniforms", ["U_B_ParadeUniform_01_US_F", "U_B_ParadeUniform_01_US_decorated_F"]]; +_officerLoadoutData set ["vests", ["Aegis_V_CarrierRigKBT_01_holster_olive_F"]]; +_officerLoadoutData set ["helmets", ["H_ParadeDressCap_01_US_F"]]; +_officerLoadoutData set ["backpacks", []]; +_officerLoadoutData set ["SMGs", [ +["arifle_SA80_C_blk_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", [], [], ""], +["arifle_SA80_C_blk_F", "", "acc_pointer_IR", "optic_ACO_grn", [], [], ""], +["arifle_SA80_C_blk_F", "", "acc_pointer_IR", "Aegis_optic_ROS", [], [], ""] +]]; + +if ("mark" in A3A_enabledDLC) then { + (_sfLoadoutData get "marksmanRifles") append [ + ["srifle_DMR_02_F", "muzzle_snds_338_black", "acc_pointer_IR", "optic_SOS", [], [], "bipod_01_F_blk"], + ["srifle_DMR_02_F", "muzzle_snds_338_black", "acc_pointer_IR", "optic_AMS", [], [], "bipod_01_F_blk"]]; + (_sfLoadoutData get "sniperRifles") append [ + ["srifle_DMR_02_F", "muzzle_snds_338_black", "acc_pointer_IR", "optic_LRPS", [], [], "bipod_01_F_blk"], + ["srifle_DMR_02_F", "muzzle_snds_338_black", "acc_pointer_IR", "optic_AMS", [], [], "bipod_01_F_blk"]]; + + (_militaryLoadoutData get "marksmanRifles") append [ + ["srifle_DMR_02_F", "", "acc_pointer_IR", "optic_SOS", [], [], "bipod_01_F_blk"], + ["srifle_DMR_02_F", "", "acc_pointer_IR", "optic_AMS", [], [], "bipod_01_F_blk"]]; + (_militaryLoadoutData get "sniperRifles") append [ + ["srifle_DMR_02_F", "", "acc_pointer_IR", "optic_LRPS", [], [], "bipod_01_F_blk"], + ["srifle_DMR_02_F", "", "acc_pointer_IR", "optic_AMS", [], [], "bipod_01_F_blk"]]; +}; +if ("rf" in A3A_enabledDLC) then { + (_sfLoadoutData get "sidearms") append [ + ["hgun_Glock19_RF", "muzzle_snds_L", "acc_flashlight_IR_pistol_RF", "optic_MRD_black", [], [], ""], + ["hgun_Glock19_RF", "muzzle_snds_L", "acc_flashlight_IR_pistol_RF", "optic_MRD_black", [], [], ""], + ["hgun_Glock19_auto_RF", "muzzle_snds_L", "acc_flashlight_IR_pistol_RF", "optic_MRD_black", [], [], ""], + ["hgun_Glock19_auto_RF", "muzzle_snds_L", "acc_flashlight_IR_pistol_RF", "optic_MRD_black", [], [], ""], + ["hgun_Glock19_auto_RF", "muzzle_snds_L", "acc_flashlight_IR_pistol_RF", "optic_MRD_black", [], [], ""] + ]; + (_militaryLoadoutData get "sidearms") append [ + ["hgun_Glock19_RF", "", "acc_flashlight_pistol", "", [], [], ""], + ["hgun_Glock19_RF", "", "acc_flashlight_pistol", "", [], [], ""], + ["hgun_Glock19_RF", "", "acc_flashlight_pistol", "", [], [], ""], + ["hgun_Glock19_RF", "", "acc_flashlight_pistol", "optic_MRD_black", [], [], ""], + ["hgun_Glock19_auto_RF", "", "acc_flashlight_pistol", "", [], [], ""] + ]; + (_policeLoadoutData get "sidearms") append ["hgun_Glock19_RF"]; + (_pilotLoadoutData get "uniforms") append ["U_B_HeliPilotCoveralls_MTP_RF"]; + (_sfLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "muzzle_snds_acp", "", "optic_Holosight", [], [], ""] + ]; + (_militaryLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "", "", "optic_Holosight", [], [], ""], + ["SMG_01_black_RF", "", "", "optic_Aco_smg", [], [], ""] + ]; + (_militiaLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "", "acc_flashlight_smg_01", "", [], [], ""] + ]; + (_policeLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "", "acc_flashlight_smg_01", "optic_Holosight", [], [], ""], + ["SMG_01_black_RF", "", "acc_flashlight_smg_01", "optic_Aco_smg", [], [], ""] + ]; + (_sfLoadoutData get "helmets") append [ + "H_HelmetB_plain_sb_mtp_RF", + "H_HelmetHeavy_Sand_RF", + "H_HelmetHeavy_Simple_Sand_RF", + "H_HelmetHeavy_VisorUp_Sand_RF"]; + (_militaryLoadoutData get "helmets") append ["H_HelmetB_plain_sb_mtp_RF"]; +}; + + +///////////////////////////////// +// Unit Type Definitions // +///////////////////////////////// + + +private _squadLeaderTemplate = { + ["slHat"] call _fnc_setHelmet; + [["Hvests", "vests"] call _fnc_fallback] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + ["backpacks"] call _fnc_setBackpack; + + [["slRifles", "rifles"] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + ["primary", 4] call _fnc_addAdditionalMuzzleMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_squadLeader_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 2] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + ["signalsmokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["gpses"] call _fnc_addGPS; + ["binoculars"] call _fnc_addBinoculars; + ["NVGs"] call _fnc_addNVGs; +}; + +private _riflemanTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_rifleman_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 2] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _medicTemplate = { + ["helmets"] call _fnc_setHelmet; + [["Hvests", "vests"] call _fnc_fallback] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["carbines", "SMGs"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_medic"] call _fnc_addItemSet; + ["items_medic_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _grenadierTemplate = { + ["helmets"] call _fnc_setHelmet; + ["Hvests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + ["grenadeLaunchers"] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + ["primary", 10] call _fnc_addAdditionalMuzzleMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_grenadier_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 4] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _explosivesExpertTemplate = { + ["helmets"] call _fnc_setHelmet; + ["Hvests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [[selectRandom ["carbines", "shotGuns", "rifles"], selectRandom ["carbines", "rifles"]] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_explosivesExpert_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + + ["lightExplosives", 2] call _fnc_addItem; + if (random 1 > 0.5) then {["heavyExplosives", 1] call _fnc_addItem;}; + if (random 1 > 0.5) then {["atMines", 1] call _fnc_addItem;}; + if (random 1 > 0.5) then {["apMines", 1] call _fnc_addItem;}; + + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _engineerTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [[selectRandom ["carbines", "shotGuns", "SMGs"], selectRandom ["carbines", "SMGs"]] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_engineer_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + + if (random 1 > 0.5) then {["lightExplosives", 1] call _fnc_addItem;}; + + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _latTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + [["lightATLaunchers", "ATLaunchers"] call _fnc_fallback] call _fnc_setLauncher; + //TODO - Add a check if it's disposable. + ["launcher", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_lat_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _atTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + [selectRandom ["ATLaunchers", "missileATLaunchers"]] call _fnc_setLauncher; + //TODO - Add a check if it's disposable. + ["launcher", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_at_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _aaTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["AALaunchers"] call _fnc_setLauncher; + //TODO - Add a check if it's disposable. + ["launcher", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_aa_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _machineGunnerTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + ["machineGuns"] call _fnc_setPrimary; + ["primary", 4] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_machineGunner_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _marksmanTemplate = { + ["sniHats"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + + ["marksmanRifles"] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_marksman_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["rangefinders"] call _fnc_addBinoculars; + ["NVGs"] call _fnc_addNVGs; +}; + +private _sniperTemplate = { + ["sniHats"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + + ["sniperRifles"] call _fnc_setPrimary; + ["primary", 7] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_sniper_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["rangefinders"] call _fnc_addBinoculars; + ["NVGs"] call _fnc_addNVGs; +}; + +private _policeTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + + [[selectRandom ["shotGuns", "SMGs"], "SMGs"] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_police_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; +}; + +private _crewTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + [selectRandom ["carbines", "SMGs"]] call _fnc_setPrimary; + ["primary", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_basic"] call _fnc_addItemSet; + ["items_crew_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["gpses"] call _fnc_addGPS; + ["NVGs"] call _fnc_addNVGs; +}; + +private _unarmedTemplate = { + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + ["items_medical_basic"] call _fnc_addItemSet; + ["items_unarmed_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; +}; + +private _traitorTemplate = { + call _unarmedTemplate; + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; +}; + +//////////////////////////////////////////////////////////////////////////////////////// +// You shouldn't touch below this line unless you really really know what you're doing. +// Things below here can and will break the gamemode if improperly changed. +//////////////////////////////////////////////////////////////////////////////////////// + +///////////////////////////// +// Special Forces Units // +///////////////////////////// +private _prefix = "SF"; +private _unitTypes = [ + ["SquadLeader", _squadLeaderTemplate], + ["Rifleman", _riflemanTemplate], + ["Medic", _medicTemplate, [["medic", true]]], + ["Engineer", _engineerTemplate, [["engineer", true]]], + ["ExplosivesExpert", _explosivesExpertTemplate, [["explosiveSpecialist", true]]], + ["Grenadier", _grenadierTemplate], + ["LAT", _latTemplate], + ["AT", _atTemplate], + ["AA", _aaTemplate], + ["MachineGunner", _machineGunnerTemplate], + ["Marksman", _marksmanTemplate], + ["Sniper", _sniperTemplate] +]; + +[_prefix, _unitTypes, _sfLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +/*{ + params ["_name", "_loadoutTemplate"]; + private _loadouts = [_sfLoadoutData, _loadoutTemplate] call _fnc_buildLoadouts; + private _finalName = _prefix + _name; + [_finalName, _loadouts] call _fnc_saveToTemplate; +} forEach _unitTypes; +*/ + +/////////////////////// +// Military Units // +/////////////////////// +private _prefix = "military"; +private _unitTypes = [ + ["SquadLeader", _squadLeaderTemplate], + ["Rifleman", _riflemanTemplate], + ["Medic", _medicTemplate, [["medic", true]]], + ["Engineer", _engineerTemplate, [["engineer", true]]], + ["ExplosivesExpert", _explosivesExpertTemplate, [["explosiveSpecialist", true]]], + ["Grenadier", _grenadierTemplate], + ["LAT", _latTemplate], + ["AT", _atTemplate], + ["AA", _aaTemplate], + ["MachineGunner", _machineGunnerTemplate], + ["Marksman", _marksmanTemplate], + ["Sniper", _sniperTemplate] +]; + +[_prefix, _unitTypes, _militaryLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +//////////////////////// +// Police Units // +//////////////////////// +private _prefix = "police"; +private _unitTypes = [ + ["SquadLeader", _policeTemplate], + ["Standard", _policeTemplate] +]; + +[_prefix, _unitTypes, _policeLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +//////////////////////// +// Militia Units // +//////////////////////// +private _prefix = "militia"; +private _unitTypes = [ + ["SquadLeader", _squadLeaderTemplate], + ["Rifleman", _riflemanTemplate], + ["Medic", _medicTemplate, [["medic", true]]], + ["Engineer", _engineerTemplate, [["engineer", true]]], + ["ExplosivesExpert", _explosivesExpertTemplate, [["explosiveSpecialist", true]]], + ["Grenadier", _grenadierTemplate], + ["LAT", _latTemplate], + ["AT", _atTemplate], + ["AA", _aaTemplate], + ["MachineGunner", _machineGunnerTemplate], + ["Marksman", _marksmanTemplate], + ["Sniper", _sniperTemplate] +]; + +[_prefix, _unitTypes, _militiaLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +////////////////////// +// Misc Units // +////////////////////// + +//The following lines are determining the loadout of vehicle crew +["other", [["Crew", _crewTemplate]], _crewLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout of the pilots +["other", [["Pilot", _crewTemplate]], _pilotLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout for the unit used in the "kill the official" mission +["other", [["Official", _policeTemplate]], _officerLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout for the AI used in the "kill the traitor" mission +["other", [["Traitor", _traitorTemplate]], _traitorLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout for the AI used in the "Invader Punishment" mission +["other", [["Unarmed", _UnarmedTemplate]], _militaryLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; diff --git a/A3A/addons/core/Templates/Templates/Aegis/Aegis_AI_BAF_Tropical.sqf b/A3A/addons/core/Templates/Templates/Aegis/Aegis_AI_BAF_Tropical.sqf new file mode 100644 index 0000000000..123da5049e --- /dev/null +++ b/A3A/addons/core/Templates/Templates/Aegis/Aegis_AI_BAF_Tropical.sqf @@ -0,0 +1,980 @@ +////////////////////////// +// Side Information // +////////////////////////// + +["name", "BAF"] call _fnc_saveToTemplate; +["spawnMarkerName", "BAF support corridor"] call _fnc_saveToTemplate; + +["flag", "Flag_UK_F"] call _fnc_saveToTemplate; +["flagTexture", "\A3\Data_F\Flags\Flag_uk_CO.paa"] call _fnc_saveToTemplate; +["flagMarkerType", "flag_UK"] call _fnc_saveToTemplate; + +////////////////////////// +// Vehicles // +////////////////////////// + +["ammobox", "B_supplyCrate_F"] call _fnc_saveToTemplate; //Don't touch or you die a sad and lonely death! +["surrenderCrate", "Box_IND_Wps_F"] call _fnc_saveToTemplate; //Changeing this from default will require you to define logistics attachement offset for the box type +["equipmentBox", "Box_NATO_Equip_F"] call _fnc_saveToTemplate; //Changeing this from default will require you to define logistics attachement offset for the box type + +["vehiclesBasic", ["B_A_Quadbike_01_tna_F"]] call _fnc_saveToTemplate; +["vehiclesLightUnarmed", ["B_A_MRAP_03_tna_F", "B_A_MRAP_03_tna_F", "B_A_LSV_01_light_tna_F"]] call _fnc_saveToTemplate; +["vehiclesLightArmed",["B_A_MRAP_03_hmg_tna_F", "B_A_MRAP_03_hmg_tna_F", "B_A_MRAP_03_gmg_tna_F", "B_A_MRAP_03_gmg_tna_F", "B_A_LSV_01_AT_tna_F", "B_A_LSV_01_armed_tna_F"]] call _fnc_saveToTemplate; +["vehiclesTrucks", ["B_A_Truck_01_covered_tna_F", "B_A_Truck_01_transport_tna_F"]] call _fnc_saveToTemplate; +["vehiclesCargoTrucks", ["B_A_Truck_01_cargo_tna_F", "B_A_Truck_01_flatbed_tna_F"]] call _fnc_saveToTemplate; +["vehiclesAmmoTrucks", ["B_A_Truck_01_ammo_tna_F"]] call _fnc_saveToTemplate; +["vehiclesRepairTrucks", ["B_A_Truck_01_Repair_tna_F"]] call _fnc_saveToTemplate; +["vehiclesFuelTrucks", ["B_A_Truck_01_fuel_tna_F"]] call _fnc_saveToTemplate; +["vehiclesMedical", ["B_A_Truck_01_medical_tna_F"]] call _fnc_saveToTemplate; +["vehiclesLightAPCs", []] call _fnc_saveToTemplate; +["vehiclesAPCs", ["B_A_APC_tracked_03_cannon_v2_tna_F"]] call _fnc_saveToTemplate; +["vehiclesIFVs", ["a3a_B_A_APC_tracked_03_cannon_v2_tna_F"]] call _fnc_saveToTemplate; +["vehiclesTanks", ["B_T_MBT_01_TUSK_F", "B_T_MBT_01_cannon_F"]] call _fnc_saveToTemplate; +["vehiclesAA", ["B_T_APC_Tracked_01_AA_F"]] call _fnc_saveToTemplate; + +["vehiclesTransportBoats", ["B_Boat_Transport_01_F"]] call _fnc_saveToTemplate; +["vehiclesGunBoats", ["B_Boat_Armed_01_minigun_F"]] call _fnc_saveToTemplate; +["vehiclesAmphibious", []] call _fnc_saveToTemplate; + +["vehiclesPlanesCAS", ["B_A_Plane_Fighter_05_F"]] call _fnc_saveToTemplate; +["vehiclesPlanesAA", ["B_A_Plane_Fighter_05_F"]] call _fnc_saveToTemplate; +["vehiclesPlanesTransport", ["B_A_Plane_Transport_01_infantry_F"]] call _fnc_saveToTemplate; + +private _vehiclesHelisLight = ["B_A_Heli_light_03_unarmed_F"]; +private _HelisTransport = ["Aegis_B_A_Heli_Transport_02_F"]; +private _vehiclesHelisLightAttack = ["B_A_Heli_light_03_dynamicLoadout_F"]; +["vehiclesHelisAttack", ["Aegis_B_A_Heli_Attack_03_F"]] call _fnc_saveToTemplate; + +["vehiclesArtillery", ["B_T_MBT_01_mlrs_F","B_T_MBT_01_arty_F"]] call _fnc_saveToTemplate; +["magazines", createHashMapFromArray [ + ["B_T_MBT_01_mlrs_F", ["12Rnd_230mm_rockets"]], + ["B_T_MBT_01_arty_F", ["32Rnd_155mm_Mo_shells"]] +]] call _fnc_saveToTemplate; + +["uavsAttack", ["B_UAV_02_dynamicLoadout_F"]] call _fnc_saveToTemplate; +["uavsPortable", ["B_UAV_01_F"]] call _fnc_saveToTemplate; + +//Config special vehicles - militia vehicles are mostly used in the early game, police cars are being used by troops around cities. +private _vehiclesMilitiaLightArmed = ["B_A_LSV_01_armed_tna_F"]; +["vehiclesMilitiaTrucks", ["B_A_Truck_01_covered_tna_F", "B_A_Truck_01_transport_tna_F"]] call _fnc_saveToTemplate; +private _vehiclesMilitiaCars = ["B_A_LSV_01_light_tna_F"]; + +private _vehiclesPolice = ["B_GEN_Offroad_01_gen_F"]; + +["staticMGs", ["B_G_HMG_02_high_F"]] call _fnc_saveToTemplate; +["staticAT", ["B_static_AT_F"]] call _fnc_saveToTemplate; +["staticAA", ["B_static_AA_F"]] call _fnc_saveToTemplate; +["staticMortars", ["B_Mortar_01_F"]] call _fnc_saveToTemplate; + +["mortarMagazineHE", "8Rnd_82mm_Mo_shells"] call _fnc_saveToTemplate; +["mortarMagazineSmoke", "8Rnd_82mm_Mo_Smoke_white"] call _fnc_saveToTemplate; +["mortarMagazineFlare", "8Rnd_82mm_Mo_Flare_white"] call _fnc_saveToTemplate; + +//Minefield definition +["minefieldAT", ["ATMine"]] call _fnc_saveToTemplate; +["minefieldAPERS", ["APERSMine"]] call _fnc_saveToTemplate; + +if ("rf" in A3A_enabledDLC) then { + _vehiclesPolice append ["a3a_police_Pickup_rf", "B_GEN_Pickup_covered_rf", "a3a_police_Pickup_comms_rf"]; + _HelisTransport append ["B_Heli_EC_04_military_RF"]; + _vehiclesHelisLight append ["B_Heli_light_03_unarmed_RF"]; + _vehiclesHelisLightAttack append ["a3a_Heli_light_03_dynamicLoadout_rf","B_Heli_EC_03_RF"]; + _vehiclesMilitiaCars append ["B_T_Pickup_rf"]; + _vehiclesMilitiaLightArmed append ["B_T_Pickup_mmg_rf"]; +}; + +["vehiclesHelisLight", _vehiclesHelisLight] call _fnc_saveToTemplate; +["vehiclesHelisLightAttack", _vehiclesHelisLightAttack] call _fnc_saveToTemplate; +["vehiclesHelisTransport", _HelisTransport] call _fnc_saveToTemplate; + +["vehiclesMilitiaCars", _vehiclesMilitiaCars] call _fnc_saveToTemplate; +["vehiclesMilitiaLightArmed", _vehiclesMilitiaLightArmed] call _fnc_saveToTemplate; +["vehiclesPolice", _vehiclesPolice] call _fnc_saveToTemplate; + + +#include "Aegis_Vehicle_Attributes.sqf" + +///////////////////// +/// Identities /// +///////////////////// + +["voices", ["Male01ENGB", "Male02ENGB", "Male03ENGB", "Male04ENGB", "Male05ENGB"]] call _fnc_saveToTemplate; +["faces", ["AfricanHead_01","AfricanHead_02","AfricanHead_03","Barklem", +"GreekHead_A3_05","GreekHead_A3_07","Sturrock","WhiteHead_01","WhiteHead_02", +"WhiteHead_03","WhiteHead_04","WhiteHead_05","WhiteHead_06","WhiteHead_07", +"WhiteHead_08","WhiteHead_09","WhiteHead_11","WhiteHead_12","WhiteHead_14", +"WhiteHead_15","WhiteHead_16","WhiteHead_18","WhiteHead_19","WhiteHead_20", +"WhiteHead_21"]] call _fnc_saveToTemplate; +"NATOMen" call _fnc_saveNames; +////////////////////////// +// Loadouts // +////////////////////////// + +private _loadoutData = call _fnc_createLoadoutData; +_loadoutData set ["slRifles", []]; +_loadoutData set ["rifles", []]; +_loadoutData set ["carbines", []]; +_loadoutData set ["grenadeLaunchers", []]; +_loadoutData set ["shotGuns", []]; +_loadoutData set ["SMGs", []]; +_loadoutData set ["machineGuns", []]; +_loadoutData set ["marksmanRifles", []]; +_loadoutData set ["sniperRifles", []]; +_loadoutData set ["lightATLaunchers", ["launch_NLAW_F"]]; +_loadoutData set ["ATLaunchers", [ +["launch_MRAWS_green_F", "", "acc_pointer_IR", "", ["MRAWS_HE_F", "MRAWS_HEAT55_F"], [], ""], +["launch_MRAWS_green_F", "", "acc_pointer_IR", "", ["MRAWS_HEAT_F", "MRAWS_HEAT55_F"], [], ""], +["launch_MRAWS_green_F", "", "acc_pointer_IR", "", ["MRAWS_HEAT_F", "MRAWS_HE_F"], [], ""], +["launch_MRAWS_green_rail_F", "", "acc_pointer_IR", "", ["MRAWS_HE_F", "MRAWS_HEAT55_F"], [], ""], +["launch_MRAWS_green_rail_F", "", "acc_pointer_IR", "", ["MRAWS_HEAT_F", "MRAWS_HEAT55_F"], [], ""], +["launch_MRAWS_green_rail_F", "", "acc_pointer_IR", "", ["MRAWS_HEAT_F", "MRAWS_HE_F"], [], ""], +["launch_NLAW_F", "", "", "", [], [], ""], +["launch_NLAW_F", "", "", "", [], [], ""] +]]; +_loadoutData set ["missileATLaunchers", [ +["launch_B_Titan_short_tna_F", "", "acc_pointer_IR", "", ["Titan_AT"], [], ""] +]]; +_loadoutData set ["AALaunchers", [ +["launch_B_Titan_tna_F", "", "acc_pointer_IR", "", ["Titan_AA"], [], ""] +]]; +_loadoutData set ["sidearms", []]; + +_loadoutData set ["ATMines", ["ATMine_Range_Mag"]]; +_loadoutData set ["APMines", ["APERSMine_Range_Mag"]]; +_loadoutData set ["lightExplosives", ["DemoCharge_Remote_Mag"]]; +_loadoutData set ["heavyExplosives", ["SatchelCharge_Remote_Mag"]]; + +_loadoutData set ["antiInfantryGrenades", ["HandGrenade", "MiniGrenade"]]; +_loadoutData set ["antiTankGrenades", []]; +_loadoutData set ["smokeGrenades", ["SmokeShell"]]; +_loadoutData set ["signalsmokeGrenades", ["SmokeShellYellow", "SmokeShellRed", "SmokeShellPurple", "SmokeShellOrange", "SmokeShellGreen", "SmokeShellBlue"]]; + + +//Basic equipment. Shouldn't need touching most of the time. +//Mods might override this, or certain mods might want items removed (No GPSs in WW2, for example) +_loadoutData set ["maps", ["ItemMap"]]; +_loadoutData set ["watches", ["ItemWatch"]]; +_loadoutData set ["compasses", ["ItemCompass"]]; +_loadoutData set ["radios", ["ItemRadio"]]; +_loadoutData set ["gpses", ["ItemGPS"]]; +_loadoutData set ["NVGs", ["NVGoggles_tna_F"]]; +_loadoutData set ["binoculars", ["Binocular"]]; +_loadoutData set ["rangefinders", ["Rangefinder"]]; + +//Basically all the clothing which the units use. +//don't fill these lines - this is only to set the variables. +_loadoutData set ["uniforms", []]; +_loadoutData set ["vests", []]; +_loadoutData set ["Hvests", []]; +_loadoutData set ["backpacks", []]; +_loadoutData set ["longRangeRadios", []]; +_loadoutData set ["helmets", []]; +_loadoutData set ["slHat", ["H_Beret_red"]]; +_loadoutData set ["sniHats", ["H_Booniehat_tna_hs_F"]]; + +//Item *set* definitions. These are added in their entirety to unit loadouts. No randomisation is applied. +_loadoutData set ["items_medical_basic", ["BASIC"] call A3A_fnc_itemset_medicalSupplies]; //this line defines the basic medical loadout for vanilla +_loadoutData set ["items_medical_standard", ["STANDARD"] call A3A_fnc_itemset_medicalSupplies]; //this line defines the standard medical loadout for vanilla +_loadoutData set ["items_medical_medic", ["MEDIC"] call A3A_fnc_itemset_medicalSupplies]; //this line defines the medic medical loadout for vanilla +_loadoutData set ["items_miscEssentials", [] call A3A_fnc_itemset_miscEssentials]; + +//Unit type specific item sets. Add or remove these, depending on the unit types in use. +private _slItems = ["Laserbatteries", "Laserbatteries", "Laserbatteries"]; +private _eeItems = ["ToolKit", "MineDetector"]; +private _mmItems = []; + +if (A3A_hasACE) then { + _slItems append ["ACE_microDAGR", "ACE_DAGR"]; + _eeItems append ["ACE_Clacker", "ACE_DefusalKit"]; + _mmItems append ["ACE_RangeCard", "ACE_ATragMX", "ACE_Kestrel4500"]; +}; + +_loadoutData set ["items_squadLeader_extras", _slItems]; +_loadoutData set ["items_rifleman_extras", []]; +_loadoutData set ["items_medic_extras", []]; +_loadoutData set ["items_grenadier_extras", []]; +_loadoutData set ["items_explosivesExpert_extras", _eeItems]; +_loadoutData set ["items_engineer_extras", _eeItems]; +_loadoutData set ["items_lat_extras", []]; +_loadoutData set ["items_at_extras", []]; +_loadoutData set ["items_aa_extras", []]; +_loadoutData set ["items_machineGunner_extras", []]; +_loadoutData set ["items_marksman_extras", _mmItems]; +_loadoutData set ["items_sniper_extras", _mmItems]; +_loadoutData set ["items_police_extras", []]; +_loadoutData set ["items_crew_extras", []]; +_loadoutData set ["items_unarmed_extras", []]; + +//TODO - ACE overrides for misc essentials, medical and engineer gear + +/////////////////////////////////////// +// Special Forces Loadout Data // +/////////////////////////////////////// + +private _sfLoadoutData = _loadoutData call _fnc_copyLoadoutData; // touch and shit breaks +_sfLoadoutData set ["uniforms", ["U_B_UBACS_tna_f", "U_B_UBACS_vest_tna_f", "U_B_UBACS_tshirt_tna_f"]]; +_sfLoadoutData set ["vests", ["Aegis_V_CarrierRigKBT_01_recon_olive_F","V_TacVest_grn"]]; +_sfLoadoutData set ["Hvests", ["Aegis_V_CarrierRigKBT_01_cqb_olive_F"]]; +_sfLoadoutData set ["backpacks", ["B_Kitbag_tna_F", "B_Carryall_tna_F", "B_TacticalPack_tna_F", "B_AssaultPack_tna_F"]]; +_sfLoadoutData set ["helmets", ["Aegis_H_Helmet_FASTMT_Cover_UK_tna_F", "H_Booniehat_tna_hs_F", "H_Watchcap_camo_hs", "H_Cap_khaki_specops_UK_hs"]]; +_sfLoadoutData set ["binoculars", ["Laserdesignator_01_khk_F"]]; + +_sfLoadoutData set ["slRifles", [ +["arifle_MX_khk_F", "muzzle_snds_H", "acc_pointer_IR", "optic_MRCO", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], [], ""], +["arifle_MX_khk_F", "muzzle_snds_H", "acc_pointer_IR", "optic_Hamr_khk_F", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], [], ""], +["arifle_MX_khk_F", "muzzle_snds_H", "acc_pointer_IR", "Aegis_optic_ACOG_khaki", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], [], ""], +["arifle_MX_GL_F", "muzzle_snds_H", "acc_pointer_IR", "optic_MRCO", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_MX_GL_F", "muzzle_snds_H", "acc_pointer_IR", "optic_Hamr_khk_F", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_MX_GL_F", "muzzle_snds_H", "acc_pointer_IR", "Aegis_optic_ACOG_khaki", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_sfLoadoutData set ["rifles", [ +["arifle_MX_khk_F", "muzzle_snds_H_khk_F", "acc_pointer_IR", "optic_Holosight_khk_F", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], [], ""], +["arifle_MX_khk_F", "muzzle_snds_H_khk_F", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], [], ""] +]]; +_sfLoadoutData set ["carbines", [ +["arifle_MXC_khk_F", "muzzle_snds_H_khk_F", "acc_pointer_IR", "optic_Holosight_khk_F", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], [], ""], +["arifle_MXC_khk_F", "muzzle_snds_H_khk_F", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], [], ""] +]]; +_sfLoadoutData set ["grenadeLaunchers", [ +["arifle_MX_GL_khk_F", "muzzle_snds_H_khk_F", "acc_pointer_IR", "optic_Holosight_khk_F", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_MX_GL_khk_F", "muzzle_snds_H_khk_F", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_sfLoadoutData set ["SMGs", [ +["SMG_04_khk_F", "muzzle_snds_460", "", "optic_Holosight_smg_khk_F", [], [], ""], +["SMG_04_khk_F", "muzzle_snds_460", "", "Aegis_optic_ROS_SMG", [], [], ""] +]]; +_sfLoadoutData set ["machineGuns", [ +["arifle_MX_SW_khk_F", "muzzle_snds_H_khk_F", "acc_pointer_IR", "optic_Holosight_khk_F", ["100Rnd_65x39_caseless_khaki_mag", "100Rnd_65x39_caseless_khaki_mag", "100Rnd_65x39_caseless_khaki_mag_tracer"], [], "bipod_01_F_khk"], +["arifle_MX_SW_khk_F", "muzzle_snds_H_khk_F", "acc_pointer_IR", "Aegis_optic_ROS", ["100Rnd_65x39_caseless_khaki_mag", "100Rnd_65x39_caseless_khaki_mag", "100Rnd_65x39_caseless_khaki_mag_tracer"], [], "bipod_01_F_khk"], +["arifle_MX_SW_khk_F", "muzzle_snds_H_khk_F", "acc_pointer_IR", "optic_Hamr_khk_F", ["100Rnd_65x39_caseless_khaki_mag", "100Rnd_65x39_caseless_khaki_mag", "100Rnd_65x39_caseless_khaki_mag_tracer"], [], "bipod_01_F_khk"], +["arifle_MX_SW_khk_F", "muzzle_snds_H_khk_F", "acc_pointer_IR", "optic_MRCO", ["100Rnd_65x39_caseless_khaki_mag", "100Rnd_65x39_caseless_khaki_mag", "100Rnd_65x39_caseless_khaki_mag_tracer"], [], "bipod_01_F_khk"], +["arifle_MX_SW_khk_F", "muzzle_snds_H_khk_F", "acc_pointer_IR", "Aegis_optic_ACOG_khaki", ["100Rnd_65x39_caseless_khaki_mag", "100Rnd_65x39_caseless_khaki_mag", "100Rnd_65x39_caseless_khaki_mag_tracer"], [], "bipod_01_F_khk"], +["LMG_Mk200_khk_F", "muzzle_snds_H_khk_F", "acc_pointer_IR", "optic_Holosight_khk_F", ["200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_khk"], +["LMG_Mk200_khk_F", "muzzle_snds_H_khk_F", "acc_pointer_IR", "Aegis_optic_ROS", ["200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_khk"], +["LMG_Mk200_khk_F", "muzzle_snds_H_khk_F", "acc_pointer_IR", "optic_Hamr_khk_F", ["200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_khk"], +["LMG_Mk200_khk_F", "muzzle_snds_H_khk_F", "acc_pointer_IR", "optic_MRCO", ["200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_khk"], +["LMG_Mk200_khk_F", "muzzle_snds_H_khk_F", "acc_pointer_IR", "Aegis_optic_ACOG_khaki", ["200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_khk"] +]]; +_sfLoadoutData set ["marksmanRifles", [ +["arifle_MXM_khk_F", "muzzle_snds_H_khk_F", "acc_pointer_IR", "optic_SOS_khk_F", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], [], "bipod_01_F_khk"], +["arifle_MXM_khk_F", "muzzle_snds_H_khk_F", "acc_pointer_IR", "optic_Hamr_khk_F", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], [], "bipod_01_F_khk"], +["arifle_MXM_khk_F", "muzzle_snds_H_khk_F", "acc_pointer_IR", "optic_DMS", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], [], "bipod_01_F_khk"], +["Aegis_arifle_SR25_MR_khk_F", "aegis_muzzle_snds_sr25_khk", "acc_pointer_IR", "optic_SOS_khk_F", [], [], "bipod_01_F_khk"], +["Aegis_arifle_SR25_MR_khk_F", "aegis_muzzle_snds_sr25_khk", "acc_pointer_IR", "optic_Hamr_khk_F", [], [], "bipod_01_F_khk"], +["Aegis_arifle_SR25_MR_khk_F", "aegis_muzzle_snds_sr25_khk", "acc_pointer_IR", "optic_DMS", [], [], "bipod_01_F_khk"] +]]; +_sfLoadoutData set ["sniperRifles", [ +["srifle_LRR_tna_F", "", "", "optic_SOS", [], [], ""], +["srifle_LRR_tna_F", "", "", "optic_LRPS_tna_F", [], [], ""] +]]; +_sfLoadoutData set ["sidearms", [ +["hgun_G17_khaki_F", "muzzle_snds_L", "", "", [], [], ""], +["hgun_Mk26_F", "", "", "", [], [], ""] +]]; +///////////////////////////////// +// Military Loadout Data // +///////////////////////////////// + +private _militaryLoadoutData = _loadoutData call _fnc_copyLoadoutData; // touch and shit breaks +_militaryLoadoutData set ["uniforms", ["U_B_UBACS_tna_f", "U_B_UBACS_vest_tna_f", "U_B_UBACS_tshirt_tna_f"]]; +_militaryLoadoutData set ["vests", ["V_CarrierRigKBT_01_light_Olive_F", "Aegis_V_CarrierRigKBT_01_cqb_olive_F"]]; +_militaryLoadoutData set ["Hvests", ["V_CarrierRigKBT_01_heavy_Olive_F", "Aegis_V_CarrierRigKBT_01_tac_olive_F"]]; +_militaryLoadoutData set ["backpacks", ["B_Carryall_tna_F", "B_Kitbag_tna_F", "B_TacticalPack_tna_F"]]; +_militaryLoadoutData set ["helmets", ["H_HelmetB_tna_F", "H_HelmetB_Camo_tna_F", "H_HelmetB_Enh_tna_F"]]; +_militaryLoadoutData set ["binoculars", ["Laserdesignator_01_khk_F"]]; + +_militaryLoadoutData set ["slRifles", [ +["arifle_SA80_khk_F", "", "acc_pointer_IR", "optic_MRCO", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], [], ""], +["arifle_SA80_khk_F", "", "acc_pointer_IR", "optic_Hamr_khk_F", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], [], ""], +["arifle_SA80_khk_F", "", "acc_pointer_IR", "Aegis_optic_ACOG_khaki", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], [], ""], +["arifle_SA80_GL_khk_F", "", "acc_pointer_IR", "optic_MRCO", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_SA80_GL_khk_F", "", "acc_pointer_IR", "optic_Hamr_khk_F", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_SA80_GL_khk_F", "", "acc_pointer_IR", "Aegis_optic_ACOG_khaki", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_militaryLoadoutData set ["rifles", [ +["arifle_SA80_khk_F", "", "acc_pointer_IR", "optic_Holosight_khk_F", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], [], ""], +["arifle_SA80_khk_F", "", "acc_pointer_IR", "optic_ACO_grn", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], [], ""], +["arifle_SA80_khk_F", "", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], [], ""] +]]; +_militaryLoadoutData set ["carbines", [ +["arifle_SA80_C_khk_F", "", "acc_pointer_IR", "optic_Holosight_khk_F", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], [], ""], +["arifle_SA80_C_khk_F", "", "acc_pointer_IR", "optic_ACO_grn", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], [], ""], +["arifle_SA80_C_khk_F", "", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], [], ""] +]]; +_militaryLoadoutData set ["grenadeLaunchers", [ +["arifle_SA80_GL_khk_F", "", "acc_pointer_IR", "optic_Holosight_khk_F", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_SA80_GL_khk_F", "", "acc_pointer_IR", "optic_ACO_grn", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_SA80_GL_khk_F", "", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_militaryLoadoutData set ["shotGuns", [ +["sgun_M4_F", "", "", "optic_ACO_grn_smg", ["8Rnd_12Gauge_Pellets", "8Rnd_12Gauge_Slug"], [], ""], +["sgun_M4_F", "", "", "Aegis_optic_ROS_SMG", ["8Rnd_12Gauge_Pellets", "8Rnd_12Gauge_Slug"], [], ""] +]]; +_militaryLoadoutData set ["SMGs", [ +["SMG_04_khk_F", "", "", "optic_Holosight_smg_khk_F", [], [], ""], +["SMG_04_khk_F", "", "", "optic_ACO_grn_smg", [], [], ""], +["SMG_04_khk_F", "", "", "Aegis_optic_ROS_SMG", [], [], ""] +]]; +_militaryLoadoutData set ["machineGuns", [ +["LMG_Mk200_khk_F", "", "acc_pointer_IR", "optic_Holosight_khk_F", ["200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_khk"], +["LMG_Mk200_khk_F", "", "acc_pointer_IR", "optic_ACO_grn", ["200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_khk"], +["LMG_Mk200_khk_F", "", "acc_pointer_IR", "Aegis_optic_ROS", ["200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_khk"] +]]; +_militaryLoadoutData set ["marksmanRifles", [ +["arifle_SPAR_03_khk_F", "", "acc_pointer_IR", "optic_SOS_khk_F", [], [], "bipod_01_F_khk"], +["arifle_SPAR_03_khk_F", "", "acc_pointer_IR", "optic_Hamr_khk_F", [], [], "bipod_01_F_khk"], +["arifle_SPAR_03_khk_F", "", "acc_pointer_IR", "optic_DMS", [], [], "bipod_01_F_khk"], +["Aegis_arifle_SR25_khk_F", "aegis_muzzle_snds_sr25_khk", "acc_pointer_IR", "optic_SOS_khk_F", [], [], "bipod_01_F_khk"], +["Aegis_arifle_SR25_khk_F", "aegis_muzzle_snds_sr25_khk", "acc_pointer_IR", "optic_Hamr_khk_F", [], [], "bipod_01_F_khk"], +["Aegis_arifle_SR25_khk_F", "aegis_muzzle_snds_sr25_khk", "acc_pointer_IR", "optic_DMS", [], [], "bipod_01_F_khk"] +]]; +_militaryLoadoutData set ["sniperRifles", [ +["srifle_LRR_F", "", "", "optic_SOS", [], [], ""], +["srifle_LRR_F", "", "", "optic_LRPS", [], [], ""] +]]; +_militaryLoadoutData set ["sidearms", [ +["hgun_G17_khaki_F", "", "", "", [], [], ""] +]]; + +/////////////////////////////// +// Police Loadout Data // +/////////////////////////////// + +private _policeLoadoutData = _loadoutData call _fnc_copyLoadoutData; // touch and shit breaks +_policeLoadoutData set ["uniforms", ["U_B_GEN_Soldier_F", "U_B_GEN_Commander_F"]]; +_policeLoadoutData set ["vests", ["V_TacVest_blk_POLICE"]]; +_policeLoadoutData set ["helmets", ["H_Cap_police"]]; + +_policeLoadoutData set ["shotGuns", [ +["sgun_M4_F", "", "acc_flashlight_pistol", "", ["8Rnd_12Gauge_Pellets", "8Rnd_12Gauge_Slug"], [], ""] +]]; +_policeLoadoutData set ["SMGs", [ +["SMG_04_blk_F", "", "acc_flashlight", "optic_Holosight_smg_blk_F", [], [], ""], +["SMG_04_blk_F", "", "acc_flashlight", "optic_ACO_grn_smg", [], [], ""], +["SMG_04_blk_F", "", "acc_flashlight", "Aegis_optic_ROS_SMG", [], [], ""] +]]; +_policeLoadoutData set ["sidearms", ["hgun_G17_black_F"]]; + +//////////////////////////////// +// Militia Loadout Data // +//////////////////////////////// + +private _militiaLoadoutData = _loadoutData call _fnc_copyLoadoutData; // touch and shit breaks +_militiaLoadoutData set ["uniforms", ["U_B_UBACS_tna_f", "U_B_UBACS_vest_tna_f", "U_B_UBACS_tshirt_tna_f"]]; +_militiaLoadoutData set ["vests", ["V_Chestrig_oli", "V_BandollierB_oli"]]; +_militiaLoadoutData set ["Hvests", ["V_TacVest_oli"]]; +_militiaLoadoutData set ["backpacks", ["B_TacticalPack_tna_F", "B_Kitbag_tna_F", "B_Carryall_tna_F"]]; +_militiaLoadoutData set ["helmets", ["H_MilCap_tna_F", "H_HelmetB_Light_tna_F", "H_Bandanna_tna_hs_F"]]; + +_militiaLoadoutData set ["rifles", [ +["arifle_SA80_khk_F", "", "acc_flashlight", "", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], [], ""] +]]; +_militiaLoadoutData set ["carbines", [ +["arifle_SA80_C_khk_F", "", "acc_flashlight", "", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], [], ""] +]]; +_militiaLoadoutData set ["grenadeLaunchers", [ +["arifle_SA80_GL_khk_F", "", "acc_flashlight", "", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_militiaLoadoutData set ["SMGs", [ +["SMG_04_blk_F", "", "acc_flashlight", "", [], [], ""] +]]; +_militiaLoadoutData set ["machineGuns", [ +["LMG_Mk200_khk_F", "", "acc_flashlight", "", ["200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_khk"] +]]; +_militiaLoadoutData set ["marksmanRifles", [ +["arifle_SPAR_03_khk_F", "", "acc_pointer_IR", "optic_MRCO", [], [], "bipod_01_F_khk"], +["arifle_SPAR_03_khk_F", "", "acc_pointer_IR", "optic_Hamr_khk_F", [], [], "bipod_01_F_khk"] +]]; +_militiaLoadoutData set ["sniperRifles", [ +["srifle_LRR_F", "", "", "optic_SOS", [], [], ""], +["srifle_LRR_F", "", "", "optic_LRPS", [], [], ""] +]]; +_militiaLoadoutData set ["sidearms", ["hgun_G17_black_F"]]; + +////////////////////////// +// Misc Loadouts // +////////////////////////// + +private _crewLoadoutData = _militaryLoadoutData call _fnc_copyLoadoutData; +_crewLoadoutData set ["uniforms", ["U_B_UBACS_vest_tna_f"]]; +_crewLoadoutData set ["vests", ["V_CarrierRigKBT_01_Olive_F"]]; +_crewLoadoutData set ["helmets", ["H_HelmetCrew_B"]]; + +private _pilotLoadoutData = _militaryLoadoutData call _fnc_copyLoadoutData; +_pilotLoadoutData set ["uniforms", ["U_B_UBACS_vest_tna_f"]]; +_pilotLoadoutData set ["vests", ["V_CarrierRigKBT_01_Olive_F"]]; +_pilotLoadoutData set ["helmets", ["H_CrewHelmetHeli_O", "H_PilotHelmetHeli_O", "H_PilotHelmetHeli_O_visor_up"]]; + +private _traitorLoadoutData = _militaryLoadoutData call _fnc_copyLoadoutData; +_traitorLoadoutData set ["uniforms", ["U_B_UBACS_tshirt_tna_f"]]; +_traitorLoadoutData set ["vests", ["V_TacVest_camo"]]; + +private _officerLoadoutData = _loadoutData call _fnc_copyLoadoutData; +_officerLoadoutData set ["uniforms", ["U_B_ParadeUniform_01_US_F", "U_B_ParadeUniform_01_US_decorated_F"]]; +_officerLoadoutData set ["vests", ["Aegis_V_CarrierRigKBT_01_holster_olive_F"]]; +_officerLoadoutData set ["helmets", ["H_ParadeDressCap_01_US_F"]]; +_officerLoadoutData set ["backpacks", []]; +_officerLoadoutData set ["SMGs", [ +["arifle_SA80_khk_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", [], [], ""], +["arifle_SA80_khk_F", "", "acc_pointer_IR", "optic_ACO_grn", [], [], ""], +["arifle_SA80_khk_F", "", "acc_pointer_IR", "Aegis_optic_ROS", [], [], ""] +]]; + +if ("mark" in A3A_enabledDLC) then { + (_sfLoadoutData get "marksmanRifles") append [ + ["srifle_DMR_02_F", "muzzle_snds_338_black", "acc_pointer_IR", "optic_SOS", [], [], "bipod_01_F_blk"], + ["srifle_DMR_02_F", "muzzle_snds_338_black", "acc_pointer_IR", "optic_AMS", [], [], "bipod_01_F_blk"]]; + (_sfLoadoutData get "sniperRifles") append [ + ["srifle_DMR_02_F", "muzzle_snds_338_black", "acc_pointer_IR", "optic_LRPS", [], [], "bipod_01_F_blk"], + ["srifle_DMR_02_F", "muzzle_snds_338_black", "acc_pointer_IR", "optic_AMS", [], [], "bipod_01_F_blk"]]; + + (_militaryLoadoutData get "marksmanRifles") append [ + ["srifle_DMR_02_F", "", "acc_pointer_IR", "optic_SOS", [], [], "bipod_01_F_blk"], + ["srifle_DMR_02_F", "", "acc_pointer_IR", "optic_AMS", [], [], "bipod_01_F_blk"]]; + (_militaryLoadoutData get "sniperRifles") append [ + ["srifle_DMR_02_F", "", "acc_pointer_IR", "optic_LRPS", [], [], "bipod_01_F_blk"], + ["srifle_DMR_02_F", "", "acc_pointer_IR", "optic_AMS", [], [], "bipod_01_F_blk"]]; +}; +if ("rf" in A3A_enabledDLC) then { + (_sfLoadoutData get "sidearms") append [ + ["hgun_Glock19_khk_RF", "muzzle_snds_L", "acc_flashlight_IR_pistol_RF", "optic_MRD_khk_RF", [], [], ""], + ["hgun_Glock19_khk_RF", "muzzle_snds_L", "acc_flashlight_IR_pistol_RF", "optic_MRD_khk_RF", [], [], ""], + ["hgun_Glock19_auto_khk_RF", "muzzle_snds_L", "acc_flashlight_IR_pistol_RF", "optic_MRD_khk_RF", [], [], ""], + ["hgun_Glock19_auto_khk_RF", "muzzle_snds_L", "acc_flashlight_IR_pistol_RF", "optic_MRD_khk_RF", [], [], ""], + ["hgun_Glock19_auto_khk_RF", "muzzle_snds_L", "acc_flashlight_IR_pistol_RF", "optic_MRD_khk_RF", [], [], ""] + ]; + (_militaryLoadoutData get "sidearms") append [ + ["hgun_Glock19_khk_RF", "", "acc_flashlight_pistol", "", [], [], ""], + ["hgun_Glock19_khk_RF", "", "acc_flashlight_pistol", "", [], [], ""], + ["hgun_Glock19_khk_RF", "", "acc_flashlight_pistol", "", [], [], ""], + ["hgun_Glock19_khk_RF", "", "acc_flashlight_pistol", "optic_MRD_khk_RF", [], [], ""], + ["hgun_Glock19_auto_khk_RF", "", "acc_flashlight_pistol", "", [], [], ""] + ]; + (_policeLoadoutData get "sidearms") append ["hgun_Glock19_RF"]; + (_pilotLoadoutData get "uniforms") append ["U_B_HeliPilotCoveralls_MTP_RF"]; + (_sfLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "muzzle_snds_acp", "", "optic_Holosight", [], [], ""] + ]; + (_militaryLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "", "", "optic_Holosight", [], [], ""], + ["SMG_01_black_RF", "", "", "optic_Aco_smg", [], [], ""] + ]; + (_militiaLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "", "acc_flashlight_smg_01", "", [], [], ""] + ]; + (_policeLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "", "acc_flashlight_smg_01", "optic_Holosight", [], [], ""], + ["SMG_01_black_RF", "", "acc_flashlight_smg_01", "optic_Aco_smg", [], [], ""] + ]; + (_sfLoadoutData get "helmets") append [ + "H_HelmetB_plain_sb_tna_RF", + "H_HelmetHeavy_Olive_RF", + "H_HelmetHeavy_Simple_Olive_RF", + "H_HelmetHeavy_VisorUp_Olive_RF"]; + (_militaryLoadoutData get "helmets") append ["H_HelmetB_plain_sb_tna_RF"]; +}; + + +///////////////////////////////// +// Unit Type Definitions // +///////////////////////////////// + + +private _squadLeaderTemplate = { + ["slHat"] call _fnc_setHelmet; + [["Hvests", "vests"] call _fnc_fallback] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + ["backpacks"] call _fnc_setBackpack; + + [["slRifles", "rifles"] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + ["primary", 4] call _fnc_addAdditionalMuzzleMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_squadLeader_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 2] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + ["signalsmokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["gpses"] call _fnc_addGPS; + ["binoculars"] call _fnc_addBinoculars; + ["NVGs"] call _fnc_addNVGs; +}; + +private _riflemanTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_rifleman_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 2] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _medicTemplate = { + ["helmets"] call _fnc_setHelmet; + [["Hvests", "vests"] call _fnc_fallback] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["carbines", "SMGs"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_medic"] call _fnc_addItemSet; + ["items_medic_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _grenadierTemplate = { + ["helmets"] call _fnc_setHelmet; + ["Hvests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + ["grenadeLaunchers"] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + ["primary", 10] call _fnc_addAdditionalMuzzleMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_grenadier_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 4] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _explosivesExpertTemplate = { + ["helmets"] call _fnc_setHelmet; + ["Hvests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [[selectRandom ["carbines", "shotGuns", "rifles"], selectRandom ["carbines", "rifles"]] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_explosivesExpert_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + + ["lightExplosives", 2] call _fnc_addItem; + if (random 1 > 0.5) then {["heavyExplosives", 1] call _fnc_addItem;}; + if (random 1 > 0.5) then {["atMines", 1] call _fnc_addItem;}; + if (random 1 > 0.5) then {["apMines", 1] call _fnc_addItem;}; + + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _engineerTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [[selectRandom ["carbines", "shotGuns", "SMGs"], selectRandom ["carbines", "SMGs"]] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_engineer_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + + if (random 1 > 0.5) then {["lightExplosives", 1] call _fnc_addItem;}; + + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _latTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + [["lightATLaunchers", "ATLaunchers"] call _fnc_fallback] call _fnc_setLauncher; + //TODO - Add a check if it's disposable. + ["launcher", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_lat_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _atTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + [selectRandom ["ATLaunchers", "missileATLaunchers"]] call _fnc_setLauncher; + //TODO - Add a check if it's disposable. + ["launcher", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_at_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _aaTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["AALaunchers"] call _fnc_setLauncher; + //TODO - Add a check if it's disposable. + ["launcher", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_aa_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _machineGunnerTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + ["machineGuns"] call _fnc_setPrimary; + ["primary", 4] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_machineGunner_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _marksmanTemplate = { + ["sniHats"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + + ["marksmanRifles"] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_marksman_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["rangefinders"] call _fnc_addBinoculars; + ["NVGs"] call _fnc_addNVGs; +}; + +private _sniperTemplate = { + ["sniHats"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + + ["sniperRifles"] call _fnc_setPrimary; + ["primary", 7] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_sniper_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["rangefinders"] call _fnc_addBinoculars; + ["NVGs"] call _fnc_addNVGs; +}; + +private _policeTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + + [[selectRandom ["shotGuns", "SMGs"], "SMGs"] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_police_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; +}; + +private _crewTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + [selectRandom ["carbines", "SMGs"]] call _fnc_setPrimary; + ["primary", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_basic"] call _fnc_addItemSet; + ["items_crew_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["gpses"] call _fnc_addGPS; + ["NVGs"] call _fnc_addNVGs; +}; + +private _unarmedTemplate = { + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + ["items_medical_basic"] call _fnc_addItemSet; + ["items_unarmed_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; +}; + +private _traitorTemplate = { + call _unarmedTemplate; + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; +}; + +//////////////////////////////////////////////////////////////////////////////////////// +// You shouldn't touch below this line unless you really really know what you're doing. +// Things below here can and will break the gamemode if improperly changed. +//////////////////////////////////////////////////////////////////////////////////////// + +///////////////////////////// +// Special Forces Units // +///////////////////////////// +private _prefix = "SF"; +private _unitTypes = [ + ["SquadLeader", _squadLeaderTemplate], + ["Rifleman", _riflemanTemplate], + ["Medic", _medicTemplate, [["medic", true]]], + ["Engineer", _engineerTemplate, [["engineer", true]]], + ["ExplosivesExpert", _explosivesExpertTemplate, [["explosiveSpecialist", true]]], + ["Grenadier", _grenadierTemplate], + ["LAT", _latTemplate], + ["AT", _atTemplate], + ["AA", _aaTemplate], + ["MachineGunner", _machineGunnerTemplate], + ["Marksman", _marksmanTemplate], + ["Sniper", _sniperTemplate] +]; + +[_prefix, _unitTypes, _sfLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +/*{ + params ["_name", "_loadoutTemplate"]; + private _loadouts = [_sfLoadoutData, _loadoutTemplate] call _fnc_buildLoadouts; + private _finalName = _prefix + _name; + [_finalName, _loadouts] call _fnc_saveToTemplate; +} forEach _unitTypes; +*/ + +/////////////////////// +// Military Units // +/////////////////////// +private _prefix = "military"; +private _unitTypes = [ + ["SquadLeader", _squadLeaderTemplate], + ["Rifleman", _riflemanTemplate], + ["Medic", _medicTemplate, [["medic", true]]], + ["Engineer", _engineerTemplate, [["engineer", true]]], + ["ExplosivesExpert", _explosivesExpertTemplate, [["explosiveSpecialist", true]]], + ["Grenadier", _grenadierTemplate], + ["LAT", _latTemplate], + ["AT", _atTemplate], + ["AA", _aaTemplate], + ["MachineGunner", _machineGunnerTemplate], + ["Marksman", _marksmanTemplate], + ["Sniper", _sniperTemplate] +]; + +[_prefix, _unitTypes, _militaryLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +//////////////////////// +// Police Units // +//////////////////////// +private _prefix = "police"; +private _unitTypes = [ + ["SquadLeader", _policeTemplate], + ["Standard", _policeTemplate] +]; + +[_prefix, _unitTypes, _policeLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +//////////////////////// +// Militia Units // +//////////////////////// +private _prefix = "militia"; +private _unitTypes = [ + ["SquadLeader", _squadLeaderTemplate], + ["Rifleman", _riflemanTemplate], + ["Medic", _medicTemplate, [["medic", true]]], + ["Engineer", _engineerTemplate, [["engineer", true]]], + ["ExplosivesExpert", _explosivesExpertTemplate, [["explosiveSpecialist", true]]], + ["Grenadier", _grenadierTemplate], + ["LAT", _latTemplate], + ["AT", _atTemplate], + ["AA", _aaTemplate], + ["MachineGunner", _machineGunnerTemplate], + ["Marksman", _marksmanTemplate], + ["Sniper", _sniperTemplate] +]; + +[_prefix, _unitTypes, _militiaLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +////////////////////// +// Misc Units // +////////////////////// + +//The following lines are determining the loadout of vehicle crew +["other", [["Crew", _crewTemplate]], _crewLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout of the pilots +["other", [["Pilot", _crewTemplate]], _pilotLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout for the unit used in the "kill the official" mission +["other", [["Official", _policeTemplate]], _officerLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout for the AI used in the "kill the traitor" mission +["other", [["Traitor", _traitorTemplate]], _traitorLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout for the AI used in the "Invader Punishment" mission +["other", [["Unarmed", _UnarmedTemplate]], _militaryLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; diff --git a/A3A/addons/core/Templates/Templates/Aegis/Aegis_AI_China.sqf b/A3A/addons/core/Templates/Templates/Aegis/Aegis_AI_China.sqf new file mode 100644 index 0000000000..2323bb31a5 --- /dev/null +++ b/A3A/addons/core/Templates/Templates/Aegis/Aegis_AI_China.sqf @@ -0,0 +1,994 @@ +////////////////////////// +// Side Information // +////////////////////////// + +["name", "China"] call _fnc_saveToTemplate; +["spawnMarkerName", "China Support Corridor"] call _fnc_saveToTemplate; + +["flag", "Flag_China_F"] call _fnc_saveToTemplate; +["flagTexture", "\A3_Aegis\Data_F_Aegis\Flags\flag_China_CO.paa"] call _fnc_saveToTemplate; +["flagMarkerType", "flag_China"] call _fnc_saveToTemplate; + +////////////////////////// +// Vehicles // +////////////////////////// + +["ammobox", "B_supplyCrate_F"] call _fnc_saveToTemplate; //Don't touch or you die a sad and lonely death! +["surrenderCrate", "Box_IND_Wps_F"] call _fnc_saveToTemplate; //Changeing this from default will require you to define logistics attachement offset for the box type +["equipmentBox", "Box_NATO_Equip_F"] call _fnc_saveToTemplate; //Changeing this from default will require you to define logistics attachement offset for the box type + +["vehiclesBasic", ["O_T_Quadbike_01_ghex_F"]] call _fnc_saveToTemplate; +["vehiclesLightUnarmed", ["O_T_LSV_02_unarmed_F","O_T_MRAP_02_ghex_F"]] call _fnc_saveToTemplate; +["vehiclesLightArmed",["O_T_MRAP_02_gmg_ghex_F","O_T_MRAP_02_hmg_ghex_F","O_T_LSV_02_armed_F","O_T_LSV_02_AT_F"]] call _fnc_saveToTemplate; +["vehiclesTrucks", ["O_T_Truck_02_transport_F","O_T_Truck_02_F","O_T_Truck_03_transport_ghex_F","O_T_Truck_03_covered_ghex_F"]] call _fnc_saveToTemplate; +private _cargoTrucks = ["O_T_Truck_02_transport_F","O_T_Truck_02_F","O_T_Truck_03_transport_ghex_F","O_T_Truck_03_covered_ghex_F"]; +["vehiclesAmmoTrucks", ["O_T_Truck_03_ammo_ghex_F","O_T_Truck_02_Ammo_F"]] call _fnc_saveToTemplate; +["vehiclesRepairTrucks", ["O_T_Truck_02_Box_F","O_T_Truck_03_repair_ghex_F"]] call _fnc_saveToTemplate; +["vehiclesFuelTrucks", ["O_T_Truck_02_fuel_F","O_T_Truck_03_fuel_ghex_F"]] call _fnc_saveToTemplate; +["vehiclesMedical", ["O_T_Truck_03_medical_ghex_F","O_T_Truck_02_Medical_F"]] call _fnc_saveToTemplate; +["vehiclesLightAPCs", []] call _fnc_saveToTemplate; +["vehiclesAPCs", ["O_T_APC_Wheeled_02_rcws_v2_ghex_F", "a3a_O_T_APC_Wheeled_02_rcws_v2_ghex_F"]] call _fnc_saveToTemplate; +private _vehiclesIFVs = ["a3a_O_T_APC_Tracked_02_cannon_ghex_F", "O_T_APC_Tracked_02_cannon_ghex_F"]; +["vehiclesTanks", ["O_T_MBT_02_cannon_ghex_F"]] call _fnc_saveToTemplate; +["vehiclesAA", ["O_T_APC_Tracked_02_AA_ghex_F"]] call _fnc_saveToTemplate; + +["vehiclesTransportBoats", ["O_T_Boat_Transport_01_F"]] call _fnc_saveToTemplate; +["vehiclesGunBoats", ["O_T_Boat_Armed_01_hmg_F"]] call _fnc_saveToTemplate; +["vehiclesAmphibious", ["O_T_APC_Wheeled_02_rcws_v2_ghex_F"]] call _fnc_saveToTemplate; + +["vehiclesPlanesCAS", ["O_T_Plane_CAS_02_dynamicLoadout_ghex_F"]] call _fnc_saveToTemplate; +["vehiclesPlanesAA", ["O_T_Plane_Fighter_02_ghex_F"]] call _fnc_saveToTemplate; +["vehiclesPlanesTransport", ["O_T_Plane_Transport_01_infantry_ghex_F"]] call _fnc_saveToTemplate; + +["vehiclesHelisLight", ["O_T_Heli_Light_02_unarmed_F"]] call _fnc_saveToTemplate; +["vehiclesHelisTransport", ["O_T_Heli_Transport_04_bench_F","O_T_Heli_Transport_04_covered_F"]] call _fnc_saveToTemplate; +["vehiclesHelisLightAttack", ["O_T_Heli_Light_02_dynamicLoadout_ghex_F"]] call _fnc_saveToTemplate; +["vehiclesHelisAttack", ["O_T_Heli_Attack_02_dynamicLoadout_F"]] call _fnc_saveToTemplate; + +["vehiclesArtillery", ["O_T_MBT_02_arty_ghex_F", "O_T_Truck_02_MRL_F"]] call _fnc_saveToTemplate; +["magazines", createHashMapFromArray [ +["O_T_MBT_02_arty_ghex_F", ["32Rnd_155mm_Mo_shells_O"]], +["O_T_Truck_02_MRL_F", ["12Rnd_230mm_rockets"]] +]] call _fnc_saveToTemplate; + +["uavsAttack", ["O_T_UAV_04_CAS_F"]] call _fnc_saveToTemplate; +["uavsPortable", ["O_T_UAV_01_F"]] call _fnc_saveToTemplate; + +//Config special vehicles - militia vehicles are mostly used in the early game, police cars are being used by troops around cities. +private _vehiclesMilitiaLightArmed = ["O_T_LSV_02_armed_F","O_T_LSV_02_AT_F"]; +["vehiclesMilitiaTrucks", ["O_T_Truck_02_transport_F","O_T_Truck_02_F","O_T_Truck_03_transport_ghex_F","O_T_Truck_03_covered_ghex_F"]] call _fnc_saveToTemplate; +private _vehiclesMilitiaCars = ["O_T_LSV_02_unarmed_F"]; + +private _vehiclesPolice = ["B_GEN_Offroad_01_gen_F"]; + +["staticMGs", ["I_G_HMG_02_high_F"]] call _fnc_saveToTemplate; +["staticAT", ["O_static_AT_F"]] call _fnc_saveToTemplate; +["staticAA", ["O_static_AA_F"]] call _fnc_saveToTemplate; +["staticMortars", ["O_Mortar_01_F"]] call _fnc_saveToTemplate; + +["mortarMagazineHE", "8Rnd_82mm_Mo_shells"] call _fnc_saveToTemplate; +["mortarMagazineSmoke", "8Rnd_82mm_Mo_Smoke_white"] call _fnc_saveToTemplate; +["mortarMagazineFlare", "8Rnd_82mm_Mo_Flare_white"] call _fnc_saveToTemplate; + +//Minefield definition +["minefieldAT", ["ATMine"]] call _fnc_saveToTemplate; +["minefieldAPERS", ["APERSMine"]] call _fnc_saveToTemplate; + +//If Western Sahara DLC +if ("ws" in A3A_enabledDLC) then { + _cargoTrucks append ["O_T_Truck_02_cargo_lxWS","O_T_Truck_02_flatbed_lxWS"]; + ["uavsPortable", ["O_UAV_01_F", "O_UAV_02_lxWS"]] call _fnc_saveToTemplate; + ["vehiclesLightAPCs", ["O_T_APC_Wheeled_02_hmg_lxWS", "O_T_APC_Wheeled_02_unarmed_lxWS"]] call _fnc_saveToTemplate; + _vehiclesIFVs append ["O_T_APC_Tracked_02_30mm_lxWS"]; +}; +if ("enoch" in A3A_enabledDLC) then { + _vehiclesPolice append ["B_GEN_Offroad_01_comms_F","B_GEN_Offroad_01_covered_F"]; +}; +if ("tanks" in A3A_enabledDLC) then { + ["vehiclesHeavyTanks", ["O_T_MBT_04_cannon_F", "O_T_MBT_04_command_F"]] call _fnc_saveToTemplate; +}; +if ("orange" in A3A_enabledDLC) then { + _vehiclesPolice append ["B_GEN_Van_02_vehicle_F","B_GEN_Van_02_transport_F"]; +}; +if ("rf" in A3A_enabledDLC) then { + _vehiclesPolice append ["a3a_police_Pickup_rf", "B_GEN_Pickup_covered_rf", "a3a_police_Pickup_comms_rf"]; + _vehiclesMilitiaCars append ["O_T_Pickup_rf"]; + _vehiclesMilitiaLightArmed append ["a3a_ghex_Pickup_mmg_rf"]; +}; + +["vehiclesMilitiaCars", _vehiclesMilitiaCars] call _fnc_saveToTemplate; +["vehiclesMilitiaLightArmed", _vehiclesMilitiaLightArmed] call _fnc_saveToTemplate; +["vehiclesPolice", _vehiclesPolice] call _fnc_saveToTemplate; + +["vehiclesIFVs", _vehiclesIFVs] call _fnc_saveToTemplate; +["vehiclesCargoTrucks", _cargoTrucks] call _fnc_saveToTemplate; + +#include "Aegis_Vehicle_Attributes.sqf" + +///////////////////// +/// Identities /// +///////////////////// + +["voices", ["Male01CHI","Male02CHI","Male03CHI"]] call _fnc_saveToTemplate; +["faces", ["AsianHead_A3_01","AsianHead_A3_02","AsianHead_A3_03","AsianHead_A3_04","AsianHead_A3_05","AsianHead_A3_06","AsianHead_A3_07"]] call _fnc_saveToTemplate; +"ChineseMen" call _fnc_saveNames; + +////////////////////////// +// Loadouts // +////////////////////////// +private _loadoutData = call _fnc_createLoadoutData; +_loadoutData set ["slRifles", []]; +_loadoutData set ["rifles", []]; +_loadoutData set ["carbines", []]; +_loadoutData set ["grenadeLaunchers", []]; +_loadoutData set ["shotGuns", []]; +_loadoutData set ["SMGs", []]; +_loadoutData set ["machineGuns", []]; +_loadoutData set ["marksmanRifles", []]; +_loadoutData set ["sniperRifles", []]; +_loadoutData set ["lightATLaunchers", ["Aegis_launch_RPG7M_F"]]; +_loadoutData set ["ATLaunchers", [ +["launch_RPG32_ghex_F", "", "", "", ["RPG32_F", "RPG32_HE_F"], [], ""], +["launch_RPG32_ghex_F", "", "", "", ["RPG32_F"], [], ""], +["launch_RPG32_ghex_F", "", "", "", ["RPG32_HE_F"], [], ""] +]]; +_loadoutData set ["missileATLaunchers", [ +["launch_O_Titan_short_ghex_F", "", "acc_pointer_IR", "", ["Titan_AT"], [], ""], +["launch_O_Titan_short_ghex_F", "", "acc_pointer_IR", "", ["Titan_AT"], [], ""], +["launch_O_Vorona_green_F", "", "", "", ["Vorona_HEAT", "Vorona_HE"], [], ""], +["launch_O_Vorona_green_F", "", "", "", ["Vorona_HEAT"], [], ""] +]]; +_loadoutData set ["AALaunchers", [ +["launch_O_Titan_ghex_F", "", "acc_pointer_IR", "", ["Titan_AA"], [], ""] +]]; +_loadoutData set ["sidearms", []]; + +_loadoutData set ["ATMines", ["ATMine_Range_Mag"]]; +_loadoutData set ["APMines", ["APERSMine_Range_Mag"]]; +_loadoutData set ["lightExplosives", ["DemoCharge_Remote_Mag"]]; +_loadoutData set ["heavyExplosives", ["SatchelCharge_Remote_Mag"]]; + +_loadoutData set ["antiInfantryGrenades", ["HandGrenade_East", "HandGrenade_Guer"]]; +_loadoutData set ["antiTankGrenades", []]; +_loadoutData set ["smokeGrenades", ["SmokeShell"]]; +_loadoutData set ["signalsmokeGrenades", ["SmokeShellYellow", "SmokeShellRed", "SmokeShellPurple", "SmokeShellOrange", "SmokeShellGreen", "SmokeShellBlue"]]; + + +//Basic equipment. Shouldn't need touching most of the time. +//Mods might override this, or certain mods might want items removed (No GPSs in WW2, for example) +_loadoutData set ["maps", ["ItemMap"]]; +_loadoutData set ["watches", ["ItemWatch"]]; +_loadoutData set ["compasses", ["ItemCompass"]]; +_loadoutData set ["radios", ["ItemRadio"]]; +_loadoutData set ["gpses", ["ItemGPS"]]; +_loadoutData set ["NVGs", ["NVGoggles_OPFOR"]]; +_loadoutData set ["binoculars", ["Binocular"]]; +_loadoutData set ["rangefinders", ["Rangefinder"]]; + +_loadoutData set ["uniforms", []]; +_loadoutData set ["slUniforms", []]; +_loadoutData set ["vests", []]; +_loadoutData set ["Hvests", []]; +_loadoutData set ["glVests", []]; +_loadoutData set ["backpacks", []]; +_loadoutData set ["longRangeRadios", []]; +_loadoutData set ["helmets", []]; +_loadoutData set ["slHat", ["H_Beret_CSAT_01_F"]]; +_loadoutData set ["sniHats", ["H_Booniehat_mgrn"]]; + +//Item *set* definitions. These are added in their entirety to unit loadouts. No randomisation is applied. +_loadoutData set ["items_medical_basic", ["BASIC"] call A3A_fnc_itemset_medicalSupplies]; //this line defines the basic medical loadout for vanilla +_loadoutData set ["items_medical_standard", ["STANDARD"] call A3A_fnc_itemset_medicalSupplies]; //this line defines the standard medical loadout for vanilla +_loadoutData set ["items_medical_medic", ["MEDIC"] call A3A_fnc_itemset_medicalSupplies]; //this line defines the medic medical loadout for vanilla +_loadoutData set ["items_miscEssentials", [] call A3A_fnc_itemset_miscEssentials]; + +//Unit type specific item sets. Add or remove these, depending on the unit types in use. +private _slItems = ["Laserbatteries", "Laserbatteries", "Laserbatteries"]; +private _eeItems = ["ToolKit", "MineDetector"]; +private _mmItems = []; + +if (A3A_hasACE) then { + _slItems append ["ACE_microDAGR", "ACE_DAGR"]; + _eeItems append ["ACE_Clacker", "ACE_DefusalKit"]; + _mmItems append ["ACE_RangeCard", "ACE_ATragMX", "ACE_Kestrel4500"]; +}; + +_loadoutData set ["items_squadLeader_extras", _slItems]; +_loadoutData set ["items_rifleman_extras", []]; +_loadoutData set ["items_medic_extras", []]; +_loadoutData set ["items_grenadier_extras", []]; +_loadoutData set ["items_explosivesExpert_extras", _eeItems]; +_loadoutData set ["items_engineer_extras", _eeItems]; +_loadoutData set ["items_lat_extras", []]; +_loadoutData set ["items_at_extras", []]; +_loadoutData set ["items_aa_extras", []]; +_loadoutData set ["items_machineGunner_extras", []]; +_loadoutData set ["items_marksman_extras", _mmItems]; +_loadoutData set ["items_sniper_extras", _mmItems]; +_loadoutData set ["items_police_extras", []]; +_loadoutData set ["items_crew_extras", []]; +_loadoutData set ["items_unarmed_extras", []]; + +//TODO - ACE overrides for misc essentials, medical and engineer gear + +/////////////////////////////////////// +// Special Forces Loadout Data // +/////////////////////////////////////// + +private _sfLoadoutData = _loadoutData call _fnc_copyLoadoutData; +_sfLoadoutData set ["uniforms", ["U_O_T_Soldier_F"]]; +_sfLoadoutData set ["vests", ["V_HarnessO_ghex_F", "Aegis_V_ChestrigEast_ghex_F"]]; +_sfLoadoutData set ["glVests", ["V_HarnessOGL_ghex_F"]]; +_sfLoadoutData set ["Hvests", ["V_TacVest_oli"]]; +_sfLoadoutData set ["backpacks", ["B_ViperLightHarness_ghex_F", "B_ViperHarness_ghex_F"]]; +_sfLoadoutData set ["helmets", ["H_HelmetSpecO_ghex_F", "H_HelmetSpecO_blk"]]; +_sfLoadoutData set ["NVGs", ["O_NVGoggles_ghex_F"]]; +_sfLoadoutData set ["binoculars", ["Laserdesignator_02_ghex_F"]]; + +_sfLoadoutData set ["slRifles", [ +["arifle_ARX_ghex_F", "muzzle_snds_65_TI_ghex_F", "acc_pointer_IR", "optic_Arco_blk_F", ["30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green_mag_Tracer"], ["10Rnd_50BW_Mag_F"], ""], +["arifle_ARX_ghex_F", "muzzle_snds_65_TI_ghex_F", "acc_pointer_IR", "optic_Arco_ghex_F", ["30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green_mag_Tracer"], ["10Rnd_50BW_Mag_F"], ""], +["arifle_CTAR_GL_ghex_F", "muzzle_snds_58_ghex_F", "acc_pointer_IR", "optic_Arco_blk_F", ["30Rnd_580x42_Mag_F", "30Rnd_580x42_Mag_F", "30Rnd_580x42_Mag_Tracer_F"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_CTAR_GL_ghex_F", "muzzle_snds_58_ghex_F", "acc_pointer_IR", "optic_Arco_ghex_F", ["30Rnd_580x42_Mag_F", "30Rnd_580x42_Mag_F", "30Rnd_580x42_Mag_Tracer_F"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_sfLoadoutData set ["rifles", [ +["arifle_ARX_ghex_F", "muzzle_snds_65_TI_ghex_F", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green_mag_Tracer"], ["10Rnd_50BW_Mag_F"], ""], +["arifle_ARX_ghex_F", "muzzle_snds_65_TI_ghex_F", "acc_pointer_IR", "optic_Aco", ["30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green_mag_Tracer"], ["10Rnd_50BW_Mag_F"], ""], +["arifle_ARX_ghex_F", "muzzle_snds_65_TI_ghex_F", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green_mag_Tracer"], ["10Rnd_50BW_Mag_F"], ""] +]]; +_sfLoadoutData set ["carbines", [ +["arifle_CTAR_ghex_F", "muzzle_snds_58_ghex_F", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_580x42_Mag_F", "30Rnd_580x42_Mag_F", "30Rnd_580x42_Mag_Tracer_F"], [], ""], +["arifle_CTAR_ghex_F", "muzzle_snds_58_ghex_F", "acc_pointer_IR", "optic_Aco", ["30Rnd_580x42_Mag_F", "30Rnd_580x42_Mag_F", "30Rnd_580x42_Mag_Tracer_F"], [], ""], +["arifle_CTAR_ghex_F", "muzzle_snds_58_ghex_F", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_580x42_Mag_F", "30Rnd_580x42_Mag_F", "30Rnd_580x42_Mag_Tracer_F"], [], ""] +]]; +_sfLoadoutData set ["grenadeLaunchers", [ +["arifle_CTAR_GL_ghex_F", "muzzle_snds_58_ghex_F", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_580x42_Mag_F", "30Rnd_580x42_Mag_F", "30Rnd_580x42_Mag_Tracer_F"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_CTAR_GL_ghex_F", "muzzle_snds_58_ghex_F", "acc_pointer_IR", "optic_Aco", ["30Rnd_580x42_Mag_F", "30Rnd_580x42_Mag_F", "30Rnd_580x42_Mag_Tracer_F"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_CTAR_GL_ghex_F", "muzzle_snds_58_ghex_F", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_580x42_Mag_F", "30Rnd_580x42_Mag_F", "30Rnd_580x42_Mag_Tracer_F"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_sfLoadoutData set ["SMGs", [ +["SMG_03C_TR_hex", "muzzle_snds_570", "acc_pointer_IR", "optic_Holosight_smg_blk_F", [], [], ""], +["SMG_03C_TR_hex", "muzzle_snds_570", "acc_pointer_IR", "optic_Aco_smg", [], [], ""], +["SMG_03C_TR_hex", "muzzle_snds_570", "acc_pointer_IR", "Aegis_optic_ROS_SMG", [], [], ""], +["SMG_03C_hex", "muzzle_snds_570", "", "", [], [], ""], +["SMG_02_F", "muzzle_snds_L", "acc_pointer_IR", "optic_Holosight_smg_blk_F", [], [], ""], +["SMG_02_F", "muzzle_snds_L", "acc_pointer_IR", "optic_Aco_smg", [], [], ""], +["SMG_02_F", "muzzle_snds_L", "acc_pointer_IR", "Aegis_optic_ROS_SMG", [], [], ""] +]]; +_sfLoadoutData set ["machineGuns", [ +["arifle_CTARS_ghex_F", "muzzle_snds_58_ghex_F", "acc_pointer_IR", "optic_Holosight_blk_F", ["100Rnd_580x42_Mag_F", "100Rnd_580x42_Mag_Tracer_F"], [], ""], +["arifle_CTARS_ghex_F", "muzzle_snds_58_ghex_F", "acc_pointer_IR", "optic_Aco", ["100Rnd_580x42_Mag_F", "100Rnd_580x42_Mag_Tracer_F"], [], ""], +["arifle_CTARS_ghex_F", "muzzle_snds_58_ghex_F", "acc_pointer_IR", "Aegis_optic_ROS", ["100Rnd_580x42_Mag_F", "100Rnd_580x42_Mag_Tracer_F"], [], ""] +]]; +_sfLoadoutData set ["marksmanRifles", [ +["srifle_DMR_07_ghex_F", "muzzle_snds_65_TI_ghex_F", "", "optic_DMS_ghex_F", [], [], ""], +["srifle_DMR_07_ghex_F", "muzzle_snds_65_TI_ghex_F", "", "optic_Arco_ghex_F", [], [], ""], +["srifle_DMR_07_ghex_F", "muzzle_snds_65_TI_ghex_F", "", "optic_SOS", [], [], ""] +]]; +_sfLoadoutData set ["sniperRifles", [ +["srifle_GM6_ghex_F", "", "", "optic_LRPS_ghex_F", ["5Rnd_127x108_Mag", "5Rnd_127x108_APDS_Mag"], [], ""], +["srifle_GM6_ghex_F", "", "", "optic_SOS", ["5Rnd_127x108_Mag", "5Rnd_127x108_APDS_Mag"], [], ""] +]]; +_sfLoadoutData set ["sidearms", [ +["hgun_Pistol_heavy_02_F", "", "Aegis_acc_pointer_compact_pistol_red", "optic_Yorris", [], [], ""], +["hgun_Rook40_F", "muzzle_snds_L", "", "", [], [], ""] +]]; +///////////////////////////////// +// Military Loadout Data // +///////////////////////////////// + +private _militaryLoadoutData = _loadoutData call _fnc_copyLoadoutData; +_militaryLoadoutData set ["uniforms", ["Aegis_U_O_CombatFatigues_ghex_F", "Aegis_U_O_CombatFatigues_02_ghex_F"]]; +_militaryLoadoutData set ["slUniforms", ["U_O_T_Officer_F"]]; +_militaryLoadoutData set ["vests", ["Aegis_V_OCarrierLuchnik_Lite_grn_F"]]; +_militaryLoadoutData set ["glVests", ["Aegis_V_OCarrierLuchnik_GL_grn_F"]]; +_militaryLoadoutData set ["Hvests", ["Aegis_V_OCarrierLuchnik_CQB_grn_F"]]; +_militaryLoadoutData set ["backpacks", ["B_Carryall_ghex_F", "B_FieldPack_ghex_F", "B_AssaultPack_ghex_F"]]; +_militaryLoadoutData set ["helmets", ["H_HelmetO_ghex_F", "H_HelmetLeaderO_ghex_F"]]; +_militaryLoadoutData set ["binoculars", ["Laserdesignator_02_ghex_F"]]; + +_militaryLoadoutData set ["slRifles", [ +["arifle_CTAR_blk_F", "", "acc_pointer_IR", "optic_Arco_blk_F", [], [], ""], +["arifle_CTAR_GL_blk_F", "", "acc_pointer_IR", "optic_Arco_blk_F", ["30Rnd_580x42_Mag_F", "30Rnd_580x42_Mag_F", "30Rnd_580x42_Mag_Tracer_F"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_militaryLoadoutData set ["rifles", [ +["arifle_CTAR_blk_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_580x42_Mag_F", "30Rnd_580x42_Mag_F", "30Rnd_580x42_Mag_Tracer_F"], [], ""], +["arifle_CTAR_blk_F", "", "acc_pointer_IR", "optic_Aco", ["30Rnd_580x42_Mag_F", "30Rnd_580x42_Mag_F", "30Rnd_580x42_Mag_Tracer_F"], [], ""], +["arifle_CTAR_blk_F", "", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_580x42_Mag_F", "30Rnd_580x42_Mag_F", "30Rnd_580x42_Mag_Tracer_F"], [], ""] +]]; +_militaryLoadoutData set ["carbines", [ +["arifle_CTAR_blk_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_580x42_Mag_F", "30Rnd_580x42_Mag_F", "30Rnd_580x42_Mag_Tracer_F"], [], ""], +["arifle_CTAR_blk_F", "", "acc_pointer_IR", "optic_Aco", ["30Rnd_580x42_Mag_F", "30Rnd_580x42_Mag_F", "30Rnd_580x42_Mag_Tracer_F"], [], ""], +["arifle_CTAR_blk_F", "", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_580x42_Mag_F", "30Rnd_580x42_Mag_F", "30Rnd_580x42_Mag_Tracer_F"], [], ""] +]]; +_militaryLoadoutData set ["grenadeLaunchers", [ +["arifle_CTAR_GL_blk_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_580x42_Mag_F", "30Rnd_580x42_Mag_F", "30Rnd_580x42_Mag_Tracer_F"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_CTAR_GL_blk_F", "", "acc_pointer_IR", "optic_Aco", ["30Rnd_580x42_Mag_F", "30Rnd_580x42_Mag_F", "30Rnd_580x42_Mag_Tracer_F"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_CTAR_GL_blk_F", "", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_580x42_Mag_F", "30Rnd_580x42_Mag_F", "30Rnd_580x42_Mag_Tracer_F"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_militaryLoadoutData set ["shotGuns", [ +["sgun_Mp153_black_F", "", "Aegis_acc_pointer_compact_pistol_red", "", ["4Rnd_12Gauge_Pellets", "4Rnd_12Gauge_Slug"], [], ""] +]]; +_militaryLoadoutData set ["SMGs", [ +["SMG_03C_TR_hex", "", "acc_pointer_IR", "optic_Holosight_smg_blk_F", [], [], ""], +["SMG_03C_TR_hex", "", "acc_pointer_IR", "optic_Aco_smg", [], [], ""], +["SMG_03C_TR_hex", "", "acc_pointer_IR", "Aegis_optic_ROS_SMG", [], [], ""], +["SMG_03C_hex", "", "", "", [], [], ""], +["SMG_02_F", "", "acc_pointer_IR", "optic_Holosight_smg_blk_F", [], [], ""], +["SMG_02_F", "", "acc_pointer_IR", "optic_Aco_smg", [], [], ""], +["SMG_02_F", "", "acc_pointer_IR", "Aegis_optic_ROS_SMG", [], [], ""] +]]; +_militaryLoadoutData set ["machineGuns", [ +["arifle_CTARS_blk_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", ["100Rnd_580x42_Mag_F", "100Rnd_580x42_Mag_Tracer_F"], [], ""], +["arifle_CTARS_blk_F", "", "acc_pointer_IR", "optic_Aco", ["100Rnd_580x42_Mag_F", "100Rnd_580x42_Mag_Tracer_F"], [], ""], +["arifle_CTARS_blk_F", "", "acc_pointer_IR", "Aegis_optic_ROS", ["100Rnd_580x42_Mag_F", "100Rnd_580x42_Mag_Tracer_F"], [], ""] +]]; +_militaryLoadoutData set ["marksmanRifles", [ +["srifle_DMR_07_blk_F", "", "", "optic_DMS", [], [], ""], +["srifle_DMR_07_blk_F", "", "", "optic_Arco_blk_F", [], [], ""], +["srifle_DMR_07_blk_F", "", "", "optic_SOS", [], [], ""] +]]; +_militaryLoadoutData set ["sniperRifles", [ +["srifle_GM6_ghex_F", "", "", "optic_LRPS_ghex_F", ["5Rnd_127x108_Mag", "5Rnd_127x108_APDS_Mag"], [], ""], +["srifle_GM6_ghex_F", "", "", "optic_SOS", ["5Rnd_127x108_Mag", "5Rnd_127x108_APDS_Mag"], [], ""] +]]; +_militaryLoadoutData set ["sidearms", ["hgun_Rook40_F"]]; + +/////////////////////////////// +// Police Loadout Data // +/////////////////////////////// + +private _policeLoadoutData = _loadoutData call _fnc_copyLoadoutData; +_policeLoadoutData set ["uniforms", ["U_B_GEN_Commander_F"]]; +_policeLoadoutData set ["vests", ["V_TacVest_gen_F"]]; +_policeLoadoutData set ["helmets", ["H_Beret_gen_F"]]; + +_policeLoadoutData set ["carbines", [ +["arifle_Mk20C_black_F", "", "acc_flashlight", "", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""] +]]; +_policeLoadoutData set ["shotGuns", [ +["sgun_Mp153_black_F", "", "acc_flashlight_pistol", "", ["4Rnd_12Gauge_Pellets", "4Rnd_12Gauge_Slug"], [], ""] +]]; +_policeLoadoutData set ["SMGs", [ +["SMG_03C_hex", "", "", "", [], [], ""], +["SMG_02_F", "", "acc_flashlight", "", [], [], ""] +]]; +_policeLoadoutData set ["sidearms", ["hgun_Pistol_01_F"]]; + +//////////////////////////////// +// Militia Loadout Data // +//////////////////////////////// + +private _militiaLoadoutData = _loadoutData call _fnc_copyLoadoutData; // touch and shit breaks +_militiaLoadoutData set ["uniforms", ["U_O_T_officer_noInsignia_ghex_F"]]; +_militiaLoadoutData set ["slUniforms", ["U_O_T_Officer_F"]]; +_militiaLoadoutData set ["vests", ["Aegis_V_ChestrigEast_ghex_F", "V_HarnessO_ghex_F", "V_BandollierB_ghex_F"]]; +_militiaLoadoutData set ["glVests", ["V_HarnessOGL_ghex_F"]]; +_militiaLoadoutData set ["Hvests", ["V_TacVest_oli"]]; +_militiaLoadoutData set ["backpacks", ["B_Carryall_ghex_F", "B_FieldPack_ghex_F", "B_AssaultPack_ghex_F"]]; +_militiaLoadoutData set ["helmets", ["H_MilCap_ghex_F"]]; + +_militiaLoadoutData set ["rifles", [ +["Aegis_arifle_AKM74_plum_F", "", "acc_flashlight_pistol", "", ["30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_Tracer_F"], [], ""] +]]; +_militiaLoadoutData set ["carbines", [ +["arifle_AKSM_alt_F", "", "", "", ["30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_Tracer_F"], [], ""] +]]; +_militiaLoadoutData set ["grenadeLaunchers", [ +["Aegis_arifle_AKM74_GL_plum_F", "", "acc_flashlight_pistol", "", ["30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_Tracer_F"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_militiaLoadoutData set ["SMGs", [ +["SMG_02_F", "", "acc_flashlight", "", [], [], ""] +]]; +_militiaLoadoutData set ["machineGuns", [ +["arifle_RPK_F", "", "acc_flashlight_pistol", "", ["75Rnd_762x39_Mag_F", "30Rnd_762x39_Mag_F", "30Rnd_762x39_Mag_Tracer_F"], [], ""] +]]; +_militiaLoadoutData set ["marksmanRifles", [ +["srifle_DMR_07_blk_F", "", "", "optic_Arco_blk_F", [], [], ""] +]]; +_militiaLoadoutData set ["sniperRifles", [ +["srifle_GM6_ghex_F", "", "", "optic_Arco_blk_F", ["5Rnd_127x108_Mag", "5Rnd_127x108_APDS_Mag"], [], ""] +]]; +_militiaLoadoutData set ["sidearms", ["hgun_Rook40_F"]]; + +////////////////////////// +// Misc Loadouts // +////////////////////////// + +private _crewLoadoutData = _militaryLoadoutData call _fnc_copyLoadoutData; +_crewLoadoutData set ["uniforms", ["Aegis_U_O_CombatFatigues_02_ghex_F"]]; +_crewLoadoutData set ["vests", ["Aegis_V_ChestrigEast_ghex_F"]]; +_crewLoadoutData set ["helmets", ["H_HelmetCrew_O", "H_Tank_black_F"]]; + +private _pilotLoadoutData = _militaryLoadoutData call _fnc_copyLoadoutData; +_pilotLoadoutData set ["uniforms", ["U_O_PilotCoveralls"]]; +_pilotLoadoutData set ["vests", ["V_Rangemaster_belt_ghex_F"]]; +_pilotLoadoutData set ["helmets", ["H_CrewHelmetHeli_O", "H_PilotHelmetHeli_O"]]; + +private _traitorLoadoutData = _militaryLoadoutData call _fnc_copyLoadoutData; +_traitorLoadoutData set ["uniforms", ["Aegis_U_O_CombatUniform_tshirt_ghex_F"]]; +_traitorLoadoutData set ["vests", ["V_TacVest_camo"]]; + +private _officerLoadoutData = _loadoutData call _fnc_copyLoadoutData; +_officerLoadoutData set ["uniforms", ["U_O_ParadeUniform_01_CSAT_F", "U_O_ParadeUniform_01_CSAT_decorated_F"]]; +_officerLoadoutData set ["vests", ["V_Rangemaster_belt_ghex_F"]]; +_officerLoadoutData set ["helmets", ["H_ParadeDressCap_01_CSAT_F"]]; +_officerLoadoutData set ["backpacks", []]; +_officerLoadoutData set ["SMGs", [ +["Aegis_arifle_AKS74_gold_F", "", "", "", [], [], ""], +["Aegis_arifle_AK74_gold_F", "", "", "", [], [], ""] +]]; + +if ("mark" in A3A_enabledDLC) then { + (_sfLoadoutData get "machineGuns") append [ + ["MMG_01_black_F", "muzzle_snds_93mmg", "acc_pointer_IR", "optic_Arco", [], [], "bipod_02_F_blk"], + ["MMG_01_ghex_F", "muzzle_snds_93mmg", "acc_pointer_IR", "optic_MRCO", [], [], "bipod_02_F_blk"] + ]; + (_sfLoadoutData get "marksmanRifles") append [ + ["srifle_DMR_04_F", "", "acc_pointer_IR", "optic_Arco_blk_F", [], [], "bipod_02_F_blk"], + ["srifle_DMR_04_F", "", "acc_pointer_IR", "optic_DMS", [], [], "bipod_02_F_blk"], + ["srifle_DMR_04_F", "", "acc_pointer_IR", "optic_KHS_blk", [], [], "bipod_02_F_blk"], + ["srifle_DMR_07_ghex_F", "muzzle_snds_65_TI_ghex_F", "", "optic_KHS_blk", [], [], ""] + ]; + (_sfLoadoutData get "sniperRifles") append [ + ["srifle_DMR_05_ghex_F", "muzzle_snds_93mmg", "acc_pointer_IR", "optic_KHS_blk", [], [], "bipod_02_F_blk"], + ["srifle_DMR_05_blk_F", "muzzle_snds_93mmg", "acc_pointer_IR", "optic_LRPS", [], [], "bipod_02_F_blk"] + ]; + (_militaryLoadoutData get "machineGuns") append [ + ["MMG_01_black_F", "", "acc_pointer_IR", "optic_Arco", [], [], "bipod_02_F_blk"], + ["MMG_01_ghex_F", "", "acc_pointer_IR", "optic_MRCO", [], [], "bipod_02_F_blk"] + ]; + (_militaryLoadoutData get "marksmanRifles") append [ + ["srifle_DMR_07_ghex_F", "", "", "optic_KHS_blk", [], [], ""] + ]; + (_militaryLoadoutData get "sniperRifles") append [ + ["srifle_DMR_05_ghex_F", "", "acc_pointer_IR", "optic_KHS_blk", [], [], "bipod_02_F_blk"], + ["srifle_DMR_05_blk_F", "", "acc_pointer_IR", "optic_LRPS", [], [], "bipod_02_F_blk"] + ]; +}; +if ("ws" in A3A_enabledDLC) then { + (_militaryLoadoutData get "shotGuns") append [ + ["sgun_aa40_lxWS", "", "acc_pointer_IR", "optic_Holosight_smg_blk_F", ["8Rnd_12Gauge_AA40_Pellets_lxWS", "8Rnd_12Gauge_AA40_Slug_lxWS"], [], ""], + ["sgun_aa40_lxWS", "", "acc_pointer_IR", "optic_Aco_smg", ["8Rnd_12Gauge_AA40_Pellets_lxWS", "8Rnd_12Gauge_AA40_Slug_lxWS"], [], ""], + ["sgun_aa40_lxWS", "", "acc_pointer_IR", "Aegis_optic_ROS_SMG", ["20Rnd_12Gauge_AA40_Pellets_lxWS", "20Rnd_12Gauge_AA40_Slug_lxWS"], [], ""] + ]; +}; +if ("rf" in A3A_enabledDLC) then { + (_sfLoadoutData get "slRifles") append [ + ["arifle_ash12_wood_RF","suppressor_127x55_small_wood_RF","acc_pointer_IR","optic_Arco_ghex_F",["20Rnd_127x55_Mag_wood_RF","20Rnd_127x55_Mag_wood_RF","20Rnd_127x55_Mag_wood_RF"], [], ""], + ["arifle_ash12_wood_RF","suppressor_127x55_small_wood_RF","acc_pointer_IR","optic_Arco_ghex_F",["20Rnd_127x55_Mag_wood_RF","20Rnd_127x55_Mag_wood_RF","20Rnd_127x55_Mag_wood_RF"], [], ""] + ]; + (_sfLoadoutData get "rifles") append [["arifle_ash12_wood_RF","suppressor_127x55_small_wood_RF","acc_pointer_IR","optic_Holosight_lush_F",["20Rnd_127x55_Mag_wood_RF","20Rnd_127x55_Mag_wood_RF","20Rnd_127x55_Mag_wood_RF"], [], ""]]; + (_sfLoadoutData get "grenadeLaunchers") append [["arifle_ash12_GL_wood_RF", "suppressor_127x55_small_wood_RF", "acc_pointer_IR", "optic_Holosight_lush_F", ["20Rnd_127x55_Mag_wood_RF","20Rnd_127x55_Mag_wood_RF","20Rnd_127x55_Mag_wood_RF"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""]]; + (_sfLoadoutData get "marksmanRifles") append [ + ["arifle_ash12_LR_wood_RF","suppressor_127x55_big_wood_RF","acc_pointer_IR","optic_Arco_ghex_F",["10Rnd_127x55_Mag_wood_RF","10Rnd_127x55_Mag_wood_RF","10Rnd_127x55_Mag_wood_RF"], [], "bipod_02_F_hex"], + ["arifle_ash12_LR_wood_RF","suppressor_127x55_big_wood_RF","acc_pointer_IR","optic_DMS",["10Rnd_127x55_Mag_wood_RF","10Rnd_127x55_Mag_wood_RF","10Rnd_127x55_Mag_wood_RF"], [], "bipod_02_F_hex"], + ["arifle_ash12_LR_wood_RF","suppressor_127x55_big_wood_RF","acc_pointer_IR","optic_SOS",["10Rnd_127x55_Mag_wood_RF","10Rnd_127x55_Mag_wood_RF","10Rnd_127x55_Mag_wood_RF"], [], "bipod_02_F_hex"] + ]; + (_sfLoadoutData get "helmets") append [ + "H_HelmetHeavy_GHex_RF", + "H_HelmetHeavy_Simple_GHex_RF", + "H_HelmetHeavy_VisorUp_GHex_RF" + ]; + (_policeLoadoutData get "sidearms") append ["hgun_Glock19_RF"]; + (_sfLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "muzzle_snds_acp", "", "optic_Holosight", [], [], ""], + ["SMG_01_black_RF", "muzzle_snds_acp", "", "optic_Aco_smg", [], [], ""] + ]; + (_militaryLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "", "", "optic_Holosight", [], [], ""], + ["SMG_01_black_RF", "", "", "optic_Aco_smg", [], [], ""] + ]; + (_militiaLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "", "acc_flashlight_smg_01", "", [], [], ""] + ]; + (_policeLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "", "acc_flashlight_smg_01", "optic_Holosight", [], [], ""], + ["SMG_01_black_RF", "", "acc_flashlight_smg_01", "optic_Aco_smg", [], [], ""] + ]; +}; + + +///////////////////////////////// +// Unit Type Definitions // +///////////////////////////////// + + +private _squadLeaderTemplate = { + ["slHat"] call _fnc_setHelmet; + [["Hvests", "vests"] call _fnc_fallback] call _fnc_setVest; + [["slUniforms", "uniforms"] call _fnc_fallback] call _fnc_setUniform; + + ["backpacks"] call _fnc_setBackpack; + + [["slRifles", "rifles"] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + ["primary", 4] call _fnc_addAdditionalMuzzleMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_squadLeader_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 2] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + ["signalsmokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["gpses"] call _fnc_addGPS; + ["binoculars"] call _fnc_addBinoculars; + ["NVGs"] call _fnc_addNVGs; +}; + +private _riflemanTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + ["primary", 2] call _fnc_addAdditionalMuzzleMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_rifleman_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 2] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _medicTemplate = { + ["helmets"] call _fnc_setHelmet; + [["Hvests", "vests"] call _fnc_fallback] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["carbines", "SMGs"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_medic"] call _fnc_addItemSet; + ["items_medic_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _grenadierTemplate = { + ["helmets"] call _fnc_setHelmet; + [["glVests", "vests"] call _fnc_fallback] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + ["grenadeLaunchers"] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + ["primary", 10] call _fnc_addAdditionalMuzzleMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_grenadier_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 4] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _explosivesExpertTemplate = { + ["helmets"] call _fnc_setHelmet; + [["Hvests", "vests"] call _fnc_fallback] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [[selectRandom ["carbines", "shotGuns", "rifles"], selectRandom ["carbines", "rifles"]] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + ["primary", 2] call _fnc_addAdditionalMuzzleMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_explosivesExpert_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + + ["lightExplosives", 2] call _fnc_addItem; + if (random 1 > 0.5) then {["heavyExplosives", 1] call _fnc_addItem;}; + if (random 1 > 0.5) then {["atMines", 1] call _fnc_addItem;}; + if (random 1 > 0.5) then {["apMines", 1] call _fnc_addItem;}; + + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _engineerTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [[selectRandom ["carbines", "shotGuns", "SMGs"], selectRandom ["carbines", "SMGs"]] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_engineer_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + + if (random 1 > 0.5) then {["lightExplosives", 1] call _fnc_addItem;}; + + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _latTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + ["primary", 2] call _fnc_addAdditionalMuzzleMagazines; + + [["lightATLaunchers", "ATLaunchers"] call _fnc_fallback] call _fnc_setLauncher; + //TODO - Add a check if it's disposable. + ["launcher", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_lat_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _atTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + ["primary", 2] call _fnc_addAdditionalMuzzleMagazines; + + [selectRandom ["ATLaunchers", "missileATLaunchers"]] call _fnc_setLauncher; + //TODO - Add a check if it's disposable. + ["launcher", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_at_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _aaTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + ["primary", 2] call _fnc_addAdditionalMuzzleMagazines; + + ["AALaunchers"] call _fnc_setLauncher; + //TODO - Add a check if it's disposable. + ["launcher", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_aa_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _machineGunnerTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + ["machineGuns"] call _fnc_setPrimary; + ["primary", 4] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_machineGunner_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _marksmanTemplate = { + ["sniHats"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + ["marksmanRifles"] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_marksman_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["rangefinders"] call _fnc_addBinoculars; + ["NVGs"] call _fnc_addNVGs; +}; + +private _sniperTemplate = { + ["sniHats"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + ["sniperRifles"] call _fnc_setPrimary; + ["primary", 7] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_sniper_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["rangefinders"] call _fnc_addBinoculars; + ["NVGs"] call _fnc_addNVGs; +}; + +private _policeTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + [[selectRandom ["carbines", "shotGuns", "SMGs"], "SMGs"] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_police_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; +}; + +private _crewTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + [selectRandom ["carbines", "SMGs"]] call _fnc_setPrimary; + ["primary", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_basic"] call _fnc_addItemSet; + ["items_crew_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["gpses"] call _fnc_addGPS; + ["NVGs"] call _fnc_addNVGs; +}; + +private _unarmedTemplate = { + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + ["items_medical_basic"] call _fnc_addItemSet; + ["items_unarmed_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; +}; + +private _traitorTemplate = { + call _unarmedTemplate; + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; +}; + +//////////////////////////////////////////////////////////////////////////////////////// +// You shouldn't touch below this line unless you really really know what you're doing. +// Things below here can and will break the gamemode if improperly changed. +//////////////////////////////////////////////////////////////////////////////////////// + +///////////////////////////// +// Special Forces Units // +///////////////////////////// +private _prefix = "SF"; +private _unitTypes = [ + ["SquadLeader", _squadLeaderTemplate], + ["Rifleman", _riflemanTemplate], + ["Medic", _medicTemplate, [["medic", true]]], + ["Engineer", _engineerTemplate, [["engineer", true]]], + ["ExplosivesExpert", _explosivesExpertTemplate, [["explosiveSpecialist", true]]], + ["Grenadier", _grenadierTemplate], + ["LAT", _latTemplate], + ["AT", _atTemplate], + ["AA", _aaTemplate], + ["MachineGunner", _machineGunnerTemplate], + ["Marksman", _marksmanTemplate], + ["Sniper", _sniperTemplate] +]; + +[_prefix, _unitTypes, _sfLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +/*{ + params ["_name", "_loadoutTemplate"]; + private _loadouts = [_sfLoadoutData, _loadoutTemplate] call _fnc_buildLoadouts; + private _finalName = _prefix + _name; + [_finalName, _loadouts] call _fnc_saveToTemplate; +} forEach _unitTypes; +*/ + +/////////////////////// +// Military Units // +/////////////////////// +private _prefix = "military"; +private _unitTypes = [ + ["SquadLeader", _squadLeaderTemplate], + ["Rifleman", _riflemanTemplate], + ["Medic", _medicTemplate, [["medic", true]]], + ["Engineer", _engineerTemplate, [["engineer", true]]], + ["ExplosivesExpert", _explosivesExpertTemplate, [["explosiveSpecialist", true]]], + ["Grenadier", _grenadierTemplate], + ["LAT", _latTemplate], + ["AT", _atTemplate], + ["AA", _aaTemplate], + ["MachineGunner", _machineGunnerTemplate], + ["Marksman", _marksmanTemplate], + ["Sniper", _sniperTemplate] +]; + +[_prefix, _unitTypes, _militaryLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +//////////////////////// +// Police Units // +//////////////////////// +private _prefix = "police"; +private _unitTypes = [ + ["SquadLeader", _policeTemplate], + ["Standard", _policeTemplate] +]; + +[_prefix, _unitTypes, _policeLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +//////////////////////// +// Militia Units // +//////////////////////// +private _prefix = "militia"; +private _unitTypes = [ + ["SquadLeader", _squadLeaderTemplate], + ["Rifleman", _riflemanTemplate], + ["Medic", _medicTemplate, [["medic", true]]], + ["Engineer", _engineerTemplate, [["engineer", true]]], + ["ExplosivesExpert", _explosivesExpertTemplate, [["explosiveSpecialist", true]]], + ["Grenadier", _grenadierTemplate], + ["LAT", _latTemplate], + ["AT", _atTemplate], + ["AA", _aaTemplate], + ["MachineGunner", _machineGunnerTemplate], + ["Marksman", _marksmanTemplate], + ["Sniper", _sniperTemplate] +]; + +[_prefix, _unitTypes, _militiaLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +////////////////////// +// Misc Units // +////////////////////// + +//The following lines are determining the loadout of vehicle crew +["other", [["Crew", _crewTemplate]], _crewLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout of the pilots +["other", [["Pilot", _crewTemplate]], _pilotLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout for the unit used in the "kill the official" mission +["other", [["Official", _policeTemplate]], _officerLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout for the AI used in the "kill the traitor" mission +["other", [["Traitor", _traitorTemplate]], _traitorLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout for the AI used in the "Invader Punishment" mission +["other", [["Unarmed", _UnarmedTemplate]], _militaryLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; diff --git a/A3A/addons/core/Templates/Templates/Aegis/Aegis_AI_Iran.sqf b/A3A/addons/core/Templates/Templates/Aegis/Aegis_AI_Iran.sqf new file mode 100644 index 0000000000..9ec1f6b4f6 --- /dev/null +++ b/A3A/addons/core/Templates/Templates/Aegis/Aegis_AI_Iran.sqf @@ -0,0 +1,996 @@ +////////////////////////// +// Side Information // +////////////////////////// + +["name", "Iran"] call _fnc_saveToTemplate; +["spawnMarkerName", "Iran Support Corridor"] call _fnc_saveToTemplate; + +["flag", "Flag_Iran_F"] call _fnc_saveToTemplate; +["flagTexture", "\A3_Aegis\Data_F_Aegis\Flags\flag_Iran_CO.paa"] call _fnc_saveToTemplate; +["flagMarkerType", "flag_Iran"] call _fnc_saveToTemplate; + +////////////////////////// +// Vehicles // +////////////////////////// + +["ammobox", "B_supplyCrate_F"] call _fnc_saveToTemplate; //Don't touch or you die a sad and lonely death! +["surrenderCrate", "Box_IND_Wps_F"] call _fnc_saveToTemplate; //Changeing this from default will require you to define logistics attachement offset for the box type +["equipmentBox", "Box_NATO_Equip_F"] call _fnc_saveToTemplate; //Changeing this from default will require you to define logistics attachement offset for the box type + +["vehiclesBasic", ["O_Quadbike_01_F"]] call _fnc_saveToTemplate; +private _LightUnarmed = ["O_MRAP_02_F"]; +private _LightArmed = ["O_MRAP_02_hmg_F", "O_MRAP_02_hmg_F", "O_MRAP_02_gmg_F"]; +["vehiclesTrucks", ["O_Truck_02_transport_F", "O_Truck_02_covered_F", "O_Truck_03_transport_F", "O_Truck_03_covered_F"]] call _fnc_saveToTemplate; +private _cargoTrucks = ["O_Truck_02_transport_F", "O_Truck_02_covered_F", "O_Truck_03_transport_F", "O_Truck_03_covered_F"]; +["vehiclesAmmoTrucks", ["O_Truck_02_Ammo_F", "O_Truck_03_ammo_F"]] call _fnc_saveToTemplate; +["vehiclesRepairTrucks", ["O_Truck_02_box_F", "O_Truck_03_repair_F"]] call _fnc_saveToTemplate; +["vehiclesFuelTrucks", ["O_Truck_03_fuel_F", "O_Truck_02_fuel_F"]] call _fnc_saveToTemplate; +["vehiclesMedical", ["O_Truck_02_medical_F", "O_Truck_03_medical_F"]] call _fnc_saveToTemplate; +["vehiclesLightAPCs", []] call _fnc_saveToTemplate; +["vehiclesAPCs", ["O_APC_Wheeled_02_rcws_v2_F", "a3a_O_APC_Wheeled_02_rcws_v2_F"]] call _fnc_saveToTemplate; +private _vehiclesIFVs = ["a3a_O_APC_Tracked_02_cannon_F", "O_APC_Tracked_02_cannon_F"]; +["vehiclesTanks", ["O_MBT_02_cannon_F"]] call _fnc_saveToTemplate; +["vehiclesAA", ["O_APC_Tracked_02_AA_F"]] call _fnc_saveToTemplate; + +["vehiclesTransportBoats", ["O_Boat_Transport_01_F"]] call _fnc_saveToTemplate; +["vehiclesGunBoats", ["O_Boat_Armed_01_hmg_F"]] call _fnc_saveToTemplate; +["vehiclesAmphibious", ["O_APC_Wheeled_02_rcws_v2_F"]] call _fnc_saveToTemplate; + +["vehiclesPlanesCAS", ["O_Plane_CAS_02_dynamicLoadout_F"]] call _fnc_saveToTemplate; +["vehiclesPlanesAA", ["O_Plane_Fighter_02_F"]] call _fnc_saveToTemplate; +["vehiclesPlanesTransport", ["O_Plane_Transport_01_infantry_F", "O_VTOL_02_infantry_dynamicLoadout_F"]] call _fnc_saveToTemplate; + +["vehiclesHelisLight", ["O_Heli_Light_02_unarmed_F"]] call _fnc_saveToTemplate; +["vehiclesHelisTransport", ["O_Heli_Light_02_unarmed_F", "O_Heli_Transport_04_covered_F", "O_Heli_Transport_04_bench_F"]] call _fnc_saveToTemplate; +["vehiclesHelisLightAttack", ["O_Heli_Light_02_dynamicLoadout_F"]] call _fnc_saveToTemplate; +["vehiclesHelisAttack", ["O_Heli_Attack_02_dynamicLoadout_F"]] call _fnc_saveToTemplate; + +["vehiclesArtillery", ["O_MBT_02_arty_F", "O_Truck_02_MRL_F"]] call _fnc_saveToTemplate; +["magazines", createHashMapFromArray [ +["O_MBT_02_arty_F",["32Rnd_155mm_Mo_shells_O"]], +["O_Truck_02_MRL_F", ["12Rnd_230mm_rockets"]] +]] call _fnc_saveToTemplate; + +["uavsAttack", ["O_UAV_02_dynamicLoadout_F"]] call _fnc_saveToTemplate; +["uavsPortable", ["O_UAV_01_F"]] call _fnc_saveToTemplate; + +//Config special vehicles - militia vehicles are mostly used in the early game, police cars are being used by troops around cities. +private _vehiclesMilitiaLightArmed = ["a3a_Offroad_01_tan_armed_F", "a3a_Offroad_01_tan_AT_F"]; +["vehiclesMilitiaTrucks", ["O_Truck_02_covered_F"]] call _fnc_saveToTemplate; +private _vehiclesMilitiaCars = ["a3a_Offroad_01_tan_F"]; + +private _vehiclesPolice = ["B_GEN_Offroad_01_gen_F"]; + +["staticMGs", ["I_HMG_02_high_F"]] call _fnc_saveToTemplate; +["staticAT", ["O_static_AT_F"]] call _fnc_saveToTemplate; +["staticAA", ["O_static_AA_F"]] call _fnc_saveToTemplate; +["staticMortars", ["O_Mortar_01_F"]] call _fnc_saveToTemplate; + +["mortarMagazineHE", "8Rnd_82mm_Mo_shells"] call _fnc_saveToTemplate; +["mortarMagazineSmoke", "8Rnd_82mm_Mo_Smoke_white"] call _fnc_saveToTemplate; +["mortarMagazineFlare", "8Rnd_82mm_Mo_Flare_white"] call _fnc_saveToTemplate; + +//Minefield definition +["minefieldAT", ["ATMine"]] call _fnc_saveToTemplate; +["minefieldAPERS", ["APERSMine"]] call _fnc_saveToTemplate; + +//If Western Sahara DLC +if ("ws" in A3A_enabledDLC) then { + _cargoTrucks append ["O_Truck_02_cargo_lxWS","O_Truck_02_flatbed_lxWS"]; + ["uavsPortable", ["O_UAV_01_F", "O_UAV_02_lxWS"]] call _fnc_saveToTemplate; + ["vehiclesLightAPCs", ["O_APC_Wheeled_02_hmg_lxWS", "O_APC_Wheeled_02_unarmed_lxWS"]] call _fnc_saveToTemplate; + _vehiclesIFVs append ["a3a_APC_Tracked_02_30mm_lxWS"]; +}; +if ("enoch" in A3A_enabledDLC) then { + _vehiclesMilitiaCars append ["a3a_Offroad_01_comms_tan_F", "a3a_Offroad_01_covered_tan_F"]; + _vehiclesPolice append ["B_GEN_Offroad_01_comms_F","B_GEN_Offroad_01_covered_F"]; +}; +if ("tanks" in A3A_enabledDLC) then { + ["vehiclesHeavyTanks", ["O_MBT_04_cannon_F", "O_MBT_04_command_F"]] call _fnc_saveToTemplate; +}; +if ("expansion" in A3A_enabledDLC) then { + _LightUnarmed append ["O_MRAP_02_F", "O_LSV_02_unarmed_F"]; + _LightArmed append ["O_LSV_02_AT_F", "O_LSV_02_armed_F"]; +}; +if ("orange" in A3A_enabledDLC) then { + _vehiclesPolice append ["B_GEN_Van_02_vehicle_F","B_GEN_Van_02_transport_F"]; +}; +if ("rf" in A3A_enabledDLC) then { + _vehiclesPolice append ["a3a_police_Pickup_rf", "B_GEN_Pickup_covered_rf", "a3a_police_Pickup_comms_rf"]; + _vehiclesMilitiaCars append ["O_Pickup_rf"]; + _vehiclesMilitiaLightArmed append ["a3a_hex_Pickup_mmg_rf"]; +}; + +["vehiclesLightUnarmed", _LightUnarmed] call _fnc_saveToTemplate; +["vehiclesLightArmed", _LightArmed] call _fnc_saveToTemplate; +["vehiclesIFVs", _vehiclesIFVs] call _fnc_saveToTemplate; +["vehiclesCargoTrucks", _cargoTrucks] call _fnc_saveToTemplate; + +["vehiclesMilitiaCars", _vehiclesMilitiaCars] call _fnc_saveToTemplate; +["vehiclesMilitiaLightArmed", _vehiclesMilitiaLightArmed] call _fnc_saveToTemplate; + +["vehiclesPolice", _vehiclesPolice] call _fnc_saveToTemplate; + +#include "Aegis_Vehicle_Attributes.sqf" + +///////////////////// +/// Identities /// +///////////////////// + +["voices", ["Male01PER","Male02PER","Male03PER"]] call _fnc_saveToTemplate; +["faces", ["PersianHead_A3_01","PersianHead_A3_02","PersianHead_A3_03"]] call _fnc_saveToTemplate; +"TakistaniMen" call _fnc_saveNames; + +////////////////////////// +// Loadouts // +////////////////////////// +private _loadoutData = call _fnc_createLoadoutData; +_loadoutData set ["slRifles", []]; +_loadoutData set ["rifles", []]; +_loadoutData set ["carbines", []]; +_loadoutData set ["grenadeLaunchers", []]; +_loadoutData set ["shotGuns", []]; +_loadoutData set ["SMGs", []]; +_loadoutData set ["machineGuns", []]; +_loadoutData set ["marksmanRifles", []]; +_loadoutData set ["sniperRifles", []]; +_loadoutData set ["lightATLaunchers", ["Aegis_launch_RPG7M_F"]]; +_loadoutData set ["ATLaunchers", [ +["launch_RPG32_F", "", "", "", ["RPG32_F", "RPG32_HE_F"], [], ""], +["launch_RPG32_F", "", "", "", ["RPG32_F"], [], ""], +["launch_RPG32_F", "", "", "", ["RPG32_HE_F"], [], ""] +]]; +_loadoutData set ["missileATLaunchers", [ +["launch_O_Titan_short_F", "", "acc_pointer_IR", "", ["Titan_AT"], [], ""], +["launch_O_Titan_short_F", "", "acc_pointer_IR", "", ["Titan_AT"], [], ""], +["launch_O_Vorona_brown_F", "", "", "", ["Vorona_HEAT", "Vorona_HE"], [], ""], +["launch_O_Vorona_brown_F", "", "", "", ["Vorona_HEAT"], [], ""] +]]; +_loadoutData set ["AALaunchers", [ +["launch_O_Titan_F", "", "acc_pointer_IR", "", ["Titan_AA"], [], ""] +]]; +_loadoutData set ["sidearms", []]; + +_loadoutData set ["ATMines", ["ATMine_Range_Mag"]]; +_loadoutData set ["APMines", ["APERSMine_Range_Mag"]]; +_loadoutData set ["lightExplosives", ["DemoCharge_Remote_Mag"]]; +_loadoutData set ["heavyExplosives", ["SatchelCharge_Remote_Mag"]]; + +_loadoutData set ["antiInfantryGrenades", ["HandGrenade_East", "HandGrenade_Guer"]]; +_loadoutData set ["antiTankGrenades", []]; +_loadoutData set ["smokeGrenades", ["SmokeShell"]]; +_loadoutData set ["signalsmokeGrenades", ["SmokeShellYellow", "SmokeShellRed", "SmokeShellPurple", "SmokeShellOrange", "SmokeShellGreen", "SmokeShellBlue"]]; + +//Basic equipment. Shouldn't need touching most of the time. +//Mods might override this, or certain mods might want items removed (No GPSs in WW2, for example) +_loadoutData set ["maps", ["ItemMap"]]; +_loadoutData set ["watches", ["ItemWatch"]]; +_loadoutData set ["compasses", ["ItemCompass"]]; +_loadoutData set ["radios", ["ItemRadio"]]; +_loadoutData set ["gpses", ["ItemGPS"]]; +_loadoutData set ["NVGs", ["NVGoggles_OPFOR"]]; +_loadoutData set ["binoculars", ["Binocular"]]; +_loadoutData set ["rangefinders", ["Rangefinder"]]; + +//Basically all the clothing which the units use. +//don't fill these lines - this is only to set the variables. +_loadoutData set ["uniforms", []]; +_loadoutData set ["slUniforms", []]; +_loadoutData set ["vests", []]; +_loadoutData set ["Hvests", []]; +_loadoutData set ["glVests", []]; +_loadoutData set ["backpacks", []]; +_loadoutData set ["longRangeRadios", []]; +_loadoutData set ["helmets", []]; +_loadoutData set ["slHat", ["H_Beret_CSAT_01_F"]]; +_loadoutData set ["sniHats", ["H_Booniehat_khk"]]; + +//Item *set* definitions. These are added in their entirety to unit loadouts. No randomisation is applied. +_loadoutData set ["items_medical_basic", ["BASIC"] call A3A_fnc_itemset_medicalSupplies]; //this line defines the basic medical loadout for vanilla +_loadoutData set ["items_medical_standard", ["STANDARD"] call A3A_fnc_itemset_medicalSupplies]; //this line defines the standard medical loadout for vanilla +_loadoutData set ["items_medical_medic", ["MEDIC"] call A3A_fnc_itemset_medicalSupplies]; //this line defines the medic medical loadout for vanilla +_loadoutData set ["items_miscEssentials", [] call A3A_fnc_itemset_miscEssentials]; + +//Unit type specific item sets. Add or remove these, depending on the unit types in use. +private _slItems = ["Laserbatteries", "Laserbatteries", "Laserbatteries"]; +private _eeItems = ["ToolKit", "MineDetector"]; +private _mmItems = []; + +if (A3A_hasACE) then { + _slItems append ["ACE_microDAGR", "ACE_DAGR"]; + _eeItems append ["ACE_Clacker", "ACE_DefusalKit"]; + _mmItems append ["ACE_RangeCard", "ACE_ATragMX", "ACE_Kestrel4500"]; +}; + +_loadoutData set ["items_squadLeader_extras", _slItems]; +_loadoutData set ["items_rifleman_extras", []]; +_loadoutData set ["items_medic_extras", []]; +_loadoutData set ["items_grenadier_extras", []]; +_loadoutData set ["items_explosivesExpert_extras", _eeItems]; +_loadoutData set ["items_engineer_extras", _eeItems]; +_loadoutData set ["items_lat_extras", []]; +_loadoutData set ["items_at_extras", []]; +_loadoutData set ["items_aa_extras", []]; +_loadoutData set ["items_machineGunner_extras", []]; +_loadoutData set ["items_marksman_extras", _mmItems]; +_loadoutData set ["items_sniper_extras", _mmItems]; +_loadoutData set ["items_police_extras", []]; +_loadoutData set ["items_crew_extras", []]; +_loadoutData set ["items_unarmed_extras", []]; + +//TODO - ACE overrides for misc essentials, medical and engineer gear + +/////////////////////////////////////// +// Special Forces Loadout Data // +/////////////////////////////////////// + +private _sfLoadoutData = _loadoutData call _fnc_copyLoadoutData; // touch and shit breaks +_sfLoadoutData set ["uniforms", ["U_O_CombatUniform_ocamo"]]; +_sfLoadoutData set ["vests", ["V_HarnessO_brn", "Aegis_V_ChestrigEast_hex_F"]]; +_sfLoadoutData set ["glVests", ["V_HarnessOGL_brn"]]; +_sfLoadoutData set ["Hvests", ["V_TacVest_brn"]]; +_sfLoadoutData set ["backpacks", ["B_TacticalPack_ocamo", "B_Carryall_ocamo", "B_FieldPack_ocamo", "B_Carryall_ocamo", "B_AssaultPack_ocamo"]]; +_sfLoadoutData set ["helmets", ["H_HelmetSpecO_ocamo"]]; +_sfLoadoutData set ["binoculars", ["Laserdesignator_02"]]; +//SF Weapons +_sfLoadoutData set ["slRifles", [ +["arifle_Katiba_F", "muzzle_snds_H", "acc_pointer_IR", "optic_Arco_blk_F", ["30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green_mag_Tracer"], [], ""], +["arifle_Katiba_GL_F", "muzzle_snds_H", "acc_pointer_IR", "optic_Arco_blk_F", ["30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_sfLoadoutData set ["rifles", [ +["arifle_Katiba_F", "muzzle_snds_H", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green_mag_Tracer"], [], ""], +["arifle_Katiba_F", "muzzle_snds_H", "acc_pointer_IR", "optic_Aco", ["30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green_mag_Tracer"], [], ""], +["arifle_Katiba_F", "muzzle_snds_H", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green_mag_Tracer"], [], ""] +]]; +_sfLoadoutData set ["carbines", [ +["arifle_Katiba_C_F", "muzzle_snds_H", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green_mag_Tracer"], [], ""], +["arifle_Katiba_C_F", "muzzle_snds_H", "acc_pointer_IR", "optic_Aco", ["30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green_mag_Tracer"], [], ""], +["arifle_Katiba_C_F", "muzzle_snds_H", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green_mag_Tracer"], [], ""] +]]; +_sfLoadoutData set ["grenadeLaunchers", [ +["arifle_Katiba_GL_F", "muzzle_snds_H", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_Katiba_GL_F", "muzzle_snds_H", "acc_pointer_IR", "optic_Aco", ["30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_Katiba_GL_F", "muzzle_snds_H", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_sfLoadoutData set ["SMGs", [ +["SMG_03C_TR_hex", "muzzle_snds_570", "acc_pointer_IR", "optic_Holosight_smg_blk_F", [], [], ""], +["SMG_03C_TR_hex", "muzzle_snds_570", "acc_pointer_IR", "optic_Aco_smg", [], [], ""], +["SMG_03C_TR_hex", "muzzle_snds_570", "acc_pointer_IR", "Aegis_optic_ROS_SMG", [], [], ""], +["SMG_03C_hex", "muzzle_snds_570", "", "", [], [], ""], +["SMG_02_F", "muzzle_snds_L", "acc_pointer_IR", "optic_Holosight_smg_blk_F", [], [], ""], +["SMG_02_F", "muzzle_snds_L", "acc_pointer_IR", "optic_Aco_smg", [], [], ""], +["SMG_02_F", "muzzle_snds_L", "acc_pointer_IR", "Aegis_optic_ROS_SMG", [], [], ""] +]]; +_sfLoadoutData set ["machineGuns", [ +["LMG_Zafir_F", "muzzle_snds_B", "acc_pointer_IR", "optic_Holosight_blk_F", ["150Rnd_762x54_Box", "150Rnd_762x54_Box_Tracer"], [], ""], +["LMG_Zafir_F", "muzzle_snds_B", "acc_pointer_IR", "optic_Aco", ["150Rnd_762x54_Box", "150Rnd_762x54_Box_Tracer"], [], ""], +["LMG_Zafir_F", "muzzle_snds_B", "acc_pointer_IR", "Aegis_optic_ROS", ["150Rnd_762x54_Box", "150Rnd_762x54_Box_Tracer"], [], ""] +]]; +_sfLoadoutData set ["marksmanRifles", [ +["srifle_DMR_01_F", "muzzle_snds_B", "acc_pointer_IR", "optic_DMS", [], [], "bipod_02_F_hex"], +["srifle_DMR_01_F", "muzzle_snds_B", "acc_pointer_IR", "optic_Arco", [], [], "bipod_02_F_hex"], +["srifle_DMR_01_F", "muzzle_snds_B", "acc_pointer_IR", "optic_SOS", [], [], "bipod_02_F_hex"] +]]; +_sfLoadoutData set ["sniperRifles", [ +["srifle_GM6_camo_F", "", "", "optic_LRPS", ["5Rnd_127x108_Mag", "5Rnd_127x108_APDS_Mag"], [], ""], +["srifle_GM6_camo_F", "", "", "optic_SOS", ["5Rnd_127x108_Mag", "5Rnd_127x108_APDS_Mag"], [], ""] +]]; +_sfLoadoutData set ["sidearms", [ +["hgun_Pistol_heavy_02_F", "", "Aegis_acc_pointer_compact_pistol_red", "optic_Yorris", [], [], ""], +["hgun_Rook40_F", "muzzle_snds_L", "", "", [], [], ""] +]]; + +///////////////////////////////// +// Military Loadout Data // +///////////////////////////////// + +private _militaryLoadoutData = _loadoutData call _fnc_copyLoadoutData; // touch and shit breaks +_militaryLoadoutData set ["uniforms", ["Aegis_U_O_CombatFatigues_F", "Aegis_U_O_CombatFatigues_02_F", "Aegis_U_O_CombatUniform_tshirt_hex_F"]]; +_militaryLoadoutData set ["slUniforms", ["U_O_OfficerUniform_ocamo"]]; +_militaryLoadoutData set ["vests", ["Aegis_V_OCarrierLuchnik_Lite_khk_F"]]; +_militaryLoadoutData set ["glVests", ["Aegis_V_OCarrierLuchnik_GL_khk_F"]]; +_militaryLoadoutData set ["Hvests", ["Aegis_V_OCarrierLuchnik_CQB_khk_F"]]; +_militaryLoadoutData set ["backpacks", ["B_TacticalPack_ocamo", "B_Carryall_ocamo", "B_FieldPack_ocamo", "B_Carryall_ocamo", "B_AssaultPack_ocamo"]]; +_militaryLoadoutData set ["helmets", ["H_HelmetO_ocamo", "H_HelmetLeaderO_ocamo"]]; +_militaryLoadoutData set ["binoculars", ["Laserdesignator_02"]]; + +_militaryLoadoutData set ["slRifles", [ +["arifle_Katiba_F", "", "acc_pointer_IR", "optic_Arco_blk_F", ["30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green_mag_Tracer"], [], ""], +["arifle_Katiba_GL_F", "", "acc_pointer_IR", "optic_Arco_blk_F", ["30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_militaryLoadoutData set ["rifles", [ +["arifle_Katiba_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green_mag_Tracer"], [], ""], +["arifle_Katiba_F", "", "acc_pointer_IR", "optic_Aco", ["30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green_mag_Tracer"], [], ""], +["arifle_Katiba_F", "", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green_mag_Tracer"], [], ""] +]]; +_militaryLoadoutData set ["carbines", [ +["arifle_Katiba_C_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green_mag_Tracer"], [], ""], +["arifle_Katiba_C_F", "", "acc_pointer_IR", "optic_Aco", ["30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green_mag_Tracer"], [], ""], +["arifle_Katiba_C_F", "", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green_mag_Tracer"], [], ""] +]]; +_militaryLoadoutData set ["grenadeLaunchers", [ +["arifle_Katiba_GL_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_Katiba_GL_F", "", "acc_pointer_IR", "optic_Aco", ["30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_Katiba_GL_F", "", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_green_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_militaryLoadoutData set ["shotGuns", [ +["sgun_Mp153_black_F", "", "Aegis_acc_pointer_compact_pistol_red", "", ["4Rnd_12Gauge_Pellets", "4Rnd_12Gauge_Slug"], [], ""] +]]; +_militaryLoadoutData set ["SMGs", [ +["SMG_03C_TR_hex", "", "acc_pointer_IR", "optic_Holosight_smg_blk_F", [], [], ""], +["SMG_03C_TR_hex", "", "acc_pointer_IR", "optic_Aco_smg", [], [], ""], +["SMG_03C_TR_hex", "", "acc_pointer_IR", "Aegis_optic_ROS_SMG", [], [], ""], +["SMG_03C_hex", "", "", "", [], [], ""], +["SMG_02_F", "", "acc_pointer_IR", "optic_Holosight_smg_blk_F", [], [], ""], +["SMG_02_F", "", "acc_pointer_IR", "optic_Aco_smg", [], [], ""], +["SMG_02_F", "", "acc_pointer_IR", "Aegis_optic_ROS_SMG", [], [], ""] +]]; +_militaryLoadoutData set ["machineGuns", [ +["LMG_Zafir_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", ["150Rnd_762x54_Box", "150Rnd_762x54_Box_Tracer"], [], ""], +["LMG_Zafir_F", "", "acc_pointer_IR", "optic_Aco", ["150Rnd_762x54_Box", "150Rnd_762x54_Box_Tracer"], [], ""], +["LMG_Zafir_F", "", "acc_pointer_IR", "Aegis_optic_ROS", ["150Rnd_762x54_Box", "150Rnd_762x54_Box_Tracer"], [], ""] +]]; +_militaryLoadoutData set ["marksmanRifles", [ +["srifle_DMR_01_F", "", "acc_pointer_IR", "optic_DMS", [], [], "bipod_02_F_hex"], +["srifle_DMR_01_F", "", "acc_pointer_IR", "optic_Arco", [], [], "bipod_02_F_hex"], +["srifle_DMR_01_F", "", "acc_pointer_IR", "optic_SOS", [], [], "bipod_02_F_hex"] +]]; +_militaryLoadoutData set ["sniperRifles", [ +["srifle_GM6_F", "", "", "optic_LRPS", ["5Rnd_127x108_Mag", "5Rnd_127x108_APDS_Mag"], [], ""], +["srifle_GM6_F", "", "", "optic_SOS", ["5Rnd_127x108_Mag", "5Rnd_127x108_APDS_Mag"], [], ""] +]]; +_militaryLoadoutData set ["sidearms", ["hgun_Rook40_F"]]; + +/////////////////////////////// +// Police Loadout Data // +/////////////////////////////// + +private _policeLoadoutData = _loadoutData call _fnc_copyLoadoutData; // touch and shit breaks +_policeLoadoutData set ["uniforms", ["U_B_GEN_Soldier_F", "U_B_GEN_Commander_F"]]; +_policeLoadoutData set ["vests", ["V_TacVest_blk_POLICE"]]; +_policeLoadoutData set ["helmets", ["H_Cap_police"]]; + +_policeLoadoutData set ["carbines", [ +["arifle_Mk20C_black_F", "", "acc_flashlight", "", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""] +]]; +_policeLoadoutData set ["shotGuns", [ +["sgun_Mp153_black_F", "", "acc_flashlight_pistol", "", ["4Rnd_12Gauge_Pellets", "4Rnd_12Gauge_Slug"], [], ""] +]]; +_policeLoadoutData set ["SMGs", [ +["SMG_03C_hex", "", "", "", [], [], ""], +["SMG_02_F", "", "acc_flashlight", "", [], [], ""] +]]; +_policeLoadoutData set ["sidearms", ["hgun_Pistol_01_F"]]; + +//////////////////////////////// +// Militia Loadout Data // +//////////////////////////////// + +private _militiaLoadoutData = _loadoutData call _fnc_copyLoadoutData; // touch and shit breaks +_militiaLoadoutData set ["uniforms", ["U_O_officer_noInsignia_hex_F"]]; +_militiaLoadoutData set ["slUniforms", ["U_O_OfficerUniform_ocamo"]]; +_militiaLoadoutData set ["vests", ["V_HarnessO_brn", "Aegis_V_ChestrigEast_hex_F", "V_BandollierB_khk"]]; +_militiaLoadoutData set ["glVests", ["V_HarnessOGL_brn"]]; +_militiaLoadoutData set ["Hvests", ["V_TacVest_brn"]]; +_militiaLoadoutData set ["backpacks", ["B_TacticalPack_ocamo", "B_Carryall_ocamo", "B_FieldPack_ocamo", "B_Carryall_cbr", "B_Kitbag_cbr"]]; +_militiaLoadoutData set ["helmets", ["H_HelmetLuchnik_cover_hex_F"]]; + +_militiaLoadoutData set ["rifles", [ +["arifle_Mk20_hex_F", "", "acc_flashlight", "", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["Aegis_arifle_AKM74_plum_F", "", "acc_flashlight_pistol", "", ["30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_Tracer_F"], [], ""] +]]; +_militiaLoadoutData set ["carbines", [ +["arifle_Mk20C_hex_F", "", "acc_flashlight", "", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["arifle_AKSM_alt_F", "", "", "", ["30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_Tracer_F"], [], ""] +]]; +_militiaLoadoutData set ["grenadeLaunchers", [ +["arifle_Mk20_GL_hex_F", "", "acc_flashlight", "", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["Aegis_arifle_AKM74_GL_plum_F", "", "acc_flashlight_pistol", "", ["30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_Tracer_F"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_militiaLoadoutData set ["SMGs", [ +["SMG_02_F", "", "acc_flashlight", "", [], [], ""] +]]; +_militiaLoadoutData set ["machineGuns", [ +["arifle_RPK_F", "", "acc_flashlight_pistol", "", ["75Rnd_762x39_Mag_F", "30Rnd_762x39_Mag_F", "30Rnd_762x39_Mag_Tracer_F"], [], ""] +]]; +_militiaLoadoutData set ["marksmanRifles", [ +["srifle_DMR_01_F", "", "acc_flashlight", "optic_Arco_blk_F", [], [], "bipod_02_F_hex"] +]]; +_militiaLoadoutData set ["sniperRifles", [ +["srifle_GM6_F", "", "", "optic_Arco_blk_F", ["5Rnd_127x108_Mag", "5Rnd_127x108_APDS_Mag"], [], ""] +]]; +_militiaLoadoutData set ["sidearms", ["hgun_Rook40_F"]]; + +////////////////////////// +// Misc Loadouts // +////////////////////////// + +private _crewLoadoutData = _militaryLoadoutData call _fnc_copyLoadoutData; +_crewLoadoutData set ["uniforms", ["Aegis_U_O_CombatFatigues_02_F"]]; +_crewLoadoutData set ["vests", ["Aegis_V_ChestrigEast_hex_F"]]; +_crewLoadoutData set ["helmets", ["H_HelmetCrew_O"]]; + +private _pilotLoadoutData = _militaryLoadoutData call _fnc_copyLoadoutData; +_pilotLoadoutData set ["uniforms", ["U_O_PilotCoveralls"]]; +_pilotLoadoutData set ["vests", ["V_Rangemaster_belt_khk"]]; +_pilotLoadoutData set ["helmets", ["H_CrewHelmetHeli_O", "H_PilotHelmetHeli_O"]]; + +private _traitorLoadoutData = _militaryLoadoutData call _fnc_copyLoadoutData; +_traitorLoadoutData set ["uniforms", ["Aegis_U_O_CombatUniform_tshirt_hex_F"]]; +_traitorLoadoutData set ["vests", ["V_TacVest_camo"]]; + +private _officerLoadoutData = _loadoutData call _fnc_copyLoadoutData; +_officerLoadoutData set ["uniforms", ["U_O_ParadeUniform_01_CSAT_F", "U_O_ParadeUniform_01_CSAT_decorated_F"]]; +_officerLoadoutData set ["vests", ["V_Rangemaster_belt_khk"]]; +_officerLoadoutData set ["helmets", ["H_ParadeDressCap_01_CSAT_F"]]; +_officerLoadoutData set ["backpacks", []]; +_officerLoadoutData set ["SMGs", [ +["Aegis_arifle_AKS74_gold_F", "", "", "", [], [], ""], +["Aegis_arifle_AK74_gold_F", "", "", "", [], [], ""] +]]; + +if ("mark" in A3A_enabledDLC) then { + (_sfLoadoutData get "machineGuns") append [ + ["MMG_01_tan_F", "muzzle_snds_93mmg_tan", "acc_pointer_IR", "optic_Arco", [], [], "bipod_02_F_hex"], + ["MMG_01_hex_F", "muzzle_snds_93mmg_tan", "acc_pointer_IR", "optic_MRCO", [], [], "bipod_02_F_hex"] + ]; + (_sfLoadoutData get "marksmanRifles") append [ + ["srifle_DMR_04_Tan_F", "", "acc_pointer_IR", "optic_Arco", [], [], "bipod_02_F_hex"], + ["srifle_DMR_04_Tan_F", "", "acc_pointer_IR", "optic_DMS", [], [], "bipod_02_F_hex"] + ]; + (_sfLoadoutData get "sniperRifles") append [ + ["srifle_DMR_05_hex_F", "muzzle_snds_93mmg_tan", "acc_pointer_IR", "optic_KHS_hex", [], [], "bipod_02_F_hex"], + ["srifle_DMR_05_tan_f", "muzzle_snds_93mmg_tan", "acc_pointer_IR", "optic_LRPS", [], [], "bipod_02_F_hex"] + ]; + + (_militaryLoadoutData get "machineGuns") append [ + ["MMG_01_tan_F", "", "acc_pointer_IR", "optic_Arco", [], [], "bipod_02_F_hex"], + ["MMG_01_hex_F", "", "acc_pointer_IR", "optic_MRCO", [], [], "bipod_02_F_hex"] + ]; + (_militaryLoadoutData get "sniperRifles") append [ + ["srifle_DMR_05_hex_F", "", "acc_pointer_IR", "optic_KHS_hex", [], [], "bipod_02_F_hex"], + ["srifle_DMR_05_tan_f", "", "acc_pointer_IR", "optic_LRPS", [], [], "bipod_02_F_hex"] + ]; +}; +if ("ws" in A3A_enabledDLC) then { + (_militaryLoadoutData get "shotGuns") append [ + ["sgun_aa40_lxWS", "", "acc_pointer_IR", "optic_Holosight_smg_blk_F", ["8Rnd_12Gauge_AA40_Pellets_lxWS", "8Rnd_12Gauge_AA40_Slug_lxWS"], [], ""], + ["sgun_aa40_lxWS", "", "acc_pointer_IR", "optic_Aco_smg", ["8Rnd_12Gauge_AA40_Pellets_lxWS", "8Rnd_12Gauge_AA40_Slug_lxWS"], [], ""], + ["sgun_aa40_lxWS", "", "acc_pointer_IR", "Aegis_optic_ROS_SMG", ["20Rnd_12Gauge_AA40_Pellets_lxWS", "20Rnd_12Gauge_AA40_Slug_lxWS"], [], ""] + ]; +}; +if ("rf" in A3A_enabledDLC) then { + (_sfLoadoutData get "slRifles") append [ + ["arifle_ash12_blk_RF","suppressor_127x55_small_RF","acc_pointer_IR","optic_Arco_blk_F",["20Rnd_127x55_Mag_RF","20Rnd_127x55_Mag_RF","20Rnd_127x55_Mag_RF"], [], ""], + ["arifle_ash12_blk_RF","suppressor_127x55_small_RF","acc_pointer_IR","optic_Arco_blk_F",["20Rnd_127x55_Mag_RF","20Rnd_127x55_Mag_RF","20Rnd_127x55_Mag_RF"], [], ""] + ]; + (_sfLoadoutData get "rifles") append [["arifle_ash12_blk_RF","suppressor_127x55_small_RF","acc_pointer_IR","optic_Holosight_blk_F",["20Rnd_127x55_Mag_RF","20Rnd_127x55_Mag_RF","20Rnd_127x55_Mag_RF"], [], ""]]; + (_sfLoadoutData get "grenadeLaunchers") append [["arifle_ash12_GL_blk_RF", "suppressor_127x55_small_RF", "acc_pointer_IR", "optic_Holosight_blk_F", ["20Rnd_127x55_Mag_RF","20Rnd_127x55_Mag_RF","20Rnd_127x55_Mag_RF"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""]]; + (_sfLoadoutData get "marksmanRifles") append [ + ["arifle_ash12_LR_blk_RF","suppressor_127x55_big_RF","acc_pointer_IR","optic_Arco_blk_F",["10Rnd_127x55_Mag_RF","10Rnd_127x55_Mag_RF","10Rnd_127x55_Mag_RF"], [], "bipod_02_F_hex"], + ["arifle_ash12_LR_blk_RF","suppressor_127x55_big_RF","acc_pointer_IR","optic_DMS",["10Rnd_127x55_Mag_RF","10Rnd_127x55_Mag_RF","10Rnd_127x55_Mag_RF"], [], "bipod_02_F_hex"], + ["arifle_ash12_LR_blk_RF","suppressor_127x55_big_RF","acc_pointer_IR","optic_SOS",["10Rnd_127x55_Mag_RF","10Rnd_127x55_Mag_RF","10Rnd_127x55_Mag_RF"], [], "bipod_02_F_hex"] + ]; + (_sfLoadoutData get "helmets") append [ + "H_HelmetHeavy_Hex_RF", + "H_HelmetHeavy_Simple_Hex_RF", + "H_HelmetHeavy_VisorUp_Hex_RF" + ]; + (_policeLoadoutData get "sidearms") append ["hgun_Glock19_RF"]; + (_sfLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "muzzle_snds_acp", "", "optic_Holosight", [], [], ""], + ["SMG_01_black_RF", "muzzle_snds_acp", "", "optic_Aco_smg", [], [], ""] + ]; + (_militaryLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "", "", "optic_Holosight", [], [], ""], + ["SMG_01_black_RF", "", "", "optic_Aco_smg", [], [], ""] + ]; + (_militiaLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "", "acc_flashlight_smg_01", "", [], [], ""] + ]; + (_policeLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "", "acc_flashlight_smg_01", "optic_Holosight", [], [], ""], + ["SMG_01_black_RF", "", "acc_flashlight_smg_01", "optic_Aco_smg", [], [], ""] + ]; + (_militaryLoadoutData get "helmets") append ["H_HelmetO_ocano_sb_hex_RF"]; + (_militiaLoadoutData get "helmets") append ["H_HelmetO_ocamo_sb_hex_RF"]; +}; + + +///////////////////////////////// +// Unit Type Definitions // +///////////////////////////////// + + +private _squadLeaderTemplate = { + ["slHat"] call _fnc_setHelmet; + [["Hvests", "vests"] call _fnc_fallback] call _fnc_setVest; + [["slUniforms", "uniforms"] call _fnc_fallback] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [["slRifles", "rifles"] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + ["primary", 4] call _fnc_addAdditionalMuzzleMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_squadLeader_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 2] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + ["signalsmokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["gpses"] call _fnc_addGPS; + ["binoculars"] call _fnc_addBinoculars; + ["NVGs"] call _fnc_addNVGs; +}; + +private _riflemanTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_rifleman_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 2] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _medicTemplate = { + ["helmets"] call _fnc_setHelmet; + [["Hvests", "vests"] call _fnc_fallback] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["carbines", "SMGs"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_medic"] call _fnc_addItemSet; + ["items_medic_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _grenadierTemplate = { + ["helmets"] call _fnc_setHelmet; + [["glVests", "vests"] call _fnc_fallback] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + ["grenadeLaunchers"] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + ["primary", 10] call _fnc_addAdditionalMuzzleMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_grenadier_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 4] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _explosivesExpertTemplate = { + ["helmets"] call _fnc_setHelmet; + [["Hvests", "vests"] call _fnc_fallback] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [[selectRandom ["carbines", "shotGuns", "rifles"], selectRandom ["carbines", "rifles"]] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_explosivesExpert_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + + ["lightExplosives", 2] call _fnc_addItem; + if (random 1 > 0.5) then {["heavyExplosives", 1] call _fnc_addItem;}; + if (random 1 > 0.5) then {["atMines", 1] call _fnc_addItem;}; + if (random 1 > 0.5) then {["apMines", 1] call _fnc_addItem;}; + + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _engineerTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [[selectRandom ["carbines", "shotGuns", "SMGs"], selectRandom ["carbines", "SMGs"]] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_engineer_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + + if (random 1 > 0.5) then {["lightExplosives", 1] call _fnc_addItem;}; + + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _latTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + [["lightATLaunchers", "ATLaunchers"] call _fnc_fallback] call _fnc_setLauncher; + //TODO - Add a check if it's disposable. + ["launcher", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_lat_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _atTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + [selectRandom ["ATLaunchers", "missileATLaunchers"]] call _fnc_setLauncher; + //TODO - Add a check if it's disposable. + ["launcher", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_at_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _aaTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["AALaunchers"] call _fnc_setLauncher; + //TODO - Add a check if it's disposable. + ["launcher", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_aa_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _machineGunnerTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + ["machineGuns"] call _fnc_setPrimary; + ["primary", 4] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_machineGunner_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _marksmanTemplate = { + ["sniHats"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + ["marksmanRifles"] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_marksman_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["rangefinders"] call _fnc_addBinoculars; + ["NVGs"] call _fnc_addNVGs; +}; + +private _sniperTemplate = { + ["sniHats"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + ["sniperRifles"] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_sniper_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["rangefinders"] call _fnc_addBinoculars; + ["NVGs"] call _fnc_addNVGs; +}; + +private _policeTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + [[selectRandom ["carbines", "shotGuns", "SMGs"], "SMGs"] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_police_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; +}; + +private _crewTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + [selectRandom ["carbines", "SMGs"]] call _fnc_setPrimary; + ["primary", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_basic"] call _fnc_addItemSet; + ["items_crew_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["gpses"] call _fnc_addGPS; + ["NVGs"] call _fnc_addNVGs; +}; + +private _unarmedTemplate = { + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + ["items_medical_basic"] call _fnc_addItemSet; + ["items_unarmed_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; +}; + +private _traitorTemplate = { + call _unarmedTemplate; + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; +}; + +//////////////////////////////////////////////////////////////////////////////////////// +// You shouldn't touch below this line unless you really really know what you're doing. +// Things below here can and will break the gamemode if improperly changed. +//////////////////////////////////////////////////////////////////////////////////////// + +///////////////////////////// +// Special Forces Units // +///////////////////////////// +private _prefix = "SF"; +private _unitTypes = [ + ["SquadLeader", _squadLeaderTemplate], + ["Rifleman", _riflemanTemplate], + ["Medic", _medicTemplate, [["medic", true]]], + ["Engineer", _engineerTemplate, [["engineer", true]]], + ["ExplosivesExpert", _explosivesExpertTemplate, [["explosiveSpecialist", true]]], + ["Grenadier", _grenadierTemplate], + ["LAT", _latTemplate], + ["AT", _atTemplate], + ["AA", _aaTemplate], + ["MachineGunner", _machineGunnerTemplate], + ["Marksman", _marksmanTemplate], + ["Sniper", _sniperTemplate] +]; + +[_prefix, _unitTypes, _sfLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +/*{ + params ["_name", "_loadoutTemplate"]; + private _loadouts = [_sfLoadoutData, _loadoutTemplate] call _fnc_buildLoadouts; + private _finalName = _prefix + _name; + [_finalName, _loadouts] call _fnc_saveToTemplate; +} forEach _unitTypes; +*/ + +/////////////////////// +// Military Units // +/////////////////////// +private _prefix = "military"; +private _unitTypes = [ + ["SquadLeader", _squadLeaderTemplate], + ["Rifleman", _riflemanTemplate], + ["Medic", _medicTemplate, [["medic", true]]], + ["Engineer", _engineerTemplate, [["engineer", true]]], + ["ExplosivesExpert", _explosivesExpertTemplate, [["explosiveSpecialist", true]]], + ["Grenadier", _grenadierTemplate], + ["LAT", _latTemplate], + ["AT", _atTemplate], + ["AA", _aaTemplate], + ["MachineGunner", _machineGunnerTemplate], + ["Marksman", _marksmanTemplate], + ["Sniper", _sniperTemplate] +]; + +[_prefix, _unitTypes, _militaryLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +//////////////////////// +// Police Units // +//////////////////////// +private _prefix = "police"; +private _unitTypes = [ + ["SquadLeader", _policeTemplate], + ["Standard", _policeTemplate] +]; + +[_prefix, _unitTypes, _policeLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +//////////////////////// +// Militia Units // +//////////////////////// +private _prefix = "militia"; +private _unitTypes = [ + ["SquadLeader", _squadLeaderTemplate], + ["Rifleman", _riflemanTemplate], + ["Medic", _medicTemplate, [["medic", true]]], + ["Engineer", _engineerTemplate, [["engineer", true]]], + ["ExplosivesExpert", _explosivesExpertTemplate, [["explosiveSpecialist", true]]], + ["Grenadier", _grenadierTemplate], + ["LAT", _latTemplate], + ["AT", _atTemplate], + ["AA", _aaTemplate], + ["MachineGunner", _machineGunnerTemplate], + ["Marksman", _marksmanTemplate], + ["Sniper", _sniperTemplate] +]; + +[_prefix, _unitTypes, _militiaLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +////////////////////// +// Misc Units // +////////////////////// + +//The following lines are determining the loadout of vehicle crew +["other", [["Crew", _crewTemplate]], _crewLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout of the pilots +["other", [["Pilot", _crewTemplate]], _pilotLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout for the unit used in the "kill the official" mission +["other", [["Official", _policeTemplate]], _officerLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout for the AI used in the "kill the traitor" mission +["other", [["Traitor", _traitorTemplate]], _traitorLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout for the AI used in the "Invader Punishment" mission +["other", [["Unarmed", _UnarmedTemplate]], _militaryLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; diff --git a/A3A/addons/core/Templates/Templates/Aegis/Aegis_AI_LDF.sqf b/A3A/addons/core/Templates/Templates/Aegis/Aegis_AI_LDF.sqf new file mode 100644 index 0000000000..e2c5968ba3 --- /dev/null +++ b/A3A/addons/core/Templates/Templates/Aegis/Aegis_AI_LDF.sqf @@ -0,0 +1,975 @@ +////////////////////////// +// Side Information // +////////////////////////// + +["name", "LDF"] call _fnc_saveToTemplate; +["spawnMarkerName", "LDF Support Corridor"] call _fnc_saveToTemplate; + +["flag", "Flag_Enoch_F"] call _fnc_saveToTemplate; +["flagTexture", "a3\data_f_enoch\flags\flag_enoch_co.paa"] call _fnc_saveToTemplate; +["flagMarkerType", "flag_Enoch"] call _fnc_saveToTemplate; + +////////////////////////// +// Vehicles // +////////////////////////// + +["ammobox", "B_supplyCrate_F"] call _fnc_saveToTemplate; //Don't touch or you die a sad and lonely death! +["surrenderCrate", "Box_IND_Wps_F"] call _fnc_saveToTemplate; //Changeing this from default will require you to define logistics attachement offset for the box type +["equipmentBox", "Box_NATO_Equip_F"] call _fnc_saveToTemplate; //Changeing this from default will require you to define logistics attachement offset for the box type + +["vehiclesBasic", ["I_E_Quadbike_01_F"]] call _fnc_saveToTemplate; +private _LightUnarmed = ["I_E_Offroad_01_F", "I_E_Offroad_01_comms_F", "I_E_Offroad_01_covered_F"]; +private _LightArmed = ["a3a_Offroad_01_ldf_armed_F", "a3a_Offroad_01_ldf_AT_F"]; +["vehiclesTrucks", ["I_E_Truck_02_transport_F", "I_E_Truck_02_F"]] call _fnc_saveToTemplate; +private _cargoTrucks = ["I_E_Truck_02_transport_F", "I_E_Truck_02_F"]; +["vehiclesAmmoTrucks", ["I_E_Truck_02_Ammo_F"]] call _fnc_saveToTemplate; +["vehiclesRepairTrucks", ["I_E_Truck_02_Box_F"]] call _fnc_saveToTemplate; +["vehiclesFuelTrucks", ["I_E_Truck_02_fuel_F"]] call _fnc_saveToTemplate; +["vehiclesMedical", ["I_E_Truck_02_Medical_F", "Aegis_I_E_APC_Wheeled_01_medical_F"]] call _fnc_saveToTemplate; +["vehiclesLightAPCs", []] call _fnc_saveToTemplate; +private _APCs = ["Aegis_I_E_APC_Wheeled_01_cannon_v2_F", "a3a_Aegis_I_E_APC_Wheeled_01_cannon_v2_F", "I_E_APC_tracked_03_cannon_v2_F"]; +["vehiclesIFVs", ["a3a_I_E_APC_tracked_03_cannon_v2_F"]] call _fnc_saveToTemplate; +["vehiclesTanks", ["Aegis_I_E_MBT_03_cannon_F"]] call _fnc_saveToTemplate; +["vehiclesAA", ["B_W_APC_Tracked_01_AA_F"]] call _fnc_saveToTemplate; + +["vehiclesTransportBoats", ["I_Boat_Transport_01_F"]] call _fnc_saveToTemplate; +["vehiclesGunBoats", ["I_Boat_Armed_01_minigun_F"]] call _fnc_saveToTemplate; +["vehiclesAmphibious", ["Aegis_I_E_APC_Wheeled_01_cannon_v2_F"]] call _fnc_saveToTemplate; + +["vehiclesPlanesCAS", ["I_E_Plane_Fighter_04_F"]] call _fnc_saveToTemplate; +["vehiclesPlanesAA", ["I_E_Plane_Fighter_04_F"]] call _fnc_saveToTemplate; +["vehiclesPlanesTransport", ["B_T_Plane_Transport_01_infantry_F"]] call _fnc_saveToTemplate; + +private _vehiclesHelisLight = ["I_E_Heli_light_03_unarmed_F"]; +private _HelisTransport = ["I_E_Heli_light_03_unarmed_F"]; +private _vehiclesHelisLightAttack = ["I_E_Heli_light_03_dynamicLoadout_F"]; +private _vehiclesHelisAttack = ["Aegis_I_EAF_Heli_Attack_04_F"]; + +["vehiclesArtillery", ["B_W_MBT_01_arty_F", "I_E_Truck_02_MRL_F"]] call _fnc_saveToTemplate; +["magazines", createHashMapFromArray [ +["B_W_MBT_01_arty_F", ["32Rnd_155mm_Mo_shells"]], +["I_E_Truck_02_MRL_F", ["12Rnd_230mm_rockets"]] +]] call _fnc_saveToTemplate; + +["uavsAttack", ["B_W_UAV_02_dynamicLoadout_F"]] call _fnc_saveToTemplate; +["uavsPortable", ["I_E_UAV_01_F"]] call _fnc_saveToTemplate; + +private _vehiclesMilitiaLightArmed = ["a3a_Offroad_01_ldf_armed_F", "a3a_Offroad_01_ldf_AT_F"]; +private _vehiclesMilitiaTrucks = ["I_E_Truck_02_F"]; +private _vehiclesMilitiaCars = ["I_E_Offroad_01_F", "I_E_Offroad_01_comms_F", "I_E_Offroad_01_covered_F"]; + +private _vehiclesPolice = ["B_GEN_Offroad_01_gen_F","B_GEN_Offroad_01_comms_F","B_GEN_Offroad_01_covered_F"]; + +["staticMGs", ["I_G_HMG_02_high_F"]] call _fnc_saveToTemplate; +["staticAT", ["I_E_Static_AT_F"]] call _fnc_saveToTemplate; +["staticAA", ["I_E_Static_AA_F"]] call _fnc_saveToTemplate; +["staticMortars", ["B_Mortar_01_F"]] call _fnc_saveToTemplate; + +["mortarMagazineHE", "8Rnd_82mm_Mo_shells"] call _fnc_saveToTemplate; +["mortarMagazineSmoke", "8Rnd_82mm_Mo_Smoke_white"] call _fnc_saveToTemplate; +["mortarMagazineFlare", "8Rnd_82mm_Mo_Flare_white"] call _fnc_saveToTemplate; + +//Minefield definition +["minefieldAT", ["ATMine"]] call _fnc_saveToTemplate; +["minefieldAPERS", ["APERSMine"]] call _fnc_saveToTemplate; + +//If DLC +if ("ws" in A3A_enabledDLC) then { + _cargoTrucks append ["I_E_Truck_02_cargo_lxWS","I_E_Truck_02_flatbed_lxWS"]; + _APCs append ["Aegis_I_E_APC_Wheeled_01_atgm_v2"]; + ["uavsPortable", ["I_E_UAV_01_F", "I_UAV_02_lxWS"]] call _fnc_saveToTemplate; +}; +if ("orange" in A3A_enabledDLC) then { + _vehiclesPolice append ["I_E_Van_02_transport_MP_F"]; + _vehiclesMilitiaTrucks append ["I_E_Van_02_transport_F", "I_E_Van_02_vehicle_F"]; +}; +if ("rf" in A3A_enabledDLC) then { + _LightUnarmed append ["I_E_Pickup_rf"]; + _LightArmed append ["a3a_LDF_Pickup_mmg_rf"]; + _vehiclesPolice append ["a3a_police_Pickup_rf", "B_GEN_Pickup_covered_rf", "a3a_police_Pickup_comms_rf"]; + _HelisTransport append ["I_E_Heli_EC_01A_military_RF"]; + _vehiclesHelisLight append ["I_E_Heli_light_03_unarmed_RF"]; + _vehiclesHelisLightAttack append ["a3a_LDF_Heli_light_03_dynamicLoadout_rf"]; + _vehiclesHelisAttack append ["a3a_LDF_Heli_EC_02_rf"]; + _vehiclesMilitiaCars append ["I_E_Pickup_rf"]; + _vehiclesMilitiaLightArmed append ["a3a_LDF_Pickup_mmg_rf"]; +}; + +["vehiclesHelisTransport", _HelisTransport] call _fnc_saveToTemplate; +["vehiclesHelisLight", _vehiclesHelisLight] call _fnc_saveToTemplate; +["vehiclesHelisLightAttack", _vehiclesHelisLightAttack] call _fnc_saveToTemplate; +["vehiclesHelisAttack", _vehiclesHelisAttack] call _fnc_saveToTemplate; + +["vehiclesLightUnarmed", _LightUnarmed] call _fnc_saveToTemplate; +["vehiclesLightArmed", _LightArmed] call _fnc_saveToTemplate; +["vehiclesCargoTrucks", _cargoTrucks] call _fnc_saveToTemplate; +["vehiclesAPCs", _APCs] call _fnc_saveToTemplate; + +["vehiclesPolice", _vehiclesPolice] call _fnc_saveToTemplate; +["vehiclesMilitiaCars", _vehiclesMilitiaCars] call _fnc_saveToTemplate; +["vehiclesMilitiaLightArmed", _vehiclesMilitiaLightArmed] call _fnc_saveToTemplate; +["vehiclesMilitiaTrucks", _vehiclesMilitiaTrucks] call _fnc_saveToTemplate; + +#include "Aegis_Vehicle_Attributes.sqf" + +///////////////////// +/// Identities /// +///////////////////// + +["faces", ["LivonianHead_1","LivonianHead_10","LivonianHead_2","LivonianHead_3","LivonianHead_4","LivonianHead_6","LivonianHead_9","Sturrock","WhiteHead_01","WhiteHead_02","WhiteHead_03","WhiteHead_04","WhiteHead_05","WhiteHead_06","WhiteHead_07","WhiteHead_08","WhiteHead_09","WhiteHead_10","WhiteHead_11","WhiteHead_13","WhiteHead_14","WhiteHead_15","WhiteHead_17","WhiteHead_18","WhiteHead_20","WhiteHead_21","WhiteHead_30"]] call _fnc_saveToTemplate; +["voices", ["Male01pol","Male02pol","Male03pol"]] call _fnc_saveToTemplate; +"EnochMen" call _fnc_saveNames; + +////////////////////////// +// Loadouts // +////////////////////////// + +private _loadoutData = call _fnc_createLoadoutData; +_loadoutData set ["slRifles", []]; +_loadoutData set ["rifles", []]; +_loadoutData set ["carbines", []]; +_loadoutData set ["grenadeLaunchers", []]; +_loadoutData set ["shotGuns", []]; +_loadoutData set ["SMGs", []]; +_loadoutData set ["machineGuns", []]; +_loadoutData set ["marksmanRifles", []]; +_loadoutData set ["sniperRifles", []]; + +_loadoutData set ["lightATLaunchers", ["launch_NLAW_F"]]; +_loadoutData set ["ATLaunchers", [ +["launch_MRAWS_olive_F", "", "acc_pointer_IR", "", ["MRAWS_HE_F", "MRAWS_HEAT55_F"], [], ""], +["launch_MRAWS_olive_F", "", "acc_pointer_IR", "", ["MRAWS_HEAT_F", "MRAWS_HEAT55_F"], [], ""], +["launch_MRAWS_olive_F", "", "acc_pointer_IR", "", ["MRAWS_HEAT_F", "MRAWS_HE_F"], [], ""], +["launch_MRAWS_olive_rail_F", "", "acc_pointer_IR", "", ["MRAWS_HE_F", "MRAWS_HEAT55_F"], [], ""], +["launch_MRAWS_olive_rail_F", "", "acc_pointer_IR", "", ["MRAWS_HEAT_F", "MRAWS_HEAT55_F"], [], ""], +["launch_MRAWS_olive_rail_F", "", "acc_pointer_IR", "", ["MRAWS_HEAT_F", "MRAWS_HE_F"], [], ""] +]]; +_loadoutData set ["missileATLaunchers", [ +["launch_I_Titan_short_F", "", "acc_pointer_IR", "", ["Titan_AT"], [], ""] +]]; +_loadoutData set ["AALaunchers", [ +["launch_I_Titan_eaf_F", "", "acc_pointer_IR", "", ["Titan_AA"], [], ""] +]]; +_loadoutData set ["sidearms", []]; + +_loadoutData set ["ATMines", ["ATMine_Range_Mag"]]; +_loadoutData set ["APMines", ["APERSMine_Range_Mag"]]; +_loadoutData set ["lightExplosives", ["DemoCharge_Remote_Mag"]]; +_loadoutData set ["heavyExplosives", ["SatchelCharge_Remote_Mag"]]; + +_loadoutData set ["antiTankGrenades", []]; +_loadoutData set ["antiInfantryGrenades", ["HandGrenade", "MiniGrenade"]]; +_loadoutData set ["smokeGrenades", ["SmokeShell"]]; +_loadoutData set ["signalsmokeGrenades", ["SmokeShellYellow", "SmokeShellRed", "SmokeShellPurple", "SmokeShellOrange", "SmokeShellGreen", "SmokeShellBlue"]]; + + +//Basic equipment. Shouldn't need touching most of the time. +//Mods might override this, or certain mods might want items removed (No GPSs in WW2, for example) +_loadoutData set ["maps", ["ItemMap"]]; +_loadoutData set ["watches", ["ItemWatch"]]; +_loadoutData set ["compasses", ["ItemCompass"]]; +_loadoutData set ["radios", ["ItemRadio"]]; +_loadoutData set ["gpses", ["ItemGPS"]]; +_loadoutData set ["NVGs", ["NVGoggles_INDEP"]]; +_loadoutData set ["binoculars", ["Binocular"]]; +_loadoutData set ["rangefinders", ["Rangefinder"]]; + +//Basically all the clothing which the units use. +//don't fill these lines - this is only to set the variables. +_loadoutData set ["uniforms", []]; +_loadoutData set ["vests", []]; +_loadoutData set ["Hvests", []]; +_loadoutData set ["backpacks", []]; +_loadoutData set ["longRangeRadios", []]; +_loadoutData set ["helmets", []]; +_loadoutData set ["slHat", ["H_Beret_EAF_01_F"]]; +_loadoutData set ["sniHats", ["H_Booniehat_eaf"]]; + +//Item *set* definitions. These are added in their entirety to unit loadouts. No randomisation is applied. +_loadoutData set ["items_medical_basic", ["BASIC"] call A3A_fnc_itemset_medicalSupplies]; //this line defines the basic medical loadout for vanilla +_loadoutData set ["items_medical_standard", ["STANDARD"] call A3A_fnc_itemset_medicalSupplies]; //this line defines the standard medical loadout for vanilla +_loadoutData set ["items_medical_medic", ["MEDIC"] call A3A_fnc_itemset_medicalSupplies]; //this line defines the medic medical loadout for vanilla +_loadoutData set ["items_miscEssentials", [] call A3A_fnc_itemset_miscEssentials]; + +//Unit type specific item sets. Add or remove these, depending on the unit types in use. +private _slItems = ["Laserbatteries", "Laserbatteries", "Laserbatteries"]; +private _eeItems = ["ToolKit", "MineDetector"]; +private _mmItems = []; + +if (A3A_hasACE) then { + _slItems append ["ACE_microDAGR", "ACE_DAGR"]; + _eeItems append ["ACE_Clacker", "ACE_DefusalKit"]; + _mmItems append ["ACE_RangeCard", "ACE_ATragMX", "ACE_Kestrel4500"]; +}; + +_loadoutData set ["items_squadLeader_extras", _slItems]; +_loadoutData set ["items_rifleman_extras", []]; +_loadoutData set ["items_medic_extras", []]; +_loadoutData set ["items_grenadier_extras", []]; +_loadoutData set ["items_explosivesExpert_extras", _eeItems]; +_loadoutData set ["items_engineer_extras", _eeItems]; +_loadoutData set ["items_lat_extras", []]; +_loadoutData set ["items_at_extras", []]; +_loadoutData set ["items_aa_extras", []]; +_loadoutData set ["items_machineGunner_extras", []]; +_loadoutData set ["items_marksman_extras", _mmItems]; +_loadoutData set ["items_sniper_extras", _mmItems]; +_loadoutData set ["items_police_extras", []]; +_loadoutData set ["items_crew_extras", []]; +_loadoutData set ["items_unarmed_extras", []]; + +//TODO - ACE overrides for misc essentials, medical and engineer gear + +/////////////////////////////////////// +// Special Forces Loadout Data // +/////////////////////////////////////// + +private _sfLoadoutData = _loadoutData call _fnc_copyLoadoutData; // touch and shit breaks +_sfLoadoutData set ["uniforms", ["U_I_E_Uniform_01_F", "U_I_E_Uniform_01_shortsleeve_F", "U_I_E_Uniform_01_tanktop_F", "U_I_E_Uniform_01_sweater_F"]]; +_sfLoadoutData set ["vests", ["Aegis_V_CarrierRigKBT_01_recon_EAF_F", "V_TacVest_camo"]]; +_sfLoadoutData set ["Hvests", ["Aegis_V_CarrierRigKBT_01_cqb_EAF_F"]]; +_sfLoadoutData set ["backpacks", ["B_AssaultPack_eaf_F", "B_Carryall_eaf_F", "B_Kitbag_eaf_F", "B_FieldPack_green_F", "B_TacticalPack_eaf_F"]]; +_sfLoadoutData set ["helmets", ["H_HelmetHBK_headset_F", "H_HelmetHBK_chops_F", "H_HelmetHBK_ear_F", "H_HelmetHBK_F", "H_Cap_eaf_hs_F", "H_Watchcap_camo_hs"]]; +_sfLoadoutData set ["binoculars", ["Laserdesignator_03"]]; + +_sfLoadoutData set ["slRifles", [ +["arifle_SCAR_grip_black_F", "muzzle_snds_B", "acc_pointer_IR", "optic_MRCO", [], [], ""], +["arifle_SCAR_short_black_F", "muzzle_snds_B", "acc_pointer_IR", "optic_MRCO", [], [], ""], +["arifle_SCAR_GL_black_F", "muzzle_snds_B", "acc_pointer_IR", "optic_MRCO", [], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_SCAR_grip_black_F", "muzzle_snds_B", "acc_pointer_IR", "Aegis_optic_ACOG", [], [], ""], +["arifle_SCAR_short_black_F", "muzzle_snds_B", "acc_pointer_IR", "Aegis_optic_ACOG", [], [], ""], +["arifle_SCAR_GL_black_F", "muzzle_snds_B", "acc_pointer_IR", "Aegis_optic_ACOG", [], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_sfLoadoutData set ["rifles", [ +["arifle_SCAR_grip_black_F", "muzzle_snds_B", "acc_pointer_IR", "optic_Holosight_blk_F", [], [], ""], +["arifle_SCAR_grip_black_F", "muzzle_snds_B", "acc_pointer_IR", "Aegis_optic_ICO", [], [], ""] +]]; +_sfLoadoutData set ["carbines", [ +["arifle_SCAR_short_black_F", "muzzle_snds_B", "acc_pointer_IR", "optic_Holosight_blk_F", [], [], ""], +["arifle_SCAR_short_black_F", "muzzle_snds_B", "acc_pointer_IR", "Aegis_optic_ICO", [], [], ""] +]]; +_sfLoadoutData set ["grenadeLaunchers", [ +["arifle_SCAR_GL_black_F", "muzzle_snds_B", "acc_pointer_IR", "optic_Holosight_blk_F", [], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_SCAR_GL_black_F", "muzzle_snds_B", "acc_pointer_IR", "Aegis_optic_ICO", [], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_sfLoadoutData set ["SMGs", [ +["SMG_03C_black", "muzzle_snds_570", "", "", [], [], ""] +]]; +_sfLoadoutData set ["machineGuns", [ +["LMG_Mk200_black_F", "muzzle_snds_H", "acc_pointer_IR", "optic_MRCO", ["200Rnd_65x39_cased_Box_Red", "200Rnd_65x39_cased_Box_Red", "200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_blk"], +["LMG_Mk200_black_F", "muzzle_snds_H", "acc_pointer_IR", "Aegis_optic_ACOG", ["200Rnd_65x39_cased_Box_Red", "200Rnd_65x39_cased_Box_Red", "200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_blk"], +["LMG_Mk200_black_F", "muzzle_snds_H", "acc_pointer_IR", "optic_Holosight_blk_F", ["200Rnd_65x39_cased_Box_Red", "200Rnd_65x39_cased_Box_Red", "200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_blk"], +["LMG_Mk200_black_F", "muzzle_snds_H", "acc_pointer_IR", "Aegis_optic_ICO", ["200Rnd_65x39_cased_Box_Red", "200Rnd_65x39_cased_Box_Red", "200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_blk"] +]]; +_sfLoadoutData set ["marksmanRifles", [ +["arifle_SCAR_black_F", "muzzle_snds_B", "acc_pointer_IR", "optic_DMS", [], [], "bipod_01_F_blk"], +["arifle_SCAR_black_F", "muzzle_snds_B", "acc_pointer_IR", "optic_MRCO", [], [], "bipod_01_F_blk"], +["arifle_SCAR_black_F", "muzzle_snds_B", "acc_pointer_IR", "optic_SOS", [], [], "bipod_01_F_blk"] +]]; +_sfLoadoutData set ["sniperRifles", [ +["srifle_LRR_F", "", "", "optic_SOS", [], [], ""], +["srifle_LRR_F", "", "", "optic_LRPS", [], [], ""] +]]; +_sfLoadoutData set ["sidearms", [ +["hgun_Pistol_heavy_01_green_F", "muzzle_snds_acp", "Aegis_acc_pointer_compact_pistol_red", "optic_MRD_black", [], [], ""] +]]; + +///////////////////////////////// +// Military Loadout Data // +///////////////////////////////// + +private _militaryLoadoutData = _loadoutData call _fnc_copyLoadoutData; // touch and shit breaks +_militaryLoadoutData set ["uniforms", ["U_I_E_Uniform_01_F", "U_I_E_Uniform_01_shortsleeve_F", "U_I_E_Uniform_01_tanktop_F"]]; +_militaryLoadoutData set ["slUniforms", ["U_I_E_Uniform_01_officer_F"]]; +_militaryLoadoutData set ["vests", ["V_CarrierRigKBT_01_light_EAF_F", "Aegis_V_CarrierRigKBT_01_cqb_EAF_F"]]; +_militaryLoadoutData set ["Hvests", ["V_CarrierRigKBT_01_heavy_EAF_F", "Aegis_V_CarrierRigKBT_01_tac_olive_F"]]; +_militaryLoadoutData set ["backpacks", ["B_AssaultPack_eaf_F", "B_Carryall_eaf_F", "B_Kitbag_eaf_F", "B_FieldPack_green_F", "B_TacticalPack_eaf_F"]]; +_militaryLoadoutData set ["helmets", ["H_HelmetHBK_headset_F", "H_HelmetHBK_F"]]; +_militaryLoadoutData set ["binoculars", ["Laserdesignator_03"]]; + +_militaryLoadoutData set ["slRifles", [ +["arifle_MSBS65_F", "", "acc_pointer_IR", "optic_MRCO", ["30Rnd_65x39_caseless_msbs_mag", "30Rnd_65x39_caseless_msbs_mag", "30Rnd_65x39_caseless_msbs_mag_Tracer"], [], ""], +["arifle_MSBS65_F", "", "acc_pointer_IR", "optic_Hamr_khk_F", ["30Rnd_65x39_caseless_msbs_mag", "30Rnd_65x39_caseless_msbs_mag", "30Rnd_65x39_caseless_msbs_mag_Tracer"], [], ""], +["arifle_MSBS65_F", "", "acc_pointer_IR", "Aegis_optic_ACOG", ["30Rnd_65x39_caseless_msbs_mag", "30Rnd_65x39_caseless_msbs_mag", "30Rnd_65x39_caseless_msbs_mag_Tracer"], [], ""], +["arifle_MSBS65_UBS_F", "", "acc_pointer_IR", "optic_MRCO", ["30Rnd_65x39_caseless_msbs_mag", "30Rnd_65x39_caseless_msbs_mag", "30Rnd_65x39_caseless_msbs_mag_Tracer"], ["6Rnd_12Gauge_Pellets", "6Rnd_12Gauge_Slug"], ""], +["arifle_MSBS65_UBS_F", "", "acc_pointer_IR", "optic_Hamr_khk_F", ["30Rnd_65x39_caseless_msbs_mag", "30Rnd_65x39_caseless_msbs_mag", "30Rnd_65x39_caseless_msbs_mag_Tracer"], ["6Rnd_12Gauge_Pellets", "6Rnd_12Gauge_Slug"], ""], +["arifle_MSBS65_UBS_F", "", "acc_pointer_IR", "Aegis_optic_ACOG", ["30Rnd_65x39_caseless_msbs_mag", "30Rnd_65x39_caseless_msbs_mag", "30Rnd_65x39_caseless_msbs_mag_Tracer"], ["6Rnd_12Gauge_Pellets", "6Rnd_12Gauge_Slug"], ""] +]]; +_militaryLoadoutData set ["rifles", [ +["arifle_MSBS65_F", "", "acc_pointer_IR", "optic_Holosight_khk_F", ["30Rnd_65x39_caseless_msbs_mag", "30Rnd_65x39_caseless_msbs_mag", "30Rnd_65x39_caseless_msbs_mag_Tracer"], [], ""], +["arifle_MSBS65_F", "", "acc_pointer_IR", "optic_ico_01_f", ["30Rnd_65x39_caseless_msbs_mag", "30Rnd_65x39_caseless_msbs_mag", "30Rnd_65x39_caseless_msbs_mag_Tracer"], [], ""] +]]; +_militaryLoadoutData set ["carbines", [ +["arifle_MSBS65_F", "", "acc_pointer_IR", "optic_Holosight_khk_F", ["30Rnd_65x39_caseless_msbs_mag", "30Rnd_65x39_caseless_msbs_mag", "30Rnd_65x39_caseless_msbs_mag_Tracer"], [], ""], +["arifle_MSBS65_F", "", "acc_pointer_IR", "optic_ico_01_f", ["30Rnd_65x39_caseless_msbs_mag", "30Rnd_65x39_caseless_msbs_mag", "30Rnd_65x39_caseless_msbs_mag_Tracer"], [], ""] +]]; +_militaryLoadoutData set ["grenadeLaunchers", [ +["arifle_MSBS65_GL_F", "", "acc_pointer_IR", "optic_Holosight_khk_F", ["30Rnd_65x39_caseless_msbs_mag", "30Rnd_65x39_caseless_msbs_mag", "30Rnd_65x39_caseless_msbs_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_MSBS65_GL_F", "", "acc_pointer_IR", "optic_ico_01_f", ["30Rnd_65x39_caseless_msbs_mag", "30Rnd_65x39_caseless_msbs_mag", "30Rnd_65x39_caseless_msbs_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_militaryLoadoutData set ["SMGs", [ +["SMG_03C_black", "", "", "", [], [], ""] +]]; +_militaryLoadoutData set ["machineGuns", [ +["LMG_Mk200_black_F", "", "acc_pointer_IR", "optic_MRCO", ["200Rnd_65x39_cased_Box_Red", "200Rnd_65x39_cased_Box_Red", "200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_blk"], +["LMG_Mk200_black_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", ["200Rnd_65x39_cased_Box_Red", "200Rnd_65x39_cased_Box_Red", "200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_blk"], +["LMG_Mk200_black_F", "", "acc_pointer_IR", "optic_Hamr", ["200Rnd_65x39_cased_Box_Red", "200Rnd_65x39_cased_Box_Red", "200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_blk"], +["LMG_Mk200_black_F", "", "acc_pointer_IR", "Aegis_optic_ACOG", ["200Rnd_65x39_cased_Box_Red", "200Rnd_65x39_cased_Box_Red", "200Rnd_65x39_cased_Box_Tracer_Red"], [], "bipod_01_F_blk"] +]]; +_militaryLoadoutData set ["marksmanRifles", [ +["arifle_SPAR_03_blk_F", "", "acc_pointer_IR", "optic_SOS", [], [], "bipod_01_F_blk"], +["arifle_SPAR_03_blk_F", "", "acc_pointer_IR", "optic_DMS", [], [], "bipod_01_F_blk"], +["arifle_SPAR_03_blk_F", "", "acc_pointer_IR", "Aegis_optic_ACOG", [], [], "bipod_01_F_blk"],["arifle_MSBS65_Mark_F", "", "acc_pointer_IR", "optic_SOS", ["30Rnd_65x39_caseless_msbs_mag", "30Rnd_65x39_caseless_msbs_mag", "30Rnd_65x39_caseless_msbs_mag_Tracer"], [], "bipod_01_F_blk"], +["arifle_MSBS65_Mark_F", "", "acc_pointer_IR", "optic_SOS", ["30Rnd_65x39_caseless_msbs_mag", "30Rnd_65x39_caseless_msbs_mag", "30Rnd_65x39_caseless_msbs_mag_Tracer"], [], "bipod_01_F_blk"], +["arifle_MSBS65_Mark_F", "", "acc_pointer_IR", "optic_DMS", ["30Rnd_65x39_caseless_msbs_mag", "30Rnd_65x39_caseless_msbs_mag", "30Rnd_65x39_caseless_msbs_mag_Tracer"], [], "bipod_01_F_blk"], +["arifle_MSBS65_Mark_F", "", "acc_pointer_IR", "Aegis_optic_ACOG", ["30Rnd_65x39_caseless_msbs_mag", "30Rnd_65x39_caseless_msbs_mag", "30Rnd_65x39_caseless_msbs_mag_Tracer"], [], "bipod_01_F_blk"] +]]; +_militaryLoadoutData set ["sniperRifles", [ +["srifle_LRR_F", "", "", "optic_SOS", [], [], ""], +["srifle_LRR_F", "", "", "optic_LRPS", [], [], ""] +]]; +_militaryLoadoutData set ["sidearms", [ +["hgun_Pistol_heavy_01_green_F", "", "acc_flashlight_pistol", "", [], [], ""] +]]; + +/////////////////////////////// +// Police Loadout Data // +/////////////////////////////// + +private _policeLoadoutData = _loadoutData call _fnc_copyLoadoutData; // touch and shit breaks +_policeLoadoutData set ["uniforms", ["U_I_E_Uniform_01_sweater_F"]]; +_policeLoadoutData set ["vests", ["V_CarrierRigKBT_01_EAF_F"]]; +_policeLoadoutData set ["helmets", ["H_Cap_police"]]; + +_policeLoadoutData set ["rifles", [ +["arifle_MSBS65_F", "","acc_flashlight", "", ["30Rnd_65x39_caseless_msbs_mag", "30Rnd_65x39_caseless_msbs_mag", "30Rnd_65x39_caseless_msbs_mag_Tracer"], [], ""] +]]; +_policeLoadoutData set ["SMGs", [ +["SMG_03C_black", "", "", "", [], [], ""] +]]; +_policeLoadoutData set ["sidearms", ["hgun_ACPC2_black_F"]]; + +//////////////////////////////// +// Militia Loadout Data // +//////////////////////////////// + +private _militiaLoadoutData = _loadoutData call _fnc_copyLoadoutData; // touch and shit breaks +_militiaLoadoutData set ["uniforms", ["U_I_E_Uniform_01_tanktop_F", "U_I_E_Uniform_01_shortsleeve_F", "U_I_E_Uniform_01_F"]]; +_militiaLoadoutData set ["vests", ["V_BandollierB_oli", "V_Chestrig_oli", "V_ChestrigF_oli"]]; +_militiaLoadoutData set ["Hvests", ["V_TacVest_grn"]]; +_militiaLoadoutData set ["backpacks", ["B_AssaultPack_eaf_F", "B_Carryall_eaf_F", "B_Kitbag_eaf_F", "B_FieldPack_green_F", "B_TacticalPack_eaf_F"]]; +_militiaLoadoutData set ["helmets", ["H_MilCap_eaf"]]; + +_militiaLoadoutData set ["rifles", [ +["Aegis_arifle_AK74_F", "", "acc_flashlight_pistol", "", ["30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_Tracer_F"], [], ""], +["Aegis_arifle_AK74_oak_F", "", "acc_flashlight_pistol", "", ["30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_Tracer_F"], [], ""], +["Aegis_arifle_AKS74_F", "", "acc_flashlight_pistol", "", ["30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_Tracer_F"], [], ""], +["Aegis_arifle_AKS74_oak_F", "", "acc_flashlight_pistol", "", ["30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_Tracer_F"], [], ""] +]]; +_militiaLoadoutData set ["carbines", [ +["arifle_AKS_F", "", "", "", ["30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_Tracer_F"], [], ""], +["arifle_AKS_alt_F", "", "", "", ["30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_Tracer_F"], [], ""] +]]; +_militiaLoadoutData set ["grenadeLaunchers", [ +["Aegis_arifle_AK74_GL_F", "", "acc_flashlight_pistol", "", ["30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_Tracer_F"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["Aegis_arifle_AK74_GL_oak_F", "", "acc_flashlight_pistol", "", ["30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_Tracer_F"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_militiaLoadoutData set ["SMGs", [ +["SMG_03C_black", "", "", "", [], [], ""] +]]; +_militiaLoadoutData set ["machineGuns", [ +["arifle_RPK_F", "", "acc_flashlight_pistol", "", ["75Rnd_762x39_Mag_F", "30Rnd_762x39_Mag_F", "30Rnd_762x39_Mag_Tracer_F"], [], ""] +]]; +_militiaLoadoutData set ["marksmanRifles", [ +["srifle_DMR_01_black_F", "", "acc_flashlight", "optic_Arco_blk_F", [], [], "bipod_02_F_blk"] +]]; +_militiaLoadoutData set ["sniperRifles", [ +["srifle_LRR_F", "", "", "optic_SOS", [], [], ""] +]]; +_militiaLoadoutData set ["sidearms", ["hgun_Pistol_heavy_01_green_F", "hgun_ACPC2_black_F"]]; + +////////////////////////// +// Misc Loadouts // +////////////////////////// + +private _crewLoadoutData = _militaryLoadoutData call _fnc_copyLoadoutData; +_crewLoadoutData set ["uniforms", ["U_I_E_Uniform_01_shortsleeve_F"]]; +_crewLoadoutData set ["vests", ["V_CarrierRigKBT_01_EAF_F"]]; +_crewLoadoutData set ["helmets", ["H_Tank_black_F"]]; + +private _pilotLoadoutData = _militaryLoadoutData call _fnc_copyLoadoutData; +_pilotLoadoutData set ["uniforms", ["U_I_E_Uniform_01_coveralls_F"]]; +_pilotLoadoutData set ["vests", ["V_CarrierRigKBT_01_EAF_F"]]; +_pilotLoadoutData set ["helmets", ["H_CrewHelmetHeli_I_E", "H_PilotHelmetHeli_I_E", "H_PilotHelmetHeli_I_E_visor_up"]]; + +private _traitorLoadoutData = _militaryLoadoutData call _fnc_copyLoadoutData; +_traitorLoadoutData set ["uniforms", ["U_I_L_Uniform_01_camo_F"]]; +_traitorLoadoutData set ["vests", ["V_TacVest_camo"]]; + +private _officerLoadoutData = _loadoutData call _fnc_copyLoadoutData; +_officerLoadoutData set ["uniforms", ["U_I_E_ParadeUniform_01_LDF_F", "U_I_E_ParadeUniform_01_LDF_decorated_F"]]; +_officerLoadoutData set ["vests", ["Aegis_V_CarrierRigKBT_01_holster_olive_F"]]; +_officerLoadoutData set ["helmets", ["H_ParadeDressCap_01_LDF_F"]]; +_officerLoadoutData set ["backpacks", []]; +_officerLoadoutData set ["SMGs", [ +["Aegis_arifle_AKS74_gold_F", "", "", "", [], [], ""], +["Aegis_arifle_AK74_gold_F", "", "", "", [], [], ""] +]]; + +if ("mark" in A3A_enabledDLC) then { + (_sfLoadoutData get "machineGuns") append [ + ["MMG_02_black_F", "muzzle_snds_338_black", "acc_pointer_IR", "optic_Hamr", [], [], "bipod_01_F_blk"], + ["MMG_02_black_F", "muzzle_snds_338_black", "acc_pointer_IR", "optic_Holosight", [], [], "bipod_01_F_blk"], + ["MMG_02_black_F", "muzzle_snds_338_black", "acc_pointer_IR", "Aegis_optic_ACOG", [], [], "bipod_01_F_blk"]]; + (_sfLoadoutData get "marksmanRifles") append [ + ["srifle_DMR_03_F", "muzzle_snds_B_lush_F", "acc_pointer_IR", "optic_AMS", ["20Rnd_762x51_Mag"], [], "bipod_01_F_blk"]]; + (_sfLoadoutData get "sniperRifles") append [ + ["srifle_DMR_02_F", "muzzle_snds_338_black", "acc_pointer_IR", "optic_LRPS", [], [], "bipod_01_F_blk"], + ["srifle_DMR_02_F", "muzzle_snds_338_black", "acc_pointer_IR", "optic_LRPS", [], [], "bipod_01_F_blk"]]; + + (_militaryLoadoutData get "machineGuns") append [ + ["MMG_02_black_F", "", "acc_pointer_IR", "optic_Hamr", [], [], "bipod_01_F_blk"], + ["MMG_02_black_F", "", "acc_pointer_IR", "optic_Holosight", [], [], "bipod_01_F_blk"], + ["MMG_02_black_F", "", "acc_pointer_IR", "Aegis_optic_ACOG", [], [], "bipod_01_F_blk"]]; + (_militaryLoadoutData get "marksmanRifles") append [ + ["srifle_DMR_03_F", "", "acc_pointer_IR", "optic_AMS", ["20Rnd_762x51_Mag"], [], "bipod_01_F_blk"]]; + (_militaryLoadoutData get "sniperRifles") append [ + ["srifle_DMR_02_F", "", "acc_pointer_IR", "optic_LRPS", [], [], "bipod_01_F_blk"], + ["srifle_DMR_02_F", "", "acc_pointer_IR", "optic_LRPS", [], [], "bipod_01_F_blk"]]; + + (_militiaLoadoutData get "marksmanRifles") append [ + ["srifle_DMR_06_olive_F", "", "", "optic_MRCO", ["10Rnd_Mk14_762x51_Mag"], [], ""]]; + (_militiaLoadoutData get "sniperRifles") append [ + ["srifle_DMR_06_olive_F", "", "", "optic_KHS_old", ["10Rnd_Mk14_762x51_Mag"], [], "bipod_01_F_blk"], + ["srifle_DMR_06_olive_F", "", "", "optic_KHS_blk", ["10Rnd_Mk14_762x51_Mag"], [], ""]]; +}; +if ("rf" in A3A_enabledDLC) then { + _sfLoadoutData set ["sidearms",[ + ["hgun_Glock19_Tan_RF", "muzzle_snds_L", "acc_flashlight_IR_pistol_RF", "optic_MRD_tan_RF", [], [], ""], + ["hgun_Glock19_Tan_RF", "muzzle_snds_L", "acc_flashlight_IR_pistol_RF", "optic_MRD_tan_RF", [], [], ""], + ["hgun_Glock19_auto_Tan_RF", "muzzle_snds_L", "acc_flashlight_IR_pistol_RF", "optic_MRD_tan_RF", [], [], ""], + ["hgun_Glock19_auto_Tan_RF", "muzzle_snds_L", "acc_flashlight_IR_pistol_RF", "optic_MRD_tan_RF", [], [], ""], + ["hgun_Glock19_auto_Tan_RF", "muzzle_snds_L", "acc_flashlight_IR_pistol_RF", "optic_MRD_tan_RF", [], [], ""] + ]]; + (_policeLoadoutData get "sidearms") append ["hgun_Glock19_RF"]; + (_sfLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "muzzle_snds_acp", "", "optic_Holosight", [], [], ""], + ["SMG_01_black_RF", "muzzle_snds_acp", "", "optic_Aco_smg", [], [], ""] + ]; + (_militaryLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "", "", "optic_Holosight", [], [], ""], + ["SMG_01_black_RF", "", "", "optic_Aco_smg", [], [], ""] + ]; + (_militiaLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "", "acc_flashlight_smg_01", "", [], [], ""] + ]; + (_policeLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "", "acc_flashlight_smg_01", "optic_Holosight", [], [], ""], + ["SMG_01_black_RF", "", "acc_flashlight_smg_01", "optic_Aco_smg", [], [], ""] + ]; + (_sfLoadoutData get "helmets") append [ + "H_HelmetB_plain_sb_geo_RF", + "H_HelmetHeavy_Olive_RF", + "H_HelmetHeavy_Simple_Olive_RF", + "H_HelmetHeavy_VisorUp_Olive_RF"]; + (_militaryLoadoutData get "helmets") append ["H_HelmetB_plain_sb_geo_RF"]; +}; + + +///////////////////////////////// +// Unit Type Definitions // +///////////////////////////////// + + +private _squadLeaderTemplate = { + ["slHat"] call _fnc_setHelmet; + [["Hvests", "vests"] call _fnc_fallback] call _fnc_setVest; + [["slUniforms", "uniforms"] call _fnc_fallback] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [["slRifles", "rifles"] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + ["primary", 4] call _fnc_addAdditionalMuzzleMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_squadLeader_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 2] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + ["signalsmokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["gpses"] call _fnc_addGPS; + ["binoculars"] call _fnc_addBinoculars; + ["NVGs"] call _fnc_addNVGs; +}; + +private _riflemanTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + ["primary", 2] call _fnc_addAdditionalMuzzleMagazines; + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_rifleman_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 2] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _medicTemplate = { + ["helmets"] call _fnc_setHelmet; + [["Hvests", "vests"] call _fnc_fallback] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["carbines", "SMGs"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + ["primary", 2] call _fnc_addAdditionalMuzzleMagazines; + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_medic"] call _fnc_addItemSet; + ["items_medic_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _grenadierTemplate = { + ["helmets"] call _fnc_setHelmet; + [["Hvests", "vests"] call _fnc_fallback] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + ["grenadeLaunchers"] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + ["primary", 10] call _fnc_addAdditionalMuzzleMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_grenadier_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 4] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _explosivesExpertTemplate = { + ["helmets"] call _fnc_setHelmet; + [["Hvests", "vests"] call _fnc_fallback] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + ["primary", 2] call _fnc_addAdditionalMuzzleMagazines; + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_explosivesExpert_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + + ["lightExplosives", 2] call _fnc_addItem; + if (random 1 > 0.5) then {["heavyExplosives", 1] call _fnc_addItem;}; + if (random 1 > 0.5) then {["atMines", 1] call _fnc_addItem;}; + if (random 1 > 0.5) then {["apMines", 1] call _fnc_addItem;}; + + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _engineerTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["carbines", "SMGs"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + ["primary", 2] call _fnc_addAdditionalMuzzleMagazines; + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_engineer_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + + if (random 1 > 0.5) then {["lightExplosives", 1] call _fnc_addItem;}; + + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _latTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + ["primary", 2] call _fnc_addAdditionalMuzzleMagazines; + [["lightATLaunchers", "ATLaunchers"] call _fnc_fallback] call _fnc_setLauncher; + //TODO - Add a check if it's disposable. + ["launcher", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_lat_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _atTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + ["primary", 2] call _fnc_addAdditionalMuzzleMagazines; + [selectRandom ["ATLaunchers", "missileATLaunchers"]] call _fnc_setLauncher; + //TODO - Add a check if it's disposable. + ["launcher", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_at_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _aaTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + ["primary", 2] call _fnc_addAdditionalMuzzleMagazines; + ["AALaunchers"] call _fnc_setLauncher; + //TODO - Add a check if it's disposable. + ["launcher", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_aa_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _machineGunnerTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + ["machineGuns"] call _fnc_setPrimary; + ["primary", 4] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_machineGunner_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _marksmanTemplate = { + ["sniHats"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + ["marksmanRifles"] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_marksman_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["rangefinders"] call _fnc_addBinoculars; + ["NVGs"] call _fnc_addNVGs; +}; + +private _sniperTemplate = { + ["sniHats"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + ["sniperRifles"] call _fnc_setPrimary; + ["primary", 7] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_sniper_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["rangefinders"] call _fnc_addBinoculars; + ["NVGs"] call _fnc_addNVGs; +}; + +private _policeTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + [["rifles", "SMGs"] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_police_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; +}; + +private _crewTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + [selectRandom ["carbines", "SMGs"]] call _fnc_setPrimary; + ["primary", 3] call _fnc_addMagazines; + ["primary", 2] call _fnc_addAdditionalMuzzleMagazines; + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_basic"] call _fnc_addItemSet; + ["items_crew_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["gpses"] call _fnc_addGPS; + ["NVGs"] call _fnc_addNVGs; +}; + +private _unarmedTemplate = { + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + ["items_medical_basic"] call _fnc_addItemSet; + ["items_unarmed_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; +}; + +private _traitorTemplate = { + call _unarmedTemplate; + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; +}; + +//////////////////////////////////////////////////////////////////////////////////////// +// You shouldn't touch below this line unless you really really know what you're doing. +// Things below here can and will break the gamemode if improperly changed. +//////////////////////////////////////////////////////////////////////////////////////// + +///////////////////////////// +// Special Forces Units // +///////////////////////////// +private _prefix = "SF"; +private _unitTypes = [ + ["SquadLeader", _squadLeaderTemplate], + ["Rifleman", _riflemanTemplate], + ["Medic", _medicTemplate, [["medic", true]]], + ["Engineer", _engineerTemplate, [["engineer", true]]], + ["ExplosivesExpert", _explosivesExpertTemplate, [["explosiveSpecialist", true]]], + ["Grenadier", _grenadierTemplate], + ["LAT", _latTemplate], + ["AT", _atTemplate], + ["AA", _aaTemplate], + ["MachineGunner", _machineGunnerTemplate], + ["Marksman", _marksmanTemplate], + ["Sniper", _sniperTemplate] +]; + +[_prefix, _unitTypes, _sfLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +/*{ + params ["_name", "_loadoutTemplate"]; + private _loadouts = [_sfLoadoutData, _loadoutTemplate] call _fnc_buildLoadouts; + private _finalName = _prefix + _name; + [_finalName, _loadouts] call _fnc_saveToTemplate; +} forEach _unitTypes; +*/ + +/////////////////////// +// Military Units // +/////////////////////// +private _prefix = "military"; +private _unitTypes = [ + ["SquadLeader", _squadLeaderTemplate], + ["Rifleman", _riflemanTemplate], + ["Medic", _medicTemplate, [["medic", true]]], + ["Engineer", _engineerTemplate, [["engineer", true]]], + ["ExplosivesExpert", _explosivesExpertTemplate, [["explosiveSpecialist", true]]], + ["Grenadier", _grenadierTemplate], + ["LAT", _latTemplate], + ["AT", _atTemplate], + ["AA", _aaTemplate], + ["MachineGunner", _machineGunnerTemplate], + ["Marksman", _marksmanTemplate], + ["Sniper", _sniperTemplate] +]; + +[_prefix, _unitTypes, _militaryLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +//////////////////////// +// Police Units // +//////////////////////// +private _prefix = "police"; +private _unitTypes = [ + ["SquadLeader", _policeTemplate], + ["Standard", _policeTemplate] +]; + +[_prefix, _unitTypes, _policeLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +//////////////////////// +// Militia Units // +//////////////////////// +private _prefix = "militia"; +private _unitTypes = [ + ["SquadLeader", _squadLeaderTemplate], + ["Rifleman", _riflemanTemplate], + ["Medic", _medicTemplate, [["medic", true]]], + ["Engineer", _engineerTemplate, [["engineer", true]]], + ["ExplosivesExpert", _explosivesExpertTemplate, [["explosiveSpecialist", true]]], + ["Grenadier", _grenadierTemplate], + ["LAT", _latTemplate], + ["AT", _atTemplate], + ["AA", _aaTemplate], + ["MachineGunner", _machineGunnerTemplate], + ["Marksman", _marksmanTemplate], + ["Sniper", _sniperTemplate] +]; + +[_prefix, _unitTypes, _militiaLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +////////////////////// +// Misc Units // +////////////////////// + +//The following lines are determining the loadout of vehicle crew +["other", [["Crew", _crewTemplate]], _crewLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout of the pilots +["other", [["Pilot", _crewTemplate]], _pilotLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout for the unit used in the "kill the official" mission +["other", [["Official", _policeTemplate]], _officerLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout for the AI used in the "kill the traitor" mission +["other", [["Traitor", _traitorTemplate]], _traitorLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout for the AI used in the "Invader Punishment" mission +["other", [["Unarmed", _UnarmedTemplate]], _militaryLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; diff --git a/A3A/addons/core/Templates/Templates/Aegis/Aegis_AI_Russia.sqf b/A3A/addons/core/Templates/Templates/Aegis/Aegis_AI_Russia.sqf new file mode 100644 index 0000000000..02a1a91dcb --- /dev/null +++ b/A3A/addons/core/Templates/Templates/Aegis/Aegis_AI_Russia.sqf @@ -0,0 +1,974 @@ +////////////////////////// +// Side Information // +////////////////////////// + +["name", "Russia"] call _fnc_saveToTemplate; +["spawnMarkerName", "Russian Support Corridor"] call _fnc_saveToTemplate; + +["flag", "Flag_Russia_F"] call _fnc_saveToTemplate; +["flagTexture", "a3_aegis\data_f_aegis\flags\flag_rus_co.paa"] call _fnc_saveToTemplate; +["flagMarkerType", "flag_Russia"] call _fnc_saveToTemplate; + +////////////////////////// +// Vehicles // +////////////////////////// + +["ammobox", "B_supplyCrate_F"] call _fnc_saveToTemplate; //Don't touch or you die a sad and lonely death! +["surrenderCrate", "Box_IND_Wps_F"] call _fnc_saveToTemplate; //Changeing this from default will require you to define logistics attachement offset for the box type +["equipmentBox", "Box_NATO_Equip_F"] call _fnc_saveToTemplate; //Changeing this from default will require you to define logistics attachement offset for the box type + +["vehiclesBasic", ["O_R_Quadbike_01_F"]] call _fnc_saveToTemplate; +["vehiclesLightUnarmed", ["O_R_MRAP_02_F","O_R_MRAP_02_F", "O_R_LSV_02_unarmed_F"]] call _fnc_saveToTemplate; +["vehiclesLightArmed",["O_R_MRAP_02_gmg_F","O_R_MRAP_02_hmg_F","O_R_MRAP_02_gmg_F","O_R_MRAP_02_hmg_F","O_R_LSV_02_armed_F","O_R_LSV_02_AT_F"]] call _fnc_saveToTemplate; +["vehiclesTrucks", ["O_R_Truck_03_transport_F","O_R_Truck_03_covered_F","O_R_Truck_02_transport_F","O_R_Truck_02_F"]] call _fnc_saveToTemplate; +private _cargoTrucks = ["O_R_Truck_03_transport_F","O_R_Truck_03_covered_F","O_R_Truck_02_transport_F","O_R_Truck_02_F"]; +["vehiclesAmmoTrucks", ["O_R_Truck_02_Ammo_F","O_R_Truck_03_ammo_F"]] call _fnc_saveToTemplate; +["vehiclesRepairTrucks", ["O_R_Truck_03_repair_F","O_R_Truck_02_box_F"]] call _fnc_saveToTemplate; +["vehiclesFuelTrucks", ["O_R_Truck_02_fuel_F","O_R_Truck_03_fuel_F"]] call _fnc_saveToTemplate; +["vehiclesMedical", ["O_R_Truck_02_medical_F","O_R_Truck_03_medical_F"]] call _fnc_saveToTemplate; +["vehiclesLightAPCs", []] call _fnc_saveToTemplate; +private _APCs = ["O_R_APC_Wheeled_02_rcws_v2_F", "a3a_O_R_APC_Wheeled_04_cannon_F", "a3a_O_R_APC_Wheeled_02_rcws_v2_F"]; +["vehiclesIFVs", ["a3a_Aegis_O_R_APC_Tracked_02_30mm_lxWS"]] call _fnc_saveToTemplate; +private _Tanks = ["O_R_MBT_02_cannon_F"]; +private _AA = ["O_R_APC_Tracked_02_AA_F"]; + +["vehiclesTransportBoats", ["O_Boat_Transport_01_F"]] call _fnc_saveToTemplate; +["vehiclesGunBoats", ["O_Boat_Armed_01_hmg_F"]] call _fnc_saveToTemplate; +["vehiclesAmphibious", []] call _fnc_saveToTemplate; + +["vehiclesPlanesCAS", ["O_R_Plane_CAS_02_dynamicLoadout_F"]] call _fnc_saveToTemplate; +["vehiclesPlanesAA", ["O_R_Plane_Fighter_02_F"]] call _fnc_saveToTemplate; +["vehiclesPlanesTransport", ["O_T_Plane_Transport_01_infantry_ghex_F"]] call _fnc_saveToTemplate; + +["vehiclesHelisLight", ["O_R_Heli_Light_02_unarmed_F"]] call _fnc_saveToTemplate; +["vehiclesHelisTransport", ["O_R_Heli_Transport_04_bench_F","O_R_Heli_Transport_04_covered_F"]] call _fnc_saveToTemplate; +["vehiclesHelisLightAttack", ["O_R_Heli_Light_02_dynamicLoadout_F"]] call _fnc_saveToTemplate; +["vehiclesHelisAttack", ["O_R_Heli_Attack_02_dynamicLoadout_F", "Aegis_O_R_Heli_Attack_04_F"]] call _fnc_saveToTemplate; + +["vehiclesArtillery", ["O_R_MBT_02_arty_F", "O_R_Truck_02_MRL_F"]] call _fnc_saveToTemplate; +["magazines", createHashMapFromArray [ +["O_R_MBT_02_arty_F", ["32Rnd_155mm_Mo_shells_O"]], +["O_R_Truck_02_MRL_F", ["12Rnd_230mm_rockets"]] +]] call _fnc_saveToTemplate; + +["uavsAttack", ["O_R_UAV_02_dynamicLoadout_F"]] call _fnc_saveToTemplate; +["uavsPortable", ["O_R_UAV_01_F"]] call _fnc_saveToTemplate; + +private _vehiclesMilitiaLightArmed = ["O_R_LSV_02_armed_F"]; +["vehiclesMilitiaTrucks", ["O_R_Truck_02_transport_F", "O_R_Truck_02_F", "O_R_Truck_03_covered_F", "O_R_Truck_03_transport_F"]] call _fnc_saveToTemplate; +private _vehiclesMilitiaCars = ["O_R_LSV_02_unarmed_F"]; + +private _vehiclesPolice = ["B_GEN_Offroad_01_gen_F"]; + +["staticMGs", ["I_G_HMG_02_high_F"]] call _fnc_saveToTemplate; +["staticAT", ["O_static_AT_F"]] call _fnc_saveToTemplate; +["staticAA", ["O_static_AA_F"]] call _fnc_saveToTemplate; +["staticMortars", ["O_Mortar_01_F"]] call _fnc_saveToTemplate; + +["mortarMagazineHE", "8Rnd_82mm_Mo_shells"] call _fnc_saveToTemplate; +["mortarMagazineSmoke", "8Rnd_82mm_Mo_Smoke_white"] call _fnc_saveToTemplate; +["mortarMagazineFlare", "8Rnd_82mm_Mo_Flare_white"] call _fnc_saveToTemplate; + +//Minefield definition +["minefieldAT", ["ATMine"]] call _fnc_saveToTemplate; +["minefieldAPERS", ["APERSMine"]] call _fnc_saveToTemplate; + +//If Western Sahara DLC +if ("ws" in A3A_enabledDLC) then { + _cargoTrucks append ["O_R_Truck_02_cargo_F","O_R_Truck_02_flatbed_F"]; + _APCs = _APCs - ["a3a_O_R_APC_Wheeled_04_cannon_F"]; + _APCs append ["O_R_APC_Wheeled_04_cannon_F"]; + _AA append ["Aegis_O_R_Truck_02_aa_F"]; +}; +if ("tanks" in A3A_enabledDLC) then { + ["vehiclesHeavyTanks", ["O_R_MBT_04_cannon_F", "O_R_MBT_04_command_F"]] call _fnc_saveToTemplate; +}; +if ("rf" in A3A_enabledDLC) then { + _vehiclesPolice append ["a3a_police_Pickup_rf", "B_GEN_Pickup_covered_rf", "a3a_police_Pickup_comms_rf"]; + _vehiclesMilitiaCars append ["O_T_Pickup_rf"]; + _vehiclesMilitiaLightArmed append ["a3a_ghex_Pickup_mmg_rf"]; +}; +["vehiclesPolice", _vehiclesPolice] call _fnc_saveToTemplate; + +["vehiclesCargoTrucks", _cargoTrucks] call _fnc_saveToTemplate; +["vehiclesAPCs", _APCs] call _fnc_saveToTemplate; +["vehiclesTanks", _Tanks] call _fnc_saveToTemplate; +["vehiclesAA", _AA] call _fnc_saveToTemplate; + +["vehiclesMilitiaCars", _vehiclesMilitiaCars] call _fnc_saveToTemplate; +["vehiclesMilitiaLightArmed", _vehiclesMilitiaLightArmed] call _fnc_saveToTemplate; + + +#include "Aegis_Vehicle_Attributes.sqf" + +///////////////////// +/// Identities /// +///////////////////// + +["voices", ["Male01RUS","Male02RUS","Male03RUS"]] call _fnc_saveToTemplate; +["faces", ["AsianHead_A3_02","AsianHead_A3_04","AsianHead_A3_07","LivonianHead_1","LivonianHead_10", +"LivonianHead_2","LivonianHead_3","LivonianHead_4","LivonianHead_5","LivonianHead_8","LivonianHead_9", +"RussianHead_3","RussianHead_4","RussianHead_5","WhiteHead_01","WhiteHead_02", +"WhiteHead_04","WhiteHead_08","WhiteHead_09","WhiteHead_10","WhiteHead_13", +"WhiteHead_14","WhiteHead_15","WhiteHead_18","WhiteHead_21","WhiteHead_30"]] call _fnc_saveToTemplate; +"RussianMen" call _fnc_saveNames; + +////////////////////////// +// Loadouts // +////////////////////////// + +private _loadoutData = call _fnc_createLoadoutData; +_loadoutData set ["slRifles", []]; +_loadoutData set ["rifles", []]; +_loadoutData set ["carbines", []]; +_loadoutData set ["grenadeLaunchers", []]; +_loadoutData set ["shotGuns", []]; +_loadoutData set ["SMGs", []]; +_loadoutData set ["machineGuns", []]; +_loadoutData set ["marksmanRifles", []]; +_loadoutData set ["sniperRifles", []]; +_loadoutData set ["lightATLaunchers", ["Aegis_launch_RPG7M_F"]]; +_loadoutData set ["ATLaunchers", [ +["launch_RPG32_green_F", "", "", "", ["RPG32_F", "RPG32_HE_F"], [], ""], +["launch_RPG32_green_F", "", "", "", ["RPG32_F", "RPG32_HE_F"], [], ""], +["launch_RPG32_camo_F", "", "", "", ["RPG32_F", "RPG32_HE_F"], [], ""] +]]; +_loadoutData set ["missileATLaunchers", [ +["launch_O_Titan_short_camo_F", "", "acc_pointer_IR", "", ["Titan_AT"], [], ""], +["launch_O_Titan_short_camo_F", "", "acc_pointer_IR", "", ["Titan_AT"], [], ""], +["launch_O_Vorona_green_F", "", "", "", ["Vorona_HEAT", "Vorona_HE"], [], ""], +["launch_O_Vorona_green_F", "", "", "", ["Vorona_HEAT"], [], ""] +]]; +_loadoutData set ["AALaunchers", [ +["launch_O_Titan_camo_F", "", "acc_pointer_IR", "", ["Titan_AA"], [], ""] +]]; +_loadoutData set ["sidearms", []]; + +_loadoutData set ["ATMines", ["ATMine_Range_Mag"]]; +_loadoutData set ["APMines", ["APERSMine_Range_Mag"]]; +_loadoutData set ["lightExplosives", ["DemoCharge_Remote_Mag"]]; +_loadoutData set ["heavyExplosives", ["SatchelCharge_Remote_Mag"]]; + +_loadoutData set ["antiInfantryGrenades", ["HandGrenade_East", "HandGrenade_Guer"]]; +_loadoutData set ["antiTankGrenades", []]; +_loadoutData set ["smokeGrenades", ["SmokeShell"]]; +_loadoutData set ["signalsmokeGrenades", ["SmokeShellYellow", "SmokeShellRed", "SmokeShellPurple", "SmokeShellOrange", "SmokeShellGreen", "SmokeShellBlue"]]; + + +//Basic equipment. Shouldn't need touching most of the time. +//Mods might override this, or certain mods might want items removed (No GPSs in WW2, for example) +_loadoutData set ["maps", ["ItemMap"]]; +_loadoutData set ["watches", ["ItemWatch"]]; +_loadoutData set ["compasses", ["ItemCompass"]]; +_loadoutData set ["radios", ["ItemRadio"]]; +_loadoutData set ["gpses", ["ItemGPS"]]; +_loadoutData set ["NVGs", ["NVGoggles_OPFOR"]]; +_loadoutData set ["binoculars", ["Binocular"]]; +_loadoutData set ["rangefinders", ["Rangefinder"]]; + +_loadoutData set ["uniforms", []]; +_loadoutData set ["slUniforms", []]; +_loadoutData set ["vests", []]; +_loadoutData set ["Hvests", []]; +_loadoutData set ["glVests", []]; +_loadoutData set ["backpacks", []]; +_loadoutData set ["longRangeRadios", []]; +_loadoutData set ["helmets", []]; +_loadoutData set ["slHat", ["H_Beret_ocamo"]]; +_loadoutData set ["sniHats", ["H_Booniehat_taiga_hs"]]; + +//Item *set* definitions. These are added in their entirety to unit loadouts. No randomisation is applied. +_loadoutData set ["items_medical_basic", ["BASIC"] call A3A_fnc_itemset_medicalSupplies]; //this line defines the basic medical loadout for vanilla +_loadoutData set ["items_medical_standard", ["STANDARD"] call A3A_fnc_itemset_medicalSupplies]; //this line defines the standard medical loadout for vanilla +_loadoutData set ["items_medical_medic", ["MEDIC"] call A3A_fnc_itemset_medicalSupplies]; //this line defines the medic medical loadout for vanilla +_loadoutData set ["items_miscEssentials", [] call A3A_fnc_itemset_miscEssentials]; + +//Unit type specific item sets. Add or remove these, depending on the unit types in use. +private _slItems = ["Laserbatteries", "Laserbatteries", "Laserbatteries"]; +private _eeItems = ["ToolKit", "MineDetector"]; +private _mmItems = []; + +if (A3A_hasACE) then { + _slItems append ["ACE_microDAGR", "ACE_DAGR"]; + _eeItems append ["ACE_Clacker", "ACE_DefusalKit"]; + _mmItems append ["ACE_RangeCard", "ACE_ATragMX", "ACE_Kestrel4500"]; +}; + +_loadoutData set ["items_squadLeader_extras", _slItems]; +_loadoutData set ["items_rifleman_extras", []]; +_loadoutData set ["items_medic_extras", []]; +_loadoutData set ["items_grenadier_extras", []]; +_loadoutData set ["items_explosivesExpert_extras", _eeItems]; +_loadoutData set ["items_engineer_extras", _eeItems]; +_loadoutData set ["items_lat_extras", []]; +_loadoutData set ["items_at_extras", []]; +_loadoutData set ["items_aa_extras", []]; +_loadoutData set ["items_machineGunner_extras", []]; +_loadoutData set ["items_marksman_extras", _mmItems]; +_loadoutData set ["items_sniper_extras", _mmItems]; +_loadoutData set ["items_police_extras", []]; +_loadoutData set ["items_crew_extras", []]; +_loadoutData set ["items_unarmed_extras", []]; + +//TODO - ACE overrides for misc essentials, medical and engineer gear + +/////////////////////////////////////// +// Special Forces Loadout Data // +/////////////////////////////////////// + +private _sfLoadoutData = _loadoutData call _fnc_copyLoadoutData; // touch and shit breaks +_sfLoadoutData set ["uniforms", ["U_O_R_Gorka_01_camo_F"]]; +_sfLoadoutData set ["slUniforms", ["U_O_R_Gorka_01_F"]]; +_sfLoadoutData set ["vests", ["V_SmershVest_01_F", "V_SmershVest_01_radio_F"]]; +_sfLoadoutData set ["Hvests", ["V_TacVest_grn"]]; +_sfLoadoutData set ["backpacks", ["B_Carryall_taiga_F", "B_FieldPack_taiga_F", "B_AssaultPack_taiga_F"]]; +_sfLoadoutData set ["helmets", ["H_HelmetSpecter_cover_taiga_F", "H_HelmetSpecter_cover_khaki_F", "H_HelmetSpecter_headset_F"]]; +_sfLoadoutData set ["NVGs", ["O_NVGoggles_grn_F"]]; +_sfLoadoutData set ["binoculars", ["Laserdesignator_03"]]; + +_sfLoadoutData set ["slRifles", [ +["arifle_AK12_lush_F", "aegis_muzzle_snds_pbs_762_lush", "acc_pointer_IR", "optic_Arco_AK_lush_F", ["30rnd_762x39_AK12_Lush_Mag_F", "30rnd_762x39_AK12_Lush_Mag_F", "30rnd_762x39_AK12_Lush_Mag_Tracer_F"], [], ""], +["arifle_AK12_GL_lush_F", "aegis_muzzle_snds_pbs_762_lush", "acc_pointer_IR", "optic_Arco_AK_lush_F", ["30rnd_762x39_AK12_Lush_Mag_F", "30rnd_762x39_AK12_Lush_Mag_F", "30rnd_762x39_AK12_Lush_Mag_Tracer_F"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_sfLoadoutData set ["rifles", [ +["arifle_AK12_lush_F", "aegis_muzzle_snds_pbs_762_lush", "acc_pointer_IR", "optic_Holosight_lush_F", ["30rnd_762x39_AK12_Lush_Mag_F", "30rnd_762x39_AK12_Lush_Mag_F", "30rnd_762x39_AK12_Lush_Mag_Tracer_F"], [], ""], +["arifle_AK12_lush_F", "aegis_muzzle_snds_pbs_762_lush", "acc_pointer_IR", "optic_ACO_grn_AK_F", ["30rnd_762x39_AK12_Lush_Mag_F", "30rnd_762x39_AK12_Lush_Mag_F", "30rnd_762x39_AK12_Lush_Mag_Tracer_F"], [], ""], +["arifle_AK12_lush_F", "aegis_muzzle_snds_pbs_762_lush", "acc_pointer_IR", "Aegis_optic_ROS", ["30rnd_762x39_AK12_Lush_Mag_F", "30rnd_762x39_AK12_Lush_Mag_F", "30rnd_762x39_AK12_Lush_Mag_Tracer_F"], [], ""] +]]; +_sfLoadoutData set ["carbines", [ +["arifle_AK12U_lush_F", "aegis_muzzle_snds_pbs_762_lush", "acc_pointer_IR", "optic_Holosight_lush_F", ["30rnd_762x39_AK12_Lush_Mag_F", "30rnd_762x39_AK12_Lush_Mag_F", "30rnd_762x39_AK12_Lush_Mag_Tracer_F"], [], ""], +["arifle_AK12U_lush_F", "aegis_muzzle_snds_pbs_762_lush", "acc_pointer_IR", "optic_ACO_grn_AK_F", ["30rnd_762x39_AK12_Lush_Mag_F", "30rnd_762x39_AK12_Lush_Mag_F", "30rnd_762x39_AK12_Lush_Mag_Tracer_F"], [], ""], +["arifle_AK12U_lush_F", "aegis_muzzle_snds_pbs_762_lush", "acc_pointer_IR", "Aegis_optic_ROS", ["30rnd_762x39_AK12_Lush_Mag_F", "30rnd_762x39_AK12_Lush_Mag_F", "30rnd_762x39_AK12_Lush_Mag_Tracer_F"], [], ""] +]]; +_sfLoadoutData set ["grenadeLaunchers", [ +["arifle_AK12_GL_lush_F", "aegis_muzzle_snds_pbs_762_lush", "acc_pointer_IR", "optic_Holosight_lush_F", ["30rnd_762x39_AK12_Lush_Mag_F", "30rnd_762x39_AK12_Lush_Mag_F", "30rnd_762x39_AK12_Lush_Mag_Tracer_F"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_AK12_GL_lush_F", "aegis_muzzle_snds_pbs_762_lush", "acc_pointer_IR", "optic_ACO_grn_AK_F", ["30rnd_762x39_AK12_Lush_Mag_F", "30rnd_762x39_AK12_Lush_Mag_F", "30rnd_762x39_AK12_Lush_Mag_Tracer_F"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_AK12_GL_lush_F", "aegis_muzzle_snds_pbs_762_lush", "acc_pointer_IR", "Aegis_optic_ROS", ["30rnd_762x39_AK12_Lush_Mag_F", "30rnd_762x39_AK12_Lush_Mag_F", "30rnd_762x39_AK12_Lush_Mag_Tracer_F"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_sfLoadoutData set ["SMGs", [ +["SMG_03C_TR_hex", "muzzle_snds_570", "acc_pointer_IR", "optic_Holosight_smg_blk_F", [], [], ""], +["SMG_03C_TR_hex", "muzzle_snds_570", "acc_pointer_IR", "optic_ACO_grn_smg", [], [], ""], +["SMG_03C_TR_hex", "muzzle_snds_570", "acc_pointer_IR", "Aegis_optic_ROS_SMG", [], [], ""], +["SMG_03C_hex", "muzzle_snds_570", "", "", [], [], ""], +["SMG_02_F", "muzzle_snds_L", "acc_pointer_IR", "optic_Holosight_smg_blk_F", [], [], ""], +["SMG_02_F", "muzzle_snds_L", "acc_pointer_IR", "optic_ACO_grn_smg", [], [], ""], +["SMG_02_F", "muzzle_snds_L", "acc_pointer_IR", "Aegis_optic_ROS_SMG", [], [], ""] +]]; +_sfLoadoutData set ["machineGuns", [ +["arifle_RPK12_lush_F", "aegis_muzzle_snds_pbs_762_lush", "acc_pointer_IR", "optic_Holosight_lush_F", ["75rnd_762x39_AK12_Lush_Mag_F", "75rnd_762x39_AK12_Lush_Mag_F", "75rnd_762x39_AK12_Lush_Mag_Tracer_F"], [], ""], +["arifle_RPK12_lush_F", "aegis_muzzle_snds_pbs_762_lush", "acc_pointer_IR", "optic_ACO_grn_AK_F", ["75rnd_762x39_AK12_Lush_Mag_F", "75rnd_762x39_AK12_Lush_Mag_F", "75rnd_762x39_AK12_Lush_Mag_Tracer_F"], [], ""], +["arifle_RPK12_lush_F", "aegis_muzzle_snds_pbs_762_lush", "acc_pointer_IR", "Aegis_optic_ROS", ["75rnd_762x39_AK12_Lush_Mag_F", "75rnd_762x39_AK12_Lush_Mag_F", "75rnd_762x39_AK12_Lush_Mag_Tracer_F"], [], ""] +]]; +_sfLoadoutData set ["marksmanRifles", [ +["srifle_DMR_04_F", "", "acc_pointer_IR", "optic_DMS_weathered_Kir_F", [], [], "bipod_02_F_blk"], +["srifle_DMR_04_F", "", "acc_pointer_IR", "optic_Arco_blk_F", [], [], "bipod_02_F_blk"], +["srifle_DMR_04_F", "", "acc_pointer_IR", "optic_SOS", [], [], "bipod_02_F_blk"] +]]; +_sfLoadoutData set ["sniperRifles", [ +["srifle_GM6_F", "", "", "optic_LRPS", ["5Rnd_127x108_Mag", "5Rnd_127x108_APDS_Mag"], [], ""], +["srifle_GM6_F", "", "", "optic_SOS", ["5Rnd_127x108_Mag", "5Rnd_127x108_APDS_Mag"], [], ""] +]]; +_sfLoadoutData set ["sidearms", [ +["hgun_Rook40_F", "muzzle_snds_L", "", "", [], [], ""], +["hgun_Mk26_F", "", "Aegis_acc_pointer_compact_pistol_green", "", [], [], ""] +]]; + +///////////////////////////////// +// Military Loadout Data // +///////////////////////////////// + +private _militaryLoadoutData = _loadoutData call _fnc_copyLoadoutData; // touch and shit breaks +_militaryLoadoutData set ["uniforms", ["Aegis_U_O_CombatFatigues_rutaiga_F", "Aegis_U_O_CombatFatigues_02_rutaiga_F", "U_O_R_CombatUniform_tshirt_taiga_F"]]; +_militaryLoadoutData set ["slUniforms", ["U_O_R_OfficerUniform_taiga_F"]]; +_militaryLoadoutData set ["vests", ["Aegis_V_OCarrierLuchnik_Lite_F"]]; +_militaryLoadoutData set ["glVests", ["Aegis_V_OCarrierLuchnik_GL_F"]]; +_militaryLoadoutData set ["Hvests", ["Aegis_V_OCarrierLuchnik_CQB_F"]]; +_militaryLoadoutData set ["backpacks", ["B_Carryall_taiga_F", "B_FieldPack_taiga_F", "B_AssaultPack_taiga_F"]]; +_militaryLoadoutData set ["helmets", ["H_HelmetLuchnik_cover_grn_F", "H_HelmetLuchnik_cover_rutaiga_F"]]; +_militaryLoadoutData set ["binoculars", ["Laserdesignator_03"]]; + +_militaryLoadoutData set ["slRifles", [ +["arifle_AK12_545_F", "", "acc_pointer_IR", "optic_Arco_blk_F", ["30Rnd_545x39_AK12_Mag_F", "30Rnd_545x39_AK12_Mag_F", "30Rnd_545x39_AK12_Mag_Tracer_F"], [], ""], +["arifle_AK12_GL_545_F", "", "acc_pointer_IR", "optic_Arco_blk_F", ["30Rnd_545x39_AK12_Mag_F", "30Rnd_545x39_AK12_Mag_F", "30Rnd_545x39_AK12_Mag_Tracer_F"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_militaryLoadoutData set ["rifles", [ +["arifle_AK12_545_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_545x39_AK12_Mag_F", "30Rnd_545x39_AK12_Mag_F", "30Rnd_545x39_AK12_Mag_Tracer_F"], [], ""], +["arifle_AK12_545_F", "", "acc_pointer_IR", "optic_ACO_grn", ["30Rnd_545x39_AK12_Mag_F", "30Rnd_545x39_AK12_Mag_F", "30Rnd_545x39_AK12_Mag_Tracer_F"], [], ""], +["arifle_AK12_545_F", "", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_545x39_AK12_Mag_F", "30Rnd_545x39_AK12_Mag_F", "30Rnd_545x39_AK12_Mag_Tracer_F"], [], ""] +]]; +_militaryLoadoutData set ["carbines", [ +["arifle_AK12U_545_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_545x39_AK12_Mag_F", "30Rnd_545x39_AK12_Mag_F", "30Rnd_545x39_AK12_Mag_Tracer_F"], [], ""], +["arifle_AK12U_545_F", "", "acc_pointer_IR", "optic_ACO_grn", ["30Rnd_545x39_AK12_Mag_F", "30Rnd_545x39_AK12_Mag_F", "30Rnd_545x39_AK12_Mag_Tracer_F"], [], ""], +["arifle_AK12U_545_F", "", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_545x39_AK12_Mag_F", "30Rnd_545x39_AK12_Mag_F", "30Rnd_545x39_AK12_Mag_Tracer_F"], [], ""] +]]; +_militaryLoadoutData set ["grenadeLaunchers", [ +["arifle_AK12_GL_545_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_545x39_AK12_Mag_F", "30Rnd_545x39_AK12_Mag_F", "30Rnd_545x39_AK12_Mag_Tracer_F"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_AK12_GL_545_F", "", "acc_pointer_IR", "optic_ACO_grn", ["30Rnd_545x39_AK12_Mag_F", "30Rnd_545x39_AK12_Mag_F", "30Rnd_545x39_AK12_Mag_Tracer_F"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_AK12_GL_545_F", "", "acc_pointer_IR", "Aegis_optic_ROS", ["30Rnd_545x39_AK12_Mag_F", "30Rnd_545x39_AK12_Mag_F", "30Rnd_545x39_AK12_Mag_Tracer_F"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_militaryLoadoutData set ["shotGuns", [ +["sgun_Mp153_black_F", "", "Aegis_acc_pointer_compact_pistol_green", "", ["4Rnd_12Gauge_Pellets", "4Rnd_12Gauge_Slug"], [], ""] +]]; +_militaryLoadoutData set ["SMGs", [ +["SMG_03C_TR_hex", "", "acc_pointer_IR", "optic_Holosight_smg_blk_F", [], [], ""], +["SMG_03C_TR_hex", "", "acc_pointer_IR", "optic_Aco_smg", [], [], ""], +["SMG_03C_TR_hex", "", "acc_pointer_IR", "Aegis_optic_ROS_SMG", [], [], ""], +["SMG_03C_hex", "", "", "", [], [], ""], +["SMG_02_F", "", "acc_pointer_IR", "optic_Holosight_smg_blk_F", [], [], ""], +["SMG_02_F", "", "acc_pointer_IR", "optic_Aco_smg", [], [], ""], +["SMG_02_F", "", "acc_pointer_IR", "Aegis_optic_ROS_SMG", [], [], ""] +]]; +_militaryLoadoutData set ["machineGuns", [ +["Aegis_arifle_RPK12_545_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", ["Aegis_60Rnd_545x39_Mag_F", "Aegis_60Rnd_545x39_Mag_F", "Aegis_60Rnd_545x39_Mag_Tracer_F"], [], ""], +["Aegis_arifle_RPK12_545_F", "", "acc_pointer_IR", "optic_ACO_grn", ["Aegis_60Rnd_545x39_Mag_F", "Aegis_60Rnd_545x39_Mag_F", "Aegis_60Rnd_545x39_Mag_Tracer_F"], [], ""], +["Aegis_arifle_RPK12_545_F", "", "acc_pointer_IR", "Aegis_optic_ROS", ["Aegis_60Rnd_545x39_Mag_F", "Aegis_60Rnd_545x39_Mag_F", "Aegis_60Rnd_545x39_Mag_Tracer_F"], [], ""] +]]; +_militaryLoadoutData set ["marksmanRifles", [ +["srifle_DMR_05_blk_F", "", "acc_pointer_IR", "optic_DMS_weathered_F", [], [], "bipod_02_F_blk"], +["srifle_DMR_05_blk_F", "", "acc_pointer_IR", "optic_Arco_blk_F", [], [], "bipod_02_F_blk"], +["srifle_DMR_05_blk_F", "", "acc_pointer_IR", "optic_SOS", [], [], "bipod_02_F_blk"], +["srifle_DMR_01_black_F", "", "acc_pointer_IR", "optic_DMS", [], [], "bipod_02_F_blk"], +["srifle_DMR_01_black_F", "", "acc_pointer_IR", "optic_Arco_blk_F", [], [], "bipod_02_F_blk"], +["srifle_DMR_01_black_F", "", "acc_pointer_IR", "optic_SOS", [], [], "bipod_02_F_blk"] +]]; +_militaryLoadoutData set ["sniperRifles", [ +["srifle_GM6_F", "", "", "optic_LRPS", ["5Rnd_127x108_Mag", "5Rnd_127x108_APDS_Mag"], [], ""], +["srifle_GM6_F", "", "", "optic_SOS", ["5Rnd_127x108_Mag", "5Rnd_127x108_APDS_Mag"], [], ""] +]]; +_militaryLoadoutData set ["sidearms", ["hgun_Rook40_F"]]; + +/////////////////////////////// +// Police Loadout Data // +/////////////////////////////// + +private _policeLoadoutData = _loadoutData call _fnc_copyLoadoutData; // touch and shit breaks +_policeLoadoutData set ["uniforms", ["U_B_GEN_Soldier_F", "U_B_GEN_Commander_F"]]; +_policeLoadoutData set ["vests", ["V_TacVest_blk_POLICE"]]; +_policeLoadoutData set ["helmets", ["H_Cap_police"]]; + +_policeLoadoutData set ["carbines", [ +["arifle_AKSM_F", "", "", "", ["30Rnd_545x39_Mag_F"], [], ""] +]]; +_policeLoadoutData set ["shotGuns", [ +["sgun_Mp153_black_F", "", "acc_flashlight_pistol", "", ["4Rnd_12Gauge_Pellets", "4Rnd_12Gauge_Slug"], [], ""] +]]; +_policeLoadoutData set ["SMGs", [ +["SMG_03C_hex", "", "", "", [], [], ""], +["SMG_02_F", "", "acc_flashlight", "", [], [], ""] +]]; +_policeLoadoutData set ["sidearms", ["hgun_Pistol_01_F"]]; + +//////////////////////////////// +// Militia Loadout Data // +//////////////////////////////// + +private _militiaLoadoutData = _loadoutData call _fnc_copyLoadoutData; // touch and shit breaks +_militiaLoadoutData set ["uniforms", ["U_O_R_officer_noInsignia_taiga_F"]]; +_militiaLoadoutData set ["slUniforms", ["U_O_R_OfficerUniform_taiga_F"]]; +_militiaLoadoutData set ["vests", ["Aegis_V_ChestrigEast_RUtaiga_F"]]; +_militiaLoadoutData set ["Hvests", ["V_TacVest_grn"]]; +_militiaLoadoutData set ["backpacks", ["B_Carryall_taiga_F", "B_FieldPack_taiga_F", "B_AssaultPack_taiga_F"]]; +_militiaLoadoutData set ["helmets", ["H_MilCap_taiga"]]; + +_militiaLoadoutData set ["rifles", [ +["Aegis_arifle_AK74_F", "", "acc_flashlight_pistol", "", ["30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_Tracer_F"], [], ""], +["Aegis_arifle_AK74_oak_F", "", "acc_flashlight_pistol", "", ["30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_Tracer_F"], [], ""], +["Aegis_arifle_AKS74_F", "", "acc_flashlight_pistol", "", ["30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_Tracer_F"], [], ""], +["Aegis_arifle_AKS74_oak_F", "", "acc_flashlight_pistol", "", ["30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_Tracer_F"], [], ""] +]]; +_militiaLoadoutData set ["carbines", [ +["arifle_AKS_F", "", "", "", ["30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_Tracer_F"], [], ""], +["arifle_AKS_alt_F", "", "", "", ["30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_Tracer_F"], [], ""], +["arifle_AKSM_F", "", "", "", ["30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_Tracer_F"], [], ""] +]]; +_militiaLoadoutData set ["grenadeLaunchers", [ +["Aegis_arifle_AK74_GL_F", "", "acc_flashlight_pistol", "", ["30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_Tracer_F"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["Aegis_arifle_AK74_GL_oak_F", "", "acc_flashlight_pistol", "", ["30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_F", "30Rnd_545x39_Mag_Tracer_F"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_militiaLoadoutData set ["SMGs", [ +["SMG_02_F", "", "acc_flashlight", "", [], [], ""] +]]; +_militiaLoadoutData set ["machineGuns", [ +["arifle_RPK_F", "", "acc_flashlight_pistol", "", ["75Rnd_762x39_Mag_F", "30Rnd_762x39_Mag_F", "30Rnd_762x39_Mag_Tracer_F"], [], ""] +]]; +_militiaLoadoutData set ["marksmanRifles", [ +["srifle_DMR_01_black_F", "", "acc_flashlight", "optic_Arco_blk_F", [], [], "bipod_02_F_blk"] +]]; +_militiaLoadoutData set ["sniperRifles", [ +["srifle_GM6_F", "", "", "optic_Arco_blk_F", ["5Rnd_127x108_Mag", "5Rnd_127x108_APDS_Mag"], [], ""] +]]; +_militiaLoadoutData set ["sidearms", ["hgun_Rook40_F"]]; + +////////////////////////// +// Misc Loadouts // +////////////////////////// + +private _crewLoadoutData = _militaryLoadoutData call _fnc_copyLoadoutData; +_crewLoadoutData set ["uniforms", ["U_O_R_CombatUniform_taiga_F"]]; +_crewLoadoutData set ["vests", ["V_BandollierB_taiga_F"]]; +_crewLoadoutData set ["helmets", ["H_Tank_black_F"]]; + +private _pilotLoadoutData = _militaryLoadoutData call _fnc_copyLoadoutData; +_pilotLoadoutData set ["uniforms", ["U_O_R_PilotCoveralls"]]; +_pilotLoadoutData set ["vests", ["V_Rangemaster_belt_taiga_F"]]; +_pilotLoadoutData set ["helmets", ["H_CrewHelmetHeli_O", "H_PilotHelmetHeli_O_visor_up", "H_PilotHelmetHeli_O"]]; + +private _traitorLoadoutData = _militaryLoadoutData call _fnc_copyLoadoutData; +_traitorLoadoutData set ["uniforms", ["U_O_R_CombatUniform_tshirt_taiga_F"]]; +_traitorLoadoutData set ["vests", ["V_TacVest_camo"]]; + +private _officerLoadoutData = _loadoutData call _fnc_copyLoadoutData; +_officerLoadoutData set ["uniforms", ["U_O_ParadeUniform_01_CSAT_F", "U_O_ParadeUniform_01_CSAT_decorated_F"]]; +_officerLoadoutData set ["vests", ["V_Rangemaster_belt_taiga_F"]]; +_officerLoadoutData set ["helmets", ["H_ParadeDressCap_01_CSAT_F"]]; +_officerLoadoutData set ["backpacks", []]; +_officerLoadoutData set ["SMGs", [ +["Aegis_arifle_AKS74_gold_F", "", "", "", [], [], ""], +["Aegis_arifle_AK74_gold_F", "", "", "", [], [], ""] +]]; + +if ("mark" in A3A_enabledDLC) then { + (_sfLoadoutData get "machineGuns") append [ + ["MMG_01_hex_F", "muzzle_snds_93mmg", "acc_pointer_IR", "optic_Arco", [], [], "bipod_02_F_hex"], + ["MMG_01_hex_F", "muzzle_snds_93mmg", "acc_pointer_IR", "optic_MRCO", [], [], "bipod_02_F_hex"] + ]; + + (_militaryLoadoutData get "machineGuns") append [ + ["MMG_01_hex_F", "", "acc_pointer_IR", "optic_Arco", [], [], "bipod_02_F_hex"], + ["MMG_01_hex_F", "", "acc_pointer_IR", "optic_MRCO", [], [], "bipod_02_F_hex"]]; +}; +if ("rf" in A3A_enabledDLC) then { + (_sfLoadoutData get "slRifles") append [ + ["arifle_ash12_blk_RF","suppressor_127x55_small_RF","acc_pointer_IR","optic_Arco_blk_F",["20Rnd_127x55_Mag_RF","20Rnd_127x55_Mag_RF","20Rnd_127x55_Mag_RF"], [], ""], + ["arifle_ash12_blk_RF","suppressor_127x55_small_RF","acc_pointer_IR","optic_Arco_blk_F",["20Rnd_127x55_Mag_RF","20Rnd_127x55_Mag_RF","20Rnd_127x55_Mag_RF"], [], ""] + ]; + (_sfLoadoutData get "rifles") append [["arifle_ash12_blk_RF","suppressor_127x55_small_RF","acc_pointer_IR","optic_Holosight_blk_F",["20Rnd_127x55_Mag_RF","20Rnd_127x55_Mag_RF","20Rnd_127x55_Mag_RF"], [], ""]]; + (_sfLoadoutData get "grenadeLaunchers") append [["arifle_ash12_GL_blk_RF", "suppressor_127x55_small_RF", "acc_pointer_IR", "optic_Holosight_blk_F", ["20Rnd_127x55_Mag_RF","20Rnd_127x55_Mag_RF","20Rnd_127x55_Mag_RF"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""]]; + (_sfLoadoutData get "marksmanRifles") append [ + ["arifle_ash12_LR_blk_RF","suppressor_127x55_big_RF","acc_pointer_IR","optic_Arco_blk_F",["10Rnd_127x55_Mag_RF","10Rnd_127x55_Mag_RF","10Rnd_127x55_Mag_RF"], [], "bipod_02_F_hex"], + ["arifle_ash12_LR_blk_RF","suppressor_127x55_big_RF","acc_pointer_IR","optic_DMS",["10Rnd_127x55_Mag_RF","10Rnd_127x55_Mag_RF","10Rnd_127x55_Mag_RF"], [], "bipod_02_F_hex"], + ["arifle_ash12_LR_blk_RF","suppressor_127x55_big_RF","acc_pointer_IR","optic_SOS",["10Rnd_127x55_Mag_RF","10Rnd_127x55_Mag_RF","10Rnd_127x55_Mag_RF"], [], "bipod_02_F_hex"] + ]; + (_sfLoadoutData get "helmets") append [ + "H_HelmetHeavy_Hex_RF", + "H_HelmetHeavy_Simple_Hex_RF", + "H_HelmetHeavy_VisorUp_Hex_RF" + ]; + (_policeLoadoutData get "sidearms") append ["hgun_Glock19_RF"]; + (_sfLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "muzzle_snds_acp", "", "optic_Holosight", [], [], ""], + ["SMG_01_black_RF", "muzzle_snds_acp", "", "optic_Aco_smg", [], [], ""] + ]; + (_militaryLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "", "", "optic_Holosight", [], [], ""], + ["SMG_01_black_RF", "", "", "optic_Aco_smg", [], [], ""] + ]; + (_militiaLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "", "acc_flashlight_smg_01", "", [], [], ""] + ]; + (_policeLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "", "acc_flashlight_smg_01", "optic_Holosight", [], [], ""], + ["SMG_01_black_RF", "", "acc_flashlight_smg_01", "optic_Aco_smg", [], [], ""] + ]; + (_militaryLoadoutData get "helmets") append ["H_HelmetO_ocano_sb_hex_RF"]; + (_militiaLoadoutData get "helmets") append ["H_HelmetO_ocamo_sb_hex_RF"]; +}; + + +///////////////////////////////// +// Unit Type Definitions // +///////////////////////////////// + + +private _squadLeaderTemplate = { + ["slHat"] call _fnc_setHelmet; + [["Hvests", "vests"] call _fnc_fallback] call _fnc_setVest; + [["slUniforms", "uniforms"] call _fnc_fallback] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [["slRifles", "rifles"] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + ["primary", 4] call _fnc_addAdditionalMuzzleMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_squadLeader_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 2] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + ["signalsmokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["gpses"] call _fnc_addGPS; + ["binoculars"] call _fnc_addBinoculars; + ["NVGs"] call _fnc_addNVGs; +}; + +private _riflemanTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_rifleman_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 2] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _medicTemplate = { + ["helmets"] call _fnc_setHelmet; + [["Hvests", "vests"] call _fnc_fallback] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["carbines", "SMGs"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_medic"] call _fnc_addItemSet; + ["items_medic_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _grenadierTemplate = { + ["helmets"] call _fnc_setHelmet; + [["glVests", "vests"] call _fnc_fallback] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + ["grenadeLaunchers"] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + ["primary", 10] call _fnc_addAdditionalMuzzleMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_grenadier_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 4] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _explosivesExpertTemplate = { + ["helmets"] call _fnc_setHelmet; + [["Hvests", "vests"] call _fnc_fallback] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [[selectRandom ["carbines", "shotGuns", "rifles"], selectRandom ["carbines", "rifles"]] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_explosivesExpert_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + + ["lightExplosives", 2] call _fnc_addItem; + if (random 1 > 0.5) then {["heavyExplosives", 1] call _fnc_addItem;}; + if (random 1 > 0.5) then {["atMines", 1] call _fnc_addItem;}; + if (random 1 > 0.5) then {["apMines", 1] call _fnc_addItem;}; + + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _engineerTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [[selectRandom ["carbines", "shotGuns", "SMGs"], selectRandom ["carbines", "SMGs"]] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_engineer_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + + if (random 1 > 0.5) then {["lightExplosives", 1] call _fnc_addItem;}; + + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _latTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + [["lightATLaunchers", "ATLaunchers"] call _fnc_fallback] call _fnc_setLauncher; + //TODO - Add a check if it's disposable. + ["launcher", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_lat_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _atTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + [selectRandom ["ATLaunchers", "missileATLaunchers"]] call _fnc_setLauncher; + //TODO - Add a check if it's disposable. + ["launcher", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_at_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _aaTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["AALaunchers"] call _fnc_setLauncher; + //TODO - Add a check if it's disposable. + ["launcher", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_aa_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _machineGunnerTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + ["machineGuns"] call _fnc_setPrimary; + ["primary", 4] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_machineGunner_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _marksmanTemplate = { + ["sniHats"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + ["marksmanRifles"] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_marksman_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["rangefinders"] call _fnc_addBinoculars; + ["NVGs"] call _fnc_addNVGs; +}; + +private _sniperTemplate = { + ["sniHats"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + ["sniperRifles"] call _fnc_setPrimary; + ["primary", 7] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_sniper_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["rangefinders"] call _fnc_addBinoculars; + ["NVGs"] call _fnc_addNVGs; +}; + +private _policeTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + [[selectRandom ["carbines", "shotGuns", "SMGs"], "SMGs"] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_police_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; +}; + +private _crewTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + [selectRandom ["carbines", "SMGs"]] call _fnc_setPrimary; + ["primary", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_basic"] call _fnc_addItemSet; + ["items_crew_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["gpses"] call _fnc_addGPS; + ["NVGs"] call _fnc_addNVGs; +}; + +private _unarmedTemplate = { + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + ["items_medical_basic"] call _fnc_addItemSet; + ["items_unarmed_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; +}; + +private _traitorTemplate = { + call _unarmedTemplate; + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; +}; + +//////////////////////////////////////////////////////////////////////////////////////// +// You shouldn't touch below this line unless you really really know what you're doing. +// Things below here can and will break the gamemode if improperly changed. +//////////////////////////////////////////////////////////////////////////////////////// + +///////////////////////////// +// Special Forces Units // +///////////////////////////// +private _prefix = "SF"; +private _unitTypes = [ + ["SquadLeader", _squadLeaderTemplate], + ["Rifleman", _riflemanTemplate], + ["Medic", _medicTemplate, [["medic", true]]], + ["Engineer", _engineerTemplate, [["engineer", true]]], + ["ExplosivesExpert", _explosivesExpertTemplate, [["explosiveSpecialist", true]]], + ["Grenadier", _grenadierTemplate], + ["LAT", _latTemplate], + ["AT", _atTemplate], + ["AA", _aaTemplate], + ["MachineGunner", _machineGunnerTemplate], + ["Marksman", _marksmanTemplate], + ["Sniper", _sniperTemplate] +]; + +[_prefix, _unitTypes, _sfLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +/*{ + params ["_name", "_loadoutTemplate"]; + private _loadouts = [_sfLoadoutData, _loadoutTemplate] call _fnc_buildLoadouts; + private _finalName = _prefix + _name; + [_finalName, _loadouts] call _fnc_saveToTemplate; +} forEach _unitTypes; +*/ + +/////////////////////// +// Military Units // +/////////////////////// +private _prefix = "military"; +private _unitTypes = [ + ["SquadLeader", _squadLeaderTemplate], + ["Rifleman", _riflemanTemplate], + ["Medic", _medicTemplate, [["medic", true]]], + ["Engineer", _engineerTemplate, [["engineer", true]]], + ["ExplosivesExpert", _explosivesExpertTemplate, [["explosiveSpecialist", true]]], + ["Grenadier", _grenadierTemplate], + ["LAT", _latTemplate], + ["AT", _atTemplate], + ["AA", _aaTemplate], + ["MachineGunner", _machineGunnerTemplate], + ["Marksman", _marksmanTemplate], + ["Sniper", _sniperTemplate] +]; + +[_prefix, _unitTypes, _militaryLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +//////////////////////// +// Police Units // +//////////////////////// +private _prefix = "police"; +private _unitTypes = [ + ["SquadLeader", _policeTemplate], + ["Standard", _policeTemplate] +]; + +[_prefix, _unitTypes, _policeLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +//////////////////////// +// Militia Units // +//////////////////////// +private _prefix = "militia"; +private _unitTypes = [ + ["SquadLeader", _squadLeaderTemplate], + ["Rifleman", _riflemanTemplate], + ["Medic", _medicTemplate, [["medic", true]]], + ["Engineer", _engineerTemplate, [["engineer", true]]], + ["ExplosivesExpert", _explosivesExpertTemplate, [["explosiveSpecialist", true]]], + ["Grenadier", _grenadierTemplate], + ["LAT", _latTemplate], + ["AT", _atTemplate], + ["AA", _aaTemplate], + ["MachineGunner", _machineGunnerTemplate], + ["Marksman", _marksmanTemplate], + ["Sniper", _sniperTemplate] +]; + +[_prefix, _unitTypes, _militiaLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +////////////////////// +// Misc Units // +////////////////////// + +//The following lines are determining the loadout of vehicle crew +["other", [["Crew", _crewTemplate]], _crewLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout of the pilots +["other", [["Pilot", _crewTemplate]], _pilotLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout for the unit used in the "kill the official" mission +["other", [["Official", _policeTemplate]], _officerLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout for the AI used in the "kill the traitor" mission +["other", [["Traitor", _traitorTemplate]], _traitorLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout for the AI used in the "Invader Punishment" mission +["other", [["Unarmed", _UnarmedTemplate]], _militaryLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; diff --git a/A3A/addons/core/Templates/Templates/Aegis/Aegis_AI_US_Arid.sqf b/A3A/addons/core/Templates/Templates/Aegis/Aegis_AI_US_Arid.sqf new file mode 100644 index 0000000000..dc197b8def --- /dev/null +++ b/A3A/addons/core/Templates/Templates/Aegis/Aegis_AI_US_Arid.sqf @@ -0,0 +1,1032 @@ +////////////////////////// +// Side Information // +////////////////////////// + +["name", "US"] call _fnc_saveToTemplate; +["spawnMarkerName", "US support corridor"] call _fnc_saveToTemplate; + +["flag", "Flag_NATO_F"] call _fnc_saveToTemplate; +["flagTexture", "\A3_Aegis\data_f_aegis\Flags\flag_USA_51_CO.paa"] call _fnc_saveToTemplate; +["flagMarkerType", "flag_USA"] call _fnc_saveToTemplate; + +////////////////////////// +// Vehicles // +////////////////////////// + +["ammobox", "B_supplyCrate_F"] call _fnc_saveToTemplate; //Don't touch or you die a sad and lonely death! +["surrenderCrate", "Box_IND_Wps_F"] call _fnc_saveToTemplate; //Changeing this from default will require you to define logistics attachement offset for the box type +["equipmentBox", "Box_NATO_Equip_F"] call _fnc_saveToTemplate; //Changeing this from default will require you to define logistics attachement offset for the box type + +["vehiclesBasic", ["B_Quadbike_01_F"]] call _fnc_saveToTemplate; +private _LightUnarmed = ["B_MRAP_01_F"]; +private _LightArmed = ["B_MRAP_01_hmg_F", "B_MRAP_01_hmg_F", "B_MRAP_01_gmg_F"]; +["vehiclesTrucks", ["B_Truck_01_covered_F", "B_Truck_01_transport_F"]] call _fnc_saveToTemplate; +["vehiclesCargoTrucks", ["B_Truck_01_cargo_F", "B_Truck_01_flatbed_F"]] call _fnc_saveToTemplate; +["vehiclesAmmoTrucks", ["B_Truck_01_ammo_F"]] call _fnc_saveToTemplate; +["vehiclesRepairTrucks", ["B_Truck_01_Repair_F"]] call _fnc_saveToTemplate; +["vehiclesFuelTrucks", ["B_Truck_01_fuel_F"]] call _fnc_saveToTemplate; +["vehiclesMedical", ["B_Truck_01_medical_F", "B_APC_Wheeled_01_medical_F"]] call _fnc_saveToTemplate; +["vehiclesLightAPCs", []] call _fnc_saveToTemplate; +private _APCs = ["B_APC_Wheeled_01_cannon_v2_F", "B_APC_Tracked_01_rcws_F"]; +["vehiclesIFVs", ["a3a_B_APC_Wheeled_01_cannon_v2_F"]] call _fnc_saveToTemplate; +private _Tanks = ["B_MBT_01_TUSK_F", "B_MBT_01_cannon_F"]; +["vehiclesAA", ["B_APC_Tracked_01_AA_F"]] call _fnc_saveToTemplate; + +["vehiclesTransportBoats", ["B_Boat_Transport_01_F"]] call _fnc_saveToTemplate; +["vehiclesGunBoats", ["B_Boat_Armed_01_minigun_F"]] call _fnc_saveToTemplate; +["vehiclesAmphibious", ["a3a_B_APC_Wheeled_01_cannon_F"]] call _fnc_saveToTemplate; + +["vehiclesPlanesCAS", ["B_Plane_CAS_01_dynamicLoadout_F"]] call _fnc_saveToTemplate; +["vehiclesPlanesAA", ["B_Plane_Fighter_01_F", "B_Plane_Fighter_05_F"]] call _fnc_saveToTemplate; +["vehiclesPlanesTransport", ["B_T_Plane_Transport_01_infantry_F"]] call _fnc_saveToTemplate; + +private _vehiclesHelisLight = ["B_Heli_Light_01_F"]; +private _HelisTransport = ["B_Heli_Transport_01_F"]; +private _vehiclesHelisLightAttack = ["B_Heli_Light_01_dynamicLoadout_F"]; +["vehiclesHelisAttack", ["B_Heli_Attack_01_dynamicLoadout_F"]] call _fnc_saveToTemplate; + +["vehiclesArtillery", ["B_MBT_01_arty_F","B_MBT_01_mlrs_F"]] call _fnc_saveToTemplate; //this line determines artillery vehicles -- Example: ["vehiclesArtillery", ["B_MBT_01_arty_F"]] -- Array, can contain multiple assets +["magazines", createHashMapFromArray [ + ["B_MBT_01_arty_F",["32Rnd_155mm_Mo_shells"]], + ["B_MBT_01_mlrs_F",["12Rnd_230mm_rockets"]] +]] call _fnc_saveToTemplate; + +["uavsAttack", ["B_UAV_02_dynamicLoadout_F", "B_UAV_05_F"]] call _fnc_saveToTemplate; +["uavsPortable", ["B_UAV_01_F"]] call _fnc_saveToTemplate; + +//Config special vehicles - militia vehicles are mostly used in the early game, police cars are being used by troops around cities -- Example: +private _vehiclesMilitiaLightArmed = ["a3a_Offroad_01_tan_armed_F", "a3a_Offroad_01_tan_AT_F"]; +["vehiclesMilitiaTrucks", ["B_Truck_01_covered_F", "B_Truck_01_transport_F"]] call _fnc_saveToTemplate; +private _vehiclesMilitiaCars = ["a3a_Offroad_01_tan_F"]; + +private _vehiclesPolice = ["B_GEN_Offroad_01_gen_F"]; + +["staticMGs", ["B_G_HMG_02_high_F"]] call _fnc_saveToTemplate; +["staticAT", ["B_static_AT_F"]] call _fnc_saveToTemplate; +["staticAA", ["B_static_AA_F"]] call _fnc_saveToTemplate; +["staticMortars", ["B_Mortar_01_F"]] call _fnc_saveToTemplate; + +["mortarMagazineHE", "8Rnd_82mm_Mo_shells"] call _fnc_saveToTemplate; +["mortarMagazineSmoke", "8Rnd_82mm_Mo_Smoke_white"] call _fnc_saveToTemplate; +["mortarMagazineFlare", "8Rnd_82mm_Mo_Flare_white"] call _fnc_saveToTemplate; + +//Minefield definition +["minefieldAT", ["ATMine"]] call _fnc_saveToTemplate; +["minefieldAPERS", ["APERSMine"]] call _fnc_saveToTemplate; + +//If Western Sahara DLC +if ("ws" in A3A_enabledDLC) then { + _APCs append ["APC_Wheeled_01_atgm_lxWS_v2", "a3a_APC_Wheeled_01_command_lxWS"]; + ["uavsPortable", ["B_UAV_01_F", "B_UAV_02_lxWS"]] call _fnc_saveToTemplate; +}; +if ("enoch" in A3A_enabledDLC) then { + _vehiclesPolice append ["B_GEN_Offroad_01_comms_F","B_GEN_Offroad_01_covered_F"]; + _vehiclesMilitiaCars append ["a3a_Offroad_01_comms_tan_F", "a3a_Offroad_01_covered_tan_F"]; +}; +if ("tanks" in A3A_enabledDLC) then { + ["vehiclesLightTanks", ["a3a_AFV_Wheeled_01_cannon_F", "B_AFV_Wheeled_01_up_cannon_F"]] call _fnc_saveToTemplate; +}; +if ("expansion" in A3A_enabledDLC) then { + _LightUnarmed append ["B_MRAP_01_F","B_LSV_01_unarmed_F"]; + _LightArmed append ["B_LSV_01_AT_F","B_LSV_01_armed_F"]; + _HelisTransport append ["B_CTRG_Heli_Transport_01_sand_F"]; +}; +if ("heli" in A3A_enabledDLC) then { + _HelisTransport append ["B_Heli_Transport_03_black_F", "B_Heli_Transport_03_unarmed_F"]; +}; +if ("orange" in A3A_enabledDLC) then { + _vehiclesPolice append ["B_GEN_Van_02_vehicle_F","B_GEN_Van_02_transport_F"]; +}; +if ("rf" in A3A_enabledDLC) then { + _vehiclesPolice append ["a3a_police_Pickup_rf", "B_GEN_Pickup_covered_rf", "a3a_police_Pickup_comms_rf"]; + _HelisTransport append ["B_Heli_EC_04_military_RF"]; + _vehiclesHelisLight append ["B_Heli_light_03_unarmed_RF"]; + _vehiclesHelisLightAttack append ["a3a_Heli_light_03_dynamicLoadout_rf","B_Heli_EC_03_RF"]; + _vehiclesMilitiaCars append ["B_Pickup_rf"]; + _vehiclesMilitiaLightArmed append ["B_Pickup_mmg_rf"]; +}; + +["vehiclesLightUnarmed", _LightUnarmed] call _fnc_saveToTemplate; +["vehiclesLightArmed", _LightArmed] call _fnc_saveToTemplate; +["vehiclesAPCs", _APCs] call _fnc_saveToTemplate; +["vehiclesTanks", _Tanks] call _fnc_saveToTemplate; + +["vehiclesHelisLight", _vehiclesHelisLight] call _fnc_saveToTemplate; +["vehiclesHelisLightAttack", _vehiclesHelisLightAttack] call _fnc_saveToTemplate; +["vehiclesHelisTransport", _HelisTransport] call _fnc_saveToTemplate; + +["vehiclesMilitiaCars", _vehiclesMilitiaCars] call _fnc_saveToTemplate; +["vehiclesMilitiaLightArmed", _vehiclesMilitiaLightArmed] call _fnc_saveToTemplate; + +["vehiclesPolice", _vehiclesPolice] call _fnc_saveToTemplate; + +#include "Aegis_Vehicle_Attributes.sqf" + +///////////////////// +/// Identities /// +///////////////////// + +["voices", ["Male01ENG","Male02ENG","Male03ENG","Male04ENG","Male05ENG","Male06ENG","Male07ENG","Male08ENG","Male09ENG","Male10ENG","Male11ENG","Male12ENG"]] call _fnc_saveToTemplate; +["faces", ["AfricanHead_01","AfricanHead_02","AfricanHead_03","Barklem", +"GreekHead_A3_05","GreekHead_A3_07","Sturrock","WhiteHead_01","WhiteHead_02", +"WhiteHead_03","WhiteHead_04","WhiteHead_05","WhiteHead_06","WhiteHead_07", +"WhiteHead_08","WhiteHead_09","WhiteHead_11","WhiteHead_12","WhiteHead_14", +"WhiteHead_15","WhiteHead_16","WhiteHead_18","WhiteHead_19","WhiteHead_20", +"WhiteHead_21"]] call _fnc_saveToTemplate; +"NATOMen" call _fnc_saveNames; + +////////////////////////// +// Loadouts // +////////////////////////// + +private _loadoutData = call _fnc_createLoadoutData; +_loadoutData set ["slRifles", []]; +_loadoutData set ["rifles", []]; +_loadoutData set ["carbines", []]; +_loadoutData set ["grenadeLaunchers", []]; +_loadoutData set ["shotGuns", []]; +_loadoutData set ["SMGs", []]; +_loadoutData set ["machineGuns", []]; +_loadoutData set ["marksmanRifles", []]; +_loadoutData set ["sniperRifles", []]; +_loadoutData set ["lightATLaunchers", ["launch_NLAW_F"]]; +_loadoutData set ["ATLaunchers", [ +["launch_MRAWS_sand_F", "", "acc_pointer_IR", "", ["MRAWS_HE_F", "MRAWS_HEAT55_F"], [], ""], +["launch_MRAWS_sand_F", "", "acc_pointer_IR", "", ["MRAWS_HEAT_F", "MRAWS_HEAT55_F"], [], ""], +["launch_MRAWS_sand_F", "", "acc_pointer_IR", "", ["MRAWS_HEAT_F", "MRAWS_HE_F"], [], ""], +["launch_MRAWS_sand_rail_F", "", "acc_pointer_IR", "", ["MRAWS_HE_F", "MRAWS_HEAT55_F"], [], ""], +["launch_MRAWS_sand_rail_F", "", "acc_pointer_IR", "", ["MRAWS_HEAT_F", "MRAWS_HEAT55_F"], [], ""], +["launch_MRAWS_sand_rail_F", "", "acc_pointer_IR", "", ["MRAWS_HEAT_F", "MRAWS_HE_F"], [], ""] +]]; +_loadoutData set ["missileATLaunchers", [ +["launch_B_Titan_short_F", "", "acc_pointer_IR", "", ["Titan_AT"], [], ""] +]]; +_loadoutData set ["AALaunchers", [ +["launch_B_Titan_F", "", "acc_pointer_IR", "", ["Titan_AA"], [], ""] +]]; +_loadoutData set ["sidearms", []]; + +_loadoutData set ["ATMines", ["ATMine_Range_Mag"]]; +_loadoutData set ["APMines", ["APERSMine_Range_Mag"]]; +_loadoutData set ["lightExplosives", ["DemoCharge_Remote_Mag"]]; +_loadoutData set ["heavyExplosives", ["SatchelCharge_Remote_Mag"]]; + +_loadoutData set ["antiInfantryGrenades", ["HandGrenade", "MiniGrenade"]]; +_loadoutData set ["antiTankGrenades", []]; +_loadoutData set ["smokeGrenades", ["SmokeShell"]]; +_loadoutData set ["signalsmokeGrenades", ["SmokeShellYellow", "SmokeShellRed", "SmokeShellPurple", "SmokeShellOrange", "SmokeShellGreen", "SmokeShellBlue"]]; + + +//Basic equipment. Shouldn't need touching most of the time. +//Mods might override this, or certain mods might want items removed (No GPSs in WW2, for example) +_loadoutData set ["maps", ["ItemMap"]]; +_loadoutData set ["watches", ["ItemWatch"]]; +_loadoutData set ["compasses", ["ItemCompass"]]; +_loadoutData set ["radios", ["ItemRadio"]]; +_loadoutData set ["gpses", ["ItemGPS"]]; +_loadoutData set ["NVGs", ["NVGoggles"]]; +_loadoutData set ["binoculars", ["Binocular"]]; +_loadoutData set ["rangefinders", ["Rangefinder"]]; + +_loadoutData set ["uniforms", []]; +_loadoutData set ["vests", []]; +_loadoutData set ["Hvests", []]; +_loadoutData set ["glVests", []]; +_loadoutData set ["backpacks", []]; +_loadoutData set ["longRangeRadios", []]; +_loadoutData set ["helmets", []]; +_loadoutData set ["slHat", ["H_Beret_02"]]; +_loadoutData set ["sniHats", ["H_Booniehat_mcamo"]]; + +//Item *set* definitions. These are added in their entirety to unit loadouts. No randomisation is applied. +_loadoutData set ["items_medical_basic", ["BASIC"] call A3A_fnc_itemset_medicalSupplies]; //this line defines the basic medical loadout for vanilla +_loadoutData set ["items_medical_standard", ["STANDARD"] call A3A_fnc_itemset_medicalSupplies]; //this line defines the standard medical loadout for vanilla +_loadoutData set ["items_medical_medic", ["MEDIC"] call A3A_fnc_itemset_medicalSupplies]; //this line defines the medic medical loadout for vanilla +_loadoutData set ["items_miscEssentials", [] call A3A_fnc_itemset_miscEssentials]; + +//Unit type specific item sets. Add or remove these, depending on the unit types in use. +private _slItems = ["Laserbatteries", "Laserbatteries", "Laserbatteries"]; +private _eeItems = ["ToolKit", "MineDetector"]; +private _mmItems = []; + +if (A3A_hasACE) then { + _slItems append ["ACE_microDAGR", "ACE_DAGR"]; + _eeItems append ["ACE_Clacker", "ACE_DefusalKit"]; + _mmItems append ["ACE_RangeCard", "ACE_ATragMX", "ACE_Kestrel4500"]; +}; + +_loadoutData set ["items_squadLeader_extras", _slItems]; +_loadoutData set ["items_rifleman_extras", []]; +_loadoutData set ["items_medic_extras", []]; +_loadoutData set ["items_grenadier_extras", []]; +_loadoutData set ["items_explosivesExpert_extras", _eeItems]; +_loadoutData set ["items_engineer_extras", _eeItems]; +_loadoutData set ["items_lat_extras", []]; +_loadoutData set ["items_at_extras", []]; +_loadoutData set ["items_aa_extras", []]; +_loadoutData set ["items_machineGunner_extras", []]; +_loadoutData set ["items_marksman_extras", _mmItems]; +_loadoutData set ["items_sniper_extras", _mmItems]; +_loadoutData set ["items_police_extras", []]; +_loadoutData set ["items_crew_extras", []]; +_loadoutData set ["items_unarmed_extras", []]; + +//TODO - ACE overrides for misc essentials, medical and engineer gear + +/////////////////////////////////////// +// Special Forces Loadout Data // +/////////////////////////////////////// + +private _sfLoadoutData = _loadoutData call _fnc_copyLoadoutData; // touch and shit breaks +_sfLoadoutData set ["uniforms", ["U_B_CombatUniform_mcam", "U_B_CombatUniform_mcam_vest", "U_B_CombatUniform_mcam_tshirt"]]; +_sfLoadoutData set ["vests", ["V_PlateCarrier1_rgr", "V_TacVest_oli"]]; +_sfLoadoutData set ["Hvests", ["V_PlateCarrier2_rgr"]]; +_sfLoadoutData set ["backpacks", ["B_Kitbag_rgr", "B_Carryall_mcamo", "B_AssaultPack_rgr", "B_AssaultPackSpec_rgr", "B_TacticalPack_rgr"]]; +_sfLoadoutData set ["helmets", ["H_HelmetB_light", "H_HelmetSpecB_light", "H_Watchcap_khk_hs", "H_Cap_tan_specops_US_hs"]]; +_sfLoadoutData set ["binoculars", ["Laserdesignator"]]; + +_sfLoadoutData set ["slRifles", [ +["arifle_MX_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "optic_Hamr", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], [], ""], +["arifle_MX_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "optic_MRCO", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], [], ""], +["arifle_MX_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "Aegis_optic_ACOG_sand", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], [], ""], +["arifle_MX_GL_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "optic_Hamr", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_MX_GL_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "optic_MRCO", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_MX_GL_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "Aegis_optic_ACOG_sand", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_sfLoadoutData set ["rifles", [ +["arifle_MX_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], [], ""], +["arifle_MX_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "optic_Holosight", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], [], ""], +["arifle_MX_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "Aegis_optic_ICO", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], [], ""], +["arifle_MX_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "Aegis_optic_ICO_sand", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], [], ""] +]]; +_sfLoadoutData set ["carbines", [ +["arifle_MXC_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], [], ""], +["arifle_MXC_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "optic_Holosight", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], [], ""], +["arifle_MXC_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "Aegis_optic_ICO", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], [], ""], +["arifle_MXC_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "Aegis_optic_ICO_sand", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], [], ""] +]]; +_sfLoadoutData set ["grenadeLaunchers", [ +["arifle_MX_GL_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_MX_GL_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "optic_Holosight", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_MX_GL_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "Aegis_optic_ICO", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_MX_GL_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "Aegis_optic_ICO_sand", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_sfLoadoutData set ["SMGs", [ +["SMG_01_F", "muzzle_mzls_smg_01", "", "optic_Holosight_smg_blk_F", [], [], ""], +["SMG_01_F", "muzzle_mzls_smg_01", "", "optic_Holosight_smg", [], [], ""], +["SMG_01_F", "muzzle_mzls_smg_01", "", "optic_ACO_grn_smg", [], [], ""], +["SMG_01_F", "muzzle_mzls_smg_01", "", "Aegis_optic_ICO", [], [], ""], +["SMG_01_F", "muzzle_mzls_smg_01", "", "Aegis_optic_ICO_sand", [], [], ""] +]]; +_sfLoadoutData set ["machineGuns", [ +["arifle_MX_SW_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "optic_Holosight_blk_F", ["100Rnd_65x39_caseless_mag", "100Rnd_65x39_caseless_mag", "100Rnd_65x39_caseless_mag_Tracer"], [], "bipod_01_F_snd"], +["arifle_MX_SW_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "optic_Holosight", ["100Rnd_65x39_caseless_mag", "100Rnd_65x39_caseless_mag", "100Rnd_65x39_caseless_mag_Tracer"], [], "bipod_01_F_snd"], +["arifle_MX_SW_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "Aegis_optic_ICO", ["100Rnd_65x39_caseless_mag", "100Rnd_65x39_caseless_mag", "100Rnd_65x39_caseless_mag_Tracer"], [], "bipod_01_F_snd"], +["arifle_MX_SW_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "Aegis_optic_ICO_sand", ["100Rnd_65x39_caseless_mag", "100Rnd_65x39_caseless_mag", "100Rnd_65x39_caseless_mag_Tracer"], [], "bipod_01_F_snd"], +["arifle_MX_SW_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "optic_Hamr", ["100Rnd_65x39_caseless_mag", "100Rnd_65x39_caseless_mag", "100Rnd_65x39_caseless_mag_Tracer"], [], "bipod_01_F_snd"], +["arifle_MX_SW_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "optic_MRCO", ["100Rnd_65x39_caseless_mag", "100Rnd_65x39_caseless_mag", "100Rnd_65x39_caseless_mag_Tracer"], [], "bipod_01_F_snd"], +["arifle_MX_SW_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "Aegis_optic_ACOG", ["100Rnd_65x39_caseless_mag", "100Rnd_65x39_caseless_mag", "100Rnd_65x39_caseless_mag_Tracer"], [], "bipod_01_F_snd"], +["arifle_MX_SW_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "Aegis_optic_ACOG_sand", ["100Rnd_65x39_caseless_mag", "100Rnd_65x39_caseless_mag", "100Rnd_65x39_caseless_mag_Tracer"], [], "bipod_01_F_snd"] +]]; +_sfLoadoutData set ["marksmanRifles", [ +["arifle_MXM_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "optic_SOS", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], [], "bipod_01_F_snd"], +["arifle_MXM_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "optic_Hamr", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], [], "bipod_01_F_snd"], +["arifle_MXM_F", "muzzle_snds_H_snd_F", "acc_pointer_IR", "optic_DMS", ["30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer"], [], "bipod_01_F_snd"], +["Aegis_arifle_SR25_MR_snd_F", "aegis_muzzle_snds_sr25_snd", "acc_pointer_IR", "optic_SOS", ["Aegis_20Rnd_762x51_Sand_SMAG"], [], "bipod_01_F_snd"], +["Aegis_arifle_SR25_MR_snd_F", "aegis_muzzle_snds_sr25_snd", "acc_pointer_IR", "optic_Hamr", ["Aegis_20Rnd_762x51_Sand_SMAG"], [], "bipod_01_F_snd"], +["Aegis_arifle_SR25_MR_snd_F", "aegis_muzzle_snds_sr25_snd", "acc_pointer_IR", "optic_DMS", ["Aegis_20Rnd_762x51_Sand_SMAG"], [], "bipod_01_F_snd"] +]]; +_sfLoadoutData set ["sniperRifles", [ +["srifle_LRR_F", "", "", "optic_SOS", [], [], ""], +["srifle_LRR_F", "", "", "optic_LRPS", [], [], ""] +]]; +_sfLoadoutData set ["sidearms", [ +["hgun_P07_F", "muzzle_snds_L", "Aegis_acc_pointer_compact_pistol_green", "", [], [], ""] +]]; +///////////////////////////////// +// Military Loadout Data // +///////////////////////////////// + +private _militaryLoadoutData = _loadoutData call _fnc_copyLoadoutData; // touch and shit breaks +_militaryLoadoutData set ["uniforms", ["U_B_CombatUniform_mcam", "U_B_CombatUniform_mcam_tshirt", "U_B_CombatUniform_mcam_vest"]]; +_militaryLoadoutData set ["vests", ["V_PlateCarrier1_mtp", "V_PlateCarrier2_mtp"]]; +_militaryLoadoutData set ["Hvests", ["V_PlateCarrierSpec_mtp"]]; +_militaryLoadoutData set ["glVests", ["V_PlateCarrierGL_mtp"]]; +_militaryLoadoutData set ["backpacks", ["B_Carryall_mcamo", "B_Kitbag_mcamo", "B_AssaultPack_mcamo", "B_AssaultPackSpec_mcamo", "B_TacticalPack_mcamo"]]; +_militaryLoadoutData set ["helmets", ["H_HelmetB_plain_mcamo", "H_HelmetB_camo_mcamo", "H_HelmetSpecB_mcamo"]]; +_militaryLoadoutData set ["binoculars", ["Laserdesignator"]]; + +_militaryLoadoutData set ["slRifles", [ +["arifle_SCAR_L_F", "", "acc_pointer_IR", "optic_MRCO", ["30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand_Tracer_Yellow"], [], ""], +["arifle_SCAR_L_F", "", "acc_pointer_IR", "optic_Hamr", ["30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand_Tracer_Yellow"], [], ""], +["arifle_SCAR_L_F", "", "acc_pointer_IR", "Aegis_optic_ACOG", ["30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand_Tracer_Yellow"], [], ""], +["arifle_SCAR_L_GL_F", "", "acc_pointer_IR", "optic_MRCO", ["30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_SCAR_L_GL_F", "", "acc_pointer_IR", "optic_Hamr", ["30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_SCAR_L_GL_F", "", "acc_pointer_IR", "Aegis_optic_ACOG", ["30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_SCAR_F", "", "acc_pointer_IR", "optic_MRCO", [], [], ""], +["arifle_SCAR_F", "", "acc_pointer_IR", "optic_Hamr", [], [], ""], +["arifle_SCAR_F", "", "acc_pointer_IR", "Aegis_optic_ACOG", [], [], ""] +]]; +_militaryLoadoutData set ["rifles", [ +["arifle_SCAR_L_grip_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand_Tracer_Yellow"], [], ""], +["arifle_SCAR_L_grip_F", "", "acc_pointer_IR", "optic_Holosight", ["30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand_Tracer_Yellow"], [], ""], +["arifle_SCAR_L_grip_F", "", "acc_pointer_IR", "optic_ACO_grn", ["30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand_Tracer_Yellow"], [], ""], +["arifle_SCAR_L_grip_F", "", "acc_pointer_IR", "Aegis_optic_ICO", ["30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand_Tracer_Yellow"], [], ""], +["arifle_SCAR_L_grip_F", "", "acc_pointer_IR", "Aegis_optic_ICO_sand", ["30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand_Tracer_Yellow"], [], ""] +]]; +_militaryLoadoutData set ["carbines", [ +["arifle_SCAR_L_short_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand_Tracer_Yellow"], [], ""], +["arifle_SCAR_L_short_F", "", "acc_pointer_IR", "optic_Holosight", ["30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand_Tracer_Yellow"], [], ""], +["arifle_SCAR_L_short_F", "", "acc_pointer_IR", "optic_ACO_grn", ["30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand_Tracer_Yellow"], [], ""], +["arifle_SCAR_L_short_F", "", "acc_pointer_IR", "Aegis_optic_ICO", ["30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand_Tracer_Yellow"], [], ""], +["arifle_SCAR_L_short_F", "", "acc_pointer_IR", "Aegis_optic_ICO_sand", ["30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand_Tracer_Yellow"], [], ""] +]]; +_militaryLoadoutData set ["grenadeLaunchers", [ +["arifle_SCAR_L_GL_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_SCAR_L_GL_F", "", "acc_pointer_IR", "optic_Holosight", ["30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_SCAR_L_GL_F", "", "acc_pointer_IR", "optic_ACO_grn", ["30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_SCAR_L_GL_F", "", "acc_pointer_IR", "Aegis_optic_ICO", ["30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_SCAR_L_GL_F", "", "acc_pointer_IR", "Aegis_optic_ICO_sand", ["30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand", "30Rnd_556x45_Stanag_Sand_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_militaryLoadoutData set ["shotGuns", [ +["sgun_KSG_F", "", "", "optic_Holosight_smg_blk_F", ["8Rnd_12Gauge_Pellets", "8Rnd_12Gauge_Slug"], [], ""], +["sgun_KSG_F", "", "", "optic_ACO_grn_smg", ["8Rnd_12Gauge_Pellets", "8Rnd_12Gauge_Slug"], [], ""], +["sgun_KSG_F", "", "", "optic_dcl", ["8Rnd_12Gauge_Pellets", "8Rnd_12Gauge_Slug"], [], ""], +["sgun_KSG_F", "", "", "Aegis_optic_ICO", ["8Rnd_12Gauge_Pellets", "8Rnd_12Gauge_Slug"], [], ""] +]]; +_militaryLoadoutData set ["SMGs", [ +["SMG_01_black_F", "", "", "optic_Holosight_smg_blk_F", [], [], ""], +["SMG_01_black_F", "", "", "optic_ACO_grn_smg", [], [], ""], +["SMG_01_black_F", "", "", "Aegis_optic_ICO", [], [], ""] +]]; +_militaryLoadoutData set ["machineGuns", [ +["LMG_03_snd_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", ["200Rnd_556x45_Box_F", "200Rnd_556x45_Box_F", "200Rnd_556x45_Box_Tracer_F"], [], ""], +["LMG_03_snd_F", "", "acc_pointer_IR", "optic_Holosight", ["200Rnd_556x45_Box_F", "200Rnd_556x45_Box_F", "200Rnd_556x45_Box_Tracer_F"], [], ""], +["LMG_03_snd_F", "", "acc_pointer_IR", "optic_ACO_grn", ["200Rnd_556x45_Box_F", "200Rnd_556x45_Box_F", "200Rnd_556x45_Box_Tracer_F"], [], ""], +["LMG_03_snd_F", "", "acc_pointer_IR", "Aegis_optic_ICO", ["200Rnd_556x45_Box_F", "200Rnd_556x45_Box_F", "200Rnd_556x45_Box_Tracer_F"], [], ""], +["LMG_03_snd_F", "", "acc_pointer_IR", "Aegis_optic_ICO_sand", ["200Rnd_556x45_Box_F", "200Rnd_556x45_Box_F", "200Rnd_556x45_Box_Tracer_F"], [], ""] +]]; +_militaryLoadoutData set ["marksmanRifles", [ +["srifle_EBR_blk_F", "", "acc_pointer_IR", "optic_SOS", [], [], "bipod_01_F_snd"], +["srifle_EBR_blk_F", "", "acc_pointer_IR", "optic_Hamr", [], [], "bipod_01_F_snd"], +["srifle_EBR_blk_F", "", "acc_pointer_IR", "optic_DMS", [], [], "bipod_01_F_snd"], +["Aegis_arifle_SR25_blk_F", "", "acc_pointer_IR", "optic_SOS", [], [], "bipod_01_F_blk"], +["Aegis_arifle_SR25_blk_F", "", "acc_pointer_IR", "optic_Hamr", [], [], "bipod_01_F_blk"], +["Aegis_arifle_SR25_blk_F", "", "acc_pointer_IR", "optic_DMS", [], [], "bipod_01_F_blk"] +]]; +_militaryLoadoutData set ["sniperRifles", [ +["srifle_LRR_F", "", "", "optic_SOS", [], [], ""], +["srifle_LRR_F", "", "", "optic_LRPS", [], [], ""] +]]; +_militaryLoadoutData set ["sidearms", [ +["hgun_P07_F", "", "Aegis_acc_pointer_compact_pistol_green", "", [], [], ""] +]]; +/////////////////////////////// +// Police Loadout Data // +/////////////////////////////// + +private _policeLoadoutData = _loadoutData call _fnc_copyLoadoutData; // touch and shit breaks +_policeLoadoutData set ["uniforms", ["U_B_GEN_Soldier_F", "U_B_GEN_Commander_F"]]; +_policeLoadoutData set ["vests", ["V_TacVest_blk_POLICE"]]; +_policeLoadoutData set ["helmets", ["H_Cap_police"]]; + +_policeLoadoutData set ["carbines", [ +["Aegis_arifle_M4A1_short_F", "", "acc_flashlight", "", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["Aegis_arifle_M4A1_F", "", "acc_flashlight", "", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""] +]]; +_policeLoadoutData set ["shotGuns", [ +["sgun_KSG_F", "", "", "", ["8Rnd_12Gauge_Pellets", "8Rnd_12Gauge_Slug"], [], ""] +]]; +_policeLoadoutData set ["SMGs", [ +["SMG_01_black_F", "", "acc_flashlight_smg_01", "", [], [], ""] +]]; +_policeLoadoutData set ["sidearms", ["hgun_ACPC2_black_F"]]; + +//////////////////////////////// +// Militia Loadout Data // +//////////////////////////////// + +private _militiaLoadoutData = _loadoutData call _fnc_copyLoadoutData; // touch and shit breaks +_militiaLoadoutData set ["uniforms", ["U_B_CombatUniform_mcam_tshirt", "U_I_G_Story_Protagonist_F", "U_B_CombatUniform_mcam_vest"]]; +_militiaLoadoutData set ["vests", ["V_Chestrig_rgr", "V_BandollierB_rgr"]]; +_militiaLoadoutData set ["Hvests", ["V_TacVest_oli"]]; +_militiaLoadoutData set ["backpacks", ["B_AssaultPackSpec_mcamo", "B_Kitbag_mcamo", "B_Carryall_mcamo"]]; +_militiaLoadoutData set ["helmets", ["H_MilCap_mcamo", "H_HelmetB_light_mcamo", "H_Bandanna_mcamo_hs"]]; + +_militiaLoadoutData set ["rifles", [ +["Aegis_arifle_M4A1_grip_F", "", "acc_flashlight", "", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["Aegis_arifle_M4A1_F", "", "acc_flashlight", "", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""] +]]; +_militiaLoadoutData set ["carbines", [ +["Aegis_arifle_M4A1_short_F", "", "acc_flashlight", "", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""] +]]; +_militiaLoadoutData set ["grenadeLaunchers", [ +["Aegis_arifle_M4A1_GL_F", "", "acc_flashlight", "", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_militiaLoadoutData set ["SMGs", [ +["SMG_01_black_F", "", "acc_flashlight_smg_01", "", [], [], ""] +]]; +_militiaLoadoutData set ["machineGuns", [ +["LMG_03_F", "", "acc_flashlight", "", ["200Rnd_556x45_Box_F", "200Rnd_556x45_Box_F", "200Rnd_556x45_Box_Tracer_F"], [], ""] +]]; +_militiaLoadoutData set ["marksmanRifles", [ +["srifle_EBR_blk_F", "", "acc_flashlight", "optic_Hamr", [], [], "bipod_01_F_snd"] +]]; +_militiaLoadoutData set ["sniperRifles", [ +["srifle_LRR_F", "", "", "optic_SOS", [], [], ""], +["srifle_LRR_F", "", "", "optic_LRPS", [], [], ""] +]]; +_militiaLoadoutData set ["sidearms", ["hgun_ACPC2_black_F"]]; + +////////////////////////// +// Misc Loadouts // +////////////////////////// + +private _crewLoadoutData = _militaryLoadoutData call _fnc_copyLoadoutData; +_crewLoadoutData set ["uniforms", ["U_B_CombatUniform_mcam"]]; +_crewLoadoutData set ["vests", ["V_PlateCarrier1_wdl"]]; +_crewLoadoutData set ["helmets", ["H_HelmetCrew_B"]]; + +private _pilotLoadoutData = _militaryLoadoutData call _fnc_copyLoadoutData; +_pilotLoadoutData set ["uniforms", ["U_B_HeliPilotCoveralls"]]; +_pilotLoadoutData set ["vests", ["V_TacVest_blk"]]; +_pilotLoadoutData set ["helmets", ["H_CrewHelmetHeli_B", "H_PilotHelmetHeli_B", "H_PilotHelmetHeli_B_visor_up"]]; + +private _traitorLoadoutData = _militaryLoadoutData call _fnc_copyLoadoutData; +_traitorLoadoutData set ["uniforms", ["U_I_G_Story_Protagonist_F"]]; +_traitorLoadoutData set ["vests", ["V_TacVest_camo"]]; + +private _officerLoadoutData = _loadoutData call _fnc_copyLoadoutData; +_officerLoadoutData set ["uniforms", ["U_B_ParadeUniform_01_US_F", "U_B_ParadeUniform_01_US_decorated_F"]]; +_officerLoadoutData set ["vests", ["V_Rangemaster_belt"]]; +_officerLoadoutData set ["helmets", ["H_ParadeDressCap_01_US_F"]]; +_officerLoadoutData set ["backpacks", []]; +_officerLoadoutData set ["SMGs", [ +["arifle_SCAR_L_short_F", "", "acc_pointer_IR", "optic_Holosight", [], [], ""], +["arifle_SCAR_L_short_F", "", "acc_pointer_IR", "optic_ACO_grn", [], [], ""], +["arifle_SCAR_L_short_F", "", "acc_pointer_IR", "Aegis_optic_ICO_sand", [], [], ""] +]]; + +if ("mark" in A3A_enabledDLC) then { + (_sfLoadoutData get "machineGuns") append [ + ["MMG_02_camo_F", "muzzle_snds_338_sand", "acc_pointer_IR", "optic_Hamr", [], [], "bipod_01_F_snd"], + ["MMG_02_camo_F", "muzzle_snds_338_sand", "acc_pointer_IR", "optic_Holosight", [], [], "bipod_01_F_snd"]]; + (_sfLoadoutData get "marksmanRifles") append [ + ["srifle_DMR_03_tan_F", "muzzle_snds_B_snd_F", "acc_pointer_IR", "optic_AMS_snd", ["20Rnd_762x51_Mag"], [], "bipod_01_F_snd"], + ["srifle_DMR_03_tan_F", "muzzle_snds_B_arid_F", "acc_pointer_IR", "optic_DMS", ["20Rnd_762x51_Mag"], [], "bipod_01_F_snd"], + ["Aegis_arifle_SR25_MR_snd_F", "aegis_muzzle_snds_sr25_snd", "acc_pointer_IR", "optic_AMS_snd", [], [], "bipod_01_F_snd"]]; + + (_sfLoadoutData get "sniperRifles") append [ + ["srifle_DMR_02_sniper_F", "muzzle_snds_338_sand", "acc_pointer_IR", "optic_LRPS", [], [], "bipod_01_F_snd"], + ["srifle_DMR_02_sniper_F", "muzzle_snds_338_sand", "acc_pointer_IR", "optic_LRPS", [], [], "bipod_01_F_snd"]]; + + (_militaryLoadoutData get "machineGuns") append [ + ["MMG_02_sand_F", "", "acc_pointer_IR", "optic_Hamr", [], [], "bipod_01_F_snd"], + ["MMG_02_sand_F", "", "acc_pointer_IR", "optic_Holosight", [], [], "bipod_01_F_snd"] + ]; + (_militaryLoadoutData get "marksmanRifles") append [ + ["srifle_DMR_03_tan_F", "", "acc_pointer_IR", "optic_AMS_snd", ["20Rnd_762x51_Mag"], [], "bipod_01_F_snd"], + ["srifle_DMR_03_tan_F", "", "acc_pointer_IR", "optic_DMS", ["20Rnd_762x51_Mag"], [], "bipod_01_F_snd"], + ["srifle_DMR_03_tan_F", "", "acc_pointer_IR", "optic_SOS", ["20Rnd_762x51_Mag"], [], "bipod_01_F_snd"], + ["Aegis_arifle_SR25_blk_F", "", "acc_pointer_IR", "optic_AMS", [], [], "bipod_01_F_blk"]]; + (_militaryLoadoutData get "sniperRifles") append [ + ["srifle_DMR_02_sniper_F", "", "acc_pointer_IR", "optic_LRPS", [], [], "bipod_01_F_snd"], + ["srifle_DMR_02_sniper_F", "", "acc_pointer_IR", "optic_LRPS", [], [], "bipod_01_F_snd"]]; +}; +if ("rf" in A3A_enabledDLC) then { + (_sfLoadoutData get "sidearms") append [ + ["hgun_Glock19_Tan_RF", "muzzle_snds_L", "acc_flashlight_IR_pistol_RF", "optic_MRD_tan_RF", [], [], ""], + ["hgun_Glock19_Tan_RF", "muzzle_snds_L", "acc_flashlight_IR_pistol_RF", "optic_MRD_tan_RF", [], [], ""], + ["hgun_Glock19_auto_Tan_RF", "muzzle_snds_L", "acc_flashlight_IR_pistol_RF", "optic_MRD_tan_RF", [], [], ""], + ["hgun_Glock19_auto_Tan_RF", "muzzle_snds_L", "acc_flashlight_IR_pistol_RF", "optic_MRD_tan_RF", [], [], ""], + ["hgun_Glock19_auto_Tan_RF", "muzzle_snds_L", "acc_flashlight_IR_pistol_RF", "optic_MRD_tan_RF", [], [], ""] + ]; + (_militaryLoadoutData get "sidearms") append [ + ["hgun_Glock19_Tan_RF", "", "acc_flashlight_pistol", "", [], [], ""], + ["hgun_Glock19_Tan_RF", "", "acc_flashlight_pistol", "", [], [], ""], + ["hgun_Glock19_Tan_RF", "", "acc_flashlight_pistol", "", [], [], ""], + ["hgun_Glock19_Tan_RF", "", "acc_flashlight_pistol", "optic_MRD_tan_RF", [], [], ""], + ["hgun_Glock19_auto_Tan_RF", "", "acc_flashlight_pistol", "", [], [], ""] + ]; + (_policeLoadoutData get "sidearms") append ["hgun_Glock19_RF"]; + (_pilotLoadoutData get "uniforms") append ["U_B_HeliPilotCoveralls_MTP_RF"]; + (_sfLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "muzzle_snds_acp", "", "optic_Holosight", [], [], ""] + ]; + (_militaryLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "", "", "optic_Holosight", [], [], ""], + ["SMG_01_black_RF", "", "", "optic_Aco_smg", [], [], ""] + ]; + (_militiaLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "", "acc_flashlight_smg_01", "", [], [], ""] + ]; + (_policeLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "", "acc_flashlight_smg_01", "optic_Holosight", [], [], ""], + ["SMG_01_black_RF", "", "acc_flashlight_smg_01", "optic_Aco_smg", [], [], ""] + ]; + (_sfLoadoutData get "helmets") append [ + "H_HelmetB_plain_sb_mtp_RF", + "H_HelmetHeavy_Sand_RF", + "H_HelmetHeavy_Simple_Sand_RF", + "H_HelmetHeavy_VisorUp_Sand_RF"]; + (_militaryLoadoutData get "helmets") append ["H_HelmetB_plain_sb_mtp_RF"]; +}; + + +///////////////////////////////// +// Unit Type Definitions // +///////////////////////////////// + + +private _squadLeaderTemplate = { + ["slHat"] call _fnc_setHelmet; + [["Hvests", "vests"] call _fnc_fallback] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [["slRifles", "rifles"] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + ["primary", 4] call _fnc_addAdditionalMuzzleMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_squadLeader_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 2] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + ["signalsmokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["gpses"] call _fnc_addGPS; + ["binoculars"] call _fnc_addBinoculars; + ["NVGs"] call _fnc_addNVGs; +}; + +private _riflemanTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_rifleman_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 2] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _medicTemplate = { + ["helmets"] call _fnc_setHelmet; + [["Hvests", "vests"] call _fnc_fallback] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["carbines", "SMGs"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_medic"] call _fnc_addItemSet; + ["items_medic_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _grenadierTemplate = { + ["helmets"] call _fnc_setHelmet; + [["glVests", "vests"] call _fnc_fallback] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + ["grenadeLaunchers"] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + ["primary", 10] call _fnc_addAdditionalMuzzleMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_grenadier_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 4] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _explosivesExpertTemplate = { + ["helmets"] call _fnc_setHelmet; + [["glVests", "vests"] call _fnc_fallback] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [[selectRandom ["carbines", "shotGuns", "rifles"], selectRandom ["carbines", "rifles"]] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_explosivesExpert_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + + ["lightExplosives", 2] call _fnc_addItem; + if (random 1 > 0.5) then {["heavyExplosives", 1] call _fnc_addItem;}; + if (random 1 > 0.5) then {["atMines", 1] call _fnc_addItem;}; + if (random 1 > 0.5) then {["apMines", 1] call _fnc_addItem;}; + + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _engineerTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [[selectRandom ["carbines", "shotGuns", "SMGs"], selectRandom ["carbines", "SMGs"]] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_engineer_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + + if (random 1 > 0.5) then {["lightExplosives", 1] call _fnc_addItem;}; + + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _latTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + [["lightATLaunchers", "ATLaunchers"] call _fnc_fallback] call _fnc_setLauncher; + //TODO - Add a check if it's disposable. + ["launcher", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_lat_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _atTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + [selectRandom ["ATLaunchers", "missileATLaunchers"]] call _fnc_setLauncher; + //TODO - Add a check if it's disposable. + ["launcher", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_at_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _aaTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["AALaunchers"] call _fnc_setLauncher; + //TODO - Add a check if it's disposable. + ["launcher", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_aa_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _machineGunnerTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + ["machineGuns"] call _fnc_setPrimary; + ["primary", 4] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_machineGunner_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _marksmanTemplate = { + ["sniHats"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + ["marksmanRifles"] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_marksman_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["rangefinders"] call _fnc_addBinoculars; + ["NVGs"] call _fnc_addNVGs; +}; + +private _sniperTemplate = { + ["sniHats"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + ["sniperRifles"] call _fnc_setPrimary; + ["primary", 7] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_sniper_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["rangefinders"] call _fnc_addBinoculars; + ["NVGs"] call _fnc_addNVGs; +}; + +private _policeTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + [[selectRandom ["carbines", "shotGuns", "SMGs"], "SMGs"] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_police_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; +}; + +private _crewTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + [selectRandom ["carbines", "SMGs"]] call _fnc_setPrimary; + ["primary", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_basic"] call _fnc_addItemSet; + ["items_crew_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["gpses"] call _fnc_addGPS; + ["NVGs"] call _fnc_addNVGs; +}; + +private _unarmedTemplate = { + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + ["items_medical_basic"] call _fnc_addItemSet; + ["items_unarmed_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; +}; + +private _traitorTemplate = { + call _unarmedTemplate; + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; +}; + +//////////////////////////////////////////////////////////////////////////////////////// +// You shouldn't touch below this line unless you really really know what you're doing. +// Things below here can and will break the gamemode if improperly changed. +//////////////////////////////////////////////////////////////////////////////////////// + +///////////////////////////// +// Special Forces Units // +///////////////////////////// +private _prefix = "SF"; +private _unitTypes = [ + ["SquadLeader", _squadLeaderTemplate], + ["Rifleman", _riflemanTemplate], + ["Medic", _medicTemplate, [["medic", true]]], + ["Engineer", _engineerTemplate, [["engineer", true]]], + ["ExplosivesExpert", _explosivesExpertTemplate, [["explosiveSpecialist", true]]], + ["Grenadier", _grenadierTemplate], + ["LAT", _latTemplate], + ["AT", _atTemplate], + ["AA", _aaTemplate], + ["MachineGunner", _machineGunnerTemplate], + ["Marksman", _marksmanTemplate], + ["Sniper", _sniperTemplate] +]; + +[_prefix, _unitTypes, _sfLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +/*{ + params ["_name", "_loadoutTemplate"]; + private _loadouts = [_sfLoadoutData, _loadoutTemplate] call _fnc_buildLoadouts; + private _finalName = _prefix + _name; + [_finalName, _loadouts] call _fnc_saveToTemplate; +} forEach _unitTypes; +*/ + +/////////////////////// +// Military Units // +/////////////////////// +private _prefix = "military"; +private _unitTypes = [ + ["SquadLeader", _squadLeaderTemplate], + ["Rifleman", _riflemanTemplate], + ["Medic", _medicTemplate, [["medic", true]]], + ["Engineer", _engineerTemplate, [["engineer", true]]], + ["ExplosivesExpert", _explosivesExpertTemplate, [["explosiveSpecialist", true]]], + ["Grenadier", _grenadierTemplate], + ["LAT", _latTemplate], + ["AT", _atTemplate], + ["AA", _aaTemplate], + ["MachineGunner", _machineGunnerTemplate], + ["Marksman", _marksmanTemplate], + ["Sniper", _sniperTemplate] +]; + +[_prefix, _unitTypes, _militaryLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +//////////////////////// +// Police Units // +//////////////////////// +private _prefix = "police"; +private _unitTypes = [ + ["SquadLeader", _policeTemplate], + ["Standard", _policeTemplate] +]; + +[_prefix, _unitTypes, _policeLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +//////////////////////// +// Militia Units // +//////////////////////// +private _prefix = "militia"; +private _unitTypes = [ + ["SquadLeader", _squadLeaderTemplate], + ["Rifleman", _riflemanTemplate], + ["Medic", _medicTemplate, [["medic", true]]], + ["Engineer", _engineerTemplate, [["engineer", true]]], + ["ExplosivesExpert", _explosivesExpertTemplate, [["explosiveSpecialist", true]]], + ["Grenadier", _grenadierTemplate], + ["LAT", _latTemplate], + ["AT", _atTemplate], + ["AA", _aaTemplate], + ["MachineGunner", _machineGunnerTemplate], + ["Marksman", _marksmanTemplate], + ["Sniper", _sniperTemplate] +]; + +[_prefix, _unitTypes, _militiaLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +////////////////////// +// Misc Units // +////////////////////// + +//The following lines are determining the loadout of vehicle crew +["other", [["Crew", _crewTemplate]], _crewLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout of the pilots +["other", [["Pilot", _crewTemplate]], _pilotLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout for the unit used in the "kill the official" mission +["other", [["Official", _policeTemplate]], _officerLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout for the AI used in the "kill the traitor" mission +["other", [["Traitor", _traitorTemplate]], _traitorLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout for the AI used in the "Invader Punishment" mission +["other", [["Unarmed", _UnarmedTemplate]], _militaryLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; diff --git a/A3A/addons/core/Templates/Templates/Aegis/Aegis_AI_US_Temperate.sqf b/A3A/addons/core/Templates/Templates/Aegis/Aegis_AI_US_Temperate.sqf new file mode 100644 index 0000000000..d8abc03bc3 --- /dev/null +++ b/A3A/addons/core/Templates/Templates/Aegis/Aegis_AI_US_Temperate.sqf @@ -0,0 +1,1014 @@ +////////////////////////// +// Side Information // +////////////////////////// + +["name", "US"] call _fnc_saveToTemplate; +["spawnMarkerName", "US support corridor"] call _fnc_saveToTemplate; + +["flag", "Flag_NATO_F"] call _fnc_saveToTemplate; +["flagTexture", "\A3_Aegis\data_f_aegis\Flags\flag_USA_51_CO.paa"] call _fnc_saveToTemplate; +["flagMarkerType", "flag_USA"] call _fnc_saveToTemplate; + +////////////////////////// +// Vehicles // +////////////////////////// + +["ammobox", "B_supplyCrate_F"] call _fnc_saveToTemplate; //Don't touch or you die a sad and lonely death! +["surrenderCrate", "Box_IND_Wps_F"] call _fnc_saveToTemplate; //Changeing this from default will require you to define logistics attachement offset for the box type +["equipmentBox", "Box_NATO_Equip_F"] call _fnc_saveToTemplate; //Changeing this from default will require you to define logistics attachement offset for the box type + +["vehiclesBasic", ["B_W_Quadbike_01_F"]] call _fnc_saveToTemplate; +private _LightUnarmed = ["B_T_MRAP_01_F"]; +private _LightArmed = ["B_T_MRAP_01_hmg_F", "B_T_MRAP_01_hmg_F", "B_T_MRAP_01_gmg_F"]; //this line determines light and armed vehicles -- Example: ["vehiclesLightArmed", ["B_MRAP_01_hmg_F", "B_MRAP_01_gmg_F"]] -- Array, can contain multiple assets +["vehiclesTrucks", ["B_T_Truck_01_transport_F", "B_T_Truck_01_covered_F"]] call _fnc_saveToTemplate; +["vehiclesCargoTrucks", ["B_T_Truck_01_transport_F", "B_T_Truck_01_covered_F"]] call _fnc_saveToTemplate; +["vehiclesAmmoTrucks", ["B_T_Truck_01_ammo_F"]] call _fnc_saveToTemplate; +["vehiclesRepairTrucks", ["B_T_Truck_01_Repair_F"]] call _fnc_saveToTemplate; +["vehiclesFuelTrucks", ["B_T_Truck_01_fuel_F"]] call _fnc_saveToTemplate; +["vehiclesMedical", ["B_T_Truck_01_medical_F", "B_W_APC_Wheeled_01_medical_F"]] call _fnc_saveToTemplate; +["vehiclesLightAPCs", []] call _fnc_saveToTemplate; +private _APCs = ["B_W_APC_Wheeled_01_cannon_v2_F", "B_W_APC_Tracked_01_rcws_F"]; +["vehiclesIFVs", ["a3a_B_W_APC_Wheeled_01_cannon_v2_F"]] call _fnc_saveToTemplate; +private _Tanks = ["B_T_MBT_01_TUSK_F", "B_T_MBT_01_cannon_F"]; +["vehiclesAA", ["B_T_APC_Tracked_01_AA_F"]] call _fnc_saveToTemplate; + +["vehiclesTransportBoats", ["B_Boat_Transport_01_F"]] call _fnc_saveToTemplate; +["vehiclesGunBoats", ["B_Boat_Armed_01_minigun_F"]] call _fnc_saveToTemplate; +["vehiclesAmphibious", ["a3a_B_T_APC_Wheeled_01_cannon_F"]] call _fnc_saveToTemplate; + +["vehiclesPlanesCAS", ["B_Plane_CAS_01_dynamicLoadout_F"]] call _fnc_saveToTemplate; +["vehiclesPlanesAA", ["B_Plane_Fighter_01_F", "B_Plane_Fighter_05_F"]] call _fnc_saveToTemplate; +["vehiclesPlanesTransport", ["B_T_Plane_Transport_01_infantry_F"]] call _fnc_saveToTemplate; + +private _vehiclesHelisLight = ["B_Heli_Light_01_F"]; +private _HelisTransport = ["B_Heli_Transport_01_camo_F"]; +private _vehiclesHelisLightAttack = ["B_Heli_Light_01_dynamicLoadout_F"]; +["vehiclesHelisAttack", ["B_Heli_Attack_01_dynamicLoadout_F"]] call _fnc_saveToTemplate; + +["vehiclesArtillery", ["B_T_MBT_01_mlrs_F","B_T_MBT_01_arty_F"]] call _fnc_saveToTemplate; +["magazines", createHashMapFromArray [ +["B_T_MBT_01_mlrs_F", ["12Rnd_230mm_rockets"]], +["B_T_MBT_01_arty_F", ["32Rnd_155mm_Mo_shells"]] +]] call _fnc_saveToTemplate; + +["uavsAttack", ["B_UAV_02_CAS_F", "B_UAV_05_F"]] call _fnc_saveToTemplate; +["uavsPortable", ["B_UAV_01_F"]] call _fnc_saveToTemplate; + +//Config special vehicles - militia vehicles are mostly used in the early game, police cars are being used by troops around cities -- Example: +private _vehiclesMilitiaLightArmed = ["a3a_Offroad_01_black_armed_F", "a3a_Offroad_01_black_AT_F"]; +["vehiclesMilitiaTrucks", ["B_T_Truck_01_transport_F"]] call _fnc_saveToTemplate; +private _vehiclesMilitiaCars = ["a3a_Offroad_01_black_F"]; + +private _vehiclesPolice = ["B_GEN_Offroad_01_gen_F"]; + +["staticMGs", ["B_G_HMG_02_high_F"]] call _fnc_saveToTemplate; +["staticAT", ["B_static_AT_F"]] call _fnc_saveToTemplate; +["staticAA", ["B_static_AA_F"]] call _fnc_saveToTemplate; +["staticMortars", ["B_Mortar_01_F"]] call _fnc_saveToTemplate; + +["mortarMagazineHE", "8Rnd_82mm_Mo_shells"] call _fnc_saveToTemplate; //this line determines available HE-shells for the static mortars - !needs to be comtible with the mortar! -- Example: ["mortarMagazineHE", "8Rnd_82mm_Mo_shells"] - ENTER ONLY ONE OPTION +["mortarMagazineSmoke", "8Rnd_82mm_Mo_Smoke_white"] call _fnc_saveToTemplate; //this line determines smoke-shells for the static mortar - !needs to be comtible with the mortar! -- Example: ["mortarMagazineSmoke", "8Rnd_82mm_Mo_Smoke_white"] - ENTER ONLY ONE OPTION +["mortarMagazineFlare", "8Rnd_82mm_Mo_Flare_white"] call _fnc_saveToTemplate; + +//Minefield definition +["minefieldAT", ["ATMine"]] call _fnc_saveToTemplate; +["minefieldAPERS", ["APERSMine"]] call _fnc_saveToTemplate; + +//If Western Sahara DLC +if ("ws" in A3A_enabledDLC) then { + _APCs append ["B_W_APC_Wheeled_01_atgm_lxWS_v2", "B_W_APC_Wheeled_01_command_lxWS"]; + ["uavsPortable", ["B_UAV_01_F", "B_UAV_02_lxWS"]] call _fnc_saveToTemplate; +}; + +if ("enoch" in A3A_enabledDLC) then { + _vehiclesPolice append ["B_GEN_Offroad_01_comms_F","B_GEN_Offroad_01_covered_F"]; + _vehiclesMilitiaCars append ["C_Offroad_01_comms_F", "C_Offroad_01_covered_F"]; +}; +if ("tanks" in A3A_enabledDLC) then { + ["vehiclesLightTanks", ["a3a_T_AFV_Wheeled_01_cannon_F","B_T_AFV_Wheeled_01_up_cannon_F"]] call _fnc_saveToTemplate; +}; +if ("expansion" in A3A_enabledDLC) then { + _LightUnarmed append ["B_T_MRAP_01_F", "B_T_LSV_01_unarmed_F"]; + _LightArmed append ["B_T_LSV_01_AT_F", "B_T_LSV_01_armed_F"]; + _HelisTransport append ["B_CTRG_Heli_Transport_01_tropic_F"]; +}; +if ("heli" in A3A_enabledDLC) then { + _HelisTransport append ["B_Heli_Transport_03_F", "B_Heli_Transport_03_unarmed_green_F"]; +}; +if ("orange" in A3A_enabledDLC) then { + _vehiclesPolice append ["B_GEN_Van_02_vehicle_F","B_GEN_Van_02_transport_F"]; +}; +if ("rf" in A3A_enabledDLC) then { + _vehiclesPolice append ["a3a_police_Pickup_rf", "B_GEN_Pickup_covered_rf", "a3a_police_Pickup_comms_rf"]; + _HelisTransport append ["B_Heli_EC_04_military_RF"]; + _vehiclesHelisLight append ["B_Heli_light_03_unarmed_RF"]; + _vehiclesHelisLightAttack append ["a3a_Heli_light_03_dynamicLoadout_rf","B_Heli_EC_03_RF"]; + _vehiclesMilitiaCars append ["B_Pickup_rf"]; + _vehiclesMilitiaLightArmed append ["B_Pickup_mmg_rf"]; +}; + +["vehiclesLightUnarmed", _LightUnarmed] call _fnc_saveToTemplate; +["vehiclesLightArmed", _LightArmed] call _fnc_saveToTemplate; +["vehiclesAPCs", _APCs] call _fnc_saveToTemplate; +["vehiclesTanks", _Tanks] call _fnc_saveToTemplate; + +["vehiclesHelisLight", _vehiclesHelisLight] call _fnc_saveToTemplate; +["vehiclesHelisLightAttack", _vehiclesHelisLightAttack] call _fnc_saveToTemplate; +["vehiclesHelisTransport", _HelisTransport] call _fnc_saveToTemplate; + +["vehiclesMilitiaCars", _vehiclesMilitiaCars] call _fnc_saveToTemplate; +["vehiclesMilitiaLightArmed", _vehiclesMilitiaLightArmed] call _fnc_saveToTemplate; + +["vehiclesPolice", _vehiclesPolice] call _fnc_saveToTemplate; + +#include "Aegis_Vehicle_Attributes.sqf" + +///////////////////// +/// Identities /// +///////////////////// + +["voices", ["Male01ENG","Male02ENG","Male03ENG","Male04ENG","Male05ENG","Male06ENG","Male07ENG","Male08ENG","Male09ENG","Male10ENG","Male11ENG","Male12ENG"]] call _fnc_saveToTemplate; +["faces", ["AfricanHead_01","AfricanHead_02","AfricanHead_03","Barklem", +"GreekHead_A3_05","GreekHead_A3_07","Sturrock","WhiteHead_01","WhiteHead_02", +"WhiteHead_03","WhiteHead_04","WhiteHead_05","WhiteHead_06","WhiteHead_07", +"WhiteHead_08","WhiteHead_09","WhiteHead_11","WhiteHead_12","WhiteHead_14", +"WhiteHead_15","WhiteHead_16","WhiteHead_18","WhiteHead_19","WhiteHead_20", +"WhiteHead_21"]] call _fnc_saveToTemplate; +"NATOMen" call _fnc_saveNames; + +////////////////////////// +// Loadouts // +////////////////////////// +private _loadoutData = call _fnc_createLoadoutData; +_loadoutData set ["slRifles", []]; +_loadoutData set ["rifles", []]; +_loadoutData set ["carbines", []]; +_loadoutData set ["grenadeLaunchers", []]; +_loadoutData set ["shotGuns", []]; +_loadoutData set ["SMGs", []]; +_loadoutData set ["machineGuns", []]; +_loadoutData set ["marksmanRifles", []]; +_loadoutData set ["sniperRifles", []]; +_loadoutData set ["lightATLaunchers", ["launch_NLAW_F"]]; +_loadoutData set ["ATLaunchers", [ +["launch_MRAWS_olive_F", "", "acc_pointer_IR", "", ["MRAWS_HE_F", "MRAWS_HEAT55_F"], [], ""], +["launch_MRAWS_olive_F", "", "acc_pointer_IR", "", ["MRAWS_HEAT_F", "MRAWS_HEAT55_F"], [], ""], +["launch_MRAWS_olive_F", "", "acc_pointer_IR", "", ["MRAWS_HEAT_F", "MRAWS_HE_F"], [], ""], +["launch_MRAWS_olive_rail_F", "", "acc_pointer_IR", "", ["MRAWS_HE_F", "MRAWS_HEAT55_F"], [], ""], +["launch_MRAWS_olive_rail_F", "", "acc_pointer_IR", "", ["MRAWS_HEAT_F", "MRAWS_HEAT55_F"], [], ""], +["launch_MRAWS_olive_rail_F", "", "acc_pointer_IR", "", ["MRAWS_HEAT_F", "MRAWS_HE_F"], [], ""] +]]; +_loadoutData set ["missileATLaunchers", [ +["launch_I_Titan_short_F", "", "acc_pointer_IR", "", ["Titan_AT"], [], ""] +]]; +_loadoutData set ["AALaunchers", [ +["launch_B_Titan_olive_F", "", "acc_pointer_IR", "", ["Titan_AA"], [], ""] +]]; +_loadoutData set ["sidearms", []]; + +_loadoutData set ["ATMines", ["ATMine_Range_Mag"]]; +_loadoutData set ["APMines", ["APERSMine_Range_Mag"]]; +_loadoutData set ["lightExplosives", ["DemoCharge_Remote_Mag"]]; +_loadoutData set ["heavyExplosives", ["SatchelCharge_Remote_Mag"]]; + +_loadoutData set ["antiTankGrenades", []]; +_loadoutData set ["antiInfantryGrenades", ["HandGrenade", "MiniGrenade"]]; +_loadoutData set ["smokeGrenades", ["SmokeShell"]]; +_loadoutData set ["signalsmokeGrenades", ["SmokeShellYellow", "SmokeShellRed", "SmokeShellPurple", "SmokeShellOrange", "SmokeShellGreen", "SmokeShellBlue"]]; + +//Basic equipment. Shouldn't need touching most of the time. +//Mods might override this, or certain mods might want items removed (No GPSs in WW2, for example) +_loadoutData set ["maps", ["ItemMap"]]; +_loadoutData set ["watches", ["ItemWatch"]]; +_loadoutData set ["compasses", ["ItemCompass"]]; +_loadoutData set ["radios", ["ItemRadio"]]; +_loadoutData set ["gpses", ["ItemGPS"]]; +_loadoutData set ["NVGs", ["NVGoggles_INDEP"]]; +_loadoutData set ["binoculars", ["Binocular"]]; +_loadoutData set ["rangefinders", ["Rangefinder"]]; + +//Basically all the clothing which the units use. +//don't fill these lines - this is only to set the variables. +_loadoutData set ["uniforms", []]; +_loadoutData set ["vests", []]; +_loadoutData set ["Hvests", []]; +_loadoutData set ["glVests", []]; +_loadoutData set ["backpacks", []]; +_loadoutData set ["longRangeRadios", []]; +_loadoutData set ["helmets", []]; +_loadoutData set ["slHat", ["H_Beret_02"]]; +_loadoutData set ["sniHats", ["H_Booniehat_wdl"]]; + +//Item *set* definitions. These are added in their entirety to unit loadouts. No randomisation is applied. +_loadoutData set ["items_medical_basic", ["BASIC"] call A3A_fnc_itemset_medicalSupplies]; //this line defines the basic medical loadout for vanilla +_loadoutData set ["items_medical_standard", ["STANDARD"] call A3A_fnc_itemset_medicalSupplies]; //this line defines the standard medical loadout for vanilla +_loadoutData set ["items_medical_medic", ["MEDIC"] call A3A_fnc_itemset_medicalSupplies]; //this line defines the medic medical loadout for vanilla +_loadoutData set ["items_miscEssentials", [] call A3A_fnc_itemset_miscEssentials]; + +//Unit type specific item sets. Add or remove these, depending on the unit types in use. +private _slItems = ["Laserbatteries", "Laserbatteries", "Laserbatteries"]; +private _eeItems = ["ToolKit", "MineDetector"]; +private _mmItems = []; + +if (A3A_hasACE) then { + _slItems append ["ACE_microDAGR", "ACE_DAGR"]; + _eeItems append ["ACE_Clacker", "ACE_DefusalKit"]; + _mmItems append ["ACE_RangeCard", "ACE_ATragMX", "ACE_Kestrel4500"]; +}; + +_loadoutData set ["items_squadLeader_extras", _slItems]; +_loadoutData set ["items_rifleman_extras", []]; +_loadoutData set ["items_medic_extras", []]; +_loadoutData set ["items_grenadier_extras", []]; +_loadoutData set ["items_explosivesExpert_extras", _eeItems]; +_loadoutData set ["items_engineer_extras", _eeItems]; +_loadoutData set ["items_lat_extras", []]; +_loadoutData set ["items_at_extras", []]; +_loadoutData set ["items_aa_extras", []]; +_loadoutData set ["items_machineGunner_extras", []]; +_loadoutData set ["items_marksman_extras", _mmItems]; +_loadoutData set ["items_sniper_extras", _mmItems]; +_loadoutData set ["items_police_extras", []]; +_loadoutData set ["items_crew_extras", []]; +_loadoutData set ["items_unarmed_extras", []]; + +//TODO - ACE overrides for misc essentials, medical and engineer gear + +/////////////////////////////////////// +// Special Forces Loadout Data // +/////////////////////////////////////// + +private _sfLoadoutData = _loadoutData call _fnc_copyLoadoutData; // touch and shit breaks +_sfLoadoutData set ["uniforms", ["U_B_CombatUniform_mcam_wdl_f", "U_B_CombatUniform_vest_mcam_wdl_f", "U_B_CombatUniform_tshirt_mcam_wdL_f"]]; +_sfLoadoutData set ["vests", ["V_PlateCarrier1_wdl", "V_TacVest_grn"]]; +_sfLoadoutData set ["Hvests", ["V_PlateCarrier2_wdl"]]; +_sfLoadoutData set ["backpacks", ["B_Kitbag_rgr", "B_Carryall_wdl_F", "B_AssaultPack_rgr", "B_AssaultPackSpec_rgr", "B_TacticalPack_rgr"]]; +_sfLoadoutData set ["helmets", ["H_HelmetB_light_wdl", "H_HelmetSpecB_light_wdl", "H_Watchcap_camo_hs", "H_Cap_usblack_hs"]]; +_sfLoadoutData set ["binoculars", ["Laserdesignator_03"]]; + +_sfLoadoutData set ["slRifles", [ +["arifle_MX_Black_F", "muzzle_snds_H", "acc_pointer_IR", "optic_Hamr", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], [], ""], +["arifle_MX_Black_F", "muzzle_snds_H", "acc_pointer_IR", "optic_MRCO", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], [], ""], +["arifle_MX_Black_F", "muzzle_snds_H", "acc_pointer_IR", "Aegis_optic_ACOG", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], [], ""], +["arifle_MX_GL_Black_F", "muzzle_snds_H", "acc_pointer_IR", "optic_Hamr", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_MX_GL_Black_F", "muzzle_snds_H", "acc_pointer_IR", "optic_MRCO", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_MX_GL_Black_F", "muzzle_snds_H", "acc_pointer_IR", "Aegis_optic_ACOG", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_sfLoadoutData set ["rifles", [ +["arifle_MX_Black_F", "muzzle_snds_H", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], [], ""], +["arifle_MX_Black_F", "muzzle_snds_H", "acc_pointer_IR", "Aegis_optic_ICO", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], [], ""] +]]; +_sfLoadoutData set ["carbines", [ +["arifle_MXC_Black_F", "muzzle_snds_H", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], [], ""], +["arifle_MXC_Black_F", "muzzle_snds_H", "acc_pointer_IR", "Aegis_optic_ICO", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], [], ""] +]]; +_sfLoadoutData set ["grenadeLaunchers", [ +["arifle_MX_GL_Black_F", "muzzle_snds_H", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_MX_GL_Black_F", "muzzle_snds_H", "acc_pointer_IR", "Aegis_optic_ICO", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_sfLoadoutData set ["SMGs", [ +["SMG_01_black_F", "muzzle_mzls_smg_01", "", "optic_Holosight_smg_blk_F", [], [], ""], +["SMG_01_black_F", "muzzle_mzls_smg_01", "", "optic_ACO_grn_smg", [], [], ""], +["SMG_01_black_F", "muzzle_mzls_smg_01", "", "Aegis_optic_ICO", [], [], ""] +]]; +_sfLoadoutData set ["machineGuns", [ +["arifle_MX_SW_Black_F", "muzzle_snds_H", "acc_pointer_IR", "optic_Holosight_blk_F", ["100Rnd_65x39_caseless_black_mag", "100Rnd_65x39_caseless_black_mag", "100Rnd_65x39_caseless_black_mag_tracer"], [], "bipod_01_F_blk"], +["arifle_MX_SW_Black_F", "muzzle_snds_H", "acc_pointer_IR", "Aegis_optic_ICO", ["100Rnd_65x39_caseless_black_mag", "100Rnd_65x39_caseless_black_mag", "100Rnd_65x39_caseless_black_mag_tracer"], [], "bipod_01_F_blk"], +["arifle_MX_SW_Black_F", "muzzle_snds_H", "acc_pointer_IR", "optic_Hamr", ["100Rnd_65x39_caseless_black_mag", "100Rnd_65x39_caseless_black_mag", "100Rnd_65x39_caseless_black_mag_tracer"], [], "bipod_01_F_blk"], +["arifle_MX_SW_Black_F", "muzzle_snds_H", "acc_pointer_IR", "optic_MRCO", ["100Rnd_65x39_caseless_black_mag", "100Rnd_65x39_caseless_black_mag", "100Rnd_65x39_caseless_black_mag_tracer"], [], "bipod_01_F_blk"], +["arifle_MX_SW_Black_F", "muzzle_snds_H", "acc_pointer_IR", "Aegis_optic_ACOG", ["100Rnd_65x39_caseless_black_mag", "100Rnd_65x39_caseless_black_mag", "100Rnd_65x39_caseless_black_mag_tracer"], [], "bipod_01_F_blk"] +]]; +_sfLoadoutData set ["marksmanRifles", [ +["arifle_MXM_Black_F", "muzzle_snds_H", "acc_pointer_IR", "optic_SOS", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], [], "bipod_01_F_blk"], +["arifle_MXM_Black_F", "muzzle_snds_H", "acc_pointer_IR", "optic_Hamr", ["30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer"], [], "bipod_01_F_blk"], +["Aegis_arifle_SR25_MR_blk_F", "aegis_muzzle_snds_sr25_blk", "acc_pointer_IR", "optic_SOS", [], [], "bipod_01_F_blk"], +["Aegis_arifle_SR25_MR_blk_F", "aegis_muzzle_snds_sr25_blk", "acc_pointer_IR", "optic_Hamr", [], [], "bipod_01_F_blk"], +["Aegis_arifle_SR25_MR_blk_F", "aegis_muzzle_snds_sr25_blk", "acc_pointer_IR", "optic_DMS", [], [], "bipod_01_F_blk"] +]]; +_sfLoadoutData set ["sniperRifles", [ +["srifle_LRR_F", "", "", "optic_SOS", [], [], ""], +["srifle_LRR_F", "", "", "optic_LRPS", [], [], ""] +]]; +_sfLoadoutData set ["sidearms", [ +["hgun_P07_blk_F", "muzzle_snds_L", "Aegis_acc_pointer_compact_pistol_green", "", [], [], ""] +]]; + +///////////////////////////////// +// Military Loadout Data // +///////////////////////////////// + +private _militaryLoadoutData = _loadoutData call _fnc_copyLoadoutData; // touch and shit breaks +_militaryLoadoutData set ["uniforms", ["U_B_CombatUniform_mcam_wdl_f", "U_B_CombatUniform_tshirt_mcam_wdL_f", "U_B_CombatUniform_vest_mcam_wdl_f"]]; +_militaryLoadoutData set ["vests", ["V_PlateCarrier1_wdl", "V_PlateCarrier2_wdl"]]; +_militaryLoadoutData set ["Hvests", ["V_PlateCarrierSpec_wdl"]]; +_militaryLoadoutData set ["glVests", ["V_PlateCarrierGL_wdl"]]; +_militaryLoadoutData set ["backpacks", ["B_Carryall_wdl_F", "B_AssaultPack_wdl_F", "B_AssaultPackSpec_wdl_F", "B_Kitbag_wdl_F", "B_TacticalPack_rgr"]]; +_militaryLoadoutData set ["helmets", ["H_HelmetB_camo_wdl", "H_HelmetB_plain_wdl", "H_HelmetSpecB_wdl"]]; +_militaryLoadoutData set ["binoculars", ["Laserdesignator_03"]]; + +_militaryLoadoutData set ["slRifles", [ +["arifle_SCAR_L_black_F", "", "acc_pointer_IR", "optic_MRCO", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["arifle_SCAR_L_black_F", "", "acc_pointer_IR", "optic_Hamr", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["arifle_SCAR_L_black_F", "", "acc_pointer_IR", "Aegis_optic_ACOG", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["arifle_SCAR_L_GL_black_F", "", "acc_pointer_IR", "optic_MRCO", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_SCAR_L_GL_black_F", "", "acc_pointer_IR", "optic_Hamr", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_SCAR_L_GL_black_F", "", "acc_pointer_IR", "Aegis_optic_ACOG", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_SCAR_black_F", "", "acc_pointer_IR", "optic_MRCO", [], [], ""], +["arifle_SCAR_black_F", "", "acc_pointer_IR", "optic_Hamr", [], [], ""], +["arifle_SCAR_black_F", "", "acc_pointer_IR", "Aegis_optic_ACOG", [], [], ""] +]]; +_militaryLoadoutData set ["rifles", [ +["arifle_SCAR_L_grip_black_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["arifle_SCAR_L_grip_black_F", "", "acc_pointer_IR", "optic_ACO_grn", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["arifle_SCAR_L_grip_black_F", "", "acc_pointer_IR", "Aegis_optic_ICO", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""] +]]; +_militaryLoadoutData set ["carbines", [ +["arifle_SCAR_L_short_black_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["arifle_SCAR_L_short_black_F", "", "acc_pointer_IR", "optic_ACO_grn", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["arifle_SCAR_L_short_black_F", "", "acc_pointer_IR", "Aegis_optic_ICO", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""] +]]; +_militaryLoadoutData set ["grenadeLaunchers", [ +["arifle_SCAR_L_GL_black_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_SCAR_L_GL_black_F", "", "acc_pointer_IR", "optic_ACO_grn", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_SCAR_L_GL_black_F", "", "acc_pointer_IR", "Aegis_optic_ICO", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_militaryLoadoutData set ["shotGuns", [ +["sgun_KSG_F", "", "", "optic_Holosight_smg_blk_F", ["8Rnd_12Gauge_Pellets", "8Rnd_12Gauge_Slug"], [], ""], +["sgun_KSG_F", "", "", "optic_ACO_grn_smg", ["8Rnd_12Gauge_Pellets", "8Rnd_12Gauge_Slug"], [], ""], +["sgun_KSG_F", "", "", "Aegis_optic_ICO", ["8Rnd_12Gauge_Pellets", "8Rnd_12Gauge_Slug"], [], ""] +]]; +_militaryLoadoutData set ["SMGs", [ +["SMG_01_black_F", "", "", "optic_Holosight_smg_blk_F", [], [], ""], +["SMG_01_black_F", "", "", "optic_ACO_grn_smg", [], [], ""], +["SMG_01_black_F", "", "", "Aegis_optic_ICO", [], [], ""] +]]; +_militaryLoadoutData set ["machineGuns", [ +["LMG_03_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", ["200Rnd_556x45_Box_F", "200Rnd_556x45_Box_F", "200Rnd_556x45_Box_Tracer_F"], [], ""], +["LMG_03_F", "", "acc_pointer_IR", "optic_ACO_grn", ["200Rnd_556x45_Box_F", "200Rnd_556x45_Box_F", "200Rnd_556x45_Box_Tracer_F"], [], ""], +["LMG_03_F", "", "acc_pointer_IR", "Aegis_optic_ICO", ["200Rnd_556x45_Box_F", "200Rnd_556x45_Box_F", "200Rnd_556x45_Box_Tracer_F"], [], ""] +]]; +_militaryLoadoutData set ["marksmanRifles", [ +["srifle_EBR_blk_F", "", "acc_pointer_IR", "optic_SOS", [], [], "bipod_01_F_blk"], +["srifle_EBR_blk_F", "", "acc_pointer_IR", "optic_DMS", [], [], "bipod_01_F_blk"], +["srifle_EBR_blk_F", "", "acc_pointer_IR", "optic_Hamr", [], [], "bipod_01_F_blk"], +["Aegis_arifle_SR25_blk_F", "", "acc_pointer_IR", "optic_SOS", [], [], "bipod_01_F_blk"], +["Aegis_arifle_SR25_blk_F", "", "acc_pointer_IR", "optic_DMS", [], [], "bipod_01_F_blk"], +["Aegis_arifle_SR25_blk_F", "", "acc_pointer_IR", "optic_Hamr", [], [], "bipod_01_F_blk"] +]]; +_militaryLoadoutData set ["sniperRifles", [ +["srifle_LRR_F", "", "", "optic_SOS", [], [], ""], +["srifle_LRR_F", "", "", "optic_LRPS", [], [], ""] +]]; +_militaryLoadoutData set ["sidearms", [ +["hgun_P07_blk_F", "", "Aegis_acc_pointer_compact_pistol_green", "", [], [], ""] +]]; + +/////////////////////////////// +// Police Loadout Data // +/////////////////////////////// + +private _policeLoadoutData = _loadoutData call _fnc_copyLoadoutData; // touch and shit breaks +_policeLoadoutData set ["uniforms", ["U_B_GEN_Soldier_F", "U_B_GEN_Commander_F"]]; +_policeLoadoutData set ["vests", ["V_TacVest_blk_POLICE"]]; +_policeLoadoutData set ["helmets", ["H_Cap_police"]]; + +_policeLoadoutData set ["carbines", [ +["Aegis_arifle_M4A1_short_F", "", "acc_flashlight", "", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["Aegis_arifle_M4A1_F", "", "acc_flashlight", "", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""] +]]; +_policeLoadoutData set ["shotGuns", [ +["sgun_KSG_F", "", "", "", ["8Rnd_12Gauge_Pellets", "8Rnd_12Gauge_Slug"], [], ""] +]]; +_policeLoadoutData set ["SMGs", [ +["SMG_01_black_F", "", "acc_flashlight_smg_01", "", [], [], ""] +]]; +_policeLoadoutData set ["sidearms", ["hgun_ACPC2_black_F"]]; + +//////////////////////////////// +// Militia Loadout Data // +//////////////////////////////// + +private _militiaLoadoutData = _loadoutData call _fnc_copyLoadoutData; // touch and shit breaks +_militiaLoadoutData set ["uniforms", ["U_B_CombatUniform_mcam_wdl_f", "U_B_CombatUniform_tshirt_mcam_wdL_f", "U_B_CombatUniform_vest_mcam_wdl_f"]]; +_militiaLoadoutData set ["vests", ["V_Chestrig_rgr", "V_BandollierB_rgr"]]; +_militiaLoadoutData set ["Hvests", ["V_TacVest_grn"]]; +_militiaLoadoutData set ["backpacks", ["B_AssaultPackSpec_wdl_F", "B_Kitbag_wdl_F", "B_Carryall_wdl_F"]]; +_militiaLoadoutData set ["helmets", ["H_MilCap_wdl", "H_HelmetB_light_wdl", "H_Bandanna_khk_hs"]]; + +_militiaLoadoutData set ["rifles", [ +["Aegis_arifle_M4A1_grip_F", "", "acc_flashlight", "", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["Aegis_arifle_M4A1_F", "", "acc_flashlight", "", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""] +]]; +_militiaLoadoutData set ["carbines", [ +["Aegis_arifle_M4A1_short_F", "", "acc_flashlight", "", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""] +]]; +_militiaLoadoutData set ["grenadeLaunchers", [ +["Aegis_arifle_M4A1_GL_F", "", "acc_flashlight", "", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_militiaLoadoutData set ["SMGs", [ +["SMG_01_black_F", "", "acc_flashlight_smg_01", "", [], [], ""] +]]; +_militiaLoadoutData set ["machineGuns", [ +["LMG_03_F", "", "acc_flashlight", "", ["200Rnd_556x45_Box_F", "200Rnd_556x45_Box_F", "200Rnd_556x45_Box_Tracer_F"], [], ""] +]]; +_militiaLoadoutData set ["marksmanRifles", [ +["srifle_EBR_blk_F", "", "acc_flashlight", "optic_Hamr", [], [], "bipod_01_F_snd"] +]]; +_militiaLoadoutData set ["sniperRifles", [ +["srifle_LRR_F", "", "", "optic_SOS", [], [], ""], +["srifle_LRR_F", "", "", "optic_LRPS", [], [], ""] +]]; +_militiaLoadoutData set ["sidearms", ["hgun_ACPC2_black_F"]]; + +////////////////////////// +// Misc Loadouts // +////////////////////////// + +private _crewLoadoutData = _militaryLoadoutData call _fnc_copyLoadoutData; +_crewLoadoutData set ["uniforms", ["U_B_CombatUniform_vest_mcam_wdl_f"]]; +_crewLoadoutData set ["vests", ["V_PlateCarrier1_wdl"]]; +_crewLoadoutData set ["helmets", ["H_HelmetCrew_B"]]; + +private _pilotLoadoutData = _militaryLoadoutData call _fnc_copyLoadoutData; +_pilotLoadoutData set ["uniforms", ["U_B_HeliPilotCoveralls"]]; +_pilotLoadoutData set ["vests", ["V_TacVest_blk"]]; +_pilotLoadoutData set ["helmets", ["H_CrewHelmetHeli_B", "H_PilotHelmetHeli_B", "H_PilotHelmetHeli_B_visor_up"]]; + +private _traitorLoadoutData = _militaryLoadoutData call _fnc_copyLoadoutData; +_traitorLoadoutData set ["uniforms", ["U_B_CombatUniform_tshirt_mcam_wdL_f"]]; +_traitorLoadoutData set ["vests", ["V_TacVest_camo"]]; + +private _officerLoadoutData = _loadoutData call _fnc_copyLoadoutData; +_officerLoadoutData set ["uniforms", ["U_B_ParadeUniform_01_US_F", "U_B_ParadeUniform_01_US_decorated_F"]]; +_officerLoadoutData set ["vests", ["V_Rangemaster_belt"]]; +_officerLoadoutData set ["helmets", ["H_ParadeDressCap_01_US_F"]]; +_officerLoadoutData set ["backpacks", []]; +_officerLoadoutData set ["SMGs", [ +["arifle_SCAR_L_short_black_F", "", "acc_pointer_IR", "optic_Holosight_blk_F", [], [], ""], +["arifle_SCAR_L_short_black_F", "", "acc_pointer_IR", "optic_ACO_grn", [], [], ""], +["arifle_SCAR_L_short_black_F", "", "acc_pointer_IR", "Aegis_optic_ICO", [], [], ""] +]]; + +if ("mark" in A3A_enabledDLC) then { + (_sfLoadoutData get "machineGuns") append [ + ["MMG_02_black_F", "muzzle_snds_338_black", "acc_pointer_IR", "optic_Hamr", [], [], "bipod_01_F_blk"], + ["MMG_02_black_F", "muzzle_snds_338_black", "acc_pointer_IR", "optic_Holosight", [], [], "bipod_01_F_blk"]]; + (_sfLoadoutData get "marksmanRifles") append [ + ["srifle_DMR_03_woodland_F", "muzzle_snds_B", "acc_pointer_IR", "optic_AMS", ["20Rnd_762x51_Mag"], [], "bipod_01_F_blk"], + ["srifle_DMR_03_F", "muzzle_snds_B_lush_F", "acc_pointer_IR", "optic_DMS", ["20Rnd_762x51_Mag"], [], "bipod_01_F_blk"], + ["Aegis_arifle_SR25_MR_blk_F", "aegis_muzzle_snds_sr25_blk", "acc_pointer_IR", "optic_AMS", [], [], "bipod_01_F_blk"]]; + (_sfLoadoutData get "sniperRifles") append [ + ["srifle_DMR_02_F", "muzzle_snds_338_black", "acc_pointer_IR", "optic_LRPS", [], [], "bipod_01_F_blk"], + ["srifle_DMR_02_F", "muzzle_snds_338_black", "acc_pointer_IR", "optic_LRPS", [], [], "bipod_01_F_blk"]]; + + (_militaryLoadoutData get "machineGuns") append [ + ["MMG_02_black_F", "", "acc_pointer_IR", "optic_Hamr", [], [], "bipod_01_F_blk"], + ["MMG_02_black_F", "", "acc_pointer_IR", "optic_Holosight", [], [], "bipod_01_F_blk"] + ]; + (_militaryLoadoutData get "marksmanRifles") append [ + ["srifle_DMR_03_woodland_F", "", "acc_pointer_IR", "optic_AMS", ["20Rnd_762x51_Mag"], [], "bipod_01_F_blk"], + ["srifle_DMR_03_khaki_F", "", "acc_pointer_IR", "optic_DMS", ["20Rnd_762x51_Mag"], [], "bipod_01_F_blk"], + ["srifle_DMR_03_F", "", "acc_pointer_IR", "optic_SOS", ["20Rnd_762x51_Mag"], [], "bipod_01_F_blk"], + ["Aegis_arifle_SR25_blk_F", "", "acc_pointer_IR", "optic_AMS", [], [], "bipod_01_F_blk"]]; + (_militaryLoadoutData get "sniperRifles") append [ + ["srifle_DMR_02_F", "", "acc_pointer_IR", "optic_LRPS", [], [], "bipod_01_F_blk"], + ["srifle_DMR_02_F", "", "acc_pointer_IR", "optic_LRPS", [], [], "bipod_01_F_blk"]]; +}; +if ("rf" in A3A_enabledDLC) then { + (_sfLoadoutData get "sidearms") append [ + ["hgun_Glock19_RF", "muzzle_snds_L", "acc_flashlight_IR_pistol_RF", "optic_MRD_black", [], [], ""], + ["hgun_Glock19_RF", "muzzle_snds_L", "acc_flashlight_IR_pistol_RF", "optic_MRD_black", [], [], ""], + ["hgun_Glock19_auto_RF", "muzzle_snds_L", "acc_flashlight_IR_pistol_RF", "optic_MRD_black", [], [], ""], + ["hgun_Glock19_auto_RF", "muzzle_snds_L", "acc_flashlight_IR_pistol_RF", "optic_MRD_black", [], [], ""], + ["hgun_Glock19_auto_RF", "muzzle_snds_L", "acc_flashlight_IR_pistol_RF", "optic_MRD_black", [], [], ""] + ]; + (_militaryLoadoutData get "sidearms") append [ + ["hgun_Glock19_RF", "", "acc_flashlight_pistol", "", [], [], ""], + ["hgun_Glock19_RF", "", "acc_flashlight_pistol", "", [], [], ""], + ["hgun_Glock19_RF", "", "acc_flashlight_pistol", "", [], [], ""], + ["hgun_Glock19_RF", "", "acc_flashlight_pistol", "optic_MRD_black", [], [], ""], + ["hgun_Glock19_auto_RF", "", "acc_flashlight_pistol", "", [], [], ""] + ]; + (_policeLoadoutData get "sidearms") append ["hgun_Glock19_RF"]; + (_pilotLoadoutData get "uniforms") append ["U_B_HeliPilotCoveralls_MTP_RF"]; + (_sfLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "muzzle_snds_acp", "", "optic_Holosight", [], [], ""] + ]; + (_militaryLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "", "", "optic_Holosight", [], [], ""], + ["SMG_01_black_RF", "", "", "optic_Aco_smg", [], [], ""] + ]; + (_militiaLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "", "acc_flashlight_smg_01", "", [], [], ""] + ]; + (_policeLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "", "acc_flashlight_smg_01", "optic_Holosight", [], [], ""], + ["SMG_01_black_RF", "", "acc_flashlight_smg_01", "optic_Aco_smg", [], [], ""] + ]; + (_sfLoadoutData get "helmets") append [ + "H_HelmetB_plain_sb_mtp_RF", + "H_HelmetHeavy_Sand_RF", + "H_HelmetHeavy_Simple_Sand_RF", + "H_HelmetHeavy_VisorUp_Sand_RF"]; + (_militaryLoadoutData get "helmets") append ["H_HelmetB_plain_sb_mtp_RF"]; +}; + + +///////////////////////////////// +// Unit Type Definitions // +///////////////////////////////// + + +private _squadLeaderTemplate = { + ["slHat"] call _fnc_setHelmet; + [["Hvests", "vests"] call _fnc_fallback] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [["slRifles", "rifles"] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + ["primary", 4] call _fnc_addAdditionalMuzzleMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_squadLeader_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 2] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + ["signalsmokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["gpses"] call _fnc_addGPS; + ["binoculars"] call _fnc_addBinoculars; + ["NVGs"] call _fnc_addNVGs; +}; + +private _riflemanTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_rifleman_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 2] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _medicTemplate = { + ["helmets"] call _fnc_setHelmet; + [["Hvests", "vests"] call _fnc_fallback] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["carbines", "SMGs"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_medic"] call _fnc_addItemSet; + ["items_medic_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _grenadierTemplate = { + ["helmets"] call _fnc_setHelmet; + [["glVests", "vests"] call _fnc_fallback] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + ["grenadeLaunchers"] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + ["primary", 10] call _fnc_addAdditionalMuzzleMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_grenadier_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 4] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _explosivesExpertTemplate = { + ["helmets"] call _fnc_setHelmet; + [["glVests", "vests"] call _fnc_fallback] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [[selectRandom ["carbines", "shotGuns", "rifles"], selectRandom ["carbines", "rifles"]] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_explosivesExpert_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + + ["lightExplosives", 2] call _fnc_addItem; + if (random 1 > 0.5) then {["heavyExplosives", 1] call _fnc_addItem;}; + if (random 1 > 0.5) then {["atMines", 1] call _fnc_addItem;}; + if (random 1 > 0.5) then {["apMines", 1] call _fnc_addItem;}; + + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _engineerTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [[selectRandom ["carbines", "shotGuns", "SMGs"], selectRandom ["carbines", "SMGs"]] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_engineer_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + + if (random 1 > 0.5) then {["lightExplosives", 1] call _fnc_addItem;}; + + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _latTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + [["lightATLaunchers", "ATLaunchers"] call _fnc_fallback] call _fnc_setLauncher; + //TODO - Add a check if it's disposable. + ["launcher", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_lat_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _atTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + [selectRandom ["ATLaunchers", "missileATLaunchers"]] call _fnc_setLauncher; + //TODO - Add a check if it's disposable. + ["launcher", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_at_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _aaTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["AALaunchers"] call _fnc_setLauncher; + //TODO - Add a check if it's disposable. + ["launcher", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_aa_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _machineGunnerTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + ["machineGuns"] call _fnc_setPrimary; + ["primary", 4] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_machineGunner_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _marksmanTemplate = { + ["sniHats"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + ["marksmanRifles"] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_marksman_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["rangefinders"] call _fnc_addBinoculars; + ["NVGs"] call _fnc_addNVGs; +}; + +private _sniperTemplate = { + ["sniHats"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + + ["sniperRifles"] call _fnc_setPrimary; + ["primary", 7] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_sniper_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["rangefinders"] call _fnc_addBinoculars; + ["NVGs"] call _fnc_addNVGs; +}; + +private _policeTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + [[selectRandom ["carbines", "shotGuns", "SMGs"], "SMGs"] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_police_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; +}; + +private _crewTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + [selectRandom ["carbines", "SMGs"]] call _fnc_setPrimary; + ["primary", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_basic"] call _fnc_addItemSet; + ["items_crew_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["gpses"] call _fnc_addGPS; + ["NVGs"] call _fnc_addNVGs; +}; + +private _unarmedTemplate = { + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + ["items_medical_basic"] call _fnc_addItemSet; + ["items_unarmed_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; +}; + +private _traitorTemplate = { + call _unarmedTemplate; + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; +}; + +//////////////////////////////////////////////////////////////////////////////////////// +// You shouldn't touch below this line unless you really really know what you're doing. +// Things below here can and will break the gamemode if improperly changed. +//////////////////////////////////////////////////////////////////////////////////////// + +///////////////////////////// +// Special Forces Units // +///////////////////////////// +private _prefix = "SF"; +private _unitTypes = [ + ["SquadLeader", _squadLeaderTemplate], + ["Rifleman", _riflemanTemplate], + ["Medic", _medicTemplate, [["medic", true]]], + ["Engineer", _engineerTemplate, [["engineer", true]]], + ["ExplosivesExpert", _explosivesExpertTemplate, [["explosiveSpecialist", true]]], + ["Grenadier", _grenadierTemplate], + ["LAT", _latTemplate], + ["AT", _atTemplate], + ["AA", _aaTemplate], + ["MachineGunner", _machineGunnerTemplate], + ["Marksman", _marksmanTemplate], + ["Sniper", _sniperTemplate] +]; + +[_prefix, _unitTypes, _sfLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +/*{ + params ["_name", "_loadoutTemplate"]; + private _loadouts = [_sfLoadoutData, _loadoutTemplate] call _fnc_buildLoadouts; + private _finalName = _prefix + _name; + [_finalName, _loadouts] call _fnc_saveToTemplate; +} forEach _unitTypes; +*/ + +/////////////////////// +// Military Units // +/////////////////////// +private _prefix = "military"; +private _unitTypes = [ + ["SquadLeader", _squadLeaderTemplate], + ["Rifleman", _riflemanTemplate], + ["Medic", _medicTemplate, [["medic", true]]], + ["Engineer", _engineerTemplate, [["engineer", true]]], + ["ExplosivesExpert", _explosivesExpertTemplate, [["explosiveSpecialist", true]]], + ["Grenadier", _grenadierTemplate], + ["LAT", _latTemplate], + ["AT", _atTemplate], + ["AA", _aaTemplate], + ["MachineGunner", _machineGunnerTemplate], + ["Marksman", _marksmanTemplate], + ["Sniper", _sniperTemplate] +]; + +[_prefix, _unitTypes, _militaryLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +//////////////////////// +// Police Units // +//////////////////////// +private _prefix = "police"; +private _unitTypes = [ + ["SquadLeader", _policeTemplate], + ["Standard", _policeTemplate] +]; + +[_prefix, _unitTypes, _policeLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +//////////////////////// +// Militia Units // +//////////////////////// +private _prefix = "militia"; +private _unitTypes = [ + ["SquadLeader", _squadLeaderTemplate], + ["Rifleman", _riflemanTemplate], + ["Medic", _medicTemplate, [["medic", true]]], + ["Engineer", _engineerTemplate, [["engineer", true]]], + ["ExplosivesExpert", _explosivesExpertTemplate, [["explosiveSpecialist", true]]], + ["Grenadier", _grenadierTemplate], + ["LAT", _latTemplate], + ["AT", _atTemplate], + ["AA", _aaTemplate], + ["MachineGunner", _machineGunnerTemplate], + ["Marksman", _marksmanTemplate], + ["Sniper", _sniperTemplate] +]; + +[_prefix, _unitTypes, _militiaLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +////////////////////// +// Misc Units // +////////////////////// + +//The following lines are determining the loadout of vehicle crew +["other", [["Crew", _crewTemplate]], _crewLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout of the pilots +["other", [["Pilot", _crewTemplate]], _pilotLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout for the unit used in the "kill the official" mission +["other", [["Official", _policeTemplate]], _officerLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout for the AI used in the "kill the traitor" mission +["other", [["Traitor", _traitorTemplate]], _traitorLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout for the AI used in the "Invader Punishment" mission +["other", [["Unarmed", _UnarmedTemplate]], _militaryLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; diff --git a/A3A/addons/core/Templates/Templates/Aegis/Aegis_AI_US_Tropical.sqf b/A3A/addons/core/Templates/Templates/Aegis/Aegis_AI_US_Tropical.sqf new file mode 100644 index 0000000000..de31de733f --- /dev/null +++ b/A3A/addons/core/Templates/Templates/Aegis/Aegis_AI_US_Tropical.sqf @@ -0,0 +1,1014 @@ +////////////////////////// +// Side Information // +////////////////////////// + +["name", "US"] call _fnc_saveToTemplate; +["spawnMarkerName", "US Support Corridor"] call _fnc_saveToTemplate; + +["flag", "Flag_NATO_F"] call _fnc_saveToTemplate; +["flagTexture", "\A3_Aegis\data_f_aegis\Flags\flag_USA_51_CO.paa"] call _fnc_saveToTemplate; +["flagMarkerType", "flag_USA"] call _fnc_saveToTemplate; + +////////////////////////// +// Vehicles // +////////////////////////// + +["ammobox", "B_supplyCrate_F"] call _fnc_saveToTemplate; //Don't touch or you die a sad and lonely death! +["surrenderCrate", "Box_IND_Wps_F"] call _fnc_saveToTemplate; //Changeing this from default will require you to define logistics attachement offset for the box type +["equipmentBox", "Box_NATO_Equip_F"] call _fnc_saveToTemplate; //Changeing this from default will require you to define logistics attachement offset for the box type + +["vehiclesBasic", ["B_T_Quadbike_01_F"]] call _fnc_saveToTemplate; +private _LightUnarmed = ["B_T_MRAP_01_F"]; +private _LightArmed = ["B_T_MRAP_01_hmg_F", "B_T_MRAP_01_hmg_F", "B_T_MRAP_01_gmg_F"]; +["vehiclesTrucks", ["B_T_Truck_01_transport_F", "B_T_Truck_01_covered_F"]] call _fnc_saveToTemplate; +["vehiclesCargoTrucks", ["B_T_Truck_01_flatbed_F", "B_T_Truck_01_cargo_F"]] call _fnc_saveToTemplate; +["vehiclesAmmoTrucks", ["B_T_Truck_01_ammo_F"]] call _fnc_saveToTemplate; +["vehiclesRepairTrucks", ["B_T_Truck_01_Repair_F"]] call _fnc_saveToTemplate; +["vehiclesFuelTrucks", ["B_T_Truck_01_fuel_F"]] call _fnc_saveToTemplate; +["vehiclesMedical", ["B_T_Truck_01_medical_F", "B_T_APC_Wheeled_01_medical_F"]] call _fnc_saveToTemplate; +["vehiclesLightAPCs", []] call _fnc_saveToTemplate; +private _APCs = ["B_T_APC_Wheeled_01_cannon_v2_F", "B_T_APC_Tracked_01_rcws_F"]; +["vehiclesIFVs", ["a3a_B_T_APC_Wheeled_01_cannon_v2_F"]] call _fnc_saveToTemplate; +private _Tanks = ["B_T_MBT_01_TUSK_F", "B_T_MBT_01_cannon_F"]; +["vehiclesAA", ["B_T_APC_Tracked_01_AA_F"]] call _fnc_saveToTemplate; + +["vehiclesTransportBoats", ["B_T_Boat_Transport_01_F"]] call _fnc_saveToTemplate; +["vehiclesGunBoats", ["B_T_Boat_Armed_01_minigun_F"]] call _fnc_saveToTemplate; +["vehiclesAmphibious", ["a3a_B_T_APC_Wheeled_01_cannon_F"]] call _fnc_saveToTemplate; + +["vehiclesPlanesCAS", ["B_Plane_CAS_01_dynamicLoadout_F"]] call _fnc_saveToTemplate; +["vehiclesPlanesAA", ["B_Plane_Fighter_01_F", "B_Plane_Fighter_05_F"]] call _fnc_saveToTemplate; +["vehiclesPlanesTransport", ["B_T_Plane_Transport_01_infantry_F"]] call _fnc_saveToTemplate; + +private _vehiclesHelisLight = ["B_Heli_Light_01_F"]; +private _HelisTransport = ["B_Heli_Transport_01_camo_F"]; +private _vehiclesHelisLightAttack = ["B_Heli_Light_01_dynamicLoadout_F"]; +["vehiclesHelisAttack", ["B_Heli_Attack_01_dynamicLoadout_F"]] call _fnc_saveToTemplate; + +["vehiclesArtillery", ["B_T_MBT_01_arty_F", "B_T_MBT_01_mlrs_F"]] call _fnc_saveToTemplate; +["magazines", createHashMapFromArray [ +["B_T_MBT_01_arty_F", ["32Rnd_155mm_Mo_shells"]], +["B_T_MBT_01_mlrs_F", ["12Rnd_230mm_rockets"]] +]] call _fnc_saveToTemplate; + +["uavsAttack", ["B_UAV_02_F", "B_UAV_05_F"]] call _fnc_saveToTemplate; +["uavsPortable", ["B_UAV_01_F"]] call _fnc_saveToTemplate; + +//Config special vehicles +private _vehiclesMilitiaLightArmed = ["a3a_Offroad_01_green_armed_F", "a3a_Offroad_01_green_AT_F"]; +["vehiclesMilitiaTrucks", ["B_T_Truck_01_transport_F"]] call _fnc_saveToTemplate; +private _vehiclesMilitiaCars = ["a3a_Offroad_01_green_F"]; + +private _vehiclesPolice = ["B_GEN_Offroad_01_gen_F"]; + +["staticMGs", ["I_G_HMG_02_high_F"]] call _fnc_saveToTemplate; +["staticAT", ["B_T_Static_AT_F"]] call _fnc_saveToTemplate; +["staticAA", ["B_T_Static_AA_F"]] call _fnc_saveToTemplate; +["staticMortars", ["B_T_Mortar_01_F"]] call _fnc_saveToTemplate; + +["mortarMagazineHE", "8Rnd_82mm_Mo_shells"] call _fnc_saveToTemplate; +["mortarMagazineSmoke", "8Rnd_82mm_Mo_Smoke_white"] call _fnc_saveToTemplate; +["mortarMagazineFlare", "8Rnd_82mm_Mo_Flare_white"] call _fnc_saveToTemplate; + +//Minefield definition +["minefieldAT", ["ATMine"]] call _fnc_saveToTemplate; +["minefieldAPERS", ["APERSMine"]] call _fnc_saveToTemplate; + +//If Western Sahara DLC +if ("ws" in A3A_enabledDLC) then { + _APCs append ["B_T_APC_Wheeled_01_atgm_lxWS_v2", "B_T_APC_Wheeled_01_command_lxWS"]; + ["uavsPortable", ["B_UAV_01_F", "B_UAV_02_lxWS"]] call _fnc_saveToTemplate; +}; +if ("enoch" in A3A_enabledDLC) then { + _vehiclesMilitiaCars append ["a3a_Offroad_01_comms_green_F", "a3a_Offroad_01_covered_green_F"]; + _vehiclesPolice append ["B_GEN_Offroad_01_comms_F","B_GEN_Offroad_01_covered_F"]; +}; +if ("tanks" in A3A_enabledDLC) then { + ["vehiclesLightTanks", ["a3a_T_AFV_Wheeled_01_cannon_F","B_T_AFV_Wheeled_01_up_cannon_F"]] call _fnc_saveToTemplate; +}; +if ("expansion" in A3A_enabledDLC) then { + _LightUnarmed append ["B_T_MRAP_01_F", "B_T_LSV_01_unarmed_F"]; + _LightArmed append ["B_T_LSV_01_AT_F", "B_T_LSV_01_armed_F"]; + _HelisTransport append ["B_CTRG_Heli_Transport_01_tropic_F"]; +}; +if ("heli" in A3A_enabledDLC) then { + _HelisTransport append ["B_Heli_Transport_03_F", "B_Heli_Transport_03_unarmed_green_F"]; +}; +if ("orange" in A3A_enabledDLC) then { + _vehiclesPolice append ["B_GEN_Van_02_vehicle_F","B_GEN_Van_02_transport_F"]; +}; +if ("rf" in A3A_enabledDLC) then { + _vehiclesPolice append ["a3a_police_Pickup_rf", "B_GEN_Pickup_covered_rf", "a3a_police_Pickup_comms_rf"]; + _HelisTransport append ["B_Heli_EC_04_military_RF"]; + _vehiclesHelisLight append ["B_Heli_light_03_unarmed_RF"]; + _vehiclesHelisLightAttack append ["a3a_Heli_light_03_dynamicLoadout_rf","B_Heli_EC_03_RF"]; + _vehiclesMilitiaCars append ["B_T_Pickup_rf"]; + _vehiclesMilitiaLightArmed append ["B_T_Pickup_mmg_rf"]; +}; + +["vehiclesLightUnarmed", _LightUnarmed] call _fnc_saveToTemplate; +["vehiclesLightArmed", _LightArmed] call _fnc_saveToTemplate; +["vehiclesAPCs", _APCs] call _fnc_saveToTemplate; +["vehiclesTanks", _Tanks] call _fnc_saveToTemplate; + +["vehiclesHelisLight", _vehiclesHelisLight] call _fnc_saveToTemplate; +["vehiclesHelisLightAttack", _vehiclesHelisLightAttack] call _fnc_saveToTemplate; +["vehiclesHelisTransport", _HelisTransport] call _fnc_saveToTemplate; + +["vehiclesMilitiaCars", _vehiclesMilitiaCars] call _fnc_saveToTemplate; +["vehiclesMilitiaLightArmed", _vehiclesMilitiaLightArmed] call _fnc_saveToTemplate; + +["vehiclesPolice", _vehiclesPolice] call _fnc_saveToTemplate; + +#include "Aegis_Vehicle_Attributes.sqf" + +///////////////////// +/// Identities /// +///////////////////// + +["voices", ["Male01ENG","Male02ENG","Male03ENG","Male04ENG","Male05ENG","Male06ENG","Male07ENG","Male08ENG","Male09ENG","Male10ENG","Male11ENG","Male12ENG"]] call _fnc_saveToTemplate; +["faces", ["AfricanHead_01","AfricanHead_02","AfricanHead_03","Barklem", +"GreekHead_A3_05","GreekHead_A3_07","Sturrock","WhiteHead_01","WhiteHead_02", +"WhiteHead_03","WhiteHead_04","WhiteHead_05","WhiteHead_06","WhiteHead_07", +"WhiteHead_08","WhiteHead_09","WhiteHead_11","WhiteHead_12","WhiteHead_14", +"WhiteHead_15","WhiteHead_16","WhiteHead_18","WhiteHead_19","WhiteHead_20", +"WhiteHead_21"]] call _fnc_saveToTemplate; +"NATOMen" call _fnc_saveNames; + +////////////////////////// +// Loadouts // +////////////////////////// + +private _loadoutData = call _fnc_createLoadoutData; +_loadoutData set ["slRifles", []]; +_loadoutData set ["rifles", []]; +_loadoutData set ["carbines", []]; +_loadoutData set ["grenadeLaunchers", []]; +_loadoutData set ["shotGuns", []]; +_loadoutData set ["SMGs", []]; +_loadoutData set ["machineGuns", []]; +_loadoutData set ["marksmanRifles", []]; +_loadoutData set ["sniperRifles", []]; +_loadoutData set ["lightATLaunchers", ["launch_NLAW_F"]]; +_loadoutData set ["ATLaunchers", [ +["launch_MRAWS_olive_F", "", "acc_pointer_IR", "", ["MRAWS_HE_F", "MRAWS_HEAT55_F"], [], ""], +["launch_MRAWS_olive_F", "", "acc_pointer_IR", "", ["MRAWS_HEAT_F", "MRAWS_HEAT55_F"], [], ""], +["launch_MRAWS_olive_F", "", "acc_pointer_IR", "", ["MRAWS_HEAT_F", "MRAWS_HE_F"], [], ""], +["launch_MRAWS_olive_rail_F", "", "acc_pointer_IR", "", ["MRAWS_HE_F", "MRAWS_HEAT55_F"], [], ""], +["launch_MRAWS_olive_rail_F", "", "acc_pointer_IR", "", ["MRAWS_HEAT_F", "MRAWS_HEAT55_F"], [], ""], +["launch_MRAWS_olive_rail_F", "", "acc_pointer_IR", "", ["MRAWS_HEAT_F", "MRAWS_HE_F"], [], ""] +]]; +_loadoutData set ["missileATLaunchers", [ +["launch_I_Titan_short_F", "", "acc_pointer_IR", "", ["Titan_AT"], [], ""] +]]; +_loadoutData set ["AALaunchers", [ +["launch_B_Titan_tna_F", "", "acc_pointer_IR", "", ["Titan_AA"], [], ""] +]]; +_loadoutData set ["sidearms", []]; + +_loadoutData set ["ATMines", ["ATMine_Range_Mag"]]; +_loadoutData set ["APMines", ["APERSMine_Range_Mag"]]; +_loadoutData set ["lightExplosives", ["DemoCharge_Remote_Mag"]]; +_loadoutData set ["heavyExplosives", ["SatchelCharge_Remote_Mag"]]; + +_loadoutData set ["antiTankGrenades", []]; +_loadoutData set ["antiInfantryGrenades", ["HandGrenade", "MiniGrenade"]]; +_loadoutData set ["smokeGrenades", ["SmokeShell"]]; +_loadoutData set ["signalsmokeGrenades", ["SmokeShellYellow", "SmokeShellRed", "SmokeShellPurple", "SmokeShellOrange", "SmokeShellGreen", "SmokeShellBlue"]]; + + +//Basic equipment. Shouldn't need touching most of the time. +//Mods might override this, or certain mods might want items removed (No GPSs in WW2, for example) +_loadoutData set ["maps", ["ItemMap"]]; +_loadoutData set ["watches", ["ItemWatch"]]; +_loadoutData set ["compasses", ["ItemCompass"]]; +_loadoutData set ["radios", ["ItemRadio"]]; +_loadoutData set ["gpses", ["ItemGPS"]]; +_loadoutData set ["NVGs", ["NVGoggles_tna_F"]]; +_loadoutData set ["binoculars", ["Binocular"]]; +_loadoutData set ["rangefinders", ["Rangefinder"]]; + +_loadoutData set ["uniforms", []]; +_loadoutData set ["vests", []]; +_loadoutData set ["Hvests", []]; +_loadoutData set ["glVests", []]; +_loadoutData set ["backpacks", []]; +_loadoutData set ["longRangeRadios", []]; +_loadoutData set ["helmets", []]; +_loadoutData set ["slHat", ["H_Beret_02"]]; +_loadoutData set ["sniHats", ["H_Booniehat_tna_F"]]; + +//Item *set* definitions. These are added in their entirety to unit loadouts. No randomisation is applied. +_loadoutData set ["items_medical_basic", ["BASIC"] call A3A_fnc_itemset_medicalSupplies]; +_loadoutData set ["items_medical_standard", ["STANDARD"] call A3A_fnc_itemset_medicalSupplies]; +_loadoutData set ["items_medical_medic", ["MEDIC"] call A3A_fnc_itemset_medicalSupplies]; +_loadoutData set ["items_miscEssentials", [] call A3A_fnc_itemset_miscEssentials]; + +//Unit type specific item sets. Add or remove these, depending on the unit types in use. +private _slItems = ["Laserbatteries", "Laserbatteries", "Laserbatteries"]; +private _eeItems = ["ToolKit", "MineDetector"]; +private _mmItems = []; + +if (A3A_hasACE) then { + _slItems append ["ACE_microDAGR", "ACE_DAGR"]; + _eeItems append ["ACE_Clacker", "ACE_DefusalKit"]; + _mmItems append ["ACE_RangeCard", "ACE_ATragMX", "ACE_Kestrel4500"]; +}; + +_loadoutData set ["items_squadLeader_extras", _slItems]; +_loadoutData set ["items_rifleman_extras", []]; +_loadoutData set ["items_medic_extras", []]; +_loadoutData set ["items_grenadier_extras", []]; +_loadoutData set ["items_explosivesExpert_extras", _eeItems]; +_loadoutData set ["items_engineer_extras", _eeItems]; +_loadoutData set ["items_lat_extras", []]; +_loadoutData set ["items_at_extras", []]; +_loadoutData set ["items_aa_extras", []]; +_loadoutData set ["items_machineGunner_extras", []]; +_loadoutData set ["items_marksman_extras", _mmItems]; +_loadoutData set ["items_sniper_extras", _mmItems]; +_loadoutData set ["items_police_extras", []]; +_loadoutData set ["items_crew_extras", []]; +_loadoutData set ["items_unarmed_extras", []]; + +//TODO - ACE overrides for misc essentials, medical and engineer gear + +/////////////////////////////////////// +// Special Forces Loadout Data // +/////////////////////////////////////// + +private _sfLoadoutData = _loadoutData call _fnc_copyLoadoutData; // touch and shit breaks +_sfLoadoutData set ["uniforms", ["U_B_T_Soldier_F", "U_B_T_Soldier_SL_F", "U_B_T_Soldier_AR_F"]]; +_sfLoadoutData set ["vests", ["V_PlateCarrier1_tna_F", "V_TacVest_grn"]]; +_sfLoadoutData set ["Hvests", ["V_PlateCarrier2_tna_F"]]; +_sfLoadoutData set ["backpacks", ["B_Kitbag_tna_F", "B_Carryall_tna_F", "B_AssaultPack_tna_F", "B_AssaultPack_Enh_tna_F", "B_TacticalPack_tna_F"]]; +_sfLoadoutData set ["helmets", ["H_HelmetB_Light_tna_F", "H_HelmetB_Enh_Light_tna_F", "H_Watchcap_camo_hs", "H_Cap_tna_hs_F"]]; +_sfLoadoutData set ["binoculars", ["Laserdesignator_01_khk_F"]]; + +_sfLoadoutData set ["slRifles", [ +["arifle_MX_khk_F", "muzzle_snds_H", "acc_pointer_IR", "optic_MRCO", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], [], ""], +["arifle_MX_khk_F", "muzzle_snds_H", "acc_pointer_IR", "optic_Hamr_khk_F", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], [], ""], +["arifle_MX_khk_F", "muzzle_snds_H", "acc_pointer_IR", "Aegis_optic_ACOG_khaki", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], [], ""], +["arifle_MX_GL_F", "muzzle_snds_H", "acc_pointer_IR", "optic_MRCO", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_MX_GL_F", "muzzle_snds_H", "acc_pointer_IR", "optic_Hamr_khk_F", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_MX_GL_F", "muzzle_snds_H", "acc_pointer_IR", "Aegis_optic_ACOG_khaki", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_sfLoadoutData set ["rifles", [ +["arifle_MX_khk_F", "muzzle_snds_H_khk_F", "acc_pointer_IR", "optic_Holosight_khk_F", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], [], ""], +["arifle_MX_khk_F", "muzzle_snds_H_khk_F", "acc_pointer_IR", "Aegis_optic_ICO_khaki", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], [], ""] +]]; +_sfLoadoutData set ["carbines", [ +["arifle_MXC_khk_F", "muzzle_snds_H_khk_F", "acc_pointer_IR", "optic_Holosight_khk_F", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], [], ""], +["arifle_MXC_khk_F", "muzzle_snds_H_khk_F", "acc_pointer_IR", "Aegis_optic_ICO_khaki", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], [], ""] +]]; +_sfLoadoutData set ["grenadeLaunchers", [ +["arifle_MX_GL_khk_F", "muzzle_snds_H_khk_F", "acc_pointer_IR", "optic_Holosight_khk_F", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_MX_GL_khk_F", "muzzle_snds_H_khk_F", "acc_pointer_IR", "Aegis_optic_ICO_khaki", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_sfLoadoutData set ["SMGs", [ +["SMG_01_khk_F", "muzzle_mzls_smg_01", "", "optic_Holosight_smg_khk_F", [], [], ""], +["SMG_01_khk_F", "muzzle_mzls_smg_01", "", "optic_ACO_grn_smg", [], [], ""], +["SMG_01_khk_F", "muzzle_mzls_smg_01", "", "Aegis_optic_ICO_khaki", [], [], ""] +]]; +_sfLoadoutData set ["machineGuns", [ +["arifle_MX_SW_khk_F", "muzzle_snds_H_khk_F", "acc_pointer_IR", "optic_Holosight_khk_F", ["100Rnd_65x39_caseless_khaki_mag", "100Rnd_65x39_caseless_khaki_mag", "100Rnd_65x39_caseless_khaki_mag_tracer"], [], "bipod_01_F_khk"], +["arifle_MX_SW_khk_F", "muzzle_snds_H_khk_F", "acc_pointer_IR", "Aegis_optic_ICO_khaki", ["100Rnd_65x39_caseless_khaki_mag", "100Rnd_65x39_caseless_khaki_mag", "100Rnd_65x39_caseless_khaki_mag_tracer"], [], "bipod_01_F_khk"], +["arifle_MX_SW_khk_F", "muzzle_snds_H_khk_F", "acc_pointer_IR", "optic_Hamr_khk_F", ["100Rnd_65x39_caseless_khaki_mag", "100Rnd_65x39_caseless_khaki_mag", "100Rnd_65x39_caseless_khaki_mag_tracer"], [], "bipod_01_F_khk"], +["arifle_MX_SW_khk_F", "muzzle_snds_H_khk_F", "acc_pointer_IR", "optic_MRCO", ["100Rnd_65x39_caseless_khaki_mag", "100Rnd_65x39_caseless_khaki_mag", "100Rnd_65x39_caseless_khaki_mag_tracer"], [], "bipod_01_F_khk"], +["arifle_MX_SW_khk_F", "muzzle_snds_H_khk_F", "acc_pointer_IR", "Aegis_optic_ACOG_khaki", ["100Rnd_65x39_caseless_khaki_mag", "100Rnd_65x39_caseless_khaki_mag", "100Rnd_65x39_caseless_khaki_mag_tracer"], [], "bipod_01_F_khk"] +]]; +_sfLoadoutData set ["marksmanRifles", [ +["arifle_MXM_khk_F", "muzzle_snds_H_khk_F", "acc_pointer_IR", "optic_SOS_khk_F", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], [], "bipod_01_F_khk"], +["arifle_MXM_khk_F", "muzzle_snds_H_khk_F", "acc_pointer_IR", "optic_Hamr_khk_F", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], [], "bipod_01_F_khk"], +["arifle_MXM_khk_F", "muzzle_snds_H_khk_F", "acc_pointer_IR", "optic_DMS", ["30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer"], [], "bipod_01_F_khk"], +["Aegis_arifle_SR25_MR_khk_F", "aegis_muzzle_snds_sr25_khk", "acc_pointer_IR", "optic_SOS_khk_F", [], [], "bipod_01_F_snd"], +["Aegis_arifle_SR25_MR_khk_F", "aegis_muzzle_snds_sr25_khk", "acc_pointer_IR", "optic_Hamr_khk_F", [], [], "bipod_01_F_snd"], +["Aegis_arifle_SR25_MR_khk_F", "aegis_muzzle_snds_sr25_khk", "acc_pointer_IR", "optic_DMS", [], [], "bipod_01_F_snd"] +]]; +_sfLoadoutData set ["sniperRifles", [ +["srifle_LRR_tna_F", "", "", "optic_SOS_khk_F", [], [], ""], +["srifle_LRR_tna_F", "", "", "optic_LRPS_tna_F", [], [], ""] +]]; +_sfLoadoutData set ["sidearms", [ +["hgun_P07_khk_F", "muzzle_snds_L", "Aegis_acc_pointer_compact_pistol_green", "", [], [], ""] +]]; + +///////////////////////////////// +// Military Loadout Data // +///////////////////////////////// + +private _militaryLoadoutData = _loadoutData call _fnc_copyLoadoutData; // touch and shit breaks +_militaryLoadoutData set ["uniforms", ["U_B_T_Soldier_F", "U_B_T_Soldier_SL_F", "U_B_T_Soldier_AR_F"]]; +_militaryLoadoutData set ["vests", ["V_PlateCarrier1_tna_F", "V_PlateCarrier2_tna_F"]]; +_militaryLoadoutData set ["Hvests", ["V_PlateCarrierSpec_tna_F"]]; +_militaryLoadoutData set ["glVests", ["V_PlateCarrierGL_tna_F"]]; +_militaryLoadoutData set ["backpacks", ["B_Kitbag_tna_F", "B_Carryall_tna_F", "B_AssaultPack_tna_F", "B_AssaultPack_Enh_tna_F", "B_TacticalPack_tna_F"]]; +_militaryLoadoutData set ["helmets", ["H_HelmetB_Camo_tna_F", "H_HelmetB_tna_F", "H_HelmetB_Enh_tna_F"]]; +_militaryLoadoutData set ["binoculars", ["Laserdesignator_01_khk_F"]]; + +_militaryLoadoutData set ["slRifles", [ +["arifle_SCAR_L_khaki_F", "", "acc_pointer_IR", "optic_MRCO", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["arifle_SCAR_L_khaki_F", "", "acc_pointer_IR", "optic_Hamr_khk_F", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["arifle_SCAR_L_khaki_F", "", "acc_pointer_IR", "Aegis_optic_ACOG", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["arifle_SCAR_L_GL_khaki_F", "", "acc_pointer_IR", "optic_MRCO", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_SCAR_L_GL_khaki_F", "", "acc_pointer_IR", "optic_Hamr_khk_F", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_SCAR_L_GL_khaki_F", "", "acc_pointer_IR", "Aegis_optic_ACOG", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_SCAR_khaki_F", "", "acc_pointer_IR", "optic_MRCO", [], [], ""], +["arifle_SCAR_khaki_F", "", "acc_pointer_IR", "optic_Hamr_khk_F", [], [], ""], +["arifle_SCAR_khaki_F", "", "acc_pointer_IR", "Aegis_optic_ACOG", [], [], ""] +]]; +_militaryLoadoutData set ["rifles", [ +["arifle_SCAR_L_grip_khaki_F", "", "acc_pointer_IR", "optic_Holosight_khk_F", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["arifle_SCAR_L_grip_khaki_F", "", "acc_pointer_IR", "optic_ACO_grn", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["arifle_SCAR_L_grip_khaki_F", "", "acc_pointer_IR", "Aegis_optic_ICO_khaki", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""] +]]; +_militaryLoadoutData set ["carbines", [ +["arifle_SCAR_L_short_khaki_F", "", "acc_pointer_IR", "optic_Holosight_khk_F", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["arifle_SCAR_L_short_khaki_F", "", "acc_pointer_IR", "optic_ACO_grn", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["arifle_SCAR_L_short_khaki_F", "", "acc_pointer_IR", "Aegis_optic_ICO_khaki", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""] +]]; +_militaryLoadoutData set ["grenadeLaunchers", [ +["arifle_SCAR_L_GL_khaki_F", "", "acc_pointer_IR", "optic_Holosight_khk_F", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_SCAR_L_GL_khaki_F", "", "acc_pointer_IR", "optic_ACO_grn", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""], +["arifle_SCAR_L_GL_khaki_F", "", "acc_pointer_IR", "Aegis_optic_ICO_khaki", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_militaryLoadoutData set ["shotGuns", [ +["sgun_KSG_F", "", "", "optic_Holosight_smg_blk_F", ["8Rnd_12Gauge_Pellets", "8Rnd_12Gauge_Slug"], [], ""], +["sgun_KSG_F", "", "", "optic_ACO_grn_smg", ["8Rnd_12Gauge_Pellets", "8Rnd_12Gauge_Slug"], [], ""], +["sgun_KSG_F", "", "", "Aegis_optic_ICO", ["8Rnd_12Gauge_Pellets", "8Rnd_12Gauge_Slug"], [], ""] +]]; +_militaryLoadoutData set ["SMGs", [ +["SMG_01_black_F", "", "", "optic_Holosight_smg_blk_F", [], [], ""], +["SMG_01_black_F", "", "", "optic_ACO_grn_smg", [], [], ""], +["SMG_01_black_F", "", "", "Aegis_optic_ICO", [], [], ""] +]]; +_militaryLoadoutData set ["machineGuns", [ +["LMG_03_khk_F", "", "acc_pointer_IR", "optic_Holosight_khk_F", ["200Rnd_556x45_Box_F", "200Rnd_556x45_Box_F", "200Rnd_556x45_Box_Tracer_F"], [], ""], +["LMG_03_khk_F", "", "acc_pointer_IR", "optic_ACO_grn", ["200Rnd_556x45_Box_F", "200Rnd_556x45_Box_F", "200Rnd_556x45_Box_Tracer_F"], [], ""], +["LMG_03_khk_F", "", "acc_pointer_IR", "Aegis_optic_ICO_khaki", ["200Rnd_556x45_Box_F", "200Rnd_556x45_Box_F", "200Rnd_556x45_Box_Tracer_F"], [], ""] +]]; +_militaryLoadoutData set ["marksmanRifles", [ +["srifle_EBR_khk_F", "", "acc_pointer_IR", "optic_SOS_khk_F", [], [], "bipod_01_F_khk"], +["srifle_EBR_khk_F", "", "acc_pointer_IR", "optic_Hamr_khk_F", [], [], "bipod_01_F_khk"], +["srifle_EBR_khk_F", "", "acc_pointer_IR", "optic_DMS", [], [], "bipod_01_F_khk"], +["Aegis_arifle_SR25_khk_F", "", "acc_pointer_IR", "optic_SOS_khk_F", [], [], "bipod_01_F_khk"], +["Aegis_arifle_SR25_khk_F", "", "acc_pointer_IR", "optic_Hamr_khk_F", [], [], "bipod_01_F_khk"], +["Aegis_arifle_SR25_khk_F", "", "acc_pointer_IR", "optic_DMS", [], [], "bipod_01_F_khk"] +]]; +_militaryLoadoutData set ["sniperRifles", [ +["srifle_LRR_tna_F", "", "", "optic_SOS_khk_F", [], [], ""], +["srifle_LRR_tna_F", "", "", "optic_LRPS_tna_F", [], [], ""] +]]; +_militaryLoadoutData set ["sidearms", [ +["hgun_P07_khk_F", "", "Aegis_acc_pointer_compact_pistol_green", "", [], [], ""] +]]; + +/////////////////////////////// +// Police Loadout Data // +/////////////////////////////// + +private _policeLoadoutData = _loadoutData call _fnc_copyLoadoutData; // touch and shit breaks +_policeLoadoutData set ["uniforms", ["U_B_GEN_Soldier_F", "U_B_GEN_Commander_F"]]; +_policeLoadoutData set ["vests", ["V_TacVest_blk_POLICE"]]; +_policeLoadoutData set ["helmets", ["H_Cap_police"]]; + +_policeLoadoutData set ["carbines", [ +["Aegis_arifle_M4A1_short_F", "", "acc_flashlight", "", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["Aegis_arifle_M4A1_F", "", "acc_flashlight", "", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""] +]]; +_policeLoadoutData set ["shotGuns", [ +["sgun_KSG_F", "", "", "", ["8Rnd_12Gauge_Pellets", "8Rnd_12Gauge_Slug"], [], ""] +]]; +_policeLoadoutData set ["SMGs", [ +["SMG_01_black_F", "", "acc_flashlight_smg_01", "", [], [], ""] +]]; +_policeLoadoutData set ["sidearms", ["hgun_ACPC2_black_F"]]; + +//////////////////////////////// +// Militia Loadout Data // +//////////////////////////////// + +private _militiaLoadoutData = _loadoutData call _fnc_copyLoadoutData; +_militiaLoadoutData set ["uniforms", ["U_B_T_Soldier_F", "U_B_T_Soldier_AR_F", "U_B_T_Soldier_SL_F"]];; +_militiaLoadoutData set ["vests", ["V_BandollierB_oli", "V_Chestrig_oli"]]; +_militiaLoadoutData set ["Hvests", ["V_TacVest_oli"]]; +_militiaLoadoutData set ["backpacks", ["B_AssaultPack_Enh_tna_F", "B_Kitbag_tna_F", "B_Carryall_tna_F"]]; +_militiaLoadoutData set ["helmets", ["H_MilCap_tna_F", "H_HelmetB_Light_tna_F", "H_Bandanna_tna_hs_F"]]; + +_militiaLoadoutData set ["rifles", [ +["Aegis_arifle_M4A1_grip_F", "", "acc_flashlight", "", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""], +["Aegis_arifle_M4A1_F", "", "acc_flashlight", "", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""] +]]; +_militiaLoadoutData set ["carbines", [ +["Aegis_arifle_M4A1_short_F", "", "acc_flashlight", "", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], [], ""] +]]; +_militiaLoadoutData set ["grenadeLaunchers", [ +["Aegis_arifle_M4A1_GL_F", "", "acc_flashlight", "", ["30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag_Tracer_Yellow"], ["1Rnd_HE_Grenade_shell", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell"], ""] +]]; +_militiaLoadoutData set ["SMGs", [ +["SMG_01_black_F", "", "acc_flashlight_smg_01", "", [], [], ""] +]]; +_militiaLoadoutData set ["machineGuns", [ +["LMG_03_F", "", "acc_flashlight", "", ["200Rnd_556x45_Box_F", "200Rnd_556x45_Box_F", "200Rnd_556x45_Box_Tracer_F"], [], ""] +]]; +_militiaLoadoutData set ["marksmanRifles", [ +["srifle_EBR_blk_F", "", "acc_flashlight", "optic_Hamr", [], [], "bipod_01_F_snd"] +]]; +_militiaLoadoutData set ["sniperRifles", [ +["srifle_LRR_F", "", "", "optic_SOS", [], [], ""], +["srifle_LRR_F", "", "", "optic_LRPS", [], [], ""] +]]; +_militiaLoadoutData set ["sidearms", ["hgun_ACPC2_black_F"]]; + +////////////////////////// +// Misc Loadouts // +////////////////////////// + +private _crewLoadoutData = _militaryLoadoutData call _fnc_copyLoadoutData; +_crewLoadoutData set ["uniforms", ["U_B_T_Soldier_SL_F"]]; +_crewLoadoutData set ["vests", ["V_PlateCarrier1_wdl"]]; +_crewLoadoutData set ["helmets", ["H_HelmetCrew_B"]]; + +private _pilotLoadoutData = _militaryLoadoutData call _fnc_copyLoadoutData; +_pilotLoadoutData set ["uniforms", ["U_B_HeliPilotCoveralls"]]; +_pilotLoadoutData set ["vests", ["V_TacVest_blk"]]; +_pilotLoadoutData set ["helmets", ["H_CrewHelmetHeli_B", "H_PilotHelmetHeli_B", "H_PilotHelmetHeli_B_visor_up"]]; + +private _traitorLoadoutData = _militaryLoadoutData call _fnc_copyLoadoutData; +_traitorLoadoutData set ["uniforms", ["U_B_T_Soldier_AR_F"]]; +_traitorLoadoutData set ["vests", ["V_TacVest_camo"]]; + +private _officerLoadoutData = _loadoutData call _fnc_copyLoadoutData; +_officerLoadoutData set ["uniforms", ["U_B_ParadeUniform_01_US_F", "U_B_ParadeUniform_01_US_decorated_F"]]; +_officerLoadoutData set ["vests", ["V_Rangemaster_belt_tna_F"]]; +_officerLoadoutData set ["helmets", ["H_ParadeDressCap_01_US_F"]]; +_officerLoadoutData set ["backpacks", []]; +_officerLoadoutData set ["SMGs", [ +["arifle_SCAR_L_short_khaki_F", "", "acc_pointer_IR", "optic_Holosight_khk_F", [], [], ""], +["arifle_SCAR_L_short_khaki_F", "", "acc_pointer_IR", "optic_ACO_grn", [], [], ""], +["arifle_SCAR_L_short_khaki_F", "", "acc_pointer_IR", "Aegis_optic_ICO_khaki", [], [], ""] +]]; + +if ("mark" in A3A_enabledDLC) then { + (_sfLoadoutData get "machineGuns") append [ + ["MMG_02_black_F", "muzzle_snds_338_green", "acc_pointer_IR", "optic_Hamr_khk_F", [], [], "bipod_01_F_khk"], + ["MMG_02_black_F", "muzzle_snds_338_green", "acc_pointer_IR", "optic_Holosight_khk_F", [], [], "bipod_01_F_khk"]]; + (_sfLoadoutData get "marksmanRifles") append [ + ["srifle_DMR_03_khaki_F", "muzzle_snds_B_khk_F", "acc_pointer_IR", "optic_AMS_khk", ["20Rnd_762x51_Mag"], [], "bipod_01_F_khk"], + ["srifle_DMR_03_khaki_F", "muzzle_snds_B_khk_F", "acc_pointer_IR", "optic_DMS", ["20Rnd_762x51_Mag"], [], "bipod_01_F_khk"], + ["Aegis_arifle_SR25_MR_khk_F", "aegis_muzzle_snds_sr25_khk", "acc_pointer_IR", "optic_AMS_khk", [], [], "bipod_01_F_snd"]]; + + (_sfLoadoutData get "sniperRifles") append [ + ["srifle_DMR_02_camo_F", "muzzle_snds_338_green", "acc_pointer_IR", "optic_LRPS", [], [], "bipod_01_F_khk"], + ["srifle_DMR_02_camo_F", "muzzle_snds_338_green", "acc_pointer_IR", "optic_LRPS", [], [], "bipod_01_F_khk"]]; + + (_militaryLoadoutData get "machineGuns") append [ + ["MMG_02_black_F", "", "acc_pointer_IR", "optic_Hamr_khk_F", [], [], "bipod_01_F_khk"], + ["MMG_02_black_F", "", "acc_pointer_IR", "optic_Holosight_khk_F", [], [], "bipod_01_F_khk"] + ]; + (_militaryLoadoutData get "marksmanRifles") append [ + ["srifle_DMR_03_khaki_F", "", "acc_pointer_IR", "optic_AMS_khk", ["20Rnd_762x51_Mag"], [], "bipod_01_F_khk"], + ["srifle_DMR_03_khaki_F", "", "acc_pointer_IR", "optic_DMS", ["20Rnd_762x51_Mag"], [], "bipod_01_F_khk"], + ["srifle_DMR_03_khaki_F", "", "acc_pointer_IR", "optic_SOS_khk_F", ["20Rnd_762x51_Mag"], [], "bipod_01_F_khk"], + ["Aegis_arifle_SR25_khk_F", "", "acc_pointer_IR", "optic_AMS_khk", [], [], "bipod_01_F_blk"]]; + (_militaryLoadoutData get "sniperRifles") append [ + ["srifle_DMR_02_camo_F", "", "acc_pointer_IR", "optic_LRPS", [], [], "bipod_01_F_khk"], + ["srifle_DMR_02_camo_F", "", "acc_pointer_IR", "optic_LRPS", [], [], "bipod_01_F_khk"]]; +}; +if ("rf" in A3A_enabledDLC) then { + (_sfLoadoutData get "sidearms") append [ + ["hgun_Glock19_khk_RF", "muzzle_snds_L", "acc_flashlight_IR_pistol_RF", "optic_MRD_khk_RF", [], [], ""], + ["hgun_Glock19_khk_RF", "muzzle_snds_L", "acc_flashlight_IR_pistol_RF", "optic_MRD_khk_RF", [], [], ""], + ["hgun_Glock19_auto_khk_RF", "muzzle_snds_L", "acc_flashlight_IR_pistol_RF", "optic_MRD_khk_RF", [], [], ""], + ["hgun_Glock19_auto_khk_RF", "muzzle_snds_L", "acc_flashlight_IR_pistol_RF", "optic_MRD_khk_RF", [], [], ""], + ["hgun_Glock19_auto_khk_RF", "muzzle_snds_L", "acc_flashlight_IR_pistol_RF", "optic_MRD_khk_RF", [], [], ""] + ]; + (_militaryLoadoutData get "sidearms") append [ + ["hgun_Glock19_khk_RF", "", "acc_flashlight_pistol", "", [], [], ""], + ["hgun_Glock19_khk_RF", "", "acc_flashlight_pistol", "", [], [], ""], + ["hgun_Glock19_khk_RF", "", "acc_flashlight_pistol", "", [], [], ""], + ["hgun_Glock19_khk_RF", "", "acc_flashlight_pistol", "optic_MRD_khk_RF", [], [], ""], + ["hgun_Glock19_auto_khk_RF", "", "acc_flashlight_pistol", "", [], [], ""] + ]; + (_policeLoadoutData get "sidearms") append ["hgun_Glock19_RF"]; + (_pilotLoadoutData get "uniforms") append ["U_B_HeliPilotCoveralls_MTP_RF"]; + (_sfLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "muzzle_snds_acp", "", "optic_Holosight", [], [], ""] + ]; + (_militaryLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "", "", "optic_Holosight", [], [], ""], + ["SMG_01_black_RF", "", "", "optic_Aco_smg", [], [], ""] + ]; + (_militiaLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "", "acc_flashlight_smg_01", "", [], [], ""] + ]; + (_policeLoadoutData get "SMGs") append [ + ["SMG_01_black_RF", "", "acc_flashlight_smg_01", "optic_Holosight", [], [], ""], + ["SMG_01_black_RF", "", "acc_flashlight_smg_01", "optic_Aco_smg", [], [], ""] + ]; + (_sfLoadoutData get "helmets") append [ + "H_HelmetB_plain_sb_tna_RF", + "H_HelmetHeavy_Olive_RF", + "H_HelmetHeavy_Simple_Olive_RF", + "H_HelmetHeavy_VisorUp_Olive_RF"]; + (_militaryLoadoutData get "helmets") append ["H_HelmetB_plain_sb_tna_RF"]; +}; + + +///////////////////////////////// +// Unit Type Definitions // +///////////////////////////////// + + +private _squadLeaderTemplate = { + ["slHat"] call _fnc_setHelmet; + [["Hvests", "vests"] call _fnc_fallback] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [["slRifles", "rifles"] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + ["primary", 4] call _fnc_addAdditionalMuzzleMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_squadLeader_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 2] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + ["signalsmokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["gpses"] call _fnc_addGPS; + ["binoculars"] call _fnc_addBinoculars; + ["NVGs"] call _fnc_addNVGs; +}; + +private _riflemanTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_rifleman_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 2] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _medicTemplate = { + ["helmets"] call _fnc_setHelmet; + [["Hvests", "vests"] call _fnc_fallback] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["carbines", "SMGs"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_medic"] call _fnc_addItemSet; + ["items_medic_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _grenadierTemplate = { + ["helmets"] call _fnc_setHelmet; + [["glVests", "vests"] call _fnc_fallback] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + ["grenadeLaunchers"] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + ["primary", 10] call _fnc_addAdditionalMuzzleMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_grenadier_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 4] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _explosivesExpertTemplate = { + ["helmets"] call _fnc_setHelmet; + [["glVests", "vests"] call _fnc_fallback] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [[selectRandom ["carbines", "shotGuns", "rifles"], selectRandom ["carbines", "rifles"]] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_explosivesExpert_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + + ["lightExplosives", 2] call _fnc_addItem; + if (random 1 > 0.5) then {["heavyExplosives", 1] call _fnc_addItem;}; + if (random 1 > 0.5) then {["atMines", 1] call _fnc_addItem;}; + if (random 1 > 0.5) then {["apMines", 1] call _fnc_addItem;}; + + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _engineerTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [[selectRandom ["carbines", "shotGuns", "SMGs"], selectRandom ["carbines", "SMGs"]] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_engineer_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + + if (random 1 > 0.5) then {["lightExplosives", 1] call _fnc_addItem;}; + + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _latTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + [["lightATLaunchers", "ATLaunchers"] call _fnc_fallback] call _fnc_setLauncher; + //TODO - Add a check if it's disposable. + ["launcher", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_lat_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _atTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + [selectRandom ["ATLaunchers", "missileATLaunchers"]] call _fnc_setLauncher; + //TODO - Add a check if it's disposable. + ["launcher", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_at_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _aaTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + [selectRandom ["rifles", "carbines"]] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["AALaunchers"] call _fnc_setLauncher; + //TODO - Add a check if it's disposable. + ["launcher", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_aa_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _machineGunnerTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + ["backpacks"] call _fnc_setBackpack; + + ["machineGuns"] call _fnc_setPrimary; + ["primary", 4] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_machineGunner_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["NVGs"] call _fnc_addNVGs; +}; + +private _marksmanTemplate = { + ["sniHats"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + ["marksmanRifles"] call _fnc_setPrimary; + ["primary", 6] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_marksman_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["rangefinders"] call _fnc_addBinoculars; + ["NVGs"] call _fnc_addNVGs; +}; + +private _sniperTemplate = { + ["sniHats"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + ["sniperRifles"] call _fnc_setPrimary; + ["primary", 7] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_sniper_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["antiInfantryGrenades", 1] call _fnc_addItem; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["rangefinders"] call _fnc_addBinoculars; + ["NVGs"] call _fnc_addNVGs; +}; + +private _policeTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + [[selectRandom ["carbines", "shotGuns", "SMGs"], "SMGs"] call _fnc_fallback] call _fnc_setPrimary; + ["primary", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_police_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["smokeGrenades", 1] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; +}; + +private _crewTemplate = { + ["helmets"] call _fnc_setHelmet; + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + [selectRandom ["carbines", "SMGs"]] call _fnc_setPrimary; + ["primary", 3] call _fnc_addMagazines; + + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; + + ["items_medical_basic"] call _fnc_addItemSet; + ["items_crew_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + ["smokeGrenades", 2] call _fnc_addItem; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; + ["gpses"] call _fnc_addGPS; + ["NVGs"] call _fnc_addNVGs; +}; + +private _unarmedTemplate = { + ["vests"] call _fnc_setVest; + ["uniforms"] call _fnc_setUniform; + + ["items_medical_basic"] call _fnc_addItemSet; + ["items_unarmed_extras"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["radios"] call _fnc_addRadio; +}; + +private _traitorTemplate = { + call _unarmedTemplate; + ["sidearms"] call _fnc_setHandgun; + ["handgun", 2] call _fnc_addMagazines; +}; + +//////////////////////////////////////////////////////////////////////////////////////// +// You shouldn't touch below this line unless you really really know what you're doing. +// Things below here can and will break the gamemode if improperly changed. +//////////////////////////////////////////////////////////////////////////////////////// + +///////////////////////////// +// Special Forces Units // +///////////////////////////// +private _prefix = "SF"; +private _unitTypes = [ + ["SquadLeader", _squadLeaderTemplate], + ["Rifleman", _riflemanTemplate], + ["Medic", _medicTemplate, [["medic", true]]], + ["Engineer", _engineerTemplate, [["engineer", true]]], + ["ExplosivesExpert", _explosivesExpertTemplate, [["explosiveSpecialist", true]]], + ["Grenadier", _grenadierTemplate], + ["LAT", _latTemplate], + ["AT", _atTemplate], + ["AA", _aaTemplate], + ["MachineGunner", _machineGunnerTemplate], + ["Marksman", _marksmanTemplate], + ["Sniper", _sniperTemplate] +]; + +[_prefix, _unitTypes, _sfLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +/*{ + params ["_name", "_loadoutTemplate"]; + private _loadouts = [_sfLoadoutData, _loadoutTemplate] call _fnc_buildLoadouts; + private _finalName = _prefix + _name; + [_finalName, _loadouts] call _fnc_saveToTemplate; +} forEach _unitTypes; +*/ + +/////////////////////// +// Military Units // +/////////////////////// +private _prefix = "military"; +private _unitTypes = [ + ["SquadLeader", _squadLeaderTemplate], + ["Rifleman", _riflemanTemplate], + ["Medic", _medicTemplate, [["medic", true]]], + ["Engineer", _engineerTemplate, [["engineer", true]]], + ["ExplosivesExpert", _explosivesExpertTemplate, [["explosiveSpecialist", true]]], + ["Grenadier", _grenadierTemplate], + ["LAT", _latTemplate], + ["AT", _atTemplate], + ["AA", _aaTemplate], + ["MachineGunner", _machineGunnerTemplate], + ["Marksman", _marksmanTemplate], + ["Sniper", _sniperTemplate] +]; + +[_prefix, _unitTypes, _militaryLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +//////////////////////// +// Police Units // +//////////////////////// +private _prefix = "police"; +private _unitTypes = [ + ["SquadLeader", _policeTemplate], + ["Standard", _policeTemplate] +]; + +[_prefix, _unitTypes, _policeLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +//////////////////////// +// Militia Units // +//////////////////////// +private _prefix = "militia"; +private _unitTypes = [ + ["SquadLeader", _squadLeaderTemplate], + ["Rifleman", _riflemanTemplate], + ["Medic", _medicTemplate, [["medic", true]]], + ["Engineer", _engineerTemplate, [["engineer", true]]], + ["ExplosivesExpert", _explosivesExpertTemplate, [["explosiveSpecialist", true]]], + ["Grenadier", _grenadierTemplate], + ["LAT", _latTemplate], + ["AT", _atTemplate], + ["AA", _aaTemplate], + ["MachineGunner", _machineGunnerTemplate], + ["Marksman", _marksmanTemplate], + ["Sniper", _sniperTemplate] +]; + +[_prefix, _unitTypes, _militiaLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; + +////////////////////// +// Misc Units // +////////////////////// + +//The following lines are determining the loadout of vehicle crew +["other", [["Crew", _crewTemplate]], _crewLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout of the pilots +["other", [["Pilot", _crewTemplate]], _pilotLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout for the unit used in the "kill the official" mission +["other", [["Official", _policeTemplate]], _officerLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout for the AI used in the "kill the traitor" mission +["other", [["Traitor", _traitorTemplate]], _traitorLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; +//The following lines are determining the loadout for the AI used in the "Invader Punishment" mission +["other", [["Unarmed", _UnarmedTemplate]], _militaryLoadoutData] call _fnc_generateAndSaveUnitsToTemplate; diff --git a/A3A/addons/core/Templates/Templates/Aegis/Aegis_Civ.sqf b/A3A/addons/core/Templates/Templates/Aegis/Aegis_Civ.sqf new file mode 100644 index 0000000000..15c11aa133 --- /dev/null +++ b/A3A/addons/core/Templates/Templates/Aegis/Aegis_Civ.sqf @@ -0,0 +1,272 @@ +////////////////////////////// +// Civilian Information // +////////////////////////////// + +////////////////////////// +// Vehicles // +////////////////////////// + +private _vehiclesCivCar = [ + "C_Quadbike_01_F", 0.3 + ,"C_Hatchback_01_F", 2.0 + ,"C_Hatchback_01_sport_F", 0.3 + ,"C_Offroad_01_F", 2.0 + ,"C_SUV_01_F", 1.0 + ,"C_Van_02_vehicle_F", 1.0 // van from Orange + ,"C_Van_02_transport_F", 0.2 // minibus + ,"C_Offroad_02_unarmed_F", 0.5 // Apex 4WD + ,"C_Offroad_01_comms_F", 0.1 // Contact + ,"C_Offroad_01_covered_F", 0.1]; + +private _vehiclesCivIndustrial = [ + "C_Van_01_transport_F", 1.0 + ,"C_Van_01_box_F", 0.8 + ,"C_Truck_02_transport_F", 0.5 + ,"C_Truck_02_covered_F", 0.5 + ,"C_Tractor_01_F", 0.3]; + +["vehiclesCivHeli", []] call _fnc_saveToTemplate; + +private _vehiclesCivBoat = [ + "C_Boat_Civil_01_rescue_F", 0.1 // motorboats + ,"C_Boat_Civil_01_police_F", 0.1 + ,"C_Boat_Civil_01_F", 1.0 + ,"C_Rubberboat", 1.0 // rescue boat + ,"C_Boat_Transport_02_F", 1.0 // RHIB + ,"C_Scooter_Transport_01_F", 0.5 + ,"C_Boat_Civil_02_F", 1.0]; // Aegis boat + +private _vehiclesCivRepair = [ + "C_Offroad_01_repair_F", 0.3 + ,"C_Van_02_service_F", 0.3 // orange + ,"C_Truck_02_box_F", 0.1]; + +private _vehiclesCivMedical = ["C_Van_02_medevac_F", 0.1]; + +private _vehiclesCivFuel = [ + "C_Van_01_fuel_F", 0.2 + ,"C_Truck_02_fuel_F", 0.1]; + +if ("rf" in A3A_enabledDLC) then { + _vehiclesCivCar append ["C_Pickup_rf", 2.0, "C_Pickup_covered_rf", 0.1]; + _vehiclesCivRepair append ["C_Pickup_repair_rf", 0.3]; + _vehiclesCivFuel append ["a3a_civ_Pickup_fuel_rf", 0.1]; +}; + +["vehiclesCivCar", _vehiclesCivCar] call _fnc_saveToTemplate; +["vehiclesCivIndustrial", _vehiclesCivIndustrial] call _fnc_saveToTemplate; +["vehiclesCivBoat", _vehiclesCivBoat] call _fnc_saveToTemplate; +["vehiclesCivRepair", _vehiclesCivRepair] call _fnc_saveToTemplate; +["vehiclesCivMedical", _vehiclesCivMedical] call _fnc_saveToTemplate; +["vehiclesCivFuel", _vehiclesCivFuel] call _fnc_saveToTemplate; + +///////////////////// +/// Identities /// +///////////////////// + +["faces", ["GreekHead_A3_02", "GreekHead_A3_03", "GreekHead_A3_04", "GreekHead_A3_05", "GreekHead_A3_06", +"GreekHead_A3_07", "GreekHead_A3_08", "GreekHead_A3_09", "Ioannou", "Barklem", "AfricanHead_02", +"AsianHead_A3_02", "AsianHead_A3_03", "WhiteHead_05"]] call _fnc_saveToTemplate; +"CivMen" call _fnc_saveNames; + +////////////////////////// +// Loadouts // +////////////////////////// + +private _civUniforms = [ + "U_C_Man_casual_1_F", + "U_C_Man_casual_2_F", + "U_C_Man_casual_3_F", + "U_C_Man_casual_4_F", + "U_C_Man_casual_5_F", + "U_C_Man_casual_6_F", + "U_C_ArtTShirt_01_v1_F", + "U_C_ArtTShirt_01_v2_F", + "U_C_ArtTShirt_01_v3_F", + "U_C_ArtTShirt_01_v4_F", + "U_C_ArtTShirt_01_v5_F", + "U_C_ArtTShirt_01_v6_F", + "U_NikosBody", + "U_NikosAgedBody", + "U_C_Poloshirt_blue", + "U_C_Poloshirt_burgundy", + "U_C_Poloshirt_stripped", + "U_C_Poloshirt_tricolour", + "U_C_Poloshirt_salmon", + "U_C_Poloshirt_redwhite", + "U_OrestesBody", + "U_C_Poor_1", + "U_C_HunterBody_grn", + "U_I_L_Uniform_01_tshirt_skull_F", + "U_I_L_Uniform_01_tshirt_black_F", + "U_I_L_Uniform_01_tshirt_sport_F", + "U_C_Scientist", + "U_C_Uniform_Scientist_02_formal_F", + "U_C_Uniform_Scientist_02_F", + "U_C_Uniform_Scientist_01_F", + "U_C_Poor_2", // This and below be Aegis + "U_Jayholder", + "U_C_Man_casual_7_F", + "U_C_Man_casual_8_F", + "U_C_Man_casual_9_F", + "U_C_PriestBody", + "U_C_Commoner1_1", + "U_C_Commoner1_2", + "U_C_Commoner1_3", + "U_C_Uniform_Formal_01_blue_F", + "U_C_Uniform_Formal_01_striped_F", + "U_C_Uniform_Formal_01_white_F" +]; + +private _pressUniforms = [ + "U_C_Journalist", + "U_Marshal", + "U_C_Uniform_Formal_01_blue_F", + "U_C_Uniform_Formal_01_striped_F", + "U_C_Uniform_Formal_01_white_F" + ]; + +private _workerUniforms = [ + "U_C_WorkerCoveralls", + "U_C_Uniform_Farmer_01_F" + ]; + +private _dlcUniforms = []; + +if ("expansion" in A3A_enabledDLC) then { + _dlcUniforms append [ + "U_C_man_sport_1_F", + "U_C_man_sport_2_F", + "U_C_man_sport_3_F" + ]; +}; + +if ("orange" in A3A_enabledDLC) then { + _dlcUniforms append [ + "U_C_Paramedic_01_F", + "U_C_Mechanic_01_F" + ]; + _workerUniforms append [ + "U_C_ConstructionCoverall_Black_F", + "U_C_ConstructionCoverall_Blue_F", + "U_C_ConstructionCoverall_Red_F", + "U_C_ConstructionCoverall_Vrana_F" + ]; +}; + +if ("ws" in A3A_enabledDLC) then { + _dlcUniforms append [ + "U_lxWS_C_Djella_01", + "U_lxWS_C_Djella_02", + "U_lxWS_C_Djella_02a", + "U_lxWS_C_Djella_03", + "U_lxWS_C_Djella_04", + "U_lxWS_C_Djella_05", + "U_lxWS_C_Djella_06", + "U_lxWS_C_Djella_07", + "U_lxWS_Tak_01_A", + "U_lxWS_Tak_01_B", + "U_lxWS_Tak_01_C", + "U_lxWS_Tak_02_A", + "U_lxWS_Tak_02_B", + "U_lxWS_Tak_02_C", + "U_lxWS_Tak_03_A", + "U_lxWS_Tak_03_B", + "U_lxWS_Tak_03_C" + ]; +}; + +if ("rf" in A3A_enabledDLC) then { + private _RFleatherJackets = [ + "U_C_PilotJacket_black_RF", + "U_C_PilotJacket_brown_RF", + "U_C_PilotJacket_lbrown_RF", + "U_C_PilotJacket_open_black_RF", + "U_C_PilotJacket_open_brown_RF", + "U_C_PilotJacket_open_lbrown_RF"]; + _dlcUniforms append _RFleatherJackets; + if (A3A_climate in ["temperate","arctic"]) then { + _civUniforms append _RFleatherJackets; + }; +}; + +["uniforms", _civUniforms + _pressUniforms + _workerUniforms + _dlcUniforms] call _fnc_saveToTemplate; + +private _civhats = [ + "H_Bandanna_blu", + "H_Bandanna_cbr", + "H_Bandanna_gry", + "H_Bandanna_khk", + "H_Bandanna_sand", + "H_Bandanna_sgg", + "H_Bandanna_surfer", + "H_Bandanna_surfer_blk", + "H_Bandanna_surfer_grn", + "H_Cap_blk", + "H_Cap_blu", + "H_Cap_grn", + "H_Cap_grn_BI", + "H_Cap_oli", + "H_Cap_red", + "H_Cap_surfer", + "H_Cap_tan", + "H_StrawHat", + "H_StrawHat_dark", + "H_Hat_checker" +]; + +["headgear", _civHats] call _fnc_saveToTemplate; + +private _loadoutData = call _fnc_createLoadoutData; + +_loadoutData set ["uniforms", _civUniforms]; +_loadoutData set ["pressUniforms", _pressUniforms]; +_loadoutData set ["workerUniforms", _workerUniforms]; +_loadoutData set ["pressVests", ["V_Press_F"]]; +_loadoutData set ["helmets", _civHats]; +_loadoutData set ["pressHelmets", ["H_Cap_press"]]; + +_loadoutData set ["maps", ["ItemMap"]]; +_loadoutData set ["watches", ["ItemWatch"]]; +_loadoutData set ["compasses", ["ItemCompass"]]; + + +private _manTemplate = { + ["helmets"] call _fnc_setHelmet; + ["uniforms"] call _fnc_setUniform; + + ["items_medical_standard"] call _fnc_addItemSet; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; +}; +private _workerTemplate = { + ["helmets"] call _fnc_setHelmet; + ["workerUniforms"] call _fnc_setUniform; + + ["items_medical_standard"] call _fnc_addItemSet; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; +}; +private _pressTemplate = { + ["pressHelmets"] call _fnc_setHelmet; + ["pressVests"] call _fnc_setVest; + ["pressUniforms"] call _fnc_setUniform; + + ["items_medical_standard"] call _fnc_addItemSet; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; +}; +private _prefix = "militia"; +private _unitTypes = [ + ["Press", _pressTemplate], + ["Worker", _workerTemplate], + ["Man", _manTemplate] +]; + +[_prefix, _unitTypes, _loadoutData] call _fnc_generateAndSaveUnitsToTemplate; diff --git a/A3A/addons/core/Templates/Templates/Aegis/Aegis_Reb_FIA.sqf b/A3A/addons/core/Templates/Templates/Aegis/Aegis_Reb_FIA.sqf new file mode 100644 index 0000000000..1a22392b59 --- /dev/null +++ b/A3A/addons/core/Templates/Templates/Aegis/Aegis_Reb_FIA.sqf @@ -0,0 +1,274 @@ +/////////////////////////// +// Rebel Information // +/////////////////////////// + +["name", "FIA"] call _fnc_saveToTemplate; + +["flag", "Flag_FIA_F"] call _fnc_saveToTemplate; +["flagTexture", "a3\data_f\flags\flag_fia_co.paa"] call _fnc_saveToTemplate; +["flagMarkerType", "flag_FIA"] call _fnc_saveToTemplate; + +["vehicleBasic", ["I_G_Quadbike_01_F"]] call _fnc_saveToTemplate; +private _vehiclesLightUnarmed = ["I_G_Offroad_01_F"]; +private _vehiclesLightArmed = ["I_G_Offroad_01_armed_F"]; +["vehiclesTruck", ["I_G_Van_01_transport_F"]] call _fnc_saveToTemplate; +private _vehiclesAT = ["I_G_Offroad_01_AT_F"]; +private _vehicleAA = []; + +["vehiclesBoat", ["I_C_Boat_Transport_02_F", "C_Boat_Civil_02_F"]] call _fnc_saveToTemplate; + +["vehiclesPlane", ["I_C_Plane_Civil_01_F"]] call _fnc_saveToTemplate; + +private _vehiclesCivCar = ["C_Offroad_01_F", "C_Hatchback_01_F", "C_Hatchback_01_sport_F", "C_SUV_01_F"]; +["vehiclesCivTruck", ["C_Van_01_transport_F", "C_Van_02_transport_F", "C_Van_02_vehicle_F"]] call _fnc_saveToTemplate; +private _vehiclesCivHeli = ["C_Heli_Light_01_civil_F", "a3a_C_Heli_Transport_02_F"]; +["vehiclesCivBoat", ["C_Boat_Civil_01_F", "C_Rubberboat"]] call _fnc_saveToTemplate; + +["staticMGs", ["I_G_HMG_02_high_F", "I_G_HMG_02_F"]] call _fnc_saveToTemplate; +["staticAT", ["I_static_AT_F"]] call _fnc_saveToTemplate; +private _staticAA = ["I_static_AA_F"]; +private _staticMortars = ["I_G_Mortar_01_F"]; +["staticMortarMagHE", "8Rnd_82mm_Mo_shells"] call _fnc_saveToTemplate; +["staticMortarMagSmoke", "8Rnd_82mm_Mo_Smoke_white"] call _fnc_saveToTemplate; +["staticMortarMagFlare", "8Rnd_82mm_Mo_Flare_white"] call _fnc_saveToTemplate; + +["mineAT", "ATMine_Range_Mag"] call _fnc_saveToTemplate; +["mineAPERS", "APERSMine_Range_Mag"] call _fnc_saveToTemplate; + +["breachingExplosivesAPC", [["DemoCharge_Remote_Mag", 1]]] call _fnc_saveToTemplate; +["breachingExplosivesTank", [["SatchelCharge_Remote_Mag", 1], ["DemoCharge_Remote_Mag", 2]]] call _fnc_saveToTemplate; + +if ("expansion" in A3A_enabledDLC) then { + _vehiclesCivCar append ["C_Offroad_02_unarmed_F"]; + _vehiclesLightUnarmed append ["I_C_Offroad_02_unarmed_F"]; + _vehiclesLightArmed append ["I_C_Offroad_02_LMG_F"]; + _vehiclesAT append ["I_C_Offroad_02_AT_F"]; +}; +if ("ws" in A3A_enabledDLC) then { + _vehicleAA append ["I_Tura_Truck_02_aa_lxWS"]; + _staticAA insert [0, ["I_Tura_ZU23_lxWS"]]; + _vehiclesLightUnarmed insert [1, ["I_G_Offroad_01_armor_base_lxWS"]]; + _vehiclesLightArmed insert [1, ["I_G_Offroad_01_armor_armed_lxWS"]]; + _vehiclesAT insert [1, ["I_G_Offroad_01_armor_AT_lxWS"]]; +}; +if ("rf" in A3A_enabledDLC) then { + _vehiclesCivCar append ["C_Pickup_rf","C_Pickup_covered_rf"]; + _vehiclesLightUnarmed append ["a3a_FIA_Pickup_rf", "a3a_FIA_Pickup_covered_rf"]; + _vehiclesLightArmed append ["a3a_FIA_Pickup_mmg_rf", "a3a_FIA_Pickup_hmg_rf"]; + _staticMortars append ["I_G_CommandoMortar_rf"]; + _vehiclesCivHeli append ["C_Heli_EC_01A_civ_RF","C_Heli_EC_04_rescue_RF"]; +}; + +["vehiclesCivCar", _vehiclesCivCar] call _fnc_saveToTemplate; +["vehiclesCivHeli", _vehiclesCivHeli] call _fnc_saveToTemplate; +["vehiclesLightUnarmed", _vehiclesLightUnarmed] call _fnc_saveToTemplate; +["vehiclesLightArmed", _vehiclesLightArmed] call _fnc_saveToTemplate; +["vehiclesAT", _vehiclesAT] call _fnc_saveToTemplate; +["vehiclesAA", _vehicleAA] call _fnc_saveToTemplate; + +["staticAA", _staticAA] call _fnc_saveToTemplate; +["staticMortars", _staticMortars] call _fnc_saveToTemplate; + +#include "..\Vanilla\Vanilla_Vehicle_Attributes.sqf" + +/////////////////////////// +// Rebel Starting Gear // +/////////////////////////// + +private _initialRebelEquipment = [ + "hgun_Pistol_heavy_02_F","hgun_ACPC2_black_F", + "sgun_Mp153_classic_F", + "6Rnd_45ACP_Cylinder","9Rnd_45ACP_Mag","4Rnd_12Gauge_Pellets","4Rnd_12Gauge_Slug","MiniGrenade","SmokeShell", + ["IEDUrbanSmall_Remote_Mag", 10], ["IEDLandSmall_Remote_Mag", 10], ["IEDUrbanBig_Remote_Mag", 3], ["IEDLandBig_Remote_Mag", 3], + "B_FieldPack_oli","B_FieldPack_blk","B_FieldPack_ocamo","B_FieldPack_oicamo","B_FieldPack_oucamo","B_FieldPack_cbr","B_FieldPack_khk", + "V_Chestrig_blk","V_Chestrig_rgr","V_Chestrig_khk","V_Chestrig_oli","V_ChestrigF_blk","V_ChestrigF_rgr","V_ChestrigF_khk","V_ChestrigF_oli", + "Aegis_V_Ammo_Bandolier_F","V_BandollierB_blk","V_BandollierB_cbr","V_BandollierB_rgr","V_BandollierB_khk","V_BandollierB_oli","V_BandollierB_taiga_F","V_BandollierB_tna_F", + "V_Rangemaster_belt","V_Rangemaster_belt_blk","V_Rangemaster_belt_cbr","V_Rangemaster_belt_ghex_F","V_Rangemaster_belt_khk","V_Rangemaster_belt_oli","V_Rangemaster_belt_taiga_F","V_Rangemaster_belt_tna_F", + "Binocular","hgun_Pistol_Signal_F","6Rnd_GreenSignal_F","6Rnd_RedSignal_F", + "acc_flashlight","acc_flashlight_smg_01","acc_flashlight_pistol" +]; + +if ("expansion" in A3A_enabledDLC) then { + _initialRebelEquipment append [["launch_RPG7_F", 15], ["RPG7_F", 45], "hgun_Pistol_01_F", "10Rnd_9x21_Mag"]; +} else { + _initialRebelEquipment append [["launch_RPG32_F", 15], ["RPG32_F", 30]]; +}; +if ("enoch" in A3A_enabledDLC) then { + _initialRebelEquipment append ["sgun_HunterShotgun_01_F", "sgun_HunterShotgun_01_sawedoff_F", "2Rnd_12Gauge_Pellets", "2Rnd_12Gauge_Slug"]; +}; +if ("ws" in A3A_enabledDLC) then { + _initialRebelEquipment append ["Camera_lxWS"]; +}; +if ("rf" in A3A_enabledDLC) then { + _initialRebelEquipment append ["srifle_h6_tan_rf","10Rnd_556x45_AP_Stanag_red_Tan_RF","10Rnd_556x45_AP_Stanag_Tan_RF","10Rnd_556x45_AP_Stanag_green_Tan_RF"]; + _initialRebelEquipment = _initialRebelEquipment - ["SMG_02_F","30Rnd_9x21_Mag_SMG_02"]; +}; + +if (A3A_hasTFAR) then {_initialRebelEquipment append ["tf_microdagr","tf_anprc154"]}; +if (A3A_hasTFAR && startWithLongRangeRadio) then {_initialRebelEquipment append ["tf_anprc155","tf_anprc155_coyote"]}; +if (A3A_hasTFARBeta) then {_initialRebelEquipment append ["TFAR_microdagr","TFAR_anprc154"]}; +if (A3A_hasTFARBeta && startWithLongRangeRadio) then {_initialRebelEquipment append ["TFAR_anprc155","TFAR_anprc155_coyote"]}; +_initialRebelEquipment append ["Chemlight_blue","Chemlight_green","Chemlight_red","Chemlight_yellow"]; +["initialRebelEquipment", _initialRebelEquipment] call _fnc_saveToTemplate; + +private _rebUniforms = [ + "U_IG_Guerilla1_1", + "U_IG_Guerilla1_3", //Aegis + "U_IG_Guerilla2_1", + "U_IG_Guerilla2_2", + "U_IG_Guerilla2_3", + "U_IG_Guerilla3_1", + "U_IG_Guerilla3_2", //Aegis + "U_IG_leader", + "U_IG_Guerrilla_6_1", + "U_I_G_resistanceLeader_F", + "U_I_L_Uniform_01_deserter_F", + "U_B_ION_Uniform_01_poloshirt_blue_F", //Aegis + "U_B_ION_Uniform_01_poloshirt_wdl_F", //Aegis + "U_B_ION_Uniform_01_tshirt_black_F" //Aegis +]; + +private _dlcUniforms = []; + +if ("expansion" in A3A_enabledDLC) then { + _dlcUniforms append [ + "U_I_C_Soldier_Bandit_4_F", + "U_I_C_Soldier_Bandit_1_F", + "U_I_C_Soldier_Bandit_2_F", + "U_I_C_Soldier_Bandit_5_F", + "U_I_C_Soldier_Bandit_3_F", + "U_I_C_Soldier_Para_2_F", + "U_I_C_Soldier_Para_3_F", + "U_I_C_Soldier_Para_5_F", + "U_I_C_Soldier_Para_4_F", + "U_I_C_Soldier_Para_1_F", + "U_I_C_Soldier_Camo_F" + ]; +}; + +if ("enoch" in A3A_enabledDLC) then { + _dlcUniforms append [ + "U_I_L_Uniform_01_camo_F" + ]; +}; + +if ("orange" in A3A_enabledDLC) then { + _dlcUniforms append [ + "U_IG_Guerilla1_2_F" + ]; +}; + +if ("ws" in A3A_enabledDLC) then { + _dlcUniforms append [ + "U_lxWS_ION_Casual1", + "U_lxWS_ION_Casual2", + "U_lxWS_ION_Casual3", + "U_lxWS_ION_Casual4", + "U_lxWS_ION_Casual5", + "U_lxWS_SFIA_deserter" + ]; +}; + +if ("rf" in A3A_enabledDLC) then { + _dlcUniforms append [ + "U_IG_Guerrilla_RF", + "U_IG_leader_RF" + ]; +}; + +["uniforms", _rebUniforms + _dlcUniforms] call _fnc_saveToTemplate; + +["headgear", [ + "H_Booniehat_khk_hs", + "H_Booniehat_tan", + "H_Cap_tan", + "H_Cap_oli_hs", + "H_Cap_blk", + "H_Cap_headphones", + "H_ShemagOpen_tan", + "H_Shemag_olive_hs", + "H_Bandanna_khk_hs", + "H_Bandanna_sand", + "H_Bandanna_cbr" +]] call _fnc_saveToTemplate; + +///////////////////// +/// Identities /// +///////////////////// + +["faces", ["GreekHead_A3_02","GreekHead_A3_03","GreekHead_A3_04", +"GreekHead_A3_05","GreekHead_A3_06","GreekHead_A3_07","GreekHead_A3_08", +"GreekHead_A3_09","Ioannou","Mavros"]] call _fnc_saveToTemplate; +["voices", ["Male01GRE", "Male02GRE", "Male03GRE", "Male04GRE", "Male05GRE", "Male06GRE"]] call _fnc_saveToTemplate; +"GreekMen" call _fnc_saveNames; + +////////////////////////// +// Loadouts // +////////////////////////// + +private _loadoutData = call _fnc_createLoadoutData; +_loadoutData set ["maps", ["ItemMap"]]; +_loadoutData set ["watches", ["ItemWatch"]]; +_loadoutData set ["compasses", ["ItemCompass"]]; +_loadoutData set ["binoculars", ["Binocular"]]; + +_loadoutData set ["uniforms", _rebUniforms]; + +_loadoutData set ["glasses", ["G_Shades_Black", "G_Shades_Blue", "G_Shades_Green", "G_Shades_Red", "G_Aviator", "G_Spectacles", "G_Spectacles_Tinted", "G_Sport_BlackWhite", "G_Sport_Blackyellow", "G_Sport_Greenblack", "G_Sport_Checkered", "G_Sport_Red", "G_Squares", "G_Squares_Tinted"]]; +_loadoutData set ["goggles", ["G_Lowprofile"]]; +_loadoutData set ["facemask", ["G_Bandanna_blk", "G_Bandanna_oli", "G_Bandanna_khk", "G_Bandanna_tan", "G_Bandanna_beast", "G_Bandanna_shades", "G_Bandanna_sport", "G_Bandanna_aviator"]]; + +_loadoutData set ["items_medical_basic", ["BASIC"] call A3A_fnc_itemset_medicalSupplies]; +_loadoutData set ["items_medical_standard", ["STANDARD"] call A3A_fnc_itemset_medicalSupplies]; +_loadoutData set ["items_medical_medic", ["MEDIC"] call A3A_fnc_itemset_medicalSupplies]; +_loadoutData set ["items_miscEssentials", [] call A3A_fnc_itemset_miscEssentials]; + +//////////////////////// +// Rebel Unit Types // +///////////////////////. + +private _squadLeaderTemplate = { + ["uniforms"] call _fnc_setUniform; + [selectRandomWeighted [[], 1.25, "glasses", 1, "goggles", 0.75, "facemask", 1]] call _fnc_setFacewear; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["binoculars"] call _fnc_addBinoculars; +}; + +private _riflemanTemplate = { + ["uniforms"] call _fnc_setUniform; + [selectRandomWeighted [[], 1.25, "glasses", 1, "goggles", 0.75, "facemask", 1]] call _fnc_setFacewear; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; +}; + +private _prefix = "militia"; +private _unitTypes = [ + ["Petros", _squadLeaderTemplate], + ["SquadLeader", _squadLeaderTemplate], + ["Rifleman", _riflemanTemplate], + ["staticCrew", _riflemanTemplate], + ["Medic", _riflemanTemplate, [["medic", true]]], + ["Engineer", _riflemanTemplate, [["engineer", true]]], + ["ExplosivesExpert", _riflemanTemplate, [["explosiveSpecialist", true]]], + ["Grenadier", _riflemanTemplate], + ["LAT", _riflemanTemplate], + ["AT", _riflemanTemplate], + ["AA", _riflemanTemplate], + ["MachineGunner", _riflemanTemplate], + ["Marksman", _riflemanTemplate], + ["Sniper", _riflemanTemplate], + ["Unarmed", _riflemanTemplate] +]; + +[_prefix, _unitTypes, _loadoutData] call _fnc_generateAndSaveUnitsToTemplate; diff --git a/A3A/addons/core/Templates/Templates/Aegis/Aegis_Reb_SDK.sqf b/A3A/addons/core/Templates/Templates/Aegis/Aegis_Reb_SDK.sqf new file mode 100644 index 0000000000..59ad4fcd66 --- /dev/null +++ b/A3A/addons/core/Templates/Templates/Aegis/Aegis_Reb_SDK.sqf @@ -0,0 +1,254 @@ +/////////////////////////// +// Rebel Information // +/////////////////////////// + +["name", "SDK"] call _fnc_saveToTemplate; + +["flag", "Flag_Syndikat_F"] call _fnc_saveToTemplate; +["flagTexture", "\A3\Data_F_exp\Flags\Flag_Synd_CO.paa"] call _fnc_saveToTemplate; +["flagMarkerType", "flag_Syndicat"] call _fnc_saveToTemplate; + +["vehicleBasic", "I_G_Quadbike_01_F"] call _fnc_saveToTemplate; +private _vehiclesLightUnarmed = ["I_C_Offroad_02_unarmed_F", "I_G_Offroad_01_F"]; +private _vehiclesLightArmed = ["I_G_Offroad_01_armed_F", "I_C_Offroad_02_LMG_F"]; +["vehiclesTruck", ["I_C_Van_01_transport_F"]] call _fnc_saveToTemplate; +private _vehiclesAT = ["I_C_Offroad_02_AT_F", "I_G_Offroad_01_AT_F"]; +private _vehicleAA = []; + +["vehiclesBoat", ["I_C_Boat_Transport_02_F", "C_Boat_Civil_02_F"]] call _fnc_saveToTemplate; + +["vehiclesPlane", ["I_C_Plane_Civil_01_F"]] call _fnc_saveToTemplate; + +private _vehiclesCivCar = ["C_Offroad_01_F", "C_Hatchback_01_F", "C_Hatchback_01_sport_F", "C_SUV_01_F"]; +["vehiclesCivTruck", ["C_Van_01_transport_F", "C_Van_02_transport_F", "C_Van_02_vehicle_F"]] call _fnc_saveToTemplate; +private _vehiclesCivHeli = ["C_Heli_Light_01_civil_F", "a3a_C_Heli_Transport_02_F"]; +["vehiclesCivBoat", ["C_Boat_Civil_01_F", "C_Rubberboat"]] call _fnc_saveToTemplate; + +["staticMGs", ["I_G_HMG_02_high_F", "I_G_HMG_02_F"]] call _fnc_saveToTemplate; +["staticAT", ["I_static_AT_F"]] call _fnc_saveToTemplate; +private _staticAA = ["I_static_AA_F"]; +private _staticMortars = ["I_G_Mortar_01_F"]; +["staticMortarMagHE", "8Rnd_82mm_Mo_shells"] call _fnc_saveToTemplate; +["staticMortarMagSmoke", "8Rnd_82mm_Mo_Smoke_white"] call _fnc_saveToTemplate; +["staticMortarMagFlare", "8Rnd_82mm_Mo_Flare_white"] call _fnc_saveToTemplate; + +["mineAT", "ATMine_Range_Mag"] call _fnc_saveToTemplate; +["mineAPERS", "APERSMine_Range_Mag"] call _fnc_saveToTemplate; + +["breachingExplosivesAPC", [["DemoCharge_Remote_Mag", 1]]] call _fnc_saveToTemplate; +["breachingExplosivesTank", [["SatchelCharge_Remote_Mag", 1], ["DemoCharge_Remote_Mag", 2]]] call _fnc_saveToTemplate; + +if ("ws" in A3A_enabledDLC) then { + _vehicleAA append ["I_Tura_Truck_02_aa_lxWS"]; + _staticAA insert [0, ["I_Tura_ZU23_lxWS"]]; + _vehiclesLightUnarmed insert [1, ["I_G_Offroad_01_armor_base_lxWS"]]; + _vehiclesLightArmed insert [1, ["I_G_Offroad_01_armor_armed_lxWS"]]; + _vehiclesAT insert [1, ["I_G_Offroad_01_armor_AT_lxWS"]]; +}; +if ("rf" in A3A_enabledDLC) then { + _vehiclesCivCar append ["C_Pickup_rf","C_Pickup_covered_rf"]; + _vehiclesLightUnarmed append ["a3a_FIA_Pickup_rf", "a3a_FIA_Pickup_covered_rf"]; + _vehiclesLightArmed append ["a3a_FIA_Pickup_mmg_rf", "a3a_FIA_Pickup_hmg_rf"]; + _staticMortars append ["I_G_CommandoMortar_rf"]; + _vehiclesCivHeli append ["C_Heli_EC_01A_civ_RF","C_Heli_EC_04_rescue_RF"]; +}; + +["vehiclesCivCar", _vehiclesCivCar] call _fnc_saveToTemplate; +["vehiclesCivHeli", _vehiclesCivHeli] call _fnc_saveToTemplate; +["vehiclesLightUnarmed", _vehiclesLightUnarmed] call _fnc_saveToTemplate; +["vehiclesLightArmed", _vehiclesLightArmed] call _fnc_saveToTemplate; +["vehiclesAT", _vehiclesAT] call _fnc_saveToTemplate; +["vehiclesAA", _vehicleAA] call _fnc_saveToTemplate; + +["staticAA", _staticAA] call _fnc_saveToTemplate; +["staticMortars", _staticMortars] call _fnc_saveToTemplate; + +#include "..\Vanilla\Vanilla_Vehicle_Attributes.sqf" + +/////////////////////////// +// Rebel Starting Gear // +/////////////////////////// + +private _initialRebelEquipment = [ + "hgun_Pistol_01_F","hgun_ACPC2_black_F", + "sgun_Mp153_classic_F", + "10Rnd_9x21_Mag","9Rnd_45ACP_Mag","4Rnd_12Gauge_Pellets","4Rnd_12Gauge_Slug","MiniGrenade","SmokeShell", + ["IEDUrbanSmall_Remote_Mag", 10], ["IEDLandSmall_Remote_Mag", 10], ["IEDUrbanBig_Remote_Mag", 3], ["IEDLandBig_Remote_Mag", 3], + "B_FieldPack_oli","B_FieldPack_blk","B_FieldPack_ocamo","B_FieldPack_oicamo","B_FieldPack_oucamo","B_FieldPack_cbr","B_FieldPack_khk", + "V_Chestrig_blk","V_Chestrig_rgr","V_Chestrig_khk","V_Chestrig_oli","V_ChestrigF_blk","V_ChestrigF_rgr","V_ChestrigF_khk","V_ChestrigF_oli", + "Aegis_V_Ammo_Bandolier_F","V_BandollierB_blk","V_BandollierB_cbr","V_BandollierB_rgr","V_BandollierB_khk","V_BandollierB_oli","V_BandollierB_taiga_F","V_BandollierB_tna_F", + "V_Rangemaster_belt","V_Rangemaster_belt_blk","V_Rangemaster_belt_cbr","V_Rangemaster_belt_ghex_F","V_Rangemaster_belt_khk","V_Rangemaster_belt_oli","V_Rangemaster_belt_taiga_F","V_Rangemaster_belt_tna_F", + "Binocular","hgun_Pistol_Signal_F","6Rnd_GreenSignal_F","6Rnd_RedSignal_F", + "acc_flashlight","acc_flashlight_smg_01","acc_flashlight_pistol" +]; +_initialRebelEquipment append [["launch_RPG7_F", 15], ["RPG7_F", 45]]; + +if ("enoch" in A3A_enabledDLC) then { + _initialRebelEquipment append ["sgun_HunterShotgun_01_F", "sgun_HunterShotgun_01_sawedoff_F", "2Rnd_12Gauge_Pellets", "2Rnd_12Gauge_Slug"]; +}; +if ("rf" in A3A_enabledDLC) then { + _initialRebelEquipment append ["srifle_h6_oli_rf","10Rnd_556x45_AP_Stanag_red_khk_RF","10Rnd_556x45_AP_Stanag_khk_RF","10Rnd_556x45_AP_Stanag_green_khk_RF"]; + _initialRebelEquipment = _initialRebelEquipment - ["SMG_05_F", "30Rnd_9x21_Mag_SMG_02"]; +}; + +if (A3A_hasTFAR) then {_initialRebelEquipment append ["tf_microdagr","tf_anprc154"]}; +if (A3A_hasTFAR && startWithLongRangeRadio) then {_initialRebelEquipment append ["tf_anprc155","tf_anprc155_coyote"]}; +if (A3A_hasTFARBeta) then {_initialRebelEquipment append ["TFAR_microdagr","TFAR_anprc154"]}; +if (A3A_hasTFARBeta && startWithLongRangeRadio) then {_initialRebelEquipment append ["TFAR_anprc155","TFAR_anprc155_coyote"]}; +_initialRebelEquipment append ["Chemlight_blue","Chemlight_green","Chemlight_red","Chemlight_yellow"]; +["initialRebelEquipment", _initialRebelEquipment] call _fnc_saveToTemplate; + +private _rebUniforms = [ + "U_IG_Guerilla1_1", + "U_IG_Guerilla1_3", //Aegis + "U_IG_Guerilla2_1", + "U_IG_Guerilla2_2", + "U_IG_Guerilla2_3", + "U_IG_Guerilla3_1", + "U_IG_Guerilla3_2", //Aegis + "U_IG_leader", + "U_IG_Guerrilla_6_1", + "U_I_G_resistanceLeader_F", + "U_I_C_Soldier_Bandit_4_F", + "U_I_C_Soldier_Bandit_1_F", + "U_I_C_Soldier_Bandit_2_F", + "U_I_C_Soldier_Bandit_5_F", + "U_I_C_Soldier_Bandit_3_F", + "U_I_C_Soldier_Para_2_F", + "U_I_C_Soldier_Para_3_F", + "U_I_C_Soldier_Para_5_F", + "U_I_C_Soldier_Para_4_F", + "U_I_C_Soldier_Para_1_F", + "U_I_C_Soldier_Camo_F", + "U_I_L_Uniform_01_deserter_F", + "U_B_ION_Uniform_01_poloshirt_blue_F", //Aegis + "U_B_ION_Uniform_01_poloshirt_wdl_F", //Aegis + "U_B_ION_Uniform_01_tshirt_black_F" //Aegis +]; + +private _dlcUniforms = []; + +if ("enoch" in A3A_enabledDLC) then { + _dlcUniforms append [ + "U_I_L_Uniform_01_camo_F" + ]; +}; + +if ("orange" in A3A_enabledDLC) then { + _dlcUniforms append [ + "U_IG_Guerilla1_2_F" + ]; +}; + +if ("ws" in A3A_enabledDLC) then { + _dlcUniforms append [ + "U_lxWS_ION_Casual1", + "U_lxWS_ION_Casual2", + "U_lxWS_ION_Casual3", + "U_lxWS_ION_Casual4", + "U_lxWS_ION_Casual5", + "U_lxWS_SFIA_deserter" + ]; +}; + +if ("rf" in A3A_enabledDLC) then { + _dlcUniforms append [ + "U_IG_Guerrilla_RF", + "U_IG_leader_RF" + ]; +}; + +["uniforms", _rebUniforms + _dlcUniforms] call _fnc_saveToTemplate; + +["headgear", [ + "H_Booniehat_khk_hs", + "H_Booniehat_tan", + "H_Cap_tan", + "H_Cap_oli_hs", + "H_Cap_blk", + "H_Cap_headphones", + "H_ShemagOpen_tan", + "H_Shemag_olive_hs", + "H_Bandanna_khk_hs", + "H_Bandanna_sand", + "H_Bandanna_cbr" +]] call _fnc_saveToTemplate; + +///////////////////// +/// Identities /// +///////////////////// + +["faces", ["TanoanHead_A3_01","TanoanHead_A3_02","TanoanHead_A3_03","TanoanHead_A3_04", +"TanoanHead_A3_05","TanoanHead_A3_06","TanoanHead_A3_07","TanoanHead_A3_08"]] call _fnc_saveToTemplate; +["voices", ["Male01FRE","Male02FRE","Male03FRE"]] call _fnc_saveToTemplate; +"TanoanMen" call _fnc_saveNames; + +////////////////////////// +// Loadouts // +////////////////////////// +private _loadoutData = call _fnc_createLoadoutData; +_loadoutData set ["maps", ["ItemMap"]]; +_loadoutData set ["watches", ["ItemWatch"]]; +_loadoutData set ["compasses", ["ItemCompass"]]; +_loadoutData set ["binoculars", ["Binocular"]]; + +_loadoutData set ["uniforms", _rebUniforms]; + +_loadoutData set ["glasses", ["G_Shades_Black", "G_Shades_Blue", "G_Shades_Green", "G_Shades_Red", "G_Aviator", "G_Spectacles", "G_Spectacles_Tinted", "G_Sport_BlackWhite", "G_Sport_Blackyellow", "G_Sport_Greenblack", "G_Sport_Checkered", "G_Sport_Red", "G_Squares", "G_Squares_Tinted"]]; +_loadoutData set ["goggles", ["G_Lowprofile"]]; +_loadoutData set ["facemask", ["G_Bandanna_blk", "G_Bandanna_oli", "G_Bandanna_khk", "G_Bandanna_tan", "G_Bandanna_beast", "G_Bandanna_shades", "G_Bandanna_sport", "G_Bandanna_aviator"]]; + +_loadoutData set ["items_medical_basic", ["BASIC"] call A3A_fnc_itemset_medicalSupplies]; +_loadoutData set ["items_medical_standard", ["STANDARD"] call A3A_fnc_itemset_medicalSupplies]; +_loadoutData set ["items_medical_medic", ["MEDIC"] call A3A_fnc_itemset_medicalSupplies]; +_loadoutData set ["items_miscEssentials", [] call A3A_fnc_itemset_miscEssentials]; + +//////////////////////// +// Rebel Unit Types // +///////////////////////. + +private _squadLeaderTemplate = { + ["uniforms"] call _fnc_setUniform; + [selectRandomWeighted [[], 1.25, "glasses", 1, "goggles", 0.75, "facemask", 1]] call _fnc_setFacewear; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; + ["binoculars"] call _fnc_addBinoculars; +}; + +private _riflemanTemplate = { + ["uniforms"] call _fnc_setUniform; + [selectRandomWeighted [[], 1.25, "glasses", 1, "goggles", 0.75, "facemask", 1]] call _fnc_setFacewear; + + ["items_medical_standard"] call _fnc_addItemSet; + ["items_miscEssentials"] call _fnc_addItemSet; + + ["maps"] call _fnc_addMap; + ["watches"] call _fnc_addWatch; + ["compasses"] call _fnc_addCompass; +}; + +private _prefix = "militia"; +private _unitTypes = [ + ["Petros", _squadLeaderTemplate], + ["SquadLeader", _squadLeaderTemplate], + ["Rifleman", _riflemanTemplate], + ["staticCrew", _riflemanTemplate], + ["Medic", _riflemanTemplate, [["medic", true]]], + ["Engineer", _riflemanTemplate, [["engineer", true]]], + ["ExplosivesExpert", _riflemanTemplate, [["explosiveSpecialist", true]]], + ["Grenadier", _riflemanTemplate], + ["LAT", _riflemanTemplate], + ["AT", _riflemanTemplate], + ["AA", _riflemanTemplate], + ["MachineGunner", _riflemanTemplate], + ["Marksman", _riflemanTemplate], + ["Sniper", _riflemanTemplate], + ["Unarmed", _riflemanTemplate] +]; + +[_prefix, _unitTypes, _loadoutData] call _fnc_generateAndSaveUnitsToTemplate; diff --git a/A3A/addons/core/Templates/Templates/Aegis/Aegis_Vehicle_Attributes.sqf b/A3A/addons/core/Templates/Templates/Aegis/Aegis_Vehicle_Attributes.sqf new file mode 100644 index 0000000000..ecafb0f025 --- /dev/null +++ b/A3A/addons/core/Templates/Templates/Aegis/Aegis_Vehicle_Attributes.sqf @@ -0,0 +1 @@ +#include "..\Vanilla\Vanilla_Vehicle_Attributes.sqf"