Merge pull request #4203 from Verkister/loadandblend

Enables the combo blend mode for most colorable loadout gear.
This commit is contained in:
Anewbe
2017-11-03 15:11:37 -05:00
committed by GitHub
21 changed files with 137 additions and 11 deletions
+1
View File
@@ -80,6 +80,7 @@
var/list/sprite_sheets_obj = list()
var/toolspeed = 1.0 // This is a multipler on how 'fast' a tool works. e.g. setting this to 0.5 will make the tool work twice as fast.
var/addblends // Icon overlay for ADD highlights when applicable.
/obj/item/New()
..()
+1
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
+10
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
+1
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
@@ -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"
@@ -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
/*
@@ -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
@@ -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"
@@ -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
+1
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
@@ -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