]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Fix tranq rounds injecting when reflected (#26141)
authorTayrtahn <tayrtahn@gmail.com>
Fri, 15 Mar 2024 13:57:15 +0000 (09:57 -0400)
committerGitHub <noreply@github.com>
Fri, 15 Mar 2024 13:57:15 +0000 (00:57 +1100)
* Fix tranq rounds injecting when reflected

* Cleanup using directives

* Remove FixtureId from component

Content.Server/Chemistry/Components/SolutionInjectOnCollideComponent.cs
Content.Server/Chemistry/EntitySystems/SolutionInjectOnCollideSystem.cs

index cdba55467ae4ecc633873384d1b37f314a0fe3e2..76bb5294bce61190b56aeb3f9977b85b0114df43 100644 (file)
@@ -25,7 +25,4 @@ public sealed partial class SolutionInjectOnCollideComponent : Component
     /// </summary>
     [DataField("blockSlots"), ViewVariables(VVAccess.ReadWrite)]
     public SlotFlags BlockSlots = SlotFlags.MASK;
-
-    [DataField]
-    public string FixtureId = SharedProjectileSystem.ProjectileFixture;
 }
index 0f696774ae5e69f3153298eae09cf1c43aefac5e..fb84aca3e412f9030da29600fcef185eb0b0d5d4 100644 (file)
@@ -3,8 +3,7 @@ using Content.Server.Body.Systems;
 using Content.Server.Chemistry.Components;
 using Content.Server.Chemistry.Containers.EntitySystems;
 using Content.Shared.Inventory;
-using JetBrains.Annotations;
-using Robust.Shared.Physics.Events;
+using Content.Shared.Projectiles;
 
 namespace Content.Server.Chemistry.EntitySystems;
 
@@ -17,17 +16,15 @@ public sealed class SolutionInjectOnCollideSystem : EntitySystem
     public override void Initialize()
     {
         base.Initialize();
-        SubscribeLocalEvent<SolutionInjectOnCollideComponent, StartCollideEvent>(HandleInjection);
+        SubscribeLocalEvent<SolutionInjectOnCollideComponent, ProjectileHitEvent>(HandleInjection);
     }
 
-    private void HandleInjection(Entity<SolutionInjectOnCollideComponent> ent, ref StartCollideEvent args)
+    private void HandleInjection(Entity<SolutionInjectOnCollideComponent> ent, ref ProjectileHitEvent args)
     {
         var component = ent.Comp;
-        var target = args.OtherEntity;
+        var target = args.Target;
 
-        if (!args.OtherBody.Hard ||
-            args.OurFixtureId != ent.Comp.FixtureId ||
-            !EntityManager.TryGetComponent<BloodstreamComponent>(target, out var bloodstream) ||
+        if (!TryComp<BloodstreamComponent>(target, out var bloodstream) ||
             !_solutionContainersSystem.TryGetInjectableSolution(ent.Owner, out var solution, out _))
         {
             return;