Skip to content

Add scp delivery#992

Draft
666XxttimurkaxX666 wants to merge 5 commits into
space-sunrise:masterfrom
666XxttimurkaxX666:add-scp-delivery
Draft

Add scp delivery#992
666XxttimurkaxX666 wants to merge 5 commits into
space-sunrise:masterfrom
666XxttimurkaxX666:add-scp-delivery

Conversation

@666XxttimurkaxX666

@666XxttimurkaxX666 666XxttimurkaxX666 commented May 4, 2026

Copy link
Copy Markdown
Contributor

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

теперь ру может иногда отправлять по логистике сцп для содержания в этом учреждении (геймрул короче)
а еще добавлены некоторые сцп 2263

это может помочь ученым, сб, инженерам (и наверно логистам) рпшить типо о нихуя сцп привезли и там потом сб заберут из логистов и ученые изучат и для него инженеры сделают камеру короче вот так вот

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

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

Скриншот-20260504-152241

Changelog

🆑 mama parashuta

  • add: Добавлена доставка SCP от РУ
  • add: Добавлены SCP-2263-62, SCP-2263-60, SCP-2263-18

Summary by CodeRabbit

  • Новые возможности
    • Добавлены три новых объекта SCP с соответствующими товарами, ящиками и записями для системы доставки; добавлены записи событий доставки в правила раунда.
  • Документация / Локализация
    • Добавлена русская локализация для новых объектов, контейнеров и уведомлений о доставке.

@github-actions

github-actions Bot commented May 4, 2026

Copy link
Copy Markdown
Contributor

RSI Diff Bot; head commit 1a385fd merging into 3125dbe
This PR makes changes to 1 or more RSIs. Here is a summary of all changes:

Resources/Textures/_Scp/Objects/Scp/scp-2263.rsi

State Old New Status
scp2263-18 Added
scp2263-60 Added
scp2263-62 Added

Edit: diff updated after 1a385fd

@coderabbitai

coderabbitai Bot commented May 4, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Добавляет локализации, спрайты и три прототипа SCP-2263; создаёт соответствующие ящики, товары и market; вводит правила событий cargo_delivery с тремя доставками и интегрирует таблицу доставки в начало раунда.

Изменения

Доставка SCP-грузов

Layer / File(s) Summary
Локализация и строки
Resources/Locale/ru-RU/_strings/_scp/station-events/events/cargo-delivery.ftl, Resources/Locale/ru-RU/_prototypes/_scp/catalog/fills/crates/scp.ftl, Resources/Locale/ru-RU/_prototypes/_scp/entities/objects/scp/scp2263.ftl
Добавлены строки для объявления и отправителя события доставки, описания SCP-2263/124/427 и локализации для ящиков и трёх вариантов SCP-2263 (основная запись + алиасы).
Спрайты / метаданные
Resources/Textures/_Scp/Objects/Scp/scp-2263.rsi/meta.json
Создан meta.json с размером 32x32 и состояниями scp2263-62, scp2263-18, scp2263-60.
Прототипы сущностей
Resources/Prototypes/_Scp/Entities/Objects/Scp/scp2263.yml
Добавлен абстрактный Scp2263Base и три наследника: Scp226362 (излучение, свет), Scp226360 (звук при повреждении), Scp226318 (состояние спрайта).
Определение ящиков
Resources/Prototypes/_Scp/Catalog/Fills/Crates/scp.yml
Добавлены CrateScp2263 (GroupSelector с вариантами 2263 и RadiationBlockingContainer), CrateScp124, CrateScp427 (AllSelector для соответствующих SCP).
Каталог грузов и рынок
Resources/Prototypes/_Scp/Catalog/Cargo/scp.yml, Resources/Prototypes/_Scp/Catalog/Cargo/markets.yml
Добавлены cargoProduct записи cargoScp2263, cargoScp124, cargoScp427 с высокой ценой и market scp.
Игровые правила: доставка грузов
Resources/Prototypes/_Scp/GameRules/cargo_delivery.yml
Добавлен CargoScpDeliveryBase, таблица ScpCargoDeliveryTable и три события DeliveryScp2263, DeliveryScp124, DeliveryScp427 с конфигурацией StationEvent и подарков.
Интеграция в начало раунда
Resources/Prototypes/_Scp/GameRules/roundstart.yml
Добавлена ScpCargoDeliveryTable в ScpBasicGameRulesTable и ScpBasicChillGameRulesTable.

Sequence Diagram(s)

sequenceDiagram
  participant GameRule
  participant StationEvent
  participant CargoGiftsRule
  participant Market
  GameRule->>StationEvent: trigger (delay locked to 10)
  StationEvent->>CargoGiftsRule: announce(description key)
  CargoGiftsRule->>Market: grant cargoScpXXX -> Crate entity
Loading

Оценка затрат на проверку кода

🎯 3 (Moderate) | ⏱️ ~25 минут

Стихотворение

🐰 Скульптуры в коробках тихо спят,
Везут их в мир, где станции дрожат,
Три ящика, три тайны в переводе,
Событий зов — и груз плывёт на борту,
Радуга спрайтов, локаль по-русски в хору.


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 Нарушены правила SS14: prototype IDs не соответствуют CamelCase формату. markets.yml: id: scp (требуется Scp). scp.yml: cargoScp* (требуется CargoScp*). Несовместимость group и ссылок. Исправить ID в markets.yml на Scp. Переименовать cargoScp* на CargoScp* в scp.yml. Обновить group и ссылки в cargo_delivery.yml на соответствие новым ID.
Ss14 Prototype ↔ Ftl Parity ❌ Error Отсутствует английская локализация для новых player-facing прототипов. Добавлены RU .ftl, но не EN. Также нарушено CamelCase соглашение для ID прототипов. 1. Добавить EN локализацию: scp2263.ftl, crates/scp.ftl, cargo-delivery.ftl. 2. Исправить CamelCase: CargoScp2263/124/427 и Scp для markets, синхронизировать в cargo_delivery.yml
✅ Passed checks (8 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed Заголовок полностью соответствует основному изменению в наборе изменений, ясно описывая добавление функции доставки SCP.
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/, поэтому проверка SS14 bridge sync не применяется. Все изменения находятся в Resources/.
Ss14 C# Rules ✅ Passed PR не содержит изменений в .cs файлах. Проверка "SS14 C# rules" применяется только при изменении C# файлов.
Ss14 Prediction Safety ✅ Passed PR содержит только конфигурационные (.yml) и локализационные (.ftl) файлы без C# кода или предсказываемых механик. Не изменяет Content.Shared/**. Проверка SS14 Prediction Safety не применима.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


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: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@Resources/Locale/ru-RU/_prototypes/_scp/entities/objects/scp/scp2263.ftl`:
- Around line 1-6: Все три записи (ent-Scp226362, ent-Scp226360, ent-Scp226318)
дублируют name и .desc; оставьте одну каноническую запись (например
ent-Scp226362 с name и .desc) и замените остальные на FTL-перекрёстные ссылки на
её атрибуты, например для ent-Scp226360 и ent-Scp226318 используйте ссылки типа
ent-Scp226360 = { ent-Scp226362 } и ent-Scp226360.desc = { ent-Scp226362.desc }
(и аналогично для ent-Scp226318) чтобы избежать дублирования.

In `@Resources/Prototypes/_Scp/Catalog/Fills/Crates/scp.yml`:
- Around line 1-36: Добавьте FTL-записи локализации для новых player-facing
прототипов: ent-CrateScp2263, ent-CrateScp124 и ent-CrateScp427; создайте
соответствующие ключи в затронутых локалях (например в наборе ru-RU) с
человекочитаемыми именами/описаниями для каждого прототипа, чтобы они не
наследовали имя родителя (ссылки на прототипы: CrateScp2263, CrateScp124,
CrateScp427); убедитесь, что имена ключей точно соответствуют формату
ent-<PrototypeId> и что FTL-файлы включены в PR.

In `@Resources/Prototypes/_Scp/GameRules/cargo_delivery.yml`:
- Around line 18-23: ScpCargoDeliveryTable использует GroupSelector с
единственным дочерним элементом DeliveryScp2263, поэтому DeliveryScp124 и
DeliveryScp427 никогда вызываются; update ScpCargoDeliveryTable (the
GroupSelector children list) to include DeliveryScp124 and DeliveryScp427
alongside DeliveryScp2263 so the scheduler can reach them, or if they should be
excluded remove their definitions to eliminate dead code — locate
ScpCargoDeliveryTable / GroupSelector and add the missing child IDs
(DeliveryScp124, DeliveryScp427) or delete the unused
DeliveryScp124/DeliveryScp427 entities accordingly.
🪄 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: 831d065d-3e28-4e06-9735-fc2cee8eeeed

📥 Commits

Reviewing files that changed from the base of the PR and between 7d7ae3d and 6a667e8.

⛔ Files ignored due to path filters (3)
  • Resources/Textures/_Scp/Objects/Scp/scp-2263.rsi/scp2263-18.png is excluded by !**/*.png
  • Resources/Textures/_Scp/Objects/Scp/scp-2263.rsi/scp2263-60.png is excluded by !**/*.png
  • Resources/Textures/_Scp/Objects/Scp/scp-2263.rsi/scp2263-62.png is excluded by !**/*.png
📒 Files selected for processing (8)
  • Resources/Locale/ru-RU/_prototypes/_scp/entities/objects/scp/scp2263.ftl
  • Resources/Locale/ru-RU/_strings/_scp/station-events/events/cargo-delivery.ftl
  • Resources/Prototypes/_Scp/Catalog/Cargo/scp.yml
  • Resources/Prototypes/_Scp/Catalog/Fills/Crates/scp.yml
  • Resources/Prototypes/_Scp/Entities/Objects/Scp/scp2263.yml
  • Resources/Prototypes/_Scp/GameRules/cargo_delivery.yml
  • Resources/Prototypes/_Scp/GameRules/roundstart.yml
  • Resources/Textures/_Scp/Objects/Scp/scp-2263.rsi/meta.json

Comment thread Resources/Locale/ru-RU/_prototypes/_scp/entities/objects/scp/scp2263.ftl Outdated
Comment thread Resources/Prototypes/_Scp/Catalog/Fills/Crates/scp.yml
Comment thread Resources/Prototypes/_Scp/GameRules/cargo_delivery.yml
- type: cargoProduct
id: cargoScp2263
product: CrateScp2263
cost: 999999999

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Очень плохая реализация через очень огромную цену в карго.
Ну а так же их бесконечное количество...
Там разве нельзя скрыть продукт?

suffix: SCP-2263
components:
- type: Sprite
sprite: _Scp/Objects/Scp/scp-2263.rsi

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Раздели это на подпапки.
Создай папку scp-2663, а внутри неё папки:
-> scp-2663-62.rsi
-> scp-2663-60.rsi
-> scp-2663-18.rsi

И туда уже помести спрайты различных состояний и направлений.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

а зачем там разные направления и состояния

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

а зачем там разные направления и состояния

Потому что у тебя скелеты могут повырачиваться, вот это да, согласен? Чудо

Comment thread Resources/Prototypes/_Scp/GameRules/cargo_delivery.yml Outdated
- !type:NestedSelector
tableId: CalmPestEventsTable
- !type:NestedSelector
tableId: ScpCargoDeliveryTable

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Ты уверен, что это нужно добавлять в ротацию базовых ивентов?
Стоит под вопросом в связи со способом реализации доставки, его нужно менять, в карго не должны быть ящики объектов по космической цене.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

cargoproducts это за какую стоимость персонал может купить предмет

продать за ту же цену они не могут

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

cargoproducts это за какую стоимость персонал может купить предмет

продать за ту же цену они не могут

Я в курсе, но это не должно так выглядеть

- !type:NestedSelector
tableId: CalmPestEventsTable
- !type:NestedSelector
tableId: ScpCargoDeliveryTable

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

То-же самое, под вопросом.

"x": 32,
"y": 32
},
"states": [

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Нужно разделить на разные meta.json файлы в разных папках и туда вписать различные состояния объекта, а так же его направления во все стороны света.

children:
- id: Scp226362
- id: Scp226360
- id: Scp226318

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Все сразу в одном ящике?

@666XxttimurkaxX666 666XxttimurkaxX666 May 7, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

там рандомно спавнится один скелет какого либо вида

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

там рандомно спавнится один скелет какого либо вида

Поставки скорее всего нужно реализовывать через C#, потому что в прототипах это выглядит ужасно, по крайней мере на текущий момент

@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: 2

🤖 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/Prototypes/_Scp/Catalog/Cargo/markets.yml`:
- Around line 1-2: The market prototype's id "scp" must be converted to
CamelCase (e.g., "Scp") in the markets.yml entry for the cargoMarket so it
conforms to Prototype ID format, and you must also update the corresponding
cargoProduct prototypes' group fields to match that new CamelCase id (search for
cargoProduct entries referencing group: scp and change them to group: Scp);
ensure the type remains cargoMarket and verify all references are updated
consistently.

In `@Resources/Prototypes/_Scp/Catalog/Cargo/scp.yml`:
- Around line 2-26: The prototype IDs "cargoScp2263", "cargoScp124", and
"cargoScp427" use snake/lowercase style and must be renamed to CamelCase (e.g.,
CargoScp2263-style) in the scp.yml entries (the type: cargoProduct blocks) to
meet the prototype ID format, and then update all places that reference
them—specifically the CargoGiftsRule.gifts mapping—so the renamed IDs are used
everywhere to avoid broken references.
🪄 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: 3f747125-7f0e-4d63-a06b-e64f8eee4dfe

📥 Commits

Reviewing files that changed from the base of the PR and between 6a667e8 and 4d62669.

📒 Files selected for processing (5)
  • Resources/Locale/ru-RU/_prototypes/_scp/catalog/fills/crates/scp.ftl
  • Resources/Locale/ru-RU/_prototypes/_scp/entities/objects/scp/scp2263.ftl
  • Resources/Prototypes/_Scp/Catalog/Cargo/markets.yml
  • Resources/Prototypes/_Scp/Catalog/Cargo/scp.yml
  • Resources/Prototypes/_Scp/GameRules/cargo_delivery.yml

Comment on lines +1 to +2
- type: cargoMarket
id: scp No newline at end of file

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.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Приведите id рынка к CamelCase.

id: scp нарушает обязательный формат идентификаторов прототипов. Также нужно синхронно обновить group в связанных cargoProduct.

💡 Предлагаемое исправление
-  id: scp
+  id: Scp
# Resources/Prototypes/_Scp/Catalog/Cargo/scp.yml
-  group: scp
+  group: Scp

As per coding guidelines: "Prototype ID format MUST be CamelCase".

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- type: cargoMarket
id: scp
- type: cargoMarket
id: Scp
🤖 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/Prototypes/_Scp/Catalog/Cargo/markets.yml` around lines 1 - 2, The
market prototype's id "scp" must be converted to CamelCase (e.g., "Scp") in the
markets.yml entry for the cargoMarket so it conforms to Prototype ID format, and
you must also update the corresponding cargoProduct prototypes' group fields to
match that new CamelCase id (search for cargoProduct entries referencing group:
scp and change them to group: Scp); ensure the type remains cargoMarket and
verify all references are updated consistently.

Comment on lines +2 to +26
id: cargoScp2263
product: CrateScp2263
cost: 999999999
icon:
sprite: Markers/cross.rsi
state: red
group: scp

- type: cargoProduct
id: cargoScp124
product: CrateScp124
cost: 999999999
icon:
sprite: Markers/cross.rsi
state: red
group: scp

- type: cargoProduct
id: cargoScp427
product: CrateScp427
cost: 999999999
icon:
sprite: Markers/cross.rsi
state: red
group: scp

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.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Используйте CamelCase для cargoProduct идентификаторов.

cargoScp2263, cargoScp124, cargoScp427 не соответствуют обязательному формату ID. После переименования обязательно обновите ссылки в CargoGiftsRule.gifts.

💡 Предлагаемое исправление
-  id: cargoScp2263
+  id: CargoScp2263
@@
-  id: cargoScp124
+  id: CargoScp124
@@
-  id: cargoScp427
+  id: CargoScp427
# Resources/Prototypes/_Scp/GameRules/cargo_delivery.yml
-      cargoScp2263: 1
+      CargoScp2263: 1
@@
-      cargoScp124: 1
+      CargoScp124: 1
@@
-      cargoScp427: 1
+      CargoScp427: 1

As per coding guidelines: "Prototype ID format MUST be CamelCase".

🤖 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/Prototypes/_Scp/Catalog/Cargo/scp.yml` around lines 2 - 26, The
prototype IDs "cargoScp2263", "cargoScp124", and "cargoScp427" use
snake/lowercase style and must be renamed to CamelCase (e.g.,
CargoScp2263-style) in the scp.yml entries (the type: cargoProduct blocks) to
meet the prototype ID format, and then update all places that reference
them—specifically the CargoGiftsRule.gifts mapping—so the renamed IDs are used
everywhere to avoid broken references.

@WardexOfficial

Copy link
Copy Markdown
Collaborator

@666XxttimurkaxX666 как там успехи?

@WardexOfficial

Copy link
Copy Markdown
Collaborator

Шуруешь в драфт

@WardexOfficial WardexOfficial marked this pull request as draft May 16, 2026 17:49
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.

2 participants