diff --git a/code/game/objects/effects/sound_emitter.dm b/code/game/objects/effects/sound_emitter.dm index 340790ac74..647701e33c 100644 --- a/code/game/objects/effects/sound_emitter.dm +++ b/code/game/objects/effects/sound_emitter.dm @@ -141,8 +141,8 @@ /datum/looping_sound/soundrock/foxybar/hottub chance = 100 //% to play per time passing on the sound loop entry, in this case every 1 seconds. If it doesn't get a true then it still uses the last played sounds time. vary = TRUE //wink wonk versus wInK wOnK - extra_range = SOUND_DISTANCE(9) //flat out, this is 15 tiles from the sound rock itself - volume = SOUND_LOOP_VOL_RANGE(20, 20) + extra_range = SOUND_DISTANCE(11) //flat out, this is 15 tiles from the sound rock itself + volume = SOUND_LOOP_VOL_RANGE(25, 25) direct = FALSE managed = FALSE //true = sound dies when you leave the area, must be direct to use. loop_delay = 0 diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 229f463742..7066654dd5 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -533,13 +533,14 @@ if(!..()) pop_burst() -/obj/item/toy/snappop/proc/on_entered(H as mob|obj) +/obj/item/toy/snappop/proc/on_entered(datum/source, atom/movable/arrived, atom/old_loc, list/atom/old_locs) SIGNAL_HANDLER - if(ishuman(H) || issilicon(H)) //i guess carp and shit shouldn't set them off - var/mob/living/carbon/M = H - if(issilicon(H) || M.m_intent == MOVE_INTENT_RUN) - to_chat(M, span_danger("I step on the snap pop!")) - pop_burst(2, 0) + if(!isliving(arrived)) //i guess carp and shit shouldn't set them off + return + var/mob/living/L = arrived + if(L.m_intent == MOVE_INTENT_RUN) + to_chat(L, span_danger("I stepped on the snap pop! Wow!")) + pop_burst(2, 0) /obj/item/toy/snappop/phoenix name = "phoenix snap pop" diff --git a/code/modules/pool/pool_controller.dm b/code/modules/pool/pool_controller.dm index 0b46cf6756..8a49794b83 100644 --- a/code/modules/pool/pool_controller.dm +++ b/code/modules/pool/pool_controller.dm @@ -59,6 +59,8 @@ var/draining = FALSE /// Reagent blacklisting var/respect_reagent_blacklist = TRUE + /// FORMAT: list("ckey" = time_in_deciseconds) + var/list/temptext_cd = list() /obj/machinery/pool/controller/examine(mob/user) . = ..() @@ -231,29 +233,42 @@ if(drained) return for(var/mob/living/M in mobs_in_pool) + if(!M.client) + continue + if(isnum(temptext_cd["[M.ckey]"]) && temptext_cd["[M.ckey]"] > world.time) + continue + temptext_cd["[M.ckey]"] = world.time + (1 MINUTES) + if(prob(50)) + continue switch(temperature) //Apply different effects based on what the temperature is set to. if(POOL_SCALDING) //Scalding - M.adjust_bodytemperature(50,0,500) + to_chat(M, span_danger("The water feels scalding hot!")) + // M.adjust_bodytemperature(50,0,500) if(POOL_WARM) //Warm - M.adjust_bodytemperature(20,0,360) //Heats up mobs till the termometer shows up + to_chat(M, span_notice("The water feels nice and warm.")) + // M.adjust_bodytemperature(20,0,360) //Heats up mobs till the termometer shows up //Normal temp does nothing, because it's just room temperature water. + if(POOL_NORMAL) + to_chat(M, span_notice("The water feels fine.")) if(POOL_COOL) - M.adjust_bodytemperature(-20,250) //Cools mobs till the termometer shows up + to_chat(M, span_notice("The water feels pleasantly cool.")) + // M.adjust_bodytemperature(-20,250) //Cools mobs till the termometer shows up if(POOL_FRIGID) //Freezing - M.adjust_bodytemperature(-60) //cool mob at -35k per cycle, less would not affect the mob enough. - if(M.bodytemperature <= 50 && !M.stat) - M.apply_status_effect(/datum/status_effect/freon) - if(ishuman(M)) - var/mob/living/carbon/human/drownee = M - if(!drownee || drownee.stat == DEAD) - return - if(drownee.resting && !drownee.internal) - if(drownee.stat != CONSCIOUS) - drownee.adjustOxyLoss(9) - else - drownee.adjustOxyLoss(4) - if(prob(35)) - to_chat(drownee, span_danger("You're drowning!")) + to_chat(M, span_danger("The water feels freezing cold!")) + // M.adjust_bodytemperature(-60) //cool mob at -35k per cycle, less would not affect the mob enough. + // if(M.bodytemperature <= 50 && !M.stat) + // M.apply_status_effect(/datum/status_effect/freon) + // if(ishuman(M)) + // var/mob/living/carbon/human/drownee = M + // if(!drownee || drownee.stat == DEAD) + // return + // if(drownee.resting && !drownee.internal) + // if(drownee.stat != CONSCIOUS) + // drownee.adjustOxyLoss(9) + // else + // drownee.adjustOxyLoss(4) + // if(prob(35)) + // to_chat(drownee, span_danger("You're drowning!")) /obj/machinery/pool/controller/proc/set_bloody(state) if(bloody == state) diff --git a/code/modules/pool/pool_main.dm b/code/modules/pool/pool_main.dm index c6b434ff78..b7e6503110 100644 --- a/code/modules/pool/pool_main.dm +++ b/code/modules/pool/pool_main.dm @@ -73,7 +73,7 @@ return ..() // Exit check -/turf/open/pool/Exit(atom/movable/AM, atom/newloc) +/turf/open/pool/Exit(atom/movable/AM, direction) if(!AM.has_gravity(src)) return ..() if(isliving(AM) || isstructure(AM)) @@ -85,6 +85,7 @@ return ..() //human weak, monkey (and anyone else) ook ook eek eek strong if(isliving(AM) && (locate(/obj/structure/pool/ladder) in src)) return ..() //climbing out + var/atom/newloc = get_step(src, direction) return istype(newloc, /turf/open/pool) return ..()