Thief stuff (#480)
* - add: Thief stuff. * - fix: Implants. * - add: Jammer.
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user