diff --git a/code/__DEFINES/footsteps.dm b/code/__DEFINES/footsteps.dm index e66d518644..ef96b83cc8 100644 --- a/code/__DEFINES/footsteps.dm +++ b/code/__DEFINES/footsteps.dm @@ -6,6 +6,14 @@ #define FOOTSTEP_GRASS "grass" #define FOOTSTEP_WATER "water" #define FOOTSTEP_LAVA "lava" +//barefoot sounds +#define FOOTSTEP_WOOD_BAREFOOT "woodbarefoot" +#define FOOTSTEP_WOOD_CLAW "woodclaw" +#define FOOTSTEP_HARD_BAREFOOT "hardbarefoot" +#define FOOTSTEP_HARD_CLAW "hardclaw" +#define FOOTSTEP_CARPET_BAREFOOT "carpetbarefoot" +//misc footstep sounds +#define FOOTSTEP_GENERIC_HEAVY "heavy" /* @@ -63,4 +71,104 @@ GLOBAL_LIST_INIT(footstep, list( 'sound/effects/footstep/lava1.ogg', 'sound/effects/footstep/lava2.ogg', 'sound/effects/footstep/lava3.ogg'), 100, 0), -)) \ No newline at end of file +)) + +//bare footsteps lists +GLOBAL_LIST_INIT(barefootstep, list( + FOOTSTEP_WOOD_BAREFOOT = list(list( + 'sound/effects/footstep/woodbarefoot1.ogg', + 'sound/effects/footstep/woodbarefoot2.ogg', + 'sound/effects/footstep/woodbarefoot3.ogg', + 'sound/effects/footstep/woodbarefoot4.ogg', + 'sound/effects/footstep/woodbarefoot5.ogg'), 80, -1), + FOOTSTEP_HARD_BAREFOOT = list(list( + 'sound/effects/footstep/hardbarefoot1.ogg', + 'sound/effects/footstep/hardbarefoot2.ogg', + 'sound/effects/footstep/hardbarefoot3.ogg', + 'sound/effects/footstep/hardbarefoot4.ogg', + 'sound/effects/footstep/hardbarefoot5.ogg'), 80, -1), + FOOTSTEP_CARPET_BAREFOOT = list(list( + 'sound/effects/footstep/carpetbarefoot1.ogg', + 'sound/effects/footstep/carpetbarefoot2.ogg', + 'sound/effects/footstep/carpetbarefoot3.ogg', + 'sound/effects/footstep/carpetbarefoot4.ogg', + 'sound/effects/footstep/carpetbarefoot5.ogg'), 75, -2), + FOOTSTEP_SAND = list(list( + 'sound/effects/footstep/asteroid1.ogg', + 'sound/effects/footstep/asteroid2.ogg', + 'sound/effects/footstep/asteroid3.ogg', + 'sound/effects/footstep/asteroid4.ogg', + 'sound/effects/footstep/asteroid5.ogg'), 75, 0), + FOOTSTEP_GRASS = list(list( + 'sound/effects/footstep/grass1.ogg', + 'sound/effects/footstep/grass2.ogg', + 'sound/effects/footstep/grass3.ogg', + 'sound/effects/footstep/grass4.ogg'), 75, 0), + FOOTSTEP_WATER = list(list( + 'sound/effects/footstep/water1.ogg', + 'sound/effects/footstep/water2.ogg', + 'sound/effects/footstep/water3.ogg', + 'sound/effects/footstep/water4.ogg'), 100, 1), + FOOTSTEP_LAVA = list(list( + 'sound/effects/footstep/lava1.ogg', + 'sound/effects/footstep/lava2.ogg', + 'sound/effects/footstep/lava3.ogg'), 100, 0), +)) + +//claw footsteps lists +GLOBAL_LIST_INIT(clawfootstep, list( + FOOTSTEP_WOOD_CLAW = list(list( + 'sound/effects/footstep/woodclaw1.ogg', + 'sound/effects/footstep/woodclaw2.ogg', + 'sound/effects/footstep/woodclaw3.ogg', + 'sound/effects/footstep/woodclaw2.ogg', + 'sound/effects/footstep/woodclaw1.ogg'), 90, 1), + FOOTSTEP_HARD_CLAW = list(list( + 'sound/effects/footstep/hardclaw1.ogg', + 'sound/effects/footstep/hardclaw2.ogg', + 'sound/effects/footstep/hardclaw3.ogg', + 'sound/effects/footstep/hardclaw4.ogg', + 'sound/effects/footstep/hardclaw1.ogg'), 90, 1), + FOOTSTEP_CARPET_BAREFOOT = list(list( + 'sound/effects/footstep/carpetbarefoot1.ogg', + 'sound/effects/footstep/carpetbarefoot2.ogg', + 'sound/effects/footstep/carpetbarefoot3.ogg', + 'sound/effects/footstep/carpetbarefoot4.ogg', + 'sound/effects/footstep/carpetbarefoot5.ogg'), 75, -2), + FOOTSTEP_SAND = list(list( + 'sound/effects/footstep/asteroid1.ogg', + 'sound/effects/footstep/asteroid2.ogg', + 'sound/effects/footstep/asteroid3.ogg', + 'sound/effects/footstep/asteroid4.ogg', + 'sound/effects/footstep/asteroid5.ogg'), 75, 0), + FOOTSTEP_GRASS = list(list( + 'sound/effects/footstep/grass1.ogg', + 'sound/effects/footstep/grass2.ogg', + 'sound/effects/footstep/grass3.ogg', + 'sound/effects/footstep/grass4.ogg'), 75, 0), + FOOTSTEP_WATER = list(list( + 'sound/effects/footstep/water1.ogg', + 'sound/effects/footstep/water2.ogg', + 'sound/effects/footstep/water3.ogg', + 'sound/effects/footstep/water4.ogg'), 100, 1), + FOOTSTEP_LAVA = list(list( + 'sound/effects/footstep/lava1.ogg', + 'sound/effects/footstep/lava2.ogg', + 'sound/effects/footstep/lava3.ogg'), 100, 0), +)) + +//heavy footsteps list +GLOBAL_LIST_INIT(heavyfootstep, list( + FOOTSTEP_GENERIC_HEAVY = list(list( + 'sound/effects/footstep/heavy1.ogg', + 'sound/effects/footstep/heavy2.ogg'), 100, 2), + FOOTSTEP_WATER = list(list( + 'sound/effects/footstep/water1.ogg', + 'sound/effects/footstep/water2.ogg', + 'sound/effects/footstep/water3.ogg', + 'sound/effects/footstep/water4.ogg'), 100, 2), + FOOTSTEP_LAVA = list(list( + 'sound/effects/footstep/lava1.ogg', + 'sound/effects/footstep/lava2.ogg', + 'sound/effects/footstep/lava3.ogg'), 100, 0), +)) diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index 15eaadb2f2..8ff40c3ef9 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -67,7 +67,7 @@ #define islarva(A) (istype(A, /mob/living/carbon/alien/larva)) -#define isalienadult(A) (istype(A, /mob/living/carbon/alien/humanoid)) +#define isalienadult(A) (istype(A, /mob/living/carbon/alien/humanoid) || istype(A, /mob/living/simple_animal/hostile/alien)) #define isalienhunter(A) (istype(A, /mob/living/carbon/alien/humanoid/hunter)) @@ -123,6 +123,47 @@ #define isclown(A) (istype(A, /mob/living/simple_animal/hostile/retaliate/clown)) +GLOBAL_LIST_INIT(shoefootmob, typecacheof(list( + /mob/living/carbon/human/, + /mob/living/simple_animal/cow, + /mob/living/simple_animal/hostile/cat_butcherer, + /mob/living/simple_animal/hostile/faithless, + /mob/living/simple_animal/hostile/nanotrasen, + /mob/living/simple_animal/hostile/pirate, + /mob/living/simple_animal/hostile/russian, + /mob/living/simple_animal/hostile/syndicate, + /mob/living/simple_animal/hostile/wizard, + /mob/living/simple_animal/hostile/zombie, + /mob/living/simple_animal/hostile/retaliate/clown, + /mob/living/simple_animal/hostile/retaliate/spaceman, + /mob/living/simple_animal/hostile/retaliate/nanotrasenpeace, + /mob/living/simple_animal/hostile/retaliate/goat, + /mob/living/carbon/true_devil, + ))) + +GLOBAL_LIST_INIT(clawfootmob, typecacheof(list( + /mob/living/carbon/alien/humanoid, + /mob/living/simple_animal/hostile/alien, + /mob/living/simple_animal/pet/cat, + /mob/living/simple_animal/pet/dog, + /mob/living/simple_animal/pet/fox, + /mob/living/simple_animal/chicken, + /mob/living/simple_animal/hostile/bear, + /mob/living/simple_animal/hostile/jungle/mega_arachnid + ))) + +GLOBAL_LIST_INIT(barefootmob, typecacheof(list( + /mob/living/carbon/monkey, + /mob/living/simple_animal/pet/penguin, + /mob/living/simple_animal/hostile/gorilla, + /mob/living/simple_animal/hostile/jungle/mook + ))) + +GLOBAL_LIST_INIT(heavyfootmob, typecacheof(list( + /mob/living/simple_animal/hostile/megafauna, + /mob/living/simple_animal/hostile/jungle/leaper + ))) + //Misc mobs #define isobserver(A) (istype(A, /mob/dead/observer)) @@ -136,6 +177,15 @@ #define iseminence(A) (istype(A, /mob/camera/eminence)) +//Footstep helpers +#define isshoefoot(A) (is_type_in_typecache(A, GLOB.shoefootmob)) + +#define isclawfoot(A) (is_type_in_typecache(A, GLOB.clawfootmob)) + +#define isbarefoot(A) (is_type_in_typecache(A, GLOB.barefootmob)) + +#define isheavyfoot(A) (is_type_in_typecache(A, GLOB.heavyfootmob)) + //Objects #define isobj(A) istype(A, /obj) //override the byond proc because it returns true on children of /atom/movable that aren't objs diff --git a/code/datums/components/footstep.dm b/code/datums/components/footstep.dm index c93be4dae3..35b7d5ecd5 100644 --- a/code/datums/components/footstep.dm +++ b/code/datums/components/footstep.dm @@ -14,11 +14,15 @@ var/turf/open/T = get_turf(parent) if(!istype(T)) return + var/mob/living/LM = parent var/v = volume var/e = e_range - if(!T.footstep || LM.lying || !LM.canmove || LM.resting || LM.buckled || LM.throwing || LM.movement_type & (VENTCRAWLING | FLYING)) + if(!T.footstep || LM.buckled || LM.lying || !CHECK_MULTIPLE_BITFIELDS(LM.mobility_flags, MOBILITY_STAND | MOBILITY_MOVE) || LM.throwing || LM.movement_type & (VENTCRAWLING | FLYING)) + if (LM.lying && !(!T.footstep || LM.movement_type & (VENTCRAWLING | FLYING))) //play crawling sound if we're lying + playsound(T, 'sound/effects/footstep/crawl1.ogg', 15 * v) return + if(iscarbon(LM)) var/mob/living/carbon/C = LM if(!C.get_bodypart(BODY_ZONE_L_LEG) && !C.get_bodypart(BODY_ZONE_R_LEG)) @@ -27,13 +31,74 @@ v /= 2 e -= 5 steps++ - if(steps >= 3) + + if(steps >= 6) steps = 0 - else + + if(steps % 2) return - if(prob(80) && !LM.has_gravity(T)) // don't need to step as often when you hop around + + if(!LM.has_gravity(T) && steps != 0) // don't need to step as often when you hop around return - playsound(T, pick(GLOB.footstep[T.footstep][1]), - GLOB.footstep[T.footstep][2] * v, - TRUE, - GLOB.footstep[T.footstep][3] + e) + + //begin playsound shenanigans// + + //for barefooted non-clawed mobs like monkeys + if(isbarefoot(LM)) + playsound(T, pick(GLOB.barefootstep[T.barefootstep][1]), + GLOB.barefootstep[T.barefootstep][2] * v, + TRUE, + GLOB.barefootstep[T.barefootstep][3] + e) + return + + //for xenomorphs, dogs, and other clawed mobs + if(isclawfoot(LM)) + if(isalienadult(LM)) //xenos are stealthy and get quieter footsteps + v /= 3 + e -= 5 + + playsound(T, pick(GLOB.clawfootstep[T.clawfootstep][1]), + GLOB.clawfootstep[T.clawfootstep][2] * v, + TRUE, + GLOB.clawfootstep[T.clawfootstep][3] + e) + return + + //for megafauna and other large and imtimidating mobs such as the bloodminer + if(isheavyfoot(LM)) + playsound(T, pick(GLOB.heavyfootstep[T.heavyfootstep][1]), + GLOB.heavyfootstep[T.heavyfootstep][2] * v, + TRUE, + GLOB.heavyfootstep[T.heavyfootstep][3] + e) + return + + //for slimes + if(isslime(LM)) + playsound(T, 'sound/effects/footstep/slime1.ogg', 15 * v) + return + + //for (simple) humanoid mobs (clowns, russians, pirates, etc.) + if(isshoefoot(LM)) + if(!ishuman(LM)) + playsound(T, pick(GLOB.footstep[T.footstep][1]), + GLOB.footstep[T.footstep][2] * v, + TRUE, + GLOB.footstep[T.footstep][3] + e) + return + if(ishuman(LM)) //for proper humans, they're special + var/mob/living/carbon/human/H = LM + var/feetCover = (H.wear_suit && (H.wear_suit.body_parts_covered & FEET)) || (H.w_uniform && (H.w_uniform.body_parts_covered & FEET)) + + if(H.shoes || feetCover) //are we wearing shoes + playsound(T, pick(GLOB.footstep[T.footstep][1]), + GLOB.footstep[T.footstep][2] * v, + TRUE, + GLOB.footstep[T.footstep][3] + e) + + if((!H.shoes && !feetCover)) //are we NOT wearing shoes + if(H.dna.species.special_step_sounds) + playsound(T, pick(H.dna.species.special_step_sounds), 50, TRUE) + else + playsound(T, pick(GLOB.barefootstep[T.barefootstep][1]), + GLOB.barefootstep[T.barefootstep][2] * v, + TRUE, + GLOB.barefootstep[T.barefootstep][3] + e) \ No newline at end of file diff --git a/code/game/turfs/open.dm b/code/game/turfs/open.dm index 63b5f4b160..fed922c7b4 100644 --- a/code/game/turfs/open.dm +++ b/code/game/turfs/open.dm @@ -7,6 +7,9 @@ var/wet var/footstep = null + var/barefootstep = null + var/clawfootstep = null + var/heavyfootstep = null /turf/open/ComponentInitialize() . = ..() @@ -27,6 +30,9 @@ icon = 'icons/turf/floors.dmi' icon_state = "floor" footstep = FOOTSTEP_FLOOR + barefootstep = FOOTSTEP_HARD_BAREFOOT + clawfootstep = FOOTSTEP_HARD_CLAW + heavyfootstep = FOOTSTEP_GENERIC_HEAVY tiled_dirt = TRUE /turf/open/indestructible/Melt() @@ -42,6 +48,9 @@ /turf/open/indestructible/sound name = "squeaky floor" footstep = null + barefootstep = null + clawfootstep = null + heavyfootstep = null var/sound /turf/open/indestructible/sound/Entered(var/mob/AM) @@ -61,6 +70,10 @@ icon = 'icons/turf/floors.dmi' icon_state = "cobble" baseturfs = /turf/open/indestructible/cobble + footstep = FOOTSTEP_FLOOR + barefootstep = FOOTSTEP_HARD_BAREFOOT + clawfootstep = FOOTSTEP_HARD_CLAW + heavyfootstep = FOOTSTEP_GENERIC_HEAVY tiled_dirt = FALSE /turf/open/indestructible/necropolis @@ -71,6 +84,9 @@ baseturfs = /turf/open/indestructible/necropolis initial_gas_mix = LAVALAND_DEFAULT_ATMOS footstep = FOOTSTEP_LAVA + barefootstep = FOOTSTEP_LAVA + clawfootstep = FOOTSTEP_LAVA + heavyfootstep = FOOTSTEP_LAVA tiled_dirt = FALSE /turf/open/indestructible/necropolis/Initialize() @@ -108,6 +124,9 @@ desc = "A floor made of invulnerable notebook paper." icon_state = "paperfloor" footstep = null + barefootstep = null + clawfootstep = null + heavyfootstep = null tiled_dirt = FALSE /turf/open/indestructible/binary @@ -116,6 +135,9 @@ baseturfs = /turf/open/indestructible/binary icon_state = "binary" footstep = null + barefootstep = null + clawfootstep = null + heavyfootstep = null /turf/open/indestructible/airblock icon_state = "bluespace" @@ -128,6 +150,9 @@ icon_state = "reebe" baseturfs = /turf/open/indestructible/clock_spawn_room footstep = FOOTSTEP_PLATING + barefootstep = FOOTSTEP_HARD_BAREFOOT + clawfootstep = FOOTSTEP_HARD_CLAW + heavyfootstep = FOOTSTEP_GENERIC_HEAVY /turf/open/indestructible/clock_spawn_room/Entered() ..() diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm index 4523cc5b67..b00efc7ed6 100644 --- a/code/game/turfs/simulated/floor.dm +++ b/code/game/turfs/simulated/floor.dm @@ -7,6 +7,9 @@ baseturfs = /turf/open/floor/plating footstep = FOOTSTEP_FLOOR + barefootstep = FOOTSTEP_HARD_BAREFOOT + clawfootstep = FOOTSTEP_HARD_CLAW + heavyfootstep = FOOTSTEP_GENERIC_HEAVY var/icon_regular_floor = "floor" //used to remember what icon the tile should have by default var/icon_plating = "plating" diff --git a/code/game/turfs/simulated/floor/fancy_floor.dm b/code/game/turfs/simulated/floor/fancy_floor.dm index fc1dec2acb..7b45aa1fbb 100644 --- a/code/game/turfs/simulated/floor/fancy_floor.dm +++ b/code/game/turfs/simulated/floor/fancy_floor.dm @@ -13,6 +13,9 @@ floor_tile = /obj/item/stack/tile/wood broken_states = list("wood-broken", "wood-broken2", "wood-broken3", "wood-broken4", "wood-broken5", "wood-broken6", "wood-broken7") footstep = FOOTSTEP_WOOD + barefootstep = FOOTSTEP_WOOD_BAREFOOT + clawfootstep = FOOTSTEP_WOOD_CLAW + heavyfootstep = FOOTSTEP_GENERIC_HEAVY tiled_dirt = FALSE /turf/open/floor/wood/examine(mob/user) @@ -73,6 +76,9 @@ flags_1 = NONE bullet_bounce_sound = null footstep = FOOTSTEP_GRASS + barefootstep = FOOTSTEP_GRASS + clawfootstep = FOOTSTEP_GRASS + heavyfootstep = FOOTSTEP_GENERIC_HEAVY var/ore_type = /obj/item/stack/ore/glass var/turfverb = "uproot" tiled_dirt = FALSE @@ -103,6 +109,9 @@ slowdown = 2 bullet_sizzle = TRUE footstep = FOOTSTEP_SAND + barefootstep = FOOTSTEP_SAND + clawfootstep = FOOTSTEP_SAND + heavyfootstep = FOOTSTEP_GENERIC_HEAVY /turf/open/floor/grass/snow/try_replace_tile(obj/item/stack/tile/T, mob/user, params) return @@ -136,6 +145,9 @@ turfverb = "dig up" slowdown = 0 footstep = FOOTSTEP_SAND + barefootstep = FOOTSTEP_SAND + clawfootstep = FOOTSTEP_SAND + heavyfootstep = FOOTSTEP_GENERIC_HEAVY /turf/open/floor/grass/fakebasalt/Initialize() . = ..() @@ -156,6 +168,9 @@ flags_1 = NONE bullet_bounce_sound = null footstep = FOOTSTEP_CARPET + barefootstep = FOOTSTEP_CARPET_BAREFOOT + clawfootstep = FOOTSTEP_CARPET_BAREFOOT + heavyfootstep = FOOTSTEP_GENERIC_HEAVY tiled_dirt = FALSE /turf/open/floor/carpet/examine(mob/user) diff --git a/code/game/turfs/simulated/floor/misc_floor.dm b/code/game/turfs/simulated/floor/misc_floor.dm index 91744f3fa8..bff955086c 100644 --- a/code/game/turfs/simulated/floor/misc_floor.dm +++ b/code/game/turfs/simulated/floor/misc_floor.dm @@ -141,6 +141,9 @@ icon_state = "plating" baseturfs = /turf/open/floor/clockwork footstep = FOOTSTEP_PLATING + barefootstep = FOOTSTEP_HARD_BAREFOOT + clawfootstep = FOOTSTEP_HARD_CLAW + heavyfootstep = FOOTSTEP_GENERIC_HEAVY var/uses_overlay = TRUE var/obj/effect/clockwork/overlay/floor/realappearence diff --git a/code/game/turfs/simulated/floor/plating.dm b/code/game/turfs/simulated/floor/plating.dm index e783b8a9a0..036f54c710 100644 --- a/code/game/turfs/simulated/floor/plating.dm +++ b/code/game/turfs/simulated/floor/plating.dm @@ -13,6 +13,9 @@ intact = FALSE baseturfs = /turf/open/space footstep = FOOTSTEP_PLATING + barefootstep = FOOTSTEP_HARD_BAREFOOT + clawfootstep = FOOTSTEP_HARD_CLAW + heavyfootstep = FOOTSTEP_GENERIC_HEAVY var/attachment_holes = TRUE diff --git a/code/game/turfs/simulated/floor/plating/asteroid.dm b/code/game/turfs/simulated/floor/plating/asteroid.dm index c33612c9bc..d9966ee55c 100644 --- a/code/game/turfs/simulated/floor/plating/asteroid.dm +++ b/code/game/turfs/simulated/floor/plating/asteroid.dm @@ -10,6 +10,9 @@ icon_plating = "asteroid" postdig_icon_change = TRUE footstep = FOOTSTEP_SAND + barefootstep = FOOTSTEP_SAND + clawfootstep = FOOTSTEP_SAND + heavyfootstep = FOOTSTEP_GENERIC_HEAVY var/environment_type = "asteroid" var/turf_type = /turf/open/floor/plating/asteroid //Because caves do whacky shit to revert to normal var/floor_variance = 20 //probability floor has a different icon state @@ -333,6 +336,9 @@ icon_plating = "snow-ice" environment_type = "snow_cavern" footstep = FOOTSTEP_FLOOR + barefootstep = FOOTSTEP_HARD_BAREFOOT + clawfootstep = FOOTSTEP_HARD_CLAW + heavyfootstep = FOOTSTEP_GENERIC_HEAVY /turf/open/floor/plating/asteroid/snow/ice/burn_tile() return FALSE diff --git a/code/game/turfs/simulated/floor/plating/dirt.dm b/code/game/turfs/simulated/floor/plating/dirt.dm index dc865634f4..b9bcc0937b 100644 --- a/code/game/turfs/simulated/floor/plating/dirt.dm +++ b/code/game/turfs/simulated/floor/plating/dirt.dm @@ -9,6 +9,9 @@ planetary_atmos = TRUE attachment_holes = FALSE footstep = FOOTSTEP_SAND + barefootstep = FOOTSTEP_SAND + clawfootstep = FOOTSTEP_SAND + heavyfootstep = FOOTSTEP_GENERIC_HEAVY tiled_dirt = FALSE /turf/open/floor/plating/dirt/dark diff --git a/code/game/turfs/simulated/floor/plating/misc_plating.dm b/code/game/turfs/simulated/floor/plating/misc_plating.dm index f86ab3c03c..15b039193d 100644 --- a/code/game/turfs/simulated/floor/plating/misc_plating.dm +++ b/code/game/turfs/simulated/floor/plating/misc_plating.dm @@ -47,6 +47,9 @@ planetary_atmos = TRUE attachment_holes = FALSE footstep = FOOTSTEP_SAND + barefootstep = FOOTSTEP_SAND + clawfootstep = FOOTSTEP_SAND + heavyfootstep = FOOTSTEP_GENERIC_HEAVY tiled_dirt = FALSE /turf/open/floor/plating/ashplanet/Initialize() @@ -79,6 +82,9 @@ layer = MID_TURF_LAYER canSmoothWith = list(/turf/open/floor/plating/ashplanet/rocky, /turf/closed) footstep = FOOTSTEP_FLOOR + barefootstep = FOOTSTEP_HARD_BAREFOOT + clawfootstep = FOOTSTEP_HARD_CLAW + heavyfootstep = FOOTSTEP_GENERIC_HEAVY /turf/open/floor/plating/ashplanet/wateryrock gender = PLURAL @@ -87,6 +93,9 @@ icon_state = "wateryrock" slowdown = 2 footstep = FOOTSTEP_FLOOR + barefootstep = FOOTSTEP_HARD_BAREFOOT + clawfootstep = FOOTSTEP_HARD_CLAW + heavyfootstep = FOOTSTEP_GENERIC_HEAVY /turf/open/floor/plating/ashplanet/wateryrock/Initialize() icon_state = "[icon_state][rand(1, 9)]" @@ -100,6 +109,9 @@ attachment_holes = FALSE bullet_bounce_sound = null footstep = FOOTSTEP_SAND + barefootstep = FOOTSTEP_SAND + clawfootstep = FOOTSTEP_SAND + heavyfootstep = FOOTSTEP_GENERIC_HEAVY /turf/open/floor/plating/beach/try_replace_tile(obj/item/stack/tile/T, mob/user, params) return @@ -141,6 +153,9 @@ name = "iron sand" desc = "Like sand, but more metal." footstep = FOOTSTEP_SAND + barefootstep = FOOTSTEP_SAND + clawfootstep = FOOTSTEP_SAND + heavyfootstep = FOOTSTEP_GENERIC_HEAVY /turf/open/floor/plating/ironsand/Initialize() . = ..() @@ -165,6 +180,9 @@ attachment_holes = FALSE bullet_sizzle = TRUE footstep = FOOTSTEP_FLOOR + barefootstep = FOOTSTEP_HARD_BAREFOOT + clawfootstep = FOOTSTEP_HARD_CLAW + heavyfootstep = FOOTSTEP_GENERIC_HEAVY /turf/open/floor/plating/ice/Initialize() . = ..() @@ -202,6 +220,9 @@ attachment_holes = FALSE planetary_atmos = TRUE footstep = FOOTSTEP_SAND + barefootstep = FOOTSTEP_SAND + clawfootstep = FOOTSTEP_SAND + heavyfootstep = FOOTSTEP_GENERIC_HEAVY /turf/open/floor/plating/snowed/cavern initial_gas_mix = "o2=0;n2=82;plasma=24;TEMP=120" diff --git a/code/game/turfs/simulated/floor/reinf_floor.dm b/code/game/turfs/simulated/floor/reinf_floor.dm index e677de8c5c..1a477d5d9a 100644 --- a/code/game/turfs/simulated/floor/reinf_floor.dm +++ b/code/game/turfs/simulated/floor/reinf_floor.dm @@ -7,6 +7,9 @@ heat_capacity = INFINITY floor_tile = /obj/item/stack/rods footstep = FOOTSTEP_PLATING + barefootstep = FOOTSTEP_HARD_BAREFOOT + clawfootstep = FOOTSTEP_HARD_CLAW + heavyfootstep = FOOTSTEP_GENERIC_HEAVY tiled_dirt = FALSE /turf/open/floor/engine/examine(mob/user) diff --git a/code/game/turfs/simulated/lava.dm b/code/game/turfs/simulated/lava.dm index b9e355b122..e24736ecf3 100644 --- a/code/game/turfs/simulated/lava.dm +++ b/code/game/turfs/simulated/lava.dm @@ -13,6 +13,9 @@ bullet_bounce_sound = 'sound/items/welder2.ogg' footstep = FOOTSTEP_LAVA + barefootstep = FOOTSTEP_LAVA + clawfootstep = FOOTSTEP_LAVA + heavyfootstep = FOOTSTEP_LAVA /turf/open/lava/ex_act(severity, target) contents_explosion(severity, target) diff --git a/code/game/turfs/simulated/water.dm b/code/game/turfs/simulated/water.dm index b46dd1d06c..708ca230b1 100644 --- a/code/game/turfs/simulated/water.dm +++ b/code/game/turfs/simulated/water.dm @@ -12,3 +12,6 @@ bullet_bounce_sound = null //needs a splashing sound one day. footstep = FOOTSTEP_WATER + barefootstep = FOOTSTEP_WATER + clawfootstep = FOOTSTEP_WATER + heavyfootstep = FOOTSTEP_WATER diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm index 034ccc4c39..2001c61e12 100644 --- a/code/modules/mob/living/simple_animal/slime/slime.dm +++ b/code/modules/mob/living/simple_animal/slime/slime.dm @@ -61,6 +61,8 @@ var/mood = "" // To show its face var/mutator_used = FALSE //So you can't shove a dozen mutators into a single slime var/force_stasis = FALSE + + do_footstep = TRUE var/static/regex/slime_name_regex = new("\\w+ (baby|adult) slime \\(\\d+\\)") ///////////TIME FOR SUBSPECIES diff --git a/sound/effects/footstep/carpetbarefoot1.ogg b/sound/effects/footstep/carpetbarefoot1.ogg new file mode 100644 index 0000000000..81615d2970 Binary files /dev/null and b/sound/effects/footstep/carpetbarefoot1.ogg differ diff --git a/sound/effects/footstep/carpetbarefoot2.ogg b/sound/effects/footstep/carpetbarefoot2.ogg new file mode 100644 index 0000000000..d1c7e1627e Binary files /dev/null and b/sound/effects/footstep/carpetbarefoot2.ogg differ diff --git a/sound/effects/footstep/carpetbarefoot3.ogg b/sound/effects/footstep/carpetbarefoot3.ogg new file mode 100644 index 0000000000..13ecb3398b Binary files /dev/null and b/sound/effects/footstep/carpetbarefoot3.ogg differ diff --git a/sound/effects/footstep/carpetbarefoot4.ogg b/sound/effects/footstep/carpetbarefoot4.ogg new file mode 100644 index 0000000000..31850250be Binary files /dev/null and b/sound/effects/footstep/carpetbarefoot4.ogg differ diff --git a/sound/effects/footstep/carpetbarefoot5.ogg b/sound/effects/footstep/carpetbarefoot5.ogg new file mode 100644 index 0000000000..e9a44765b1 Binary files /dev/null and b/sound/effects/footstep/carpetbarefoot5.ogg differ diff --git a/sound/effects/footstep/hardbarefoot1.ogg b/sound/effects/footstep/hardbarefoot1.ogg new file mode 100644 index 0000000000..2614872191 Binary files /dev/null and b/sound/effects/footstep/hardbarefoot1.ogg differ diff --git a/sound/effects/footstep/hardbarefoot2.ogg b/sound/effects/footstep/hardbarefoot2.ogg new file mode 100644 index 0000000000..7d89d96105 Binary files /dev/null and b/sound/effects/footstep/hardbarefoot2.ogg differ diff --git a/sound/effects/footstep/hardbarefoot3.ogg b/sound/effects/footstep/hardbarefoot3.ogg new file mode 100644 index 0000000000..639751fab0 Binary files /dev/null and b/sound/effects/footstep/hardbarefoot3.ogg differ diff --git a/sound/effects/footstep/hardbarefoot4.ogg b/sound/effects/footstep/hardbarefoot4.ogg new file mode 100644 index 0000000000..9cf363a18c Binary files /dev/null and b/sound/effects/footstep/hardbarefoot4.ogg differ diff --git a/sound/effects/footstep/hardbarefoot5.ogg b/sound/effects/footstep/hardbarefoot5.ogg new file mode 100644 index 0000000000..72ebeca84d Binary files /dev/null and b/sound/effects/footstep/hardbarefoot5.ogg differ diff --git a/sound/effects/footstep/hardclaw1.ogg b/sound/effects/footstep/hardclaw1.ogg new file mode 100644 index 0000000000..1d66eb4d49 Binary files /dev/null and b/sound/effects/footstep/hardclaw1.ogg differ diff --git a/sound/effects/footstep/hardclaw2.ogg b/sound/effects/footstep/hardclaw2.ogg new file mode 100644 index 0000000000..a6a7951d77 Binary files /dev/null and b/sound/effects/footstep/hardclaw2.ogg differ diff --git a/sound/effects/footstep/hardclaw3.ogg b/sound/effects/footstep/hardclaw3.ogg new file mode 100644 index 0000000000..a2e5462199 Binary files /dev/null and b/sound/effects/footstep/hardclaw3.ogg differ diff --git a/sound/effects/footstep/hardclaw4.ogg b/sound/effects/footstep/hardclaw4.ogg new file mode 100644 index 0000000000..bd845a8782 Binary files /dev/null and b/sound/effects/footstep/hardclaw4.ogg differ diff --git a/sound/effects/footstep/slime1.ogg b/sound/effects/footstep/slime1.ogg new file mode 100644 index 0000000000..a83b7646f1 Binary files /dev/null and b/sound/effects/footstep/slime1.ogg differ diff --git a/sound/effects/footstep/woodbarefoot1.ogg b/sound/effects/footstep/woodbarefoot1.ogg new file mode 100644 index 0000000000..bb66da770e Binary files /dev/null and b/sound/effects/footstep/woodbarefoot1.ogg differ diff --git a/sound/effects/footstep/woodbarefoot2.ogg b/sound/effects/footstep/woodbarefoot2.ogg new file mode 100644 index 0000000000..67397d868e Binary files /dev/null and b/sound/effects/footstep/woodbarefoot2.ogg differ diff --git a/sound/effects/footstep/woodbarefoot3.ogg b/sound/effects/footstep/woodbarefoot3.ogg new file mode 100644 index 0000000000..113a89003a Binary files /dev/null and b/sound/effects/footstep/woodbarefoot3.ogg differ diff --git a/sound/effects/footstep/woodbarefoot4.ogg b/sound/effects/footstep/woodbarefoot4.ogg new file mode 100644 index 0000000000..ccc2e82075 Binary files /dev/null and b/sound/effects/footstep/woodbarefoot4.ogg differ diff --git a/sound/effects/footstep/woodbarefoot5.ogg b/sound/effects/footstep/woodbarefoot5.ogg new file mode 100644 index 0000000000..6fbce27109 Binary files /dev/null and b/sound/effects/footstep/woodbarefoot5.ogg differ diff --git a/sound/effects/footstep/woodclaw1.ogg b/sound/effects/footstep/woodclaw1.ogg new file mode 100644 index 0000000000..181403b93f Binary files /dev/null and b/sound/effects/footstep/woodclaw1.ogg differ diff --git a/sound/effects/footstep/woodclaw2.ogg b/sound/effects/footstep/woodclaw2.ogg new file mode 100644 index 0000000000..29b04a9554 Binary files /dev/null and b/sound/effects/footstep/woodclaw2.ogg differ diff --git a/sound/effects/footstep/woodclaw3.ogg b/sound/effects/footstep/woodclaw3.ogg new file mode 100644 index 0000000000..9f4ac6d334 Binary files /dev/null and b/sound/effects/footstep/woodclaw3.ogg differ