/obj/item/implanter name = "implanter" desc = "A sterile automatic implant injector." icon = 'icons/obj/items_and_weapons.dmi' icon_state = "implanter0" item_state = "syringe_0" lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' throw_speed = 3 throw_range = 5 w_class = WEIGHT_CLASS_SMALL origin_tech = "materials=2;biotech=3" materials = list(MAT_METAL=600, MAT_GLASS=200) var/obj/item/implant/imp = null var/imp_type = null /obj/item/implanter/update_icon() if(imp) icon_state = "implanter1" origin_tech = imp.origin_tech else icon_state = "implanter0" origin_tech = initial(origin_tech) /obj/item/implanter/attack(mob/living/M, mob/user) if(!istype(M)) return if(user && imp) if(M != user) M.visible_message("[user] is attempting to implant [M].") var/turf/T = get_turf(M) if(T && (M == user || do_mob(user, M, 50))) if(src && imp) if(imp.implant(M, user)) if (M == user) to_chat(user, "You implant yourself.") else M.visible_message("[user] has implanted [M].", "[user] implants you.") imp = null update_icon() else to_chat(user, "[src] fails to implant [M].") /obj/item/implanter/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/pen)) var/t = stripped_input(user, "What would you like the label to be?", name, null) if(user.get_active_held_item() != W) return if(!in_range(src, user) && loc != user) return if(t) name = "implanter ([t])" else name = "implanter" else return ..() /obj/item/implanter/Initialize(mapload) . = ..() if(imp_type) imp = new imp_type(src) update_icon() /obj/item/implanter/adrenalin name = "implanter (adrenalin)" imp_type = /obj/item/implant/adrenalin /obj/item/implanter/emp name = "implanter (EMP)" imp_type = /obj/item/implant/emp