Files
tbd-station-14/Content.Shared/Forensics/ForensicScannerEvent.cs
SlamBamActionman 07174d0aaf Better DNA forensics & ReagentData (#26699)
* Added the ability for blood to track DNA using ReagentData; Forensic Scanner now accounts for solution DNA, non-DNA holders have "Unknown DNA"

* Removes touch DNA for puddles, adds DNA to vomit

* DNA now leaves traces in containers and those marked without don't show DNA on scan (except for puddles), gibbed parts have DNA

* Fix stupid metamorphic glass bug grrr

* Removed SpillableComponent since DnaSubstanceTraceComponent is used instead

* Removes data field from maps, adds DNA tracking for some missed items

* Give default value, fix missing values.

* Fixes recipe bug

* Review changes

* Make the Data list into a nullable type

* Revert map changes

* Move gibbed unknown DNA to forensicssystem
2024-08-09 09:27:27 +10:00

54 lines
1.7 KiB
C#

using Robust.Shared.Serialization;
namespace Content.Shared.Forensics
{
[Serializable, NetSerializable]
public sealed class ForensicScannerBoundUserInterfaceState : BoundUserInterfaceState
{
public readonly List<string> Fingerprints = new();
public readonly List<string> Fibers = new();
public readonly List<string> TouchDNAs = new();
public readonly List<string> SolutionDNAs = new();
public readonly List<string> Residues = new();
public readonly string LastScannedName = string.Empty;
public readonly TimeSpan PrintCooldown = TimeSpan.Zero;
public readonly TimeSpan PrintReadyAt = TimeSpan.Zero;
public ForensicScannerBoundUserInterfaceState(
List<string> fingerprints,
List<string> fibers,
List<string> touchDnas,
List<string> solutionDnas,
List<string> residues,
string lastScannedName,
TimeSpan printCooldown,
TimeSpan printReadyAt)
{
Fingerprints = fingerprints;
Fibers = fibers;
TouchDNAs = touchDnas;
SolutionDNAs = solutionDnas;
Residues = residues;
LastScannedName = lastScannedName;
PrintCooldown = printCooldown;
PrintReadyAt = printReadyAt;
}
}
[Serializable, NetSerializable]
public enum ForensicScannerUiKey : byte
{
Key
}
[Serializable, NetSerializable]
public sealed class ForensicScannerPrintMessage : BoundUserInterfaceMessage
{
}
[Serializable, NetSerializable]
public sealed class ForensicScannerClearMessage : BoundUserInterfaceMessage
{
}
}