Thief stuff (#480)

* - add: Thief stuff.

* - fix: Implants.

* - add: Jammer.
This commit is contained in:
Aviu00
2024-07-22 14:20:05 +00:00
committed by GitHub
parent c0772fa89a
commit f82eee75b0
17 changed files with 122 additions and 6 deletions

View File

@@ -18,6 +18,7 @@ using Robust.Shared.Physics;
using Robust.Shared.Physics.Components;
using Robust.Shared.Random;
using System.Numerics;
using Content.Server.IdentityManagement;
using Content.Shared.Movement.Pulling.Components;
using Content.Shared.Movement.Pulling.Systems;
using Robust.Shared.Collections;
@@ -39,6 +40,7 @@ public sealed class SubdermalImplantSystem : SharedSubdermalImplantSystem
[Dependency] private readonly PullingSystem _pullingSystem = default!;
[Dependency] private readonly EntityLookupSystem _lookupSystem = default!;
[Dependency] private readonly SharedMapSystem _mapSystem = default!;
[Dependency] private readonly IdentitySystem _identity = default!; // WD
private EntityQuery<PhysicsComponent> _physicsQuery;
private HashSet<Entity<MapGridComponent>> _targetGrids = [];
@@ -208,6 +210,7 @@ public sealed class SubdermalImplantSystem : SharedSubdermalImplantSystem
var newProfile = HumanoidCharacterProfile.RandomWithSpecies(humanoid.Species);
_humanoidAppearance.LoadProfile(ent, newProfile, humanoid);
_metaData.SetEntityName(ent, newProfile.Name);
_identity.QueueIdentityUpdate(ent); // WD
if (TryComp<DnaComponent>(ent, out var dna))
{
dna.DNA = _forensicsSystem.GenerateDNA();

View File

@@ -37,7 +37,8 @@ public sealed class MindslaveSystem : SharedMindslaveSystem
masterComponent.Slaves.Add(GetNetEntity(args.Target));
masterComponent.Master = GetNetEntity(args.User);
Dirty(args.Target, masterComponent);
Dirty(args.User, masterComponent);
Dirty(args.Target, slaveComponent);
if (!Mind.TryGetMind(args.Target, out var targetMindId, out var targetMind) || targetMind.Session is null)
{
@@ -73,7 +74,7 @@ public sealed class MindslaveSystem : SharedMindslaveSystem
{
return;
}
if (!TryComp(args.Target, out MindSlaveComponent? mindslave))
{
return;
@@ -85,6 +86,14 @@ public sealed class MindslaveSystem : SharedMindslaveSystem
Popup.PopupEntity(Loc.GetString("mindslave-freed", ("player", mindslave.Master)), args.Target, args.Target);
}
var master = GetEntity(mindslave.Master);
if (TryComp(master, out MindSlaveComponent? masterMindslave))
{
masterMindslave.Slaves.Remove(GetNetEntity(args.Target));
if (masterMindslave.Slaves.Count == 0)
RemComp<MindSlaveComponent>(master);
}
RemComp<MindSlaveComponent>(args.Target);
}
}
}