mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 02:16:05 +00:00
Merge pull request #22367 from ShiftyRail/VampShapeshift
Refactors appearance randomisation.
This commit is contained in:
@@ -144,25 +144,25 @@ proc/get_id_photo(var/mob/living/carbon/human/H)
|
|||||||
|
|
||||||
// Skin tone
|
// Skin tone
|
||||||
if(H.species.anatomy_flags & HAS_SKIN_TONE)
|
if(H.species.anatomy_flags & HAS_SKIN_TONE)
|
||||||
if (H.s_tone >= 0)
|
if (H.my_appearance.s_tone >= 0)
|
||||||
preview_icon.Blend(rgb(H.s_tone, H.s_tone, H.s_tone), ICON_ADD)
|
preview_icon.Blend(rgb(H.my_appearance.s_tone, H.my_appearance.s_tone, H.my_appearance.s_tone), ICON_ADD)
|
||||||
else
|
else
|
||||||
preview_icon.Blend(rgb(-H.s_tone, -H.s_tone, -H.s_tone), ICON_SUBTRACT)
|
preview_icon.Blend(rgb(-H.my_appearance.s_tone, -H.my_appearance.s_tone, -H.my_appearance.s_tone), ICON_SUBTRACT)
|
||||||
|
|
||||||
var/icon/eyes_s = new/icon("icon" = 'icons/mob/human_face.dmi', "icon_state" = H.species ? H.species.eyes : "eyes_s")
|
var/icon/eyes_s = new/icon("icon" = 'icons/mob/human_face.dmi', "icon_state" = H.species ? H.species.eyes : "eyes_s")
|
||||||
|
|
||||||
eyes_s.Blend(rgb(H.r_eyes, H.g_eyes, H.b_eyes), ICON_ADD)
|
eyes_s.Blend(rgb(H.my_appearance.r_eyes, H.my_appearance.g_eyes, H.my_appearance.b_eyes), ICON_ADD)
|
||||||
|
|
||||||
var/datum/sprite_accessory/hair_style = hair_styles_list[H.h_style]
|
var/datum/sprite_accessory/hair_style = hair_styles_list[H.my_appearance.h_style]
|
||||||
if(hair_style)
|
if(hair_style)
|
||||||
var/icon/hair_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s")
|
var/icon/hair_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s")
|
||||||
hair_s.Blend(rgb(H.r_hair, H.g_hair, H.b_hair), ICON_ADD)
|
hair_s.Blend(rgb(H.my_appearance.r_hair, H.my_appearance.g_hair, H.my_appearance.b_hair), ICON_ADD)
|
||||||
eyes_s.Blend(hair_s, ICON_OVERLAY)
|
eyes_s.Blend(hair_s, ICON_OVERLAY)
|
||||||
|
|
||||||
var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[H.f_style]
|
var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[H.my_appearance.f_style]
|
||||||
if(facial_hair_style)
|
if(facial_hair_style)
|
||||||
var/icon/facial_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s")
|
var/icon/facial_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s")
|
||||||
facial_s.Blend(rgb(H.r_facial, H.g_facial, H.b_facial), ICON_ADD)
|
facial_s.Blend(rgb(H.my_appearance.r_facial, H.my_appearance.g_facial, H.my_appearance.b_facial), ICON_ADD)
|
||||||
eyes_s.Blend(facial_s, ICON_OVERLAY)
|
eyes_s.Blend(facial_s, ICON_OVERLAY)
|
||||||
|
|
||||||
var/icon/clothes_s = null
|
var/icon/clothes_s = null
|
||||||
|
|||||||
@@ -486,11 +486,11 @@
|
|||||||
|
|
||||||
/datum/dynamic_ruleset/midround/from_ghosts/rambler/generate_ruleset_body(mob/applicant)
|
/datum/dynamic_ruleset/midround/from_ghosts/rambler/generate_ruleset_body(mob/applicant)
|
||||||
var/mob/living/carbon/human/frankenstein/new_frank = new(pick(latejoin))
|
var/mob/living/carbon/human/frankenstein/new_frank = new(pick(latejoin))
|
||||||
var/datum/preferences/A = new()
|
var/gender = pick(MALE, FEMALE)
|
||||||
A.randomize_appearance_for(new_frank)
|
new_frank.randomise_appearance_for(gender)
|
||||||
new_frank.key = applicant.key
|
new_frank.key = applicant.key
|
||||||
new_frank.dna.ready_dna(new_frank)
|
new_frank.dna.ready_dna(new_frank)
|
||||||
new_frank.setGender(pick(MALE, FEMALE))
|
new_frank.setGender(gender)
|
||||||
return new_frank
|
return new_frank
|
||||||
|
|
||||||
//////////////////////////////////////////////
|
//////////////////////////////////////////////
|
||||||
|
|||||||
@@ -2577,15 +2577,15 @@ var/list/bloodcult_exitportals = list()
|
|||||||
vessel.ckey = ghost.ckey
|
vessel.ckey = ghost.ckey
|
||||||
qdel(husk)
|
qdel(husk)
|
||||||
|
|
||||||
vessel.r_hair = 90
|
vessel.my_appearance.r_hair = 90
|
||||||
vessel.g_hair = 90
|
vessel.my_appearance.g_hair = 90
|
||||||
vessel.b_hair = 90
|
vessel.my_appearance.b_hair = 90
|
||||||
vessel.r_facial = 90
|
vessel.my_appearance.r_facial = 90
|
||||||
vessel.g_facial = 90
|
vessel.my_appearance.g_facial = 90
|
||||||
vessel.b_facial = 90
|
vessel.my_appearance.b_facial = 90
|
||||||
vessel.r_eyes = 255
|
vessel.my_appearance.r_eyes = 255
|
||||||
vessel.g_eyes = 0
|
vessel.my_appearance.g_eyes = 0
|
||||||
vessel.b_eyes = 0
|
vessel.my_appearance.b_eyes = 0
|
||||||
vessel.status_flags &= ~GODMODE
|
vessel.status_flags &= ~GODMODE
|
||||||
vessel.regenerate_icons()
|
vessel.regenerate_icons()
|
||||||
//Let's not forget to make them cultists as well
|
//Let's not forget to make them cultists as well
|
||||||
|
|||||||
@@ -105,15 +105,15 @@ var/list/blood_communion = list()
|
|||||||
if (!istype(H))
|
if (!istype(H))
|
||||||
return
|
return
|
||||||
H.set_species("Manifested")
|
H.set_species("Manifested")
|
||||||
H.r_hair = 90
|
H.my_appearance.r_hair = 90
|
||||||
H.g_hair = 90
|
H.my_appearance.g_hair = 90
|
||||||
H.b_hair = 90
|
H.my_appearance.b_hair = 90
|
||||||
H.r_facial = 90
|
H.my_appearance.r_facial = 90
|
||||||
H.g_facial = 90
|
H.my_appearance.g_facial = 90
|
||||||
H.b_facial = 90
|
H.my_appearance.b_facial = 90
|
||||||
H.r_eyes = 255
|
H.my_appearance.r_eyes = 255
|
||||||
H.g_eyes = 0
|
H.my_appearance.g_eyes = 0
|
||||||
H.b_eyes = 0
|
H.my_appearance.b_eyes = 0
|
||||||
H.revive(0)
|
H.revive(0)
|
||||||
H.status_flags &= ~GODMODE
|
H.status_flags &= ~GODMODE
|
||||||
H.status_flags &= ~CANSTUN
|
H.status_flags &= ~CANSTUN
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
/datum/role/catbeast/OnPostSetup()
|
/datum/role/catbeast/OnPostSetup()
|
||||||
var/mob/living/carbon/human/H = antag.current
|
var/mob/living/carbon/human/H = antag.current
|
||||||
H.set_species("Tajaran", force_organs=1)
|
H.set_species("Tajaran", force_organs=1)
|
||||||
H.s_tone = CATBEASTBLACK
|
H.my_appearance.s_tone = CATBEASTBLACK
|
||||||
H.dna.ResetUI()
|
H.dna.ResetUI()
|
||||||
equip_catbeast(H)
|
equip_catbeast(H)
|
||||||
H.regenerate_icons()
|
H.regenerate_icons()
|
||||||
|
|||||||
@@ -1215,8 +1215,8 @@
|
|||||||
|
|
||||||
/datum/religion/art/equip_chaplain(var/mob/living/carbon/human/H)
|
/datum/religion/art/equip_chaplain(var/mob/living/carbon/human/H)
|
||||||
H.put_in_hands(new /obj/item/mounted/frame/painting)
|
H.put_in_hands(new /obj/item/mounted/frame/painting)
|
||||||
H.h_style = "Big Afro"
|
H.my_appearance.h_style = "Big Afro"
|
||||||
H.f_style = "Full Beard"
|
H.my_appearance.f_style = "Full Beard"
|
||||||
H.update_hair()
|
H.update_hair()
|
||||||
|
|
||||||
/datum/religion/clean
|
/datum/religion/clean
|
||||||
@@ -1230,8 +1230,8 @@
|
|||||||
|
|
||||||
/datum/religion/clean/equip_chaplain(var/mob/living/carbon/human/H)
|
/datum/religion/clean/equip_chaplain(var/mob/living/carbon/human/H)
|
||||||
H.put_in_hands(new /obj/item/weapon/mop)
|
H.put_in_hands(new /obj/item/weapon/mop)
|
||||||
H.h_style = "Bald"
|
H.my_appearance.h_style = "Bald"
|
||||||
H.f_style = "Shaved"
|
H.my_appearance.f_style = "Shaved"
|
||||||
H.update_hair()
|
H.update_hair()
|
||||||
|
|
||||||
/datum/religion/guns
|
/datum/religion/guns
|
||||||
|
|||||||
@@ -2576,8 +2576,8 @@ var/list/the_station_areas = list (
|
|||||||
sound_delay = rand(0, 50)
|
sound_delay = rand(0, 50)
|
||||||
|
|
||||||
for(var/mob/living/carbon/human/H in src)
|
for(var/mob/living/carbon/human/H in src)
|
||||||
// if(H.s_tone > -55) //ugh...nice/novel idea but please no.
|
// if(H.my_appearance.s_tone > -55) //ugh...nice/novel idea but please no.
|
||||||
// H.s_tone--
|
// H.my_appearance.s_tone--
|
||||||
// H.update_body()
|
// H.update_body()
|
||||||
if(H.client)
|
if(H.client)
|
||||||
mysound.status = SOUND_UPDATE
|
mysound.status = SOUND_UPDATE
|
||||||
|
|||||||
@@ -172,28 +172,28 @@ var/global/list/facial_hair_styles_female_list = list()
|
|||||||
ResetUI(1)
|
ResetUI(1)
|
||||||
// Hair
|
// Hair
|
||||||
// FIXME: Species-specific defaults pls
|
// FIXME: Species-specific defaults pls
|
||||||
if(!character.h_style)
|
if(!character.my_appearance.h_style)
|
||||||
character.h_style = "Skinhead"
|
character.my_appearance.h_style = "Skinhead"
|
||||||
var/hair = hair_styles_list.Find(character.h_style)
|
var/hair = hair_styles_list.Find(character.my_appearance.h_style)
|
||||||
|
|
||||||
// Facial Hair
|
// Facial Hair
|
||||||
if(!character.f_style)
|
if(!character.my_appearance.f_style)
|
||||||
character.f_style = "Shaved"
|
character.my_appearance.f_style = "Shaved"
|
||||||
var/beard = facial_hair_styles_list.Find(character.f_style)
|
var/beard = facial_hair_styles_list.Find(character.my_appearance.f_style)
|
||||||
|
|
||||||
SetUIValueRange(DNA_UI_HAIR_R, character.r_hair, 255, 1)
|
SetUIValueRange(DNA_UI_HAIR_R, character.my_appearance.r_hair, 255, 1)
|
||||||
SetUIValueRange(DNA_UI_HAIR_G, character.g_hair, 255, 1)
|
SetUIValueRange(DNA_UI_HAIR_G, character.my_appearance.g_hair, 255, 1)
|
||||||
SetUIValueRange(DNA_UI_HAIR_B, character.b_hair, 255, 1)
|
SetUIValueRange(DNA_UI_HAIR_B, character.my_appearance.b_hair, 255, 1)
|
||||||
|
|
||||||
SetUIValueRange(DNA_UI_BEARD_R, character.r_facial, 255, 1)
|
SetUIValueRange(DNA_UI_BEARD_R, character.my_appearance.r_facial, 255, 1)
|
||||||
SetUIValueRange(DNA_UI_BEARD_G, character.g_facial, 255, 1)
|
SetUIValueRange(DNA_UI_BEARD_G, character.my_appearance.g_facial, 255, 1)
|
||||||
SetUIValueRange(DNA_UI_BEARD_B, character.b_facial, 255, 1)
|
SetUIValueRange(DNA_UI_BEARD_B, character.my_appearance.b_facial, 255, 1)
|
||||||
|
|
||||||
SetUIValueRange(DNA_UI_EYES_R, character.r_eyes, 255, 1)
|
SetUIValueRange(DNA_UI_EYES_R, character.my_appearance.r_eyes, 255, 1)
|
||||||
SetUIValueRange(DNA_UI_EYES_G, character.g_eyes, 255, 1)
|
SetUIValueRange(DNA_UI_EYES_G, character.my_appearance.g_eyes, 255, 1)
|
||||||
SetUIValueRange(DNA_UI_EYES_B, character.b_eyes, 255, 1)
|
SetUIValueRange(DNA_UI_EYES_B, character.my_appearance.b_eyes, 255, 1)
|
||||||
|
|
||||||
SetUIValueRange(DNA_UI_SKIN_TONE, 35-character.s_tone, 220, 1) // Value can be negative.
|
SetUIValueRange(DNA_UI_SKIN_TONE, 35-character.my_appearance.s_tone, 220, 1) // Value can be negative.
|
||||||
|
|
||||||
SetUIState(DNA_UI_GENDER, character.gender!=MALE, 1)
|
SetUIState(DNA_UI_GENDER, character.gender!=MALE, 1)
|
||||||
|
|
||||||
|
|||||||
@@ -139,19 +139,19 @@
|
|||||||
src.dna.UpdateUI()
|
src.dna.UpdateUI()
|
||||||
dna.check_integrity()
|
dna.check_integrity()
|
||||||
var/mob/living/carbon/human/H = src
|
var/mob/living/carbon/human/H = src
|
||||||
H.r_hair = dna.GetUIValueRange(DNA_UI_HAIR_R, 255)
|
H.my_appearance.r_hair = dna.GetUIValueRange(DNA_UI_HAIR_R, 255)
|
||||||
H.g_hair = dna.GetUIValueRange(DNA_UI_HAIR_G, 255)
|
H.my_appearance.g_hair = dna.GetUIValueRange(DNA_UI_HAIR_G, 255)
|
||||||
H.b_hair = dna.GetUIValueRange(DNA_UI_HAIR_B, 255)
|
H.my_appearance.b_hair = dna.GetUIValueRange(DNA_UI_HAIR_B, 255)
|
||||||
|
|
||||||
H.r_facial = dna.GetUIValueRange(DNA_UI_BEARD_R, 255)
|
H.my_appearance.r_facial = dna.GetUIValueRange(DNA_UI_BEARD_R, 255)
|
||||||
H.g_facial = dna.GetUIValueRange(DNA_UI_BEARD_G, 255)
|
H.my_appearance.g_facial = dna.GetUIValueRange(DNA_UI_BEARD_G, 255)
|
||||||
H.b_facial = dna.GetUIValueRange(DNA_UI_BEARD_B, 255)
|
H.my_appearance.b_facial = dna.GetUIValueRange(DNA_UI_BEARD_B, 255)
|
||||||
|
|
||||||
H.r_eyes = dna.GetUIValueRange(DNA_UI_EYES_R, 255)
|
H.my_appearance.r_eyes = dna.GetUIValueRange(DNA_UI_EYES_R, 255)
|
||||||
H.g_eyes = dna.GetUIValueRange(DNA_UI_EYES_G, 255)
|
H.my_appearance.g_eyes = dna.GetUIValueRange(DNA_UI_EYES_G, 255)
|
||||||
H.b_eyes = dna.GetUIValueRange(DNA_UI_EYES_B, 255)
|
H.my_appearance.b_eyes = dna.GetUIValueRange(DNA_UI_EYES_B, 255)
|
||||||
|
|
||||||
H.s_tone = 35 - dna.GetUIValueRange(DNA_UI_SKIN_TONE, 220) // Value can be negative.
|
H.my_appearance.s_tone = 35 - dna.GetUIValueRange(DNA_UI_SKIN_TONE, 220) // Value can be negative.
|
||||||
H.setGender(MALE)
|
H.setGender(MALE)
|
||||||
if (dna.GetUIState(DNA_UI_GENDER))
|
if (dna.GetUIState(DNA_UI_GENDER))
|
||||||
H.setGender(FEMALE)
|
H.setGender(FEMALE)
|
||||||
@@ -161,12 +161,12 @@
|
|||||||
//Hair
|
//Hair
|
||||||
var/hair = dna.GetUIValueRange(DNA_UI_HAIR_STYLE,hair_styles_list.len)
|
var/hair = dna.GetUIValueRange(DNA_UI_HAIR_STYLE,hair_styles_list.len)
|
||||||
if((0 < hair) && (hair <= hair_styles_list.len))
|
if((0 < hair) && (hair <= hair_styles_list.len))
|
||||||
H.h_style = hair_styles_list[hair]
|
H.my_appearance.h_style = hair_styles_list[hair]
|
||||||
|
|
||||||
//Facial Hair
|
//Facial Hair
|
||||||
var/beard = dna.GetUIValueRange(DNA_UI_BEARD_STYLE,facial_hair_styles_list.len)
|
var/beard = dna.GetUIValueRange(DNA_UI_BEARD_STYLE,facial_hair_styles_list.len)
|
||||||
if((0 < beard) && (beard <= facial_hair_styles_list.len))
|
if((0 < beard) && (beard <= facial_hair_styles_list.len))
|
||||||
H.f_style = facial_hair_styles_list[beard]
|
H.my_appearance.f_style = facial_hair_styles_list[beard]
|
||||||
|
|
||||||
H.update_body(0)
|
H.update_body(0)
|
||||||
H.update_hair()
|
H.update_hair()
|
||||||
|
|||||||
@@ -100,8 +100,8 @@
|
|||||||
O.real_name = randomname
|
O.real_name = randomname
|
||||||
i++
|
i++
|
||||||
O.UpdateAppearance()
|
O.UpdateAppearance()
|
||||||
O.h_style = random_hair_style(O.gender,O.species.name)
|
O.my_appearance.h_style = random_hair_style(O.gender,O.species.name)
|
||||||
O.f_style = random_facial_hair_style(O.gender,O.species.name)
|
O.my_appearance.f_style = random_facial_hair_style(O.gender,O.species.name)
|
||||||
O.update_hair()
|
O.update_hair()
|
||||||
O.take_overall_damage(M.getBruteLoss(), M.getFireLoss())
|
O.take_overall_damage(M.getBruteLoss(), M.getFireLoss())
|
||||||
O.adjustToxLoss(M.getToxLoss())
|
O.adjustToxLoss(M.getToxLoss())
|
||||||
|
|||||||
@@ -38,6 +38,6 @@
|
|||||||
|
|
||||||
|
|
||||||
/datum/species/horror/handle_post_spawn(var/mob/living/carbon/human/H)
|
/datum/species/horror/handle_post_spawn(var/mob/living/carbon/human/H)
|
||||||
H.h_style = "Bald"
|
H.my_appearance.h_style = "Bald"
|
||||||
H.f_style = "Shaved"
|
H.my_appearance.f_style = "Shaved"
|
||||||
H.update_hair()
|
H.update_hair()
|
||||||
@@ -28,7 +28,7 @@
|
|||||||
status_flags = GODMODE|CANPUSH
|
status_flags = GODMODE|CANPUSH
|
||||||
|
|
||||||
New(var/new_loc)
|
New(var/new_loc)
|
||||||
h_style = "Bald"
|
my_appearance.h_style = "Bald"
|
||||||
..(new_loc, "Krampus")
|
..(new_loc, "Krampus")
|
||||||
maxHealth=999999
|
maxHealth=999999
|
||||||
health=999999
|
health=999999
|
||||||
|
|||||||
@@ -641,10 +641,10 @@
|
|||||||
if(ishuman(occupant))
|
if(ishuman(occupant))
|
||||||
var/mob/living/carbon/human/H = occupant
|
var/mob/living/carbon/human/H = occupant
|
||||||
if(isdiona(H))
|
if(isdiona(H))
|
||||||
if(H.h_style != "Popped Hair")
|
if(H.my_appearance.h_style != "Popped Hair")
|
||||||
to_chat(H, "<span class = 'notice'>Your head pops!</span>")
|
to_chat(H, "<span class = 'notice'>Your head pops!</span>")
|
||||||
playsound(src, 'sound/effects/pop.ogg', 50, 1)
|
playsound(src, 'sound/effects/pop.ogg', 50, 1)
|
||||||
H.h_style = "Popped Hair"
|
H.my_appearance.h_style = "Popped Hair"
|
||||||
H.update_hair()
|
H.update_hair()
|
||||||
else if(isjusthuman(H) && Holiday == APRIL_FOOLS_DAY)
|
else if(isjusthuman(H) && Holiday == APRIL_FOOLS_DAY)
|
||||||
H.GALize()
|
H.GALize()
|
||||||
|
|||||||
@@ -215,11 +215,11 @@
|
|||||||
if(cover)
|
if(cover)
|
||||||
to_chat(user, "<span class='notice'>You can't color [H == user ? "your" : "\the [H]'s"] facial hair through that [cover.name]!</span>")
|
to_chat(user, "<span class='notice'>You can't color [H == user ? "your" : "\the [H]'s"] facial hair through that [cover.name]!</span>")
|
||||||
return
|
return
|
||||||
if(!H.f_style || H.f_style == "Shaved") //if they have no facial hair
|
if(!H.my_appearance.f_style || H.my_appearance.f_style == "Shaved") //if they have no facial hair
|
||||||
to_chat(user, "<span class='notice'>[H == user ? "You don't" : "\The [H] doesn't"] seem to have any facial hair!</span>")
|
to_chat(user, "<span class='notice'>[H == user ? "You don't" : "\The [H] doesn't"] seem to have any facial hair!</span>")
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[H.f_style]
|
var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[H.my_appearance.f_style]
|
||||||
if(!facial_hair_style.do_colouration)
|
if(!facial_hair_style.do_colouration)
|
||||||
to_chat(user, "<span class='notice'>[H == user ? "You don't" : "\The [H] doesn't"] seem to have any colorable facial hair!</span>")
|
to_chat(user, "<span class='notice'>[H == user ? "You don't" : "\The [H] doesn't"] seem to have any colorable facial hair!</span>")
|
||||||
return
|
return
|
||||||
@@ -229,11 +229,11 @@
|
|||||||
if(cover)
|
if(cover)
|
||||||
to_chat(user, "<span class='notice'>You can't color [H == user ? "your" : "\the [H]'s"] hair through that [cover.name]!</span>")
|
to_chat(user, "<span class='notice'>You can't color [H == user ? "your" : "\the [H]'s"] hair through that [cover.name]!</span>")
|
||||||
return
|
return
|
||||||
if(!H.h_style || H.h_style == "Bald") //if they have no hair
|
if(!H.my_appearance.h_style || H.my_appearance.h_style == "Bald") //if they have no hair
|
||||||
to_chat(user, "<span class='notice'>[H == user ? "You don't" : "\The [H] doesn't"] seem to have any hair!</span>")
|
to_chat(user, "<span class='notice'>[H == user ? "You don't" : "\The [H] doesn't"] seem to have any hair!</span>")
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
var/datum/sprite_accessory/hair_style = hair_styles_list[H.h_style]
|
var/datum/sprite_accessory/hair_style = hair_styles_list[H.my_appearance.h_style]
|
||||||
if(!hair_style.do_colouration)
|
if(!hair_style.do_colouration)
|
||||||
to_chat(user, "<span class='notice'>[H == user ? "You don't" : "\The [H] doesn't"] seem to have any colorable hair!</span>")
|
to_chat(user, "<span class='notice'>[H == user ? "You don't" : "\The [H] doesn't"] seem to have any colorable hair!</span>")
|
||||||
return
|
return
|
||||||
@@ -261,13 +261,13 @@
|
|||||||
if(!H)
|
if(!H)
|
||||||
return
|
return
|
||||||
if(facial)
|
if(facial)
|
||||||
H.r_facial = color_r
|
H.my_appearance.r_facial = color_r
|
||||||
H.g_facial = color_g
|
H.my_appearance.g_facial = color_g
|
||||||
H.b_facial = color_b
|
H.my_appearance.b_facial = color_b
|
||||||
else
|
else
|
||||||
H.r_hair = color_r
|
H.my_appearance.r_hair = color_r
|
||||||
H.g_hair = color_g
|
H.my_appearance.g_hair = color_g
|
||||||
H.b_hair = color_b
|
H.my_appearance.b_hair = color_b
|
||||||
H.update_hair()
|
H.update_hair()
|
||||||
playsound(src, 'sound/effects/spray2.ogg', 50, 1, -6)
|
playsound(src, 'sound/effects/spray2.ogg', 50, 1, -6)
|
||||||
|
|
||||||
@@ -364,9 +364,9 @@
|
|||||||
|
|
||||||
/obj/item/weapon/razor/proc/shave(mob/living/carbon/human/H, location = "mouth")
|
/obj/item/weapon/razor/proc/shave(mob/living/carbon/human/H, location = "mouth")
|
||||||
if(location == "mouth")
|
if(location == "mouth")
|
||||||
H.f_style = "Shaved"
|
H.my_appearance.f_style = "Shaved"
|
||||||
else
|
else
|
||||||
H.h_style = "Skinhead"
|
H.my_appearance.h_style = "Skinhead"
|
||||||
|
|
||||||
H.update_hair()
|
H.update_hair()
|
||||||
playsound(loc, 'sound/items/Welder2.ogg', 20, 1)
|
playsound(loc, 'sound/items/Welder2.ogg', 20, 1)
|
||||||
@@ -380,7 +380,7 @@
|
|||||||
if(H.check_body_part_coverage(MOUTH))
|
if(H.check_body_part_coverage(MOUTH))
|
||||||
to_chat(user,"<span class='warning'>The mask is in the way!</span>")
|
to_chat(user,"<span class='warning'>The mask is in the way!</span>")
|
||||||
return
|
return
|
||||||
if(H.f_style == "Shaved")
|
if(H.my_appearance.f_style == "Shaved")
|
||||||
to_chat(user,"<span class='warning'>Already clean-shaven!</span>")
|
to_chat(user,"<span class='warning'>Already clean-shaven!</span>")
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -403,7 +403,7 @@
|
|||||||
if(H.check_body_part_coverage(HEAD))
|
if(H.check_body_part_coverage(HEAD))
|
||||||
to_chat(user,"<span class='warning'>The headgear is in the way!</span>")
|
to_chat(user,"<span class='warning'>The headgear is in the way!</span>")
|
||||||
return
|
return
|
||||||
if(H.h_style == "Bald" || H.h_style == "Skinhead")
|
if(H.my_appearance.h_style == "Bald" || H.my_appearance.h_style == "Skinhead")
|
||||||
to_chat(user,"<span class='warning'>There is not enough hair left to shave!</span>")
|
to_chat(user,"<span class='warning'>There is not enough hair left to shave!</span>")
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -472,7 +472,7 @@
|
|||||||
if (!Adjacent(user) || user.incapacitated())
|
if (!Adjacent(user) || user.incapacitated())
|
||||||
return
|
return
|
||||||
if (new_style)
|
if (new_style)
|
||||||
H.h_style = new_style
|
H.my_appearance.h_style = new_style
|
||||||
H.update_hair()
|
H.update_hair()
|
||||||
|
|
||||||
/obj/item/weapon/pocket_mirror/proc/shatter()
|
/obj/item/weapon/pocket_mirror/proc/shatter()
|
||||||
@@ -556,7 +556,7 @@
|
|||||||
if(!H)
|
if(!H)
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
H.r_eyes = color_r
|
H.my_appearance.r_eyes = color_r
|
||||||
H.g_eyes = color_g
|
H.my_appearance.g_eyes = color_g
|
||||||
H.b_eyes = color_b
|
H.my_appearance.b_eyes = color_b
|
||||||
H.update_body()
|
H.update_body()
|
||||||
|
|||||||
@@ -47,7 +47,7 @@
|
|||||||
if(userloc != H.loc)
|
if(userloc != H.loc)
|
||||||
return //no tele-grooming
|
return //no tele-grooming
|
||||||
if(new_style)
|
if(new_style)
|
||||||
H.f_style = new_style
|
H.my_appearance.f_style = new_style
|
||||||
H.update_hair()
|
H.update_hair()
|
||||||
|
|
||||||
//handle normal hair
|
//handle normal hair
|
||||||
@@ -57,7 +57,7 @@
|
|||||||
if(userloc != H.loc)
|
if(userloc != H.loc)
|
||||||
return //no tele-grooming
|
return //no tele-grooming
|
||||||
if(new_style)
|
if(new_style)
|
||||||
H.h_style = new_style
|
H.my_appearance.h_style = new_style
|
||||||
H.update_hair()
|
H.update_hair()
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -55,28 +55,28 @@ var/list/response_team_members = list()
|
|||||||
//todo: make it a panel, like in character creation
|
//todo: make it a panel, like in character creation
|
||||||
var/new_facial = input(user, "Please select facial hair color.", "Character Generation") as color
|
var/new_facial = input(user, "Please select facial hair color.", "Character Generation") as color
|
||||||
if(new_facial)
|
if(new_facial)
|
||||||
M.r_facial = hex2num(copytext(new_facial, 2, 4))
|
M.my_appearance.r_facial = hex2num(copytext(new_facial, 2, 4))
|
||||||
M.g_facial = hex2num(copytext(new_facial, 4, 6))
|
M.my_appearance.g_facial = hex2num(copytext(new_facial, 4, 6))
|
||||||
M.b_facial = hex2num(copytext(new_facial, 6, 8))
|
M.my_appearance.b_facial = hex2num(copytext(new_facial, 6, 8))
|
||||||
|
|
||||||
var/new_hair = input(user, "Please select hair color.", "Character Generation") as color
|
var/new_hair = input(user, "Please select hair color.", "Character Generation") as color
|
||||||
if(new_facial)
|
if(new_facial)
|
||||||
M.r_hair = hex2num(copytext(new_hair, 2, 4))
|
M.my_appearance.r_hair = hex2num(copytext(new_hair, 2, 4))
|
||||||
M.g_hair = hex2num(copytext(new_hair, 4, 6))
|
M.my_appearance.g_hair = hex2num(copytext(new_hair, 4, 6))
|
||||||
M.b_hair = hex2num(copytext(new_hair, 6, 8))
|
M.my_appearance.b_hair = hex2num(copytext(new_hair, 6, 8))
|
||||||
|
|
||||||
var/new_eyes = input(user, "Please select eye color.", "Character Generation") as color
|
var/new_eyes = input(user, "Please select eye color.", "Character Generation") as color
|
||||||
if(new_eyes)
|
if(new_eyes)
|
||||||
M.r_eyes = hex2num(copytext(new_eyes, 2, 4))
|
M.my_appearance.r_eyes = hex2num(copytext(new_eyes, 2, 4))
|
||||||
M.g_eyes = hex2num(copytext(new_eyes, 4, 6))
|
M.my_appearance.g_eyes = hex2num(copytext(new_eyes, 4, 6))
|
||||||
M.b_eyes = hex2num(copytext(new_eyes, 6, 8))
|
M.my_appearance.b_eyes = hex2num(copytext(new_eyes, 6, 8))
|
||||||
|
|
||||||
var/new_tone = input(user, "Please select skin tone level: 1-220 (1=albino, 35=caucasian, 150=black, 220='very' black)", "Character Generation") as text
|
var/new_tone = input(user, "Please select skin tone level: 1-220 (1=albino, 35=caucasian, 150=black, 220='very' black)", "Character Generation") as text
|
||||||
|
|
||||||
if (!new_tone)
|
if (!new_tone)
|
||||||
new_tone = 35
|
new_tone = 35
|
||||||
M.s_tone = max(min(round(text2num(new_tone)), 220), 1)
|
M.my_appearance.s_tone = max(min(round(text2num(new_tone)), 220), 1)
|
||||||
M.s_tone = -M.s_tone + 35
|
M.my_appearance.s_tone = -M.my_appearance.s_tone + 35
|
||||||
|
|
||||||
// hair
|
// hair
|
||||||
var/list/all_hairs = typesof(/datum/sprite_accessory/hair) - /datum/sprite_accessory/hair
|
var/list/all_hairs = typesof(/datum/sprite_accessory/hair) - /datum/sprite_accessory/hair
|
||||||
@@ -92,12 +92,12 @@ var/list/response_team_members = list()
|
|||||||
//hair
|
//hair
|
||||||
var/new_hstyle = input(user, "Select a hair style", "Grooming") as null|anything in hair_styles_list
|
var/new_hstyle = input(user, "Select a hair style", "Grooming") as null|anything in hair_styles_list
|
||||||
if(new_hstyle)
|
if(new_hstyle)
|
||||||
M.h_style = new_hstyle
|
M.my_appearance.h_style = new_hstyle
|
||||||
|
|
||||||
// facial hair
|
// facial hair
|
||||||
var/new_fstyle = input(user, "Select a facial hair style", "Grooming") as null|anything in facial_hair_styles_list
|
var/new_fstyle = input(user, "Select a facial hair style", "Grooming") as null|anything in facial_hair_styles_list
|
||||||
if(new_fstyle)
|
if(new_fstyle)
|
||||||
M.f_style = new_fstyle
|
M.my_appearance.f_style = new_fstyle
|
||||||
|
|
||||||
var/new_gender = alert(user, "Please select gender.", "Character Generation", "Male", "Female")
|
var/new_gender = alert(user, "Please select gender.", "Character Generation", "Male", "Female")
|
||||||
if (new_gender)
|
if (new_gender)
|
||||||
|
|||||||
@@ -18,8 +18,7 @@
|
|||||||
|
|
||||||
new_commando.gender = pick(MALE, FEMALE)
|
new_commando.gender = pick(MALE, FEMALE)
|
||||||
|
|
||||||
var/datum/preferences/A = new()//Randomize appearance for the commando.
|
new_commando.randomise_appearance_for(new_commando.gender)
|
||||||
A.randomize_appearance_for(new_commando)
|
|
||||||
|
|
||||||
new_commando.real_name = "[!leader_selected ? commando_rank : commando_leader_rank] [!leader_selected ? commando_name : "Creed"]"
|
new_commando.real_name = "[!leader_selected ? commando_rank : commando_leader_rank] [!leader_selected ? commando_name : "Creed"]"
|
||||||
new_commando.age = !leader_selected ? rand(23,35) : rand(35,45)
|
new_commando.age = !leader_selected ? rand(23,35) : rand(35,45)
|
||||||
|
|||||||
@@ -265,28 +265,28 @@ var/list/sent_strike_teams = list()
|
|||||||
if(can_customize_appearance)
|
if(can_customize_appearance)
|
||||||
var/new_facial = input(user, "Please select facial hair color.", "Character Generation") as color
|
var/new_facial = input(user, "Please select facial hair color.", "Character Generation") as color
|
||||||
if(new_facial)
|
if(new_facial)
|
||||||
new_commando.r_facial = hex2num(copytext(new_facial, 2, 4))
|
new_commando.my_appearance.r_facial = hex2num(copytext(new_facial, 2, 4))
|
||||||
new_commando.g_facial = hex2num(copytext(new_facial, 4, 6))
|
new_commando.my_appearance.g_facial = hex2num(copytext(new_facial, 4, 6))
|
||||||
new_commando.b_facial = hex2num(copytext(new_facial, 6, 8))
|
new_commando.my_appearance.b_facial = hex2num(copytext(new_facial, 6, 8))
|
||||||
|
|
||||||
var/new_hair = input(user, "Please select hair color.", "Character Generation") as color
|
var/new_hair = input(user, "Please select hair color.", "Character Generation") as color
|
||||||
if(new_facial)
|
if(new_facial)
|
||||||
new_commando.r_hair = hex2num(copytext(new_hair, 2, 4))
|
new_commando.my_appearance.r_hair = hex2num(copytext(new_hair, 2, 4))
|
||||||
new_commando.g_hair = hex2num(copytext(new_hair, 4, 6))
|
new_commando.my_appearance.g_hair = hex2num(copytext(new_hair, 4, 6))
|
||||||
new_commando.b_hair = hex2num(copytext(new_hair, 6, 8))
|
new_commando.my_appearance.b_hair = hex2num(copytext(new_hair, 6, 8))
|
||||||
|
|
||||||
var/new_eyes = input(user, "Please select eye color.", "Character Generation") as color
|
var/new_eyes = input(user, "Please select eye color.", "Character Generation") as color
|
||||||
if(new_eyes)
|
if(new_eyes)
|
||||||
new_commando.r_eyes = hex2num(copytext(new_eyes, 2, 4))
|
new_commando.my_appearance.r_eyes = hex2num(copytext(new_eyes, 2, 4))
|
||||||
new_commando.g_eyes = hex2num(copytext(new_eyes, 4, 6))
|
new_commando.my_appearance.g_eyes = hex2num(copytext(new_eyes, 4, 6))
|
||||||
new_commando.b_eyes = hex2num(copytext(new_eyes, 6, 8))
|
new_commando.my_appearance.b_eyes = hex2num(copytext(new_eyes, 6, 8))
|
||||||
|
|
||||||
var/new_tone = input(user, "Please select skin tone level: 1-220 (1=albino, 35=caucasian, 150=black, 220='very' black)", "Character Generation") as text
|
var/new_tone = input(user, "Please select skin tone level: 1-220 (1=albino, 35=caucasian, 150=black, 220='very' black)", "Character Generation") as text
|
||||||
|
|
||||||
if (!new_tone)
|
if (!new_tone)
|
||||||
new_tone = 35
|
new_tone = 35
|
||||||
new_commando.s_tone = max(min(round(text2num(new_tone)), 220), 1)
|
new_commando.my_appearance.s_tone = max(min(round(text2num(new_tone)), 220), 1)
|
||||||
new_commando.s_tone = -new_commando.s_tone + 35
|
new_commando.my_appearance.s_tone = -new_commando.my_appearance.s_tone + 35
|
||||||
|
|
||||||
// hair
|
// hair
|
||||||
var/list/all_hairs = typesof(/datum/sprite_accessory/hair) - /datum/sprite_accessory/hair
|
var/list/all_hairs = typesof(/datum/sprite_accessory/hair) - /datum/sprite_accessory/hair
|
||||||
@@ -302,12 +302,12 @@ var/list/sent_strike_teams = list()
|
|||||||
//hair
|
//hair
|
||||||
var/new_hstyle = input(user, "Select a hair style", "Grooming") as null|anything in hair_styles_list
|
var/new_hstyle = input(user, "Select a hair style", "Grooming") as null|anything in hair_styles_list
|
||||||
if(new_hstyle)
|
if(new_hstyle)
|
||||||
new_commando.h_style = new_hstyle
|
new_commando.my_appearance.h_style = new_hstyle
|
||||||
|
|
||||||
// facial hair
|
// facial hair
|
||||||
var/new_fstyle = input(user, "Select a facial hair style", "Grooming") as null|anything in facial_hair_styles_list
|
var/new_fstyle = input(user, "Select a facial hair style", "Grooming") as null|anything in facial_hair_styles_list
|
||||||
if(new_fstyle)
|
if(new_fstyle)
|
||||||
new_commando.f_style = new_fstyle
|
new_commando.my_appearance.f_style = new_fstyle
|
||||||
|
|
||||||
var/new_gender = alert(user, "Please select gender.", "Character Generation", "Male", "Female")
|
var/new_gender = alert(user, "Please select gender.", "Character Generation", "Male", "Female")
|
||||||
if (new_gender)
|
if (new_gender)
|
||||||
@@ -317,9 +317,7 @@ var/list/sent_strike_teams = list()
|
|||||||
new_commando.setGender(FEMALE)
|
new_commando.setGender(FEMALE)
|
||||||
else
|
else
|
||||||
new_commando.setGender(pick(MALE, FEMALE))
|
new_commando.setGender(pick(MALE, FEMALE))
|
||||||
|
new_commando.randomise_appearance_for(new_commando.gender)
|
||||||
var/datum/preferences/A = new()
|
|
||||||
A.randomize_appearance_for(new_commando)
|
|
||||||
|
|
||||||
//M.rebuild_appearance()
|
//M.rebuild_appearance()
|
||||||
new_commando.update_hair()
|
new_commando.update_hair()
|
||||||
|
|||||||
@@ -24,8 +24,7 @@
|
|||||||
|
|
||||||
new_syndicate_commando.setGender(pick(MALE, FEMALE))
|
new_syndicate_commando.setGender(pick(MALE, FEMALE))
|
||||||
|
|
||||||
var/datum/preferences/A = new()//Randomize appearance for the commando.
|
new_syndicate_commando.randomise_appearance_for(new_syndicate_commando.gender)
|
||||||
A.randomize_appearance_for(new_syndicate_commando)
|
|
||||||
|
|
||||||
new_syndicate_commando.real_name = "[!syndicate_leader_selected ? syndicate_commando_rank : syndicate_commando_leader_rank] [syndicate_commando_name]"
|
new_syndicate_commando.real_name = "[!syndicate_leader_selected ? syndicate_commando_rank : syndicate_commando_leader_rank] [syndicate_commando_name]"
|
||||||
new_syndicate_commando.age = !syndicate_leader_selected ? rand(23,35) : rand(35,45)
|
new_syndicate_commando.age = !syndicate_leader_selected ? rand(23,35) : rand(35,45)
|
||||||
|
|||||||
@@ -61,8 +61,8 @@
|
|||||||
bloodDNA = null
|
bloodDNA = null
|
||||||
|
|
||||||
// Floorlength braids? Enjoy your tripping.
|
// Floorlength braids? Enjoy your tripping.
|
||||||
if(H.h_style && !H.check_hidden_head_flags(HIDEHEADHAIR))
|
if(H.my_appearance.h_style && !H.check_hidden_head_flags(HIDEHEADHAIR))
|
||||||
var/datum/sprite_accessory/hair_style = hair_styles_list[H.h_style]
|
var/datum/sprite_accessory/hair_style = hair_styles_list[H.my_appearance.h_style]
|
||||||
if(hair_style && (hair_style.flags & HAIRSTYLE_CANTRIP))
|
if(hair_style && (hair_style.flags & HAIRSTYLE_CANTRIP))
|
||||||
if(H.m_intent == "run" && prob(5))
|
if(H.m_intent == "run" && prob(5))
|
||||||
if (H.Slip(4, 5))
|
if (H.Slip(4, 5))
|
||||||
|
|||||||
@@ -777,37 +777,37 @@ var/list/admin_verbs_mod = list(
|
|||||||
return
|
return
|
||||||
var/new_facial = input("Please select facial hair color.", "Character Generation") as color
|
var/new_facial = input("Please select facial hair color.", "Character Generation") as color
|
||||||
if(new_facial)
|
if(new_facial)
|
||||||
M.r_facial = hex2num(copytext(new_facial, 2, 4))
|
M.my_appearance.r_facial = hex2num(copytext(new_facial, 2, 4))
|
||||||
M.g_facial = hex2num(copytext(new_facial, 4, 6))
|
M.my_appearance.g_facial = hex2num(copytext(new_facial, 4, 6))
|
||||||
M.b_facial = hex2num(copytext(new_facial, 6, 8))
|
M.my_appearance.b_facial = hex2num(copytext(new_facial, 6, 8))
|
||||||
|
|
||||||
var/new_hair = input("Please select hair color.", "Character Generation") as color
|
var/new_hair = input("Please select hair color.", "Character Generation") as color
|
||||||
if(new_facial)
|
if(new_facial)
|
||||||
M.r_hair = hex2num(copytext(new_hair, 2, 4))
|
M.my_appearance.r_hair = hex2num(copytext(new_hair, 2, 4))
|
||||||
M.g_hair = hex2num(copytext(new_hair, 4, 6))
|
M.my_appearance.g_hair = hex2num(copytext(new_hair, 4, 6))
|
||||||
M.b_hair = hex2num(copytext(new_hair, 6, 8))
|
M.my_appearance.b_hair = hex2num(copytext(new_hair, 6, 8))
|
||||||
|
|
||||||
var/new_eyes = input("Please select eye color.", "Character Generation") as color
|
var/new_eyes = input("Please select eye color.", "Character Generation") as color
|
||||||
if(new_eyes)
|
if(new_eyes)
|
||||||
M.r_eyes = hex2num(copytext(new_eyes, 2, 4))
|
M.my_appearance.r_eyes = hex2num(copytext(new_eyes, 2, 4))
|
||||||
M.g_eyes = hex2num(copytext(new_eyes, 4, 6))
|
M.my_appearance.g_eyes = hex2num(copytext(new_eyes, 4, 6))
|
||||||
M.b_eyes = hex2num(copytext(new_eyes, 6, 8))
|
M.my_appearance.b_eyes = hex2num(copytext(new_eyes, 6, 8))
|
||||||
|
|
||||||
var/new_tone = input("Please select skin tone level: 1-220 (1=albino, 35=caucasian, 150=black, 220='very' black)", "Character Generation") as text
|
var/new_tone = input("Please select skin tone level: 1-220 (1=albino, 35=caucasian, 150=black, 220='very' black)", "Character Generation") as text
|
||||||
|
|
||||||
if (new_tone)
|
if (new_tone)
|
||||||
M.s_tone = max(min(round(text2num(new_tone)), 220), 1)
|
M.my_appearance.s_tone = max(min(round(text2num(new_tone)), 220), 1)
|
||||||
M.s_tone = -M.s_tone + 35
|
M.my_appearance.s_tone = -M.my_appearance.s_tone + 35
|
||||||
|
|
||||||
// hair
|
// hair
|
||||||
var/new_hstyle = input(usr, "Select a hair style", "Grooming") as null|anything in hair_styles_list
|
var/new_hstyle = input(usr, "Select a hair style", "Grooming") as null|anything in hair_styles_list
|
||||||
if(new_hstyle)
|
if(new_hstyle)
|
||||||
M.h_style = new_hstyle
|
M.my_appearance.h_style = new_hstyle
|
||||||
|
|
||||||
// facial hair
|
// facial hair
|
||||||
var/new_fstyle = input(usr, "Select a facial hair style", "Grooming") as null|anything in facial_hair_styles_list
|
var/new_fstyle = input(usr, "Select a facial hair style", "Grooming") as null|anything in facial_hair_styles_list
|
||||||
if(new_fstyle)
|
if(new_fstyle)
|
||||||
M.f_style = new_fstyle
|
M.my_appearance.f_style = new_fstyle
|
||||||
|
|
||||||
var/new_gender = alert(usr, "Please select gender.", "Character Generation", "Male", "Female")
|
var/new_gender = alert(usr, "Please select gender.", "Character Generation", "Male", "Female")
|
||||||
if (new_gender)
|
if (new_gender)
|
||||||
|
|||||||
@@ -3407,7 +3407,7 @@
|
|||||||
feedback_inc("admin_secrets_fun_used",1)
|
feedback_inc("admin_secrets_fun_used",1)
|
||||||
feedback_add_details("admin_secrets_fun_used","DF")
|
feedback_add_details("admin_secrets_fun_used","DF")
|
||||||
for(var/mob/living/carbon/human/B in mob_list)
|
for(var/mob/living/carbon/human/B in mob_list)
|
||||||
B.f_style = "Dward Beard"
|
B.my_appearance.f_style = "Dward Beard"
|
||||||
B.update_hair()
|
B.update_hair()
|
||||||
message_admins("[key_name_admin(usr)] activated dorf mode")
|
message_admins("[key_name_admin(usr)] activated dorf mode")
|
||||||
if("ionstorm")
|
if("ionstorm")
|
||||||
|
|||||||
@@ -222,8 +222,7 @@ client/proc/one_click_antag()
|
|||||||
|
|
||||||
new_character.gender = pick(MALE,FEMALE)
|
new_character.gender = pick(MALE,FEMALE)
|
||||||
|
|
||||||
var/datum/preferences/A = new()
|
new_character.randomise_appearance_for(new_character.gender)
|
||||||
A.randomize_appearance_for(new_character)
|
|
||||||
new_character.generate_name()
|
new_character.generate_name()
|
||||||
new_character.age = rand(17,45)
|
new_character.age = rand(17,45)
|
||||||
|
|
||||||
@@ -240,8 +239,7 @@ client/proc/one_click_antag()
|
|||||||
|
|
||||||
new_syndicate_commando.gender = pick(MALE, FEMALE)
|
new_syndicate_commando.gender = pick(MALE, FEMALE)
|
||||||
|
|
||||||
var/datum/preferences/A = new()//Randomize appearance for the commando.
|
new_syndicate_commando.randomise_appearance_for(new_syndicate_commando.gender)
|
||||||
A.randomize_appearance_for(new_syndicate_commando)
|
|
||||||
|
|
||||||
new_syndicate_commando.real_name = "[!syndicate_leader_selected ? syndicate_commando_rank : syndicate_commando_leader_rank] [syndicate_commando_name]"
|
new_syndicate_commando.real_name = "[!syndicate_leader_selected ? syndicate_commando_rank : syndicate_commando_leader_rank] [syndicate_commando_name]"
|
||||||
new_syndicate_commando.name = new_syndicate_commando.real_name
|
new_syndicate_commando.name = new_syndicate_commando.real_name
|
||||||
@@ -266,7 +264,7 @@ client/proc/one_click_antag()
|
|||||||
var/mob/living/carbon/human/new_vox = new(spawn_location.loc)
|
var/mob/living/carbon/human/new_vox = new(spawn_location.loc)
|
||||||
|
|
||||||
new_vox.setGender(pick(MALE, FEMALE))
|
new_vox.setGender(pick(MALE, FEMALE))
|
||||||
new_vox.h_style = "Short Vox Quills"
|
new_vox.my_appearance.h_style = "Short Vox Quills"
|
||||||
new_vox.regenerate_icons()
|
new_vox.regenerate_icons()
|
||||||
|
|
||||||
new_vox.age = rand(12,20)
|
new_vox.age = rand(12,20)
|
||||||
|
|||||||
@@ -67,8 +67,7 @@
|
|||||||
var/mob/living/silicon/S = M
|
var/mob/living/silicon/S = M
|
||||||
var/mob/living/carbon/human/new_human = new /mob/living/carbon/human(S.loc, delay_ready_dna=1)
|
var/mob/living/carbon/human/new_human = new /mob/living/carbon/human(S.loc, delay_ready_dna=1)
|
||||||
new_human.setGender(pick(MALE, FEMALE)) //The new human's gender will be random
|
new_human.setGender(pick(MALE, FEMALE)) //The new human's gender will be random
|
||||||
var/datum/preferences/A = new() //Randomize appearance for the human
|
new_human.randomise_appearance_for(new_human.gender)
|
||||||
A.randomize_appearance_for(new_human)
|
|
||||||
new_human.generate_name()
|
new_human.generate_name()
|
||||||
new_human.languages |= S.languages
|
new_human.languages |= S.languages
|
||||||
if(S.default_language)
|
if(S.default_language)
|
||||||
|
|||||||
@@ -496,8 +496,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
|||||||
new_character.age = record_found.fields["age"]
|
new_character.age = record_found.fields["age"]
|
||||||
else
|
else
|
||||||
new_character.setGender(pick(MALE,FEMALE))
|
new_character.setGender(pick(MALE,FEMALE))
|
||||||
var/datum/preferences/A = new()
|
new_character.randomise_appearance_for(new_character.gender)
|
||||||
A.randomize_appearance_for(new_character)
|
|
||||||
new_character.real_name = G_found.real_name
|
new_character.real_name = G_found.real_name
|
||||||
|
|
||||||
if(!new_character.real_name)
|
if(!new_character.real_name)
|
||||||
|
|||||||
@@ -1523,22 +1523,22 @@ NOTE: The change will take effect AFTER any current recruiting periods."}
|
|||||||
character.setGender(gender)
|
character.setGender(gender)
|
||||||
character.age = age
|
character.age = age
|
||||||
|
|
||||||
character.r_eyes = r_eyes
|
character.my_appearance.r_eyes = r_eyes
|
||||||
character.g_eyes = g_eyes
|
character.my_appearance.g_eyes = g_eyes
|
||||||
character.b_eyes = b_eyes
|
character.my_appearance.b_eyes = b_eyes
|
||||||
|
|
||||||
character.r_hair = r_hair
|
character.my_appearance.r_hair = r_hair
|
||||||
character.g_hair = g_hair
|
character.my_appearance.g_hair = g_hair
|
||||||
character.b_hair = b_hair
|
character.my_appearance.b_hair = b_hair
|
||||||
|
|
||||||
character.r_facial = r_facial
|
character.my_appearance.r_facial = r_facial
|
||||||
character.g_facial = g_facial
|
character.my_appearance.g_facial = g_facial
|
||||||
character.b_facial = b_facial
|
character.my_appearance.b_facial = b_facial
|
||||||
|
|
||||||
character.s_tone = s_tone
|
character.my_appearance.s_tone = s_tone
|
||||||
|
|
||||||
character.h_style = h_style
|
character.my_appearance.h_style = h_style
|
||||||
character.f_style = f_style
|
character.my_appearance.f_style = f_style
|
||||||
|
|
||||||
|
|
||||||
character.skills = skills
|
character.skills = skills
|
||||||
|
|||||||
@@ -186,7 +186,7 @@
|
|||||||
if(!istype(user) || !haircolored)
|
if(!istype(user) || !haircolored)
|
||||||
return
|
return
|
||||||
wear_override = new/icon("icon" = 'icons/mob/head.dmi', "icon_state" = "kitty")
|
wear_override = new/icon("icon" = 'icons/mob/head.dmi', "icon_state" = "kitty")
|
||||||
wear_override.Blend(rgb(user.r_hair, user.g_hair, user.b_hair), ICON_ADD)
|
wear_override.Blend(rgb(user.my_appearance.r_hair, user.my_appearance.g_hair, user.my_appearance.b_hair), ICON_ADD)
|
||||||
|
|
||||||
var/icon/earbit = new/icon("icon" = 'icons/mob/head.dmi', "icon_state" = "kittyinner")
|
var/icon/earbit = new/icon("icon" = 'icons/mob/head.dmi', "icon_state" = "kittyinner")
|
||||||
wear_override.Blend(earbit, ICON_OVERLAY)
|
wear_override.Blend(earbit, ICON_OVERLAY)
|
||||||
|
|||||||
@@ -214,7 +214,7 @@
|
|||||||
voxcount++
|
voxcount++
|
||||||
if(isdiona(H))
|
if(isdiona(H))
|
||||||
dionacount++
|
dionacount++
|
||||||
if(isjusthuman(H) && (H.h_style == "Bald" || H.h_style == "Skinhead") && !H.check_body_part_coverage(HEAD))
|
if(isjusthuman(H) && (H.my_appearance.h_style == "Bald" || H.my_appearance.h_style == "Skinhead") && !H.check_body_part_coverage(HEAD))
|
||||||
baldycount++
|
baldycount++
|
||||||
if(M_FAT in H.mutations)
|
if(M_FAT in H.mutations)
|
||||||
fattycount++
|
fattycount++
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ var/global/list/datum/mind/raiders = list() //Antags.
|
|||||||
|
|
||||||
var/mob/living/carbon/human/vox = raider.current
|
var/mob/living/carbon/human/vox = raider.current
|
||||||
vox.age = rand(12,20)
|
vox.age = rand(12,20)
|
||||||
vox.s_tone = random_skin_tone("Vox")
|
vox.my_appearance.s_tone = random_skin_tone("Vox")
|
||||||
vox.dna.mutantrace = "vox"
|
vox.dna.mutantrace = "vox"
|
||||||
vox.set_species("Vox")
|
vox.set_species("Vox")
|
||||||
vox.fully_replace_character_name(vox.real_name, vox.generate_name())
|
vox.fully_replace_character_name(vox.real_name, vox.generate_name())
|
||||||
@@ -90,8 +90,8 @@ var/global/list/datum/mind/raiders = list() //Antags.
|
|||||||
vox.flavor_text = ""
|
vox.flavor_text = ""
|
||||||
vox.add_language(LANGUAGE_VOX)
|
vox.add_language(LANGUAGE_VOX)
|
||||||
vox.remove_language(LANGUAGE_GALACTIC_COMMON)
|
vox.remove_language(LANGUAGE_GALACTIC_COMMON)
|
||||||
vox.h_style = "Short Vox Quills"
|
vox.my_appearance.h_style = "Short Vox Quills"
|
||||||
vox.f_style = "Shaved"
|
vox.my_appearance.f_style = "Shaved"
|
||||||
for(var/datum/organ/external/limb in vox.organs)
|
for(var/datum/organ/external/limb in vox.organs)
|
||||||
limb.status &= ~(ORGAN_DESTROYED | ORGAN_ROBOT)
|
limb.status &= ~(ORGAN_DESTROYED | ORGAN_ROBOT)
|
||||||
vox.equip_vox_raider()
|
vox.equip_vox_raider()
|
||||||
|
|||||||
160
code/modules/mob/living/carbon/human/appearance.dm
Normal file
160
code/modules/mob/living/carbon/human/appearance.dm
Normal file
@@ -0,0 +1,160 @@
|
|||||||
|
#define INDEX_RED 1
|
||||||
|
#define INDEX_GREEN 2
|
||||||
|
#define INDEX_BLUE 3
|
||||||
|
|
||||||
|
/datum/human_appearance
|
||||||
|
// For identification.
|
||||||
|
var/name
|
||||||
|
var/gender
|
||||||
|
|
||||||
|
// "Proper" to the appearance datum.
|
||||||
|
var/s_tone
|
||||||
|
|
||||||
|
var/h_style
|
||||||
|
var/r_hair
|
||||||
|
var/g_hair
|
||||||
|
var/b_hair
|
||||||
|
|
||||||
|
var/f_style
|
||||||
|
var/r_facial
|
||||||
|
var/g_facial
|
||||||
|
var/b_facial
|
||||||
|
|
||||||
|
var/r_eyes
|
||||||
|
var/g_eyes
|
||||||
|
var/b_eyes
|
||||||
|
|
||||||
|
/mob/living/carbon/human/
|
||||||
|
var/datum/human_appearance/my_appearance
|
||||||
|
|
||||||
|
/mob/living/carbon/human/proc/switch_appearance(var/datum/human_appearance/new_looks)
|
||||||
|
if (!istype(new_looks))
|
||||||
|
return
|
||||||
|
my_appearance = new_looks
|
||||||
|
regenerate_icons()
|
||||||
|
|
||||||
|
/mob/living/carbon/human/proc/randomise_appearance_for(var/new_gender)
|
||||||
|
var/datum/human_appearance/appearance = new
|
||||||
|
|
||||||
|
if (new_gender)
|
||||||
|
appearance.gender = new_gender
|
||||||
|
else
|
||||||
|
appearance.gender = pick(MALE, FEMALE)
|
||||||
|
|
||||||
|
appearance.s_tone = random_skin_tone(species)
|
||||||
|
appearance.h_style = random_hair_style(gender, species)
|
||||||
|
appearance.f_style = random_facial_hair_style(gender, species)
|
||||||
|
|
||||||
|
var/list/hair_colour = randomize_hair_color("hair")
|
||||||
|
var/list/facial_hair_colour = randomize_hair_color("facial")
|
||||||
|
var/list/eye_colour = randomize_eyes_color()
|
||||||
|
|
||||||
|
appearance.r_hair = hair_colour[INDEX_RED]
|
||||||
|
appearance.g_hair = hair_colour[INDEX_GREEN]
|
||||||
|
appearance.b_hair = hair_colour[INDEX_BLUE]
|
||||||
|
|
||||||
|
appearance.r_facial = facial_hair_colour[INDEX_RED]
|
||||||
|
appearance.g_facial = facial_hair_colour[INDEX_GREEN]
|
||||||
|
appearance.b_facial = facial_hair_colour[INDEX_BLUE]
|
||||||
|
|
||||||
|
appearance.r_eyes = eye_colour[INDEX_RED]
|
||||||
|
appearance.g_eyes = eye_colour[INDEX_GREEN]
|
||||||
|
appearance.b_eyes = eye_colour[INDEX_BLUE]
|
||||||
|
gender = appearance.gender
|
||||||
|
regenerate_icons()
|
||||||
|
return appearance
|
||||||
|
|
||||||
|
/mob/living/carbon/human/proc/randomize_hair_color(var/target = "hair")
|
||||||
|
if(prob (75) && target == "facial") // Chance to inherit hair color
|
||||||
|
return list(my_appearance.r_hair, my_appearance.g_hair, my_appearance.b_hair)
|
||||||
|
|
||||||
|
var/red
|
||||||
|
var/green
|
||||||
|
var/blue
|
||||||
|
|
||||||
|
var/col = pick ("blonde", "black", "chestnut", "copper", "brown", "wheat", "old", 15;"punk")
|
||||||
|
switch(col)
|
||||||
|
if("blonde")
|
||||||
|
red = 255
|
||||||
|
green = 255
|
||||||
|
blue = 0
|
||||||
|
if("black")
|
||||||
|
red = 0
|
||||||
|
green = 0
|
||||||
|
blue = 0
|
||||||
|
if("chestnut")
|
||||||
|
red = 153
|
||||||
|
green = 102
|
||||||
|
blue = 51
|
||||||
|
if("copper")
|
||||||
|
red = 255
|
||||||
|
green = 153
|
||||||
|
blue = 0
|
||||||
|
if("brown")
|
||||||
|
red = 102
|
||||||
|
green = 51
|
||||||
|
blue = 0
|
||||||
|
if("wheat")
|
||||||
|
red = 255
|
||||||
|
green = 255
|
||||||
|
blue = 153
|
||||||
|
if("old")
|
||||||
|
red = rand (100, 255)
|
||||||
|
green = red
|
||||||
|
blue = red
|
||||||
|
if("punk")
|
||||||
|
red = rand(0, 255)
|
||||||
|
green = rand(0, 255)
|
||||||
|
blue = rand(0, 255)
|
||||||
|
|
||||||
|
red = max(min(red + rand (-25, 25), 255), 0)
|
||||||
|
green = max(min(green + rand (-25, 25), 255), 0)
|
||||||
|
blue = max(min(blue + rand (-25, 25), 255), 0)
|
||||||
|
|
||||||
|
return list(red, green, blue)
|
||||||
|
|
||||||
|
/mob/living/carbon/human/proc/randomize_eyes_color()
|
||||||
|
var/red
|
||||||
|
var/green
|
||||||
|
var/blue
|
||||||
|
|
||||||
|
var/col = pick ("black", "grey", "brown", "chestnut", "blue", "lightblue", "green", "albino")
|
||||||
|
switch(col)
|
||||||
|
if("black")
|
||||||
|
red = 0
|
||||||
|
green = 0
|
||||||
|
blue = 0
|
||||||
|
if("grey")
|
||||||
|
red = rand (100, 200)
|
||||||
|
green = red
|
||||||
|
blue = red
|
||||||
|
if("brown")
|
||||||
|
red = 102
|
||||||
|
green = 51
|
||||||
|
blue = 0
|
||||||
|
if("chestnut")
|
||||||
|
red = 153
|
||||||
|
green = 102
|
||||||
|
blue = 0
|
||||||
|
if("blue")
|
||||||
|
red = 51
|
||||||
|
green = 102
|
||||||
|
blue = 204
|
||||||
|
if("lightblue")
|
||||||
|
red = 102
|
||||||
|
green = 204
|
||||||
|
blue = 255
|
||||||
|
if("green")
|
||||||
|
red = 0
|
||||||
|
green = 102
|
||||||
|
blue = 0
|
||||||
|
if("albino")
|
||||||
|
red = rand (200, 255)
|
||||||
|
green = rand (0, 150)
|
||||||
|
blue = rand (0, 150)
|
||||||
|
|
||||||
|
red = max(min(red + rand (-25, 25), 255), 0)
|
||||||
|
green = max(min(green + rand (-25, 25), 255), 0)
|
||||||
|
blue = max(min(blue + rand (-25, 25), 255), 0)
|
||||||
|
|
||||||
|
return list(red, green, blue)
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
/mob/living/carbon/human/tajaran/New(var/new_loc)
|
/mob/living/carbon/human/tajaran/New(var/new_loc)
|
||||||
h_style = "Tajaran Ears"
|
my_appearance.h_style = "Tajaran Ears"
|
||||||
..(new_loc, "Tajaran")
|
..(new_loc, "Tajaran")
|
||||||
|
|
||||||
/mob/living/carbon/human/tajaran/IsAdvancedToolUser()
|
/mob/living/carbon/human/tajaran/IsAdvancedToolUser()
|
||||||
|
|||||||
@@ -66,6 +66,7 @@
|
|||||||
qdel(vessel)
|
qdel(vessel)
|
||||||
vessel = null
|
vessel = null
|
||||||
|
|
||||||
|
my_appearance = null
|
||||||
|
|
||||||
..()
|
..()
|
||||||
|
|
||||||
@@ -126,10 +127,10 @@
|
|||||||
if(M_SKELETON in src.mutations)
|
if(M_SKELETON in src.mutations)
|
||||||
return
|
return
|
||||||
|
|
||||||
if(f_style)
|
if(my_appearance.f_style)
|
||||||
f_style = "Shaved"
|
my_appearance.f_style = "Shaved"
|
||||||
if(h_style)
|
if(my_appearance.h_style)
|
||||||
h_style = "Bald"
|
my_appearance.h_style = "Bald"
|
||||||
update_hair(0)
|
update_hair(0)
|
||||||
|
|
||||||
mutations.Add(M_SKELETON)
|
mutations.Add(M_SKELETON)
|
||||||
@@ -142,10 +143,10 @@
|
|||||||
/mob/living/carbon/human/proc/ChangeToHusk()
|
/mob/living/carbon/human/proc/ChangeToHusk()
|
||||||
if(M_HUSK in mutations)
|
if(M_HUSK in mutations)
|
||||||
return
|
return
|
||||||
if(f_style)
|
if(my_appearance.f_style)
|
||||||
f_style = "Shaved" //We only change the icon_state of the hair datum, so it doesn't mess up their UI/UE
|
my_appearance.f_style = "Shaved" //We only change the icon_state of the hair datum, so it doesn't mess up their UI/UE
|
||||||
if(h_style)
|
if(my_appearance.h_style)
|
||||||
h_style = "Bald"
|
my_appearance.h_style = "Bald"
|
||||||
update_hair(0)
|
update_hair(0)
|
||||||
|
|
||||||
mutations.Add(M_HUSK)
|
mutations.Add(M_HUSK)
|
||||||
|
|||||||
@@ -23,55 +23,55 @@
|
|||||||
..(new_loc, "Manifested")
|
..(new_loc, "Manifested")
|
||||||
|
|
||||||
/mob/living/carbon/human/skrell/New(var/new_loc, delay_ready_dna = 0)
|
/mob/living/carbon/human/skrell/New(var/new_loc, delay_ready_dna = 0)
|
||||||
h_style = "Skrell Male Tentacles"
|
my_appearance.h_style = "Skrell Male Tentacles"
|
||||||
..(new_loc, "Skrell")
|
..(new_loc, "Skrell")
|
||||||
|
|
||||||
/mob/living/carbon/human/tajaran/New(var/new_loc, delay_ready_dna = 0)
|
/mob/living/carbon/human/tajaran/New(var/new_loc, delay_ready_dna = 0)
|
||||||
h_style = "Tajaran Ears"
|
my_appearance.h_style = "Tajaran Ears"
|
||||||
..(new_loc, "Tajaran")
|
..(new_loc, "Tajaran")
|
||||||
|
|
||||||
/mob/living/carbon/human/unathi/New(var/new_loc, delay_ready_dna = 0)
|
/mob/living/carbon/human/unathi/New(var/new_loc, delay_ready_dna = 0)
|
||||||
h_style = "Unathi Horns"
|
my_appearance.h_style = "Unathi Horns"
|
||||||
..(new_loc, "Unathi")
|
..(new_loc, "Unathi")
|
||||||
|
|
||||||
/mob/living/carbon/human/vox/New(var/new_loc, delay_ready_dna = 0)
|
/mob/living/carbon/human/vox/New(var/new_loc, delay_ready_dna = 0)
|
||||||
h_style = "Short Vox Quills"
|
my_appearance.h_style = "Short Vox Quills"
|
||||||
..(new_loc, "Vox")
|
..(new_loc, "Vox")
|
||||||
|
|
||||||
/mob/living/carbon/human/diona/New(var/new_loc, delay_ready_dna = 0)
|
/mob/living/carbon/human/diona/New(var/new_loc, delay_ready_dna = 0)
|
||||||
h_style = "Bald"
|
my_appearance.h_style = "Bald"
|
||||||
..(new_loc, "Diona")
|
..(new_loc, "Diona")
|
||||||
|
|
||||||
/mob/living/carbon/human/skellington/New(var/new_loc, delay_ready_dna = 0)
|
/mob/living/carbon/human/skellington/New(var/new_loc, delay_ready_dna = 0)
|
||||||
h_style = "Bald"
|
my_appearance.h_style = "Bald"
|
||||||
..(new_loc, "Skellington", delay_ready_dna)
|
..(new_loc, "Skellington", delay_ready_dna)
|
||||||
|
|
||||||
/mob/living/carbon/human/skelevox/New(var/new_loc, delay_ready_dna = 0)
|
/mob/living/carbon/human/skelevox/New(var/new_loc, delay_ready_dna = 0)
|
||||||
h_style = "Bald"
|
my_appearance.h_style = "Bald"
|
||||||
..(new_loc, "Skeletal Vox")
|
..(new_loc, "Skeletal Vox")
|
||||||
|
|
||||||
/mob/living/carbon/human/plasma/New(var/new_loc, delay_ready_dna = 0)
|
/mob/living/carbon/human/plasma/New(var/new_loc, delay_ready_dna = 0)
|
||||||
h_style = "Bald"
|
my_appearance.h_style = "Bald"
|
||||||
..(new_loc, "Plasmaman")
|
..(new_loc, "Plasmaman")
|
||||||
|
|
||||||
/mob/living/carbon/human/muton/New(var/new_loc, delay_ready_dna = 0)
|
/mob/living/carbon/human/muton/New(var/new_loc, delay_ready_dna = 0)
|
||||||
h_style = "Bald"
|
my_appearance.h_style = "Bald"
|
||||||
..(new_loc, "Muton")
|
..(new_loc, "Muton")
|
||||||
|
|
||||||
/mob/living/carbon/human/grey/New(var/new_loc, delay_ready_dna = 0)
|
/mob/living/carbon/human/grey/New(var/new_loc, delay_ready_dna = 0)
|
||||||
h_style = "Bald"
|
my_appearance.h_style = "Bald"
|
||||||
..(new_loc, "Grey")
|
..(new_loc, "Grey")
|
||||||
|
|
||||||
/mob/living/carbon/human/golem/New(var/new_loc, delay_ready_dna = 0)
|
/mob/living/carbon/human/golem/New(var/new_loc, delay_ready_dna = 0)
|
||||||
h_style = "Bald"
|
my_appearance.h_style = "Bald"
|
||||||
..(new_loc, "Golem")
|
..(new_loc, "Golem")
|
||||||
|
|
||||||
/mob/living/carbon/human/grue/New(var/new_loc, delay_ready_dna = 0)
|
/mob/living/carbon/human/grue/New(var/new_loc, delay_ready_dna = 0)
|
||||||
h_style = "Bald"
|
my_appearance.h_style = "Bald"
|
||||||
..(new_loc, "Grue")
|
..(new_loc, "Grue")
|
||||||
|
|
||||||
/mob/living/carbon/human/slime/New(var/new_loc, delay_ready_dna = 0)
|
/mob/living/carbon/human/slime/New(var/new_loc, delay_ready_dna = 0)
|
||||||
h_style = "Bald"
|
my_appearance.h_style = "Bald"
|
||||||
..(new_loc, "Slime")
|
..(new_loc, "Slime")
|
||||||
|
|
||||||
/mob/living/carbon/human/NPC/New(var/new_loc, delay_ready_dna = 0)
|
/mob/living/carbon/human/NPC/New(var/new_loc, delay_ready_dna = 0)
|
||||||
@@ -79,13 +79,12 @@
|
|||||||
initialize_basic_NPC_components()
|
initialize_basic_NPC_components()
|
||||||
|
|
||||||
/mob/living/carbon/human/frankenstein/New(var/new_loc, delay_ready_dna = 0) //Just fuck my shit up: the mob
|
/mob/living/carbon/human/frankenstein/New(var/new_loc, delay_ready_dna = 0) //Just fuck my shit up: the mob
|
||||||
f_style = pick(facial_hair_styles_list)
|
|
||||||
h_style = pick(hair_styles_list)
|
|
||||||
|
|
||||||
var/list/valid_species = (all_species - list("Krampus", "Horror"))
|
var/list/valid_species = (all_species - list("Krampus", "Horror"))
|
||||||
|
|
||||||
var/datum/species/new_species = all_species[pick(valid_species)]
|
var/datum/species/new_species = all_species[pick(valid_species)]
|
||||||
..(new_loc, new_species.name)
|
..(new_loc, new_species.name)
|
||||||
|
my_appearance.f_style = pick(facial_hair_styles_list)
|
||||||
|
my_appearance.h_style = pick(hair_styles_list)
|
||||||
gender = pick(MALE, FEMALE, NEUTER, PLURAL)
|
gender = pick(MALE, FEMALE, NEUTER, PLURAL)
|
||||||
meat_type = pick(typesof(/obj/item/weapon/reagent_containers/food/snacks/meat))
|
meat_type = pick(typesof(/obj/item/weapon/reagent_containers/food/snacks/meat))
|
||||||
|
|
||||||
@@ -95,11 +94,11 @@
|
|||||||
update_body()
|
update_body()
|
||||||
|
|
||||||
/mob/living/carbon/human/mushroom/New(var/new_loc, delay_ready_dna = 0)
|
/mob/living/carbon/human/mushroom/New(var/new_loc, delay_ready_dna = 0)
|
||||||
h_style = "Bald"
|
my_appearance.h_style = "Bald"
|
||||||
..(new_loc, "Mushroom")
|
..(new_loc, "Mushroom")
|
||||||
|
|
||||||
/mob/living/carbon/human/lich/New(var/new_loc, delay_ready_dna = 0)
|
/mob/living/carbon/human/lich/New(var/new_loc, delay_ready_dna = 0)
|
||||||
h_style = "Bald"
|
my_appearance.h_style = "Bald"
|
||||||
..(new_loc, "Undead")
|
..(new_loc, "Undead")
|
||||||
|
|
||||||
/mob/living/carbon/human/generate_static_overlay()
|
/mob/living/carbon/human/generate_static_overlay()
|
||||||
@@ -123,8 +122,9 @@
|
|||||||
static_overlays["cult"] = static_overlay
|
static_overlays["cult"] = static_overlay
|
||||||
|
|
||||||
/mob/living/carbon/human/New(var/new_loc, var/new_species_name = null, var/delay_ready_dna=0)
|
/mob/living/carbon/human/New(var/new_loc, var/new_species_name = null, var/delay_ready_dna=0)
|
||||||
|
my_appearance = new // Initialise how they look.
|
||||||
if(new_species_name)
|
if(new_species_name)
|
||||||
s_tone = random_skin_tone(new_species_name)
|
my_appearance.s_tone = random_skin_tone(new_species_name)
|
||||||
multicolor_skin_r = rand(0,255) //Only used when the human has a species datum with the MULTICOLOR anatomical flag
|
multicolor_skin_r = rand(0,255) //Only used when the human has a species datum with the MULTICOLOR anatomical flag
|
||||||
multicolor_skin_g = rand(0,255)
|
multicolor_skin_g = rand(0,255)
|
||||||
multicolor_skin_b = rand(0,255)
|
multicolor_skin_b = rand(0,255)
|
||||||
@@ -751,30 +751,30 @@
|
|||||||
src.verbs -= /mob/living/carbon/human/proc/morph
|
src.verbs -= /mob/living/carbon/human/proc/morph
|
||||||
return
|
return
|
||||||
|
|
||||||
var/new_facial = input("Please select facial hair color.", "Character Generation",rgb(r_facial,g_facial,b_facial)) as color
|
var/new_facial = input("Please select facial hair color.", "Character Generation",rgb(my_appearance.r_facial,my_appearance.g_facial,my_appearance.b_facial)) as color
|
||||||
if(new_facial)
|
if(new_facial)
|
||||||
r_facial = hex2num(copytext(new_facial, 2, 4))
|
my_appearance.r_facial = hex2num(copytext(new_facial, 2, 4))
|
||||||
g_facial = hex2num(copytext(new_facial, 4, 6))
|
my_appearance.g_facial = hex2num(copytext(new_facial, 4, 6))
|
||||||
b_facial = hex2num(copytext(new_facial, 6, 8))
|
my_appearance.b_facial = hex2num(copytext(new_facial, 6, 8))
|
||||||
|
|
||||||
var/new_hair = input("Please select hair color.", "Character Generation",rgb(r_hair,g_hair,b_hair)) as color
|
var/new_hair = input("Please select hair color.", "Character Generation",rgb(my_appearance.r_hair,my_appearance.g_hair,my_appearance.b_hair)) as color
|
||||||
if(new_facial)
|
if(new_facial)
|
||||||
r_hair = hex2num(copytext(new_hair, 2, 4))
|
my_appearance.r_hair = hex2num(copytext(new_hair, 2, 4))
|
||||||
g_hair = hex2num(copytext(new_hair, 4, 6))
|
my_appearance.g_hair = hex2num(copytext(new_hair, 4, 6))
|
||||||
b_hair = hex2num(copytext(new_hair, 6, 8))
|
my_appearance.b_hair = hex2num(copytext(new_hair, 6, 8))
|
||||||
|
|
||||||
var/new_eyes = input("Please select eye color.", "Character Generation",rgb(r_eyes,g_eyes,b_eyes)) as color
|
var/new_eyes = input("Please select eye color.", "Character Generation",rgb(my_appearance.r_eyes,my_appearance.g_eyes,my_appearance.b_eyes)) as color
|
||||||
if(new_eyes)
|
if(new_eyes)
|
||||||
r_eyes = hex2num(copytext(new_eyes, 2, 4))
|
my_appearance.r_eyes = hex2num(copytext(new_eyes, 2, 4))
|
||||||
g_eyes = hex2num(copytext(new_eyes, 4, 6))
|
my_appearance.g_eyes = hex2num(copytext(new_eyes, 4, 6))
|
||||||
b_eyes = hex2num(copytext(new_eyes, 6, 8))
|
my_appearance.b_eyes = hex2num(copytext(new_eyes, 6, 8))
|
||||||
|
|
||||||
var/new_tone = input("Please select skin tone level: 1-220 (1=albino, 35=caucasian, 150=black, 220='very' black)", "Character Generation", "[35-s_tone]") as text
|
var/new_tone = input("Please select skin tone level: 1-220 (1=albino, 35=caucasian, 150=black, 220='very' black)", "Character Generation", "[35-my_appearance.s_tone]") as text
|
||||||
|
|
||||||
if (!new_tone)
|
if (!new_tone)
|
||||||
new_tone = 35
|
new_tone = 35
|
||||||
s_tone = max(min(round(text2num(new_tone)), 220), 1)
|
my_appearance.s_tone = max(min(round(text2num(new_tone)), 220), 1)
|
||||||
s_tone = -s_tone + 35
|
my_appearance.s_tone = -my_appearance.s_tone + 35
|
||||||
|
|
||||||
// hair
|
// hair
|
||||||
var/list/all_hairs = typesof(/datum/sprite_accessory/hair) - /datum/sprite_accessory/hair
|
var/list/all_hairs = typesof(/datum/sprite_accessory/hair) - /datum/sprite_accessory/hair
|
||||||
@@ -787,11 +787,11 @@
|
|||||||
qdel(H) // delete the hair after it's all done
|
qdel(H) // delete the hair after it's all done
|
||||||
H = null
|
H = null
|
||||||
|
|
||||||
var/new_style = input("Please select hair style", "Character Generation",h_style) as null|anything in hairs
|
var/new_style = input("Please select hair style", "Character Generation",my_appearance.h_style) as null|anything in hairs
|
||||||
|
|
||||||
// if new style selected (not cancel)
|
// if new style selected (not cancel)
|
||||||
if (new_style)
|
if (new_style)
|
||||||
h_style = new_style
|
my_appearance.h_style = new_style
|
||||||
|
|
||||||
// facial hair
|
// facial hair
|
||||||
var/list/all_fhairs = typesof(/datum/sprite_accessory/facial_hair) - /datum/sprite_accessory/facial_hair
|
var/list/all_fhairs = typesof(/datum/sprite_accessory/facial_hair) - /datum/sprite_accessory/facial_hair
|
||||||
@@ -803,10 +803,10 @@
|
|||||||
qdel(H)
|
qdel(H)
|
||||||
H = null
|
H = null
|
||||||
|
|
||||||
new_style = input("Please select facial style", "Character Generation",f_style) as null|anything in fhairs
|
new_style = input("Please select facial style", "Character Generation",my_appearance.f_style) as null|anything in fhairs
|
||||||
|
|
||||||
if(new_style)
|
if(new_style)
|
||||||
f_style = new_style
|
my_appearance.f_style = new_style
|
||||||
|
|
||||||
var/new_gender = alert(usr, "Please select gender.", "Character Generation", "Male", "Female")
|
var/new_gender = alert(usr, "Please select gender.", "Character Generation", "Male", "Female")
|
||||||
if (new_gender)
|
if (new_gender)
|
||||||
@@ -1723,18 +1723,18 @@ mob/living/carbon/human/isincrit()
|
|||||||
/mob/living/carbon/human/send_to_past(var/duration)
|
/mob/living/carbon/human/send_to_past(var/duration)
|
||||||
..()
|
..()
|
||||||
var/static/list/resettable_vars = list(
|
var/static/list/resettable_vars = list(
|
||||||
"r_hair",
|
"my_appearance.r_hair",
|
||||||
"g_hair",
|
"my_appearance.g_hair",
|
||||||
"b_hair",
|
"my_appearance.b_hair",
|
||||||
"h_style",
|
"my_appearance.h_style",
|
||||||
"r_facial",
|
"my_appearance.r_facial",
|
||||||
"g_facial",
|
"my_appearance.g_facial",
|
||||||
"b_facial",
|
"my_appearance.b_facial",
|
||||||
"f_style",
|
"my_appearance.f_style",
|
||||||
"r_eyes",
|
"my_appearance.r_eyes",
|
||||||
"g_eyes",
|
".my_appearance.g_eyes",
|
||||||
"b_eyes",
|
".my_appearance.b_eyes",
|
||||||
"s_tone",
|
"my_appearance.s_tone",
|
||||||
"lip_style",
|
"lip_style",
|
||||||
"eye_style",
|
"eye_style",
|
||||||
"wear_suit",
|
"wear_suit",
|
||||||
|
|||||||
@@ -1,22 +1,6 @@
|
|||||||
/mob/living/carbon/human
|
/mob/living/carbon/human
|
||||||
//Hair colour and style
|
//Hair colour and style are in apperance.dm
|
||||||
var/r_hair = 0
|
|
||||||
var/g_hair = 0
|
|
||||||
var/b_hair = 0
|
|
||||||
var/h_style = "Bald"
|
|
||||||
|
|
||||||
//Facial hair colour and style
|
|
||||||
var/r_facial = 0
|
|
||||||
var/g_facial = 0
|
|
||||||
var/b_facial = 0
|
|
||||||
var/f_style = "Shaved"
|
|
||||||
|
|
||||||
//Eye colour
|
|
||||||
var/r_eyes = 0
|
|
||||||
var/g_eyes = 0
|
|
||||||
var/b_eyes = 0
|
|
||||||
|
|
||||||
var/s_tone = 0 //Skin tone
|
|
||||||
var/multicolor_skin_r = 0 //Only used when the human has a species datum with the MULTICOLOR anatomical flag
|
var/multicolor_skin_r = 0 //Only used when the human has a species datum with the MULTICOLOR anatomical flag
|
||||||
var/multicolor_skin_g = 0
|
var/multicolor_skin_g = 0
|
||||||
var/multicolor_skin_b = 0
|
var/multicolor_skin_b = 0
|
||||||
|
|||||||
@@ -8,8 +8,8 @@
|
|||||||
|
|
||||||
//No hair for radroaches
|
//No hair for radroaches
|
||||||
if(src.radiation >= 50)
|
if(src.radiation >= 50)
|
||||||
src.h_style = "Bald"
|
src.my_appearance.h_style = "Bald"
|
||||||
src.f_style = "Shaved"
|
src.my_appearance.f_style = "Shaved"
|
||||||
src.update_hair()
|
src.update_hair()
|
||||||
|
|
||||||
//0.1% chance of playing a scary sound to someone who's in complete darkness
|
//0.1% chance of playing a scary sound to someone who's in complete darkness
|
||||||
|
|||||||
@@ -256,10 +256,10 @@ var/global/list/damage_icon_parts = list()
|
|||||||
if(species.anatomy_flags & MULTICOLOR)
|
if(species.anatomy_flags & MULTICOLOR)
|
||||||
stand_icon.Blend(rgb(multicolor_skin_r, multicolor_skin_g, multicolor_skin_b), ICON_ADD)
|
stand_icon.Blend(rgb(multicolor_skin_r, multicolor_skin_g, multicolor_skin_b), ICON_ADD)
|
||||||
else if(species.anatomy_flags & HAS_SKIN_TONE)
|
else if(species.anatomy_flags & HAS_SKIN_TONE)
|
||||||
if(s_tone >= 0)
|
if(my_appearance.s_tone >= 0)
|
||||||
stand_icon.Blend(rgb(s_tone, s_tone, s_tone), ICON_ADD)
|
stand_icon.Blend(rgb(my_appearance.s_tone, my_appearance.s_tone, my_appearance.s_tone), ICON_ADD)
|
||||||
else
|
else
|
||||||
stand_icon.Blend(rgb(-s_tone, -s_tone, -s_tone), ICON_SUBTRACT)
|
stand_icon.Blend(rgb(-my_appearance.s_tone, -my_appearance.s_tone, -my_appearance.s_tone), ICON_SUBTRACT)
|
||||||
|
|
||||||
if(husk)
|
if(husk)
|
||||||
var/icon/mask = new(stand_icon)
|
var/icon/mask = new(stand_icon)
|
||||||
@@ -272,7 +272,7 @@ var/global/list/damage_icon_parts = list()
|
|||||||
//Eyes
|
//Eyes
|
||||||
if(!skeleton)
|
if(!skeleton)
|
||||||
var/icon/eyes = new/icon('icons/mob/human_face.dmi', species.eyes)
|
var/icon/eyes = new/icon('icons/mob/human_face.dmi', species.eyes)
|
||||||
eyes.Blend(rgb(r_eyes, g_eyes, b_eyes), ICON_ADD)
|
eyes.Blend(rgb(my_appearance.r_eyes, my_appearance.g_eyes, my_appearance.b_eyes), ICON_ADD)
|
||||||
stand_icon.Blend(eyes, ICON_OVERLAY)
|
stand_icon.Blend(eyes, ICON_OVERLAY)
|
||||||
|
|
||||||
//Mouth (lipstick!)
|
//Mouth (lipstick!)
|
||||||
@@ -315,28 +315,28 @@ var/global/list/damage_icon_parts = list()
|
|||||||
var/icon/face_standing = new /icon('icons/mob/human_face.dmi',"bald_s")
|
var/icon/face_standing = new /icon('icons/mob/human_face.dmi',"bald_s")
|
||||||
var/hair_suffix = check_hidden_head_flags(HIDEHEADHAIR) ? "s2" : "s" // s2 = cropped icon
|
var/hair_suffix = check_hidden_head_flags(HIDEHEADHAIR) ? "s2" : "s" // s2 = cropped icon
|
||||||
|
|
||||||
if(f_style && !check_hidden_head_flags(HIDEBEARDHAIR))
|
if(my_appearance.f_style && !check_hidden_head_flags(HIDEBEARDHAIR))
|
||||||
var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[f_style]
|
var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[my_appearance.f_style]
|
||||||
if((facial_hair_style) && (src.species.name in facial_hair_style.species_allowed))
|
if((facial_hair_style) && (src.species.name in facial_hair_style.species_allowed))
|
||||||
var/icon/facial_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s")
|
var/icon/facial_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s")
|
||||||
if(facial_hair_style.do_colouration)
|
if(facial_hair_style.do_colouration)
|
||||||
facial_s.Blend(rgb(r_facial, g_facial, b_facial), ICON_ADD)
|
facial_s.Blend(rgb(my_appearance.r_facial, my_appearance.g_facial, my_appearance.b_facial), ICON_ADD)
|
||||||
face_standing.Blend(facial_s, ICON_OVERLAY)
|
face_standing.Blend(facial_s, ICON_OVERLAY)
|
||||||
// else
|
// else
|
||||||
//warning("Invalid f_style for [species.name]: [f_style]")
|
//warning("Invalid my_appearance.f_style for [species.name]: [my_appearance.f_style]")
|
||||||
|
|
||||||
if(h_style && !(src.head && (src.head.flags & HIDEHAIRCOMPLETELY)))
|
if(my_appearance.h_style && !(src.head && (src.head.flags & HIDEHAIRCOMPLETELY)))
|
||||||
var/datum/sprite_accessory/hair_style = hair_styles_list[h_style]
|
var/datum/sprite_accessory/hair_style = hair_styles_list[my_appearance.h_style]
|
||||||
if((hair_style) && (src.species.name in hair_style.species_allowed))
|
if((hair_style) && (src.species.name in hair_style.species_allowed))
|
||||||
var/icon/hair_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_[hair_suffix]")
|
var/icon/hair_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_[hair_suffix]")
|
||||||
if(hair_style.do_colouration)
|
if(hair_style.do_colouration)
|
||||||
hair_s.Blend(rgb(r_hair, g_hair, b_hair), ICON_ADD)
|
hair_s.Blend(rgb(my_appearance.r_hair, my_appearance.g_hair, my_appearance.b_hair), ICON_ADD)
|
||||||
if(hair_style.additional_accessories)
|
if(hair_style.additional_accessories)
|
||||||
hair_s.Blend(icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_acc"), ICON_OVERLAY)
|
hair_s.Blend(icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_acc"), ICON_OVERLAY)
|
||||||
|
|
||||||
face_standing.Blend(hair_s, ICON_OVERLAY)
|
face_standing.Blend(hair_s, ICON_OVERLAY)
|
||||||
// else
|
// else
|
||||||
//warning("Invalid h_style for [species.name]: [h_style]")
|
//warning("Invalid my_appearance.h_style for [species.name]: [my_appearance.h_style]")
|
||||||
|
|
||||||
if(body_alphas.len)
|
if(body_alphas.len)
|
||||||
var/lowest_alpha = get_lowest_body_alpha()
|
var/lowest_alpha = get_lowest_body_alpha()
|
||||||
@@ -1213,24 +1213,24 @@ var/global/list/damage_icon_parts = list()
|
|||||||
//base icons
|
//base icons
|
||||||
var/icon/face_lying = new /icon('icons/mob/human_face.dmi',"bald_l")
|
var/icon/face_lying = new /icon('icons/mob/human_face.dmi',"bald_l")
|
||||||
|
|
||||||
if(f_style)
|
if(my_appearance.f_style)
|
||||||
var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[f_style]
|
var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[my_appearance.f_style]
|
||||||
if(facial_hair_style)
|
if(facial_hair_style)
|
||||||
var/icon/facial_l = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_l")
|
var/icon/facial_l = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_l")
|
||||||
facial_l.Blend(rgb(r_facial, g_facial, b_facial), ICON_ADD)
|
facial_l.Blend(rgb(my_appearance.r_facial, my_appearance.g_facial, my_appearance.b_facial), ICON_ADD)
|
||||||
face_lying.Blend(facial_l, ICON_OVERLAY)
|
face_lying.Blend(facial_l, ICON_OVERLAY)
|
||||||
|
|
||||||
if(h_style)
|
if(my_appearance.h_style)
|
||||||
var/datum/sprite_accessory/hair_style = hair_styles_list[h_style]
|
var/datum/sprite_accessory/hair_style = hair_styles_list[my_appearance.h_style]
|
||||||
if(hair_style)
|
if(hair_style)
|
||||||
var/icon/hair_l = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_l")
|
var/icon/hair_l = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_l")
|
||||||
hair_l.Blend(rgb(r_hair, g_hair, b_hair), ICON_ADD)
|
hair_l.Blend(rgb(my_appearance.r_hair, my_appearance.g_hair, my_appearance.b_hair), ICON_ADD)
|
||||||
face_lying.Blend(hair_l, ICON_OVERLAY)
|
face_lying.Blend(hair_l, ICON_OVERLAY)
|
||||||
|
|
||||||
//Eyes
|
//Eyes
|
||||||
// Note: These used to be in update_face(), and the fact they're here will make it difficult to create a disembodied head
|
// Note: These used to be in update_face(), and the fact they're here will make it difficult to create a disembodied head
|
||||||
var/icon/eyes_l = new/icon('icons/mob/human_face.dmi', "eyes_l")
|
var/icon/eyes_l = new/icon('icons/mob/human_face.dmi', "eyes_l")
|
||||||
eyes_l.Blend(rgb(r_eyes, g_eyes, b_eyes), ICON_ADD)
|
eyes_l.Blend(rgb(my_appearance.r_eyes, my_appearance.g_eyes, my_appearance.b_eyes), ICON_ADD)
|
||||||
face_lying.Blend(eyes_l, ICON_OVERLAY)
|
face_lying.Blend(eyes_l, ICON_OVERLAY)
|
||||||
|
|
||||||
if(lip_style)
|
if(lip_style)
|
||||||
|
|||||||
@@ -526,17 +526,17 @@ var/global/list/whitelisted_species = list("Human")
|
|||||||
H.update_icon()
|
H.update_icon()
|
||||||
|
|
||||||
/datum/species/tajaran/updatespeciescolor(var/mob/living/carbon/human/H)
|
/datum/species/tajaran/updatespeciescolor(var/mob/living/carbon/human/H)
|
||||||
switch(H.s_tone)
|
switch(H.my_appearance.s_tone)
|
||||||
if(CATBEASTBLACK)
|
if(CATBEASTBLACK)
|
||||||
icobase = 'icons/mob/human_races/r_tajaranblack.dmi'
|
icobase = 'icons/mob/human_races/r_tajaranblack.dmi'
|
||||||
deform = 'icons/mob/human_races/r_def_tajaranblack.dmi'
|
deform = 'icons/mob/human_races/r_def_tajaranblack.dmi'
|
||||||
tail = "tajtailb"
|
tail = "tajtailb"
|
||||||
H.h_style = "Black Tajaran Ears"
|
H.my_appearance.h_style = "Black Tajaran Ears"
|
||||||
else
|
else
|
||||||
icobase = 'icons/mob/human_races/r_tajaran.dmi'
|
icobase = 'icons/mob/human_races/r_tajaran.dmi'
|
||||||
deform = 'icons/mob/human_races/r_def_tajaran.dmi'
|
deform = 'icons/mob/human_races/r_def_tajaran.dmi'
|
||||||
tail = "tajtail"
|
tail = "tajtail"
|
||||||
H.h_style = "Tajaran Ears"
|
H.my_appearance.h_style = "Tajaran Ears"
|
||||||
|
|
||||||
/datum/species/tajaran/handle_speech(var/datum/speech/speech, mob/living/carbon/human/H)
|
/datum/species/tajaran/handle_speech(var/datum/speech/speech, mob/living/carbon/human/H)
|
||||||
if (prob(15))
|
if (prob(15))
|
||||||
@@ -835,7 +835,7 @@ var/global/list/whitelisted_species = list("Human")
|
|||||||
H.update_icon()
|
H.update_icon()
|
||||||
|
|
||||||
/datum/species/vox/updatespeciescolor(var/mob/living/carbon/human/H)
|
/datum/species/vox/updatespeciescolor(var/mob/living/carbon/human/H)
|
||||||
switch(H.s_tone)
|
switch(H.my_appearance.s_tone)
|
||||||
if(6)
|
if(6)
|
||||||
icobase = 'icons/mob/human_races/vox/r_voxemrl.dmi'
|
icobase = 'icons/mob/human_races/vox/r_voxemrl.dmi'
|
||||||
deform = 'icons/mob/human_races/vox/r_def_voxemrl.dmi'
|
deform = 'icons/mob/human_races/vox/r_def_voxemrl.dmi'
|
||||||
|
|||||||
@@ -308,13 +308,13 @@
|
|||||||
return new_mob
|
return new_mob
|
||||||
|
|
||||||
/mob/living/carbon/human/proc/GALize()
|
/mob/living/carbon/human/proc/GALize()
|
||||||
s_tone = -100 //Nichi saro ni itte hada o yaku
|
my_appearance.s_tone = -100 //Nichi saro ni itte hada o yaku
|
||||||
update_body()
|
update_body()
|
||||||
if(gender == MALE && h_style != "Toriyama 2")
|
if(gender == MALE && my_appearance.h_style != "Toriyama 2")
|
||||||
h_style = "Toriyama 2" //Yeah, gyaru otoko sengen
|
my_appearance.h_style = "Toriyama 2" //Yeah, gyaru otoko sengen
|
||||||
r_facial = r_hair = 255
|
my_appearance.r_facial = my_appearance.r_hair = 255
|
||||||
g_facial = g_hair = 255
|
my_appearance.g_facial = my_appearance.g_hair = 255
|
||||||
b_facial = b_hair = 0
|
my_appearance.b_facial = my_appearance.b_hair = 0
|
||||||
update_hair()
|
update_hair()
|
||||||
playsound(src, 'sound/misc/gal-o-sengen.ogg', 50, 1)// GO GO GO GO GO GO GAL-O-SENGEN
|
playsound(src, 'sound/misc/gal-o-sengen.ogg', 50, 1)// GO GO GO GO GO GO GAL-O-SENGEN
|
||||||
|
|
||||||
|
|||||||
@@ -1620,10 +1620,10 @@ obj/item/organ/external/New(loc, mob/living/carbon/human/H)
|
|||||||
//Changing limb's skin tone to match owner
|
//Changing limb's skin tone to match owner
|
||||||
if(H)
|
if(H)
|
||||||
if(!H.species || H.species.anatomy_flags & HAS_SKIN_TONE)
|
if(!H.species || H.species.anatomy_flags & HAS_SKIN_TONE)
|
||||||
if(H.s_tone >= 0)
|
if(H.my_appearance.s_tone >= 0)
|
||||||
base.Blend(rgb(H.s_tone, H.s_tone, H.s_tone), ICON_ADD)
|
base.Blend(rgb(H.my_appearance.s_tone, H.my_appearance.s_tone, H.my_appearance.s_tone), ICON_ADD)
|
||||||
else
|
else
|
||||||
base.Blend(rgb(-H.s_tone, -H.s_tone, -H.s_tone), ICON_SUBTRACT)
|
base.Blend(rgb(-H.my_appearance.s_tone, -H.my_appearance.s_tone, -H.my_appearance.s_tone), ICON_SUBTRACT)
|
||||||
|
|
||||||
icon = base
|
icon = base
|
||||||
dir = SOUTH
|
dir = SOUTH
|
||||||
@@ -1757,21 +1757,21 @@ obj/item/organ/external/head/New(loc, mob/living/carbon/human/H)
|
|||||||
qdel(src)
|
qdel(src)
|
||||||
return
|
return
|
||||||
//Add (facial) hair.
|
//Add (facial) hair.
|
||||||
if(H && H.f_style && !H.check_hidden_head_flags(HIDEBEARDHAIR))
|
if(H && H.my_appearance.f_style && !H.check_hidden_head_flags(HIDEBEARDHAIR))
|
||||||
var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[H.f_style]
|
var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[H.my_appearance.f_style]
|
||||||
if(facial_hair_style)
|
if(facial_hair_style)
|
||||||
var/icon/facial = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s")
|
var/icon/facial = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s")
|
||||||
if(facial_hair_style.do_colouration)
|
if(facial_hair_style.do_colouration)
|
||||||
facial.Blend(rgb(H.r_facial, H.g_facial, H.b_facial), ICON_ADD)
|
facial.Blend(rgb(H.my_appearance.r_facial, H.my_appearance.g_facial, H.my_appearance.b_facial), ICON_ADD)
|
||||||
|
|
||||||
overlays.Add(facial) // icon.Blend(facial, ICON_OVERLAY)
|
overlays.Add(facial) // icon.Blend(facial, ICON_OVERLAY)
|
||||||
|
|
||||||
if(H && H.h_style && !H.check_hidden_head_flags(HIDEHEADHAIR))
|
if(H && H.my_appearance.h_style && !H.check_hidden_head_flags(HIDEHEADHAIR))
|
||||||
var/datum/sprite_accessory/hair_style = hair_styles_list[H.h_style]
|
var/datum/sprite_accessory/hair_style = hair_styles_list[H.my_appearance.h_style]
|
||||||
if(hair_style)
|
if(hair_style)
|
||||||
var/icon/hair = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s")
|
var/icon/hair = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s")
|
||||||
if(hair_style.do_colouration)
|
if(hair_style.do_colouration)
|
||||||
hair.Blend(rgb(H.r_hair, H.g_hair, H.b_hair), ICON_ADD)
|
hair.Blend(rgb(H.my_appearance.r_hair, H.my_appearance.g_hair, H.my_appearance.b_hair), ICON_ADD)
|
||||||
if(hair_style.additional_accessories)
|
if(hair_style.additional_accessories)
|
||||||
hair.Blend(icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_acc"), ICON_OVERLAY)
|
hair.Blend(icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_acc"), ICON_OVERLAY)
|
||||||
|
|
||||||
|
|||||||
@@ -324,15 +324,15 @@
|
|||||||
var/mob/living/carbon/human/H = target
|
var/mob/living/carbon/human/H = target
|
||||||
if(istype(H))
|
if(istype(H))
|
||||||
eye_colour = list(
|
eye_colour = list(
|
||||||
H.r_eyes ? H.r_eyes : 0,
|
H.my_appearance.r_eyes ? H.my_appearance.r_eyes : 0,
|
||||||
H.g_eyes ? H.g_eyes : 0,
|
H.my_appearance.g_eyes ? H.my_appearance.g_eyes : 0,
|
||||||
H.b_eyes ? H.b_eyes : 0
|
H.my_appearance.b_eyes ? H.my_appearance.b_eyes : 0
|
||||||
)
|
)
|
||||||
|
|
||||||
// Leave bloody red pits behind!
|
// Leave bloody red pits behind!
|
||||||
H.r_eyes = 128
|
H.my_appearance.r_eyes = 128
|
||||||
H.g_eyes = 0
|
H.my_appearance.g_eyes = 0
|
||||||
H.b_eyes = 0
|
H.my_appearance.b_eyes = 0
|
||||||
H.update_body()
|
H.update_body()
|
||||||
|
|
||||||
/obj/item/organ/internal/proc/replaced(var/mob/living/target)
|
/obj/item/organ/internal/proc/replaced(var/mob/living/target)
|
||||||
@@ -343,9 +343,9 @@
|
|||||||
// Apply our eye colour to the target.
|
// Apply our eye colour to the target.
|
||||||
var/mob/living/carbon/human/H = target
|
var/mob/living/carbon/human/H = target
|
||||||
if(istype(H) && eye_colour)
|
if(istype(H) && eye_colour)
|
||||||
H.r_eyes = eye_colour[1]
|
H.my_appearance.r_eyes = eye_colour[1]
|
||||||
H.g_eyes = eye_colour[2]
|
H.my_appearance.g_eyes = eye_colour[2]
|
||||||
H.b_eyes = eye_colour[3]
|
H.my_appearance.b_eyes = eye_colour[3]
|
||||||
H.update_body()
|
H.update_body()
|
||||||
|
|
||||||
/obj/item/organ/internal/proc/bitten(mob/user)
|
/obj/item/organ/internal/proc/bitten(mob/user)
|
||||||
|
|||||||
@@ -28,13 +28,12 @@
|
|||||||
/spell/shapeshift/choose_targets(var/mob/user = usr)
|
/spell/shapeshift/choose_targets(var/mob/user = usr)
|
||||||
return list(user) // Self-cast
|
return list(user) // Self-cast
|
||||||
|
|
||||||
/spell/shapeshift/cast(var/list/targets, var/mob/user)
|
/spell/shapeshift/cast(var/list/targets, var/mob/living/carbon/human/user)
|
||||||
if (!user.client)
|
if (!istype(user))
|
||||||
return FALSE
|
return FALSE
|
||||||
user.visible_message("<span class='sinister'>\The [user] transforms!</span>")
|
user.visible_message("<span class='sinister'>\The [user] transforms!</span>")
|
||||||
user.client.prefs.real_name = user.generate_name() //random_name(M.current.gender)
|
user.real_name = user.generate_name() //random_name(M.current.gender)
|
||||||
user.client.prefs.randomize_appearance_for(user)
|
user.randomise_appearance_for(user.gender)
|
||||||
user.regenerate_icons()
|
|
||||||
var/datum/role/vampire/V = isvampire(user)
|
var/datum/role/vampire/V = isvampire(user)
|
||||||
if (V)
|
if (V)
|
||||||
V.remove_blood(blood_cost)
|
V.remove_blood(blood_cost)
|
||||||
@@ -72,10 +72,10 @@
|
|||||||
/datum/disease2/effect/hair/activate(var/mob/living/carbon/mob)
|
/datum/disease2/effect/hair/activate(var/mob/living/carbon/mob)
|
||||||
if(istype(mob, /mob/living/carbon/human))
|
if(istype(mob, /mob/living/carbon/human))
|
||||||
var/mob/living/carbon/human/H = mob
|
var/mob/living/carbon/human/H = mob
|
||||||
if(H.species.name == "Human" && !(H.h_style == "Bald") && !(H.h_style == "Balding Hair"))
|
if(H.species.name == "Human" && !(H.my_appearance.h_style == "Bald") && !(H.my_appearance.h_style == "Balding Hair"))
|
||||||
to_chat(H, "<span class='danger'>Your hair starts to fall out in clumps...</span>")
|
to_chat(H, "<span class='danger'>Your hair starts to fall out in clumps...</span>")
|
||||||
spawn(50)
|
spawn(50)
|
||||||
H.h_style = "Balding Hair"
|
H.my_appearance.h_style = "Balding Hair"
|
||||||
H.update_hair()
|
H.update_hair()
|
||||||
|
|
||||||
|
|
||||||
@@ -123,10 +123,10 @@
|
|||||||
/datum/disease2/effect/beard/activate(var/mob/living/carbon/mob)
|
/datum/disease2/effect/beard/activate(var/mob/living/carbon/mob)
|
||||||
if(istype(mob, /mob/living/carbon/human))
|
if(istype(mob, /mob/living/carbon/human))
|
||||||
var/mob/living/carbon/human/H = mob
|
var/mob/living/carbon/human/H = mob
|
||||||
if(H.species.name == "Human" && !(H.f_style == "Full Beard"))
|
if(H.species.name == "Human" && !(H.my_appearance.f_style == "Full Beard"))
|
||||||
to_chat(H, "<span class='warning'>Your chin and neck itch!.</span>")
|
to_chat(H, "<span class='warning'>Your chin and neck itch!.</span>")
|
||||||
spawn(50)
|
spawn(50)
|
||||||
H.f_style = "Full Beard"
|
H.my_appearance.f_style = "Full Beard"
|
||||||
H.update_hair()
|
H.update_hair()
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -151,14 +151,14 @@
|
|||||||
|
|
||||||
if(istype(H))
|
if(istype(H))
|
||||||
|
|
||||||
if(H.species.name == "Human" && !(H.f_style == "Pompadour"))
|
if(H.species.name == "Human" && !(H.my_appearance.f_style == "Pompadour"))
|
||||||
spawn(50)
|
spawn(50)
|
||||||
H.h_style = "Pompadour"
|
H.my_appearance.h_style = "Pompadour"
|
||||||
H.update_hair()
|
H.update_hair()
|
||||||
|
|
||||||
if(H.species.name == "Human" && !(H.f_style == "Elvis Sideburns"))
|
if(H.species.name == "Human" && !(H.my_appearance.f_style == "Elvis Sideburns"))
|
||||||
spawn(50)
|
spawn(50)
|
||||||
H.f_style = "Elvis Sideburns"
|
H.my_appearance.f_style = "Elvis Sideburns"
|
||||||
H.update_hair()
|
H.update_hair()
|
||||||
|
|
||||||
/datum/disease2/effect/elvis/deactivate(var/mob/living/carbon/mob)
|
/datum/disease2/effect/elvis/deactivate(var/mob/living/carbon/mob)
|
||||||
@@ -226,25 +226,25 @@ var/list/compatible_mobs = list(/mob/living/carbon/human, /mob/living/carbon/mon
|
|||||||
|
|
||||||
switch(hair_color)
|
switch(hair_color)
|
||||||
if("pink")
|
if("pink")
|
||||||
affected.b_hair = 153
|
affected.my_appearance.b_hair = 153
|
||||||
affected.g_hair = 102
|
affected.my_appearance.g_hair = 102
|
||||||
affected.r_hair = 255
|
affected.my_appearance.r_hair = 255
|
||||||
if("red")
|
if("red")
|
||||||
affected.b_hair = 0
|
affected.my_appearance.b_hair = 0
|
||||||
affected.g_hair = 0
|
affected.my_appearance.g_hair = 0
|
||||||
affected.r_hair = 255
|
affected.my_appearance.r_hair = 255
|
||||||
if("green")
|
if("green")
|
||||||
affected.b_hair = 0
|
affected.my_appearance.b_hair = 0
|
||||||
affected.g_hair = 255
|
affected.my_appearance.g_hair = 255
|
||||||
affected.r_hair = 0
|
affected.my_appearance.r_hair = 0
|
||||||
if("blue")
|
if("blue")
|
||||||
affected.b_hair = 255
|
affected.my_appearance.b_hair = 255
|
||||||
affected.g_hair = 0
|
affected.my_appearance.g_hair = 0
|
||||||
affected.r_hair = 0
|
affected.my_appearance.r_hair = 0
|
||||||
if("purple")
|
if("purple")
|
||||||
affected.b_hair = 102
|
affected.my_appearance.b_hair = 102
|
||||||
affected.g_hair = 0
|
affected.my_appearance.g_hair = 0
|
||||||
affected.r_hair = 102
|
affected.my_appearance.r_hair = 102
|
||||||
affected.update_hair()
|
affected.update_hair()
|
||||||
triggered = 1
|
triggered = 1
|
||||||
|
|
||||||
|
|||||||
@@ -1674,6 +1674,7 @@
|
|||||||
#include "code\modules\mob\living\carbon\complex\martian\life.dm"
|
#include "code\modules\mob\living\carbon\complex\martian\life.dm"
|
||||||
#include "code\modules\mob\living\carbon\complex\martian\martian.dm"
|
#include "code\modules\mob\living\carbon\complex\martian\martian.dm"
|
||||||
#include "code\modules\mob\living\carbon\complex\martian\update_icons.dm"
|
#include "code\modules\mob\living\carbon\complex\martian\update_icons.dm"
|
||||||
|
#include "code\modules\mob\living\carbon\human\appearance.dm"
|
||||||
#include "code\modules\mob\living\carbon\human\combat.dm"
|
#include "code\modules\mob\living\carbon\human\combat.dm"
|
||||||
#include "code\modules\mob\living\carbon\human\death.dm"
|
#include "code\modules\mob\living\carbon\human\death.dm"
|
||||||
#include "code\modules\mob\living\carbon\human\emote.dm"
|
#include "code\modules\mob\living\carbon\human\emote.dm"
|
||||||
|
|||||||
Reference in New Issue
Block a user