diff --git a/code/__defines/species_languages.dm b/code/__defines/species_languages.dm index bd0d02ae80..5cfb5f37d0 100644 --- a/code/__defines/species_languages.dm +++ b/code/__defines/species_languages.dm @@ -9,6 +9,7 @@ #define NO_HALLUCINATION 0x80 // Don't hallucinate, ever #define NO_BLOOD 0x100 // Never bleed, never show blood amount #define UNDEAD 0x200 // Various things that living things don't do, mostly for skeletons +#define NO_INFECT 0x400 // Don't allow infections in limbs or organs, similar to IS_PLANT, without other strings. // unused: 0x8000 - higher than this will overflow // Species spawn flags diff --git a/code/modules/mob/living/carbon/human/species/station/prometheans.dm b/code/modules/mob/living/carbon/human/species/station/prometheans.dm index 7d1ed3bb0e..5201047761 100644 --- a/code/modules/mob/living/carbon/human/species/station/prometheans.dm +++ b/code/modules/mob/living/carbon/human/species/station/prometheans.dm @@ -20,7 +20,7 @@ var/datum/species/shapeshifter/promethean/prometheans bump_flag = SLIME swap_flags = MONKEY|SLIME|SIMPLE_ANIMAL push_flags = MONKEY|SLIME|SIMPLE_ANIMAL - flags = NO_SCAN | NO_SLIP | NO_MINOR_CUT | NO_HALLUCINATION + flags = NO_SCAN | NO_SLIP | NO_MINOR_CUT | NO_HALLUCINATION | NO_INFECT appearance_flags = HAS_SKIN_COLOR | HAS_EYE_COLOR | HAS_HAIR_COLOR | RADIATION_GLOWS | HAS_UNDERWEAR spawn_flags = SPECIES_CAN_JOIN | SPECIES_IS_WHITELISTED health_hud_intensity = 2 diff --git a/code/modules/organs/organ.dm b/code/modules/organs/organ.dm index 77706b9517..7f4599ecdd 100644 --- a/code/modules/organs/organ.dm +++ b/code/modules/organs/organ.dm @@ -108,7 +108,7 @@ var/list/organ_cache = list() if(preserved) return //Process infections - if ((robotic >= ORGAN_ROBOT) || (owner && owner.species && (owner.species.flags & IS_PLANT))) + if(robotic >= ORGAN_ROBOT || (owner && owner.species && (owner.species.flags & IS_PLANT || (owner.species.flags & NO_INFECT)))) germ_level = 0 return diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index 070e3087db..17d1025fde 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -603,7 +603,7 @@ Note that amputating the affected organ does in fact remove the infection from t */ /obj/item/organ/external/proc/update_germs() - if(robotic >= ORGAN_ROBOT || (owner.species && owner.species.flags & IS_PLANT)) //Robotic limbs shouldn't be infected, nor should nonexistant limbs. + if(robotic >= ORGAN_ROBOT || (owner.species && (owner.species.flags & IS_PLANT || (owner.species.flags & NO_INFECT)))) //Robotic limbs shouldn't be infected, nor should nonexistant limbs. germ_level = 0 return