Skip to content

Добавление базовой версии SCP-3288 "Аристократы"#1053

Open
666XxttimurkaxX666 wants to merge 6 commits into
space-sunrise:masterfrom
666XxttimurkaxX666:add-scp-3288
Open

Добавление базовой версии SCP-3288 "Аристократы"#1053
666XxttimurkaxX666 wants to merge 6 commits into
space-sunrise:masterfrom
666XxttimurkaxX666:add-scp-3288

Conversation

@666XxttimurkaxX666

@666XxttimurkaxX666 666XxttimurkaxX666 commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

Краткое описание | Short description

ну типо 3288 которого приняли 3 месяца назад в конкурсе

Ссылка на багрепорт/Предложение | Related Issue/Bug Report

Медиа (Видео/Скриншоты) | Media (Video/Screenshots)

Скриншот-20260610-173413

Changelog

🆑 timur

  • add: Добавлена базовая версия SCP-3288

Summary by CodeRabbit

Release Notes

  • New Features
    • Добавлены три новых варианта персонажа SCP-3288 с уникальными характеристиками: Слуга, Рыцарь и Аристократ
    • Добавлено новое оружие ближнего боя — церемониальная сабля с отражающими свойствами
    • Расширена локализация контента на русском и английском языках

@github-actions

github-actions Bot commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

RSI Diff Bot; head commit 45be589 merging into 0ce6a7f
This PR makes changes to 1 or more RSIs. Here is a summary of all changes:

Resources/Textures/_Scp/Mobs/Scp/scp-3288.rsi

State Old New Status
base Added
dead Added
frenzy Added
sleep Added

Resources/Textures/_Scp/Mobs/scp-3288-servant.rsi

State Old New Status
aristocrat Added
knight Added
servant Added

Edit: diff updated after 45be589

@coderabbitai

coderabbitai Bot commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Warning

Review limit reached

@666XxttimurkaxX666, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 21 minutes and 18 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: e84507e3-2621-49dd-af45-4b63001d7a0e

📥 Commits

Reviewing files that changed from the base of the PR and between d600eb3 and 45be589.

📒 Files selected for processing (8)
  • Resources/Locale/en-US/_prototypes/_scp/entities/objects/weapons/melee/sword.ftl
  • Resources/Locale/en-US/_strings/_scp/roles/scp.ftl
  • Resources/Locale/ru-RU/_prototypes/_scp/entities/objects/weapons/melee/sword.ftl
  • Resources/Locale/ru-RU/_strings/_scp/roles/scp.ftl
  • Resources/Prototypes/_Scp/Entities/Mobs/NPCs/Scp/scp3288.yml
  • Resources/Prototypes/_Scp/Entities/Objects/Weapons/Melee/sword.yml
  • Resources/Prototypes/_Scp/Roles/Jobs/SCP/ghostrole.yml
  • Resources/Prototypes/_Scp/Roles/Jobs/SCP/roundstart.yml
📝 Walkthrough

Walkthrough

Добавлена полная реализация SCP-3288: новый NPC моб с тремя игровыми вариантами (Слуга, Аристократ, Рыцарь), игровая сущность с механиками девуратора и тяги, церемониальное оружие, ролевые определения (призрачные роли и раундстартовая должность), инвентарные шаблоны, спрайты и локализация на английском и русском.

Changes

SCP-3288 Feature

Layer / File(s) Summary
Церемониальное оружие и снаряжение
Resources/Locale/en-US/_prototypes/_scp/entities/objects/weapons/melee/sword.ftl, Resources/Locale/ru-RU/_prototypes/_scp/entities/objects/weapons/melee/sword.ftl, Resources/Prototypes/_Scp/Entities/Objects/Weapons/Melee/sword.yml, Resources/Locale/en-US/_prototypes/_scp/catalog/fills/items/belt.ftl, Resources/Locale/ru-RU/_prototypes/_scp/catalog/fills/items/belt.ftl, Resources/Prototypes/_Scp/Catalog/Fills/Items/belt.yml
Сущность CeremonialSabre с ближним боем (attackRate 1.5, Slash 18 урона, отражение 35%), контейнер для хранения и эффектами; ремень ClothingBeltSheathFilledScp3288 автоматически заполняется церемониальным мечом; локализованы имена и описания на обоих языках.
NPC варианты SCP-3288
Resources/Prototypes/_Scp/Entities/Mobs/NPCs/Scp/scp3288.yml, Resources/Locale/en-US/_prototypes/_scp/entities/mobs/npcs/scp3288monster.ftl, Resources/Locale/ru-RU/_prototypes/_scp/entities/mobs/npcs/scp/scp3288monster.ftl, Resources/Prototypes/_Scp/InventoryTemplates/scp3288_servant.yml
Базовый прототип BaseMobScp3288Monster содержит интеракции, поле зрения, HTN боевое поведение, фракции, бутчиннинг, инвентарный шаблон и визуальные параметры; три варианта (Servant/Aristocrat/Knight) наследуют базовый прототип и переопределяют спрайты, GhostRole параметры; Knight получает броню (коэффициенты Blunt/Slash/Piercing), AllowSuitStorage и стартовое снаряжение Scp3288KnightGear; два инвентарных шаблона определяют слоты с текстурами и позициями для каждого варианта.
Игровая сущность и ролевая система
Resources/Prototypes/_Scp/Entities/Mobs/Player/Scp/Main/scp3288.yml, Resources/Prototypes/_Scp/Roles/Jobs/SCP/ghostrole.yml, Resources/Prototypes/_Scp/Roles/Jobs/SCP/roundstart.yml, Resources/Prototypes/_Scp/Roles/play_time_trackers.yml, Resources/Locale/en-US/_strings/_scp/roles/scp.ftl, Resources/Locale/ru-RU/_strings/_scp/roles/scp.ftl, Resources/Locale/en-US/_strings/_scp/scp/scp3288.ftl, Resources/Locale/ru-RU/_strings/_scp/scp/scp3288.ftl, Resources/Locale/en-US/_prototypes/_scp/entities/mobs/player/scp/main/scp3288.ftl, Resources/Locale/ru-RU/_prototypes/_scp/entities/mobs/player/scp/main/scp3288.ftl
Основная сущность Scp3288 наследует BaseScp и BaseMob с компонентами GhostRoleComponent (автоматическое назначение роли), SCP-класс Keter, тип тела Reptilian, механика Puller/Pullable (тяга целей), Devourer (исцеление при поглощении, требует химикалии Omnizine), скрытое ближнее оружие с MeleeThrowOnHit, TTS голос Dota2Pudge, система крови (1500 лимит, автообновление), физический коллайдер AABB; три определения призрачных ролей (Servant/Aristocrat/Knight) с требованием 50 часов игры, вес и таймер; раундстартовая должность Scp3288Alpha с требованием 210 часов; четыре playtime tracker записи для отслеживания времени игры каждой роли; локализационные строки для всех ролей и описаний на английском и русском.
Спрайт-ассеты
Resources/Textures/_Scp/Mobs/Scp/scp-3288.rsi/meta.json, Resources/Textures/_Scp/Mobs/scp-3288-servant.rsi/meta.json
Метаданные RSI для основного спрайта SCP-3288 (размер 120×100, состояния: base, frenzy, dead, sleep); метаданные для спрайта вариантов (размер 32×32, состояния: knight, servant, aristocrat по 4 направления каждое).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Suggested labels

📦 YAML | Прототип 📦, 🧊 Нет C# 🧊, 🖌️ Спрайты 🖌️, 📚 Изменения: Локализация 📚

Suggested reviewers

  • ThereDrD0

Poem

Кролик добавил SCP с размахом,
Три варианта мобов — слуга, рыцарь, граф,
С мечом, с броней и странной речью,
Девураторский аппетит — вот вещь! 🐰⚔️
Локализация на двух языках поёт,
И роли ждут игроков — вперёд!


Important

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

❌ Failed checks (2 errors)

Check name Status Explanation Resolution
Ss14 Yaml/Ftl Rules ❌ Error FTL ключи нарушают kebab-case правило (job-description-scp3288Alpha вместо job-description-scp3288-alpha); YAML содержит заглушку ??? вместо английского fallback имени. Замените все CamelCase суффиксы в FTL ключах на kebab-case (Alpha→alpha, Servant→servant, Knight→knight, Aristocrat→aristocrat) и синхронизируйте ссылки в YAML; заполните name: ??? на английское имя в BaseMobScp3288Monster.
Ss14 Prototype ↔ Ftl Parity ❌ Error Новые player-facing прототипы содержат заглушки ??? вместо полной локализации; ru-RU локализация неполна (отсутствуют .suffix поля). Заполнить ??? реальными названиями в обоих локализациях и добавить недостающие .suffix поля в ru-RU.
✅ Passed checks (8 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed Заголовок точно отражает основное содержание PR — добавление базовой версии SCP-3288 с вариантами 'Аристократы', что полностью соответствует внесенным изменениям.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Ss14 Bridge Sync ✅ Passed PR не содержит изменений в файлах .agent/rules/ или .agent/skills/. Все изменения касаются игровых ресурсов в папке Resources/. Условие проверки неприменимо.
Ss14 C# Rules ✅ Passed PR содержит только изменения в .ftl, .yml и .json файлах; C# файлы не изменены. Проверка SS14 C# rules применяется только при изменении .cs файлов.
Ss14 Prediction Safety ✅ Passed Чек не применим: PR не изменяет Content.Shared или код предсказания. Все изменения — локализация, прототипы и метаданные текстур.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 10

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
Resources/Locale/ru-RU/_prototypes/_scp/catalog/fills/items/belt.ftl (1)

39-41: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Добавьте .suffix для выравнивания с en-US записью.

В en-US для этого ключа есть .suffix = SCP-3288, а в ru-RU суффикс отсутствует. Лучше держать одинаковую структуру ключа в обеих локалях.

As per coding guidelines: "Keep ... fallback strings aligned with the English localization intent."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@Resources/Locale/ru-RU/_prototypes/_scp/catalog/fills/items/belt.ftl` around
lines 39 - 41, The ru-RU localization for the key
ent-ClothingBeltSheathFilledScp3288 is missing the .suffix entry present in
en-US; add a .suffix for ent-ClothingBeltSheathFilledScp3288 with the same
fallback value "SCP-3288" so the key structure matches (keep it aligned with
ent-ClothingBeltSheathFilled.desc and the English localization).

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@Resources/Locale/en-US/_prototypes/_scp/entities/mobs/player/scp/main/scp3288.ftl`:
- Line 1: Replace the placeholder value "???" for the localization key
ent-Scp3288 with the correct English name/title for SCP-3288 (e.g., the
canonical "SCP-3288" or the official English article title); update the string
value for ent-Scp3288 in
Resources/Locale/en-US/_prototypes/_scp/entities/mobs/player/scp/main/scp3288.ftl
and ensure the formatting matches other entries (plain text string, no extra
markup).

In
`@Resources/Locale/en-US/_prototypes/_scp/entities/objects/weapons/melee/sword.ftl`:
- Line 2: The .desc string currently reads "A ceremonial weapon belonging to the
Habsburgs family." which is unnatural for en-US; update the localization entry
(the .desc key in sword.ftl) to use "the Habsburg family" (e.g., "A ceremonial
weapon belonging to the Habsburg family.") to conform to
ss14-localization-strings review criteria and natural English usage.

In `@Resources/Locale/en-US/_strings/_scp/roles/scp.ftl`:
- Around line 15-16: Localization keys use CamelCase suffixes (e.g.,
job-name-scp3288Alpha, job-description-scp3288Alpha/Servant/Knight/Aristocrat)
but must be kebab-case; rename keys in
Resources/Locale/en-US/_strings/_scp/roles/scp.ftl to job-name-scp3288-alpha,
job-description-scp3288-servant/job-description-scp3288-knight/job-description-scp3288-aristocrat
(as appropriate) and then update all corresponding references to those keys in
Resources/Prototypes/_Scp/Roles/Jobs/SCP/roundstart.yml and
Resources/Prototypes/_Scp/Roles/Jobs/SCP/ghostrole.yml so they match the new
kebab-case keys.

In `@Resources/Locale/en-US/_strings/_scp/scp/scp3288.ftl`:
- Around line 3-5: The three ghost role description entries
(ghost-role-information-scp3288-aristocrat-description,
ghost-role-information-scp3288-knight-description,
ghost-role-information-scp3288-servant-description) lack the required OOC:
marker; update each value to begin with "OOC:" followed by the existing
instruction text, and make the same mirrored change in the corresponding Russian
file (Resources/Locale/ru-RU/_strings/_scp/scp/scp3288.ftl) so both locales
remain consistent.

In
`@Resources/Locale/ru-RU/_prototypes/_scp/entities/mobs/npcs/scp/scp3288monster.ftl`:
- Line 1: Замените заглушку "???" для ключа ent-BaseMobScp3288Monster на
корректную русскую локализацию, например «Базовый монстр SCP-3288» (или другой
согласованный с командой вариант), чтобы строка ent-BaseMobScp3288Monster
содержала человекочитаемое название вместо плейсхолдера.

In
`@Resources/Locale/ru-RU/_prototypes/_scp/entities/mobs/player/scp/main/scp3288.ftl`:
- Line 1: Замените заглушку ent-Scp3288 = ??? на корректную русскую строку для
названия SCP-3288: присвоьте ent-Scp3288 значение с реальным русским названием
сущности (например, если нет отдельного перевода, используйте "SCP-3288") в
файле с локализацией, сохраняя формат строки и кодировку.

In
`@Resources/Locale/ru-RU/_prototypes/_scp/entities/objects/weapons/melee/sword.ftl`:
- Line 2: Update the .desc entry so the Russian sentence includes the missing
comma: change the string value for .desc in the sword.ftl prototype from
"Церемониальное оружие принадлежащее роду Габсбургов." to include the comma
after "орудие" (i.e., "Церемониальное оружие, принадлежащее роду Габсбургов.")
to comply with ss14-localization-strings guidelines.

In `@Resources/Prototypes/_Scp/Entities/Mobs/NPCs/Scp/scp3288.yml`:
- Around line 10-11: Remove the placeholder "name: ???" from the abstract base
prototype (scp3288.yml) so the base prototype does not supply a default name;
ensure each concrete prototype (Scp3288Aristocrat, Scp3288Knight,
Scp3288Servant) declares its own name and description fields directly in their
YAMLs following SS14 convention (keep name/description in the concrete
prototypes and leave the base as abstract without a name).

In `@Resources/Prototypes/_Scp/Entities/Mobs/Player/Scp/Main/scp3288.yml`:
- Around line 31-32: В файле где объявлен блок "type: Inventory" с "templateId:
scp082" замените неправильный шаблон на один из новых для SCP-3288 (например
"scp3288Servant" или "scp3288Knight") — найдите блок с type:
Inventory/templateId и подставьте корректный идентификатор шаблона,
соответствующий роли (см. объявленные шаблоны в
Resources/Prototypes/_Scp/InventoryTemplates/scp3288_servant.yml) чтобы
инвентарь соответствовал SCP-3288.

In `@Resources/Prototypes/_Scp/Roles/Jobs/SCP/roundstart.yml`:
- Around line 117-131: The job definition for Scp3288Alpha currently reuses the
SCP-106 icon (icon: JobIconScp106); replace that with a dedicated icon name
(icon: JobIconScp3288) in the Scp3288Alpha job block or, if the SCP-3288 asset
is not ready, add a clear TODO comment next to the icon line indicating a
placeholder and the intended new icon name so it can be updated later; ensure
you update the icon reference for the Scp3288Alpha job (id: Scp3288Alpha,
jobEntity: Scp3288) accordingly.

---

Outside diff comments:
In `@Resources/Locale/ru-RU/_prototypes/_scp/catalog/fills/items/belt.ftl`:
- Around line 39-41: The ru-RU localization for the key
ent-ClothingBeltSheathFilledScp3288 is missing the .suffix entry present in
en-US; add a .suffix for ent-ClothingBeltSheathFilledScp3288 with the same
fallback value "SCP-3288" so the key structure matches (keep it aligned with
ent-ClothingBeltSheathFilled.desc and the English localization).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 443ceba7-f1a3-4e29-bc62-8e83eac6b96f

📥 Commits

Reviewing files that changed from the base of the PR and between 0ce6a7f and d600eb3.

⛔ Files ignored due to path filters (7)
  • Resources/Textures/_Scp/Mobs/Scp/scp-3288.rsi/base.png is excluded by !**/*.png
  • Resources/Textures/_Scp/Mobs/Scp/scp-3288.rsi/dead.png is excluded by !**/*.png
  • Resources/Textures/_Scp/Mobs/Scp/scp-3288.rsi/frenzy.png is excluded by !**/*.png
  • Resources/Textures/_Scp/Mobs/Scp/scp-3288.rsi/sleep.png is excluded by !**/*.png
  • Resources/Textures/_Scp/Mobs/scp-3288-servant.rsi/aristocrat.png is excluded by !**/*.png
  • Resources/Textures/_Scp/Mobs/scp-3288-servant.rsi/knight.png is excluded by !**/*.png
  • Resources/Textures/_Scp/Mobs/scp-3288-servant.rsi/servant.png is excluded by !**/*.png
📒 Files selected for processing (22)
  • Resources/Locale/en-US/_prototypes/_scp/catalog/fills/items/belt.ftl
  • Resources/Locale/en-US/_prototypes/_scp/entities/mobs/npcs/scp3288monster.ftl
  • Resources/Locale/en-US/_prototypes/_scp/entities/mobs/player/scp/main/scp3288.ftl
  • Resources/Locale/en-US/_prototypes/_scp/entities/objects/weapons/melee/sword.ftl
  • Resources/Locale/en-US/_strings/_scp/roles/scp.ftl
  • Resources/Locale/en-US/_strings/_scp/scp/scp3288.ftl
  • Resources/Locale/ru-RU/_prototypes/_scp/catalog/fills/items/belt.ftl
  • Resources/Locale/ru-RU/_prototypes/_scp/entities/mobs/npcs/scp/scp3288monster.ftl
  • Resources/Locale/ru-RU/_prototypes/_scp/entities/mobs/player/scp/main/scp3288.ftl
  • Resources/Locale/ru-RU/_prototypes/_scp/entities/objects/weapons/melee/sword.ftl
  • Resources/Locale/ru-RU/_strings/_scp/roles/scp.ftl
  • Resources/Locale/ru-RU/_strings/_scp/scp/scp3288.ftl
  • Resources/Prototypes/_Scp/Catalog/Fills/Items/belt.yml
  • Resources/Prototypes/_Scp/Entities/Mobs/NPCs/Scp/scp3288.yml
  • Resources/Prototypes/_Scp/Entities/Mobs/Player/Scp/Main/scp3288.yml
  • Resources/Prototypes/_Scp/Entities/Objects/Weapons/Melee/sword.yml
  • Resources/Prototypes/_Scp/InventoryTemplates/scp3288_servant.yml
  • Resources/Prototypes/_Scp/Roles/Jobs/SCP/ghostrole.yml
  • Resources/Prototypes/_Scp/Roles/Jobs/SCP/roundstart.yml
  • Resources/Prototypes/_Scp/Roles/play_time_trackers.yml
  • Resources/Textures/_Scp/Mobs/Scp/scp-3288.rsi/meta.json
  • Resources/Textures/_Scp/Mobs/scp-3288-servant.rsi/meta.json

Comment thread Resources/Locale/en-US/_prototypes/_scp/entities/objects/weapons/melee/sword.ftl Outdated
Comment thread Resources/Locale/en-US/_strings/_scp/roles/scp.ftl Outdated
Comment thread Resources/Locale/en-US/_strings/_scp/scp/scp3288.ftl
Comment thread Resources/Locale/ru-RU/_prototypes/_scp/entities/objects/weapons/melee/sword.ftl Outdated
Comment thread Resources/Prototypes/_Scp/Entities/Mobs/NPCs/Scp/scp3288.yml
Comment thread Resources/Prototypes/_Scp/Entities/Mobs/Player/Scp/Main/scp3288.yml
Comment thread Resources/Prototypes/_Scp/Roles/Jobs/SCP/roundstart.yml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant