diff --git a/code/modules/assembly/assembly.dm b/code/modules/assembly/assembly.dm index 1dc4107d0a3..5c76dc8b1f1 100644 --- a/code/modules/assembly/assembly.dm +++ b/code/modules/assembly/assembly.dm @@ -51,6 +51,15 @@ /obj/item/device/assembly/proc/describe() // Called by grenades to describe the state of the trigger (time left, etc) return "The trigger assembly looks broken!" + +/obj/item/device/assembly/proc/is_secured(mob/user) + if(!secured) + user << "The [name] is unsecured!" + return 0 + return 1 + + + /obj/item/device/assembly/process_cooldown() cooldown-- if(cooldown <= 0) return 0 diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm index 5bcc194d824..33d72a05538 100644 --- a/code/modules/assembly/infrared.dm +++ b/code/modules/assembly/infrared.dm @@ -6,8 +6,6 @@ g_amt = 500 origin_tech = "magnets=2" - secured = 0 - var/on = 0 var/visible = 0 var/obj/effect/beam/i_beam/first = null @@ -90,21 +88,22 @@ if((!secured)||(!on)||(cooldown > 0)) return 0 pulse(0) - visible_message("\icon[src] *beep* *beep*") + if(src.loc) + src.loc.audible_message("\icon[src] *beep* *beep*", null, 3) cooldown = 2 spawn(10) process_cooldown() return /obj/item/device/assembly/infra/interact(mob/user as mob)//TODO: change this this to the wire control panel - if(!secured) return - user.set_machine(src) - var/dat = text("Infrared Laser\nStatus: []
\nVisibility: []
\n
", (on ? text("On", src) : text("Off", src)), (src.visible ? text("Visible", src) : text("Invisible", src))) - dat += "

Refresh" - dat += "

Close" - user << browse(dat, "window=infra") - onclose(user, "infra") - return + if(is_secured(user)) + user.set_machine(src) + var/dat = text("Infrared Laser\nStatus: []
\nVisibility: []
\n
", (on ? text("On", src) : text("Off", src)), (src.visible ? text("Visible", src) : text("Invisible", src))) + dat += "

Refresh" + dat += "

Close" + user << browse(dat, "window=infra") + onclose(user, "infra") + return /obj/item/device/assembly/infra/Topic(href, href_list) ..() diff --git a/code/modules/assembly/proximity.dm b/code/modules/assembly/proximity.dm index 6e3c6c86976..9e6a855a246 100644 --- a/code/modules/assembly/proximity.dm +++ b/code/modules/assembly/proximity.dm @@ -6,8 +6,6 @@ g_amt = 200 origin_tech = "magnets=1" - secured = 0 - var/scanning = 0 var/timing = 0 var/time = 10 @@ -50,7 +48,8 @@ /obj/item/device/assembly/prox_sensor/sense() if((!secured)||(!scanning)||(cooldown > 0)) return 0 pulse(0) - visible_message("\icon[src] *beep* *beep*", "*beep* *beep*") + if(src.loc) + src.loc.audible_message("\icon[src] *beep* *beep*", null, 3) cooldown = 2 spawn(10) process_cooldown() @@ -102,18 +101,16 @@ /obj/item/device/assembly/prox_sensor/interact(mob/user as mob)//TODO: Change this to the wires thingy - if(!secured) - user.show_message("The [name] is unsecured!") - return 0 - var/second = time % 60 - var/minute = (time - second) / 60 - var/dat = text("Proximity Sensor\n[] []:[]\n- - + +\n", (timing ? text("Arming", src) : text("Not Arming", src)), minute, second, src, src, src, src) - dat += "
[scanning?"Armed":"Unarmed"] (Movement sensor active when armed!)" - dat += "

Refresh" - dat += "

Close" - user << browse(dat, "window=prox") - onclose(user, "prox") - return + if(is_secured(user)) + var/second = time % 60 + var/minute = (time - second) / 60 + var/dat = "Proximity Sensor\n[(timing ? "Arming" : "Not Arming")] [minute]:[second]\n- - + +\n" + dat += "
[scanning?"Armed":"Unarmed"] (Movement sensor active when armed!)" + dat += "

Refresh" + dat += "

Close" + user << browse(dat, "window=prox") + onclose(user, "prox") + return /obj/item/device/assembly/prox_sensor/Topic(href, href_list) diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm index 61295e94d7b..667cb17c3f3 100644 --- a/code/modules/assembly/signaler.dm +++ b/code/modules/assembly/signaler.dm @@ -8,8 +8,6 @@ origin_tech = "magnets=1" wires = WIRE_RECEIVE | WIRE_PULSE | WIRE_RADIO_PULSE | WIRE_RADIO_RECEIVE - secured = 1 - var/code = 30 var/frequency = 1457 var/delay = 0 @@ -42,12 +40,13 @@ return /obj/item/device/assembly/signaler/interact(mob/user as mob, flag1) - var/t1 = "-------" -// if ((src.b_stat && !( flag1 ))) -// t1 = text("-------
\nGreen Wire: []
\nRed Wire: []
\nBlue Wire: []
\n", (src.wires & 4 ? text("Cut Wire", src) : text("Mend Wire", src)), (src.wires & 2 ? text("Cut Wire", src) : text("Mend Wire", src)), (src.wires & 1 ? text("Cut Wire", src) : text("Mend Wire", src))) -// else -// t1 = "-------" Speaker: [src.listening ? "Engaged" : "Disengaged"]
- var/dat = {" + if(is_secured(user)) + var/t1 = "-------" + // if ((src.b_stat && !( flag1 ))) + // t1 = text("-------
\nGreen Wire: []
\nRed Wire: []
\nBlue Wire: []
\n", (src.wires & 4 ? text("Cut Wire", src) : text("Mend Wire", src)), (src.wires & 2 ? text("Cut Wire", src) : text("Mend Wire", src)), (src.wires & 1 ? text("Cut Wire", src) : text("Mend Wire", src))) + // else + // t1 = "-------" Speaker: [src.listening ? "Engaged" : "Disengaged"]
+ var/dat = {" Send Signal
@@ -67,9 +66,9 @@ Code: +
[t1]
"} - user << browse(dat, "window=radio") - onclose(user, "radio") - return + user << browse(dat, "window=radio") + onclose(user, "radio") + return /obj/item/device/assembly/signaler/Topic(href, href_list) diff --git a/code/modules/assembly/timer.dm b/code/modules/assembly/timer.dm index b31c883dc68..4b8156a40fb 100644 --- a/code/modules/assembly/timer.dm +++ b/code/modules/assembly/timer.dm @@ -6,8 +6,6 @@ g_amt = 50 origin_tech = "magnets=1" - secured = 0 - var/timing = 0 var/time = 5 @@ -37,9 +35,11 @@ /obj/item/device/assembly/timer/proc/timer_end() - if((!secured)||(cooldown > 0)) return 0 + if((!secured)||(cooldown > 0)) + return 0 pulse(0) - visible_message("\icon[src] *beep* *beep*", "*beep* *beep*") + if(src.loc) + src.loc.audible_message("\icon[src] *beep* *beep*", null, 3) cooldown = 2 spawn(10) process_cooldown() @@ -68,18 +68,16 @@ /obj/item/device/assembly/timer/interact(mob/user as mob)//TODO: Have this use the wires - if(!secured) - user.show_message("The [name] is unsecured!") - return 0 - var/second = time % 60 - var/minute = (time - second) / 60 - var/dat = text("Timing Unit\n[] []:[]\n- - + +\n", (timing ? text("Timing", src) : text("Not Timing", src)), minute, second, src, src, src, src) - dat += "

Refresh" - dat += "

Close" - var/datum/browser/popup = new(user, "timer", name) - popup.set_content(dat) - popup.open() - return + if(is_secured(user)) + var/second = time % 60 + var/minute = (time - second) / 60 + var/dat = "Timing Unit\n[(timing ? "Timing" : "Not Timing")] [minute]:[second]\n- - + +\n" + dat += "

Refresh" + dat += "

Close" + var/datum/browser/popup = new(user, "timer", name) + popup.set_content(dat) + popup.open() + return /obj/item/device/assembly/timer/Topic(href, href_list) diff --git a/code/modules/assembly/voice.dm b/code/modules/assembly/voice.dm index d255db9b9bd..dd77a4a9f08 100644 --- a/code/modules/assembly/voice.dm +++ b/code/modules/assembly/voice.dm @@ -8,19 +8,19 @@ flags = HEAR var/listening = 0 var/recorded = "" //the activation message - + /obj/item/device/assembly/voice/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq) if(speaker == src) return if(listening && !radio_freq) - recorded = raw_message + recorded = raw_message listening = 0 say("Activation message is '[recorded]'.") - else + else if(findtext(raw_message, recorded)) pulse(0) - + /obj/item/device/assembly/voice/activate() if(secured) if(!holder) @@ -31,10 +31,11 @@ return "beeps, \"[text]\"" /obj/item/device/assembly/voice/attack_self(mob/user) - if(!user) return 0 + if(!user) + return 0 activate() return 1 /obj/item/device/assembly/voice/toggle_secure() - . = ..() - listening = 0 + . = ..() + listening = 0