Skip to content

Commit

Permalink
"Actually on second thought and some testing these really aren't as s…
Browse files Browse the repository at this point in the history
…ignificant as I thought they were" buffs to smoke and foam. (tgstation#65155)

This PR buffs smoke and foam in two ways.

    It increases the hardcap on carried reagent volume for smoke to 1000u. This is on par with foam, which also has a reagent multiplying effect that smoke does not have.
    It permits reactions within both smoke and foam. This could be more dangerous as it could allow for smoke/foam to make more smoke/foam, but these reactions would consume the contents of the smoke and foam so it shouldn't cause too much trouble.

What this means for you.

In all honesty these changes won't make chemical weapons significantly more powerful than their current state.

While you would think that doubling the carrying capacity of smoke would make a significant difference in reality it really doesn't. The vast majority of chemical delivery methods had payload capacities too low to run up against the old hardcap. Of the ones that could only chemical payloads really have the capacity to take full advantage of it and when was the last time you saw an antagonist actually use a chemical payload with smoke? I don't think I ever have. For those still concerned about balance: a smoke mix with a 500u blend of acids optimized for damage deals 52.35 total damage each tick on an unprotected target. The same mix at 1000u deals 53.1 total damage each tick. This is a difference of 1.5%, hardly enough to notice.

On the other hand, the change to make foam mixes allow reactions within the foam would be a massive change..... but reactions have already been allowed within smoke for months now. That's probably been the case since tgstation#56019 dropped actually. All this PR does it allow them within foam as well. On that note, after some testing foam is significantly less potent than smoke in this manner for a few reasons. Firstly, foam is blocked by a multitude of common objects that smoke simply isn't: tables, lockers, and crates for a start. Secondly, foam divides the reagents used to make the foam by the range* of the foam when it is initially created. As such it is necessary to cram about twice as much reactant into the foam to get the same effect as the same mix (but smoke) with a lower dispersal range.

First off, the fact that smoke and foam have carry volume hardcaps at all is not well communicated. To my knowledge it is not mentioned anywhere in game or on the wiki. Essentially the only way to figure out that they exists is either to code dive or to build high density smoke chemical payloads and notice that they are somewhat less effective than they should be. I cannot remove the hardcaps entirely so the next best thing is making sure that both hardcaps are in the same place.

Secondarily, I have been enjoying applying delayed-reaction smoke for about a month now and haven't really seen a reason for it to be blocked in foam as well. I would like for other chemists to try to also use delayed-reaction smoke as well because I find it interesting and I'm pretty certain I haven't fully explored what is possible using it. After doing some testing this should not notably effect game balance as foam is significantly less effective than smoke in this manner of application.
  • Loading branch information
TemporalOroboros committed Mar 29, 2022
1 parent 77db89f commit 1879e2d
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 5 deletions.
4 changes: 2 additions & 2 deletions code/game/objects/effects/effect_system/effects_foam.dm
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@

/obj/effect/particle_effect/foam/Initialize(mapload)
. = ..()
create_reagents(1000, REAGENT_HOLDER_INSTANT_REACT) //limited by the size of the reagent holder anyway. Works without instant possibly edit in future
create_reagents(1000) //limited by the size of the reagent holder anyway.
START_PROCESSING(SSfastprocess, src)
playsound(src, 'sound/effects/bubbles2.ogg', 80, TRUE, -3)
AddElement(/datum/element/atmos_sensitive, mapload)
Expand Down Expand Up @@ -226,7 +226,7 @@
/datum/effect_system/foam_spread/New()
..()
chemholder = new()
chemholder.create_reagents(1000, REAGENT_HOLDER_INSTANT_REACT)
chemholder.create_reagents(1000, NO_REACT)

/datum/effect_system/foam_spread/Destroy()
QDEL_NULL(chemholder)
Expand Down
5 changes: 2 additions & 3 deletions code/game/objects/effects/effect_system/effects_smoke.dm
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@

/obj/effect/particle_effect/smoke/Initialize(mapload)
. = ..()
create_reagents(500)
create_reagents(1000)
START_PROCESSING(SSobj, src)


Expand Down Expand Up @@ -272,8 +272,7 @@
/datum/effect_system/smoke_spread/chem/New()
..()
chemholder = new()
//This is a safety for now to prevent smoke generating more smoke as the smoke reagents react in the smoke. This is prevented naturally from happening even if this is off, but I want to be sure that any edge cases are prevented before I get a chance to rework smoke reactions (specifically adding water or reacting away stabilizing agent in the middle of it).
chemholder.create_reagents(500, REAGENT_HOLDER_INSTANT_REACT)
chemholder.create_reagents(1000, NO_REACT)

/datum/effect_system/smoke_spread/chem/Destroy()
QDEL_NULL(chemholder)
Expand Down

0 comments on commit 1879e2d

Please sign in to comment.