diff --git a/code/game/objects/items/weapons/extinguisher.dm b/code/game/objects/items/weapons/extinguisher.dm index 4fc6681f860..f56f9d01d5a 100644 --- a/code/game/objects/items/weapons/extinguisher.dm +++ b/code/game/objects/items/weapons/extinguisher.dm @@ -174,7 +174,7 @@ var/turf/T = get_turf(loc) if(istype(T, /turf/open)) var/turf/open/theturf = T - theturf.MakeSlippery(min = 4, max = 2) + theturf.MakeSlippery(min = 10, max = 5) user.visible_message("[user] empties out \the [src] onto the floor using the release valve.", "You quietly empty out \the [src] using its release valve.") return diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index 91c0daa03c7..5ffbec3e54f 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -182,7 +182,7 @@ else if(istype(loc, /turf/open)) var/turf/open/tile = loc - tile.MakeSlippery(min = 10, max = 5) + tile.MakeSlippery(min = 5, max = 1) /obj/machinery/shower/attackby(obj/item/I, mob/user, params) diff --git a/code/game/turfs/open.dm b/code/game/turfs/open.dm index 887320b8501..018abdca64b 100644 --- a/code/game/turfs/open.dm +++ b/code/game/turfs/open.dm @@ -62,9 +62,18 @@ else if(C.lying || !(C.status_flags & CANWEAKEN)) // can't slip unbuckled mob if they're lying or can't fall. return 0 - if(C.m_intent=="walk" && (lube&NO_SLIP_WHEN_WALKING)) + if(C.m_intent=="walk" && (lube&NO_SLIP_WHEN_WALKING) && !(lube&SLIDE)) return 0 - + if(istype(C, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = C + if(istype(H.shoes)) + if(H.shoes.flags&NOSLIP && lube&SLIDE && !lube&GALOSHES_DONT_HELP) + var/olddir = C.dir + if(lube&SLIDE) + for(var/i=1, i<4, i++) + spawn (i) + step(C, olddir) + return 1 C << "You slipped[ O ? " on the [O.name]" : ""]!" C.attack_log += "\[[time_stamp()]\] Slipped[O ? " on the [O.name]" : ""][(lube&SLIDE)? " (LUBE)" : ""]!" @@ -107,7 +116,7 @@ else wet_overlay = image('icons/effects/water.dmi', src, "wet_static") overlays += wet_overlay - addtimer(src, "HandleWet", 30, 1) + HandleWet() /turf/open/proc/MakeDry(wet_setting = TURF_WET_WATER) if(wet > wet_setting || !wet) @@ -115,10 +124,9 @@ if(wet == TURF_WET_PERMAFROST) wet = TURF_WET_ICE else - spawn(rand(0,20)) - wet = TURF_DRY - if(wet_overlay) - overlays -= wet_overlay + wet = TURF_DRY + if(wet_overlay) + overlays -= wet_overlay /turf/open/proc/HandleWet() if(!wet_time && wet < TURF_WET_ICE) @@ -151,5 +159,5 @@ if(!wet && wet_time) wet_time = 0 if(wet) - addtimer(src, "HandleWet", 30, 1) + addtimer(src, "HandleWet", rand(10,20)) diff --git a/code/modules/mob/living/simple_animal/bot/cleanbot.dm b/code/modules/mob/living/simple_animal/bot/cleanbot.dm index 92ee9fe9313..e399f8868de 100644 --- a/code/modules/mob/living/simple_animal/bot/cleanbot.dm +++ b/code/modules/mob/living/simple_animal/bot/cleanbot.dm @@ -105,7 +105,7 @@ if(prob(10)) //Wets floors randomly var/turf/open/OT = get_turf(loc) - OT.MakeSlippery(min = 15, max = 5) + OT.MakeSlippery(min = 5, max = 1) if(prob(5)) //Spawns foam! visible_message("[src] whirs and bubbles violently, before releasing a plume of froth!") diff --git a/code/modules/reagents/chemistry/reagents/blob_reagents.dm b/code/modules/reagents/chemistry/reagents/blob_reagents.dm index 420f4068911..12179453780 100644 --- a/code/modules/reagents/chemistry/reagents/blob_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/blob_reagents.dm @@ -565,7 +565,7 @@ reac_volume = ..() var/turf/open/T = get_turf(M) if(istype(T) && prob(reac_volume)) - T.MakeSlippery(min = 15, max = 1) + T.MakeSlippery(min = 5, max = 1) M.adjust_fire_stacks(-(reac_volume / 10)) M.ExtinguishMob() M.apply_damage(0.1*reac_volume, BRUTE) @@ -586,7 +586,7 @@ /datum/reagent/blob/pressurized_slime/proc/extinguisharea(obj/effect/blob/B, probchance) for(var/turf/open/T in range(1, B)) if(prob(probchance)) - T.MakeSlippery(min = 15, max = 1) + T.MakeSlippery(min = 5, max = 1) for(var/obj/O in T) O.extinguish() for(var/mob/living/L in T) diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index 66e33ff9324..387c6e13ace 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -155,7 +155,7 @@ if(reac_volume >= 1) // Make Freezy Foam and anti-fire grenades! if(istype(T, /turf/open)) var/turf/open/OT = T - OT.MakeSlippery(TURF_WET_ICE, 15, reac_volume) // Is less effective in high pressure/high heat capacity environments. More effective in low pressure. + OT.MakeSlippery(TURF_WET_ICE, 5, reac_volume*0.5) // Is less effective in high pressure/high heat capacity environments. More effective in low pressure. OT.air.temperature -= MOLES_CELLSTANDARD*100*reac_volume/OT.air.heat_capacity() // reduces environment temperature by 5K per unit. /datum/reagent/consumable/condensedcapsaicin @@ -318,7 +318,7 @@ /datum/reagent/consumable/cornoil/reaction_turf(turf/open/T, reac_volume) if (!istype(T)) return - T.MakeSlippery(min = 20, max = reac_volume*2) + T.MakeSlippery(min = 5, max = reac_volume*2) var/obj/effect/hotspot/hotspot = (locate(/obj/effect/hotspot) in T) if(hotspot) var/datum/gas_mixture/lowertemp = T.remove_air( T:air:total_moles() ) diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index a832b919c72..2ae349cdeab 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -123,7 +123,7 @@ var/CT = cooling_temperature if(reac_volume >= 5) - T.MakeSlippery(min = 10, max = reac_volume) + T.MakeSlippery(min = 5, max = reac_volume*0.2) for(var/mob/living/simple_animal/slime/M in T) M.apply_water() @@ -255,7 +255,7 @@ /datum/reagent/lube/reaction_turf(turf/open/T, reac_volume) if (!istype(T)) return if(reac_volume >= 1) - T.MakeSlippery(TURF_WET_LUBE, 10, reac_volume) + T.MakeSlippery(TURF_WET_LUBE, 5, reac_volume) /datum/reagent/spraytan name = "Spray Tan"