Compare commits

...

2 Commits

Author SHA1 Message Date
rarantes 166c027686 feat(AM39 Exocet):
Deploy DEV Workshop / deploy-dev-workshop (push) Failing after 41m32s
1- Created braf_weapons_naval for asw and asw naval
2- Added AM39 Exocet anti ship missile
2026-07-28 21:33:35 -03:00
rarantes 31d12bbc0b fix(a140): changes at proxies position 2026-07-28 14:31:19 -03:00
12 changed files with 496 additions and 5 deletions
+1
View File
@@ -13,3 +13,4 @@ docs/superpowers/plans/2026-07-18-generic-hoist-function-plan.md
docs/superpowers/plans/2026-07-19-caracal-mb-efs.md
tests/test_caracal_mb_efs.ps1
lfsconfig
docs/superpowers/plans/2026-07-26-a140-geometry-roadway-modularization.md
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -29,7 +29,7 @@ class cfgFactionClasses
class CfgVehicles
{
class StaticShip;
class BRAF_140: StaticShip
class BRAF_A140: StaticShip
{
model="BRAF\BRAF_SHIPS\BRAF_A140\BRAF_A140.p3d";
displayName="NAM A-140 Atlântico";
Binary file not shown.
@@ -0,0 +1,55 @@
//class StageTI
//{
// texture="braf\braf_weapons_naval\braf_asm\Exocet\AM39\data\MANSup_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_asm\Exocet\AM39\data\AM39_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_asm\Exocet\AM39\data\AM39_as.paa";
uvSource="tex";
};
class Stage5
{
texture="braf\braf_weapons_naval\braf_asm\Exocet\AM39\data\AM39_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";
};
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,313 @@
class CfgSkeletons
{
class Skeleton
{
isDiscrete=1;
skeletonInherit="";
skeletonBones[]=
{
"rocket_fire", "",
"rocket_fire_launch", "rocket_fire",
"rocket_fire_cruise", "rocket_fire",
"fire1", "rocket_fire_cruise",
"fire2", "rocket_fire_cruise",
"fire3", "rocket_fire_cruise",
"fire4", "rocket_fire_cruise",
"fire5", "rocket_fire_cruise",
"fire6", "rocket_fire_cruise",
"fire7", "rocket_fire_cruise",
"rocket_fire_cruise_end", "rocket_fire",
"fin_rear_01", "",
"fin_rear_02", "",
"fin_rear_03", "",
"fin_front_01", "",
"fin_front_02", "",
"fin_front_03", "",
"fin_front_04", ""
};
};
};
class CfgModels
{
class braf_am39_fly
{
htMin=0;
htMax=0;
afMax=0;
mfMax=0;
mFact=0;
tBody=0;
skeletonName="Skeleton";
sectionsInherit="";
sections[]={};
class Animations
{
class rocket_fire_stage_1_unhide
{
type="hide";
source="state";
selection="rocket_fire_launch";
sourceAddress="clamp";
minPhase=0;
maxPhase=1;
minValue=0;
maxValue=1;
memory=0;
hideValue=0;
unHideValue=1;
};
class rocket_fire_stage_1_hide
{
type="hide";
source="thrusttime";
selection="rocket_fire_launch";
sourceAddress="clamp";
minPhase=0;
maxPhase=2;
minValue=0;
maxValue=2;
memory=0;
hideValue=1;
unHideValue=1.5;
};
class rocket_fire_stage_2_unhide
{
type="hide";
source="thrusttime";
selection="rocket_fire_cruise";
sourceAddress="clamp";
minPhase=0;
maxPhase=2;
minValue=0;
maxValue=2;
memory=0;
hideValue=0;
unHideValue=1;
};
class rocket_firefly_translate
{
type="translation";
source="thrusttime";
selection="rocket_fire_cruise_end";
sourceAddress="clamp";
minPhase=2;
maxPhase=2.6;
minValue=2;
maxValue=2.6;
memory=0;
offset0=0;
offset1=-0.65;
};
class rocket_firefly_translate_1
{
type="translation";
source="thrusttime";
selection="fire1";
sourceAddress="clamp";
minPhase=2;
maxPhase=2.6;
minValue=2;
maxValue=2.6;
memory=0;
offset0=0;
offset1=-0.01;
};
class rocket_firefly_translate_2
{
type="translation";
source="thrusttime";
selection="fire2";
sourceAddress="clamp";
minPhase=2;
maxPhase=2.6;
minValue=2;
maxValue=2.6;
memory=0;
offset0=0;
offset1=-0.15;
};
class rocket_firefly_translate_3
{
type="translation";
source="thrusttime";
selection="fire3";
sourceAddress="clamp";
minPhase=2;
maxPhase=2.6;
minValue=2;
maxValue=2.6;
memory=0;
offset0=0;
offset1=-0.2;
};
class rocket_firefly_translate_4
{
type="translation";
source="thrusttime";
selection="fire4";
sourceAddress="clamp";
minPhase=2;
maxPhase=2.6;
minValue=2;
maxValue=2.6;
memory=0;
offset0=0;
offset1=-0.25;
};
class rocket_firefly_translate_5
{
type="translation";
source="thrusttime";
selection="fire5";
sourceAddress="clamp";
minPhase=2;
maxPhase=2.6;
minValue=2;
maxValue=2.6;
memory=0;
offset0=0;
offset1=-0.3;
};
class rocket_firefly_translate_6
{
type="translation";
source="thrusttime";
selection="fire6";
sourceAddress="clamp";
minPhase=2;
maxPhase=2.6;
minValue=2;
maxValue=2.6;
memory=0;
offset0=0;
offset1=-0.35;
};
class rocket_firefly_translate_7
{
type="translation";
source="thrusttime";
selection="fire7";
sourceAddress="clamp";
minPhase=2;
maxPhase=2.6;
minValue=2;
maxValue=2.6;
memory=0;
offset0=0;
offset1=-0.4;
};
class rocket_fire_rotate
{
type="rotation";
source="time";
selection="rocket_fire";
sourceAddress="loop";
minPhase=0;
maxPhase=0.1;
minValue=0;
maxValue=0.1;
memory=0;
angle0=0;
angle1=6.283185;
};
class rocket_extend_rear_stabilizers_1
{
type="rotation";
source="state";
selection="fin_rear_01";
sourceAddress="clamp";
minPhase=0.3;
maxPhase=1;
minValue=0.3;
maxValue=1;
memory=0;
angle0=0;
angle1=-1.48353;
};
class rocket_extend_rear_stabilizers_2
{
type="rotation";
source="state";
selection="fin_rear_02";
sourceAddress="clamp";
minPhase=0.3;
maxPhase=1;
minValue=0.3;
maxValue=1;
memory=0;
angle0=0;
angle1=-1.48353;
};
class rocket_extend_rear_stabilizers_3
{
type="rotation";
source="state";
selection="fin_rear_03";
sourceAddress="clamp";
minPhase=0.3;
maxPhase=1;
minValue=0.3;
maxValue=1;
memory=0;
angle0=0;
angle1=-1.48353;
};
class fin_1_rudder
{
type="rotation";
source="rudder";
selection="fin_front_01";
sourceAddress="clamp";
minPhase=-0.5;
maxPhase=0.5;
minValue=-0.5;
maxValue=0.5;
memory=0;
angle0=-0.5235988;
angle1=0.5235988;
};
class fin_3_rudder
{
type="rotation";
source="rudder";
selection="fin_front_03";
sourceAddress="clamp";
minPhase=-0.5;
maxPhase=0.5;
minValue=-0.5;
maxValue=0.5;
memory=0;
angle0=-0.5235988;
angle1=0.5235988;
};
class fin_2_elevator
{
type="rotation";
source="elevator";
selection="fin_front_02";
sourceAddress="clamp";
minPhase=-0.5;
maxPhase=0.5;
minValue=-0.5;
maxValue=0.5;
memory=0;
angle0=-0.5235988;
angle1=0.5235988;
};
class fin_4_elevator
{
type="rotation";
source="elevator";
selection="fin_front_04";
sourceAddress="clamp";
minPhase=-0.5;
maxPhase=0.5;
minValue=-0.5;
maxValue=0.5;
memory=0;
angle0=-0.5235988;
angle1=0.5235988;
};
};
};
};
+107
View File
@@ -0,0 +1,107 @@
class CfgPatches
{
class braf_naval_weapons
{
name = "BRAF Naval Weapons";
author = "BRAF TEAM";
requiredVersion = 1.82;
requiredAddons[] =
{
"A3_Weapons_F"
};
units[] = {};
weapons[] =
{
"braf_weapon_am39_asm"
};
};
};
class CfgAmmo
{
class ammo_Missile_CruiseBase;
class braf_ammo_asm_cruise_base: ammo_Missile_CruiseBase
{
scope = 0;
cameraViewAvailable = 1;
initTime = 0.3;
};
class braf_ammo_am39_asm: braf_ammo_asm_cruise_base
{
scope = 2;
displayName = "AM39 Exocet";
author = "BRAF TEAM";
model = "braf\braf_weapons_naval\braf_asm\Exocet\AM39\braf_am39_fly.p3d";
proxyShape = "braf\braf_weapons_naval\braf_asm\Exocet\AM39\braf_am39_fly.p3d";
};
};
class CfgMagazines
{
class 8Rnd_LG_scalpel;
class PylonMissile_1Rnd_LG_scalpel;
class braf_mag_am39_1rnd: 8Rnd_LG_scalpel
{
scope = 2;
displayName = "AM39 Exocet (1 missile)";
author = "BRAF TEAM";
count = 1;
initSpeed = 12;
ammo = "braf_ammo_am39_asm";
};
class braf_mag_am39_pylon_1rnd: PylonMissile_1Rnd_LG_scalpel
{
scope = 2;
displayName = "AM39 Exocet Pylon Store";
author = "BRAF TEAM";
count = 1;
initSpeed = 12;
ammo = "braf_ammo_am39_asm";
pylonWeapon = "braf_weapon_am39_asm";
ejectSpeed[] = {1,0,0};
};
};
class CfgWeapons
{
class missiles_SCALPEL;
class RocketPods;
class braf_weapon_asm_air_base: missiles_SCALPEL
{
scope = 0;
magazines[] = {};
modes[] = {"Cruise"};
class Cruise: RocketPods
{
displayName = "$STR_A3_firemode_terrain0";
textureType = "terrain";
reloadTime = 0.1;
magazineReloadTime = 0.1;
sounds[] = {"StandardSound"};
class StandardSound
{
begin1[] = {"A3\Sounds_F\weapons\Rockets\missile_1",1.1220185,1.3,1000};
soundBegin[] = {"begin1",1};
};
lockingTargetSound[] = {"A3\Sounds_F\weapons\Rockets\locked_1",0.56234133,1};
lockedTargetSound[] = {"A3\Sounds_F\weapons\Rockets\locked_3",0.56234133,2.5};
aiRateOfFire = 5.0;
aiRateOfFireDistance = 500;
showToPlayer = 1;
minRange = 500;
minRangeProbab = 0.2;
midRange = 2000;
midRangeProbab = 0.96;
maxRange = 32000;
maxRangeProbab = 0.92;
};
};
class braf_weapon_am39_asm: braf_weapon_asm_air_base
{
scope = 2;
displayName = "AM39 Exocet";
author = "BRAF";
magazines[] =
{
"braf_mag_am39_1rnd",
"braf_mag_am39_pylon_1rnd"
};
};
};