diff --git a/addons/destruction/CfgAmmo.hpp b/addons/destruction/CfgAmmo.hpp index 0ebe489613..586a13ab15 100644 --- a/addons/destruction/CfgAmmo.hpp +++ b/addons/destruction/CfgAmmo.hpp @@ -1,176 +1,164 @@ class CfgAmmo { + class Default; class ShellBase; class BulletBase; - - class ace_fuelexpbig: ShellBase { - hit=100; - indirectHit=80; - indirectHitRange=3; - soundHit[]={"\a3\sounds_f\Weapons\explosion\expl_big_2.wss", db16,1,1600}; - typicalSpeed = 100; - explosive = 1; - cost = 300; - model = "\A3\Weapons_f\empty"; - airFriction = 0; - timeToLive = 1; - explosionTime = 0.001; - soundFly[] = {"",1,1}; - soundEngine[] = {"",1,4}; - explosionEffects = "VehicleExplosionEffects"; - }; + + class ace_fuelexpbig: Default { + hit = 50; + indirectHit = 75; + indirectHitRange = 2.5; + model = ""; + simulation = ""; + cost = 1; + + explosionSoundEffect = "DefaultExplosion"; + explosionEffects = "VehicleExplosionEffects"; + + soundHit1[] = {"A3\Sounds_F\weapons\Explosion\expl_big_1",3.1622777,1,2000}; + soundHit2[] = {"A3\Sounds_F\weapons\Explosion\expl_big_2",3.1622777,1,2000}; + soundHit3[] = {"A3\Sounds_F\weapons\Explosion\expl_big_3",3.1622777,1,2000}; + multiSoundHit[] = {"soundHit1",0.13,"soundHit2",0.13,"soundHit3",0.13}; + + class CamShakeExplode + { + power = "(20*0.2)"; + duration = "((round (20^0.5))*0.2 max 0.2)"; + frequency = 20; + distance = "((1 + 20^0.5)*8)"; + }; + class CamShakeHit + { + power = 20; + duration = "((round (20^0.25))*0.2 max 0.2)"; + frequency = 20; + distance = 1; + }; + }; class ace_fuelexpsmall: ace_fuelexpbig { - hit=50; - indirectHit=40; - indirectHitRange=2; - soundHit[]={"\a3\sounds_f\SFX\explosion1", db16,1,1600}; - explosionEffects = "ExploAmmoExplosion"; + // @TODO!? }; + class ace_fuelexpspark: BulletBase { - hit=7.5; - indirectHit=6; - indirectHitRange=1; - explosive = 0.1; - craterEffects = "ImpactEffectsBig"; - explosionEffects = "NoExplosion"; // Need very small explosion FX... - soundHit[]={"\a3\sounds_f\Weapons\explosion\supersonic_crack_50meters.wss",db16,0.7,100}; - soundCrack1[]={"\a3\sounds_f\Weapons\explosion\supersonic_crack_close.wss",db16,0.6,100}; - soundCrack2[]={"\a3\sounds_f\Weapons\explosion\supersonic_crack_50meters.wss",db16,0.7,100}; - soundCrack3[]={"\a3\sounds_f\Weapons\explosion\supersonic_crack_50meters.wss",db16,0.8,100}; - - hitGroundSoft[] = {"soundCrack1",0.33,"soundCrack2",0.34,"soundCrack3",0.33}; - hitGroundHard[] = {"soundCrack1",0.33,"soundCrack2",0.34,"soundCrack3",0.33}; - hitMan[] = {"soundCrack1",0.33,"soundCrack2",0.34,"soundCrack3",0.33}; - hitArmor[] = {"soundCrack1",0.33,"soundCrack2",0.34,"soundCrack3",0.33}; - hitIron[] = {"soundCrack1",0.33,"soundCrack2",0.34,"soundCrack3",0.33}; - hitBuilding[] = {"soundCrack1",0.33,"soundCrack2",0.34,"soundCrack3",0.33}; - hitFoliage[] = {"soundCrack1",0.33,"soundCrack2",0.34,"soundCrack3",0.33}; - hitWood[] = {"soundCrack1",0.33,"soundCrack2",0.34,"soundCrack3",0.33}; - hitGlass[] = {"soundCrack1",0.33,"soundCrack2",0.34,"soundCrack3",0.33}; - hitGlassArmored[] = {"soundCrack1",0.33,"soundCrack2",0.34,"soundCrack3",0.33}; - hitConcrete[] = {"soundCrack1",0.33,"soundCrack2",0.34,"soundCrack3",0.33}; - hitRubber[] = {"soundCrack1",0.33,"soundCrack2",0.34,"soundCrack3",0.33}; - hitPlastic[] = {"soundCrack1",0.33,"soundCrack2",0.34,"soundCrack3",0.33}; - hitDefault[] = {"soundCrack1",0.33,"soundCrack2",0.34,"soundCrack3",0.33}; - hitMetal[] = {"soundCrack1",0.33,"soundCrack2",0.34,"soundCrack3",0.33}; - hitMetalplate[] = {"soundCrack1",0.33,"soundCrack2",0.34,"soundCrack3",0.33}; + hit = 2500; + indirectHit = 500; + indirectHitRange = 5; + typicalSpeed = 100; + explosive = 1; + cost = 300; + model = "\A3\Weapons_f\empty"; + airFriction = 0; + timeToLive = 1; + explosionTime = 0.001; + soundFly[] = {"",1,1}; + soundEngine[] = {"",1,4}; + + explosionSoundEffect = "DefaultExplosion"; + explosionEffects = "SencondaryExplosion"; + craterEffects = "SecondaryCrater"; + + soundHit[]={"A3\Sounds_F\weapons\Explosion\supersonic_crack_50meters",0.2238721,1,100}; + multiSoundHit[] = {"soundHit",0.33}; + supersonicCrackNear[] = {"A3\Sounds_F\weapons\Explosion\supersonic_crack_50meters",0.2238721,1,150}; + supersonicCrackFar[] = {"A3\Sounds_F\weapons\Explosion\supersonic_crack_50meters",0.2238721,1,150}; }; class ACE_cookoff_large_1_normal : ShellBase { hit = 1; - indirectHit = 20; - indirectHitRange = 2; - typicalSpeed = 100; - explosive = 1; - cost = 300; - model = "\A3\Weapons_f\empty"; - airFriction = 0; - timeToLive = 1; - explosionTime = 0.0001; - soundFly[] = {"",1,1}; - soundEngine[] = {"",1,4}; - CraterEffects = "ExploAmmoCrater"; - explosionEffects = "ExploAmmoExplosion"; - muzzleEffect = "BIS_fnc_EffectRifle"; + indirectHit = 20; + indirectHitRange = 2; + typicalSpeed = 100; + explosive = 1; + cost = 300; + model = "\A3\Weapons_f\empty"; + airFriction = 0; + timeToLive = 1; + explosionTime = 0.001; + soundFly[] = {"",1,1}; + soundEngine[] = {"",1,4}; + CraterEffects = "SecondaryCrater"; + explosionEffects = "SencondaryExplosion"; + explosionSoundEffect = "DefaultExplosion"; + soundHit[] = {PATHTOF(data\sounds\cannon_crack_close.wss), 56.23413,1,1800}; - soundDefault1[] = {PATHTOF(data\sounds\cannon_crack_close.wss), 56.2341,1,1800}; - hitGroundSoft[] = {"soundDefault1",1}; - hitGroundHard[] = {"soundDefault1",1}; - hitMan[] = {"soundDefault1",1}; - hitArmor[] = {"soundDefault1",1}; - hitIron[] = {"soundDefault1",1}; - hitBuilding[] = {"soundDefault1",1}; - hitFoliage[] = {"soundDefault1",1}; - hitWood[] = {"soundDefault1",1}; - hitGlass[] = {"soundDefault1",1}; - hitGlassArmored[] = {"soundDefault1",1}; - hitConcrete[] = {"soundDefault1",1}; - hitRubber[] = {"soundDefault1",1}; - hitPlastic[] = {"soundDefault1",1}; - hitDefault[] = {"soundDefault1",1}; - hitMetal[] = {"soundDefault1",1}; - hitMetalplate[] = {"soundDefault1",1}; + multiSoundHit[] = {"soundHit",0.34}; + + class CamShakeExplode + { + power = "(16*0.2)"; + duration = "((round (16^0.5))*0.2 max 0.2)"; + frequency = 20; + distance = "((3 + 16^0.5)*8)"; + }; }; class ACE_cookoff_large_1_filtered: ACE_cookoff_large_1_normal { CraterEffects = ""; - explosionEffects = ""; + explosionEffects = "SencondaryExplosion"; soundHit[] = {PATHTOF(data\sounds\cannon_crack_close_filtered.wss), 56.23413,1.2,1800}; - soundDefault1[] = {PATHTOF(data\sounds\cannon_crack_close_filtered.wss), 56.2341,1.2,1800}; }; class ACE_cookoff_large_2_normal: ACE_cookoff_large_1_normal { soundHit[] = {PATHTOF(data\sounds\cannon_crack_close.wss), 56.23413,1.2,1800}; - soundDefault1[] = {PATHTOF(data\sounds\cannon_crack_close.wss), 56.2341,1.2,1800}; }; class ACE_cookoff_large_2_filtered: ACE_cookoff_large_1_filtered { soundHit[] = {PATHTOF(data\sounds\cannon_crack_close_filtered.wss), 56.23413,1.2,1800}; - soundDefault1[] = {PATHTOF(data\sounds\cannon_crack_close_filtered.wss), 56.2341,1.2,1800}; }; class ACE_cookoff_large_3_normal: ACE_cookoff_large_1_normal { soundHit[] = {PATHTOF(data\sounds\cannon_crack_close.wss), 56.23413,0.9,1800}; - soundDefault1[] = {PATHTOF(data\sounds\cannon_crack_close.wss), 56.2341,0.9,1800}; }; class ACE_cookoff_large_3_filtered: ACE_cookoff_large_1_filtered { soundHit[] = {PATHTOF(data\sounds\cannon_crack_close_filtered), 56.23413,0.9,1800}; - soundDefault1[] = {PATHTOF(data\sounds\cannon_crack_close_filtered), 56.2341,0.9,1800}; }; class ACE_cookoff_small_1_normal: ACE_cookoff_large_1_normal { indirectHit = 0; indirectHitRange = 0; + explosionEffects = "ImpactEffectsSmall"; soundHit[] = {PATHTOF(data\sounds\heavy_crack_close.wss), 56.23413,1,1800}; - soundDefault1[] = {PATHTOF(data\sounds\heavy_crack_close.wss), 56.2341,1,1800}; }; class ACE_cookoff_small_1_filtered: ACE_cookoff_large_1_filtered { indirectHit = 0; indirectHitRange = 0; soundHit[] = {PATHTOF(data\sounds\heavy_crack_close_filtered.wss), 56.23413,1,1800}; - soundDefault1[] = {PATHTOF(data\sounds\heavy_crack_close_filtered.wss), 56.2341,1,1800}; }; class ACE_cookoff_small_2_normal: ACE_cookoff_large_1_normal { indirectHit = 0; indirectHitRange = 0; soundHit[] = {PATHTOF(data\sounds\light_crack_close.wss), 56.23413,1,1800}; - soundDefault1[] = {PATHTOF(data\sounds\light_crack_close.wss), 56.2341,1,1800}; }; class ACE_cookoff_small_2_filtered: ACE_cookoff_large_1_filtered { indirectHit = 0; indirectHitRange = 0; soundHit[] = {PATHTOF(data\sounds\light_crack_close_filtered.wss), 56.23413,1,1800}; - soundDefault1[] = {PATHTOF(data\sounds\light_crack_close_filtered.wss), 56.2341,1,1800}; }; class ACE_cookoff_small_3_normal: ACE_cookoff_large_1_normal { indirectHit = 0; indirectHitRange = 0; soundHit[] = {PATHTOF(data\sounds\heavy_crack_close.wss), 56.23413,1.2,1800}; - soundDefault1[] = {PATHTOF(data\sounds\heavy_crack_close.wss), 56.2341,1.2,1800}; }; class ACE_cookoff_small_3_filtered: ACE_cookoff_large_1_filtered { indirectHit = 0; indirectHitRange = 0; soundHit[] = {PATHTOF(data\sounds\heavy_crack_close_filtered.wss), 56.23413,1.2,1800}; - soundDefault1[] = {PATHTOF(data\sounds\heavy_crack_close_filtered.wss), 56.2341,1.2,1800}; }; class ACE_cookoff_small_4_normal: ACE_cookoff_large_1_normal { indirectHit = 0; indirectHitRange = 0; soundHit[] = {PATHTOF(data\sounds\light_crack_close.wss), 56.23413,1.5,1800}; - soundDefault1[] = {PATHTOF(data\sounds\light_crack_close.wss), 56.2341,1.5,1800}; }; class ACE_cookoff_small_4_filtered: ACE_cookoff_large_1_filtered { indirectHit = 0; indirectHitRange = 0; soundHit[] = {PATHTOF(data\sounds\light_crack_close_filtered.wss), 56.23413,1.5,1800}; - soundDefault1[] = {PATHTOF(data\sounds\light_crack_close_filtered.wss), 56.2341,1.5,1800}; }; }; diff --git a/addons/destruction/functions/fnc_doCookoff.sqf b/addons/destruction/functions/fnc_doCookoff.sqf index 0d0ab6d703..a50f88793d 100644 --- a/addons/destruction/functions/fnc_doCookoff.sqf +++ b/addons/destruction/functions/fnc_doCookoff.sqf @@ -162,7 +162,7 @@ if((count _totalMagazines) > 0) then { if(_burnOutCountCum > 2) then { _vehicle setDamage 1; } else { - _burnoutStartTime = _vehicle getVariable "ace_burnOutStart"; + _burnoutStartTime = _vehicle getVariable ["ace_burnOutStart", diag_tickTime]; _time = diag_tickTime - _burnoutStartTime; if(_time > 3.5) then { _vehicle setDamage 1; @@ -204,7 +204,7 @@ if((count _totalMagazines) > 0) then { // [ace_sys_frag_fnc_frag_trace, 0.05, [_bullet]] call cba_fnc_addPerFrameHandler; }; if(alive _vehicle) then { - _burnoutStartTime = _vehicle getVariable "ace_burnOutStart"; + _burnoutStartTime = _vehicle getVariable ["ace_burnOutStart", diag_tickTime]; _time = diag_tickTime - _burnoutStartTime; if(_time > 3.5) then { _vehicle setDamage 1; @@ -232,7 +232,7 @@ if((count _totalMagazines) > 0) then { if(_burnOutCountCum > 2) then { _vehicle setDamage 1; } else { - _burnoutStartTime = _vehicle getVariable "ace_burnOutStart"; + _burnoutStartTime = _vehicle getVariable ["ace_burnOutStart", diag_tickTime]; _time = diag_tickTime - _burnoutStartTime; if(_time > 3.5) then { _vehicle setDamage 1; @@ -248,22 +248,23 @@ if((count _totalMagazines) > 0) then { _handled = true; _rippleCount = floor(random _count) min 3; _mag set[1, 0]; - [_vehicle, _ammo, _rippleCount, (_mag select 2)] spawn { - _vehicle = _this select 0; - _ammo = _this select 1; - _count = _this select 2; - _speed = _this select 3; - _spacing = (random 0.5) max 0.1; - _caliber = getNumber(configFile >> "CfgAmmo" >> _ammo >> "caliber"); - _fuseDistance = getNumber(configFile >> "CfgAmmo" >> _ammo >> "fuseDistance"); - _reportType = "small"; - _maxTypes = 4; - if(_caliber > 2) then { - _reportType = "large"; - _maxTypes = 3; - }; - _bb = boundingBox _vehicle; - for "_i" from 1 to _count do { + [{ + PARAMS_1(_params); + + if(diag_tickTime > (_params select 4)) then { + EXPLODE_6_PVT(_params,_vehicle,_ammo,_count,_speed,_nextRunTime,_iter_save); + + _spacing = (random 0.5) max 0.1; + _caliber = getNumber(configFile >> "CfgAmmo" >> _ammo >> "caliber"); + _fuseDistance = getNumber(configFile >> "CfgAmmo" >> _ammo >> "fuseDistance"); + _reportType = "small"; + _maxTypes = 4; + if(_caliber > 2) then { + _reportType = "large"; + _maxTypes = 3; + }; + _bb = boundingBox _vehicle; + _randX = ((_bb select 0) select 0)+(random (((_bb select 1) select 0)*2)); _randY = ((_bb select 0) select 1)+(random (((_bb select 1) select 1)*2)); _randZ = ((_bb select 0) select 2)+(random (((_bb select 1) select 2)*2)); @@ -276,9 +277,19 @@ if((count _totalMagazines) > 0) then { _bullet setPos _spawnPos; _bullet setVectorDir [0,0,0]; _bullet setVelocity [0,0,-300]; - sleep _spacing+(-0.02+(random 0.04)); + + _nextRunTime = diag_tickTime + _spacing+(-0.02+(random 0.04)); + + _iter_save = _iter_save + 1; + if(_iter_save >= _count) exitWith { + [(_this select 1)] call CBA_fnc_removePerFrameHandler; + }; + + _params set[4, _nextRunTime]; + _params set[5, _iter_save]; + _this set[0, _params]; }; - }; + }, [_vehicle, _ammo, _rippleCount, (_mag select 2), diag_tickTime, 0], 0] call CBA_fnc_addPerFrameHandler; }; if(toLower(_simType) == "shotrocket" || {toLower(_simType) == "shotmissile"}) then { _handled = true; diff --git a/addons/penetration/ACE_Penetration.hpp b/addons/penetration/ACE_Penetration.hpp index 9ca6e389bd..fbf6e2b023 100644 --- a/addons/penetration/ACE_Penetration.hpp +++ b/addons/penetration/ACE_Penetration.hpp @@ -1,4 +1,4 @@ - class ADDON { +class ADDON { #include "penetration\armour.hpp" #include "penetration\armour_plate.hpp" #include "penetration\armour_plate_100mm.hpp" diff --git a/addons/penetration/ace_penetration/CHA_AI_T87.bisurf b/addons/penetration/ace_penetration/CHA_AI_T87.bisurf new file mode 100644 index 0000000000..9635ae843b --- /dev/null +++ b/addons/penetration/ace_penetration/CHA_AI_T87.bisurf @@ -0,0 +1,17 @@ +// MIL-DTL-46192 +Density = 2.832; // g/cm3 +rough = 0.1; // ?????????????????? +dust = 0; // ?????????????????? +bulletPenetrability = 15; // This is the vanilla penetration coefficient +soundEnviron = "Empty"; // ?????????????????? +isWater = "false"; // lol +friction = 0.7; // Physx engine friction +restitution = 0.3; // The amount of energy each particle retains after a collision. Typically this produces a bouncing effect. +impact = "hitMetal"; // duh +soundHit = "Metal"; // duh +deflection = 2; // physx bounce deflecting property used + +// Extended ACE settings +brinell_hardness = -1; +yield_strength = 400; +tensile_strength = 445; \ No newline at end of file diff --git a/addons/penetration/ace_penetration/CHA_Ti_Grade38.bisurf b/addons/penetration/ace_penetration/CHA_Ti_Grade38.bisurf new file mode 100644 index 0000000000..27216012ab --- /dev/null +++ b/addons/penetration/ace_penetration/CHA_Ti_Grade38.bisurf @@ -0,0 +1,17 @@ +//MIL-T-9046J +Density = 4.48; // g/cm3 +rough = 0.1; // ?????????????????? +dust = 0; // ?????????????????? +bulletPenetrability = 15; // This is the vanilla penetration coefficient +soundEnviron = "Empty"; // ?????????????????? +isWater = "false"; // lol +friction = 0.7; // Physx engine friction +restitution = 0.3; // The amount of energy each particle retains after a collision. Typically this produces a bouncing effect. +impact = "hitMetal"; // duh +soundHit = "Metal"; // duh +deflection = 2; // physx bounce deflecting property used + +// Extended ACE settings +brinell_hardness = 336; +yield_strength = 1020; +tensile_strength = 1140; \ No newline at end of file diff --git a/addons/penetration/ace_penetration/CHA_Ti_Grade5.bisurf b/addons/penetration/ace_penetration/CHA_Ti_Grade5.bisurf new file mode 100644 index 0000000000..4593cafaf8 --- /dev/null +++ b/addons/penetration/ace_penetration/CHA_Ti_Grade5.bisurf @@ -0,0 +1,17 @@ +//MIL-DTL-12560 +Density = 4.43; // g/cm3 +rough = 0.1; // ?????????????????? +dust = 0; // ?????????????????? +bulletPenetrability = 15; // This is the vanilla penetration coefficient +soundEnviron = "Empty"; // ?????????????????? +isWater = "false"; // lol +friction = 0.7; // Physx engine friction +restitution = 0.3; // The amount of energy each particle retains after a collision. Typically this produces a bouncing effect. +impact = "hitMetal"; // duh +soundHit = "Metal"; // duh +deflection = 2; // physx bounce deflecting property used + +// Extended ACE settings +brinell_hardness = 336; +yield_strength = 880; +tensile_strength = 950; \ No newline at end of file diff --git a/addons/penetration/ace_penetration/CHA_Ti_Grade6.bisurf b/addons/penetration/ace_penetration/CHA_Ti_Grade6.bisurf new file mode 100644 index 0000000000..1c7e897d3a --- /dev/null +++ b/addons/penetration/ace_penetration/CHA_Ti_Grade6.bisurf @@ -0,0 +1,17 @@ +//MIL-T-9046J +Density = 4.43; // g/cm3 +rough = 0.1; // ?????????????????? +dust = 0; // ?????????????????? +bulletPenetrability = 15; // This is the vanilla penetration coefficient +soundEnviron = "Empty"; // ?????????????????? +isWater = "false"; // lol +friction = 0.7; // Physx engine friction +restitution = 0.3; // The amount of energy each particle retains after a collision. Typically this produces a bouncing effect. +impact = "hitMetal"; // duh +soundHit = "Metal"; // duh +deflection = 2; // physx bounce deflecting property used + +// Extended ACE settings +brinell_hardness = 336; +yield_strength = 927; +tensile_strength = 861; \ No newline at end of file diff --git a/addons/penetration/ace_penetration/Ceramic_AD90.bisurf b/addons/penetration/ace_penetration/Ceramic_AD90.bisurf new file mode 100644 index 0000000000..2b0a424954 --- /dev/null +++ b/addons/penetration/ace_penetration/Ceramic_AD90.bisurf @@ -0,0 +1,16 @@ +Density = 3.6; // g/cm3 +rough = 0.1; // ?????????????????? +dust = 0; // ?????????????????? +bulletPenetrability = 15; // This is the vanilla penetration coefficient +soundEnviron = "Empty"; // ?????????????????? +isWater = "false"; // lol +friction = 0.7; // Physx engine friction +restitution = 0.3; // The amount of energy each particle retains after a collision. Typically this produces a bouncing effect. +impact = "hitMetal"; // duh +soundHit = "Metal"; // duh +deflection = 2; // physx bounce deflecting property used + +// Extended ACE settings +brinell_hardness = 780; +yield_strength = 221; +tensile_strength = 2482; \ No newline at end of file diff --git a/addons/penetration/ace_penetration/Ceramic_AD995.bisurf b/addons/penetration/ace_penetration/Ceramic_AD995.bisurf new file mode 100644 index 0000000000..d955922298 --- /dev/null +++ b/addons/penetration/ace_penetration/Ceramic_AD995.bisurf @@ -0,0 +1,16 @@ +Density = 3.9; // g/cm3 +rough = 0.1; // ?????????????????? +dust = 0; // ?????????????????? +bulletPenetrability = 15; // This is the vanilla penetration coefficient +soundEnviron = "Empty"; // ?????????????????? +isWater = "false"; // lol +friction = 0.7; // Physx engine friction +restitution = 0.3; // The amount of energy each particle retains after a collision. Typically this produces a bouncing effect. +impact = "hitMetal"; // duh +soundHit = "Metal"; // duh +deflection = 2; // physx bounce deflecting property used + +// Extended ACE settings +brinell_hardness = 800; +yield_strength = 262; +tensile_strength = 2600; \ No newline at end of file diff --git a/addons/penetration/ace_penetration/DHA.bisurf b/addons/penetration/ace_penetration/DHA.bisurf new file mode 100644 index 0000000000..fe6e1f10d3 --- /dev/null +++ b/addons/penetration/ace_penetration/DHA.bisurf @@ -0,0 +1,22 @@ +//MIL-DTL-12560 +Density = 7.84; // g/cm3 +rough = 0.1; // ?????????????????? +dust = 0; // ?????????????????? +bulletPenetrability = 15; // This is the vanilla penetration coefficient +soundEnviron = "Empty"; // ?????????????????? +isWater = "false"; // lol +friction = 0.7; // Physx engine friction +restitution = 0.3; // The amount of energy each particle retains after a collision. Typically this produces a bouncing effect. +impact = "hitMetal"; // duh +soundHit = "Metal"; // duh +deflection = 2; // physx bounce deflecting property used + +// Extended ACE settings +layers = 2; +brinell_hardness = 712; +yield_strength = -1; +tensile_strength = 2200; + +brinell_hardness_2 = 500; +yield_strength_2 = -1; +tensile_strength_2 = 1640; \ No newline at end of file diff --git a/addons/penetration/ace_penetration/DU_Staballoy_Gen2.bisurf b/addons/penetration/ace_penetration/DU_Staballoy_Gen2.bisurf new file mode 100644 index 0000000000..43b80d302e --- /dev/null +++ b/addons/penetration/ace_penetration/DU_Staballoy_Gen2.bisurf @@ -0,0 +1,17 @@ +d//MIL-DTL-12560 +Density = 18.6; // g/cm3 +rough = 0.1; // ?????????????????? +dust = 0; // ?????????????????? +bulletPenetrability = 15; // This is the vanilla penetration coefficient +soundEnviron = "Empty"; // ?????????????????? +isWater = "false"; // lol +friction = 0.7; // Physx engine friction +restitution = 0.3; // The amount of energy each particle retains after a collision. Typically this produces a bouncing effect. +impact = "hitMetal"; // duh +soundHit = "Metal"; // duh +deflection = 2; // physx bounce deflecting property used + +// Extended ACE settings +brinell_hardness = 390; +yield_strength = 1462; +tensile_strength = 1889; \ No newline at end of file diff --git a/addons/penetration/ace_penetration/DU_Staballoy_U-0.75Ti.bisurf b/addons/penetration/ace_penetration/DU_Staballoy_U-0.75Ti.bisurf new file mode 100644 index 0000000000..d9d3358dee --- /dev/null +++ b/addons/penetration/ace_penetration/DU_Staballoy_U-0.75Ti.bisurf @@ -0,0 +1,17 @@ +d//MIL-DTL-12560 +Density = 18.6; // g/cm3 +rough = 0.1; // ?????????????????? +dust = 0; // ?????????????????? +bulletPenetrability = 15; // This is the vanilla penetration coefficient +soundEnviron = "Empty"; // ?????????????????? +isWater = "false"; // lol +friction = 0.7; // Physx engine friction +restitution = 0.3; // The amount of energy each particle retains after a collision. Typically this produces a bouncing effect. +impact = "hitMetal"; // duh +soundHit = "Metal"; // duh +deflection = 2; // physx bounce deflecting property used + +// Extended ACE settings +brinell_hardness = 390; +yield_strength = 956; +tensile_strength = 1565; \ No newline at end of file diff --git a/addons/penetration/ace_penetration/HHA.bisurf b/addons/penetration/ace_penetration/HHA.bisurf new file mode 100644 index 0000000000..06ba3ef6ca --- /dev/null +++ b/addons/penetration/ace_penetration/HHA.bisurf @@ -0,0 +1,18 @@ +//MIL-DTL-12560 +Density = 7.84; // g/cm3 +rough = 0.1; // ?????????????????? +dust = 0; // ?????????????????? +bulletPenetrability = 15; // This is the vanilla penetration coefficient +soundEnviron = "Empty"; // ?????????????????? +isWater = "false"; // lol +friction = 0.7; // Physx engine friction +restitution = 0.3; // The amount of energy each particle retains after a collision. Typically this produces a bouncing effect. +impact = "hitMetal"; // duh +soundHit = "Metal"; // duh +deflection = 2; // physx bounce deflecting property used + +// Extended ACE settings +layers = 1; +brinell_hardness = 500; +yield_strength = -1; +tensile_strength = 1640; \ No newline at end of file diff --git a/addons/penetration/ace_penetration/RHA.bisurf b/addons/penetration/ace_penetration/RHA.bisurf new file mode 100644 index 0000000000..1bc4e738bc --- /dev/null +++ b/addons/penetration/ace_penetration/RHA.bisurf @@ -0,0 +1,18 @@ +//MIL-DTL-12560 +Density = 7.84; // g/cm3 +rough = 0.1; // ?????????????????? +dust = 0; // ?????????????????? +bulletPenetrability = 15; // This is the vanilla penetration coefficient +soundEnviron = "Empty"; // ?????????????????? +isWater = "false"; // lol +friction = 0.7; // Physx engine friction +restitution = 0.3; // The amount of energy each particle retains after a collision. Typically this produces a bouncing effect. +impact = "hitMetal"; // duh +soundHit = "Metal"; // duh +deflection = 2; // physx bounce deflecting property used + +// Extended ACE settings +layers = 1; +brinell_hardness = "8.570 * ( 32.82 * ( (_this * 0.0393701) ) ^ -0.17) + 27.6"; +yield_strength = "950 * (( _this - (-0.56)) ^ -0.21)"; +tensile_strength = "1.18 * _this"; \ No newline at end of file diff --git a/addons/penetration/ace_penetration/UHH.bisurf b/addons/penetration/ace_penetration/UHH.bisurf new file mode 100644 index 0000000000..174e0c0267 --- /dev/null +++ b/addons/penetration/ace_penetration/UHH.bisurf @@ -0,0 +1,18 @@ +//MIL-DTL-12560 +Density = 7.84; // g/cm3 +rough = 0.1; // ?????????????????? +dust = 0; // ?????????????????? +bulletPenetrability = 15; // This is the vanilla penetration coefficient +soundEnviron = "Empty"; // ?????????????????? +isWater = "false"; // lol +friction = 0.7; // Physx engine friction +restitution = 0.3; // The amount of energy each particle retains after a collision. Typically this produces a bouncing effect. +impact = "hitMetal"; // duh +soundHit = "Metal"; // duh +deflection = 2; // physx bounce deflecting property used + +// Extended ACE settings +layers = 1; +brinell_hardness = 600; +yield_strength = -1; +tensile_strength = 2200; diff --git a/addons/penetration/sources.txt b/addons/penetration/sources.txt new file mode 100644 index 0000000000..3b2df4a175 --- /dev/null +++ b/addons/penetration/sources.txt @@ -0,0 +1 @@ +http://www.alternatewars.com/BBOW/Ballistics/Armor_Material.htm \ No newline at end of file