anchor.diff:  	var/turf/L = loc
   	if(!istype(L))
   		return FALSE
  -	if(!istype(Proj.firer, /obj/machinery/power/emitter) && produces_gas)
  +	if(!istype(Proj.firer, /obj/machinery/power/emitter) && power_changes)
   		investigate_log("has been hit by [Proj] fired by [key_name(Proj.firer)]", INVESTIGATE_SUPERMATTER)
  -	if(Proj.flag != "bullet" && produces_gas)
  -		power += Proj.damage * bullet_energy
  -		if(!has_been_powered)
  -			investigate_log("has been powered for the first time.", INVESTIGATE_SUPERMATTER)
  -			message_admins("[src] has been powered for the first time [ADMIN_JMP(src)].")
  -			has_been_powered = TRUE
  +	if(Proj.flag != "bullet")
  +		if(power_changes) //This needs to be here I swear
  +			power += Proj.damage * bullet_energy
  +			if(!has_been_powered)
  +				investigate_log("has been powered for the first time.", INVESTIGATE_SUPERMATTER)
  +				message_admins("[src] has been powered for the first time [ADMIN_JMP(src)].")
  +				has_been_powered = TRUE
   	else if(takes_damage)
   		damage += Proj.damage * bullet_energy
   	return BULLET_ACT_HIT
  
positive.code: 
  	//Transitions between one function and another, one we use for the fast inital startup, the other is used to prevent errors with fusion temperatures.
  	//Use of the second function improves the power gain imparted by using co2
  	power = max(power - min(((power/500)**3) * powerloss_inhibitor, power * 0.83 * powerloss_inhibitor) * (1 - (0.2 * psyCoeff)),0)
  	//After this point power is lowered
  	//This wraps around to the begining of the function
  	//Handle high power zaps/anomaly generation
  
negative.code: 
  		//Releases stored power into the general pool
  		//We get this by consuming shit or being scalpeled
  		if(matter_power && power_changes)
  			//We base our removed power off one 10th of the matter_power.
  			var/removed_matter = max(matter_power/MATTER_POWER_CONVERSION, 40)
  			//Adds at least 40 power
  