anchor.diff:  	//Possibly burning a bit of organic matter through maillard reaction, so a *tiny* bit more heat would be understandable
   	air.temperature += cleaned_air * 0.002
   	SSresearch.science_tech.add_point_type(TECHWEB_POINT_TYPE_DEFAULT, cleaned_air*MIASMA_RESEARCH_AMOUNT)//Turns out the burning of miasma is kinda interesting to scientists
  -
  -/datum/gas_reaction/stim_ball
  -	priority = 7
  -	name ="Stimulum Energy Ball"
  -	id = "stimball"
  -
  -/datum/gas_reaction/stim_ball/init_reqs()
  -	min_requirements = list(
  -		/datum/gas/pluoxium = STIM_BALL_GAS_AMOUNT,
  -		/datum/gas/stimulum = STIM_BALL_GAS_AMOUNT,
  -		/datum/gas/nitryl = MINIMUM_MOLE_COUNT,
  -		/datum/gas/plasma = MINIMUM_MOLE_COUNT,
  -		"TEMP" = FIRE_MINIMUM_TEMPERATURE_TO_EXIST
  -	)
  -/datum/gas_reaction/stim_ball/react(datum/gas_mixture/air, datum/holder)
  -	var/list/cached_gases = air.gases
  -	var/turf/open/location
  -	var/old_heat_capacity = air.heat_capacity()
  -	if(istype(holder,/datum/pipeline)) //Find the tile the reaction is occuring on, or a random part of the network if it's a pipenet.
  -		var/datum/pipeline/pipenet = holder
  -		location = get_turf(pick(pipenet.members))
  -	else
  -		location = get_turf(holder)
  -	air.assert_gases(/datum/gas/water_vapor,/datum/gas/nitryl,/datum/gas/carbon_dioxide,/datum/gas/nitrogen)
  -	var/ball_shot_angle = 180*cos(cached_gases[/datum/gas/water_vapor][MOLES]/cached_gases[/datum/gas/nitryl][MOLES])+180
  -	var/stim_used = min(STIM_BALL_GAS_AMOUNT/cached_gases[/datum/gas/plasma][MOLES],cached_gases[/datum/gas/stimulum][MOLES])
  -	var/pluox_used = min(STIM_BALL_GAS_AMOUNT/cached_gases[/datum/gas/plasma][MOLES],cached_gases[/datum/gas/pluoxium][MOLES])
  -	var/energy_released = stim_used*STIMULUM_HEAT_SCALE//Stimulum has a lot of stored energy, and breaking it up releases some of it
  -	location.fire_nuclear_particle(ball_shot_angle)
  -	cached_gases[/datum/gas/carbon_dioxide][MOLES] += 4*pluox_used
  -	cached_gases[/datum/gas/nitrogen][MOLES] += 8*stim_used
  -	cached_gases[/datum/gas/pluoxium][MOLES] -= pluox_used
  -	cached_gases[/datum/gas/stimulum][MOLES] -= stim_used
  -	cached_gases[/datum/gas/plasma][MOLES] *= 0.5 //Consumes half the plasma each time.
  -	if(energy_released)
  -		var/new_heat_capacity = air.heat_capacity()
  -		if(new_heat_capacity > MINIMUM_HEAT_CAPACITY)
  -			air.temperature = CLAMP((air.temperature*old_heat_capacity + energy_released)/new_heat_capacity,TCMB,INFINITY)
  -		return REACTING
  
positive.code: 
  /datum/gas_reaction/stimformation/init_reqs()
  	min_requirements = list(
  		/datum/gas/tritium = 30,
  		/datum/gas/plasma = 10,
  		/datum/gas/bz = 20,
  		/datum/gas/nitryl = 30,
  
negative.code: 	var/temperature = air.temperature
  
  	var/old_heat_capacity = air.heat_capacity()
  	var/heat_efficency = min(temperature/(FIRE_MINIMUM_TEMPERATURE_TO_EXIST*60),cached_gases[/datum/gas/oxygen][MOLES],cached_gases[/datum/gas/nitrogen][MOLES])
  	var/energy_used = heat_efficency*NITRYL_FORMATION_ENERGY
  	ASSERT_GAS(/datum/gas/nitryl,air)
  	if ((cached_gases[/datum/gas/oxygen][MOLES] - heat_efficency < 0 )|| (cached_gases[/datum/gas/nitrogen][MOLES] - heat_efficency < 0)) //Shouldn't produce gas from nothing.
  