1500 {
1501 super.EEHitBy(damageResult, damageType, source,
component, dmgZone, ammo, modelPos, speedCoef);
1502
1503 const int CHANCE_DAMAGE_CARGO = 4;
1504 const int CHANCE_DAMAGE_ATTACHMENT = 1;
1505 const int CHANCE_DAMAGE_NOTHING = 2;
1506
1507 if (IsClothing() || IsContainer() || IsItemTent())
1508 {
1509 float dmg = damageResult.
GetDamage(
"",
"Health") * -0.5;
1510 int chances;
1511 int rnd;
1512
1513 if (GetInventory().GetCargo())
1514 {
1515 chances = CHANCE_DAMAGE_CARGO + CHANCE_DAMAGE_ATTACHMENT + CHANCE_DAMAGE_NOTHING;
1516 rnd = Math.RandomInt(0,chances);
1517
1518 if (rnd < CHANCE_DAMAGE_CARGO)
1519 {
1521 }
1522 else if (rnd < (chances - CHANCE_DAMAGE_NOTHING))
1523 {
1525 }
1526 }
1527 else
1528 {
1529 chances = CHANCE_DAMAGE_ATTACHMENT + CHANCE_DAMAGE_NOTHING;
1530 rnd = Math.RandomInt(0,chances);
1531
1532 if (rnd < CHANCE_DAMAGE_ATTACHMENT)
1533 {
1535 }
1536 }
1537 }
1538 }
class BoxCollidingParams component
ComponentInfo for BoxCollidingResult.
bool DamageItemAttachments(float damage)
bool DamageItemInCargo(float damage)
proto native float GetDamage(string zoneName, string healthType)