anchor.diff:  		//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 23) / 5
  -		removed.temperature += ((device_energy * dynamic_heat_modifier) / THERMAL_RELEASE_MODIFIER)
  +		// so this is added ((device_energy * dynamic_heat_modifier) / THERMAL_RELEASE_MODIFIER)
  +		// oh and  
   		//We can only emit so much heat, that being 57500
  -		removed.temperature = max(0, min(removed.temperature, 2500 * dynamic_heat_modifier))
  +		// so max() it all.
  +		removed.set_temperature(max(0, min(removed.temperature + ((device_energy * dynamic_heat_modifier) / THERMAL_RELEASE_MODIFIER), 2500 * dynamic_heat_modifier)))
   
   		//Calculate how much gas to release
   		//Varies based on power and gas content
  -		removed.gases[/datum/gas/plasma][MOLES] += max((device_energy * dynamic_heat_modifier) / PLASMA_RELEASE_MODIFIER, 0)
  +		removed.adjust_moles(/datum/gas/plasma, max((device_energy * dynamic_heat_modifier) / PLASMA_RELEASE_MODIFIER, 0))
   		//Varies based on power, gas content, and heat
  -		removed.gases[/datum/gas/oxygen][MOLES] += max(((device_energy + removed.temperature * dynamic_heat_modifier) - T0C) / OXYGEN_RELEASE_MODIFIER, 0)
  +		removed.adjust_moles(/datum/gas/oxygen, max(((device_energy + removed.return_temperature() * dynamic_heat_modifier) - T0C) / OXYGEN_RELEASE_MODIFIER, 0))
   
   		if(produces_gas)
   			env.merge(removed)
  
positive.code: 
  	return 1
  
  /obj/machinery/power/supermatter_crystal/bullet_act(obj/projectile/Proj)
  	var/turf/L = loc
  	if(!istype(L))
  		return FALSE
  
negative.code: 			//((((some value between 0.5 and 1 * temp - ((273.15 + 40) * some values between 1 and 10)) * some number between 0.25 and knock your socks off / 150) * 0.25
  			//Heat and mols account for each other, a lot of hot mols are more damaging then a few
  			//Mols start to have a positive effect on damage after 350
  			damage = max(damage + (max(clamp(removed.total_moles() / 200, 0.5, 1) * removed.return_temperature() - ((T0C + HEAT_PENALTY_THRESHOLD)*dynamic_heat_resistance), 0) * mole_heat_penalty / 150 ) * DAMAGE_INCREASE_MULTIPLIER, 0)
  			//Power only starts affecting damage when it is above 5000
  			damage = max(damage + (max(power - POWER_PENALTY_THRESHOLD, 0)/500) * DAMAGE_INCREASE_MULTIPLIER, 0)
  			//Molar count only starts affecting damage when it is above 1800
  