Files
braf/braf_air/Braf_Helicopters/Braf_Fennec/Fennec_Base.hpp
T
rarantes 3c59733c8a feat(sar): add EFS to FAB Caracal variants
Enable EFS and native flotation configuration for Caracal Fast Rope, SAR, and Transport variants. Record the autocenter Geometry LOD root cause and retain the shared EFS and hoist function migration.
2026-07-19 22:13:15 -03:00

2379 lines
54 KiB
C++

class BRAF_Fennec_Base: Helicopter_Base_H
{
author="BRAF TEAM";
scope=0;
faction="BRAF_ARMY";
displayName="AS-550A2 Fennec";
cost=1000000;
_generalMacro="BRAF_Fennec_Base";
model="\braf\braf_air\Braf_Helicopters\Braf_Fennec\BRAF_Fennec.p3d";
icon="\braf\braf_air\Braf_Helicopters\Braf_Fennec\data\ui\Map_fennec_ca.paa";
picture="\braf\braf_air\Braf_Helicopters\Braf_Fennec\data\UI\Icon_fennec_ca.paa";
editorSubcategory="EdSubcat_Helicopters";
memoryPointTaskMarker="TaskMarker_1_pos";
driverAction="braf_fennec_pilot";
driverInAction="pilot_Heli_Light_02";
preciseGetInOut=1;
cargoPreciseGetInOut[]={1};
getInRadius=2;
hideWeaponsDriver=1;
hideWeaponsGunner=1;
hideWeaponsCargo=1;
getInAction="pilot_Heli_Light_02_Enter";
getOutAction="pilot_Heli_Light_02_Exit";
mainBladeCenter="mainRotor_center";
tailBladeCenter="tailRotor_center";
selectionHRotorStill="mainRotor_static";
selectionHRotorMove="mainRotor_blur";
selectionVRotorStill="tailRotor_static";
selectionVRotorMove="tailRotor_blur";
driverLeftHandAnimName="collective";
driverRightHandAnimName="cyclic_pilot";
driverLeftFootAnimName="Pedals_Left";
driverRightFootAnimName="Pedals_Right";
memoryPointsGetInDriver="pos_pilot";
memoryPointsGetInDriverDir="dir_pilot";
memoryPointsGetInCargo[]=
{
"pos_cargo_R",
"pos_cargo_L"
};
memoryPointsGetInCargoDir[]=
{
"dir_cargo_R",
"dir_cargo_L"
};
memoryPointsGetInDriverPrecise="GetIn_Pilot";
memoryPointsGetInCargoPrecise[]=
{
"GetIn_Cargo",
"GetIn_Cargo2"
};
cargoGetInAction[]=
{
"GetInLow"
};
cargoGetOutAction[]=
{
"GetOutLow"
};
crew="braf_characters_aviation_army_aviation_pilot";
typicalCargo[]=
{
"braf_characters_aviation_army_aviation_pilot"
};
cargoAction[]=
{
"braf_fennec_cargo",
"braf_fennec_cargo"
};
cargoCompartments[]=
{
"Compartment1",
"Compartment1"
};
driverCompartments="Compartment1";
washDownStrength="1.0f";
washDownDiameter="40.0f";
minSmokeDamage=0.3;
maxSmokeDamage=0.99;
numberPhysicalWheels=4;
driveOnComponent[]=
{
"Wheels"
};
accuracy=0.5;
nameSound="veh_helicopter_s";
fuelCapacity=500;
hullDamageCauseExplosion=0;
hullExplosionDelay[]={15,30};
fuelConsumptionRate=0.1;
armor=40;
damageResistance=0.00555;
irScanRangeMin=0;
irScanRangeMax=0;
irScanToEyeFactor=1;
MainRotorSpeed=1;
backRotorSpeed=3;
maxSpeed=245;
enginePower=632;
altFullForce=3500;
altNoForce=4500;
maxFordingDepth=0.7;
mainBladeRadius=5.35;
tailBladeRadius=0.5;
tailBladeVertical=1;
bodyFrictionCoef=0.2;
class RotorLibHelicopterProperties
{
RTDconfig="braf\braf_air\Braf_Helicopters\Braf_Fennec\rtd_fennec.xml";
autoHoverCorrection[]={0.28,2.8800001,0};
defaultCollective=0.63499999;
maxTorque=900;
stressDamagePerSec=0.0033333332;
maxHorizontalStabilizerLeftStress=10000;
maxHorizontalStabilizerRightStress=10000;
maxVerticalStabilizerStress=10000;
horizontalWingsAngleCollMin=0;
horizontalWingsAngleCollMax=0;
maxMainRotorStress=31000;
maxTailRotorStress=5200;
retreatBladeStallWarningSpeed=77.222;
};
slingLoadMinCargoMass=0;
slingLoadMaxCargoMass=1200;
transportMaxWeapons=12;
transportMaxMagazines=48;
transportMaxBackpacks=24;
maximumLoad=1500;
transportSoldier=2;
enableSweep=0;
cargoProxyIndexes[]={1,2,3,4,5};
getInProxyOrder[]={1,2,3,4,5};
driverCanSee=31;
extCameraPosition[]={0,2,-15};
memoryPointSupply="supply";
class TransportBackpacks
{
class _xx_B_Parachute
{
backpack="B_Parachute";
count=6;
};
};
class TransportMagazines
{
class _xx_SmokeShell
{
magazine="SmokeShell";
count=2;
};
class _xx_SmokeShellGreen
{
magazine="SmokeShellGreen";
count=2;
};
class _xx_30Rnd_556x45_Stanag
{
magazine="30Rnd_556x45_Stanag";
count=4;
};
};
class TransportWeapons
{
class _xx_arifle_Mk20C_F
{
weapon="arifle_Mk20C_F";
count=2;
};
};
class TransportItems
{
class _xx_FirstAidKit
{
name="FirstAidKit";
count=6;
};
class _xx_Toolkit
{
name="Toolkit";
count=1;
};
class _xx_ItemGPS
{
name="ItemGPS";
count=1;
};
};
class RenderTargets
{
class Copilot_display
{
renderTarget="rendertarget0";
class CameraView1
{
pointPosition="rendertarget0_pos";
pointDirection="rendertarget0_dir";
renderVisionMode=2;
renderQuality=2;
fov=0.093000002;
turret[]={0};
};
};
};
class Reflectors
{
class Cabin_front_r
{
position="cabinlight_fr_pos";
direction="cabinlight_fr_dir";
hitpoint="HP_cabinlight_fr";
selection="cabinlight_fr";
color[]={50,0,0};
ambient[]={5,0,0};
intensity=4;
size=1;
innerAngle=15;
outerAngle=150;
coneFadeCoef=1;
useFlare=1;
flareSize=0.1;
flareMaxDistance=1;
dayLight=1;
class Attenuation
{
start=0;
constant=0;
linear=1;
quadratic=1;
hardLimitStart=1;
hardLimitEnd=2;
};
};
class Cabin_front_l: Cabin_front_r
{
position="cabinlight_fl_pos";
direction="cabinlight_fl_dir";
hitpoint="HP_cabinlight_fl";
selection="cabinlight_fl";
};
class Cabin_back_r: Cabin_front_r
{
position="cabinlight_br_pos";
direction="cabinlight_br_dir";
hitpoint="HP_cabinlight_br";
selection="cabinlight_br";
};
class Cabin_back_l: Cabin_front_r
{
position="cabinlight_bl_pos";
direction="cabinlight_bl_dir";
hitpoint="HP_cabinlight_bl";
selection="cabinlight_bl";
};
};
class MarkerLights
{
class PositionRed
{
color[]={0.8,0,0};
ambient[]={0.09,0.015,0.01};
intensity=75;
drawLight=1;
flareSize=1;
brightness=0.01;
drawLightSize=0.25;
drawLightCenterSize=0.08;
activeLight=0;
blinking=0;
dayLight=1;
useFlare=1;
name="position_light_red";
};
class PositionGreen: PositionRed
{
color[]={0, 0.8, 0};
name="position_light_green";
};
class PositionWhite: PositionRed
{
color[]={1, 1, 1};
name="position_light_white";
};
class CollisionRed: PositionRed
{
blinking=1;
blinkingpattern[]={0.2,1.3};
blinkingpatternguarantee=0;
name="collisionlightred";
};
class CollisionWhite: PositionRed
{
blinking=1;
blinkingpattern[]={0.05,0.9};
blinkingpatternguarantee=0;
intensity=150;
color[]={1,1,1};
drawlightcentersize=0.04;
drawlightsize=1;
name="collisionlightwhite";
};
};
class AnimationSources: AnimationSources
{
class PositionWhite_source
{
markerlight="PositionWhite";
source="MarkerLight";
animPeriod=0;
initPhase=0;
};
class PositionGreen_source
{
markerlight="PositionGreen";
source="MarkerLight";
animPeriod=0;
initPhase=0;
};
class PositionRed_source
{
markerlight="PositionRed";
source="MarkerLight";
animPeriod=0;
initPhase=0;
};
class CollisionLightRed_source
{
source="MarkerLight";
markerLight="CollisionRed";
animPeriod=0;
initPhase=0;
};
class CollisionLightWhite_source
{
source="MarkerLight";
markerLight="CollisionWhite";
animPeriod=0;
initPhase=0;
};
class NVG_Hide
{
source="user";
animPeriod=0;
initPhase=1;
};
class EFS_Cover_Hide
{
source="user";
animPeriod=0;
initPhase=0;
};
class EFS_Hide
{
source="user";
animPeriod=0;
initPhase=0;
};
class door_l
{
source="user";
animPeriod=1;
initPhase=0;
};
class door_r
{
source="user";
animPeriod=1;
initPhase=0;
};
};
class UserActions
{
class Open_Door_Left
{
displayname="Open Left Door";
position="door_pos";
showWindow=1;
radius=5;
priority=0;
onlyForPlayer=0;
condition="this animationphase 'door_L_2' < 0.1 AND (player in crew this)";
statement="this animate ['door_L_1',1], this animate ['door_L_2',1], this animate ['door_L_rot',1], this say3d ""Doors""";
};
class Close_Door_Left: Open_Door_Left
{
displayname="Close Left Door";
condition="this animationphase 'door_L_2' > 0.9 AND (player in crew this)";
statement = "this animate ['door_L_1',0], this animate ['door_L_2',0], this animate ['door_L_rot',0], this say3d ""Doors""";
};
class Open_Door_Right: Open_Door_Left
{
displayname="Open Right Door";
condition="this animationphase 'door_R_2' < 0.1 AND (player in crew this)";
statement = "this animate ['door_R_1',1], this animate ['door_R_2',1], this animate ['door_r_rot',1], this say3d ""Doors""";
};
class Close_Door_Right: Open_Door_Left
{
displayname="Close Right Door";
condition="this animationphase 'door_R_2' > 0.9 AND (player in crew this)";
statement = "this animate ['door_R_1',0], this animate ['door_R_2',0], this animate ['door_r_rot',0], this say3d ""Doors""";
};
class NVG_ON
{
displayname="Turn NVG lights on";
position="cabin";
showWindow=1;
radius=10;
priority=0;
onlyForPlayer=0;
condition="this animationphase 'NVG_Hide' > 0.9 AND (player in crew this)";
statement="this animate ['NVG_Hide',0]";
};
class NVG_OFF: NVG_ON
{
displayname="Turn NVG lights off";
condition="this animationphase 'NVG_Hide' < 0.1 AND (player in crew this)";
statement="this animate ['NVG_Hide',1]";
};
class Arm_EFS
{
displayname="<t color='#ffaa00'> Arm EFS </t>";
position="cabin";
showWindow=1;
radius=10;
priority=1;
onlyForPlayer=0;
condition="getNumber (configOf this >> 'canFloat') == 1 AND this animationphase 'EFS_Cover_Hide' > 0.9 AND (player in crew this) AND ((this getVariable ['braf_efs_state','SAFE']) == 'SAFE')";
statement="[this, ""arm""] call BRAF_fnc_efs";
};
class Disarm_EFS: Arm_EFS
{
displayname="<t color='#ffaa00'> Disarm EFS </t>";
condition="getNumber (configOf this >> 'canFloat') == 1 AND this animationphase 'EFS_Cover_Hide' > 0.9 AND (player in crew this) AND ((this getVariable ['braf_efs_state','SAFE']) == 'ARMED')";
statement="[this, ""disarm""] call BRAF_fnc_efs";
};
class Deploy_Floats: Arm_EFS
{
displayname="<t color='#b31d00'> Deploy Floats </t>";
condition="getNumber (configOf this >> 'canFloat') == 1 AND this animationphase 'EFS_Cover_Hide' > 0.9 AND (player in crew this) AND ((this getVariable ['braf_efs_state','SAFE']) == 'ARMED')";
statement="[this, ""deployfloats""] call BRAF_fnc_efs";
};
};
class Armory
{
description="HA-1 Fennec";
};
class HitPoints: HitPoints
{
class HitFuel: HitFuel
{
visual="";
name="HP_Fuel";
convexComponent="FG_Fuel";
armor=1;
radius=0.25;
minimalHit=0.050000001;
explosionShielding=2;
};
class HitHull: HitHull
{
armor=999;
name="HP_hull";
visual="zbytek";
convexComponent="zbytek";
depends="Total";
radius=0.01;
};
class HitEngine1
{
armor=1;
radius=0.4;
name="HP_Engine";
explosionShielding=3;
minimalHit=0.2;
visual="engine";
passThrough=1;
convexComponent="FG_Engine";
material=51;
};
class HitEngine: HitEngine
{
armor=999;
radius=0.150000001;
minimalHit=1;
depends="HitEngine1";
};
class HitAvionics: HitAvionics
{
armor=2;
visual="avionics";
name="HP_avionics";
convexComponent="FG_avionics";
radius=0.25;
minimalHit=0.05;
explosionShielding=2;
};
class HitHRotor: HitHRotor
{
visual="mainRotor_static";
name="HP_mainRotor";
armor=4.5;
radius=0.3;
explosionShielding=2.5;
};
class HitVRotor: HitVRotor
{
visual="tailRotor_static";
name="HP_tailRotor";
armor=3;
radius=0.06;
explosionShielding=6;
};
class HitGlass1: HitGlass1
{
visual="Glass";
name="HP_glass";
armor=0.5;
radius=0.15;
};
};
class Exhausts
{
class Exhaust1
{
position="exhaust";
direction="exhaust_dir";
effect="ExhaustsEffectHeliMed";
};
class Exhaust2
{
position="exhaust";
direction="exhaust_dir";
effect="ExhaustsEffectHeliMed";
};
};
defaultUserMFDvalues[]={0,1,0.30000001,1};
#include "Fennec_MFD.hpp"
weapons[]=
{
"FakeHorn"
};
magazines[]={};
threat[]={0.25,0.1,0.1};
hiddenSelections[]=
{
"camo1",
"camo2",
"camo3",
"camo4",
"camo5",
"glass"
};
hiddenSelectionsTextures[]=
{
"braf\braf_air\braf_helicopters\braf_fennec\data\1BAvEx_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo2_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo3_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo4_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo5_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Glass_ca.paa"
};
class Damage
{
tex[]={};
mat[]=
{
"braf\braf_air\braf_helicopters\braf_fennec\data\camo1.rvmat",
"braf\braf_air\braf_helicopters\braf_fennec\data\camo1_damage.rvmat",
"braf\braf_air\braf_helicopters\braf_fennec\data\damage\destruct.rvmat",
"braf\braf_air\braf_helicopters\braf_fennec\data\camo2.rvmat",
"braf\braf_air\braf_helicopters\braf_fennec\data\camo2.rvmat",
"braf\braf_air\braf_helicopters\braf_fennec\data\damage\destruct.rvmat",
"braf\braf_air\braf_helicopters\braf_fennec\data\camo3.rvmat",
"braf\braf_air\braf_helicopters\braf_fennec\data\camo3.rvmat",
"braf\braf_air\braf_helicopters\braf_fennec\data\damage\destruct.rvmat",
"braf\braf_air\braf_helicopters\braf_fennec\data\camo4.rvmat",
"braf\braf_air\braf_helicopters\braf_fennec\data\damage\camo4_damage.rvmat",
"braf\braf_air\braf_helicopters\braf_fennec\data\damage\destruct.rvmat",
"braf\braf_air\braf_helicopters\braf_fennec\data\camo5.rvmat",
"braf\braf_air\braf_helicopters\braf_fennec\data\damage\camo5_damage.rvmat",
"braf\braf_air\braf_helicopters\braf_fennec\data\damage\destruct.rvmat",
"braf\braf_air\braf_helicopters\braf_fennec\data\glass.rvmat",
"braf\braf_air\braf_helicopters\braf_fennec\data\damage\glass_damage.rvmat",
"braf\braf_air\braf_helicopters\braf_fennec\data\damage\glass_damage.rvmat"
};
};
class Components: Components
{
class SensorsManagerComponent
{
class Components
{
class IRSensorComponent: SensorTemplateIR
{
class AirTarget
{
minRange=500;
maxRange=3000;
objectDistanceLimitCoef=-1;
viewDistanceLimitCoef=1;
};
class GroundTarget
{
minRange=500;
maxRange=2000;
objectDistanceLimitCoef=1;
viewDistanceLimitCoef=1;
};
maxTrackableSpeed=28;
angleRangeHorizontal=50;
angleRangeVertical=36;
animDirection="mainGun";
};
class VisualSensorComponent: SensorTemplateVisual
{
class AirTarget
{
minRange=500;
maxRange=3000;
objectDistanceLimitCoef=-1;
viewDistanceLimitCoef=1;
};
class GroundTarget
{
minRange=500;
maxRange=2000;
objectDistanceLimitCoef=1;
viewDistanceLimitCoef=1;
};
maxTrackableSpeed=28;
angleRangeHorizontal=50;
angleRangeVertical=36;
animDirection="mainGun";
};
class LaserSensorComponent: SensorTemplateLaser
{
};
class NVSensorComponent: SensorTemplateNV
{
};
};
};
class VehicleSystemsDisplayManagerComponentLeft: DefaultVehicleSystemsDisplayManagerLeft
{
class Components: Components
{
class VehiclePrimaryGunnerDisplay
{
componentType="TransportFeedDisplayComponent";
source="PrimaryGunner";
};
};
};
class VehicleSystemsDisplayManagerComponentRight: DefaultVehicleSystemsDisplayManagerRight
{
class Components: Components
{
class VehiclePrimaryGunnerDisplay
{
componentType="TransportFeedDisplayComponent";
source="PrimaryGunner";
};
};
};
};
class PilotCamera
{
class OpticsIn
{
class Wide
{
opticsDisplayName="W";
initAngleX=0;
minAngleX=0;
maxAngleX=0;
initAngleY=0;
minAngleY=0;
maxAngleY=0;
initFov=0.5;
minFov=0.5;
maxFov=0.5;
directionStabilized=1;
visionMode[]=
{
"Normal",
"NVG"
};
thermalMode[]={0,1};
gunnerOpticsModel="A3\drones_f\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_wide_F.p3d";
};
showMiniMapInOptics=0;
showUAVViewpInOptics=0;
showSlingLoadManagerInOptics=1;
};
minTurn=0;
maxTurn=0;
initTurn=0;
minElev=80;
maxElev=80;
initElev=80;
maxXRotSpeed=0.5;
maxYRotSpeed=0.5;
pilotOpticsShowCursor=1;
controllable=0;
};
memoryPointDriverOptics="slingCamera";
class ViewPilot: ViewPilot
{
initAngleX=-2.5;
};
class CargoTurret;
class Turrets: Turrets
{
class BRAF_CopilotTurret: CopilotTurret
{
gunnerAction="braf_fennec_copilot";
gunnerInAction="copilot_Heli_Light_02";
gunnerName="$STR_A3_COPILOT";
precisegetinout=1;
isCopilot=1;
gunnerGetInAction="copilot_Heli_Light_02_Enter";
gunnerGetOutAction="copilot_Heli_Light_02_Exit";
memoryPointsGetInGunner="pos_copilot";
memoryPointsGetInGunnerDir="dir_copilot";
memoryPointsGetInGunnerPrecise="GetIn_Copilot";
proxyIndex=1;
canEject=0;
selectionFireAnim="";
minElev=-50;
maxElev=30;
initElev=-11;
minTurn=-170;
maxTurn=170;
initTurn=0;
gunnerLeftHandAnimName="collective";
gunnerRightHandAnimName="cyclic_copilot";
gunnerLeftFootAnimName="Pedals_Left";
gunnerRightFootAnimName="Pedals_Right";
gunnerCompartments="Compartment1";
weapons[]={};
magazines[]={};
soundServo[]={"",0.0099999998,1,30};
class Reflectors
{
class Top
{
color[]={7000,7500,10000};
ambient[]={70,75,100};
intensity=50;
size=1;
innerAngle=15;
outerAngle=65;
coneFadeCoef=10;
position="light_t_pos";
direction="light_t_dir";
hitpoint="HP_light_t";
selection="light_t";
useFlare=1;
flareSize=15;
flareMaxDistance=250;
dayLight=0;
class Attenuation
{
start=0;
constant=0;
linear=1;
quadratic=1;
hardLimitStart=100;
hardLimitEnd=200;
};
};
class Bottom: Top
{
position="light_b_pos";
direction="light_b_dir";
hitpoint="HP_light_b";
selection="light_b";
};
};
class Components
{
class VehicleSystemsDisplayManagerComponentLeft: VehicleSystemsTemplateLeftPilot
{
};
class VehicleSystemsDisplayManagerComponentRight: VehicleSystemsTemplateRightPilot
{
};
};
};
class BRAF_Cargo_Heli_Right: CargoTurret
{
gunnerAction="passenger_inside_2";
gunnerName="Right Shooter";
gunnerGetInAction="GetInLow";
gunnerGetOutAction="GetOutLow";
memoryPointsGetInGunner="pos_gunner_R";
memoryPointsGetInGunnerDir="dir_gunner_R";
gunnerCompartments="Compartment1";
enabledByAnimationSource="Door_r";
proxyIndex=5;
commanding=3;
isPersonTurret=1;
minTurn=-60;
maxTurn=40;
minElev=-50;
maxElev=28;
};
class BRAF_Cargo_Heli_Left: BRAF_Cargo_Heli_Right
{
gunnerName="Left Shooter";
memoryPointsGetInGunner="pos_gunner_L";
memoryPointsGetInGunnerDir="dir_gunner_L";
enabledByAnimationSource="Door_l";
proxyIndex=6;
minTurn=-40;
maxTurn=60;
};
};
#include "Fennec_sounds.hpp"
class EventHandlers: EventHandlers
{
init="if (local (_this select 0)) then {[(_this select 0), """", [], false] call bis_fnc_initVehicle; [(_this select 0), ""Init""] call BRAF_fnc_efs;};";
};
ace_cargo_space=2;
class TextureSources
{
class 1BAvEx
{
author="BRAF Team";
displayName="Brazilian Army 1st BAvEx";
textures[]=
{
"braf\braf_air\braf_helicopters\braf_fennec\data\1BAvEx_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo2_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo3_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo4_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo5_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Glass_ca.paa"
};
factions[]=
{
"BRAF_ARMY"
};
};
class 3BAvEx
{
author="BRAF Team";
displayName="Brazilian Army 3rd BAvEx";
textures[]=
{
"braf\braf_air\braf_helicopters\braf_fennec\data\3BAvEx_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo2_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo3_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo4_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo5_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Glass_ca.paa"
};
factions[]=
{
"BRAF_ARMY"
};
};
class 80s
{
author="BRAF Team";
displayName="Brazilian Army 80s";
textures[]=
{
"braf\braf_air\braf_helicopters\braf_fennec\data\80s_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo2_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo3_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo4_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo5_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Glass_ca.paa"
};
factions[]=
{
"BRAF_ARMY"
};
};
class Resort
{
author="BRAF Team";
side=3;
displayName="Civilian Resort";
textures[]=
{
"braf\braf_air\braf_helicopters\braf_fennec\data\resort_1_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo2_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo3_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo4_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\resort_5_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Glass_ca.paa"
};
factions[]=
{
"BRAF_CIV"
};
};
class FAB
{
author="BRAF Team";
displayName="Brazilian Air Force";
textures[]=
{
"braf\braf_air\braf_helicopters\braf_fennec\data\FAB\Camo1_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo2_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo3_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\FAB\Camo4_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\FAB\Camo5_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Glass_ca.paa"
};
factions[]=
{
"BRAF_FAB"
};
};
class HU1
{
author="BRAF Team";
displayName="Brazilian Navy Águia Squadron";
textures[]=
{
"braf\braf_air\braf_helicopters\braf_fennec\data\MB\HU1_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo2_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo3_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\MB\Camo4_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\MB\Camo5_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Glass_ca.paa"
};
factions[]=
{
"BRAF_NAVY"
};
};
class HU51
{
author="BRAF Team";
displayName="Brazilian Navy Albatroz Squadron";
textures[]=
{
"braf\braf_air\braf_helicopters\braf_fennec\data\MB\HU51_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo2_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo3_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\MB\Camo4_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\MB\Camo5_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Glass_ca.paa"
};
factions[]=
{
"BRAF_NAVY"
};
};
class HU61
{
author="BRAF Team";
displayName="Brazilian Navy Gavião Squadron";
textures[]=
{
"braf\braf_air\braf_helicopters\braf_fennec\data\MB\HU61_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo2_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo3_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\MB\Camo4_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\MB\Camo5_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Glass_ca.paa"
};
factions[]=
{
"BRAF_NAVY"
};
};
class HU91
{
author="BRAF Team";
displayName="Brazilian Navy Tucano Squadron";
textures[]=
{
"braf\braf_air\braf_helicopters\braf_fennec\data\MB\HU91_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo2_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo3_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\MB\Camo4_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\MB\Camo5_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Glass_ca.paa"
};
factions[]=
{
"BRAF_NAVY"
};
};
};
textureList[]=
{
"1BAvEx",
1
};
};
class BRAF_Fennec_dynamicLoadout_base: BRAF_Fennec_Base
{
cost=3000000;
threat[]={0.9,0.75,0.5};
class SpeechVariants
{
class Default
{
speechSingular[]=
{
"veh_air_gunship_s"
};
speechPlural[]=
{
"veh_air_gunship_p"
};
};
};
textSingular="$STR_A3_nameSound_veh_air_gunship_s";
textPlural="$STR_A3_nameSound_veh_air_gunship_p";
availableForSupportTypes[]=
{
"CAS_Heli"
};
hideWeaponsCargo=1;
transportSoldier=0;
enableSweep=1;
slingLoadMinCargoMass=0;
slingLoadMaxCargoMass=10;
class Components: Components
{
class TransportPylonsComponent
{
uiPicture="\braf\braf_air\Braf_Helicopters\Braf_Fennec\data\ui\fennec_loadout_ca.paa";
class Pylons
{
class PylonLeft1
{
attachment="BRAF_PylonPod_50_cal";
priority=5;
hardpoints[]=
{
"BRAF_rocket_he_PYLON",
"BRAF_rocket_ap_PYLON",
"BRAF_50cal_PYLON"
};
UIposition[]={0.059999999,0.40000001};
};
class PylonRight1: PylonLeft1
{
attachment="BRAF_PylonPod_rocket_ap";
mirroredMissilePos=1;
hardpoints[]=
{
"BRAF_rocket_he_PYLON",
"BRAF_rocket_ap_PYLON",
"BRAF_50cal_PYLON"
};
UIposition[]={0.58999997,0.40000001};
};
};
class Presets
{
class Empty
{
displayName="$STR_empty";
attachment[]={};
};
class CAS
{
displayName="$STR_vehicle_default";
attachment[]=
{
"BRAF_PylonPod_50_cal",
"BRAF_PylonPod_rocket_he"
};
};
class AT
{
displayName="$STR_A3_cfgmagazines_titan_at_dns";
attachment[]=
{
"BRAF_PylonPod_rocket_ap",
"BRAF_PylonPod_rocket_ap"
};
};
};
};
};
class AnimationSources: AnimationSources
{
class CollisionLightRed
{
source="MarkerLight";
markerLight="CollisionRed";
animPeriod=0;
initPhase=0;
};
class CollisionLightWhite
{
source="MarkerLight";
markerLight="CollisionWhite";
animPeriod=0;
initPhase=0;
};
class Hud_Fold
{
source="user";
animPeriod=1.5;
initPhase=0;
};
class NVG_Hide
{
source="user";
animPeriod=0;
initPhase=1;
};
class Bench_Fold
{
source="user";
animPeriod=0;
initPhase=1;
};
class Radar_Hide
{
source="user";
animPeriod=0;
initPhase=1;
};
class Flir_Hide
{
source="user";
animPeriod=0;
initPhase=1;
};
class Hud_Hide
{
source="user";
animPeriod=0;
initPhase=1;
};
class WS_Hide
{
source="user";
animPeriod=0;
initPhase=1;
};
class Wings_Hide
{
source="user";
animPeriod=0;
initPhase=1;
};
class EFS_Cover_Hide
{
source="user";
animPeriod=0;
initPhase=0;
};
class EFS_Hide
{
source="user";
animPeriod=0;
initPhase=0;
};
};
class Turrets: Turrets
{
class BRAF_CopilotTurret: MainTurret
{
proxyIndex=1;
proxyType="CPGunner";
body="mainTurret";
gun="mainGun";
gunBeg="gunBeg";
gunEnd="gunEnd";
animationSourceBody="mainTurret";
animationSourceGun="mainGun";
memoryPointsGetInGunner="pos_copilot";
memoryPointsGetInGunnerDir="dir_copilot";
stabilizedInAxes=3;
primaryGunner=0;
memoryPointGunnerOptics="rendertarget0_dir";
minElev=-120;
maxElev=20;
initElev=0;
minTurn=-180;
maxTurn=180;
initTurn=0;
gunnerName="$STR_A3_COPILOT";
isCopilot=1;
turretInfoType="BRAF_RscOptics_Air_FLIR";
weapons[]=
{
"Laserdesignator_mounted"
};
soundServo[]=
{
"",
0.0099999998,
1,
30
};
magazines[]=
{
"Laserbatteries"
};
startEngine=0;
gunnerHasFlares=0;
usePiP=1;
inGunnerMayFire=1;
gunnerAction="braf_fennec_copilot";
gunnerInAction="copilot_Heli_Light_03";
precisegetinout=1;
gunnerGetInAction="copilot_Heli_Light_01_Enter";
gunnerGetOutAction="copilot_Heli_Light_01_Exit";
gunnerOpticsEffect[]={};
gunnerOpticsModel="";
gunnerLeftHandAnimName="collective";
gunnerRightHandAnimName="cyclic_copilot";
gunnerLeftFootAnimName="Pedals_Left";
gunnerRightFootAnimName="Pedals_Right";
gunnerCompartments="Compartment1";
class OpticsIn
{
class Wide
{
opticsDisplayName="WFOV";
initAngleX=0;
minAngleX=-120;
maxAngleX=30;
initAngleY=0;
minAngleY=-180;
maxAngleY=180;
initFov=0.5236;
minFov=0.5236;
maxFov=0.5236;
visionMode[]=
{
"Normal",
"Ti"
};
thermalMode[]={0,1};
thermalNoise[]=
{
0.5, //intensity,
1.25, //sharpness,
2.5, //grainSize,
0.75, //intensityX0,
1, //intensityX1,
0, //monochromatic,
0, //static,
0.95 //blurCoef
};
gunnerOpticsModel="\braf\braf_optics_air\StarSaphire\braf_StarSaphire_w.p3d";
gunnerOpticsEffect[]={};
directionStabilized=1;
};
class Medium: Wide
{
opticsDisplayName="MFOV";
initFov=0.0593;
minFov=0.0593;
maxFov=0.0593;
gunnerOpticsModel="\braf\braf_optics_air\StarSaphire\braf_StarSaphire_m.p3d";
};
class Narrow: Wide
{
opticsDisplayName="NFOV";
gunnerOpticsModel="\braf\braf_optics_air\StarSaphire\braf_StarSaphire_n.p3d";
initFov=0.0140;
minFov=0.0140;
maxFov=0.0140;
};
class Narrower: Narrow
{
opticsDisplayName="NFOV 2X";
initFov=0.0070;
minFov=0.0070;
maxFov=0.0070;
};
class UltraNarrow: Narrow
{
opticsDisplayName="NFOV 4X";
initFov=0.0035;
minFov=0.0035;
maxFov=0.0035;
};
};
class OpticsOut
{
class Monocular
{
initAngleX=0;
minAngleX=-30;
maxAngleX=30;
initAngleY=0;
minAngleY=-100;
maxAngleY=100;
minFov=0.25;
maxFov=1.25;
initFov=0.75;
visionMode[]=
{
"Normal",
"NVG"
};
gunnerOpticsModel="";
gunnerOpticsEffect[]={};
};
};
class ViewGunner: ViewPilot
{
initAngleX=-15;
};
class HitPoints
{
class HitTurret
{
armor=1;
material=-1;
name="HP_turret";
visual="mainTurret";
armorComponent="mainTurret";
passThrough=0.2;
radius=0.25;
};
class HitGun
{
armor=1;
material=-1;
name="HP_gun";
visual="mainGun";
armorComponent="mainGun";
passThrough=0.2;
radius=0.25;
};
};
class Reflectors
{
class Top
{
color[]={7000,7500,10000};
ambient[]={70,75,100};
intensity=50;
size=1;
innerAngle=15;
outerAngle=65;
coneFadeCoef=10;
position="light_t_pos";
direction="light_t_dir";
hitpoint="HP_light_t";
selection="light_t";
useFlare=1;
flareSize=15;
flareMaxDistance=250;
dayLight=0;
class Attenuation
{
start=0;
constant=0;
linear=1;
quadratic=1;
hardLimitStart=100;
hardLimitEnd=200;
};
};
class Bottom: Top
{
position="light_b_pos";
direction="light_b_dir";
hitpoint="HP_light_b";
selection="light_b";
};
};
class Components
{
class VehicleSystemsDisplayManagerComponentLeft: VehicleSystemsTemplateLeftPilot
{
};
class VehicleSystemsDisplayManagerComponentRight: VehicleSystemsTemplateRightPilot
{
};
};
};
};
class UserActions
{
class HUD_Fold
{
displayname="Fold HUD";
position="cabin";
showWindow=1;
radius=10;
priority=0;
onlyForPlayer=0;
condition="this animationphase 'HUD_Arm' < 0.1 AND (player in crew this)";
statement="this animate ['HUD_Arm',1],this animate ['HUD_Visor',1]";
};
class HUD_Unfold: HUD_Fold
{
displayname="Unfold HUD";
condition="this animationphase 'HUD_Arm' > 0.9 AND (player in crew this)";
statement="this animate ['HUD_Arm',0],this animate ['HUD_Visor',0]";
};
class NVG_ON
{
displayname="Turn NVG lights on";
position="cabin";
showWindow=1;
radius=10;
priority=0;
onlyForPlayer=0;
condition="this animationphase 'NVG_Hide' > 0.9 AND (player in crew this)";
statement="this animate ['NVG_Hide',0]";
};
class NVG_OFF: NVG_ON
{
displayname="Turn NVG lights off";
condition="this animationphase 'NVG_Hide' < 0.1 AND (player in crew this)";
statement="this animate ['NVG_Hide',1]";
};
class Arm_EFS
{
displayname="<t color='#ffaa00'> Arm EFS </t>";
position="cabin";
showWindow=1;
radius=10;
priority=1;
onlyForPlayer=0;
condition="getNumber (configOf this >> 'canFloat') == 1 AND this animationphase 'EFS_Cover_Hide' > 0.9 AND (player in crew this) AND ((this getVariable ['braf_efs_state','SAFE']) == 'SAFE')";
statement="[this, ""arm""] call BRAF_fnc_efs";
};
class Disarm_EFS: Arm_EFS
{
displayname="<t color='#ffaa00'> Disarm EFS </t>";
condition="getNumber (configOf this >> 'canFloat') == 1 AND this animationphase 'EFS_Cover_Hide' > 0.9 AND (player in crew this) AND ((this getVariable ['braf_efs_state','SAFE']) == 'ARMED')";
statement="[this, ""disarm""] call BRAF_fnc_efs";
};
class Deploy_Floats: Arm_EFS
{
displayname="<t color='#b31d00'> Deploy Floats </t>";
condition="getNumber (configOf this >> 'canFloat') == 1 AND this animationphase 'EFS_Cover_Hide' > 0.9 AND (player in crew this) AND ((this getVariable ['braf_efs_state','SAFE']) == 'ARMED')";
statement="[this, ""deployfloats""] call BRAF_fnc_efs";
};
};
};
class BRAF_Fennec_SAR_base: BRAF_Fennec_Base
{
cost=750000;
threat[]={0.1,0,0};
availableForSupportTypes[]=
{
"Drop",
"Transport"
};
transportSoldier=3;
slingLoadMaxCargoMass=10;
class AnimationSources: AnimationSources
{
class CollisionLightRed
{
source="MarkerLight";
markerLight="CollisionRed";
animPeriod=0;
initPhase=0;
};
class CollisionLightWhite
{
source="MarkerLight";
markerLight="CollisionWhite";
animPeriod=0;
initPhase=0;
};
class NVG_Hide
{
source="user";
animPeriod=0;
initPhase=1;
};
class Hoist_Hide
{
source="user";
animPeriod=0;
initPhase=1;
};
/*
class Bench_Fold
{
source="user";
animPeriod=0;
initPhase=1;
};
*/
class Winch_Rot
{
source="user";
animPeriod=1;
initPhase=0;
};
class Flir_Hide
{
source="user";
animPeriod=0;
initPhase=1;
};
class Winch_Hide
{
source="user";
animPeriod=0;
initPhase=1;
};
class door_l
{
source="user";
animPeriod=1;
initPhase=1;
};
class door_r
{
source="user";
animPeriod=1;
initPhase=0;
};
class EFS_Cover_Hide
{
source="user";
animPeriod=0;
initPhase=0;
};
class EFS_Hide
{
source="user";
animPeriod=0;
initPhase=0;
};
};
class Turrets: Turrets
{
class BRAF_CopilotTurret: MainTurret
{
body="mainTurret";
gun="mainGun";
gunBeg="gunBeg";
gunEnd="gunEnd";
animationSourceBody="mainturret";
animationSourceGun="mainGun";
memoryPointsGetInGunner="pos_copilot";
memoryPointsGetInGunnerDir="dir_copilot";
stabilizedInAxes=3;
primaryGunner=0;
memoryPointGunnerOptics="rendertarget0_dir";
minElev=-120;
maxElev=20;
initElev=0;
minTurn=-180;
maxTurn=180;
initTurn=0;
gunnerName="$STR_A3_COPILOT";
isCopilot=1;
turretInfoType="BRAF_RscOptics_Air_FLIR";
weapons[]=
{
"Laserdesignator_mounted"
};
soundServo[]=
{
"",
0.0099999998,
1,
30
};
magazines[]=
{
"Laserbatteries"
};
usePiP=1;
inGunnerMayFire=1;
proxyIndex=1;
gunnerAction="braf_fennec_copilot";
gunnerInAction="copilot_Heli_Light_03";
precisegetinout=1;
gunnerGetInAction="copilot_Heli_Light_01_Enter";
gunnerGetOutAction="copilot_Heli_Light_01_Exit";
gunnerOpticsEffect[]={};
gunnerOpticsModel="";
gunnerLeftHandAnimName="collective";
gunnerRightHandAnimName="cyclic_copilot";
gunnerLeftFootAnimName="Pedals_Left";
gunnerRightFootAnimName="Pedals_Right";
gunnerCompartments="Compartment1";
class OpticsIn
{
class Wide
{
opticsDisplayName="WFOV";
initAngleX=0;
minAngleX=-120;
maxAngleX=30;
initAngleY=0;
minAngleY=-180;
maxAngleY=180;
initFov=0.5236;
minFov=0.5236;
maxFov=0.5236;
visionMode[]=
{
"Normal",
"Ti"
};
thermalMode[]={0,1};
thermalNoise[]=
{
0.5,
1.25,
2.5,
0.75,
1,
0,
0,
0.95
};
gunnerOpticsModel="\braf\braf_optics_air\StarSaphire\braf_StarSaphire_w.p3d";
gunnerOpticsEffect[]={};
directionStabilized=1;
};
class Medium: Wide
{
opticsDisplayName="MFOV";
initFov=0.0593;
minFov=0.0593;
maxFov=0.0593;
gunnerOpticsModel="\braf\braf_optics_air\StarSaphire\braf_StarSaphire_m.p3d";
};
class Narrow: Wide
{
opticsDisplayName="NFOV";
gunnerOpticsModel="\braf\braf_optics_air\StarSaphire\braf_StarSaphire_n.p3d";
initFov=0.0140;
minFov=0.0140;
maxFov=0.0140;
};
class Narrower: Narrow
{
opticsDisplayName="NFOV 2X";
initFov=0.0070;
minFov=0.0070;
maxFov=0.0070;
};
class UltraNarrow: Narrow
{
opticsDisplayName="NFOV 4X";
initFov=0.0035;
minFov=0.0035;
maxFov=0.0035;
};
};
class OpticsOut
{
class Monocular
{
initAngleX=0;
minAngleX=-30;
maxAngleX=30;
initAngleY=0;
minAngleY=-100;
maxAngleY=100;
minFov=0.25;
maxFov=1.25;
initFov=0.75;
visionMode[]=
{
"Normal",
"NVG"
};
gunnerOpticsModel="";
gunnerOpticsEffect[]={};
};
};
class ViewGunner: ViewPilot
{
initAngleX=-15;
};
startEngine=0;
gunnerHasFlares=0;
class HitPoints
{
class HitTurret
{
armor=1;
material=-1;
name="HP_turret";
visual="mainTurret";
armorComponent="mainTurret";
passThrough=0.2;
radius=0.25;
};
class HitGun
{
armor=1;
material=-1;
name="HP_gun";
visual="mainGun";
armorComponent="mainGun";
passThrough=0.2;
radius=0.25;
};
};
class Reflectors
{
class Top
{
color[]={7000,7500,10000};
ambient[]={70,75,100};
intensity=50;
size=1;
innerAngle=15;
outerAngle=65;
coneFadeCoef=10;
position="light_t_pos";
direction="light_t_dir";
hitpoint="HP_light_t";
selection="light_t";
useFlare=1;
flareSize=15;
flareMaxDistance=250;
dayLight=0;
class Attenuation
{
start=0;
constant=0;
linear=1;
quadratic=1;
hardLimitStart=100;
hardLimitEnd=200;
};
};
class Bottom: Top
{
position="light_b_pos";
direction="light_b_dir";
hitpoint="HP_light_b";
selection="light_b";
};
};
class Components
{
class VehicleSystemsDisplayManagerComponentLeft: VehicleSystemsTemplateLeftPilot
{
};
class VehicleSystemsDisplayManagerComponentRight: VehicleSystemsTemplateRightPilot
{
};
};
};
class BRAF_Cargo_Heli_Left: BRAF_Cargo_Heli_Left
{};
};
class UserActions
{
class Deploy_Rescue_Seat
{
displayname="<t color='#ffaa00'> Deploy Rescue Seat </t>";
position="hoist_hook_pos";
showWindow=1;
radius=20;
priority=1;
onlyForPlayer=0;
condition="this animationphase 'Hoist_Hide' > 0.9 AND (player in crew this) AND this animationphase 'door_L_2' > 0.9 AND !(""BRAF_Rescue_Seat"" in (this getVariable ['braf_hoist_spent_payloads', []]))";
statement="this animate ['Winch_Rot',1]; [this, ""deploy"", ""BRAF_Rescue_Seat""] call BRAF_fnc_hoist; this animate ['Hoist_Hide',-0.5]";
};
class Hoist_Down: Deploy_Rescue_Seat
{
displayname="<t color='#ffaa00'> Extend Cable Hook </t>";
condition="this animationphase 'Hoist_Hide' < -0.4 AND this animationphase 'Hoist_Hide' > -0.6 AND (player in crew this) AND this animationphase 'door_L_2' > 0.9";
statement="[this, ""down""] call BRAF_fnc_hoist; this animate ['Hoist_Hide',-1]; this say3d ""Winch""";
};
class Hoist_Up: Deploy_Rescue_Seat
{
displayname="<t color='#ffaa00'> Recover Hoist Hook </t>";
condition="this animationphase 'Hoist_Hide' < -0.9 AND (player in crew this) AND this animationphase 'door_L_2' > 0.9";
statement="[this, ""up""] call BRAF_fnc_hoist; this animate ['Hoist_Hide',-0.5]; this say3d ""Winch""";
};
class Recover_Rescue_Seat: Deploy_Rescue_Seat
{
displayname="<t color='#ffaa00'> Retrieve Rescue Payload </t>";
condition="(player in crew this) AND this animationphase 'door_L_2' > 0.9 AND this animationphase 'Hoist_Hide' < -0.4 AND this animationphase 'Hoist_Hide' > -0.6";
statement="[this, ""recover""] call BRAF_fnc_hoist; this animate ['Winch_Rot',0]; this animate ['Hoist_Hide',1]";
};
class Hoist_Cut: Deploy_Rescue_Seat
{
displayname="<t color='#b31d00'> Cut Hoist Hook Cable </t>";
condition="(player in crew this) AND this animationphase 'Hoist_Hide' < 0 AND this animationphase 'door_L_2' > 0.9";
statement="[this, ""cut""] call BRAF_fnc_hoist; this animate ['Winch_Rot',0]; this animate ['Hoist_Hide',1]";
};
class NVG_ON
{
displayname="Turn NVG lights on";
position="cabin";
showWindow=1;
radius=10;
priority=0;
onlyForPlayer=0;
condition="this animationphase 'NVG_Hide' > 0.9 AND (player in crew this)";
statement="this animate ['NVG_Hide',0]";
};
class NVG_OFF: NVG_ON
{
displayname="Turn NVG lights off";
condition="this animationphase 'NVG_Hide' < 0.1 AND (player in crew this)";
statement="this animate ['NVG_Hide',1]";
};
class Arm_EFS
{
displayname="<t color='#ffaa00'> Arm EFS </t>";
position="cabin";
showWindow=1;
radius=10;
priority=1;
onlyForPlayer=0;
condition="getNumber (configOf this >> 'canFloat') == 1 AND this animationphase 'EFS_Cover_Hide' > 0.9 AND (player in crew this) AND ((this getVariable ['braf_efs_state','SAFE']) == 'SAFE')";
statement="[this, ""arm""] call BRAF_fnc_efs";
};
class Disarm_EFS: Arm_EFS
{
displayname="<t color='#ffaa00'> Disarm EFS </t>";
condition="getNumber (configOf this >> 'canFloat') == 1 AND this animationphase 'EFS_Cover_Hide' > 0.9 AND (player in crew this) AND ((this getVariable ['braf_efs_state','SAFE']) == 'ARMED')";
statement="[this, ""disarm""] call BRAF_fnc_efs";
};
class Deploy_Floats: Arm_EFS
{
displayname="<t color='#b31d00'> Deploy Floats </t>";
condition="getNumber (configOf this >> 'canFloat') == 1 AND this animationphase 'EFS_Cover_Hide' > 0.9 AND (player in crew this) AND ((this getVariable ['braf_efs_state','SAFE']) == 'ARMED')";
statement="[this, ""deployfloats""] call BRAF_fnc_efs";
};
class Open_Door_Right
{
position="door_pos";
showWindow=1;
radius=5;
priority=0;
onlyForPlayer=0;
displayname="Open Right Door";
condition="this animationphase 'door_R_2' < 0.1 AND (player in crew this)";
statement = "this animate ['door_R_1',1], this animate ['door_R_2',1], this animate ['door_r_rot',1], this say3d ""Doors""";
};
class Close_Door_Right: Open_Door_Right
{
displayname="Close Right Door";
condition="this animationphase 'door_R_2' > 0.9 AND (player in crew this)";
statement = "this animate ['door_R_1',0], this animate ['door_R_2',0], this animate ['door_r_rot',0], this say3d ""Doors""";
};
};
};
class BRAF_Fennec_unarmed_base: BRAF_Fennec_Base
{
availableForSupportTypes[]=
{
"Drop",
"Transport"
};
slingLoadMaxCargoMass=10;
class Turrets: Turrets
{
class BRAF_CopilotTurret: BRAF_CopilotTurret
{};
class BRAF_Cargo_Heli_Right: BRAF_Cargo_Heli_Right
{};
class BRAF_Cargo_Heli_Left: BRAF_Cargo_Heli_Left
{};
};
class AnimationSources: AnimationSources
{
class CollisionLightRed
{
source="MarkerLight";
markerLight="CollisionRed";
animPeriod=0;
initPhase=0;
};
class CollisionLightWhite
{
source="MarkerLight";
markerLight="CollisionWhite";
animPeriod=0;
initPhase=0;
};
class NVG_Hide
{
source="user";
animPeriod=0;
initPhase=1;
};
class door_l
{
source="user";
animPeriod=1;
initPhase=1;
};
class door_r
{
source="user";
animPeriod=1;
initPhase=1;
};
class EFS_Cover_Hide
{
source="user";
animPeriod=0;
initPhase=0;
};
class EFS_Hide
{
source="user";
animPeriod=0;
initPhase=0;
};
};
class UserActions
{
class NVG_ON
{
displayname="Turn NVG lights on";
position="cabin";
showWindow=1;
radius=10;
priority=0;
onlyForPlayer=0;
condition="this animationphase 'NVG_Hide' > 0.9 AND (player in crew this)";
statement="this animate ['NVG_Hide',0]";
};
class NVG_OFF: NVG_ON
{
displayname="Turn NVG lights off";
condition="this animationphase 'NVG_Hide' < 0.1 AND (player in crew this)";
statement="this animate ['NVG_Hide',1]";
};
class Arm_EFS
{
displayname="<t color='#ffaa00'> Arm EFS </t>";
position="cabin";
showWindow=1;
radius=10;
priority=1;
onlyForPlayer=0;
condition="getNumber (configOf this >> 'canFloat') == 1 AND this animationphase 'EFS_Cover_Hide' > 0.9 AND (player in crew this) AND ((this getVariable ['braf_efs_state','SAFE']) == 'SAFE')";
statement="[this, ""arm""] call BRAF_fnc_efs";
};
class Disarm_EFS: Arm_EFS
{
displayname="<t color='#ffaa00'> Disarm EFS </t>";
condition="getNumber (configOf this >> 'canFloat') == 1 AND this animationphase 'EFS_Cover_Hide' > 0.9 AND (player in crew this) AND ((this getVariable ['braf_efs_state','SAFE']) == 'ARMED')";
statement="[this, ""disarm""] call BRAF_fnc_efs";
};
class Deploy_Floats: Arm_EFS
{
displayname="<t color='#b31d00'> Deploy Floats </t>";
condition="getNumber (configOf this >> 'canFloat') == 1 AND this animationphase 'EFS_Cover_Hide' > 0.9 AND (player in crew this) AND ((this getVariable ['braf_efs_state','SAFE']) == 'ARMED')";
statement="[this, ""deployfloats""] call BRAF_fnc_efs";
};
};
};
class BRAF_Fennec_cargo_base: BRAF_Fennec_Base
{
availableForSupportTypes[]=
{
"Drop",
"Transport"
};
enableSweep=0;
transportSoldier=4;
class Turrets: Turrets
{
class BRAF_CopilotTurret: BRAF_CopilotTurret
{};
};
class AnimationSources: AnimationSources
{
class CollisionLightRed
{
source="MarkerLight";
markerLight="CollisionRed";
animPeriod=0;
initPhase=0;
};
class CollisionLightWhite
{
source="MarkerLight";
markerLight="CollisionWhite";
animPeriod=0;
initPhase=0;
};
class NVG_Hide
{
source="user";
animPeriod=0;
initPhase=1;
};
class door_l
{
source="user";
animPeriod=1;
initPhase=0;
};
class door_r
{
source="user";
animPeriod=1;
initPhase=0;
};
class Slingcrane_Hide
{
source="user";
animPeriod=1;
initPhase=1;
};
};
};
class BRAF_Fennec_Unarmed: BRAF_Fennec_unarmed_base
{
author="BRAF TEAM";
_generalMacro="BRAF_Fennec_Unarmed";
editorPreview="\braf\braf_insignia\editorpreview\Air\BRAF_Fennec_Unarmed.jpg";
scope=2;
side=2;
scopeCurator=2;
scopeArsenal=2;
forceInGarage=1;
displayName="AS-550A2 Fennec Transport";
textureList[]=
{
"1BAvEx",0.5,
"3BAvEx",0.5
};
};
class BRAF_Fennec_Unarmed_MB: BRAF_Fennec_unarmed_base
{
author="BRAF TEAM";
_generalMacro="BRAF_Fennec_Unarmed_MB";
faction="BRAF_NAVY";
canFloat=1;
waterAngularDampingCoef=0;
waterDamageEngine=0.2;
waterEffect="HeliWater";
waterLeakiness=100;
waterLinearDampingCoefX=0;
waterLinearDampingCoefY=0;
waterPPInVehicle=1;
waterResistance=1;
waterResistanceCoef=0.5;
crew="braf_characters_aviation_navy_pilot";
editorPreview="\braf\braf_insignia\editorpreview\air\BRAF_Fennec_Unarmed_MB.jpg";
scope=2;
side=2;
scopeCurator=2;
scopeArsenal=2;
forceInGarage=1;
displayName="UH-12 Esquilo Transport";
typicalCargo[]=
{
"braf_characters_aviation_navy_pilot"
};
textureList[]=
{
"HU1",0.25,
"HU51",0.25,
"HU61",0.25,
"HU91",0.25
};
animationList[]=
{
"EFS_Cover_Hide",1,
"EFS_Hide",0
};
};
class BRAF_Fennec_Unarmed_FAB: BRAF_Fennec_unarmed_base
{
author="BRAF TEAM";
_generalMacro="BRAF_Fennec_Unarmed_FAB";
faction="BRAF_FAB";
editorPreview="\braf\braf_insignia\editorpreview\air\BRAF_Fennec_Unarmed_FAB.jpg";
scope=2;
side=2;
forceInGarage=1;
crew="braf_characters_aviation_air_force_pilot";
scopeCurator=2;
scopeArsenal=2;
displayName="H-50 Esquilo Transport";
typicalCargo[]=
{
"braf_characters_aviation_air_force_pilot"
};
textureList[]=
{
"FAB",1
};
};
class BRAF_Fennec_Resort: BRAF_Fennec_cargo_base
{
author="BRAF TEAM";
_generalMacro="BRAF_Fennec_Resort";
editorPreview="\braf\braf_insignia\editorpreview\brazilian_civ\Air\BRAF_Fennec_Resort.jpg";
scope=2;
faction="BRAF_CIV";
canFloat=1;
waterAngularDampingCoef=0;
waterDamageEngine=0.2;
waterEffect="HeliWater";
waterLeakiness=100;
waterLinearDampingCoefX=0;
waterLinearDampingCoefY=0;
waterPPInVehicle=1;
waterResistance=1;
waterResistanceCoef=0.5;
side=3;
scopeCurator=2;
scopeArsenal=2;
forceInGarage=1;
displayName="AS-550A2 Fennec Resort";
crew="C_Marshal_F";
typicalCargo[]=
{
"C_Marshal_F"
};
textureList[]=
{
"Resort",1
};
animationList[]=
{
"EFS_Cover_Hide",1,
"EFS_Hide",0
};
};
class BRAF_Fennec_80s: BRAF_Fennec_unarmed_base
{
author="BRAF TEAM";
_generalMacro="BRAF_Fennec_80s";
editorPreview="\braf\braf_insignia\editorpreview\Air\BRAF_Fennec_80s.jpg";
scope=2;
side=2;
scopeCurator=2;
scopeArsenal=2;
displayName="AS-550A2 Fennec AvEx 100 years";
textureList[]=
{
"80s",1
};
};
class BRAF_Fennec_Armed: BRAF_Fennec_dynamicLoadout_base
{
author="BRAF TEAM";
_generalMacro="BRAF_Fennec_Armed";
editorPreview="\braf\braf_insignia\editorpreview\Air\BRAF_Fennec_Armed.jpg";
scope=2;
side=2;
scopeCurator=2;
scopeArsenal=2;
displayName="AS-550A2 Fennec Light Attack";
textureList[]=
{
"1BAvEx",0.5,
"3BAvEx",0.5
};
};
class BRAF_Fennec_Armed_MB: BRAF_Fennec_dynamicLoadout_base
{
author="BRAF TEAM";
_generalMacro="BRAF_Fennec_Armed_MB";
faction="BRAF_NAVY";
canFloat=1;
waterAngularDampingCoef=0;
waterDamageEngine=0.2;
waterEffect="HeliWater";
waterLeakiness=100;
waterLinearDampingCoefX=0;
waterLinearDampingCoefY=0;
waterPPInVehicle=1;
waterResistance=1;
waterResistanceCoef=0.5;
crew="braf_characters_aviation_navy_pilot";
editorPreview="\braf\braf_insignia\editorpreview\air\BRAF_Fennec_Armed_MB.jpg";
scope=2;
side=2;
scopeCurator=2;
scopeArsenal=2;
displayName="UH-12 Esquilo Light Attack";
typicalCargo[]=
{
"braf_characters_aviation_navy_pilot"
};
textureList[]=
{
"HU1",0.25,
"HU51",0.25,
"HU61",0.25,
"HU91",0.25
};
animationList[]=
{
"EFS_Cover_Hide",1,
"EFS_Hide",0
};
};
class BRAF_Fennec_Armed_FAB: BRAF_Fennec_dynamicLoadout_base
{
author="BRAF TEAM";
_generalMacro="BRAF_Fennec_Armed_FAB";
faction="BRAF_FAB";
crew="braf_characters_aviation_air_force_pilot";
editorPreview="\braf\braf_insignia\editorpreview\air\BRAF_Fennec_Armed_FAB.jpg";
scope=2;
side=2;
scopeCurator=2;
scopeArsenal=2;
displayName="H-50 Esquilo Light Attack";
typicalCargo[]=
{
"braf_characters_aviation_air_force_pilot"
};
textureList[]=
{
"FAB",1
};
};
class BRAF_Fennec_Cargo: BRAF_Fennec_cargo_base
{
author="BRAF TEAM";
_generalMacro="BRAF_Fennec_Cargo";
editorPreview="\braf\braf_insignia\editorpreview\Air\BRAF_Fennec_Cargo.jpg";
scope=2;
side=2;
scopeCurator=2;
scopeArsenal=2;
displayName="AS-550A2 Fennec Cargo";
textureList[]=
{
"1BAvEx",0.5,
"3BAvEx",0.5
};
};
class BRAF_Fennec_Cargo_MB: BRAF_Fennec_cargo_base
{
author="BRAF TEAM";
_generalMacro="BRAF_Fennec_Cargo_MB";
faction="BRAF_NAVY";
canFloat=1;
waterAngularDampingCoef=0;
waterDamageEngine=0.2;
waterEffect="HeliWater";
waterLeakiness=100;
waterLinearDampingCoefX=0;
waterLinearDampingCoefY=0;
waterPPInVehicle=1;
waterResistance=1;
waterResistanceCoef=0.5;
crew="braf_characters_aviation_navy_pilot";
editorPreview="\braf\braf_insignia\editorpreview\air\BRAF_Fennec_Cargo_MB.jpg";
scope=2;
side=2;
scopeCurator=2;
scopeArsenal=2;
displayName="UH-12 Esquilo Cargo";
typicalCargo[]=
{
"braf_characters_aviation_navy_pilot"
};
textureList[]=
{
"HU1",0.25,
"HU51",0.25,
"HU61",0.25,
"HU91",0.25
};
animationList[]=
{
"EFS_Cover_Hide",1,
"EFS_Hide",0
};
};
class BRAF_Fennec_Cargo_FAB: BRAF_Fennec_cargo_base
{
author="BRAF TEAM";
_generalMacro="BRAF_Fennec_Cargo_FAB";
faction="BRAF_FAB";
crew="braf_characters_aviation_air_force_pilot";
editorPreview="\braf\braf_insignia\editorpreview\air\BRAF_Fennec_Cargo_FAB.jpg";
scope=2;
side=2;
scopeCurator=2;
scopeArsenal=2;
displayName="H-50 Esquilo Cargo";
typicalCargo[]=
{
"braf_characters_aviation_air_force_pilot"
};
textureList[]=
{
"FAB",1
};
};
class BRAF_Fennec_SAR: BRAF_Fennec_SAR_base
{
author="BRAF TEAM";
_generalMacro="BRAF_Fennec_SAR";
editorPreview="\braf\braf_insignia\editorpreview\Air\BRAF_Fennec_SAR.jpg";
scope=2;
side=2;
scopeCurator=2;
scopeArsenal=2;
displayName="AS-550A2 Fennec SAR";
textureList[]=
{
"1BAvEx",0.5,
"3BAvEx",0.5
};
};
class BRAF_Fennec_SAR_MB: BRAF_Fennec_SAR_base
{
author="BRAF TEAM";
_generalMacro="BRAF_Fennec_SAR_MB";
editorPreview="\braf\braf_insignia\editorpreview\air\BRAF_Fennec_SAR_MB.jpg";
crew="braf_characters_aviation_navy_pilot";
faction="BRAF_NAVY";
canFloat=1;
waterAngularDampingCoef=0;
waterDamageEngine=0.2;
waterEffect="HeliWater";
waterLeakiness=100;
waterLinearDampingCoefX=0;
waterLinearDampingCoefY=0;
waterPPInVehicle=1;
waterResistance=1;
waterResistanceCoef=0.5;
scope=2;
side=2;
scopeCurator=2;
scopeArsenal=2;
displayName="UH-12 Esquilo SAR";
typicalCargo[]=
{
"braf_characters_aviation_navy_pilot"
};
textureList[]=
{
"HU1",0.25,
"HU51",0.25,
"HU61",0.25,
"HU91",0.25
};
animationList[]=
{
"EFS_Cover_Hide",1,
"EFS_Hide",0
};
};
class BRAF_Fennec_SAR_FAB: BRAF_Fennec_SAR_base
{
author="BRAF TEAM";
_generalMacro="BRAF_Fennec_SAR_FAB";
editorPreview="\braf\braf_insignia\editorpreview\air\BRAF_Fennec_SAR_FAB.jpg";
crew="braf_characters_aviation_air_force_pilot";
faction="BRAF_FAB";
scope=2;
side=2;
scopeCurator=2;
scopeArsenal=2;
displayName="H-50 Esquilo SAR";
typicalCargo[]=
{
"braf_characters_aviation_air_force_pilot"
};
textureList[]=
{
"FAB",1
};
};