RoleCodewordComponent.cs 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. using Robust.Shared.GameStates;
  2. using Robust.Shared.Prototypes;
  3. using Robust.Shared.Serialization;
  4. namespace Content.Shared.Roles.RoleCodeword;
  5. /// <summary>
  6. /// Used to display and highlight codewords in chat messages on the client.
  7. /// </summary>
  8. [RegisterComponent, NetworkedComponent, AutoGenerateComponentState, Access(typeof(SharedRoleCodewordSystem), Other = AccessPermissions.Read)]
  9. public sealed partial class RoleCodewordComponent : Component
  10. {
  11. /// <summary>
  12. /// Contains the codewords tied to a role.
  13. /// Key string should be unique for the role.
  14. /// </summary>
  15. [DataField, AutoNetworkedField]
  16. public Dictionary<string, CodewordsData> RoleCodewords = new();
  17. public override bool SessionSpecific => true;
  18. }
  19. [DataDefinition, Serializable, NetSerializable]
  20. public partial struct CodewordsData
  21. {
  22. [DataField]
  23. public Color Color;
  24. [DataField]
  25. public List<string> Codewords;
  26. public CodewordsData(Color color, List<string> codewords)
  27. {
  28. Color = color;
  29. Codewords = codewords;
  30. }
  31. }