//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 /obj/machinery/implantchair name = "loyalty implanter" desc = "Used to implant occupants with loyalty implants." icon = 'icons/obj/machines/implantchair.dmi' icon_state = "implantchair" density = 1 opacity = 0 anchored = 1 var/ready = 1 var/malfunction = 0 var/list/obj/item/weapon/implant/loyalty/implant_list = list() var/max_implants = 5 var/injection_cooldown = 600 var/replenish_cooldown = 6000 var/replenishing = 0 var/mob/living/carbon/occupant = null var/injecting = 0 /obj/machinery/implantchair/proc go_out() put_mob(mob/living/carbon/M) implant(var/mob/M) add_implants() /obj/machinery/implantchair/New() ..() add_implants() /obj/machinery/implantchair/attack_hand(mob/user) user.set_machine(src) var/health_text = "" if(src.occupant) if(src.occupant.health <= -100) health_text = "Dead" else if(src.occupant.health < 0) health_text = "[round(src.occupant.health,0.1)]" else health_text = "[round(src.occupant.health,0.1)]" var/dat ="Implanter Status
" dat +="Current occupant: [src.occupant ? "
Name: [src.occupant]
Health: [health_text]
" : "None"]
" dat += "Implants: [src.implant_list.len ? "[implant_list.len]" : "Replenish"]
" if(src.occupant) dat += "[src.ready ? "Implant" : "Recharging"]
" user.set_machine(src) user << browse(dat, "window=implant") onclose(user, "implant") /obj/machinery/implantchair/Topic(href, href_list) if(..()) return if(href_list["implant"]) if(src.occupant) injecting = 1 go_out() ready = 0 spawn(injection_cooldown) ready = 1 if(href_list["replenish"]) ready = 0 spawn(replenish_cooldown) add_implants() ready = 1 src.updateUsrDialog() return /obj/machinery/implantchair/attackby(obj/item/weapon/W, mob/user, params) if(istype(W, /obj/item/weapon/grab)) var/obj/item/weapon/grab/G = W if(!ismob(G.affecting)) return var/mob/M = G.affecting if(M.buckled_mob) to_chat(usr, "[M] will not fit into [src] because they have a slime latched onto their head.") return if(put_mob(M)) qdel(G) src.updateUsrDialog() return /obj/machinery/implantchair/go_out(mob/M) if(!( src.occupant )) return if(M == occupant) // so that the guy inside can't eject himself -Agouri return if (src.occupant.client) src.occupant.client.eye = src.occupant.client.mob src.occupant.client.perspective = MOB_PERSPECTIVE src.occupant.loc = src.loc if(injecting) implant(src.occupant) injecting = 0 src.occupant = null icon_state = "implantchair" return /obj/machinery/implantchair/put_mob(mob/living/carbon/M) if(!iscarbon(M)) to_chat(usr, "The [src.name] cannot hold this!") return if(src.occupant) to_chat(usr, "The [src.name] is already occupied!") return if(M.client) M.client.perspective = EYE_PERSPECTIVE M.client.eye = src M.stop_pulling() M.loc = src src.occupant = M src.add_fingerprint(usr) icon_state = "implantchair_on" return 1 /obj/machinery/implantchair/implant(mob/M) if (!istype(M, /mob/living/carbon)) return if(!implant_list.len) return for(var/obj/item/weapon/implant/loyalty/imp in implant_list) if(!imp) continue if(istype(imp, /obj/item/weapon/implant/loyalty)) M.visible_message("[M] has been implanted by the [src.name].") if(imp.implant(M)) implant_list -= imp break return /obj/machinery/implantchair/add_implants() for(var/i=0, i