From c424e80987e2ee0c53fdc98b47517a28e6b4c3e1 Mon Sep 17 00:00:00 2001 From: Qwertytoforty <52090703+Qwertytoforty@users.noreply.github.com> Date: Tue, 21 Oct 2025 14:51:56 -0400 Subject: [PATCH] fixes zombie infection, and npc zombie infection (#30689) --- code/modules/antagonists/zombie/zombie_spells.dm | 2 +- code/modules/awaymissions/mob_spawn.dm | 1 + code/modules/mob/living/carbon/human/species/_species.dm | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/code/modules/antagonists/zombie/zombie_spells.dm b/code/modules/antagonists/zombie/zombie_spells.dm index 2ed86b1ab4d..2101d81cd39 100644 --- a/code/modules/antagonists/zombie/zombie_spells.dm +++ b/code/modules/antagonists/zombie/zombie_spells.dm @@ -161,7 +161,7 @@ return // Armor blocks zombies trying to eat your brains! // already have the disease, or have contracted it. Good for feedback when being attacked while wearing a biosuit - if(target.HasDisease(/datum/disease/zombie) || target.ContractDisease(new /datum/disease/zombie)) + if(target.HasDisease(/datum/disease/zombie) || target.ContractDisease(new /datum/disease/zombie, SPREAD_BLOOD)) playsound(user.loc, 'sound/misc/moist_impact.ogg', 50, TRUE) target.bleed_rate = max(5, target.bleed_rate + 1) // it transfers via blood, you know. It had to get in somehow. for(var/datum/disease/zombie/zomb in target.viruses) diff --git a/code/modules/awaymissions/mob_spawn.dm b/code/modules/awaymissions/mob_spawn.dm index 34a80fa89bd..c40d91d3480 100644 --- a/code/modules/awaymissions/mob_spawn.dm +++ b/code/modules/awaymissions/mob_spawn.dm @@ -761,6 +761,7 @@ /obj/effect/mob_spawn/human/alive/zombie/equip(mob/living/carbon/human/H) ADD_TRAIT(H, TRAIT_NPC_ZOMBIE, ROUNDSTART_TRAIT) H.ForceContractDisease(new /datum/disease/zombie) + H.zone_selected = BODY_ZONE_CHEST for(var/datum/disease/zombie/zomb in H.viruses) zomb.stage = 8 diff --git a/code/modules/mob/living/carbon/human/species/_species.dm b/code/modules/mob/living/carbon/human/species/_species.dm index eb989b06f06..fa8feca5c64 100644 --- a/code/modules/mob/living/carbon/human/species/_species.dm +++ b/code/modules/mob/living/carbon/human/species/_species.dm @@ -1174,7 +1174,7 @@ It'll return null if the organ doesn't correspond, so include null checks when u if(!HAS_TRAIT(user, TRAIT_NON_INFECTIOUS_ZOMBIE)) if(!target.HasDisease(/datum/disease/zombie)) var/datum/disease/zombie/zomb = new /datum/disease/zombie - target.ContractDisease(zomb) + target.ContractDisease(zomb, SPREAD_BLOOD) for(var/datum/disease/zombie/zomb in target.viruses) zomb.stage = max(5, zomb.stage)