diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm index de413f7685d..fba3febd6d3 100644 --- a/code/game/objects/buckling.dm +++ b/code/game/objects/buckling.dm @@ -23,7 +23,7 @@ return ..() -/obj/proc/buckle(atom/movable/MA) +/obj/proc/buckle(atom/movable/MA, mob/user) if ((MA.loc != loc) && !(density && get_dist(src, MA) <= 1)) return 0 if (MA.loc != loc) @@ -31,6 +31,13 @@ if (is_type_in_list(MA, can_buckle)) if(!(MA.can_be_buckled) || MA.buckled_to) return 0 + if(user) + if(MA != user) + if(isliving(MA)) + var/mob/living/L = MA + if(!L.lying) + if(!do_mob(user, L, 3 SECONDS)) + return 0 MA.buckled_to = src buckled = MA if(istype(MA, /mob/living)) @@ -83,7 +90,7 @@ add_fingerprint(user) unbuckle()//this is now just for safety, buckling someone into an occupied chair will fail, instead of removing the occupant - if(buckle(MA)) + if(buckle(MA, user)) if(MA == user) MA.visible_message(\ "[MA.name] buckles themselves to [src].",\ diff --git a/html/changelogs/alberyk-buckletime.yml b/html/changelogs/alberyk-buckletime.yml new file mode 100644 index 00000000000..da18d21cbbb --- /dev/null +++ b/html/changelogs/alberyk-buckletime.yml @@ -0,0 +1,6 @@ +author: Alberyk + +delete-after: True + +changes: + - tweak: "Buckling someone else now takes some seconds. Buckling is still instant if they are lying down."