anchor.diff:  		return
   	if(active)
   		msg = "<span class='notice'>[deactive_msg]</span>"
  +		if(charge_type == "recharge")
  +			var/refund_percent = current_amount/projectile_amount
  +			charge_counter = charge_max * refund_percent
   		remove_ranged_ability(msg)
   	else
   		msg = "<span class='notice'>[active_msg]<B>Left-click to shoot it at a target!</B></span>"
  
positive.code: /obj/effect/proc_holder/spell/aimed/InterceptClickOn(mob/living/caller, params, atom/target)
  	if(..())
  		return FALSE
  	var/ignore = (current_amount >= 1)
  	if(!cast_check(ignore, ranged_ability_user))
  		remove_ranged_ability()
  		return FALSE
  	var/list/targets = list(target)
  	perform(targets,user = ranged_ability_user)
  	return TRUE
  
  /obj/effect/proc_holder/spell/aimed/cast(list/targets, mob/living/user)
  
negative.code: 		return FALSE
  	fire_projectile(user, target)
  	user.newtonian_move(get_dir(U, T))
  	if(current_amount <= 0)
  		remove_ranged_ability() //Auto-disable the ability once you run out of bullets.
  		charge_counter = 0
  		start_recharge()
  	return TRUE
  
  /obj/effect/proc_holder/spell/aimed/proc/fire_projectile(mob/living/user, atom/target)
  	current_amount--
  	var/obj/item/projectile/P = new projectile_type(user.loc)
  	P.current = get_turf(user)
  	P.firer = user
  