diff --git a/code/game/objects/structures/training_machine.dm b/code/game/objects/structures/training_machine.dm index 294e108e2b3..b7f3e204c42 100644 --- a/code/game/objects/structures/training_machine.dm +++ b/code/game/objects/structures/training_machine.dm @@ -9,7 +9,7 @@ /** * Machine that runs around wildly so people can practice clickin on things * - * Can have a mob buckled on or a obj/item/target attached. Movement controlled by SSFastProcess, + * Can have a mob buckled on or a obj/item/target attached. Movement controlled by SSFastProcess, * movespeed controlled by cooldown macros. Can attach obj/item/target, obj/item/training_toolbox, and can buckle mobs to this. */ /obj/structure/training_machine @@ -74,7 +74,7 @@ return data /** - * Control the attached variables. + * Control the attached variables. * * Will not respond if moving and emagged, so once you set it to go it can't be stopped! */ @@ -174,6 +174,11 @@ /obj/structure/training_machine/AltClick(mob/user) . = ..() + if(!user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, NO_TK, FLOOR_OKAY)) + return + if(has_buckled_mobs()) + user_unbuckle_mob(buckled_mobs[1], user) + return if (!attached_item) return if (obj_flags & EMAGGED) @@ -184,7 +189,7 @@ playsound(src, "rustle", 50, TRUE) /** - * Toggle the machine's movement + * Toggle the machine's movement */ /obj/structure/training_machine/proc/toggle() if (moving) @@ -221,8 +226,8 @@ /** * Main movement method for the machine * - * Handles movement using SSFastProcess. Moves randomly, point-to-point, in an area centered around wherever it started. - * Will only move if the move_cooldown cooldown macro is finished. + * Handles movement using SSFastProcess. Moves randomly, point-to-point, in an area centered around wherever it started. + * Will only move if the move_cooldown cooldown macro is finished. * If it can't find a place to go, it will stop moving. */ /obj/structure/training_machine/process() @@ -320,9 +325,12 @@ /obj/structure/training_machine/examine(mob/user) . = ..() + var/has_buckled_mob = has_buckled_mobs() + if(has_buckled_mob) + . += "Alt-Click to unbuckle \the [buckled_mobs[1]]" if (obj_flags & EMAGGED) . += "It has a dangerous-looking toolbox attached to it, and the control panel is smoking sightly..." - else if (attached_item) //Can't removed the syndicate toolbox! + else if (!has_buckled_mob && attached_item) //Can't removed the syndicate toolbox! . += "Alt-Click to remove \the [attached_item]" . += "Click to open control interface."