From 40f4476bec434e8de0004b47f7658f5b5ce519fc Mon Sep 17 00:00:00 2001 From: Fruerlund Date: Sun, 21 May 2017 14:59:53 +0200 Subject: [PATCH 1/3] Adds a print report functions Mass Spectrometers and Reagent Scanners will now print reports if users choose to. --- code/game/objects/items/devices/scanners.dm | 34 +++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index a2fd5881ca7..c4eb80b5850 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -379,6 +379,7 @@ REAGENT SCANNER origin_tech = "magnets=2;biotech=2" var/details = 0 var/recent_fail = 0 + var/datatoprint = "" /obj/item/device/mass_spectrometer/New() ..() @@ -409,7 +410,7 @@ REAGENT SCANNER else blood_traces = params2list(R.data["trace_chem"]) break - var/dat = "Trace Chemicals Found: " + var/dat = "" for(var/R in blood_traces) if(prob(reliability)) if(details) @@ -425,6 +426,7 @@ REAGENT SCANNER else recent_fail = 1 to_chat(user, "[dat]") + datatoprint = dat reagents.clear_reagents() return @@ -434,6 +436,19 @@ REAGENT SCANNER details = 1 origin_tech = "magnets=4;biotech=2" +/obj/item/device/mass_spectrometer/verb/print_report() + set name = "Print Scanner report" + set category = "Object" + + usr.visible_message("[src] rattles and prints out a sheet of paper.") + playsound(loc, 'sound/goonstation/machines/printer_thermal.ogg', 50, 1) + sleep(30) + var/obj/item/weapon/paper/P = new(usr.loc) + P.name = "Mass Spectrometer Scanner Report: [worldtime2text()]" + P.info = "
Mass Spectrometer

Data Analysis:



Trace chemicals detected:
[datatoprint]

" + datatoprint = "" + usr.put_in_hands(P) + /obj/item/device/reagent_scanner name = "reagent scanner" desc = "A hand-held reagent scanner which identifies chemical agents." @@ -449,6 +464,7 @@ REAGENT SCANNER origin_tech = "magnets=2;biotech=2" var/details = 0 var/recent_fail = 0 + var/datatoprint = "" /obj/item/device/reagent_scanner/afterattack(obj/O, mob/user as mob) if(user.stat) @@ -478,6 +494,7 @@ REAGENT SCANNER recent_fail = 1 if(dat) to_chat(user, "Chemicals found: [dat]") + datatoprint = dat else to_chat(user, "No active chemical agents found in [O].") else @@ -491,6 +508,19 @@ REAGENT SCANNER details = 1 origin_tech = "magnets=4;biotech=2" +/obj/item/device/reagent_scanner/verb/print_report() + set name = "Print Scanner report" + set category = "Object" + + usr.visible_message("[src] rattles and prints out a sheet of paper.") + playsound(loc, 'sound/goonstation/machines/printer_thermal.ogg', 50, 1) + sleep(30) + var/obj/item/weapon/paper/P = new(usr.loc) + P.name = "Reagent Scanner Report: [worldtime2text()]" + P.info = "
Reagent Scanner

Data Analysis:



Chemical agents detected:
[datatoprint]

" + datatoprint = "" + usr.put_in_hands(P) + /obj/item/device/slime_scanner name = "slime scanner" icon_state = "adv_spectrometer_s" @@ -532,4 +562,4 @@ REAGENT SCANNER user.show_message("Genetic destability: [T.mutation_chance]% chance of mutation on splitting", 1) if(T.cores > 1) user.show_message("Anomalous slime core amount detected", 1) - user.show_message("Growth progress: [T.amount_grown]/10", 1) + user.show_message("Growth progress: [T.amount_grown]/10", 1) \ No newline at end of file From c3fc6951f7f93678e1ac2649228c51843382dad3 Mon Sep 17 00:00:00 2001 From: Fruerlund Date: Sun, 21 May 2017 16:58:16 +0200 Subject: [PATCH 2/3] Removes object verbs If there are any trace results users will now be asked to print a log. If they choose no, no log will be generated. --- code/game/objects/items/devices/scanners.dm | 58 +++++++++------------ 1 file changed, 24 insertions(+), 34 deletions(-) diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index c4eb80b5850..068c68b9bc9 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -379,7 +379,6 @@ REAGENT SCANNER origin_tech = "magnets=2;biotech=2" var/details = 0 var/recent_fail = 0 - var/datatoprint = "" /obj/item/device/mass_spectrometer/New() ..() @@ -425,9 +424,22 @@ REAGENT SCANNER return else recent_fail = 1 - to_chat(user, "[dat]") - datatoprint = dat - reagents.clear_reagents() + if(dat) + to_chat(user, "Trace chemicals detected in blood sample: [dat]") + if(alert("Do you want to print a log file?","Scan Results","Yes", "No") == "Yes") + usr.visible_message("[src] rattles and prints out a sheet of paper.") + playsound(loc, 'sound/goonstation/machines/printer_thermal.ogg', 50, 1) + sleep(30) + var/obj/item/weapon/paper/P = new(usr.loc) + P.name = "Mass Spectrometer Scanner Report: [worldtime2text()]" + P.info = "
Mass Spectrometer

Data Analysis:



Trace chemicals detected:
[dat]

" + usr.put_in_hands(P) + reagents.clear_reagents() + else + reagents.clear_reagents() + else + reagents.clear_reagents() + to_chat(user, "No trace chemicals detected in blood sample.") return /obj/item/device/mass_spectrometer/adv @@ -436,19 +448,6 @@ REAGENT SCANNER details = 1 origin_tech = "magnets=4;biotech=2" -/obj/item/device/mass_spectrometer/verb/print_report() - set name = "Print Scanner report" - set category = "Object" - - usr.visible_message("[src] rattles and prints out a sheet of paper.") - playsound(loc, 'sound/goonstation/machines/printer_thermal.ogg', 50, 1) - sleep(30) - var/obj/item/weapon/paper/P = new(usr.loc) - P.name = "Mass Spectrometer Scanner Report: [worldtime2text()]" - P.info = "
Mass Spectrometer

Data Analysis:



Trace chemicals detected:
[datatoprint]

" - datatoprint = "" - usr.put_in_hands(P) - /obj/item/device/reagent_scanner name = "reagent scanner" desc = "A hand-held reagent scanner which identifies chemical agents." @@ -464,7 +463,6 @@ REAGENT SCANNER origin_tech = "magnets=2;biotech=2" var/details = 0 var/recent_fail = 0 - var/datatoprint = "" /obj/item/device/reagent_scanner/afterattack(obj/O, mob/user as mob) if(user.stat) @@ -477,7 +475,6 @@ REAGENT SCANNER if(crit_fail) to_chat(user, "This device has critically failed and is no longer functional!") return - if(!isnull(O.reagents)) var/dat = "" if(O.reagents.reagent_list.len > 0) @@ -494,12 +491,18 @@ REAGENT SCANNER recent_fail = 1 if(dat) to_chat(user, "Chemicals found: [dat]") - datatoprint = dat + if(alert("Do you want to print a log file?","Scan Results","Yes", "No") == "Yes") + usr.visible_message("[src] rattles and prints out a sheet of paper.") + playsound(loc, 'sound/goonstation/machines/printer_thermal.ogg', 50, 1) + sleep(30) + var/obj/item/weapon/paper/P = new(usr.loc) + P.name = "Reagent Scanner Report: [worldtime2text()]" + P.info = "
Reagent Scanner

Data Analysis:



Chemical agents detected:
[dat]

" + usr.put_in_hands(P) else to_chat(user, "No active chemical agents found in [O].") else to_chat(user, "No significant chemical agents found in [O].") - return /obj/item/device/reagent_scanner/adv @@ -508,19 +511,6 @@ REAGENT SCANNER details = 1 origin_tech = "magnets=4;biotech=2" -/obj/item/device/reagent_scanner/verb/print_report() - set name = "Print Scanner report" - set category = "Object" - - usr.visible_message("[src] rattles and prints out a sheet of paper.") - playsound(loc, 'sound/goonstation/machines/printer_thermal.ogg', 50, 1) - sleep(30) - var/obj/item/weapon/paper/P = new(usr.loc) - P.name = "Reagent Scanner Report: [worldtime2text()]" - P.info = "
Reagent Scanner

Data Analysis:



Chemical agents detected:
[datatoprint]

" - datatoprint = "" - usr.put_in_hands(P) - /obj/item/device/slime_scanner name = "slime scanner" icon_state = "adv_spectrometer_s" From 7b7fcf643a5be97c79e31bf1fc7615cc4f8c6f45 Mon Sep 17 00:00:00 2001 From: Fruerlund Date: Mon, 22 May 2017 11:08:43 +0200 Subject: [PATCH 3/3] Adds action buttons The chem scanners will now use action buttons instead --- code/datums/action.dm | 2 +- code/game/objects/items/devices/scanners.dm | 76 +++++++++++++++------ 2 files changed, 57 insertions(+), 21 deletions(-) diff --git a/code/datums/action.dm b/code/datums/action.dm index 0bec4e37d35..499570be291 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -145,7 +145,7 @@ name = "Pull The Starting Cord" /datum/action/item_action/print_report - name = "Print Forensic Report" + name = "Print Report" /datum/action/item_action/toggle_gunlight name = "Toggle Gunlight" diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 068c68b9bc9..ca4da5b2107 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -379,6 +379,9 @@ REAGENT SCANNER origin_tech = "magnets=2;biotech=2" var/details = 0 var/recent_fail = 0 + var/datatoprint = "" + var/scanning = 1 + actions_types = list(/datum/action/item_action/print_report) /obj/item/device/mass_spectrometer/New() ..() @@ -415,7 +418,7 @@ REAGENT SCANNER if(details) dat += "[R] ([blood_traces[R]] units) " else - dat += "[R] " + dat += "[R]
" recent_fail = 0 else if(recent_fail) @@ -426,17 +429,9 @@ REAGENT SCANNER recent_fail = 1 if(dat) to_chat(user, "Trace chemicals detected in blood sample: [dat]") - if(alert("Do you want to print a log file?","Scan Results","Yes", "No") == "Yes") - usr.visible_message("[src] rattles and prints out a sheet of paper.") - playsound(loc, 'sound/goonstation/machines/printer_thermal.ogg', 50, 1) - sleep(30) - var/obj/item/weapon/paper/P = new(usr.loc) - P.name = "Mass Spectrometer Scanner Report: [worldtime2text()]" - P.info = "
Mass Spectrometer

Data Analysis:



Trace chemicals detected:
[dat]

" - usr.put_in_hands(P) - reagents.clear_reagents() - else - reagents.clear_reagents() + datatoprint = dat + scanning = 0 + reagents.clear_reagents() else reagents.clear_reagents() to_chat(user, "No trace chemicals detected in blood sample.") @@ -448,6 +443,28 @@ REAGENT SCANNER details = 1 origin_tech = "magnets=4;biotech=2" +/obj/item/device/mass_spectrometer/proc/print_report() + if(!scanning) + usr.visible_message("[src] rattles and prints out a sheet of paper.") + playsound(loc, 'sound/goonstation/machines/printer_thermal.ogg', 50, 1) + sleep(50) + + var/obj/item/weapon/paper/P = new(get_turf(src)) + P.name = "Mass Spectrometer Scanner Report: [worldtime2text()]" + P.info = "
Mass Spectrometer

Data Analysis:



Trace chemicals detected:
[datatoprint]

" + + if(ismob(loc)) + var/mob/M = loc + M.put_in_hands(P) + to_chat(M, "Report printed. Log cleared.") + datatoprint = "" + scanning = 1 + else + to_chat(usr, "[src] has no logs or is already in use.") + +/obj/item/device/mass_spectrometer/ui_action_click() + print_report() + /obj/item/device/reagent_scanner name = "reagent scanner" desc = "A hand-held reagent scanner which identifies chemical agents." @@ -463,6 +480,9 @@ REAGENT SCANNER origin_tech = "magnets=2;biotech=2" var/details = 0 var/recent_fail = 0 + var/datatoprint = "" + var/scanning = 1 + actions_types = list(/datum/action/item_action/print_report) /obj/item/device/reagent_scanner/afterattack(obj/O, mob/user as mob) if(user.stat) @@ -491,14 +511,8 @@ REAGENT SCANNER recent_fail = 1 if(dat) to_chat(user, "Chemicals found: [dat]") - if(alert("Do you want to print a log file?","Scan Results","Yes", "No") == "Yes") - usr.visible_message("[src] rattles and prints out a sheet of paper.") - playsound(loc, 'sound/goonstation/machines/printer_thermal.ogg', 50, 1) - sleep(30) - var/obj/item/weapon/paper/P = new(usr.loc) - P.name = "Reagent Scanner Report: [worldtime2text()]" - P.info = "
Reagent Scanner

Data Analysis:



Chemical agents detected:
[dat]

" - usr.put_in_hands(P) + datatoprint = dat + scanning = 0 else to_chat(user, "No active chemical agents found in [O].") else @@ -511,6 +525,28 @@ REAGENT SCANNER details = 1 origin_tech = "magnets=4;biotech=2" +/obj/item/device/reagent_scanner/proc/print_report() + if(!scanning) + usr.visible_message("[src] rattles and prints out a sheet of paper.") + playsound(loc, 'sound/goonstation/machines/printer_thermal.ogg', 50, 1) + sleep(50) + + var/obj/item/weapon/paper/P = new(get_turf(src)) + P.name = "Reagent Scanner Report: [worldtime2text()]" + P.info = "
Reagent Scanner

Data Analysis:



Chemical agents detected:
[datatoprint]

" + + if(ismob(loc)) + var/mob/M = loc + M.put_in_hands(P) + to_chat(M, "Report printed. Log cleared.") + datatoprint = "" + scanning = 1 + else + to_chat(usr, "[src] has no logs or is already in use.") + +/obj/item/device/reagent_scanner/ui_action_click() + print_report() + /obj/item/device/slime_scanner name = "slime scanner" icon_state = "adv_spectrometer_s"