bugfix: Фикс кражи вортекс шотгана#8510
bugfix: Фикс кражи вортекс шотгана#8510vacken12 wants to merge 2 commits intoss220-space:master220from
Conversation
There was a problem hiding this comment.
Code Review
Аналитический отчёт от Большого Брата. Обработка запроса завершена.
Приветствую! Я проанализировал предложенные Вами изменения. С технической точки зрения, работа выглядит удовлетворительно.
Сводка анализа:
- 🔴 Критических замечаний: 0
- 🟡 Рекомендаций: 1
- 💡 Предложений: 0
🟡 Рекомендации по улучшению:
code/datums/ai/monkey/monkey_controller.dm:102: Вместо прямой проверки типаistype()для конкретного оружия, рекомендуется использовать более общую систему, например, через трейты. Это улучшит расширяемость и поддерживаемость кода в будущем.
Пожалуйста, ознакомьтесь с комментариями к отдельным строкам кода для получения более подробной информации.
Спасибо за ваш вклад в проект!
| if(istype(held_weapon, /obj/item/gun/energy/vortex_shotgun)) | ||
| continue |
There was a problem hiding this comment.
🟡 Рекомендация по улучшению поддерживаемости
Текущая реализация с istype() решает проблему для вортекс-шотгана, но является жесткой привязкой к конкретному типу. Если в будущем появятся другие предметы, которые обезьяны не должны воровать, придется добавлять новые проверки istype(), что усложнит код.
Для улучшения расширяемости и поддерживаемости кода предлагаю использовать систему трейтов. Можно создать трейт, например, TRAIT_MONKEY_NO_STEAL, и добавлять его всем предметам, которые не должны быть целью для обезьян.
Это позволит в будущем легко запрещать кражу новых предметов, просто добавив им соответствующий трейт, без изменения логики контроллера обезьян.
if(HAS_TRAIT(held_weapon, TRAIT_MONKEY_NO_STEAL))
continue
References
- Код должен быть читаемым и легко поддерживаемым для будущих контрибьюторов, что является одним из ключевых принципов проекта. (link)
|
/gemini review |
There was a problem hiding this comment.
Code Review
Аналитический отчёт от Большого Брата. Обработка запроса завершена.
Приветствую! Я проанализировал предложенные Вами изменения. С технической точки зрения, работа выглядит отлично.
Сводка анализа:
- 🔴 Критических замечаний: 0
- 🟡 Рекомендаций: 1
- 💡 Предложений: 0
🟡 Рекомендации по улучшению:
code/datums/ai/monkey/monkey_controller.dm:102: Вместо прямого сравнения типа (istype) для исключения вортекс-шотгана, рекомендуется использовать систему трейтов (например,TRAIT_MONKEY_PROOF). Это сделает код более гибким и упростит добавление других исключений в будущем.
Вы отлично справились с исправлением двух несвязанных проблем. Изменение в atmosgrenade.dm корректно устраняет ошибку, из-за которой объект гранаты не удалялся после детонации.
Пожалуйста, ознакомьтесь с комментарием к строкам кода для получения более подробной информации.
Спасибо за ваш вклад в проект!
| var/pickpocket = FALSE | ||
| for(var/mob/living/carbon/human/human in oview(5, living_pawn)) | ||
| var/obj/item/held_weapon = GetBestWeapon(list(human.get_active_hand(), human.get_inactive_hand()) + weapon, list(living_pawn.get_active_hand(), living_pawn.get_inactive_hand())) | ||
| if(istype(held_weapon, /obj/item/gun/energy/vortex_shotgun)) |
There was a problem hiding this comment.
🟡 Рекомендация по улучшению поддерживаемости
Ваше исправление корректно решает проблему с кражей вортекс-шотгана. Однако, для улучшения поддерживаемости кода в будущем, я бы рекомендовал использовать систему трейтов (traits) вместо прямого сравнения типа (istype). Это позволит легко добавлять другие предметы, которые обезьяны не должны воровать, не изменяя логику контроллера обезьян.
Например, можно добавить трейт TRAIT_MONKEY_PROOF к вортекс-шотгану и проверять его наличие здесь. Для этого потребуется добавить ADD_TRAIT(src, TRAIT_MONKEY_PROOF, INNATE_TRAIT) в Initialize() для /obj/item/gun/energy/vortex_shotgun.
if(HAS_TRAIT(held_weapon, TRAIT_MONKEY_PROOF))
|
Когда-то этот пр рассмотрят |
Что этот ПР делает
https://discord.com/channels/617003227182792704/1464562385405870214
Почему это хорошо для игры
Дюпа вортекса теперь нету
Демонстрация изменений
Демонстрации изменений
Тестирование