diff --git a/code/game/machinery/doppler_array.dm b/code/game/machinery/doppler_array.dm index debb041e3fc..8b2c315b910 100644 --- a/code/game/machinery/doppler_array.dm +++ b/code/game/machinery/doppler_array.dm @@ -9,6 +9,7 @@ var/list/doppler_arrays = list() anchored = 1 atom_say_verb = "states coldly" var/list/logged_explosions = list() + var/printer_timer /datum/explosion_log var/logged_time @@ -30,6 +31,8 @@ var/list/doppler_arrays = list() /obj/machinery/doppler_array/Destroy() doppler_arrays -= src + for(var/datum/D in logged_explosions) + qdel(D) return ..() /obj/machinery/doppler_array/process() @@ -75,6 +78,53 @@ var/list/doppler_arrays = list() dir = turn(dir, 90) to_chat(user, "You rotate [src].") +/obj/item/paper/explosive_log + name = "explosive log" + info = "

Explosive Log Report

\ + \ + \ + \ + \ + \ + \ + " //NB: the
Time loggedEpicenterActualTheoretical
tag is left open, it is closed later on, when the doppler array adds its data + +/obj/machinery/doppler_array/verb/print_logs(mob/user) + set name = "Print Explosive Logs" + set category = "Object" + set src in oview(1) + + if(user.incapacitated()) + return + if(!Adjacent(user)) + return + if(!user.IsAdvancedToolUser()) + to_chat(user, "You don't have the dexterity to do that!") + return + if(!logged_explosions.len) + atom_say("No logs currently stored in internal database.") + return + if(printer_timer) + to_chat(user, "[src] is already printing something, please wait.") + return + atom_say("Printing explosive log. Standby...") + printer_timer = addtimer(CALLBACK(src, .proc/print), 50) + +/obj/machinery/doppler_array/proc/print() + printer_timer = FALSE + visible_message("[src] rattles off a sheet of paper!") + playsound(loc, 'sound/goonstation/machines/printer_dotmatrix.ogg', 50, 1) + var/obj/item/paper/explosive_log/P = new(get_turf(src)) + for(var/datum/explosion_log/E in logged_explosions) + P.info += "\ + \ + \ + \ + \ + " + P.info += "
[E.logged_time][E.epicenter][E.actual_size_message][E.theoretical_size_message]

\ + Printed at [station_time_timestamp()]." + /obj/machinery/doppler_array/proc/sense_explosion(var/x0,var/y0,var/z0,var/devastation_range,var/heavy_impact_range,var/light_impact_range, var/took,var/orig_dev_range,var/orig_heavy_range,var/orig_light_range) if(stat & NOPOWER)