mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-26 21:48:21 +01:00
Transparent slime blood (#17861)
* blood * tracks * bug D: * Review improvements used alot more of the defines :o) * renames define to make more sense
This commit is contained in:
@@ -353,10 +353,14 @@
|
||||
#define BLOOD_LOSS_IN_SPREAD 20
|
||||
#define BLOOD_AMOUNT_PER_DECAL 20
|
||||
|
||||
//Blood smears
|
||||
#define BLOOD_SPLATTER_ALPHA_SLIME 150
|
||||
|
||||
//Bloody shoe blood states
|
||||
#define BLOOD_STATE_HUMAN "blood"
|
||||
#define BLOOD_STATE_XENO "xeno"
|
||||
#define BLOOD_STATE_NOT_BLOODY "no blood whatsoever"
|
||||
#define BLOOD_BASE_ALPHA "blood_alpha"
|
||||
|
||||
//for obj explosion block calculation
|
||||
#define EXPLOSION_BLOCK_PROC -1
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
desc = "It's a transparent semi-liquid from a slime or slime person. Don't lick it."
|
||||
basecolor = "#0b8f70"
|
||||
bloodiness = MAX_SHOE_BLOODINESS
|
||||
alpha = BLOOD_SPLATTER_ALPHA_SLIME
|
||||
|
||||
/obj/effect/decal/cleanable/blood/slime/can_bloodcrawl_in()
|
||||
return FALSE
|
||||
|
||||
@@ -26,6 +26,7 @@ GLOBAL_LIST_EMPTY(fluidtrack_cache)
|
||||
basecolor = "#A10808"
|
||||
var/entered_dirs = 0
|
||||
var/exited_dirs = 0
|
||||
var/base_alpha = BLOODY_FOOTPRINT_BASE_ALPHA
|
||||
blood_state = BLOOD_STATE_HUMAN //the icon state to load images from
|
||||
|
||||
|
||||
@@ -41,6 +42,7 @@ GLOBAL_LIST_EMPTY(fluidtrack_cache)
|
||||
hasfeet = FALSE
|
||||
if(S && S.bloody_shoes[blood_state] && S.blood_color == basecolor)
|
||||
S.bloody_shoes[blood_state] = max(S.bloody_shoes[blood_state] - BLOOD_LOSS_PER_STEP, 0)
|
||||
S.bloody_shoes[BLOOD_BASE_ALPHA] = base_alpha
|
||||
if(!S.blood_DNA)
|
||||
S.blood_DNA = list()
|
||||
S.blood_DNA |= blood_DNA.Copy()
|
||||
@@ -49,6 +51,7 @@ GLOBAL_LIST_EMPTY(fluidtrack_cache)
|
||||
update_icon()
|
||||
else if(hasfeet && H.bloody_feet[blood_state] && H.feet_blood_color == basecolor)//Or feet //This will need to be changed.
|
||||
H.bloody_feet[blood_state] = max(H.bloody_feet[blood_state] - BLOOD_LOSS_PER_STEP, 0)
|
||||
H.bloody_feet[BLOOD_BASE_ALPHA] = base_alpha
|
||||
if(!H.feet_blood_DNA)
|
||||
H.feet_blood_DNA = list()
|
||||
H.feet_blood_DNA |= blood_DNA.Copy()
|
||||
@@ -109,7 +112,7 @@ GLOBAL_LIST_EMPTY(fluidtrack_cache)
|
||||
I.color = basecolor
|
||||
overlays += I
|
||||
|
||||
alpha = BLOODY_FOOTPRINT_BASE_ALPHA+bloodiness
|
||||
alpha = base_alpha + bloodiness
|
||||
|
||||
/proc/createFootprintsFrom(atom/movable/A, dir, turf/T)
|
||||
var/obj/effect/decal/cleanable/blood/footprints/FP = new /obj/effect/decal/cleanable/blood/footprints(T)
|
||||
@@ -118,6 +121,7 @@ GLOBAL_LIST_EMPTY(fluidtrack_cache)
|
||||
FP.blood_state = H.blood_state
|
||||
FP.bloodiness = H.bloody_feet[H.blood_state] - BLOOD_LOSS_IN_SPREAD
|
||||
FP.basecolor = H.feet_blood_color
|
||||
FP.base_alpha = H.bloody_feet[BLOOD_BASE_ALPHA]
|
||||
if(H.blood_DNA)
|
||||
FP.blood_DNA = H.blood_DNA.Copy()
|
||||
else if(istype(A, /obj/item/clothing/shoes))
|
||||
@@ -125,6 +129,7 @@ GLOBAL_LIST_EMPTY(fluidtrack_cache)
|
||||
FP.blood_state = S.blood_state
|
||||
FP.bloodiness = S.bloody_shoes[S.blood_state] - BLOOD_LOSS_IN_SPREAD
|
||||
FP.basecolor = S.blood_color
|
||||
FP.base_alpha = S.bloody_shoes[BLOOD_BASE_ALPHA]
|
||||
if(S.blood_DNA)
|
||||
FP.blood_DNA = S.blood_DNA.Copy()
|
||||
FP.entered_dirs |= dir
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
add_blood = bloodiness
|
||||
bloodiness -= add_blood
|
||||
S.bloody_shoes[blood_state] = min(MAX_SHOE_BLOODINESS, S.bloody_shoes[blood_state] + add_blood)
|
||||
S.bloody_shoes[BLOOD_BASE_ALPHA] = BLOODY_FOOTPRINT_BASE_ALPHA * (alpha/255)
|
||||
if(blood_DNA && blood_DNA.len)
|
||||
S.add_blood(H.blood_DNA, basecolor)
|
||||
S.blood_state = blood_state
|
||||
@@ -42,6 +43,7 @@
|
||||
add_blood = bloodiness
|
||||
bloodiness -= add_blood
|
||||
H.bloody_feet[blood_state] = min(MAX_SHOE_BLOODINESS, H.bloody_feet[blood_state] + add_blood)
|
||||
H.bloody_feet[BLOOD_BASE_ALPHA] = BLOODY_FOOTPRINT_BASE_ALPHA * (alpha/255)
|
||||
if(!H.feet_blood_DNA)
|
||||
H.feet_blood_DNA = list()
|
||||
H.blood_state = blood_state
|
||||
|
||||
@@ -454,7 +454,7 @@ BLIND // can't see anything
|
||||
slot_flags = SLOT_FEET
|
||||
|
||||
var/blood_state = BLOOD_STATE_NOT_BLOODY
|
||||
var/list/bloody_shoes = list(BLOOD_STATE_HUMAN = 0, BLOOD_STATE_XENO = 0, BLOOD_STATE_NOT_BLOODY = 0)
|
||||
var/list/bloody_shoes = list(BLOOD_STATE_HUMAN = 0, BLOOD_STATE_XENO = 0, BLOOD_STATE_NOT_BLOODY = 0, BLOOD_BASE_ALPHA = BLOODY_FOOTPRINT_BASE_ALPHA)
|
||||
|
||||
permeability_coefficient = 0.50
|
||||
slowdown = SHOES_SLOWDOWN
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
var/list/feet_blood_DNA
|
||||
var/feet_blood_color
|
||||
var/blood_state = BLOOD_STATE_NOT_BLOODY
|
||||
var/list/bloody_feet = list(BLOOD_STATE_HUMAN = 0, BLOOD_STATE_XENO = 0, BLOOD_STATE_NOT_BLOODY = 0)
|
||||
var/list/bloody_feet = list(BLOOD_STATE_HUMAN = 0, BLOOD_STATE_XENO = 0, BLOOD_STATE_NOT_BLOODY = 0, BLOOD_BASE_ALPHA = BLOODY_FOOTPRINT_BASE_ALPHA)
|
||||
|
||||
/obj/item/clothing/gloves
|
||||
var/transfer_blood = 0
|
||||
|
||||
@@ -1466,7 +1466,7 @@ GLOBAL_LIST_INIT(slot_equipment_priority, list( \
|
||||
if(clean_feet)
|
||||
feet_blood_color = null
|
||||
qdel(feet_blood_DNA)
|
||||
bloody_feet = list(BLOOD_STATE_HUMAN = 0, BLOOD_STATE_XENO = 0, BLOOD_STATE_NOT_BLOODY = 0)
|
||||
bloody_feet = list(BLOOD_STATE_HUMAN = 0, BLOOD_STATE_XENO = 0, BLOOD_STATE_NOT_BLOODY = 0, BLOOD_BASE_ALPHA = BLOODY_FOOTPRINT_BASE_ALPHA)
|
||||
blood_state = BLOOD_STATE_NOT_BLOODY
|
||||
update_inv_shoes()
|
||||
update_icons() //apply the now updated overlays to the mob
|
||||
|
||||
Reference in New Issue
Block a user