HOTFIX spider clan charges can be armed again (#32866) * fix ninja bomb component check * remove TryGetRole
This commit is contained in:
@@ -1,14 +1,12 @@
|
|||||||
using Content.Server.Explosion.EntitySystems;
|
using Content.Server.Explosion.EntitySystems;
|
||||||
using Content.Server.GameTicking.Rules.Components;
|
|
||||||
using Content.Server.Mind;
|
using Content.Server.Mind;
|
||||||
using Content.Server.Objectives.Components;
|
using Content.Server.Objectives.Components;
|
||||||
using Content.Server.Popups;
|
using Content.Server.Popups;
|
||||||
using Content.Server.Roles;
|
using Content.Server.Roles;
|
||||||
using Content.Shared.Interaction;
|
|
||||||
using Content.Shared.Ninja.Components;
|
using Content.Shared.Ninja.Components;
|
||||||
using Content.Shared.Ninja.Systems;
|
using Content.Shared.Ninja.Systems;
|
||||||
|
using Content.Shared.Roles;
|
||||||
using Content.Shared.Sticky;
|
using Content.Shared.Sticky;
|
||||||
using Robust.Shared.GameObjects;
|
|
||||||
|
|
||||||
namespace Content.Server.Ninja.Systems;
|
namespace Content.Server.Ninja.Systems;
|
||||||
|
|
||||||
@@ -19,6 +17,7 @@ public sealed class SpiderChargeSystem : SharedSpiderChargeSystem
|
|||||||
{
|
{
|
||||||
[Dependency] private readonly MindSystem _mind = default!;
|
[Dependency] private readonly MindSystem _mind = default!;
|
||||||
[Dependency] private readonly PopupSystem _popup = default!;
|
[Dependency] private readonly PopupSystem _popup = default!;
|
||||||
|
[Dependency] private readonly SharedRoleSystem _role = default!;
|
||||||
[Dependency] private readonly SharedTransformSystem _transform = default!;
|
[Dependency] private readonly SharedTransformSystem _transform = default!;
|
||||||
[Dependency] private readonly SpaceNinjaSystem _ninja = default!;
|
[Dependency] private readonly SpaceNinjaSystem _ninja = default!;
|
||||||
|
|
||||||
@@ -41,7 +40,10 @@ public sealed class SpiderChargeSystem : SharedSpiderChargeSystem
|
|||||||
|
|
||||||
var user = args.User;
|
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);
|
_popup.PopupEntity(Loc.GetString("spider-charge-not-ninja"), user, user);
|
||||||
args.Cancelled = true;
|
args.Cancelled = true;
|
||||||
|
|||||||
@@ -483,19 +483,6 @@ public abstract class SharedMindSystem : EntitySystem
|
|||||||
return false;
|
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>
|
/// <summary>
|
||||||
/// Sets the Mind's UserId, Session, and updates the player's PlayerData. This should have no direct effect on the
|
/// 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
|
/// entity that any mind is connected to, except as a side effect of the fact that it may change a player's
|
||||||
|
|||||||
Reference in New Issue
Block a user