Organs now properly retain appearance upon cloning and DNA scramble

This commit is contained in:
Crazylemon64
2016-02-29 22:49:46 -08:00
parent 7a37daa21d
commit fff283bd2a
5 changed files with 17 additions and 16 deletions
+5 -8
View File
@@ -237,7 +237,6 @@
H.updatehealth()
clonemind.transfer_to(H)
H.ckey = R.ckey
H << "<span class='notice'><b>Consciousness slowly creeps over you as your body regenerates.</b><br><i>So this is what cloning feels like?</i></span>"
// -- 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)
@@ -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]")
@@ -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()
@@ -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
+1 -1
View File
@@ -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()