/// Cargo Borg Items /// #define MAX_PAPER_INTEGRATED_CLIPBOARD 10 /obj/item/clipboard/cyborg name = "\improper integrated clipboard" desc = "A clipboard with built-in paper synthesizer" integrated_pen = TRUE /// When was the last time the printer was used? COOLDOWN_DECLARE(printer_cooldown) /// How long is the integrated printer's cooldown? var/printer_cooldown_time = 10 SECONDS /// How much charge is required to print a piece of paper? var/paper_charge_cost = 25 /obj/item/clipboard/cyborg/Initialize() . = ..() pen = new /obj/item/pen /obj/item/clipboard/cyborg/examine() . = ..() . += "Alt-click to synthetize a piece of paper." if(!COOLDOWN_FINISHED(src, printer_cooldown)) . += "Its integrated paper synthetizer seems to still be on cooldown." /obj/item/clipboard/cyborg/AltClick(mob/user) if(!iscyborg(user)) to_chat(user, span_warning("You do not seem to understand how to use [src].")) return var/mob/living/silicon/robot/cyborg_user = user // Not enough charge? Tough luck. if(cyborg_user?.cell.charge < paper_charge_cost) to_chat(user, span_warning("Your internal cell doesn't have enough charge left to use [src]'s integrated printer.")) return // Check for cooldown to avoid paper spamming if(COOLDOWN_FINISHED(src, printer_cooldown)) // If there's not too much paper already, let's go if(!toppaper_ref || length(contents) < MAX_PAPER_INTEGRATED_CLIPBOARD) cyborg_user.cell.use(paper_charge_cost) COOLDOWN_START(src, printer_cooldown, printer_cooldown_time) var/obj/item/paper/new_paper = new /obj/item/paper new_paper.forceMove(src) if(toppaper_ref) var/obj/item/paper/toppaper = toppaper_ref?.resolve() UnregisterSignal(toppaper, COMSIG_ATOM_UPDATED_ICON) RegisterSignal(new_paper, COMSIG_ATOM_UPDATED_ICON, .proc/on_top_paper_change) toppaper_ref = WEAKREF(new_paper) update_appearance() to_chat(user, span_notice("[src]'s integrated printer whirs to life, spitting out a fresh piece of paper and clipping it into place.")) else to_chat(user, span_warning("[src]'s integrated printer refuses to print more paper, as [src] already contains enough paper.")) else to_chat(user, span_warning("[src]'s integrated printer refuses to print more paper, its bluespace paper synthetizer not having finished recovering from its last synthesis.")) /obj/item/hand_labeler/cyborg name = "integrated hand labeler" labels_left = 9999 // Recharge code is a bitch, apparently // Package Wrapping Synthesizer /datum/robot_energy_storage/packageWrap name ="package wrapper synthetizer" max_energy = 25 recharge_rate = 2 /obj/item/stack/packageWrap/cyborg name = "integrated package wrapper" is_cyborg = TRUE source = /datum/robot_energy_storage/packageWrap /datum/robot_energy_storage/wrapping_paper name ="wrapping paper synthetizer" max_energy = 25 recharge_rate = 2 /obj/item/stack/wrapping_paper/xmas/cyborg name = "integrated wrapping paper" is_cyborg = TRUE source = /datum/robot_energy_storage/wrapping_paper /// End Cargo Borg Items /// /obj/item/gripper/service name = "service gripper" desc = "A simple grasping tool for interacting with food and condiments." can_hold = list( /obj/item/reagent_containers/glass, /obj/item/reagent_containers/food, /obj/item/kitchen, /obj/item/storage/bag/tray )