fix: Nuclear disk movement in case of cryosleep fix#2535
Conversation
There was a problem hiding this comment.
Code Review
This pull request introduces logic to relocate the nuclear disk when it is stored inside the cryopod's control computer. A critical issue was identified where control_computer could be null, leading to a runtime error when calling get_all_contents(). A null check should be added to ensure safety.
| var/obj/item/disk/nuclear/disk = locate(/obj/item/disk/nuclear) in control_computer.get_all_contents() | ||
| if(disk) | ||
| var/datum/component/stationloving/loving = disk.GetComponent(/datum/component/stationloving) | ||
| if(loving) | ||
| loving.relocate() |
There was a problem hiding this comment.
🔴 Критическая ошибка
Обнаружено потенциальное обращение к null объекту. Переменная control_computer может быть null (например, если консоль управления отсутствует или была уничтожена). Вызов метода get_all_contents() на null объекте вызовет ошибку времени выполнения (runtime error).
Пожалуйста, добавьте проверку if(control_computer) перед поиском диска.
if(control_computer)
var/obj/item/disk/nuclear/disk = locate(/obj/item/disk/nuclear) in control_computer.get_all_contents()
if(disk)
var/datum/component/stationloving/loving = disk.GetComponent(/datum/component/stationloving)
if(loving)
loving.relocate()
References
- Null-safety: Требовать проверку на null перед использованием объекта. (link)
- Требовать проверку на null перед использованием объекта.
|
This PR has been inactive for long enough to be automatically marked as stale. This means it is at risk of being auto closed in ~7 days. Please address any outstanding review items and ensure your PR is finished - if both are true, and you have auto-staled anyway, you need to actively ask maintainers (by pinging them in the /tg/station Discord) to (re)review or merge your PR. If no maintainer responds to your request, you may wish to close this PR yourself while you seek maintainer comment, as you will later be able to reopen the PR yourself. |
|
@Voyaker-coder Отписывал по фиксу в - #2532 |
Угу, увидел. Был занят ивентом, скоро переделаю |
Что этот PR делает
Перемещает диск ядерной аутентификации на пол рядом с криоподом в случае покидания "куклы" раунда путём ухода в криосон.
Почему это хорошо для игры
Диск оставался в хранилище консоли крио после ухода его владельца. Было решено это исправить.
Изображения изменений
Не особо нужно
Тестирование
Локально. Диск перемещается только после непосредственного удаления "куклы" из мира после гостования. Остальное содержимое по прежнему переходит в хранилище консоли.
Changelog
🆑
fix: Исправлена проблема, при которой диск ядерной аутентификации оставался в хранилище консоли криокапсул в случае, если владелец диска покинул раунд путём ухода в криосон. Теперь он остается на полу рядом с криокапсулой для более интуитивного нахождения.
/:cl: