diff --git a/code/datums/diseases/_disease.dm b/code/datums/diseases/_disease.dm index 80dc585eb3..69da2ab96d 100644 --- a/code/datums/diseases/_disease.dm +++ b/code/datums/diseases/_disease.dm @@ -98,10 +98,10 @@ V = Temp -/datum/disease/proc/cure() +/datum/disease/proc/cure(add_resistance = TRUE) if(affected_mob) if(disease_flags & CAN_RESIST) - if(!(type in affected_mob.resistances)) + if(add_resistance && !(type in affected_mob.resistances)) affected_mob.resistances += type remove_virus() qdel(src) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 0d5007c05a..62cf6a535a 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -265,6 +265,11 @@ C.dropItemToGround(I) else //Entries in the list should only ever be items or null, so if it's not an item, we can assume it's an empty hand C.put_in_hands(new mutanthands()) + + if(VIRUSIMMUNE in species_traits) + for(var/datum/disease/A in C.viruses) + A.cure(FALSE) + if(NOAROUSAL in species_traits) C.canbearoused = FALSE