diff --git a/code/modules/client/preference_setup/general/03_body.dm b/code/modules/client/preference_setup/general/03_body.dm index 841d54d61c1..f534646e182 100644 --- a/code/modules/client/preference_setup/general/03_body.dm +++ b/code/modules/client/preference_setup/general/03_body.dm @@ -281,7 +281,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O out += "\[...\]

" else out += "

" - + out += "Hair
" if(has_flag(mob_species, HAS_HAIR_COLOR)) out += "Change Color [HTML_RECT(rgb(pref.r_hair, pref.g_hair, pref.b_hair))] " @@ -304,7 +304,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O out += "
Body Color
" out += "Change Color [HTML_RECT(rgb(pref.r_skin, pref.g_skin, pref.b_skin))]
" - + out += "
Body Markings +
" for(var/M in pref.body_markings) @@ -351,7 +351,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O mob_species = all_species[pref.species] pref.gender = sanitize_gender(pref.gender, pref.species) - var/bodytype = mob_species.get_bodytype() + //var/bodytype = mob_species.get_bodytype() //grab one of the valid hair styles for the newly chosen species var/list/valid_hairstyles = list() @@ -363,7 +363,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O continue if(pref.gender == FEMALE && S.gender == MALE) continue - if(!(bodytype in S.species_allowed)) + if(!(mob_species.type in S.species_allowed)) continue valid_hairstyles[hairstyle] = hair_styles_list[hairstyle] @@ -380,7 +380,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O continue if(pref.gender == FEMALE && S.gender == MALE) continue - if(!(bodytype in S.species_allowed)) + if(!(mob_species.type in S.species_allowed)) continue valid_facialhairstyles[facialhairstyle] = facial_hair_styles_list[facialhairstyle] @@ -416,11 +416,11 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O else if(href_list["hair_style"]) if(mob_species.bald) return - var/bodytype = mob_species.get_bodytype() + //var/bodytype = mob_species.get_bodytype() var/list/valid_hairstyles = list() for(var/hairstyle in hair_styles_list) var/datum/sprite_accessory/S = hair_styles_list[hairstyle] - if(!(bodytype in S.species_allowed)) + if(!(mob_species.type in S.species_allowed)) continue valid_hairstyles[hairstyle] = hair_styles_list[hairstyle] @@ -481,14 +481,14 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O if(mob_species.bald) return var/list/valid_facialhairstyles = list() - var/bodytype = mob_species.get_bodytype() + //var/bodytype = mob_species.get_bodytype() for(var/facialhairstyle in facial_hair_styles_list) var/datum/sprite_accessory/S = facial_hair_styles_list[facialhairstyle] if(pref.gender == MALE && S.gender == FEMALE) continue if(pref.gender == FEMALE && S.gender == MALE) continue - if(!(bodytype in S.species_allowed)) + if(!(mob_species.type in S.species_allowed)) continue valid_facialhairstyles[facialhairstyle] = facial_hair_styles_list[facialhairstyle] @@ -501,12 +501,12 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O else if(href_list["marking_style"]) var/list/usable_markings = pref.body_markings ^ body_marking_styles_list var/datum/species/species = global.all_species[pref.species] - var/btype = species.get_bodytype() + //var/btype = species.get_bodytype() for(var/M in usable_markings) var/datum/sprite_accessory/S = usable_markings[M] if(!S.species_allowed.len) continue - else if(!(btype in S.species_allowed)) + else if(!(species.type in S.species_allowed)) usable_markings -= M if (!usable_markings.len) diff --git a/code/modules/mob/abstract/new_player/sprite_accessories.dm b/code/modules/mob/abstract/new_player/sprite_accessories.dm index 3cf425b4615..a7024f9a2e4 100644 --- a/code/modules/mob/abstract/new_player/sprite_accessories.dm +++ b/code/modules/mob/abstract/new_player/sprite_accessories.dm @@ -27,8 +27,8 @@ // Determines if the accessory will be skipped or included in random hair generations var/gender = NEUTER - // Restrict some styles to specific species - var/list/species_allowed = list("Human") + // Restrict some styles to specific species. This requires the type path of the datum of the species in question, as well as all children of that datum if applicable. + var/list/species_allowed = list(/datum/species/human,/datum/species/human/offworlder,/datum/species/machine/shell,/datum/species/machine/shell/rogue,/datum/species/zombie) // Whether or not the accessory can be affected by colouration var/do_colouration = 1 @@ -69,7 +69,7 @@ Follow by example and make good judgement based on length which list to include name = "Bald" // try to capitalize the names please~ icon_state = "bald" // you do not need to define _s or _l sub-states, game automatically does this for you gender = MALE - species_allowed = list("Human","Unathi") + species_allowed = list(/datum/species/human,/datum/species/human/offworlder,/datum/species/machine/shell,/datum/species/machine/shell/rogue,/datum/species/zombie,/datum/species/unathi,/datum/species/zombie/unathi) length = 0 chatname = "bald head" //aim to keep these lowercase so they fit into the hair tugging message @@ -231,7 +231,7 @@ Follow by example and make good judgement based on length which list to include name = "Bob" icon_state = "hair_bob" gender = FEMALE - species_allowed = list("Human","Unathi") + species_allowed = list(/datum/species/human,/datum/species/human/offworlder,/datum/species/machine/shell,/datum/species/machine/shell/rogue,/datum/species/zombie,/datum/species/unathi,/datum/species/zombie/unathi) chatname = "short hair" bob_chin @@ -255,7 +255,7 @@ Follow by example and make good judgement based on length which list to include name = "Bobcurl" icon_state = "hair_bobcurl" gender = FEMALE - species_allowed = list("Human","Unathi") + species_allowed = list(/datum/species/human,/datum/species/human/offworlder,/datum/species/machine/shell,/datum/species/machine/shell/rogue,/datum/species/zombie,/datum/species/unathi,/datum/species/zombie/unathi) chatname = "curls" bobcurl2 @@ -409,14 +409,14 @@ Follow by example and make good judgement based on length which list to include name = "Buzzcut" icon_state = "hair_buzzcut" gender = MALE - species_allowed = list("Human","Unathi") + species_allowed = list(/datum/species/human,/datum/species/human/offworlder,/datum/species/machine/shell,/datum/species/machine/shell/rogue,/datum/species/zombie,/datum/species/unathi,/datum/species/zombie/unathi) chatname = "unbuzzed hair" //grabbing the grabbable hair buzzcut2 name = "Buzzcut 2" icon_state = "hair_buzzcut2" gender = MALE - species_allowed = list("Human","Unathi") + species_allowed = list(/datum/species/human,/datum/species/human/offworlder,/datum/species/machine/shell,/datum/species/machine/shell/rogue,/datum/species/zombie,/datum/species/unathi,/datum/species/zombie/unathi) chatname = "unbuzzed hair" chrono @@ -1297,7 +1297,7 @@ Follow by example and make good judgement based on length which list to include spiky name = "Spiky" icon_state = "hair_spiky" - species_allowed = list("Human","Unathi") + species_allowed = list(/datum/species/human,/datum/species/human/offworlder,/datum/species/machine/shell,/datum/species/machine/shell/rogue,/datum/species/zombie,/datum/species/unathi,/datum/species/zombie/unathi) chatname = "mighty spikes" straightlong @@ -1729,7 +1729,8 @@ Follow by example and make good judgement based on length which list to include name = "Shaved" icon_state = "bald" gender = NEUTER - species_allowed = list("Human","Unathi","Tajara","Skrell","Vox") + species_allowed = list(/datum/species/human,/datum/species/human/offworlder,/datum/species/machine/shell,/datum/species/machine/shell/rogue,/datum/species/zombie,/datum/species/unathi,/datum/species/zombie/unathi, + /datum/species/tajaran,/datum/species/tajaran/zhan_khazan,/datum/species/tajaran/m_sai,/datum/species/zombie/tajara,/datum/species/skrell,/datum/species/zombie/skrell,/datum/species/vox) threeOclock name = "3 O'clock Shadow" @@ -1790,7 +1791,7 @@ Follow by example and make good judgement based on length which list to include elvis name = "Elvis Sideburns" icon_state = "facial_elvis" - species_allowed = list("Human","Unathi") + species_allowed = list(/datum/species/human,/datum/species/human/offworlder,/datum/species/machine/shell,/datum/species/machine/shell/rogue,/datum/species/zombie,/datum/species/unathi,/datum/species/zombie/unathi) fullbeard name = "Full Beard" @@ -1923,7 +1924,7 @@ Follow by example and make good judgement based on length which list to include icon = 'icons/mob/human_face/unathi_hair.dmi' name = "Unathi Aquatic Frills" icon_state = "unathi_aquaticfrills" - species_allowed = list("Unathi") + species_allowed = list(/datum/species/unathi,/datum/species/zombie/unathi) length = 0 chatname = "frills" @@ -2137,7 +2138,7 @@ Follow by example and make good judgement based on length which list to include icon = 'icons/mob/human_face/skrell_hair.dmi' name = "Skrell Short Tentacles" icon_state = "skrell_hair_m" - species_allowed = list("Skrell") + species_allowed = list(/datum/species/skrell,/datum/species/zombie/skrell) length = 6 chatname = "Short Tentacles" @@ -2166,7 +2167,7 @@ Follow by example and make good judgement based on length which list to include icon = 'icons/mob/human_face/tajara_hair.dmi' name = "Tajaran Ears" icon_state = "ears_plain" - species_allowed = list("Tajara") + species_allowed = list(/datum/species/tajaran,/datum/species/tajaran/zhan_khazan,/datum/species/tajaran/m_sai,/datum/species/zombie/tajara) taj_ears_bangs name = "Tajara Bangs" @@ -2259,7 +2260,7 @@ Follow by example and make good judgement based on length which list to include icon = 'icons/mob/human_face/vox_hair.dmi' name = "Kingly Vox Quills" icon_state = "vox_kingly" - species_allowed = list("Vox") + species_allowed = list(/datum/species/vox) chatname = "quills" vox_braid_long @@ -2293,7 +2294,7 @@ Follow by example and make good judgement based on length which list to include icon = 'icons/mob/human_face/vaurca_hair.dmi' name = "Classic Antennae" icon_state = "vaurca_classic" - species_allowed = list("Vaurca") + species_allowed = list(/datum/species/bug,/datum/species/bug/type_b) gender = NEUTER chatname = "antennae" @@ -2374,7 +2375,7 @@ Follow by example and make good judgement based on length which list to include icon = 'icons/mob/human_face/tajara_facial_hair.dmi' name = "Tajara Goatee" icon_state = "facial_goatee" - species_allowed = list("Tajara") + species_allowed = list(/datum/species/tajaran,/datum/species/tajaran/zhan_khazan,/datum/species/tajaran/m_sai,/datum/species/zombie/tajara) taj_goatee_faded name = "Tajara Goatee Faded" @@ -2406,7 +2407,7 @@ Follow by example and make good judgement based on length which list to include icon = 'icons/mob/human_face/unathi_hair.dmi' name = "Unathi Aquatic Frills" icon_state = "facial_aquaticfrills" - species_allowed = list("Unathi") + species_allowed = list(/datum/species/unathi,/datum/species/zombie/unathi) gender = NEUTER una_bighorns @@ -2567,7 +2568,7 @@ Follow by example and make good judgement based on length which list to include icon = 'icons/mob/human_face/ipc_screens.dmi' name = "blank IPC screen" icon_state = "ipc_blank" - species_allowed = list("Machine") + species_allowed = list(/datum/species/machine) gender = NEUTER ipc_screen_blue @@ -2698,7 +2699,7 @@ Follow by example and make good judgement based on length which list to include icon = 'icons/mob/human_face/dionae_hair.dmi' name = "Mono Eye" icon_state = "monoeye" - species_allowed = list("Diona") + species_allowed = list(/datum/species/diona) gender = NEUTER do_colouration = FALSE @@ -2739,264 +2740,350 @@ Follow by example and make good judgement based on length which list to include name = "Tiger Stripes (Tajara)" icon_state = "tiger" body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_CHEST,BP_GROIN) - species_allowed = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara") + species_allowed = list(/datum/species/unathi,/datum/species/zombie/unathi,/datum/species/tajaran,/datum/species/tajaran/zhan_khazan,/datum/species/tajaran/m_sai,/datum/species/zombie/tajara) taj_paw_socks name = "Socks Coloration (Tajara)" icon_state = "taj_pawsocks" body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND) - species_allowed = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara") + species_allowed = list(/datum/species/tajaran,/datum/species/tajaran/zhan_khazan,/datum/species/tajaran/m_sai,/datum/species/zombie/tajara) una_paw_socks name = "Socks Coloration (Unathi)" icon_state = "una_pawsocks" body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND) - species_allowed = list("Unathi") + species_allowed = list(/datum/species/unathi,/datum/species/zombie/unathi) belly_hands_feet name = "Hands,Feet,Belly Color (Minor)" icon_state = "bellyhandsfeetsmall" body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_CHEST) - species_allowed = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara") + species_allowed = list(/datum/species/tajaran,/datum/species/tajaran/zhan_khazan,/datum/species/tajaran/m_sai,/datum/species/zombie/tajara) patches name = "Color Patches" icon_state = "patches" body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_CHEST,BP_GROIN) - species_allowed = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara") + species_allowed = list(/datum/species/tajaran,/datum/species/tajaran/zhan_khazan,/datum/species/tajaran/m_sai,/datum/species/zombie/tajara) patchesface name = "Color Patches (Face)" icon_state = "patchesface" body_parts = list(BP_HEAD) - species_allowed = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara") + species_allowed = list(/datum/species/tajaran,/datum/species/tajaran/zhan_khazan,/datum/species/tajaran/m_sai,/datum/species/zombie/tajara) bands name = "Color Bands" icon_state = "bands" body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_CHEST,BP_GROIN) - species_allowed = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara", "Unathi") + species_allowed = list(/datum/species/tajaran,/datum/species/tajaran/zhan_khazan,/datum/species/tajaran/m_sai,/datum/species/zombie/tajara,/datum/species/unathi,/datum/species/zombie/unathi) bandsface name = "Color Bands (Face)" icon_state = "bandsface" body_parts = list(BP_HEAD) - species_allowed = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara", "Unathi") + species_allowed = list(/datum/species/tajaran,/datum/species/tajaran/zhan_khazan,/datum/species/tajaran/m_sai,/datum/species/zombie/tajara,/datum/species/unathi,/datum/species/zombie/unathi) tigerhead name = "Tiger Stripes (Head, Minor)" icon_state = "tigerhead" body_parts = list(BP_HEAD) - species_allowed = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara") + species_allowed = list(/datum/species/tajaran,/datum/species/tajaran/zhan_khazan,/datum/species/tajaran/m_sai,/datum/species/zombie/tajara) tigerface name = "Tiger Stripes (Head, Major)" icon_state = "tigerface" body_parts = list(BP_HEAD) - species_allowed = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara") + species_allowed = list(/datum/species/tajaran,/datum/species/tajaran/zhan_khazan,/datum/species/tajaran/m_sai,/datum/species/zombie/tajara) backstripe name = "Back Stripe" icon_state = "backstripe" body_parts = list(BP_CHEST) - species_allowed = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara", "Unathi") + species_allowed = list(/datum/species/tajaran,/datum/species/tajaran/zhan_khazan,/datum/species/tajaran/m_sai,/datum/species/zombie/tajara,/datum/species/unathi,/datum/species/zombie/unathi) taj_nose name = "Nose Color" icon_state = "taj_nose" body_parts = list(BP_HEAD) - species_allowed = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara") + species_allowed = list(/datum/species/tajaran,/datum/species/tajaran/zhan_khazan,/datum/species/tajaran/m_sai,/datum/species/zombie/tajara) taj_muzzle name = "Muzzle Color" icon_state = "taj_muzzle" body_parts = list(BP_HEAD) - species_allowed = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara") + species_allowed = list(/datum/species/tajaran,/datum/species/tajaran/zhan_khazan,/datum/species/tajaran/m_sai,/datum/species/zombie/tajara) taj_face name = "Cheeks Color" icon_state = "taj_face" body_parts = list(BP_HEAD) - species_allowed = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara") + species_allowed = list(/datum/species/tajaran,/datum/species/tajaran/zhan_khazan,/datum/species/tajaran/m_sai,/datum/species/zombie/tajara) taj_all name = "All Tajara Head" icon_state = "taj_all" body_parts = list(BP_HEAD) - species_allowed = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara") + species_allowed = list(/datum/species/tajaran,/datum/species/tajaran/zhan_khazan,/datum/species/tajaran/m_sai,/datum/species/zombie/tajara) una_face name = "Face Color" icon_state = "una_face" body_parts = list(BP_HEAD) - species_allowed = list("Unathi") + species_allowed = list(/datum/species/unathi,/datum/species/zombie/unathi) una_facelow name = "Face Color Low" icon_state = "una_facelow" body_parts = list(BP_HEAD) - species_allowed = list("Unathi") + species_allowed = list(/datum/species/unathi,/datum/species/zombie/unathi) una_scutes name = "Scutes" icon_state = "una_scutes" body_parts = list(BP_CHEST) - species_allowed = list("Unathi") + species_allowed = list(/datum/species/unathi,/datum/species/zombie/unathi) una_maswaist name = "Masculine Waist (For Females)" icon_state = "una_maswaist" body_parts = list(BP_CHEST) - species_allowed = list("Unathi") + species_allowed = list(/datum/species/unathi,/datum/species/zombie/unathi) una_clawshand name = "Claws (Hands)" icon_state = "una_claws" body_parts = list(BP_L_HAND,BP_R_HAND) - species_allowed = list("Unathi") + species_allowed = list(/datum/species/unathi,/datum/species/zombie/unathi) una_clawsfoot name = "Claws (Feet)" icon_state = "una_claws" body_parts = list(BP_L_FOOT,BP_R_FOOT) - species_allowed = list("Unathi") + species_allowed = list(/datum/species/unathi,/datum/species/zombie/unathi) spelunker name = "Spelunker" icon_state = "spelunker" body_parts = list(BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_CHEST,BP_GROIN,BP_HEAD) - species_allowed = list("Vaurca") + species_allowed = list(/datum/species/bug,/datum/species/bug/type_b) delver name = "Delver" icon_state = "delver" body_parts = list(BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_CHEST,BP_GROIN,BP_HEAD) - species_allowed = list("Vaurca") + species_allowed = list(/datum/species/bug,/datum/species/bug/type_b) skr_tears name = "Tear Stains" icon_state = "skr_tears" body_parts = list(BP_HEAD) - species_allowed = list("Skrell") + species_allowed = list(/datum/species/skrell,/datum/species/zombie/skrell) do_colouration = FALSE skr_arms name = "Skrell Arms" icon_state = "skrell_arms" body_parts = list(BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND) - species_allowed = list("Skrell") + species_allowed = list(/datum/species/skrell,/datum/species/zombie/skrell) diona_leaves name = "Diona Leaves" icon = 'icons/mob/human_races/markings_diona.dmi' icon_state = "diona_leaves" body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_CHEST,BP_GROIN,BP_HEAD) - species_allowed = list("Diona") + species_allowed = list(/datum/species/diona) diona_thorns_head name = "Diona Thorns (Head)" icon = 'icons/mob/human_races/markings_diona.dmi' icon_state = "diona_thorns" body_parts = list(BP_HEAD) - species_allowed = list("Diona") + species_allowed = list(/datum/species/diona) diona_thorns_torso name = "Diona Thorns (Torso)" icon = 'icons/mob/human_races/markings_diona.dmi' icon_state = "diona_thorns" body_parts = list(BP_CHEST) - species_allowed = list("Diona") + species_allowed = list(/datum/species/diona) diona_flowers_head name = "Diona Flowers (Head)" icon = 'icons/mob/human_races/markings_diona.dmi' icon_state = "diona_flowers" body_parts = list(BP_HEAD) - species_allowed = list("Diona") + species_allowed = list(/datum/species/diona) diona_flowers_torso name = "Diona Flowers (Torso)" icon = 'icons/mob/human_races/markings_diona.dmi' icon_state = "diona_flowers" body_parts = list(BP_CHEST) - species_allowed = list("Diona") + species_allowed = list(/datum/species/diona) diona_moss name = "Diona Moss" icon = 'icons/mob/human_races/markings_diona.dmi' icon_state = "diona_moss" body_parts = list(BP_CHEST) - species_allowed = list("Diona") + species_allowed = list(/datum/species/diona) diona_mushroom name = "Diona Mushroom" icon = 'icons/mob/human_races/markings_diona.dmi' icon_state = "diona_mushroom" body_parts = list(BP_HEAD) - species_allowed = list("Diona") + species_allowed = list(/datum/species/diona) diona_antennae name = "Diona Antennae" icon = 'icons/mob/human_races/markings_diona.dmi' icon_state = "diona_antennae" body_parts = list(BP_HEAD) - species_allowed = list("Diona") + species_allowed = list(/datum/species/diona) +//bishop bishop_lights - name = "Lights Colour" + name = "Bishop - Lights Colour" icon = 'icons/mob/human_races/markings_bishop.dmi' icon_state = "bishop_lights" icon_blend_mode = ICON_MULTIPLY is_painted = TRUE body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_ARM,BP_R_ARM,BP_CHEST,BP_HEAD) - species_allowed = list("Bishop Accessory Frame") + species_allowed = list(/datum/species/machine/bishop) bishop_mask - name = "Face Mask" + name = "Bishop - Face Mask" icon_state = "bishop_mask" do_colouration = FALSE body_parts = list(BP_HEAD) bishop_triangular_mask - name = "Triangular Face Mask" + name = "Bishop - Triangular Face Mask" icon_state = "bishop_triangular_mask" -/* - zenghu - icon = 'icons/mob/human_races/markings_zenghu.dmi' - icon_state = "outer" + bishop_panels + name = "Bishop - Full Body Panel Colors" + icon_state = "bishop_panels" + body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_HAND,BP_R_HAND,BP_L_ARM,BP_R_ARM,BP_CHEST,BP_HEAD) + + bishop_head + name = "Bishop - Head Panel Colors" + body_parts = list(BP_HEAD) + + bishop_legs + name = "Bishop - Leg Panel Colors" + body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG) + + bishop_arms + name = "Bishop - Arm Panel Colors" + body_parts = list(BP_L_HAND,BP_R_HAND,BP_L_ARM,BP_R_ARM) + +//hephaestus g1 + g1_panels + name = "G1 - Full Panel Colors" + icon = 'icons/mob/human_races/markings_industrial.dmi' + icon_state = "g1_primary" icon_blend_mode = ICON_MULTIPLY - name = "Outer Finish" - body_parts = list(BP_HEAD) - species_allowed = list("Zeng-Hu Mobility Frame") is_painted = TRUE + body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_HAND,BP_R_HAND,BP_L_ARM,BP_R_ARM,BP_GROIN,BP_CHEST,BP_HEAD) + species_allowed = list(/datum/species/machine/industrial) - inner - name = "Inner Finish" - icon_state = "inner" - body_parts = list(BP_L_FOOT, BP_R_FOOT, BP_L_HAND, BP_R_HAND, BP_L_LEG, BP_R_LEG) + g1_head + name = "G1 - Head Panel Colors" + body_parts = list(BP_HEAD) - l_foot - name = "Inner Finish (Left Leg)" - body_parts = list(BP_L_FOOT, BP_L_LEG) + g1_legs + name = "G1 - Leg Panel Colors" + body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG) - r_foot - name = "Inner Finish (Right Leg)" - body_parts = list(BP_R_FOOT, BP_R_LEG) + g1_arms + name = "G1 - Arm Panel Colors" + body_parts = list(BP_L_HAND,BP_R_HAND,BP_L_ARM,BP_R_ARM) - l_hand - name = "Inner Finish (Left Arm)" - body_parts = list(BP_L_HAND, BP_L_ARM) + g1_lights + name = "G1 - Lights Color" + icon_state = "g1_lights" + body_parts = list(BP_CHEST,BP_HEAD) - r_hand - name = "Inner Finish (Right Arm)" - body_parts = list(BP_R_HAND, BP_R_ARM) +//hephaestus g2 + g2_panels + name = "G2 - Full Panel Colors" + icon = 'icons/mob/human_races/markings_hephaestus.dmi' + icon_state = "g2_primary" + icon_blend_mode = ICON_MULTIPLY + is_painted = TRUE + body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_HAND,BP_R_HAND,BP_L_ARM,BP_R_ARM,BP_GROIN,BP_CHEST,BP_HEAD) + species_allowed = list(/datum/species/machine/industrial/hephaestus) - crest_leser - name = "Head Coloration (Lesser)" - icon_state = "lesser" + g2_head + name = "G2 - Head Panel Colors" + body_parts = list(BP_HEAD) - crest_greater - name = "Head Coloration (Greater)" - icon_state = "greater" -*/ + g2_legs + name = "G2 - Leg Panel Colors" + body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG) + + g2_arms + name = "G2 - Arm Panel Colors" + body_parts = list(BP_L_HAND,BP_R_HAND,BP_L_ARM,BP_R_ARM) + + g2_lights + name = "G2 - Lights Color" + icon_state = "g2_lights" + body_parts = list(BP_L_ARM,BP_R_ARM,BP_L_LEG,BP_R_LEG,BP_GROIN,BP_CHEST,BP_HEAD) + +//zeng-hu mobility frame + zeng_panels + name = "Zeng-Hu - Full Panel Colors" + icon = 'icons/mob/human_races/markings_zenghu.dmi' + icon_state = "zeng_primary" + icon_blend_mode = ICON_MULTIPLY + is_painted = TRUE + body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_HAND,BP_R_HAND,BP_L_ARM,BP_R_ARM,BP_GROIN,BP_CHEST,BP_HEAD) + species_allowed = list(/datum/species/machine/zenghu) + + zeng_head + name = "Zeng-Hu - Head Panel Colors" + body_parts = list(BP_HEAD) + + zeng_legs + name = "Zeng-Hu - Leg Panel Colors" + body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG) + + zeng_arms + name = "Zeng-Hu - Arm Panel Colors" + body_parts = list(BP_L_HAND,BP_R_HAND,BP_L_ARM,BP_R_ARM) + + zeng_lights + name = "Zeng-Hu - Lights Color" + icon_state = "zeng_lights" + body_parts = list(BP_L_LEG,BP_R_LEG,BP_L_HAND,BP_R_HAND,BP_L_ARM,BP_R_ARM,BP_CHEST,BP_HEAD) + +//xion + xion_panels + name = "Xion - Full Panel Colors" + icon = 'icons/mob/human_races/markings_xion.dmi' + icon_state = "xion_primary" + icon_blend_mode = ICON_MULTIPLY + is_painted = TRUE + body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_HAND,BP_R_HAND,BP_L_ARM,BP_R_ARM,BP_GROIN,BP_CHEST,BP_HEAD) + species_allowed = list(/datum/species/machine/industrial/xion) + + xion_head + name = "Xion - Head Panel Colors" + body_parts = list(BP_HEAD) + + xion_legs + name = "Xion - Leg Panel Colors" + body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG) + + xion_arms + name = "Xion - Arm Panel Colors" + body_parts = list(BP_L_HAND,BP_R_HAND,BP_L_ARM,BP_R_ARM) + + xion_lights + name = "Xion - Lights Color" + icon_state = "xion_lights" + body_parts = list(BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_CHEST,BP_HEAD) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/appearance.dm b/code/modules/mob/living/carbon/human/appearance.dm index 66bcd8bfa05..803f0605b21 100644 --- a/code/modules/mob/living/carbon/human/appearance.dm +++ b/code/modules/mob/living/carbon/human/appearance.dm @@ -168,7 +168,7 @@ continue if(check_gender && gender == FEMALE && S.gender == MALE) continue - if(!(species.get_bodytype() in S.species_allowed)) + if(!(species.type in S.species_allowed)) continue valid_hairstyles += hairstyle @@ -185,7 +185,7 @@ continue if(gender == FEMALE && S.gender == MALE) continue - if(!(species.get_bodytype() in S.species_allowed)) + if(!(species.type in S.species_allowed)) continue valid_facial_hairstyles += facialhairstyle diff --git a/code/modules/mob/living/carbon/human/human_powers.dm b/code/modules/mob/living/carbon/human/human_powers.dm index bb044418a8a..b3d887a3a52 100644 --- a/code/modules/mob/living/carbon/human/human_powers.dm +++ b/code/modules/mob/living/carbon/human/human_powers.dm @@ -20,7 +20,7 @@ var/list/datum/sprite_accessory/hair/valid_hairstyles = list() for(var/hair_string in hair_styles_list) var/datum/sprite_accessory/hair/test = hair_styles_list[hair_string] - if(test.length >= 2 && (species.bodytype in test.species_allowed)) + if(test.length >= 2 && (species.type in test.species_allowed)) valid_hairstyles.Add(hair_string) selected_string = input("Select a new hairstyle", "Your hairstyle", hair_style) as null|anything in valid_hairstyles if(selected_string && h_style != selected_string) @@ -41,7 +41,7 @@ mob/living/carbon/human/proc/change_monitor() var/list/datum/sprite_accessory/facial_hair/valid_screenstyles = list() for(var/screen_string in facial_hair_styles_list) var/datum/sprite_accessory/facial_hair/test = facial_hair_styles_list[screen_string] - if(species.bodytype in test.species_allowed) + if(species.type in test.species_allowed) valid_screenstyles.Add(screen_string) selected_string = input("Select a new screen", "Your monitor display", screen_style) as null|anything in valid_screenstyles if(selected_string && f_style != selected_string) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 7e0dc709234..7c37c37f895 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -354,7 +354,7 @@ There are several things that need to be remembered: // 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)) + if(facial_hair_style && facial_hair_style.species_allowed && (species.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) if(facial_hair_style.do_colouration) facial_s.Blend(rgb(r_facial, g_facial, b_facial), facial_hair_style.icon_blend_mode) @@ -364,7 +364,7 @@ There are several things that need to be remembered: // Hair. 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)) + if(hair_style && (species.type in hair_style.species_allowed)) 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), hair_style.icon_blend_mode) diff --git a/html/changelogs/colorable_ipc_panels.yml b/html/changelogs/colorable_ipc_panels.yml new file mode 100644 index 00000000000..fc8945f2cdb --- /dev/null +++ b/html/changelogs/colorable_ipc_panels.yml @@ -0,0 +1,8 @@ +author: Burrito Justice and Nienna + +delete-after: True + +changes: + - rscadd: "Added body markings for the G1, G2, Bishop, Zeng-Hu, and Xion IPC frames to be colored and customized." + - tweak: "The G2 sprite has been updated to give it a fresher look, courtesy of Nienna." + - tweak: "Changed how species are checked in the code. It now requires the full type path of the species datum, instead of the bodytype." \ No newline at end of file diff --git a/icons/mob/human_races/ipc/ind_hephaestus_preview.dmi b/icons/mob/human_races/ipc/ind_hephaestus_preview.dmi index 43bb0753c64..cb8ee803d9f 100644 Binary files a/icons/mob/human_races/ipc/ind_hephaestus_preview.dmi and b/icons/mob/human_races/ipc/ind_hephaestus_preview.dmi differ diff --git a/icons/mob/human_races/ipc/r_ind_hephaestus.dmi b/icons/mob/human_races/ipc/r_ind_hephaestus.dmi index eb095f62fff..4c7e77672c0 100644 Binary files a/icons/mob/human_races/ipc/r_ind_hephaestus.dmi and b/icons/mob/human_races/ipc/r_ind_hephaestus.dmi differ diff --git a/icons/mob/human_races/ipc/r_ind_hephaestus_old.dmi b/icons/mob/human_races/ipc/r_ind_hephaestus_old.dmi new file mode 100644 index 00000000000..eb095f62fff Binary files /dev/null and b/icons/mob/human_races/ipc/r_ind_hephaestus_old.dmi differ diff --git a/icons/mob/human_races/markings_bishop.dmi b/icons/mob/human_races/markings_bishop.dmi index 0be93603624..c8862dc0ba5 100644 Binary files a/icons/mob/human_races/markings_bishop.dmi and b/icons/mob/human_races/markings_bishop.dmi differ diff --git a/icons/mob/human_races/markings_hephaestus.dmi b/icons/mob/human_races/markings_hephaestus.dmi new file mode 100644 index 00000000000..4f51de06a15 Binary files /dev/null and b/icons/mob/human_races/markings_hephaestus.dmi differ diff --git a/icons/mob/human_races/markings_industrial.dmi b/icons/mob/human_races/markings_industrial.dmi new file mode 100644 index 00000000000..11ffc8db0c1 Binary files /dev/null and b/icons/mob/human_races/markings_industrial.dmi differ diff --git a/icons/mob/human_races/markings_xion.dmi b/icons/mob/human_races/markings_xion.dmi new file mode 100644 index 00000000000..01208bc80a6 Binary files /dev/null and b/icons/mob/human_races/markings_xion.dmi differ diff --git a/icons/mob/human_races/markings_zenghu.dmi b/icons/mob/human_races/markings_zenghu.dmi index 7d90ce44603..e509a29af64 100644 Binary files a/icons/mob/human_races/markings_zenghu.dmi and b/icons/mob/human_races/markings_zenghu.dmi differ