diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index d9b7d13aee4..741d95efca4 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -36,6 +36,19 @@ GLOBAL_LIST_INIT(turfs_without_ground, typecacheof(list( #define isgroundlessturf(A) (is_type_in_typecache(A, GLOB.turfs_without_ground)) +GLOBAL_LIST_INIT(turfs_no_slip_water, typecacheof(list( + /turf/open/misc/asteroid, + /turf/open/misc/dirt, + /turf/open/misc/grass, + /turf/open/misc/basalt, + /turf/open/misc/ashplanet, + /turf/open/misc/snow, + /turf/open/misc/sandy_dirt, + /turf/open/floor/noslip, + ))) + +#define isnoslipturf(A) (is_type_in_typecache(A, GLOB.turfs_no_slip_water)) + GLOBAL_LIST_INIT(turfs_openspace, typecacheof(list( /turf/open/openspace, /turf/open/space/openspace, diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 5c84ba2a287..75f1e44e7e7 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -251,16 +251,15 @@ /datum/reagent/water/expose_turf(turf/open/exposed_turf, reac_volume) . = ..() + if(!istype(exposed_turf)) return - var/cool_temp = cooling_temperature - if(reac_volume >= 5) - exposed_turf.MakeSlippery(TURF_WET_WATER, 10 SECONDS, min(reac_volume*1.5 SECONDS, 60 SECONDS)) - for(var/mob/living/basic/slime/exposed_slime in exposed_turf) exposed_slime.apply_water() + var/cool_temp = cooling_temperature + var/obj/effect/hotspot/hotspot = (locate(/obj/effect/hotspot) in exposed_turf) if(hotspot && !isspaceturf(exposed_turf)) if(exposed_turf.air) @@ -269,6 +268,12 @@ air.react(src) qdel(hotspot) + if(isgroundlessturf(exposed_turf) || isnoslipturf(exposed_turf)) + return + + if(reac_volume >= 5) + exposed_turf.MakeSlippery(TURF_WET_WATER, 10 SECONDS, min(reac_volume*1.5 SECONDS, 60 SECONDS)) + /* * Water reaction to an object */