From 27302aa6ae7b233ae6b4d08492efb109a2f778b2 Mon Sep 17 00:00:00 2001 From: phil235 Date: Sat, 22 Nov 2014 22:56:13 +0100 Subject: [PATCH] Fixes not being able to hear the beeping of infrared beam, timer and proximity sensor in the dark. All assembly items start secured (ready). Fixes certain assembly items being usable while unsecured and not getting the unsecured warning message. --- code/modules/assembly/assembly.dm | 9 +++++++++ code/modules/assembly/infrared.dm | 21 ++++++++++----------- code/modules/assembly/proximity.dm | 27 ++++++++++++--------------- code/modules/assembly/signaler.dm | 21 ++++++++++----------- code/modules/assembly/timer.dm | 30 ++++++++++++++---------------- code/modules/assembly/voice.dm | 15 ++++++++------- 6 files changed, 63 insertions(+), 60 deletions(-) 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