Merge pull request #12208 from Couls/blood-fix-v2

stops bloody footprints from stacking
This commit is contained in:
variableundefined
2019-09-05 16:11:31 -04:00
committed by GitHub
4 changed files with 19 additions and 26 deletions
@@ -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)