From 291ee6cd155a111a5a685e2553dfa99cc63aa9c9 Mon Sep 17 00:00:00 2001 From: Plykiya <58439124+plykiya@users.noreply.github.com> Date: Thu, 8 Aug 2024 14:39:46 +0300 Subject: [PATCH] Add BreakOnDropItem, update do afters, remove unnecessary declarations (#30361) * Add BreakOnDropItem, update do afters, remove unnecessary declarations * bola * Changed my mind about the nuke * gennies too * Make the comments more clear. * Sorry for the trailing commas * Revert "Sorry for the trailing commas" This reverts commit e60fd9a30977393df3344948e6d5c0ce035723cd. --------- Co-authored-by: plykiya (cherry picked from commit 190ceda02eab7b3eee7d34542c35e5a3f4a8b487) --- .../Botany/Systems/BotanySwabSystem.cs | 2 +- .../ConstructionSystem.Interactions.cs | 2 +- .../Unit/EntitySystems/DisposalUnitSystem.cs | 2 +- .../Ensnaring/EnsnareableSystem.Ensnaring.cs | 4 ++-- .../Forensics/Systems/ForensicsSystem.cs | 1 - .../Kitchen/EntitySystems/KitchenSpikeSystem.cs | 3 ++- .../Kitchen/EntitySystems/SharpSystem.cs | 2 +- Content.Server/MagicMirror/MagicMirrorSystem.cs | 8 ++------ .../BiomassReclaimer/BiomassReclaimerSystem.cs | 2 +- Content.Server/Medical/DefibrillatorSystem.cs | 2 -- Content.Server/Medical/HealthAnalyzerSystem.cs | 2 +- Content.Server/Nuke/NukeSystem.cs | 2 +- .../Power/Generator/PortableGeneratorSystem.cs | 4 ++-- Content.Server/Resist/ResistLockerSystem.cs | 2 +- .../SprayPainter/SprayPainterSystem.cs | 3 +-- Content.Server/Sticky/Systems/StickySystem.cs | 4 ++-- Content.Shared/Burial/BurialSystem.cs | 1 - .../DoAfter/SharedDoAfterSystem.Update.cs | 16 ++++++++++++---- Content.Shared/DoAfter/SharedDoAfterSystem.cs | 2 +- .../Inventory/InventorySystem.Equip.cs | 12 ++---------- Content.Shared/Lock/LockSystem.cs | 9 +++++---- Content.Shared/Magic/SpellbookSystem.cs | 2 +- .../Salvage/Fulton/SharedFultonSystem.cs | 1 - .../SprayPainter/SharedSprayPainterSystem.cs | 2 +- .../Storage/EntitySystems/DumpableSystem.cs | 2 +- .../Storage/EntitySystems/SharedStorageSystem.cs | 2 +- .../SharedVendingMachineSystem.Restock.cs | 2 +- .../Ranged/Systems/SharedGunSystem.Ballistic.cs | 2 +- 28 files changed, 45 insertions(+), 53 deletions(-) diff --git a/Content.Server/Botany/Systems/BotanySwabSystem.cs b/Content.Server/Botany/Systems/BotanySwabSystem.cs index f6190bae4e..e8c7af92c2 100644 --- a/Content.Server/Botany/Systems/BotanySwabSystem.cs +++ b/Content.Server/Botany/Systems/BotanySwabSystem.cs @@ -48,7 +48,7 @@ public sealed class BotanySwabSystem : EntitySystem { Broadcast = true, BreakOnMove = true, - NeedHand = true + NeedHand = true, }); } diff --git a/Content.Server/Construction/ConstructionSystem.Interactions.cs b/Content.Server/Construction/ConstructionSystem.Interactions.cs index c844dd2c9a..426ab6e80f 100644 --- a/Content.Server/Construction/ConstructionSystem.Interactions.cs +++ b/Content.Server/Construction/ConstructionSystem.Interactions.cs @@ -287,7 +287,7 @@ namespace Content.Server.Construction { BreakOnDamage = false, BreakOnMove = true, - NeedHand = true + NeedHand = true, }; var started = _doAfterSystem.TryStartDoAfter(doAfterEventArgs); diff --git a/Content.Server/Disposal/Unit/EntitySystems/DisposalUnitSystem.cs b/Content.Server/Disposal/Unit/EntitySystems/DisposalUnitSystem.cs index 464845c8ba..f600e03834 100644 --- a/Content.Server/Disposal/Unit/EntitySystems/DisposalUnitSystem.cs +++ b/Content.Server/Disposal/Unit/EntitySystems/DisposalUnitSystem.cs @@ -486,7 +486,7 @@ public sealed class DisposalUnitSystem : SharedDisposalUnitSystem { BreakOnDamage = true, BreakOnMove = true, - NeedHand = false + NeedHand = false, }; _doAfterSystem.TryStartDoAfter(doAfterArgs); diff --git a/Content.Server/Ensnaring/EnsnareableSystem.Ensnaring.cs b/Content.Server/Ensnaring/EnsnareableSystem.Ensnaring.cs index 4dc8795d58..51152347fb 100644 --- a/Content.Server/Ensnaring/EnsnareableSystem.Ensnaring.cs +++ b/Content.Server/Ensnaring/EnsnareableSystem.Ensnaring.cs @@ -112,7 +112,7 @@ public sealed partial class EnsnareableSystem /// The ensnaring component public void TryFree(EntityUid target, EntityUid user, EntityUid ensnare, EnsnaringComponent component) { - //Don't do anything if they don't have the ensnareable component. + // Don't do anything if they don't have the ensnareable component. if (!HasComp(target)) return; @@ -124,7 +124,7 @@ public sealed partial class EnsnareableSystem BreakOnMove = breakOnMove, BreakOnDamage = false, NeedHand = true, - BlockDuplicate = true, + BreakOnDropItem = false, }; if (!_doAfter.TryStartDoAfter(doAfterEventArgs)) diff --git a/Content.Server/Forensics/Systems/ForensicsSystem.cs b/Content.Server/Forensics/Systems/ForensicsSystem.cs index 0f30565501..6d7a138350 100644 --- a/Content.Server/Forensics/Systems/ForensicsSystem.cs +++ b/Content.Server/Forensics/Systems/ForensicsSystem.cs @@ -197,7 +197,6 @@ namespace Content.Server.Forensics var doAfterArgs = new DoAfterArgs(EntityManager, user, cleanDelay, new CleanForensicsDoAfterEvent(), cleanForensicsEntity, target: target, used: cleanForensicsEntity) { - BreakOnHandChange = true, NeedHand = true, BreakOnDamage = true, BreakOnMove = true, diff --git a/Content.Server/Kitchen/EntitySystems/KitchenSpikeSystem.cs b/Content.Server/Kitchen/EntitySystems/KitchenSpikeSystem.cs index 2ca7cdbd85..fec65430c1 100644 --- a/Content.Server/Kitchen/EntitySystems/KitchenSpikeSystem.cs +++ b/Content.Server/Kitchen/EntitySystems/KitchenSpikeSystem.cs @@ -268,7 +268,8 @@ namespace Content.Server.Kitchen.EntitySystems { BreakOnDamage = true, BreakOnMove = true, - NeedHand = true + NeedHand = true, + BreakOnDropItem = false, }; _doAfter.TryStartDoAfter(doAfterArgs); diff --git a/Content.Server/Kitchen/EntitySystems/SharpSystem.cs b/Content.Server/Kitchen/EntitySystems/SharpSystem.cs index b796687721..99ea516f74 100644 --- a/Content.Server/Kitchen/EntitySystems/SharpSystem.cs +++ b/Content.Server/Kitchen/EntitySystems/SharpSystem.cs @@ -77,7 +77,7 @@ public sealed class SharpSystem : EntitySystem { BreakOnDamage = true, BreakOnMove = true, - NeedHand = true + NeedHand = true, }; _doAfterSystem.TryStartDoAfter(doAfter); return true; diff --git a/Content.Server/MagicMirror/MagicMirrorSystem.cs b/Content.Server/MagicMirror/MagicMirrorSystem.cs index 8d8a6bfa3b..045bb33bc0 100644 --- a/Content.Server/MagicMirror/MagicMirrorSystem.cs +++ b/Content.Server/MagicMirror/MagicMirrorSystem.cs @@ -61,8 +61,7 @@ public sealed class MagicMirrorSystem : SharedMagicMirrorSystem DistanceThreshold = SharedInteractionSystem.InteractionRange, BreakOnDamage = true, BreakOnMove = true, - BreakOnHandChange = false, - NeedHand = true + NeedHand = true, }, out var doAfterId); @@ -116,7 +115,6 @@ public sealed class MagicMirrorSystem : SharedMagicMirrorSystem { BreakOnDamage = true, BreakOnMove = true, - BreakOnHandChange = false, NeedHand = true }, out var doAfterId); @@ -169,7 +167,6 @@ public sealed class MagicMirrorSystem : SharedMagicMirrorSystem { DistanceThreshold = SharedInteractionSystem.InteractionRange, BreakOnDamage = true, - BreakOnHandChange = false, NeedHand = true }, out var doAfterId); @@ -222,8 +219,7 @@ public sealed class MagicMirrorSystem : SharedMagicMirrorSystem { BreakOnDamage = true, BreakOnMove = true, - BreakOnHandChange = false, - NeedHand = true + NeedHand = true, }, out var doAfterId); diff --git a/Content.Server/Medical/BiomassReclaimer/BiomassReclaimerSystem.cs b/Content.Server/Medical/BiomassReclaimer/BiomassReclaimerSystem.cs index 2e6e011715..1ba5227b36 100644 --- a/Content.Server/Medical/BiomassReclaimer/BiomassReclaimerSystem.cs +++ b/Content.Server/Medical/BiomassReclaimer/BiomassReclaimerSystem.cs @@ -159,7 +159,7 @@ namespace Content.Server.Medical.BiomassReclaimer _doAfterSystem.TryStartDoAfter(new DoAfterArgs(EntityManager, args.User, delay, new ReclaimerDoAfterEvent(), reclaimer, target: args.Target, used: args.Used) { NeedHand = true, - BreakOnMove = true + BreakOnMove = true, }); } diff --git a/Content.Server/Medical/DefibrillatorSystem.cs b/Content.Server/Medical/DefibrillatorSystem.cs index 264df0e230..617ad45f27 100644 --- a/Content.Server/Medical/DefibrillatorSystem.cs +++ b/Content.Server/Medical/DefibrillatorSystem.cs @@ -143,8 +143,6 @@ public sealed class DefibrillatorSystem : EntitySystem return _doAfter.TryStartDoAfter(new DoAfterArgs(EntityManager, user, component.DoAfterDuration, new DefibrillatorZapDoAfterEvent(), uid, target, uid) { - BlockDuplicate = true, - BreakOnHandChange = true, NeedHand = true, BreakOnMove = !component.AllowDoAfterMovement }); diff --git a/Content.Server/Medical/HealthAnalyzerSystem.cs b/Content.Server/Medical/HealthAnalyzerSystem.cs index 07c1140f16..24280e2a50 100644 --- a/Content.Server/Medical/HealthAnalyzerSystem.cs +++ b/Content.Server/Medical/HealthAnalyzerSystem.cs @@ -113,7 +113,7 @@ public sealed class HealthAnalyzerSystem : EntitySystem _doAfterSystem.TryStartDoAfter(new DoAfterArgs(EntityManager, args.User, uid.Comp.ScanDelay, new HealthAnalyzerDoAfterEvent(), uid, target: args.Target, used: uid) { NeedHand = true, - BreakOnMove = true + BreakOnMove = true, }); } diff --git a/Content.Server/Nuke/NukeSystem.cs b/Content.Server/Nuke/NukeSystem.cs index e60a7bde33..653be7ccb5 100644 --- a/Content.Server/Nuke/NukeSystem.cs +++ b/Content.Server/Nuke/NukeSystem.cs @@ -592,7 +592,7 @@ public sealed class NukeSystem : EntitySystem { BreakOnDamage = true, BreakOnMove = true, - NeedHand = true + NeedHand = true, }; if (!_doAfter.TryStartDoAfter(doAfter)) diff --git a/Content.Server/Power/Generator/PortableGeneratorSystem.cs b/Content.Server/Power/Generator/PortableGeneratorSystem.cs index 33033daa05..0ee228680e 100644 --- a/Content.Server/Power/Generator/PortableGeneratorSystem.cs +++ b/Content.Server/Power/Generator/PortableGeneratorSystem.cs @@ -75,8 +75,8 @@ public sealed class PortableGeneratorSystem : SharedPortableGeneratorSystem { BreakOnDamage = true, BreakOnMove = true, - RequireCanInteract = true, - NeedHand = true + NeedHand = true, + BreakOnDropItem = false, }); } diff --git a/Content.Server/Resist/ResistLockerSystem.cs b/Content.Server/Resist/ResistLockerSystem.cs index 2ab277d0f1..9e4da06313 100644 --- a/Content.Server/Resist/ResistLockerSystem.cs +++ b/Content.Server/Resist/ResistLockerSystem.cs @@ -49,7 +49,7 @@ public sealed class ResistLockerSystem : EntitySystem { BreakOnMove = true, BreakOnDamage = true, - NeedHand = false //No hands 'cause we be kickin' + NeedHand = false, //No hands 'cause we be kickin' }; resistLockerComponent.IsResisting = true; diff --git a/Content.Server/SprayPainter/SprayPainterSystem.cs b/Content.Server/SprayPainter/SprayPainterSystem.cs index a8024e2d77..9f6da20fda 100644 --- a/Content.Server/SprayPainter/SprayPainterSystem.cs +++ b/Content.Server/SprayPainter/SprayPainterSystem.cs @@ -57,10 +57,9 @@ public sealed class SprayPainterSystem : SharedSprayPainterSystem { BreakOnMove = true, BreakOnDamage = true, - CancelDuplicate = true, // multiple pipes can be sprayed at once just not the same one DuplicateCondition = DuplicateConditions.SameTarget, - NeedHand = true + NeedHand = true, }; args.Handled = DoAfter.TryStartDoAfter(doAfterEventArgs); diff --git a/Content.Server/Sticky/Systems/StickySystem.cs b/Content.Server/Sticky/Systems/StickySystem.cs index 21a7f4d039..23064a93cb 100644 --- a/Content.Server/Sticky/Systems/StickySystem.cs +++ b/Content.Server/Sticky/Systems/StickySystem.cs @@ -95,7 +95,7 @@ public sealed class StickySystem : EntitySystem _doAfterSystem.TryStartDoAfter(new DoAfterArgs(EntityManager, user, delay, new StickyDoAfterEvent(), uid, target: target, used: uid) { BreakOnMove = true, - NeedHand = true + NeedHand = true, }); } else @@ -149,7 +149,7 @@ public sealed class StickySystem : EntitySystem _doAfterSystem.TryStartDoAfter(new DoAfterArgs(EntityManager, user, delay, new StickyDoAfterEvent(), uid, target: uid) { BreakOnMove = true, - NeedHand = true + NeedHand = true, }); } else diff --git a/Content.Shared/Burial/BurialSystem.cs b/Content.Shared/Burial/BurialSystem.cs index 45a89f3be9..5152cc3862 100644 --- a/Content.Shared/Burial/BurialSystem.cs +++ b/Content.Shared/Burial/BurialSystem.cs @@ -48,7 +48,6 @@ public sealed class BurialSystem : EntitySystem BreakOnMove = true, BreakOnDamage = true, NeedHand = true, - BreakOnHandChange = true }; if (component.Stream == null) diff --git a/Content.Shared/DoAfter/SharedDoAfterSystem.Update.cs b/Content.Shared/DoAfter/SharedDoAfterSystem.Update.cs index a67627c13c..e6d5ff3b3b 100644 --- a/Content.Shared/DoAfter/SharedDoAfterSystem.Update.cs +++ b/Content.Shared/DoAfter/SharedDoAfterSystem.Update.cs @@ -1,5 +1,6 @@ using Content.Shared.Gravity; using Content.Shared.Hands.Components; +using Content.Shared.Hands.EntitySystems; using Content.Shared.Interaction; using Content.Shared.Physics; using Robust.Shared.Utility; @@ -15,6 +16,7 @@ public abstract partial class SharedDoAfterSystem : EntitySystem [Dependency] private readonly IDynamicTypeFactory _factory = default!; [Dependency] private readonly SharedGravitySystem _gravity = default!; [Dependency] private readonly SharedInteractionSystem _interaction = default!; + [Dependency] private readonly SharedHandsSystem _hands = default!; private DoAfter[] _doAfters = Array.Empty(); @@ -221,16 +223,22 @@ public abstract partial class SharedDoAfterSystem : EntitySystem if (args.AttemptFrequency == AttemptFrequency.EveryTick && !TryAttemptEvent(doAfter)) return true; + // Check if the do-after requires hands to perform at first + // For example, you need hands to strip clothes off of someone + // This does not mean their hand needs to be empty. if (args.NeedHand) { if (!handsQuery.TryGetComponent(args.User, out var hands) || hands.Count == 0) return true; - if (args.BreakOnHandChange && (hands.ActiveHand?.Name != doAfter.InitialHand - || hands.ActiveHandEntity != doAfter.InitialItem)) - { + // If an item was in the user's hand to begin with, + // check if the user is no longer holding the item. + if (args.BreakOnDropItem && !_hands.IsHolding((args.User, hands), doAfter.InitialItem)) + return true; + + // If the user changes which hand is active at all, interrupt the do-after + if (args.BreakOnHandChange && hands.ActiveHand?.Name != doAfter.InitialHand) return true; - } } var hasNoSpecificComponents = !HasComp(args.User) && !HasComp(args.User); // Shitmed Change diff --git a/Content.Shared/DoAfter/SharedDoAfterSystem.cs b/Content.Shared/DoAfter/SharedDoAfterSystem.cs index 48051e0a30..16b127ee87 100644 --- a/Content.Shared/DoAfter/SharedDoAfterSystem.cs +++ b/Content.Shared/DoAfter/SharedDoAfterSystem.cs @@ -229,7 +229,7 @@ public abstract partial class SharedDoAfterSystem : EntitySystem // For this we need to stay on the same hand slot and need the same item in that hand slot // (or if there is no item there we need to keep it free). - if (args.NeedHand && args.BreakOnHandChange) + if (args.NeedHand && (args.BreakOnHandChange || args.BreakOnDropItem)) { if (!TryComp(args.User, out HandsComponent? handsComponent)) return false; diff --git a/Content.Shared/Inventory/InventorySystem.Equip.cs b/Content.Shared/Inventory/InventorySystem.Equip.cs index 2c930834e8..da068f2c99 100644 --- a/Content.Shared/Inventory/InventorySystem.Equip.cs +++ b/Content.Shared/Inventory/InventorySystem.Equip.cs @@ -171,13 +171,9 @@ public abstract partial class InventorySystem target, itemUid) { - BlockDuplicate = true, - BreakOnHandChange = true, BreakOnMove = true, + NeedHand = true, BreakOnDamage = false, // White Dream: Do not break on recieving damage - CancelDuplicate = true, - RequireCanInteract = true, - NeedHand = true }; _doAfter.TryStartDoAfter(args); @@ -420,13 +416,9 @@ public abstract partial class InventorySystem target, removedItem.Value) { - BlockDuplicate = true, - BreakOnHandChange = true, BreakOnMove = true, + NeedHand = true, BreakOnDamage = false, // White Dream: Do not break on recieving damage - CancelDuplicate = true, - RequireCanInteract = true, - NeedHand = true }; _doAfter.TryStartDoAfter(args); diff --git a/Content.Shared/Lock/LockSystem.cs b/Content.Shared/Lock/LockSystem.cs index 5e5b22dd4e..9852df22e1 100644 --- a/Content.Shared/Lock/LockSystem.cs +++ b/Content.Shared/Lock/LockSystem.cs @@ -71,6 +71,7 @@ public sealed class LockSystem : EntitySystem { if (!lockComp.UnlockOnClick) return; + TryUnlock(uid, args.User, lockComp); args.Handled = true; } @@ -129,8 +130,8 @@ public sealed class LockSystem : EntitySystem { BreakOnDamage = true, BreakOnMove = true, - RequireCanInteract = true, - NeedHand = true + NeedHand = true, + BreakOnDropItem = false, }); } @@ -207,8 +208,8 @@ public sealed class LockSystem : EntitySystem { BreakOnDamage = true, BreakOnMove = true, - RequireCanInteract = true, - NeedHand = true + NeedHand = true, + BreakOnDropItem = false, }); } diff --git a/Content.Shared/Magic/SpellbookSystem.cs b/Content.Shared/Magic/SpellbookSystem.cs index 84b2b23298..ce1628bacb 100644 --- a/Content.Shared/Magic/SpellbookSystem.cs +++ b/Content.Shared/Magic/SpellbookSystem.cs @@ -88,7 +88,7 @@ public sealed class SpellbookSystem : EntitySystem { BreakOnMove = true, BreakOnDamage = true, - NeedHand = true //What, are you going to read with your eyes only?? + NeedHand = true, //What, are you going to read with your eyes only?? }; _doAfter.TryStartDoAfter(doAfterEventArgs); diff --git a/Content.Shared/Salvage/Fulton/SharedFultonSystem.cs b/Content.Shared/Salvage/Fulton/SharedFultonSystem.cs index f94558b0b3..b4b383d800 100644 --- a/Content.Shared/Salvage/Fulton/SharedFultonSystem.cs +++ b/Content.Shared/Salvage/Fulton/SharedFultonSystem.cs @@ -153,7 +153,6 @@ public abstract partial class SharedFultonSystem : EntitySystem _doAfter.TryStartDoAfter( new DoAfterArgs(EntityManager, args.User, component.ApplyFultonDuration, ev, args.Target, args.Target, args.Used) { - CancelDuplicate = true, MovementThreshold = 0.5f, BreakOnMove = true, Broadcast = true, diff --git a/Content.Shared/SprayPainter/SharedSprayPainterSystem.cs b/Content.Shared/SprayPainter/SharedSprayPainterSystem.cs index feb1cebb8e..943386c0c0 100644 --- a/Content.Shared/SprayPainter/SharedSprayPainterSystem.cs +++ b/Content.Shared/SprayPainter/SharedSprayPainterSystem.cs @@ -136,7 +136,7 @@ public abstract class SharedSprayPainterSystem : EntitySystem { BreakOnMove = true, BreakOnDamage = true, - NeedHand = true + NeedHand = true, }; if (!DoAfter.TryStartDoAfter(doAfterEventArgs, out var id)) return; diff --git a/Content.Shared/Storage/EntitySystems/DumpableSystem.cs b/Content.Shared/Storage/EntitySystems/DumpableSystem.cs index 91acde47e1..93c4b69e4d 100644 --- a/Content.Shared/Storage/EntitySystems/DumpableSystem.cs +++ b/Content.Shared/Storage/EntitySystems/DumpableSystem.cs @@ -133,7 +133,7 @@ public sealed class DumpableSystem : EntitySystem _doAfterSystem.TryStartDoAfter(new DoAfterArgs(EntityManager, userUid, delay, new DumpableDoAfterEvent(), storageUid, target: targetUid, used: storageUid) { BreakOnMove = true, - NeedHand = true + NeedHand = true, }); } diff --git a/Content.Shared/Storage/EntitySystems/SharedStorageSystem.cs b/Content.Shared/Storage/EntitySystems/SharedStorageSystem.cs index 3afb52b959..eca182f69a 100644 --- a/Content.Shared/Storage/EntitySystems/SharedStorageSystem.cs +++ b/Content.Shared/Storage/EntitySystems/SharedStorageSystem.cs @@ -502,7 +502,7 @@ public abstract class SharedStorageSystem : EntitySystem { BreakOnDamage = true, BreakOnMove = true, - NeedHand = true + NeedHand = true, }; _doAfterSystem.TryStartDoAfter(doAfterArgs); diff --git a/Content.Shared/VendingMachines/SharedVendingMachineSystem.Restock.cs b/Content.Shared/VendingMachines/SharedVendingMachineSystem.Restock.cs index 6aef4d0949..f8d00f56f0 100644 --- a/Content.Shared/VendingMachines/SharedVendingMachineSystem.Restock.cs +++ b/Content.Shared/VendingMachines/SharedVendingMachineSystem.Restock.cs @@ -72,7 +72,7 @@ public abstract partial class SharedVendingMachineSystem { BreakOnMove = true, BreakOnDamage = true, - NeedHand = true + NeedHand = true, }; if (!_doAfter.TryStartDoAfter(doAfterArgs)) diff --git a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Ballistic.cs b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Ballistic.cs index dd06bab3b7..fa5381fac0 100644 --- a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Ballistic.cs +++ b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Ballistic.cs @@ -106,7 +106,7 @@ public abstract partial class SharedGunSystem { BreakOnMove = true, BreakOnDamage = false, - NeedHand = true + NeedHand = true, }); }