Prevent dragons from spawning off-station (#15804)
This commit is contained in:
parent
8745505724
commit
0904b4253f
|
|
@ -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<MapGridComponent, TransformComponent>().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<StationDataComponent>(station)) is not { } grid)
|
||||
return;
|
||||
|
||||
Spawn("MobDragon", Transform(grid).MapPosition);
|
||||
}
|
||||
|
||||
private void OnRiftRoundEnd(RoundEndTextAppendEvent args)
|
||||
|
|
|
|||
|
|
@ -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!;
|
||||
|
||||
/// <summary>
|
||||
|
|
|
|||
Loading…
Reference in New Issue