Merge pull request #8822 from MistakeNot4892/voxicon

Sideports multiplicative colour vox icon and markings from Neb.
This commit is contained in:
Spookerton
2022-11-13 12:29:35 +00:00
committed by GitHub
17 changed files with 63 additions and 21 deletions
@@ -60,10 +60,14 @@
flags = NO_SCAN | NO_DEFIB
spawn_flags = SPECIES_CAN_JOIN | SPECIES_IS_WHITELISTED
appearance_flags = HAS_SKIN_TONE | HAS_EYE_COLOR | HAS_HAIR_COLOR
appearance_flags = HAS_SKIN_COLOR | HAS_EYE_COLOR | HAS_HAIR_COLOR
limb_blend = ICON_MULTIPLY
blood_color = "#9066BD"
flesh_color = "#808D11"
tail = "voxtail"
tail_hair = "quills"
tail_blend = ICON_MULTIPLY
reagent_tag = IS_VOX
@@ -13,6 +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 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.
@@ -31,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.
@@ -260,10 +263,6 @@
/datum/mob_descriptor/build
)
//This is used in character setup preview generation (prefences_setup.dm) and human mob
//rendering (update_icons.dm)
var/color_mult = 0
//This is for overriding tail rendering with a specific icon in icobase, for static
//tails only, since tails would wag when dead if you used this
var/icobase_tail = 0
@@ -250,10 +250,7 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
icon_key += "[rgb(part.s_col[1],part.s_col[2],part.s_col[3])]"
if(part.body_hair && part.h_col && part.h_col.len >= 3)
icon_key += "[rgb(part.h_col[1],part.h_col[2],part.h_col[3])]"
if(species.color_mult)
icon_key += "[ICON_MULTIPLY]"
else
icon_key += "[ICON_ADD]"
icon_key += "[species?.limb_blend || ICON_ADD]"
else
icon_key += "#000000"
@@ -891,7 +888,7 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
remove_layer(TAIL_NORTH_LAYER)
remove_layer(TAIL_SOUTH_LAYER)
var tail_layer = GET_TAIL_LAYER
var/tail_layer = GET_TAIL_LAYER
var/image/tail_image = get_tail_image()
if(tail_image)
@@ -918,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.color_mult ? ICON_MULTIPLY : 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.color_mult ? ICON_MULTIPLY : ICON_ADD) //Check for species color_mult
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
@@ -1078,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.color_mult ? ICON_MULTIPLY : 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
@@ -1128,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.color_mult ? ICON_MULTIPLY : 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
@@ -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)
@@ -2067,6 +2067,8 @@ shaved
// Vox things
/datum/sprite_accessory/hair/vox
name = "Long Vox braid"
icon = 'icons/mob/hair_vox.dmi'
icon_add = 'icons/mob/hair_vox_add.dmi'
icon_state = "vox_longbraid"
species_allowed = list(SPECIES_VOX)
@@ -2090,6 +2092,41 @@ shaved
name = "Quill Mohawk"
icon_state = "vox_mohawk"
/datum/sprite_accessory/marking/vox
name = "Vox Neck Markings"
icon_state = "neck_markings"
body_parts = list(BP_HEAD)
species_allowed = list(SPECIES_VOX)
icon = 'icons/mob/human_races/markings_vox.dmi'
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/marking/vox/claws
name = "Vox Claws"
icon_state = "claws"
body_parts = list(BP_L_HAND, BP_R_HAND, BP_L_FOOT, BP_R_FOOT, BP_TORSO)
/datum/sprite_accessory/marking/vox/beak
name = "Vox Beak"
icon_state = "beak"
/datum/sprite_accessory/marking/vox/scutes
name = "Vox Scutes"
icon_state = "scutes"
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)"
icon_state = "arm_markings"
body_parts = list(BP_L_ARM)
/datum/sprite_accessory/marking/vox/arm_markings/right
name = "Vox Arm Markings (Right)"
body_parts = list(BP_R_ARM)
/datum/sprite_accessory/marking/vox/crest
name = "Vox Crest Colouration"
icon_state = "crest"
//Tajaran Facial Hair
/datum/sprite_accessory/facial_hair/taj