diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm
index b12d6a88552..4126181ea89 100644
--- a/code/game/objects/items/devices/transfer_valve.dm
+++ b/code/game/objects/items/devices/transfer_valve.dm
@@ -77,8 +77,9 @@
Valve attachment: [attached_device ? "[attached_device]" : "None"] [attached_device ? "Remove" : ""]
Valve status: [ valve_open ? "Closed Open" : "Closed Open"]"}
- user << browse(dat, "window=trans_valve;size=600x300")
- onclose(user, "trans_valve")
+ var/datum/browser/popup = new(user, "trans_valve", name)
+ popup.set_content(dat)
+ popup.open()
return
/obj/item/device/transfer_valve/Topic(href, href_list)
@@ -169,6 +170,13 @@
var/turf/bombturf = get_turf(src)
var/area/A = get_area(bombturf)
+ var/attachment = "no device"
+ if(attached_device)
+ if(istype(attached_device, /obj/item/device/assembly/signaler))
+ attachment = "[attached_device]"
+ else
+ attachment = attached_device
+
var/attacher_name = ""
if(!attacher)
attacher_name = "Unknown"
@@ -176,7 +184,7 @@
attacher_name = "[attacher.name]([attacher.ckey])"
var/log_str1 = "Bomb valve opened in "
- var/log_str2 = "with [attached_device ? attached_device : "no device"] attacher: [attacher_name]"
+ var/log_str2 = "with [attachment] attacher: [attacher_name]"
var/log_attacher = ""
if(attacher)
@@ -184,14 +192,16 @@
var/mob/mob = get_mob_by_key(src.fingerprintslast)
var/last_touch_info = ""
-
if(mob)
last_touch_info = "(?)"
var/log_str3 = " Last touched by: [src.fingerprintslast]"
- bombers += "[log_str1] [A.name] [log_str2][log_attacher] [log_str3][last_touch_info]"
- message_admins("[log_str1] [A.name] [log_str2][log_attacher] [log_str3][last_touch_info]", 0, 1)
+ var/bomb_message = "[log_str1] [A.name] [log_str2][log_attacher] [log_str3][last_touch_info]"
+
+ bombers += bomb_message
+
+ message_admins(bomb_message, 0, 1)
log_game("[log_str1] [A.name]([A.x],[A.y],[A.z]) [log_str2] [log_str3]")
merge_gases()
spawn(20) // In case one tank bursts
diff --git a/code/modules/assembly/timer.dm b/code/modules/assembly/timer.dm
index b7a1a5ef3f8..cf654c56c83 100644
--- a/code/modules/assembly/timer.dm
+++ b/code/modules/assembly/timer.dm
@@ -11,98 +11,103 @@
var/timing = 0
var/time = 5
- proc
- timer_end()
- describe()
- if(timing)
- return "The timer is counting down from [time]!"
- return "The timer is set for [time] seconds."
-
- activate()
- if(!..()) return 0//Cooldown check
- timing = !timing
- update_icon()
- return 0
-
-
- toggle_secure()
- secured = !secured
- if(secured)
- processing_objects.Add(src)
- else
- timing = 0
- processing_objects.Remove(src)
- update_icon()
- return secured
-
-
- timer_end()
- if((!secured)||(cooldown > 0)) return 0
- pulse(0)
- visible_message("\icon[src] *beep* *beep*", "*beep* *beep*")
- cooldown = 2
- spawn(10)
- process_cooldown()
- return
-
-
- process()
- if(timing && (time > 0))
- time--
- if(timing && time <= 0)
- timing = 0
- timer_end()
- time = initial(time)
- return
+/obj/item/device/assembly/timer/describe()
+ if(timing)
+ return "The timer is counting down from [time]!"
+ return "The timer is set for [time] seconds."
+/obj/item/device/assembly/timer/activate()
+ if(!..()) return 0//Cooldown check
+ timing = !timing
update_icon()
- overlays.Cut()
- attached_overlays = list()
- if(timing)
- overlays += "timer_timing"
- attached_overlays += "timer_timing"
- if(holder)
- holder.update_icon()
+ return 0
+
+
+/obj/item/device/assembly/timer/toggle_secure()
+ secured = !secured
+ if(secured)
+ processing_objects.Add(src)
+ else
+ timing = 0
+ processing_objects.Remove(src)
+ update_icon()
+ return secured
+
+
+/obj/item/device/assembly/timer/proc/timer_end()
+ if((!secured)||(cooldown > 0)) return 0
+ pulse(0)
+ visible_message("\icon[src] *beep* *beep*", "*beep* *beep*")
+ cooldown = 2
+ spawn(10)
+ process_cooldown()
+ return
+
+
+/obj/item/device/assembly/timer/process()
+ if(timing && (time > 0))
+ time--
+ if(timing && time <= 0)
+ timing = 0
+ timer_end()
+ time = initial(time)
+ return
+
+
+/obj/item/device/assembly/timer/update_icon()
+ overlays.Cut()
+ attached_overlays = list()
+ if(timing)
+ overlays += "timer_timing"
+ attached_overlays += "timer_timing"
+ if(holder)
+ holder.update_icon()
+ return
+
+
+/obj/item/device/assembly/timer/interact(mob/user as mob)//TODO: Have this use the wires
+ if(!secured)
+ user.show_message("\red 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
+
+
+/obj/item/device/assembly/timer/Topic(href, href_list)
+ ..()
+ if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr))
+ usr << browse(null, "window=timer")
+ onclose(usr, "timer")
return
+ if(href_list["time"])
+ timing = text2num(href_list["time"])
+ if(timing && istype(holder, /obj/item/device/transfer_valve))
+ var/timer_message = "[key_name_admin(usr)](?) activated [src] attachment on [holder]."
+ message_admins(timer_message)
+ bombers += timer_message
+ log_game("[key_name(usr)] activated [src] attachment for [loc]")
+ update_icon()
- interact(mob/user as mob)//TODO: Have this use the wires
- if(!secured)
- user.show_message("\red 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"
- user << browse(dat, "window=timer")
- onclose(user, "timer")
+ if(href_list["tp"])
+ var/tp = text2num(href_list["tp"])
+ time += tp
+ time = min(max(round(time), 1), 600)
+
+ if(href_list["close"])
+ usr << browse(null, "window=timer")
return
+ if(usr)
+ attack_self(usr)
- Topic(href, href_list)
- ..()
- if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr))
- usr << browse(null, "window=timer")
- onclose(usr, "timer")
- return
-
- if(href_list["time"])
- timing = text2num(href_list["time"])
- update_icon()
-
- if(href_list["tp"])
- var/tp = text2num(href_list["tp"])
- time += tp
- time = min(max(round(time), 1), 600)
-
- if(href_list["close"])
- usr << browse(null, "window=timer")
- return
-
- if(usr)
- attack_self(usr)
-
- return
+ return