From eb8476d14c91e3c553dfbdeed5b96b02af714241 Mon Sep 17 00:00:00 2001 From: Fluffy <65877598+FluffyGhoster@users.noreply.github.com> Date: Wed, 13 Sep 2023 22:59:49 +0200 Subject: [PATCH] Being thrown, or leaping, over blood/oil decals do not dirty your feet/shoes anymore (#17306) * asfsasfd * I hate tabulations * Whitespace Fix --------- Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com> --- .../effects/decals/Cleanable/humans.dm | 67 +++++++++++-------- html/changelogs/fluffyghost-fix15532.yml | 41 ++++++++++++ 2 files changed, 79 insertions(+), 29 deletions(-) create mode 100644 html/changelogs/fluffyghost-fix15532.yml diff --git a/code/game/objects/effects/decals/Cleanable/humans.dm b/code/game/objects/effects/decals/Cleanable/humans.dm index f13c277178a..2bf0f8248c2 100644 --- a/code/game/objects/effects/decals/Cleanable/humans.dm +++ b/code/game/objects/effects/decals/Cleanable/humans.dm @@ -89,41 +89,50 @@ var/hasfeet = 1 if((!l_foot || l_foot.is_stump()) && (!r_foot || r_foot.is_stump())) hasfeet = 0 - if(perp.shoes && !perp.buckled_to)//Adding blood to shoes - var/obj/item/clothing/shoes/S = perp.shoes - if(istype(S)) - if(S.item_flags & LIGHTSTEP) - return - S.blood_color = basecolor - S.track_footprint = max(amount, S.track_footprint) - if(!S.blood_overlay) - S.generate_blood_overlay() - if(!S.blood_DNA) - S.blood_DNA = list() - S.blood_overlay.color = basecolor - S.add_overlay(S.blood_overlay) - if(S.blood_overlay && S.blood_overlay.color != basecolor) - S.cut_overlay(S.blood_overlay, TRUE) - S.blood_overlay.color = basecolor - S.add_overlay(S.blood_overlay, TRUE) + + //If thrown (or leap manouvering), the mob is considered flying, so don't dirt its shoes + if(!perp.throwing) + + if(perp.shoes && !perp.buckled_to)//Adding blood to shoes + var/obj/item/clothing/shoes/S = perp.shoes + if(istype(S)) + if(S.item_flags & LIGHTSTEP) + return + S.blood_color = basecolor + S.track_footprint = max(amount, S.track_footprint) + if(!S.blood_overlay) + S.generate_blood_overlay() + if(!S.blood_DNA) + S.blood_DNA = list() + S.blood_overlay.color = basecolor + S.add_overlay(S.blood_overlay) + if(S.blood_overlay && S.blood_overlay.color != basecolor) + S.cut_overlay(S.blood_overlay, TRUE) + S.blood_overlay.color = basecolor + S.add_overlay(S.blood_overlay, TRUE) + if(blood_DNA) + S.blood_DNA |= blood_DNA.Copy() + + else if(hasfeet) //Or feet + perp.footprint_color = basecolor + perp.track_footprint = max(amount,perp.track_footprint) + LAZYINITLIST(perp.feet_blood_DNA) if(blood_DNA) - S.blood_DNA |= blood_DNA.Copy() + perp.feet_blood_DNA |= blood_DNA.Copy() + else if(perp.buckled_to && istype(perp.buckled_to, /obj/structure/bed/stool/chair/office/wheelchair)) + var/obj/structure/bed/stool/chair/office/wheelchair/W = perp.buckled_to + W.bloodiness = 4 - else if (hasfeet)//Or feet - perp.footprint_color = basecolor - perp.track_footprint = max(amount,perp.track_footprint) - LAZYINITLIST(perp.feet_blood_DNA) - if (blood_DNA) - perp.feet_blood_DNA |= blood_DNA.Copy() - else if (perp.buckled_to && istype(perp.buckled_to, /obj/structure/bed/stool/chair/office/wheelchair)) - var/obj/structure/bed/stool/chair/office/wheelchair/W = perp.buckled_to - W.bloodiness = 4 + perp.update_inv_shoes(1) + amount-- - perp.update_inv_shoes(1) - amount-- + //Point and laugh if(amount > 2 && prob(perp.slip_chance(perp.m_intent == M_RUN ? 20 : 5))) perp.slip(src, 4) + if(perp.throwing) + amount-- + /obj/effect/decal/cleanable/blood/attack_hand(mob/living/carbon/human/user) ..() if(dries && world.time > (bleed_time + drytime)) diff --git a/html/changelogs/fluffyghost-fix15532.yml b/html/changelogs/fluffyghost-fix15532.yml new file mode 100644 index 00000000000..11627bd5191 --- /dev/null +++ b/html/changelogs/fluffyghost-fix15532.yml @@ -0,0 +1,41 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: FluffyGhost + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - bugfix: "Being thrown, or leaping, over blood/oil decals do not dirty your feet/shoes anymore. Can still slip you."