diff --git a/code/citadel/crew_objectives/cit_crewobjectives_civilian.dm b/code/citadel/crew_objectives/cit_crewobjectives_civilian.dm index 580038e191..0a867266ad 100644 --- a/code/citadel/crew_objectives/cit_crewobjectives_civilian.dm +++ b/code/citadel/crew_objectives/cit_crewobjectives_civilian.dm @@ -107,7 +107,8 @@ /datum/objective/crew/clean/check_completion() for(var/area/A in areas) for(var/obj/effect/decal/cleanable/C in area_contents(A)) - return FALSE + if(C && C.alpha >= 150) + return FALSE return TRUE /datum/objective/crew/slipster //ported from old Hippie with adjustments diff --git a/code/modules/mob/living/simple_animal/bot/cleanbot.dm b/code/modules/mob/living/simple_animal/bot/cleanbot.dm index 6959c30113..b9276116d5 100644 --- a/code/modules/mob/living/simple_animal/bot/cleanbot.dm +++ b/code/modules/mob/living/simple_animal/bot/cleanbot.dm @@ -181,7 +181,7 @@ /obj/effect/decal/cleanable/flour, /obj/effect/decal/cleanable/ash, /obj/effect/decal/cleanable/greenglow, - /obj/effect/decal/cleanable/dirt, + ///obj/effect/decal/cleanable/dirt, Cit change - removes dirt from the cleanbot target list to compensate for the mass amount of dirt decals present with footdirt /obj/effect/decal/cleanable/deadcockroach, /obj/effect/decal/remains ) diff --git a/modular_citadel/cit_turfs.dm b/modular_citadel/cit_turfs.dm new file mode 100644 index 0000000000..d5a9c8b524 --- /dev/null +++ b/modular_citadel/cit_turfs.dm @@ -0,0 +1,131 @@ +//Yes, hi. This is the file that handles Citadel's turf modifications. + +//But before we touch turfs, we'll take some time to define a couple of things for footstep sounds. +/mob/living + var/makesfootstepsounds + var/footstepcount + +/mob/living/carbon/human + makesfootstepsounds = TRUE + +/atom + var/footstepsoundoverride + +//All of these sounds are from CEV Eris as of 11/25/2017, the time when the original PR adding footstep sounds was made. +GLOBAL_LIST_INIT(turf_footstep_sounds, list( + "floor" = list('modular_citadel/sound/footstep/floor1.ogg','modular_citadel/sound/footstep/floor2.ogg','modular_citadel/sound/footstep/floor3.ogg','modular_citadel/sound/footstep/floor4.ogg','modular_citadel/sound/footstep/floor5.ogg'), + "plating" = list('modular_citadel/sound/footstep/plating1.ogg','modular_citadel/sound/footstep/plating2.ogg','modular_citadel/sound/footstep/plating3.ogg','modular_citadel/sound/footstep/plating4.ogg','modular_citadel/sound/footstep/plating5.ogg'), + "wood" = list('modular_citadel/sound/footstep/wood1.ogg','modular_citadel/sound/footstep/wood2.ogg','modular_citadel/sound/footstep/wood3.ogg','modular_citadel/sound/footstep/wood4.ogg','modular_citadel/sound/footstep/wood5.ogg'), + "carpet" = list('modular_citadel/sound/footstep/carpet1.ogg','modular_citadel/sound/footstep/carpet2.ogg','modular_citadel/sound/footstep/carpet3.ogg','modular_citadel/sound/footstep/carpet4.ogg','modular_citadel/sound/footstep/carpet5.ogg'), + "hull" = list('modular_citadel/sound/footstep/hull1.ogg','modular_citadel/sound/footstep/hull2.ogg','modular_citadel/sound/footstep/hull3.ogg','modular_citadel/sound/footstep/hull4.ogg','modular_citadel/sound/footstep/hull5.ogg'), + "catwalk" = list('modular_citadel/sound/footstep/catwalk1.ogg','modular_citadel/sound/footstep/catwalk2.ogg','modular_citadel/sound/footstep/catwalk3.ogg','modular_citadel/sound/footstep/catwalk4.ogg','modular_citadel/sound/footstep/catwalk5.ogg'), + "asteroid" = list('modular_citadel/sound/footstep/asteroid1.ogg','modular_citadel/sound/footstep/asteroid2.ogg','modular_citadel/sound/footstep/asteroid3.ogg','modular_citadel/sound/footstep/asteroid4.ogg','modular_citadel/sound/footstep/asteroid5.ogg') + )) + +/turf/open + var/footstepsounds + +/turf/open/floor + footstepsounds = "floor" + +/turf/open/floor/plating + footstepsounds = "plating" + +/turf/open/floor/wood + footstepsounds = "wood" + +/turf/open/floor/plating/asteroid + footstepsounds = "asteroid" + +/turf/open/floor/plating/dirt + footstepsounds = "asteroid" + +/turf/open/floor/grass + footstepsounds = "asteroid" + +/turf/open/floor/carpet + footstepsounds = "carpet" + +/turf/open/floor/plasteel/grimy + footstepsounds = "carpet" + +/obj/machinery/atmospherics/components/unary/vent_pump + footstepsoundoverride = "catwalk" + +/obj/machinery/atmospherics/components/unary/vent_scrubber + footstepsoundoverride = "catwalk" + +/obj/structure/disposalpipe + footstepsoundoverride = "catwalk" + +/obj/machinery/holopad + footstepsoundoverride = "catwalk" + +/obj/structure/table + footstepsoundoverride = "hull" + +/obj/structure/table/wood + footstepsoundoverride = "wood" + +/turf/open/floor/Entered(atom/obj, atom/oldloc) + . = ..() + CitDirtify(obj, oldloc) + +/mob/living/Move(atom/newloc, direct) + . = ..() + if(. && makesfootstepsounds) + CitFootstep(newloc) + +//Baystation-styled tile dirtification. +/turf/open/floor/proc/CitDirtify(atom/obj, atom/oldloc) + if(prob(50)) + if(has_gravity(src) && !isobserver(obj)) + var/dirtamount + var/obj/effect/decal/cleanable/dirt/dirt = locate(/obj/effect/decal/cleanable/dirt, src) + if(!dirt) + dirt = new/obj/effect/decal/cleanable/dirt(src) + dirt.alpha = 0 + dirtamount = 0 + dirtamount = dirt.alpha + 1 + if(oldloc && istype(oldloc, /turf/open/floor)) + var/obj/effect/decal/cleanable/dirt/spreadindirt = locate(/obj/effect/decal/cleanable/dirt, oldloc) + if(spreadindirt && spreadindirt.alpha) + dirtamount += round(spreadindirt.alpha * 0.05) + dirt.alpha = min(dirtamount,255) + return TRUE + +//The proc that handles footsteps! It's pure, unfiltered spaghetti code. +/mob/living/proc/CitFootstep(turf/open/floor) + if(floor && istype(floor,/turf/open) && floor.footstepsounds) + if(has_gravity(floor) || prob(25)) + footstepcount++ + if(canmove && !lying && !buckled && makesfootstepsounds && m_intent == MOVE_INTENT_RUN && footstepcount >= 3) + footstepcount = 0 + var/overriddenfootstepsound + if(footstepsoundoverride) + if(isfile(footstepsoundoverride)) + overriddenfootstepsound = list(footstepsoundoverride) + else + overriddenfootstepsound = footstepsoundoverride + if(!overriddenfootstepsound && istype(src, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = src + if(H && H.shoes) + var/obj/item/clothing/shoes/S = H.shoes + if(S && S.footstepsoundoverride) + if(isfile(S.footstepsoundoverride)) + overriddenfootstepsound = list(S.footstepsoundoverride) + else + overriddenfootstepsound = S.footstepsoundoverride + if(!overriddenfootstepsound && floor.contents) + var/objschecked + for(var/atom/childobj in floor.contents) + if(childobj.footstepsoundoverride && childobj.invisibility < INVISIBILITY_MAXIMUM) + if(isfile(childobj.footstepsoundoverride)) + overriddenfootstepsound = list(childobj.footstepsoundoverride) + else + overriddenfootstepsound = childobj.footstepsoundoverride + break + objschecked++ + if(objschecked >= 25) + break //walking on 50k foam darts didn't crash the server during my testing, but its better to be safe than sorry + playsound(src,(overriddenfootstepsound ? (islist(overriddenfootstepsound) ? pick(overriddenfootstepsound) : pick(GLOB.turf_footstep_sounds[overriddenfootstepsound])) : (islist(floor.footstepsounds) ? pick(floor.footstepsounds) : pick(GLOB.turf_footstep_sounds[floor.footstepsounds]))),50, 1) diff --git a/modular_citadel/sound/footstep/asteroid1.ogg b/modular_citadel/sound/footstep/asteroid1.ogg new file mode 100644 index 0000000000..1cb215dc78 Binary files /dev/null and b/modular_citadel/sound/footstep/asteroid1.ogg differ diff --git a/modular_citadel/sound/footstep/asteroid2.ogg b/modular_citadel/sound/footstep/asteroid2.ogg new file mode 100644 index 0000000000..331d0ef241 Binary files /dev/null and b/modular_citadel/sound/footstep/asteroid2.ogg differ diff --git a/modular_citadel/sound/footstep/asteroid3.ogg b/modular_citadel/sound/footstep/asteroid3.ogg new file mode 100644 index 0000000000..90fbf251a0 Binary files /dev/null and b/modular_citadel/sound/footstep/asteroid3.ogg differ diff --git a/modular_citadel/sound/footstep/asteroid4.ogg b/modular_citadel/sound/footstep/asteroid4.ogg new file mode 100644 index 0000000000..186ff17a43 Binary files /dev/null and b/modular_citadel/sound/footstep/asteroid4.ogg differ diff --git a/modular_citadel/sound/footstep/asteroid5.ogg b/modular_citadel/sound/footstep/asteroid5.ogg new file mode 100644 index 0000000000..0ea4c962d0 Binary files /dev/null and b/modular_citadel/sound/footstep/asteroid5.ogg differ diff --git a/modular_citadel/sound/footstep/carpet1.ogg b/modular_citadel/sound/footstep/carpet1.ogg new file mode 100644 index 0000000000..2735a9bf3d Binary files /dev/null and b/modular_citadel/sound/footstep/carpet1.ogg differ diff --git a/modular_citadel/sound/footstep/carpet2.ogg b/modular_citadel/sound/footstep/carpet2.ogg new file mode 100644 index 0000000000..07e5f2320a Binary files /dev/null and b/modular_citadel/sound/footstep/carpet2.ogg differ diff --git a/modular_citadel/sound/footstep/carpet3.ogg b/modular_citadel/sound/footstep/carpet3.ogg new file mode 100644 index 0000000000..edb0193f6e Binary files /dev/null and b/modular_citadel/sound/footstep/carpet3.ogg differ diff --git a/modular_citadel/sound/footstep/carpet4.ogg b/modular_citadel/sound/footstep/carpet4.ogg new file mode 100644 index 0000000000..c9598e2b73 Binary files /dev/null and b/modular_citadel/sound/footstep/carpet4.ogg differ diff --git a/modular_citadel/sound/footstep/carpet5.ogg b/modular_citadel/sound/footstep/carpet5.ogg new file mode 100644 index 0000000000..076818323a Binary files /dev/null and b/modular_citadel/sound/footstep/carpet5.ogg differ diff --git a/modular_citadel/sound/footstep/catwalk1.ogg b/modular_citadel/sound/footstep/catwalk1.ogg new file mode 100644 index 0000000000..5d6ad7b4a0 Binary files /dev/null and b/modular_citadel/sound/footstep/catwalk1.ogg differ diff --git a/modular_citadel/sound/footstep/catwalk2.ogg b/modular_citadel/sound/footstep/catwalk2.ogg new file mode 100644 index 0000000000..07a624dbe4 Binary files /dev/null and b/modular_citadel/sound/footstep/catwalk2.ogg differ diff --git a/modular_citadel/sound/footstep/catwalk3.ogg b/modular_citadel/sound/footstep/catwalk3.ogg new file mode 100644 index 0000000000..acff22e386 Binary files /dev/null and b/modular_citadel/sound/footstep/catwalk3.ogg differ diff --git a/modular_citadel/sound/footstep/catwalk4.ogg b/modular_citadel/sound/footstep/catwalk4.ogg new file mode 100644 index 0000000000..7235a6b9fe Binary files /dev/null and b/modular_citadel/sound/footstep/catwalk4.ogg differ diff --git a/modular_citadel/sound/footstep/catwalk5.ogg b/modular_citadel/sound/footstep/catwalk5.ogg new file mode 100644 index 0000000000..c33f248acd Binary files /dev/null and b/modular_citadel/sound/footstep/catwalk5.ogg differ diff --git a/modular_citadel/sound/footstep/floor1.ogg b/modular_citadel/sound/footstep/floor1.ogg new file mode 100644 index 0000000000..1e3e155839 Binary files /dev/null and b/modular_citadel/sound/footstep/floor1.ogg differ diff --git a/modular_citadel/sound/footstep/floor2.ogg b/modular_citadel/sound/footstep/floor2.ogg new file mode 100644 index 0000000000..cce5a25d82 Binary files /dev/null and b/modular_citadel/sound/footstep/floor2.ogg differ diff --git a/modular_citadel/sound/footstep/floor3.ogg b/modular_citadel/sound/footstep/floor3.ogg new file mode 100644 index 0000000000..16ab67f729 Binary files /dev/null and b/modular_citadel/sound/footstep/floor3.ogg differ diff --git a/modular_citadel/sound/footstep/floor4.ogg b/modular_citadel/sound/footstep/floor4.ogg new file mode 100644 index 0000000000..9ef15430ff Binary files /dev/null and b/modular_citadel/sound/footstep/floor4.ogg differ diff --git a/modular_citadel/sound/footstep/floor5.ogg b/modular_citadel/sound/footstep/floor5.ogg new file mode 100644 index 0000000000..0f6a66057d Binary files /dev/null and b/modular_citadel/sound/footstep/floor5.ogg differ diff --git a/modular_citadel/sound/footstep/hull1.ogg b/modular_citadel/sound/footstep/hull1.ogg new file mode 100644 index 0000000000..615df6c550 Binary files /dev/null and b/modular_citadel/sound/footstep/hull1.ogg differ diff --git a/modular_citadel/sound/footstep/hull2.ogg b/modular_citadel/sound/footstep/hull2.ogg new file mode 100644 index 0000000000..3aecb743f7 Binary files /dev/null and b/modular_citadel/sound/footstep/hull2.ogg differ diff --git a/modular_citadel/sound/footstep/hull3.ogg b/modular_citadel/sound/footstep/hull3.ogg new file mode 100644 index 0000000000..03339131f6 Binary files /dev/null and b/modular_citadel/sound/footstep/hull3.ogg differ diff --git a/modular_citadel/sound/footstep/hull4.ogg b/modular_citadel/sound/footstep/hull4.ogg new file mode 100644 index 0000000000..2fba89d318 Binary files /dev/null and b/modular_citadel/sound/footstep/hull4.ogg differ diff --git a/modular_citadel/sound/footstep/hull5.ogg b/modular_citadel/sound/footstep/hull5.ogg new file mode 100644 index 0000000000..10c5912b97 Binary files /dev/null and b/modular_citadel/sound/footstep/hull5.ogg differ diff --git a/modular_citadel/sound/footstep/plating1.ogg b/modular_citadel/sound/footstep/plating1.ogg new file mode 100644 index 0000000000..0df770e663 Binary files /dev/null and b/modular_citadel/sound/footstep/plating1.ogg differ diff --git a/modular_citadel/sound/footstep/plating2.ogg b/modular_citadel/sound/footstep/plating2.ogg new file mode 100644 index 0000000000..314b9133d2 Binary files /dev/null and b/modular_citadel/sound/footstep/plating2.ogg differ diff --git a/modular_citadel/sound/footstep/plating3.ogg b/modular_citadel/sound/footstep/plating3.ogg new file mode 100644 index 0000000000..5c571d77eb Binary files /dev/null and b/modular_citadel/sound/footstep/plating3.ogg differ diff --git a/modular_citadel/sound/footstep/plating4.ogg b/modular_citadel/sound/footstep/plating4.ogg new file mode 100644 index 0000000000..5953262764 Binary files /dev/null and b/modular_citadel/sound/footstep/plating4.ogg differ diff --git a/modular_citadel/sound/footstep/plating5.ogg b/modular_citadel/sound/footstep/plating5.ogg new file mode 100644 index 0000000000..4676a637a6 Binary files /dev/null and b/modular_citadel/sound/footstep/plating5.ogg differ diff --git a/modular_citadel/sound/footstep/wood1.ogg b/modular_citadel/sound/footstep/wood1.ogg new file mode 100644 index 0000000000..c76fc423fc Binary files /dev/null and b/modular_citadel/sound/footstep/wood1.ogg differ diff --git a/modular_citadel/sound/footstep/wood2.ogg b/modular_citadel/sound/footstep/wood2.ogg new file mode 100644 index 0000000000..71dc1aa967 Binary files /dev/null and b/modular_citadel/sound/footstep/wood2.ogg differ diff --git a/modular_citadel/sound/footstep/wood3.ogg b/modular_citadel/sound/footstep/wood3.ogg new file mode 100644 index 0000000000..bf86889006 Binary files /dev/null and b/modular_citadel/sound/footstep/wood3.ogg differ diff --git a/modular_citadel/sound/footstep/wood4.ogg b/modular_citadel/sound/footstep/wood4.ogg new file mode 100644 index 0000000000..44734425ce Binary files /dev/null and b/modular_citadel/sound/footstep/wood4.ogg differ diff --git a/modular_citadel/sound/footstep/wood5.ogg b/modular_citadel/sound/footstep/wood5.ogg new file mode 100644 index 0000000000..5ad4fa81e7 Binary files /dev/null and b/modular_citadel/sound/footstep/wood5.ogg differ diff --git a/tgstation.dme b/tgstation.dme index a5f7cae806..d42e96f228 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2482,6 +2482,7 @@ #include "interface\skin.dmf" #include "modular_citadel\cit_medkits.dm" #include "modular_citadel\cit_screenshake.dm" +#include "modular_citadel\cit_turfs.dm" #include "modular_citadel\citadel_ghostrole_spawners.dm" #include "modular_citadel\cydonian_armor.dm" #include "modular_citadel\polychromic_clothes.dm"