mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-17 20:47:29 +00:00
-Turns out there was already a Gaussian PRNG proc already, used by mechs and turrets. I've replaced it with my one as mine has almost half the cost. (currently broken! still waiting for fixes to be pulled!) -replaced between(min, val, max) with Clamp(val, min, max) -get_turf(thing) now uses var/list/locs to locate its turf, rather than iterating up through loc of its loc of its loc...etc -sign(num) moved to maths.dm -InRange(val, min, max) replaced with IsInRange(val, min, max) (they were identical) -Removed ismultitool() iswrench() iscoil() iswire() iswelder() iscrowbar() etc -removed modulus(num) as abs() performs the same task! *roll-eyes* -removed get_mob_with_client_list() as it is no longer needed (we have var/list/player_list now) -removed get_turf_or_move() as it simply called get_turf -removed get_turf_loc() as it was identical to get_turf() *Additions:* -The "Declare Ready" link in the lobby will automatically become "Join Game" if the round starts before you declare ready, so you don't have to click it twice
111 lines
3.3 KiB
Plaintext
111 lines
3.3 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
|
|
|
|
/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 * 0.1
|
|
T = Clamp(T, 0, 1)
|
|
decon_mod = 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/attackby(var/obj/O as obj, var/mob/user as mob)
|
|
if (shocked)
|
|
shock(user,50)
|
|
if (istype(O, /obj/item/weapon/screwdriver))
|
|
if (!opened)
|
|
opened = 1
|
|
if(linked_console)
|
|
linked_console.linked_destroy = null
|
|
linked_console = null
|
|
icon_state = "d_analyzer_t"
|
|
user << "You open the maintenance hatch of [src]."
|
|
else
|
|
opened = 0
|
|
icon_state = "d_analyzer"
|
|
user << "You close the maintenance hatch of [src]."
|
|
return
|
|
if (opened)
|
|
if(istype(O, /obj/item/weapon/crowbar))
|
|
playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
|
|
var/obj/machinery/constructable_frame/machine_frame/M = new /obj/machinery/constructable_frame/machine_frame(src.loc)
|
|
M.state = 2
|
|
M.icon_state = "box_1"
|
|
for(var/obj/I in component_parts)
|
|
I.loc = src.loc
|
|
del(src)
|
|
return 1
|
|
else
|
|
user << "\red You can't load the [src.name] while it's opened."
|
|
return 1
|
|
if (disabled)
|
|
return
|
|
if (!linked_console)
|
|
user << "\red The protolathe must be linked to an R&D console first!"
|
|
return
|
|
if (busy)
|
|
user << "\red The protolathe is busy right now."
|
|
return
|
|
if (istype(O, /obj/item) && !loaded_item)
|
|
if(!O.origin_tech)
|
|
user << "\red This doesn't seem to have a tech origin!"
|
|
return
|
|
var/list/temp_tech = ConvertReqString2List(O.origin_tech)
|
|
if (temp_tech.len == 0)
|
|
user << "\red You cannot deconstruct this item!"
|
|
return
|
|
if(O.reliability < 90 && O.crit_fail == 0)
|
|
usr << "\red Item is neither reliable enough or broken enough to learn from."
|
|
return
|
|
busy = 1
|
|
loaded_item = O
|
|
user.drop_item()
|
|
O.loc = src
|
|
user << "\blue You add the [O.name] to the machine!"
|
|
flick("d_analyzer_la", src)
|
|
spawn(10)
|
|
icon_state = "d_analyzer_l"
|
|
busy = 0
|
|
return
|
|
|
|
//For testing purposes only.
|
|
/*/obj/item/weapon/deconstruction_test
|
|
name = "Test Item"
|
|
desc = "WTF?"
|
|
icon = 'icons/obj/weapons.dmi'
|
|
icon_state = "d20"
|
|
g_amt = 5000
|
|
m_amt = 5000
|
|
origin_tech = "materials=5;plasmatech=5;syndicate=5;programming=9"*/
|