Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Task] Рефакторинг/обновление пожаров #11814

Open
volas opened this issue Aug 2, 2023 · 2 comments
Open

[Task] Рефакторинг/обновление пожаров #11814

volas opened this issue Aug 2, 2023 · 2 comments
Labels
Task Задания партии

Comments

@volas
Copy link
Member

volas commented Aug 2, 2023

Пока просто заметки на будущее.

  • fire_act имеет три аргумента, но реально использует только 1 из них
  • у мобов кроме fire_act зачем-то есть еще FireBurn (типо, разная площадь применения?). Оба обрабатывают разные части реакции на один и тот же огонь.
  • возможно следует в turf/hotspot_expose включить еще и FireBurn/fire_act на предметы и мобов внути
  • все эти функции без документации, зачастую не понятно, что делают или должны делать те или иные аргументы (возможно стоит оглянуться на бэй, где это могли довести до лучшего вида)
  • fire_act сигналы, обсуждалось в Термит может плавить почти всё #9529 (review)
    • тот рефакторинг термита нужно тоже как нибудь добить, но к пожарам слабо относится
  • возможно следует как-то переписать/обеденить /obj/effect/firewave в нативные пожары

И в целом, после глобальной разрушаемости, было бы неплохо добавить собственно горение предметов. В чем-то наверно можно позаимствовать механику с тг (пожары не получится, разный атмос), и завязать реакцию горения на fire_act. Нужно будет обрабатывать в рамках сабсистемы, может собственной.

@TauKitty TauKitty added the Bug label Aug 2, 2023
@volas volas added Task Задания партии and removed Bug labels Aug 2, 2023
@Naroke
Copy link

Naroke commented Aug 13, 2023

Было бы круто, если бы свечи священника и горящие сигареты могли вызвать пожар

@volas
Copy link
Member Author

volas commented Jan 29, 2025

Механ разрушаемости атомов уже в билде, есть BURN как тим дамага и proc/burn() когда объект убит огнем.

fire_act сигналы

Есть общий сигнал COMSIG_ATOM_TAKE_DAMAGE, его достаточно.

Только вычистить легаси как с бумагой и всем предметам, которые должны вызывать горение, прописать соответствующие fire_act() реакции куда надо.

Для продолжающегося горения объекта может нужен элемент "горения", который бы накладывал оверлей и тикал дамаг по объекту, пока его кто-то не потушит. Ну или как-то по другому.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Task Задания партии
Projects
None yet
Development

No branches or pull requests

3 participants