Fixed worn items being assigned multiple times to the same limb when equipping an item that takes up multiple slots, causing damagemodifiers to be applied multiple times. + DamageModifiers with the damage type "None" don't affect damage.
Closes #68
This commit is contained in:
@@ -344,6 +344,7 @@ namespace Barotrauma
|
||||
|
||||
foreach (DamageModifier damageModifier in damageModifiers)
|
||||
{
|
||||
if (damageModifier.DamageType == DamageType.None) continue;
|
||||
if (damageModifier.DamageType.HasFlag(damageType) && SectorHit(damageModifier.ArmorSector, position))
|
||||
{
|
||||
appliedDamageModifiers.Add(damageModifier);
|
||||
@@ -354,6 +355,7 @@ namespace Barotrauma
|
||||
{
|
||||
foreach (DamageModifier damageModifier in wearable.WearableComponent.DamageModifiers)
|
||||
{
|
||||
if (damageModifier.DamageType == DamageType.None) continue;
|
||||
if (damageModifier.DamageType.HasFlag(damageType) && SectorHit(damageModifier.ArmorSector, position))
|
||||
{
|
||||
appliedDamageModifiers.Add(damageModifier);
|
||||
|
||||
@@ -97,7 +97,10 @@ namespace Barotrauma.Items.Components
|
||||
IsActive = true;
|
||||
|
||||
limb[i] = equipLimb;
|
||||
equipLimb.WearingItems.Add(wearableSprites[i]);
|
||||
if (!equipLimb.WearingItems.Contains(wearableSprites[i]))
|
||||
{
|
||||
equipLimb.WearingItems.Add(wearableSprites[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user