diff --git a/Content.Server/Containers/ThrowInsertContainerComponent.cs b/Content.Server/Containers/ThrowInsertContainerComponent.cs index 8aa2927773..7eb5f4657d 100644 --- a/Content.Server/Containers/ThrowInsertContainerComponent.cs +++ b/Content.Server/Containers/ThrowInsertContainerComponent.cs @@ -10,7 +10,7 @@ namespace Content.Server.Containers; public sealed partial class ThrowInsertContainerComponent : Component { [DataField(required: true)] - public string? ContainerId; + public string ContainerId = string.Empty; /// /// Throw chance of hitting into the container diff --git a/Content.Server/Containers/ThrowInsertContainerSystem.cs b/Content.Server/Containers/ThrowInsertContainerSystem.cs index 781b808ef9..12bb602811 100644 --- a/Content.Server/Containers/ThrowInsertContainerSystem.cs +++ b/Content.Server/Containers/ThrowInsertContainerSystem.cs @@ -25,9 +25,6 @@ public sealed class ThrowInsertContainerSystem : EntitySystem private void OnThrowCollide(Entity ent, ref ThrowHitByEvent args) { - if (ent.Comp.ContainerId == null) - return; - var container = _containerSystem.GetContainer(ent, ent.Comp.ContainerId); if (!_containerSystem.CanInsert(args.Thrown, container)) @@ -35,18 +32,18 @@ public sealed class ThrowInsertContainerSystem : EntitySystem var rand = _random.NextFloat(); - if (rand > ent.Comp.Probability) + if (_random.Prob(ent.Comp.Probability)) { _audio.PlayPvs(ent.Comp.MissSound, ent); _popup.PopupEntity(Loc.GetString(ent.Comp.MissLocString), ent); return; } - if (_containerSystem.Insert(args.Thrown, container)) - _audio.PlayPvs(ent.Comp.InsertSound, ent); - else + if (!_containerSystem.Insert(args.Thrown, container)) throw new InvalidOperationException("Container insertion failed but CanInsert returned true"); + _audio.PlayPvs(ent.Comp.InsertSound, ent); + if (args.Component.Thrower != null) _adminLogger.Add(LogType.Landed, LogImpact.Low, $"{ToPrettyString(args.Thrown)} thrown by {ToPrettyString(args.Component.Thrower.Value):player} landed in {ToPrettyString(ent)}"); }