CriminalRecord.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using Content.Shared.Security;
  2. using Robust.Shared.Serialization;
  3. namespace Content.Shared.CriminalRecords;
  4. /// <summary>
  5. /// Criminal record for a crewmember.
  6. /// Can be viewed and edited in a criminal records console by security.
  7. /// </summary>
  8. [Serializable, NetSerializable, DataRecord]
  9. public sealed partial record CriminalRecord
  10. {
  11. /// <summary>
  12. /// Status of the person (None, Wanted, Detained).
  13. /// </summary>
  14. [DataField]
  15. public SecurityStatus Status = SecurityStatus.None;
  16. /// <summary>
  17. /// When Status is Wanted, the reason for it.
  18. /// Should never be set otherwise.
  19. /// </summary>
  20. [DataField]
  21. public string? Reason;
  22. /// <summary>
  23. /// The name of the person who changed the status.
  24. /// </summary>
  25. [DataField]
  26. public string? InitiatorName;
  27. /// <summary>
  28. /// Criminal history of the person.
  29. /// This should have charges and time served added after someone is detained.
  30. /// </summary>
  31. [DataField]
  32. public List<CrimeHistory> History = new();
  33. }
  34. /// <summary>
  35. /// A line of criminal activity and the time it was added at.
  36. /// </summary>
  37. [Serializable, NetSerializable]
  38. public record struct CrimeHistory(TimeSpan AddTime, string Crime, string? InitiatorName);