anchor.diff:  		else
   			pluoxiumbonus = 0
   
  +		if (h2ocomp >= 0.35 && h2ocomp <= 0.45) //heat protection from h2o only works when it's between 35 and 45%
  +			h2obonus = 1
  +		else
  +			h2obonus = 0
  +
  +		switch(h2ocomp)
  +			if (-INFINITY to 0.05) //non h2o delamination fix
  +				h2omalus = 1
  +			if(0.05 to 0.45) //the engine will stop producing power from 5% to 45% h2o (slow down the o2 and plasma generation too)
  +				h2omalus = 0.05
  +			if (0.45 to INFINITY)
  +				h2omalus = 2  //when gas comp is above 0.45 the engine will start to freak out
  +
  +		switch(h2ocomp)  //variability in the h2o penalty calculation depending on the %
  +			if(-INFINITY to 0.30)
  +				h2ofixed = 1
  +			if(0.30 to 0.50)
  +				h2ofixed = 0.5
  +			if(0.5 to INFINITY)
  +				h2ofixed = 2
  +
   		//No less then zero, and no greater then one, we use this to do explosions and heat to power transfer
  -		gasmix_power_ratio = min(max(plasmacomp + o2comp + co2comp + tritiumcomp + bzcomp - pluoxiumcomp - n2comp, 0), 1)
  -		//Minimum value of 1.5, maximum value of 15
  -		dynamic_heat_modifier = max((plasmacomp * PLASMA_HEAT_PENALTY) + (o2comp * OXYGEN_HEAT_PENALTY) + (co2comp * CO2_HEAT_PENALTY) + (tritiumcomp * TRITIUM_HEAT_PENALTY) + ((pluoxiumcomp * PLUOXIUM_HEAT_PENALTY) * pluoxiumbonus) + (n2comp * NITROGEN_HEAT_PENALTY) + (bzcomp * BZ_HEAT_PENALTY), 0.5)
  -		//Value between 6 and 1
  -		dynamic_heat_resistance = max((n2ocomp * N2O_HEAT_RESISTANCE) + ((pluoxiumcomp * PLUOXIUM_HEAT_RESISTANCE) * pluoxiumbonus), 1)
  +		gasmix_power_ratio = min(max(((plasmacomp + o2comp + co2comp + h2ocomp + tritiumcomp + bzcomp - pluoxiumcomp - n2comp) * h2omalus), 0), 1)
  +		//Minimum value of 1.5, maximum value of 23
  +		dynamic_heat_modifier += plasmacomp * PLASMA_HEAT_PENALTY
  +		dynamic_heat_modifier += o2comp * OXYGEN_HEAT_PENALTY
  +		dynamic_heat_modifier += co2comp * CO2_HEAT_PENALTY
  +		dynamic_heat_modifier += tritiumcomp * TRITIUM_HEAT_PENALTY
  +		dynamic_heat_modifier += (pluoxiumcomp * PLUOXIUM_HEAT_PENALTY) * pluoxiumbonus
  +		dynamic_heat_modifier += n2comp * NITROGEN_HEAT_PENALTY
  +		dynamic_heat_modifier += bzcomp * BZ_HEAT_PENALTY
  +		dynamic_heat_modifier *= h2omalus
  +		dynamic_heat_modifier += (h2ocomp * H2O_HEAT_PENALTY) * h2ofixed
  +		dynamic_heat_modifier = max(dynamic_heat_modifier, 0.5)
  +		//Value between 1 and 10
  +		dynamic_heat_resistance = max((n2ocomp * N2O_HEAT_RESISTANCE) + ((h2ocomp * H2O_HEAT_RESISTANCE) * h2obonus) + ((pluoxiumcomp * PLUOXIUM_HEAT_RESISTANCE) * pluoxiumbonus), 1)
   		//Value between 30 and -5, used to determine radiation output as it concerns things like collecters
  -		power_transmission_bonus = (plasmacomp * gas_trans["PL"]) + (o2comp * gas_trans["O2"]) + (bzcomp * gas_trans["BZ"]) + (tritiumcomp * gas_trans["TRIT"]) + ((pluoxiumcomp * gas_trans["PLX"]) * pluoxiumbonus)
  +		power_transmission_bonus += plasmacomp * gas_trans["PL"]
  +		power_transmission_bonus += o2comp * gas_trans["O2"]
  +		power_transmission_bonus += (h2ocomp * gas_trans["WV"])*h2obonus
  +		power_transmission_bonus += bzcomp * gas_trans["BZ"]
  +		power_transmission_bonus += tritiumcomp * gas_trans["TRIT"]
  +		power_transmission_bonus += (pluoxiumcomp * gas_trans["PLX"]) * pluoxiumbonus
  +		power_transmission_bonus *= h2omalus
   
   		//more moles of gases are harder to heat than fewer, so let's scale heat damage around them
   		mole_heat_penalty = max(combined_gas / MOLE_HEAT_PENALTY, 0.25)
  
positive.code: 
  		//Also keep in mind we are only adding this temperature to (efficiency)% of the one tile the rock
  		//is on. An increase of 4*C @ 25% efficiency here results in an increase of 1*C / (#tilesincore) overall.
  		//Power * 0.55 * (some value between 1.5 and 15) / 5
  		removed.temperature += ((device_energy * dynamic_heat_modifier) / THERMAL_RELEASE_MODIFIER)
  		//We can only emit so much heat, that being 37500
  		removed.temperature = max(0, min(removed.temperature, 2500 * dynamic_heat_modifier))
  
  		//Calculate how much gas to release
  
negative.code: 	var/tritiumcomp = 0
  	var/bzcomp = 0
  	var/pluoxiumcomp = 0
  	var/h2ocomp = 0
  
  	var/pluoxiumbonus = 0
  	var/h2obonus = 0 //used when calculating if the heat resitance from h2o is applied
  	var/h2omalus = 1 //used when calculating if the h2o "malus" is applied, the malus is an increase in power, waste gases and heat (wich is bad if not ready) also now used when calculating amount of radiations
  	var/h2ofixed = 0.5 //fix for the heat penalty, making it work differently at different %
  
  	var/combined_gas = 0
  	var/gasmix_power_ratio = 0
  