//Get this addons macro

//get the macro for the air subaddon

//get generlized macros
#include "../../../RD501_main/config_macros.hpp"

//General name of the vehicle
#define vehicle_addon drones
#define patch_name MODNAME##vehicle_addon##_Patches
#define vehicle_classname MODNAME##_##vehicle_addon

#define new_drone_class(name) vehicle_classname##_##name

class CfgPatches
{
	class macro_patch_name(drones)
	{
		addonRootClass=macro_patch_name(vehicles)

		requiredAddons[]=
		{			
			"A3_data_F",
			"A3_anims_F",
			"A3_weapons_F",
			"A3_characters_F",
			macro_patch_name(vehicles)
		};
		requiredVersion=0.1;
		units[]=
		{
			macro_new_vehicle(drone,cis_Hover_Droid),
			macro_new_vehicle(drone,Clone_Recon_Droid),
			macro_new_vehicle(drone,Clone_Recon_Droid_ATTE),
			macro_new_vehicle(drone,rep_stealth_fixedwing),
			macro_new_vehicle(drone,razor_stealth_fixedwing),
			macro_new_vehicle(drone,razor_recon),
			macro_new_vehicle(drone,razor_recon_bag),
			macro_new_vehicle(drone,Clone_Recon_bag),
			macro_new_vehicle(drone,razor_medical),
			macro_new_vehicle(drone,razor_ammo),
			macro_new_vehicle(blufor,eweb_bag)
		};
		weapons[]=
		{
			
		};
	};
};


#include "../../common/sensor_templates.hpp"
class CBA_Extended_EventHandlers_base;

class CfgVehicles
{
	#include "inheritance.hpp"
	class 3as_CIS_ScavDroid;
	class macro_new_vehicle(drone,cis_Hover_Droid): 3as_CIS_ScavDroid
	{
		scope=2
		side=0;
		forceInGarage = 1;
		displayName = "CIS Hover Droid MK.II";
		armor = 0.1;
		cost = 20000;
		altFullForce = 1000;
		altNoForce = 1100;
		LODTurnedIn = -1;
		faction = macro_cis_faction
		editorSubcategory="EdSubcat_Drones";
		vehicleClass="Autonomous";

	};
		
	class macro_new_vehicle(drone,Clone_Recon_bag):JLTS_UAV_prowler_gar_backpack
	{
		displayName="R-2 Drone Bag";
		hiddenSelectionsTextures[]=
		{
			"\RD501_Vehicles\air\drones\Clone_backpack_uav.paa"
		};
		class assembleInfo: assembleInfo
		{
			displayName="R2 Drone Bag";
			assembleTo = macro_new_vehicle(drone,Clone_Recon_Droid)
		};
	};
	#define ARR_2(a,b) a,b
	class macro_new_vehicle(drone,Clone_Recon_Droid): JLTS_UAV_prowler_gar
	{
		author = "RD501";
		scope=2
		forceInGarage = 1;
		displayName = "R-2 Recon Droid";
        altFullForce = 100;
        altNoForce = 1000;
        fuelCapacity = 90;
        fuelConsumptionRate = 1;
		faction = macro_republic_faction;
/*		model = "\SW_CloneWarsWeapons\Recon\swclonerecon.p3d";
		hiddenSelections[]=
        {
            "camo"
        };
        hiddenSelectionsTextures[]=
        {
            "\SW_CloneWarsWeapons\Recon\com_weap_probedroid.paa"
        };*/
		class ACE_Actions {
            distance = 4;
            condition = macro_quote(true);
            class ACE_MainActions {
                condition = macro_quote(true);
                class RD501_Drone_Refuel
                {
                    displayName = "Refuel Drone";
                    distance = 4;
                    condition = macro_quote([ARR_2(_player,_target)] call macro_fnc_name(canRefuel));
                    statement = macro_quote([ARR_2(_player,_target)] call macro_fnc_name(refuelUAVDrone));
                    position = macro_quote(call ace_interaction_fnc_getVehiclePos);
                };
            };
        };
		class assembleInfo
		{
			dissasembleTo[]=
			{
				macro_new_vehicle(drone,Clone_Recon_bag)
			};
		};
	};
	
	class macro_new_vehicle(drone,Clone_Recon_Droid_ATTE):swclonerecondroid
	{
		displayname = "AT-TE Commander Camera";
		scope=2
		forceInGarage = 1;
		author = "RD501";
		faction = macro_republic_faction
		class EventHandlers {
            
            class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers_base {};
        };
	};

	class macro_new_vehicle(drone,rep_stealth_fixedwing):B_UAV_05_F
	{
		displayname = "GAR Phantom";
		scope=2;
		forceInGarage = 1;
		author = "RD501";
		faction = macro_republic_faction
		RD501_magclamp_large_offset[]={0.0,0.0,-3.0};	
		hiddenSelections[] = {"camo1","camo2"};
		hiddenSelectionsMaterials[] = {"\RD501_Vehicles\textures\sentinel\phantom_fuselage_01.rvmat",""};
		hiddenSelectionsTextures[] = {"\RD501_Vehicles\textures\sentinel\phantom_fuselage_01_gar_co.paa",""};
		weapons[] = {
			macro_basic_air_weapons,
			macro_new_weapon(generic,republic_aircraft_cannon)
			};
		magazines[] = {
			macro_basic_air_mags,
			macro_new_mag(generic_aircraft_gun_green,1000),
			macro_new_mag(generic_aircraft_gun_green,1000)
			};
		class pilotCamera
		{
			class OpticsIn
			{
				class Wide
				{
					opticsDisplayName = "WFOV";
					initAngleX = 0;
					minAngleX = 0;
					maxAngleX = 0;
					initAngleY = 0;
					minAngleY = 0;
					maxAngleY = 0;
					initFov=0.42;//"(30 / 120)";
					minFov=0.42;//"(30 / 120)";
					maxFov=0.42;//"(30 / 120)";
					directionStabilized = 1;
					visionMode[] = {"Normal","NVG", "Ti"};
					thermalMode[] = {0,1,2,3,4,5};
					gunnerOpticsModel = "\A3\Drones_F\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_wide_F.p3d";
					opticsPPEffects[] = {"OpticsCHAbera2", "OpticsBlur2"};
				};
				class Medium: Wide
				{
					opticsDisplayName = "MFOV";
					initFov="0.42/4";//"(30 / 120)";
					minFov="0.42/4";//"(30 / 120)";
					maxFov="0.42/4";//"(30 / 120)";
					gunnerOpticsModel = "\A3\Drones_F\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_medium_F.p3d";
				};
				class Narrow: Wide
				{
					opticsDisplayName = "NFOV";
					initFov="0.42/8";//"(30 / 120)";
					minFov="0.42/8";//"(30 / 120)";
					maxFov="0.42/8";//"(30 / 120)";
					gunnerOpticsModel = "\A3\Drones_F\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_narrow_F.p3d";
				};
				class NarrowX16: Wide
				{
					opticsDisplayName = "NFOV";
					initFov="0.42/16";//"(30 / 120)";
					minFov="0.42/16";//"(30 / 120)";
					maxFov="0.42/16";//"(30 / 120)";
					gunnerOpticsModel = "\A3\Drones_F\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_narrow_F.p3d";
				};
				class NarrowX24: Wide
				{
					opticsDisplayName = "NFOV";
					initFov="0.42/24";//"(30 / 120)";
					minFov="0.42/24";//"(30 / 120)";
					maxFov="0.42/24";//"(30 / 120)";
					gunnerOpticsModel = "\A3\Drones_F\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_narrow_F.p3d";
				};
				class NarrowX36: Wide
				{
					opticsDisplayName = "NFOV";
					initFov="0.42/36";//"(30 / 120)";
					minFov="0.42/36";//"(30 / 120)";
					maxFov="0.42/36";//"(30 / 120)";
					gunnerOpticsModel = "\A3\Drones_F\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_narrow_F.p3d";
				};
				class NarrowX48: Wide
				{
					opticsDisplayName = "NFOV";
					initFov="0.42/48";//"(30 / 120)";
					minFov="0.42/48";//"(30 / 120)";
					maxFov="0.42/48";//"(30 / 120)";
					gunnerOpticsModel = "\A3\Drones_F\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_narrow_F.p3d";
				};
				class NarrowX60: Wide
				{
					opticsDisplayName = "NFOV";
					initFov="0.42/60";//"(30 / 120)";
					minFov="0.42/60";//"(30 / 120)";
					maxFov="0.42/60";//"(30 / 120)";
					gunnerOpticsModel = "\A3\Drones_F\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_narrow_F.p3d";
				};
				class NarrowX80: Wide
				{
					opticsDisplayName = "NFOV";
					initFov="0.42/80";//"(30 / 120)";
					minFov="0.42/80";//"(30 / 120)";
					maxFov="0.42/80";//"(30 / 120)";
					gunnerOpticsModel = "\A3\Drones_F\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_narrow_F.p3d";
				};
				class NarrowX100: Wide
				{
					opticsDisplayName = "NFOV";
					initFov="0.42/100";//"(30 / 120)";
					minFov="0.42/100";//"(30 / 120)";
					maxFov="0.42/100";//"(30 / 120)";
					gunnerOpticsModel = "\A3\Drones_F\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_narrow_F.p3d";
				};
				showMiniMapInOptics = 1;
				showUAVViewInOptics = 0;
				showSlingLoadManagerInOptics = 0;
			};
			minTurn = -190;
			maxTurn = 180;
			initTurn = 0;
			minElev = -10;
			maxElev = 90;
			initElev = 0;
			maxXRotSpeed = 0.3;
			maxYRotSpeed = 0.3;
			pilotOpticsShowCursor = 1;
			controllable = 1;
		};	
		class EventHandlers 
		{
            class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers_base 
			{};
        };
		class Components:Components
		{};
		class GunClouds:GunClouds
		{};
		class GunFire:GunFire
		{};
		class HitPoints:HitPoints
		{};
		class MGunClouds:MGunClouds
		{};
		class OpticsIn:OpticsIn
		{};
		class OpticsOut:OpticsOut
		{};
		class Reflectors:Reflectors
		{};
		class TurnIn:TurnIn
		{};
		class TurnOut:TurnOut
		{};
		class Turrets:Turrets
		{
			class MainTurret:MainTurret
			{};
		};
		class TurretSpec:TurretSpec
		{};
		class ViewGunner:ViewGunner
		{};
		class ViewOptics:ViewOptics
		{};
	};
	class macro_new_vehicle(drone,razor_stealth_fixedwing): macro_new_vehicle(drone,rep_stealth_fixedwing)
	{
		displayname = "GAR Phantom (Razor)";
		hiddenSelectionsTextures[] = {"\RD501_Vehicles\textures\sentinel\phantom_fuselage_01_razor_co.paa",""};
	};
	class macro_new_vehicle(drone,razor_recon_bag):JLTS_UAV_prowler_gar_backpack
	{
		displayName="Hummingbird Recon Drone";
		hiddenSelectionsTextures[]=
		{
			"\RD501_Vehicles\air\drones\Clone_backpack_uav.paa"
		};
		class assembleInfo: assembleInfo
		{
			displayName="Hummingbird Drone Bag";
			assembleTo = macro_new_vehicle(drone,razor_recon)
		};
	};
	class macro_new_vehicle(blufor,eweb_bag): JLTS_UAV_prowler_gar_backpack
	{
		scope = 2;
		displayName = "E-WEB Bag";
		descriptionShort = "E-WEB Bag";
		side = 0;
		//faction = "RD501FactionOpfor";
		picture = "\MRC\JLTS\characters\CloneArmor\data\ui\Clone_backpack_ui_ca.paa";
		model = "\MRC\JLTS\characters\CloneArmor\CloneBackpack.p3d";
		hiddenSelections[] = {"camo1"};
		hiddenSelectionsTextures[]=
			{
				"\RD501_Vehicles\air\drones\Clone_backpack_uav.paa"
			};
		maximumLoad = 0;
		mass = 300;
		class assembleInfo: assembleInfo
		{
			base = "";
			displayName = "E-WEB";
			assembleTo = macro_new_vehicle(e_web,cis);
		};
	};
	class macro_new_vehicle(drone,razor_recon): JLTS_UAV_prowler_gar
	{
		displayName = "Hummingbird Recon Drone"
		faction = macro_republic_faction
		scope=2;
		forceInGarage = 1;
		altFullForce = 1000;
		altNoForce = 1100;
		hiddenSelectionsTextures[]=
		{
			"\RD501_Vehicles\air\drones\prowler_co.paa"
		};
		class assembleInfo
		{
			dissasembleTo[]=
			{
				macro_new_vehicle(drone,razor_recon_bag)
			};
		};
	};
	class macro_new_vehicle(drone,razor_medical): B_UAV_06_F
	{
		displayName = "Prime Medical Drone"
		faction = macro_republic_faction
		scope=2;
		forceInGarage = 1;
		altFullForce = 1000;
		altNoForce = 1100;
		hiddenSelectionsTextures[]=
		{
			"\RD501_Vehicles\air\drones\data\b_uav_06_medical_co.paa"
		};
		typicalCargo[]=
		{
			""
		};
		class TransportItems
        {
            #include "medical_drone_items.hpp"				
        };
	};
	class macro_new_vehicle(drone,razor_ammo): B_UAV_06_F
	{
		displayName = "Prime Ammo Drone"
		faction = macro_republic_faction
		scope=2;
		forceInGarage = 1;
		altFullForce = 1000;
		altNoForce = 1100;
		hiddenSelectionsTextures[]=
		{
			"\RD501_Vehicles\air\drones\data\b_uav_06_ammo_co.paa"
		};
		typicalCargo[]=
		{
			""
		};
		class TransportItems{};
		class TransportMagazines
		{
			#include"ammo_drone_mag.hpp"
		};
	};
};