Makes DNA swapping methods more reliable

- Makes heads keep hair on removal
- Amputated limbs from a DNA-injected individual now will keep their
  appearance of the DNA-injected person
- Wounds will now vanish on their own now
- Admins now have an "incarnate" option on the player panel when viewing
  ghosts for quick player instantiation
- Fixes a runtime regarding failing a limb reconnection surgery
- Copying a client's preferences now overrides the previous mob's DNA
This commit is contained in:
Crazylemon64
2016-03-17 23:07:45 -07:00
parent bb4580fee5
commit d748ef23b8
12 changed files with 84 additions and 26 deletions
@@ -636,3 +636,13 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
return 0
usr.visible_message("<span class='deadsay'><b>[src]</b> points to [A].</span>")
return 1
/mob/dead/observer/proc/incarnate_ghost()
if(!client)
return
var/mob/living/carbon/human/new_char = new(get_turf(src))
client.prefs.copy_to(new_char)
if(mind)
mind.transfer_to(new_char)
else
new_char.key = key
@@ -147,11 +147,14 @@
/*
When assimilate is 1, organs that have a different UE will still have their DNA overriden by that of the host
Otherwise, this restricts itself to organs that share the UE of the host.
old_ue: Set this to a UE string, and this proc will overwrite the dna of organs that have that UE, instead of the host's present UE
*/
/mob/living/carbon/human/proc/sync_organ_dna(var/assimilate = 1)
/mob/living/carbon/human/proc/sync_organ_dna(var/assimilate = 1, var/old_ue = null)
var/ue_to_compare = (old_ue) ? old_ue : dna.unique_enzymes
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)
if(assimilate || O.dna.unique_enzymes == ue_to_compare)
O.set_dna(dna)
/*