diff --git a/code/modules/surgery/bodyparts/_bodyparts.dm b/code/modules/surgery/bodyparts/_bodyparts.dm index a8d3d1702c8..c4e6925c58a 100644 --- a/code/modules/surgery/bodyparts/_bodyparts.dm +++ b/code/modules/surgery/bodyparts/_bodyparts.dm @@ -782,6 +782,7 @@ var/datum/species/S = H.dna.species if(organic_render) //SKYRAT EDIT ADDITION - CUSTOMIZATION species_id = S.limbs_id + alpha = S.specific_alpha rendered_bp_icon = S.limbs_icon //SKYRAT EDIT ADDITION - CUSTOMIZATION species_flags_list = H.dna.species.species_traits diff --git a/modular_skyrat/modules/customization/icons/mob/species/slime_parts_greyscale.dmi b/modular_skyrat/modules/customization/icons/mob/species/slime_parts_greyscale.dmi new file mode 100644 index 00000000000..d4b8d856ecd Binary files /dev/null and b/modular_skyrat/modules/customization/icons/mob/species/slime_parts_greyscale.dmi differ diff --git a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species.dm b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species.dm index 1eb07035f27..ccd75503bf1 100644 --- a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species.dm +++ b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species.dm @@ -26,6 +26,10 @@ GLOBAL_LIST_EMPTY(customizable_races) var/reagent_flags = PROCESS_ORGANIC ///Whether a species can use augmentations in preferences var/can_augment = TRUE + ///Override for the alpha of bodyparts and mutant parts. Will not take effect if not defined. + var/specific_alpha + ///Override for alpha value of markings, should be much lower than the above value if the above value is defined. + var/markings_alpha ///If a species can always be picked in prefs for the purposes of customizing it for ghost roles or events var/always_customizable = FALSE ///Flavor text of the species displayed on character creation screeen @@ -143,11 +147,12 @@ GLOBAL_LIST_EMPTY(customizable_races) accessory_overlay.color = "#"+mutant_bodyparts[key][MUTANT_INDEX_COLOR_LIST][1] if(USE_MATRIXED_COLORS) var/list/color_list = mutant_bodyparts[key][MUTANT_INDEX_COLOR_LIST] + var/alpha_value = specific_alpha ? specific_alpha : 255 //this is here and not with the alpha setting code below as setting the alpha on a matrix color mutable appearance breaks it (at least in this case) var/list/finished_list = list() finished_list += ReadRGB("[color_list[1]]0") finished_list += ReadRGB("[color_list[2]]0") finished_list += ReadRGB("[color_list[3]]0") - finished_list += list(0,0,0,255) + finished_list += list(0,0,0,alpha_value) for(var/index in 1 to finished_list.len) finished_list[index] /= 255 accessory_overlay.color = finished_list @@ -242,6 +247,11 @@ GLOBAL_LIST_EMPTY(customizable_races) extra2_accessory_overlay.color = "#[H.hair_color]" standing += extra2_accessory_overlay + if (specific_alpha && !override_color) + for (var/ov in standing) + var/image/overlay = ov + if (!istype(overlay.color,/list)) //check for a list because setting the alpha of the matrix colors breaks the color (the matrix alpha is set above inside the matrix) + overlay.alpha = specific_alpha H.overlays_standing[layer] += standing standing = list() diff --git a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/roundstartslime.dm b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/roundstartslime.dm index d3048bc8fff..bab26d02d42 100644 --- a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/roundstartslime.dm +++ b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/roundstartslime.dm @@ -1,6 +1,6 @@ /datum/species/jelly species_traits = list(MUTCOLORS,EYECOLOR,NOBLOOD,HAIR,FACEHAIR) - default_mutant_bodyparts = list("tail" = "None", "snout" = "None", "ears" = "None", "taur" = "None", "wings" = "None") + default_mutant_bodyparts = list("tail" = "None", "snout" = "None", "ears" = "None", "taur" = "None", "wings" = "None", "legs" = "Normal Legs") mutant_bodyparts = list() hair_color = "mutcolor" hair_alpha = 160 //a notch brighter so it blends better. @@ -9,11 +9,14 @@ name = "Xenobiological Slime Hybrid" id = "slimeperson" limbs_id = "slime" + limbs_icon = 'modular_skyrat/modules/customization/icons/mob/species/slime_parts_greyscale.dmi' default_color = "00FFFF" say_mod = "says" coldmod = 3 heatmod = 1 burnmod = 1 + specific_alpha = 155 + markings_alpha = 130 //This is set lower than the other so that the alpha values don't stack on top of each other so much /datum/action/innate/slime_change name = "Alter Form" diff --git a/modular_skyrat/modules/customization/modules/surgery/bodyparts/_bodyparts.dm b/modular_skyrat/modules/customization/modules/surgery/bodyparts/_bodyparts.dm index 0958f00e0dd..3b1273c8de2 100644 --- a/modular_skyrat/modules/customization/modules/surgery/bodyparts/_bodyparts.dm +++ b/modular_skyrat/modules/customization/modules/surgery/bodyparts/_bodyparts.dm @@ -71,42 +71,51 @@ if(aux_zone) aux.color = "#[draw_color]" + if (!owner || is_pseudopart || !ishuman(owner)) + return + + var/mob/living/carbon/human/H = owner + //set specific alpha before setting the markings alpha + if (alpha != 255) + for (var/ov in .) + var/image/overlay = ov + overlay.alpha = alpha //Markings! - if(!is_pseudopart && owner) - var/mob/living/carbon/human/H = owner - var/override_color - if(HAS_TRAIT(H, TRAIT_HUSK)) - override_color = "888" - if(istype(H)) - for(var/key in H.dna.species.body_markings[body_zone]) - var/datum/body_marking/BM = GLOB.body_markings[key] + var/override_color + if(HAS_TRAIT(H, TRAIT_HUSK)) + override_color = "888" - var/render_limb_string = body_zone - switch(body_zone) - if(BODY_ZONE_R_LEG, BODY_ZONE_L_LEG) - if(use_digitigrade) - render_limb_string = "digitigrade_[use_digitigrade]_[render_limb_string]" - if(BODY_ZONE_CHEST) - if(BM.gendered) - var/gendaar = (H.body_type == FEMALE) ? "f" : "m" - render_limb_string = "[render_limb_string]_[gendaar]" + for(var/key in H.dna.species.body_markings[body_zone]) + var/datum/body_marking/BM = GLOB.body_markings[key] - var/mutable_appearance/accessory_overlay = mutable_appearance(BM.icon, "[BM.icon_state]_[render_limb_string]", -BODYPARTS_LAYER) - if(override_color) - accessory_overlay.color = "#[override_color]" - else - accessory_overlay.color = "#[H.dna.species.body_markings[body_zone][key]]" - . += accessory_overlay + var/render_limb_string = body_zone + switch(body_zone) + if(BODY_ZONE_R_LEG, BODY_ZONE_L_LEG) + if(use_digitigrade) + render_limb_string = "digitigrade_[use_digitigrade]_[render_limb_string]" + if(BODY_ZONE_CHEST) + if(BM.gendered) + var/gendaar = (H.body_type == FEMALE) ? "f" : "m" + render_limb_string = "[render_limb_string]_[gendaar]" - if(aux_zone) - for(var/key in H.dna.species.body_markings[aux_zone]) - var/datum/body_marking/BM = GLOB.body_markings[key] + var/mutable_appearance/accessory_overlay = mutable_appearance(BM.icon, "[BM.icon_state]_[render_limb_string]", -BODYPARTS_LAYER) + if(override_color) + accessory_overlay.color = "#[override_color]" + else + accessory_overlay.color = "#[H.dna.species.body_markings[body_zone][key]]" + accessory_overlay.alpha = H.dna.species.markings_alpha + . += accessory_overlay - var/render_limb_string = aux_zone + if(aux_zone) + for(var/key in H.dna.species.body_markings[aux_zone]) + var/datum/body_marking/BM = GLOB.body_markings[key] - var/mutable_appearance/accessory_overlay = mutable_appearance(BM.icon, "[BM.icon_state]_[render_limb_string]", -aux_layer) - if(override_color) - accessory_overlay.color = "#[override_color]" - else - accessory_overlay.color = "#[H.dna.species.body_markings[aux_zone][key]]" - . += accessory_overlay + var/render_limb_string = aux_zone + + var/mutable_appearance/accessory_overlay = mutable_appearance(BM.icon, "[BM.icon_state]_[render_limb_string]", -aux_layer) + if(override_color) + accessory_overlay.color = "#[override_color]" + else + accessory_overlay.color = "#[H.dna.species.body_markings[aux_zone][key]]" + accessory_overlay.alpha = H.dna.species.markings_alpha + . += accessory_overlay