class CBA_Extended_EventHandlers_base; class CfgVehicles { class Man; class CAManBase: Man { class ACE_SelfActions { class ACE_Equipment { class GVAR(place) { displayName = CSTRING(Placedown); condition = QUOTE([ARR_2(_player,'ACE_SpottingScope')] call EFUNC(common,hasItem)); statement = QUOTE([ARR_2(_player,'ACE_SpottingScope')] call FUNC(place)); showDisabled = 0; icon = QPATHTOF(UI\w_spottingscope_ca.paa); }; }; }; }; class ThingX; class ACE_SpottingScope_Tube: ThingX { author = ECSTRING(common,ACETeam); scope = 1; displayName = CSTRING(DisplayName); model = QPATHTOF(data\ace_spottingscope_tube.p3d); }; class LandVehicle; class StaticWeapon: LandVehicle { class Turrets { class MainTurret; }; class ACE_Actions { class ACE_MainActions; }; }; class ACE_SpottingScopeObject: StaticWeapon { EGVAR(dragging,canDrag) = 1; EGVAR(dragging,dragPosition)[] = {0,1,0}; EGVAR(dragging,dragDirection) = 0; class ACE_Actions: ACE_Actions{ class ACE_MainActions: ACE_MainActions { selection = "main_turret_axis"; class ACE_Pickup { selection = ""; displayName = CSTRING(PickUp); distance = 5; condition = QUOTE((alive _target) && (count (crew _target) == 0)); statement = QUOTE([ARR_2(_target,_player)] call FUNC(pickup)); showDisabled = 0; exceptions[] = {}; icon = QPATHTOF(UI\w_spottingscope_ca.paa); }; }; }; class EventHandlers { class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers_base {}; }; CBA_ScriptedOpticClass = "ACE_SpottingScopeOptic"; author = ECSTRING(common,ACETeam); scope = 1; side = 1; typicalCargo[] = {"Soldier"}; displayName = CSTRING(DisplayName); model = QPATHTOF(data\ace_spottingscope.p3d); mapSize = 0.5; transportSoldier = 0; getInAction = "PlayerProne"; getOutAction = "PlayerProne"; editorSubcategory = "EdSubcat_Turrets"; threat[] = {0.7, 0.3, 0}; accuracy = 0.12; cost = 10000; icon = "\A3\Static_F_Gamma\data\UI\map_StaticTurret_AT_CA.paa"; attenuationEffectType = ""; class SpeechVariants { class Default { speechSingular[] = {"veh_infantry_SF_s"}; speechPlural[] = {"veh_infantry_SF_p"}; }; }; textSingular = "$STR_A3_nameSound_veh_infantry_SF_s"; textPlural = "$STR_A3_nameSound_veh_infantry_SF_p"; nameSound = "veh_infantry_SF_s"; class Turrets: Turrets { class MainTurret: MainTurret { minTurn = -45; maxTurn = 45; initTurn = 0; minElev = -10; maxElev = 40; initElev = 0; class ViewGunner { initAngleX = 5; minAngleX = -30; maxAngleX = 30; initAngleY = 0; minAngleY = -100; maxAngleY = 100; initFov = 0.75; minFov = 0.25; maxFov = 1.25; }; class ViewOptics { initAngleX = 0; minAngleX = -30; maxAngleX = 30; initAngleY = 0; minAngleY = -100; maxAngleY = 100; minFov = "0.25/35"; // real one is 15x-45x, but max mag in game is 37x maxFov = "0.25/5"; initFov= "0.25/5"; }; weapons[] = {}; magazines[] = {}; gunnerOpticsColor[] = {1,1,1,1}; gunnerOpticsModel = "\A3\Weapons_F\empty.p3d"; gunnerOpticsEffect[] = {"OpticsCHAbera1","OpticsBlur2"}; gunnerOutOpticsShowCursor = 0; gunnerOpticsShowCursor = 0; gunnerAction = "ACE_SpottingScope"; gunnerGetInAction = "PlayerProne"; gunnerGetOutAction = "PlayerProne"; gunnerForceOptics = 0; ejectDeadGunner = 0; turretInfoType = "CBA_ScriptedOptic_zooming"; opticsDisablePeripherialVision = 1; }; }; // damage handling armor = 80; class Damage { tex[] = {}; mat[] = { QPATHTO_R(data\ace_spottingscope_metal.rvmat), QPATHTO_R(data\ace_spottingscope_metal_damage.rvmat), QPATHTO_R(data\ace_spottingscope_metal_destruct.rvmat), QPATHTO_R(data\ace_spottingscope_glass.rvmat), QPATHTO_R(data\ace_spottingscope_glass_damage.rvmat), QPATHTO_R(data\ace_spottingscope_glass_destruct.rvmat), QPATHTO_R(data\ace_spottingscope_rubber.rvmat), QPATHTO_R(data\ace_spottingscope_rubber_damage.rvmat), QPATHTO_R(data\ace_spottingscope_rubber_damage.rvmat) }; }; editorPreview = QPATHTOF(data\preview_spottingscope.jpg); }; class ACE_B_SpottingScope: ACE_SpottingScopeObject { author = ECSTRING(common,ACETeam); _generalMacro = "ACE_B_SpottingScope"; scope = 2; side = 1; faction = "BLU_F"; crew = "B_spotter_F"; }; class ACE_O_SpottingScope: ACE_SpottingScopeObject { author = ECSTRING(common,ACETeam); _generalMacro = "ACE_O_SpottingScope"; scope = 2; side = 0; faction = "OPF_F"; crew = "O_spotter_F"; }; class ACE_I_SpottingScope: ACE_SpottingScopeObject { author = ECSTRING(common,ACETeam); _generalMacro = "ACE_I_SpottingScope"; scope = 2; side = 2; faction = "IND_F"; crew = "I_spotter_F"; }; class ACE_B_T_SpottingScope: ACE_SpottingScopeObject { author = ECSTRING(common,ACETeam); _generalMacro = "ACE_B_T_SpottingScope"; scope = 2; side = 1; faction = "BLU_T_F"; crew = "B_T_Spotter_F"; }; class ACE_O_T_SpottingScope: ACE_SpottingScopeObject { author = ECSTRING(common,ACETeam); _generalMacro = "ACE_O_T_SpottingScope"; scope = 2; side = 0; faction = "OPF_T_F"; crew = "O_T_Spotter_F"; }; class Item_Base_F; class ACE_Item_SpottingScope: Item_Base_F { author[] = {"Rocko", "Scubaman3D"}; scope = 2; scopeCurator = 2; displayName = CSTRING(DisplayName); vehicleClass = "Items"; editorCategory = "EdCat_Equipment"; editorSubcategory = "EdSubcat_InventoryItems"; editorPreview = QPATHTOF(data\preview_spottingscope.jpg); class TransportItems { MACRO_ADDITEM(ACE_SpottingScope,1); }; }; class Box_NATO_Support_F; class ACE_Box_Misc: Box_NATO_Support_F { class TransportItems { MACRO_ADDITEM(ACE_SpottingScope,2); }; }; };