mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2025-12-21 15:51:31 +00:00
991 lines
40 KiB
Plaintext
991 lines
40 KiB
Plaintext
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31
|
|
|
|
/obj/machinery/constructable_frame //Made into a seperate type to make future revisions easier.
|
|
name = "machine frame"
|
|
icon = 'icons/obj/stock_parts.dmi'
|
|
icon_state = "box_0"
|
|
density = 1
|
|
anchored = 1
|
|
use_power = 0
|
|
var/obj/item/weapon/circuitboard/circuit = null
|
|
var/list/components = null
|
|
var/list/req_components = null
|
|
var/list/req_component_names = null // user-friendly names of components
|
|
var/state = 1
|
|
|
|
// For pods
|
|
var/list/connected_parts = list()
|
|
var/pattern_idx=0
|
|
|
|
// unfortunately, we have to instance the objects really quickly to get the names
|
|
// fortunately, this is only called once when the board is added and the items are immediately GC'd
|
|
// and none of the parts do much in their constructors
|
|
/obj/machinery/constructable_frame/proc/update_namelist()
|
|
if(!req_components)
|
|
return
|
|
|
|
req_component_names = new()
|
|
for(var/tname in req_components)
|
|
var/path = tname
|
|
var/obj/O = new path()
|
|
req_component_names[tname] = O.name
|
|
|
|
/obj/machinery/constructable_frame/proc/get_req_components_amt()
|
|
var/amt = 0
|
|
for(var/path in req_components)
|
|
amt += req_components[path]
|
|
return amt
|
|
|
|
// update description of required components remaining
|
|
/obj/machinery/constructable_frame/proc/update_req_desc()
|
|
if(!req_components || !req_component_names)
|
|
return
|
|
|
|
var/hasContent = 0
|
|
desc = "Requires"
|
|
for(var/i = 1 to req_components.len)
|
|
var/tname = req_components[i]
|
|
var/amt = req_components[tname]
|
|
if(amt == 0)
|
|
continue
|
|
var/use_and = i == req_components.len
|
|
desc += "[(hasContent ? (use_and ? ", and" : ",") : "")] [amt] [amt == 1 ? req_component_names[tname] : "[req_component_names[tname]]\s"]"
|
|
hasContent = 1
|
|
|
|
if(!hasContent)
|
|
desc = "Does not require any more components."
|
|
else
|
|
desc += "."
|
|
|
|
/obj/machinery/constructable_frame/machine_frame/attackby(obj/item/P as obj, mob/user as mob, params)
|
|
if(P.crit_fail)
|
|
to_chat(user, "<span class='danger'>This part is faulty, you cannot add this to the machine!</span>")
|
|
return
|
|
switch(state)
|
|
if(1)
|
|
if(istype(P, /obj/item/stack/cable_coil))
|
|
var/obj/item/stack/cable_coil/C = P
|
|
if(C.amount >= 5)
|
|
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
|
to_chat(user, "<span class='notice'>You start to add cables to the frame.</span>")
|
|
if(do_after(user, 20, target = src))
|
|
if(C.amount >= 5 && state == 1)
|
|
C.use(5)
|
|
to_chat(user, "<span class='notice'>You add cables to the frame.</span>")
|
|
state = 2
|
|
icon_state = "box_1"
|
|
else
|
|
to_chat(user, "<span class='warning'>You need five length of cable to wire the frame.</span>")
|
|
return
|
|
else if(istype(P, /obj/item/stack/sheet/glass))
|
|
var/obj/item/stack/sheet/glass/G = P
|
|
if(G.amount<5)
|
|
to_chat(user, "\red You do not have enough glass to build a display case.")
|
|
return
|
|
G.use(5)
|
|
to_chat(user, "\blue You add the glass to the frame.")
|
|
playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1)
|
|
new /obj/structure/displaycase_frame(src.loc)
|
|
qdel(src)
|
|
return
|
|
|
|
if(istype(P, /obj/item/weapon/wrench))
|
|
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
|
|
to_chat(user, "<span class='notice'>You dismantle the frame.</span>")
|
|
new /obj/item/stack/sheet/metal(src.loc, 5)
|
|
qdel(src)
|
|
if(2)
|
|
if(istype(P, /obj/item/weapon/circuitboard))
|
|
var/obj/item/weapon/circuitboard/B = P
|
|
if(B.board_type == "machine")
|
|
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
|
to_chat(user, "<span class='notice'>You add the circuit board to the frame.</span>")
|
|
circuit = P
|
|
user.drop_item()
|
|
P.loc = src
|
|
icon_state = "box_2"
|
|
state = 3
|
|
components = list()
|
|
req_components = circuit.req_components.Copy()
|
|
update_namelist()
|
|
update_req_desc()
|
|
else
|
|
to_chat(user, "<span class='danger'>This frame does not accept circuit boards of this type!</span>")
|
|
if(istype(P, /obj/item/weapon/wirecutters))
|
|
playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
|
|
to_chat(user, "<span class='notice'>You remove the cables.</span>")
|
|
state = 1
|
|
icon_state = "box_0"
|
|
var/obj/item/stack/cable_coil/A = new /obj/item/stack/cable_coil(src.loc,5)
|
|
A.amount = 5
|
|
|
|
if(3)
|
|
if(istype(P, /obj/item/weapon/crowbar))
|
|
playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
|
|
state = 2
|
|
circuit.loc = src.loc
|
|
circuit = null
|
|
if(components.len == 0)
|
|
to_chat(user, "<span class='notice'>You remove the circuit board.</span>")
|
|
else
|
|
to_chat(user, "<span class='notice'>You remove the circuit board and other components.</span>")
|
|
for(var/obj/item/I in components)
|
|
I.loc = src.loc
|
|
desc = initial(desc)
|
|
req_components = null
|
|
components = null
|
|
icon_state = "box_1"
|
|
|
|
if(istype(P, /obj/item/weapon/screwdriver))
|
|
var/component_check = 1
|
|
for(var/R in req_components)
|
|
if(req_components[R] > 0)
|
|
component_check = 0
|
|
break
|
|
if(component_check)
|
|
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
|
var/obj/machinery/new_machine = new src.circuit.build_path(src.loc)
|
|
new_machine.construction()
|
|
for(var/obj/O in new_machine.component_parts)
|
|
qdel(O)
|
|
new_machine.component_parts = list()
|
|
for(var/obj/O in src)
|
|
O.loc = null
|
|
new_machine.component_parts += O
|
|
circuit.loc = null
|
|
new_machine.RefreshParts()
|
|
qdel(src)
|
|
return
|
|
|
|
if(istype(P, /obj/item/weapon/storage/part_replacer) && P.contents.len && get_req_components_amt())
|
|
var/obj/item/weapon/storage/part_replacer/replacer = P
|
|
var/list/added_components = list()
|
|
var/list/part_list = list()
|
|
|
|
//Assemble a list of current parts, then sort them by their rating!
|
|
for(var/obj/item/weapon/stock_parts/co in replacer)
|
|
part_list += co
|
|
|
|
for(var/path in req_components)
|
|
while(req_components[path] > 0 && (locate(path) in part_list))
|
|
var/obj/item/part = (locate(path) in part_list)
|
|
if(!part.crit_fail)
|
|
added_components[part] = path
|
|
replacer.remove_from_storage(part, src)
|
|
req_components[path]--
|
|
part_list -= part
|
|
|
|
for(var/obj/item/weapon/stock_parts/part in added_components)
|
|
components += part
|
|
to_chat(user, "<span class='notice'>[part.name] applied.</span>")
|
|
replacer.play_rped_sound()
|
|
|
|
update_req_desc()
|
|
return
|
|
|
|
if(istype(P, /obj/item))
|
|
var/success
|
|
for(var/I in req_components)
|
|
if(istype(P, I) && (req_components[I] > 0) && (!(P.flags & NODROP) || istype(P, /obj/item/stack)))
|
|
success=1
|
|
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
|
if(istype(P, /obj/item/stack/cable_coil))
|
|
var/obj/item/stack/cable_coil/CP = P
|
|
var/camt = min(CP.amount, req_components[I])
|
|
var/obj/item/stack/cable_coil/CC = new /obj/item/stack/cable_coil(src)
|
|
CC.amount = camt
|
|
CC.update_icon()
|
|
CP.use(camt)
|
|
components += CC
|
|
req_components[I] -= camt
|
|
update_req_desc()
|
|
break
|
|
user.drop_item()
|
|
P.loc = src
|
|
components += P
|
|
req_components[I]--
|
|
update_req_desc()
|
|
return 1
|
|
if(!success)
|
|
to_chat(user, "<span class='danger'>You cannot add that to the machine!</span>")
|
|
return 0
|
|
|
|
//Machine Frame Circuit Boards
|
|
/*Common Parts: Parts List: Ignitor, Timer, Infra-red laser, Infra-red sensor, t_scanner, Capacitor, Valve, sensor unit,
|
|
micro-manipulator, console screen, beaker, Microlaser, matter bin, power cells.
|
|
Note: Once everything is added to the public areas, will add MAT_METAL and MAT_GLASS to circuit boards since autolathe won't be able
|
|
to destroy them and players will be able to make replacements.
|
|
*/
|
|
/obj/item/weapon/circuitboard/vendor
|
|
name = "circuit board (Booze-O-Mat Vendor)"
|
|
build_path = /obj/machinery/vending/boozeomat
|
|
board_type = "machine"
|
|
origin_tech = "programming=1"
|
|
frame_desc = "Requires 3 Resupply Canisters."
|
|
req_components = list(
|
|
/obj/item/weapon/vending_refill/boozeomat = 3)
|
|
|
|
var/list/names_paths = list("Booze-O-Mat" = /obj/machinery/vending/boozeomat,
|
|
"Solar's Best Hot Drinks" = /obj/machinery/vending/coffee,
|
|
"Getmore Chocolate Corp" = /obj/machinery/vending/snack,
|
|
"Robust Softdrinks" = /obj/machinery/vending/cola,
|
|
"ShadyCigs Deluxe" = /obj/machinery/vending/cigarette,
|
|
"AutoDrobe" = /obj/machinery/vending/autodrobe,
|
|
"Hatlord 9000" = /obj/machinery/vending/hatdispenser,
|
|
"Suitlord 9000" = /obj/machinery/vending/suitdispenser,
|
|
"Shoelord 9000" = /obj/machinery/vending/shoedispenser,
|
|
"ClothesMate" = /obj/machinery/vending/clothing,
|
|
"CritterCare" = /obj/machinery/vending/crittercare)
|
|
|
|
/obj/item/weapon/circuitboard/vendor/attackby(obj/item/I, mob/user, params)
|
|
if(istype(I, /obj/item/weapon/screwdriver))
|
|
set_type(null, user)
|
|
|
|
|
|
/obj/item/weapon/circuitboard/vendor/proc/set_type(typepath, mob/user)
|
|
var/new_name = "Booze-O-Mat Vendor"
|
|
if(!typepath)
|
|
new_name = input("Circuit Setting", "What would you change the board setting to?") in names_paths
|
|
typepath = names_paths[new_name]
|
|
else
|
|
for(var/name in names_paths)
|
|
if(names_paths[name] == typepath)
|
|
new_name = name
|
|
break
|
|
build_path = typepath
|
|
name = "circuit board ([new_name])"
|
|
req_components = list(text2path("/obj/item/weapon/vending_refill/[copytext("[build_path]", 24)]") = 3)
|
|
if(user)
|
|
to_chat(user, "<span class='notice'>You set the board to [new_name].</span>")
|
|
|
|
/obj/item/weapon/circuitboard/smes
|
|
name = "circuit board (SMES)"
|
|
build_path = /obj/machinery/power/smes
|
|
board_type = "machine"
|
|
origin_tech = "programming=4;powerstorage=5;engineering=5"
|
|
frame_desc = "Requires 5 pieces of cable, 5 Power Cells and 1 Capacitor."
|
|
req_components = list(
|
|
/obj/item/stack/cable_coil = 5,
|
|
/obj/item/weapon/stock_parts/cell = 5,
|
|
/obj/item/weapon/stock_parts/capacitor = 1)
|
|
|
|
/obj/item/weapon/circuitboard/emitter
|
|
name = "circuit board (Emitter)"
|
|
build_path = /obj/machinery/power/emitter
|
|
board_type = "machine"
|
|
origin_tech = "programming=4;powerstorage=5;engineering=5"
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/micro_laser = 1,
|
|
/obj/item/weapon/stock_parts/manipulator = 1)
|
|
|
|
/obj/item/weapon/circuitboard/power_compressor
|
|
name = "circuit board (Power Compressor)"
|
|
build_path = /obj/machinery/power/compressor
|
|
board_type = "machine"
|
|
origin_tech = "programming=4;powerstorage=5;engineering=4"
|
|
req_components = list(
|
|
/obj/item/stack/cable_coil = 5,
|
|
/obj/item/weapon/stock_parts/manipulator = 6)
|
|
|
|
/obj/item/weapon/circuitboard/power_turbine
|
|
name = "circuit board (Power Turbine)"
|
|
build_path = /obj/machinery/power/turbine
|
|
board_type = "machine"
|
|
origin_tech = "programming=4;powerstorage=4;engineering=5"
|
|
req_components = list(
|
|
/obj/item/stack/cable_coil = 5,
|
|
/obj/item/weapon/stock_parts/capacitor = 6)
|
|
|
|
/obj/item/weapon/circuitboard/thermomachine
|
|
name = "circuit board (Freezer)"
|
|
desc = "Use screwdriver to switch between heating and cooling modes."
|
|
build_path = /obj/machinery/atmospherics/unary/cold_sink/freezer
|
|
board_type = "machine"
|
|
origin_tech = "programming=3;plasmatech=3"
|
|
frame_desc = "Requires 2 Matter Bins, 2 Micro Lasers, 1 piece of cable and 1 Console Screen."
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/matter_bin = 2,
|
|
/obj/item/weapon/stock_parts/micro_laser = 2,
|
|
/obj/item/stack/cable_coil = 1,
|
|
/obj/item/weapon/stock_parts/console_screen = 1)
|
|
|
|
/obj/item/weapon/circuitboard/thermomachine/attackby(obj/item/I, mob/user, params)
|
|
if(istype(I, /obj/item/weapon/screwdriver))
|
|
if(build_path == /obj/machinery/atmospherics/unary/cold_sink/freezer)
|
|
build_path = /obj/machinery/atmospherics/unary/heat_reservoir/heater
|
|
name = "circuit board (Heater)"
|
|
to_chat(user, "<span class='notice'>You set the board to heating.</span>")
|
|
else
|
|
build_path = /obj/machinery/atmospherics/unary/cold_sink/freezer
|
|
name = "circuit board (Freezer)"
|
|
to_chat(user, "<span class='notice'>You set the board to cooling.</span>")
|
|
|
|
/obj/item/weapon/circuitboard/biogenerator
|
|
name = "circuit board (Biogenerator)"
|
|
build_path = /obj/machinery/biogenerator
|
|
board_type = "machine"
|
|
origin_tech = "programming=3;biotech=2;materials=3"
|
|
frame_desc = "Requires 1 Matter Bin, 1 Manipulator, 1 piece of cable and 1 Console Screen."
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/matter_bin = 1,
|
|
/obj/item/weapon/stock_parts/manipulator = 1,
|
|
/obj/item/stack/cable_coil = 1,
|
|
/obj/item/weapon/stock_parts/console_screen = 1)
|
|
|
|
/obj/item/weapon/circuitboard/hydroponics
|
|
name = "circuit board (Hydroponics Tray)"
|
|
build_path = /obj/machinery/portable_atmospherics/hydroponics
|
|
board_type = "machine"
|
|
origin_tech = "programming=1;biotech=1"
|
|
frame_desc = "Requires 2 Matter Bins and 1 Console Screen."
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/matter_bin = 2,
|
|
/obj/item/weapon/stock_parts/console_screen = 1)
|
|
|
|
/obj/item/weapon/circuitboard/microwave
|
|
name = "circuit board (Microwave)"
|
|
build_path = /obj/machinery/kitchen_machine/microwave
|
|
board_type = "machine"
|
|
origin_tech = "programming=1"
|
|
frame_desc = "Requires 1 Micro Laser, 2 pieces of cable and 1 Console Screen."
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/micro_laser = 1,
|
|
/obj/item/stack/cable_coil = 2,
|
|
/obj/item/weapon/stock_parts/console_screen = 1)
|
|
|
|
/obj/item/weapon/circuitboard/oven
|
|
name = "circuit board (Oven)"
|
|
build_path = /obj/machinery/kitchen_machine/oven
|
|
board_type = "machine"
|
|
origin_tech = "programming=1;plasmatech=1"
|
|
frame_desc = "Requires 2 Micro Lasers, 5 pieces of cable and 1 Console Screen."
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/micro_laser = 2,
|
|
/obj/item/stack/cable_coil = 5,
|
|
/obj/item/weapon/stock_parts/console_screen = 1)
|
|
|
|
/obj/item/weapon/circuitboard/grill
|
|
name = "circuit board (Grill)"
|
|
build_path = /obj/machinery/kitchen_machine/grill
|
|
board_type = "machine"
|
|
origin_tech = "programming=1;plasmatech=1"
|
|
frame_desc = "Requires 2 Micro Lasers, 5 pieces of cable and 1 Console Screen."
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/micro_laser = 2,
|
|
/obj/item/stack/cable_coil = 5,
|
|
/obj/item/weapon/stock_parts/console_screen = 1)
|
|
|
|
/obj/item/weapon/circuitboard/candy_maker
|
|
name = "circuit board (Candy Maker)"
|
|
build_path = /obj/machinery/kitchen_machine/candy_maker
|
|
board_type = "machine"
|
|
origin_tech = "programming=2"
|
|
frame_desc = "Requires 1 Manipulator, 5 pieces of cable and 1 Console Screen."
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/manipulator = 1,
|
|
/obj/item/stack/cable_coil = 5,
|
|
/obj/item/weapon/stock_parts/console_screen = 1)
|
|
|
|
/obj/item/weapon/circuitboard/deepfryer
|
|
name = "circuit board (Deep Fryer)"
|
|
build_path = /obj/machinery/cooker/deepfryer
|
|
board_type = "machine"
|
|
origin_tech = "programming=2"
|
|
frame_desc = "Requires 2 Micro Lasers and 5 pieces of cable."
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/micro_laser = 2,
|
|
/obj/item/stack/cable_coil = 5)
|
|
|
|
/obj/item/weapon/circuitboard/gibber
|
|
name = "circuit board (Gibber)"
|
|
build_path = /obj/machinery/gibber
|
|
board_type = "machine"
|
|
origin_tech = "programming=1"
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/matter_bin = 1,
|
|
/obj/item/weapon/stock_parts/manipulator = 1)
|
|
|
|
/obj/item/weapon/circuitboard/tesla_coil
|
|
name = "circuit board (Tesla Coil)"
|
|
build_path = /obj/machinery/power/tesla_coil
|
|
board_type = "machine"
|
|
origin_tech = "programming=1"
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/capacitor = 1)
|
|
|
|
/obj/item/weapon/circuitboard/grounding_rod
|
|
name = "circuit board (Grounding Rod)"
|
|
build_path = /obj/machinery/power/grounding_rod
|
|
board_type = "machine"
|
|
origin_tech = "programming=1"
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/capacitor = 1)
|
|
|
|
/obj/item/weapon/circuitboard/processor
|
|
name = "circuit board (Food processor)"
|
|
build_path = /obj/machinery/processor
|
|
board_type = "machine"
|
|
origin_tech = "programming=1"
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/matter_bin = 1,
|
|
/obj/item/weapon/stock_parts/manipulator = 1)
|
|
|
|
/obj/item/weapon/circuitboard/recycler
|
|
name = "circuit board (Recycler)"
|
|
build_path = /obj/machinery/recycler
|
|
board_type = "machine"
|
|
origin_tech = "programming=1"
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/matter_bin = 1,
|
|
/obj/item/weapon/stock_parts/manipulator = 1)
|
|
|
|
/obj/item/weapon/circuitboard/seed_extractor
|
|
name = "circuit board (Seed Extractor)"
|
|
build_path = /obj/machinery/seed_extractor
|
|
board_type = "machine"
|
|
origin_tech = "programming=1"
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/matter_bin = 1,
|
|
/obj/item/weapon/stock_parts/manipulator = 1)
|
|
|
|
/obj/item/weapon/circuitboard/smartfridge
|
|
name = "circuit board (Smartfridge)"
|
|
build_path = /obj/machinery/smartfridge
|
|
board_type = "machine"
|
|
origin_tech = "programming=1"
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/matter_bin = 1)
|
|
var/list/fridge_names_paths = list(
|
|
"\improper SmartFridge" = /obj/machinery/smartfridge,
|
|
"\improper MegaSeed Servitor" = /obj/machinery/smartfridge/seeds,
|
|
"\improper Refrigerated Medicine Storage" = /obj/machinery/smartfridge/medbay,
|
|
"\improper Slime Extract Storage" = /obj/machinery/smartfridge/secure/extract,
|
|
"\improper Secure Refrigerated Medicine Storage" = /obj/machinery/smartfridge/secure/medbay,
|
|
"\improper Smart Chemical Storage" = /obj/machinery/smartfridge/secure/chemistry,
|
|
"smart virus storage" = /obj/machinery/smartfridge/secure/chemistry/virology,
|
|
"\improper Drink Showcase" = /obj/machinery/smartfridge/drinks
|
|
)
|
|
|
|
|
|
|
|
/obj/item/weapon/circuitboard/smartfridge/attackby(obj/item/I, mob/user, params)
|
|
if(istype(I, /obj/item/weapon/screwdriver))
|
|
set_type(null, user)
|
|
|
|
/obj/item/weapon/circuitboard/smartfridge/proc/set_type(typepath, mob/user)
|
|
var/new_name = ""
|
|
if(!typepath)
|
|
new_name = input("Circuit Setting", "What would you change the board setting to?") in fridge_names_paths
|
|
typepath = fridge_names_paths[new_name]
|
|
else
|
|
for(var/name in fridge_names_paths)
|
|
if(fridge_names_paths[name] == typepath)
|
|
new_name = name
|
|
break
|
|
build_path = typepath
|
|
name = new_name
|
|
if(findtextEx(new_name, "\improper"))
|
|
new_name = replacetext(new_name, "\improper", "")
|
|
if(user)
|
|
to_chat(user, "<span class='notice'>You set the board to [new_name].</span>")
|
|
|
|
/obj/item/weapon/circuitboard/monkey_recycler
|
|
name = "circuit board (Monkey Recycler)"
|
|
build_path = /obj/machinery/monkey_recycler
|
|
board_type = "machine"
|
|
origin_tech = "programming=1"
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/matter_bin = 1,
|
|
/obj/item/weapon/stock_parts/manipulator = 1)
|
|
|
|
/obj/item/weapon/circuitboard/holopad
|
|
name = "circuit board (AI Holopad)"
|
|
build_path = /obj/machinery/hologram/holopad
|
|
board_type = "machine"
|
|
origin_tech = "programming=1"
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/capacitor = 1)
|
|
|
|
/obj/item/weapon/circuitboard/chem_dispenser
|
|
name = "circuit board (Portable Chem Dispenser)"
|
|
build_path = /obj/machinery/chem_dispenser/constructable
|
|
board_type = "machine"
|
|
origin_tech = "materials=4;engineering=4;programming=4;plasmatech=3;biotech=3"
|
|
frame_desc = "Requires 2 Matter Bins, 1 Capacitor, 1 Manipulator, 1 Console Screen, and 1 Power Cell."
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/matter_bin = 2,
|
|
/obj/item/weapon/stock_parts/capacitor = 1,
|
|
/obj/item/weapon/stock_parts/manipulator = 1,
|
|
/obj/item/weapon/stock_parts/console_screen = 1,
|
|
/obj/item/weapon/stock_parts/cell = 1)
|
|
|
|
/obj/item/weapon/circuitboard/chem_master
|
|
name = "circuit board (Chem Master 2999)"
|
|
build_path = /obj/machinery/chem_master/constructable
|
|
board_type = "machine"
|
|
origin_tech = "materials=2;programming=2;biotech=1"
|
|
req_components = list(
|
|
/obj/item/weapon/reagent_containers/glass/beaker = 2,
|
|
/obj/item/weapon/stock_parts/manipulator = 1,
|
|
/obj/item/weapon/stock_parts/console_screen = 1)
|
|
|
|
/obj/item/weapon/circuitboard/chem_heater
|
|
name = "circuit board (Chemical Heater)"
|
|
build_path = /obj/machinery/chem_heater
|
|
board_type = "machine"
|
|
origin_tech = "materials=2;engineering=2"
|
|
frame_desc = "Requires 1 Micro Laser and 1 Console Screen."
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/micro_laser = 1,
|
|
/obj/item/weapon/stock_parts/console_screen = 1)
|
|
|
|
//Almost the same recipe as destructive analyzer to give people choices.
|
|
/obj/item/weapon/circuitboard/experimentor
|
|
name = "circuit board (E.X.P.E.R.I-MENTOR)"
|
|
build_path = /obj/machinery/r_n_d/experimentor
|
|
board_type = "machine"
|
|
origin_tech = "magnets=1;engineering=1;programming=1;biotech=1;bluespace=2"
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/scanning_module = 1,
|
|
/obj/item/weapon/stock_parts/manipulator = 2,
|
|
/obj/item/weapon/stock_parts/micro_laser = 2)
|
|
|
|
/obj/item/weapon/circuitboard/destructive_analyzer
|
|
name = "Circuit board (Destructive Analyzer)"
|
|
build_path = /obj/machinery/r_n_d/destructive_analyzer
|
|
board_type = "machine"
|
|
origin_tech = "magnets=2;engineering=2;programming=2"
|
|
frame_desc = "Requires 1 Scanning Module, 1 Manipulator, and 1 Micro-Laser."
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/scanning_module = 1,
|
|
/obj/item/weapon/stock_parts/manipulator = 1,
|
|
/obj/item/weapon/stock_parts/micro_laser = 1)
|
|
|
|
/obj/item/weapon/circuitboard/autolathe
|
|
name = "Circuit board (Autolathe)"
|
|
build_path = /obj/machinery/autolathe
|
|
board_type = "machine"
|
|
origin_tech = "engineering=2;programming=2"
|
|
frame_desc = "Requires 3 Matter Bins, 1 Manipulator, and 1 Console Screen."
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/matter_bin = 3,
|
|
/obj/item/weapon/stock_parts/manipulator = 1,
|
|
/obj/item/weapon/stock_parts/console_screen = 1)
|
|
|
|
/obj/item/weapon/circuitboard/protolathe
|
|
name = "Circuit board (Protolathe)"
|
|
build_path = /obj/machinery/r_n_d/protolathe
|
|
board_type = "machine"
|
|
origin_tech = "engineering=2;programming=2"
|
|
frame_desc = "Requires 2 Matter Bins, 2 Manipulators, and 2 Beakers."
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/matter_bin = 2,
|
|
/obj/item/weapon/stock_parts/manipulator = 2,
|
|
/obj/item/weapon/reagent_containers/glass/beaker = 2)
|
|
|
|
|
|
/obj/item/weapon/circuitboard/circuit_imprinter
|
|
name = "Circuit board (Circuit Imprinter)"
|
|
build_path = /obj/machinery/r_n_d/circuit_imprinter
|
|
board_type = "machine"
|
|
origin_tech = "engineering=2;programming=2"
|
|
frame_desc = "Requires 1 Matter Bin, 1 Manipulator, and 2 Beakers."
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/matter_bin = 1,
|
|
/obj/item/weapon/stock_parts/manipulator = 1,
|
|
/obj/item/weapon/reagent_containers/glass/beaker = 2)
|
|
|
|
/obj/item/weapon/circuitboard/pacman
|
|
name = "Circuit Board (PACMAN-type Generator)"
|
|
build_path = /obj/machinery/power/port_gen/pacman
|
|
board_type = "machine"
|
|
origin_tech = "programming=3:powerstorage=3;plasmatech=3;engineering=3"
|
|
frame_desc = "Requires 1 Matter Bin, 1 Micro-Laser, 2 Pieces of Cable, and 1 Capacitor."
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/matter_bin = 1,
|
|
/obj/item/weapon/stock_parts/micro_laser = 1,
|
|
/obj/item/stack/cable_coil = 2,
|
|
/obj/item/weapon/stock_parts/capacitor = 1)
|
|
|
|
/obj/item/weapon/circuitboard/pacman/super
|
|
name = "Circuit Board (SUPERPACMAN-type Generator)"
|
|
build_path = /obj/machinery/power/port_gen/pacman/super
|
|
origin_tech = "programming=3;powerstorage=4;engineering=4"
|
|
|
|
/obj/item/weapon/circuitboard/pacman/mrs
|
|
name = "Circuit Board (MRSPACMAN-type Generator)"
|
|
build_path = /obj/machinery/power/port_gen/pacman/mrs
|
|
origin_tech = "programming=3;powerstorage=5;engineering=5"
|
|
|
|
obj/item/weapon/circuitboard/rdserver
|
|
name = "Circuit Board (R&D Server)"
|
|
build_path = /obj/machinery/r_n_d/server
|
|
board_type = "machine"
|
|
origin_tech = "programming=3"
|
|
frame_desc = "Requires 2 pieces of cable, and 1 Scanning Module."
|
|
req_components = list(
|
|
/obj/item/stack/cable_coil = 2,
|
|
/obj/item/weapon/stock_parts/scanning_module = 1)
|
|
|
|
/obj/item/weapon/circuitboard/mechfab
|
|
name = "Circuit board (Exosuit Fabricator)"
|
|
build_path = /obj/machinery/mecha_part_fabricator
|
|
board_type = "machine"
|
|
origin_tech = "programming=3;engineering=3"
|
|
frame_desc = "Requires 2 Matter Bins, 1 Manipulator, 1 Micro-Laser and 1 Console Screen."
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/matter_bin = 2,
|
|
/obj/item/weapon/stock_parts/manipulator = 1,
|
|
/obj/item/weapon/stock_parts/micro_laser = 1,
|
|
/obj/item/weapon/stock_parts/console_screen = 1)
|
|
|
|
/obj/item/weapon/circuitboard/podfab
|
|
name = "Circuit board (Spacepod Fabricator)"
|
|
build_path = /obj/machinery/spod_part_fabricator //ah fuck my life
|
|
board_type = "machine"
|
|
origin_tech = "programming=3;engineering=3"
|
|
frame_desc = "Requires 3 Matter Bins, 2 Manipulators, 2 Micro-Lasers, and 1 Console Screen."
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/matter_bin = 3,
|
|
/obj/item/weapon/stock_parts/manipulator = 2,
|
|
/obj/item/weapon/stock_parts/micro_laser = 2,
|
|
/obj/item/weapon/stock_parts/console_screen = 1)
|
|
|
|
|
|
/obj/item/weapon/circuitboard/clonepod
|
|
name = "Circuit board (Clone Pod)"
|
|
build_path = /obj/machinery/clonepod
|
|
board_type = "machine"
|
|
origin_tech = "programming=3;biotech=3"
|
|
frame_desc = "Requires 2 Manipulator, 2 Scanning Module, 2 pieces of cable and 1 Console Screen."
|
|
req_components = list(
|
|
/obj/item/stack/cable_coil = 2,
|
|
/obj/item/weapon/stock_parts/scanning_module = 2,
|
|
/obj/item/weapon/stock_parts/manipulator = 2,
|
|
/obj/item/weapon/stock_parts/console_screen = 1)
|
|
|
|
/obj/item/weapon/circuitboard/clonescanner
|
|
name = "Circuit board (Cloning Scanner)"
|
|
build_path = /obj/machinery/dna_scannernew
|
|
board_type = "machine"
|
|
origin_tech = "programming=2;biotech=2"
|
|
frame_desc = "Requires 1 Scanning Module, 1 Manipulator, 1 Micro-Laser, 2 pieces of cable and 1 Console Screen."
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/scanning_module = 1,
|
|
/obj/item/weapon/stock_parts/manipulator = 1,
|
|
/obj/item/weapon/stock_parts/micro_laser = 1,
|
|
/obj/item/weapon/stock_parts/console_screen = 1,
|
|
/obj/item/stack/cable_coil = 2,)
|
|
|
|
/obj/item/weapon/circuitboard/mech_recharger
|
|
name = "circuit board (Mech Bay Recharger)"
|
|
build_path = /obj/machinery/mech_bay_recharge_port
|
|
board_type = "machine"
|
|
origin_tech = "programming=3;powerstorage=4;engineering=4"
|
|
frame_desc = "Requires 1 piece of cable and 5 Capacitors."
|
|
req_components = list(
|
|
/obj/item/stack/cable_coil = 1,
|
|
/obj/item/weapon/stock_parts/capacitor = 5)
|
|
|
|
/obj/item/weapon/circuitboard/teleporter_hub
|
|
name = "circuit board (Teleporter Hub)"
|
|
build_path = /obj/machinery/teleport/hub
|
|
board_type = "machine"
|
|
origin_tech = "programming=3;engineering=5;bluespace=5;materials=4"
|
|
frame_desc = "Requires 3 Bluespace Crystals and 1 Matter Bin."
|
|
req_components = list(
|
|
/obj/item/weapon/ore/bluespace_crystal = 3,
|
|
/obj/item/weapon/stock_parts/matter_bin = 1)
|
|
|
|
/obj/item/weapon/circuitboard/teleporter_station
|
|
name = "circuit board (Teleporter Station)"
|
|
build_path = /obj/machinery/teleport/station
|
|
board_type = "machine"
|
|
origin_tech = "programming=4;engineering=4;bluespace=4"
|
|
frame_desc = "Requires 2 Bluespace Crystals, 2 Capacitors and 1 Console Screen."
|
|
req_components = list(
|
|
/obj/item/weapon/ore/bluespace_crystal = 2,
|
|
/obj/item/weapon/stock_parts/capacitor = 2,
|
|
/obj/item/weapon/stock_parts/console_screen = 1)
|
|
|
|
/obj/item/weapon/circuitboard/teleporter_perma
|
|
name = "circuit board (Permanent Teleporter)"
|
|
build_path = /obj/machinery/teleport/perma
|
|
board_type = "machine"
|
|
origin_tech = "programming=3;engineering=5;bluespace=5;materials=4"
|
|
frame_desc = "Requires 3 Bluespace Crystals and 1 Matter Bin."
|
|
req_components = list(
|
|
/obj/item/weapon/ore/bluespace_crystal = 3,
|
|
/obj/item/weapon/stock_parts/matter_bin = 1)
|
|
var/target
|
|
|
|
/obj/item/weapon/circuitboard/telesci_pad
|
|
name = "Circuit board (Telepad)"
|
|
build_path = /obj/machinery/telepad
|
|
board_type = "machine"
|
|
origin_tech = "programming=4;engineering=3;materials=3;bluespace=4"
|
|
frame_desc = "Requires 2 Bluespace Crystals, 1 Capacitor, 1 piece of cable and 1 Console Screen."
|
|
req_components = list(
|
|
/obj/item/weapon/ore/bluespace_crystal = 2,
|
|
/obj/item/weapon/stock_parts/capacitor = 1,
|
|
/obj/item/stack/cable_coil = 1,
|
|
/obj/item/weapon/stock_parts/console_screen = 1)
|
|
|
|
|
|
/obj/item/weapon/circuitboard/sleeper
|
|
name = "circuit board (Sleeper)"
|
|
build_path = /obj/machinery/sleeper
|
|
board_type = "machine"
|
|
origin_tech = "programming=3;biotech=2;engineering=3;materials=3"
|
|
frame_desc = "Requires 1 Matter Bin, 1 Manipulator, 1 piece of cable and 2 Console Screens."
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/matter_bin = 1,
|
|
/obj/item/weapon/stock_parts/manipulator = 1,
|
|
/obj/item/stack/cable_coil = 1,
|
|
/obj/item/weapon/stock_parts/console_screen = 2)
|
|
|
|
/obj/item/weapon/circuitboard/bodyscanner
|
|
name = "circuit board (Body Scanner)"
|
|
build_path = /obj/machinery/bodyscanner
|
|
board_type = "machine"
|
|
origin_tech = "programming=3;biotech=2;engineering=3;materials=3"
|
|
frame_desc = "Requires 1 Scanning Module, 2 pieces of cable and 2 Console Screens."
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/scanning_module = 1,
|
|
/obj/item/stack/cable_coil = 2,
|
|
/obj/item/weapon/stock_parts/console_screen = 2)
|
|
|
|
/obj/item/weapon/circuitboard/bodyscanner_console
|
|
name = "circuit board (Body Scanner Console)"
|
|
build_path = /obj/machinery/body_scanconsole
|
|
board_type = "machine"
|
|
origin_tech = "programming=3;biotech=2;engineering=3;materials=3"
|
|
frame_desc = "Requires 2 pieces of cable and 2 Console Screens."
|
|
req_components = list(
|
|
/obj/item/stack/cable_coil = 2,
|
|
/obj/item/weapon/stock_parts/console_screen = 2)
|
|
|
|
/obj/item/weapon/circuitboard/cryo_tube
|
|
name = "circuit board (Cryotube)"
|
|
build_path = /obj/machinery/atmospherics/unary/cryo_cell
|
|
board_type = "machine"
|
|
origin_tech = "programming=4;biotech=3;engineering=4"
|
|
frame_desc = "Requires 1 Matter Bin, 1 piece of cable and 4 Console Screens."
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/matter_bin = 1,
|
|
/obj/item/stack/cable_coil = 1,
|
|
/obj/item/weapon/stock_parts/console_screen = 4)
|
|
|
|
/obj/item/weapon/circuitboard/cyborgrecharger
|
|
name = "circuit board (Cyborg Recharger)"
|
|
build_path = /obj/machinery/recharge_station
|
|
board_type = "machine"
|
|
origin_tech = "powerstorage=3;engineering=3"
|
|
frame_desc = "Requires 2 Capacitors, 1 Power Cell and 1 Manipulator."
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/capacitor = 2,
|
|
/obj/item/weapon/stock_parts/cell = 1,
|
|
/obj/item/weapon/stock_parts/manipulator = 1)
|
|
|
|
// Telecomms circuit boards:
|
|
/obj/item/weapon/circuitboard/telecomms/receiver
|
|
name = "Circuit Board (Subspace Receiver)"
|
|
build_path = /obj/machinery/telecomms/receiver
|
|
board_type = "machine"
|
|
origin_tech = "programming=2;engineering=2;bluespace=1"
|
|
frame_desc = "Requires 1 Subspace Ansible, 1 Hyperwave Filter, 2 Manipulators, and 1 Micro-Laser."
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/subspace/ansible = 1,
|
|
/obj/item/weapon/stock_parts/subspace/filter = 1,
|
|
/obj/item/weapon/stock_parts/manipulator = 2,
|
|
/obj/item/weapon/stock_parts/micro_laser = 1)
|
|
|
|
/obj/item/weapon/circuitboard/telecomms/hub
|
|
name = "Circuit Board (Hub Mainframe)"
|
|
build_path = /obj/machinery/telecomms/hub
|
|
board_type = "machine"
|
|
origin_tech = "programming=2;engineering=2"
|
|
frame_desc = "Requires 2 Manipulators, 2 Cable Coil and 2 Hyperwave Filter."
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/manipulator = 2,
|
|
/obj/item/stack/cable_coil = 2,
|
|
/obj/item/weapon/stock_parts/subspace/filter = 2)
|
|
|
|
/obj/item/weapon/circuitboard/telecomms/relay
|
|
name = "Circuit Board (Relay Mainframe)"
|
|
build_path = /obj/machinery/telecomms/relay
|
|
board_type = "machine"
|
|
origin_tech = "programming=2;engineering=2;bluespace=2"
|
|
frame_desc = "Requires 2 Manipulators, 2 Cable Coil and 2 Hyperwave Filters."
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/manipulator = 2,
|
|
/obj/item/stack/cable_coil = 2,
|
|
/obj/item/weapon/stock_parts/subspace/filter = 2)
|
|
|
|
/obj/item/weapon/circuitboard/telecomms/bus
|
|
name = "Circuit Board (Bus Mainframe)"
|
|
build_path = /obj/machinery/telecomms/bus
|
|
board_type = "machine"
|
|
origin_tech = "programming=2;engineering=2"
|
|
frame_desc = "Requires 2 Manipulators, 1 Cable Coil and 1 Hyperwave Filter."
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/manipulator = 2,
|
|
/obj/item/stack/cable_coil = 1,
|
|
/obj/item/weapon/stock_parts/subspace/filter = 1)
|
|
|
|
/obj/item/weapon/circuitboard/telecomms/processor
|
|
name = "Circuit Board (Processor Unit)"
|
|
build_path = /obj/machinery/telecomms/processor
|
|
board_type = "machine"
|
|
origin_tech = "programming=2;engineering=2"
|
|
frame_desc = "Requires 3 Manipulators, 1 Hyperwave Filter, 2 Treatment Disks, 1 Wavelength Analyzer, 2 Cable Coils and 1 Subspace Amplifier."
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/manipulator = 3,
|
|
/obj/item/weapon/stock_parts/subspace/filter = 1,
|
|
/obj/item/weapon/stock_parts/subspace/treatment = 2,
|
|
/obj/item/weapon/stock_parts/subspace/analyzer = 1,
|
|
/obj/item/stack/cable_coil = 2,
|
|
/obj/item/weapon/stock_parts/subspace/amplifier = 1)
|
|
|
|
/obj/item/weapon/circuitboard/telecomms/server
|
|
name = "Circuit Board (Telecommunication Server)"
|
|
build_path = /obj/machinery/telecomms/server
|
|
board_type = "machine"
|
|
origin_tech = "programming=2;engineering=2"
|
|
frame_desc = "Requires 2 Manipulators, 1 Cable Coil and 1 Hyperwave Filter."
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/manipulator = 2,
|
|
/obj/item/stack/cable_coil = 1,
|
|
/obj/item/weapon/stock_parts/subspace/filter = 1)
|
|
|
|
/obj/item/weapon/circuitboard/telecomms/broadcaster
|
|
name = "Circuit Board (Subspace Broadcaster)"
|
|
build_path = /obj/machinery/telecomms/broadcaster
|
|
board_type = "machine"
|
|
origin_tech = "programming=2;engineering=2;bluespace=1"
|
|
frame_desc = "Requires 2 Manipulators, 1 Cable Coil, 1 Hyperwave Filter, 1 Ansible Crystal and 2 High-Powered Micro-Lasers. "
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/manipulator = 2,
|
|
/obj/item/stack/cable_coil = 1,
|
|
/obj/item/weapon/stock_parts/subspace/filter = 1,
|
|
/obj/item/weapon/stock_parts/subspace/crystal = 1,
|
|
/obj/item/weapon/stock_parts/micro_laser/high = 2)
|
|
|
|
/obj/item/weapon/circuitboard/ore_redemption
|
|
name = "circuit board (Ore Redemption)"
|
|
build_path = /obj/machinery/mineral/ore_redemption
|
|
board_type = "machine"
|
|
origin_tech = "programming=1;engineering=2"
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/console_screen = 1,
|
|
/obj/item/weapon/stock_parts/matter_bin = 1,
|
|
/obj/item/weapon/stock_parts/micro_laser = 1,
|
|
/obj/item/weapon/stock_parts/manipulator = 1,
|
|
/obj/item/device/assembly/igniter = 1)
|
|
|
|
/obj/item/weapon/circuitboard/mining_equipment_vendor
|
|
name = "circuit board (Mining Equipment Vendor)"
|
|
build_path = /obj/machinery/mineral/equipment_vendor
|
|
board_type = "machine"
|
|
origin_tech = "programming=1;engineering=2"
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/console_screen = 1,
|
|
/obj/item/weapon/stock_parts/matter_bin = 3)
|
|
|
|
/obj/item/weapon/circuitboard/clawgame
|
|
name = "circuit board (Claw Game)"
|
|
build_path = /obj/machinery/arcade/claw
|
|
board_type = "machine"
|
|
origin_tech = "programming=2"
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/matter_bin = 1,
|
|
/obj/item/weapon/stock_parts/manipulator = 1,
|
|
/obj/item/stack/cable_coil = 5,
|
|
/obj/item/stack/sheet/glass = 1)
|
|
|
|
/obj/item/weapon/circuitboard/prize_counter
|
|
name = "circuit board (Prize Counter)"
|
|
build_path = /obj/machinery/prize_counter
|
|
board_type = "machine"
|
|
origin_tech = "programming=2;materials=2"
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/matter_bin = 1,
|
|
/obj/item/weapon/stock_parts/manipulator = 1,
|
|
/obj/item/weapon/stock_parts/console_screen = 1,
|
|
/obj/item/stack/cable_coil = 1)
|
|
|
|
/obj/item/weapon/circuitboard/botany_extractor
|
|
name = "circuit board (Lysis-Isolation Centrifuge)"
|
|
build_path = /obj/machinery/botany/extractor
|
|
board_type = "machine"
|
|
origin_tech = "biotech=3;programming=3"
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/matter_bin = 1,
|
|
/obj/item/weapon/stock_parts/scanning_module = 1,
|
|
/obj/item/weapon/stock_parts/console_screen = 1)
|
|
|
|
/obj/item/weapon/circuitboard/botany_editor
|
|
name = "circuit board (Bioballistic Delivery System)"
|
|
build_path = /obj/machinery/botany/editor
|
|
board_type = "machine"
|
|
origin_tech = "biotech=3;programming=3"
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/matter_bin = 1,
|
|
/obj/item/weapon/stock_parts/manipulator = 1,
|
|
/obj/item/weapon/stock_parts/console_screen = 1)
|
|
|
|
/obj/item/weapon/circuitboard/gameboard
|
|
name = "circuit board (Virtual Gameboard)"
|
|
build_path = /obj/machinery/gameboard
|
|
board_type = "machine"
|
|
origin_tech = "programming=2"
|
|
req_components = list(
|
|
/obj/item/weapon/stock_parts/micro_laser = 1,
|
|
/obj/item/stack/cable_coil = 3,
|
|
/obj/item/stack/sheet/glass = 1)
|
|
|
|
//Selectable mode board, like vending machine boards
|
|
/obj/item/weapon/circuitboard/logic_gate
|
|
name = "circuit board (Logic Connector)"
|
|
build_path = /obj/machinery/logic_gate
|
|
board_type = "machine"
|
|
origin_tech = "programming=1" //This stuff is pretty much the absolute basis of programming, so it's mostly useless for research
|
|
req_components = list(/obj/item/stack/cable_coil = 1)
|
|
|
|
var/list/names_paths = list(
|
|
"NOT Gate" = /obj/machinery/logic_gate/not,
|
|
"OR Gate" = /obj/machinery/logic_gate/or,
|
|
"AND Gate" = /obj/machinery/logic_gate/and,
|
|
"NAND Gate" = /obj/machinery/logic_gate/nand,
|
|
"NOR Gate" = /obj/machinery/logic_gate/nor,
|
|
"XOR Gate" = /obj/machinery/logic_gate/xor,
|
|
"XNOR Gate" = /obj/machinery/logic_gate/xnor,
|
|
"STATUS Gate" = /obj/machinery/logic_gate/status,
|
|
"CONVERT Gate" = /obj/machinery/logic_gate/convert
|
|
)
|
|
|
|
/obj/item/weapon/circuitboard/logic_gate/New()
|
|
..()
|
|
if(build_path == /obj/machinery/logic_gate) //If we spawn the base type board (determined by the base type machine as the build path), become a random gate board
|
|
var/new_path = names_paths[pick(names_paths)]
|
|
set_type(new_path)
|
|
|
|
/obj/item/weapon/circuitboard/logic_gate/attackby(obj/item/I, mob/user, params)
|
|
if(istype(I, /obj/item/weapon/screwdriver))
|
|
set_type(null, user)
|
|
|
|
/obj/item/weapon/circuitboard/logic_gate/proc/set_type(typepath, mob/user)
|
|
var/new_name = "Logic Base"
|
|
if(!typepath)
|
|
new_name = input("Circuit Setting", "What would you change the board setting to?") in names_paths
|
|
typepath = names_paths[new_name]
|
|
else
|
|
for(var/name in names_paths)
|
|
if(names_paths[name] == typepath)
|
|
new_name = name
|
|
break
|
|
build_path = typepath
|
|
name = "circuit board ([new_name])"
|
|
if(user)
|
|
to_chat(user, "<span class='notice'>You set the board to [new_name].</span>")
|