mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-17 01:53:35 +01:00
Merge pull request #16798 from SabreML/telescopic-blood-overlays
Blood overlay fix for telescopic weapons
This commit is contained in:
+6
-6
@@ -789,15 +789,15 @@ GLOBAL_LIST_EMPTY(blood_splatter_icons)
|
||||
var/index = blood_splatter_index()
|
||||
var/icon/blood_splatter_icon = GLOB.blood_splatter_icons[index]
|
||||
if(!blood_splatter_icon)
|
||||
blood_splatter_icon = icon(initial(icon), initial(icon_state), , 1) //we only want to apply blood-splatters to the initial icon_state for each object
|
||||
blood_splatter_icon.Blend("#fff", ICON_ADD) //fills the icon_state with white (except where it's transparent)
|
||||
blood_splatter_icon = icon(initial(icon), initial(icon_state), frame = 1) //we only want to apply blood-splatters to the initial icon_state for each object
|
||||
blood_splatter_icon.Blend("#ffffff", ICON_ADD) //fills the icon_state with white (except where it's transparent)
|
||||
blood_splatter_icon.Blend(icon('icons/effects/blood.dmi', "itemblood"), ICON_MULTIPLY) //adds blood and the remaining white areas become transparant
|
||||
blood_splatter_icon = fcopy_rsc(blood_splatter_icon)
|
||||
GLOB.blood_splatter_icons[index] = blood_splatter_icon
|
||||
|
||||
blood_overlay = image(blood_splatter_icon)
|
||||
blood_overlay.color = color
|
||||
overlays += blood_overlay
|
||||
add_overlay(blood_overlay)
|
||||
|
||||
/atom/proc/clean_blood(radiation_clean = FALSE)
|
||||
germ_level = 0
|
||||
@@ -827,9 +827,9 @@ GLOBAL_LIST_EMPTY(blood_splatter_icons)
|
||||
|
||||
/obj/item/clean_blood(radiation_clean = FALSE)
|
||||
. = ..()
|
||||
if(.)
|
||||
if(blood_overlay)
|
||||
overlays -= blood_overlay
|
||||
if(. && blood_overlay)
|
||||
cut_overlay(blood_overlay)
|
||||
QDEL_NULL(blood_overlay)
|
||||
|
||||
/obj/item/clothing/gloves/clean_blood(radiation_clean = FALSE)
|
||||
. = ..()
|
||||
|
||||
@@ -6,7 +6,6 @@ GLOBAL_DATUM_INIT(fire_overlay, /image, image("icon" = 'icons/goonstation/effect
|
||||
move_resist = null // Set in the Initialise depending on the item size. Unless it's overriden by a specific item
|
||||
var/discrete = 0 // used in item_attack.dm to make an item not show an attack message to viewers
|
||||
var/image/blood_overlay = null //this saves our blood splatter overlay, which will be processed not to go over the edges of the sprite
|
||||
var/blood_overlay_color = null
|
||||
var/item_state = null
|
||||
var/lefthand_file = 'icons/mob/inhands/items_lefthand.dmi'
|
||||
var/righthand_file = 'icons/mob/inhands/items_righthand.dmi'
|
||||
|
||||
@@ -189,9 +189,10 @@
|
||||
H.update_inv_r_hand()
|
||||
// Update blood splatter
|
||||
if(blood_overlay)
|
||||
var/blood_color = blood_overlay.color
|
||||
cut_overlay(blood_overlay)
|
||||
qdel(blood_overlay)
|
||||
add_blood_overlay(blood_overlay_color)
|
||||
add_blood_overlay(blood_color)
|
||||
playsound(loc, extend_sound, 50, TRUE)
|
||||
add_fingerprint(user)
|
||||
|
||||
@@ -210,5 +211,4 @@
|
||||
|
||||
blood_overlay = image(blood_splatter_icon)
|
||||
blood_overlay.color = color
|
||||
blood_overlay_color = color
|
||||
add_overlay(blood_overlay)
|
||||
|
||||
@@ -206,16 +206,28 @@
|
||||
H.update_inv_l_hand()
|
||||
H.update_inv_r_hand()
|
||||
add_fingerprint(user)
|
||||
if(!blood_DNA)
|
||||
return
|
||||
if(blood_overlay && (blood_DNA.len >= 1)) //updated blood overlay, if any
|
||||
overlays.Cut() //this might delete other item overlays as well but eeeeeh
|
||||
if(blood_overlay) //updated blood overlay, if any
|
||||
var/blood_color = blood_overlay.color
|
||||
cut_overlay(blood_overlay)
|
||||
qdel(blood_overlay)
|
||||
add_blood_overlay(blood_color)
|
||||
|
||||
var/icon/I = new /icon(icon, icon_state)
|
||||
I.Blend(new /icon('icons/effects/blood.dmi', rgb(255,255,255)), ICON_ADD)
|
||||
I.Blend(new /icon('icons/effects/blood.dmi', "itemblood"), ICON_MULTIPLY)
|
||||
blood_overlay = I
|
||||
overlays += blood_overlay
|
||||
/obj/item/scythe/tele/blood_splatter_index()
|
||||
return "\ref[icon]-[icon_state]"
|
||||
|
||||
/obj/item/scythe/tele/add_blood_overlay(color)
|
||||
var/index = blood_splatter_index()
|
||||
var/icon/blood_splatter_icon = GLOB.blood_splatter_icons[index]
|
||||
if(!blood_splatter_icon)
|
||||
blood_splatter_icon = icon(icon, icon_state)
|
||||
blood_splatter_icon.Blend("#ffffff", ICON_ADD)
|
||||
blood_splatter_icon.Blend(icon('icons/effects/blood.dmi', "itemblood"), ICON_MULTIPLY)
|
||||
blood_splatter_icon = fcopy_rsc(blood_splatter_icon)
|
||||
GLOB.blood_splatter_icons[index] = blood_splatter_icon
|
||||
|
||||
blood_overlay = image(blood_splatter_icon)
|
||||
blood_overlay.color = color
|
||||
add_overlay(blood_overlay)
|
||||
|
||||
|
||||
// *************************************
|
||||
|
||||
Reference in New Issue
Block a user