Merge pull request #9169 from MistakeNot4892/movementsounds

Generalized handle_movement() checking from shoes to /obj/item.
This commit is contained in:
Atermonera
2023-07-23 15:23:59 -08:00
committed by GitHub
5 changed files with 37 additions and 15 deletions

View File

@@ -971,3 +971,9 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
if (!user.check_dexterity(test_dexterity, src, silent)) // Handles its own failure message.
return
return FALSE
/obj/item/proc/is_mob_movement_sensitive()
return FALSE
/obj/item/proc/handle_movement(var/turf/walking, var/running)
return FALSE

View File

@@ -100,17 +100,19 @@
var/bloodcolor=""
var/mob/living/carbon/human/H = M
if(istype(H) && istype(H.shoes, /obj/item/clothing/shoes))
var/obj/item/clothing/shoes/S = H.shoes
S.handle_movement(src, IS_RUNNING(H))
if(S.track_blood && S.blood_DNA)
bloodDNA = S.blood_DNA
bloodcolor=S.blood_color
S.track_blood--
else if(M.track_blood && M.feet_blood_DNA)
bloodDNA = M.feet_blood_DNA
bloodcolor = M.feet_blood_color
M.track_blood--
if(istype(H))
if(istype(H.shoes, /obj/item/clothing/shoes))
var/obj/item/clothing/shoes/S = H.shoes
if(S.track_blood && S.blood_DNA)
bloodDNA = S.blood_DNA
bloodcolor=S.blood_color
S.track_blood--
else if(M.track_blood && M.feet_blood_DNA)
bloodDNA = M.feet_blood_DNA
bloodcolor = M.feet_blood_color
M.track_blood--
for(var/obj/item/thing in H.get_movement_sensitive_gear())
thing.handle_movement(src, IS_RUNNING(H))
if(bloodDNA)
src.AddTracks(track_type, bloodDNA , M.dir, 0, bloodcolor) // Coming

View File

@@ -695,9 +695,6 @@ var/global/list/light_overlay_cache = list() //see get_worn_overlay() on helmets
update_icon()
return ..()
/obj/item/clothing/shoes/proc/handle_movement(var/turf/walking, var/running)
return
/obj/item/clothing/shoes/update_clothing_icon()
if (ismob(src.loc))
var/mob/M = src.loc

View File

@@ -73,6 +73,9 @@
var/footstep = 1 //used for squeeks whilst walking
species_restricted = null
/obj/item/clothing/shoes/clown_shoes/is_mob_movement_sensitive()
return TRUE
/obj/item/clothing/shoes/clown_shoes/handle_movement(var/turf/walking, var/running)
if(running)
if(footstep >= 2)
@@ -216,4 +219,4 @@
bootcolor = "orange"
/obj/item/clothing/shoes/ranger/yellow
bootcolor = "yellow"
bootcolor = "yellow"

View File

@@ -1673,3 +1673,17 @@
/mob/living/carbon/human/hearing_boost_range()
return (hearing_boost_range + species.hearboost)
// Add gear to this proc that needs to be checked for movement sensitivity.
// Keep in mind this list will be iterated every single time the mob moves.
// This should really be a signal or something but augh.
/mob/living/carbon/human/proc/get_movement_sensitive_gear()
// Clown shoes.
if(shoes && shoes.is_mob_movement_sensitive())
LAZYADD(., shoes)
// Tail bells.
var/obj/item/clothing/uniform = w_uniform
if(istype(uniform) && length(uniform.accessories))
for(var/obj/item/accessory in uniform.accessories)
if(accessory.is_mob_movement_sensitive())
LAZYADD(., accessory)