diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index e456c1d08f3..50f4cb20296 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -121,6 +121,8 @@ /mob/living/carbon/human/Move() . = ..() + if(.) //We moved + handle_leg_damage() var/turf/T = loc var/footsound @@ -154,6 +156,21 @@ if (footstep % 2) playsound(src, is_noisy ? footsound : species.footsound, 40, 1, required_asfx_toggles = ASFX_FOOTSTEPS) +/mob/living/carbon/human/proc/handle_leg_damage() + if(!can_feel_pain()) + return + var/crutches = 0 + for (var/obj/item/cane/C as anything in get_type_in_hands(/obj/item/cane)) + if(istype(C) && (C?.can_support)) + crutches++ + for(var/organ_name in list(BP_L_LEG, BP_R_LEG, BP_L_FOOT, BP_R_FOOT)) + var/obj/item/organ/external/E = get_organ(organ_name) + if(E && (ORGAN_IS_DISLOCATED(E)|| E.is_broken())) + if(crutches) + crutches-- + else + E.add_pain(10) + /mob/living/carbon/human/mob_has_gravity() . = ..() if(!. && mob_negates_gravity()) diff --git a/html/changelogs/wezzy_crutchforbadengies.yml b/html/changelogs/wezzy_crutchforbadengies.yml new file mode 100644 index 00000000000..68499652756 --- /dev/null +++ b/html/changelogs/wezzy_crutchforbadengies.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: Wowzewow (Wezzy) + +# 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: + - rscadd: "When walking without crutches with a broken leg, it will hurt." \ No newline at end of file