From c27f155ec2101b2104ff2aab63f49e04cf3a008c Mon Sep 17 00:00:00 2001 From: CHOMPStation2StaffMirrorBot <94713762+CHOMPStation2StaffMirrorBot@users.noreply.github.com> Date: Sun, 28 Dec 2025 06:29:26 -0700 Subject: [PATCH] [MIRROR] Allows non-contagious viruses to be picked up with blood (#12164) Co-authored-by: Guti <32563288+TheCaramelion@users.noreply.github.com> --- code/game/objects/items/devices/extrapolator.dm | 1 + code/modules/organs/blood.dm | 7 ++----- code/modules/reagents/reagent_containers/syringes.dm | 3 +-- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/code/game/objects/items/devices/extrapolator.dm b/code/game/objects/items/devices/extrapolator.dm index 22b93cd7a0..969bce8c55 100644 --- a/code/game/objects/items/devices/extrapolator.dm +++ b/code/game/objects/items/devices/extrapolator.dm @@ -3,6 +3,7 @@ icon = 'icons/obj/device.dmi' icon_state = "extrapolator_scan" desc = "A bulky scanning device, used to extract genetic material of potential pathogens." + description_info = "Use on hand to change between SCAN and EXTRACT mode." item_flags = NOBLUDGEON slot_flags = SLOT_BELT w_class = ITEMSIZE_NORMAL diff --git a/code/modules/organs/blood.dm b/code/modules/organs/blood.dm index e327dd7973..fa62635382 100644 --- a/code/modules/organs/blood.dm +++ b/code/modules/organs/blood.dm @@ -320,10 +320,7 @@ BLOOD_VOLUME_SURVIVE = 40 if(!B.data["viruses"]) B.data["viruses"] = list() - for(var/datum/disease/D in GetSpreadableViruses()) - B.data["viruses"] |= D.Copy() - - for(var/datum/disease/D in GetDormantDiseases()) + for(var/datum/disease/D in GetViruses()) B.data["viruses"] |= D.Copy() if(!B.data["resistances"]) @@ -367,7 +364,7 @@ BLOOD_VOLUME_SURVIVE = 40 var/list/sniffles = injected.data["viruses"] for(var/ID in sniffles) var/datum/disease/D = ID - if(D.spread_flags & (DISEASE_SPREAD_SPECIAL | DISEASE_SPREAD_NON_CONTAGIOUS)) // You can't put non-contagius diseases in blood, but just in case + if(D.spread_flags & (DISEASE_SPREAD_SPECIAL | DISEASE_SPREAD_NON_CONTAGIOUS)) // Special/Non-Contagious stay in the blood, but they won't spread continue ContractDisease(D) if (injected.data["resistances"] && prob(5)) diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index e1ca61148a..e448a098d9 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -427,8 +427,7 @@ //Grab any viruses they have if(iscarbon(target) && LAZYLEN(target.IsInfected())) LAZYINITLIST(viruses) - var/datum/disease/virus = pick(target.IsInfected()) - viruses[hash] = virus.Copy() + viruses[hash] = target.GetViruses() //Dirtiness should be very low if you're the first injectee. If you're spam-injecting 4 people in a row around you though, //This gives the last one a 30% chance of infection.