diff --git a/code/game/objects/structures/watercloset_vr.dm b/code/game/objects/structures/watercloset_vr.dm new file mode 100644 index 0000000000..7e8790fbcc --- /dev/null +++ b/code/game/objects/structures/watercloset_vr.dm @@ -0,0 +1,41 @@ +//Flushable toilets on station levels. Flushing sends stuff directly to a trashpit landmark without stinking up the cargo office. +//Only on-station toilets are affected and only if the trashpit landmark also exists. Otherwise toilets will stay normal. + +/obj/structure/toilet + var/teleplumbed = FALSE + var/exit_landmark + +/obj/structure/toilet/Initialize() + if(z in global.using_map.map_levels) + teleplumbed = TRUE + exit_landmark = locate(/obj/effect/landmark/teleplumb_exit) + if(teleplumbed && exit_landmark) + desc = "The BS-500, a bluespace rift-rotation-based waste disposal unit for small matter. This one seems remarkably clean." + return ..() + +/obj/structure/toilet/attack_hand(mob/living/user as mob) + if(open && teleplumbed && exit_landmark) + var/list/bowl_contents = list() + for(var/obj/item/I in loc.contents) + if(istype(I) && !I.anchored) + bowl_contents += I + if(bowl_contents.len) + user.visible_message("[user] flushes the toilet.", "You flush the toilet.") + playsound(src, 'sound/vore/death7.ogg', 50, 1) //Got lazy about getting new sound files. Have a sick remix lmao. + playsound(src, 'sound/effects/bubbles.ogg', 50, 1) + playsound(src, 'sound/mecha/powerup.ogg', 30, 1) + for(var/obj/item/F in bowl_contents) + F.forceMove(get_turf(exit_landmark)) + bowl_contents -= F + return + return ..() + +/obj/structure/toilet/attack_ai(mob/user as mob) + if(isrobot(user)) + if(user.client && user.client.eye == user) + return attack_hand(user) + else + return attack_hand(user) + +/obj/effect/landmark/teleplumb_exit + name = "teleplumbing exit" diff --git a/maps/tether/tether-01-surface1.dmm b/maps/tether/tether-01-surface1.dmm index 4dc24bf59a..82b907246c 100644 --- a/maps/tether/tether-01-surface1.dmm +++ b/maps/tether/tether-01-surface1.dmm @@ -5790,6 +5790,7 @@ /obj/random/junk, /obj/random/junk, /obj/random/tool, +/obj/effect/landmark/teleplumb_exit, /turf/simulated/floor/plating, /area/maintenance/lower/trash_pit) "ajS" = ( diff --git a/vorestation.dme b/vorestation.dme index c3a7726028..e915602604 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -1527,6 +1527,7 @@ #include "code\game\objects\structures\trash_pile_vr_ch.dm" #include "code\game\objects\structures\under_wardrobe.dm" #include "code\game\objects\structures\watercloset.dm" +#include "code\game\objects\structures\watercloset_vr.dm" #include "code\game\objects\structures\windoor_assembly.dm" #include "code\game\objects\structures\window.dm" #include "code\game\objects\structures\window_spawner.dm"