Enables the combo blend mode for most colorable loadout gear.

-The most meaning the colorable uniforms, suits, gloves, shoes, headgear, earwear, and accessories.
-Only affects mob icons for now, the inventory/floor icons still in old blend.
-Sort of a framework for possible additional options to come.
-Also messed around with some other stuff such as adding on-ear icons to the rest of the flower pins and bows, and made the base icons for the beanies lighter than the middle gray they were.
This commit is contained in:
Verkister
2017-11-02 15:33:52 +02:00
parent 9e442e9c9a
commit 26ea6ec92d
21 changed files with 137 additions and 11 deletions

View File

@@ -77,6 +77,7 @@
desc = "A pair of gloves that reach past the elbow. Fancy!"
name = "evening gloves"
icon_state = "evening_gloves"
addblends = "evening_gloves_a"
cold_protection = HANDS
min_cold_protection_temperature = GLOVES_MIN_COLD_PROTECTION_TEMPERATURE

View File

@@ -34,9 +34,11 @@
/obj/item/clothing/head/hairflower/white
icon_state = "hairflower_white"
addblends = "hairflower_white_a"
/obj/item/clothing/head/hairflower/bow
icon_state = "bow"
addblends = "bow_a"
name = "hair bow"
desc = "A ribbon tied into a bow with a clip on the back to attach to hair."
item_state_slots = list(slot_r_hand_str = "pill", slot_l_hand_str = "pill")
@@ -155,6 +157,7 @@
/obj/item/clothing/head/flatcap/grey
icon_state = "flat_capw"
addblends = "flat_capw_a"
item_state_slots = list(slot_r_hand_str = "greysoft", slot_l_hand_str = "greysoft")
/obj/item/clothing/head/pirate
@@ -300,6 +303,7 @@
name = "hijab"
desc = "A veil that is wrapped to cover the head and chest"
icon_state = "hijab"
addblends = "hijab_a"
item_state_slots = list(slot_r_hand_str = "beret_white", slot_l_hand_str = "beret_white")
body_parts_covered = 0
flags_inv = BLOCKHAIR
@@ -308,12 +312,14 @@
name = "kippa"
desc = "A small, brimless cap."
icon_state = "kippa"
addblends = "kippa_a"
body_parts_covered = 0
/obj/item/clothing/head/turban
name = "turban"
desc = "A cloth used to wind around the head"
icon_state = "turban"
addblends = "turban_a"
item_state_slots = list(slot_r_hand_str = "beret_white", slot_l_hand_str = "beret_white")
body_parts_covered = 0
flags_inv = BLOCKHEADHAIR
@@ -322,24 +328,28 @@
name = "taqiyah"
desc = "A short, rounded skullcap usually worn for religious purposes."
icon_state = "taqiyah"
addblends = "taqiyah_a"
item_state_slots = list(slot_r_hand_str = "taq", slot_l_hand_str = "taq")
/obj/item/clothing/head/beanie
name = "beanie"
desc = "A head-hugging brimless winter cap. This one is tight."
icon_state = "beanie"
addblends = "beanie_a"
body_parts_covered = 0
/obj/item/clothing/head/beanie_loose
name = "loose beanie"
desc = "A head-hugging brimless winter cap. This one is loose."
icon_state = "beanie_hang"
addblends = "beanie_hang_a"
body_parts_covered = 0
/obj/item/clothing/head/beretg
name = "beret"
desc = "A beret, an artists favorite headwear."
icon_state = "beret_g"
addblends = "beret_g_a"
body_parts_covered = 0
/obj/item/clothing/head/sombrero

View File

@@ -54,6 +54,7 @@
name = "white flats"
desc = "Shiny white flats."
icon_state = "flatswhite"
addblends = "flatswhite_a"
item_state_slots = list(slot_r_hand_str = "white", slot_l_hand_str = "white")
/obj/item/clothing/shoes/flats/white/color

View File

@@ -124,23 +124,27 @@
name = "flip flops"
desc = "A pair of foam flip flops. For those not afraid to show a little ankle."
icon_state = "thongsandal"
addblends = "thongsandal_a"
/obj/item/clothing/shoes/athletic
name = "athletic shoes"
desc = "A pair of sleek atheletic shoes. Made by and for the sporty types."
icon_state = "sportshoe"
addblends = "sportshoe_a"
item_state_slots = list(slot_r_hand_str = "sportheld", slot_l_hand_str = "sportheld")
/obj/item/clothing/shoes/skater
name = "skater shoes"
desc = "A pair of wide shoes with thick soles. Designed for skating."
icon_state = "skatershoe"
addblends = "skatershoe_a"
item_state_slots = list(slot_r_hand_str = "skaterheld", slot_l_hand_str = "skaterheld")
/obj/item/clothing/shoes/heels
name = "high heels"
desc = "A pair of high-heeled shoes. Fancy!"
icon_state = "heels"
addblends = "heels_a"
/obj/item/clothing/shoes/footwraps
name = "cloth footwraps"

View File

@@ -277,6 +277,7 @@ obj/item/clothing/suit/kimono
name = "kimono"
desc = "A traditional Japanese kimono."
icon_state = "kimono"
addblends = "kimono_a"
/*
* coats
@@ -344,6 +345,7 @@ obj/item/clothing/suit/storage/toggle/peacoat
name = "peacoat"
desc = "A well-tailored, stylish peacoat."
icon_state = "peacoat"
addblends = "peacoat_a"
item_state_slots = list(slot_r_hand_str = "peacoat", slot_l_hand_str = "peacoat")
flags_inv = HIDEHOLSTER
/*

View File

@@ -45,6 +45,16 @@
mob_overlay = image("icon" = sprite_sheets[wearer.species.get_bodytype(wearer)], "icon_state" = "[tmp_icon_state]")
else
mob_overlay = image("icon" = INV_ACCESSORIES_DEF_ICON, "icon_state" = "[tmp_icon_state]")
if(addblends)
var/icon/base = new/icon("icon" = mob_overlay.icon, "icon_state" = mob_overlay.icon_state)
var/addblend_icon = new/icon("icon" = mob_overlay.icon, "icon_state" = src.addblends)
if(color)
base.Blend(src.color, ICON_MULTIPLY)
base.Blend(addblend_icon, ICON_ADD)
mob_overlay = image(base)
else
mob_overlay.color = src.color
return mob_overlay
//when user attached an accessory to S

View File

@@ -37,6 +37,7 @@
/obj/item/clothing/accessory/armband/med/color
name = "armband"
desc = "A fancy armband."
addblends = "med_a"
/obj/item/clothing/accessory/armband/medblue
name = "EMT armband"

View File

@@ -627,17 +627,20 @@
name = "long dress"
desc = "A long dress."
icon_state = "whitedress2"
addblends = "whitedress2_a"
flags_inv = HIDESHOES
/obj/item/clothing/under/dress/white3
name = "short dress"
desc = "A short, plain dress."
icon_state = "whitedress3"
addblends = "whitedress3_a"
/obj/item/clothing/under/dress/white4
name = "long flared dress"
desc = "A long white dress that flares out at the bottom."
icon_state = "whitedress4"
addblends = "whitedress4_a"
flags_inv = HIDESHOES
/obj/item/clothing/under/dress/darkred

View File

@@ -121,6 +121,7 @@
name = "yoga pants"
desc = "A pair of tight-fitting yoga pants for those lazy days."
icon_state = "yogapants"
addblends = "yogapants_a"
/*
* Baggy Pants

View File

@@ -505,7 +505,16 @@ var/global/list/damage_icon_parts = list()
//need to append _s to the icon state for legacy compatibility
var/image/standing = image(icon = under_icon, icon_state = "[under_state]_s")
standing.color = w_uniform.color
if(w_uniform.addblends)
var/icon/base = new/icon("icon" = standing.icon, "icon_state" = standing.icon_state)
var/addblend_icon = new/icon("icon" = standing.icon, "icon_state" = w_uniform.addblends)
if(w_uniform.color)
base.Blend(w_uniform.color, ICON_MULTIPLY)
base.Blend(addblend_icon, ICON_ADD)
standing = image(base)
else
standing.color = w_uniform.color
//apply blood overlay
if(w_uniform.blood_DNA)
@@ -569,7 +578,15 @@ var/global/list/damage_icon_parts = list()
bloodsies.color = gloves.blood_color
standing.overlays += bloodsies
gloves.screen_loc = ui_gloves
standing.color = gloves.color
if(gloves.addblends)
var/icon/base = new/icon("icon" = standing.icon, "icon_state" = standing.icon_state)
var/addblend_icon = new/icon("icon" = standing.icon, "icon_state" = gloves.addblends)
if(gloves.color)
base.Blend(gloves.color, ICON_MULTIPLY)
base.Blend(addblend_icon, ICON_ADD)
standing = image(base)
else
standing.color = gloves.color
overlays_standing[GLOVES_LAYER] = standing
else
if(blood_DNA)
@@ -590,7 +607,15 @@ var/global/list/damage_icon_parts = list()
standing = image("icon" = glasses.sprite_sheets[species.get_bodytype(src)], "icon_state" = "[glasses.icon_state]")
else
standing = image("icon" = 'icons/mob/eyes.dmi', "icon_state" = "[glasses.icon_state]")
standing.color = glasses.color
if(glasses.addblends)
var/icon/base = new/icon("icon" = standing.icon, "icon_state" = standing.icon_state)
var/addblend_icon = new/icon("icon" = standing.icon, "icon_state" = glasses.addblends)
if(glasses.color)
base.Blend(glasses.color, ICON_MULTIPLY)
base.Blend(addblend_icon, ICON_ADD)
standing = image(base)
else
standing.color = glasses.color
overlays_standing[GLASSES_LAYER] = standing
else
@@ -618,7 +643,15 @@ var/global/list/damage_icon_parts = list()
standing = image("icon" = l_ear.sprite_sheets[species.get_bodytype(src)], "icon_state" = "[t_type]")
else
standing = image("icon" = 'icons/mob/ears.dmi', "icon_state" = "[t_type]")
standing.color = l_ear.color
if(l_ear.addblends)
var/icon/base = new/icon("icon" = standing.icon, "icon_state" = standing.icon_state)
var/addblend_icon = new/icon("icon" = standing.icon, "icon_state" = l_ear.addblends)
if(l_ear.color)
base.Blend(l_ear.color, ICON_MULTIPLY)
base.Blend(addblend_icon, ICON_ADD)
standing = image(base)
else
standing.color = l_ear.color
both.overlays += standing
if(r_ear)
@@ -632,7 +665,15 @@ var/global/list/damage_icon_parts = list()
standing = image("icon" = r_ear.sprite_sheets[species.get_bodytype(src)], "icon_state" = "[t_type]")
else
standing = image("icon" = 'icons/mob/ears.dmi', "icon_state" = "[t_type]")
standing.color = r_ear.color
if(r_ear.addblends)
var/icon/base = new/icon("icon" = standing.icon, "icon_state" = standing.icon_state)
var/addblend_icon = new/icon("icon" = standing.icon, "icon_state" = r_ear.addblends)
if(r_ear.color)
base.Blend(r_ear.color, ICON_MULTIPLY)
base.Blend(addblend_icon, ICON_ADD)
standing = image(base)
else
standing.color = r_ear.color
both.overlays += standing
overlays_standing[EARS_LAYER] = both
@@ -666,8 +707,18 @@ var/global/list/damage_icon_parts = list()
var/image/bloodsies = image("icon" = species.get_blood_mask(src), "icon_state" = "shoeblood")
bloodsies.color = shoes.blood_color
standing.overlays += bloodsies
standing.color = shoes.color
if(shoes.addblends)
var/icon/base = new/icon("icon" = standing.icon, "icon_state" = standing.icon_state)
var/addblend_icon = new/icon("icon" = standing.icon, "icon_state" = shoes.addblends)
if(shoes.color)
base.Blend(shoes.color, ICON_MULTIPLY)
base.Blend(addblend_icon, ICON_ADD)
standing = image(base)
else
standing.color = shoes.color
overlays_standing[shoe_layer] = standing
else
if(feet_blood_DNA)
var/image/bloodsies = image("icon" = species.get_blood_mask(src), "icon_state" = "shoeblood")
@@ -733,7 +784,15 @@ var/global/list/damage_icon_parts = list()
if(hat.on && light_overlay_cache[cache_key])
standing.overlays |= light_overlay_cache[cache_key]
standing.color = head.color
if(head.addblends)
var/icon/base = new/icon("icon" = standing.icon, "icon_state" = standing.icon_state)
var/addblend_icon = new/icon("icon" = standing.icon, "icon_state" = head.addblends)
if(head.color)
base.Blend(head.color, ICON_MULTIPLY)
base.Blend(addblend_icon, ICON_ADD)
standing = image(base)
else
standing.color = head.color
overlays_standing[HEAD_LAYER] = standing
else
@@ -768,7 +827,15 @@ var/global/list/damage_icon_parts = list()
if(!i_state) i_state = i.icon_state
standing.overlays += image("icon" = 'icons/mob/belt.dmi', "icon_state" = "[i_state]")
standing.color = belt.color
if(belt.addblends)
var/icon/base = new/icon("icon" = standing.icon, "icon_state" = standing.icon_state)
var/addblend_icon = new/icon("icon" = standing.icon, "icon_state" = belt.addblends)
if(belt.color)
base.Blend(belt.color, ICON_MULTIPLY)
base.Blend(addblend_icon, ICON_ADD)
standing = image(base)
else
standing.color = belt.color
overlays_standing[belt_layer] = standing
else
@@ -793,7 +860,16 @@ var/global/list/damage_icon_parts = list()
t_icon = wear_suit.item_icons[slot_wear_suit_str]
standing = image("icon" = t_icon, "icon_state" = "[wear_suit.icon_state]")
standing.color = wear_suit.color
if(wear_suit.addblends)
var/icon/base = new/icon("icon" = standing.icon, "icon_state" = standing.icon_state)
var/addblend_icon = new/icon("icon" = standing.icon, "icon_state" = wear_suit.addblends)
if(wear_suit.color)
base.Blend(wear_suit.color, ICON_MULTIPLY)
base.Blend(addblend_icon, ICON_ADD)
standing = image(base)
else
standing.color = wear_suit.color
if( istype(wear_suit, /obj/item/clothing/suit/straight_jacket) )
drop_from_inventory(handcuffed)
@@ -843,7 +919,15 @@ var/global/list/damage_icon_parts = list()
standing = image("icon" = wear_mask.sprite_sheets[species.get_bodytype(src)], "icon_state" = "[wear_mask.icon_state]")
else
standing = image("icon" = 'icons/mob/mask.dmi', "icon_state" = "[wear_mask.icon_state]")
standing.color = wear_mask.color
if(wear_mask.addblends)
var/icon/base = new/icon("icon" = standing.icon, "icon_state" = standing.icon_state)
var/addblend_icon = new/icon("icon" = standing.icon, "icon_state" = wear_mask.addblends)
if(wear_mask.color)
base.Blend(wear_mask.color, ICON_MULTIPLY)
base.Blend(addblend_icon, ICON_ADD)
standing = image(base)
else
standing.color = wear_mask.color
if( !istype(wear_mask, /obj/item/clothing/mask/smokable/cigarette) && wear_mask.blood_DNA )
var/image/bloodsies = image("icon" = species.get_blood_mask(src), "icon_state" = "maskblood")
@@ -885,7 +969,15 @@ var/global/list/damage_icon_parts = list()
//apply color
var/image/standing = image(icon = overlay_icon, icon_state = overlay_state)
standing.color = back.color
if(back.addblends)
var/icon/base = new/icon("icon" = standing.icon, "icon_state" = standing.icon_state)
var/addblend_icon = new/icon("icon" = standing.icon, "icon_state" = back.addblends)
if(back.color)
base.Blend(back.color, ICON_MULTIPLY)
base.Blend(addblend_icon, ICON_ADD)
standing = image(base)
else
standing.color = back.color
//create the image
overlays_standing[BACK_LAYER] = standing