Compare commits
4 Commits
533fdcc899
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 0bea545612 | |||
| 9bd92bd492 | |||
| 353b1f215c | |||
| a5e660eccd |
@@ -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
|
||||
|
||||
@@ -75,7 +75,7 @@ class Stage6
|
||||
};
|
||||
class Stage7
|
||||
{
|
||||
texture="braf\braf_air\braf_helicopters\braf_pantera\data\env_land_co.paa";
|
||||
texture="a3\data_f\env_land_co.paa";
|
||||
uvSource="none";
|
||||
};
|
||||
class StageTI
|
||||
|
||||
@@ -73,7 +73,7 @@ class Stage6
|
||||
};
|
||||
class Stage7
|
||||
{
|
||||
texture="braf\braf_air\braf_helicopters\braf_pantera\data\env_land_co.paa";
|
||||
texture="a3\data_f\env_land_co.paa";
|
||||
uvSource="none";
|
||||
};
|
||||
class StageTI
|
||||
|
||||
@@ -1152,7 +1152,7 @@ class CfgModels
|
||||
type="translation";
|
||||
source="remaxbase";
|
||||
selection="remaxbase";
|
||||
axis="remaxTurret_axis"
|
||||
axis="remaxTurret_axis";
|
||||
sourceAddress=0;
|
||||
minPhase=0;
|
||||
maxPhase=1;
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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";
|
||||
};
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -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 = "''";
|
||||
};
|
||||
};
|
||||
@@ -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"
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user