mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-11 23:23:28 +01:00
Organs now properly retain appearance upon cloning and DNA scramble
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user