Skip to content

Рефактор игрушек WIP#9244

Draft
Bess3 wants to merge 38 commits into
ss220-space:master220from
Bess3:toys_refactor
Draft

Рефактор игрушек WIP#9244
Bess3 wants to merge 38 commits into
ss220-space:master220from
Bess3:toys_refactor

Conversation

@Bess3

@Bess3 Bess3 commented May 13, 2026

Copy link
Copy Markdown
Contributor

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

В первую очередь это рефактор файла toys.dm
Помимо этого были портированы воздушные шарики с тг. Они разноцветные и из них можно скручивать животных.
Также были добавлены новые плюшевые игрушки СМО, Глорп и пиздосик.
Ну и локализация игрушек идёт в комплекте
В планах раскидать дополнительные игрушки и спавнеры игрушек по картам, а также добавить больше игрушек в лоадауты

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

Рефактор для будущего удобства, я убрал кучу копипаста и обобщил код для всех игрушек
СМО, глорп и пиздосик это крутые игрушки, которые уже были проверены на сменах админскими кнопками

Демонстрация изменений

Изображения и видео

Новые воздушные шарики image

Плюшевая кукла СМО

image

Глорп
image

Пиздосик в щитспавн
image

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

🆑
add: Новые шарики с возможностью скручивать фигурки животных
add: Плюшевая игрушка СМО, Глорп, пиздосик (щитспавн)
refactor: Файл игрушек разбит на подфайлы/Рефактор кода игрушек
image: inhand у игрушки грея
del: therapy doll, toddler, toy beacon, virus pop
/:cl:

@Bess3 Bess3 requested a review from a team as a code owner May 13, 2026 12:24
@Bess3 Bess3 marked this pull request as draft May 13, 2026 12:24
@github-actions github-actions Bot added Merge Conflict PR содержит изменения, конфликтующие с master-веткой. Изменение карты PR содержит изменения в файлах карт. Спрайты PR содержит изменения в файлах DMI. Звук PR изменяет звуковые эффекты. Refactor PR проводит рефакторинг кода. Code Improvement PR улучшает код. Quality of Life PR улучшает удобство и качество геймплея. and removed Merge Conflict PR содержит изменения, конфликтующие с master-веткой. labels May 13, 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

This pull request refactors the toy system by modularizing balloon and plushie definitions into dedicated files and updating their item paths. The reviewer has identified several instances where English strings, including item descriptions and player messages within the new code, violate the project's localization style guide and require translation into Russian.

Comment thread code/game/objects/items/toys/balloons.dm Outdated
Comment thread code/game/objects/items/toys/balloons.dm Outdated
Comment thread code/game/objects/items/toys/balloons.dm Outdated
Comment thread code/game/objects/items/toys/balloons.dm Outdated
@github-actions github-actions Bot added the Feature PR добавляет новые механики или изменения в игровом процессе. label May 13, 2026
@AurothWyvern AurothWyvern added 📜 Локализация Локализация PR содержит текст на русском языке и должен быть проверен ревьюерами локализации. and removed 📜 Локализация labels May 13, 2026
@Bess3

Bess3 commented May 25, 2026

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

В данном пулл-реквизите проведена масштабная реорганизация системы игрушек с разделением кода на категории и обновлением путей типов в скриптах и файлах карт. Основные замечания касаются предотвращения критических ошибок выполнения (runtimes) при удалении удерживаемых игроками предметов без вызова transfer_item_to_loc(). Также предложены архитектурные правки для нового элемента update_icon_updates_onmob, рекомендации по оптимизации производительности через статические списки и требования по соблюдению стайлгайда в части локализации. Дополнительно отмечены мелкие недочеты: дублирование переменных и отсутствие проверок на null для реагентов.

Comment thread code/game/objects/items/toys/balloons.dm
Comment thread code/game/objects/items/toys/plushies.dm
Comment thread code/game/objects/items/toys/weapons.dm
Comment on lines +10 to +16
/datum/element/update_icon_updates_onmob/Attach(datum/target, flags, body = FALSE)
. = ..()
if(!isitem(target))
return ELEMENT_INCOMPATIBLE
RegisterSignal(target, COMSIG_ATOM_UPDATED_ICON, PROC_REF(update_onmob))
update_flags = flags
update_body = body

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.

medium

🟡 Рекомендация по архитектуре

Для элементов с флагом ELEMENT_BESPOKE инициализацию аргументов следует проводить в New(), а не в Attach(). Это связано с тем, что экземпляр элемента создается один раз для уникального набора аргументов и разделяется между всеми объектами, к которым он прикреплен.

Также переменная update_body устанавливается, но не используется в процедуре update_onmob(). Рекомендую добавить вызов M.update_body().

/datum/element/update_icon_updates_onmob/New(datum/target, flags, body = FALSE)
	. = ..()
	update_flags = flags
	update_body = body

/datum/element/update_icon_updates_onmob/Attach(datum/target)
	. = ..()
	if(!isitem(target))
		return ELEMENT_INCOMPATIBLE
	RegisterSignal(target, COMSIG_ATOM_UPDATED_ICON, PROC_REF(update_onmob))

Comment thread code/game/objects/items/toys/balloons.dm
Comment thread code/game/objects/items/toys/balloons.dm Outdated
Comment thread code/game/objects/items/toys/plushies.dm Outdated
Comment thread code/game/objects/items/toys/plushies.dm
Comment thread code/game/objects/items/toys/plushies.dm Outdated
Comment thread code/game/objects/items/toys/action_figures.dm Outdated
@github-actions github-actions Bot added Removal PR удаляет какой-то код. Merge Conflict PR содержит изменения, конфликтующие с master-веткой. labels Jun 1, 2026
@github-actions github-actions Bot added Merge Conflict PR содержит изменения, конфликтующие с master-веткой. and removed Merge Conflict PR содержит изменения, конфликтующие с master-веткой. labels Jun 15, 2026
@github-actions github-actions Bot added the Merge Conflict PR содержит изменения, конфликтующие с master-веткой. label Jun 17, 2026
@github-actions github-actions Bot removed the Merge Conflict PR содержит изменения, конфликтующие с master-веткой. label Jun 18, 2026
@github-actions github-actions Bot added Merge Conflict PR содержит изменения, конфликтующие с master-веткой. and removed Merge Conflict PR содержит изменения, конфликтующие с master-веткой. labels Jun 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Code Improvement PR улучшает код. Feature PR добавляет новые механики или изменения в игровом процессе. Quality of Life PR улучшает удобство и качество геймплея. Refactor PR проводит рефакторинг кода. Removal PR удаляет какой-то код. Звук PR изменяет звуковые эффекты. Изменение карты PR содержит изменения в файлах карт. Локализация PR содержит текст на русском языке и должен быть проверен ревьюерами локализации. Спрайты PR содержит изменения в файлах DMI.

Projects

Status: В работе

Development

Successfully merging this pull request may close these issues.

3 participants