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:
Joonas Rikkonen
2017-12-05 01:01:44 +02:00
parent a0782e5d8d
commit 243b3843b8
2 changed files with 6 additions and 1 deletions

View File

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

View File

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