From 1ace94c7bb449d5aeceb0f9b93fc3b5f996df1e3 Mon Sep 17 00:00:00 2001 From: Bilbo367 <163439532+Bilbo367@users.noreply.github.com> Date: Tue, 2 Apr 2024 20:45:33 -0700 Subject: [PATCH] Aheal no longer turns monkies in to humans (#82393) ## About The Pull Request Also changes the Make Monkey Admin button to turn you into a monkey with mutations instead of just creating a new being. Closes: https://github.com/tgstation/tgstation/issues/80744 Mabye Closes: https://github.com/tgstation/tgstation/issues/81722 ## Changelog :cl: fix: aheal no longer turns monkies into humans qol: Player panel "make monkey" turns humans into monkeys through mutation instead of making a new mob /:cl: --- code/datums/mutations/_mutations.dm | 1 + code/datums/mutations/body.dm | 1 + code/modules/admin/topic.dm | 7 ++++++- code/modules/mob/living/carbon/human/human.dm | 2 +- 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/code/datums/mutations/_mutations.dm b/code/datums/mutations/_mutations.dm index 0f5a15206d8..4913a057e01 100644 --- a/code/datums/mutations/_mutations.dm +++ b/code/datums/mutations/_mutations.dm @@ -49,6 +49,7 @@ * make sure to enter it both ways (so that A conflicts with B, and B with A) */ var/list/conflicts + var/remove_on_aheal = TRUE /** * can we take chromosomes? diff --git a/code/datums/mutations/body.dm b/code/datums/mutations/body.dm index 3e72777719f..37f23218043 100644 --- a/code/datums/mutations/body.dm +++ b/code/datums/mutations/body.dm @@ -194,6 +194,7 @@ text_gain_indication = "You feel unusually monkey-like." text_lose_indication = "You feel like your old self." quality = NEGATIVE + remove_on_aheal = FALSE locked = TRUE //Species specific, keep out of actual gene pool var/datum/species/original_species = /datum/species/human var/original_name diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 9c826dc216c..5506bfa2b0d 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -199,7 +199,12 @@ if(posttransformoutfit && istype(newmob)) newmob.equipOutfit(posttransformoutfit) if("monkey") - M.change_mob_type( /mob/living/carbon/human/species/monkey , null, null, delmob ) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + H.dna.add_mutation(/datum/mutation/human/race, MUT_NORMAL) + H.dna.activate_mutation(/datum/mutation/human/race) + else + M.change_mob_type( /mob/living/carbon/human/species/monkey , null, null, delmob ) if("robot") M.change_mob_type( /mob/living/silicon/robot , null, null, delmob ) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 3f4ffe72e9d..9f1ea960fe5 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -701,7 +701,7 @@ /mob/living/carbon/human/fully_heal(heal_flags = HEAL_ALL) if(heal_flags & HEAL_NEGATIVE_MUTATIONS) for(var/datum/mutation/human/existing_mutation in dna.mutations) - if(existing_mutation.quality != POSITIVE) + if(existing_mutation.quality != POSITIVE && existing_mutation.remove_on_aheal) dna.remove_mutation(existing_mutation) if(heal_flags & HEAL_TEMP)