From 5962f6d6e9e8dcb79877eafd7e5d8b2dedcab872 Mon Sep 17 00:00:00 2001 From: GreyMario Date: Fri, 12 Jan 2024 23:29:19 -0800 Subject: [PATCH] Pneumatic cannon accuracy buff (#23996) make thrown item launchers stronger than hands more accurate --- Content.Shared/Throwing/ThrowingSystem.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Content.Shared/Throwing/ThrowingSystem.cs b/Content.Shared/Throwing/ThrowingSystem.cs index a4c95ec5e3..e631546411 100644 --- a/Content.Shared/Throwing/ThrowingSystem.cs +++ b/Content.Shared/Throwing/ThrowingSystem.cs @@ -2,6 +2,8 @@ using System.Numerics; using Content.Shared.Administration.Logs; using Content.Shared.Database; using Content.Shared.Gravity; +using Content.Shared.Hands.Components; +using Content.Shared.Hands.EntitySystems; using Content.Shared.Interaction; using Content.Shared.Projectiles; using Content.Shared.Tag; @@ -118,7 +120,11 @@ public sealed class ThrowingSystem : EntitySystem // Estimate time to arrival so we can apply OnGround status and slow it much faster. var time = direction.Length() / strength; comp.ThrownTime = _gameTiming.CurTime; - comp.LandTime = time < FlyTime ? default : comp.ThrownTime + TimeSpan.FromSeconds(time - FlyTime); + // did we launch this with something stronger than our hands? + if (TryComp(comp.Thrower, out var hands) && strength > hands.ThrowForceMultiplier) + comp.LandTime = comp.ThrownTime + TimeSpan.FromSeconds(time); + else + comp.LandTime = time < FlyTime ? default : comp.ThrownTime + TimeSpan.FromSeconds(time - FlyTime); comp.PlayLandSound = playSound; ThrowingAngleComponent? throwingAngle = null; -- 2.51.2