diff --git a/Content.IntegrationTests/Tests/Commands/PardonCommand.cs b/Content.IntegrationTests/Tests/Commands/PardonCommand.cs index ba4da2eeb5..2c8e571140 100644 --- a/Content.IntegrationTests/Tests/Commands/PardonCommand.cs +++ b/Content.IntegrationTests/Tests/Commands/PardonCommand.cs @@ -133,7 +133,7 @@ namespace Content.IntegrationTests.Tests.Commands Assert.Multiple(async () => { // No bans should be returned - Assert.That(await sDatabase.GetServerBanAsync(null, clientId, null, false), Is.Null); + Assert.That(await sDatabase.GetServerBanAsync(null, clientId, null), Is.Null); // Direct id lookup returns a pardoned ban Assert.That(await sDatabase.GetServerBanAsync(1), Is.Not.Null); @@ -143,11 +143,11 @@ namespace Content.IntegrationTests.Tests.Commands }); // Reconnect client. Slightly faster than dirtying the pair. - Assert.That(sPlayerManager.Sessions.Count(), Is.EqualTo(0)); + Assert.That(sPlayerManager.Sessions, Is.Empty); client.SetConnectTarget(server); await client.WaitPost(() => netMan.ClientConnect(null!, 0, null!)); await pair.RunTicksSync(5); - Assert.That(sPlayerManager.Sessions.Count(), Is.EqualTo(1)); + Assert.That(sPlayerManager.Sessions, Has.Length.EqualTo(1)); await pair.CleanReturnAsync(); } diff --git a/Content.Server/Chat/Systems/ChatSystem.cs b/Content.Server/Chat/Systems/ChatSystem.cs index 6ae597d48d..accba1a5c4 100644 --- a/Content.Server/Chat/Systems/ChatSystem.cs +++ b/Content.Server/Chat/Systems/ChatSystem.cs @@ -429,8 +429,13 @@ public sealed partial class ChatSystem : SharedChatSystem name = colorEv.Name; //WD-EDIT - var wrappedMessage = Loc.GetString("chat-manager-entity-say-wrap-message", - ("entityName", name), ("message", message)); + var speech = GetSpeechVerb(source, message); + var wrappedMessage = Loc.GetString(speech.Bold ? "chat-manager-entity-say-bold-wrap-message" : "chat-manager-entity-say-wrap-message", + ("entityName", name), + ("verb", Loc.GetString(_random.Pick(speech.SpeechVerbStrings))), + ("fontType", speech.FontId), + ("fontSize", speech.FontSize), + ("message", FormattedMessage.EscapeText(message))); //WD-EDIT if (TryComp(source, out var comp)) diff --git a/Resources/Locale/ru-RU/chat/managers/chat-manager.ftl b/Resources/Locale/ru-RU/chat/managers/chat-manager.ftl index d6e5be0a12..57ba6c9a1c 100644 --- a/Resources/Locale/ru-RU/chat/managers/chat-manager.ftl +++ b/Resources/Locale/ru-RU/chat/managers/chat-manager.ftl @@ -7,30 +7,101 @@ chat-manager-looc-chat-enabled-message = LOOC чат был включен. chat-manager-looc-chat-disabled-message = LOOC чат был отключен. chat-manager-dead-looc-chat-enabled-message = Мёртвые игроки теперь могут говорить в LOOC. chat-manager-dead-looc-chat-disabled-message = Мёртвые игроки больше не могут говорить в LOOC. +chat-manager-crit-looc-chat-enabled-message = Игроки в критическом состоянии теперь могут использовать LOOC. +chat-manager-crit-looc-chat-disabled-message = Игроки в критическом состоянии теперь не могут использовать LOOC. chat-manager-admin-ooc-chat-enabled-message = Админ OOC чат был включен. chat-manager-admin-ooc-chat-disabled-message = Админ OOC чат был выключен. + chat-manager-max-message-length-exceeded-message = Ваше сообщение превышает лимит в { $limit } символов chat-manager-no-headset-on-message = У вас нет гарнитуры! chat-manager-no-radio-key = Не указан ключ канала! -chat-manager-no-such-channel = Нет такого канала! +chat-manager-no-such-channel = Нет канала с ключем '{$key}'! chat-manager-whisper-headset-on-message = Вы не можете шептать в радио! + chat-manager-server-wrap-message = СЕРВЕР: { $message } -chat-manager-sender-announcement-wrap-message = - Объявление { $sender }: - { $message } -chat-manager-entity-say-wrap-message = { $entityName } говорит: "{ $message }" -chat-manager-entity-whisper-wrap-message = { $entityName } шепчет: "{ $message }" +chat-manager-sender-announcement-wrap-message = [font size=14][bold]Объявление {$sender}:[/font][font size=12] + {$message}[/bold][/font] + +chat-manager-entity-say-wrap-message = [BubbleHeader][bold]{$entityName}[/bold][/BubbleHeader] {$verb}, [font={$fontType} size={$fontSize}]"[BubbleContent]{$message}[/BubbleContent]"[/font] +chat-manager-entity-say-bold-wrap-message = [BubbleHeader][bold]{$entityName}[/bold][/BubbleHeader] {$verb}, [font={$fontType} size={$fontSize}]"[BubbleContent][bold]{$message}[/bold][/BubbleContent]"[/font] + +chat-manager-entity-whisper-wrap-message = [font size=11][italic][BubbleHeader]{$entityName}[/BubbleHeader] шепчет,"[BubbleContent]{$message}[/BubbleContent]"[/italic][/font] +chat-manager-entity-whisper-unknown-wrap-message = [font size=11][italic][BubbleHeader]Someone[/BubbleHeader] шепчет, "[BubbleContent]{$message}[/BubbleContent]"[/italic][/font] + chat-manager-entity-me-wrap-message = { $entityName } { $message } -chat-manager-entity-looc-wrap-message = LOOC: { $entityName }: { $message } -chat-manager-send-ooc-wrap-message = OOC: { $playerName }: { $message } -chat-manager-send-ooc-patron-wrap-message = OOC: [color={ $patronColor }]{ $playerName }[/color]: { $message } -chat-manager-send-dead-chat-wrap-message = { $deadChannelName }: { $playerName }: { $message } -chat-manager-send-admin-dead-chat-wrap-message = { $adminChannelName }:({ $userName }): { $message } -chat-manager-send-admin-chat-wrap-message = { $adminChannelName }: { $playerName }: { $message } -chat-manager-send-admin-announcement-wrap-message = { $adminChannelName }: { $message } -chat-manager-send-hook-ooc-wrap-message = OOC: (D){ $senderName }: { $message } + +chat-manager-entity-looc-wrap-message = LOOC: [bold]{$entityName}:[/bold] {$message} +chat-manager-send-ooc-wrap-message = OOC: [bold]{$playerName}:[/bold] {$message} +chat-manager-send-ooc-patron-wrap-message = OOC: [bold][color={$patronColor}]{$playerName}[/color]:[/bold] {$message} + +chat-manager-send-dead-chat-wrap-message = {$deadChannelName}: [bold][BubbleHeader]{$playerName}[/BubbleHeader]:[/bold] [BubbleContent]{$message}[/BubbleContent] +chat-manager-send-admin-dead-chat-wrap-message = {$adminChannelName}: [bold]([BubbleHeader]{$userName}[/BubbleHeader]):[/bold] [BubbleContent]{$message}[/BubbleContent] +chat-manager-send-admin-chat-wrap-message = {$adminChannelName}: [bold]{$playerName}:[/bold] {$message} +chat-manager-send-admin-announcement-wrap-message = [bold]{$adminChannelName}: {$message}[/bold] + +chat-manager-send-hook-ooc-wrap-message = OOC: [bold](D){$senderName}:[/bold] {$message} + chat-manager-dead-channel-name = МЁРТВЫЕ chat-manager-admin-channel-name = АДМИН chat-manager-admin-discord-channel-name = Д-АДМИН -chat-manager-cooldown-warn-message_channel = Вы сможете писать { $inChat } через: { $remainingTime } сек. -chat-manager-cooldown-warn-message = Вы сможете писать через { $remainingTime } сек. + +chat-manager-rate-limited = Вы отправляете сообщения слишком часто! +chat-manager-rate-limit-admin-announcement = Игрок { $player } превысил рейт-лимит чата. + +## Speech verbs for chat + +chat-speech-verb-suffix-exclamation = ! +chat-speech-verb-suffix-exclamation-strong = !! +chat-speech-verb-suffix-question = ? +chat-speech-verb-suffix-stutter = - +chat-speech-verb-suffix-mumble = .. + +chat-speech-verb-default = говорит +chat-speech-verb-exclamation = восклицает +chat-speech-verb-exclamation-strong = кричит +chat-speech-verb-question = спрашивает +chat-speech-verb-stutter = заикается +chat-speech-verb-mumble = бормочет + +chat-speech-verb-insect-1 = стрекочет +chat-speech-verb-insect-2 = чирикает +chat-speech-verb-insect-3 = щелкает + +chat-speech-verb-winged-1 = трепещет +chat-speech-verb-winged-2 = жужжит + +chat-speech-verb-slime-1 = бормочет + +chat-speech-verb-plant-1 = шуршит +chat-speech-verb-plant-2 = скрипит + +chat-speech-verb-robotic-1 = утверждает +chat-speech-verb-robotic-2 = бипает + +chat-speech-verb-reptilian-1 = шипит +chat-speech-verb-reptilian-2 = фыркает + +chat-speech-verb-skeleton-1 = гремит +chat-speech-verb-skeleton-2 = щелкает +chat-speech-verb-skeleton-3 = скрежет + +chat-speech-verb-canine-1 = гафкает +chat-speech-verb-canine-2 = лает +chat-speech-verb-canine-3 = воет + +chat-speech-verb-small-mob-1 = пищит + +chat-speech-verb-large-mob-1 = рычит +chat-speech-verb-large-mob-2 = урчит + +chat-speech-verb-monkey-1 = кричит +chat-speech-verb-monkey-2 = визжит + +chat-speech-verb-cluwne-1 = хихикает +chat-speech-verb-cluwne-2 = гогочет +chat-speech-verb-cluwne-3 = смеется + +chat-speech-verb-ghost-1 = жалуется +chat-speech-verb-ghost-2 = дышит +chat-speech-verb-ghost-3 = мычит +chat-speech-verb-ghost-4 = бормочет diff --git a/Resources/Prototypes/InventoryTemplates/human_inventory_template.yml b/Resources/Prototypes/InventoryTemplates/human_inventory_template.yml index 904d7a429d..2246b29433 100644 --- a/Resources/Prototypes/InventoryTemplates/human_inventory_template.yml +++ b/Resources/Prototypes/InventoryTemplates/human_inventory_template.yml @@ -12,7 +12,7 @@ slotTexture: socks slotFlags: SOCKS stripTime: 6 - uiWindowPos: 4,1 + uiWindowPos: 2,0 strippingWindowPos: 3,3 displayName: Socks whitelist: @@ -22,7 +22,7 @@ slotTexture: underwearb slotFlags: UNDERWEARB stripTime: 6 - uiWindowPos: 4,2 + uiWindowPos: 3,0 strippingWindowPos: 3,2 displayName: Panties whitelist: @@ -32,7 +32,7 @@ slotTexture: underweart slotFlags: UNDERWEART stripTime: 6 - uiWindowPos: 4,3 + uiWindowPos: 3,1 strippingWindowPos: 3,1 displayName: Bra whitelist: