anchor.diff:  		sleep (1)
   	animate(M, transform = null, time = 1, loop = 0)
   
  -/mob/living/carbon/proc/dancey()
  +/obj/machinery/disco/proc/dance5helper(var/mob/living/carbon/M)
  +	if (M)
  +		animate(M, transform = matrix(180, MATRIX_ROTATE), time = 1, loop = 0)
  +	sleep (70)
  +	if (M)
  +		animate(M, transform = null, time = 1, loop = 0)
  +
  +/mob/living/carbon/proc/dancey() // Dance5 except independent of the machine if admins want to meme it up
  +	INVOKE_ASYNC(src, .proc/danceyhelper)
   	var/matrix/initial_matrix = matrix(transform)
  -	spawn (0)
  -		if (src)
  -			animate(src, transform = matrix(180, MATRIX_ROTATE), time = 1, loop = 0)
  -			initial_matrix = matrix(transform)
  -		sleep (70)
  -		if (src)
  -			animate(src, transform = null, time = 1, loop = 0)
  -	for (var/i = 0, i < 60, i++)
  +	for (var/i in 1 to 60)
   		if (!src)
   			return
   		if (i<31)
  
positive.code: 		 time--
  
  /obj/machinery/disco/proc/dance5(var/mob/living/carbon/M)
  	var/matrix/initial_matrix = matrix(M.transform)
  	spawn (0)
  		if (M)
  			animate(M, transform = matrix(180, MATRIX_ROTATE), time = 1, loop = 0)
  			initial_matrix = matrix(M.transform)
  		sleep (70)
  		if (M)
  			animate(M, transform = null, time = 1, loop = 0)
  	for (var/i = 0, i < 60, i++)
  		if (!M)
  			return
  		if (i<31)
  
negative.code: 					playsound(src, 'sound/misc/compiler-failure.ogg', 50, 1)
  					return
  				active = TRUE
  				update_icon()
  				dance_setup()
  				START_PROCESSING(SSobj, src)
  				lights_spin()
  