diff --git a/Content.Server/Anomaly/Effects/InnerBodyAnomalySystem.cs b/Content.Server/Anomaly/Effects/InnerBodyAnomalySystem.cs index 23e1558f15..bcf0a00bb3 100644 --- a/Content.Server/Anomaly/Effects/InnerBodyAnomalySystem.cs +++ b/Content.Server/Anomaly/Effects/InnerBodyAnomalySystem.cs @@ -139,7 +139,8 @@ public sealed class InnerBodyAnomalySystem : SharedInnerBodyAnomalySystem if (!TryComp(ent, out var body)) return; - _body.GibBody(ent, true, body, splatModifier: 5f); + // DeltaV acidify: false preserves inventory items when anomaly goes supercritical + _body.GibBody(ent, false, body, splatModifier: 5f); } private void OnSeverityChanged(Entity ent, ref AnomalySeverityChangedEvent args) diff --git a/Content.Server/Xenoarchaeology/Equipment/Systems/ArtifactCrusherSystem.cs b/Content.Server/Xenoarchaeology/Equipment/Systems/ArtifactCrusherSystem.cs index 1b0c85291c..18d50bc16b 100644 --- a/Content.Server/Xenoarchaeology/Equipment/Systems/ArtifactCrusherSystem.cs +++ b/Content.Server/Xenoarchaeology/Equipment/Systems/ArtifactCrusherSystem.cs @@ -106,7 +106,8 @@ public sealed class ArtifactCrusherSystem : SharedArtifactCrusherSystem if (!TryComp(contained, out var body)) Del(contained); - var gibs = _body.GibBody(contained, body: body, acidify: true); + // DeltaV acidify: false preserves inventory items, which get added to the output container + var gibs = _body.GibBody(contained, body: body, acidify: false); foreach (var gib in gibs) { ContainerSystem.Insert((gib, null, null, null), crusher.OutputContainer); diff --git a/Content.Server/_DV/Abilities/Psionics/PsionicEruption/PsionicEruptionSystem.cs b/Content.Server/_DV/Abilities/Psionics/PsionicEruption/PsionicEruptionSystem.cs index f2f93f24ac..2722cd79cc 100644 --- a/Content.Server/_DV/Abilities/Psionics/PsionicEruption/PsionicEruptionSystem.cs +++ b/Content.Server/_DV/Abilities/Psionics/PsionicEruption/PsionicEruptionSystem.cs @@ -216,7 +216,8 @@ public sealed class PsionicEruptionSystem : EntitySystem return; var pos = _transform.GetMapCoordinates(entity); - _body.GibBody(entity, acidify: true, body, launchGibs: true); + // acidify: false preserves inventory items when erupting + _body.GibBody(entity, acidify: false, body, launchGibs: true); int boom = _glimmer.GetGlimmerTier(_glimmer.Glimmer) switch { GlimmerTier.Minimal => 4, diff --git a/Content.Shared/Species/Systems/GibActionSystem.cs b/Content.Shared/Species/Systems/GibActionSystem.cs index bd7cb6baff..85a99fe4e4 100644 --- a/Content.Shared/Species/Systems/GibActionSystem.cs +++ b/Content.Shared/Species/Systems/GibActionSystem.cs @@ -26,7 +26,7 @@ public sealed partial class GibActionSystem : EntitySystem private void OnMobStateChanged(EntityUid uid, GibActionComponent comp, MobStateChangedEvent args) { - // When the mob changes state, check if they're dead and give them the action if so. + // When the mob changes state, check if they're dead and give them the action if so. if (!TryComp(uid, out var mobState)) return; @@ -47,15 +47,16 @@ public sealed partial class GibActionSystem : EntitySystem // If they aren't given the action, remove it. _actionsSystem.RemoveAction(uid, comp.ActionEntity); } - + private void OnGibAction(EntityUid uid, GibActionComponent comp, GibActionEvent args) { // When they use the action, gib them. _popupSystem.PopupClient(Loc.GetString(comp.PopupText, ("name", uid)), uid, uid); - _bodySystem.GibBody(uid, true); + // DeltaV acidify: false drops inventory items instead of deleting them + _bodySystem.GibBody(uid, false); } - - public sealed partial class GibActionEvent : InstantActionEvent { } + + public sealed partial class GibActionEvent : InstantActionEvent { } }