1451 {
1452 super.EEHitBy(damageResult, damageType, source,
component, dmgZone, ammo, modelPos, speedCoef);
1453
1454 const int CHANCE_DAMAGE_CARGO = 4;
1455 const int CHANCE_DAMAGE_ATTACHMENT = 1;
1456 const int CHANCE_DAMAGE_NOTHING = 2;
1457
1458 if (IsClothing() || IsContainer() || IsItemTent())
1459 {
1460 float dmg = damageResult.
GetDamage(
"",
"Health") * -0.5;
1461 int chances;
1462 int rnd;
1463
1464 if (GetInventory().GetCargo())
1465 {
1466 chances = CHANCE_DAMAGE_CARGO + CHANCE_DAMAGE_ATTACHMENT + CHANCE_DAMAGE_NOTHING;
1468
1469 if (rnd < CHANCE_DAMAGE_CARGO)
1470 {
1472 }
1473 else if (rnd < (chances - CHANCE_DAMAGE_NOTHING))
1474 {
1476 }
1477 }
1478 else
1479 {
1480 chances = CHANCE_DAMAGE_ATTACHMENT + CHANCE_DAMAGE_NOTHING;
1482
1483 if (rnd < CHANCE_DAMAGE_ATTACHMENT)
1484 {
1486 }
1487 }
1488 }
1489 }
class BoxCollidingParams component
ComponentInfo for BoxCollidingResult.
bool DamageItemInCargo(float damage)
bool DamageItemAttachments(float damage)
proto native float GetDamage(string zoneName, string healthType)
static proto int RandomInt(int min, int max)
Returns a random int number between and min [inclusive] and max [exclusive].