mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-16 01:23:41 +01:00
I'm-too-lazy-to-think-of-something-clever update:
- Moved circuit imprinter to code/game/research. Also, while it's being overhauled as part of the R&D update, it'll be removed from the rest of the station. Don't worry, it'll come back! Also, all the disk closets were removed as well. - Circuit Imprinter now works like the protolathe: It needs to be connected to an R&D console and it get's it's production list from it. - Replaced destructive analyzer icon (thanks Deuryn). - New item type: Stock Parts. Used in the construction of certain items (none added yet but they're there for when they DO get added). git-svn-id: http://tgstation13.googlecode.com/svn/trunk@937 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -362,29 +362,4 @@
|
||||
icon_off = "wall-lockeroff"
|
||||
|
||||
//too small to put a man in
|
||||
large = 0
|
||||
|
||||
/*////////////////Disk Closets//////////////////
|
||||
Note: All lockers are locked with a security level LOWER then the room the locker is placed in. This is intentional so that in
|
||||
case of station emergency where someone needs a disk out of the locker, someone with the lesser access (but still in the
|
||||
department) can break in and get the disk. */
|
||||
|
||||
/obj/secure_closet/disk_security
|
||||
name = "Security Data Storage"
|
||||
req_access = list(access_brig)
|
||||
|
||||
/obj/secure_closet/disk_medical
|
||||
name = "Medical Data Storage"
|
||||
req_access = list(access_medical)
|
||||
|
||||
/obj/secure_closet/disk_command
|
||||
name = "Command and Control Data Storage"
|
||||
req_access = list(access_heads)
|
||||
|
||||
/obj/secure_closet/disk_engineering
|
||||
name = "Engineering Data Storage"
|
||||
req_access = list(access_engine)
|
||||
|
||||
/obj/secure_closet/disk_research
|
||||
name = "Research and Development Data Storage"
|
||||
req_access = list(access_tox)
|
||||
large = 0
|
||||
@@ -1648,4 +1648,45 @@ Total SMES charging rate should not exceed total power generation rate, or an ov
|
||||
flags = FPRINT | TABLEPASS | USEDELAY
|
||||
w_class = 2.0
|
||||
var/timer = 10
|
||||
var/atom/target = null
|
||||
var/atom/target = null
|
||||
|
||||
/obj/item/weapon/stock_parts
|
||||
name = "stock part"
|
||||
desc = "What?"
|
||||
icon = 'stock_parts.dmi'
|
||||
New()
|
||||
src.pixel_x = rand(-5.0, 5)
|
||||
src.pixel_y = rand(-5.0, 5)
|
||||
|
||||
/obj/item/weapon/stock_parts/console_screen
|
||||
name = "Console Screen"
|
||||
desc = "Used in the construction of computers and other devices with a interactive console."
|
||||
icon_state = "screen"
|
||||
origin_tech = list("materials" = 2)
|
||||
g_amt = 200
|
||||
|
||||
/obj/item/weapon/stock_parts/capacitor
|
||||
name = "Capacitor"
|
||||
desc = "A basic capacitor used in the construction of a variety of devices."
|
||||
icon_state = "capacitor"
|
||||
var/max_charge = 100
|
||||
origin_tech = list("energystorage" = 2)
|
||||
m_amt = 50
|
||||
g_amt = 50
|
||||
|
||||
/obj/item/weapon/stock_parts/scanning_module
|
||||
name = "Scanning Module"
|
||||
desc = "A compact, high resolution scanning module used in the construction of certain devices."
|
||||
icon_state = "scan_module"
|
||||
var/rating = 1
|
||||
origin_tech = list("magnets" = 2)
|
||||
m_amt = 50
|
||||
g_amt = 20
|
||||
|
||||
/obj/item/weapon/stock_parts/micro_manipulator
|
||||
name = "Micro Manipulator"
|
||||
desc = "A tiny little manipulator used in the construction of certain devices."
|
||||
icon_state = "micro_mani"
|
||||
var/rating = 1
|
||||
origin_tech = list("robotics" = 1)
|
||||
m_amt = 30
|
||||
@@ -224,6 +224,7 @@ var/global/list/autolathe_recipes = list( \
|
||||
new /obj/item/weapon/reagent_containers/glass/bucket(), \
|
||||
new /obj/item/weapon/ammo/shell/blank(), \
|
||||
new /obj/item/device/taperecorder(), \
|
||||
new /obj/item/weapon/stock_parts/console_screen(), \
|
||||
)
|
||||
|
||||
var/global/list/autolathe_recipes_hidden = list( \
|
||||
|
||||
@@ -1,494 +0,0 @@
|
||||
/*///////////////Circuit Imprinter (By Darem)////////////////////////
|
||||
Used to print new circuit boards (for computers and similar systems) and AI modules. Each circuit board pattern has
|
||||
as a disk for it. To make the board, you must insert the disk into the imprinter. Materials and reagents are based on the
|
||||
assumption that SS13 uses optical based computing (hence the use of glass and acid to etch it).
|
||||
Bits of code borrowed liberally from all over the damn place. Mostly ChemMaster and Autolathe.
|
||||
|
||||
Operations Highlights:
|
||||
- Glass is added to the imprinter by attacking it with it (just like the autolathe).
|
||||
- Reagents are added to the imprinter by attacking it with a glass container.
|
||||
- Both Glass and Acid (any) is required to create boards/modules.
|
||||
- Non-Sulfuric Acid reagents damage the autolathe.
|
||||
- Plasma reagent not only damages it, but also gives it a small chance of causing a minor explosion.
|
||||
- The reagents submenu lets the user get an exact count of the reagents it contains. Undesired reagents can be purged.
|
||||
- Future Feature: Some boards might require special reagents.
|
||||
- Log Submenu allows users to see who's made what with the imprinter.
|
||||
- Future Feature: Admins can see who (by player key) made what. Right now, it can be done through viewing the machine's variables.
|
||||
- Emags wipe the access log (but not the archived one).
|
||||
- A wrench can be used to repair any damage done to it (assuming it isn't completely destroyed).
|
||||
|
||||
*/
|
||||
/obj/machinery/circuit_imprinter
|
||||
name = "Circuit Imprinter"
|
||||
icon_state = "circuit_imprinter"
|
||||
density = 1
|
||||
anchored = 1
|
||||
flags = OPENCONTAINER
|
||||
var
|
||||
g_amount = 0
|
||||
const/max_g_amount = 75000.0
|
||||
screen = 0 //Screen Mode: 0 = Main; 1 = Operating; 2 = Reagents Submenu; 3 = Log submenu
|
||||
obj/item/weapon/disk/circuit_disk/dat_disk = null
|
||||
list/access_log = list() //List of everyone who's used this device.
|
||||
list/archived_log = list() //List of everyone who's ACTUALLY used the device. Viewable by admins only.
|
||||
health = 50
|
||||
max_health = 50
|
||||
|
||||
New()
|
||||
var/datum/reagents/R = new/datum/reagents(100) //Holder for the reagents used as materials.
|
||||
reagents = R
|
||||
R.my_atom = src
|
||||
|
||||
ex_act(severity)
|
||||
switch(severity)
|
||||
if(1.0)
|
||||
del(src)
|
||||
return
|
||||
if(2.0)
|
||||
if (prob(50))
|
||||
del(src)
|
||||
return
|
||||
else
|
||||
health -= 25
|
||||
if(3.0)
|
||||
health -= 10
|
||||
update_icon()
|
||||
|
||||
update_icon()
|
||||
if(health <= 0)
|
||||
del(src)
|
||||
return
|
||||
else if (health < 25)
|
||||
stat |= BROKEN
|
||||
else
|
||||
stat &= BROKEN
|
||||
if(health >= 50)
|
||||
health = 50
|
||||
|
||||
|
||||
blob_act()
|
||||
if (prob(50))
|
||||
del(src)
|
||||
|
||||
meteorhit()
|
||||
del(src)
|
||||
return
|
||||
|
||||
attack_paw(mob/user as mob)
|
||||
return attack_hand(user)
|
||||
|
||||
attack_ai(mob/user as mob)
|
||||
return attack_hand(user)
|
||||
|
||||
attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
if(istype(O, /obj/item/weapon/reagent_containers/glass))
|
||||
return
|
||||
else if (istype(O, /obj/item/stack))
|
||||
var/obj/item/stack/stack = O
|
||||
var/amount = 1
|
||||
var/g_amt = O.g_amt
|
||||
use_power(max(1000, (m_amt+g_amt)*amount/10))
|
||||
amount = stack.amount
|
||||
amount = min(amount, round((max_g_amount-src.g_amount)/g_amt))
|
||||
stack.use(amount)
|
||||
sleep(32)
|
||||
src.g_amount += g_amt * amount
|
||||
user << "\blue You add glass to the [name]."
|
||||
updateUsrDialog()
|
||||
else if (istype(O, /obj/item/weapon/card/emag))
|
||||
access_log = null
|
||||
user << "\red You clear the [name]'s access log!"
|
||||
else if (istype(O, /obj/item/weapon/wrench))
|
||||
user << "\blue You start repairing the [name]."
|
||||
spawn(40)
|
||||
health += 5
|
||||
if(health >= 50)
|
||||
user << "\blue You've completely repaired the [name]."
|
||||
else
|
||||
user << "\blue You've partially repaired the [name]"
|
||||
else
|
||||
user << "\red You can't add that to the [name]!"
|
||||
|
||||
|
||||
attack_hand(mob/user as mob)
|
||||
if(stat & BROKEN)
|
||||
return
|
||||
user.machine = src
|
||||
|
||||
user.machine = src
|
||||
var/top = "<TITLE>[name]</TITLE>[name] Status:<BR><HR><BR>"
|
||||
var/dat = ""
|
||||
|
||||
switch(screen)
|
||||
if(0)
|
||||
dat += "<B>Available Materials: </B>[g_amount] unit of glass | [reagents.total_volume] unit of chemicals<BR><HR>"
|
||||
dat += "<B>Disk</B>: "
|
||||
if(isnull(dat_disk))
|
||||
dat += "<A href='?src=\ref[src];insert=1'>Insert Disk</A><BR>"
|
||||
else
|
||||
dat += "<A href='?src=\ref[src];eject=1'>Eject Disk</A><BR>"
|
||||
dat += "<B>Create: </B>[dat_disk.circuit]<BR>"
|
||||
dat += "<B>Department: </B>[dat_disk.department]<BR>"
|
||||
dat += "<B>Security Level: </B>[dat_disk.security]<BR>"
|
||||
dat += "<B>Material Requirements:</B>: 2000 units of glass and 20 units of H2SO4.<BR>"
|
||||
dat += "<U><A href='?src=\ref[src];imprint=1;name=[user.name];key=[user.key]'>Imprint Circuit</A></U><BR>"
|
||||
|
||||
if(1)
|
||||
dat += "<B>Processing...</B><BR>"
|
||||
|
||||
if(2)
|
||||
dat += "Chemical Storage<BR><HR>"
|
||||
for(var/datum/reagent/R in reagents.reagent_list)
|
||||
dat += "Name: [R.name] | Units: [R.volume] | Type: "
|
||||
switch(R.id)
|
||||
if("acid" || "pacid") dat += "ACID | "
|
||||
if("plasma") dat += "PLASMA | "
|
||||
else dat += "OTHER | "
|
||||
dat += "<A href='?src=\ref[src];dispose=[R.id]'>(Purge)</A><BR>"
|
||||
dat += "<A href='?src=\ref[src];disposeall=1'><U>Disposal All Chemicals in Storage</U></A><BR>"
|
||||
|
||||
if(3)
|
||||
dat += "Access Log<BR><HR>"
|
||||
for(var/N in access_log)
|
||||
dat += "[access_log[N]] created by [N]<BR>"
|
||||
|
||||
dat += "<HR>Menus: "
|
||||
dat += "<A href='?src=\ref[src];main=1'>Main Menu</A> | "
|
||||
dat += "<A href='?src=\ref[src];chem=1'>Chemical Storage</A> | "
|
||||
dat += "<A href='?src=\ref[src];access=1'>Access Log</A>"
|
||||
|
||||
user << browse("[top][dat]", "window=imprinter;size=575x400")
|
||||
onclose(user, "imprinter")
|
||||
return
|
||||
|
||||
Topic(href, href_list)
|
||||
if(stat & BROKEN) return
|
||||
if(usr.stat || usr.restrained()) return
|
||||
if(!in_range(src, usr)) return
|
||||
|
||||
usr.machine = src
|
||||
|
||||
if(href_list["insert"]) //Insert Disk
|
||||
var/obj/item/I = usr.equipped()
|
||||
if (istype(I, /obj/item/weapon/disk/circuit_disk))
|
||||
usr.drop_item()
|
||||
I.loc = src
|
||||
dat_disk = I
|
||||
|
||||
else if(href_list["eject"]) //Eject Disk
|
||||
dat_disk.loc = get_turf(src)
|
||||
dat_disk = null
|
||||
|
||||
else if(href_list["imprint"]) //Create the actual board.
|
||||
if((reagents.get_reagent_amount("acid") + reagents.get_reagent_amount("pacid")) >= 20 && g_amount >= 2000)
|
||||
src.screen = 1
|
||||
src.updateUsrDialog()
|
||||
access_log += href_list["name"]
|
||||
access_log[href_list["name"]] = dat_disk.circuit
|
||||
archived_log += href_list["key"]
|
||||
archived_log[href_list["key"]] = dat_disk.circuit
|
||||
spawn(32)
|
||||
var/imprint_chance = 100
|
||||
for(var/datum/reagent/R in reagents.reagent_list)
|
||||
switch(R.id)
|
||||
if("acid")
|
||||
reagents.remove_reagent("acid", 20)
|
||||
if("pacid")
|
||||
reagents.remove_reagent("pacid", 20)
|
||||
if("plasma") //Plasma = Bad. Causes damage and possibly explosion.
|
||||
for(var/mob/V in viewers(src, null))
|
||||
V.show_message(text("\red The plasma in the Circuit Printer reacts violently!"))
|
||||
sleep(20)
|
||||
var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
|
||||
s.set_up(2, 1, src)
|
||||
s.start()
|
||||
if(prob(reagents.get_reagent_amount("plasma")))
|
||||
explosion(src, -1,-1,1,1)
|
||||
health -= R.volume
|
||||
reagents.clear_reagents()
|
||||
break
|
||||
else
|
||||
imprint_chance -= reagents.get_reagent_amount(R)
|
||||
reagents.del_reagent(R)
|
||||
g_amount -= 2000
|
||||
if(prob(imprint_chance))
|
||||
var/obj/item/weapon/disk/circuit_disk/A = new dat_disk.blueprint(src)
|
||||
A.loc = get_turf(src)
|
||||
A = null
|
||||
else
|
||||
for(var/mob/V in viewers(src, null))
|
||||
V.show_message(text("\red The contaminants ruined the circuit board!"))
|
||||
|
||||
if(prob(imprint_chance < 100)) //Contaminants damage machine.
|
||||
health -= ((100 - imprint_chance) / 5)
|
||||
for(var/mob/V in viewers(src, null))
|
||||
V.show_message(text("\red The contaminents damaged the Circuit Printer!"))
|
||||
screen = 0
|
||||
updateUsrDialog()
|
||||
|
||||
else if(href_list["main"]) //Set Menu "Main Main"
|
||||
screen = 0
|
||||
else if(href_list["chem"]) //Set Menu "Chemical Storage"
|
||||
screen = 2
|
||||
else if(href_list["access"]) //Set Menu "Access Log
|
||||
screen = 3
|
||||
else if(href_list["dispose"]) //Purges the specific reagent from the holder.
|
||||
reagents.del_reagent(href_list["dispose"])
|
||||
else if(href_list["disposeall"]) //Purges all the reagents from the holder.
|
||||
reagents.clear_reagents()
|
||||
|
||||
|
||||
updateUsrDialog()
|
||||
return
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////Circuit Design Disk///////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
/obj/item/weapon/disk/circuit_disk
|
||||
name = "Circuit Design Disk"
|
||||
desc = "A disk for storing circuit board data."
|
||||
icon = 'cloning.dmi'
|
||||
icon_state = "datadisk2"
|
||||
item_state = "card-id"
|
||||
w_class = 1.0
|
||||
var
|
||||
blueprint = "" //File path of circuit board it creates.
|
||||
department = "" //Department board belongs to.
|
||||
security = "" //Danger/Value of board.
|
||||
circuit = "" //The name of the circuit it creates (for display elsewhere).
|
||||
New()
|
||||
src.pixel_x = rand(-5.0, 5)
|
||||
src.pixel_y = rand(-5.0, 5)
|
||||
|
||||
///////////////////////////////////////
|
||||
//////////Circuit Board Disks//////////
|
||||
///////////////////////////////////////
|
||||
/obj/item/weapon/disk/circuit_disk/security
|
||||
name = "Circuit Design (Security)"
|
||||
blueprint = "/obj/item/weapon/circuitboard/security"
|
||||
circuit = "Circuit Board (Security)"
|
||||
department = "Security"
|
||||
security = "LOW"
|
||||
/obj/item/weapon/disk/circuit_disk/aicore
|
||||
name = "Circuit Design (AI core)"
|
||||
blueprint = "/obj/item/weapon/circuitboard/aicore"
|
||||
circuit = "Circuit Board (AI Core)"
|
||||
department = "Research and Development"
|
||||
security = "HIGH"
|
||||
/obj/item/weapon/disk/circuit_disk/aiupload
|
||||
name = "Circuit Design (AI Upload)"
|
||||
blueprint = "/obj/item/weapon/circuitboard/aiupload"
|
||||
circuit = "Circuit Board (AI Upload)"
|
||||
department = "Command and Control"
|
||||
security = "HIGH"
|
||||
/obj/item/weapon/disk/circuit_disk/med_data
|
||||
name = "Circuit Design (Medical Records)"
|
||||
blueprint = "/obj/item/weapon/circuitboard/med_data"
|
||||
circuit = "Circuit Board (Medical Records)"
|
||||
department = "Medical"
|
||||
security = "Low"
|
||||
/obj/item/weapon/disk/circuit_disk/pandemic
|
||||
name = "Circuit Design (PanD.E.M.I.C. 2200)"
|
||||
blueprint = "/obj/item/weapon/circuitboard/pandemic"
|
||||
circuit = "Circuit Board (PanD.E.M.I.C. 2200)"
|
||||
department = "Medical"
|
||||
security = "MEDIUM"
|
||||
/obj/item/weapon/disk/circuit_disk/scan_consolenew
|
||||
name = "Circuit Design (DNA Machine)"
|
||||
blueprint = "/obj/machinery/scan_consolenew"
|
||||
circuit = "Circuit Board (DNA Machine)"
|
||||
department = "Research and Development"
|
||||
security = "MEDIUM"
|
||||
/obj/item/weapon/disk/circuit_disk/communications
|
||||
name = "Circuit Design (Communications)"
|
||||
blueprint = "/obj/item/weapon/circuitboard/communications"
|
||||
circuit = "Circuit Board (Communications)"
|
||||
department = "Command and Control"
|
||||
security = "MEDIUM"
|
||||
/obj/item/weapon/disk/circuit_disk/card
|
||||
name = "Circuit Design (ID Computer)"
|
||||
blueprint = "/obj/item/weapon/circuitboard/card"
|
||||
circuit = "Circuit Board (ID Computer)"
|
||||
department = "Command and Control"
|
||||
security = "MEDIUM"
|
||||
/obj/item/weapon/disk/circuit_disk/teleporter
|
||||
name = "Circuit Design (Teleporter)"
|
||||
blueprint = "/obj/item/weapon/circuitboard/teleporter"
|
||||
circuit = "Circuit Board (Teleporter)"
|
||||
department = "EXPERIMENTAL"
|
||||
security = "HIGH"
|
||||
/obj/item/weapon/disk/circuit_disk/secure_data
|
||||
name = "Circuit Design (Security Records)"
|
||||
blueprint = "/obj/item/weapon/circuitboard/secure_data"
|
||||
circuit = "Circuit Board (Security Records)"
|
||||
department = "Security"
|
||||
security = "MEDIUM"
|
||||
/obj/item/weapon/disk/circuit_disk/atmospherealerts
|
||||
name = "Circuit Design (Atmosphere alerts)"
|
||||
blueprint = "/obj/item/weapon/circuitboard/atmosphere/alerts"
|
||||
circuit = "Circuit Board (Atmosphere alerts)"
|
||||
department = "Engineering"
|
||||
security = "LOW"
|
||||
/obj/item/weapon/disk/circuit_disk/air_management
|
||||
name = "Circuit Design (Atmospheric monitor)"
|
||||
blueprint = "/obj/item/weapon/circuitboard/general_air_control"
|
||||
circuit = "Circuit Board (Atmospheric monitor)"
|
||||
department = "Engineering"
|
||||
security = "LOW"
|
||||
/obj/item/weapon/disk/circuit_disk/general_alert
|
||||
name = "Circuit Design (General Alert)"
|
||||
blueprint = "/obj/item/weapon/circuitboard/general_alert"
|
||||
circuit = "Circuit Board (General Alert)"
|
||||
department = "Engineering"
|
||||
security = "LOW"
|
||||
/obj/item/weapon/disk/circuit_disk/robotics
|
||||
name = "Circuit Design (Robotics Control)"
|
||||
blueprint = "/obj/item/weapon/circuitboard/robotics"
|
||||
circuit = "Circuit Board (Robotics Control)"
|
||||
department = "Research and Development"
|
||||
security = "HIGH"
|
||||
/obj/item/weapon/disk/circuit_disk/cloning
|
||||
name = "Circuit Design (Cloning)"
|
||||
blueprint = "/obj/item/weapon/circuitboard/cloning"
|
||||
circuit = "Circuit Board (Cloning)"
|
||||
department = "Medical"
|
||||
security = "MEDIUM"
|
||||
/obj/item/weapon/disk/circuit_disk/arcade
|
||||
name = "Circuit Design (Arcade)"
|
||||
blueprint = "/obj/item/weapon/circuitboard/arcade"
|
||||
circuit = "Circuit Board (Arcade)"
|
||||
department = "Rest and Recreation"
|
||||
security = "LOW"
|
||||
/obj/item/weapon/disk/circuit_disk/powermonitor
|
||||
name = "Circuit Design (Power Monitor)"
|
||||
blueprint = "/obj/machinery/power/monitor"
|
||||
circuit = "Circuit Board (Power Monitor)"
|
||||
department = "Engineering"
|
||||
security = "LOW"
|
||||
/obj/item/weapon/disk/circuit_disk/prisoner
|
||||
name = "Circuit Design (Prisoner Management)"
|
||||
blueprint = "/obj/item/weapon/circuitboard/prisoner"
|
||||
circuit = "Circuit Board (Prisoner Management)"
|
||||
department = "Security"
|
||||
security = "HIGH"
|
||||
|
||||
///////////////////////////////////
|
||||
//////////AI Module Disks//////////
|
||||
///////////////////////////////////
|
||||
/obj/item/weapon/disk/circuit_disk/safeguard
|
||||
name = "Circuit Design (Safeguard Module)"
|
||||
blueprint = "/obj/item/weapon/aiModule/safeguard"
|
||||
circuit = "'Safeguard' AI Module"
|
||||
department = "Command and Control"
|
||||
security = "HIGH"
|
||||
|
||||
/obj/item/weapon/disk/circuit_disk/oneHuman
|
||||
name = "Circuit Design (OneHuman Module)"
|
||||
blueprint = "/obj/item/weapon/aiModule/oneHuman"
|
||||
circuit = "'OneHuman' AI Module"
|
||||
department = "Command and Control"
|
||||
security = "HIGH"
|
||||
|
||||
/obj/item/weapon/disk/circuit_disk/protectStation
|
||||
name = "Circuit Design (ProtectStation Module)"
|
||||
blueprint = "/obj/item/weapon/aiModule/protectStation"
|
||||
circuit = "'ProtectStation' AI Module"
|
||||
department = "Security"
|
||||
security = "HIGH"
|
||||
|
||||
/obj/item/weapon/disk/circuit_disk/prototypeEngineOffline
|
||||
name = "Circuit Design (PrototypeEngineOffline Module)"
|
||||
blueprint = "/obj/item/weapon/aiModule/prototypeEngineOffline"
|
||||
circuit = "'PrototypeEngineOffline' AI Module"
|
||||
department = "Engineering"
|
||||
security = "HIGH"
|
||||
|
||||
/obj/item/weapon/disk/circuit_disk/teleporterOffline
|
||||
name = "Circuit Design (TeleporterOffline Module)"
|
||||
blueprint = "/obj/item/weapon/aiModule/teleporterOffline"
|
||||
circuit = "'TeleporterOffline' AI Module"
|
||||
department = "Research and Development"
|
||||
security = "HIGH"
|
||||
|
||||
/obj/item/weapon/disk/circuit_disk/quarantine
|
||||
name = "Circuit Design (Quarantine Module)"
|
||||
blueprint = "/obj/item/weapon/aiModule/quarantine"
|
||||
circuit = "'Quarantine' AI Module"
|
||||
department = "Medical"
|
||||
security = "HIGH"
|
||||
|
||||
/obj/item/weapon/disk/circuit_disk/oxygen
|
||||
name = "Circuit Design (OxygenIsToxicToHumans Module)"
|
||||
blueprint = "/obj/item/weapon/aiModule/oxygen"
|
||||
circuit = "'OxygenIsToxicToHumans' AI Module"
|
||||
department = "Medical"
|
||||
security = "HIGH"
|
||||
|
||||
/obj/item/weapon/disk/circuit_disk/freeform
|
||||
name = "Circuit Design (Freeform Module)"
|
||||
blueprint = "/obj/item/weapon/aiModule/freeform"
|
||||
circuit = "'Freeform' AI Module"
|
||||
department = "Command and Control"
|
||||
security = "HIGH"
|
||||
|
||||
/obj/item/weapon/disk/circuit_disk/reset
|
||||
name = "Circuit Design (Reset Module)"
|
||||
blueprint = "/obj/item/weapon/aiModule/reset"
|
||||
circuit = "'Reset' AI Module"
|
||||
department = "Command and Control"
|
||||
security = "HIGH"
|
||||
|
||||
/obj/item/weapon/disk/circuit_disk/purge
|
||||
name = "Circuit Design (Purge Module)"
|
||||
blueprint = "/obj/item/weapon/aiModule/purge"
|
||||
circuit = "'Purge' AI Module"
|
||||
department = "Command and Control"
|
||||
security = "HIGH"
|
||||
|
||||
/obj/item/weapon/disk/circuit_disk/freeformcore
|
||||
name = "Circuit Design (Freeform Core Module)"
|
||||
blueprint = "/obj/item/weapon/aiModule/freeformcore"
|
||||
circuit = "'Freeform' AI Core Module"
|
||||
department = "Command and Control"
|
||||
security = "HIGH"
|
||||
|
||||
/obj/item/weapon/disk/circuit_disk/asimov
|
||||
name = "Circuit Design (Asimov Core Module)"
|
||||
blueprint = "/obj/item/weapon/aiModule/asimov"
|
||||
circuit = "'Asimov' AI Core Module"
|
||||
department = "Command and Control"
|
||||
security = "HIGH"
|
||||
|
||||
/obj/item/weapon/disk/circuit_disk/paladin
|
||||
name = "Circuit Design (P.A.L.A.D.I.N. Core Module)"
|
||||
blueprint = "/obj/item/weapon/aiModule/paladin"
|
||||
circuit = "'P.A.L.A.D.I.N.' AI Core Module"
|
||||
department = "Command and Control"
|
||||
security = "HIGH"
|
||||
|
||||
/obj/item/weapon/disk/circuit_disk/tyrant
|
||||
name = "Circuit Design (T.Y.R.A.N.T. Core Module)"
|
||||
blueprint = "/obj/item/weapon/aiModule/tyrant"
|
||||
circuit = "'T.Y.R.A.N.T.' AI Core Module"
|
||||
department = "Command and Control"
|
||||
security = "ULTRA'"
|
||||
|
||||
|
||||
///////////////////////////////////
|
||||
//////////Mecha Module Disks///////
|
||||
///////////////////////////////////
|
||||
|
||||
/obj/item/weapon/disk/circuit_disk/mecha/ripley/main
|
||||
name = "Circuit Design (APLU \"Ripley\" Central Control module)"
|
||||
blueprint = "/obj/item/mecha_parts/circuitboard/ripley/main"
|
||||
circuit = "Circuit Board (APLU \"Ripley\" Central Control module)"
|
||||
department = "Engineering"
|
||||
security = "MEDIUM"
|
||||
|
||||
/obj/item/weapon/disk/circuit_disk/mecha/ripley/peripherals
|
||||
name = "Circuit Design (APLU \"Ripley\" Peripherals Control module)"
|
||||
blueprint = "/obj/item/mecha_parts/circuitboard/ripley/peripherals"
|
||||
circuit = "Circuit Board (APLU \"Ripley\" Peripherals Control module)"
|
||||
department = "Engineering"
|
||||
security = "MEDIUM"
|
||||
@@ -1,54 +0,0 @@
|
||||
/obj/secure_closet/disk_security/New()
|
||||
..()
|
||||
sleep(2)
|
||||
new /obj/item/weapon/disk/circuit_disk/security( src )
|
||||
new /obj/item/weapon/disk/circuit_disk/secure_data( src )
|
||||
new /obj/item/weapon/disk/circuit_disk/prisoner( src )
|
||||
new /obj/item/weapon/disk/circuit_disk/protectStation( src )
|
||||
new /obj/item/weapon/disk/circuit_disk/paladin( src )
|
||||
return
|
||||
|
||||
/obj/secure_closet/disk_medical/New()
|
||||
..()
|
||||
sleep(2)
|
||||
new /obj/item/weapon/disk/circuit_disk/med_data( src )
|
||||
new /obj/item/weapon/disk/circuit_disk/pandemic( src )
|
||||
new /obj/item/weapon/disk/circuit_disk/scan_consolenew( src )
|
||||
new /obj/item/weapon/disk/circuit_disk/cloning( src )
|
||||
new /obj/item/weapon/disk/circuit_disk/quarantine( src )
|
||||
new /obj/item/weapon/disk/circuit_disk/oxygen( src )
|
||||
|
||||
return
|
||||
|
||||
/obj/secure_closet/disk_command/New()
|
||||
..()
|
||||
sleep(2)
|
||||
new /obj/item/weapon/disk/circuit_disk/aiupload( src )
|
||||
new /obj/item/weapon/disk/circuit_disk/communications( src )
|
||||
new /obj/item/weapon/disk/circuit_disk/card( src )
|
||||
new /obj/item/weapon/disk/circuit_disk/safeguard( src )
|
||||
new /obj/item/weapon/disk/circuit_disk/oneHuman( src )
|
||||
new /obj/item/weapon/disk/circuit_disk/freeform( src )
|
||||
new /obj/item/weapon/disk/circuit_disk/purge( src )
|
||||
new /obj/item/weapon/disk/circuit_disk/freeformcore( src )
|
||||
return
|
||||
|
||||
/obj/secure_closet/disk_engineering/New()
|
||||
..()
|
||||
sleep(2)
|
||||
new /obj/item/weapon/disk/circuit_disk/atmospherealerts( src )
|
||||
new /obj/item/weapon/disk/circuit_disk/air_management( src )
|
||||
new /obj/item/weapon/disk/circuit_disk/general_alert( src )
|
||||
new /obj/item/weapon/disk/circuit_disk/powermonitor( src )
|
||||
new /obj/item/weapon/disk/circuit_disk/prototypeEngineOffline( src )
|
||||
return
|
||||
|
||||
/obj/secure_closet/disk_research/New()
|
||||
..()
|
||||
sleep(2)
|
||||
new /obj/item/weapon/disk/circuit_disk/aicore( src )
|
||||
new /obj/item/weapon/disk/circuit_disk/aiupload( src )
|
||||
new /obj/item/weapon/disk/circuit_disk/teleporter( src )
|
||||
new /obj/item/weapon/disk/circuit_disk/robotics( src )
|
||||
new /obj/item/weapon/disk/circuit_disk/teleporterOffline( src )
|
||||
return
|
||||
@@ -0,0 +1,67 @@
|
||||
/*///////////////Circuit Imprinter (By Darem)////////////////////////
|
||||
Used to print new circuit boards (for computers and similar systems) and AI modules. Each circuit board pattern are stored in
|
||||
a /datum/desgin on the linked R&D console. You can then print them out in a fasion similar to a regular lathe. However, instead of
|
||||
using metal and glass, it uses glass and reagents (usually sulfuric acis).
|
||||
|
||||
*/
|
||||
/obj/machinery/circuit_imprinter
|
||||
name = "Circuit Imprinter"
|
||||
icon_state = "circuit_imprinter"
|
||||
density = 1
|
||||
anchored = 1
|
||||
flags = OPENCONTAINER
|
||||
var
|
||||
g_amount = 0
|
||||
const/max_g_amount = 75000.0
|
||||
busy = 0
|
||||
obj/machinery/computer/rdconsole/linked_console = null //Linked R&D Console
|
||||
|
||||
New()
|
||||
var/datum/reagents/R = new/datum/reagents(100) //Holder for the reagents used as materials.
|
||||
reagents = R
|
||||
R.my_atom = src
|
||||
|
||||
|
||||
blob_act()
|
||||
if (prob(50))
|
||||
del(src)
|
||||
|
||||
meteorhit()
|
||||
del(src)
|
||||
return
|
||||
|
||||
attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
if (!linked_console)
|
||||
user << "\The [name] must be linked to an R&D console first!"
|
||||
return 1
|
||||
if (O.is_open_container())
|
||||
return 1
|
||||
if (!istype(O, /obj/item/stack))
|
||||
user << "\red You cannot insert this item into the [name]!"
|
||||
return 1
|
||||
if (stat)
|
||||
return 1
|
||||
if (busy)
|
||||
user << "\red The [name] is busy. Please wait for completion of previous operation."
|
||||
return 1
|
||||
if (src.g_amount + O.g_amt > max_g_amount)
|
||||
user << "\red The [name] is full. Please remove glass from the protolathe in order to insert more."
|
||||
return 1
|
||||
|
||||
var/amount = 1
|
||||
var/obj/item/stack/stack
|
||||
var/g_amt = O.g_amt
|
||||
stack = O
|
||||
amount = stack.amount
|
||||
if (g_amt)
|
||||
amount = min(amount, round((max_g_amount-src.g_amount)/g_amt))
|
||||
stack.use(amount)
|
||||
busy = 1
|
||||
use_power(max(1000, (g_amt)*amount/10))
|
||||
spawn(16)
|
||||
src.g_amount += g_amt * amount
|
||||
if (O && O.loc == src)
|
||||
del(O)
|
||||
busy = 0
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
+101
-79
@@ -54,180 +54,180 @@ datum
|
||||
name = "Circuit Design (Security)"
|
||||
desc = "Allows for the construction of circuit boards used to build security camera computers."
|
||||
id = "seccamera"
|
||||
req_tech = list()
|
||||
req_tech = list("programming" = 2)
|
||||
reliability = 100
|
||||
build_type = IMPRINTER
|
||||
materials = list("$metal" = 2000, "acid" = 20)
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/weapon/circuitboard/security"
|
||||
|
||||
aicore
|
||||
name = "Circuit Design (AI Core)"
|
||||
desc = "Allows for the construction of circuit boards used to build new AI cores."
|
||||
id = "aicore"
|
||||
req_tech = list()
|
||||
req_tech = list("programming" = 5, "biotech" = 5)
|
||||
reliability = 100
|
||||
build_type = IMPRINTER
|
||||
materials = list("$metal" = 2000, "acid" = 20)
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/weapon/circuitboard/aicore"
|
||||
|
||||
aiupload
|
||||
name = "Circuit Design (AI Upload)"
|
||||
desc = "Allows for the construction of circuit boards used to build an AI Upload Console."
|
||||
id = "aiupload"
|
||||
req_tech = list()
|
||||
req_tech = list("programming" = 5)
|
||||
reliability = 100
|
||||
build_type = IMPRINTER
|
||||
materials = list("$metal" = 2000, "acid" = 20)
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/weapon/circuitboard/aiupload"
|
||||
|
||||
med_data
|
||||
name = "Circuit Design (Medical Records)"
|
||||
desc = "Allows for the construction of circuit boards used to build a medical records console."
|
||||
id = "med_data"
|
||||
req_tech = list()
|
||||
req_tech = list("programming" = 2)
|
||||
reliability = 100
|
||||
build_type = IMPRINTER
|
||||
materials = list("$metal" = 2000, "acid" = 20)
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/weapon/circuitboard/med_data"
|
||||
|
||||
pandemic
|
||||
name = "Circuit Design (PanD.E.M.I.C. 2200)"
|
||||
desc = "Allows for the construction of circuit boards used to build a PanD.E.M.I.C. 2200 console."
|
||||
id = "pandemic"
|
||||
req_tech = list()
|
||||
req_tech = list("programming" = 2, "biotech" = 2)
|
||||
reliability = 100
|
||||
build_type = IMPRINTER
|
||||
materials = list("$metal" = 2000, "acid" = 20)
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/weapon/circuitboard/pandemic"
|
||||
|
||||
scan_console
|
||||
name = "Circuit Design (DNA Machine)"
|
||||
desc = "Allows for the construction of circuit boards used to build a new DNA scanning console."
|
||||
id = "scan_console"
|
||||
req_tech = list()
|
||||
req_tech = list("programming" = 2, "biotech" = 3)
|
||||
reliability = 100
|
||||
build_type = IMPRINTER
|
||||
materials = list("$metal" = 2000, "acid" = 20)
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/machinery/scan_consolenew"
|
||||
|
||||
comconsole
|
||||
name = "Circuit Design (Communications)"
|
||||
desc = "Allows for the construction of circuit boards used to build a communications console."
|
||||
id = "comconsole"
|
||||
req_tech = list()
|
||||
req_tech = list("programming" = 2, "magnets" = 2)
|
||||
reliability = 100
|
||||
build_type = IMPRINTER
|
||||
materials = list("$metal" = 2000, "acid" = 20)
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/weapon/circuitboard/communications"
|
||||
|
||||
idcardconsole
|
||||
name = "Circuit Design (ID Computer)"
|
||||
desc = "Allows for the construction of circuit boards used to build an ID computer."
|
||||
id = "idcardconsole"
|
||||
req_tech = list()
|
||||
req_tech = list("programming" = 2)
|
||||
reliability = 100
|
||||
build_type = IMPRINTER
|
||||
materials = list("$metal" = 2000, "acid" = 20)
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/weapon/circuitboard/card"
|
||||
|
||||
teleconsole
|
||||
name = "Circuit Design (Teleporter Console)"
|
||||
desc = "Allows for the construction of circuit boards used to build a teleporter control console."
|
||||
id = "teleconsole"
|
||||
req_tech = list()
|
||||
req_tech = list("programming" = 3, "bluespace" = 2)
|
||||
reliability = 100
|
||||
build_type = IMPRINTER
|
||||
materials = list("$metal" = 2000, "acid" = 20)
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/weapon/circuitboard/teleporter"
|
||||
|
||||
secdata
|
||||
name = "Circuit Design (Security Records Console)"
|
||||
desc = "Allows for the construction of circuit boards used to build a security records console."
|
||||
id = "secdata"
|
||||
req_tech = list()
|
||||
req_tech = list("programming" = 2)
|
||||
reliability = 100
|
||||
build_type = IMPRINTER
|
||||
materials = list("$metal" = 2000, "acid" = 20)
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/weapon/circuitboard/secure_data"
|
||||
|
||||
atmosalerts
|
||||
name = "Circuit Design (Atmosphere Alerts Console)"
|
||||
desc = "Allows for the construction of circuit boards used to build an atmosphere alert console.."
|
||||
id = "atmosalerts"
|
||||
req_tech = list()
|
||||
req_tech = list("programming" = 2)
|
||||
reliability = 100
|
||||
build_type = IMPRINTER
|
||||
materials = list("$metal" = 2000, "acid" = 20)
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/weapon/circuitboard/atmosphere/alerts"
|
||||
|
||||
air_management
|
||||
name = "Circuit Design (Atmospheric Monitor)"
|
||||
desc = "Allows for the construction of circuit boards used to build an Atmospheric Monitor."
|
||||
id = "air_management"
|
||||
req_tech = list()
|
||||
req_tech = list("programming" = 2)
|
||||
reliability = 100
|
||||
build_type = IMPRINTER
|
||||
materials = list("$metal" = 2000, "acid" = 20)
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/weapon/circuitboard/general_air_control"
|
||||
|
||||
general_alert
|
||||
name = "Circuit Design (General Alert Console)"
|
||||
desc = "Allows for the construction of circuit boards used to build a General Alert console."
|
||||
id = "general_alert"
|
||||
req_tech = list()
|
||||
req_tech = list("programming" = 2)
|
||||
reliability = 100
|
||||
build_type = IMPRINTER
|
||||
materials = list("$metal" = 2000, "acid" = 20)
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/weapon/circuitboard/general_alert"
|
||||
|
||||
robocontrol
|
||||
name = "Circuit Design (Robotics Control Console)"
|
||||
desc = "Allows for the construction of circuit boards used to build a Robotics Control console."
|
||||
id = "robocontrol"
|
||||
req_tech = list()
|
||||
req_tech = list("programming" = 4)
|
||||
reliability = 100
|
||||
build_type = IMPRINTER
|
||||
materials = list("$metal" = 2000, "acid" = 20)
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/weapon/circuitboard/robotics"
|
||||
|
||||
clonecontrol
|
||||
name = "Circuit Design (Cloning Machine Console)"
|
||||
desc = "Allows for the construction of circuit boards used to build a new Cloning Machine console."
|
||||
id = "clonecontrol"
|
||||
req_tech = list()
|
||||
req_tech = list("programming" = 3, "biotech" = 4)
|
||||
reliability = 100
|
||||
build_type = IMPRINTER
|
||||
materials = list("$metal" = 2000, "acid" = 20)
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/weapon/circuitboard/cloning"
|
||||
|
||||
arcademachine
|
||||
name = "Circuit Design (Arcade Machine)"
|
||||
desc = "Allows for the construction of circuit boards used to build a new arcade machine."
|
||||
id = "arcademachine"
|
||||
req_tech = list()
|
||||
req_tech = list("programming" = 1)
|
||||
reliability = 100
|
||||
build_type = IMPRINTER
|
||||
materials = list("$metal" = 2000, "acid" = 20)
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/weapon/circuitboard/arcade"
|
||||
|
||||
powermonitor
|
||||
name = "Circuit Design (Power Monitor)"
|
||||
desc = "Allows for the construction of circuit boards used to build a new power monitor"
|
||||
id = "powermonitor"
|
||||
req_tech = list()
|
||||
req_tech = list("programming" = 2)
|
||||
reliability = 100
|
||||
build_type = IMPRINTER
|
||||
materials = list("$metal" = 2000, "acid" = 20)
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/machinery/power/monitor"
|
||||
|
||||
prisonmanage
|
||||
name = "Circuit Design (Prisoner Management Console)"
|
||||
desc = "Allows for the construction of circuit boards used to build a prisoner management console."
|
||||
id = "prisonmanage"
|
||||
req_tech = list()
|
||||
req_tech = list("programming" = 2)
|
||||
reliability = 100
|
||||
build_type = IMPRINTER
|
||||
materials = list("$metal" = 2000, "acid" = 20)
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/weapon/circuitboard/prisoner"
|
||||
|
||||
///////////////////////////////////
|
||||
@@ -237,130 +237,130 @@ datum
|
||||
name = "Module Design (Safeguard)"
|
||||
desc = "Allows for the construction of a Safeguard AI Module."
|
||||
id = "safeguard_module"
|
||||
req_tech = list()
|
||||
req_tech = list("programming" = 5)
|
||||
reliability = 100
|
||||
build_type = IMPRINTER
|
||||
materials = list("$metal" = 2000, "acid" = 20)
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/weapon/aiModule/safeguard"
|
||||
|
||||
onehuman_module
|
||||
name = "Module Design (OneHuman)"
|
||||
desc = "Allows for the construction of a OneHuman AI Module."
|
||||
id = "onehuman_module"
|
||||
req_tech = list()
|
||||
req_tech = list("programming" = 5, "syndicate" = 2)
|
||||
reliability = 100
|
||||
build_type = IMPRINTER
|
||||
materials = list("$metal" = 2000, "acid" = 20)
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/weapon/aiModule/oneHuman"
|
||||
|
||||
protectstation_module
|
||||
name = "Module Design (ProtectStation)"
|
||||
desc = "Allows for the construction of a ProtectStation AI Module."
|
||||
id = "protectstation_module"
|
||||
req_tech = list()
|
||||
req_tech = list("programming" = 5)
|
||||
reliability = 100
|
||||
build_type = IMPRINTER
|
||||
materials = list("$metal" = 2000, "acid" = 20)
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/weapon/aiModule/protectStation"
|
||||
|
||||
notele_module
|
||||
name = "Module Design (TeleporterOffline Module)"
|
||||
desc = "Allows for the construction of a TeleporterOffline AI Module."
|
||||
id = "notele_module"
|
||||
req_tech = list()
|
||||
req_tech = list("programming" = 5)
|
||||
reliability = 100
|
||||
build_type = IMPRINTER
|
||||
materials = list("$metal" = 2000, "acid" = 20)
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/weapon/aiModule/teleporterOffline"
|
||||
|
||||
quarantine_module
|
||||
name = "Module Design (Quarantine)"
|
||||
desc = "Allows for the construction of a Quarantine AI Module."
|
||||
id = "quarantine_module"
|
||||
req_tech = list()
|
||||
req_tech = list("programming" = 5, "biotech" = 2)
|
||||
reliability = 100
|
||||
build_type = IMPRINTER
|
||||
materials = list("$metal" = 2000, "acid" = 20)
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/weapon/aiModule/quarantine"
|
||||
|
||||
oxygen_module
|
||||
name = "Module Design (OxygenIsToxicToHumans)"
|
||||
desc = "Allows for the construction of a Safeguard AI Module."
|
||||
id = "oxygen_module"
|
||||
req_tech = list()
|
||||
req_tech = list("programming" = 5, "biotech" = 2)
|
||||
reliability = 100
|
||||
build_type = IMPRINTER
|
||||
materials = list("$metal" = 2000, "acid" = 20)
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/weapon/aiModule/oxygen"
|
||||
|
||||
freeform_module
|
||||
name = "Module Design (Freeform)"
|
||||
desc = "Allows for the construction of a Freeform AI Module."
|
||||
id = "freeform_module"
|
||||
req_tech = list()
|
||||
req_tech = list("programming" = 6)
|
||||
reliability = 100
|
||||
build_type = IMPRINTER
|
||||
materials = list("$metal" = 2000, "acid" = 20)
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/weapon/aiModule/freeform"
|
||||
|
||||
reset_module
|
||||
name = "Module Design (Reset)"
|
||||
desc = "Allows for the construction of a Reset AI Module."
|
||||
id = "reset_module"
|
||||
req_tech = list()
|
||||
req_tech = list("programming" = 5)
|
||||
reliability = 100
|
||||
build_type = IMPRINTER
|
||||
materials = list("$metal" = 2000, "acid" = 20)
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/weapon/aiModule/reset"
|
||||
|
||||
purge_module
|
||||
name = "Module Design (Purge)"
|
||||
desc = "Allows for the construction of a Purge AI Module."
|
||||
id = "purge_module"
|
||||
req_tech = list()
|
||||
req_tech = list("programming" = 5)
|
||||
reliability = 100
|
||||
build_type = IMPRINTER
|
||||
materials = list("$metal" = 2000, "acid" = 20)
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/weapon/aiModule/purge"
|
||||
|
||||
freeformcore_module
|
||||
name = "Core Module Design (Freeform)"
|
||||
desc = "Allows for the construction of a Freeform AI Core Module."
|
||||
id = "freeformcore_module"
|
||||
req_tech = list()
|
||||
req_tech = list("programming" = 6)
|
||||
reliability = 100
|
||||
build_type = IMPRINTER
|
||||
materials = list("$metal" = 2000, "acid" = 20)
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/weapon/aiModule/freeformcore"
|
||||
|
||||
asimov
|
||||
name = "Core Module Design (Asimov)"
|
||||
desc = "Allows for the construction of a Asimov AI Core Module."
|
||||
id = "asimov_module"
|
||||
req_tech = list()
|
||||
req_tech = list("programming" = 5)
|
||||
reliability = 100
|
||||
build_type = IMPRINTER
|
||||
materials = list("$metal" = 2000, "acid" = 20)
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/weapon/aiModule/asimov"
|
||||
|
||||
paladin_module
|
||||
name = "Core Module Design (P.A.L.A.D.I.N.)"
|
||||
desc = "Allows for the construction of a P.A.L.A.D.I.N. AI Core Module."
|
||||
id = "paladin_module"
|
||||
req_tech = list()
|
||||
req_tech = list("programming" = 5)
|
||||
reliability = 100
|
||||
build_type = IMPRINTER
|
||||
materials = list("$metal" = 2000, "acid" = 20)
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/weapon/aiModule/paladin"
|
||||
|
||||
tyrant_module
|
||||
name = "Core Module Design (T.Y.R.A.N.T.)"
|
||||
desc = "Allows for the construction of a T.Y.R.A.N.T. AI Module."
|
||||
id = "tyrant_module"
|
||||
req_tech = list()
|
||||
req_tech = list("programming" = 5, "syndicate" = 2)
|
||||
reliability = 100
|
||||
build_type = IMPRINTER
|
||||
materials = list("$metal" = 2000, "acid" = 20)
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/weapon/aiModule/tyrant"
|
||||
|
||||
///////////////////////////////////
|
||||
@@ -371,20 +371,20 @@ datum
|
||||
name = "Circuit Design (APLU \"Ripley\" Central Control module)"
|
||||
desc = "Allows for the construction of a Safeguard AI Module."
|
||||
id = "ripley_main"
|
||||
req_tech = list()
|
||||
req_tech = list("programming" = 3, "robotics" = 5)
|
||||
reliability = 100
|
||||
build_type = IMPRINTER
|
||||
materials = list("$metal" = 2000, "acid" = 20)
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/mecha_parts/circuitboard/ripley/main"
|
||||
|
||||
ripley_peri
|
||||
name = "Circuit Design (APLU \"Ripley\" Peripherals Control module)"
|
||||
desc = "Allows for the construction of a Safeguard AI Module."
|
||||
id = "ripley_peri"
|
||||
req_tech = list()
|
||||
req_tech = list("programming" = 3, "robotics" = 5)
|
||||
reliability = 100
|
||||
build_type = IMPRINTER
|
||||
materials = list("$metal" = 2000, "acid" = 20)
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/mecha_parts/circuitboard/ripley/peripherals"
|
||||
|
||||
////////////////////////////////////////
|
||||
@@ -394,32 +394,52 @@ datum
|
||||
name = "Design Storage Disk"
|
||||
desc = "Produce additional disks for storing device designs."
|
||||
id = "design_disk"
|
||||
req_tech = list()
|
||||
req_tech = list("programming" = 1)
|
||||
reliability = 100
|
||||
build_type = PROTOLATHE | AUTOLATHE
|
||||
materials = list("$metal" = 50, "$glass" = 20)
|
||||
materials = list("$metal" = 30, "$glass" = 10)
|
||||
build_path = "/obj/item/weapon/disk/design_disk"
|
||||
|
||||
tech_disk
|
||||
name = "Technology Data Storage Disk"
|
||||
desc = "Produce additional disks for storing technology data."
|
||||
id = "tech_disk"
|
||||
req_tech = list()
|
||||
req_tech = list("programming" = 1)
|
||||
reliability = 100
|
||||
build_type = PROTOLATHE | AUTOLATHE
|
||||
materials = list("$metal" = 30, "$glass" = 10)
|
||||
build_path = "/obj/item/weapon/disk/tech_disk"
|
||||
|
||||
////////////////////////////////////////
|
||||
/////////////Stock Parts////////////////
|
||||
////////////////////////////////////////
|
||||
|
||||
basic_capacitor
|
||||
name = "Basic Capacitor"
|
||||
desc = "A stock part used in the construction of various devices."
|
||||
id = "basic_capacitor"
|
||||
req_tech = list("powerstorage" = 2)
|
||||
reliability = 100
|
||||
build_type = PROTOLATHE | AUTOLATHE
|
||||
materials = list("$metal" = 50, "$glass" = 50)
|
||||
|
||||
basic_sensor
|
||||
name = "Basic Sensor Module"
|
||||
desc = "A stock part used in the construction of various devices."
|
||||
id = "basic_senosr"
|
||||
req_tech = list("magnets" = 2)
|
||||
reliability = 100
|
||||
build_type = PROTOLATHE | AUTOLATHE
|
||||
materials = list("$metal" = 50, "$glass" = 20)
|
||||
build_path = "/obj/item/weapon/disk/tech_disk"
|
||||
|
||||
|
||||
dummy_design
|
||||
name = "Dummy Design"
|
||||
desc = "Just a design for testing purposes. Makes a d20"
|
||||
id = "dummy_design"
|
||||
req_tech = list()
|
||||
basic_micro_mani
|
||||
name = "Basic Micro Manipulator"
|
||||
desc = "A stock part used in the construction of various devices."
|
||||
id = "basic_micro_mani"
|
||||
req_tech = list("robotics" = 1)
|
||||
reliability = 100
|
||||
build_type = PROTOLATHE
|
||||
materials = list("$metal" = 2500, "$glass" = 2500)
|
||||
build_path = "/obj/item/weapon/deconstruction_test"
|
||||
build_type = PROTOLATHE | AUTOLATHE
|
||||
materials = list("$metal" = 30)
|
||||
|
||||
|
||||
////////////////////////////////////////
|
||||
@@ -433,6 +453,8 @@ datum
|
||||
icon_state = "datadisk2"
|
||||
item_state = "card-id"
|
||||
w_class = 1.0
|
||||
m_amt = 30
|
||||
g_amt = 10
|
||||
var/datum/design/blueprint
|
||||
New()
|
||||
src.pixel_x = rand(-5.0, 5)
|
||||
|
||||
@@ -7,8 +7,7 @@ Note: Must be placed east/right of an R&D console to function.
|
||||
*/
|
||||
/obj/machinery/destructive_analyzer
|
||||
name = "Destructive Analyzer"
|
||||
//icon_state = "d_analyzer"
|
||||
icon_state = "autolathe"
|
||||
icon_state = "d_analyzer"
|
||||
var/obj/item/weapon/loaded_item = null
|
||||
var/obj/machinery/computer/rdconsole/linked_console
|
||||
anchored = 1
|
||||
@@ -30,6 +29,7 @@ Note: Must be placed east/right of an R&D console to function.
|
||||
user.drop_item()
|
||||
O.loc = src
|
||||
user << "\blue You add the [O.name] to the machine!"
|
||||
image('stationobjs.dmi', icon_state="d_analyzer_o")
|
||||
|
||||
return
|
||||
|
||||
@@ -41,4 +41,4 @@ Note: Must be placed east/right of an R&D console to function.
|
||||
icon_state = "d20"
|
||||
g_amt = 5000
|
||||
m_amt = 5000
|
||||
origin_tech = list("materials" = 4, "plasmatech" = 2, "syndicate" = 5)
|
||||
origin_tech = list("materials" = 4, "plasmatech" = 2, "syndicate" = 5, "programming" = 9)
|
||||
@@ -8,6 +8,7 @@ Note: Must be placed west/left of and R&D console to function.
|
||||
|
||||
*/
|
||||
/obj/machinery/protolathe
|
||||
name = "Protolathe"
|
||||
density = 1
|
||||
anchored = 1.0
|
||||
icon_state = "protolathe"
|
||||
@@ -64,4 +65,5 @@ Note: Must be placed west/left of and R&D console to function.
|
||||
if (O && O.loc == src)
|
||||
del(O)
|
||||
busy = 0
|
||||
src.updateUsrDialog()
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
+147
-44
@@ -16,6 +16,7 @@ also contains the /datum/research holder with all the known/possible technology
|
||||
|
||||
obj/machinery/destructive_analyzer/linked_destroy = null //Linked Destructive Analyzer
|
||||
obj/machinery/protolathe/linked_lathe = null //Linked Protolathe
|
||||
obj/machinery/circuit_imprinter/linked_imprinter = null //Linked Circuit Imprinter
|
||||
|
||||
screen = 1.0 //Which screen is currently showing.
|
||||
sync = 1 //Will it get updated when the R&D console does it's syncing process.
|
||||
@@ -28,14 +29,36 @@ also contains the /datum/research holder with all the known/possible technology
|
||||
var/return_name = null
|
||||
for(var/T in typesof(/datum/tech) - /datum/tech)
|
||||
check_tech = null
|
||||
check_tech = new T(src)
|
||||
check_tech = new T()
|
||||
if(check_tech.id == ID)
|
||||
return_name = check_tech.name
|
||||
del(check_tech)
|
||||
check_tech = null
|
||||
break
|
||||
|
||||
return return_name
|
||||
|
||||
CallMaterialName(var/ID)
|
||||
var/datum/reagent/temp_reagent
|
||||
var/return_name = null
|
||||
if (copytext(ID, 1, 2) == "$")
|
||||
return_name = copytext(ID, 2)
|
||||
switch(return_name)
|
||||
if("metal")
|
||||
return_name = "Metal"
|
||||
if("glass")
|
||||
return_name = "Glass"
|
||||
else
|
||||
for(var/R in typesof(/datum/reagent) - /datum/reagent)
|
||||
temp_reagent = null
|
||||
temp_reagent = new R()
|
||||
if(temp_reagent.id == ID)
|
||||
return_name = temp_reagent.name
|
||||
del(temp_reagent)
|
||||
temp_reagent = null
|
||||
break
|
||||
return return_name
|
||||
|
||||
SyncRDevices() //Makes sure it is properly sync'ed up with the devices attached to it (if any).
|
||||
linked_destroy = null
|
||||
linked_destroy = locate(/obj/machinery/destructive_analyzer, get_step(src, EAST))
|
||||
@@ -43,6 +66,11 @@ also contains the /datum/research holder with all the known/possible technology
|
||||
linked_lathe = null
|
||||
linked_lathe = locate(/obj/machinery/protolathe, get_step(src, WEST))
|
||||
if(linked_lathe) linked_lathe.linked_console = src
|
||||
linked_imprinter = null
|
||||
linked_imprinter = locate(/obj/machinery/circuit_imprinter/, get_step(src, WEST))
|
||||
if(linked_imprinter) linked_imprinter.linked_console = src
|
||||
return
|
||||
|
||||
|
||||
New()
|
||||
..()
|
||||
@@ -156,13 +184,14 @@ also contains the /datum/research holder with all the known/possible technology
|
||||
else if(href_list["eject_item"]) //Eject the item inside the destructive analyzer.
|
||||
linked_destroy.loaded_item:loc = src.loc
|
||||
linked_destroy.loaded_item = null
|
||||
screen = 2.0
|
||||
screen = 2.1
|
||||
|
||||
else if(href_list["deconstruct"]) //Deconstruct the item in the destructive analyzer and update the research holder.
|
||||
var/choice = input("Proceeding will destroy loaded item.") in list("Proceed", "Cancel")
|
||||
if(choice == "Cancel") return
|
||||
screen = 0.1
|
||||
updateUsrDialog()
|
||||
flick("d_analyzer_n", linked_destroy)
|
||||
spawn(16)
|
||||
for(var/T in linked_destroy.loaded_item.origin_tech)
|
||||
files.UpdateTech(T, linked_destroy.loaded_item.origin_tech[T])
|
||||
@@ -172,6 +201,7 @@ also contains the /datum/research holder with all the known/possible technology
|
||||
linked_destroy.loaded_item = null
|
||||
for(var/I in contents)
|
||||
del(I)
|
||||
linked_destroy.overlays = null
|
||||
screen = 1.0
|
||||
updateUsrDialog()
|
||||
|
||||
@@ -190,6 +220,7 @@ also contains the /datum/research holder with all the known/possible technology
|
||||
C.files.AddTech2Known(T)
|
||||
for(var/datum/design/D in files.known_designs)
|
||||
C.files.AddDesign2Known(D)
|
||||
C.files.RefreshResearch()
|
||||
screen = 1.6
|
||||
updateUsrDialog()
|
||||
|
||||
@@ -197,35 +228,65 @@ also contains the /datum/research holder with all the known/possible technology
|
||||
sync = !sync
|
||||
|
||||
else if(href_list["build"]) //Causes the Protolathe to build something.
|
||||
var/turf/T = get_step(linked_lathe.loc, get_dir(linked_lathe,usr))
|
||||
var/datum/design/being_built = null
|
||||
for(var/datum/design/D in files.known_designs)
|
||||
if(D.id == href_list["build"])
|
||||
being_built = D
|
||||
break
|
||||
var/power = max(2000, (text2num(href_list["metal"])+text2num(href_list["glass"]))/5)
|
||||
if(linked_lathe.m_amount >= text2num(href_list["metal"]) && linked_lathe.g_amount >= text2num(href_list["glass"]))
|
||||
screen = 0.3
|
||||
linked_lathe.busy = 1
|
||||
screen = 0.3
|
||||
linked_lathe.busy = 1
|
||||
flick("protolathe_n",linked_lathe)
|
||||
spawn(16)
|
||||
use_power(power)
|
||||
linked_lathe.icon_state = "protolathe"
|
||||
spawn(16)
|
||||
use_power(power)
|
||||
flick("protolathe_n",linked_lathe)
|
||||
spawn(16)
|
||||
use_power(power)
|
||||
spawn(16)
|
||||
linked_lathe.m_amount -= text2num(href_list["metal"])
|
||||
linked_lathe.g_amount -= text2num(href_list["glass"])
|
||||
if(linked_lathe.m_amount < 0)
|
||||
linked_lathe.m_amount = 0
|
||||
if(linked_lathe.g_amount < 0)
|
||||
linked_lathe.g_amount = 0
|
||||
var/obj/new_item = new being_built.build_path(src)
|
||||
new_item.loc = T
|
||||
linked_lathe.busy = 0
|
||||
screen = 3.0
|
||||
updateUsrDialog()
|
||||
linked_lathe.m_amount -= text2num(href_list["metal"])
|
||||
linked_lathe.g_amount -= text2num(href_list["glass"])
|
||||
if(linked_lathe.m_amount < 0)
|
||||
linked_lathe.m_amount = 0
|
||||
if(linked_lathe.g_amount < 0)
|
||||
linked_lathe.g_amount = 0
|
||||
var/obj/new_item = new being_built.build_path(src)
|
||||
new_item.loc = src.loc
|
||||
linked_lathe.busy = 0
|
||||
screen = 3.1
|
||||
updateUsrDialog()
|
||||
|
||||
else if(href_list["imprint"])
|
||||
linked_imprinter.busy = 1
|
||||
screen = 0.4
|
||||
updateUsrDialog()
|
||||
flick("circuit_imprinter_ani", linked_imprinter)
|
||||
spawn(16)
|
||||
var/datum/design/being_built = null
|
||||
for(var/datum/design/D in files.known_designs)
|
||||
if(D.id == href_list["imprint"])
|
||||
being_built = D
|
||||
break
|
||||
var/power = 0
|
||||
for(var/I in being_built.materials)
|
||||
switch(I)
|
||||
if("$glass")
|
||||
linked_imprinter.g_amount -= being_built.materials[I]
|
||||
power += being_built.materials[I] / 5
|
||||
if(linked_imprinter.g_amount < 0)
|
||||
linked_imprinter.g_amount = 0
|
||||
if("$metal")
|
||||
continue
|
||||
else
|
||||
linked_imprinter.reagents.remove_reagent(I, being_built.materials[I])
|
||||
power += being_built.materials[I]
|
||||
var/obj/new_item = new being_built.build_path(src)
|
||||
new_item.loc = src.loc
|
||||
linked_imprinter.busy = 0
|
||||
screen = 4.1
|
||||
updateUsrDialog()
|
||||
|
||||
else if(href_list["dispose"])
|
||||
linked_imprinter.reagents.del_reagent(href_list["dispose"])
|
||||
|
||||
else if(href_list["disposeall"])
|
||||
linked_imprinter.reagents.clear_reagents()
|
||||
|
||||
updateUsrDialog()
|
||||
return
|
||||
@@ -236,19 +297,19 @@ also contains the /datum/research holder with all the known/possible technology
|
||||
user.machine = src
|
||||
var/dat = ""
|
||||
SyncRDevices()
|
||||
|
||||
if(screen == 2.0 || screen == 2.1) //A quick check to make sure the right screen pops up for the D-analyzer.
|
||||
if(linked_destroy == null)
|
||||
screen = 2.2
|
||||
if(linked_destroy.loaded_item == null)
|
||||
screen = 2.0
|
||||
else
|
||||
screen = 2.1
|
||||
else if(screen == 3.0 || screen == 3.1)
|
||||
if(linked_lathe == null)
|
||||
screen = 3.0
|
||||
else
|
||||
screen = 3.1
|
||||
files.RefreshResearch()
|
||||
switch(screen) //A quick check to make sure you get the right screen when a device is disconnected.
|
||||
if(2 to 2.9)
|
||||
if(linked_destroy == null)
|
||||
screen = 2.0
|
||||
else if(linked_destroy.loaded_item == null)
|
||||
screen = 2.1
|
||||
if(3 to 3.9)
|
||||
if(linked_lathe == null)
|
||||
screen = 3.0
|
||||
if(4 to 4.9)
|
||||
if(linked_imprinter == null)
|
||||
screen = 4.0
|
||||
|
||||
switch(screen)
|
||||
|
||||
@@ -264,16 +325,21 @@ also contains the /datum/research holder with all the known/possible technology
|
||||
if(0.3)
|
||||
dat += "Constructing Prototype. Please Wait..."
|
||||
|
||||
if(0.4)
|
||||
dat += "Imprinting Circuit. Please Wait..."
|
||||
|
||||
if(1.0) //Main Menu
|
||||
dat += "Main Menu:<BR><BR>"
|
||||
dat += "<A href='?src=\ref[src];menu=1.1'>Current Research Levels</A><BR>"
|
||||
if(t_disk) dat += "<A href='?src=\ref[src];menu=1.2'>Disk Operations</A><BR>"
|
||||
else if(d_disk) dat += "<A href='?src=\ref[src];menu=1.4'>Disk Operations</A><BR>"
|
||||
else dat += "(Please Insert Disk)<BR>"
|
||||
if(linked_destroy != null) dat += "<A href='?src=\ref[src];menu=2.0'>Destructive Analyzer Menu</A><BR>"
|
||||
if(linked_destroy != null) dat += "<A href='?src=\ref[src];menu=2.2'>Destructive Analyzer Menu</A><BR>"
|
||||
else dat += "(NO DESTRUCTIVE ANALYZER CONNECTED TO CONSOLE)<BR>"
|
||||
if(linked_lathe != null) dat += "<A href='?src=\ref[src];menu=3.0'>Protolathe Construction Menu</A><BR>"
|
||||
if(linked_lathe != null) dat += "<A href='?src=\ref[src];menu=3.1'>Protolathe Construction Menu</A><BR>"
|
||||
else dat += "(NO PROTOLATHE CONNECTED TO CONSOLE)<BR>"
|
||||
if(linked_imprinter != null) dat += "<A href='?src=\ref[src];menu=4.1'>Circuit Construction Menu</A><BR>"
|
||||
else dat += "(NO IMPRINTER CONNECTED TO CONSOLE)<BR>"
|
||||
dat += "<A href='?src=\ref[src];menu=1.6'>Settings</A>"
|
||||
|
||||
if(1.1) //Research viewer
|
||||
@@ -349,10 +415,14 @@ also contains the /datum/research holder with all the known/possible technology
|
||||
|
||||
////////////////////DESTRUCTIVE ANALYZER SCREENS////////////////////////////
|
||||
if(2.0)
|
||||
dat += "No Item Loaded. Standing-by...<BR><HR>"
|
||||
dat += "NO DESTRUCTIVE ANALYZER LINKED TO CONSOLE<BR><BR>"
|
||||
dat += "<A href='?src=\ref[src];menu=1.0'>Main Menu</A>"
|
||||
|
||||
if(2.1)
|
||||
dat += "No Item Loaded. Standing-by...<BR><HR>"
|
||||
dat += "<A href='?src=\ref[src];menu=1.0'>Main Menu</A>"
|
||||
|
||||
if(2.2)
|
||||
dat += "Deconstruction Menu<HR>"
|
||||
dat += "Name: [linked_destroy.loaded_item.name]<BR>"
|
||||
dat += "Origin Tech:<BR>"
|
||||
@@ -362,14 +432,11 @@ also contains the /datum/research holder with all the known/possible technology
|
||||
dat += "<A href='?src=\ref[src];eject_item=1'>Eject Item</A> || "
|
||||
dat += "<A href='?src=\ref[src];menu=1.0'>Main Menu</A>"
|
||||
|
||||
if(2.2)
|
||||
dat += "NO DESTRUCTIVE ANALYZER LINKED TO CONSOLE<BR><BR>"
|
||||
dat += "<A href='?src=\ref[src];menu=1.0'>Main Menu</A>"
|
||||
|
||||
/////////////////////PROTOLATHE SCREENS/////////////////////////
|
||||
if(3.0)
|
||||
dat += "NO PROTOLATHE LINKED TO CONSOLE<BR><BR>"
|
||||
dat += "<A href='?src=\ref[src];menu=1.0'>Main Menu</A>"
|
||||
|
||||
if(3.1)
|
||||
dat += "Protolathe Menu:<BR><BR>"
|
||||
dat += "<B>Metal Amount:</B> [linked_lathe.m_amount] cm<sup>3</sup> (MAX: [linked_lathe.max_m_amount])<BR>"
|
||||
@@ -388,7 +455,43 @@ also contains the /datum/research holder with all the known/possible technology
|
||||
dat += "<HR><A href='?src=\ref[src];menu=1.0'>Main Menu</A>"
|
||||
|
||||
///////////////////CIRCUIT IMPRINTER SCREENS////////////////////
|
||||
//if(4.0) Add later.
|
||||
if(4.0)
|
||||
dat += "NO CIRCUIT IMPRINTER LINKED TO CONSOLE<BR><BR>"
|
||||
dat += "<A href='?src=\ref[src];menu=1.0'>Main Menu</A>"
|
||||
|
||||
if(4.1)
|
||||
dat += "Circuit Imprinter Menu:<BR><BR>"
|
||||
dat += "Glass Amount: [linked_imprinter.g_amount] cm<sup>3</sup><BR>"
|
||||
dat += "Chemical Volume: [linked_imprinter.reagents.total_volume]<HR>"
|
||||
|
||||
for(var/datum/design/D in files.known_designs)
|
||||
if(!(D.build_type & IMPRINTER))
|
||||
continue
|
||||
var/temp_dat = "[D.name]"
|
||||
var/temp_glass = 0
|
||||
var/check_reagents = 1
|
||||
for(var/M in D.materials)
|
||||
temp_dat += " [D.materials[M]] [CallMaterialName(M)]"
|
||||
if(M == "$glass")
|
||||
temp_glass = D.materials[M]
|
||||
else if (copytext(M, 1, 2) != "$" && !linked_imprinter.reagents.has_reagent(M, D.materials[M]))
|
||||
check_reagents = 0
|
||||
if ((linked_imprinter.g_amount >= temp_glass) && check_reagents)
|
||||
dat += "* <A href='?src=\ref[src];imprint=[D.id]'>[temp_dat]</A><BR>"
|
||||
else
|
||||
dat += "* [temp_dat]<BR>"
|
||||
|
||||
dat += "<HR><A href='?src=\ref[src];menu=4.2'>Chemical Storage</A> | "
|
||||
dat += "<A href='?src=\ref[src];menu=1.0'>Main Menu</A>"
|
||||
|
||||
if(4.2)
|
||||
dat += "Chemical Storage<BR><HR>"
|
||||
for(var/datum/reagent/R in linked_imprinter.reagents.reagent_list)
|
||||
dat += "Name: [R.name] | Units: [R.volume] "
|
||||
dat += "<A href='?src=\ref[src];dispose=[R.id]'>(Purge)</A><BR>"
|
||||
dat += "<A href='?src=\ref[src];disposeall=1'><U>Disposal All Chemicals in Storage</U></A><BR>"
|
||||
dat += "<HR><A href='?src=\ref[src];menu=4.1'>Imprinter Menu</A> | "
|
||||
dat += "<A href='?src=\ref[src];menu=1.0'>Main Menu</A>"
|
||||
|
||||
user << browse("<TITLE>Research and Development Console</TITLE><HR>[dat]", "window=rdconsole;size=575x400")
|
||||
onclose(user, "rdconsole")
|
||||
@@ -69,8 +69,9 @@ research holder datum.
|
||||
var/matches = 0
|
||||
for(var/req in T.req_tech)
|
||||
for(var/datum/tech/known in known_tech)
|
||||
if(req == known && T.req_tech[req] <= known_tech[known])
|
||||
if((req == known.id) && (known.level >= T.req_tech[req]))
|
||||
matches++
|
||||
break
|
||||
if(matches == T.req_tech.len)
|
||||
return 1
|
||||
else
|
||||
@@ -81,11 +82,12 @@ research holder datum.
|
||||
DesignHasReqs(var/datum/design/D)
|
||||
if(D.req_tech.len == 0)
|
||||
return 1
|
||||
var/matches
|
||||
var/matches = 0
|
||||
for(var/req in D.req_tech)
|
||||
for(var/datum/tech/known in known_tech)
|
||||
if(req == known && D.req_tech[req] <= known_tech[known])
|
||||
if((req == known.id) && (known.level >= D.req_tech[req]))
|
||||
matches++
|
||||
break
|
||||
if(matches == D.req_tech.len)
|
||||
return 1
|
||||
else
|
||||
@@ -100,26 +102,24 @@ research holder datum.
|
||||
known.level = T.level
|
||||
return
|
||||
known_tech += T
|
||||
RefreshResearch()
|
||||
return
|
||||
|
||||
AddDesign2Known(var/datum/design/D)
|
||||
for(var/datum/design/known in known_designs)
|
||||
if(D.id == known.id)
|
||||
if(D.reliability > known.reliability)
|
||||
known.reliability = D.reliability
|
||||
if(D.reliability_mod > known.reliability_mod)
|
||||
known.reliability_mod = D.reliability_mod
|
||||
return
|
||||
known_designs += D
|
||||
RefreshResearch()
|
||||
return
|
||||
|
||||
//Refreshes known_tech and known_designs list. Then updates the reliability vars of the designs in the known_designs list.
|
||||
//Input/Output: n/a
|
||||
RefreshResearch()
|
||||
for(var/datum/tech/PT in possible_tech - known_tech)
|
||||
for(var/datum/tech/PT in possible_tech)
|
||||
if(TechHasReqs(PT))
|
||||
AddTech2Known(PT)
|
||||
for(var/datum/design/PD in possible_designs - known_designs)
|
||||
for(var/datum/design/PD in possible_designs)
|
||||
if(DesignHasReqs(PD))
|
||||
AddDesign2Known(PD)
|
||||
for(var/datum/tech/T in known_tech)
|
||||
@@ -188,7 +188,7 @@ datum
|
||||
|
||||
programming
|
||||
name = "Data Theory Research"
|
||||
desc = "The development of new computer and artificial intelligence systems."
|
||||
desc = "The development of new computer and artificial intelligence and datat storage systems."
|
||||
id = "programming"
|
||||
|
||||
syndicate
|
||||
@@ -227,11 +227,12 @@ datum
|
||||
id = "smestech"
|
||||
req_tech = list("powerstorage" = 3, "magnets" = 3)
|
||||
|
||||
cybernetics
|
||||
name = "Cybernetic Technology"
|
||||
desc = "The development of advanced man/machine interfaces."
|
||||
id = "cybernetics"
|
||||
req_tech = list("biotech" = 3, "programming" = 3)
|
||||
robotics
|
||||
name = "Robotics Technology"
|
||||
desc = "The development of advanced automated, autonomous machines."
|
||||
id = "robotics"
|
||||
req_tech = list("materials" = 3, "programming" = 3)
|
||||
|
||||
|
||||
/obj/item/weapon/disk/tech_disk
|
||||
name = "Technology Disk"
|
||||
@@ -240,6 +241,8 @@ datum
|
||||
icon_state = "datadisk2"
|
||||
item_state = "card-id"
|
||||
w_class = 1.0
|
||||
m_amt = 30
|
||||
g_amt = 10
|
||||
var/datum/tech/stored
|
||||
New()
|
||||
src.pixel_x = rand(-5.0, 5)
|
||||
|
||||
Reference in New Issue
Block a user