From 33d971f5d0ff6e3eee58f538c18a1a40289a05dc Mon Sep 17 00:00:00 2001 From: Joonas Rikkonen Date: Mon, 29 Oct 2018 20:38:43 +0200 Subject: [PATCH] Fixed OnBroken & OnImpact statuseffects not being applied client-side --- Barotrauma/BarotraumaClient/Source/Items/Item.cs | 6 ++++++ Barotrauma/BarotraumaShared/Source/Items/Item.cs | 1 + 2 files changed, 7 insertions(+) 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;