]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Add Initial Cooldown To Communications Computers (#21681)
authorJustin Pfeifler <jrpl101998@gmail.com>
Mon, 8 Jan 2024 12:28:06 +0000 (06:28 -0600)
committerGitHub <noreply@github.com>
Mon, 8 Jan 2024 12:28:06 +0000 (23:28 +1100)
* Add initial delay variable

* Add cooldown to console on spawn

* shock

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
Content.Server/Communications/CommunicationsConsoleComponent.cs
Content.Server/Communications/CommunicationsConsoleSystem.cs

index e2aa0d7620140f80112732ab74a98a8e9e750105..52f3087b65809baa4de5c881ce44e146dca2f442 100644 (file)
@@ -13,6 +13,7 @@ namespace Content.Server.Communications
         /// Remaining cooldown between making announcements.
         /// </summary>
         [ViewVariables(VVAccess.ReadWrite)]
+        [DataField]
         public float AnnouncementCooldownRemaining;
 
         /// <summary>
@@ -37,6 +38,13 @@ namespace Content.Server.Communications
         [DataField]
         public int Delay = 90;
 
+        /// <summary>
+        /// Time in seconds of announcement cooldown when a new console is created on a per-console basis
+        /// </summary>
+        [ViewVariables(VVAccess.ReadWrite)]
+        [DataField]
+        public int InitialDelay = 30;
+
         /// <summary>
         /// Can call or recall the shuttle
         /// </summary>
index b2945c2a11950d66e58029c9254e331969c4aa38..ea27450956cd2ab5d69ca76ac18d4f41140a4cdf 100644 (file)
@@ -52,6 +52,9 @@ namespace Content.Server.Communications
             SubscribeLocalEvent<CommunicationsConsoleComponent, CommunicationsConsoleAnnounceMessage>(OnAnnounceMessage);
             SubscribeLocalEvent<CommunicationsConsoleComponent, CommunicationsConsoleCallEmergencyShuttleMessage>(OnCallShuttleMessage);
             SubscribeLocalEvent<CommunicationsConsoleComponent, CommunicationsConsoleRecallEmergencyShuttleMessage>(OnRecallShuttleMessage);
+
+            // On console init, set cooldown
+            SubscribeLocalEvent<CommunicationsConsoleComponent, MapInitEvent>(OnCommunicationsConsoleMapInit);
         }
 
         public override void Update(float frameTime)
@@ -79,6 +82,11 @@ namespace Content.Server.Communications
             base.Update(frameTime);
         }
 
+        public void OnCommunicationsConsoleMapInit(EntityUid uid, CommunicationsConsoleComponent comp, MapInitEvent args)
+        {
+            comp.AnnouncementCooldownRemaining = comp.InitialDelay;
+        }
+
         /// <summary>
         /// Update the UI of every comms console.
         /// </summary>