diff --git a/Content.Server/Dragon/DragonSystem.Rule.cs b/Content.Server/Dragon/DragonSystem.Rule.cs index 0963f8c09b..9f220bbd26 100644 --- a/Content.Server/Dragon/DragonSystem.Rule.cs +++ b/Content.Server/Dragon/DragonSystem.Rule.cs @@ -1,6 +1,7 @@ using System.Linq; using Content.Server.GameTicking; using Content.Server.GameTicking.Rules.Components; +using Content.Server.Station.Components; using Content.Shared.Dragon; using Robust.Server.GameObjects; using Robust.Shared.Map.Components; @@ -30,13 +31,14 @@ public sealed partial class DragonSystem { base.Started(uid, component, gameRule, args); - var spawnLocations = EntityQuery().ToList(); - - if (spawnLocations.Count == 0) + if (!_station.Stations.Any()) return; - var location = _random.Pick(spawnLocations); - Spawn("MobDragon", location.Item2.MapPosition); + var station = _random.Pick(_station.Stations); + if (_station.GetLargestGrid(EntityManager.GetComponent(station)) is not { } grid) + return; + + Spawn("MobDragon", Transform(grid).MapPosition); } private void OnRiftRoundEnd(RoundEndTextAppendEvent args) diff --git a/Content.Server/Dragon/DragonSystem.cs b/Content.Server/Dragon/DragonSystem.cs index f2f0e7ba99..6bd1f08bdb 100644 --- a/Content.Server/Dragon/DragonSystem.cs +++ b/Content.Server/Dragon/DragonSystem.cs @@ -17,6 +17,7 @@ using Robust.Shared.GameStates; using Robust.Shared.Map; using Robust.Shared.Random; using Content.Server.NPC.Systems; +using Content.Server.Station.Systems; using Content.Shared.DoAfter; using Content.Shared.Humanoid; using Content.Shared.Mobs; @@ -37,6 +38,7 @@ namespace Content.Server.Dragon [Dependency] private readonly MovementSpeedModifierSystem _movement = default!; [Dependency] private readonly SharedContainerSystem _containerSystem = default!; [Dependency] private readonly SharedAudioSystem _audioSystem = default!; + [Dependency] private readonly StationSystem _station = default!; [Dependency] private readonly NPCSystem _npc = default!; ///