From 4beac970c6800bab7f23777e688ee2d289559781 Mon Sep 17 00:00:00 2001 From: Codingale Date: Fri, 23 Sep 2016 16:49:20 -0400 Subject: [PATCH] Fixes #5673 --- code/modules/surgery/organs/blood.dm | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/code/modules/surgery/organs/blood.dm b/code/modules/surgery/organs/blood.dm index eca74a216b2..73c517e5ade 100644 --- a/code/modules/surgery/organs/blood.dm +++ b/code/modules/surgery/organs/blood.dm @@ -231,6 +231,9 @@ var/datum/reagent/blood/injected = get_blood(container.reagents) + if (!istype(injected)) //Sanity.. + return + if(species && species.flags & NO_BLOOD) reagents.add_reagent("blood", amount, injected.data) reagents.update_total() @@ -238,8 +241,16 @@ var/datum/reagent/blood/our = get_blood(vessel) - if(!istype(injected) || !istype(our)) + if(!istype(our)) // Do we not have blood? + vessel.add_reagent("blood", amount, injected.data) // This is only ran once, so we need to add back thier DNA. + vessel.update_total() + ..() + our = get_blood(vessel) // Get the new blood. + our.data["blood_DNA"] = src.dna.unique_enzymes // Give it the proper DNA we had before + our.data["blood_type"] = src.dna.b_type // Proper blood type. + our.data["donor"] = src // Without this, it'd be random each time it was extracted or Null. return + if(blood_incompatible(injected.data["blood_type"],our.data["blood_type"]) ) reagents.add_reagent("toxin",amount * 0.5) reagents.update_total()