From 5f16ed4a780abfef4703740561493ef72a00c342 Mon Sep 17 00:00:00 2001 From: VampyrBytes Date: Tue, 9 Feb 2016 02:42:03 +0000 Subject: [PATCH 1/3] walking prevents sliplock Removes slipping whilst walking from banana peels and soap to give a way out of slip lock (#3490) --- code/game/objects/items/weapons/clown_items.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/weapons/clown_items.dm b/code/game/objects/items/weapons/clown_items.dm index a655efa125c..21de1025e8e 100644 --- a/code/game/objects/items/weapons/clown_items.dm +++ b/code/game/objects/items/weapons/clown_items.dm @@ -23,7 +23,7 @@ /obj/item/weapon/bananapeel/Crossed(AM as mob|obj) if (istype(AM, /mob/living/carbon)) var/mob/living/carbon/M = AM - M.slip("banana peel", 4, 2) + M.slip("banana peel", 4, 2, 0, 1) /* * Soap @@ -31,7 +31,7 @@ /obj/item/weapon/soap/Crossed(AM as mob|obj) //EXACTLY the same as bananapeel for now, so it makes sense to put it in the same dm -- Urist if (istype(AM, /mob/living/carbon)) var/mob/living/carbon/M = AM - M.slip("soap", 4, 2) + M.slip("soap", 4, 2, 0, 1) /obj/item/weapon/soap/afterattack(atom/target, mob/user as mob, proximity) if(!proximity) return From eabd94e844fe63e651f0d0d16411b63c8cac8e07 Mon Sep 17 00:00:00 2001 From: VampyrBytes Date: Wed, 10 Feb 2016 08:36:19 +0000 Subject: [PATCH 2/3] Changes Reverts banana peel and soap to slip whilst walking No longer slip whilst lying down No longer slip whilst getting in and out of a closet containing a slippery item --- code/game/objects/items/weapons/clown_items.dm | 4 ++-- code/modules/mob/living/carbon/carbon.dm | 6 +++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/code/game/objects/items/weapons/clown_items.dm b/code/game/objects/items/weapons/clown_items.dm index 21de1025e8e..a655efa125c 100644 --- a/code/game/objects/items/weapons/clown_items.dm +++ b/code/game/objects/items/weapons/clown_items.dm @@ -23,7 +23,7 @@ /obj/item/weapon/bananapeel/Crossed(AM as mob|obj) if (istype(AM, /mob/living/carbon)) var/mob/living/carbon/M = AM - M.slip("banana peel", 4, 2, 0, 1) + M.slip("banana peel", 4, 2) /* * Soap @@ -31,7 +31,7 @@ /obj/item/weapon/soap/Crossed(AM as mob|obj) //EXACTLY the same as bananapeel for now, so it makes sense to put it in the same dm -- Urist if (istype(AM, /mob/living/carbon)) var/mob/living/carbon/M = AM - M.slip("soap", 4, 2, 0, 1) + M.slip("soap", 4, 2) /obj/item/weapon/soap/afterattack(atom/target, mob/user as mob, proximity) if(!proximity) return diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 4611f87f453..0a112b92cf7 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -771,7 +771,11 @@ var/list/ventcrawl_machinery = list(/obj/machinery/atmospherics/unary/vent_pump, /mob/living/carbon/proc/slip(var/description, var/stun, var/weaken, var/tilesSlipped, var/walkSafely, var/slipAny) - if (flying || buckled || (walkSafely && m_intent == "walk")) + if (flying || buckled || lying || (walkSafely && m_intent == "walk")) + return + if (istype(loc, /obj/structure/closet)) // for getting in a locker + return + for (var/obj/structure/closet/closet in loc.contents) // for getting out of a locker return if (!(slipAny)) if (istype(src, /mob/living/carbon/human)) From 46d6182cbcdb7e53f216e2104bc104ea4edbb540 Mon Sep 17 00:00:00 2001 From: VampyrBytes Date: Fri, 12 Feb 2016 09:47:41 +0000 Subject: [PATCH 3/3] Lying only affects things that don't move you --- code/modules/mob/living/carbon/carbon.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 0a112b92cf7..b2cd0136f30 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -771,7 +771,9 @@ var/list/ventcrawl_machinery = list(/obj/machinery/atmospherics/unary/vent_pump, /mob/living/carbon/proc/slip(var/description, var/stun, var/weaken, var/tilesSlipped, var/walkSafely, var/slipAny) - if (flying || buckled || lying || (walkSafely && m_intent == "walk")) + if (flying || buckled || (walkSafely && m_intent == "walk")) + return + if ((lying) && (!(tilesSlipped))) return if (istype(loc, /obj/structure/closet)) // for getting in a locker return