anchor.diff:  	return ..()
   
   /obj/machinery/chem_dispenser/process()
  -	if(recharged < 0)
  -		recharge()
  -		recharged = recharge_delay
  -	else
  -		recharged -= 1
  +	if (recharge_counter >= 4)
  +		if(!is_operational())
  +			return
  +		var/usedpower = cell.give(recharge_amount)
  +		if(usedpower)
  +			use_power(250*recharge_amount)
  +		recharge_counter = 0
  +		return
  +	recharge_counter++
   
   /obj/machinery/chem_dispenser/proc/display_beaker()
   	..()
  
positive.code: 		beaker_overlay = display_beaker()
  		add_overlay(beaker_overlay)
  
  /obj/machinery/chem_dispenser/proc/recharge()
  	if(stat & (BROKEN|NOPOWER))
  		return
  	var/usedpower = cell.give( 1 / powerefficiency) //Should always be a gain of one on the UI.
  	if(usedpower)
  		use_power(2500)
  
  /obj/machinery/chem_dispenser/emag_act(mob/user)
  	if(obj_flags & EMAGGED)
  
negative.code: 	var/obj/item/stock_parts/cell/cell
  	var/powerefficiency = 0.1
  	var/amount = 30
  	var/recharge_amount = 10
  	var/recharge_counter = 0
  	var/mutable_appearance/beaker_overlay
  	var/working_state = "dispenser_working"
  	var/nopower_state = "dispenser_nopower"
  