using Content.Server.UserInterface; using Content.Shared._Sunrise.TTS; using Content.Shared.Communications; using Robust.Shared.Audio; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; namespace Content.Server.Communications { [RegisterComponent] public sealed partial class CommunicationsConsoleComponent : SharedCommunicationsConsoleComponent { public float UIUpdateAccumulator = 0f; /// /// Remaining cooldown between making announcements. /// [ViewVariables] [DataField] public float AnnouncementCooldownRemaining; [ViewVariables] [DataField] public float BroadcastCooldownRemaining; /// /// Fluent ID for the announcement title /// If a Fluent ID isn't found, just uses the raw string /// [ViewVariables(VVAccess.ReadWrite)] [DataField(required: true)] public LocId Title = "comms-console-announcement-title-station"; /// /// Announcement color /// [ViewVariables] [DataField] public Color Color = Color.Gold; /// /// Time in seconds between announcement delays on a per-console basis /// [ViewVariables] [DataField] public int Delay = 90; /// /// Time in seconds of announcement cooldown when a new console is created on a per-console basis /// [ViewVariables] [DataField] public int InitialDelay = 30; /// /// Can call or recall the shuttle /// [ViewVariables] [DataField] public bool CanShuttle = true; /// /// Announce on all grids (for nukies) /// [DataField] public bool Global = false; /// /// Announce sound file path /// [DataField] public SoundSpecifier Sound = new SoundPathSpecifier("/Audio/Announcements/announce.ogg"); // Sunrise-Start [DataField("announceVoice", customTypeSerializer:typeof(PrototypeIdSerializer))] public string AnnounceVoice = "Hanson"; // Sunrise-Start } }