From e234e58c2cea0107a817d53c420a4111399fec99 Mon Sep 17 00:00:00 2001 From: MistakeNot4892 Date: Wed, 9 Nov 2022 21:37:18 +1100 Subject: [PATCH] Getting vox tail icons and markings to work. --- .../carbon/human/species/outsider/vox.dm | 1 + .../living/carbon/human/species/species.dm | 4 +++- .../mob/living/carbon/human/update_icons.dm | 8 ++++---- .../mob/new_player/preferences_setup.dm | 4 ++++ .../mob/new_player/sprite_accessories.dm | 2 +- code/modules/organs/organ_external.dm | 1 + code/modules/organs/organ_icon.dm | 13 ++++++------- icons/effects/species.dmi | Bin 27198 -> 27202 bytes icons/effects/species_tails.dmi | Bin 9331 -> 9327 bytes icons/mob/human_races/markings_vox.dmi | Bin 3423 -> 3563 bytes 10 files changed, 20 insertions(+), 13 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species/outsider/vox.dm b/code/modules/mob/living/carbon/human/species/outsider/vox.dm index 5b388fcc59..aaa5cb649a 100644 --- a/code/modules/mob/living/carbon/human/species/outsider/vox.dm +++ b/code/modules/mob/living/carbon/human/species/outsider/vox.dm @@ -60,6 +60,7 @@ flesh_color = "#808D11" tail = "voxtail" tail_hair = "quills" + tail_blend = ICON_MULTIPLY reagent_tag = IS_VOX diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index 4d20cf896a..75fa07814d 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -13,7 +13,7 @@ // Icon/appearance vars. var/icobase = 'icons/mob/human_races/r_human.dmi' // Normal icon set. var/deform = 'icons/mob/human_races/r_def_human.dmi' // Mutated icon set. - var/limb_blend = ICON_ADD // Specify a blending mode for limbs and tail. + var/limb_blend = ICON_ADD // Specify a blending mode for limb colourisation. var/speech_bubble_appearance = "normal" // Part of icon_state to use for speech bubbles when talking. See talk.dmi for available icons. var/fire_icon_state = "humanoid" // The icon_state used inside OnFire.dmi for when on fire. @@ -32,6 +32,8 @@ var/tail // Name of tail state in species effects icon file. var/tail_animation // If set, the icon to obtain tail animation states from. var/tail_hair + var/tail_blend = ICON_ADD // Blending mode for tail colourisation. + var/tail_hair_blend = ICON_ADD // Blending mode for tail hair colourisation. var/icon_scale_x = 1 // Makes the icon wider/thinner. var/icon_scale_y = 1 // Makes the icon taller/shorter. diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 526cf18f7a..1506b84209 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -915,12 +915,12 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon() if(!species_tail_anim && species.icobase_tail) species_tail_anim = species.icobase //Allow override of file for non-animated tails if(!species_tail_anim) species_tail_anim = 'icons/effects/species.dmi' tail_icon = new/icon(species_tail_anim) - tail_icon.Blend(rgb(r_skin, g_skin, b_skin), species?.limb_blend || ICON_ADD) + tail_icon.Blend(rgb(r_skin, g_skin, b_skin), species?.tail_blend || ICON_ADD) // The following will not work with animated tails. var/use_species_tail = species.get_tail_hair(src) if(use_species_tail) var/icon/hair_icon = icon('icons/effects/species.dmi', "[species.get_tail(src)]_[use_species_tail]") - hair_icon.Blend(rgb(r_hair, g_hair, b_hair), species?.limb_blend || ICON_ADD) + hair_icon.Blend(rgb(r_hair, g_hair, b_hair), species?.tail_hair_blend || ICON_ADD) tail_icon.Blend(hair_icon, ICON_OVERLAY) tail_icon_cache[icon_key] = tail_icon @@ -1075,7 +1075,7 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon() //If you are FBP with wing style and didn't set a custom one if(synthetic && synthetic.includes_wing && !wing_style) var/icon/wing_s = new/icon("icon" = synthetic.icon, "icon_state" = "wing") //I dunno. If synths have some custom wing? - wing_s.Blend(rgb(src.r_skin, src.g_skin, src.b_skin), species?.limb_blend || ICON_ADD) + wing_s.Blend(rgb(src.r_skin, src.g_skin, src.b_skin), species?.limb_blend || ICON_ADD) // Are wings even used on Polaris? This might need an additional blend mode var. return image(wing_s) //If you have custom wings selected @@ -1125,7 +1125,7 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon() var/datum/robolimb/model = isSynthetic() if(istype(model) && model.includes_tail && !tail_style) var/icon/tail_s = new/icon("icon" = synthetic.icon, "icon_state" = "tail") - tail_s.Blend(rgb(src.r_skin, src.g_skin, src.b_skin), species?.limb_blend || ICON_ADD) + tail_s.Blend(rgb(src.r_skin, src.g_skin, src.b_skin), species?.tail_blend || ICON_ADD) return image(tail_s) //If you have a custom tail selected diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index 3f8bf90b9d..0466392fe3 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -22,6 +22,10 @@ r_skin = rand (0,255) g_skin = rand (0,255) b_skin = rand (0,255) + + for(var/marking in body_markings) + body_markings[marking] = rgb(rand(0,255), rand(0,255), rand(0,255)) + if(current_species.appearance_flags & HAS_UNDERWEAR) all_underwear.Cut() for(var/datum/category_group/underwear/WRC in global_underwear.categories) diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm index d17afbf86c..e46d6cc548 100644 --- a/code/modules/mob/new_player/sprite_accessories.dm +++ b/code/modules/mob/new_player/sprite_accessories.dm @@ -2112,7 +2112,7 @@ shaved /datum/sprite_accessory/marking/vox/scutes name = "Vox Scutes" icon_state = "scutes" - body_parts = list(BP_L_HAND, BP_R_HAND, BP_L_LEG, BP_R_LEG, BP_L_FOOT, BP_R_FOOT) + body_parts = list(BP_L_ARM, BP_L_HAND, BP_R_ARM, BP_R_HAND, BP_L_LEG, BP_R_LEG, BP_L_FOOT, BP_R_FOOT) /datum/sprite_accessory/marking/vox/arm_markings name = "Vox Arm Markings (Left)" diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index dd834af694..b5cfcc180a 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -42,6 +42,7 @@ var/list/s_col // skin colour var/list/h_col // hair colour var/body_hair // Icon blend for body hair if any. + var/mob/living/applied_pressure var/list/markings = list() // Markings (body_markings) to apply to the icon diff --git a/code/modules/organs/organ_icon.dm b/code/modules/organs/organ_icon.dm index 82bf86df7c..9c4529e111 100644 --- a/code/modules/organs/organ_icon.dm +++ b/code/modules/organs/organ_icon.dm @@ -119,7 +119,7 @@ var/global/list/limb_icon_cache = list() for(var/M in markings) var/datum/sprite_accessory/marking/mark_style = markings[M]["datum"] var/icon/mark_s = new/icon("icon" = mark_style.icon, "icon_state" = "[mark_style.icon_state]-[organ_tag]") - mark_s.Blend(markings[M]["color"], ICON_ADD) + mark_s.Blend(markings[M]["color"], mark_style.color_blend_mode) add_overlay(mark_s) //So when it's not on your body, it has icons mob_icon.Blend(mark_s, ICON_OVERLAY) //So when it's on your body, it has icons icon_cache_key += "[M][markings[M]["color"]]" @@ -139,7 +139,7 @@ var/global/list/limb_icon_cache = list() for(var/M in markings) var/datum/sprite_accessory/marking/mark_style = markings[M]["datum"] var/icon/mark_s = new/icon("icon" = mark_style.icon, "icon_state" = "[mark_style.icon_state]-[organ_tag]") - mark_s.Blend(markings[M]["color"], ICON_ADD) + mark_s.Blend(markings[M]["color"], mark_style.color_blend_mode) add_overlay(mark_s) //So when it's not on your body, it has icons mob_icon.Blend(mark_s, ICON_OVERLAY) //So when it's on your body, it has icons icon_cache_key += "[M][markings[M]["color"]]" @@ -168,11 +168,10 @@ var/global/list/limb_icon_cache = list() else applying.Blend(rgb(-s_tone, -s_tone, -s_tone), ICON_SUBTRACT) icon_cache_key += "_tone_[s_tone]" - else - if(s_col && s_col.len >= 3) - var/blend = species?.limb_blend || ICON_ADD - applying.Blend(rgb(s_col[1], s_col[2], s_col[3]), blend) - icon_cache_key += "_color_[s_col[1]]_[s_col[2]]_[s_col[3]]_[blend]" + else if(s_col && s_col.len >= 3) + var/blend = species?.limb_blend || ICON_ADD + applying.Blend(rgb(s_col[1], s_col[2], s_col[3]), blend) + icon_cache_key += "_color_[s_col[1]]_[s_col[2]]_[s_col[3]]_[blend]" // Translucency. if(nonsolid) applying += rgb(,,,180) // SO INTUITIVE TY BYOND diff --git a/icons/effects/species.dmi b/icons/effects/species.dmi index 117cfe3a16f4fc2cd0d6dba4e468026856aa39dc..7c16cc212bd751a50f4ee489870f97f3c821359c 100644 GIT binary patch delta 5148 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 b8C1r!8kvF5o^4bJc-^~Ws$YG}>E-_bPn>#` delta 5145 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 Qn}3>hwe&U1)NLdF7fbz-*Z=?k literal 9331 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 P{uHaLXe*Z}T7>)$l&q|X diff --git a/icons/mob/human_races/markings_vox.dmi b/icons/mob/human_races/markings_vox.dmi index db38155d980cc62f4bf5dce7c3d18c5107eb598b..1a7c87501b517b6e296a93ed71d05b4d430d7764 100644 GIT binary patch literal 3563 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 literal 3423 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 LT!doJc*On-UB~we