From d2cd28da7803041a4923d00ef3ea9b4455342d55 Mon Sep 17 00:00:00 2001 From: nemvar <47324920+nemvar@users.noreply.github.com> Date: Tue, 18 Jun 2019 21:37:11 +0200 Subject: [PATCH] Adds superlube to the clown ruin. (#44595) * welp * h * Superlube --- .../lavaland_biodome_clown_planet.dmm | 20 +++++++++---------- code/__DEFINES/misc.dm | 11 +++++----- code/__DEFINES/mobs.dm | 1 + code/datums/components/wet_floor.dm | 5 ++++- code/game/turfs/open.dm | 2 +- 5 files changed, 22 insertions(+), 17 deletions(-) diff --git a/_maps/RandomRuins/LavaRuins/lavaland_biodome_clown_planet.dmm b/_maps/RandomRuins/LavaRuins/lavaland_biodome_clown_planet.dmm index 5e7b771b5ed..d02ed77031c 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_biodome_clown_planet.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_biodome_clown_planet.dmm @@ -823,7 +823,7 @@ icon_state = "bananium"; name = "bananium floor"; sound = 'sound/effects/clownstep1.ogg'; - wet = 8 + wet = 16 }, /area/ruin/powered/clownplanet) "bC" = ( @@ -868,7 +868,7 @@ icon_state = "bananium"; name = "bananium floor"; sound = 'sound/effects/clownstep1.ogg'; - wet = 8 + wet = 16 }, /area/ruin/powered/clownplanet) "bH" = ( @@ -877,7 +877,7 @@ icon_state = "bananium"; name = "bananium floor"; sound = 'sound/effects/clownstep1.ogg'; - wet = 8 + wet = 16 }, /area/ruin/powered/clownplanet) "bI" = ( @@ -938,7 +938,7 @@ icon_state = "bananium"; name = "bananium floor"; sound = 'sound/effects/clownstep1.ogg'; - wet = 8 + wet = 16 }, /area/ruin/powered/clownplanet) "bP" = ( @@ -985,7 +985,7 @@ icon_state = "bananium"; name = "bananium floor"; sound = 'sound/effects/clownstep1.ogg'; - wet = 8 + wet = 16 }, /area/ruin/powered/clownplanet) "bY" = ( @@ -995,7 +995,7 @@ icon_state = "bananium"; name = "bananium floor"; sound = 'sound/effects/clownstep1.ogg'; - wet = 8 + wet = 16 }, /area/ruin/powered/clownplanet) "bZ" = ( @@ -1004,7 +1004,7 @@ icon_state = "bananium"; name = "bananium floor"; sound = 'sound/effects/clownstep1.ogg'; - wet = 8 + wet = 16 }, /area/ruin/powered/clownplanet) "ca" = ( @@ -1014,7 +1014,7 @@ icon_state = "bananium"; name = "bananium floor"; sound = 'sound/effects/clownstep1.ogg'; - wet = 8 + wet = 16 }, /area/ruin/powered/clownplanet) "cc" = ( @@ -1198,7 +1198,7 @@ icon_state = "bananium"; name = "bananium floor"; sound = 'sound/effects/clownstep1.ogg'; - wet = 8 + wet = 16 }, /area/ruin/powered/clownplanet) "dO" = ( @@ -1207,7 +1207,7 @@ icon_state = "bananium"; name = "bananium floor"; sound = 'sound/effects/clownstep1.ogg'; - wet = 8 + wet = 16 }, /area/ruin/powered/clownplanet) "eX" = ( diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 5e90129310a..9d9eee5a8c3 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -149,11 +149,12 @@ GLOBAL_LIST_EMPTY(bloody_footprints_cache) #define LOCKED_SENSORS 2 //Wet floor type flags. Stronger ones should be higher in number. -#define TURF_DRY 0 -#define TURF_WET_WATER 1 -#define TURF_WET_PERMAFROST 2 -#define TURF_WET_ICE 4 -#define TURF_WET_LUBE 8 +#define TURF_DRY (0) +#define TURF_WET_WATER (1<<0) +#define TURF_WET_PERMAFROST (1<<1) +#define TURF_WET_ICE (1<<2) +#define TURF_WET_LUBE (1<<3) +#define TURF_WET_SUPERLUBE (1<<4) #define IS_WET_OPEN_TURF(O) O.GetComponent(/datum/component/wet_floor) diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 98eb88a64d4..03407a254d2 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -219,6 +219,7 @@ #define SLIDE (1<<1) #define GALOSHES_DONT_HELP (1<<2) #define SLIDE_ICE (1<<3) +#define SLIP_WHEN_CRAWLING (1<<4) //clown planet ruin #define MAX_CHICKENS 50 diff --git a/code/datums/components/wet_floor.dm b/code/datums/components/wet_floor.dm index cdda612446f..c2b1eb0a525 100644 --- a/code/datums/components/wet_floor.dm +++ b/code/datums/components/wet_floor.dm @@ -88,6 +88,9 @@ if(TURF_WET_PERMAFROST) intensity = 120 lube_flags = SLIDE_ICE | GALOSHES_DONT_HELP + if(TURF_WET_SUPERLUBE) + intensity = 120 + lube_flags = SLIDE | GALOSHES_DONT_HELP | SLIP_WHEN_CRAWLING else qdel(parent.GetComponent(/datum/component/slippery)) return @@ -157,7 +160,7 @@ //NB it's possible we get deleted after this, due to inherit /datum/component/wet_floor/proc/add_wet(type, duration_minimum = 0, duration_add = 0, duration_maximum = MAXIMUM_WET_TIME, _permanent = FALSE) - var/static/list/allowed_types = list(TURF_WET_WATER, TURF_WET_LUBE, TURF_WET_ICE, TURF_WET_PERMAFROST) + var/static/list/allowed_types = list(TURF_WET_WATER, TURF_WET_LUBE, TURF_WET_ICE, TURF_WET_PERMAFROST, TURF_WET_SUPERLUBE) if(duration_minimum <= 0 || !type) return FALSE if(type in allowed_types) diff --git a/code/game/turfs/open.dm b/code/game/turfs/open.dm index 3c6e84cf38c..300d7be5672 100644 --- a/code/game/turfs/open.dm +++ b/code/game/turfs/open.dm @@ -226,7 +226,7 @@ if(!(lube&GALOSHES_DONT_HELP)) //can't slip while buckled unless it's lube. return 0 else - if(!(C.mobility_flags & MOBILITY_STAND) || !(C.status_flags & CANKNOCKDOWN)) // can't slip unbuckled mob if they're lying or can't fall. + if(!(lube&SLIP_WHEN_CRAWLING) && (!(C.mobility_flags & MOBILITY_STAND) || !(C.status_flags & CANKNOCKDOWN))) // can't slip unbuckled mob if they're lying or can't fall. return 0 if(C.m_intent == MOVE_INTENT_WALK && (lube&NO_SLIP_WHEN_WALKING)) return 0