/obj/machinery/sleep_console name = "sleeper console" icon = 'icons/obj/Cryogenic2.dmi' icon_state = "console" anchored = 1 //About time someone fixed this. density = 0 /obj/machinery/sleeper name = "sleeper" icon = 'icons/obj/Cryogenic2.dmi' icon_state = "sleeper-open" density = 0 anchored = 1 state_open = 1 var/efficiency var/initial_bin_rating = 1 var/min_health = 25 var/list/injection_chems = list() //list of injectable chems except ephedrine, coz ephedrine is always avalible var/list/possible_chems = list(list("morphine", "salbutamol", "salglu_solution"), list("morphine", "salbutamol", "salglu_solution", "oculine"), list("morphine", "salbutamol", "salglu_solution", "oculine", "charcoal", "mutadone", "mannitol", "pen_acid")) /obj/machinery/sleeper/New() ..() component_parts = list() component_parts += new /obj/item/weapon/circuitboard/sleeper(null) // Customizable bin rating, used by the labor camp to stop people filling themselves with chemicals and escaping. var/obj/item/weapon/stock_parts/matter_bin/B = new(null) B.rating = initial_bin_rating component_parts += B component_parts += new /obj/item/weapon/stock_parts/manipulator(null) component_parts += new /obj/item/weapon/stock_parts/console_screen(null) component_parts += new /obj/item/weapon/stock_parts/console_screen(null) component_parts += new /obj/item/stack/cable_coil(null, 1) RefreshParts() /obj/machinery/sleeper/RefreshParts() var/E var/I for(var/obj/item/weapon/stock_parts/matter_bin/B in component_parts) E += B.rating for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts) I += M.rating injection_chems = possible_chems[I] efficiency = E min_health = -E * 25 /obj/machinery/sleeper/allow_drop() return 0 /obj/machinery/sleeper/MouseDrop_T(mob/target, mob/user) if(stat || user.stat || user.lying || !Adjacent(user) || !target.Adjacent(user)|| !iscarbon(target)) return close_machine(target) /obj/machinery/sleeper/blob_act() if(prob(75)) for(var/atom/movable/A in src) A.loc = loc A.blob_act() qdel(src) /obj/machinery/sleeper/attack_animal(var/mob/living/simple_animal/M)//Stop putting hostile mobs in things guise if(M.environment_smash) M.do_attack_animation(src) visible_message("[M.name] smashes [src] apart!") qdel(src) return /obj/machinery/sleeper/attackby(obj/item/I, mob/user) if(!state_open && !occupant) if(default_deconstruction_screwdriver(user, "sleeper-o", "sleeper", I)) return if(default_change_direction_wrench(user, I)) return if(exchange_parts(user, I)) return if(default_pry_open(I)) return default_deconstruction_crowbar(I) /obj/machinery/sleeper/ex_act(severity, target) go_out() ..() /obj/machinery/sleeper/emp_act(severity) if(stat & (BROKEN|NOPOWER)) ..(severity) return if(occupant) go_out() ..(severity) /obj/machinery/sleeper/proc/go_out() if(!occupant) return for(var/atom/movable/O in src) O.loc = loc if(occupant.client) occupant.client.eye = occupant.client.mob occupant.client.perspective = MOB_PERSPECTIVE occupant = null icon_state = "sleeper-open" /obj/machinery/sleeper/container_resist() open_machine() /obj/machinery/sleeper/relaymove(var/mob/user) ..() open_machine() /obj/machinery/sleeper/attack_hand(mob/user) if(..()) return sleeperUI(user) /obj/machinery/sleeper/proc/sleeperUI(mob/user) var/dat dat += "