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

Prevents the most common case of fire settling with an excited group #56317

Merged
merged 1 commit into from
Jan 23, 2021

Conversation

LemonInTheDark
Copy link
Member

@LemonInTheDark LemonInTheDark commented Jan 21, 2021

About The Pull Request

Basically when a group with a breakdown timer one tick away from settling merges with a group with hotspots in
it, and the one with a high breakdown timer is larger, the group would settle without respecting the timer of
the hotspot group, causing fwoosh levels of flame.

There's two other ways to achieve this, if you had one group of tiles that are close to the same gasmix as another
group, except really hot, and they became inactive, we'd have the same issue. I've solved this by moving the hotspot subprocess to
after active turfs and before excited groups, just for safety ya feel me?

It's still in theory possible, but much much harder. The hard solution to this would be to integrate heat with
how we reset excited group timers, and split excited groups into smaller portions, but I'm not sure I like that idea.
I need to mull it over.

Oh and I did some cleanup of SSair.

Why It's Good For The Game

Almost totally prevents this

Changelog

🆑
fix: Fixes an edgecase where groups of gas could settle while on fire
/:cl:

Basically when a group with a breakdown timer one tick away from settling merges with a group with hotspots in
it, and the one with a high breakdown timer is larger, the group would settle without respecting the timer of
the hotspot group, causing fwoosh levels of flame.

There's two other ways to achieve this, if you had one group of tiles that are close to the same gasmix as
another
group, and they became inactive, we'd have the same issue. I've solved this by moving the hotspot subprocess to
after active turfs and before excited groups, just for safety ya feel me?

It's still in theory possible, but much much harder. The hard solution to this would be to integrate heat with
how we reset excited group timers, and split excited groups into smaller portions, but I'm not sure I like that
idea.
I need to mull it over.
@tgstation-server tgstation-server added the Fix Rewrites a bug so it appears in different circumstances label Jan 21, 2021
@LemonInTheDark
Copy link
Member Author

I need to document excited timers more thoroughly, but that will come later

@LemonInTheDark LemonInTheDark added the Atmospherics Nobody knows how this code works label Jan 21, 2021
@TemporalOroboros
Copy link
Contributor

On the one hand, bug. On the other hand, awesome.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Atmospherics Nobody knows how this code works Fix Rewrites a bug so it appears in different circumstances
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants