Skip to content

Рефактор синди шкафомеха(и немного модулей)#9324

Open
Vadim7222 wants to merge 54 commits into
ss220-space:master220from
Vadim7222:syndielockerrefactor
Open

Рефактор синди шкафомеха(и немного модулей)#9324
Vadim7222 wants to merge 54 commits into
ss220-space:master220from
Vadim7222:syndielockerrefactor

Conversation

@Vadim7222

@Vadim7222 Vadim7222 commented May 30, 2026

Copy link
Copy Markdown
Contributor

Что этот ПР делает

Добавлена переменная защиты от ЭМИ на меха.

Немного изменён код синди шкафомеха.

Исправлен баг в котором синди шкафомех хоть и имел у себя в коде /obj/item/mecha_drop для призыва но в аплинке покупался всё ещё целиком.

Ранее синди шкафомех был удалён из суплюсов из-за того что "Не логично что большой мех в маленьком ящике" но теперь он идёт меха дропом так что нелогичность исправлена.

Теперь возможность установки модулей на мехи задается дефайнами а не через проверку на тип меха.

Теперь необходимо емагать клоунсого и мимного меха чтобы установить оружие.

Почему это хорошо для игры

Теперь везде код выглядит покрасивее а не как "if(istype(M, /obj/mecha/medical) || istype(M, /obj/mecha/combat/lockersyndie) || istype(M, /obj/mecha/working)"

Список изменений

🆑
tweak: Добавлена переменная защиты от ЭМИ на мехов.
tweak: Синдишкафомех из аплинка теперь появляется ввиде устройства для доставки меха.
balance: Синдишкафомех возвращается в суплюсы.
balance: у простого шкафомеха есть переменная упомянутая выше.
refactor: Изменена работа установки модулей на мехов.
balance: Теперь для установки вооружения на клоунского и мимного меха необходим емаг
/:cl:

Vadim7222 added 2 commits May 30, 2026 18:31
Добавлена переменная защиты от ЭМИ для мехов
Теперь возможность установки модулей на мехи задается дефайнами а не через проверку на тип меха
Шкафомех теперь наследуется от мейкшифта
@github-actions github-actions Bot added Инструменты PR вносит изменения в инструменты разработки, конфигурации IDE или конфигурацию AI помощника. Refactor PR проводит рефакторинг кода. Balance PR изменяет баланс. Quality of Life PR улучшает удобство и качество геймплея. labels May 30, 2026

@gemini-code-assist gemini-code-assist 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.

Code Review

Этот пулл-реквест рефакторит систему совместимости оборудования мехов, заменяя жесткие проверки типов на битовую маску allowed_equipment и метод check_allowed_equipment(). Также Синди-Шкафомех переведен в категорию самодельных мехов, и добавлена переменная emp_protection. В ходе ревью были обнаружены критические уязвимости в файле mecha_equipment.dm: удаление проверок типов в can_attach() и отсутствие проверки в check_allowed_equipment() могут привести к рантайм-ошибкам при передаче null. Рекомендуется вернуть проверки istype(M) для обеспечения безопасности типов.

Comment thread code/game/mecha/equipment/mecha_equipment.dm Outdated
Comment thread code/game/mecha/equipment/mecha_equipment.dm Outdated
@Vadim7222

Copy link
Copy Markdown
Contributor Author

/gemini-review

@Vadim7222

Copy link
Copy Markdown
Contributor Author

Блять у меня табуляции на пробелы рассыпались

@Vadim7222 Vadim7222 marked this pull request as draft May 30, 2026 19:16
@Vadim7222 Vadim7222 marked this pull request as ready for review May 30, 2026 19:29
@littleboobs littleboobs added the Do Not Merge PR не должен быть замержен, поскольку кто-то чем-то недоволен. label May 31, 2026
Comment thread code/__DEFINES/mecha.dm Outdated
Comment thread code/game/mecha/equipment/tools/medical_tools.dm Outdated
@github-actions github-actions Bot added the Merge Conflict PR содержит изменения, конфликтующие с master-веткой. label Jun 1, 2026
@Vadim7222

Copy link
Copy Markdown
Contributor Author

/gemini review

@gemini-code-assist gemini-code-assist 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.

Code Review

This pull request refactors the mech equipment attachment system by introducing categorized equipment flags (MECH_EQUIPMENT_*) and replacing explicit type checks in can_attach procedures with bitwise flag checks. It also moves the Syndicate locker mech to the makeshift category and introduces emagging support for certain mechs. The review feedback identifies critical logic errors, including an inverted strafe check in the servo-hydraulic actuator and a bola attachment procedure that always returns FALSE. Additionally, it recommends enabling system_allowed on the Syndicate locker mech to allow control system upgrades, and notes a style guide violation regarding localized text in attack logs.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread code/game/mecha/equipment/weapons/weapons.dm Outdated
Comment thread code/game/mecha/equipment/tools/other_tools.dm Outdated
Comment thread code/game/mecha/makeshift/lockermech.dm Outdated
Comment thread code/game/mecha/mecha.dm
@Vadim7222 Vadim7222 requested a review from Ksaikok46 June 18, 2026 08:37

@Ksaikok46 Ksaikok46 left a comment

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.

Получше, но еще есть что поправить, также подумай по поводу категорий, пока что мне кажется что это не очень гибко и из-за этого тебе приходится делать костыли типо system_attach_allowed, может будет лучше сделать сами типы мехов битфлагами и у модулей комбинировать их, типо allowed_mechs = MECH_TYPE_GYGAX | MECH_TYPE_DURAND, и соответственно проверять это при установке, не знаю будет ли это лучше, подумай потыкай

Comment thread code/game/mecha/equipment/weapons/weapons.dm Outdated
Comment thread code/game/mecha/equipment/mecha_equipment.dm Outdated
Comment thread code/game/mecha/mecha.dm Outdated
Comment thread code/game/mecha/equipment/tools/other_tools.dm Outdated
@Vadim7222

Copy link
Copy Markdown
Contributor Author

Кто такой этот Completion Gate...

@dageavtobusnick dageavtobusnick removed the Do Not Merge PR не должен быть замержен, поскольку кто-то чем-то недоволен. label Jun 19, 2026
@Vadim7222 Vadim7222 requested a review from Ksaikok46 June 19, 2026 15:35

@Ksaikok46 Ksaikok46 left a comment

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 code/game/mecha/equipment/tools/medical_tools.dm Outdated
Comment thread code/game/mecha/equipment/tools/other_tools.dm Outdated
Comment thread code/game/mecha/equipment/tools/other_tools.dm Outdated
Comment thread code/game/mecha/equipment/tools/other_tools.dm Outdated
Comment thread code/game/mecha/equipment/mecha_equipment.dm Outdated
Comment thread code/game/mecha/mecha.dm Outdated
Теперь все модули кроме оружия можно поставить в единичном экземпляре, оружие можно поставить только 2 копии
@Vadim7222 Vadim7222 requested a review from Ksaikok46 June 20, 2026 17:08

@Ksaikok46 Ksaikok46 left a comment

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 code/game/mecha/equipment/mecha_equipment.dm Outdated
Comment thread code/game/mecha/equipment/mecha_equipment.dm
@Vadim7222 Vadim7222 requested a review from Ksaikok46 June 20, 2026 20:18
@Ksaikok46 Ksaikok46 added the ☑️ Has Approve PR получил одобрение от одного из ревьюеров. label Jun 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Balance PR изменяет баланс. ☑️ Has Approve PR получил одобрение от одного из ревьюеров. Quality of Life PR улучшает удобство и качество геймплея. Refactor PR проводит рефакторинг кода. Инструменты PR вносит изменения в инструменты разработки, конфигурации IDE или конфигурацию AI помощника.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants