diff --git a/baystation12.dme b/baystation12.dme index b4cc35c0c3d..b8660d519b5 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -772,6 +772,7 @@ #include "code\modules\client\preferences_spawnpoints.dm" #include "code\modules\client\preferences_toggles.dm" #include "code\modules\clothing\clothing.dm" +#include "code\modules\clothing\ears\skrell.dm" #include "code\modules\clothing\glasses\glasses.dm" #include "code\modules\clothing\glasses\hud.dm" #include "code\modules\clothing\gloves\boxing.dm" diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index 9e76a6af56a..0045dabec9c 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -182,7 +182,8 @@ proc/get_id_photo(var/mob/living/carbon/human/H) 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) + 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) diff --git a/code/modules/client/preferences_gear.dm b/code/modules/client/preferences_gear.dm index d23a82fada8..5c785078086 100644 --- a/code/modules/client/preferences_gear.dm +++ b/code/modules/client/preferences_gear.dm @@ -3,6 +3,7 @@ var/global/list/gear_datums = list() /hook/startup/proc/populate_gear_list() var/list/sort_categories = list( "[slot_head]" = list(), + "ears" = list(), "[slot_glasses]" = list(), "[slot_wear_mask]" = list(), "[slot_w_uniform]" = list(), @@ -801,3 +802,33 @@ var/global/list/gear_datums = list() path = /obj/item/weapon/haircomb sort_category = "misc" cost = 2 + +// Stuff worn on the ears. Items here go in the "ears" sort_category but they must not use +// the slot_r_ear or slot_l_ear as the slot, or else players will spawn with no headset. +/datum/gear/skrell_chain + display_name = "skrell headtail-wear, female, chain" + path = /obj/item/clothing/ears/skrell/chain + cost = 2 + sort_category = "ears" + whitelisted = "Skrell" + +/datum/gear/skrell_plate + display_name = "skrell headtail-wear, male, bands" + path = /obj/item/clothing/ears/skrell/band + cost = 2 + sort_category = "ears" + whitelisted = "Skrell" + +/datum/gear/skrell_cloth_male + display_name = "skrell headtail-wear, male, cloth" + path = /obj/item/clothing/ears/skrell/cloth_male + cost = 2 + sort_category = "ears" + whitelisted = "Skrell" + +/datum/gear/skrell_cloth_female + display_name = "skrell headtail-wear, female, cloth" + path = /obj/item/clothing/ears/skrell/cloth_female + cost = 2 + sort_category = "ears" + whitelisted = "Skrell" \ No newline at end of file diff --git a/code/modules/clothing/ears/skrell.dm b/code/modules/clothing/ears/skrell.dm new file mode 100644 index 00000000000..986f5a02ec1 --- /dev/null +++ b/code/modules/clothing/ears/skrell.dm @@ -0,0 +1,35 @@ +/* + Skrell tentacle wear +*/ + +/obj/item/clothing/ears/skrell + name = "skrell tentacle wear" + desc = "Some stuff worn by skrell to adorn their head tentacles." + icon = 'icons/obj/clothing/ears.dmi' + w_class = 1 + slot_flags = SLOT_EARS | SLOT_TWOEARS + species_restricted = list("Skrell") + +/obj/item/clothing/ears/skrell/chain + name = "skrell headtail chains" + desc = "A delicate golden chain worn by female skrell to decorate their head tails." + icon_state = "skrell_chain" + item_state = "skrell_chain" + +/obj/item/clothing/ears/skrell/band + name = "skrell headtail bands" + desc = "Golden metallic bands worn by male skrell to adorn their head tails." + icon_state = "skrell_band" + item_state = "skrell_band" + +/obj/item/clothing/ears/skrell/cloth_female + name = "skrell headtail cloth" + desc = "A cloth shawl worn by female skrell draped around their head tails." + icon_state = "skrell_cloth_female" + item_state = "skrell_cloth_female" + +/obj/item/clothing/ears/skrell/cloth_male + name = "skrell headtail cloth" + desc = "A cloth band worn by male skrell around their head tails." + icon_state = "skrell_cloth_male" + item_state = "skrell_cloth_male" \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 832a90894a5..57a1bb1a31e 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -209,7 +209,7 @@ primitive = /mob/living/carbon/monkey unarmed_type = /datum/unarmed_attack/punch - flags = HAS_SKIN_TONE | HAS_LIPS | HAS_UNDERWEAR + flags = HAS_SKIN_TONE | HAS_LIPS | HAS_UNDERWEAR | HAS_EYE_COLOR //If you wanted to add a species-level ability: /*abilities = list(/client/proc/test_ability)*/ @@ -235,7 +235,7 @@ heat_level_2 = 480 //Default 400 heat_level_3 = 1100 //Default 1000 - flags = IS_WHITELISTED | HAS_LIPS | HAS_UNDERWEAR | HAS_SKIN_COLOR + flags = IS_WHITELISTED | HAS_LIPS | HAS_UNDERWEAR | HAS_SKIN_COLOR | HAS_EYE_COLOR flesh_color = "#34AF10" @@ -263,7 +263,7 @@ primitive = /mob/living/carbon/monkey/tajara - flags = IS_WHITELISTED | HAS_LIPS | HAS_UNDERWEAR | HAS_SKIN_COLOR + flags = IS_WHITELISTED | HAS_LIPS | HAS_UNDERWEAR | HAS_SKIN_COLOR | HAS_EYE_COLOR flesh_color = "#AFA59E" base_color = "#333333" @@ -273,6 +273,7 @@ name_plural = "Skrell" icobase = 'icons/mob/human_races/r_skrell.dmi' deform = 'icons/mob/human_races/r_def_skrell.dmi' + eyes = "skrell_eyes_s" language = "Skrellian" primitive = /mob/living/carbon/monkey/skrell unarmed_type = /datum/unarmed_attack/punch @@ -280,6 +281,7 @@ flags = IS_WHITELISTED | HAS_LIPS | HAS_UNDERWEAR | HAS_SKIN_COLOR flesh_color = "#8CD7A3" + blood_color = "#1D2CBF" reagent_tag = IS_SKRELL @@ -310,7 +312,7 @@ poison_type = "oxygen" insulated = 1 - flags = NO_SCAN + flags = NO_SCAN | HAS_EYE_COLOR blood_color = "#2299FC" flesh_color = "#808D11" @@ -356,7 +358,7 @@ breath_type = "nitrogen" poison_type = "oxygen" - flags = NO_SCAN | NO_BLOOD | NO_PAIN + flags = NO_SCAN | NO_BLOOD | NO_PAIN | HAS_EYE_COLOR blood_color = "#2299FC" flesh_color = "#808D11" @@ -406,7 +408,7 @@ body_temperature = T0C + 15 //make the plant people have a bit lower body temperature, why not - flags = IS_WHITELISTED | NO_BREATHE | NO_SCAN | IS_PLANT | NO_BLOOD | NO_PAIN | NO_SLIP + flags = IS_WHITELISTED | NO_BREATHE | NO_SCAN | IS_PLANT | NO_BLOOD | NO_PAIN | NO_SLIP | HAS_EYE_COLOR blood_color = "#004400" flesh_color = "#907E4A" diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 9cd620946ce..2e936869571 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -369,7 +369,8 @@ proc/get_damage_icon_part(damage_state, body_part) //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) + if (species.flags & HAS_EYE_COLOR) + eyes.Blend(rgb(r_eyes, g_eyes, b_eyes), ICON_ADD) stand_icon.Blend(eyes, ICON_OVERLAY) //Mouth (lipstick!) diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index 48ba98ac291..33ecd0314fd 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -224,7 +224,8 @@ datum/preferences preview_icon.Blend(rgb(-s_tone, -s_tone, -s_tone), ICON_SUBTRACT) var/icon/eyes_s = new/icon("icon" = 'icons/mob/human_face.dmi', "icon_state" = current_species ? current_species.eyes : "eyes_s") - eyes_s.Blend(rgb(r_eyes, g_eyes, b_eyes), ICON_ADD) + if ((current_species && (current_species.flags & HAS_EYE_COLOR))) + eyes_s.Blend(rgb(r_eyes, g_eyes, b_eyes), ICON_ADD) var/datum/sprite_accessory/hair_style = hair_styles_list[h_style] if(hair_style) diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm index 3b231b751ee..4a9f5509ca4 100644 --- a/code/modules/mob/new_player/sprite_accessories.dm +++ b/code/modules/mob/new_player/sprite_accessories.dm @@ -609,30 +609,6 @@ species_allowed = list("Skrell") gender = FEMALE - skr_gold_m - name = "Gold plated Skrell Male Tentacles" - icon_state = "skrell_goldhair_m" - species_allowed = list("Skrell") - gender = MALE - - skr_gold_f - name = "Gold chained Skrell Female Tentacles" - icon_state = "skrell_goldhair_f" - species_allowed = list("Skrell") - gender = FEMALE - - skr_clothtentacle_m - name = "Cloth draped Skrell Male Tentacles" - icon_state = "skrell_clothhair_m" - species_allowed = list("Skrell") - gender = MALE - - skr_clothtentacle_f - name = "Cloth draped Skrell Female Tentacles" - icon_state = "skrell_clothhair_f" - species_allowed = list("Skrell") - gender = FEMALE - taj_ears name = "Tajaran Ears" icon_state = "ears_plain" diff --git a/code/setup.dm b/code/setup.dm index 6b61c9142f4..645f2531ac3 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -755,6 +755,7 @@ var/list/RESTRICTED_CAMERA_NETWORKS = list( //Those networks can only be accesse #define IS_PLANT 1024 #define IS_WHITELISTED 2048 #define IS_SYNTHETIC 4096 +#define HAS_EYE_COLOR 8192 //Language flags. #define WHITELISTED 1 // Language is available if the speaker is whitelisted. diff --git a/icons/mob/ears.dmi b/icons/mob/ears.dmi index c5d2440e11a..4cab7dd237e 100644 Binary files a/icons/mob/ears.dmi and b/icons/mob/ears.dmi differ diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi index 3a3a4fb3908..d334efb02a6 100644 Binary files a/icons/mob/human_face.dmi and b/icons/mob/human_face.dmi differ diff --git a/icons/mob/human_races/r_skrell.dmi b/icons/mob/human_races/r_skrell.dmi index b2156aefcff..913474d3b6f 100644 Binary files a/icons/mob/human_races/r_skrell.dmi and b/icons/mob/human_races/r_skrell.dmi differ diff --git a/icons/obj/clothing/ears.dmi b/icons/obj/clothing/ears.dmi new file mode 100644 index 00000000000..0ffe252b6de Binary files /dev/null and b/icons/obj/clothing/ears.dmi differ