Prevents the creation of Shadowzombiechangelings (#30681)

* Prevents the creation of Shadowzombiechangelings

* You can still zombie yourself if you really want

* (
This commit is contained in:
KorPhaeron
2017-09-15 03:07:03 -05:00
committed by AnturK
parent 3f4f44cbd1
commit ed43a09864
6 changed files with 10 additions and 5 deletions

View File

@@ -117,3 +117,4 @@
#define NO_UNDERWEAR 26 #define NO_UNDERWEAR 26
#define NOLIVER 27 #define NOLIVER 27
#define NOSTOMACH 28 #define NOSTOMACH 28
#define NO_DNA_COPY 29

View File

@@ -18,7 +18,7 @@
..() ..()
if(!affected_mob.dna) if(!affected_mob.dna)
cure() cure()
if(NOTRANSSTING in affected_mob.dna.species.species_traits) //Only species that can be spread by transformation sting can be spread by the retrovirus if((NOTRANSSTING in affected_mob.dna.species.species_traits) || (NO_DNA_COPY in affected_mob.dna.species.species_traits)) //Only species that can be spread by transformation sting can be spread by the retrovirus
cure() cure()
if(!strain_data["dna"]) if(!strain_data["dna"])

View File

@@ -340,6 +340,10 @@ GLOBAL_LIST_INIT(slot2type, list("head" = /obj/item/clothing/head/changeling, "w
return return
if(!target) if(!target)
return return
if(NO_DNA_COPY in target.dna.species.species_traits)
if(verbose)
to_chat(user, "<span class='warning'>[target] is not compatible with our biology.</span>")
return
if((target.disabilities & NOCLONE) || (target.disabilities & HUSK)) if((target.disabilities & NOCLONE) || (target.disabilities & HUSK))
if(verbose) if(verbose)
to_chat(user, "<span class='warning'>DNA of [target] is ruined beyond usability!</span>") to_chat(user, "<span class='warning'>DNA of [target] is ruined beyond usability!</span>")

View File

@@ -30,7 +30,7 @@
burnmod = 1.5 burnmod = 1.5
blacklisted = TRUE blacklisted = TRUE
no_equip = list(slot_wear_mask, slot_wear_suit, slot_gloves, slot_shoes, slot_w_uniform, slot_s_store) no_equip = list(slot_wear_mask, slot_wear_suit, slot_gloves, slot_shoes, slot_w_uniform, slot_s_store)
species_traits = list(NOBREATH,RESISTCOLD,RESISTPRESSURE,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NODISMEMBER,NO_UNDERWEAR,NOHUNGER) species_traits = list(NOBREATH,RESISTCOLD,RESISTPRESSURE,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NODISMEMBER,NO_UNDERWEAR,NOHUNGER,NO_DNA_COPY,NOTRANSSTING)
mutanteyes = /obj/item/organ/eyes/night_vision/nightmare mutanteyes = /obj/item/organ/eyes/night_vision/nightmare
var/obj/effect/proc_holder/spell/targeted/shadowwalk/shadowwalk var/obj/effect/proc_holder/spell/targeted/shadowwalk/shadowwalk

View File

@@ -9,7 +9,7 @@
meat = null meat = null
damage_overlay_type = "synth" damage_overlay_type = "synth"
limbs_id = "synth" limbs_id = "synth"
var/list/initial_species_traits = list(NOTRANSSTING,NOBREATH,VIRUSIMMUNE,NODISMEMBER,NOHUNGER) //for getting these values back for assume_disguise() var/list/initial_species_traits = list(NOTRANSSTING,NOBREATH,VIRUSIMMUNE,NODISMEMBER,NOHUNGER,NO_DNA_COPY) //for getting these values back for assume_disguise()
var/disguise_fail_health = 75 //When their health gets to this level their synthflesh partially falls off var/disguise_fail_health = 75 //When their health gets to this level their synthflesh partially falls off
var/datum/species/fake_species = null //a species to do most of our work for us, unless we're damaged var/datum/species/fake_species = null //a species to do most of our work for us, unless we're damaged

View File

@@ -6,7 +6,7 @@
sexes = 0 sexes = 0
blacklisted = 1 blacklisted = 1
meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/zombie meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/zombie
species_traits = list(NOBREATH,RESISTCOLD,RESISTPRESSURE,NOBLOOD,RADIMMUNE,NOZOMBIE,EASYDISMEMBER,EASYLIMBATTACHMENT) species_traits = list(NOBREATH,RESISTCOLD,RESISTPRESSURE,NOBLOOD,RADIMMUNE,NOZOMBIE,EASYDISMEMBER,EASYLIMBATTACHMENT,NOTRANSSTING)
mutant_organs = list(/obj/item/organ/tongue/zombie) mutant_organs = list(/obj/item/organ/tongue/zombie)
var/static/list/spooks = list('sound/hallucinations/growl1.ogg','sound/hallucinations/growl2.ogg','sound/hallucinations/growl3.ogg','sound/hallucinations/veryfar_noise.ogg','sound/hallucinations/wail.ogg') var/static/list/spooks = list('sound/hallucinations/growl1.ogg','sound/hallucinations/growl2.ogg','sound/hallucinations/growl3.ogg','sound/hallucinations/veryfar_noise.ogg','sound/hallucinations/wail.ogg')
disliked_food = NONE disliked_food = NONE