using Content.Server.Explosion.Components; using Content.Server.Flash.Components; using Content.Server.GameTicking; using Content.Server.Popups; using Content.Server.Store.Components; using Content.Server.Store.Systems; using Content.Shared.CombatMode; using Content.Shared.CombatMode.Pacification; using Content.Shared.DeltaV.CCVars; using Content.Shared.Explosion.Components; using Content.Shared.FixedPoint; using Content.Shared.Flash.Components; using Content.Shared.Store.Components; using Robust.Server.Player; using Robust.Shared.Configuration; namespace Content.Server.DeltaV.RoundEnd; public sealed class PacifiedRoundEnd : EntitySystem { [Dependency] private readonly IConfigurationManager _configurationManager = default!; [Dependency] private readonly IPlayerManager _playerManager = default!; [Dependency] private readonly EntityManager _entityManager = default!; [Dependency] private readonly StoreSystem _storeSystem = default!; [Dependency] private readonly PopupSystem _popupSystem = 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 var _)) { EnsureComp(uid); } var explosiveQuery = EntityQueryEnumerator(); while (explosiveQuery.MoveNext(out var uid, out var _)) { RemComp(uid); } var grenadeQuery = EntityQueryEnumerator(); while (grenadeQuery.MoveNext(out var uid, out var _)) { RemComp(uid); } var flashQuery = EntityQueryEnumerator(); while (flashQuery.MoveNext(out var uid, out var _)) { RemComp(uid); } var uplinkQuery = EntityQueryEnumerator(); while (uplinkQuery.MoveNext(out var uid, out var store)) { store.FullListingsCatalog.Clear(); store.LastAvailableListings.Clear(); } } }