diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm index b941ece9d16..0497543d0ee 100644 --- a/code/game/objects/buckling.dm +++ b/code/game/objects/buckling.dm @@ -150,6 +150,7 @@ M.visible_message("[user] buckles [M] to [src]!",\ "[user] buckles you to [src]!",\ "You hear metal clanking.") + M?.pulledby.stop_pulling() /atom/movable/proc/user_unbuckle_mob(mob/living/buckled_mob, mob/user) var/mob/living/M = unbuckle_mob(buckled_mob) diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm index 6c5794dd56a..6a251597119 100644 --- a/code/game/objects/structures/bedsheet_bin.dm +++ b/code/game/objects/structures/bedsheet_bin.dm @@ -26,6 +26,11 @@ LINEN BINS var/list/nightmare_messages = list("black") var/comfort = 0.5 +/obj/item/bedsheet/attack_hand(mob/user) + if(isturf(loc) && user.Move_Pulled(src)) // make sure its on the ground first, prevents a speed exploit + return + return ..() + /obj/item/bedsheet/attack_self(mob/user as mob) user.drop_item() if(layer == initial(layer)) diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm index 77759371f80..46e8a9e7a74 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm @@ -30,6 +30,11 @@ . = ..() . += "Click dragging someone to a bed will buckle them in. Functions just like a chair except you can walk over them." +/obj/structure/bed/attack_hand(mob/user) + if(user.Move_Pulled(src)) + return + return ..() + /obj/structure/bed/psych name = "psych bed" desc = "For prime comfort during psychiatric evaluations." diff --git a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm index 809fcefbce0..fca6cac9d4f 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm @@ -84,6 +84,11 @@ return . = ..() +/obj/structure/chair/attack_hand(mob/user) + if(user.Move_Pulled(src)) + return + return ..() + /obj/structure/chair/attack_tk(mob/user as mob) if(!anchored || has_buckled_mobs() || !isturf(user.loc)) ..() diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index fb9a3880876..ee7c2136362 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -375,7 +375,7 @@ M.start_pulling(t) else step(pulling, get_dir(pulling.loc, A)) - return + return TRUE /mob/proc/update_gravity(has_gravity) return