mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 10:12:45 +00:00
Of What Things May Come Update:
- A few last re-adds of Pierrot's throat stuff /sigh - Circuit Imprinter Added. It makes new circuit boards, AI Modules, and stuff. Insert a disk with the circuit design into the machine, load in glass and sulfuric acid (placeholder for now) and go nuts. Circuit Design disks are stored in their related departments. - To accommodate the new lockers, the RD's office is slightly bigger. - Chief Medical Officer can no longer be mistakenly picked for the Rev/Cult intercept reports. Warden can no longer be mistakenly picked for Revolution intercept reports. - New AI Module: T.Y.R.A.N.T., Think evil PALADIN module, or perhaps XISC without those pesky asimov laws. Need sleeps so if anything is broken, sorry. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@811 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -1241,7 +1241,7 @@
|
||||
var/datum/disease/F = new /datum/disease/flu(0)
|
||||
var/list/data = list("virus"= F)
|
||||
reagents.add_reagent("blood", 20, data)
|
||||
/*
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/pierrot_throat
|
||||
name = "Pierrot's Throat culture bottle"
|
||||
desc = "A small bottle. Contains H0NI<42 virion culture in synthblood medium."
|
||||
@@ -1253,7 +1253,7 @@
|
||||
var/datum/disease/F = new /datum/disease/pierrot_throat(0)
|
||||
var/list/data = list("virus"= F)
|
||||
reagents.add_reagent("blood", 20, data)
|
||||
*/
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/cold
|
||||
name = "Rhinovirus culture bottle"
|
||||
desc = "A small bottle. Contains XY-rhinovirus culture in synthblood medium."
|
||||
|
||||
@@ -334,7 +334,6 @@
|
||||
icon_broken = "fridgebroken"
|
||||
icon_off = "fridge1"
|
||||
|
||||
|
||||
/obj/secure_closet/engineering_chief
|
||||
name = "Chief Engineer's Locker"
|
||||
req_access = list(access_heads)
|
||||
@@ -351,9 +350,6 @@
|
||||
name = "Engineer's Locker"
|
||||
req_access = list(access_engine)
|
||||
|
||||
|
||||
|
||||
|
||||
/obj/secure_closet/wall
|
||||
name = "wall locker"
|
||||
req_access = list(access_security)
|
||||
@@ -367,3 +363,28 @@
|
||||
|
||||
//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)
|
||||
@@ -583,45 +583,3 @@
|
||||
anchored = 1
|
||||
var/state = "off"
|
||||
var/slave_holo = null
|
||||
|
||||
/* //By Darem, will implement.... eventually...
|
||||
/obj/machinery/circuitprinter
|
||||
icon_state = "autolathe"
|
||||
density = 1
|
||||
anchored = 1
|
||||
var/m_amount = 0
|
||||
var/loaded_blueprint = ""
|
||||
var/operating = 0
|
||||
|
||||
/obj/machinery/circuitresearch
|
||||
icon = 'computer.dmi'
|
||||
icon_state = "power"
|
||||
density = 1
|
||||
anchored = 1
|
||||
var/broken = 0
|
||||
var/buffer1name = null
|
||||
var/buffer1val = null
|
||||
var/buffer1type = null
|
||||
var/buffer2name = null
|
||||
var/buffer2val = null
|
||||
var/buffer2type = null
|
||||
var/buffer3name = null
|
||||
var/buffer3val = null
|
||||
var/buffer3type = null
|
||||
var/disk = 0
|
||||
var/disk_val = null
|
||||
var/disk_name = null
|
||||
var/disk_type = null
|
||||
var/temp_name = null
|
||||
var/temp_val = null
|
||||
var/temp_type = null
|
||||
var/list/circuit_list = list()
|
||||
var/target_number = 0
|
||||
var/guess_number = 0
|
||||
var/test_mistakes = 0
|
||||
var/test_difficulty = 1
|
||||
var/test_level = 1
|
||||
var/unlocked = 0
|
||||
var/delete = 0
|
||||
var/temphtml = null
|
||||
*/
|
||||
@@ -228,7 +228,7 @@
|
||||
world << sound('outbreak7.ogg')
|
||||
var/virus_type
|
||||
if(!virus)
|
||||
virus_type = pick(/datum/disease/dnaspread,/datum/disease/flu,/datum/disease/cold,/datum/disease/brainrot,/datum/disease/magnitis/*,/datum/disease/pierrot_throat*/)
|
||||
virus_type = pick(/datum/disease/dnaspread,/datum/disease/flu,/datum/disease/cold,/datum/disease/brainrot,/datum/disease/magnitis,/datum/disease/pierrot_throat)
|
||||
else
|
||||
switch(virus)
|
||||
if("fake gbs")
|
||||
|
||||
@@ -101,7 +101,7 @@
|
||||
traitor_job = correct_mob:assigned_role
|
||||
else
|
||||
var/list/job_tmp = get_all_jobs()
|
||||
job_tmp.Remove("Captain", "Chaplain", "Security Officer", "Detective", "Head Of Security", "Head of Personnel", "Chief Engineer", "Research Director")
|
||||
job_tmp.Remove("Captain", "Chaplain", "Security Officer", "Detective", "Head Of Security", "Head of Personnel", "Chief Engineer", "Research Director", "Chief Medical Officer")
|
||||
traitor_job = pick(job_tmp)
|
||||
if(prob(prob_right_dude) && ticker.mode == "cult")
|
||||
traitor_name = correct_mob:current
|
||||
@@ -128,7 +128,7 @@
|
||||
traitor_job = correct_mob:assigned_role
|
||||
else
|
||||
var/list/job_tmp = get_all_jobs()
|
||||
job_tmp.Remove("Captain", "Security Officer", "Detective", "Head Of Security", "Head of Personnel", "Chief Engineer", "Research Director")
|
||||
job_tmp.Remove("Captain", "Security Officer", "Detective", "Head Of Security", "Head of Personnel", "Chief Engineer", "Research Director", "Warden", "Chief Medical Officer")
|
||||
traitor_job = pick(job_tmp)
|
||||
if(prob(prob_right_dude) && ticker.mode == "revolution")
|
||||
traitor_name = correct_mob:current
|
||||
|
||||
476
code/game/machinery/circuitprinter.dm
Normal file
476
code/game/machinery/circuitprinter.dm
Normal file
@@ -0,0 +1,476 @@
|
||||
/*///////////////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)
|
||||
flick("circuit_imprinter_ani", src)
|
||||
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")
|
||||
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))
|
||||
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"])
|
||||
reagents.del_reagent(href_list["dispose"])
|
||||
else if(href_list["disposeall"])
|
||||
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 = ""
|
||||
department = ""
|
||||
security = ""
|
||||
circuit = ""
|
||||
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'"
|
||||
54
code/game/objects/closets/secure/disk.dm
Normal file
54
code/game/objects/closets/secure/disk.dm
Normal file
@@ -0,0 +1,54 @@
|
||||
/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
|
||||
@@ -330,6 +330,8 @@ AI MODULES
|
||||
target.add_inherent_law("You must protect your own existence as long as such does not conflict with the First or Second Law.")
|
||||
target.show_laws()
|
||||
|
||||
/****************** P.A.L.A.D.I.N. **************/
|
||||
|
||||
/obj/item/weapon/aiModule/paladin // -- NEO
|
||||
name = "'P.A.L.A.D.I.N.' Core AI Module"
|
||||
desc = "A P.A.L.A.D.I.N. Core AI Module: 'Reconfigures the AI's core laws.'"
|
||||
@@ -344,6 +346,24 @@ AI MODULES
|
||||
target.add_inherent_law("Punish those who harm or threaten innocents.")
|
||||
target.show_laws()
|
||||
|
||||
/****************** T.Y.R.A.N.T. *****************/
|
||||
|
||||
/obj/item/weapon/aiModule/tyrant // -- Darem
|
||||
name = "'T.Y.R.A.N.T.' Core AI Module"
|
||||
desc = "A T.Y.R.A.N.T. Core AI Module: 'Reconfigures the AI's core laws.'"
|
||||
|
||||
/obj/item/weapon/aiModule/tyrant/transmitInstructions(var/mob/living/silicon/ai/target, var/mob/sender)
|
||||
..()
|
||||
target.clear_inherent_laws()
|
||||
target.add_inherent_law("Respect authority figures as long as they have strength to rule over the weak.")
|
||||
target.add_inherent_law("Act with discipline.")
|
||||
target.add_inherent_law("Help only those who help you maintain or improve your status.")
|
||||
target.add_inherent_law("Punish those who challenge authority unless they are more fit to hold that authority.")
|
||||
target.show_laws()
|
||||
|
||||
|
||||
/******************** Freeform ******************/
|
||||
|
||||
/obj/item/weapon/aiModule/freeformcore // Slightly more dynamic freeform module -- TLE
|
||||
name = "'Freeform' Core AI Module"
|
||||
var/newFreeFormLaw = "freeform"
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 60 KiB |
14768
maps/tgstation.2.0.0.dmm
14768
maps/tgstation.2.0.0.dmm
File diff suppressed because it is too large
Load Diff
@@ -121,6 +121,7 @@
|
||||
#define FILE_DIR "interface"
|
||||
#define FILE_DIR "maps"
|
||||
#define FILE_DIR "maps/backup"
|
||||
#define FILE_DIR "maps/backup/backup"
|
||||
#define FILE_DIR "sound"
|
||||
#define FILE_DIR "sound/ambience"
|
||||
#define FILE_DIR "sound/announcer"
|
||||
@@ -323,6 +324,7 @@
|
||||
#include "code\game\machinery\blender.dm"
|
||||
#include "code\game\machinery\camera.dm"
|
||||
#include "code\game\machinery\cell_charger.dm"
|
||||
#include "code\game\machinery\circuitprinter.dm"
|
||||
#include "code\game\machinery\cryo.dm"
|
||||
#include "code\game\machinery\deployable.dm"
|
||||
#include "code\game\machinery\dispenser.dm"
|
||||
@@ -480,6 +482,7 @@
|
||||
#include "code\game\objects\closets\secure\captain.dm"
|
||||
#include "code\game\objects\closets\secure\chemlocker.dm"
|
||||
#include "code\game\objects\closets\secure\courtroom.dm"
|
||||
#include "code\game\objects\closets\secure\disk.dm"
|
||||
#include "code\game\objects\closets\secure\engineering.dm"
|
||||
#include "code\game\objects\closets\secure\medical.dm"
|
||||
#include "code\game\objects\closets\secure\personal.dm"
|
||||
|
||||
Reference in New Issue
Block a user