using Content.Server.Database.Migrations.Postgres; using Content.Server.UserInterface; using Content.Shared._Sunrise.TTS; using Content.Shared.Communications; using JetBrains.Annotations; using Robust.Shared.Audio; using Robust.Shared.Prototypes; 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"); /// /// Hides the sender identity (If they even have one). /// In practise this removes the "Sent by ScugMcWawa (Slugcat Captain)" at the bottom of the announcement. /// [DataField] public bool AnnounceSentBy = false; // Sunrise-Start [DataField] public ProtoId? AnnounceVoice = "Hanson"; [ViewVariables] public bool IsRelaying; [ViewVariables] public float RelayTimeRemaining; [ViewVariables] public float RelayCooldownRemaining; [DataField] public float RelayDuration = 60f; [DataField] public float RelayCooldown = 300f; [DataField] public float RelayRange = 7f; // Sunrise-End } }