Dance Machine ~Fixes~

This commit is contained in:
CitadelStationBot
2017-04-25 15:14:54 -05:00
parent 306e7c1cba
commit fc0ff20e75
2 changed files with 70 additions and 112 deletions
+68 -111
View File
@@ -11,7 +11,6 @@
req_access = list(GLOB.access_engine)
var/active = FALSE
var/list/rangers = list()
var/list/listeners = list()
var/charge = 35
var/stop = 0
var/list/available = list()
@@ -66,7 +65,7 @@
else
icon_state = "disco0"
..()
/obj/machinery/disco/interact(mob/user)
if (!anchored)
@@ -74,7 +73,7 @@
return
if(!allowed(user))
to_chat(user,"<span class='warning'>Error: Access Denied - Message: Only the engineering department can be trusted with this kind of power.</span>")
playsound(src, 'sound/misc/compiler-failure.ogg', 50, 1)
playsound_local(src,'sound/misc/compiler-failure.ogg', 25, 1)
return
if(!Adjacent(user) && !isAI(user))
return
@@ -121,11 +120,7 @@
lights_spin()
updateUsrDialog()
else if(active)
active = FALSE
STOP_PROCESSING(SSobj, src)
update_icon()
dance_over()
stop = world.time + 300
stop = 0
updateUsrDialog()
if("select")
if(active)
@@ -316,7 +311,7 @@
sleep(selection.song_beat)
/obj/machinery/disco/proc/dance(var/mob/living/carbon/M) //Show your moves
/obj/machinery/disco/proc/dance(var/mob/living/M) //Show your moves
switch(rand(0,9))
if(0 to 1)
@@ -328,55 +323,64 @@
if(7 to 9)
dance5(M)
/obj/machinery/disco/proc/dance2(var/mob/living/carbon/M)
set waitfor = 0
/obj/machinery/disco/proc/dance2(var/mob/living/M)
for(var/i = 1, i < 10, i++)
M.SpinAnimation(15,1)
M.setDir(pick(GLOB.cardinal))
sleep(8)
for(var/d in list(NORTH,SOUTH,EAST,WEST,EAST,SOUTH,NORTH,SOUTH,EAST,WEST,EAST,SOUTH))
M.setDir(d)
if(i == WEST)
M.emote("flip")
sleep(1)
sleep(20)
/obj/machinery/disco/proc/dance3(var/mob/living/carbon/M)
/obj/machinery/disco/proc/dance3(var/mob/living/M)
var/matrix/initial_matrix = matrix(M.transform)
for(var/i in 1 to 6)
for (var/i in 1 to 75)
if (!M)
return
M.SpinAnimation(7,1)
M.setDir(pick(GLOB.cardinal))
for (var/x in 1 to 12)
sleep(1)
if (!M)
return
if (i<5)
switch(i)
if (1 to 15)
initial_matrix = matrix(M.transform)
initial_matrix.Translate(0,1)
animate(M, transform = initial_matrix, time = 1, loop = 0)
if (i>4)
if (16 to 30)
initial_matrix = matrix(M.transform)
initial_matrix.Translate(0,-2)
initial_matrix.Translate(1,-1)
animate(M, transform = initial_matrix, time = 1, loop = 0)
M.setDir(turn(M.dir, 90))
switch (M.dir)
if (NORTH)
initial_matrix = matrix(M.transform)
initial_matrix.Translate(0,3)
animate(M, transform = initial_matrix, time = 1, loop = 0)
if (SOUTH)
initial_matrix = matrix(M.transform)
initial_matrix.Translate(0,-3)
animate(M, transform = initial_matrix, time = 1, loop = 0)
if (EAST)
initial_matrix = matrix(M.transform)
initial_matrix.Translate(3,0)
animate(M, transform = initial_matrix, time = 1, loop = 0)
if (WEST)
initial_matrix = matrix(M.transform)
initial_matrix.Translate(-3,0)
animate(M, transform = initial_matrix, time = 1, loop = 0)
sleep(10)
animate(M, transform = null, time = 1, loop = 0)
if (31 to 45)
initial_matrix = matrix(M.transform)
initial_matrix.Translate(-1,-1)
animate(M, transform = initial_matrix, time = 1, loop = 0)
if (46 to 60)
initial_matrix = matrix(M.transform)
initial_matrix.Translate(-1,1)
animate(M, transform = initial_matrix, time = 1, loop = 0)
if (61 to 75)
initial_matrix = matrix(M.transform)
initial_matrix.Translate(1,0)
animate(M, transform = initial_matrix, time = 1, loop = 0)
M.setDir(turn(M.dir, 90))
switch (M.dir)
if (NORTH)
initial_matrix = matrix(M.transform)
initial_matrix.Translate(0,3)
animate(M, transform = initial_matrix, time = 1, loop = 0)
if (SOUTH)
initial_matrix = matrix(M.transform)
initial_matrix.Translate(0,-3)
animate(M, transform = initial_matrix, time = 1, loop = 0)
if (EAST)
initial_matrix = matrix(M.transform)
initial_matrix.Translate(3,0)
animate(M, transform = initial_matrix, time = 1, loop = 0)
if (WEST)
initial_matrix = matrix(M.transform)
initial_matrix.Translate(-3,0)
animate(M, transform = initial_matrix, time = 1, loop = 0)
sleep (1)
M.lying_fix()
/obj/machinery/disco/proc/dance4(var/mob/living/carbon/M)
/obj/machinery/disco/proc/dance4(var/mob/living/M)
var/speed = rand(1,3)
set waitfor = 0
var/time = 30
@@ -387,8 +391,8 @@
M.lay_down(TRUE)
time--
/obj/machinery/disco/proc/dance5(var/mob/living/carbon/M)
INVOKE_ASYNC(M, .proc/dance5helper)
/obj/machinery/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)
if (!M)
@@ -420,59 +424,13 @@
initial_matrix.Translate(-3,0)
animate(M, transform = initial_matrix, time = 1, loop = 0)
sleep (1)
animate(M, transform = null, time = 1, loop = 0)
M.lying_fix()
/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)
for (var/i in 1 to 60)
if (!src)
return
if (i<31)
initial_matrix = matrix(transform)
initial_matrix.Translate(0,1)
transform = initial_matrix
animate(src, transform, time = 1, loop = 0)
if (i>30)
initial_matrix = matrix(transform)
initial_matrix.Translate(0,-1)
transform = initial_matrix
animate(src, transform, time = 1, loop = 0)
setDir(turn(src.dir, 90))
switch (dir)
if (NORTH)
initial_matrix = matrix(transform)
initial_matrix.Translate(0,3)
animate(src, transform, time = 1, loop = 0)
if (SOUTH)
initial_matrix = matrix(transform)
initial_matrix.Translate(0,-3)
animate(src, transform, time = 1, loop = 0)
if (EAST)
initial_matrix = matrix(transform)
initial_matrix.Translate(3,0)
animate(src, transform, time = 1, loop = 0)
if (WEST)
initial_matrix = matrix(transform)
initial_matrix.Translate(-3,0)
animate(src, transform, time = 1, loop = 0)
sleep (1)
/mob/living/proc/lying_fix()
animate(src, transform = null, time = 1, loop = 0)
/mob/living/carbon/proc/danceyhelper()
if (src)
animate(src, transform = matrix(180, MATRIX_ROTATE), time = 1, loop = 0)
sleep (70)
if (src)
animate(src, transform = null, time = 1, loop = 0)
lying_prev = 0
/obj/machinery/disco/proc/dance_over()
for(var/obj/item/device/flashlight/spotlight/SL in spotlights)
@@ -481,35 +439,34 @@
for(var/obj/effect/overlay/sparkles/SP in sparkles)
qdel(SP)
sparkles.Cut()
rangers.Cut()
for(var/mob/living/L in listeners)
for(var/mob/living/L in rangers)
if(!L || !L.client)
continue
L.stop_sound_channel(CHANNEL_JUKEBOX)
listeners.Cut()
rangers = list()
/obj/machinery/disco/process()
if(charge<35)
charge += 1
if(world.time < stop && active)
rangers = list()
for(var/mob/living/M in range(9,src))
rangers += M
if(!(listeners[M]))
for(var/mob/M in range(10,src))
if(!(M in rangers))
rangers[M] = TRUE
M.playsound_local(get_turf(M), selection.song_path, 100, channel = CHANNEL_JUKEBOX)
listeners[M] = TRUE
if(prob(5+(allowed(M)*4)))
if(prob(5+(allowed(M)*4)) && M.canmove)
dance(M)
for(var/mob/living/L in listeners)
if(!(L in rangers))
listeners -= L
for(var/mob/L in rangers)
if(get_dist(src,L) > 10)
rangers -= L
if(!L || !L.client)
continue
L.stop_sound_channel(CHANNEL_JUKEBOX)
else if(active)
active = FALSE
STOP_PROCESSING(SSobj, src)
dance_over()
playsound(src,'sound/machines/terminal_off.ogg',50,1)
active = FALSE
icon_state = "disco0"
stop = world.time + 100
@@ -408,7 +408,8 @@
. = ..()
/obj/item/device/flashlight/spotlight //invisible lighting source
name = "disco lighting"
name = "disco light"
desc = "Groovy..."
icon_state = null
light_color = null
brightness_on = 0