anchor.diff:  	M.lying_fix()
   
   /obj/machinery/jukebox/disco/proc/dance4(var/mob/living/M)
  -	var/speed = rand(1,3)
  -	set waitfor = 0
  -	var/time = 30
  -	while(time)
  -		sleep(speed)
  -		for(var/i in 1 to speed)
  -			M.setDir(pick(GLOB.cardinals))
  -			for(var/mob/living/carbon/NS in rangers)
  -				NS.set_resting(!NS.resting, TRUE)
  -		 time--
  -
  -/obj/machinery/jukebox/disco/proc/dance5(var/mob/living/M)
   	animate(M, transform = matrix(180, MATRIX_ROTATE), time = 1, loop = 0)
   	var/matrix/initial_matrix = matrix(M.transform)
   	for (var/i in 1 to 60)
  
positive.code: 
  /obj/machinery/jukebox/disco/proc/dance(var/mob/living/M) //Show your moves
  	set waitfor = FALSE
  	switch(rand(0,9))
  		if(0 to 1)
  			dance2(M)
  		if(2 to 3)
  			dance3(M)
  		if(4 to 6)
  			dance4(M)
  		if(7 to 9)
  			dance5(M)
  
  /obj/machinery/jukebox/disco/proc/dance2(mob/living/M)
  	for(var/i in 0 to 9)
  
negative.code: 	if(active)
  		for(var/mob/living/M in rangers)
  			if(prob(5+(allowed(M)*4)) && (M.mobility_flags & MOBILITY_MOVE))
  				dance(M)
  