Skip to content

Conversation

@Vaaankas
Copy link
Contributor

@Vaaankas Vaaankas commented Jan 3, 2026

🆑 vanx

  • tweak: Емагу снова возвращён полный функционал.
  • tweak: Стоимость емага в аплинке 4 -> 8 ТК.
  • tweak: Access Breaker переименован в "дешифратор доступа". Теперь это бюджетная версия емага, всё так же может только открывать шлюзы и замки.
    tweak Стоимость дешифратора: 5 -> 4 ТК.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 3, 2026

Walkthrough

Обновление системы Emag включает изменение типа по умолчанию компонента с EmagType.Interaction на EmagType.All, добавление нового флага-комбинации в перечисление EmagType, переименование локализационных ключей с "Doorjack" на "AccessBreaker" и обновление стоимости товаров в каталоге Uplink.

Changes

Cohort / File(s) Описание изменений
C# компоненты и системы
Content.Shared/Emag/Components/EmagComponent.cs, Content.Shared/Emag/Systems/EmagSystem.cs
Изменено значение по умолчанию поля EmagType с Interaction на All; добавлен новый элемент enum All = Interaction | Access
Локализация русского языка
Resources/Locale/ru-RU/WWDP_TRANSLATION/prototypes/entities/objects/tools/emag.ftl, Resources/Locale/ru-RU/deltav/store/uplink-catalog.ftl, Resources/Locale/ru-RU/emag/emag.ftl, Resources/Locale/ru-RU/medical/components/cloning-pod-component.ftl, Resources/Locale/ru-RU/store/uplink-catalog.ftl
Переименованы ключи локализации с "Doorjack" на "AccessBreaker"; изменены строки с "Карточка" на "Устройство"; обновлены описания товаров в каталоге Uplink
Прототипы каталога
Resources/Prototypes/Catalog/uplink_catalog.yml
Обновлены категории скидок и стоимости: UplinkAccessBreaker с 5 на 4 телекристалла и переименована категория скидок; UplinkEmag стоимость увеличена с 4 на 8 телекристаллов, минимальная скидка изменена с 1 на 2

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Suggested labels

Changes: C#, Changes: YML, Changes: Localization, Status: Needs Review

Suggested reviewers

  • Remuchi
  • DVOniksWyvern

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed Заголовок '[Fix] Emag is Back AGAIN' напрямую отражает основное изменение — восстановление полного функционала эмага, что соответствует основной цели PR.
Description check ✅ Passed Описание PR связано с изменениями в коде: детализирует восстановление функционала, изменения стоимости и переименование компонента, соответствуя всем файлам в changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
  • 📝 Generate docstrings

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.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (2)
Resources/Locale/ru-RU/WWDP_TRANSLATION/prototypes/entities/objects/tools/emag.ftl (2)

9-10: Рассмотрите уточнение описания.

Описание упоминает только "электронные замки", но согласно целям PR, дешифратор доступа может открывать как шлюзы (airlocks), так и замки (locks). Рекомендую добавить уточнение для полноты.

🔎 Предлагаемое уточнение описания
-    .desc = Перепрограммированный конфигуратор доступа, способный разблокировать электронные замки.
+    .desc = Перепрограммированный конфигуратор доступа, способный разблокировать шлюзы и электронные замки.

11-11: Обновите суффикс для точности.

Суффикс "Емаг, Только Шлюзы" указывает, что устройство работает только со шлюзами, но согласно целям PR, дешифратор доступа может открывать как шлюзы, так и замки. Рекомендую обновить суффикс для более точного отражения функциональности.

🔎 Предлагаемое обновление суффикса
-    .suffix = Емаг, Только Шлюзы
+    .suffix = Емаг, Шлюзы и Замки
📜 Review details

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 2135c0c and 770a9a0.

📒 Files selected for processing (8)
  • Content.Shared/Emag/Components/EmagComponent.cs
  • Content.Shared/Emag/Systems/EmagSystem.cs
  • Resources/Locale/ru-RU/WWDP_TRANSLATION/prototypes/entities/objects/tools/emag.ftl
  • Resources/Locale/ru-RU/deltav/store/uplink-catalog.ftl
  • Resources/Locale/ru-RU/emag/emag.ftl
  • Resources/Locale/ru-RU/medical/components/cloning-pod-component.ftl
  • Resources/Locale/ru-RU/store/uplink-catalog.ftl
  • Resources/Prototypes/Catalog/uplink_catalog.yml
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: Vaaankas
Repo: WWhiteDreamProject/wwdpublic PR: 269
File: Content.Server/_White/Examine/ExaminableCharacterSystem.cs:0-0
Timestamp: 2025-03-03T15:02:14.394Z
Learning: User Vaaankas prefers communication in Russian language. Respond to them in Russian rather than English.
📚 Learning: 2025-10-22T20:13:31.389Z
Learnt from: Lachklen
Repo: WWhiteDreamProject/wwdpublic PR: 863
File: Resources/Locale/en-US/_white/cards/hobby.ftl:5-5
Timestamp: 2025-10-22T20:13:31.389Z
Learning: В PR по EvacPod для репозитория WWhiteDreamProject/wwdpublic: если опечатка в ключе локализации (например, card-ep_hobby_mashrooms) не влияет на отображение и используется последовательно, автор предпочитает не блокировать PR; вместо этого предлагать необязательный follow-up issue.

Applied to files:

  • Resources/Locale/ru-RU/medical/components/cloning-pod-component.ftl
🧬 Code graph analysis (1)
Content.Shared/Emag/Systems/EmagSystem.cs (1)
Content.Shared/Emag/Components/EmagComponent.cs (1)
  • Access (11-36)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
  • GitHub Check: Test Packaging
  • GitHub Check: YAML Linter
  • GitHub Check: YAML map schema validator
  • GitHub Check: build (ubuntu-latest)
  • GitHub Check: build (ubuntu-latest)
🔇 Additional comments (8)
Resources/Locale/ru-RU/emag/emag.ftl (1)

1-1: Изменение терминологии выглядит корректно.

Замена "Карточка" на "Устройство" делает локализацию более универсальной и соответствует восстановлению полной функциональности emag согласно целям PR.

Resources/Locale/ru-RU/medical/components/cloning-pod-component.ftl (1)

5-5: Консистентное обновление терминологии.

Изменение соответствует обновлению в других файлах локализации и поддерживает единообразие терминологии.

Resources/Prototypes/Catalog/uplink_catalog.yml (2)

1185-1191: Обновление стоимости и категории скидки для UplinkAccessBreaker выглядит корректно.

Изменения соответствуют целям PR:

  • Стоимость изменена с 5 TC на 4 TC ✓
  • Категория скидки изменена с rareDiscounts на usualDiscounts, что логично при снижении цены

1202-1204: Обновление стоимости для UplinkEmag выглядит корректно.

Изменения соответствуют целям PR:

  • Стоимость увеличена с 4 TC до 8 TC ✓
  • Минимальная цена со скидкой увеличена с 1 TC до 2 TC, что пропорционально увеличению базовой стоимости
Resources/Locale/ru-RU/store/uplink-catalog.ftl (1)

160-160: Обновление описания emag выглядит корректно.

Добавление упоминания о возможности "открывать электронные замки" соответствует цели PR по восстановлению полной функциональности emag. Описание теперь более полное и точно отражает возможности устройства.

Resources/Locale/ru-RU/deltav/store/uplink-catalog.ftl (1)

19-20: Переименование ключей локализации выполнено корректно.

Старые ключи uplink-doorjack-* полностью удалены из кодовой базы и успешно заменены на uplink-access-breaker-*. Проверка показала отсутствие ссылок на старые ключи в файлах локализации. Изменения соответствуют целям PR по переименованию.

Content.Shared/Emag/Systems/EmagSystem.cs (1)

134-135: Корректное расширение флагового enum.

Добавление нового флага All = Interaction | Access выполнено правильно:

  • Используется корректный синтаксис битовой комбинации для флагового enum
  • Добавлена завершающая запятая на строке 134 для упрощения будущих дополнений
  • Существующие битовые операции в методах CompareFlag, CheckFlag и OnAccessOverriderAccessUpdated корректно работают с новым комбинированным флагом
Content.Shared/Emag/Components/EmagComponent.cs (1)

28-28: Изменение дефолтного значения расширяет функциональность emag, и все существующие прототипы совместимы.

Изменение дефолтного значения с EmagType.Interaction на EmagType.All корректно. Основной инструмент emag в emag.yml не указывает явное значение emagType и теперь получит полную функциональность (Interaction + Access). Все остальные устройства с явно заданным emagType (access_breaker.yml, fax_machine.yml, abductor tools) остаются без изменений и совместимы с новым дефолтным поведением. Изменение не вызывает конфликтов и соответствует целям восстановления полной функциональности emag.

@DVOniksWyvern
Copy link
Collaborator

Имеет мало смысла, зачем опять баффать емаг, если его не так давно нерфали по определённым причинам?

@DVOniksWyvern
Copy link
Collaborator

Видел, что ты написал в чате, отвечу всё же тут.

Проблема короче "классики" в том, что не имеет особо много смысла цепляться и держаться за неё. Тут следует разобрать "емаг" как предмет для тритора именно функционально, а не потому, что он был "базой" тритора на протяжении тысячи сотен лет.

Емаг "взламывает", взламывает он двери и взламывает от штуки.
Разделение имеет смысл потому что это добавляет очень много гибкости - тебе иногда нужно взломать одну дверь, ты берешь штуку, что взламывает только двери. Тебе нужно что-то из емагнутого автомата - ты берешь штуку, что ломает автоматы.
Один предмет имеет смысл потому, что добавляет изюминки при выборе тактики тритору, что у него есть инструмент, которым можно много чего сломать и разъебать, но ему нужно играть от его высокой цены.

Короче, тут надо уже крутится вокруг баланса вещей и баланса тритора в принципе, я просто не вижу смысла возвращать емагу прошлый функционал просто потому, что "оно так было". Я бы хотел большей гибкости триторам и больше реакционности на события - они тогда станут веселее и с ними будет сложнее разобраться, давая этакую прослойку в случае ошибки игрока за тритора, которая не дана обычным игрокам.

@DVOniksWyvern DVOniksWyvern added DNM GD-DISCUSSION UNDER GAME DESIGN DISCUSSION labels Jan 4, 2026
@89Eblan
Copy link
Contributor

89Eblan commented Jan 8, 2026

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

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.

3 participants