diff --git a/code/modules/virus2/centrifuge.dm b/code/modules/virus2/centrifuge.dm
index 521b74544d4..ee2385d90da 100644
--- a/code/modules/virus2/centrifuge.dm
+++ b/code/modules/virus2/centrifuge.dm
@@ -26,7 +26,7 @@
O.loc = src
user.visible_message("[user] adds \a [O] to \the [src]!", "You add \a [O] to \the [src]!")
- SSnanoui.update_uis(src)
+ SStgui.update_uis(src)
src.attack_hand(user)
@@ -36,27 +36,32 @@
icon_state = "centrifuge_moving"
/obj/machinery/computer/centrifuge/attack_hand(var/mob/user as mob)
- if(..()) return
- ui_interact(user)
+ if(..())
+ return
+ tgui_interact(user)
-/obj/machinery/computer/centrifuge/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
- user.set_machine(src)
+/obj/machinery/computer/centrifuge/tgui_interact(mob/user, datum/tgui/ui)
+ ui = SStgui.try_update_ui(user, src, ui)
+ if(!ui)
+ ui = new(user, src, "IsolationCentrifuge", name)
+ ui.open()
- var/data[0]
+/obj/machinery/computer/centrifuge/tgui_data(mob/user)
+ var/list/data = list()
data["antibodies"] = null
- data["pathogens"] = null
+ data["pathogens"] = list()
data["is_antibody_sample"] = null
+ data["busy"] = null
+ data["sample_inserted"] = !!sample
- if (curing)
+ if(curing)
data["busy"] = "Isolating antibodies..."
- else if (isolating)
+ else if(isolating)
data["busy"] = "Isolating pathogens..."
else
- data["sample_inserted"] = !!sample
-
- if (sample)
+ if(sample)
var/datum/reagent/blood/B = locate(/datum/reagent/blood) in sample.reagents.reagent_list
- if (B)
+ if(B)
data["antibodies"] = antigens2string(B.data["antibodies"], none=null)
var/list/pathogens[0]
@@ -65,8 +70,7 @@
var/datum/disease2/disease/V = virus[ID]
pathogens.Add(list(list("name" = V.name(), "spread_type" = V.spreadtype, "reference" = "\ref[V]")))
- if (pathogens.len > 0)
- data["pathogens"] = pathogens
+ data["pathogens"] = pathogens
else
var/datum/reagent/antibodies/A = locate(/datum/reagent/antibodies) in sample.reagents.reagent_list
@@ -74,103 +78,90 @@
data["antibodies"] = antigens2string(A.data["antibodies"], none=null)
data["is_antibody_sample"] = 1
- ui = SSnanoui.try_update_ui(user, src, ui_key, ui, data, force_open)
- if (!ui)
- ui = new(user, src, ui_key, "isolation_centrifuge.tmpl", src.name, 400, 500)
- ui.set_initial_data(data)
- ui.open()
+ return data
/obj/machinery/computer/centrifuge/process()
..()
- if (stat & (NOPOWER|BROKEN)) return
+ if(stat & (NOPOWER|BROKEN)) return
- if (curing)
+ if(curing)
curing -= 1
- if (curing == 0)
+ if(curing == 0)
cure()
- if (isolating)
+ if(isolating)
isolating -= 1
if(isolating == 0)
isolate()
-/obj/machinery/computer/centrifuge/Topic(href, href_list)
- if (..()) return 1
+/obj/machinery/computer/centrifuge/tgui_act(action, params)
+ if(..())
+ return TRUE
var/mob/user = usr
- var/datum/nanoui/ui = SSnanoui.get_open_ui(user, src, "main")
+ add_fingerprint(user)
- src.add_fingerprint(user)
- if (href_list["close"])
- user.unset_machine()
- ui.close()
- return 0
-
- if (href_list["print"])
- print(user)
- return 1
-
- if(href_list["isolate"])
- var/datum/reagent/blood/B = locate(/datum/reagent/blood) in sample.reagents.reagent_list
- if (B)
- var/datum/disease2/disease/virus = locate(href_list["isolate"])
- virus2 = virus.getcopy()
- isolating = 40
- update_icon()
- return 1
-
- switch(href_list["action"])
- if ("antibody")
+ switch(action)
+ if("print")
+ print(user)
+ . = TRUE
+ if("isolate")
+ var/datum/reagent/blood/B = locate(/datum/reagent/blood) in sample.reagents.reagent_list
+ if(B)
+ var/datum/disease2/disease/virus = locate(params["isolate"])
+ virus2 = virus.getcopy()
+ isolating = 40
+ update_icon()
+ . = TRUE
+ if("antibody")
var/delay = 20
var/datum/reagent/blood/B = locate(/datum/reagent/blood) in sample.reagents.reagent_list
- if (!B)
+ if(!B)
state("\The [src] buzzes, \"No antibody carrier detected.\"", "blue")
- return 1
+ return TRUE
var/has_toxins = locate(/datum/reagent/toxin) in sample.reagents.reagent_list
var/has_radium = sample.reagents.has_reagent("radium")
- if (has_toxins || has_radium)
+ if(has_toxins || has_radium)
state("\The [src] beeps, \"Pathogen purging speed above nominal.\"", "blue")
- if (has_toxins)
+ if(has_toxins)
delay = delay/2
- if (has_radium)
+ if(has_radium)
delay = delay/2
curing = round(delay)
playsound(src, 'sound/machines/juicer.ogg', 50, 1)
update_icon()
- return 1
-
+ . = TRUE
if("sample")
if(sample)
sample.loc = src.loc
sample = null
- return 1
+ . = TRUE
- return 0
/obj/machinery/computer/centrifuge/proc/cure()
- if (!sample) return
+ if(!sample) return
var/datum/reagent/blood/B = locate(/datum/reagent/blood) in sample.reagents.reagent_list
- if (!B) return
+ if(!B) return
var/list/data = list("antibodies" = B.data["antibodies"])
var/amt= sample.reagents.get_reagent_amount("blood")
sample.reagents.remove_reagent("blood", amt)
sample.reagents.add_reagent("antibodies", amt, data)
- SSnanoui.update_uis(src)
+ SStgui.update_uis(src)
update_icon()
ping("\The [src] pings, \"Antibody isolated.\"")
/obj/machinery/computer/centrifuge/proc/isolate()
- if (!sample) return
+ if(!sample) return
var/obj/item/weapon/virusdish/dish = new/obj/item/weapon/virusdish(loc)
dish.virus2 = virus2
virus2 = null
- SSnanoui.update_uis(src)
+ SStgui.update_uis(src)
update_icon()
ping("\The [src] pings, \"Pathogen isolated.\"")
@@ -182,20 +173,20 @@
"}
- if (user)
+ if(user)
P.info += "Generated By: [user.name]
"
P.info += "
- Thank you for your patience! -
-{{else}} -- Thank you for your patience! -
-{{else}} -- Thank you for your patience! -
-{{else}} - {{if data.state =="home"}} -