Files

2319 lines
56 KiB
C++

class braf_A29_base: Plane_Fighter_03_base_F
{
author="BRAF TEAM";
_generalmacro="BRAF_A29__01_base_F";
scope=0;
scopeCurator=2;
side="2";
faction="BRAF_FAB";
displayName="A-29 Super Tucano";
model="braf\braf_air2\braf_airplanes\braf_super_tucano\BRAF_A29.p3d";
icon="braf\braf_air2\braf_airplanes\braf_super_tucano\Data\UI\map_a29_supertucano_ca.paa";
picture="braf\braf_air2\braf_airplanes\braf_super_tucano\Data\UI\picture_a29supertucanoside_ca.paa";
accuracy=0.2;
editorSubcategory=EdSubcat_Planes;
memoryPointTaskMarker="TaskMarker_1_pos";
simulation="airplanex";
acceleration=300;
armor=60;
armorStructural=2;
armorLights=1;
epeImpulseDamageCoef=50;
damageResistance=0.004;
waterLeakiness=5.5;
destrType="DestructWreck";
damageEffect="AirDestructionEffects";
class NVGMarkers
{
class NVGMarker01
{
name="nvg_marker";
color[]={0.029999999,0.003,0.003,1};
ambient[]={0.003,0.00030000001,0.00030000001,1};
brightness=0.001;
blinking=1;
};
};
class pilotCamera
{
class OpticsIn{};
};
class ViewPilot
{
initAngleX = 0;
initAngleY = 0;
initFov = 0.75;
minFov = 0.25;
maxFov = 1.25;
minAngleX = -65;
maxAngleX = 85;
minAngleY = -150;
maxAngleY = 150;
};
driverCanEject=0;
gunnerCanEject=0;
cargoCanEject=0;
slingLoadCargoMemoryPoints[]=
{
"SlingLoadCargo1",
"SlingLoadCargo2",
"SlingLoadCargo3",
"SlingLoadCargo4"
};
driverAction="A29_Pilot";
driverIsCommander=1;
transportSoldier=0;
cargoCompartments[]=
{
"Compartment1",
"Compartment2"
};
driverCompartments="Compartment1";
viewDriverShadowDiff=0.5;
viewDriverShadowAmb=0.5;
selectionRotorStill="rotor_static";
selectionRotorMove="rotor_blur";
radarTargetSize=0.8;
visualTargetSize=0.8;
irTargetSize=0.8;
driverLeftHandAnimName="throttle_lever_pilot";
driverRightHandAnimName="stick_pilot";
driverRightLegAnimName="pedal_f_r";
driverLeftLegAnimName="pedal_f_l";
memoryPointLDust="dust_l";
memoryPointRDust="dust_r";
gunbeg[]=
{
"z_gun_l_muzzle",
"z_gun_r_muzzle"
};
gunend[]=
{
"z_gun_l_chamber",
"z_gun_r_chamber"
};
memoryPointGun[]=
{
"z_gun_l_muzzle",
"z_gun_r_muzzle"
};
memoryPointCM[]=
{
"flare_launcher_l",
"flare_launcher_r"
};
memoryPointCMDir[]=
{
"flare_launcher_l_dir",
"flare_launcher_r_dir"
};
weapons[]=
{
"BRAF_master_arm_safe",
"CMFlareLauncher"
};
magazines[]=
{
"braf_master_safe_magazine",
"120Rnd_CMFlare_Chaff_Magazine"
};
reportRemoteTargets=1;
reportOwnPosition=1;
radarType=4;
lockDetectionSystem=CM_Lock_Radar;
incomingMissileDetectionSystem=CM_Lock_Radar + CM_Missile;
class EjectionSystem
{
EjectionSeatEnabled=1;
EjectionDual=0;
EjectionSeatClass="braf_ejection_seat_A29";
CanopyClass="braf_A29_canopy";
EjectionSeatHideAnim="FrontEjectionSeatHide";
EjectionSeatRailAnim="FrontEjectionSeatMotion";
EjectionSeatHideAnim2="BackEjectionSeatHide";
EjectionSeatRailAnim2="BackEjectionSeatMotion";
CanopyHideAnim="CanopyHide";
EjectionSeatPos="pos_eject_1";
EjectionSeatPos2="pos_eject_2";
CanopyPos="pos_eject_canopy";
EjectionSoundExt="Plane_Fighter_01_ejection_ext_sound";
EjectionSoundInt="Plane_Fighter_01_ejection_in_sound";
EjectionParachute="Steerable_Parachute_F";
EjectionSeatForce=50;
CanopyForce=30;
};
class TransportItems{};
class HitPoints: HitPoints
{
class HitHull: HitHull
{
name="Hit_Hull";
visual="Hit_Hull";
armor=4.5;
explosionShielding=3;
passThrough=1;
radius=0.5;
minimalHit=0.05;
depends="0";
material=-1;
};
class HitRotor: HitHull
{
armor=0.25;
explosionShielding=1;
name="Hit_Rotor";
passThrough=0.2;
radius=0.05;
visual="Hit_Rotor";
depends="0";
minimalHit=0.1;
};
class HitEngine: HitHull
{
name="Hit_Engine";
visual="Hit_Engine";
armor=3.5;
explosionShielding=3.5;
passThrough=1;
radius=0.6;
minimalHit=0.1;
depends="HitRotor";
};
class HitAvionics: HitHull
{
name="Hit_Avionics";
visual="Hit_Avionics";
armor=3;
explosionShielding=3.5;
passThrough=0.6;
radius=0.05;
minimalHit=0.05;
};
// Main fueslage fuel tank
class HitFuelL: HitHull
{
name="Hit_FuelL";
visual="Hit_FuelL";
armor=3;
explosionShielding=4;
passThrough=0.5;
radius=0.25;
minimalHit=0.1;
};
class HitFuelR: HitHull
{
name="Hit_FuelR";
visual="Hit_FuelR";
armor=3;
explosionShielding=4;
passThrough=0.5;
radius=0.25;
minimalHit=0.1;
};
class HitFuel: HitHull
{
name="HitFuelX";
visual="";
armor=999;
explosionShielding=0;
passThrough=0.5;
radius=0.1;
minimalHit=0.1;
depends="(HitFuelL + HitFuelR)*0.5";
};
// Cockpit glass
class HitGlass1: HitHull
{
name="Hit_Glass1";
visual="Glass1";
armor=1.2;
explosionShielding=3;
passThrough=0;
radius=0.1;
minimalHit=0.1;
};
class HitGlass2: HitGlass1
{
name="Hit_Glass2";
visual="Glass2";
armor=1.5;
explosionShielding=2.5;
radius=0.1;
minimalHit=0.1;
};
class HitGlass3: HitGlass1
{
name="Hit_Glass3";
visual="Glass3";
armor=1.5;
explosionShielding=2.5;
radius=0.1;
minimalHit=0.1;
};
class HitGlass1_int: HitGlass1
{
visual="Glass1_int";
};
class HitGlass2_int: HitGlass2
{
visual="Glass2_int";
};
class HitGlass3_int: HitGlass3
{
visual="Glass3_int";
};
// Steering hitpoints - LC means left or center
class HitLAileron: HitHull
{
name="Hit_AileronL";
visual="Hit_AileronL";
armor=1.8;
explosionShielding=3;
passThrough=0.3;
radius=0.25;
minimalHit=0.05;
};
class HitRAileron: HitLAileron
{
name="Hit_AileronR";
visual="Hit_AileronR";
};
class HitLCRudder: HitHull
{
name="Hit_RudderC";
visual="Hit_RudderC";
armor=2;
explosionShielding=3;
passThrough=0.3;
radius=0.2L;
minimalHit=0.05;
};
class HitLCElevator: HitHull
{
name="Hit_ElevatorL";
visual="Hit_ElevatorL";
armor=1.5;
explosionShielding=3;
passThrough=0.3;
radius=0.3;
minimalHit=0.05;
};
class HitRElevator: HitLCElevator
{
name="Hit_ElevatorR";
visual="Hit_ElevatorR";
};
};
class Exhausts
{
class Exhaust1
{
position="Exhaustl";
direction="exhaustl_dir";
effect="ExhaustsEffectPlaneHP";
engineIndex=0;
};
class Exhaust02
{
direction="exhaustr_dir";
effect="ExhaustsEffectPlaneHP";
position="exhaustr";
};
};
class WingVortices
{
class WingTipLeft
{
effectName="WingVortices";
position="body_vapour_L_E";
};
class WingTipRight
{
effectName="WingVortices";
position="body_vapour_R_E";
};
class BodyLeft
{
effectName="BodyVortices";
position="body_vapour_L_S";
};
class BodyRight
{
effectName="BodyVortices";
position="body_vapour_R_S";
};
};
#include "cfgFlightModel.hpp"
#include "cfgPhysX.hpp"
#include "cfgPIP.hpp"
#include "cfgSounds.hpp"
driveOnComponent[]={};
laserScanner=1;
showAllTargets=4;
gunAimDown=0.03;
headAimDown=0.0000;
memoryPointLRocket="Rocket_1";
memoryPointRRocket="Rocket_2";
minFireTime=30;
extCameraPosition[]={0,4,-15};
threat[]={0.8,1,0.5};
receiveRemoteTargets=1;
class Components : Components
{
class SensorsManagerComponent
{
class Components
{
class IRSensorComponent
{
class AirTarget
{
minRange=1500;
maxRange=5000;
objectDistanceLimitCoef=-1;
viewDistanceLimitCoef=1;
};
class GroundTarget
{
minRange=2000;
maxRange=5000;
objectDistanceLimitCoef=1;
viewDistanceLimitCoef=1;
};
angleRangeHorizontal=360;
angleRangeVertical=90;
maxTrackableSpeed=400;
componentType="IRSensorComponent";
typeRecognitionDistance=2000;
maxFogSeeThrough=0.995;
color[]={1, 0, 0, 1};
allowsMarking=1;
groundNoiseDistanceCoef=-1;
maxGroundNoiseDistance=-1;
minSpeedThreshold=0;
maxSpeedThreshold=0;
animDirection="";
aimDown=0;
minTrackableSpeed=-1e+010;
minTrackableATL=-1e+010;
maxTrackableATL=1e+010;
};
class VisualSensorComponent
{
class AirTarget
{
minRange=1500;
maxRange=5000;
objectDistanceLimitCoef=-1;
viewDistanceLimitCoef=1;
};
class GroundTarget
{
minRange=2000;
maxRange=5000;
objectDistanceLimitCoef=1;
viewDistanceLimitCoef=1;
};
angleRangeHorizontal=26;
angleRangeVertical=20;
maxTrackableSpeed=100;
aimDown=1;
animDirection="main1turret";
componentType="VisualSensorComponent";
nightRangeCoef=0;
maxFogSeeThrough=0.94;
color[]={1, 1, 0.5, 0.80000001};
typeRecognitionDistance=2000;
allowsMarking=1;
groundNoiseDistanceCoef=-1;
maxGroundNoiseDistance=-1;
minSpeedThreshold=0;
maxSpeedThreshold=0;
minTrackableSpeed=-1e+010;
minTrackableATL=-1e+010;
maxTrackableATL=1e+010;
};
class SensorTemplateVisual
{
class AirTarget
{
minRange=1500;
maxRange=5000;
objectDistanceLimitCoef=-1;
viewDistanceLimitCoef=1;
};
class GroundTarget
{
minRange=2000;
maxRange=5000;
objectDistanceLimitCoef=1;
viewDistanceLimitCoef=1;
};
angleRangeHorizontal=360;
angleRangeVertical=90;
maxTrackableSpeed=400;
componentType="SensorTemplateVisual";
typeRecognitionDistance=2000;
maxFogSeeThrough=0.995;
color[]={1, 0, 0, 1};
allowsMarking=1;
groundNoiseDistanceCoef=-1;
maxGroundNoiseDistance=-1;
minSpeedThreshold=0;
maxSpeedThreshold=0;
animDirection="";
aimDown=0;
minTrackableSpeed=-1e+010;
minTrackableATL=-1e+010;
maxTrackableATL=1e+010;
};
class LaserSensorComponent
{
componentType="LaserSensorComponent";
class AirTarget
{
minRange=4000;
maxRange=4000;
objectDistanceLimitCoef=-1;
viewDistanceLimitCoef=-1;
};
class GroundTarget
{
minRange=5000;
maxRange=5000;
objectDistanceLimitCoef=-1;
viewDistanceLimitCoef=-1;
};
angleRangeHorizontal=180;
angleRangeVertical=180;
typeRecognitionDistance=0;
color[]={1, 1, 1, 0};
allowsMarking=1;
groundNoiseDistanceCoef=-1;
maxGroundNoiseDistance=-1;
minSpeedThreshold=0;
maxSpeedThreshold=0;
animDirection="";
aimDown=0;
minTrackableSpeed=-1e+010;
maxTrackableSpeed=1e+010;
minTrackableATL=-1e+010;
maxTrackableATL=1e+010;
};
class NVSensorComponent
{
componentType="NVSensorComponent";
color[]={1, 1, 1, 0};
typeRecognitionDistance=0;
class AirTarget
{
minRange=4000;
maxRange=4000;
objectDistanceLimitCoef=-1;
viewDistanceLimitCoef=-1;
};
class GroundTarget
{
minRange=5000;
maxRange=5000;
objectDistanceLimitCoef=-1;
viewDistanceLimitCoef=-1;
};
angleRangeHorizontal=90;
angleRangeVertical=90;
allowsMarking=1;
groundNoiseDistanceCoef=-1;
maxGroundNoiseDistance=-1;
minSpeedThreshold=0;
maxSpeedThreshold=0;
animDirection="";
aimDown=0;
minTrackableSpeed=-1e+010;
maxTrackableSpeed=1e+010;
minTrackableATL=-1e+010;
maxTrackableATL=1e+010;
};
};
};
class TransportPylonsComponent
{
uiPicture="braf\braf_air2\braf_airplanes\braf_super_tucano\Data\UI\Plane_A29_3DEN_CA.paa";
class Pylons
{
class Pylons1
{
hardpoints[]=
{
"BRAF_PIRANHA_PYLON",
"BRAF_MK82_PYLON",
"BRAF_GBU58_PYLON",
"BRAF_EQ_LMF_70_7_gat_PYLON",
"BRAF_EQ_LMF_70_7_he_PYLON",
"BRAF_EQ_LMF_70_7_ap_PYLON"
};
attachment="BRAF_PylonPod_EQ_LMF_70_7_he";
priority=5;
maxweight=300;
UIposition[]={0.35, 0.08};
};
class Pylons2 : Pylons1
{
hardpoints[]=
{
"BRAF_EFT_PYLON",
"BRAF_BLG252_PYLON",
"BRAF_MK82_PYLON",
"BRAF_GBU58_PYLON",
"BRAF_GBU12_PYLON",
"BRAF_M117_PYLON",
"BRAF_EQ_LMF_70_7_gat_PYLON",
"BRAF_EQ_LMF_70_19_gat_PYLON",
"BRAF_EQ_LMF_70_7_he_PYLON",
"BRAF_EQ_LMF_70_7_ap_PYLON",
"BRAF_EQ_LMF_70_19_he_PYLON",
"BRAF_EQ_LMF_70_19_ap_PYLON"
};
priority=4;
attachment="BRAF_PylonPod_EQ_LMF_70_7_he";
maxweight=350;
UIposition[]={0.345, 0.13};
};
class Pylons3 : Pylons1
{
priority=2;
attachment="BRAF_Pylon_EFT";
maxweight=500;
UIposition[]={0.27, 0.28};
hardpoints[]=
{
"BRAF_EFT_PYLON",
"BRAF_MK82_PYLON",
"BRAF_GBU58_PYLON",
"BRAF_GBU12_PYLON"
};
};
class Pylons4 : Pylons2
{
UIposition[]={0.345, 0.38};
mirroredMissilePos=2;
};
class Pylons5 : Pylons1
{
UIposition[]={0.35, 0.43};
mirroredMissilePos=1;
};
};
class Presets
{
class Empty
{
displayName="$STR_empty";
attachment[]=
{
};
};
class ASP
{
displayName="Air Surveilance Patrol";
attachment[]=
{
"",
"BRAF_Pylon_EFT",
"",
"BRAF_Pylon_EFT",
""
};
};
class LCAP
{
displayName="Light Combat Air Patrol";
attachment[]=
{
"braf_Pylon_Missile_MAA1A_x1",
"",
"",
"",
"braf_Pylon_Missile_MAA1A_x1"
};
};
class CAS
{
displayName="Close Air Support";
attachment[]=
{
"BRAF_PylonPod_EQ_LMF_70_7_ap",
"BRAF_PylonPod_EQ_LMF_70_19_he",
"BRAF_Pylon_Mk82",
"BRAF_PylonPod_EQ_LMF_70_19_he",
"BRAF_PylonPod_EQ_LMF_70_7_ap"
};
};
class AAS
{
displayName="Anti Armored Support";
attachment[] =
{
"BRAF_PylonPod_EQ_LMF_70_7_gat",
"BRAF_PylonPod_EQ_LMF_70_19_ap",
"",
"BRAF_PylonPod_EQ_LMF_70_19_ap",
"BRAF_PylonPod_EQ_LMF_70_7_gat"
};
};
class APS
{
displayName="Anti Personel Support";
attachment[] =
{
"BRAF_PylonPod_EQ_LMF_70_7_he",
"BRAF_BLG252_PYLON",
"",
"BRAF_BLG252_PYLON",
"BRAF_PylonPod_EQ_LMF_70_7_he"
};
};
};
};
};
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="red_position";
};
class PositionGreen : PositionRed
{
color[]={0, 0.8, 0};
name="green_position";
};
class PositionWhite : PositionRed
{
color[]={1,1,1};
name="white_position";
};
class CollisionRed : PositionRed
{
blinking=1;
blinkingpattern[]={0.2,1.3};
blinkingpatternguarantee=0;
name="red_collision";
};
class CollisionWhite : PositionRed
{
blinking=1;
blinkingpattern[]={0.05,0.9};
blinkingpatternguarantee=0;
intensity=150;
color[]={1,1,1};
drawlightcentersize=0.04;
drawlightsize=1;
name="white_collision";
};
};
class Reflectors
{
class Left
{
color[]={7000, 7500, 10000, 1}; // defines red, green, blue and alpha components of the light
ambient[]={100, 100, 100}; // the same definition format for colouring the environment around
position="light_l"; // name of memory point in model to take the origin of the light
direction="light_l_end"; // name of memory point in the model to make a vector of direction of light from it's position
hitpoint="Hit_LightL"; // name of hitpoint selection in hitpoint lod of the model to be affected by damage
selection="light_l"; // name of selection in visual lods of the model that are going to be hidden while the light is off
innerAngle=20; // angle from light direction vector where the light is at full strength
outerAngle=60; // angle from light direction vector where the light is completely faded out
coneFadeCoef=10; // coefficient of fading the light between inner and outer cone angles
intensity=50; // how much does the light shine (in some strange units, just tweak until it is satisfying), rough approximation is intensity=(brightness * 50) ^ 2
useFlare=true; // boolean switch if the light produces flare or not
dayLight=true; // boolean switch if the light is used during day or not
FlareSize=4; // how big is the flare, using the same metrics as intensity
size=1; // defines the visible size of light, has not much of an effect now
class Attenuation // describes how fast does the light dim
{
start=1; // offset of start of the attenuation
constant=0; // constant attenuation of the light in any distance from source
linear=0; // coefficient for linear attenuation
quadratic=4; // coefficient for attenuation with square of distance from source
hardLimitStart=150; // distance from source where the light intensity decreases for drawing
hardLimitEnd=300; // distance from source where the light is not displayed (shorter distances increase performance)
};
};
class Right : Left
{
position="light_r";
direction="light_r_end";
hitpoint="Hit_LightR";
selection="light_r";
};
class Light_wing_left : left
{
direction="light_wing_l_end";
hitpoint="Hit_Light_WingL";
position="light_wing_l";
selection="light_wing_l";
};
class Light_wing_right : left
{
direction="light_wing_r_end";
hitpoint="Hit_Light_WingR";
position="light_wing_r";
selection="light_wing_r";
};
};
class compartmentsLights
{
class Compartment1
{
class Light1
{
color[]={10,35,10};
ambient[]={0,0,0};
intensity=1;
size=0;
useFlare=0;
flareSize=0;
flareMaxDistance=0;
dayLight=0;
blinking=0;
drawLight=0;
activeLight=0;
point="cabin_light_pilot_l";
class Attenuation
{
start=0;
constant=0;
linear=1;
quadratic=50;
hardLimitStart=0.25;
hardLimitEnd=0.75;
};
};
class Light2: Light1
{
point="cabin_light_pilot_r";
};
};
class Compartment2: Compartment1
{
class Light3: Light1
{
point="cabin_light_copilot_l";
};
class Light4: Light1
{
point="cabin_light_copilot_r";
};
};
};
class MFD
{
#include "cfgMFD.hpp"
};
class AnimationSources
{
class Formation_Markers
{
source="user";
animPeriod=0;
initPhase=0;
};
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
{
markerlight="CollisionRed";
source="MarkerLight";
animPeriod=0;
initPhase=0;
};
class CollisionLightWhite_source
{
markerlight="CollisionWhite";
source="MarkerLight";
animPeriod=0;
initPhase=0;
};
class a29a_hide
{
source="user";
animPeriod=0;
initPhase=0;
};
class a29b_hide
{
source="user";
animPeriod=0;
initPhase=0;
};
class canopy_hide
{
source="user";
animPeriod=0.001;
initPhase=0;
};
class front_ejection_seat_hide: canopy_hide
{
source="user";
animPeriod=0.001;
initPhase=0;
};
class back_ejection_seat_hide: canopy_hide
{
source="user";
animPeriod=0.001;
initPhase=0;
};
class front_ejection_seat_motion
{
source="user";
animPeriod=0.25;
initPhase=0;
};
class back_ejection_seat_motion: front_ejection_seat_motion
{
source="user";
animPeriod=0.25;
initPhase=0;
};
//class RBFHide
//{
// source = "user";
// animPeriod = 0.001;
// initPhase = 0;
//};
class FrontSMS_On
{
source="user";
animPeriod=0;
initPhase=1;
};
class FrontADHSI_On
{
source="user";
animPeriod=0;
initPhase=0;
};
class FrontEICAS_On
{
source="user";
animPeriod=0;
initPhase=0;
};
class FrontFLIr_On
{
source="user";
animPeriod=0;
initPhase=1;
};
};
class UserActions
{
class Formation_markers_on
{
displayName="Formation Markers on";
condition="this animationPhase 'FormationMarkers' < 0.5 and (player in this)";
statement="this animate ['FormationMarkers',1]";
position="pilotcontrol";
radius=10;
priority=0;
onlyforplayer=0;
showWindow=0;
};
class Formation_markers_off: Formation_markers_on
{
displayName="Formation Markers off";
condition="this animationPhase 'FormationMarkers' > 0.5 and (player in this)";
statement="this animate ['FormationMarkers',0]";
};
class FrontSMSOn: Formation_markers_on
{
displayName="SMS Left Screen";
condition="this animationPhase 'FrontSMSMotion' > 0.5 and (driver this == player)";
statement="this animate ['FrontSMSMotion',0] && this animate ['FrontADHSIMotion',1]";
};
class FrontADHSIOn: Formation_markers_on
{
displayName="ADHSI Left Screen";
condition="this animationPhase 'FrontADHSIMotion' > 0.5 and (driver this == player)";
statement="this animate ['FrontSMSMotion',1] && this animate ['FrontADHSIMotion',0]";
};
class FrontEICASOn: Formation_markers_on
{
displayName="EICAS Right Screen";
condition="this animationPhase 'FrontEICASMotion' > 0.5 and (driver this == player)";
statement="this animate ['FrontFLIrMotion',1] && this animate ['FrontEICASMotion',0]";
};
class FrontFLIrOn: Formation_markers_on
{
displayName="FLIr Right Screen";
condition="this animationPhase 'FrontFLIrMotion' > 0.5 and (driver this == player)";
statement="this animate ['FrontEICASMotion',1] && this animate ['FrontFLIrMotion',0]";
};
//class RemoveBeforeFlight_on
//{
// displayName="Put covers and wheel chocks";
// condition="this animationPhase 'RBFHide' > 0.5 && {rpm this < 0.01}";
// statement="this animate ['RBFHide',0] && this animate ['Rotor',0]";
// position="pilotcontrol";
// radius=10;
// priority=0;
// onlyforplayer=1;
// showWindow=0;
//};
//class RemoveBeforeFlight_off: RemoveBeforeFlight_on
//{
// displayName="Remove covers and wheel chocks";
// condition="this animationPhase 'RBFHide' < 0.5 && {rpm this < 0.01}";
// statement="this animate ['RBFHide',1]";
//};
class BRAF_A29A_Eject
{
priority=0.05;
shortcut="Eject";
displayName="<t color='#FF0000'>Eject</t>";
condition="(player in this) && {speed this > 1}";
statement="[this] spawn BRAF_fnc_EjectPilot";
position="pilotcontrol";
radius=10;
onlyforplayer=1;
showWindow=0;
hideOnUse=1;
};
};
class Eventhandlers : Eventhandlers
{
init="if (local (_this select 0)) then { [(_this select 0), """", [], false] call BIS_fnc_initVehicle; };";
hit="_this call bis_fnc_planeAiEject";
};
hiddenSelections[]=
{
"camo1",
"camo2",
"glass1",
"glass2",
"glass3",
"glass1_int",
"glass2_int",
"glass3_int",
"armor"
};
hiddenSelectionsTextures[]=
{
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo1_A_co.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo2_co.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\Extras_A_co.paa"
};
class Damage
{
tex[]={};
mat[]=
{
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo1.rvmat",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo1_damage.rvmat",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\destruct.rvmat",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo2.rvmat",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo2_damage.rvmat",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\destruct.rvmat",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glasspit.rvmat",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glasspit_damage.rvmat",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glasspit_damage.rvmat",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glasspit.rvmat",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glasspit_damage.rvmat",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glasspit_damage.rvmat",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glasspit.rvmat",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glasspit_damage.rvmat",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glasspit_damage.rvmat",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glasspit_in.rvmat",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glasspit_damage.rvmat",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glasspit_damage.rvmat",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glasspit_in.rvmat",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glasspit_damage.rvmat",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glasspit_damage.rvmat",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glasspit_in.rvmat",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glasspit_damage.rvmat",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glasspit_damage.rvmat",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\Extras.rvmat",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\Extras_damage.rvmat",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\destruct.rvmat",
};
};
};
class braf_A29A: BRAF_A29_base
{
_generalmacro="BRAF_A29A";
scope=2;
scopeCurator=2;
side="2";
faction="BRAF_FAB";
displayName="A-29A Super Tucano Single Seat";
editorPreview="\braf\braf_insignia\editorpreview\air2\BRAF_A29A.jpg";
class AnimationSources: AnimationSources
{
class a29a_hide
{
source="user";
animPeriod=0;
initPhase=0;
};
class a29b_hide
{
source="user";
animPeriod=0;
initPhase=1;
};
};
class Armory
{
description="A-29A Super Tucano single seat";
};
weapons[]=
{
"BRAF_master_arm_safe",
"BRAF_M3W_A29",
"CMFlareLauncher"
};
magazines[]=
{
"braf_master_safe_magazine",
"BRAF_A29_500Rnd_50_cal_M",
"120Rnd_CMFlare_Chaff_Magazine"
};
crew="braf_characters_aviation_air_force_fighter_pilot";
typicalcargo[]={""};
hiddenSelectionsTextures[]=
{
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo1_A_co.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo2_co.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\Extras_A_co.paa"
};
availableForSupportTypes[]=
{
"CAS_Bombing"
};
class TextureSources
{
class FAB_A
{
displayName="Brazilian Air Force Single Seat";
author="BRAF Team";
factions[]=
{
"BRAF_FAB"
};
textures[]=
{
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo1_A_co.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo2_co.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\Extras_A_co.paa"
};
};
};
textureList[]=
{
"FAB_A",1
};
};
class braf_A29_EDA: BRAF_A29_base
{
_generalmacro="BRAF_A29_EDA";
scope=2;
scopeCurator=2;
forceInGarage=1;
side="2";
faction="BRAF_FAB";
displayName="A-29A Super Tucano 'Smoke Squadron'";
editorPreview="\braf\braf_insignia\editorpreview\air2\braf_A29_EDA.jpg";
threat[]={0,0,0};
class EjectionSystem: EjectionSystem
{
CanopyClass="braf_A29_canopy_EDA";
};
class Armory
{
description="A-29A Super Tucano 'Smoke Squadron' single seat";
};
weapons[]={"FakeHorn"};
magazines[]={};
class Components{};
crew="braf_characters_aviation_air_force_fighter_pilot";
typicalcargo[]={""};
class UserActions
{
class Formation_markers_on
{
displayName="Formation Markers on";
condition="this animationPhase 'FormationMarkers' < 0.5 and player in this";
statement="this animate ['FormationMarkers',1]";
position="pilotcontrol";
radius=10;
priority=0;
onlyforplayer=0;
showWindow=0;
};
class Formation_markers_off: Formation_markers_on
{
displayName="Formation Markers off";
condition="this animationPhase 'FormationMarkers' > 0.5 and player in this";
statement="this animate ['FormationMarkers',0]";
};
class BRAF_A29A_Eject
{
priority=0.05;
shortcut="Eject";
displayName="$STR_A3_action_eject";
condition="player in this && {speed this > 1}";
statement="[this] spawn BRAF_fnc_EjectPilot";
position="pilotcontrol";
radius=10;
onlyforplayer=1;
showWindow=0;
hideOnUse=1;
};
class BRAF_Smoke_Toggle
{
priority=0.05;
shortcut="Smoke!";
displayName="Fumaça já!";
condition="player in this && {speed this > 1}";
statement="[this] spawn BRAF_fnc_Smoker";
position="pilotcontrol";
radius=10;
onlyforplayer=1;
showWindow=0;
};
};
class AnimationSources: AnimationSources
{
class a29a_hide
{
source="user";
animPeriod=0;
initPhase=0;
};
class a29b_hide
{
source="user";
animPeriod=0;
initPhase=1;
};
class a29eda_hide
{
source="user";
animPeriod=0;
initPhase=1;
};
};
hiddenSelectionsMaterials[]=
{
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo1_EDA.rvmat",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo2.rvmat",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glasspit.rvmat",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glasspit.rvmat",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glasspit.rvmat",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glasspit.rvmat",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glasspit.rvmat",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glasspit.rvmat",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\Extras.rvmat"
};
hiddenSelectionsTextures[]=
{
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo1_EDA_co.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo2_co.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\Extras_A_co.paa"
};
availableForSupportTypes[]={};
class TextureSources
{
class FAB_EDA
{
displayName="Brazilian Air Force 'Smoke Squadron' Single Seat";
author="BRAF Team";
factions[]=
{
"BRAF_FAB"
};
textures[]=
{
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo1_EDA_co.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo2_co.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\Extras_A_co.paa"
};
};
};
textureList[]=
{
"FAB_EDA",1
};
cost=10;
};
class braf_A29B: BRAF_A29_base
{
_generalmacro="BRAF_A29B";
scope=2;
scopeCurator=2;
side="2";
forceInGarage=1;
hasDriver=1;
hasGunner=1;
faction="BRAF_FAB";
displayName="A-29B Super Tucano double seat";
editorPreview="\braf\braf_insignia\editorpreview\air2\BRAF_A29B.jpg";
class AnimationSources: AnimationSources
{
class Formation_Markers
{
source="user";
animPeriod=0;
initPhase=0;
};
class CollisionLightRed_source
{
markerlight="CollisionRed";
source="MarkerLight";
animPeriod=0;
initPhase=0;
};
class CollisionLightWhite_source
{
markerlight="CollisionWhite";
source="MarkerLight";
animPeriod=0;
initPhase=0;
};
class a29a_hide
{
source="user";
animPeriod=0;
initPhase=1;
};
class a29b_hide
{
source="user";
animPeriod=0;
initPhase=0;
};
class canopy_hide
{
source="user";
animPeriod=0.001;
initPhase=0;
};
class front_ejection_seat_hide: canopy_hide
{
source="user";
animPeriod=0.001;
initPhase=0;
};
class back_ejection_seat_hide: canopy_hide
{
source="user";
animPeriod=0.001;
initPhase=0;
};
class front_ejection_seat_motion
{
source="user";
animPeriod=0.25;
initPhase=0;
};
class back_ejection_seat_motion: front_ejection_seat_motion
{
source="user";
animPeriod=0.25;
initPhase=0;
};
class FrontSMS_On
{
source="user";
animPeriod=0;
initPhase=1;
};
class FrontADHSI_On
{
source="user";
animPeriod=0;
initPhase=0;
};
class FrontEICAS_On
{
source="user";
animPeriod=0;
initPhase=0;
};
class FrontFLIr_On
{
source="user";
animPeriod=0;
initPhase=1;
};
class BackSMS_On
{
source="user";
animPeriod=0;
initPhase=1;
};
class BackADHSI_On
{
source="user";
animPeriod=0;
initPhase=0;
};
class BackEICAS_On
{
source="user";
animPeriod=0;
initPhase=0;
};
class BackFLIr_On
{
source="user";
animPeriod=0;
initPhase=1;
};
};
class Armory
{
description="A-29B Super Tucano Tandem seat";
};
weapons[]=
{
"BRAF_master_arm_safe",
"BRAF_M3W_A29",
"CMFlareLauncher"
};
magazines[]=
{
"braf_master_safe_magazine",
"BRAF_A29_500Rnd_50_cal_M",
"120Rnd_CMFlare_Chaff_Magazine"
};
laserScanner=1;
showAllTargets=4;
nvScanner=1;
irScanRangeMin=100;
irScanRangeMax=5500;
irScanToEyeFactor=5;
irScanGround=1;
crew="braf_characters_aviation_air_force_fighter_pilot";
typicalcargo[]={"braf_characters_aviation_air_force_fighter_pilot"};
class UserActions
{
class Formation_markers_on
{
displayName="Formation Markers on";
condition="this animationPhase 'FormationMarkers' < 0.5 and (player in this)";
statement="this animate ['FormationMarkers',1]";
position="pilotcontrol";
radius=10;
priority=0;
onlyforplayer=0;
showWindow=0;
};
class Formation_markers_off: Formation_markers_on
{
displayName="Formation Markers off";
condition="this animationPhase 'FormationMarkers' > 0.5 and (player in this)";
statement="this animate ['FormationMarkers',0]";
};
class FrontSMSOn: Formation_markers_on
{
displayName="SMS Left Screen";
condition="this animationPhase 'FrontSMSMotion' > 0.5 and (driver this == player)";
statement="this animate ['FrontSMSMotion',0] && this animate ['FrontADHSIMotion',1]";
};
class BackSMSOn: Formation_markers_on
{
displayName="SMS Left Screen";
condition="this animationPhase 'BackSMSMotion' > 0.5 and (player in this) and (driver this != player)";
statement="this animate ['BackSMSMotion',0] && this animate ['BackADHSIMotion',1]";
};
class FrontADHSIOn: Formation_markers_on
{
displayName="ADHSI Left Screen";
condition="this animationPhase 'FrontADHSIMotion' > 0.5 and (driver this == player)";
statement="this animate ['FrontSMSMotion',1] && this animate ['FrontADHSIMotion',0]";
};
class BackADHSIOn: Formation_markers_on
{
displayName="ADHSI Left Screen";
condition="this animationPhase 'BackADHSIMotion' > 0.5 and (player in this) and (driver this != player)";
statement="this animate ['BackSMSMotion',1] && this animate ['BackADHSIMotion',0]";
};
class FrontEICASOn: Formation_markers_on
{
displayName="EICAS Right Screen";
condition="this animationPhase 'FrontEICASMotion' > 0.5 and (driver this == player)";
statement="this animate ['FrontFLIrMotion',1] && this animate ['FrontEICASMotion',0]";
};
class BackEICASOn: Formation_markers_on
{
displayName="EICAS Right Screen";
condition="this animationPhase 'BackEICASMotion' > 0.5 and (player in this) and (driver this != player)";
statement="this animate ['BackFLIrMotion',1] && this animate ['BackEICASMotion',0]";
};
class FrontFLIrOn: Formation_markers_on
{
displayName="FLIr Right Screen";
condition="this animationPhase 'FrontFLIrMotion' > 0.5 and (driver this == player)";
statement="this animate ['FrontEICASMotion',1] && this animate ['FrontFLIrMotion',0]";
};
class BackFLIrOn: Formation_markers_on
{
displayName="FLIr Right Screen";
condition="this animationPhase 'BackFLIrMotion' > 0.5 and (player in this) and (driver this != player)";
statement="this animate ['BackEICASMotion',1] && this animate ['BackFLIrMotion',0]";
};
class BRAF_A29B_Eject
{
priority=0.05;
shortcut="Eject";
displayName="<t color='#FF0000'>Eject</t>";
condition="(player in this) && {speed this > 1}";
statement="[this] spawn BRAF_fnc_EjectPilot; [this] call BRAF_fnc_EjectCopilot";
position="pilotcontrol";
radius=10;
onlyforplayer=1;
showWindow=0;
hideOnUse=1;
};
};
class NewTurret;
class Turrets: Turrets
{
class MainTurret: NewTurret
{
proxyIndex=1;
proxyType="CPGunner";
body="mainTurret";
gun="mainGun";
gunBeg="gunBeg";
gunEnd="gunEnd";
animationSourceBody="mainTurret";
animationSourceGun="mainGun";
stabilizedInAxes=3;
showAllTargets=4;
canEject=0;
primaryGunner=1;
primaryObserver=0;
memoryPointGunnerOptics="rendertarget4_dir";
minElev=-120;
maxElev=30;
initElev=0;
minTurn=-180;
maxTurn=180;
initTurn=0;
gunnerName="$STR_A3_COPILOT";
turretInfoType="BRAF_RscOptics_A29";
isCopilot=1;
weapons[]=
{
"Laserdesignator_mounted"
};
soundServo[]=
{
"",
0.0099999998,
1,
30
};
magazines[]=
{
"Laserbatteries"
};
startEngine=0;
gunnerHasFlares=0;
usePiP=1;
gunnerForceOptics = 0;
turretFollowFreeLook = 0;
outGunnerMayFire=1;
inGunnerMayFire=1;
gunnerAction="A29_Pilot";
gunnerInAction="A29_Pilot";
gunnerGetInAction="GetInHigh";
gunnerGetOutAction="GetOutHigh";
memoryPointsGetInGunner="pos driver";
memoryPointsGetInGunnerDir="pos driver dir";
memoryPointsGetInGunnerPrecise="pos driver";
precisegetinout=0;
gunnerOpticsEffect[]={};
gunnerOpticsModel="";
gunnerLeftHandAnimName="throttle_lever_copilot";
gunnerRightHandAnimName="stick_copilot";
gunnerLeftFootAnimName="pedal_b_l";
gunnerRightFootAnimName="pedal_b_r";
gunnerCompartments="Compartment2";
class ViewOptics: RCWSOptics
{
};
class OpticsIn: BRAF_A29_Gunner_Optics
{
class Wide: Wide
{
};
class Medium: Medium
{
};
class Narrow: Narrow
{
};
};
class OpticsOut
{
class Monocular
{
initAngleX = -5;
initAngleY = 0;
initFov = 0.75;
minFov = 0.25;
maxFov = 1.25;
minAngleX = -65;
maxAngleX = 85;
minAngleY = -150;
maxAngleY = 150;
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 BRAF_Interception_Light
{
color[]={7000,7500,10000};
ambient[]={70,75,100};
intensity=50;
size=1;
innerAngle=15;
outerAngle=65;
coneFadeCoef=10;
position="Interception_Light_pos";
direction="Interception_Light_dir";
hitpoint="HP_Interception_Light";
selection="Interception_Light";
useFlare=1;
flareSize=15;
flareMaxDistance=250;
dayLight=0;
class Attenuation
{
start=0;
constant=0;
linear=1;
quadratic=1;
hardLimitStart=100;
hardLimitEnd=200;
};
};
};
class Components
{
class VehicleSystemsDisplayManagerComponentLeft: VehicleSystemsTemplateLeftPilot
{
};
class VehicleSystemsDisplayManagerComponentRight: VehicleSystemsTemplateRightPilot
{
};
};
};
};
hiddenSelectionsTextures[]=
{
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo1_B_co.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo2_co.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\Extras_B_co.paa"
};
availableForSupportTypes[]=
{
"CAS_Bombing"
};
class TextureSources
{
class FAB_B
{
displayName="Brazilian Air Force Tandem Seat";
author="BRAF Team";
factions[]=
{
"BRAF_FAB"
};
textures[]=
{
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo1_B_co.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo2_co.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\Extras_B_co.paa"
};
};
};
textureList[]=
{
"FAB_B",1
};
class Components : Components
{
class SensorsManagerComponent
{
class Components
{
class IRSensorComponent
{
class AirTarget
{
minRange=1500;
maxRange=5000;
objectDistanceLimitCoef=-1;
viewDistanceLimitCoef=1;
};
class GroundTarget
{
minRange=2000;
maxRange=5000;
objectDistanceLimitCoef=1;
viewDistanceLimitCoef=1;
};
angleRangeHorizontal=360;
angleRangeVertical=90;
maxTrackableSpeed=400;
componentType="IRSensorComponent";
typeRecognitionDistance=2000;
maxFogSeeThrough=0.995;
color[]={1, 0, 0, 1};
allowsMarking=1;
groundNoiseDistanceCoef=-1;
maxGroundNoiseDistance=-1;
minSpeedThreshold=0;
maxSpeedThreshold=0;
animDirection="";
aimDown=0;
minTrackableSpeed=-1e+010;
minTrackableATL=-1e+010;
maxTrackableATL=1e+010;
};
class VisualSensorComponent
{
class AirTarget
{
minRange=1500;
maxRange=5000;
objectDistanceLimitCoef=-1;
viewDistanceLimitCoef=1;
};
class GroundTarget
{
minRange=2000;
maxRange=5000;
objectDistanceLimitCoef=1;
viewDistanceLimitCoef=1;
};
angleRangeHorizontal=26;
angleRangeVertical=20;
maxTrackableSpeed=100;
aimDown=1;
animDirection="main1turret";
componentType="VisualSensorComponent";
nightRangeCoef=0;
maxFogSeeThrough=0.94;
color[]={1, 1, 0.5, 0.80000001};
typeRecognitionDistance=2000;
allowsMarking=1;
groundNoiseDistanceCoef=-1;
maxGroundNoiseDistance=-1;
minSpeedThreshold=0;
maxSpeedThreshold=0;
minTrackableSpeed=-1e+010;
minTrackableATL=-1e+010;
maxTrackableATL=1e+010;
};
class SensorTemplateVisual
{
class AirTarget
{
minRange=1500;
maxRange=5000;
objectDistanceLimitCoef=-1;
viewDistanceLimitCoef=1;
};
class GroundTarget
{
minRange=2000;
maxRange=5000;
objectDistanceLimitCoef=1;
viewDistanceLimitCoef=1;
};
angleRangeHorizontal=360;
angleRangeVertical=90;
maxTrackableSpeed=400;
componentType="SensorTemplateVisual";
typeRecognitionDistance=2000;
maxFogSeeThrough=0.995;
color[]={1, 0, 0, 1};
allowsMarking=1;
groundNoiseDistanceCoef=-1;
maxGroundNoiseDistance=-1;
minSpeedThreshold=0;
maxSpeedThreshold=0;
animDirection="";
aimDown=0;
minTrackableSpeed=-1e+010;
minTrackableATL=-1e+010;
maxTrackableATL=1e+010;
};
class LaserSensorComponent
{
componentType="LaserSensorComponent";
class AirTarget
{
minRange=4000;
maxRange=4000;
objectDistanceLimitCoef=-1;
viewDistanceLimitCoef=-1;
};
class GroundTarget
{
minRange=5000;
maxRange=5000;
objectDistanceLimitCoef=-1;
viewDistanceLimitCoef=-1;
};
angleRangeHorizontal=180;
angleRangeVertical=180;
typeRecognitionDistance=0;
color[]={1, 1, 1, 0};
allowsMarking=1;
groundNoiseDistanceCoef=-1;
maxGroundNoiseDistance=-1;
minSpeedThreshold=0;
maxSpeedThreshold=0;
animDirection="";
aimDown=0;
minTrackableSpeed=-1e+010;
maxTrackableSpeed=1e+010;
minTrackableATL=-1e+010;
maxTrackableATL=1e+010;
};
class NVSensorComponent
{
componentType="NVSensorComponent";
color[]={1, 1, 1, 0};
typeRecognitionDistance=0;
class AirTarget
{
minRange=4000;
maxRange=4000;
objectDistanceLimitCoef=-1;
viewDistanceLimitCoef=-1;
};
class GroundTarget
{
minRange=5000;
maxRange=5000;
objectDistanceLimitCoef=-1;
viewDistanceLimitCoef=-1;
};
angleRangeHorizontal=90;
angleRangeVertical=90;
allowsMarking=1;
groundNoiseDistanceCoef=-1;
maxGroundNoiseDistance=-1;
minSpeedThreshold=0;
maxSpeedThreshold=0;
animDirection="";
aimDown=0;
minTrackableSpeed=-1e+010;
maxTrackableSpeed=1e+010;
minTrackableATL=-1e+010;
maxTrackableATL=1e+010;
};
};
};
class TransportPylonsComponent
{
uiPicture="braf\braf_air2\braf_airplanes\braf_super_tucano\Data\UI\Plane_A29_3DEN_CA.paa";
class Pylons
{
class Pylons1
{
hardpoints[]=
{
"BRAF_PIRANHA_PYLON",
"BRAF_MK82_PYLON",
"BRAF_GBU58_PYLON",
"BRAF_EQ_LMF_70_7_gat_PYLON",
"BRAF_EQ_LMF_70_7_he_PYLON",
"BRAF_EQ_LMF_70_7_ap_PYLON"
};
attachment="BRAF_PylonPod_EQ_LMF_70_7_he";
priority=5;
maxweight=300;
UIposition[]={0.35, 0.08};
};
class Pylons2 : Pylons1
{
hardpoints[]=
{
"BRAF_EFT_PYLON",
"BRAF_BLG252_PYLON",
"BRAF_MK82_PYLON",
"BRAF_GBU58_PYLON",
"BRAF_GBU12_PYLON",
"BRAF_M117_PYLON",
"BRAF_EQ_LMF_70_7_gat_PYLON",
"BRAF_EQ_LMF_70_19_gat_PYLON",
"BRAF_EQ_LMF_70_7_he_PYLON",
"BRAF_EQ_LMF_70_7_ap_PYLON",
"BRAF_EQ_LMF_70_19_he_PYLON",
"BRAF_EQ_LMF_70_19_ap_PYLON"
};
priority=4;
attachment="BRAF_PylonPod_EQ_LMF_70_7_he";
maxweight=350;
UIposition[]={0.345, 0.13};
};
class Pylons3 : Pylons1
{
priority=2;
attachment="";
maxweight=500;
UIposition[]={0.27, 0.28};
hardpoints[]=
{
"BRAF_MK82_PYLON"
};
};
class Pylons4 : Pylons2
{
UIposition[]={0.345, 0.38};
mirroredMissilePos=2;
};
class Pylons5 : Pylons1
{
UIposition[]={0.35, 0.43};
mirroredMissilePos=1;
};
};
class Presets
{
class Empty
{
displayName="$STR_empty";
attachment[]=
{
};
};
class ASP
{
displayName="Air Surveilance Patrol";
attachment[]=
{
"",
"BRAF_Pylon_EFT",
"",
"BRAF_Pylon_EFT",
""
};
};
class LCAP
{
displayName="Light Combat Air Patrol";
attachment[]=
{
"braf_Pylon_Missile_MAA1A_x1",
"",
"",
"",
"braf_Pylon_Missile_MAA1A_x1"
};
};
class CAS
{
displayName="Close Air Support";
attachment[]=
{
"BRAF_PylonPod_EQ_LMF_70_7_ap",
"BRAF_PylonPod_EQ_LMF_70_19_he",
"BRAF_Pylon_Mk82",
"BRAF_PylonPod_EQ_LMF_70_19_he",
"BRAF_PylonPod_EQ_LMF_70_7_ap"
};
};
class AAS
{
displayName="Anti Armored Support";
attachment[] =
{
"BRAF_PylonPod_EQ_LMF_70_7_gat",
"BRAF_PylonPod_EQ_LMF_70_19_ap",
"",
"BRAF_PylonPod_EQ_LMF_70_19_ap",
"BRAF_PylonPod_EQ_LMF_70_7_gat"
};
};
class APS
{
displayName="Anti Personel Support";
attachment[] =
{
"BRAF_PylonPod_EQ_LMF_70_7_he",
"BRAF_BLG252_PYLON",
"",
"BRAF_BLG252_PYLON",
"BRAF_PylonPod_EQ_LMF_70_7_he"
};
};
};
};
};
};
class braf_A29B_90k: BRAF_A29B
{
_generalmacro="BRAF_A29B_90k";
scope=2;
scopeCurator=2;
side="2";
forceInGarage=1;
faction="BRAF_FAB";
displayName="A-29B Super Tucano 'Joker 90k'";
editorPreview="\braf\braf_insignia\editorpreview\air2\BRAF_A29B.jpg";
class Armory
{
description="A-29B Super Tucano Brazilian Air Force Comemorative 90k hours Joker Fighter Squadron";
};
crew="braf_characters_aviation_air_force_fighter_pilot";
typicalcargo[]={""};
hiddenSelectionsTextures[]=
{
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo1_90k_co.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo2_co.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\Extras_Joker_co.paa"
};
textureList[]=
{
"FAB_100k",1
};
};
class braf_A29B_100k: BRAF_A29B
{
_generalmacro="BRAF_A29B_100k";
scope=2;
scopeCurator=2;
side="2";
forceInGarage=1;
faction="BRAF_FAB";
displayName="A-29B Super Tucano 'Joker 100k'";
editorPreview="\braf\braf_insignia\editorpreview\air2\BRAF_A29B.jpg";
class Armory
{
description="A-29B Super Tucano Brazilian Air Force Comemorative 1o0k hours Joker Fighter Squadron";
};
crew="braf_characters_aviation_air_force_fighter_pilot";
typicalcargo[]={""};
hiddenSelectionsTextures[]=
{
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo1_100k_co.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo2_co.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\Extras_Joker_co.paa"
};
textureList[]=
{
"FAB_90k",1
};
};
class braf_A29B_Jambock: BRAF_A29B
{
_generalmacro="BRAF_A29B_Jambock";
scope=2;
scopeCurator=2;
side="2";
forceInGarage=1;
faction="BRAF_FAB";
displayName="A-29B Super Tucano 'Jambock'";
editorPreview="\braf\braf_insignia\editorpreview\air2\BRAF_A29B.jpg";
class Armory
{
description="A-29B Super Tucano - Brazilian Air Force WW2 Comemorative 1°/1°GAvCa Jambock Squadron (Fictional)";
};
class EjectionSystem: EjectionSystem
{
CanopyClass="braf_A29_canopy_Jambock";
};
crew="braf_characters_aviation_air_force_fighter_pilot";
typicalcargo[]={""};
hiddenSelectionsTextures[]=
{
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo1_Jambock_co.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo2_co.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\glass_ca.paa",
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\Extras_Jambock_co.paa"
};
textureList[]=
{
"FAB_Jambock",1
};
};
// Wreck definition, since we are using "destrType=DestructWreck;"
class PlaneWreck;
class braf_A29A_wreck_F : PlaneWreck
{
scope=1;
model="braf\Samples_F\TemplateRTM\Test_Plane_01\Test_Plane_01_Wreck.p3d";
_generalMacro="braf_A29A_wreck_F";
typicalCargo[]={};
irTarget=0;
transportAmmo=0;
transportRepair=0;
transportFuel=0;
transportSoldier=1;
class Eventhandlers
{
};
};
class braf_A29_canopy: Plane_Canopy_Base_F
{
class SimpleObject
{
eden=0;
animate[]={};
hide[]={};
verticalOffset=0.28600001;
verticalOffsetWorld=0;
init="''";
};
scope=1;
side=2;
faction="BRAF_FAB";
displayName="A-29 Canopy";
_generalMacro="braf_A29_canopy";
model="\braf\braf_air2\braf_airplanes\braf_super_tucano\braf_A29_canopy.p3d";
hiddenSelections[]=
{
"camo1"
};
hiddenSelectionsTextures[]=
{
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo1_A_co.paa"
};
};
class braf_A29_canopy_EDA: braf_A29_canopy
{
hiddenSelections[]=
{
"camo1"
};
hiddenSelectionsTextures[]=
{
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo1_EDA_co.paa"
};
};
class braf_A29_canopy_Jambock: braf_A29_canopy
{
hiddenSelections[]=
{
"camo1"
};
hiddenSelectionsTextures[]=
{
"braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo1_Jambock_co.paa"
};
};
class braf_ejection_seat_base: Ejection_Seat_Base_F
{
scope=0;
side=0;
faction=BRAF_FAB;
displayName="Martin Baker Mk.10 BRLCX";
model="\braf\braf_air2\braf_airplanes\braf_super_tucano\braf_a29_ejection_seat.p3d";
icon=iconParachute;
picture="\A3\Air_F_Beta\Parachute_01\Data\UI\Portrait_Parachute_01_CA.paa";
driverAction="Pilot_Plane_Fighter_Ejection";
cargoAction[]=
{
"Pilot_Plane_Fighter_Ejection"
};
};
class braf_ejection_seat_A29: braf_ejection_seat_base
{
author="$STR_A3_Bohemia_Interactive";
class SimpleObject
{
eden=0;
animate[]={};
hide[]=
{
"zasleh",
"zadni svetlo",
"brzdove svetlo",
"clan",
"podsvit pristroju",
"poskozeni"
};
verticalOffset=0.0020000001;
verticalOffsetWorld=0;
init="[this, '', []] call bis_fnc_initVehicle";
};
_generalMacro="braf_ejection_seat_A29";
scope=1;
side=2;
faction="BRAF_FAB";
crew="";
class TransportMagazines
{
class _xx_1Rnd_Smoke_Grenade_shell
{
magazine="1Rnd_Smoke_Grenade_shell";
count=3;
};
class _xx_1Rnd_SmokeGreen_Grenade_shell
{
magazine="1Rnd_SmokeGreen_Grenade_shell";
count=3;
};
class _xx_1Rnd_SmokeOrange_Grenade_shell
{
magazine="1Rnd_SmokeOrange_Grenade_shell";
count=3;
};
class _xx_1Rnd_SmokePurple_Grenade_shell
{
magazine="1Rnd_SmokePurple_Grenade_shell";
count=3;
};
};
class TransportItems
{
class _xx_FirstAidKit
{
name="FirstAidKit";
count=3;
};
};
};