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