Pneumatic cannon accuracy buff (#23996)

make thrown item launchers stronger than hands more accurate

(cherry picked from commit 5962f6d6e9e8dcb79877eafd7e5d8b2dedcab872)
This commit is contained in:
GreyMario 2024-01-12 23:29:19 -08:00 committed by Debug
parent d92f182514
commit 0fa31b334b
No known key found for this signature in database
GPG Key ID: 271270A74EF9C350
1 changed files with 7 additions and 1 deletions

View File

@ -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<HandsComponent>(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;