diff --git a/_maps/RandomZLevels/snowdin.dmm b/_maps/RandomZLevels/snowdin.dmm index f72d9fd3207241..fb40f75070ef7d 100644 --- a/_maps/RandomZLevels/snowdin.dmm +++ b/_maps/RandomZLevels/snowdin.dmm @@ -176,6 +176,15 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) +"aR" = ( +/obj/structure/bed, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 + }, +/obj/effect/landmark/awaystart/snowdin, +/obj/item/bedsheet/purple, +/turf/open/floor/wood, +/area/awaymission/snowdin/post/dorm) "aS" = ( /turf/closed/wall, /area/awaymission/snowdin/post/dorm) @@ -199,6 +208,14 @@ /obj/effect/decal/cleanable/cobweb, /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) +"aX" = ( +/obj/structure/bed, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 + }, +/obj/effect/landmark/awaystart/snowdin, +/turf/open/floor/wood, +/area/awaymission/snowdin/post/dorm) "aY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/wood, @@ -217,6 +234,16 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) +"bb" = ( +/obj/structure/bed, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 + }, +/obj/effect/landmark/awaystart/snowdin, +/obj/item/paper/crumpled/ruins/snowdin/dontdeadopeninside, +/obj/item/bedsheet/green, +/turf/open/floor/wood, +/area/awaymission/snowdin/post/dorm) "bc" = ( /obj/structure/window/spawner/directional/south, /turf/open/floor/iron/dark, @@ -381,20 +408,16 @@ /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron, /area/awaymission/snowdin/post/research) -"bK" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/effect/landmark/awaystart/snowdin, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, -/turf/open/floor/iron, -/area/awaymission/snowdin/post/garage) "bL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/structure/spider/stickyweb, /turf/open/floor/iron/freezer, /area/awaymission/snowdin/post/kitchen) +"bM" = ( +/obj/effect/landmark/awaystart/snowdin, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/iron/freezer, +/area/awaymission/snowdin/post/kitchen) "bN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/structure/spider/stickyweb, @@ -1066,6 +1089,14 @@ }, /turf/open/floor/iron, /area/awaymission/snowdin/post/dorm) +"eh" = ( +/obj/structure/bed, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/effect/landmark/awaystart/snowdin, +/obj/item/bedsheet/red, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/awaymission/snowdin/post/dorm) "ei" = ( /obj/effect/baseturf_helper/asteroid/snow, /turf/closed/wall, @@ -1117,14 +1148,6 @@ /obj/effect/turf_decal/tile/bar/opposingcorners, /turf/open/floor/iron, /area/awaymission/snowdin/post/messhall) -"ew" = ( -/obj/structure/bed, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/effect/landmark/awaystart/snowdin, -/obj/item/bedsheet/red, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/wood, -/area/awaymission/snowdin/post/dorm) "ex" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /turf/open/floor/iron, @@ -1886,11 +1909,6 @@ }, /turf/open/floor/iron/cafeteria, /area/awaymission/snowdin/post/messhall) -"ht" = ( -/obj/structure/table, -/obj/item/trash/waffles, -/turf/open/floor/iron/cafeteria, -/area/awaymission/snowdin/post/messhall) "hu" = ( /obj/structure/chair{ dir = 8 @@ -2048,6 +2066,25 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/awaymission/snowdin/post/gateway) +"hR" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/landmark/awaystart/snowdin, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/awaymission/snowdin/post/gateway) +"hS" = ( +/obj/effect/landmark/awaystart/snowdin, +/obj/effect/turf_decal/loading_area, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/iron, +/area/awaymission/snowdin/post/gateway) +"hT" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/effect/landmark/awaystart/snowdin, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/awaymission/snowdin/post/gateway) "hU" = ( /obj/structure/window/spawner/directional/south, /turf/open/floor/iron, @@ -2256,6 +2293,29 @@ /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/floor/iron, /area/awaymission/snowdin/post/engineering) +"iA" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 5 + }, +/obj/effect/landmark/awaystart/snowdin, +/turf/open/floor/iron, +/area/awaymission/snowdin/post/gateway) +"iB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 10 + }, +/obj/effect/landmark/awaystart/snowdin, +/obj/machinery/holopad, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/iron, +/area/awaymission/snowdin/post/gateway) +"iC" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/effect/landmark/awaystart/snowdin, +/turf/open/floor/iron, +/area/awaymission/snowdin/post/gateway) "iD" = ( /obj/structure/table, /obj/item/crowbar, @@ -2513,6 +2573,20 @@ }, /turf/open/floor/iron/white, /area/awaymission/snowdin/post/minipost) +"ju" = ( +/obj/effect/landmark/awaystart/snowdin, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/iron, +/area/awaymission/snowdin/post/gateway) +"jv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/effect/landmark/awaystart/snowdin, +/obj/effect/turf_decal/stripes/line, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/iron, +/area/awaymission/snowdin/post/gateway) "jw" = ( /obj/structure/table, /obj/item/paper/pamphlet/gateway, @@ -2567,6 +2641,15 @@ /obj/structure/cable, /turf/open/floor/plating/snowed/smoothed, /area/awaymission/snowdin/outside) +"jE" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/landmark/awaystart/snowdin, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/turf/open/floor/iron, +/area/awaymission/snowdin/post/garage) "jF" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/broken_floor, @@ -2807,16 +2890,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /turf/open/floor/iron/showroomfloor, /area/awaymission/snowdin/post/dorm) -"kE" = ( -/obj/structure/bed{ - dir = 4 - }, -/obj/effect/landmark/awaystart/snowdin, -/obj/item/bedsheet/nanotrasen{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/awaymission/snowdin/post/dorm) "kF" = ( /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 8 @@ -3441,6 +3514,14 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/awaymission/snowdin/post/garage) +"mA" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/landmark/awaystart/snowdin, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/awaymission/snowdin/post/garage) "mB" = ( /obj/item/storage/toolbox/electrical, /obj/machinery/atmospherics/components/unary/vent_pump/on{ @@ -3687,14 +3768,6 @@ slowdown = 1 }, /area/awaymission/snowdin/outside) -"nz" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/effect/landmark/awaystart/snowdin, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/awaymission/snowdin/post/garage) "nA" = ( /obj/structure/reagent_dispensers/watertank/high, /obj/item/reagent_containers/cup/bucket, @@ -5158,19 +5231,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/awaymission/snowdin/post/custodials) -"sU" = ( -/obj/effect/turf_decal/weather/snow, -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 - }, -/obj/machinery/computer{ - desc = "A console meant for calling and sending a transit ferry. It seems iced-over and non-functional."; - dir = 4; - icon_screen = null; - name = "Shuttle Transist Console" - }, -/turf/open/floor/iron/dark/snowdin, -/area/awaymission/snowdin/outside) "sX" = ( /obj/item/disk/holodisk/snowdin/ripjacob, /obj/structure/cable, @@ -5248,12 +5308,6 @@ }, /turf/open/floor/iron/dark/snowdin, /area/awaymission/snowdin/outside) -"tm" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/landmark/awaystart/snowdin, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/awaymission/snowdin/post/gateway) "tp" = ( /turf/closed/wall/mineral/snow, /area/awaymission/snowdin/cave/cavern) @@ -5315,14 +5369,6 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/plating, /area/awaymission/snowdin/post/mining_main/mechbay) -"tN" = ( -/obj/structure/bed, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/obj/effect/landmark/awaystart/snowdin, -/turf/open/floor/wood, -/area/awaymission/snowdin/post/dorm) "tQ" = ( /obj/machinery/light/small/directional/south, /obj/structure/sign/nanotrasen{ @@ -5646,6 +5692,11 @@ }, /turf/open/floor/iron, /area/awaymission/snowdin/post/cavern1) +"vv" = ( +/obj/structure/table, +/obj/item/trash/waffles, +/turf/open/floor/iron/cafeteria, +/area/awaymission/snowdin/post/messhall) "vw" = ( /obj/structure/sink/directional/west, /turf/open/floor/iron/showroomfloor, @@ -5761,15 +5812,6 @@ }, /turf/open/floor/mineral/titanium/blue, /area/awaymission/snowdin/post/broken_shuttle) -"wc" = ( -/obj/machinery/computer{ - desc = "A console meant for calling and sending a transit ferry. It seems iced-over and non-functional."; - dir = 1; - icon_screen = null; - name = "Shuttle Transist Console" - }, -/turf/open/floor/mineral/titanium/blue, -/area/awaymission/snowdin/post/broken_shuttle) "wd" = ( /obj/item/shard, /obj/structure/flora/grass/both/style_random, @@ -6569,11 +6611,6 @@ }, /turf/open/misc/asteroid/snow, /area/awaymission/snowdin/cave) -"zB" = ( -/obj/effect/landmark/awaystart/snowdin, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/iron, -/area/awaymission/snowdin/post/gateway) "zC" = ( /obj/structure/rack, /obj/item/grown/log/tree, @@ -6984,6 +7021,13 @@ slowdown = 1 }, /area/awaymission/snowdin/cave) +"Be" = ( +/obj/effect/landmark/awaystart/snowdin, +/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/awaymission/snowdin/post/minipost) "Bf" = ( /obj/machinery/space_heater, /obj/effect/mapping_helpers/broken_floor, @@ -7430,6 +7474,16 @@ }, /turf/open/floor/iron/dark, /area/awaymission/snowdin/cave) +"CX" = ( +/obj/structure/bed{ + dir = 4 + }, +/obj/effect/landmark/awaystart/snowdin, +/obj/item/bedsheet/nanotrasen{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/awaymission/snowdin/post/dorm) "CZ" = ( /obj/structure/frame/machine, /obj/item/stack/cable_coil{ @@ -7620,17 +7674,6 @@ /mob/living/basic/bear/snow, /turf/open/floor/iron/dark/snowdin, /area/awaymission/snowdin/cave) -"DZ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 10 - }, -/obj/effect/landmark/awaystart/snowdin, -/obj/machinery/holopad, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/turf/open/floor/iron, -/area/awaymission/snowdin/post/gateway) "Ea" = ( /obj/item/reagent_containers/cup/glass/bottle/beer{ list_reagents = null @@ -7729,11 +7772,6 @@ }, /turf/open/floor/iron/dark, /area/awaymission/snowdin/cave) -"Ex" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, -/obj/effect/landmark/awaystart/snowdin, -/turf/open/floor/iron, -/area/awaymission/snowdin/post/gateway) "Ez" = ( /obj/machinery/light/directional/west, /turf/open/floor/iron/dark, @@ -7949,13 +7987,6 @@ /obj/structure/lattice/catwalk, /turf/open/floor/plating/snowed/smoothed, /area/awaymission/snowdin/outside) -"FH" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 5 - }, -/obj/effect/landmark/awaystart/snowdin, -/turf/open/floor/iron, -/area/awaymission/snowdin/post/gateway) "FI" = ( /obj/machinery/conveyor{ id = "snowdin_belt_mine" @@ -8628,11 +8659,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/awaymission/snowdin/post/mining_main/mechbay) -"Jn" = ( -/obj/effect/landmark/awaystart/snowdin, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/iron/freezer, -/area/awaymission/snowdin/post/kitchen) "Jq" = ( /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -9057,16 +9083,6 @@ }, /turf/open/floor/iron, /area/awaymission/snowdin/post/mining_main/mechbay) -"LH" = ( -/obj/structure/bed, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/obj/effect/landmark/awaystart/snowdin, -/obj/item/paper/crumpled/ruins/snowdin/dontdeadopeninside, -/obj/item/bedsheet/green, -/turf/open/floor/wood, -/area/awaymission/snowdin/post/dorm) "LI" = ( /obj/effect/turf_decal/weather/snow, /obj/effect/decal/cleanable/blood/drip, @@ -9673,6 +9689,15 @@ }, /turf/open/floor/iron, /area/awaymission/snowdin/post/research) +"OY" = ( +/obj/machinery/computer{ + desc = "A console meant for calling and sending a transit ferry. It seems iced-over and non-functional."; + dir = 1; + icon_screen = null; + name = "Shuttle Transit Console" + }, +/turf/open/floor/mineral/titanium/blue, +/area/awaymission/snowdin/post/broken_shuttle) "OZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, @@ -9729,13 +9754,6 @@ slowdown = 1 }, /area/awaymission/snowdin/cave) -"Pk" = ( -/obj/effect/landmark/awaystart/snowdin, -/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ - dir = 8 - }, -/turf/open/floor/iron, -/area/awaymission/snowdin/post/minipost) "Pm" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ @@ -9966,15 +9984,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/awaymission/snowdin/post/engineering) -"Qy" = ( -/obj/structure/bed, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/obj/effect/landmark/awaystart/snowdin, -/obj/item/bedsheet/purple, -/turf/open/floor/wood, -/area/awaymission/snowdin/post/dorm) "Qz" = ( /obj/machinery/door/firedoor, /obj/structure/holosign/barrier/atmos, @@ -10089,6 +10098,19 @@ /obj/item/storage/toolbox/mechanical, /turf/open/floor/plating, /area/awaymission/snowdin/post/dorm) +"QW" = ( +/obj/effect/turf_decal/weather/snow, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/machinery/computer{ + desc = "A console meant for calling and sending a transit ferry. It seems iced-over and non-functional."; + dir = 4; + icon_screen = null; + name = "Shuttle Transit Console" + }, +/turf/open/floor/iron/dark/snowdin, +/area/awaymission/snowdin/outside) "QY" = ( /obj/structure/girder, /obj/effect/turf_decal/weather/snow, @@ -10508,12 +10530,6 @@ /mob/living/basic/bear/snow, /turf/open/misc/asteroid/snow, /area/awaymission/snowdin/outside) -"Th" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/effect/landmark/awaystart/snowdin, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/awaymission/snowdin/post/gateway) "Tk" = ( /obj/effect/turf_decal/weather/snow/corner, /turf/open/misc/asteroid/snow{ @@ -10588,15 +10604,6 @@ /obj/effect/turf_decal/tile/brown/anticorner/contrasted, /turf/open/floor/iron, /area/awaymission/snowdin/post/mining_main) -"TL" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, -/obj/effect/landmark/awaystart/snowdin, -/obj/effect/turf_decal/stripes/line, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/turf/open/floor/iron, -/area/awaymission/snowdin/post/gateway) "TM" = ( /obj/effect/turf_decal/weather/snow/corner{ dir = 5 @@ -10787,13 +10794,6 @@ /obj/structure/flora/rock/pile/icy/style_random, /turf/open/misc/asteroid/snow/ice, /area/awaymission/snowdin/cave/cavern) -"UW" = ( -/obj/effect/landmark/awaystart/snowdin, -/obj/effect/turf_decal/loading_area, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/turf/open/floor/iron, -/area/awaymission/snowdin/post/gateway) "Va" = ( /obj/structure/fence{ dir = 4 @@ -16268,7 +16268,7 @@ dB Cx eN dC -kE +CX Nb hG aK @@ -17543,7 +17543,7 @@ ae Zy Qj aK -Qy +aR Uk Nh aV @@ -18835,7 +18835,7 @@ bS cu db aV -ew +eh eW aS gm @@ -19085,7 +19085,7 @@ Zy Zy Qj aK -tN +aX XW ND aS @@ -20627,7 +20627,7 @@ Zy Zy Qj aK -LH +bb RX IC aS @@ -20716,7 +20716,7 @@ oa vN vT vY -wc +OY vM oa dX @@ -21431,7 +21431,7 @@ TI Zy ax sI -sU +QW tf tl tf @@ -21521,7 +21521,7 @@ tl tf tl tf -sU +QW sI hl Zy @@ -22438,9 +22438,9 @@ fh fG gw gw -tm -FH -zB +hR +iA +ju jY kJ lu @@ -22695,9 +22695,9 @@ fh fG gx hm -UW -DZ -TL +hS +iB +jv jZ kK lv @@ -22952,9 +22952,9 @@ fh fG fG hn -Th -Ex -zB +hT +iC +ju jY kJ lw @@ -23075,7 +23075,7 @@ Av Lw yX AY -Pk +Be yX Lz BA @@ -24484,7 +24484,7 @@ Zy Qj bf bv -Jn +bM cb cH do @@ -25007,7 +25007,7 @@ Kd ex fJ gA -ht +vv hW iH jz @@ -29122,7 +29122,7 @@ gO ic ic iN -bK +jE kh kU lM @@ -30154,7 +30154,7 @@ jH ie kY id -nz +mA mV fY Qj diff --git a/code/__DEFINES/access.dm b/code/__DEFINES/access.dm index 15dd8b04a06835..6200a86da624e7 100644 --- a/code/__DEFINES/access.dm +++ b/code/__DEFINES/access.dm @@ -326,7 +326,6 @@ ACCESS_PHARMACY, \ ACCESS_PLUMBING, \ ACCESS_PSYCHOLOGY, \ - ACCESS_QM, \ ACCESS_RESEARCH, \ ACCESS_ROBOTICS, \ ACCESS_SCIENCE, \ diff --git a/code/controllers/subsystem/id_access.dm b/code/controllers/subsystem/id_access.dm index 86f2e124a8f422..6c5df16d7e7370 100644 --- a/code/controllers/subsystem/id_access.dm +++ b/code/controllers/subsystem/id_access.dm @@ -291,7 +291,7 @@ SUBSYSTEM_DEF(id_access) desc_by_access["[ACCESS_VIROLOGY]"] = "Virology" desc_by_access["[ACCESS_PSYCHOLOGY]"] = "Psychology" desc_by_access["[ACCESS_CMO]"] = "CMO Office" - desc_by_access["[ACCESS_QM]"] = "Quartermaster" + desc_by_access["[ACCESS_QM]"] = "QM Office" desc_by_access["[ACCESS_SURGERY]"] = "Surgery" desc_by_access["[ACCESS_THEATRE]"] = "Theatre" desc_by_access["[ACCESS_RESEARCH]"] = "Science" diff --git a/code/datums/looping_sounds/_looping_sound.dm b/code/datums/looping_sounds/_looping_sound.dm index 54185efdb8dda3..122eab2861e99c 100644 --- a/code/datums/looping_sounds/_looping_sound.dm +++ b/code/datums/looping_sounds/_looping_sound.dm @@ -2,7 +2,7 @@ * A datum for sounds that need to loop, with a high amount of configurability. */ /datum/looping_sound - /// (list or soundfile) Since this can be either a list or a single soundfile you can have random sounds. May contain further lists but must contain a soundfile at the end. + /// (list or soundfile) Since this can be either a list or a single soundfile you can have random sounds. May contain further lists but must contain a soundfile at the end. In a list, path must have also be assigned a value or it will be assigned 0 and not play. var/mid_sounds /// The length of time to wait between playing mid_sounds. var/mid_length diff --git a/code/datums/looping_sounds/machinery_sounds.dm b/code/datums/looping_sounds/machinery_sounds.dm index 2d5e3564e6d091..738cb61f6c5808 100644 --- a/code/datums/looping_sounds/machinery_sounds.dm +++ b/code/datums/looping_sounds/machinery_sounds.dm @@ -116,7 +116,7 @@ start_sound = 'sound/machines/computer/computer_start.ogg' start_length = 7.2 SECONDS start_volume = 10 - mid_sounds = list('sound/machines/computer/computer_mid1.ogg', 'sound/machines/computer/computer_mid2.ogg') + mid_sounds = list('sound/machines/computer/computer_mid1.ogg' = 1, 'sound/machines/computer/computer_mid2.ogg' = 1) mid_length = 1.8 SECONDS end_sound = 'sound/machines/computer/computer_end.ogg' end_volume = 10 diff --git a/code/game/objects/effects/anomalies/_anomalies.dm b/code/game/objects/effects/anomalies/_anomalies.dm index ce9bab6a511ccf..f249d22500c30b 100644 --- a/code/game/objects/effects/anomalies/_anomalies.dm +++ b/code/game/objects/effects/anomalies/_anomalies.dm @@ -95,6 +95,15 @@ /obj/effect/anomaly/proc/anomalyNeutralize() new /obj/effect/particle_effect/fluid/smoke/bad(loc) + SSblackbox.record_feedback( + "nested tally", + "anomaly_defused", + 1, + list( + "[type]", + immortal ? "immortal" : "[round((death_time - world.time) / 10)]ds time left", + ) + ) if(drops_core) if(isnull(anomaly_core)) diff --git a/code/game/objects/items/storage/holsters.dm b/code/game/objects/items/storage/holsters.dm index f8dee3afdc7f41..cc8a790c8ef34f 100644 --- a/code/game/objects/items/storage/holsters.dm +++ b/code/game/objects/items/storage/holsters.dm @@ -113,8 +113,8 @@ /obj/item/storage/belt/holster/detective/full/PopulateContents() generate_items_inside(list( - /obj/item/gun/ballistic/revolver/c38/detective = 1, /obj/item/ammo_box/c38 = 2, + /obj/item/gun/ballistic/revolver/c38/detective = 1, ), src) /obj/item/storage/belt/holster/detective/full/ert @@ -126,8 +126,8 @@ /obj/item/storage/belt/holster/detective/full/ert/PopulateContents() generate_items_inside(list( - /obj/item/gun/ballistic/automatic/pistol/m1911 = 1, /obj/item/ammo_box/magazine/m45 = 2, + /obj/item/gun/ballistic/automatic/pistol/m1911 = 1, ),src) /obj/item/storage/belt/holster/chameleon @@ -197,8 +197,8 @@ /obj/item/storage/belt/holster/nukie/cowboy/full/PopulateContents() generate_items_inside(list( - /obj/item/gun/ballistic/revolver/syndicate/cowboy/nuclear = 1, /obj/item/ammo_box/a357 = 2, + /obj/item/gun/ballistic/revolver/syndicate/cowboy/nuclear = 1, ), src) diff --git a/code/modules/antagonists/voidwalker/voidwalker_species.dm b/code/modules/antagonists/voidwalker/voidwalker_species.dm index 069582fbb2c7e0..5b50c3da69ed98 100644 --- a/code/modules/antagonists/voidwalker/voidwalker_species.dm +++ b/code/modules/antagonists/voidwalker/voidwalker_species.dm @@ -20,6 +20,7 @@ TRAIT_ADVANCEDTOOLUSER, TRAIT_NO_BLOOD_OVERLAY, TRAIT_NO_THROWING, + TRAIT_GENELESS, ) changesource_flags = MIRROR_BADMIN diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index de35d03fc253a9..a7429fff827d9f 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -696,6 +696,12 @@ /// Randomise a body part and organ of this mob /mob/living/carbon/proc/bioscramble(scramble_source) + if(!(mob_biotypes & MOB_ORGANIC)) + return FALSE + + if (HAS_TRAIT(src, TRAIT_GENELESS)) + return FALSE + if (run_armor_check(attack_flag = BIO, absorb_text = "Your armor protects you from [scramble_source]!") >= 100) return FALSE diff --git a/code/modules/reagents/chemistry/holder/holder.dm b/code/modules/reagents/chemistry/holder/holder.dm index 11117142d70e55..f084a7eaa39d44 100644 --- a/code/modules/reagents/chemistry/holder/holder.dm +++ b/code/modules/reagents/chemistry/holder/holder.dm @@ -344,26 +344,29 @@ stack_trace("invalid reagent path passed to convert reagent [source_reagent_typepath]") return FALSE - var/reagent_amount - var/reagent_purity - var/reagent_ph + var/reagent_amount = 0 + var/reagent_purity = 0 + var/reagent_ph = 0 if(include_source_subtypes) reagent_ph = ph var/weighted_purity var/list/reagent_type_list = typecacheof(source_reagent_typepath) for(var/datum/reagent/reagent as anything in reagent_list) - if(reagent.type in reagent_type_list) + if(is_type_in_typecache(reagent, reagent_type_list)) weighted_purity += reagent.volume * reagent.purity reagent_amount += reagent.volume remove_reagent(reagent.type, reagent.volume * multiplier) reagent_purity = weighted_purity / reagent_amount else var/datum/reagent/source_reagent = has_reagent(source_reagent_typepath) - reagent_amount = source_reagent.volume - reagent_purity = source_reagent.purity - reagent_ph = source_reagent.ph - remove_reagent(source_reagent_typepath, reagent_amount) - add_reagent(target_reagent_typepath, reagent_amount * multiplier, reagtemp = chem_temp, added_purity = reagent_purity, added_ph = reagent_ph) + if(istype(source_reagent)) + reagent_amount = source_reagent.volume + reagent_purity = source_reagent.purity + reagent_ph = source_reagent.ph + remove_reagent(source_reagent_typepath, reagent_amount) + + if(reagent_amount > 0) + add_reagent(target_reagent_typepath, reagent_amount * multiplier, reagtemp = chem_temp, added_purity = reagent_purity, added_ph = reagent_ph) /// Removes all reagents /datum/reagents/proc/clear_reagents() diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm index 7b8a0655cb3502..52ec613270c4a9 100644 --- a/code/modules/reagents/chemistry/recipes/others.dm +++ b/code/modules/reagents/chemistry/recipes/others.dm @@ -38,6 +38,13 @@ results = list(/datum/reagent/consumable/salt = 2) required_reagents = list(/datum/reagent/sodium = 1, /datum/reagent/chlorine = 1) // That's what I said! Sodium Chloride! reaction_tags = REACTION_TAG_EASY | REACTION_TAG_FOOD + required_other = TRUE + +/datum/chemical_reaction/sodiumchloride/pre_reaction_other_checks(datum/reagents/holder) + . = ..() + if(holder.has_reagent(/datum/reagent/consumable/liquidelectricity) || holder.has_reagent(/datum/reagent/consumable/liquidelectricity/enriched)) + return FALSE + /datum/chemical_reaction/stable_plasma results = list(/datum/reagent/stable_plasma = 1) @@ -600,6 +607,18 @@ results = list(/datum/reagent/oxygen = 2.5, /datum/reagent/hydrogen = 5) required_reagents = list(/datum/reagent/consumable/liquidelectricity/enriched = 1, /datum/reagent/water = 5) reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL + +//salt electrolysis +/datum/chemical_reaction/saltelectrolysis + results = list(/datum/reagent/chlorine = 2.5, /datum/reagent/sodium = 2.5) + required_reagents = list(/datum/reagent/consumable/salt = 5) + required_catalysts = list(/datum/reagent/consumable/liquidelectricity = 1) + reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL + +/datum/chemical_reaction/saltelectrolysis/enriched + required_catalysts = list(/datum/reagent/consumable/liquidelectricity/enriched = 1) + + //butterflium /datum/chemical_reaction/butterflium required_reagents = list(/datum/reagent/colorful_reagent = 1, /datum/reagent/medicine/omnizine = 1, /datum/reagent/medicine/strange_reagent = 1, /datum/reagent/consumable/nutriment = 1) diff --git a/html/changelogs/archive/2024-08.yml b/html/changelogs/archive/2024-08.yml index 3c003198f0fd6e..993f5b556db07b 100644 --- a/html/changelogs/archive/2024-08.yml +++ b/html/changelogs/archive/2024-08.yml @@ -812,3 +812,24 @@ the IDMA Force has now succesfully repelled the attack and has shifted focus toward trying to identify the suspect involved in this attack - bugfix: weird suppresor overlay shenanigan +2024-08-28: + Odairu: + - balance: No more hands in army crawl (goodbye gbp) + SkyratBot: + - bugfix: Bioscrambler anomalies no longer affect inorganic species + - spellcheck: Fixed a typo on snowdin shuttle transi(s)t consoles + - rscadd: Added salt electrolysis reaction + projectkepler-ru: + - bugfix: eland not being restricted + - bugfix: battle rifle stillbeing puchasable normally +2024-08-29: + Melbert: + - bugfix: Juicing and grinding should break less + SkyratBot: + - qol: revolver in roundstart holsters is on the last slot and not on first + Vekter: + - bugfix: Fixed an issue causing Quartermaster office access to show in the wrong + area on Plexagon Access Management. + - bugfix: Fixed an inconsistency in the naming for QM Office access. + grungussuss: + - bugfix: after 4 years, computer sound loop now works properly diff --git a/modular_skyrat/master_files/code/datums/components/prone_mob.dm b/modular_skyrat/master_files/code/datums/components/prone_mob.dm index 739187bdab320d..883855ec7563ad 100644 --- a/modular_skyrat/master_files/code/datums/components/prone_mob.dm +++ b/modular_skyrat/master_files/code/datums/components/prone_mob.dm @@ -5,38 +5,25 @@ if(!isliving(parent)) return COMPONENT_INCOMPATIBLE source = parent - parent.add_traits(list(TRAIT_PRONE, TRAIT_FLOORED, TRAIT_NO_THROWING), type) + parent.add_traits(list(TRAIT_PRONE, TRAIT_FLOORED, TRAIT_NO_THROWING, TRAIT_HANDS_BLOCKED), type) parent.add_traits(list(TRAIT_PRONE, TRAIT_FLOORED, TRAIT_NO_THROWING), type) passtable_on(parent, type) source.layer = PROJECTILE_HIT_THRESHHOLD_LAYER /datum/component/prone_mob/RegisterWithParent() RegisterSignals(parent, list(COMSIG_MOVABLE_REMOVE_PRONE_STATE, COMSIG_LIVING_GET_PULLED), PROC_REF(stop_army_crawl)) - RegisterSignals(parent, list(COMSIG_MOB_ATTACK_HAND, COMSIG_MOB_ITEM_ATTACK), PROC_REF(check_attack)) - RegisterSignal(parent, COMSIG_LIVING_TRY_PULL, PROC_REF(check_pull)) /datum/component/prone_mob/UnregisterFromParent() UnregisterSignal(parent, list( COMSIG_LIVING_GET_PULLED, - COMSIG_MOB_ATTACK_HAND, - COMSIG_MOB_ITEM_ATTACK, - COMSIG_LIVING_GET_PULLED, - COMSIG_LIVING_TRY_PULL + COMSIG_LIVING_TRY_PULL, )) return ..() -/datum/component/prone_mob/proc/check_attack(mob/living/source) - SIGNAL_HANDLER - return COMPONENT_CANCEL_ATTACK_CHAIN - -/datum/component/prone_mob/proc/check_pull(mob/living/source) - SIGNAL_HANDLER - return COMSIG_LIVING_CANCEL_PULL - /datum/component/prone_mob/proc/stop_army_crawl(mob/living/source) SIGNAL_HANDLER source = parent - parent.remove_traits(list(TRAIT_PRONE, TRAIT_FLOORED, TRAIT_NO_THROWING), type) + parent.remove_traits(list(TRAIT_PRONE, TRAIT_FLOORED, TRAIT_NO_THROWING, TRAIT_HANDS_BLOCKED), type) passtable_off(parent, type) source.layer = MOB_LAYER qdel(src) diff --git a/modular_skyrat/modules/company_imports/code/armament_datums/sol_defense.dm b/modular_skyrat/modules/company_imports/code/armament_datums/sol_defense.dm index d1da8ba8ca1a4e..98ac561a11520b 100644 --- a/modular_skyrat/modules/company_imports/code/armament_datums/sol_defense.dm +++ b/modular_skyrat/modules/company_imports/code/armament_datums/sol_defense.dm @@ -86,6 +86,7 @@ /datum/armament_entry/company_import/sol_defense/sidearm/eland item_type = /obj/item/gun/ballistic/revolver/sol cost = PAYCHECK_COMMAND * 4 + restricted = TRUE //You can still buy it from cargo side //If cargo decides to agree with sec on a compromise then good job @@ -131,14 +132,14 @@ cost = PAYCHECK_COMMAND * 10 contraband = TRUE //Begone -*/ + /datum/armament_entry/company_import/sol_defense/longarm/infanterie item_type = /obj/item/gun/ballistic/automatic/sol_rifle cost = PAYCHECK_COMMAND * 14 contraband = TRUE -/* These one are simply rediculous, but we'll keep it there incase someone has idea +These one are simply rediculous, but we'll keep it there incase someone has idea /datum/armament_entry/company_import/sol_defense/longarm/outomaties item_type = /obj/item/gun/ballistic/automatic/sol_rifle/machinegun cost = PAYCHECK_COMMAND * 23