anchor.diff:  	for(var/i in 1 to 10)
   		spawn_atom_to_turf(/obj/effect/temp_visual/hierophant/telegraph/edge, src, 1, FALSE)
   		sleep(5)
  +
  +#define DISCO_INFENO_RANGE (rand(85, 115)*0.01)
   
   /obj/machinery/disco/proc/lights_spin()
   	for(var/i in 1 to 25)
  
positive.code: 		for(var/obj/item/device/flashlight/spotlight/glow in spotlights) // The multiples reflects custom adjustments to each colors after dozens of tests
  			if(QDELETED(src) || !active || QDELETED(glow))
  				return
  			if(glow.light_color == "red")
  				glow.light_color = "nw"
  				glow.light_power = glow.light_power * 1.48
  				glow.light_range = 0
  				glow.update_light()
  				continue
  			if(glow.light_color == "nw")
  				glow.light_color = "green"
  				glow.light_range = glow.range * 1.1
  				glow.light_power = glow.light_power * 2 // Any changes to power must come in pairs to neutralize it for other colors
  				glow.update_light()
  				continue
  			if(glow.light_color == "green")
  				glow.light_color = "sw"
  				glow.light_power = glow.light_power * 0.5
  				glow.light_range = 0
  				glow.update_light()
  				continue
  			if(glow.light_color == "sw")
  				glow.light_color = "purple"
  				glow.light_power = glow.light_power * 2.27
  				glow.light_range = glow.range * 1.15
  				glow.update_light()
  				continue
  			if(glow.light_color == "purple")
  				glow.light_color = "se"
  				glow.light_power = glow.light_power * 0.44
  				glow.light_range = 0
  				glow.update_light()
  				continue
  			if(glow.light_color == "se")
  				glow.light_color = "#ffff00"
  				glow.light_range = glow.range * 0.9
  				glow.update_light()
  				continue
  			if(glow.light_color == "#ffff00")
  				glow.light_color = "ne"
  				glow.light_range = 0
  				glow.update_light()
  				continue
  			if(glow.light_color == "ne")
  				glow.light_color = "red"
  				glow.light_power = glow.light_power * 0.68
  				glow.light_range = glow.range * 0.85
  				glow.update_light()
  				continue
  		if(prob(2))  // Unique effects for the dance floor that show up randomly to mix things up
  			INVOKE_ASYNC(src, .proc/hierofunk)
  		sleep(selection.song_beat)
  
  
  /obj/machinery/disco/proc/dance(var/mob/living/M) //Show your moves
  	set waitfor = FALSE
  
negative.code: 	FOR_DVIEW(var/turf/t, 3, get_turf(src),INVISIBILITY_LIGHTING)
  		if(t.x == cen.x && t.y > cen.y)
  			var/obj/item/device/flashlight/spotlight/L = new /obj/item/device/flashlight/spotlight(t)
  			L.light_color = LIGHT_COLOR_RED
  			L.light_power = 30-(get_dist(src,L)*8)
  			L.range = 1+get_dist(src, L)
  			spotlights+=L
  			continue
  		if(t.x == cen.x && t.y < cen.y)
  			var/obj/item/device/flashlight/spotlight/L = new /obj/item/device/flashlight/spotlight(t)
  			L.light_color = LIGHT_COLOR_PURPLE
  			L.light_power = 30-(get_dist(src,L)*8)
  			L.range = 1+get_dist(src, L)
  			spotlights+=L
  			continue
  		if(t.x > cen.x && t.y == cen.y)
  			var/obj/item/device/flashlight/spotlight/L = new /obj/item/device/flashlight/spotlight(t)
  			L.light_color = LIGHT_COLOR_YELLOW
  			L.light_power = 30-(get_dist(src,L)*8)
  			L.range = 1+get_dist(src, L)
  			spotlights+=L
  			continue
  		if(t.x < cen.x && t.y == cen.y)
  			var/obj/item/device/flashlight/spotlight/L = new /obj/item/device/flashlight/spotlight(t)
  			L.light_color = LIGHT_COLOR_GREEN
  			L.light_power = 30-(get_dist(src,L)*8)
  			L.range = 1+get_dist(src, L)
  			spotlights+=L
  			continue
  		if((t.x+1 == cen.x && t.y+1 == cen.y) || (t.x+2==cen.x && t.y+2 == cen.y))
  			var/obj/item/device/flashlight/spotlight/L = new /obj/item/device/flashlight/spotlight(t)
  			L.light_color = LIGHT_COLOR_ORANGE
  			L.light_power = 30-(get_dist(src,L)*8)
  			L.range = 1.4+get_dist(src, L)
  			spotlights+=L
  			continue
  		if((t.x-1 == cen.x && t.y-1 == cen.y) || (t.x-2==cen.x && t.y-2 == cen.y))
  			var/obj/item/device/flashlight/spotlight/L = new /obj/item/device/flashlight/spotlight(t)
  			L.light_color = LIGHT_COLOR_CYAN
  			L.light_power = 30-(get_dist(src,L)*8)
  			L.range = 1.4+get_dist(src, L)
  			spotlights+=L
  			continue
  		if((t.x-1 == cen.x && t.y+1 == cen.y) || (t.x-2==cen.x && t.y+2 == cen.y))
  			var/obj/item/device/flashlight/spotlight/L = new /obj/item/device/flashlight/spotlight(t)
  			L.light_color = LIGHT_COLOR_BLUEGREEN
  			L.light_power = 30-(get_dist(src,L)*8)
  			L.range = 1.4+get_dist(src, L)
  			spotlights+=L
  			continue
  		if((t.x+1 == cen.x && t.y-1 == cen.y) || (t.x+2==cen.x && t.y-2 == cen.y))
  			var/obj/item/device/flashlight/spotlight/L = new /obj/item/device/flashlight/spotlight(t)
  			L.light_color = LIGHT_COLOR_BLUE
  			L.light_power = 30-(get_dist(src,L)*8)
  			L.range = 1.4+get_dist(src, L)
  			spotlights+=L
  