diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index c9834e4e527..4dc74987dd7 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -222,166 +222,6 @@ /proc/generate_record_id() return add_zero(num2hex(rand(1, 65535)), 4) //no point generating higher numbers because of the limitations of num2hex -proc/get_id_photo(var/mob/living/carbon/human/H, var/assigned_role) - var/icon/preview_icon = null - - var/g = "m" - if (H.gender == FEMALE) - g = "f" - - var/icon/icobase = H.species.icobase - - preview_icon = new /icon(icobase, "torso_[g]") - var/icon/temp - temp = new /icon(icobase, "groin_[g]") - preview_icon.Blend(temp, ICON_OVERLAY) - temp = new /icon(icobase, "head_[g]") - preview_icon.Blend(temp, ICON_OVERLAY) - - for(var/obj/item/organ/external/E in H.organs) - preview_icon.Blend(E.get_icon(), ICON_OVERLAY) - - //Tail - if(H.species.tail) - temp = new/icon("icon" = 'icons/effects/species.dmi', "icon_state" = "[H.species.tail]_s") - preview_icon.Blend(temp, ICON_OVERLAY) - - // Skin tone - if(H.species.flags & HAS_SKIN_TONE) - if (H.s_tone >= 0) - preview_icon.Blend(rgb(H.s_tone, H.s_tone, H.s_tone), ICON_ADD) - else - preview_icon.Blend(rgb(-H.s_tone, -H.s_tone, -H.s_tone), ICON_SUBTRACT) - - // Skin color - if(H.species.flags & HAS_SKIN_TONE) - if(!H.species || H.species.flags & HAS_SKIN_COLOR) - preview_icon.Blend(rgb(H.r_skin, H.g_skin, H.b_skin), ICON_ADD) - - var/icon/eyes_s = new/icon("icon" = 'icons/mob/human_face.dmi', "icon_state" = H.species ? H.species.eyes : "eyes_s") - - if (H.species.flags & HAS_EYE_COLOR) - eyes_s.Blend(rgb(H.r_eyes, H.g_eyes, H.b_eyes), ICON_ADD) - - var/datum/sprite_accessory/hair_style = hair_styles_list[H.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) - eyes_s.Blend(hair_s, ICON_OVERLAY) - - var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[H.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) - eyes_s.Blend(facial_s, ICON_OVERLAY) - - var/icon/clothes_s = null - if(!assigned_role) assigned_role = H.mind.assigned_role - switch(assigned_role) - if("Head of Personnel") - clothes_s = new /icon('icons/mob/uniform.dmi', "hop_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) - if("Bartender") - clothes_s = new /icon('icons/mob/uniform.dmi', "ba_suit_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) - if("Gardener") - clothes_s = new /icon('icons/mob/uniform.dmi', "hydroponics_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) - if("Chef") - clothes_s = new /icon('icons/mob/uniform.dmi', "chef_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) - if("Janitor") - clothes_s = new /icon('icons/mob/uniform.dmi', "janitor_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) - if("Librarian") - clothes_s = new /icon('icons/mob/uniform.dmi', "red_suit_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) - if("Quartermaster") - clothes_s = new /icon('icons/mob/uniform.dmi', "qm_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) - if("Cargo Technician") - clothes_s = new /icon('icons/mob/uniform.dmi', "cargotech_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) - if("Shaft Miner") - clothes_s = new /icon('icons/mob/uniform.dmi', "miner_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) - if("Lawyer") - clothes_s = new /icon('icons/mob/uniform.dmi', "internalaffairs_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) - if("Chaplain") - clothes_s = new /icon('icons/mob/uniform.dmi', "chapblack_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) - if("Research Director") - clothes_s = new /icon('icons/mob/uniform.dmi', "director_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY) - if("Scientist") - clothes_s = new /icon('icons/mob/uniform.dmi', "sciencewhite_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_tox_open"), ICON_OVERLAY) - if("Chemist") - clothes_s = new /icon('icons/mob/uniform.dmi', "chemistrywhite_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_chem_open"), ICON_OVERLAY) - if("Chief Medical Officer") - clothes_s = new /icon('icons/mob/uniform.dmi', "cmo_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_cmo_open"), ICON_OVERLAY) - if("Medical Doctor") - clothes_s = new /icon('icons/mob/uniform.dmi', "medical_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY) - if("Geneticist") - clothes_s = new /icon('icons/mob/uniform.dmi', "geneticswhite_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_gen_open"), ICON_OVERLAY) - if("Virologist") - clothes_s = new /icon('icons/mob/uniform.dmi', "virologywhite_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_vir_open"), ICON_OVERLAY) - if("Captain") - clothes_s = new /icon('icons/mob/uniform.dmi', "captain_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) - if("Head of Security") - clothes_s = new /icon('icons/mob/uniform.dmi', "hosred_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY) - if("Warden") - clothes_s = new /icon('icons/mob/uniform.dmi', "warden_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY) - if("Detective") - clothes_s = new /icon('icons/mob/uniform.dmi', "detective_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "detective"), ICON_OVERLAY) - if("Security Officer") - clothes_s = new /icon('icons/mob/uniform.dmi', "secred_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY) - if("Chief Engineer") - clothes_s = new /icon('icons/mob/uniform.dmi', "chief_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY) - if("Station Engineer") - clothes_s = new /icon('icons/mob/uniform.dmi', "engine_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "orange"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY) - if("Atmospheric Technician") - clothes_s = new /icon('icons/mob/uniform.dmi', "atmos_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY) - if("Roboticist") - clothes_s = new /icon('icons/mob/uniform.dmi', "robotics_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY) - else - clothes_s = new /icon('icons/mob/uniform.dmi', "grey_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) - preview_icon.Blend(eyes_s, ICON_OVERLAY) - if(clothes_s) - preview_icon.Blend(clothes_s, ICON_OVERLAY) - qdel(eyes_s) - qdel(clothes_s) - - return preview_icon - /datum/datacore/proc/CreateGeneralRecord(var/mob/living/carbon/human/H, var/id) ResetPDAManifest() var/icon/front @@ -391,8 +231,8 @@ proc/get_id_photo(var/mob/living/carbon/human/H, var/assigned_role) side = getFlatIcon(H, WEST, always_use_defdir = 1) else var/mob/living/carbon/human/dummy = new() - front = new(get_id_photo(dummy), dir = SOUTH) - side = new(get_id_photo(dummy), dir = WEST) + front = getFlatIcon(dummy, SOUTH, always_use_defdir = TRUE) + side = getFlatIcon(dummy, SOUTH, always_use_defdir = TRUE) qdel(dummy) if(!id) id = text("[]", add_zero(num2hex(rand(1, 1.6777215E7)), 6)) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index e8ab1e5b935..95a668538ad 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -332,14 +332,14 @@ There are several things that need to be remembered: var/icon/face_standing = SSicon_cache.human_hair_cache[cache_key] if (!face_standing) // Not cached, generate it from scratch. - face_standing = new /icon('icons/mob/human_face.dmi',"bald_s") + face_standing = new /icon('icons/mob/human_face/hair.dmi',"bald") // Beard. if(f_style) var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[f_style] if(facial_hair_style && facial_hair_style.species_allowed && (GET_BODY_TYPE 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) if(facial_hair_style.do_colouration) - facial_s.Blend(rgb(r_facial, g_facial, b_facial), ICON_ADD) + facial_s.Blend(rgb(r_facial, g_facial, b_facial), facial_hair_style.icon_blend_mode) face_standing.Blend(facial_s, ICON_OVERLAY) @@ -347,9 +347,9 @@ There are several things that need to be remembered: if(hair_is_visible) var/datum/sprite_accessory/hair_style = hair_styles_list[h_style] if(hair_style && (GET_BODY_TYPE in hair_style.species_allowed)) - 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) if(hair_style.do_colouration) - hair_s.Blend(rgb(r_hair, g_hair, b_hair), ICON_ADD) + hair_s.Blend(rgb(r_hair, g_hair, b_hair), hair_style.icon_blend_mode) face_standing.Blend(hair_s, ICON_OVERLAY) diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm index d25959e0d1f..6053bc4b4fe 100644 --- a/code/modules/mob/new_player/sprite_accessories.dm +++ b/code/modules/mob/new_player/sprite_accessories.dm @@ -11,10 +11,6 @@ have to define any UI values for sprite accessories manually for hair and facial hair. Just add in new hair types and the game will naturally adapt. - !!WARNING!!: changing existing hair information can be VERY hazardous to savefiles, - to the point where you may completely corrupt a server's savefiles. Please refrain - from doing this unless you absolutely know what you are doing, and have defined a - conversion in savefile.dm */ /datum/sprite_accessory @@ -34,6 +30,9 @@ // Whether or not the accessory can be affected by colouration var/do_colouration = 1 + // The blend mode to use when blending this icon with its color. May not apply to all sprite_accessory types, and must be a ICON_* blend mode, not BLEND_*! + var/icon_blend_mode = ICON_ADD + /* //////////////////////////// @@ -44,8 +43,7 @@ */ /datum/sprite_accessory/hair - - icon = 'icons/mob/Human_face.dmi' // default icon for all hairs + icon = 'icons/mob/human_face/hair.dmi' // default icon for all hairs bald name = "Bald" @@ -65,16 +63,15 @@ name = "Resomi Plumage" icon_state = "resomi_default" species_allowed = list("Resomi") + icon = 'icons/mob/human_face/resomi_hair.dmi' - resomi_ears - name = "Resomi Ears" - icon_state = "resomi_ears" - species_allowed = list("Resomi") + resomi_ears + name = "Resomi Ears" + icon_state = "resomi_ears" - resomi_excited - name = "Resomi Spiky" - icon_state = "resomi_spiky" - species_allowed = list("Resomi") + resomi_excited + name = "Resomi Spiky" + icon_state = "resomi_spiky" cut name = "Cut Hair" @@ -341,6 +338,7 @@ name = "Mohawk" icon_state = "hair_d" species_allowed = list("Human","Unathi") + jensen name = "Adam Jensen Hair" icon_state = "hair_jensen" @@ -360,6 +358,7 @@ name = "Spiky" icon_state = "hair_spikey" species_allowed = list("Human","Unathi") + kusangi name = "Kusanagi Hair" icon_state = "hair_kusanagi" @@ -659,6 +658,85 @@ icon_state = "hair_manbun" gender = MALE + // TG-format hair - uses ICON_MULTIPLY instead of ICON_ADD + uniter + icon = 'icons/mob/human_face/hair_multiply.dmi' + icon_blend_mode = ICON_MULTIPLY + name = "Uniter" + icon_state = "hair_uniter" + + balding + name = "Balding" + icon_state = "hair_balding" + + bun + name = "Librarian Bun" + icon_state = "hair_bun" + + fade + name = "Fade" + icon_state = "hair_fade" + + floof + name = "Floof" + icon_state = "hair_floof" + + krewcut + name = "Krewcut" + icon_state = "hair_krewcut" + + pomp + name = "Pomp III" + icon_state = "hair_pomp_iii" + + shortchoppy + name = "Choppy (Short)" + icon_state = "hair_shortchoppy" + + shortfloof + name = "Floof (Short)" + icon_state = "hair_shortfloof" + + sideshave + name = "Sideshave" + icon_state = "hair_sideshaved" + + superb_owl + name = "Superbowl" + icon_state = "hair_superbowl" + + waxed + name = "Waxed" + icon_state = "hair_waxed" + + cactus + name = "Cactus" + icon_state = "hair_whatdoinamethiscactus" + + wavyshoulder + name = "Wavy Shoulder (Down)" + icon_state = "wavyshoulder_down" + + wavyshoulder_pt + name = "Wavy Shoulder (Ponytail)" + icon_state = "wavyshoulder_up" + + jenjen + name = "Jenjen" + icon_state = "hair_jenjen" + + fade_grown + name = "Fade (Grown)" + icon_state = "hair_fade_grown" + + swept + name = "Swept" + icon_state = "hair_shortswept" + + spiked + name = "Spiked" + icon_state = "hair_short_spike" + /* /////////////////////////////////// @@ -669,8 +747,7 @@ */ /datum/sprite_accessory/facial_hair - - icon = 'icons/mob/Human_face.dmi' + icon = 'icons/mob/human_face/facial_hair.dmi' gender = MALE // barf (unless you're a dorf, dorfs dig chix /w beards :P) shaved @@ -792,6 +869,20 @@ name = "Chinless Beard" icon_state = "facial_chinlessbeard" + stark + icon = 'icons/mob/human_face/facial_hair_multiply.dmi' + name = "Stark" + icon_state = "beard_stark" + icon_blend_mode = ICON_MULTIPLY + + chinstrap2 + name = "Chinstrap (Alt)" + icon_state = "beard_chinstrap_ii" + + swire + name = "Swire" + icon_state = "beard_swire" + /* /////////////////////////////////// / =---------------------------= / @@ -805,332 +896,255 @@ //unathi hair una_spines_long + icon = 'icons/mob/human_face/unathi_hair.dmi' name = "Long Unathi Spines" icon_state = "soghun_longspines" species_allowed = list("Unathi") - una_spines_short - name = "Short Unathi Spines" - icon_state = "soghun_shortspines" - species_allowed = list("Unathi") + una_spines_short + name = "Short Unathi Spines" + icon_state = "soghun_shortspines" - una_frills_long - name = "Long Unathi Frills" - icon_state = "soghun_longfrills" - species_allowed = list("Unathi") + una_frills_long + name = "Long Unathi Frills" + icon_state = "soghun_longfrills" - una_frills_short - name = "Short Unathi Frills" - icon_state = "soghun_shortfrills" - species_allowed = list("Unathi") + una_frills_short + name = "Short Unathi Frills" + icon_state = "soghun_shortfrills" - una_horns - name = "Unathi Horns" - icon_state = "soghun_horns" - species_allowed = list("Unathi") + una_horns + name = "Unathi Horns" + icon_state = "soghun_horns" - una_bighorns - name = "Unathi Big Horns" - icon_state = "unathi_bighorn" - species_allowed = list("Unathi") + una_bighorns + name = "Unathi Big Horns" + icon_state = "unathi_bighorn" - una_smallhorns - name = "Unathi Small Horns" - icon_state = "unathi_smallhorn" - species_allowed = list("Unathi") + una_smallhorns + name = "Unathi Small Horns" + icon_state = "unathi_smallhorn" - una_ramhorns - name = "Unathi Ram Horns" - icon_state = "unathi_ramhorn" - species_allowed = list("Unathi") + una_ramhorns + name = "Unathi Ram Horns" + icon_state = "unathi_ramhorn" - una_sidefrills - name = "Unathi Side Frills" - icon_state = "unathi_sidefrills" - species_allowed = list("Unathi") + una_sidefrills + name = "Unathi Side Frills" + icon_state = "unathi_sidefrills" //skrell tentacles skr_tentacle_m + icon = 'icons/mob/human_face/skrell_hair.dmi' name = "Skrell Male Tentacles" icon_state = "skrell_hair_m" species_allowed = list("Skrell") gender = MALE - skr_tentacle_f - name = "Skrell Female Tentacles" - icon_state = "skrell_hair_f" - species_allowed = list("Skrell") - gender = FEMALE + skr_tentacle_f + name = "Skrell Female Tentacles" + icon_state = "skrell_hair_f" + gender = FEMALE //tajaran hair taj_ears + icon = 'icons/mob/human_face/tajara_hair.dmi' name = "Tajaran Ears" icon_state = "ears_plain" species_allowed = list("Tajara") - taj_ears_clean - name = "Tajara Clean" - icon_state = "hair_clean" - species_allowed = list("Tajara") + taj_ears_clean + name = "Tajara Clean" + icon_state = "hair_clean" - taj_ears_bangs - name = "Tajara Bangs" - icon_state = "hair_bangs" - species_allowed = list("Tajara") + taj_ears_bangs + name = "Tajara Bangs" + icon_state = "hair_bangs" - taj_ears_braid - name = "Tajara Braid" - icon_state = "hair_tbraid" - species_allowed = list("Tajara") + taj_ears_braid + name = "Tajara Braid" + icon_state = "hair_tbraid" - taj_ears_shaggy - name = "Tajara Shaggy" - icon_state = "hair_shaggy" - species_allowed = list("Tajara") + taj_ears_shaggy + name = "Tajara Shaggy" + icon_state = "hair_shaggy" - taj_ears_mohawk - name = "Tajaran Mohawk" - icon_state = "hair_mohawk" - species_allowed = list("Tajara") + taj_ears_mohawk + name = "Tajaran Mohawk" + icon_state = "hair_mohawk" - taj_ears_plait - name = "Tajara Plait" - icon_state = "hair_plait" - species_allowed = list("Tajara") + taj_ears_plait + name = "Tajara Plait" + icon_state = "hair_plait" - taj_ears_straight - name = "Tajara Straight" - icon_state = "hair_straight" - species_allowed = list("Tajara") + taj_ears_straight + name = "Tajara Straight" + icon_state = "hair_straight" - taj_ears_long - name = "Tajara Long" - icon_state = "hair_long" - species_allowed = list("Tajara") + taj_ears_long + name = "Tajara Long" + icon_state = "hair_long" - taj_ears_rattail - name = "Tajara Rat Tail" - icon_state = "hair_rattail" - species_allowed = list("Tajara") + taj_ears_rattail + name = "Tajara Rat Tail" + icon_state = "hair_rattail" - taj_ears_spiky - name = "Tajara Spiky" - icon_state = "hair_tajspiky" - species_allowed = list("Tajara") + taj_ears_spiky + name = "Tajara Spiky" + icon_state = "hair_tajspiky" - taj_ears_messy - name = "Tajara Messy" - icon_state = "hair_messy" - species_allowed = list("Tajara") + taj_ears_messy + name = "Tajara Messy" + icon_state = "hair_messy" - taj_ears_curls - name = "Tajara Curly" - icon_state = "hair_curly" - species_allowed = list("Tajara") + taj_ears_curls + name = "Tajara Curly" + icon_state = "hair_curly" - taj_ears_wife - name = "Tajara Housewife" - icon_state = "hair_wife" - species_allowed = list("Tajara") + taj_ears_wife + name = "Tajara Housewife" + icon_state = "hair_wife" - taj_ears_victory - name = "Tajara Victory Curls" - icon_state = "hair_victory" - species_allowed = list("Tajara") + taj_ears_victory + name = "Tajara Victory Curls" + icon_state = "hair_victory" - taj_ears_bob - name = "Tajara Bob" - icon_state = "hair_tbob" - species_allowed = list("Tajara") + taj_ears_bob + name = "Tajara Bob" + icon_state = "hair_tbob" - taj_ears_fingercurl - name = "Tajara Finger Curls" - icon_state = "hair_fingerwave" - species_allowed = list("Tajara") + taj_ears_fingercurl + name = "Tajara Finger Curls" + icon_state = "hair_fingerwave" //vox hair vox_quills_short + icon = 'icons/mob/human_face/vox_hair.dmi' name = "Short Vox Quills" icon_state = "vox_shortquills" species_allowed = list("Vox") - vox_quills_kingly - name = "Kingly Vox Quills" - icon_state = "vox_kingly" - species_allowed = list("Vox") + vox_quills_kingly + name = "Kingly Vox Quills" + icon_state = "vox_kingly" - vox_quills_mohawk - name = "Quill Mohawk" - icon_state = "vox_mohawk" - species_allowed = list("Vox") + vox_quills_mohawk + name = "Quill Mohawk" + icon_state = "vox_mohawk" //ipc screens - icp_screen_pink + ipc_screen_pink + icon = 'icons/mob/human_face/ipc_screens.dmi' name = "pink IPC screen" icon_state = "ipc_pink" species_allowed = list("Machine") - icp_screen_red - name = "red IPC screen" - icon_state = "ipc_red" - species_allowed = list("Machine") + ipc_screen_red + name = "red IPC screen" + icon_state = "ipc_red" - icp_screen_green - name = "green IPC screen" - icon_state = "ipc_green" - species_allowed = list("Machine") + ipc_screen_green + name = "green IPC screen" + icon_state = "ipc_green" - icp_screen_blue - name = "blue IPC screen" - icon_state = "ipc_blue" - species_allowed = list("Machine") + ipc_screen_blue + name = "blue IPC screen" + icon_state = "ipc_blue" - icp_screen_breakout - name = "breakout IPC screen" - icon_state = "ipc_breakout" - species_allowed = list("Machine") + ipc_screen_breakout + name = "breakout IPC screen" + icon_state = "ipc_breakout" - icp_screen_eight - name = "eight IPC screen" - icon_state = "ipc_eight" - species_allowed = list("Machine") + ipc_screen_eight + name = "eight IPC screen" + icon_state = "ipc_eight" - icp_screen_goggles - name = "goggles IPC screen" - icon_state = "ipc_goggles" - species_allowed = list("Machine") + ipc_screen_goggles + name = "goggles IPC screen" + icon_state = "ipc_goggles" - icp_screen_heart - name = "heart IPC screen" - icon_state = "ipc_heart" - species_allowed = list("Machine") + ipc_screen_heart + name = "heart IPC screen" + icon_state = "ipc_heart" - icp_screen_monoeye - name = "monoeye IPC screen" - icon_state = "ipc_monoeye" - species_allowed = list("Machine") + ipc_screen_monoeye + name = "monoeye IPC screen" + icon_state = "ipc_monoeye" - icp_screen_nature - name = "nature IPC screen" - icon_state = "ipc_nature" - species_allowed = list("Machine") + ipc_screen_nature + name = "nature IPC screen" + icon_state = "ipc_nature" - icp_screen_orange - name = "orange IPC screen" - icon_state = "ipc_orange" - species_allowed = list("Machine") + ipc_screen_orange + name = "orange IPC screen" + icon_state = "ipc_orange" - icp_screen_purple - name = "purple IPC screen" - icon_state = "ipc_purple" - species_allowed = list("Machine") + ipc_screen_purple + name = "purple IPC screen" + icon_state = "ipc_purple" - icp_screen_shower - name = "shower IPC screen" - icon_state = "ipc_shower" - species_allowed = list("Machine") + ipc_screen_shower + name = "shower IPC screen" + icon_state = "ipc_shower" - icp_screen_static - name = "static IPC screen" - icon_state = "ipc_static" - species_allowed = list("Machine") + ipc_screen_static + name = "static IPC screen" + icon_state = "ipc_static" - icp_screen_yellow - name = "yellow IPC screen" - icon_state = "ipc_yellow" - species_allowed = list("Machine") + ipc_screen_yellow + name = "yellow IPC screen" + icon_state = "ipc_yellow" /datum/sprite_accessory/facial_hair - taj_sideburns + icon = 'icons/mob/human_face/tajara_facial_hair.dmi' name = "Tajara Sideburns" icon_state = "facial_sideburns" species_allowed = list("Tajara") - taj_mutton - name = "Tajara Mutton" - icon_state = "facial_mutton" - species_allowed = list("Tajara") + taj_mutton + name = "Tajara Mutton" + icon_state = "facial_mutton" - taj_pencilstache - name = "Tajara Pencilstache" - icon_state = "facial_pencilstache" - species_allowed = list("Tajara") + taj_pencilstache + name = "Tajara Pencilstache" + icon_state = "facial_pencilstache" - taj_moustache - name = "Tajara Moustache" - icon_state = "facial_moustache" - species_allowed = list("Tajara") + taj_moustache + name = "Tajara Moustache" + icon_state = "facial_moustache" - taj_goatee - name = "Tajara Goatee" - icon_state = "facial_goatee" - species_allowed = list("Tajara") + taj_goatee + name = "Tajara Goatee" + icon_state = "facial_goatee" - taj_smallstache - name = "Tajara Smallsatche" - icon_state = "facial_smallstache" - species_allowed = list("Tajara") + taj_smallstache + name = "Tajara Smallsatche" + icon_state = "facial_smallstache" //unathi horn beards and the like una_chinhorn + icon = 'icons/mob/human_face/unathi_facial_hair.dmi' name = "Unathi Chin Horn" icon_state = "facial_chinhorns" species_allowed = list("Unathi") - una_hornadorns - name = "Unathi Horn Adorns" - icon_state = "facial_hornadorns" - species_allowed = list("Unathi") + una_hornadorns + name = "Unathi Horn Adorns" + icon_state = "facial_hornadorns" - una_spinespikes - name = "Unathi Spine Spikes" - icon_state = "facial_spikes" - species_allowed = list("Unathi") + una_spinespikes + name = "Unathi Spine Spikes" + icon_state = "facial_spikes" - una_dorsalfrill - name = "Unathi Dorsal Frill" - icon_state = "facial_dorsalfrill" - species_allowed = list("Unathi") - -//skin styles - WIP -//going to have to re-integrate this with surgery -//let the icon_state hold an icon preview for now -/datum/sprite_accessory/skin - icon = 'icons/mob/human_races/r_human.dmi' - - human - name = "Default human skin" - icon_state = "default" - species_allowed = list("Human") - - human_tatt01 - name = "Tatt01 human skin" - icon_state = "tatt1" - species_allowed = list("Human") - - tajaran - name = "Default tajaran skin" - icon_state = "default" - icon = 'icons/mob/human_races/r_tajaran.dmi' - species_allowed = list("Tajara") - - unathi - name = "Default Unathi skin" - icon_state = "default" - icon = 'icons/mob/human_races/r_lizard.dmi' - species_allowed = list("Unathi") - - skrell - name = "Default skrell skin" - icon_state = "default" - icon = 'icons/mob/human_races/r_skrell.dmi' - species_allowed = list("Skrell") + una_dorsalfrill + name = "Unathi Dorsal Frill" + icon_state = "facial_dorsalfrill" /* //////////////////////////// diff --git a/code/modules/organs/organ_icon.dm b/code/modules/organs/organ_icon.dm index 1aeba77c5c0..fff00aeeafe 100644 --- a/code/modules/organs/organ_icon.dm +++ b/code/modules/organs/organ_icon.dm @@ -63,7 +63,7 @@ var/icon/eyes_icon = SSicon_cache.human_eye_cache[cache_key] if (!eyes_icon) - eyes_icon = new/icon('icons/mob/human_face.dmi', species.eyes) + eyes_icon = new/icon('icons/mob/human_face/eyes.dmi', species.eyes) if(eyecolor) eyes_icon.Blend(eyecolor, ICON_ADD) else @@ -77,7 +77,7 @@ if(owner.lip_style && (species && (species.appearance_flags & HAS_LIPS))) var/icon/lip_icon = SSicon_cache.human_lip_cache["[owner.lip_style]"] if (!lip_icon) - lip_icon = new/icon('icons/mob/human_face.dmi', "lips_[owner.lip_style]_s") + lip_icon = new/icon('icons/mob/human_face/lips.dmi', "[owner.lip_style]") SSicon_cache.human_lip_cache["[owner.lip_style]"] = lip_icon add_overlay(lip_icon) diff --git a/html/changelogs/brainos-hair.yml b/html/changelogs/brainos-hair.yml new file mode 100644 index 00000000000..a210ec9b2ee --- /dev/null +++ b/html/changelogs/brainos-hair.yml @@ -0,0 +1,4 @@ +author: BRAINOS +delete-after: True +changes: + - imageadd: "Added 19 new hairstyles and 3 new beards." diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi deleted file mode 100644 index 1822e2ad4c5..00000000000 Binary files a/icons/mob/human_face.dmi and /dev/null differ diff --git a/icons/mob/human_face/eyes.dmi b/icons/mob/human_face/eyes.dmi new file mode 100644 index 00000000000..b8636e278f1 Binary files /dev/null and b/icons/mob/human_face/eyes.dmi differ diff --git a/icons/mob/human_face/facial_hair.dmi b/icons/mob/human_face/facial_hair.dmi new file mode 100644 index 00000000000..7e0028a0c91 Binary files /dev/null and b/icons/mob/human_face/facial_hair.dmi differ diff --git a/icons/mob/human_face/facial_hair_multiply.dmi b/icons/mob/human_face/facial_hair_multiply.dmi new file mode 100644 index 00000000000..54c342db854 Binary files /dev/null and b/icons/mob/human_face/facial_hair_multiply.dmi differ diff --git a/icons/mob/human_face/hair.dmi b/icons/mob/human_face/hair.dmi new file mode 100644 index 00000000000..0ab803b01d5 Binary files /dev/null and b/icons/mob/human_face/hair.dmi differ diff --git a/icons/mob/human_face/hair_multiply.dmi b/icons/mob/human_face/hair_multiply.dmi new file mode 100644 index 00000000000..6d35f96b6b1 Binary files /dev/null and b/icons/mob/human_face/hair_multiply.dmi differ diff --git a/icons/mob/human_face/ipc_screens.dmi b/icons/mob/human_face/ipc_screens.dmi new file mode 100644 index 00000000000..12161c74dcf Binary files /dev/null and b/icons/mob/human_face/ipc_screens.dmi differ diff --git a/icons/mob/human_face/lips.dmi b/icons/mob/human_face/lips.dmi new file mode 100644 index 00000000000..75c4b287950 Binary files /dev/null and b/icons/mob/human_face/lips.dmi differ diff --git a/icons/mob/human_face/resomi_hair.dmi b/icons/mob/human_face/resomi_hair.dmi new file mode 100644 index 00000000000..bab9e5ab284 Binary files /dev/null and b/icons/mob/human_face/resomi_hair.dmi differ diff --git a/icons/mob/human_face/skrell_hair.dmi b/icons/mob/human_face/skrell_hair.dmi new file mode 100644 index 00000000000..bbee11aa32b Binary files /dev/null and b/icons/mob/human_face/skrell_hair.dmi differ diff --git a/icons/mob/human_face/tajara_facial_hair.dmi b/icons/mob/human_face/tajara_facial_hair.dmi new file mode 100644 index 00000000000..aaa9600a0f6 Binary files /dev/null and b/icons/mob/human_face/tajara_facial_hair.dmi differ diff --git a/icons/mob/human_face/tajara_hair.dmi b/icons/mob/human_face/tajara_hair.dmi new file mode 100644 index 00000000000..888acbd0db2 Binary files /dev/null and b/icons/mob/human_face/tajara_hair.dmi differ diff --git a/icons/mob/human_face/unathi_facial_hair.dmi b/icons/mob/human_face/unathi_facial_hair.dmi new file mode 100644 index 00000000000..9a8b37c261f Binary files /dev/null and b/icons/mob/human_face/unathi_facial_hair.dmi differ diff --git a/icons/mob/human_face/unathi_hair.dmi b/icons/mob/human_face/unathi_hair.dmi new file mode 100644 index 00000000000..fa73997f268 Binary files /dev/null and b/icons/mob/human_face/unathi_hair.dmi differ diff --git a/icons/mob/human_face/vox_hair.dmi b/icons/mob/human_face/vox_hair.dmi new file mode 100644 index 00000000000..b8544ab16c1 Binary files /dev/null and b/icons/mob/human_face/vox_hair.dmi differ