anomaly commands (#16179)

This commit is contained in:
Nemanja
2023-05-06 13:56:02 -04:00
committed by GitHub
parent 593988da02
commit f1f28dcc19
3 changed files with 63 additions and 1 deletions

View File

@@ -0,0 +1,59 @@
using Content.Server.Administration;
using Content.Shared.Administration;
using Content.Shared.Anomaly.Components;
using Robust.Shared.Console;
namespace Content.Server.Anomaly;
public sealed partial class AnomalySystem
{
[Dependency] private readonly IConsoleHost _consoleHost = default!;
public void InitializeCommands()
{
_consoleHost.RegisterCommand("pulseanomaly", Loc.GetString("anomaly-command-pulse"), "pulseanomaly <uid>",
PulseAnomalyCommand,
GetAnomalyCompletion);
_consoleHost.RegisterCommand("supercriticalanomaly", Loc.GetString("anomaly-command-supercritical"), "supercriticalanomaly <uid>",
SupercriticalAnomalyCommand,
GetAnomalyCompletion);
}
[AdminCommand(AdminFlags.Fun)]
private void PulseAnomalyCommand(IConsoleShell shell, string argstr, string[] args)
{
if (args.Length != 1)
shell.WriteError("Argument length must be 1");
if (!EntityUid.TryParse(args[0], out var uid))
return;
if (!TryComp<AnomalyComponent>(uid, out var anomaly))
return;
DoAnomalyPulse(uid, anomaly);
}
[AdminCommand(AdminFlags.Fun)]
private void SupercriticalAnomalyCommand(IConsoleShell shell, string argstr, string[] args)
{
if (args.Length != 1)
shell.WriteError("Argument length must be 1");
if (!EntityUid.TryParse(args[0], out var uid))
return;
if (!HasComp<AnomalyComponent>(uid))
return;
StartSupercriticalEvent(uid);
}
private CompletionResult GetAnomalyCompletion(IConsoleShell shell, string[] args)
{
return args.Length != 1
? CompletionResult.Empty
: CompletionResult.FromHintOptions(CompletionHelper.Components<AnomalyComponent>(args[0]), "<uid>");
}
}

View File

@@ -1,4 +1,4 @@
using Content.Server.Anomaly.Components; using Content.Server.Anomaly.Components;
using Content.Server.Atmos.EntitySystems; using Content.Server.Atmos.EntitySystems;
using Content.Server.Audio; using Content.Server.Audio;
using Content.Server.Explosion.EntitySystems; using Content.Server.Explosion.EntitySystems;
@@ -44,6 +44,7 @@ public sealed partial class AnomalySystem : SharedAnomalySystem
InitializeGenerator(); InitializeGenerator();
InitializeScanner(); InitializeScanner();
InitializeVessel(); InitializeVessel();
InitializeCommands();
} }
private void OnMapInit(EntityUid uid, AnomalyComponent component, MapInitEvent args) private void OnMapInit(EntityUid uid, AnomalyComponent component, MapInitEvent args)

View File

@@ -37,6 +37,8 @@ anomaly-generator-charges = {$charges ->
} }
anomaly-generator-announcement = An anomaly has been generated! anomaly-generator-announcement = An anomaly has been generated!
anomaly-command-pulse = Pulses a target anomaly
anomaly-command-supercritical = Makes a target anomaly go supercritical
# Flavor text on the footer # Flavor text on the footer
anomaly-generator-flavor-left = Anomaly may spawn inside the operator. anomaly-generator-flavor-left = Anomaly may spawn inside the operator.