diff --git a/Content.Server/VendingMachines/VendingMachineSystem.cs b/Content.Server/VendingMachines/VendingMachineSystem.cs index 63ec8f2c24..2866b14a83 100644 --- a/Content.Server/VendingMachines/VendingMachineSystem.cs +++ b/Content.Server/VendingMachines/VendingMachineSystem.cs @@ -50,7 +50,7 @@ namespace Content.Server.VendingMachines SubscribeLocalEvent(OnPowerChanged); SubscribeLocalEvent(OnBreak); SubscribeLocalEvent(OnEmagged); - SubscribeLocalEvent(OnDamage); + SubscribeLocalEvent(OnDamageChanged); SubscribeLocalEvent(OnVendingPrice); SubscribeLocalEvent(OnEmpPulse); @@ -149,8 +149,15 @@ namespace Content.Server.VendingMachines args.Handled = component.EmaggedInventory.Count > 0; } - private void OnDamage(EntityUid uid, VendingMachineComponent component, DamageChangedEvent args) + private void OnDamageChanged(EntityUid uid, VendingMachineComponent component, DamageChangedEvent args) { + if (!args.DamageIncreased && component.Broken) + { + component.Broken = false; + TryUpdateVisualState(uid, component); + return; + } + if (component.Broken || component.DispenseOnHitCoolingDown || component.DispenseOnHitChance == null || args.DamageDelta == null) return;