diff --git a/code/modules/pool/pool_controller.dm b/code/modules/pool/pool_controller.dm index 5235803a0f..f3046eee1f 100644 --- a/code/modules/pool/pool_controller.dm +++ b/code/modules/pool/pool_controller.dm @@ -44,7 +44,7 @@ for(var/obj/machinery/pool/drain/pooldrain in range(srange,src)) linked_drain = pooldrain linked_drain.pool_controller = src - for(var/obj/machinery/pool/filter/F in range(srange, src)) + for(var/obj/machinery/pool/filter/F in range(srange, src)) linked_filter = F linked_filter.pool_controller = src diff --git a/code/modules/pool/pool_main.dm b/code/modules/pool/pool_main.dm index 6234d60416..61e4517bc3 100644 --- a/code/modules/pool/pool_main.dm +++ b/code/modules/pool/pool_main.dm @@ -41,49 +41,20 @@ if(SEND_SIGNAL(from, COMSIG_IS_SWIMMING) && isliving(user) && ((user == from) || user.CanReach(from)) && CHECK_MOBILITY(user, MOBILITY_USE)) var/mob/living/L = from //The element only exists if you're on water and a living mob, so let's skip those checks. + var/pre_msg + var/post_msg if(user == from) - from.visible_message("[from] is getting out of the pool.") - if(do_mob(user, from, 20)) - from.forceMove(src) - from.visible_message("[from] gets out of the pool.") + pre_msg = "[from] is getting out of the pool." + post_msg = "[from] gets out of the pool." else - from.visible_message("[from] is being pulled out of the pool by [user].") - if(do_mob(user, from, 20)) - from.forceMove(src) - from.visible_message("[user] pulls [from] out of the pool.") + pre_msg = "[from] is being pulled out of the pool by [user]." + post_msg = "[user] pulls [from] out of the pool." + from.visible_message(pre_msg) + if(do_mob(user, from, 20)) + from.visible_message(post_msg) else return ..() -//Put people out of the water -/turf/open/floor/MouseDrop_T(mob/living/M, mob/living/user) - if(user.stat || user.lying || !Adjacent(user) || !M.Adjacent(user)|| !iscarbon(M)) - if(issilicon(M)) - var/turf/T = get_turf(M) - if(istype(T, /turf/open/pool)) - M.visible_message("[M] begins to float.", \ - "You start your emergency floaters.") - if(do_mob(user, M, 20)) - M.forceMove(src) - to_chat(user, "You get out of the pool.") - return ..() - if(!M.swimming) //can't put yourself up if you are not swimming - return ..() - if(user == M) - M.visible_message("[user] is getting out the pool", \ - "You start getting out of the pool.") - if(do_mob(user, M, 20)) - M.swimming = FALSE - M.forceMove(src) - to_chat(user, "You get out of the pool.") - else - user.visible_message("[M] is being pulled to the poolborder by [user].", \ - "You start getting [M] out of the pool.") - if(do_mob(user, M, 20)) - M.swimming = FALSE - M.forceMove(src) - to_chat(user, "You get [M] out of the pool.") - return - /turf/open/floor/CanPass(atom/movable/A, turf/T) if(!has_gravity(src)) return ..() @@ -123,13 +94,12 @@ to_chat(user, "You lower [M] in the pool.") return -//What happens if you don't drop in it like a good person would, you fool. -/turf/open/pool/Exited(atom/A, turf/NL) - ..() - if(!istype(NL, /turf/open/pool) && isliving(A)) - var/mob/living/M = A - M.swimming = FALSE - controller.mobs_in_pool.Remove(M) +/turf/open/pool/Exited(atom/A, atom/newLoc) + . = ..() + if(isliving(A)) + controller?.mobs_in_pool -= A + + /turf/open/pool/Entered(atom/A, turf/OL) ..() @@ -182,24 +152,25 @@ playsound(src, "water_wade", 20, TRUE) return -/turf/open/pool/attack_hand(mob/living/user) - if(user.stat == CONSCIOUS && !(user.lying || user.resting) && Adjacent(user) && user.swimming && filled && next_splash < world.time) //not drained, user alive and close, and user in water. - if(user.x == x && user.y == y) - return - else - playsound(src, 'sound/effects/watersplash.ogg', 8, TRUE, 1) - next_splash = world.time + 25 - var/obj/effect/splash/S = new /obj/effect/splash(user.loc) - animate(S, alpha = 0, time = 8) - S.Move(src) - QDEL_IN(S, 20) - for(var/mob/living/carbon/human/L in src) - if(!L.wear_mask && !user.stat) //Do not affect those underwater or dying. - L.emote("cough") - L.adjustStaminaLoss(4) //You need to give em a break! - /turf/open/pool/attackby(obj/item/W, mob/living/user) if(istype(W, /obj/item/mop) && filled) W.reagents.add_reagent("water", 5) to_chat(user, "You wet [W] in [src].") playsound(loc, 'sound/effects/slosh.ogg', 25, TRUE) + else + return ..() + +/turf/open/pool/attack_hand(mob/living/user) + . = ..() + if(.) + return + if((user.loc != src) && CHECK_MOBILITY(user, MOBILITY_USE) && Adjacent(user) && SEND_SIGNAL(user, COMSIG_IS_SWIMMING) && filled && (next_splash < world.time)) + playsound(src, 'sound/effects/watersplash.ogg', 8, TRUE, 1) + next_splash = world.time + 25 + var/obj/effect/splash/S = new(src) + animate(S, alpha = 0, time = 8) + QDEL_IN(S, 10) + for(var/mob/living/carbon/human/H in src) + if(!H.wear_mask && (H.stat == CONSCIOUS)) + H.emote("cough") + H.adjustStaminaLoss(4)