mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2025-12-27 18:42:19 +00:00
Merge pull request #8822 from MistakeNot4892/voxicon
Sideports multiplicative colour vox icon and markings from Neb.
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -40,9 +40,9 @@
|
||||
var/gendered_icon = 0 // Whether or not the icon state appends a gender.
|
||||
var/s_tone // Skin tone.
|
||||
var/list/s_col // skin colour
|
||||
var/s_col_blend = ICON_ADD // How the skin colour is applied.
|
||||
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
|
||||
|
||||
|
||||
@@ -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,10 +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)
|
||||
applying.Blend(rgb(s_col[1], s_col[2], s_col[3]), s_col_blend)
|
||||
icon_cache_key += "_color_[s_col[1]]_[s_col[2]]_[s_col[3]]_[s_col_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
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
/obj/item/organ/external/head/vox
|
||||
eye_icon = "vox_eyes_s"
|
||||
eye_icon_location = 'icons/mob/eyes_vox.dmi'
|
||||
|
||||
//vox got different organs within. This will also help with regular surgeons knowing the organs within an alien as alien as vox.
|
||||
/obj/item/organ/internal/brain/vox
|
||||
|
||||
Reference in New Issue
Block a user