I did some research on how syndromes are transmitted via gases using DFHack and some disassembly diving. My test syndrome temporarily causes the creature's tile to flash, allowing easy detection of results.
1. Material bursts (but not steam bursts, which are hardcoded).
The Human 1 is caught in a burst of boiling zinc!
- Applies temperature and contaminants
- However syndromes are NOT applied. (I didn't test contact syndrome dust contaminants, and my boiling zinc burst didn't leave contaminants, so at least INHALED syndromes are not applied here).
- This is not part of the "flows" code, and is related to transferring contaminants and temperatures to buildings, items, and perhaps plants. It happens 100% of the time a unit is visually in a material gas, once every few ticks?
- The [CAUGHT_IN_FLAMES:A_D:UCR_A] announcement data is used.
2. Material clouds.
Human 7 is caught in a cloud of boiling zinc!
- Applies temperatures, contaminants, and syndromes (notably applies INHALED syndromes)
- Is part of the "flows" code which only targets creatures
- Only happens 10% (ten percent) of the time, OR if the unit flag "check_flows" is true (and that flag is set to true when a creature steps into another tile). There is no other randomness preventing the application of inhaled syndromes.
3. Other flows.
A list of flows:
Miasma
Steam
Mist
MaterialDust
MagmaMist
Smoke
Dragonfire
Fire
Web
MaterialGas
MaterialVapor
OceanWave
SeaFoam
If a unit has a shield, dragonfire will never appear in the same tile as it. However without a shield, you only get the "caught in dragonfire" message 10% of the time (if standing still) or if you step into a tile with dragonfire. However apparently dragonfire has multiple routes to causing thermal damage, so you can still burn even if you stand still. Units may die faster if they move around in the breath.
Similarily it appears that miasma and waterfall thoughts would occur 10% of the time unless the unit is moving.