diff --git a/code/game/dna/genes/monkey.dm b/code/game/dna/genes/monkey.dm index 38caf8eda74..d0c32b19620 100644 --- a/code/game/dna/genes/monkey.dm +++ b/code/game/dna/genes/monkey.dm @@ -24,6 +24,9 @@ H.canmove = 0 H.icon = null H.invisibility = 101 + var/has_primitive_form = H.dna.species.primitive_form // cache this + if(has_primitive_form) + H.set_species(has_primitive_form) new /obj/effect/temp_visual/monkeyify(H.loc) sleep(22) @@ -31,12 +34,10 @@ H.SetStunned(0) H.invisibility = initial(H.invisibility) - if(!H.dna.species.primitive_form) //If the creature in question has no primitive set, this is going to be messy. + if(!has_primitive_form) //If the pre-change mob in question has no primitive set, this is going to be messy. H.gib() return - H.set_species(H.dna.species.primitive_form) - QDEL_NULL(H.hud_used) if(H.client) @@ -50,6 +51,8 @@ /datum/dna/gene/monkey/deactivate(mob/living/carbon/human/H, connected, flags) if(!istype(H)) return + if(!issmall(H)) + return for(var/obj/item/W in H) if(W == H.w_uniform) // will be torn continue @@ -63,6 +66,9 @@ H.canmove = 0 H.icon = null H.invisibility = 101 + var/has_greater_form = H.dna.species.greater_form //cache this + if(has_greater_form) + H.set_species(has_greater_form) new /obj/effect/temp_visual/monkeyify/humanify(H.loc) sleep(22) @@ -70,11 +76,10 @@ H.SetStunned(0) H.invisibility = initial(H.invisibility) - if(!H.dna.species.greater_form) //If the creature in question has no primitive set, this is going to be messy. + if(!has_greater_form) //If the pre-change mob in question has no primitive set, this is going to be messy. H.gib() return - H.set_species(H.dna.species.greater_form) H.real_name = H.dna.real_name H.name = H.real_name