diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm index 2d2e7adcfa3..c466a3890a4 100644 --- a/code/game/machinery/firealarm.dm +++ b/code/game/machinery/firealarm.dm @@ -23,9 +23,9 @@ FIRE ALARM /obj/machinery/firealarm/New() var/area/A = get_area_master(src) - if (!( istype(A, /area) )) + if(!istype(A, /area)) return - master_area=A + master_area = A /obj/machinery/firealarm/update_icon() @@ -50,10 +50,9 @@ FIRE ALARM icon_state = "fire0" /obj/machinery/firealarm/temperature_expose(datum/gas_mixture/air, temperature, volume) - if(src.detecting) + if(detecting) if(temperature > T0C+200) - src.alarm() // added check of detector status here - return + alarm() // added check of detector status here /obj/machinery/firealarm/attack_ai(mob/user as mob) src.add_hiddenprint(user) @@ -74,7 +73,7 @@ FIRE ALARM /obj/machinery/firealarm/attackby(obj/item/W as obj, mob/user as mob, params) src.add_fingerprint(user) - if (istype(W, /obj/item/weapon/screwdriver) && buildstage == 2) + if(istype(W, /obj/item/weapon/screwdriver) && buildstage == 2) wiresexposed = !wiresexposed update_icon() return @@ -83,8 +82,8 @@ FIRE ALARM switch(buildstage) if(2) if(istype(W, /obj/item/device/multitool)) - src.detecting = !( src.detecting ) - if (src.detecting) + detecting = !detecting + if(detecting) user.visible_message("\red [user] has reconnected [src]'s detecting unit!", "You have reconnected [src]'s detecting unit.") else user.visible_message("\red [user] has disconnected [src]'s detecting unit!", "You have disconnected [src]'s detecting unit.") @@ -100,14 +99,10 @@ FIRE ALARM if(1) if(istype(W, /obj/item/stack/cable_coil)) var/obj/item/stack/cable_coil/coil = W - if(coil.amount < 5) + if(!coil.use(5)) user << "You cut the wires!" return - coil.amount -= 5 - if(!coil.amount) - qdel(coil) - buildstage = 2 user << "You wire \the [src]!" update_icon() @@ -134,22 +129,21 @@ FIRE ALARM qdel(src) return - src.alarm() - return + alarm() /obj/machinery/firealarm/process()//Note: this processing was mostly phased out due to other code, and only runs when needed if(stat & (NOPOWER|BROKEN)) return - if(src.timing) - if(src.time > 0) - src.time = src.time - ((world.timeofday - last_process)/10) + if(timing) + if(time > 0) + time = time - ((world.timeofday - last_process)/10) else - src.alarm() - src.time = 0 - src.timing = 0 + alarm() + time = 0 + timing = 0 processing_objects.Remove(src) - src.updateDialog() + updateDialog() last_process = world.timeofday if(locate(/obj/effect/hotspot) in loc) @@ -167,12 +161,15 @@ FIRE ALARM update_icon() /obj/machinery/firealarm/attack_hand(mob/user as mob) - if((user.stat && !isobserver(user)) || stat & (NOPOWER|BROKEN)) - return + if(stat & (NOPOWER|BROKEN) || buildstage != 2) + return 1 - if (buildstage != 2) - return + if(user.incapacitated()) + return 1 + ui_interact(user) + +/* user.set_machine(src) var/area/A = src.loc var/d1 @@ -207,32 +204,53 @@ FIRE ALARM var/minute = (round(src.time) - second) / 60 var/dat = "[stars("Fire alarm")] [d1]\n
The current alert level is: [stars(get_security_level())]

\nTimer System: [d2]
\nTime Left: [(minute ? text("[]:", minute) : null)][second] - - + +\n
" user << browse(dat, "window=firealarm") - onclose(user, "firealarm") - return + onclose(user, "firealarm")*/ + +/obj/machinery/firealarm/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1, var/master_ui = null, var/datum/topic_state/state = default_state) + var/data[0] + + var/area/A = get_area(src) + data["fire"] = A.fire + data["timing"] = timing + + data["sec_level"] = get_security_level() + + var/second = round(time) % 60 + var/minute = (round(time) - second) / 60 + + data["time_left"] = "[minute ? minute + ":" : null][second]" + + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) + if(!ui) + ui = new(user, src, ui_key, "firealarm.tmpl", name, 400, 400, state = state) + ui.set_initial_data(data) + ui.open() + ui.set_auto_update(1) + + + /obj/machinery/firealarm/Topic(href, href_list) if(..()) return 1 - if (buildstage != 2) + if(buildstage != 2) return 1 - if (href_list["reset"]) - src.reset() - else if (href_list["alarm"]) - src.alarm() - else if (href_list["time"]) - src.timing = text2num(href_list["time"]) + add_fingerprint(usr) + + if(href_list["reset"]) + reset() + else if(href_list["alarm"]) + alarm() + else if(href_list["time"]) + timing = text2num(href_list["time"]) last_process = world.timeofday processing_objects.Add(src) - else if (href_list["tp"]) + else if(href_list["tp"]) var/tp = text2num(href_list["tp"]) - src.time += tp - src.time = min(max(round(src.time), 0), 120) - - src.updateUsrDialog() - src.add_fingerprint(usr) - return + time += tp + time = min(max(round(src.time), 0), 120) /obj/machinery/firealarm/proc/reset() if (!( src.working )) diff --git a/nano/templates/firealarm.tmpl b/nano/templates/firealarm.tmpl index 03dc19660c0..fe25c44a00e 100644 --- a/nano/templates/firealarm.tmpl +++ b/nano/templates/firealarm.tmpl @@ -1,50 +1,69 @@
-
- Fire Alarm: -
-
- {{:~link('Activated', 'lightbulb-o', {'alarm': 1}, fire ? 'selected' : null)}}{{:~link('Deactivated', 'lightbulb-o', {'reset': 1}, fire ? null : 'selected')}} -
+
+ Fire Alarm +
+
+ {{:helper.link('Activated', 'lightbulb-o', {'alarm' : 1}, data.fire ? 'selected' : '')}} + {{:helper.link('Deactivated', 'lightbulb-o', {'reset' : 1}, data.fire ? '' : 'selected')}} +
+
-
- Security Level: -
-
- {{if securityLevel == "GREEN"}} - {{:securityLevel}} - {{else securityLevel == "BLUE"}} - {{:securityLevel}} - {{else}} - {{:securityLevel}} - {{/if}} -
+
+ Security Level +
+
+ {{if data.sec_level == "green"}} + Green + {{else data.sec_level == "blue"}} + Blue + {{else data.sec_level == "red"}} + Red + {{else data.sec_level == "gamma"}} + Gamma + {{else data.sec_level == "epsilon"}} + Contracts terminated. + {{else data.sec_level == "delta"}} + Nuclear device primed. + {{else}} + ERR: Unable to ascertain security level. Please see an authorized NT fire alarm technician. + {{/if}} +
+
-
- Timer System: -
-
- {{:~link('Initiate', 'play', {'time': 1}, timing ? 'selected' : null)}} - {{:~link('Stop', 'pause', {'time': 0}, timing? null : 'selected')}} -
+
+ Timer System +
+
+ {{:helper.link('Initiate', 'play', {'time': 1}, data.timing ? 'selected' : '')}} + {{:helper.link('Stop', 'pause', {'time': 0}, data.timing ? '' : 'selected')}} +
+
-
- {{if working}} - Time Left: {{:time}} - {{/if}} -
-
- Time Modifiers: - {{:~link('30', 'minus', {'tp': -30}, null)}} - {{:~link('1', 'minus', {'tp': -1}, null)}} - {{:~link('1', 'plus', {'tp': +1}, null)}} - {{:~link('30', 'plus', {'tp': +30}, null)}} -
+
+ Time Modifiers +
+
+ {{:helper.link('30', 'minus', {'tp': -30})}} + {{:helper.link('1', 'minus', {'tp': -1 })}} + {{:helper.link('1', 'plus', {'tp': +1 })}} + {{:helper.link('30', 'plus', {'tp': +30})}} +
+ +{{if data.timing}} +
+
+ Time Left +
+
+ {{:data.time_left}} +
+
+{{/if}} \ No newline at end of file