From: Nemanja <98561806+EmoGarbage404@users.noreply.github.com> Date: Sat, 29 Apr 2023 04:51:31 +0000 (-0400) Subject: Prevent dragons from spawning off-station (#15804) X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=0904b4253f61e393745fd0dc50acbcc503cda699;p=space-station-14.git Prevent dragons from spawning off-station (#15804) --- 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 (!_station.Stations.Any()) + return; - if (spawnLocations.Count == 0) + var station = _random.Pick(_station.Stations); + if (_station.GetLargestGrid(EntityManager.GetComponent(station)) is not { } grid) return; - var location = _random.Pick(spawnLocations); - Spawn("MobDragon", location.Item2.MapPosition); + 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!; ///