anchor.diff:  /obj/machinery/jukebox/disco/process()
   	. = ..()
   	if(active)
  -		for(var/mob/living/dancer in rangers)
  -			if(QDELETED(dancer))
  -				rangers -= dancer
  -				continue
  -			if(!prob(dance_chance) || HAS_TRAIT(dancer, TRAIT_IMMOBILIZED))
  -				continue
  -			dance(dancer)
  +		for(var/mob/living/M in rangers)
  +			if(prob(5+(allowed(M)*4)) && (M.mobility_flags & MOBILITY_MOVE))
  +				dance(M)
  
positive.code: 
  #undef DISCO_INFENO_RANGE
  
  
  /obj/machinery/jukebox/disco/proc/dance(mob/living/dancer) //Show your moves
  	set waitfor = FALSE
  	switch(rand(0, 9))
  		if(0 to 1)
  			dance2(dancer)
  		if(2 to 3)
  			dance3(dancer)
  		if(4 to 6)
  			dance4(dancer)
  		if(7 to 9)
  			dance5(dancer)
  
  
  /obj/machinery/jukebox/disco/proc/dance2(mob/living/dancer)
  	set waitfor = FALSE
  	for(var/i in 1 to 10)
  		if(QDELETED(dancer))
  			return
  		if(!active)
  			break
  		dancer.emote("flip")
  		sleep(2 SECONDS)
  
  
  /mob/proc/dance_flip()
  	emote("flip")
  
  
  /obj/machinery/jukebox/disco/proc/dance3(mob/living/M)
  	set waitfor = FALSE
  	var/matrix/initial_matrix = matrix(M.transform)
  	for (var/i in 1 to 75)
  		if(QDELETED(M))
  			return
  		switch(i)
  			if (1 to 15)
  
negative.code: 	anchored = FALSE
  	var/list/spotlights = list()
  	var/list/sparkles = list()
  
  /obj/machinery/jukebox/disco/indestructible
  	name = "radiant dance machine mark V"
  