anchor.diff:  		SSmove_manager.stop_looping(charger)
   
   	charging += charger
  +	actively_moving = FALSE
   	SEND_SIGNAL(owner, COMSIG_STARTED_CHARGE)
   	RegisterSignal(charger, COMSIG_MOVABLE_BUMP, .proc/on_bump)
   	RegisterSignal(charger, COMSIG_MOVABLE_PRE_MOVE, .proc/on_move)
  
positive.code: 	var/atom/movable/charger = source.moving
  	UnregisterSignal(charger, list(COMSIG_MOVABLE_BUMP, COMSIG_MOVABLE_PRE_MOVE, COMSIG_MOVABLE_MOVED, COMSIG_MOB_STATCHANGE))
  	SEND_SIGNAL(owner, COMSIG_FINISHED_CHARGE)
  	charging -= charger
  
  /datum/action/cooldown/mob_cooldown/charge/proc/stat_changed(mob/source, new_stat, old_stat)
  
negative.code: 
  /datum/action/cooldown/mob_cooldown/charge/New(Target, delay, past, distance, speed, damage, destroy)
  	. = ..()
  	if(!isnull(delay))
  		charge_delay = delay
  	if(!isnull(past))
  		charge_past = past
  	if(!isnull(distance))
  		charge_distance = distance
  	if(!isnull(speed))
  		charge_speed = speed
  	if(!isnull(damage))
  		charge_damage = damage
  	if(!isnull(destroy))
  		destroy_objects = destroy
  
  /datum/action/cooldown/mob_cooldown/charge/Activate(atom/target_atom)
  