diff --git a/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm b/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm index a45e2436b80..14f7a174d8d 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm @@ -7,27 +7,23 @@ icon_state = "nest" var/health = 100 -/obj/structure/stool/bed/nest/manual_unbuckle(mob/user as mob) - if(buckled_mob) - if(buckled_mob.buckled == src) - if(buckled_mob != user) - buckled_mob.visible_message(\ - "[user.name] pulls [buckled_mob.name] free from the sticky nest!",\ - "[user.name] pulls you free from the gelatinous resin.",\ - "You hear squelching...") - buckled_mob.pixel_y = 0 - unbuckle() - else - buckled_mob.visible_message(\ - "[buckled_mob.name] struggles to break free of the gelatinous resin...",\ - "You struggle to break free from the gelatinous resin...",\ - "You hear squelching...") - spawn(1200) - if(user && buckled_mob && user.buckled == src) - buckled_mob.pixel_y = 0 - unbuckle() - src.add_fingerprint(user) - return +/obj/structure/stool/bed/nest/unbuckle_other(mob/user as mob) + buckled_mob.visible_message(\ + "[user.name] pulls [buckled_mob.name] free from the sticky nest!",\ + "[user.name] pulls you free from the gelatinous resin.",\ + "You hear squelching...") + buckled_mob.pixel_y = 0 + unbuckle() + +/obj/structure/stool/bed/nest/unbuckle_myself(mob/user as mob) + buckled_mob.visible_message(\ + "[buckled_mob.name] struggles to break free of the gelatinous resin...",\ + "You struggle to break free from the gelatinous resin...",\ + "You hear squelching...") + spawn(1200) + if(user && buckled_mob && user.buckled == src) + buckled_mob.pixel_y = 0 + unbuckle() /obj/structure/stool/bed/nest/buckle_mob(mob/M as mob, mob/user as mob) if ( !ismob(M) || (get_dist(src, user) > 1) || (M.loc != src.loc) || user.restrained() || usr.stat || M.buckled || istype(user, /mob/living/silicon/pai) ) 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 5e6e273edad..ea2d0125f17 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm @@ -48,19 +48,30 @@ if(buckled_mob) if(buckled_mob.buckled == src) if(buckled_mob != user) - buckled_mob.visible_message(\ - "\blue [buckled_mob.name] was unbuckled by [user.name]!",\ - "You were unbuckled from [src] by [user.name].",\ - "You hear metal clanking") + if(!(user.buckled)) + unbuckle_other(user) + else + user << "You can't reach [src]!" else - buckled_mob.visible_message(\ - "\blue [buckled_mob.name] unbuckled \himself!",\ - "You unbuckle yourself from [src].",\ - "You hear metal clanking") - unbuckle() + unbuckle_myself(user) src.add_fingerprint(user) return +/obj/structure/stool/bed/proc/unbuckle_other(mob/user as mob) + buckled_mob.visible_message(\ + "[buckled_mob.name] was unbuckled by [user.name]!",\ + "You were unbuckled from [src] by [user.name].",\ + "You hear metal clanking.") + unbuckle() + + +/obj/structure/stool/bed/proc/unbuckle_myself(mob/user as mob) + buckled_mob.visible_message(\ + "[buckled_mob.name] unbuckled \himself!",\ + "You unbuckle yourself from [src].",\ + "You hear metal clanking.") + unbuckle() + /obj/structure/stool/bed/proc/buckle_mob(mob/M as mob, mob/user as mob) if (!ticker) user << "You can't buckle anyone in before the game starts."