Skip to content

Commit

Permalink
правки
Browse files Browse the repository at this point in the history
  • Loading branch information
Schrodinger71 committed Oct 29, 2024
1 parent dcf3620 commit 199c22e
Show file tree
Hide file tree
Showing 14 changed files with 68,302 additions and 22 deletions.
54 changes: 35 additions & 19 deletions Content.Server/ADT/Administration/Commands/SendERTCommand.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
using Robust.Shared.Player;
using System.Numerics;
using Content.Server.Chat.Managers;
using Robust.Shared.ContentPack;

namespace Content.Server.ADT.Administration.Commands;

Expand All @@ -27,6 +28,7 @@ public sealed class SendERTCommand : IConsoleCommand
[Dependency] private readonly IEntityManager _entManager = default!;
[Dependency] private readonly IPlayerManager _playerManager = default!;
[Dependency] private readonly IChatManager _chat = default!;
[Dependency] private readonly IResourceManager _resourceManager = default!;

public string Command => "sendert";
public string Description => Loc.GetString("send-ert-description");
Expand All @@ -35,17 +37,24 @@ public void Execute(IConsoleShell shell, string argStr, string[] args)
{
#region Setup vars
string audioPath = "";
string defaultGridPath = "/Maps/ADTMaps/Shuttles", defaultAudioPath = "/Audio/Corvax/Adminbuse";
string defaultGridPath = "/Maps/ADTMaps/Shuttles/ERT", defaultAudioPath = "/Audio/Corvax/Adminbuse";
string alertLevelCode = "gamma";
int volume = 0;
bool isLoadGrid = false, isAnnounce = true, isPlayAudio = true, isSetAlertLevel = false, playAuidoFromAnnouncement = false;
Color announceColor = Color.DarkOrange;
bool isLoadGrid = false, isAnnounce = true, isPlayAudio = true, isSetAlertLevel = true, playAuidoFromAnnouncement = false;
Color announceColor = Color.SeaBlue;
#endregion

var player = shell.Player;
if (player?.AttachedEntity == null) // Are we the server's console?
{ shell.WriteLine(Loc.GetString("shell-only-players-can-run-this-command")); return; }

var stationUid = _system.GetEntitySystem<StationSystem>().GetOwningStation(player.AttachedEntity.Value);
if (stationUid == null)
{
shell.WriteLine(Loc.GetString("cmd-setalertlevel-invalid-grid"));
return;
}

#region Set isAnnounce
switch (args.Length)
{
Expand All @@ -70,6 +79,11 @@ public void Execute(IConsoleShell shell, string argStr, string[] args)
isLoadGrid = true;
break;

case "default-rev":
audioPath = $"{defaultAudioPath}/yesert.ogg";
isLoadGrid = true;
break;

case "security":
audioPath = $"{defaultAudioPath}/yesert.ogg";
isLoadGrid = true;
Expand All @@ -90,15 +104,18 @@ public void Execute(IConsoleShell shell, string argStr, string[] args)
isLoadGrid = true;
break;

case "chaplain":
audioPath = $"{defaultAudioPath}/yesert.ogg";
isLoadGrid = true;
break;

case "cbun":
audioPath = $"{defaultAudioPath}/yesert.ogg";
isLoadGrid = true;
break;

case "deathsquad":
isSetAlertLevel = true;
isPlayAudio = false;
alertLevelCode = "epsilon";
//alertLevelCode = "epsilon";
announceColor = Color.White;
isLoadGrid = true;
break;
Expand All @@ -107,6 +124,7 @@ public void Execute(IConsoleShell shell, string argStr, string[] args)
audioPath = $"{defaultAudioPath}/noert.ogg";
isAnnounce = true;
isLoadGrid = false;
isSetAlertLevel = false;
break;

default:
Expand All @@ -120,32 +138,28 @@ public void Execute(IConsoleShell shell, string argStr, string[] args)
#region Command's body
if (isLoadGrid) // Create grid & map
{
var mapId = _mapManager.CreateMap();
var gridPath = $"{defaultGridPath}/{args[0].ToLower()}.yml";
if (!_resourceManager.TryContentFileRead(gridPath, out var _))
{
shell.WriteError(Loc.GetString("send-ert-erttype-error-path"));
shell.WriteError($"No map found: {gridPath}");
return;
}

var mapId = _mapManager.CreateMap();
_system.GetEntitySystem<MetaDataSystem>().SetEntityName(_mapManager.GetMapEntityId(mapId), Loc.GetString("sent-ert-map-name"));
var gridPath = $"{defaultGridPath}/{args[0].ToLower()}.yml";
var girdOptions = new MapLoadOptions();
girdOptions.Offset = new Vector2(0, 0);
girdOptions.Rotation = Angle.FromDegrees(0);
_system.GetEntitySystem<MapLoaderSystem>().Load(mapId, gridPath, girdOptions);

//var options = new MapLoadOptions { LoadMap = true };

//_mapSystem.SetPaused(mapId, false);

shell.WriteLine($"Карта {gridPath} успешно загружена! :з");
_chat.SendAdminAlert($"Админ {player.Name} вызвал {args[0].ToLower()}. ID новой карты {mapId}."); //{_entMan.ToPrettyString(_masterController.Value)}");

//var mapUid = _mapSystem.GetMap(mapId);
//var entPlayer = _entManager.(shell.Player);
//_xformSystem.SetCoordinates(entPlayer, new EntityCoordinates(mapUid, Vector2.One));
_chat.SendAdminAlert($"Админ {player.Name} вызвал {args[0].ToLower()}. Карте 'Сектор патрулирования' было присовино ID: {mapId}. Точка телепортации для призраков появилась на шаттле.");
}

if (isAnnounce) // Write announce & play audio
{
if (isSetAlertLevel)
{
var stationUid = _system.GetEntitySystem<StationSystem>().GetOwningStation(player.AttachedEntity.Value);
if (stationUid == null) { shell.WriteLine(Loc.GetString("sent-ert-invalid-grid")); return; } //We are on station?
_system.GetEntitySystem<AlertLevelSystem>().SetLevel(stationUid.Value, alertLevelCode, false, true, true, true);
}
Expand Down Expand Up @@ -174,10 +188,12 @@ public CompletionResult GetCompletion(IConsoleShell shell, string[] args)
var type = new CompletionOption[]
{
new("Default", Loc.GetString("send-ert-hint-type-default")),
new("Default-rev", Loc.GetString("send-ert-hint-type-default-rev")),
new("Security", Loc.GetString("send-ert-hint-type-security")),
new("Engineer", Loc.GetString("send-ert-hint-type-engineer")),
new("Medical", Loc.GetString("send-ert-hint-type-medical")),
new("Janitor", Loc.GetString("send-ert-hint-type-janitor")),
new("Chaplain", Loc.GetString("send-ert-hint-type-chaplain")),
new("CBUN", Loc.GetString("send-ert-hint-type-cbrn")),
new("DeathSquad", Loc.GetString("send-ert-hint-type-deathsquad")),
new("Denial", Loc.GetString("send-ert-hint-type-denial")),
Expand Down
12 changes: 9 additions & 3 deletions Resources/Locale/ru-RU/ADT/command/sendert.ftl
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
# Command
send-ert-description = Вызывает ОБР заданного типа
send-ert-description = Вызывает ОБР заданного типа. Вы должны находиться на станции.
send-ert-help = sendert <тип ОБР> (объявляют себя? По умолчанию true)
# Errors
send-ert-truefalse-error = Вторая переменная не соответствует ни true, ни false
send-ert-erttype-error = Обнаружен неизвестный отряд ОБР
sent-ert-invalid-grid = Вы находитесь не на станции. Для запуска команды ваш персонаж должен находится на гриде станции
send-ert-erttype-error-path = Неизвестный путь к шаттлу или он отстуствует
# Map name
sent-ert-map-name = Сектор патруля
Expand All @@ -14,6 +15,10 @@ sent-ert-map-name = Сектор патруля
ert-send-default-announcement = Внимание! Мы получили запрос на отряд быстрого реагирования. Запрос одобрен. Отряд будет подготовлен и отправлен в кротчайшие сроки.
ert-send-default-announcer = Центральное командование
# ERT type: default-rev
ert-send-default-rev-announcement = Внимание! Мы получили запрос на отряд быстрого реагирования. Запрос одобрен. Отряд будет подготовлен и отправлен в кротчайшие сроки.
ert-send-default-announcer = Центральное командование
# ERT type: security
ert-send-security-announcement = Внимание! Мы получили запрос на отряд быстрого реагирования. Запрос одобрен. Отряд будет подготовлен и отправлен в кротчайшие сроки.
ert-send-security-announcer = Центральное командование
Expand All @@ -39,7 +44,7 @@ ert-send-cbun-announcement = Внимание! Мы получили запро
ert-send-cbun-announcer = Центральное командование
# ERT type: deathsquad
ert-send-deathsquad-announcement = Последняя команда Центральное командование. Просьба экипаж станции оставаться на своих местах. Ожидайте шаттл эвакуации.
ert-send-deathsquad-announcement = Приказ Центрального командования. Экипаж станции должен оставаться на своих местах. Ожидайте шаттл эвакуации.
ert-send-deathsquad-announcer = Центральное командование
# ERT type: denial
Expand All @@ -49,7 +54,8 @@ ert-send-denial-announcer = Центральное командование
# Hints
send-ert-hint-type = Тип ОБР
send-ert-hint-type-default = Стандартный отряд
send-ert-hint-type-default = Стандартный отряд(Против ЯО)
send-ert-hint-type-default-rev = Стандартный отряд(Против бунтов)
send-ert-hint-type-security = Отряд СБ ОБР
send-ert-hint-type-engineer = Отряд инженеров ОБР
send-ert-hint-type-medical = Отряд медиков ОБР
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -818,6 +818,13 @@ entities:
- type: Transform
pos: 2.110353,1.7365365
parent: 2
- proto: ADTWarpPointBeaconERTShuttle
entities:
- uid: 1085
components:
- type: Transform
pos: 1.5,-4.5
parent: 2
- proto: AirAlarm
entities:
- uid: 267
Expand Down
Loading

0 comments on commit 199c22e

Please sign in to comment.