FalseAlarmRule.cs 1011 B

12345678910111213141516171819202122232425262728
  1. using System.Linq;
  2. using Content.Server.StationEvents.Components;
  3. using Content.Shared.GameTicking.Components;
  4. using JetBrains.Annotations;
  5. using Robust.Shared.Random;
  6. namespace Content.Server.StationEvents.Events;
  7. [UsedImplicitly]
  8. public sealed class FalseAlarmRule : StationEventSystem<FalseAlarmRuleComponent>
  9. {
  10. [Dependency] private readonly EventManagerSystem _event = default!;
  11. protected override void Started(EntityUid uid, FalseAlarmRuleComponent component, GameRuleComponent gameRule, GameRuleStartedEvent args)
  12. {
  13. if (!TryComp<StationEventComponent>(uid, out var stationEvent))
  14. return;
  15. var allEv = _event.AllEvents().Select(p => p.Value).ToList();
  16. var picked = RobustRandom.Pick(allEv);
  17. stationEvent.StartAnnouncement = picked.StartAnnouncement;
  18. stationEvent.StartAudio = picked.StartAudio;
  19. stationEvent.StartAnnouncementColor = picked.StartAnnouncementColor;
  20. base.Started(uid, component, gameRule, args);
  21. }
  22. }