diff --git a/code/game/gamemodes/changeling/changeling_power.dm b/code/game/gamemodes/changeling/changeling_power.dm index ae3345248bb..40daa5735c3 100644 --- a/code/game/gamemodes/changeling/changeling_power.dm +++ b/code/game/gamemodes/changeling/changeling_power.dm @@ -94,12 +94,4 @@ the same goes for Remove(). if you override Remove(), call parent or else your p if(!D) return - H.set_species(D.species.type, retain_damage = TRUE) - H.dna = D.Clone() - H.real_name = D.real_name - domutcheck(H, null, MUTCHK_FORCED) //Ensures species that get powers by the species proc handle_dna keep them - H.flavor_text = "" - H.dna.UpdateSE() - H.dna.UpdateUI() - H.sync_organ_dna(1) - H.UpdateAppearance() + H.change_dna(D, TRUE) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 1726d5ea893..8a804dc801c 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1225,6 +1225,22 @@ else to_chat(usr, "[self ? "Your" : "[src]'s"] pulse is [src.get_pulse(GETPULSE_HAND)].") + +/mob/living/carbon/human/proc/change_dna(datum/dna/new_dna, include_species_change = FALSE, keep_flavor_text = FALSE) + if(include_species_change) + set_species(new_dna.species.type, retain_damage = TRUE) + dna = new_dna.Clone() + real_name = new_dna.real_name + domutcheck(src, null, MUTCHK_FORCED) //Ensures species that get powers by the species proc handle_dna keep them + if(!keep_flavor_text) + flavor_text = "" + dna.UpdateSE() + dna.UpdateUI() + sync_organ_dna(TRUE) + UpdateAppearance() + sec_hud_set_ID() + + /mob/living/carbon/human/proc/set_species(datum/species/new_species, default_colour, delay_icon_update = FALSE, skip_same_check = FALSE, retain_damage = FALSE) if(!skip_same_check) if(dna.species.name == initial(new_species.name)) diff --git a/code/modules/reagents/chemistry/reagents/toxins.dm b/code/modules/reagents/chemistry/reagents/toxins.dm index ed719a9f605..33092629a49 100644 --- a/code/modules/reagents/chemistry/reagents/toxins.dm +++ b/code/modules/reagents/chemistry/reagents/toxins.dm @@ -221,14 +221,7 @@ var/mob/living/carbon/human/H = M var/datum/dna/D = data["dna"] if(!D.species.is_small) - H.set_species(D.species.type, retain_damage = TRUE) - H.dna = D.Clone() - H.real_name = D.real_name - domutcheck(H, null, MUTCHK_FORCED) - H.dna.UpdateSE() - H.dna.UpdateUI() - H.sync_organ_dna(TRUE) - H.UpdateAppearance() + H.change_dna(D, TRUE, TRUE) return ..()