anchor.diff:  	if(panel_open)
   		to_chat(user, "<span class='notice'>[src]'s maintenance hatch is open!</span>")
   	if(in_range(user, src) || isobserver(user))
  -		to_chat(user, "<span class='notice'>The status display reads: <br>Recharging <b>[recharge_amount]</b> power units per interval.<br>Power efficiency increased by <b>[(powerefficiency*1000)-100]%</b>.<span>")
  -		switch(macrotier)
  -			if(1)
  -				to_chat(user, "<span class='notice'>Macro granularity at <b>5u</b>.<span>")
  -			if(2)
  -				to_chat(user, "<span class='notice'>Macro granularity at <b>3u</b>.<span>")
  -			if(3)
  -				to_chat(user, "<span class='notice'>Macro granularity at <b>2u</b>.<span>")
  -			if(4)
  -				to_chat(user, "<span class='notice'>Macro granularity at <b>1u</b>.<span>")
  +		to_chat(user, "<span class='notice'>The status display reads: <br>Recharging <b>[recharge_amount]</b> power units per interval.<br>Power efficiency increased by <b>[round((powerefficiency*1000)-100, 1)]%</b>.<br>Macro granularity at <b>[macroresolution]u</b>.<span>")
  +
   /obj/machinery/chem_dispenser/process()
   	if (recharge_counter >= 4)
   		if(!is_operational())
  
positive.code: 				return
  			var/recipe_to_use = params["recipe"]
  			var/list/chemicals_to_dispense = process_recipe_list(recipe_to_use)
  			var/res = get_macro_resolution()
  			for(var/key in chemicals_to_dispense) // i suppose you could edit the list locally before passing it
  				var/list/keysplit = splittext(key," ")
  				var/r_id = keysplit[1]
  				if(beaker && dispensable_reagents.Find(r_id)) // but since we verify we have the reagent, it'll be fine
  					var/datum/reagents/R = beaker.reagents
  					var/free = R.maximum_volume - R.total_volume
  					var/actual = min(round(chemicals_to_dispense[key], res), (cell.charge * powerefficiency)*10, free)
  					if(actual)
  						if(!cell.use(actual / powerefficiency))
  							say("Not enough energy to complete operation!")
  
negative.code: 	for(var/obj/item/stock_parts/capacitor/C in component_parts)
  		recharge_amount *= C.rating
  	for(var/obj/item/stock_parts/manipulator/M in component_parts)
  		if (M.rating > 1)
  			macroresolution -= M.rating		//5 for t1, 3 for t2, 2 for t3, 1 for t4
  		if (M.rating > 3)
  			dispensable_reagents |= upgrade_reagents
  	powerefficiency = round(newpowereff, 0.01)
  
  /obj/machinery/chem_dispenser/on_deconstruction()
  	cell = null
  