From dd303f9f82d698688d92d5bab5c2f636160eead2 Mon Sep 17 00:00:00 2001 From: Mloc-Argent Date: Tue, 6 Aug 2013 11:59:50 +0100 Subject: [PATCH] Fixes for virology machinery. Browser UI properly updates on click and on process() Dishincubator now properly removes radiation (again) Signed-off-by: Mloc-Argent --- code/modules/virus2/centrifuge.dm | 41 +++++++++++++-------------- code/modules/virus2/diseasesplicer.dm | 5 +++- code/modules/virus2/dishincubator.dm | 33 ++++++++++----------- 3 files changed, 40 insertions(+), 39 deletions(-) diff --git a/code/modules/virus2/centrifuge.dm b/code/modules/virus2/centrifuge.dm index aadada0b2df..651d36ce0a3 100644 --- a/code/modules/virus2/centrifuge.dm +++ b/code/modules/virus2/centrifuge.dm @@ -31,7 +31,7 @@ /obj/machinery/computer/centrifuge/attack_hand(var/mob/user as mob) if(..()) return - user.machine = src + user.set_machine(src) var/dat= "" if(curing) dat = "Antibody isolation in progress" @@ -86,12 +86,15 @@ if(sample) isolate() update_icon() + + src.updateUsrDialog() return /obj/machinery/computer/centrifuge/Topic(href, href_list) if(..()) return - usr.machine = src + + if(usr) usr.set_machine(src) switch(href_list["action"]) if("antibody") @@ -99,33 +102,27 @@ var/datum/reagent/blood/B = locate(/datum/reagent/blood) in sample.reagents.reagent_list if (!B) state("\The [src.name] buzzes, \"No antibody carrier detected.\"", "blue") - return - if(sample.reagents.has_reagent("toxins")) + else if(sample.reagents.has_reagent("toxins")) state("\The [src.name] beeps, \"Pathogen purging speed above nominal.\"", "blue") delay = delay/2 - return - curing = delay - playsound(src.loc, 'sound/machines/juicer.ogg', 50, 1) - update_icon() + else + curing = delay + playsound(src.loc, 'sound/machines/juicer.ogg', 50, 1) + update_icon() if("isolate") var/datum/reagent/blood/B = locate(/datum/reagent/blood) in sample.reagents.reagent_list - if (!B) - return - - var/list/virus = virus_copylist(B.data["virus2"]) - var/choice = href_list["isolate"]; - if (choice in virus) - virus2 = virus[choice] - else - state("\The [src.name] buzzes, \"No such pathogen detected.\"", "blue") - return - isolating = 40 - update_icon() - src.updateUsrDialog() - return + if (B) + var/list/virus = virus_copylist(B.data["virus2"]) + var/choice = href_list["isolate"] + if (choice in virus) + virus2 = virus[choice] + isolating = 40 + update_icon() + else + state("\The [src.name] buzzes, \"No such pathogen detected.\"", "blue") if("sample") if(sample) diff --git a/code/modules/virus2/diseasesplicer.dm b/code/modules/virus2/diseasesplicer.dm index d1ac117c383..c39f1d02dfc 100644 --- a/code/modules/virus2/diseasesplicer.dm +++ b/code/modules/virus2/diseasesplicer.dm @@ -39,7 +39,7 @@ /obj/machinery/computer/diseasesplicer/attack_hand(var/mob/user as mob) if(..()) return - user.machine = src + user.set_machine(src) var/dat if(splicing) dat = "Splicing in progress." @@ -111,12 +111,15 @@ d.effect = memorybank state("The [src.name] zings", "blue") + src.updateUsrDialog() return /obj/machinery/computer/diseasesplicer/Topic(href, href_list) if(..()) return + if(usr) usr.set_machine(src) + if (href_list["grab"]) memorybank = locate(href_list["grab"]) analysed = dish.analysed diff --git a/code/modules/virus2/dishincubator.dm b/code/modules/virus2/dishincubator.dm index c8af39777f8..5d2771b2950 100644 --- a/code/modules/virus2/dishincubator.dm +++ b/code/modules/virus2/dishincubator.dm @@ -51,13 +51,14 @@ /obj/machinery/disease2/incubator/Topic(href, href_list) if(..()) return + if(usr) usr.set_machine(src) + if (href_list["ejectchem"]) if(beaker) beaker.loc = src.loc beaker = null if(!dish) return - usr.machine = src if (href_list["power"]) on = !on if(on) @@ -78,19 +79,17 @@ if(href_list["virus"]) if (!dish) state("\The [src.name] buzzes, \"No viral culture sample detected.\"", "blue") - return + else + var/datum/reagent/blood/B = locate(/datum/reagent/blood) in beaker.reagents.reagent_list + if (!B) + state("\The [src.name] buzzes, \"No suitable breeding enviroment detected.\"", "blue") + else + if (!B.data["virus2"]) + B.data["virus2"] = list() + var/list/virus = list("[dish.virus2.uniqueID]" = dish.virus2.getcopy()) + B.data["virus2"] = virus - var/datum/reagent/blood/B = locate(/datum/reagent/blood) in beaker.reagents.reagent_list - if (!B) - state("\The [src.name] buzzes, \"No suitable breeding enviroment detected.\"", "blue") - return - - if (!B.data["virus2"]) - B.data["virus2"] = list() - var/list/virus = list("[dish.virus2.uniqueID]" = dish.virus2.getcopy()) - B.data["virus2"] = virus - - state("\The [src.name] pings, \"Injection complete.\"", "blue") + state("\The [src.name] pings, \"Injection complete.\"", "blue") src.add_fingerprint(usr) @@ -99,7 +98,7 @@ /obj/machinery/disease2/incubator/attack_hand(mob/user as mob) if(stat & BROKEN) return - user.machine = src + user.set_machine(src) var/dat = "" if(!dish) dat = "Please insert dish into the incubator.
" @@ -151,7 +150,7 @@ else if(prob(5)) dish.virus2.minormutate() - radiation -= 1 + radiation -= 1 if(toxins && prob(5)) dish.virus2.infectionchance -= 1 if(toxins > 50) @@ -164,4 +163,6 @@ if(!beaker.reagents.remove_reagent("virusfood",5)) foodsupply += 10 if(!beaker.reagents.remove_reagent("toxin",1)) - toxins += 1 \ No newline at end of file + toxins += 1 + + src.updateUsrDialog() \ No newline at end of file