From 0bea54561267e69bec053c11d7f8a38f41943c6b Mon Sep 17 00:00:00 2001 From: Arantes83 Date: Sat, 8 Aug 2026 22:36:33 -0300 Subject: [PATCH] feat(BRAF NAVAL TURRETS) --- .gitignore | 3 + .../data/braf_otomelarasr.rvmat | 55 ++++ .../data/braf_otomelarasr_as.paa | 3 + .../data/braf_otomelarasr_co.paa | 3 + .../data/braf_otomelarasr_nohq.paa | 3 + .../data/braf_otomelarasr_smdi.paa | 3 + .../braf_ciws/braf_seasnake/braf_seasnake.p3d | 3 + .../braf_seasnake/data/braf_seasnake.rvmat | 55 ++++ .../braf_seasnake/data/braf_seasnake_as.paa | 3 + .../braf_seasnake/data/braf_seasnake_co.paa | 3 + .../braf_seasnake/data/braf_seasnake_nohq.paa | 3 + .../braf_seasnake/data/braf_seasnake_smdi.paa | 3 + .../braf_ciws/braf_seasnake/model.cfg | 58 ++++ .../braf_ciws/braf_seasnake/seasnake.hpp | 63 ++++ braf_weapons_naval/config.cpp | 281 +++++++++++++++++- 15 files changed, 540 insertions(+), 2 deletions(-) create mode 100644 braf_weapons_naval/braf_canons/braf_otomelarasr/data/braf_otomelarasr.rvmat create mode 100644 braf_weapons_naval/braf_canons/braf_otomelarasr/data/braf_otomelarasr_as.paa create mode 100644 braf_weapons_naval/braf_canons/braf_otomelarasr/data/braf_otomelarasr_co.paa create mode 100644 braf_weapons_naval/braf_canons/braf_otomelarasr/data/braf_otomelarasr_nohq.paa create mode 100644 braf_weapons_naval/braf_canons/braf_otomelarasr/data/braf_otomelarasr_smdi.paa create mode 100644 braf_weapons_naval/braf_ciws/braf_seasnake/braf_seasnake.p3d create mode 100644 braf_weapons_naval/braf_ciws/braf_seasnake/data/braf_seasnake.rvmat create mode 100644 braf_weapons_naval/braf_ciws/braf_seasnake/data/braf_seasnake_as.paa create mode 100644 braf_weapons_naval/braf_ciws/braf_seasnake/data/braf_seasnake_co.paa create mode 100644 braf_weapons_naval/braf_ciws/braf_seasnake/data/braf_seasnake_nohq.paa create mode 100644 braf_weapons_naval/braf_ciws/braf_seasnake/data/braf_seasnake_smdi.paa create mode 100644 braf_weapons_naval/braf_ciws/braf_seasnake/model.cfg create mode 100644 braf_weapons_naval/braf_ciws/braf_seasnake/seasnake.hpp diff --git a/.gitignore b/.gitignore index 88f7534..0ca2a18 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,6 @@ docs/superpowers/plans/2026-07-26-a140-geometry-roadway-modularization.md AGENTS.md .agents/ libs/ +docs/superpowers/specs/2026-08-08-sea-snake-30mm-design.md +docs/superpowers/plans/2026-08-08-seasnake-static-ciws.md +braf_weapons_naval/weapons.md diff --git a/braf_weapons_naval/braf_canons/braf_otomelarasr/data/braf_otomelarasr.rvmat b/braf_weapons_naval/braf_canons/braf_otomelarasr/data/braf_otomelarasr.rvmat new file mode 100644 index 0000000..7353daa --- /dev/null +++ b/braf_weapons_naval/braf_canons/braf_otomelarasr/data/braf_otomelarasr.rvmat @@ -0,0 +1,55 @@ +//class StageTI +//{ +// texture="braf\braf_weapons_naval\braf_canons\braf_otomelarasr\data\braf_otomelarasr_ti_ca.paa"; +//}; +ambient[]={0.75,0.75,0.75,1.0}; +diffuse[]={0.75,0.75,0.75,1.0}; +forcedDiffuse[]={0.0,0.0,0.0,1.0}; +emmisive[]={0.0,0.0,0.0,1.0}; +specular[]={0.15,0.15,0.15,1.0}; +specularPower=25; +PixelShaderID="Super"; +VertexShaderID="Super"; +class Stage1 +{ + texture="braf\braf_weapons_naval\braf_canons\braf_otomelarasr\data\braf_otomelarasr_nohq.paa"; + uvSource="tex"; +}; +class Stage2 +{ + texture="#(argb,8,8,3)color(0.5,0.5,0.5,1,DT)"; + uvSource="tex"; + class uvTransform + { + aside[]={10,0,0}; + up[]={0,10,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage3 +{ + texture="#(argb,8,8,3)color(0,0,0,0,MC)"; + uvSource="tex"; +}; +class Stage4 +{ + texture="braf\braf_weapons_naval\braf_canons\braf_otomelarasr\data\braf_otomelarasr_as.paa"; + uvSource="tex"; +}; +class Stage5 +{ + texture="braf\braf_weapons_naval\braf_canons\braf_otomelarasr\data\braf_otomelarasr_smdi.paa"; + uvSource="tex"; +}; +class Stage6 +{ + texture="#(ai,64,64,1)fresnel(4.7,1.2)"; + uvSource="tex"; +}; +class Stage7 +{ + texture="a3\data_f\env_land_co.paa"; + useWorldEnvMap="true"; + uvSource="tex"; +}; diff --git a/braf_weapons_naval/braf_canons/braf_otomelarasr/data/braf_otomelarasr_as.paa b/braf_weapons_naval/braf_canons/braf_otomelarasr/data/braf_otomelarasr_as.paa new file mode 100644 index 0000000..1d27aa3 --- /dev/null +++ b/braf_weapons_naval/braf_canons/braf_otomelarasr/data/braf_otomelarasr_as.paa @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f1f03d41e505f1b4cf13baf78547362013e9079ef2df5fc6a3c1bcfb8e0c4a66 +size 765664 diff --git a/braf_weapons_naval/braf_canons/braf_otomelarasr/data/braf_otomelarasr_co.paa b/braf_weapons_naval/braf_canons/braf_otomelarasr/data/braf_otomelarasr_co.paa new file mode 100644 index 0000000..6490aa6 --- /dev/null +++ b/braf_weapons_naval/braf_canons/braf_otomelarasr/data/braf_otomelarasr_co.paa @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a561d7569813df77dcc25c201aa0379343ce3900143bda642c46869a4455bdc +size 1277138 diff --git a/braf_weapons_naval/braf_canons/braf_otomelarasr/data/braf_otomelarasr_nohq.paa b/braf_weapons_naval/braf_canons/braf_otomelarasr/data/braf_otomelarasr_nohq.paa new file mode 100644 index 0000000..609d964 --- /dev/null +++ b/braf_weapons_naval/braf_canons/braf_otomelarasr/data/braf_otomelarasr_nohq.paa @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee33606408792de4b504742c9913423279928ded7c0306fd596e095787194f4d +size 648573 diff --git a/braf_weapons_naval/braf_canons/braf_otomelarasr/data/braf_otomelarasr_smdi.paa b/braf_weapons_naval/braf_canons/braf_otomelarasr/data/braf_otomelarasr_smdi.paa new file mode 100644 index 0000000..a584cdc --- /dev/null +++ b/braf_weapons_naval/braf_canons/braf_otomelarasr/data/braf_otomelarasr_smdi.paa @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:836701520ca7a47393bbd9558215aed10ba69bab72a0ff3b499be1a7d017bd4f +size 679664 diff --git a/braf_weapons_naval/braf_ciws/braf_seasnake/braf_seasnake.p3d b/braf_weapons_naval/braf_ciws/braf_seasnake/braf_seasnake.p3d new file mode 100644 index 0000000..dba1f7d --- /dev/null +++ b/braf_weapons_naval/braf_ciws/braf_seasnake/braf_seasnake.p3d @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:126eba43bab9d8af533dfd1bfa5079a5b2b84ae0f722e23a361de6ecaaad7ce8 +size 3525990 diff --git a/braf_weapons_naval/braf_ciws/braf_seasnake/data/braf_seasnake.rvmat b/braf_weapons_naval/braf_ciws/braf_seasnake/data/braf_seasnake.rvmat new file mode 100644 index 0000000..b11d87d --- /dev/null +++ b/braf_weapons_naval/braf_ciws/braf_seasnake/data/braf_seasnake.rvmat @@ -0,0 +1,55 @@ +//class StageTI +//{ +// texture="braf\braf_weapons_naval\braf_ciws\braf_seasnake\data\braf_seasnake_ti_ca.paa"; +//}; +ambient[]={0.75,0.75,0.75,1.0}; +diffuse[]={0.75,0.75,0.75,1.0}; +forcedDiffuse[]={0.0,0.0,0.0,1.0}; +emmisive[]={0.0,0.0,0.0,1.0}; +specular[]={0.15,0.15,0.15,1.0}; +specularPower=25; +PixelShaderID="Super"; +VertexShaderID="Super"; +class Stage1 +{ + texture="braf\braf_weapons_naval\braf_ciws\braf_seasnake\data\braf_seasnake_nohq.paa"; + uvSource="tex"; +}; +class Stage2 +{ + texture="#(argb,8,8,3)color(0.5,0.5,0.5,1,DT)"; + uvSource="tex"; + class uvTransform + { + aside[]={10,0,0}; + up[]={0,10,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage3 +{ + texture="#(argb,8,8,3)color(0,0,0,0,MC)"; + uvSource="tex"; +}; +class Stage4 +{ + texture="braf\braf_weapons_naval\braf_ciws\braf_seasnake\data\braf_seasnake_as.paa"; + uvSource="tex"; +}; +class Stage5 +{ + texture="braf\braf_weapons_naval\braf_ciws\braf_seasnake\data\braf_seasnake_smdi.paa"; + uvSource="tex"; +}; +class Stage6 +{ + texture="#(ai,64,64,1)fresnel(4.7,1.2)"; + uvSource="tex"; +}; +class Stage7 +{ + texture="a3\data_f\env_land_co.paa"; + useWorldEnvMap="true"; + uvSource="tex"; +}; diff --git a/braf_weapons_naval/braf_ciws/braf_seasnake/data/braf_seasnake_as.paa b/braf_weapons_naval/braf_ciws/braf_seasnake/data/braf_seasnake_as.paa new file mode 100644 index 0000000..01210c6 --- /dev/null +++ b/braf_weapons_naval/braf_ciws/braf_seasnake/data/braf_seasnake_as.paa @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:040e5b3abc5ffe3b6d4f2beb01ed07b63a38b1c9d8ae3c57565860692a2d51e6 +size 1142058 diff --git a/braf_weapons_naval/braf_ciws/braf_seasnake/data/braf_seasnake_co.paa b/braf_weapons_naval/braf_ciws/braf_seasnake/data/braf_seasnake_co.paa new file mode 100644 index 0000000..c2dc311 --- /dev/null +++ b/braf_weapons_naval/braf_ciws/braf_seasnake/data/braf_seasnake_co.paa @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6e23a58186d10de088eab435b1d06a9e013322eee19f77397f28f540a0f858b8 +size 1588350 diff --git a/braf_weapons_naval/braf_ciws/braf_seasnake/data/braf_seasnake_nohq.paa b/braf_weapons_naval/braf_ciws/braf_seasnake/data/braf_seasnake_nohq.paa new file mode 100644 index 0000000..c228f24 --- /dev/null +++ b/braf_weapons_naval/braf_ciws/braf_seasnake/data/braf_seasnake_nohq.paa @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a8e1f81d17a4d072502f37032e441e53f87305f6076224ccecdfa3ee26e8044 +size 1638652 diff --git a/braf_weapons_naval/braf_ciws/braf_seasnake/data/braf_seasnake_smdi.paa b/braf_weapons_naval/braf_ciws/braf_seasnake/data/braf_seasnake_smdi.paa new file mode 100644 index 0000000..dd73adb --- /dev/null +++ b/braf_weapons_naval/braf_ciws/braf_seasnake/data/braf_seasnake_smdi.paa @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5410ef9c361c82bf5e1d0dc6d97173ae764a1fc379225d7e54fe22bc7b67d8ac +size 1531583 diff --git a/braf_weapons_naval/braf_ciws/braf_seasnake/model.cfg b/braf_weapons_naval/braf_ciws/braf_seasnake/model.cfg new file mode 100644 index 0000000..ea46844 --- /dev/null +++ b/braf_weapons_naval/braf_ciws/braf_seasnake/model.cfg @@ -0,0 +1,58 @@ +class CfgSkeletons +{ + class braf_seasnake_skeleton + { + isDiscrete = 1; + skeletonInherit = ""; + skeletonBones[] = + { + "mainturret", "", + "maingun", "mainturret" + }; + }; +}; + +class CfgModels +{ + class braf_seasnake + { + htMin = 0; + htMax = 0; + afMax = 0; + mfMax = 0; + mFact = 0; + tBody = 0; + skeletonName = "braf_seasnake_skeleton"; + sectionsInherit = ""; + sections[] = {}; + + class Animations + { + class MainTurret + { + type = "rotationY"; + source = "mainTurret"; + selection = "mainturret"; + axis = "mainturret_axis"; + animPeriod = 0; + minValue = "rad -170"; + maxValue = "rad +170"; + angle0 = "rad -170"; + angle1 = "rad +170"; + }; + + class MainGun + { + type = "rotationX"; + source = "mainGun"; + selection = "maingun"; + axis = "maingun_axis"; + animPeriod = 0; + minValue = "rad -25"; + maxValue = "rad +60"; + angle0 = "rad -25"; + angle1 = "rad +60"; + }; + }; + }; +}; diff --git a/braf_weapons_naval/braf_ciws/braf_seasnake/seasnake.hpp b/braf_weapons_naval/braf_ciws/braf_seasnake/seasnake.hpp new file mode 100644 index 0000000..67bad5d --- /dev/null +++ b/braf_weapons_naval/braf_ciws/braf_seasnake/seasnake.hpp @@ -0,0 +1,63 @@ +class braf_seasnake_30mm_static_f: braf_ciws_static_base_f +{ + author = "BRAF TEAM"; + scope = 2; + scopeCurator = 2; + displayName = "Sea Snake 30 mm CIWS"; + side = 2; + faction = "BRAF Navy"; + crew = "B_UAV_AI"; + typicalCargo[] = {"B_UAV_AI"}; + model = "\braf\braf_weapons_naval\braf_ciws\braf_seasnake\braf_seasnake.p3d"; + laserScanner = 1; + threat[] = {0.3,0.3,1.0}; + cost = 150000; + accuracy = 0.12; + armor = 80; + armorStructural = 2; + damageResistance = 0.004; + damageEffect = "AirDestructionEffects"; + + class Turrets: Turrets + { + class MainTurret: MainTurret + { + minElev = -25; + maxElev = 60; + minTurn = -170; + maxTurn = 170; + initElev = 0; + initTurn = 0; + maxHorizontalRotSpeed = 1.333333; + maxVerticalRotSpeed = 1.333333; + stabilizedInAxes = 3; + soundServo[] = {"A3\Sounds_F\vehicles\armor\noises\servo_best",1.4125376,1,40}; + weapons[] = {"braf_weapon_seasnake_30mm"}; + magazines[] = + { + "braf_mag_seasnake_30mm_tp_t", + "braf_mag_seasnake_30mm_ketf", + "braf_mag_seasnake_30mm_ketf_impact" + }; + }; + }; + + class AnimationSources + { + class Revolving + { + source = "revolving"; + weapon = "braf_weapon_seasnake_30mm"; + }; + }; + + class SimpleObject + { + eden = 1; + animate[] = {{"mainturret",0},{"maingun",0}}; + hide[] = {"zasleh"}; + verticalOffset = 0; + verticalOffsetWorld = 0; + init = "''"; + }; +}; diff --git a/braf_weapons_naval/config.cpp b/braf_weapons_naval/config.cpp index ca3b206..9bb6985 100644 --- a/braf_weapons_naval/config.cpp +++ b/braf_weapons_naval/config.cpp @@ -11,10 +11,30 @@ class CfgPatches "A3_Data_F", "A3_Data_F_ParticleEffects" }; - units[] = {}; + units[] = + { + "braf_seasnake_30mm_static_f" + }; weapons[] = { - "braf_weapon_am39_asm" + "braf_weapon_am39_asm", + "braf_weapon_seasnake_30mm" + }; + magazines[] = + { + "braf_mag_am39_1rnd", + "braf_mag_am39_pylon_1rnd", + "braf_mag_seasnake_30mm_tp_t", + "braf_mag_seasnake_30mm_ketf", + "braf_mag_seasnake_30mm_ketf_impact" + }; + ammo[] = + { + "braf_ammo_am39_asm", + "braf_ammo_seasnake_30mm_tp_t", + "braf_ammo_seasnake_30mm_ketf", + "braf_ammo_seasnake_30mm_ketf_sub", + "braf_ammo_seasnake_30mm_ketf_impact" }; }; }; @@ -44,6 +64,8 @@ class braf_asm_engineeffects class CfgAmmo { class ammo_Missile_CruiseBase; + class B_30mm_MP; + class B_30mm_APFSDS; class braf_ammo_asm_cruise_base: ammo_Missile_CruiseBase { scope = 0; @@ -63,11 +85,62 @@ class CfgAmmo model = "braf\braf_weapons_naval\braf_asm\exocet\am39\braf_am39_fly.p3d"; proxyShape = "braf\braf_weapons_naval\braf_asm\exocet\am39\braf_am39.p3d"; }; + class braf_ammo_seasnake_30mm_tp_t: B_30mm_MP + { + scope = 2; + displayName = "30x173 mm TP-T"; + author = "BRAF TEAM"; + typicalSpeed = 1065; + hit = 0; + indirectHit = 0; + indirectHitRange = 0; + explosive = 0; + }; + class braf_ammo_seasnake_30mm_ketf_sub: B_30mm_APFSDS + { + scope = 1; + displayName = "KETF tungsten subprojectile"; + author = "BRAF TEAM"; + typicalSpeed = 1065; + hit = 5; + caliber = 0.20; + indirectHit = 0; + indirectHitRange = 0; + explosive = 0; + }; + class braf_ammo_seasnake_30mm_ketf: B_30mm_MP + { + scope = 2; + displayName = "30x173 mm KETF / ABM"; + author = "BRAF TEAM"; + submunitionAmmo = "braf_ammo_seasnake_30mm_ketf_sub"; + submunitionConeType[] = {"poissondisc", 162}; + triggerTime = 0.12; + timeToLive = 8.2; + hit = 0; + indirectHit = 0; + indirectHitRange = 0; + explosive = 0; + }; + class braf_ammo_seasnake_30mm_ketf_impact: B_30mm_APFSDS + { + scope = 2; + displayName = "30x173 mm KETF / impact mode"; + author = "BRAF TEAM"; + typicalSpeed = 1065; + hit = 70; + caliber = 1.25; + indirectHit = 0; + indirectHitRange = 0; + explosive = 0; + }; }; class CfgMagazines { class 8Rnd_LG_scalpel; class PylonMissile_1Rnd_LG_scalpel; + class 140Rnd_30mm_MP_shells; + class 60Rnd_30mm_APFSDS_shells; class braf_mag_am39_1rnd: 8Rnd_LG_scalpel { scope = 2; @@ -90,11 +163,38 @@ class CfgMagazines hardpoints[] = {"BRAF_AM39_PYLON"}; ejectSpeed[] = {0,0,0}; }; + class braf_mag_seasnake_30mm_tp_t: 140Rnd_30mm_MP_shells + { + scope = 2; + displayName = "Sea Snake 30 - 30x173 TP-T"; + author = "BRAF TEAM"; + ammo = "braf_ammo_seasnake_30mm_tp_t"; + initSpeed = 1065; + tracersEvery = 1; + }; + class braf_mag_seasnake_30mm_ketf: 140Rnd_30mm_MP_shells + { + scope = 2; + displayName = "Sea Snake 30 - 30x173 KETF / ABM"; + author = "BRAF TEAM"; + ammo = "braf_ammo_seasnake_30mm_ketf"; + initSpeed = 1065; + }; + class braf_mag_seasnake_30mm_ketf_impact: 60Rnd_30mm_APFSDS_shells + { + scope = 2; + displayName = "Sea Snake 30 - KETF impact mode"; + author = "BRAF TEAM"; + ammo = "braf_ammo_seasnake_30mm_ketf_impact"; + initSpeed = 1065; + }; }; class CfgWeapons { class missiles_SCALPEL; class RocketPods; + class autocannon_30mm; + class autocannon_Base_F; class braf_weapon_asm_air_base: missiles_SCALPEL { scope = 0; @@ -141,4 +241,181 @@ class CfgWeapons "braf_mag_am39_pylon_1rnd" }; }; + class braf_weapon_seasnake_30mm: autocannon_30mm + { + scope = 2; + displayName = "Rheinmetall Sea Snake 30 / SeaVision"; + author = "BRAF TEAM"; + muzzles[] = {"HE"}; + magazines[] = + { + "braf_mag_seasnake_30mm_tp_t", + "braf_mag_seasnake_30mm_ketf", + "braf_mag_seasnake_30mm_ketf_impact" + }; + reloadTime = 0.0545455; + class HE: autocannon_Base_F + { + magazines[] = + { + "braf_mag_seasnake_30mm_tp_t", + "braf_mag_seasnake_30mm_ketf", + "braf_mag_seasnake_30mm_ketf_impact" + }; + reloadTime = 0.0545455; + class player: player + { + reloadTime = 0.0545455; + }; + }; + }; +}; +class SensorTemplateIR; +class SensorTemplateVisual; +class SensorTemplateDataLink; +class LandVehicle; +class StaticWeapon: LandVehicle +{ + class Turrets; + class HitPoints; +}; +class StaticMGWeapon: StaticWeapon +{ + class Turrets: Turrets + { + class MainTurret; + }; + class Components; +}; + +class CfgVehicles +{ + class braf_ciws_static_base_f: StaticMGWeapon + { + author = "BRAF TEAM"; + scope = 0; + scopeCurator = 0; + vehicleClass = "Autonomous"; + hasDriver = 0; + hasGunner = 1; + isUav = 1; + getInRadius = 0; + unitInfoType = "RscUnitInfoTank"; + canFloat = 0; + animated = 1; + enableGPS = 1; + irScanRangeMin = 500; + irScanRangeMax = 4000; + irScanToEyeFactor = 2; + laserScanner = 1; + showAllTargets = 4; + visualTarget = 1; + visualTargetSize = 1.2; + irTarget = 1; + irTargetSize = 0.5; + reportRemoteTargets = 1; + receiveRemoteTargets = 1; + reportOwnPosition = 1; + lockDetectionSystem = 0; + incomingMissileDetectionSystem = 16; + uavCameraGunnerPos = "pos_gunner_view"; + uavCameraGunnerDir = "pos_gunner_view_dir"; + memoryPointGun = "pos_barrel_end"; + + class Components: Components + { + class SensorsManagerComponent + { + class Components + { + class IRSensorComponent: SensorTemplateIR + { + class AirTarget + { + minRange = 500; + maxRange = 4000; + objectDistanceLimitCoef = -1; + viewDistanceLimitCoef = 1; + }; + class GroundTarget + { + minRange = 500; + maxRange = 3500; + objectDistanceLimitCoef = 1; + viewDistanceLimitCoef = 1; + }; + typeRecognitionDistance = 3500; + maxTrackableSpeed = 600; + angleRangeHorizontal = 60; + angleRangeVertical = 40; + animDirection = "mainGun"; + aimDown = -0.5; + }; + class VisualSensorComponent: SensorTemplateVisual + { + class AirTarget + { + minRange = 500; + maxRange = 4000; + objectDistanceLimitCoef = -1; + viewDistanceLimitCoef = 1; + }; + class GroundTarget + { + minRange = 500; + maxRange = 3500; + objectDistanceLimitCoef = 1; + viewDistanceLimitCoef = 1; + }; + typeRecognitionDistance = 3500; + maxTrackableSpeed = 600; + angleRangeHorizontal = 360; + angleRangeVertical = 95; + animDirection = "mainGun"; + aimDown = -0.5; + }; + class DataLinkSensorComponent: SensorTemplateDataLink{}; + }; + }; + }; + + class Turrets: Turrets + { + class MainTurret: MainTurret + { + hasGunner = 1; + primary = 1; + primaryGunner = 1; + startEngine = 0; + enableManualFire = 1; + forceHideGunner = 1; + gunnerForceOptics = 1; + gunnerOutForceOptics = 1; + viewGunnerInExternal = 0; + outGunnerMayFire = 1; + inGunnerMayFire = 1; + castGunnerShadow = 0; + showAllTargets = 2; + body = "MainTurret"; + gun = "MainGun"; + animationSourceBody = "MainTurret"; + animationSourceGun = "MainGun"; + gunbeg = "pos_barrel_end"; + gunend = "pos_barrel"; + uavCameraGunnerPos = "pos_gunner_view"; + uavCameraGunnerDir = "pos_gunner_view_dir"; + memoryPointGunnerOptics = "pos_gunner_view"; + particlespos = "pos_fx"; + particlesdir = "pos_fx_dir"; + selectionFireAnim = "zasleh"; + gunnerlefthandanimname = ""; + gunnerrighthandanimname = ""; + optics = 1; + turretinfotype = "RscOptics_APC_Tracked_01_gunner"; + gunnerOpticsModel = "\a3\weapons_f\reticle\Optics_Gunner_AAA_01_w_F"; + }; + }; + }; + +#include "braf_ciws\braf_seasnake\seasnake.hpp" };