ToggleableGhostRoleComponent.cs 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. using Content.Shared.Roles;
  2. using Robust.Shared.Prototypes;
  3. namespace Content.Server.Ghost.Roles.Components;
  4. /// <summary>
  5. /// This is used for a ghost role which can be toggled on and off at will, like a PAI.
  6. /// </summary>
  7. [RegisterComponent, Access(typeof(ToggleableGhostRoleSystem))]
  8. public sealed partial class ToggleableGhostRoleComponent : Component
  9. {
  10. /// <summary>
  11. /// The text shown on the entity's Examine when it is controlled by a player
  12. /// </summary>
  13. [DataField]
  14. public string ExamineTextMindPresent = string.Empty;
  15. /// <summary>
  16. /// The text shown on the entity's Examine when it is waiting for a controlling player
  17. /// </summary>
  18. [DataField]
  19. public string ExamineTextMindSearching = string.Empty;
  20. /// <summary>
  21. /// The text shown on the entity's Examine when it has no controlling player
  22. /// </summary>
  23. [DataField]
  24. public string ExamineTextNoMind = string.Empty;
  25. /// <summary>
  26. /// The popup text when the entity (PAI/positronic brain) it is activated to seek a controlling player
  27. /// </summary>
  28. [DataField]
  29. public string BeginSearchingText = string.Empty;
  30. /// <summary>
  31. /// The name shown on the Ghost Role list
  32. /// </summary>
  33. [DataField]
  34. public string RoleName = string.Empty;
  35. /// <summary>
  36. /// The description shown on the Ghost Role list
  37. /// </summary>
  38. [DataField]
  39. public string RoleDescription = string.Empty;
  40. /// <summary>
  41. /// The introductory message shown when trying to take the ghost role/join the raffle
  42. /// </summary>
  43. [DataField]
  44. public string RoleRules = string.Empty;
  45. /// <summary>
  46. /// A list of mind roles that will be added to the entity's mind
  47. /// </summary>
  48. [DataField]
  49. public List<EntProtoId> MindRoles;
  50. /// <summary>
  51. /// The displayed name of the verb to wipe the controlling player
  52. /// </summary>
  53. [DataField]
  54. public string WipeVerbText = string.Empty;
  55. /// /// <summary>
  56. /// The popup message when wiping the controlling player
  57. /// </summary>
  58. [DataField]
  59. public string WipeVerbPopup = string.Empty;
  60. /// <summary>
  61. /// The displayed name of the verb to stop searching for a controlling player
  62. /// </summary>
  63. [DataField]
  64. public string StopSearchVerbText = string.Empty;
  65. /// /// <summary>
  66. /// The popup message when stopping to search for a controlling player
  67. /// </summary>
  68. [DataField]
  69. public string StopSearchVerbPopup = string.Empty;
  70. /// /// <summary>
  71. /// The prototype ID of the job that will be given to the controlling mind
  72. /// </summary>
  73. [DataField("job")]
  74. public ProtoId<JobPrototype>? JobProto;
  75. }