using Content.Server.Explosion.Components; using Content.Server.GameTicking; using Content.Shared.CombatMode; using Content.Shared.CombatMode.Pacification; using Content.Shared._DV.CCVars; using Content.Shared.Explosion.Components; using Content.Shared.Flash.Components; using Content.Shared.Store.Components; using Robust.Shared.Configuration; namespace Content.Server._DV.RoundEnd; public sealed class PacifiedRoundEnd : EntitySystem { [Dependency] private readonly IConfigurationManager _configurationManager = default!; private bool _enabled; public override void Initialize() { base.Initialize(); _configurationManager.OnValueChanged(DCCVars.RoundEndPacifist, v => _enabled = v, true); SubscribeLocalEvent(OnRoundEnded); } private void OnRoundEnded(RoundEndTextAppendEvent ev) { if (!_enabled) return; var harmQuery = EntityQueryEnumerator(); while (harmQuery.MoveNext(out var uid, out _)) { EnsureComp(uid); } var explosiveQuery = EntityQueryEnumerator(); while (explosiveQuery.MoveNext(out var uid, out _)) { RemComp(uid); } var grenadeQuery = EntityQueryEnumerator(); while (grenadeQuery.MoveNext(out var uid, out _)) { RemComp(uid); } var flashQuery = EntityQueryEnumerator(); while (flashQuery.MoveNext(out var uid, out _)) { RemComp(uid); } var uplinkQuery = EntityQueryEnumerator(); while (uplinkQuery.MoveNext(out var uid, out _)) { RemComp(uid); } } }