diff --git a/Barotrauma/BarotraumaClient/Source/Items/Item.cs b/Barotrauma/BarotraumaClient/Source/Items/Item.cs index d77fe94e6..1d7eff706 100644 --- a/Barotrauma/BarotraumaClient/Source/Items/Item.cs +++ b/Barotrauma/BarotraumaClient/Source/Items/Item.cs @@ -381,6 +381,7 @@ namespace Barotrauma (components[containerIndex] as ItemContainer).Inventory.ClientRead(type, msg, sendingTime); break; case NetEntityEvent.Type.Status: + float prevCondition = condition; condition = msg.ReadSingle(); if (FixRequirements.Count > 0) { @@ -395,6 +396,11 @@ namespace Barotrauma FixRequirements[i].Fixed = true; } } + + if (prevCondition > 0.0f && condition <= 0.0f) + { + ApplyStatusEffects(ActionType.OnBroken, 1.0f); + } break; case NetEntityEvent.Type.ApplyStatusEffect: ActionType actionType = (ActionType)msg.ReadRangedInteger(0, Enum.GetValues(typeof(ActionType)).Length - 1); diff --git a/Barotrauma/BarotraumaShared/Source/Items/Item.cs b/Barotrauma/BarotraumaShared/Source/Items/Item.cs index 2bc3bf6a6..dd67cf8c6 100644 --- a/Barotrauma/BarotraumaShared/Source/Items/Item.cs +++ b/Barotrauma/BarotraumaShared/Source/Items/Item.cs @@ -960,6 +960,7 @@ namespace Barotrauma if (ImpactTolerance > 0.0f && impact > ImpactTolerance) { ApplyStatusEffects(ActionType.OnImpact, 1.0f); + GameMain.Server?.CreateEntityEvent(this, new object[] { NetEntityEvent.Type.ApplyStatusEffect, ActionType.OnImpact }); } var containedItems = ContainedItems;