diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm index 163f136de4d..de8added23e 100644 --- a/code/game/machinery/computer/card.dm +++ b/code/game/machinery/computer/card.dm @@ -12,6 +12,7 @@ var/obj/item/card/id/modify = null var/mode = 0.0 var/printing = null + var/bot_login = FALSE /obj/machinery/computer/card/proc/is_centcom() return 0 @@ -40,10 +41,14 @@ if(!usr || usr.stat || usr.lying) return if(scan) - to_chat(usr, "You remove \the [scan] from \the [src].") - scan.forceMove(get_turf(src)) - if(!usr.get_active_hand() && ishuman(usr)) - usr.put_in_hands(scan) + if(!bot_login) + to_chat(usr, "You remove \the [scan] from \the [src].") + scan.forceMove(get_turf(src)) + if(!usr.get_active_hand() && ishuman(usr)) + usr.put_in_hands(scan) + else + to_chat(usr, "You revoke the access from \the [src].") + bot_login = FALSE scan = null else if(modify) to_chat(usr, "You remove \the [modify] from \the [src].") @@ -56,10 +61,17 @@ return /obj/machinery/computer/card/attackby(obj/item/card/id/id_card, mob/user) + if(isrobot(user)) + var/mob/living/silicon/robot/our_bot = user + if(!istype(our_bot.module, /obj/item/robot_module/robot/chound)) + return + scan = our_bot.idcard + bot_login = TRUE + if(!istype(id_card)) return ..() - if(!scan && (ACCESS_CHANGE_IDS in id_card.GetAccess()) && (user.unEquip(id_card) || (id_card.loc == user && istype(user,/mob/living/silicon/robot)))) //Grippers. Again. ~Mechoid + if(!scan && (ACCESS_CHANGE_IDS in id_card.GetAccess()) && (user.unEquip(id_card))) user.drop_item() id_card.forceMove(src) scan = id_card @@ -180,6 +192,9 @@ if(!ui.user.get_active_hand()) ui.user.put_in_hands(scan) scan = null + if(bot_login) + scan = null + bot_login = FALSE else scan.forceMove(get_turf(src)) scan = null diff --git a/code/modules/mob/living/silicon/robot/robot_items.dm b/code/modules/mob/living/silicon/robot/robot_items.dm index 4a2fab24693..597655bff8c 100644 --- a/code/modules/mob/living/silicon/robot/robot_items.dm +++ b/code/modules/mob/living/silicon/robot/robot_items.dm @@ -150,6 +150,10 @@ var/mode = 1 special_handling = TRUE +// Command borg fountain pen! They must write good :) +/obj/item/pen/robopen/fountain + icon_state = "black_fountain" + desc = "A well made and expensive black ink printing attachment with a paper naming mode." /obj/item/pen/robopen/attack_self(mob/user) . = ..(user) diff --git a/code/modules/mob/living/silicon/robot/sprites/command.dm b/code/modules/mob/living/silicon/robot/sprites/command.dm index e33587d5cba..f24027affcf 100644 --- a/code/modules/mob/living/silicon/robot/sprites/command.dm +++ b/code/modules/mob/living/silicon/robot/sprites/command.dm @@ -37,13 +37,14 @@ can_be_pushed = 0 /obj/item/robot_module/robot/chound/create_equipment(mob/living/silicon/robot/R) - src.modules += new /obj/item/pen/robopen(src) + src.modules += new /obj/item/pen/robopen/fountain(src) src.modules += new /obj/item/form_printer(src) src.modules += new /obj/item/gripper/paperwork(src) src.modules += new /obj/item/hand_labeler(src) src.modules += new /obj/item/stamp(src) src.modules += new /obj/item/stamp/denied(src) //src.modules += new /obj/item/taskmanager(src) //Needs to be ported over. + src.modules += new /obj/item/gun/energy/taser/mounted/cyborg(src) src.emag += new /obj/item/stamp/chameleon(src) src.emag += new /obj/item/pen/chameleon(src)