diff --git a/Content.Server/Mech/Systems/MechEquipmentSystem.cs b/Content.Server/Mech/Systems/MechEquipmentSystem.cs index a30b740544..e6f1c72e9f 100644 --- a/Content.Server/Mech/Systems/MechEquipmentSystem.cs +++ b/Content.Server/Mech/Systems/MechEquipmentSystem.cs @@ -36,6 +36,9 @@ public sealed class MechEquipmentSystem : EntitySystem if (!TryComp(mech, out var mechComp)) return; + if (mechComp.Broken) + return; + if (args.User == mechComp.PilotSlot.ContainedEntity) return; @@ -62,7 +65,6 @@ public sealed class MechEquipmentSystem : EntitySystem { component.TokenSource = null; _popup.PopupEntity(Loc.GetString("mech-equipment-finish-install", ("item", uid)), args.Mech, Filter.Pvs(args.Mech)); - _mech.InsertEquipment(args.Mech, uid); } diff --git a/Content.Shared/Mech/EntitySystems/SharedMechSystem.cs b/Content.Shared/Mech/EntitySystems/SharedMechSystem.cs index 0420e15b18..21edf6a25f 100644 --- a/Content.Shared/Mech/EntitySystems/SharedMechSystem.cs +++ b/Content.Shared/Mech/EntitySystems/SharedMechSystem.cs @@ -292,15 +292,14 @@ public abstract class SharedMechSystem : EntitySystem if (attemptev.Cancelled) return; } - - equipmentComponent.EquipmentOwner = null; - component.EquipmentContainer.Remove(toRemove, EntityManager); var ev = new MechEquipmentRemovedEvent(uid); RaiseLocalEvent(toRemove, ref ev); if (component.CurrentSelectedEquipment == toRemove) CycleEquipment(uid, component); + equipmentComponent.EquipmentOwner = null; + component.EquipmentContainer.Remove(toRemove, EntityManager); UpdateUserInterface(uid, component); }