mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 10:21:11 +00:00
Appearance datums
This commit is contained in:
@@ -144,25 +144,25 @@ proc/get_id_photo(var/mob/living/carbon/human/H)
|
||||
|
||||
// Skin tone
|
||||
if(H.species.anatomy_flags & HAS_SKIN_TONE)
|
||||
if (H.s_tone >= 0)
|
||||
preview_icon.Blend(rgb(H.s_tone, H.s_tone, H.s_tone), ICON_ADD)
|
||||
if (H.my_appearance.s_tone >= 0)
|
||||
preview_icon.Blend(rgb(H.my_appearance.s_tone, H.my_appearance.s_tone, H.my_appearance.s_tone), ICON_ADD)
|
||||
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")
|
||||
|
||||
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)
|
||||
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)
|
||||
|
||||
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)
|
||||
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)
|
||||
|
||||
var/icon/clothes_s = null
|
||||
|
||||
@@ -2577,15 +2577,15 @@ var/list/bloodcult_exitportals = list()
|
||||
vessel.ckey = ghost.ckey
|
||||
qdel(husk)
|
||||
|
||||
vessel.r_hair = 90
|
||||
vessel.g_hair = 90
|
||||
vessel.b_hair = 90
|
||||
vessel.r_facial = 90
|
||||
vessel.g_facial = 90
|
||||
vessel.b_facial = 90
|
||||
vessel.r_eyes = 255
|
||||
vessel.g_eyes = 0
|
||||
vessel.b_eyes = 0
|
||||
vessel.my_appearance.r_hair = 90
|
||||
vessel.my_appearance.g_hair = 90
|
||||
vessel.my_appearance.b_hair = 90
|
||||
vessel.my_appearance.r_facial = 90
|
||||
vessel.my_appearance.g_facial = 90
|
||||
vessel.my_appearance.b_facial = 90
|
||||
vessel.my_appearance.r_eyes = 255
|
||||
vessel.my_appearance.g_eyes = 0
|
||||
vessel.my_appearance.b_eyes = 0
|
||||
vessel.status_flags &= ~GODMODE
|
||||
vessel.regenerate_icons()
|
||||
//Let's not forget to make them cultists as well
|
||||
|
||||
@@ -105,15 +105,15 @@ var/list/blood_communion = list()
|
||||
if (!istype(H))
|
||||
return
|
||||
H.set_species("Manifested")
|
||||
H.r_hair = 90
|
||||
H.g_hair = 90
|
||||
H.b_hair = 90
|
||||
H.r_facial = 90
|
||||
H.g_facial = 90
|
||||
H.b_facial = 90
|
||||
H.r_eyes = 255
|
||||
H.g_eyes = 0
|
||||
H.b_eyes = 0
|
||||
H.my_appearance.r_hair = 90
|
||||
H.my_appearance.g_hair = 90
|
||||
H.my_appearance.b_hair = 90
|
||||
H.my_appearance.r_facial = 90
|
||||
H.my_appearance.g_facial = 90
|
||||
H.my_appearance.b_facial = 90
|
||||
H.my_appearance.r_eyes = 255
|
||||
H.my_appearance.g_eyes = 0
|
||||
H.my_appearance.b_eyes = 0
|
||||
H.revive(0)
|
||||
H.status_flags &= ~GODMODE
|
||||
H.status_flags &= ~CANSTUN
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
/datum/role/catbeast/OnPostSetup()
|
||||
var/mob/living/carbon/human/H = antag.current
|
||||
H.set_species("Tajaran", force_organs=1)
|
||||
H.s_tone = CATBEASTBLACK
|
||||
H.my_appearance.s_tone = CATBEASTBLACK
|
||||
H.dna.ResetUI()
|
||||
equip_catbeast(H)
|
||||
H.regenerate_icons()
|
||||
|
||||
@@ -1215,8 +1215,8 @@
|
||||
|
||||
/datum/religion/art/equip_chaplain(var/mob/living/carbon/human/H)
|
||||
H.put_in_hands(new /obj/item/mounted/frame/painting)
|
||||
H.h_style = "Big Afro"
|
||||
H.f_style = "Full Beard"
|
||||
H.my_appearance.h_style = "Big Afro"
|
||||
H.my_appearance.f_style = "Full Beard"
|
||||
H.update_hair()
|
||||
|
||||
/datum/religion/clean
|
||||
@@ -1230,8 +1230,8 @@
|
||||
|
||||
/datum/religion/clean/equip_chaplain(var/mob/living/carbon/human/H)
|
||||
H.put_in_hands(new /obj/item/weapon/mop)
|
||||
H.h_style = "Bald"
|
||||
H.f_style = "Shaved"
|
||||
H.my_appearance.h_style = "Bald"
|
||||
H.my_appearance.f_style = "Shaved"
|
||||
H.update_hair()
|
||||
|
||||
/datum/religion/guns
|
||||
|
||||
@@ -2576,8 +2576,8 @@ var/list/the_station_areas = list (
|
||||
sound_delay = rand(0, 50)
|
||||
|
||||
for(var/mob/living/carbon/human/H in src)
|
||||
// if(H.s_tone > -55) //ugh...nice/novel idea but please no.
|
||||
// H.s_tone--
|
||||
// if(H.my_appearance.s_tone > -55) //ugh...nice/novel idea but please no.
|
||||
// H.my_appearance.s_tone--
|
||||
// H.update_body()
|
||||
if(H.client)
|
||||
mysound.status = SOUND_UPDATE
|
||||
|
||||
@@ -172,28 +172,28 @@ var/global/list/facial_hair_styles_female_list = list()
|
||||
ResetUI(1)
|
||||
// Hair
|
||||
// FIXME: Species-specific defaults pls
|
||||
if(!character.h_style)
|
||||
character.h_style = "Skinhead"
|
||||
var/hair = hair_styles_list.Find(character.h_style)
|
||||
if(!character.my_appearance.h_style)
|
||||
character.my_appearance.h_style = "Skinhead"
|
||||
var/hair = hair_styles_list.Find(character.my_appearance.h_style)
|
||||
|
||||
// Facial Hair
|
||||
if(!character.f_style)
|
||||
character.f_style = "Shaved"
|
||||
var/beard = facial_hair_styles_list.Find(character.f_style)
|
||||
if(!character.my_appearance.f_style)
|
||||
character.my_appearance.f_style = "Shaved"
|
||||
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_G, character.g_hair, 255, 1)
|
||||
SetUIValueRange(DNA_UI_HAIR_B, character.b_hair, 255, 1)
|
||||
SetUIValueRange(DNA_UI_HAIR_R, character.my_appearance.r_hair, 255, 1)
|
||||
SetUIValueRange(DNA_UI_HAIR_G, character.my_appearance.g_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_G, character.g_facial, 255, 1)
|
||||
SetUIValueRange(DNA_UI_BEARD_B, character.b_facial, 255, 1)
|
||||
SetUIValueRange(DNA_UI_BEARD_R, character.my_appearance.r_facial, 255, 1)
|
||||
SetUIValueRange(DNA_UI_BEARD_G, character.my_appearance.g_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_G, character.g_eyes, 255, 1)
|
||||
SetUIValueRange(DNA_UI_EYES_B, character.b_eyes, 255, 1)
|
||||
SetUIValueRange(DNA_UI_EYES_R, character.my_appearance.r_eyes, 255, 1)
|
||||
SetUIValueRange(DNA_UI_EYES_G, character.my_appearance.g_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)
|
||||
|
||||
|
||||
@@ -139,19 +139,19 @@
|
||||
src.dna.UpdateUI()
|
||||
dna.check_integrity()
|
||||
var/mob/living/carbon/human/H = src
|
||||
H.r_hair = dna.GetUIValueRange(DNA_UI_HAIR_R, 255)
|
||||
H.g_hair = dna.GetUIValueRange(DNA_UI_HAIR_G, 255)
|
||||
H.b_hair = dna.GetUIValueRange(DNA_UI_HAIR_B, 255)
|
||||
H.my_appearance.r_hair = dna.GetUIValueRange(DNA_UI_HAIR_R, 255)
|
||||
H.my_appearance.g_hair = dna.GetUIValueRange(DNA_UI_HAIR_G, 255)
|
||||
H.my_appearance.b_hair = dna.GetUIValueRange(DNA_UI_HAIR_B, 255)
|
||||
|
||||
H.r_facial = dna.GetUIValueRange(DNA_UI_BEARD_R, 255)
|
||||
H.g_facial = dna.GetUIValueRange(DNA_UI_BEARD_G, 255)
|
||||
H.b_facial = dna.GetUIValueRange(DNA_UI_BEARD_B, 255)
|
||||
H.my_appearance.r_facial = dna.GetUIValueRange(DNA_UI_BEARD_R, 255)
|
||||
H.my_appearance.g_facial = dna.GetUIValueRange(DNA_UI_BEARD_G, 255)
|
||||
H.my_appearance.b_facial = dna.GetUIValueRange(DNA_UI_BEARD_B, 255)
|
||||
|
||||
H.r_eyes = dna.GetUIValueRange(DNA_UI_EYES_R, 255)
|
||||
H.g_eyes = dna.GetUIValueRange(DNA_UI_EYES_G, 255)
|
||||
H.b_eyes = dna.GetUIValueRange(DNA_UI_EYES_B, 255)
|
||||
H.my_appearance.r_eyes = dna.GetUIValueRange(DNA_UI_EYES_R, 255)
|
||||
H.my_appearance.g_eyes = dna.GetUIValueRange(DNA_UI_EYES_G, 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)
|
||||
if (dna.GetUIState(DNA_UI_GENDER))
|
||||
H.setGender(FEMALE)
|
||||
@@ -161,12 +161,12 @@
|
||||
//Hair
|
||||
var/hair = dna.GetUIValueRange(DNA_UI_HAIR_STYLE,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
|
||||
var/beard = dna.GetUIValueRange(DNA_UI_BEARD_STYLE,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_hair()
|
||||
|
||||
@@ -100,8 +100,8 @@
|
||||
O.real_name = randomname
|
||||
i++
|
||||
O.UpdateAppearance()
|
||||
O.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.h_style = random_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.take_overall_damage(M.getBruteLoss(), M.getFireLoss())
|
||||
O.adjustToxLoss(M.getToxLoss())
|
||||
|
||||
@@ -38,6 +38,6 @@
|
||||
|
||||
|
||||
/datum/species/horror/handle_post_spawn(var/mob/living/carbon/human/H)
|
||||
H.h_style = "Bald"
|
||||
H.f_style = "Shaved"
|
||||
H.my_appearance.h_style = "Bald"
|
||||
H.my_appearance.f_style = "Shaved"
|
||||
H.update_hair()
|
||||
@@ -28,7 +28,7 @@
|
||||
status_flags = GODMODE|CANPUSH
|
||||
|
||||
New(var/new_loc)
|
||||
h_style = "Bald"
|
||||
my_appearance.h_style = "Bald"
|
||||
..(new_loc, "Krampus")
|
||||
maxHealth=999999
|
||||
health=999999
|
||||
|
||||
@@ -641,10 +641,10 @@
|
||||
if(ishuman(occupant))
|
||||
var/mob/living/carbon/human/H = occupant
|
||||
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>")
|
||||
playsound(src, 'sound/effects/pop.ogg', 50, 1)
|
||||
H.h_style = "Popped Hair"
|
||||
H.my_appearance.h_style = "Popped Hair"
|
||||
H.update_hair()
|
||||
else if(isjusthuman(H) && Holiday == APRIL_FOOLS_DAY)
|
||||
H.GALize()
|
||||
|
||||
@@ -215,11 +215,11 @@
|
||||
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>")
|
||||
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>")
|
||||
return
|
||||
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)
|
||||
to_chat(user, "<span class='notice'>[H == user ? "You don't" : "\The [H] doesn't"] seem to have any colorable facial hair!</span>")
|
||||
return
|
||||
@@ -229,11 +229,11 @@
|
||||
if(cover)
|
||||
to_chat(user, "<span class='notice'>You can't color [H == user ? "your" : "\the [H]'s"] hair through that [cover.name]!</span>")
|
||||
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>")
|
||||
return
|
||||
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)
|
||||
to_chat(user, "<span class='notice'>[H == user ? "You don't" : "\The [H] doesn't"] seem to have any colorable hair!</span>")
|
||||
return
|
||||
@@ -261,13 +261,13 @@
|
||||
if(!H)
|
||||
return
|
||||
if(facial)
|
||||
H.r_facial = color_r
|
||||
H.g_facial = color_g
|
||||
H.b_facial = color_b
|
||||
H.my_appearance.r_facial = color_r
|
||||
H.my_appearance.g_facial = color_g
|
||||
H.my_appearance.b_facial = color_b
|
||||
else
|
||||
H.r_hair = color_r
|
||||
H.g_hair = color_g
|
||||
H.b_hair = color_b
|
||||
H.my_appearance.r_hair = color_r
|
||||
H.my_appearance.g_hair = color_g
|
||||
H.my_appearance.b_hair = color_b
|
||||
H.update_hair()
|
||||
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")
|
||||
if(location == "mouth")
|
||||
H.f_style = "Shaved"
|
||||
H.my_appearance.f_style = "Shaved"
|
||||
else
|
||||
H.h_style = "Skinhead"
|
||||
H.my_appearance.h_style = "Skinhead"
|
||||
|
||||
H.update_hair()
|
||||
playsound(loc, 'sound/items/Welder2.ogg', 20, 1)
|
||||
@@ -380,7 +380,7 @@
|
||||
if(H.check_body_part_coverage(MOUTH))
|
||||
to_chat(user,"<span class='warning'>The mask is in the way!</span>")
|
||||
return
|
||||
if(H.f_style == "Shaved")
|
||||
if(H.my_appearance.f_style == "Shaved")
|
||||
to_chat(user,"<span class='warning'>Already clean-shaven!</span>")
|
||||
return
|
||||
|
||||
@@ -403,7 +403,7 @@
|
||||
if(H.check_body_part_coverage(HEAD))
|
||||
to_chat(user,"<span class='warning'>The headgear is in the way!</span>")
|
||||
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>")
|
||||
return
|
||||
|
||||
@@ -472,7 +472,7 @@
|
||||
if (!Adjacent(user) || user.incapacitated())
|
||||
return
|
||||
if (new_style)
|
||||
H.h_style = new_style
|
||||
H.my_appearance.h_style = new_style
|
||||
H.update_hair()
|
||||
|
||||
/obj/item/weapon/pocket_mirror/proc/shatter()
|
||||
@@ -556,7 +556,7 @@
|
||||
if(!H)
|
||||
return
|
||||
else
|
||||
H.r_eyes = color_r
|
||||
H.g_eyes = color_g
|
||||
H.b_eyes = color_b
|
||||
H.my_appearance.r_eyes = color_r
|
||||
H.my_appearance.g_eyes = color_g
|
||||
H.my_appearance.b_eyes = color_b
|
||||
H.update_body()
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
if(userloc != H.loc)
|
||||
return //no tele-grooming
|
||||
if(new_style)
|
||||
H.f_style = new_style
|
||||
H.my_appearance.f_style = new_style
|
||||
H.update_hair()
|
||||
|
||||
//handle normal hair
|
||||
@@ -57,7 +57,7 @@
|
||||
if(userloc != H.loc)
|
||||
return //no tele-grooming
|
||||
if(new_style)
|
||||
H.h_style = new_style
|
||||
H.my_appearance.h_style = new_style
|
||||
H.update_hair()
|
||||
|
||||
|
||||
|
||||
@@ -55,28 +55,28 @@ var/list/response_team_members = list()
|
||||
//todo: make it a panel, like in character creation
|
||||
var/new_facial = input(user, "Please select facial hair color.", "Character Generation") as color
|
||||
if(new_facial)
|
||||
M.r_facial = hex2num(copytext(new_facial, 2, 4))
|
||||
M.g_facial = hex2num(copytext(new_facial, 4, 6))
|
||||
M.b_facial = hex2num(copytext(new_facial, 6, 8))
|
||||
M.my_appearance.r_facial = hex2num(copytext(new_facial, 2, 4))
|
||||
M.my_appearance.g_facial = hex2num(copytext(new_facial, 4, 6))
|
||||
M.my_appearance.b_facial = hex2num(copytext(new_facial, 6, 8))
|
||||
|
||||
var/new_hair = input(user, "Please select hair color.", "Character Generation") as color
|
||||
if(new_facial)
|
||||
M.r_hair = hex2num(copytext(new_hair, 2, 4))
|
||||
M.g_hair = hex2num(copytext(new_hair, 4, 6))
|
||||
M.b_hair = hex2num(copytext(new_hair, 6, 8))
|
||||
M.my_appearance.r_hair = hex2num(copytext(new_hair, 2, 4))
|
||||
M.my_appearance.g_hair = hex2num(copytext(new_hair, 4, 6))
|
||||
M.my_appearance.b_hair = hex2num(copytext(new_hair, 6, 8))
|
||||
|
||||
var/new_eyes = input(user, "Please select eye color.", "Character Generation") as color
|
||||
if(new_eyes)
|
||||
M.r_eyes = hex2num(copytext(new_eyes, 2, 4))
|
||||
M.g_eyes = hex2num(copytext(new_eyes, 4, 6))
|
||||
M.b_eyes = hex2num(copytext(new_eyes, 6, 8))
|
||||
M.my_appearance.r_eyes = hex2num(copytext(new_eyes, 2, 4))
|
||||
M.my_appearance.g_eyes = hex2num(copytext(new_eyes, 4, 6))
|
||||
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
|
||||
|
||||
if (!new_tone)
|
||||
new_tone = 35
|
||||
M.s_tone = max(min(round(text2num(new_tone)), 220), 1)
|
||||
M.s_tone = -M.s_tone + 35
|
||||
M.my_appearance.s_tone = max(min(round(text2num(new_tone)), 220), 1)
|
||||
M.my_appearance.s_tone = -M.my_appearance.s_tone + 35
|
||||
|
||||
// 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
|
||||
var/new_hstyle = input(user, "Select a hair style", "Grooming") as null|anything in hair_styles_list
|
||||
if(new_hstyle)
|
||||
M.h_style = new_hstyle
|
||||
M.my_appearance.h_style = new_hstyle
|
||||
|
||||
// facial hair
|
||||
var/new_fstyle = input(user, "Select a facial hair style", "Grooming") as null|anything in facial_hair_styles_list
|
||||
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")
|
||||
if (new_gender)
|
||||
|
||||
@@ -265,28 +265,28 @@ var/list/sent_strike_teams = list()
|
||||
if(can_customize_appearance)
|
||||
var/new_facial = input(user, "Please select facial hair color.", "Character Generation") as color
|
||||
if(new_facial)
|
||||
new_commando.r_facial = hex2num(copytext(new_facial, 2, 4))
|
||||
new_commando.g_facial = hex2num(copytext(new_facial, 4, 6))
|
||||
new_commando.b_facial = hex2num(copytext(new_facial, 6, 8))
|
||||
new_commando.my_appearance.r_facial = hex2num(copytext(new_facial, 2, 4))
|
||||
new_commando.my_appearance.g_facial = hex2num(copytext(new_facial, 4, 6))
|
||||
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
|
||||
if(new_facial)
|
||||
new_commando.r_hair = hex2num(copytext(new_hair, 2, 4))
|
||||
new_commando.g_hair = hex2num(copytext(new_hair, 4, 6))
|
||||
new_commando.b_hair = hex2num(copytext(new_hair, 6, 8))
|
||||
new_commando.my_appearance.r_hair = hex2num(copytext(new_hair, 2, 4))
|
||||
new_commando.my_appearance.g_hair = hex2num(copytext(new_hair, 4, 6))
|
||||
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
|
||||
if(new_eyes)
|
||||
new_commando.r_eyes = hex2num(copytext(new_eyes, 2, 4))
|
||||
new_commando.g_eyes = hex2num(copytext(new_eyes, 4, 6))
|
||||
new_commando.b_eyes = hex2num(copytext(new_eyes, 6, 8))
|
||||
new_commando.my_appearance.r_eyes = hex2num(copytext(new_eyes, 2, 4))
|
||||
new_commando.my_appearance.g_eyes = hex2num(copytext(new_eyes, 4, 6))
|
||||
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
|
||||
|
||||
if (!new_tone)
|
||||
new_tone = 35
|
||||
new_commando.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 = max(min(round(text2num(new_tone)), 220), 1)
|
||||
new_commando.my_appearance.s_tone = -new_commando.my_appearance.s_tone + 35
|
||||
|
||||
// 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
|
||||
var/new_hstyle = input(user, "Select a hair style", "Grooming") as null|anything in hair_styles_list
|
||||
if(new_hstyle)
|
||||
new_commando.h_style = new_hstyle
|
||||
new_commando.my_appearance.h_style = new_hstyle
|
||||
|
||||
// facial hair
|
||||
var/new_fstyle = input(user, "Select a facial hair style", "Grooming") as null|anything in facial_hair_styles_list
|
||||
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")
|
||||
if (new_gender)
|
||||
|
||||
@@ -61,8 +61,8 @@
|
||||
bloodDNA = null
|
||||
|
||||
// Floorlength braids? Enjoy your tripping.
|
||||
if(H.h_style && !H.check_hidden_head_flags(HIDEHEADHAIR))
|
||||
var/datum/sprite_accessory/hair_style = hair_styles_list[H.h_style]
|
||||
if(H.my_appearance.h_style && !H.check_hidden_head_flags(HIDEHEADHAIR))
|
||||
var/datum/sprite_accessory/hair_style = hair_styles_list[H.my_appearance.h_style]
|
||||
if(hair_style && (hair_style.flags & HAIRSTYLE_CANTRIP))
|
||||
if(H.m_intent == "run" && prob(5))
|
||||
if (H.Slip(4, 5))
|
||||
|
||||
@@ -777,37 +777,37 @@ var/list/admin_verbs_mod = list(
|
||||
return
|
||||
var/new_facial = input("Please select facial hair color.", "Character Generation") as color
|
||||
if(new_facial)
|
||||
M.r_facial = hex2num(copytext(new_facial, 2, 4))
|
||||
M.g_facial = hex2num(copytext(new_facial, 4, 6))
|
||||
M.b_facial = hex2num(copytext(new_facial, 6, 8))
|
||||
M.my_appearance.r_facial = hex2num(copytext(new_facial, 2, 4))
|
||||
M.my_appearance.g_facial = hex2num(copytext(new_facial, 4, 6))
|
||||
M.my_appearance.b_facial = hex2num(copytext(new_facial, 6, 8))
|
||||
|
||||
var/new_hair = input("Please select hair color.", "Character Generation") as color
|
||||
if(new_facial)
|
||||
M.r_hair = hex2num(copytext(new_hair, 2, 4))
|
||||
M.g_hair = hex2num(copytext(new_hair, 4, 6))
|
||||
M.b_hair = hex2num(copytext(new_hair, 6, 8))
|
||||
M.my_appearance.r_hair = hex2num(copytext(new_hair, 2, 4))
|
||||
M.my_appearance.g_hair = hex2num(copytext(new_hair, 4, 6))
|
||||
M.my_appearance.b_hair = hex2num(copytext(new_hair, 6, 8))
|
||||
|
||||
var/new_eyes = input("Please select eye color.", "Character Generation") as color
|
||||
if(new_eyes)
|
||||
M.r_eyes = hex2num(copytext(new_eyes, 2, 4))
|
||||
M.g_eyes = hex2num(copytext(new_eyes, 4, 6))
|
||||
M.b_eyes = hex2num(copytext(new_eyes, 6, 8))
|
||||
M.my_appearance.r_eyes = hex2num(copytext(new_eyes, 2, 4))
|
||||
M.my_appearance.g_eyes = hex2num(copytext(new_eyes, 4, 6))
|
||||
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
|
||||
|
||||
if (new_tone)
|
||||
M.s_tone = max(min(round(text2num(new_tone)), 220), 1)
|
||||
M.s_tone = -M.s_tone + 35
|
||||
M.my_appearance.s_tone = max(min(round(text2num(new_tone)), 220), 1)
|
||||
M.my_appearance.s_tone = -M.my_appearance.s_tone + 35
|
||||
|
||||
// hair
|
||||
var/new_hstyle = input(usr, "Select a hair style", "Grooming") as null|anything in hair_styles_list
|
||||
if(new_hstyle)
|
||||
M.h_style = new_hstyle
|
||||
M.my_appearance.h_style = new_hstyle
|
||||
|
||||
// facial hair
|
||||
var/new_fstyle = input(usr, "Select a facial hair style", "Grooming") as null|anything in facial_hair_styles_list
|
||||
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")
|
||||
if (new_gender)
|
||||
|
||||
@@ -3412,7 +3412,7 @@
|
||||
feedback_inc("admin_secrets_fun_used",1)
|
||||
feedback_add_details("admin_secrets_fun_used","DF")
|
||||
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()
|
||||
message_admins("[key_name_admin(usr)] activated dorf mode")
|
||||
if("ionstorm")
|
||||
|
||||
@@ -267,7 +267,7 @@ client/proc/one_click_antag()
|
||||
var/mob/living/carbon/human/new_vox = new(spawn_location.loc)
|
||||
|
||||
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.age = rand(12,20)
|
||||
|
||||
@@ -1517,22 +1517,22 @@ NOTE: The change will take effect AFTER any current recruiting periods."}
|
||||
character.setGender(gender)
|
||||
character.age = age
|
||||
|
||||
character.r_eyes = r_eyes
|
||||
character.g_eyes = g_eyes
|
||||
character.b_eyes = b_eyes
|
||||
character.my_appearance.r_eyes = r_eyes
|
||||
character.my_appearance.g_eyes = g_eyes
|
||||
character.my_appearance.b_eyes = b_eyes
|
||||
|
||||
character.r_hair = r_hair
|
||||
character.g_hair = g_hair
|
||||
character.b_hair = b_hair
|
||||
character.my_appearance.r_hair = r_hair
|
||||
character.my_appearance.g_hair = g_hair
|
||||
character.my_appearance.b_hair = b_hair
|
||||
|
||||
character.r_facial = r_facial
|
||||
character.g_facial = g_facial
|
||||
character.b_facial = b_facial
|
||||
character.my_appearance.r_facial = r_facial
|
||||
character.my_appearance.g_facial = g_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.f_style = f_style
|
||||
character.my_appearance.h_style = h_style
|
||||
character.my_appearance.f_style = f_style
|
||||
|
||||
|
||||
character.skills = skills
|
||||
|
||||
@@ -186,7 +186,7 @@
|
||||
if(!istype(user) || !haircolored)
|
||||
return
|
||||
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")
|
||||
wear_override.Blend(earbit, ICON_OVERLAY)
|
||||
|
||||
@@ -214,7 +214,7 @@
|
||||
voxcount++
|
||||
if(isdiona(H))
|
||||
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++
|
||||
if(M_FAT in H.mutations)
|
||||
fattycount++
|
||||
|
||||
@@ -82,7 +82,7 @@ var/global/list/datum/mind/raiders = list() //Antags.
|
||||
|
||||
var/mob/living/carbon/human/vox = raider.current
|
||||
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.set_species("Vox")
|
||||
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.add_language(LANGUAGE_VOX)
|
||||
vox.remove_language(LANGUAGE_GALACTIC_COMMON)
|
||||
vox.h_style = "Short Vox Quills"
|
||||
vox.f_style = "Shaved"
|
||||
vox.my_appearance.h_style = "Short Vox Quills"
|
||||
vox.my_appearance.f_style = "Shaved"
|
||||
for(var/datum/organ/external/limb in vox.organs)
|
||||
limb.status &= ~(ORGAN_DESTROYED | ORGAN_ROBOT)
|
||||
vox.equip_vox_raider()
|
||||
|
||||
162
code/modules/mob/living/carbon/human/appearance.dm
Normal file
162
code/modules/mob/living/carbon/human/appearance.dm
Normal file
@@ -0,0 +1,162 @@
|
||||
#define INDEX_RED 1
|
||||
#define INDEX_GREEN 2
|
||||
#define INDEX_BLUE 3
|
||||
|
||||
/datum/huamn_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/huamn_appearance/my_appearance
|
||||
|
||||
/mob/living/carbon/human/proc/switch_appearance(var/datum/huamn_appearance/new_looks)
|
||||
if (!istype(new_looks))
|
||||
return
|
||||
my_appearance = new_looks
|
||||
regenerate_icons()
|
||||
|
||||
/mob/living/carbon/human/proc/randomize_appearance_for(var/new_gender)
|
||||
var/datum/huamn_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
|
||||
return appearance
|
||||
|
||||
/mob/living/carbon/human/proc/randomize_hair_color(var/target = "hair")
|
||||
if(prob (75) && target == "facial") // Chance to inherit hair color
|
||||
my_appearance.r_facial = my_appearance.r_hair
|
||||
my_appearance.g_facial = my_appearance.g_hair
|
||||
my_appearance.b_facial = my_appearance.b_hair
|
||||
return
|
||||
|
||||
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)
|
||||
h_style = "Tajaran Ears"
|
||||
my_appearance.h_style = "Tajaran Ears"
|
||||
..(new_loc, "Tajaran")
|
||||
|
||||
/mob/living/carbon/human/tajaran/IsAdvancedToolUser()
|
||||
|
||||
@@ -126,10 +126,10 @@
|
||||
if(M_SKELETON in src.mutations)
|
||||
return
|
||||
|
||||
if(f_style)
|
||||
f_style = "Shaved"
|
||||
if(h_style)
|
||||
h_style = "Bald"
|
||||
if(my_appearance.f_style)
|
||||
my_appearance.f_style = "Shaved"
|
||||
if(my_appearance.h_style)
|
||||
my_appearance.h_style = "Bald"
|
||||
update_hair(0)
|
||||
|
||||
mutations.Add(M_SKELETON)
|
||||
@@ -142,10 +142,10 @@
|
||||
/mob/living/carbon/human/proc/ChangeToHusk()
|
||||
if(M_HUSK in mutations)
|
||||
return
|
||||
if(f_style)
|
||||
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)
|
||||
h_style = "Bald"
|
||||
if(my_appearance.f_style)
|
||||
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(my_appearance.h_style)
|
||||
my_appearance.h_style = "Bald"
|
||||
update_hair(0)
|
||||
|
||||
mutations.Add(M_HUSK)
|
||||
|
||||
@@ -23,55 +23,55 @@
|
||||
..(new_loc, "Manifested")
|
||||
|
||||
/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")
|
||||
|
||||
/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")
|
||||
|
||||
/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")
|
||||
|
||||
/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")
|
||||
|
||||
/mob/living/carbon/human/diona/New(var/new_loc, delay_ready_dna = 0)
|
||||
h_style = "Bald"
|
||||
my_appearance.h_style = "Bald"
|
||||
..(new_loc, "Diona")
|
||||
|
||||
/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)
|
||||
|
||||
/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")
|
||||
|
||||
/mob/living/carbon/human/plasma/New(var/new_loc, delay_ready_dna = 0)
|
||||
h_style = "Bald"
|
||||
my_appearance.h_style = "Bald"
|
||||
..(new_loc, "Plasmaman")
|
||||
|
||||
/mob/living/carbon/human/muton/New(var/new_loc, delay_ready_dna = 0)
|
||||
h_style = "Bald"
|
||||
my_appearance.h_style = "Bald"
|
||||
..(new_loc, "Muton")
|
||||
|
||||
/mob/living/carbon/human/grey/New(var/new_loc, delay_ready_dna = 0)
|
||||
h_style = "Bald"
|
||||
my_appearance.h_style = "Bald"
|
||||
..(new_loc, "Grey")
|
||||
|
||||
/mob/living/carbon/human/golem/New(var/new_loc, delay_ready_dna = 0)
|
||||
h_style = "Bald"
|
||||
my_appearance.h_style = "Bald"
|
||||
..(new_loc, "Golem")
|
||||
|
||||
/mob/living/carbon/human/grue/New(var/new_loc, delay_ready_dna = 0)
|
||||
h_style = "Bald"
|
||||
my_appearance.h_style = "Bald"
|
||||
..(new_loc, "Grue")
|
||||
|
||||
/mob/living/carbon/human/slime/New(var/new_loc, delay_ready_dna = 0)
|
||||
h_style = "Bald"
|
||||
my_appearance.h_style = "Bald"
|
||||
..(new_loc, "Slime")
|
||||
|
||||
/mob/living/carbon/human/NPC/New(var/new_loc, delay_ready_dna = 0)
|
||||
@@ -79,8 +79,8 @@
|
||||
initialize_basic_NPC_components()
|
||||
|
||||
/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)
|
||||
my_appearance.f_style = pick(facial_hair_styles_list)
|
||||
my_appearance.h_style = pick(hair_styles_list)
|
||||
|
||||
var/list/valid_species = (all_species - list("Krampus", "Horror"))
|
||||
|
||||
@@ -95,11 +95,11 @@
|
||||
update_body()
|
||||
|
||||
/mob/living/carbon/human/mushroom/New(var/new_loc, delay_ready_dna = 0)
|
||||
h_style = "Bald"
|
||||
my_appearance.h_style = "Bald"
|
||||
..(new_loc, "Mushroom")
|
||||
|
||||
/mob/living/carbon/human/lich/New(var/new_loc, delay_ready_dna = 0)
|
||||
h_style = "Bald"
|
||||
my_appearance.h_style = "Bald"
|
||||
..(new_loc, "Undead")
|
||||
|
||||
/mob/living/carbon/human/generate_static_overlay()
|
||||
@@ -123,8 +123,9 @@
|
||||
static_overlays["cult"] = static_overlay
|
||||
|
||||
/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)
|
||||
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_g = rand(0,255)
|
||||
multicolor_skin_b = rand(0,255)
|
||||
@@ -751,30 +752,30 @@
|
||||
src.verbs -= /mob/living/carbon/human/proc/morph
|
||||
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)
|
||||
r_facial = hex2num(copytext(new_facial, 2, 4))
|
||||
g_facial = hex2num(copytext(new_facial, 4, 6))
|
||||
b_facial = hex2num(copytext(new_facial, 6, 8))
|
||||
my_appearance.r_facial = hex2num(copytext(new_facial, 2, 4))
|
||||
my_appearance.g_facial = hex2num(copytext(new_facial, 4, 6))
|
||||
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)
|
||||
r_hair = hex2num(copytext(new_hair, 2, 4))
|
||||
g_hair = hex2num(copytext(new_hair, 4, 6))
|
||||
b_hair = hex2num(copytext(new_hair, 6, 8))
|
||||
my_appearance.r_hair = hex2num(copytext(new_hair, 2, 4))
|
||||
my_appearance.g_hair = hex2num(copytext(new_hair, 4, 6))
|
||||
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)
|
||||
r_eyes = hex2num(copytext(new_eyes, 2, 4))
|
||||
g_eyes = hex2num(copytext(new_eyes, 4, 6))
|
||||
b_eyes = hex2num(copytext(new_eyes, 6, 8))
|
||||
my_appearance.r_eyes = hex2num(copytext(new_eyes, 2, 4))
|
||||
my_appearance.g_eyes = hex2num(copytext(new_eyes, 4, 6))
|
||||
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)
|
||||
new_tone = 35
|
||||
s_tone = max(min(round(text2num(new_tone)), 220), 1)
|
||||
s_tone = -s_tone + 35
|
||||
my_appearance.s_tone = max(min(round(text2num(new_tone)), 220), 1)
|
||||
my_appearance.s_tone = -my_appearance.s_tone + 35
|
||||
|
||||
// hair
|
||||
var/list/all_hairs = typesof(/datum/sprite_accessory/hair) - /datum/sprite_accessory/hair
|
||||
@@ -787,11 +788,11 @@
|
||||
qdel(H) // delete the hair after it's all done
|
||||
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)
|
||||
h_style = new_style
|
||||
my_appearance.h_style = new_style
|
||||
|
||||
// facial hair
|
||||
var/list/all_fhairs = typesof(/datum/sprite_accessory/facial_hair) - /datum/sprite_accessory/facial_hair
|
||||
@@ -803,10 +804,10 @@
|
||||
qdel(H)
|
||||
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)
|
||||
f_style = new_style
|
||||
my_appearance.f_style = new_style
|
||||
|
||||
var/new_gender = alert(usr, "Please select gender.", "Character Generation", "Male", "Female")
|
||||
if (new_gender)
|
||||
@@ -1723,18 +1724,18 @@ mob/living/carbon/human/isincrit()
|
||||
/mob/living/carbon/human/send_to_past(var/duration)
|
||||
..()
|
||||
var/static/list/resettable_vars = list(
|
||||
"r_hair",
|
||||
"g_hair",
|
||||
"b_hair",
|
||||
"h_style",
|
||||
"r_facial",
|
||||
"g_facial",
|
||||
"b_facial",
|
||||
"f_style",
|
||||
"r_eyes",
|
||||
"g_eyes",
|
||||
"b_eyes",
|
||||
"s_tone",
|
||||
"my_appearance.r_hair",
|
||||
"my_appearance.g_hair",
|
||||
"my_appearance.b_hair",
|
||||
"my_appearance.h_style",
|
||||
"my_appearance.r_facial",
|
||||
"my_appearance.g_facial",
|
||||
"my_appearance.b_facial",
|
||||
"my_appearance.f_style",
|
||||
"my_appearance.r_eyes",
|
||||
".my_appearance.g_eyes",
|
||||
".my_appearance.b_eyes",
|
||||
"my_appearance.s_tone",
|
||||
"lip_style",
|
||||
"eye_style",
|
||||
"wear_suit",
|
||||
|
||||
@@ -1,22 +1,6 @@
|
||||
/mob/living/carbon/human
|
||||
//Hair colour and style
|
||||
var/r_hair = 0
|
||||
var/g_hair = 0
|
||||
var/b_hair = 0
|
||||
var/h_style = "Bald"
|
||||
//Hair colour and style are in apperance.dm
|
||||
|
||||
//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_g = 0
|
||||
var/multicolor_skin_b = 0
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
|
||||
//No hair for radroaches
|
||||
if(src.radiation >= 50)
|
||||
src.h_style = "Bald"
|
||||
src.f_style = "Shaved"
|
||||
src.my_appearance.h_style = "Bald"
|
||||
src.my_appearance.f_style = "Shaved"
|
||||
src.update_hair()
|
||||
|
||||
//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)
|
||||
stand_icon.Blend(rgb(multicolor_skin_r, multicolor_skin_g, multicolor_skin_b), ICON_ADD)
|
||||
else if(species.anatomy_flags & HAS_SKIN_TONE)
|
||||
if(s_tone >= 0)
|
||||
stand_icon.Blend(rgb(s_tone, s_tone, s_tone), ICON_ADD)
|
||||
if(my_appearance.s_tone >= 0)
|
||||
stand_icon.Blend(rgb(my_appearance.s_tone, my_appearance.s_tone, my_appearance.s_tone), ICON_ADD)
|
||||
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)
|
||||
var/icon/mask = new(stand_icon)
|
||||
@@ -272,7 +272,7 @@ var/global/list/damage_icon_parts = list()
|
||||
//Eyes
|
||||
if(!skeleton)
|
||||
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)
|
||||
|
||||
//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/hair_suffix = check_hidden_head_flags(HIDEHEADHAIR) ? "s2" : "s" // s2 = cropped icon
|
||||
|
||||
if(f_style && !check_hidden_head_flags(HIDEBEARDHAIR))
|
||||
var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[f_style]
|
||||
if(my_appearance.f_style && !check_hidden_head_flags(HIDEBEARDHAIR))
|
||||
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))
|
||||
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)
|
||||
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)
|
||||
// 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)))
|
||||
var/datum/sprite_accessory/hair_style = hair_styles_list[h_style]
|
||||
if(my_appearance.h_style && !(src.head && (src.head.flags & HIDEHAIRCOMPLETELY)))
|
||||
var/datum/sprite_accessory/hair_style = hair_styles_list[my_appearance.h_style]
|
||||
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]")
|
||||
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)
|
||||
hair_s.Blend(icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_acc"), ICON_OVERLAY)
|
||||
|
||||
face_standing.Blend(hair_s, ICON_OVERLAY)
|
||||
// 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)
|
||||
var/lowest_alpha = get_lowest_body_alpha()
|
||||
@@ -1213,24 +1213,24 @@ var/global/list/damage_icon_parts = list()
|
||||
//base icons
|
||||
var/icon/face_lying = new /icon('icons/mob/human_face.dmi',"bald_l")
|
||||
|
||||
if(f_style)
|
||||
var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[f_style]
|
||||
if(my_appearance.f_style)
|
||||
var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[my_appearance.f_style]
|
||||
if(facial_hair_style)
|
||||
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)
|
||||
|
||||
if(h_style)
|
||||
var/datum/sprite_accessory/hair_style = hair_styles_list[h_style]
|
||||
if(my_appearance.h_style)
|
||||
var/datum/sprite_accessory/hair_style = hair_styles_list[my_appearance.h_style]
|
||||
if(hair_style)
|
||||
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)
|
||||
|
||||
//Eyes
|
||||
// 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")
|
||||
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)
|
||||
|
||||
if(lip_style)
|
||||
|
||||
@@ -526,17 +526,17 @@ var/global/list/whitelisted_species = list("Human")
|
||||
H.update_icon()
|
||||
|
||||
/datum/species/tajaran/updatespeciescolor(var/mob/living/carbon/human/H)
|
||||
switch(H.s_tone)
|
||||
switch(H.my_appearance.s_tone)
|
||||
if(CATBEASTBLACK)
|
||||
icobase = 'icons/mob/human_races/r_tajaranblack.dmi'
|
||||
deform = 'icons/mob/human_races/r_def_tajaranblack.dmi'
|
||||
tail = "tajtailb"
|
||||
H.h_style = "Black Tajaran Ears"
|
||||
H.my_appearance.h_style = "Black Tajaran Ears"
|
||||
else
|
||||
icobase = 'icons/mob/human_races/r_tajaran.dmi'
|
||||
deform = 'icons/mob/human_races/r_def_tajaran.dmi'
|
||||
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)
|
||||
if (prob(15))
|
||||
@@ -835,7 +835,7 @@ var/global/list/whitelisted_species = list("Human")
|
||||
H.update_icon()
|
||||
|
||||
/datum/species/vox/updatespeciescolor(var/mob/living/carbon/human/H)
|
||||
switch(H.s_tone)
|
||||
switch(H.my_appearance.s_tone)
|
||||
if(6)
|
||||
icobase = 'icons/mob/human_races/vox/r_voxemrl.dmi'
|
||||
deform = 'icons/mob/human_races/vox/r_def_voxemrl.dmi'
|
||||
|
||||
@@ -308,13 +308,13 @@
|
||||
return new_mob
|
||||
|
||||
/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()
|
||||
if(gender == MALE && h_style != "Toriyama 2")
|
||||
h_style = "Toriyama 2" //Yeah, gyaru otoko sengen
|
||||
r_facial = r_hair = 255
|
||||
g_facial = g_hair = 255
|
||||
b_facial = b_hair = 0
|
||||
if(gender == MALE && my_appearance.h_style != "Toriyama 2")
|
||||
my_appearance.h_style = "Toriyama 2" //Yeah, gyaru otoko sengen
|
||||
my_appearance.r_facial = my_appearance.r_hair = 255
|
||||
my_appearance.g_facial = my_appearance.g_hair = 255
|
||||
my_appearance.b_facial = my_appearance.b_hair = 0
|
||||
update_hair()
|
||||
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
|
||||
if(H)
|
||||
if(!H.species || H.species.anatomy_flags & HAS_SKIN_TONE)
|
||||
if(H.s_tone >= 0)
|
||||
base.Blend(rgb(H.s_tone, H.s_tone, H.s_tone), ICON_ADD)
|
||||
if(H.my_appearance.s_tone >= 0)
|
||||
base.Blend(rgb(H.my_appearance.s_tone, H.my_appearance.s_tone, H.my_appearance.s_tone), ICON_ADD)
|
||||
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
|
||||
dir = SOUTH
|
||||
@@ -1757,21 +1757,21 @@ obj/item/organ/external/head/New(loc, mob/living/carbon/human/H)
|
||||
qdel(src)
|
||||
return
|
||||
//Add (facial) hair.
|
||||
if(H && H.f_style && !H.check_hidden_head_flags(HIDEBEARDHAIR))
|
||||
var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[H.f_style]
|
||||
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.my_appearance.f_style]
|
||||
if(facial_hair_style)
|
||||
var/icon/facial = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s")
|
||||
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)
|
||||
|
||||
if(H && H.h_style && !H.check_hidden_head_flags(HIDEHEADHAIR))
|
||||
var/datum/sprite_accessory/hair_style = hair_styles_list[H.h_style]
|
||||
if(H && H.my_appearance.h_style && !H.check_hidden_head_flags(HIDEHEADHAIR))
|
||||
var/datum/sprite_accessory/hair_style = hair_styles_list[H.my_appearance.h_style]
|
||||
if(hair_style)
|
||||
var/icon/hair = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s")
|
||||
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)
|
||||
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
|
||||
if(istype(H))
|
||||
eye_colour = list(
|
||||
H.r_eyes ? H.r_eyes : 0,
|
||||
H.g_eyes ? H.g_eyes : 0,
|
||||
H.b_eyes ? H.b_eyes : 0
|
||||
H.my_appearance.r_eyes ? H.my_appearance.r_eyes : 0,
|
||||
H.my_appearance.g_eyes ? H.my_appearance.g_eyes : 0,
|
||||
H.my_appearance.b_eyes ? H.my_appearance.b_eyes : 0
|
||||
)
|
||||
|
||||
// Leave bloody red pits behind!
|
||||
H.r_eyes = 128
|
||||
H.g_eyes = 0
|
||||
H.b_eyes = 0
|
||||
H.my_appearance.r_eyes = 128
|
||||
H.my_appearance.g_eyes = 0
|
||||
H.my_appearance.b_eyes = 0
|
||||
H.update_body()
|
||||
|
||||
/obj/item/organ/internal/proc/replaced(var/mob/living/target)
|
||||
@@ -343,9 +343,9 @@
|
||||
// Apply our eye colour to the target.
|
||||
var/mob/living/carbon/human/H = target
|
||||
if(istype(H) && eye_colour)
|
||||
H.r_eyes = eye_colour[1]
|
||||
H.g_eyes = eye_colour[2]
|
||||
H.b_eyes = eye_colour[3]
|
||||
H.my_appearance.r_eyes = eye_colour[1]
|
||||
H.my_appearance.g_eyes = eye_colour[2]
|
||||
H.my_appearance.b_eyes = eye_colour[3]
|
||||
H.update_body()
|
||||
|
||||
/obj/item/organ/internal/proc/bitten(mob/user)
|
||||
|
||||
@@ -72,10 +72,10 @@
|
||||
/datum/disease2/effect/hair/activate(var/mob/living/carbon/mob)
|
||||
if(istype(mob, /mob/living/carbon/human))
|
||||
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>")
|
||||
spawn(50)
|
||||
H.h_style = "Balding Hair"
|
||||
H.my_appearance.h_style = "Balding Hair"
|
||||
H.update_hair()
|
||||
|
||||
|
||||
@@ -123,10 +123,10 @@
|
||||
/datum/disease2/effect/beard/activate(var/mob/living/carbon/mob)
|
||||
if(istype(mob, /mob/living/carbon/human))
|
||||
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>")
|
||||
spawn(50)
|
||||
H.f_style = "Full Beard"
|
||||
H.my_appearance.f_style = "Full Beard"
|
||||
H.update_hair()
|
||||
|
||||
|
||||
|
||||
@@ -151,14 +151,14 @@
|
||||
|
||||
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)
|
||||
H.h_style = "Pompadour"
|
||||
H.my_appearance.h_style = "Pompadour"
|
||||
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)
|
||||
H.f_style = "Elvis Sideburns"
|
||||
H.my_appearance.f_style = "Elvis Sideburns"
|
||||
H.update_hair()
|
||||
|
||||
/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)
|
||||
if("pink")
|
||||
affected.b_hair = 153
|
||||
affected.g_hair = 102
|
||||
affected.r_hair = 255
|
||||
affected.my_appearance.b_hair = 153
|
||||
affected.my_appearance.g_hair = 102
|
||||
affected.my_appearance.r_hair = 255
|
||||
if("red")
|
||||
affected.b_hair = 0
|
||||
affected.g_hair = 0
|
||||
affected.r_hair = 255
|
||||
affected.my_appearance.b_hair = 0
|
||||
affected.my_appearance.g_hair = 0
|
||||
affected.my_appearance.r_hair = 255
|
||||
if("green")
|
||||
affected.b_hair = 0
|
||||
affected.g_hair = 255
|
||||
affected.r_hair = 0
|
||||
affected.my_appearance.b_hair = 0
|
||||
affected.my_appearance.g_hair = 255
|
||||
affected.my_appearance.r_hair = 0
|
||||
if("blue")
|
||||
affected.b_hair = 255
|
||||
affected.g_hair = 0
|
||||
affected.r_hair = 0
|
||||
affected.my_appearance.b_hair = 255
|
||||
affected.my_appearance.g_hair = 0
|
||||
affected.my_appearance.r_hair = 0
|
||||
if("purple")
|
||||
affected.b_hair = 102
|
||||
affected.g_hair = 0
|
||||
affected.r_hair = 102
|
||||
affected.my_appearance.b_hair = 102
|
||||
affected.my_appearance.g_hair = 0
|
||||
affected.my_appearance.r_hair = 102
|
||||
affected.update_hair()
|
||||
triggered = 1
|
||||
|
||||
|
||||
@@ -1668,6 +1668,7 @@
|
||||
#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\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\death.dm"
|
||||
#include "code\modules\mob\living\carbon\human\emote.dm"
|
||||
|
||||
Reference in New Issue
Block a user