using Content.Server.GameTicking; using Content.Shared.FeedbackSystem; using Content.Shared.GameTicking; using Robust.Shared.Prototypes; namespace Content.Server.FeedbackSystem; public sealed partial class FeedbackSystem : EntitySystem { [Dependency] private ServerFeedbackManager _feedbackManager = null!; [Dependency] private GameTicker _gameTicker = null!; [Dependency] private IPrototypeManager _prototypeManager = null!; public override void Initialize() { base.Initialize(); SubscribeLocalEvent(OnRoundEnd); } private void OnRoundEnd(RoundEndMessageEvent args) { var validPopups = new List>(); var notValidPopups = new List>(); foreach (var feedback in _feedbackManager.GetOriginFeedbackPrototypes(true, true)) { if (_gameTicker.IsGameRuleAdded(_prototypeManager.Index(feedback).RuleWhitelist)) validPopups.Add(feedback); else notValidPopups.Add(feedback); } if (validPopups.Count > 0) _feedbackManager.SendToAllSessions(validPopups); if (notValidPopups.Count > 0) _feedbackManager.SendToAllSessions(notValidPopups, true); } }