mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-01-03 05:51:56 +00:00
The RPED now functions properly in more cases, including the destructive analyzer. It can also now intake beakers for rapid exchange on machines that use them.
96 lines
2.9 KiB
Plaintext
96 lines
2.9 KiB
Plaintext
//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 component_parts)
|
|
T += S.rating
|
|
decon_mod = T * 0.1
|
|
min_reliability = 93 - T
|
|
|
|
/obj/machinery/r_n_d/destructive_analyzer/meteorhit()
|
|
qdel(src)
|
|
return
|
|
|
|
/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 << "<span class='notice'>You can't load \the [src] while it's opened.</span>"
|
|
return 1
|
|
if(disabled)
|
|
return
|
|
if(!linked_console)
|
|
user << "<span class='notice'>\The [src] must be linked to an R&D console first!</span>"
|
|
return
|
|
if(busy)
|
|
user << "<span class='notice'>\The [src] is busy right now.</span>"
|
|
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 << "<span class='notice'>This doesn't seem to have a tech origin!</span>"
|
|
return
|
|
var/list/temp_tech = ConvertReqString2List(O.origin_tech)
|
|
if(temp_tech.len == 0)
|
|
user << "<span class='notice'>You cannot deconstruct this item!</span>"
|
|
return
|
|
if(O.reliability < min_reliability && O.crit_fail == 0)
|
|
usr << "<span class='warning'>Item is neither reliable enough nor broken enough to learn from.</span>"
|
|
return
|
|
busy = 1
|
|
loaded_item = O
|
|
user.drop_item()
|
|
O.loc = src
|
|
user << "<span class='notice'>You add \the [O] to \the [src]!</span>"
|
|
flick("d_analyzer_la", src)
|
|
spawn(10)
|
|
update_icon()
|
|
busy = 0
|
|
return 1
|
|
return
|