diff --git a/code/modules/reagents/chemistry/machinery/pandemic.dm b/code/modules/reagents/chemistry/machinery/pandemic.dm
index ee2ac418555..1d300767488 100644
--- a/code/modules/reagents/chemistry/machinery/pandemic.dm
+++ b/code/modules/reagents/chemistry/machinery/pandemic.dm
@@ -9,6 +9,7 @@
use_power = IDLE_POWER_USE
idle_power_usage = 20
var/temp_html = ""
+ var/printing = null
var/wait = null
var/obj/item/reagent_containers/beaker = null
@@ -162,6 +163,10 @@
for(var/datum/disease/advance/AD in active_diseases)
AD.Refresh()
updateUsrDialog()
+ else if(href_list["print_form"])
+ var/datum/disease/D = GetVirusByIndex(text2num(href_list["print_form"]))
+ D = archive_diseases[D.GetDiseaseID()]//We know it's advanced no need to check
+ print_form(D, usr)
else
@@ -172,6 +177,47 @@
add_fingerprint(usr)
return
+//Prints a nice virus release form. Props to Urbanliner for the layout
+/obj/machinery/computer/pandemic/proc/print_form(var/datum/disease/advance/D, mob/living/user)
+ D = archive_diseases[D.GetDiseaseID()]
+ if(!(printing) && D)
+ var/reason = input(user,"Enter a reason for the release", "Write", null) as message
+ reason += ""
+ var/english_symptoms = list()
+ for(var/I in D.symptoms)
+ var/datum/symptom/S = I
+ english_symptoms += S.name
+ var/symtoms = english_list(english_symptoms)
+
+
+ var/signature
+ if(alert(user,"Would you like to add your signature?",,"Yes","No") == "Yes")
+ signature = "[user ? user.real_name : "Anonymous"]"
+ else
+ signature = ""
+
+ printing = 1
+ var/obj/item/paper/P = new /obj/item/paper(loc)
+ visible_message("[src] rattles and prints out a sheet of paper.")
+ playsound(loc, 'sound/goonstation/machines/printer_dotmatrix.ogg', 50, 1)
+
+ P.info = "