1523 {
1524 super.EEHitBy(damageResult, damageType, source,
component, dmgZone, ammo, modelPos, speedCoef);
1525
1526 const int CHANCE_DAMAGE_CARGO = 4;
1527 const int CHANCE_DAMAGE_ATTACHMENT = 1;
1528 const int CHANCE_DAMAGE_NOTHING = 2;
1529
1530 if (IsClothing() || IsContainer() || IsItemTent())
1531 {
1532 float dmg = damageResult.
GetDamage(
"",
"Health") * -0.5;
1533 int chances;
1534 int rnd;
1535
1536 if (GetInventory().GetCargo())
1537 {
1538 chances = CHANCE_DAMAGE_CARGO + CHANCE_DAMAGE_ATTACHMENT + CHANCE_DAMAGE_NOTHING;
1539 rnd = Math.RandomInt(0,chances);
1540
1541 if (rnd < CHANCE_DAMAGE_CARGO)
1542 {
1544 }
1545 else if (rnd < (chances - CHANCE_DAMAGE_NOTHING))
1546 {
1548 }
1549 }
1550 else
1551 {
1552 chances = CHANCE_DAMAGE_ATTACHMENT + CHANCE_DAMAGE_NOTHING;
1553 rnd = Math.RandomInt(0,chances);
1554
1555 if (rnd < CHANCE_DAMAGE_ATTACHMENT)
1556 {
1558 }
1559 }
1560 }
1561 }
class BoxCollidingParams component
ComponentInfo for BoxCollidingResult.
bool DamageItemAttachments(float damage)
bool DamageItemInCargo(float damage)
proto native float GetDamage(string zoneName, string healthType)