EmagSiliconLawComponent.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. using Content.Shared.Roles;
  2. using Robust.Shared.GameStates;
  3. using Robust.Shared.Prototypes;
  4. using Robust.Shared.Audio;
  5. namespace Content.Shared.Silicons.Laws.Components;
  6. /// <summary>
  7. /// This is used for an entity that grants a special "obey" law when emagged.
  8. /// </summary>
  9. [RegisterComponent, NetworkedComponent, Access(typeof(SharedSiliconLawSystem))]
  10. public sealed partial class EmagSiliconLawComponent : Component
  11. {
  12. /// <summary>
  13. /// The name of the person who emagged this law provider.
  14. /// </summary>
  15. [DataField, ViewVariables(VVAccess.ReadWrite)]
  16. public string? OwnerName;
  17. /// <summary>
  18. /// Does the panel need to be open to EMAG this law provider.
  19. /// </summary>
  20. [DataField, ViewVariables(VVAccess.ReadWrite)]
  21. public bool RequireOpenPanel = true;
  22. /// <summary>
  23. /// How long the borg is stunned when it's emagged. Setting to 0 will disable it.
  24. /// </summary>
  25. [DataField, ViewVariables(VVAccess.ReadWrite)]
  26. public TimeSpan StunTime = TimeSpan.Zero;
  27. /// <summary>
  28. /// The sound that plays for the borg player
  29. /// to let them know they've been emagged
  30. /// </summary>
  31. [DataField]
  32. public SoundSpecifier EmaggedSound = new SoundPathSpecifier("/Audio/Ambience/Antag/emagged_borg.ogg");
  33. }