Add Initial Cooldown To Communications Computers (#21681)

* Add initial delay variable

* Add cooldown to console on spawn

* shock

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
(cherry picked from commit 36fe294bcc8b1f4ed0063ff28eda5abbcfbe443f)
This commit is contained in:
Justin Pfeifler 2024-01-08 06:28:06 -06:00 committed by Debug
parent a6a7514b0d
commit 0bf77c01ed
No known key found for this signature in database
GPG Key ID: 271270A74EF9C350
2 changed files with 16 additions and 0 deletions

View 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>

View 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>