anchor.diff:  	update_icon()
   
   /obj/item/weapon/gun/energy/kinetic_accelerator/update_icon()
  -	var/obj/item/ammo_casing/energy/shot = ammo_type[select]
  -	if(power_supply.charge < shot.e_cost)
  +	if(!can_shoot())
   		icon_state = "[initial(icon_state)]_empty"
   	else
   		icon_state = initial(icon_state)
  
positive.code: 
  /obj/item/weapon/gun/energy/kinetic_accelerator/equipped(mob/user)
  	. = ..()
  	attempt_reload()
  
  /obj/item/weapon/gun/energy/kinetic_accelerator/dropped()
  	. = ..()
  	if(!holds_charge)
  		// Put it on a delay because moving item from slot to hand
  		// calls dropped().
  		spawn(overheat_time)
  			if(!ismob(loc))
  				empty()
  
  
negative.code: 	update_icon()
  
  /obj/item/weapon/gun/energy/kinetic_accelerator/proc/attempt_reload()
  	if(overheat)
  		return
  	overheat = TRUE
  
  	var/carried = 0
  	if(!unique_frequency)
  		for(var/obj/item/weapon/gun/energy/kinetic_accelerator/K in \
  