Рефактор синди шкафомеха(и немного модулей)#9324
Conversation
Добавлена переменная защиты от ЭМИ для мехов Теперь возможность установки модулей на мехи задается дефайнами а не через проверку на тип меха Шкафомех теперь наследуется от мейкшифта
There was a problem hiding this comment.
Code Review
Этот пулл-реквест рефакторит систему совместимости оборудования мехов, заменяя жесткие проверки типов на битовую маску allowed_equipment и метод check_allowed_equipment(). Также Синди-Шкафомех переведен в категорию самодельных мехов, и добавлена переменная emp_protection. В ходе ревью были обнаружены критические уязвимости в файле mecha_equipment.dm: удаление проверок типов в can_attach() и отсутствие проверки в check_allowed_equipment() могут привести к рантайм-ошибкам при передаче null. Рекомендуется вернуть проверки istype(M) для обеспечения безопасности типов.
|
/gemini-review |
|
Блять у меня табуляции на пробелы рассыпались |
|
/gemini review |
There was a problem hiding this comment.
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.
Ksaikok46
left a comment
There was a problem hiding this comment.
Получше, но еще есть что поправить, также подумай по поводу категорий, пока что мне кажется что это не очень гибко и из-за этого тебе приходится делать костыли типо system_attach_allowed, может будет лучше сделать сами типы мехов битфлагами и у модулей комбинировать их, типо allowed_mechs = MECH_TYPE_GYGAX | MECH_TYPE_DURAND, и соответственно проверять это при установке, не знаю будет ли это лучше, подумай потыкай
Я еще не тестил + не уверен на счет емага
надо протестить + не уверен в емаг акте
…aradise into syndielockerrefactor
|
Кто такой этот Completion Gate... |
Ksaikok46
left a comment
There was a problem hiding this comment.
Уже лучше, есть еще небольшое предложение по улучшению, в остальном вроде хорошо
Теперь все модули кроме оружия можно поставить в единичном экземпляре, оружие можно поставить только 2 копии
…aradise into syndielockerrefactor
Ksaikok46
left a comment
There was a problem hiding this comment.
Последняя правка, остальное вроде нормально
Что этот ПР делает
Добавлена переменная защиты от ЭМИ на меха.
Немного изменён код синди шкафомеха.
Исправлен баг в котором синди шкафомех хоть и имел у себя в коде /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: