New foam reactions for water varients (#96095)

## About The Pull Request
Adds slipless foam + one slipless foam for each life time + adjusted
long foam's life time from 30 seconds to 24.
Adds new foam reactions, list of what they produce below.
salt water = lasts shorter + no slip
soda water = lasts shorter
ice = no slip
holy water = lasts longer + no slip
hollow water = lasts longer
## Why It's Good For The Game
Sometimes, you want to flood medbay with a colorful reagent grenade
WITHOUT it slipping everyone and blocking it for a stupid amount of
time.
## Changelog
🆑
add: New reactions for water variants that make foam
code: New foam types that either slip or last longer or shorter
/🆑

---------

Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
This commit is contained in:
soulware
2026-05-24 11:07:09 +02:00
committed by GitHub
co-authored by Time-Green
parent b20c92dbb4
commit a85369b66a
3 changed files with 39 additions and 8 deletions
@@ -344,11 +344,37 @@
/datum/chemical_reaction/foam
required_reagents = list(/datum/reagent/fluorosurfactant = 1, /datum/reagent/water = 1)
// Does the foam slip you?
var/slippery = TRUE
// How long the foam lasts for
var/lifetime = 8 SECONDS
mob_react = FALSE
reaction_flags = REACTION_INSTANT
/datum/chemical_reaction/foam/hollow
required_reagents = list(/datum/reagent/fluorosurfactant = 1, /datum/reagent/water/hollowwater = 1)
lifetime = 24 SECONDS
/datum/chemical_reaction/foam/salt
required_reagents = list(/datum/reagent/fluorosurfactant = 1, /datum/reagent/water/salt = 1)
lifetime = 1 SECONDS
slippery = FALSE
/datum/chemical_reaction/foam/ice
required_reagents = list(/datum/reagent/fluorosurfactant = 1, /datum/reagent/consumable/ice = 1)
slippery = FALSE
/datum/chemical_reaction/foam/soda
required_reagents = list(/datum/reagent/fluorosurfactant = 1, /datum/reagent/consumable/sodawater = 1)
lifetime = 1 SECONDS
/datum/chemical_reaction/foam/holy
required_reagents = list(/datum/reagent/fluorosurfactant = 1, /datum/reagent/water/holywater = 1)
lifetime = 24 SECONDS
slippery = FALSE
/datum/chemical_reaction/foam/on_reaction(datum/reagents/holder, datum/equilibrium/reaction, created_volume)
holder.create_foam(/datum/effect_system/fluid_spread/foam, 2 * created_volume, notification = span_danger("The solution spews out foam!"), log = TRUE)
holder.create_foam(/datum/effect_system/fluid_spread/foam, 2 * created_volume, notification = span_danger("The solution spews out foam!"), log = TRUE, lifetime = src.lifetime, slippery = src.slippery)
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE
/datum/chemical_reaction/metalfoam