* stable * sprite * yes! * LOCATOR TRANSLATION MISSING * finally * stable2 * stable * stable? * FIS * Nerfs * works * Трек болгарыча и время призыва теперь 3 минуты * f * Update modifier_sets.yml * Барьер больше не даёт 5 рун металла, ибо почему он должен?
42 lines
1.8 KiB
C#
42 lines
1.8 KiB
C#
using Content.Server._Sunrise.BloodCult.GameRule;
|
|
using Content.Server.Administration;
|
|
using Content.Shared.Administration;
|
|
using Robust.Shared.Console;
|
|
|
|
namespace Content.Server._Sunrise.BloodCult.Commands;
|
|
|
|
[AdminCommand(AdminFlags.Admin)]
|
|
public sealed class ListCultTargetsCommand : IConsoleCommand
|
|
{
|
|
[Dependency] private readonly IEntityManager _entManager = default!;
|
|
|
|
public string Command => "bloodcult_listtargets";
|
|
public string Description => Loc.GetString("bloodcult-listtargets-description");
|
|
public string Help => Loc.GetString("bloodcult-listtargets-help");
|
|
|
|
public void Execute(IConsoleShell shell, string argStr, string[] args)
|
|
{
|
|
if (!_entManager.EntitySysManager.TryGetEntitySystem<BloodCultRuleSystem>(out var cultRuleSystem))
|
|
{
|
|
shell.WriteError(Loc.GetString("bloodcult-listtargets-system-not-found"));
|
|
return;
|
|
}
|
|
|
|
var rule = cultRuleSystem.GetRule();
|
|
if (rule?.CultTargets == null || rule.CultTargets.Count == 0)
|
|
{
|
|
shell.WriteLine(Loc.GetString("bloodcult-listtargets-no-targets"));
|
|
return;
|
|
}
|
|
|
|
shell.WriteLine(Loc.GetString("bloodcult-listtargets-header", ("count", rule.CultTargets.Count)));
|
|
foreach (var (target, isSacrificed) in rule.CultTargets)
|
|
{
|
|
var targetName = _entManager.TryGetComponent<MetaDataComponent>(target, out var meta)
|
|
? meta.EntityName
|
|
: Loc.GetString("bloodcult-unknown-entity");
|
|
var status = isSacrificed ? Loc.GetString("bloodcult-listtargets-sacrificed") : Loc.GetString("bloodcult-listtargets-alive");
|
|
shell.WriteLine(Loc.GetString("bloodcult-listtargets-target", ("name", targetName), ("uid", target), ("status", status)));
|
|
}
|
|
}
|
|
}
|