]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Merge spider clan charges can be armed again (#32866) to Master (#32881)
authorErrant <35878406+Errant-4@users.noreply.github.com>
Fri, 18 Oct 2024 13:38:16 +0000 (15:38 +0200)
committerGitHub <noreply@github.com>
Fri, 18 Oct 2024 13:38:16 +0000 (15:38 +0200)
HOTFIX spider clan charges can be armed again (#32866)

* fix ninja bomb component check

* remove TryGetRole

Content.Server/Ninja/Systems/SpiderChargeSystem.cs
Content.Shared/Mind/SharedMindSystem.cs

index c916d568d5f1df4212d3e9d0cbb2ce5dc7907fff..6594d7883bcf8199f9f6c323bbec31f0054f6b4a 100644 (file)
@@ -1,14 +1,12 @@
 using Content.Server.Explosion.EntitySystems;
-using Content.Server.GameTicking.Rules.Components;
 using Content.Server.Mind;
 using Content.Server.Objectives.Components;
 using Content.Server.Popups;
 using Content.Server.Roles;
-using Content.Shared.Interaction;
 using Content.Shared.Ninja.Components;
 using Content.Shared.Ninja.Systems;
+using Content.Shared.Roles;
 using Content.Shared.Sticky;
-using Robust.Shared.GameObjects;
 
 namespace Content.Server.Ninja.Systems;
 
@@ -19,6 +17,7 @@ public sealed class SpiderChargeSystem : SharedSpiderChargeSystem
 {
     [Dependency] private readonly MindSystem _mind = default!;
     [Dependency] private readonly PopupSystem _popup = default!;
+    [Dependency] private readonly SharedRoleSystem _role = default!;
     [Dependency] private readonly SharedTransformSystem _transform = default!;
     [Dependency] private readonly SpaceNinjaSystem _ninja = default!;
 
@@ -41,7 +40,10 @@ public sealed class SpiderChargeSystem : SharedSpiderChargeSystem
 
         var user = args.User;
 
-        if (!_mind.TryGetRole<NinjaRoleComponent>(user, out var _))
+        if (!_mind.TryGetMind(args.User, out var mind, out _))
+            return;
+
+        if (!_role.MindHasRole<NinjaRoleComponent>(mind))
         {
             _popup.PopupEntity(Loc.GetString("spider-charge-not-ninja"), user, user);
             args.Cancelled = true;
index 162bca495caf0ad5eabab433f1bee809db6c5cad..bf0b5f650adb616b17572cc1a130ee6483ac5e81 100644 (file)
@@ -483,19 +483,6 @@ public abstract class SharedMindSystem : EntitySystem
         return false;
     }
 
-    /// <summary>
-    /// Gets a role component from a player's mind.
-    /// </summary>
-    /// <returns>Whether a role was found</returns>
-    public bool TryGetRole<T>(EntityUid user, [NotNullWhen(true)] out T? role) where T : IComponent
-    {
-        role = default;
-        if (!TryComp<MindContainerComponent>(user, out var mindContainer) || mindContainer.Mind == null)
-            return false;
-
-        return TryComp(mindContainer.Mind, out role);
-    }
-
     /// <summary>
     /// Sets the Mind's UserId, Session, and updates the player's PlayerData. This should have no direct effect on the
     /// entity that any mind is connected to, except as a side effect of the fact that it may change a player's