diff --git a/Content.Client/Explosion/ExplosionOverlaySystem.cs b/Content.Client/Explosion/ExplosionOverlaySystem.cs index 064b068a97..35716616da 100644 --- a/Content.Client/Explosion/ExplosionOverlaySystem.cs +++ b/Content.Client/Explosion/ExplosionOverlaySystem.cs @@ -3,6 +3,7 @@ using Robust.Client.Graphics; using Robust.Client.ResourceManagement; using Robust.Shared.GameStates; using Robust.Shared.Graphics.RSI; +using Robust.Shared.Map; using Robust.Shared.Prototypes; using Robust.Shared.Utility; @@ -18,6 +19,7 @@ public sealed class ExplosionOverlaySystem : EntitySystem [Dependency] private readonly IResourceCache _resCache = default!; [Dependency] private readonly IOverlayManager _overlayMan = default!; [Dependency] private readonly SharedPointLightSystem _lights = default!; + [Dependency] private readonly IMapManager _mapMan = default!; public override void Initialize() { @@ -65,15 +67,20 @@ public sealed class ExplosionOverlaySystem : EntitySystem return; } - // spawn in a client-side light source at the epicenter - var lightEntity = Spawn("ExplosionLight", component.Epicenter); - var light = _lights.EnsureLight(lightEntity); + // Map may have been deleted. + if (_mapMan.MapExists(component.Epicenter.MapId)) + { + // spawn in a client-side light source at the epicenter + var lightEntity = Spawn("ExplosionLight", component.Epicenter); + var light = _lights.EnsureLight(lightEntity); + + _lights.SetRadius(lightEntity, component.Intensity.Count, light); + _lights.SetEnergy(lightEntity, component.Intensity.Count, light); + _lights.SetColor(lightEntity, type.LightColor, light); + textures.LightEntity = lightEntity; + } - _lights.SetRadius(lightEntity, component.Intensity.Count, light); - _lights.SetEnergy(lightEntity, component.Intensity.Count, light); - _lights.SetColor(lightEntity, type.LightColor, light); - textures.LightEntity = lightEntity; textures.FireColor = type.FireColor; textures.IntensityPerState = type.IntensityPerState; diff --git a/Content.IntegrationTests/Tests/Payload/ModularGrenadeTests.cs b/Content.IntegrationTests/Tests/Payload/ModularGrenadeTests.cs index 65f4a9d488..0e47de968f 100644 --- a/Content.IntegrationTests/Tests/Payload/ModularGrenadeTests.cs +++ b/Content.IntegrationTests/Tests/Payload/ModularGrenadeTests.cs @@ -67,7 +67,7 @@ public sealed class ModularGrenadeTests : InteractionTest } // Grenade has exploded. - await RunTicks(5); + await RunTicks(30); AssertDeleted(); } }