Merge branch 'vehicledamage' of https://github.com/acemod/ACE3 into vehicledamage

This commit is contained in:
Nou 2015-05-10 00:56:52 -07:00
commit 5e7b24c657
16 changed files with 326 additions and 116 deletions

View File

@ -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};
};
};

View File

@ -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;

View File

@ -1,4 +1,4 @@
class ADDON {
class ADDON {
#include "penetration\armour.hpp"
#include "penetration\armour_plate.hpp"
#include "penetration\armour_plate_100mm.hpp"

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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";

View File

@ -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;

View File

@ -0,0 +1 @@
http://www.alternatewars.com/BBOW/Ballistics/Armor_Material.htm