/// Remaining cooldown between making announcements.
/// </summary>
[ViewVariables(VVAccess.ReadWrite)]
+ [DataField]
public float AnnouncementCooldownRemaining;
/// <summary>
[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>
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)
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>