//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33 /* Destructive Analyzer It is used to destroy hand-held objects and advance technological research. Controls are in the linked R&D console. Note: Must be placed within 3 tiles of the R&D Console */ /obj/machinery/r_n_d/destructive_analyzer name = "destructive analyzer" icon_state = "d_analyzer" var/obj/item/weapon/loaded_item = null var/decon_mod = 1 var/min_reliability = 90 use_power = 1 idle_power_usage = 30 active_power_usage = 2500 /obj/machinery/r_n_d/destructive_analyzer/New() ..() component_parts = list() component_parts += new /obj/item/weapon/circuitboard/destructive_analyzer(src) component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) component_parts += new /obj/item/weapon/stock_parts/manipulator(src) component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) RefreshParts() /obj/machinery/r_n_d/destructive_analyzer/RefreshParts() var/T = 0 for(var/obj/item/weapon/stock_parts/S in src) T += S.rating decon_mod = T * 0.1 min_reliability = 93 - T /obj/machinery/r_n_d/destructive_analyzer/meteorhit() del(src) return /obj/machinery/r_n_d/destructive_analyzer/proc/ConvertReqString2List(var/list/source_list) var/list/temp_list = params2list(source_list) for(var/O in temp_list) temp_list[O] = text2num(temp_list[O]) return temp_list /obj/machinery/r_n_d/destructive_analyzer/update_icon() if(panel_open) icon_state = "d_analyzer_t" else if(loaded_item) icon_state = "d_analyzer_l" else icon_state = "d_analyzer" /obj/machinery/r_n_d/destructive_analyzer/attackby(var/obj/O as obj, var/mob/user as mob) if(shocked) shock(user, 50) if(default_deconstruction_screwdriver(user, O)) if(linked_console) linked_console.linked_destroy = null linked_console = null return if(default_deconstruction_crowbar(user, O)) return if(default_part_replacement(user, O)) return if(panel_open) user << "You can't load \the [src] while it's opened." return 1 if(disabled) return if(!linked_console) user << "\The [src] must be linked to an R&D console first!" return if(busy) user << "\The [src] is busy right now." return if(istype(O, /obj/item) && !loaded_item) if(isrobot(user)) //Don't put your module items in there! return if(!O.origin_tech) user << "This doesn't seem to have a tech origin!" return var/list/temp_tech = ConvertReqString2List(O.origin_tech) if(temp_tech.len == 0) user << "You cannot deconstruct this item!" return if(O.reliability < min_reliability && O.crit_fail == 0) usr << "Item is neither reliable enough nor broken enough to learn from." return busy = 1 loaded_item = O user.drop_item() O.loc = src user << "You add \the [O] to \the [src]!" flick("d_analyzer_la", src) spawn(10) update_icon() busy = 0 return 1 return