diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 4de2a851d18..f1c15ee423a 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -237,7 +237,6 @@ H.updatehealth() clonemind.transfer_to(H) - H.ckey = R.ckey H << "Consciousness slowly creeps over you as your body regenerates.
So this is what cloning feels like?
" // -- Mode/mind specific stuff goes here @@ -263,9 +262,9 @@ if(!R.dna) H.dna = new /datum/dna() H.dna.real_name = H.real_name + H.dna.ready_dna(H) else - H.dna=R.dna - H.UpdateAppearance() + H.dna = R.dna.Clone() if(efficiency > 2 && efficiency < 5 && prob(25)) randmutb(H) if(efficiency > 5 && prob(20)) @@ -275,13 +274,11 @@ H.dna.UpdateSE() H.dna.UpdateUI() -/* //let's not make people waste even more time after being cloned. - H.f_style = "Shaved" - if(R.dna.species == "Human") //no more xenos losing ears/tentacles - H.h_style = pick("Bedhead", "Bedhead 2", "Bedhead 3") */ - H.set_species(R.dna.species) + H.sync_organ_dna(assimilate=1) // It's literally a fresh body as you can get, so all organs properly belong to it + H.UpdateAppearance() + H.update_body() update_icon() for(var/datum/language/L in R.languages) diff --git a/code/game/objects/items/weapons/dnascrambler.dm b/code/game/objects/items/weapons/dnascrambler.dm index b0e5b0149d9..cf789b828b5 100644 --- a/code/game/objects/items/weapons/dnascrambler.dm +++ b/code/game/objects/items/weapons/dnascrambler.dm @@ -34,10 +34,13 @@ user << "\red You failed to inject [M.name]." proc/injected(var/mob/living/carbon/target, var/mob/living/carbon/user) - target.generate_name() - target.real_name = target.name - scramble(1, target, 100) + target.generate_name() + if(istype(target, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = target + H.sync_organ_dna(1) + H.update_body(0) + target.update_icons() log_attack("[key_name(user)] injected [key_name(target)] with the [name]") log_game("[key_name_admin(user)] injected [key_name_admin(target)] with the [name]") diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index d70e22f1496..4208ec9fc14 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -44,7 +44,7 @@ if(!delay_ready_dna && dna) dna.ready_dna(src) dna.real_name = real_name - sync_organ_dna() //this shouldn't be necessaaaarrrryyyyyyyy + sync_organ_dna(1) if(species) species.handle_dna(src) @@ -1406,6 +1406,8 @@ /mob/living/carbon/human/generate_name() name = species.makeName(gender,src) real_name = name + if(dna) + dna.real_name = name return name /mob/living/carbon/human/proc/handle_embedded_objects() diff --git a/code/modules/mob/living/carbon/human/human_organs.dm b/code/modules/mob/living/carbon/human/human_organs.dm index b1eff81dc76..460d2a96772 100644 --- a/code/modules/mob/living/carbon/human/human_organs.dm +++ b/code/modules/mob/living/carbon/human/human_organs.dm @@ -153,9 +153,8 @@ Otherwise, this restricts itself to organs that share the UE of the host. /mob/living/carbon/human/proc/sync_organ_dna(var/assimilate = 1) var/list/all_bits = internal_organs|organs for(var/obj/item/organ/O in all_bits) - if(!assimilate && O.dna.unique_enzymes != dna.unique_enzymes) - continue - O.set_dna(dna) + if(assimilate || O.dna.unique_enzymes == dna.unique_enzymes) + O.set_dna(dna) /* Given the name of an organ, returns the external organ it's contained in diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 96876651d31..f77e2ff7ed5 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -477,7 +477,7 @@ domutcheck(new_character) new_character.dna.UpdateSE() - new_character.sync_organ_dna() //just fucking incase I guess + new_character.sync_organ_dna(1) //just fucking incase I guess // Do the initial caching of the player's body icons. new_character.force_update_limbs()