diff --git a/code/modules/admin/create_mob.dm b/code/modules/admin/create_mob.dm
index a723fe37956..425837d9e84 100644
--- a/code/modules/admin/create_mob.dm
+++ b/code/modules/admin/create_mob.dm
@@ -7,3 +7,17 @@
create_mob_html = replacetext(create_mob_html, "null /* object types */", "\"[mobjs]\"")
user << browse(replacetext(create_mob_html, "/* ref src */", "\ref[src]"), "window=create_mob;size=425x475")
+
+/proc/randomize_human(mob/living/carbon/human/H)
+ H.gender = pick(MALE, FEMALE)
+ H.real_name = random_name(H.gender)
+ H.name = H.real_name
+ H.dna.generate_uni_identity(H)
+ H.underwear = random_underwear(H.gender)
+ H.skin_tone = random_skin_tone()
+ H.hair_style = random_hair_style(H.gender)
+ H.facial_hair_style = random_facial_hair_style(H.gender)
+ H.hair_color = random_short_color()
+ H.facial_hair_color = H.hair_color
+ H.eye_color = random_eye_color()
+ H.update_icons()
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 6307348bf86..6cc3cc33056 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -30,6 +30,11 @@
for(var/i=0;i<7;i++) // 2 for medHUDs and 5 for secHUDs
hud_list += image('icons/mob/hud.dmi', src, "hudunknown")
+ // for spawned humans; overwritten by other code
+ create_dna(src)
+ ready_dna(src)
+ randomize_human(src)
+
..()
/mob/living/carbon/human/Destroy()
@@ -305,17 +310,17 @@
dat += "
Head: [(head && !(head.flags&ABSTRACT)) ? head : "Empty"]"
if(slot_wear_mask in obscured)
- dat += "
Mask: Obscured by [head]"
+ dat += "
Mask: Obscured"
else
dat += "
Mask: [(wear_mask && !(wear_mask.flags&ABSTRACT)) ? wear_mask : "Empty"]"
if(slot_glasses in obscured)
- dat += "
Eyes: Obscured by [head]"
+ dat += "
Eyes: Obscured"
else
dat += "
Eyes: [(glasses && !(glasses.flags&ABSTRACT)) ? glasses : "Empty"]"
if(slot_ears in obscured)
- dat += "
Ears: Obscured by [head]"
+ dat += "
Ears: Obscured"
else
dat += "
Ears: [(ears && !(ears.flags&ABSTRACT)) ? ears : "Empty"]"
@@ -328,34 +333,26 @@
dat += "
[TAB][TAB]↳[internal ? "Disable Internals" : "Set Internals"]"
if(slot_shoes in obscured)
- dat += "
Shoes: Obscured by [wear_suit]"
+ dat += "
Shoes: Obscured"
else
dat += "
Shoes: [(shoes && !(shoes.flags&ABSTRACT)) ? shoes : "Empty"]"
if(slot_gloves in obscured)
- dat += "
Gloves: Obscured by [wear_suit]"
+ dat += "
Gloves: Obscured"
else
dat += "
Gloves: [(gloves && !(gloves.flags&ABSTRACT)) ? gloves : "Empty"]"
if(slot_w_uniform in obscured)
- dat += "
Uniform: Obscured by [wear_suit]"
+ dat += "
Uniform: Obscured"
else
dat += "
Uniform: [(w_uniform && !(w_uniform.flags&ABSTRACT)) ? w_uniform : "Empty"]"
- if(w_uniform || dna.species.nojumpsuit)
- dat += "
[TAB]↳Belt: [(belt && !(belt.flags&ABSTRACT)) ? belt : "Empty"]"
- if(has_breathable_mask && istype(belt, /obj/item/weapon/tank))
- dat += "
[TAB][TAB]↳[internal ? "Disable Internals" : "Set Internals"]"
- dat += "
[TAB]↳Pockets: [(l_store && !(l_store.flags&ABSTRACT)) ? "Left (Full)" : "Left (Empty)"]"
- dat += " [(r_store && !(r_store.flags&ABSTRACT)) ? "Right (Full)" : "Right (Empty)"]"
- dat += "
[TAB]↳ID: [(wear_id && !(wear_id.flags&ABSTRACT)) ? wear_id : "Empty"]"
-
- if(dna)
- if(dna.species.nojumpsuit)
- dat += "
ID: [(wear_id && !(wear_id.flags&ABSTRACT)) ? wear_id : "Nothing"]"
- else if(w_uniform)
- dat += "
ID: [(wear_id && !(wear_id.flags&ABSTRACT)) ? wear_id : "Nothing"]"
- else if(w_uniform)
- dat += "
ID: [(wear_id && !(wear_id.flags&ABSTRACT)) ? wear_id : "Nothing"]"
+ if((w_uniform) || (dna && dna.species.nojumpsuit))
+ dat += "
[TAB]↳Belt: [(belt && !(belt.flags&ABSTRACT)) ? belt : "Empty"]"
+ if(has_breathable_mask && istype(belt, /obj/item/weapon/tank))
+ dat += "
[TAB][TAB]↳[internal ? "Disable Internals" : "Set Internals"]"
+ dat += "
[TAB]↳Pockets: [(l_store && !(l_store.flags&ABSTRACT)) ? "Left (Full)" : "Left (Empty)"]"
+ dat += " [(r_store && !(r_store.flags&ABSTRACT)) ? "Right (Full)" : "Right (Empty)"]"
+ dat += "
[TAB]↳ID: [(wear_id && !(wear_id.flags&ABSTRACT)) ? wear_id : "Empty"]"
dat += "
"
@@ -364,17 +361,6 @@
if(legcuffed)
dat += "
Legcuffed"
- if(dna)
- if(dna.species.nojumpsuit)
- dat += "
Left Pocket ([(l_store && !(l_store.flags&ABSTRACT)) ? "Full" : "Empty"])"
- dat += " - Right Pocket ([(r_store && !(r_store.flags&ABSTRACT)) ? "Full" : "Empty"])"
- else if(w_uniform)
- dat += "
Left Pocket ([(l_store && !(l_store.flags&ABSTRACT)) ? "Full" : "Empty"])"
- dat += " - Right Pocket ([(r_store && !(r_store.flags&ABSTRACT)) ? "Full" : "Empty"])"
- else if(w_uniform)
- dat += "
Left Pocket ([(l_store && !(l_store.flags&ABSTRACT)) ? "Full" : "Empty"])"
- dat += " - Right Pocket ([(r_store && !(r_store.flags&ABSTRACT)) ? "Full" : "Empty"])"
-
dat += {"
Close
@@ -604,4 +590,4 @@
if(istype(idcard, /obj/item/weapon/card/id/syndicate))
threatcount -= 2
- return threatcount
\ No newline at end of file
+ return threatcount