mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 19:47:22 +01:00
Merge pull request #12208 from Couls/blood-fix-v2
stops bloody footprints from stacking
This commit is contained in:
@@ -47,14 +47,8 @@ var/global/list/image/splatter_cache = list()
|
||||
mode_ticker.blood_check()
|
||||
if(type == /obj/effect/decal/cleanable/blood/gibs)
|
||||
return
|
||||
if(type == /obj/effect/decal/cleanable/blood)
|
||||
if(loc && isturf(loc))
|
||||
for(var/obj/effect/decal/cleanable/blood/B in loc)
|
||||
if(B != src)
|
||||
if(B.blood_DNA)
|
||||
blood_DNA |= B.blood_DNA.Copy()
|
||||
qdel(B)
|
||||
dry_timer = addtimer(CALLBACK(src, .proc/dry), DRYING_TIME * (amount+1), TIMER_STOPPABLE)
|
||||
if(!.)
|
||||
dry_timer = addtimer(CALLBACK(src, .proc/dry), DRYING_TIME * (amount+1), TIMER_STOPPABLE)
|
||||
|
||||
/obj/effect/decal/cleanable/blood/Destroy()
|
||||
if(GAMEMODE_IS_CULT)
|
||||
|
||||
@@ -55,6 +55,7 @@ var/global/list/image/fluidtrack_cache = list()
|
||||
if(!(entered_dirs & H.dir))
|
||||
entered_dirs |= H.dir
|
||||
update_icon()
|
||||
|
||||
/obj/effect/decal/cleanable/blood/footprints/Uncrossed(atom/movable/O)
|
||||
..()
|
||||
if(ishuman(O))
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
if(C != src && C.type == type && !QDELETED(C))
|
||||
if(replace_decal(C))
|
||||
qdel(src)
|
||||
return
|
||||
return TRUE
|
||||
if(random_icon_states && length(src.random_icon_states) > 0)
|
||||
src.icon_state = pick(src.random_icon_states)
|
||||
if(smooth)
|
||||
|
||||
@@ -58,25 +58,23 @@
|
||||
|
||||
if(shoes)
|
||||
if(S.bloody_shoes && S.bloody_shoes[S.blood_state])
|
||||
var/obj/effect/decal/cleanable/blood/footprints/oldFP = locate(/obj/effect/decal/cleanable/blood/footprints) in T
|
||||
if(oldFP && oldFP.blood_state == S.blood_state && oldFP.basecolor == S.blood_color)
|
||||
return
|
||||
else
|
||||
//No oldFP or it's a different kind of blood
|
||||
S.bloody_shoes[S.blood_state] = max(0, S.bloody_shoes[S.blood_state] - BLOOD_LOSS_PER_STEP)
|
||||
if(S.bloody_shoes[S.blood_state] > BLOOD_LOSS_IN_SPREAD)
|
||||
createFootprintsFrom(shoes, dir, T)
|
||||
update_inv_shoes()
|
||||
for(var/obj/effect/decal/cleanable/blood/footprints/oldFP in T)
|
||||
if(oldFP && oldFP.blood_state == S.blood_state && oldFP.basecolor == S.blood_color)
|
||||
return
|
||||
//No oldFP or it's a different kind of blood
|
||||
S.bloody_shoes[S.blood_state] = max(0, S.bloody_shoes[S.blood_state] - BLOOD_LOSS_PER_STEP)
|
||||
if(S.bloody_shoes[S.blood_state] > BLOOD_LOSS_IN_SPREAD)
|
||||
createFootprintsFrom(shoes, dir, T)
|
||||
update_inv_shoes()
|
||||
else if(hasfeet)
|
||||
if(bloody_feet && bloody_feet[blood_state])
|
||||
var/obj/effect/decal/cleanable/blood/footprints/oldFP = locate(/obj/effect/decal/cleanable/blood/footprints) in T
|
||||
if(oldFP && oldFP.blood_state == blood_state && oldFP.basecolor == feet_blood_color)
|
||||
return
|
||||
else
|
||||
bloody_feet[blood_state] = max(0, bloody_feet[blood_state] - BLOOD_LOSS_PER_STEP)
|
||||
if(bloody_feet[blood_state] > BLOOD_LOSS_IN_SPREAD)
|
||||
createFootprintsFrom(src, dir, T)
|
||||
update_inv_shoes()
|
||||
for(var/obj/effect/decal/cleanable/blood/footprints/oldFP in T)
|
||||
if(oldFP && oldFP.blood_state == blood_state && oldFP.basecolor == feet_blood_color)
|
||||
return
|
||||
bloody_feet[blood_state] = max(0, bloody_feet[blood_state] - BLOOD_LOSS_PER_STEP)
|
||||
if(bloody_feet[blood_state] > BLOOD_LOSS_IN_SPREAD)
|
||||
createFootprintsFrom(src, dir, T)
|
||||
update_inv_shoes()
|
||||
//End bloody footprints
|
||||
if(S)
|
||||
S.step_action(src)
|
||||
|
||||
Reference in New Issue
Block a user