anchor.diff:  
   	if(air1.gases.len)
   		if(mob_occupant.bodytemperature < T0C) // Sleepytime. Why? More cryo magic.
  -			mob_occupant.Sleeping((mob_occupant.bodytemperature * sleep_factor) * 2000)
  -			mob_occupant.Unconscious((mob_occupant.bodytemperature * unconscious_factor) * 2000)
  +			// temperature factor goes from 1 to about 2.5
  +			var/amount = max(1, (4 * log(T0C - mob_occupant.bodytemperature)) - 20) * knockout_factor * base_knockout
  +			mob_occupant.Sleeping(amount)
  +			mob_occupant.Unconscious(amount)
   		if(beaker)
   			if(reagent_transfer == 0) // Magically transfer reagents. Because cryo magic.
   				beaker.reagents.trans_to(occupant, 1, efficiency * 0.25) // Transfer reagents.
  
positive.code: 	var/C
  	for(var/obj/item/stock_parts/matter_bin/M in component_parts)
  		C += M.rating
  
  	efficiency = initial(efficiency) * C
  	sleep_factor = initial(sleep_factor) * C
  	unconscious_factor = initial(unconscious_factor) * C
  	heat_capacity = initial(heat_capacity) / C
  	conduction_coefficient = initial(conduction_coefficient) * C
  
  
negative.code: 	var/volume = 100
  
  	var/efficiency = 1
  	var/base_knockout = 30 SECONDS
  	var/knockout_factor = 1
  	var/heat_capacity = 20000
  	var/conduction_coefficient = 0.3
  
  