Mass purrbation affects mutant species (#46779)

* mass purrbation affects all species

* mass purrbation code cleanup

* remove mass purrbation gives mutant species their special ears and tails back

* mass purrbation syntax fix

* remove mass purrbation does not remove felinid from original felinids

* fuck you travis
This commit is contained in:
py01
2019-10-08 19:22:32 -04:00
committed by moo
parent ddfbcf5229
commit b645de684e
@@ -10,6 +10,7 @@
mutantears = /obj/item/organ/ears/cat
mutanttail = /obj/item/organ/tail/cat
changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | MIRROR_MAGIC | RACE_SWAP | ERT_SPAWN | SLIME_EXTRACT
var/original_felinid = TRUE //set to false for felinids created by mass-purrbation
/datum/species/human/felinid/qualifies_for_rank(rank, list/features)
return TRUE
@@ -108,13 +109,13 @@
/proc/mass_purrbation()
for(var/M in GLOB.mob_list)
if(ishumanbasic(M))
if(ishuman(M))
purrbation_apply(M)
CHECK_TICK
/proc/mass_remove_purrbation()
for(var/M in GLOB.mob_list)
if(ishumanbasic(M))
if(ishuman(M))
purrbation_remove(M)
CHECK_TICK
@@ -131,17 +132,35 @@
/proc/purrbation_apply(mob/living/carbon/human/H, silent = FALSE)
if(!ishuman(H) || isfelinid(H))
return
H.set_species(/datum/species/human/felinid)
if(ishumanbasic(H))
H.set_species(/datum/species/human/felinid)
var/datum/species/human/felinid/cat_species = H.dna.species
cat_species.original_felinid = FALSE
else
var/obj/item/organ/ears/cat/kitty_ears = new
var/obj/item/organ/tail/cat/kitty_tail = new
kitty_ears.Insert(H, TRUE, FALSE) //Gives nonhumans cat tail and ears
kitty_tail.Insert(H, TRUE, FALSE)
if(!silent)
to_chat(H, "Something is nya~t right.")
playsound(get_turf(H), 'sound/effects/meow1.ogg', 50, TRUE, -1)
/proc/purrbation_remove(mob/living/carbon/human/H, silent = FALSE)
if(!ishuman(H) || !isfelinid(H))
return
H.set_species(/datum/species/human)
if(isfelinid(H))
var/datum/species/human/felinid/cat_species = H.dna.species
if(!cat_species.original_felinid)
H.set_species(/datum/species/human)
else if(ishuman(H) && !ishumanbasic(H))
var/datum/species/target_species = H.dna.species
var/organs = H.internal_organs
for(var/obj/item/organ/current_organ in organs)
if(istype(current_organ, /obj/item/organ/tail/cat))
current_organ.Remove(H, TRUE)
if(target_species.mutanttail)
var/obj/item/organ/new_tail = new target_species.mutanttail
new_tail.Insert(H, TRUE, FALSE)
if(istype(current_organ, /obj/item/organ/ears/cat))
var/obj/item/organ/new_ears = new target_species.mutantears
new_ears.Insert(H, TRUE, FALSE)
if(!silent)
to_chat(H, "You are no longer a cat.")