forensic scanner verb (#11361)
Co-authored-by: CommieFlowers <rasmus.cedergren@hotmail.com>
This commit is contained in:
@@ -7,6 +7,7 @@ using Content.Server.Popups;
|
|||||||
using Content.Shared.Forensics;
|
using Content.Shared.Forensics;
|
||||||
using Content.Shared.Hands.EntitySystems;
|
using Content.Shared.Hands.EntitySystems;
|
||||||
using Content.Shared.Interaction;
|
using Content.Shared.Interaction;
|
||||||
|
using Content.Shared.Verbs;
|
||||||
using Robust.Server.GameObjects;
|
using Robust.Server.GameObjects;
|
||||||
using Robust.Shared.Audio;
|
using Robust.Shared.Audio;
|
||||||
using Robust.Shared.Player;
|
using Robust.Shared.Player;
|
||||||
@@ -27,6 +28,7 @@ namespace Content.Server.Forensics
|
|||||||
|
|
||||||
SubscribeLocalEvent<ForensicScannerComponent, AfterInteractEvent>(OnAfterInteract);
|
SubscribeLocalEvent<ForensicScannerComponent, AfterInteractEvent>(OnAfterInteract);
|
||||||
SubscribeLocalEvent<ForensicScannerComponent, AfterInteractUsingEvent>(OnAfterInteractUsing);
|
SubscribeLocalEvent<ForensicScannerComponent, AfterInteractUsingEvent>(OnAfterInteractUsing);
|
||||||
|
SubscribeLocalEvent<ForensicScannerComponent, GetVerbsEvent<UtilityVerb>>(OnUtilityVerb);
|
||||||
SubscribeLocalEvent<ForensicScannerComponent, ForensicScannerPrintMessage>(OnPrint);
|
SubscribeLocalEvent<ForensicScannerComponent, ForensicScannerPrintMessage>(OnPrint);
|
||||||
SubscribeLocalEvent<TargetScanSuccessfulEvent>(OnTargetScanSuccessful);
|
SubscribeLocalEvent<TargetScanSuccessfulEvent>(OnTargetScanSuccessful);
|
||||||
SubscribeLocalEvent<ScanCancelledEvent>(OnScanCancelled);
|
SubscribeLocalEvent<ScanCancelledEvent>(OnScanCancelled);
|
||||||
@@ -55,6 +57,33 @@ namespace Content.Server.Forensics
|
|||||||
OpenUserInterface(ev.User, scanner);
|
OpenUserInterface(ev.User, scanner);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void OnUtilityVerb(EntityUid uid, ForensicScannerComponent component, GetVerbsEvent<UtilityVerb> args)
|
||||||
|
{
|
||||||
|
if (!args.CanInteract || !args.CanAccess || component.CancelToken != null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var verb = new UtilityVerb()
|
||||||
|
{
|
||||||
|
Act = () =>
|
||||||
|
{
|
||||||
|
component.CancelToken = new CancellationTokenSource();
|
||||||
|
_doAfterSystem.DoAfter(new DoAfterEventArgs(args.User, component.ScanDelay, component.CancelToken.Token, target: args.Target)
|
||||||
|
{
|
||||||
|
BroadcastFinishedEvent = new TargetScanSuccessfulEvent(args.User, (EntityUid) args.Target, component.Owner),
|
||||||
|
BroadcastCancelledEvent = new ScanCancelledEvent(component.Owner),
|
||||||
|
BreakOnTargetMove = true,
|
||||||
|
BreakOnUserMove = true,
|
||||||
|
BreakOnStun = true,
|
||||||
|
NeedHand = true
|
||||||
|
});
|
||||||
|
},
|
||||||
|
Text = Loc.GetString("forensic-scanner-verb-text"),
|
||||||
|
Message = Loc.GetString("forensic-scanner-verb-message")
|
||||||
|
};
|
||||||
|
|
||||||
|
args.Verbs.Add(verb);
|
||||||
|
}
|
||||||
|
|
||||||
private void OnAfterInteract(EntityUid uid, ForensicScannerComponent component, AfterInteractEvent args)
|
private void OnAfterInteract(EntityUid uid, ForensicScannerComponent component, AfterInteractEvent args)
|
||||||
{
|
{
|
||||||
if (component.CancelToken != null || args.Target == null || !args.CanReach)
|
if (component.CancelToken != null || args.Target == null || !args.CanReach)
|
||||||
|
|||||||
@@ -13,6 +13,10 @@ forensic-pad-already-used = This pad has already been used.
|
|||||||
forensic-scanner-match-fiber = Match in fiber found!
|
forensic-scanner-match-fiber = Match in fiber found!
|
||||||
forensic-scanner-match-fingerprint = Match in fingerprint found!
|
forensic-scanner-match-fingerprint = Match in fingerprint found!
|
||||||
forensic-scanner-match-none = No matches found!
|
forensic-scanner-match-none = No matches found!
|
||||||
|
forensic-scanner-verb-text = Scan
|
||||||
|
forensic-scanner-verb-message = Perform a forensic scan
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
forensic-pad-fingerprint-name = {$entity}'s fingerprints
|
forensic-pad-fingerprint-name = {$entity}'s fingerprints
|
||||||
forensic-pad-gloves-name = fibers from {$entity}
|
forensic-pad-gloves-name = fibers from {$entity}
|
||||||
|
|||||||
Reference in New Issue
Block a user