Files
tbd-station-14/Content.Server/Chemistry/ReagentEffects/AdjustAlert.cs
2022-05-13 17:59:03 +10:00

43 lines
1.2 KiB
C#

using Content.Shared.Alert;
using Content.Shared.Chemistry.Reagent;
using Robust.Shared.Timing;
namespace Content.Server.Chemistry.ReagentEffects;
public sealed class AdjustAlert : ReagentEffect
{
[DataField("alertType", required: true)]
public AlertType Type;
[DataField("clear")]
public bool Clear;
[DataField("cooldown")]
public bool Cooldown;
[DataField("time")]
public float Time;
public override void Effect(ReagentEffectArgs args)
{
var alertSys = EntitySystem.Get<AlertsSystem>();
if (args.EntityManager.HasComponent<AlertsComponent>(args.SolutionEntity))
{
if (Clear)
{
alertSys.ClearAlert(args.SolutionEntity, Type);
}
else
{
(TimeSpan, TimeSpan)? cooldown = null;
if (Cooldown)
{
var timing = IoCManager.Resolve<IGameTiming>();
cooldown = (timing.CurTime, timing.CurTime + TimeSpan.FromSeconds(Time));
}
alertSys.ShowAlert(args.SolutionEntity, Type, cooldown: cooldown);
}
}
}
}