diff --git a/Content.Server/Audio/ContentAudioSystem.cs b/Content.Server/Audio/ContentAudioSystem.cs index f36d14cbaf..f9d926150b 100644 --- a/Content.Server/Audio/ContentAudioSystem.cs +++ b/Content.Server/Audio/ContentAudioSystem.cs @@ -14,7 +14,7 @@ namespace Content.Server.Audio; public sealed class ContentAudioSystem : SharedContentAudioSystem { [ValidatePrototypeId] - private const string LobbyMusicCollection = "LobbyMusic"; + private const string LobbyMusicCollection = "CPLobbyMusic"; [Dependency] private readonly AudioSystem _serverAudio = default!; [Dependency] private readonly IRobustRandom _robustRandom = default!; diff --git a/Content.Server/GameTicking/GameTicker.Spawning.cs b/Content.Server/GameTicking/GameTicker.Spawning.cs index 5f4610744a..2d1453c00d 100644 --- a/Content.Server/GameTicking/GameTicker.Spawning.cs +++ b/Content.Server/GameTicking/GameTicker.Spawning.cs @@ -217,7 +217,8 @@ namespace Content.Server.GameTicking Loc.GetString( "latejoin-arrival-announcement", ("character", MetaData(mob).EntityName), - ("job", CultureInfo.CurrentCulture.TextInfo.ToTitleCase(jobName)) + ("job", CultureInfo.CurrentCulture.TextInfo.ToTitleCase(jobName)), + ("gender", character.Gender) // CrystallPunk-LastnameGender ), Loc.GetString("latejoin-arrival-sender"), playDefaultSound: false); } diff --git a/Content.Shared/CrystallPunk/DayCycle/DayCycleComponent.cs b/Content.Shared/_CP14/DayCycle/DayCycleComponent.cs similarity index 100% rename from Content.Shared/CrystallPunk/DayCycle/DayCycleComponent.cs rename to Content.Shared/_CP14/DayCycle/DayCycleComponent.cs diff --git a/Content.Shared/CrystallPunk/DayCycle/DayCycleSystem.cs b/Content.Shared/_CP14/DayCycle/DayCycleSystem.cs similarity index 100% rename from Content.Shared/CrystallPunk/DayCycle/DayCycleSystem.cs rename to Content.Shared/_CP14/DayCycle/DayCycleSystem.cs diff --git a/Content.Shared/CrystallPunk/LockKey/CPLockCategoryPrototype.cs b/Content.Shared/_CP14/LockKey/CPLockCategoryPrototype.cs similarity index 100% rename from Content.Shared/CrystallPunk/LockKey/CPLockCategoryPrototype.cs rename to Content.Shared/_CP14/LockKey/CPLockCategoryPrototype.cs diff --git a/Content.Shared/CrystallPunk/LockKey/Components/CPKeyComponent.cs b/Content.Shared/_CP14/LockKey/Components/CPKeyComponent.cs similarity index 100% rename from Content.Shared/CrystallPunk/LockKey/Components/CPKeyComponent.cs rename to Content.Shared/_CP14/LockKey/Components/CPKeyComponent.cs diff --git a/Content.Shared/CrystallPunk/LockKey/Components/CPKeyRingComponent.cs b/Content.Shared/_CP14/LockKey/Components/CPKeyRingComponent.cs similarity index 100% rename from Content.Shared/CrystallPunk/LockKey/Components/CPKeyRingComponent.cs rename to Content.Shared/_CP14/LockKey/Components/CPKeyRingComponent.cs diff --git a/Content.Shared/CrystallPunk/LockKey/Components/CPLockComponent.cs b/Content.Shared/_CP14/LockKey/Components/CPLockComponent.cs similarity index 100% rename from Content.Shared/CrystallPunk/LockKey/Components/CPLockComponent.cs rename to Content.Shared/_CP14/LockKey/Components/CPLockComponent.cs diff --git a/Content.Shared/CrystallPunk/LockKey/Components/CPLockpickComponent.cs b/Content.Shared/_CP14/LockKey/Components/CPLockpickComponent.cs similarity index 100% rename from Content.Shared/CrystallPunk/LockKey/Components/CPLockpickComponent.cs rename to Content.Shared/_CP14/LockKey/Components/CPLockpickComponent.cs diff --git a/Content.Shared/CrystallPunk/LockKey/SharedCPLockKeySystem.cs b/Content.Shared/_CP14/LockKey/SharedCPLockKeySystem.cs similarity index 100% rename from Content.Shared/CrystallPunk/LockKey/SharedCPLockKeySystem.cs rename to Content.Shared/_CP14/LockKey/SharedCPLockKeySystem.cs diff --git a/Resources/Audio/_CP14/Lobby/attributions.yml b/Resources/Audio/_CP14/Lobby/attributions.yml new file mode 100644 index 0000000000..314f78b87e --- /dev/null +++ b/Resources/Audio/_CP14/Lobby/attributions.yml @@ -0,0 +1,4 @@ +- files: ["crystal.ogg"] + license: "CC-BY-NC-SA-3.0" + copyright: "'Crystal' by Mental4815162342 (github). Converted from MP3 to OGG." + source: "https://github.com/crystallpunk-14/crystall-punk-14" \ No newline at end of file diff --git a/Resources/Audio/_CP14/Lobby/crystal.ogg b/Resources/Audio/_CP14/Lobby/crystal.ogg new file mode 100644 index 0000000000..5784d22ac6 Binary files /dev/null and b/Resources/Audio/_CP14/Lobby/crystal.ogg differ diff --git a/Resources/Locale/ru-RU/game-ticking/forcemap-command.ftl b/Resources/Locale/ru-RU/game-ticking/forcemap-command.ftl new file mode 100644 index 0000000000..224d2bf1b7 --- /dev/null +++ b/Resources/Locale/ru-RU/game-ticking/forcemap-command.ftl @@ -0,0 +1,7 @@ +## Forcemap command loc. + +forcemap-command-description = Заставляет игру начать с заданной карты в следующем раунде. +forcemap-command-help = forcemap +forcemap-command-need-one-argument = forcemap принимает один аргумент — путь к файлу карты. +forcemap-command-success = В следующем раунде игра принудительно начнется с карты { $map }. +forcemap-command-arg-map = diff --git a/Resources/Locale/ru-RU/game-ticking/game-presets/preset-deathmatch.ftl b/Resources/Locale/ru-RU/game-ticking/game-presets/preset-deathmatch.ftl new file mode 100644 index 0000000000..ca2f14282c --- /dev/null +++ b/Resources/Locale/ru-RU/game-ticking/game-presets/preset-deathmatch.ftl @@ -0,0 +1,77 @@ +death-match-title = Смертельная битва +death-match-description = Убейте всё, что движется! +death-match-name-player = [bold]{ $name }[/bold] ([italic]{ $username }[/italic]) +death-match-name-npc = [bold]{ $name }[/bold] +death-match-assist = { $primary }, с помощью { $secondary }, +death-match-kill-callout-0 = { CAPITALIZE($killer) } убил { $victim }! +death-match-kill-callout-1 = { CAPITALIZE($killer) } завалил { $victim }! +death-match-kill-callout-2 = { CAPITALIZE($killer) } фрагнул { $victim }! +death-match-kill-callout-3 = { CAPITALIZE($killer) } разнёс { $victim }! +death-match-kill-callout-4 = { CAPITALIZE($killer) } превратил { $victim } в фарш! +death-match-kill-callout-5 = { CAPITALIZE($killer) } вальнул { $victim }! +death-match-kill-callout-6 = { CAPITALIZE($killer) } перевернул и вытряхнул { $victim }! +death-match-kill-callout-7 = { CAPITALIZE($killer) } испоганил { $victim }! +death-match-kill-callout-8 = { CAPITALIZE($killer) } отправил { $victim } в ад! +death-match-kill-callout-9 = { CAPITALIZE($killer) } станцевал на могиле { $victim }! +death-match-kill-callout-10 = { CAPITALIZE($killer) } стёр с лица земли { $victim }! +death-match-kill-callout-11 = { CAPITALIZE($killer) } переробастил { $victim }! +death-match-kill-callout-12 = { CAPITALIZE($killer) } применил тулбокс на { $victim } и получил труп! +death-match-kill-callout-13 = { CAPITALIZE($killer) } заставил { $victim } глотать пыль! +death-match-kill-callout-14 = { CAPITALIZE($killer) } запостил компиляцию кринжа с { $victim }! +death-match-kill-callout-15 = { CAPITALIZE($killer) } увидел, как { $victim } постит в #предложения! +death-match-kill-callout-16 = { CAPITALIZE($killer) } Doom (1993)-нул { $victim }! +death-match-kill-callout-17 = { CAPITALIZE($killer) } унизил { $victim }! +death-match-kill-callout-18 = { CAPITALIZE($killer) } небезопасно извлёк флешку { $victim }! +death-match-kill-callout-19 = { CAPITALIZE($killer) } удалил папку System32 с ПК { $victim }! +death-match-kill-callout-20 = { CAPITALIZE($killer) } бвоинкнул { $victim }! +death-match-kill-callout-21 = { CAPITALIZE($killer) } воткикнул { $victim } с острова! +death-match-kill-callout-22 = { CAPITALIZE($killer) } воткикнул { $victim } потому что sus! +death-match-kill-callout-23 = { CAPITALIZE($killer) } заставил { $victim } кодить для SS14! +death-match-kill-callout-24 = { CAPITALIZE($killer) } заставил { $victim } кодить для OpenDream! +death-match-kill-callout-25 = { CAPITALIZE($killer) } заставил { $victim } кодить для BYOND! +death-match-kill-callout-26 = { CAPITALIZE($killer) } буквально 1984 { $victim }! +death-match-kill-callout-27 = { CAPITALIZE($killer) } устроил экспресс-доставку { $victim } к Богу! +death-match-kill-callout-28 = { CAPITALIZE($killer) } убил { $victim } насмешкой! +death-match-kill-callout-29 = { CAPITALIZE($killer) } похвалил причёску { $victim }! +death-match-kill-callout-30 = { CAPITALIZE($killer) } перевернул { $victim } в гробу! +death-match-kill-callout-31 = { CAPITALIZE($killer) } столкнул { $victim } с лестницы! +death-match-kill-callout-32 = { CAPITALIZE($killer) } устроил для { $victim } Укус '87! +death-match-kill-callout-33 = { CAPITALIZE($killer) } увидел пост { $victim } на реддите! +death-match-kill-callout-34 = { CAPITALIZE($killer) } зарепортил { $victim } админ-составу! +death-match-kill-callout-35 = { CAPITALIZE($killer) } weh'нул { $victim }! +death-match-kill-callout-36 = { CAPITALIZE($killer) } превратил { $victim } в ремейк SS13! +death-match-kill-callout-37 = { CAPITALIZE($killer) } заставил { $victim } играть в Xonotic! +death-match-kill-callout-38 = { CAPITALIZE($killer) } отправил { $victim } в Бразилию! +death-match-kill-callout-39 = { CAPITALIZE($killer) } эпично хакнул { $victim }! +death-match-kill-callout-40 = { CAPITALIZE($killer) } закрыл PR { $victim }! +death-match-kill-callout-41 = { CAPITALIZE($killer) } увидел, как { $victim } мержит кринж в master! +death-match-kill-callout-42 = { CAPITALIZE($killer) } наблюдал, как { $victim } постит сергалов на главной! +death-match-kill-callout-43 = { CAPITALIZE($killer) } не обошёлся нежно с { $victim }! +death-match-kill-callout-44 = { CAPITALIZE($killer) } шлёпнул { $victim }! +death-match-kill-callout-45 = { CAPITALIZE($killer) } кокнул { $victim }! +death-match-kill-callout-46 = { CAPITALIZE($killer) } встряхнул { $victim } перед тем, как пить! +death-match-kill-callout-47 = { CAPITALIZE($killer) } водил пьяным и сбил { $victim }! +death-match-kill-callout-48 = { CAPITALIZE($killer) } превратил { $victim } в продаваемую фигурку! +death-match-kill-callout-49 = { CAPITALIZE($killer) } напомнил { $victim }, что он смертен! +death-match-kill-callout-50 = { CAPITALIZE($killer) } ratio'd-нул { $victim }! +death-match-kill-callout-51 = { CAPITALIZE($killer) } ctrl-alt-delete-нул { $victim }! +death-match-kill-callout-52 = { CAPITALIZE($killer) } бонкнул { $victim }! +death-match-kill-callout-53 = { CAPITALIZE($killer) } зароллил крит по { $victim }! +death-match-kill-callout-54 = { CAPITALIZE($killer) } преподал { $victim } ценный урок! +death-match-kill-callout-55 = { CAPITALIZE($killer) } совершил хоум-ран по { $victim }! +death-match-kill-callout-56 = { CAPITALIZE($killer) } данк-нул { $victim }! +death-match-kill-callout-57 = { CAPITALIZE($killer) } уничтожил { $victim } на стиле! +death-match-kill-callout-58 = { CAPITALIZE($killer) } нагрубил { $victim }! +death-match-kill-callout-59 = { CAPITALIZE($killer) } послал голосовое сообщение { $victim }! +death-match-kill-callout-60 = { CAPITALIZE($killer) } столкнул { $victim } со ступенек! +death-match-kill-callout-env-0 = { CAPITALIZE($victim) } потерял суть! +death-match-kill-callout-env-1 = { CAPITALIZE($victim) } был унижен! +death-match-kill-callout-env-2 = { CAPITALIZE($victim) } просто выглядел как идиот! +death-match-kill-callout-env-3 = { CAPITALIZE($victim) } испытал skill issue! +death-match-kill-callout-env-4 = { CAPITALIZE($victim) } выглядел очень глупо! +death-match-kill-callout-env-5 = { CAPITALIZE($victim) } избавил себя от страданий! +death-match-kill-callout-env-6 = { CAPITALIZE($victim) } устал от жизни! +death-match-kill-callout-env-7 = { CAPITALIZE($victim) } недотрайхардил! +death-match-kill-callout-env-8 = { CAPITALIZE($victim) } вынес себя с мусором! +death-match-kill-callout-env-9 = { CAPITALIZE($victim) } накринжил! +death-match-kill-callout-env-10 = { CAPITALIZE($victim) } довыпендривался! diff --git a/Resources/Locale/ru-RU/game-ticking/game-presets/preset-extended.ftl b/Resources/Locale/ru-RU/game-ticking/game-presets/preset-extended.ftl new file mode 100644 index 0000000000..50527f2dc1 --- /dev/null +++ b/Resources/Locale/ru-RU/game-ticking/game-presets/preset-extended.ftl @@ -0,0 +1,2 @@ +extended-title = Расширенный +extended-description = Спокойный игровой опыт. Потребуется вмешательство администраторов. diff --git a/Resources/Locale/ru-RU/game-ticking/game-presets/preset-greenshift.ftl b/Resources/Locale/ru-RU/game-ticking/game-presets/preset-greenshift.ftl new file mode 100644 index 0000000000..0b92824e07 --- /dev/null +++ b/Resources/Locale/ru-RU/game-ticking/game-presets/preset-greenshift.ftl @@ -0,0 +1,2 @@ +greenshift-title = Гриншифт +greenshift-description = Пресет без событий, чтобы мероприятия админов проходили без помех. diff --git a/Resources/Locale/ru-RU/game-ticking/game-presets/preset-sandbox.ftl b/Resources/Locale/ru-RU/game-ticking/game-presets/preset-sandbox.ftl new file mode 100644 index 0000000000..e2d94f84e2 --- /dev/null +++ b/Resources/Locale/ru-RU/game-ticking/game-presets/preset-sandbox.ftl @@ -0,0 +1,2 @@ +sandbox-title = Песочница +sandbox-description = Никакого стресса, только ваш креатив! diff --git a/Resources/Locale/ru-RU/game-ticking/game-presets/preset-secret.ftl b/Resources/Locale/ru-RU/game-ticking/game-presets/preset-secret.ftl new file mode 100644 index 0000000000..ad11ccd875 --- /dev/null +++ b/Resources/Locale/ru-RU/game-ticking/game-presets/preset-secret.ftl @@ -0,0 +1,2 @@ +secret-title = Секрет +secret-description = Это секрет для всех. Угрозы, с которыми вы сталкиваетесь, рандомизированы. diff --git a/Resources/Locale/ru-RU/game-ticking/game-presets/preset-survival.ftl b/Resources/Locale/ru-RU/game-ticking/game-presets/preset-survival.ftl new file mode 100644 index 0000000000..d49ec32453 --- /dev/null +++ b/Resources/Locale/ru-RU/game-ticking/game-presets/preset-survival.ftl @@ -0,0 +1,2 @@ +survival-title = Выживание +survival-description = Внутренние угрозы отсутствуют, но как долго экспедиция сможет продержаться в обстановке все более разрушительных и частых событий? diff --git a/Resources/Locale/ru-RU/game-ticking/game-rules/rule-death-match.ftl b/Resources/Locale/ru-RU/game-ticking/game-rules/rule-death-match.ftl new file mode 100644 index 0000000000..3b0df62a38 --- /dev/null +++ b/Resources/Locale/ru-RU/game-ticking/game-rules/rule-death-match.ftl @@ -0,0 +1,3 @@ +rule-death-match-added-announcement = Теперь игра превратилась в бой насмерть. Убейте всех остальных, чтобы победить! +rule-death-match-check-winner-stalemate = Все мертвы, это патовая ситуация! +rule-death-match-check-winner = { $winner } побеждает в смертельном матче! diff --git a/Resources/Locale/ru-RU/game-ticking/game-rules/rule-secret.ftl b/Resources/Locale/ru-RU/game-ticking/game-rules/rule-secret.ftl new file mode 100644 index 0000000000..06aec0620b --- /dev/null +++ b/Resources/Locale/ru-RU/game-ticking/game-rules/rule-secret.ftl @@ -0,0 +1,2 @@ +# Sent to admin chat +rule-secret-selected-preset = Selected { $preset } for secret. diff --git a/Resources/Locale/ru-RU/game-ticking/game-rules/rules.ftl b/Resources/Locale/ru-RU/game-ticking/game-rules/rules.ftl new file mode 100644 index 0000000000..d6a137af30 --- /dev/null +++ b/Resources/Locale/ru-RU/game-ticking/game-rules/rules.ftl @@ -0,0 +1,15 @@ +# General +rule-restarting-in-seconds = + Перезапуск через { $seconds } { $seconds -> + [one] секунду + [few] секунды + *[other] секунд + }. +rule-time-has-run-out = Время вышло! +# Respawning +rule-respawn-in-seconds = + Возрождение через { $second } { $second -> + [one] секунду + [few] секунды + *[other] секунд + }... diff --git a/Resources/Locale/ru-RU/game-ticking/game-ticker.ftl b/Resources/Locale/ru-RU/game-ticking/game-ticker.ftl new file mode 100644 index 0000000000..8a61d049e7 --- /dev/null +++ b/Resources/Locale/ru-RU/game-ticking/game-ticker.ftl @@ -0,0 +1,46 @@ +game-ticker-restart-round = Перезапуск раунда... +game-ticker-start-round = Раунд начинается... +game-ticker-start-round-cannot-start-game-mode-fallback = Не удалось запустить режим { $failedGameMode }! Запускаем { $fallbackMode }... +game-ticker-start-round-cannot-start-game-mode-restart = Не удалось запустить режим { $failedGameMode }! Перезапуск раунда... +game-ticker-start-round-invalid-map = Выбранная карта { $map } не подходит для игрового режима { $mode }. Игровой режим может не функционировать как задумано... +game-ticker-unknown-role = Неизвестный +game-ticker-delay-start = Начало раунда было отложено на { $seconds } секунд. +game-ticker-pause-start = Начало раунда было приостановлено. +game-ticker-pause-start-resumed = Отсчет начала раунда возобновлен. +game-ticker-player-join-game-message = Добро пожаловать на ЭД ПРИДУМАЙ НАЗВАНИЕ! Если вы играете впервые, обязательно нажмите ESC на клавиатуре и прочитайте правила игры, а также не бойтесь просить помощи в "Админ помощь". +game-ticker-get-info-text = + Привет и добро пожаловать в [color=white]Space Station 14![/color] + Текущий раунд: [color=white]#{ $roundId }[/color] + Текущее количество игроков: [color=white]{ $playerCount }[/color] + Текущая карта: [color=white]{ $mapName }[/color] + Текущий режим игры: [color=white]{ $gmTitle }[/color] + >[color=yellow]{ $desc }[/color] +game-ticker-get-info-preround-text = + Привет и добро пожаловать в [color=white]Space Station 14![/color] + Текущий раунд: [color=white]#{ $roundId }[/color] + Текущее количество игроков: [color=white]{ $playerCount }[/color] ([color=white]{ $readyCount }[/color] { $readyCount -> + [one] готов + *[other] готовы + }) + Текущая карта: [color=white]{ $mapName }[/color] + Текущий режим игры: [color=white]{ $gmTitle }[/color] + >[color=yellow]{ $desc }[/color] +game-ticker-no-map-selected = [color=red]Карта ещё не выбрана![/color] +game-ticker-player-no-jobs-available-when-joining = При попытке присоединиться к игре ни одной роли не было доступно. +# Displayed in chat to admins when a player joins +player-join-message = Игрок { $name } зашёл! +player-first-join-message = Игрок { $name } зашёл на сервер впервые. +# Displayed in chat to admins when a player leaves +player-leave-message = Игрок { $name } вышел! +latejoin-arrival-announcement = + { $character } ({ $job }) { $gender -> + [male] прибыл + [female] прибыла + [epicene] прибыли + *[neuter] прибыл + } на станцию! +latejoin-arrival-sender = Станции +latejoin-arrivals-direction = Вскоре прибудет шаттл, который доставит вас на станцию. +latejoin-arrivals-direction-time = Шаттл, который доставит вас на станцию, прибудет через { $time }. +preset-not-enough-ready-players = Не удалось запустить пресет { $presetName }. Требуется { $minimumPlayers } игроков, но готовы только { $readyPlayersCount }. +preset-no-one-ready = Не удалось запустить режим { $presetName }. Нет готовых игроков. diff --git a/Resources/Locale/ru-RU/game-ticking/set-game-preset-command.ftl b/Resources/Locale/ru-RU/game-ticking/set-game-preset-command.ftl new file mode 100644 index 0000000000..079f4f93df --- /dev/null +++ b/Resources/Locale/ru-RU/game-ticking/set-game-preset-command.ftl @@ -0,0 +1,4 @@ +set-game-preset-command-description = Установить игровой пресет для текущего раунда. +set-game-preset-command-help-text = setgamepreset +set-game-preset-preset-error = Не удается найти игровой пресет "{ $preset }" +set-game-preset-preset-set = Установить игровой пресет на "{ $preset }" diff --git a/Resources/Prototypes/_CP14/SoundCollections/lobby.yml b/Resources/Prototypes/_CP14/SoundCollections/lobby.yml new file mode 100644 index 0000000000..aa8a7da7e8 --- /dev/null +++ b/Resources/Prototypes/_CP14/SoundCollections/lobby.yml @@ -0,0 +1,4 @@ +- type: soundCollection + id: CPLobbyMusic + files: + - /Audio/_CP14/Lobby/crystal.ogg \ No newline at end of file