mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-29 15:08:34 +01:00
Ports Cool Stuff from Bastion of Hestia/Vesta
Fully implements DNA-integrated secondary & tertiary colouration for ears, wings and tails. Adds some new ears, wings, tails and markings from Hestia. Everything working in mint condition EVERYTHING
This commit is contained in:
@@ -17,6 +17,9 @@
|
||||
var/r_ears2 = 30
|
||||
var/g_ears2 = 30
|
||||
var/b_ears2 = 30
|
||||
var/r_ears3 = 30 //Trust me, we could always use more colour. No japes.
|
||||
var/g_ears3 = 30
|
||||
var/b_ears3 = 30
|
||||
var/datum/sprite_accessory/tail/tail_style = null
|
||||
var/r_tail = 30
|
||||
var/g_tail = 30
|
||||
@@ -24,6 +27,9 @@
|
||||
var/r_tail2 = 30
|
||||
var/g_tail2 = 30
|
||||
var/b_tail2 = 30
|
||||
var/r_tail3 = 30
|
||||
var/g_tail3 = 30
|
||||
var/b_tail3 = 30
|
||||
var/datum/sprite_accessory/wing/wing_style = null
|
||||
var/r_wing = 30
|
||||
var/g_wing = 30
|
||||
@@ -31,6 +37,9 @@
|
||||
var/r_wing2 = 30
|
||||
var/g_wing2 = 30
|
||||
var/b_wing2 = 30
|
||||
var/r_wing3 = 30
|
||||
var/g_wing3 = 30
|
||||
var/b_wing3 = 30
|
||||
|
||||
// Custom Species Name
|
||||
var/custom_species
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
|
||||
var/color_blend_mode = ICON_ADD // Only appliciable if do_coloration = 1
|
||||
var/extra_overlay // Icon state of an additional overlay to blend in.
|
||||
var/extra_overlay2
|
||||
var/desc = "You should not see this..."
|
||||
|
||||
// Species-unique ears
|
||||
@@ -608,6 +609,30 @@
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "dragon-horns"
|
||||
|
||||
/datum/sprite_accessory/ears/synthhorns_plain
|
||||
name = "Synth horns, plain"
|
||||
desc = ""
|
||||
icon_state = "synthhorns_plain"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "synthhorns_plain_light"
|
||||
|
||||
/datum/sprite_accessory/ears/synthhorns_thick
|
||||
name = "Synth horns, thick"
|
||||
desc = ""
|
||||
icon_state = "synthhorns_thick"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "synthhorns_thick_light"
|
||||
|
||||
/datum/sprite_accessory/ears/synthhorns_curly
|
||||
name = "Synth horns, curly"
|
||||
desc = ""
|
||||
icon_state = "synthhorns_curled"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/*
|
||||
////////////////////////////
|
||||
/ =--------------------= /
|
||||
@@ -622,11 +647,13 @@
|
||||
|
||||
var/color_blend_mode = ICON_ADD // Only appliciable if do_coloration = 1
|
||||
var/extra_overlay // Icon state of an additional overlay to blend in.
|
||||
var/extra_overlay2 //Tertiary.
|
||||
var/clothing_can_hide = 1 // If true, clothing with HIDETAIL hides it. If the clothing is bulky enough to hide a tail, it should also hide wings.
|
||||
// var/show_species_tail = 1 // Just so // TODO - Seems not needed ~Leshana
|
||||
var/desc = "You should not see this..."
|
||||
var/ani_state // State when flapping/animated
|
||||
var/extra_overlay_w // Flapping state for extra overlay
|
||||
var/extra_overlay2_w
|
||||
|
||||
/datum/sprite_accessory/wing/shock //Unable to split the tail from the wings in the sprite, so let's just classify it as wings.
|
||||
name = "pharoah hound tail (Shock Diamond)"
|
||||
@@ -709,6 +736,47 @@
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/wing/harpywings_alt
|
||||
name = "harpy wings alt, archeopteryx"
|
||||
desc = ""
|
||||
icon_state = "harpywings_alt"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "harpywings_altmarkings"
|
||||
|
||||
/datum/sprite_accessory/wing/harpywings_alt_neckfur
|
||||
name = "harpy wings alt, archeopteryx & neckfur"
|
||||
desc = ""
|
||||
icon_state = "harpywings_alt"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "harpywings_altmarkings"
|
||||
extra_overlay2 = "neckfur"
|
||||
|
||||
/datum/sprite_accessory/wing/harpywings_bat
|
||||
name = "harpy wings, bat"
|
||||
desc = ""
|
||||
icon_state = "harpywings_bat"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "harpywings_batmarkings"
|
||||
|
||||
/datum/sprite_accessory/wing/harpywings_bat_neckfur
|
||||
name = "harpy wings, bat & neckfur"
|
||||
desc = ""
|
||||
icon_state = "harpywings_bat"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "harpywings_batmarkings"
|
||||
extra_overlay2 = "neckfur"
|
||||
|
||||
/datum/sprite_accessory/wing/neckfur
|
||||
name = "neck fur"
|
||||
desc = ""
|
||||
icon_state = "neckfur"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/wing/feathered
|
||||
name = "feathered wings, colorable"
|
||||
desc = ""
|
||||
@@ -793,6 +861,14 @@
|
||||
icon_state = "cyberdoe_s"
|
||||
do_colouration = 0
|
||||
|
||||
/datum/sprite_accessory/wing/drago_wing
|
||||
name = "Cybernetic Dragon wings"
|
||||
desc = ""
|
||||
icon_state = "drago_wing"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "drago_wing_2"
|
||||
|
||||
/*
|
||||
////////////////////////////
|
||||
/ =--------------------= /
|
||||
@@ -807,11 +883,13 @@
|
||||
|
||||
var/color_blend_mode = ICON_ADD // Only appliciable if do_coloration = 1
|
||||
var/extra_overlay // Icon state of an additional overlay to blend in.
|
||||
var/extra_overlay2 //Tertiary.
|
||||
var/show_species_tail = 0 // If false, do not render species' tail.
|
||||
var/clothing_can_hide = 1 // If true, clothing with HIDETAIL hides it
|
||||
var/desc = "You should not see this..."
|
||||
var/ani_state // State when wagging/animated
|
||||
var/extra_overlay_w // Wagging state for extra overlay
|
||||
var/extra_overlay2_w // Tertiary wagging.
|
||||
var/list/hide_body_parts = list() //Uses organ tag defines. Bodyparts in this list do not have their icons rendered, allowing for more spriter freedom when doing taur/digitigrade stuff.
|
||||
var/icon/clip_mask_icon = null //Icon file used for clip mask.
|
||||
var/clip_mask_state = null //Icon state to generate clip mask. Clip mask is used to 'clip' off the lower part of clothing such as jumpsuits & full suits.
|
||||
@@ -1810,3 +1888,119 @@
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "wardtakahashi_vulp_dc_mark"
|
||||
|
||||
/datum/sprite_accessory/tail/Easterntail
|
||||
name = "Eastern Dragon (Animated)"
|
||||
desc = ""
|
||||
icon_state = "Easterntail"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "EasterntailColorTip"
|
||||
ani_state = "Easterntail_w"
|
||||
extra_overlay_w = "EasterntailColorTip_w"
|
||||
|
||||
/datum/sprite_accessory/tail/synthtail_static
|
||||
name = "Synthetic lizard tail"
|
||||
desc = ""
|
||||
icon_state = "synthtail"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/synthtail_vwag
|
||||
name = "Synthetic lizard tail (vwag)"
|
||||
desc = ""
|
||||
icon_state = "synthtail"
|
||||
ani_state = "synthtail_w"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/Plugtail
|
||||
name = "Synthetic plug tail"
|
||||
desc = ""
|
||||
icon_state = "Plugtail"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "PlugtailMarking"
|
||||
extra_overlay2 = "PlugtailMarking2"
|
||||
|
||||
/datum/sprite_accessory/tail/Segmentedtail
|
||||
name = "Segmented tail, animated"
|
||||
desc = ""
|
||||
icon_state = "Segmentedtail"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "Segmentedtailmarking"
|
||||
ani_state = "Segmentedtail_w"
|
||||
extra_overlay_w = "Segmentedtailmarking_w"
|
||||
|
||||
/datum/sprite_accessory/tail/Segmentedlights
|
||||
name = "Segmented tail, animated synth"
|
||||
desc = ""
|
||||
icon_state = "Segmentedtail"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "Segmentedlights"
|
||||
ani_state = "Segmentedtail_w"
|
||||
extra_overlay_w = "Segmentedlights_w"
|
||||
|
||||
/datum/sprite_accessory/tail/fox_tail
|
||||
name = "Fox tail"
|
||||
desc = ""
|
||||
icon_state = "fox_tail_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/fox_tail_plain
|
||||
name = "Fox tail"
|
||||
desc = ""
|
||||
icon_state = "fox_tail_plain_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/fennec_tail
|
||||
name = "Fennec tail"
|
||||
desc = ""
|
||||
icon_state = "fennec_tail_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/lizard_tail_smooth
|
||||
name = "Lizard Tail (Smooth)"
|
||||
desc = ""
|
||||
icon_state = "lizard_tail_smooth"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/lizard_tail_dark_tiger
|
||||
name = "Lizard Tail (Dark Tiger)"
|
||||
desc = ""
|
||||
icon_state = "lizard_tail_dark_tiger"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/lizard_tail_light_tiger
|
||||
name = "Lizard Tail (Light Tiger)"
|
||||
desc = ""
|
||||
icon_state = "lizard_tail_light_tiger"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/lizard_tail_spiked
|
||||
name = "Lizard Tail (Spiked)"
|
||||
desc = ""
|
||||
icon_state = "lizard_tail_spiked"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/xenotail_fullcolour
|
||||
name = "xenomorph tail (fully colourable)"
|
||||
desc = ""
|
||||
icon_state = "xenotail_fullcolour"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/xenotail_fullcolour
|
||||
name = "xenomorph tail alt. (fully colourable)"
|
||||
desc = ""
|
||||
icon_state = "xenotailalt_fullcolour"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
@@ -5,15 +5,21 @@ var/global/list/wing_icon_cache = list()
|
||||
var/icon/ears_s = new/icon("icon" = ear_style.icon, "icon_state" = ear_style.icon_state)
|
||||
if(ear_style.do_colouration)
|
||||
ears_s.Blend(rgb(src.r_ears, src.g_ears, src.b_ears), ear_style.color_blend_mode)
|
||||
|
||||
if(ear_style.extra_overlay)
|
||||
var/icon/overlay = new/icon("icon" = ear_style.icon, "icon_state" = ear_style.extra_overlay)
|
||||
overlay.Blend(rgb(src.r_ears2, src.g_ears2, src.b_ears2), ear_style.color_blend_mode)
|
||||
ears_s.Blend(overlay, ICON_OVERLAY)
|
||||
qdel(overlay)
|
||||
|
||||
if(ear_style.extra_overlay2) //MORE COLOURS IS BETTERER
|
||||
var/icon/overlay = new/icon("icon" = ear_style.icon, "icon_state" = ear_style.extra_overlay2)
|
||||
overlay.Blend(rgb(src.r_ears3, src.g_ears3, src.b_ears3), ear_style.color_blend_mode)
|
||||
ears_s.Blend(overlay, ICON_OVERLAY)
|
||||
qdel(overlay)
|
||||
return ears_s
|
||||
return null
|
||||
|
||||
|
||||
/mob/living/carbon/human/proc/get_tail_image()
|
||||
//If you are FBP with tail style and didn't set a custom one
|
||||
var/datum/robolimb/model = isSynthetic()
|
||||
@@ -39,6 +45,18 @@ var/global/list/wing_icon_cache = list()
|
||||
tail_s.Blend(overlay, ICON_OVERLAY)
|
||||
qdel(overlay)
|
||||
|
||||
if(tail_style.extra_overlay2)
|
||||
var/icon/overlay = new/icon("icon" = tail_style.icon, "icon_state" = tail_style.extra_overlay2)
|
||||
if(wagging && tail_style.ani_state)
|
||||
overlay = new/icon("icon" = tail_style.icon, "icon_state" = tail_style.extra_overlay2_w)
|
||||
overlay.Blend(rgb(src.r_tail3, src.g_tail3, src.b_tail3), tail_style.color_blend_mode)
|
||||
tail_s.Blend(overlay, ICON_OVERLAY)
|
||||
qdel(overlay)
|
||||
else
|
||||
overlay.Blend(rgb(src.r_tail3, src.g_tail3, src.b_tail3), tail_style.color_blend_mode)
|
||||
tail_s.Blend(overlay, ICON_OVERLAY)
|
||||
qdel(overlay)
|
||||
|
||||
if(isTaurTail(tail_style))
|
||||
var/datum/sprite_accessory/tail/taur/taurtype = tail_style
|
||||
if(taurtype.can_ride && !riding_datum)
|
||||
@@ -49,3 +67,49 @@ var/global/list/wing_icon_cache = list()
|
||||
else
|
||||
return image(tail_s)
|
||||
return null
|
||||
|
||||
/mob/living/carbon/human/proc/get_wing_image()
|
||||
if(QDESTROYING(src))
|
||||
return
|
||||
|
||||
//If you are FBP with wing style and didn't set a custom one
|
||||
if((synthetic && synthetic.includes_wing && !wing_style) && !wings_hidden)
|
||||
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)
|
||||
return image(wing_s)
|
||||
|
||||
//If you have custom wings selected
|
||||
if((wing_style && !(wear_suit && wear_suit.flags_inv & HIDETAIL)) && !wings_hidden)
|
||||
var/icon/wing_s = new/icon("icon" = wing_style.icon, "icon_state" = flapping && wing_style.ani_state ? wing_style.ani_state : wing_style.icon_state)
|
||||
if(wing_style.do_colouration)
|
||||
wing_s.Blend(rgb(src.r_wing, src.g_wing, src.b_wing), wing_style.color_blend_mode)
|
||||
if(wing_style.extra_overlay)
|
||||
var/icon/overlay = new/icon("icon" = wing_style.icon, "icon_state" = wing_style.extra_overlay)
|
||||
overlay.Blend(rgb(src.r_wing2, src.g_wing2, src.b_wing2), wing_style.color_blend_mode)
|
||||
wing_s.Blend(overlay, ICON_OVERLAY)
|
||||
qdel(overlay)
|
||||
|
||||
if(wing_style.extra_overlay2)
|
||||
var/icon/overlay = new/icon("icon" = wing_style.icon, "icon_state" = wing_style.extra_overlay2)
|
||||
if(wing_style.ani_state)
|
||||
overlay = new/icon("icon" = wing_style.icon, "icon_state" = wing_style.extra_overlay2_w)
|
||||
overlay.Blend(rgb(src.r_wing3, src.g_wing3, src.b_wing3), wing_style.color_blend_mode)
|
||||
wing_s.Blend(overlay, ICON_OVERLAY)
|
||||
qdel(overlay)
|
||||
else
|
||||
overlay.Blend(rgb(src.r_wing3, src.g_wing3, src.b_wing3), wing_style.color_blend_mode)
|
||||
wing_s.Blend(overlay, ICON_OVERLAY)
|
||||
qdel(overlay)
|
||||
|
||||
return image(wing_s)
|
||||
|
||||
// TODO - Move this to where it should go ~Leshana
|
||||
/mob/proc/stop_flying()
|
||||
if(QDESTROYING(src))
|
||||
return
|
||||
flying = FALSE
|
||||
return 1
|
||||
|
||||
/mob/living/carbon/human/stop_flying()
|
||||
if((. = ..()))
|
||||
update_wing_showing()
|
||||
Reference in New Issue
Block a user