From f570a9de6cdcc3565e3084651b21ccd6626bdc6f Mon Sep 17 00:00:00 2001 From: Arthur <14136326+Morb0@users.noreply.github.com> Date: Sun, 26 Jun 2022 16:52:33 +0300 Subject: [PATCH] Basic fire system --- Content.Server/Icarus/IcarusTerminalSystem.cs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Content.Server/Icarus/IcarusTerminalSystem.cs b/Content.Server/Icarus/IcarusTerminalSystem.cs index 2c70ba2a87..65934ae91c 100644 --- a/Content.Server/Icarus/IcarusTerminalSystem.cs +++ b/Content.Server/Icarus/IcarusTerminalSystem.cs @@ -1,9 +1,12 @@ using System.Linq; using Content.Server.Chat.Systems; +using Content.Server.Station.Components; +using Content.Server.Station.Systems; using Content.Shared.Containers.ItemSlots; using Content.Shared.Icarus; using Content.Shared.Verbs; using Robust.Shared.Audio; +using Robust.Shared.Map; using Robust.Shared.Player; namespace Content.Server.Icarus; @@ -13,7 +16,10 @@ namespace Content.Server.Icarus; /// public sealed class IcarusTerminalSystem : EntitySystem { + private const string IcarusBeamPrototypeId = "ImmovableRodSlow"; + [Dependency] private readonly ChatSystem _chatSystem = default!; + [Dependency] private readonly StationSystem _stationSystem = default!; public override void Initialize() { @@ -43,10 +49,16 @@ public sealed class IcarusTerminalSystem : EntitySystem public void Fire(EntityUid uid) { + var stationUid = _stationSystem.GetOwningStation(uid); + if (stationUid == null) + return; + _chatSystem.DispatchStationAnnouncement(uid, Loc.GetString("goldeneye-icarus-announcement"), Loc.GetString("goldeneye-announce-sender"), false, Color.Red); SoundSystem.Play("/Audio/Corvax/AssaultOperatives/icarus_alarm.ogg", Filter.Broadcast()); - // TODO: Fire Icarus beam + var gridUids = Comp(stationUid.Value).Grids; + var coords = Comp(gridUids.First()).Coordinates; // TODO: More smart main station grid determine OR replace with radar system + EntityManager.SpawnEntity(IcarusBeamPrototypeId, coords); } public bool IsUnlocked(EntityUid uid)