Makes machine frames show their circuit name (#15025)

* Circuit Names Refactor

* Some review stuff

* now with less runtimes

* Machine Boards and Computer Boards

* Only a little late

* YouTool fix

* Resupply crate too

* Supplycomp board

I'll do the other stuff tomorrow

* Computer Frame Refactor

Plus also removing the HONKputer to avoid a conflict.

* Don't need this diff anymore
This commit is contained in:
SabreML
2021-07-10 19:43:40 +01:00
committed by GitHub
parent 9d3800b49e
commit 3e8482cebb
14 changed files with 585 additions and 670 deletions
+4 -3
View File
@@ -572,9 +572,10 @@ GLOBAL_LIST_INIT(all_supply_groups, list(SUPPLY_EMERGENCY,SUPPLY_SECURITY,SUPPLY
containername = "electrical maintenance crate"
/datum/supply_packs/vending/engivend
name = "EngiVend Supply Crate"
cost = 15
contains = list(/obj/item/vending_refill/engivend)
name = "Engineering Vendor Supply Crate"
cost = 20
contains = list(/obj/item/vending_refill/engivend,
/obj/item/vending_refill/youtool)
containername = "engineering supply crate"
/datum/supply_packs/engineering/powergamermitts
+369 -276
View File
@@ -1,52 +1,18 @@
/obj/structure/computerframe
density = 1
anchored = 0
name = "computer frame"
icon = 'icons/obj/stock_parts.dmi'
icon_state = "0"
max_integrity = 100
var/state = 0
var/obj/item/circuitboard/circuit = null
/obj/structure/computerframe/deconstruct(disassembled = TRUE)
if(!(flags & NODECONSTRUCT))
drop_computer_parts()
return ..() // will qdel the frame
/obj/structure/computerframe/obj_break(damage_flag)
deconstruct()
/obj/structure/computerframe/proc/drop_computer_parts()
new /obj/item/stack/sheet/metal(loc, 5)
if(circuit)
circuit.forceMove(loc)
circuit = null
if(state >= 3)
var/obj/item/stack/cable_coil/A = new /obj/item/stack/cable_coil( loc )
A.amount = 5
if(state >= 4)
new /obj/item/stack/sheet/glass(loc, 2)
/obj/item/circuitboard
density = 0
anchored = 0
w_class = WEIGHT_CLASS_SMALL
/// Use `board_name` instead of this.
name = "circuit board"
icon = 'icons/obj/module.dmi'
icon_state = "id_mod"
item_state = "electronic"
origin_tech = "programming=2"
w_class = WEIGHT_CLASS_SMALL
materials = list(MAT_GLASS=200)
var/id = null
var/frequency = null
usesound = 'sound/items/deconstruct.ogg'
/// Use this instead of `name`. Formats as: `circuit board ([board_name])`
var/board_name = null
var/build_path = null
var/board_type = "computer"
var/list/req_components = null
var/powernet = null
var/list/records = null
var/contain_parts = 1
toolspeed = 1
usesound = 'sound/items/deconstruct.ogg'
/obj/item/circuitboard/computer
board_type = "computer"
@@ -54,6 +20,16 @@
/obj/item/circuitboard/machine
board_type = "machine"
/obj/item/circuitboard/Initialize(mapload)
. = ..()
format_board_name()
/obj/item/circuitboard/proc/format_board_name()
if(board_name) // Should always have this, but just in case.
name = "[initial(name)] ([board_name])"
else
name = "[initial(name)]"
/obj/item/circuitboard/examine(mob/user)
. = ..()
if(LAZYLEN(req_components))
@@ -66,480 +42,597 @@
. += "<span class='notice'>Required components: [english_list(nice_list)].</span>"
/obj/item/circuitboard/message_monitor
name = "Circuit board (Message Monitor)"
board_name = "Message Monitor"
build_path = /obj/machinery/computer/message_monitor
origin_tech = "programming=2"
/obj/item/circuitboard/camera
name = "Circuit board (Camera Monitor)"
board_name = "Camera Monitor"
build_path = /obj/machinery/computer/security
origin_tech = "programming=2;combat=2"
/obj/item/circuitboard/camera/telescreen
name = "Circuit board (Telescreen)"
board_name = "Telescreen"
build_path = /obj/machinery/computer/security/telescreen
/obj/item/circuitboard/camera/telescreen/entertainment
name = "Circuit board (Entertainment Monitor)"
board_name = "Entertainment Monitor"
build_path = /obj/machinery/computer/security/telescreen/entertainment
/obj/item/circuitboard/camera/wooden_tv
name = "Circuit board (Wooden TV)"
board_name = "Wooden TV"
build_path = /obj/machinery/computer/security/wooden_tv
/obj/item/circuitboard/camera/mining
name = "Circuit board (Outpost Camera Monitor)"
board_name = "Outpost Camera Monitor"
build_path = /obj/machinery/computer/security/mining
/obj/item/circuitboard/camera/engineering
name = "Circuit board (Engineering Camera Monitor)"
board_name = "Engineering Camera Monitor"
build_path = /obj/machinery/computer/security/engineering
/obj/item/circuitboard/xenobiology
name = "Circuit board (Xenobiology Console)"
board_name = "Xenobiology Console"
build_path = /obj/machinery/computer/camera_advanced/xenobio
origin_tech = "programming=3;biotech=3"
/obj/item/circuitboard/aicore
name = "Circuit board (AI Core)"
board_name = "AI Core"
origin_tech = "programming=3"
board_type = "other"
/obj/item/circuitboard/aiupload
name = "Circuit board (AI Upload)"
board_name = "AI Upload"
build_path = /obj/machinery/computer/aiupload
origin_tech = "programming=4;engineering=4"
/obj/item/circuitboard/borgupload
name = "Circuit board (Cyborg Upload)"
board_name = "Cyborg Upload"
build_path = /obj/machinery/computer/borgupload
origin_tech = "programming=4;engineering=4"
/obj/item/circuitboard/med_data
name = "Circuit board (Medical Records)"
board_name = "Medical Records"
build_path = /obj/machinery/computer/med_data
origin_tech = "programming=2;biotech=2"
/obj/item/circuitboard/pandemic
name = "circuit board (PanD.E.M.I.C. 2200)"
board_name = "PanD.E.M.I.C. 2200"
build_path = /obj/machinery/computer/pandemic
origin_tech = "programming=2;biotech=2"
/obj/item/circuitboard/scan_consolenew
name = "Circuit board (DNA Machine)"
board_name = "DNA Machine"
build_path = /obj/machinery/computer/scan_consolenew
origin_tech = "programming=2;biotech=2"
/obj/item/circuitboard/communications
name = "Circuit board (Communications Console)"
board_name = "Communications Console"
build_path = /obj/machinery/computer/communications
origin_tech = "programming=3;magnets=3"
/obj/item/circuitboard/card
name = "Circuit board (ID Computer)"
board_name = "ID Computer"
build_path = /obj/machinery/computer/card
origin_tech = "programming=3"
/obj/item/circuitboard/card/minor
name = "Circuit board (Dept ID Computer)"
board_name = "Dept ID Computer"
build_path = /obj/machinery/computer/card/minor
var/target_dept = TARGET_DEPT_GENERIC
/obj/item/circuitboard/card/minor/hos
name = "Circuit board (Sec ID Computer)"
board_name = "Sec ID Computer"
build_path = /obj/machinery/computer/card/minor/hos
target_dept = TARGET_DEPT_SEC
/obj/item/circuitboard/card/minor/cmo
name = "Circuit board (Medical ID Computer)"
board_name = "Medical ID Computer"
build_path = /obj/machinery/computer/card/minor/cmo
target_dept = TARGET_DEPT_MED
/obj/item/circuitboard/card/minor/rd
name = "Circuit board (Science ID Computer)"
board_name = "Science ID Computer"
build_path = /obj/machinery/computer/card/minor/rd
target_dept = TARGET_DEPT_SCI
/obj/item/circuitboard/card/minor/ce
name = "Circuit board (Engineering ID Computer)"
board_name = "Engineering ID Computer"
build_path = /obj/machinery/computer/card/minor/ce
target_dept = TARGET_DEPT_ENG
/obj/item/circuitboard/card/centcom
name = "Circuit board (CentComm ID Computer)"
board_name = "CentComm ID Computer"
build_path = /obj/machinery/computer/card/centcom
/obj/item/circuitboard/teleporter
name = "Circuit board (Teleporter Console)"
board_name = "Teleporter Console"
build_path = /obj/machinery/computer/teleporter
origin_tech = "programming=3;bluespace=3;plasmatech=3"
/obj/item/circuitboard/secure_data
name = "Circuit board (Security Records)"
board_name = "Security Records"
build_path = /obj/machinery/computer/secure_data
origin_tech = "programming=2;combat=2"
/obj/item/circuitboard/stationalert_engineering
name = "Circuit Board (Station Alert Console (Engineering))"
board_name = "Station Alert Console - Engineering"
build_path = /obj/machinery/computer/station_alert
/obj/item/circuitboard/stationalert
name = "Circuit Board (Station Alert Console)"
board_name = "Station Alert Console"
build_path = /obj/machinery/computer/station_alert
/obj/item/circuitboard/atmos_alert
name = "Circuit Board (Atmospheric Alert Computer)"
board_name = "Atmospheric Alert Computer"
build_path = /obj/machinery/computer/atmos_alert
/obj/item/circuitboard/atmoscontrol
name = "Circuit Board (Central Atmospherics Computer)"
board_name = "Central Atmospherics Computer"
build_path = /obj/machinery/computer/atmoscontrol
/obj/item/circuitboard/air_management
name = "Circuit board (Atmospheric Monitor)"
board_name = "Atmospheric Monitor"
build_path = /obj/machinery/computer/general_air_control
/obj/item/circuitboard/injector_control
name = "Circuit board (Injector Control)"
board_name = "Injector Control"
build_path = /obj/machinery/computer/general_air_control/fuel_injection
/obj/item/circuitboard/pod
name = "Circuit board (Massdriver Control)"
board_name = "Massdriver Control"
build_path = /obj/machinery/computer/pod
/obj/item/circuitboard/pod/deathsquad
name = "Circuit board (Deathsquad Massdriver control)"
board_name = "Deathsquad Massdriver Control"
build_path = /obj/machinery/computer/pod/deathsquad
/obj/item/circuitboard/robotics
name = "Circuit board (Robotics Control Console)"
board_name = "Robotics Control Console"
build_path = /obj/machinery/computer/robotics
origin_tech = "programming=3"
/obj/item/circuitboard/drone_control
name = "Circuit board (Drone Control)"
board_name = "Drone Control"
build_path = /obj/machinery/computer/drone_control
origin_tech = "programming=3"
/obj/item/circuitboard/cloning
name = "Circuit board (Cloning Machine Console)"
board_name = "Cloning Machine Console"
build_path = /obj/machinery/computer/cloning
origin_tech = "programming=2;biotech=2"
/obj/item/circuitboard/arcade/battle
name = "circuit board (Arcade Battle)"
board_name = "Arcade Battle"
build_path = /obj/machinery/computer/arcade/battle
origin_tech = "programming=1"
/obj/item/circuitboard/arcade/orion_trail
name = "circuit board (Orion Trail)"
board_name = "Orion Trail"
build_path = /obj/machinery/computer/arcade/orion_trail
origin_tech = "programming=1"
/obj/item/circuitboard/solar_control
name = "Circuit board (Solar Control)"
board_name = "Solar Control"
build_path = /obj/machinery/power/solar_control
origin_tech = "programming=2;powerstorage=2"
/obj/item/circuitboard/powermonitor
name = "Circuit board (Power Monitor)"
board_name = "Power Monitor"
build_path = /obj/machinery/computer/monitor
origin_tech = "programming=2;powerstorage=2"
/obj/item/circuitboard/powermonitor/secret
name = "Circuit board (Outdated Power Monitor)"
board_name = "Outdated Power Monitor"
build_path = /obj/machinery/computer/monitor/secret
origin_tech = "programming=2;powerstorage=2"
/obj/item/circuitboard/olddoor
name = "Circuit board (DoorMex)"
board_name = "DoorMex"
build_path = /obj/machinery/computer/pod/old
/obj/item/circuitboard/syndicatedoor
name = "Circuit board (ProComp Executive)"
board_name = "ProComp Executive"
build_path = /obj/machinery/computer/pod/old/syndicate
/obj/item/circuitboard/swfdoor
name = "Circuit board (Magix)"
board_name = "Magix"
build_path = /obj/machinery/computer/pod/old/swf
/obj/item/circuitboard/prisoner
name = "Circuit board (Prisoner Management)"
board_name = "Prisoner Management"
build_path = /obj/machinery/computer/prisoner
/obj/item/circuitboard/brigcells
name = "Circuit board (Brig Cell Control)"
board_name = "Brig Cell Control"
build_path = /obj/machinery/computer/brigcells
/obj/item/circuitboard/sm_monitor
name = "Circuit board (Supermatter Monitoring Console)"
board_name = "Supermatter Monitoring Console"
build_path = /obj/machinery/computer/sm_monitor
origin_tech = "programming=2;powerstorage=2"
// RD console circuits, so that {de,re}constructing one of the special consoles doesn't ruin everything forever
// RD console circuits, so that de/reconstructing one of the special consoles doesn't ruin everything forever
/obj/item/circuitboard/rdconsole
name = "Circuit Board (RD Console)"
board_name = "RD Console"
desc = "Swipe a Scientist level ID or higher to reconfigure."
build_path = /obj/machinery/computer/rdconsole/core
req_access = list(ACCESS_TOX) // This is for adjusting the type of computer we're building - in case something messes up the pre-existing robotics or mechanics consoles
var/access_types = list("R&D Core", "Robotics", "E.X.P.E.R.I-MENTOR", "Mechanics", "Public")
id = 1
var/list/access_types = list("R&D Core", "Robotics", "E.X.P.E.R.I-MENTOR", "Mechanics", "Public")
/obj/item/circuitboard/rdconsole/robotics
name = "Circuit Board (RD Console - Robotics)"
board_name = "RD Console - Robotics"
build_path = /obj/machinery/computer/rdconsole/robotics
id = 2
/obj/item/circuitboard/rdconsole/experiment
name = "Circuit Board (RD Console - E.X.P.E.R.I-MENTOR)"
board_name = "RD Console - E.X.P.E.R.I-MENTOR"
build_path = /obj/machinery/computer/rdconsole/experiment
id = 3
/obj/item/circuitboard/rdconsole/mechanics
name = "Circuit Board (RD Console - Mechanics)"
board_name = "RD Console - Mechanics"
build_path = /obj/machinery/computer/rdconsole/mechanics
id = 4
/obj/item/circuitboard/rdconsole/public
name = "Circuit Board (RD Console - Public)"
board_name = "RD Console - Public"
build_path = /obj/machinery/computer/rdconsole/public
id = 5
/obj/item/circuitboard/mecha_control
name = "Circuit Board (Exosuit Control Console)"
board_name = "Exosuit Control Console"
build_path = /obj/machinery/computer/mecha
/obj/item/circuitboard/pod_locater
name = "Circuit Board (Pod Location Console)"
board_name = "Pod Location Console"
build_path = /obj/machinery/computer/podtracker
/obj/item/circuitboard/rdservercontrol
name = "Circuit Board (RD Server Control)"
board_name = "RD Server Control"
build_path = /obj/machinery/computer/rdservercontrol
/obj/item/circuitboard/crew
name = "Circuit board (Crew Monitoring Computer)"
board_name = "Crew Monitoring Computer"
build_path = /obj/machinery/computer/crew
origin_tech = "programming=2;biotech=2"
/obj/item/circuitboard/mech_bay_power_console
name = "Circuit board (Mech Bay Power Control Console)"
board_name = "Mech Bay Power Control Console"
build_path = /obj/machinery/computer/mech_bay_power_console
origin_tech = "programming=3;powerstorage=3"
/obj/item/circuitboard/ordercomp
name = "Circuit board (Supply Ordering Console)"
board_name = "Supply Ordering Console"
build_path = /obj/machinery/computer/supplycomp/public
origin_tech = "programming=3"
/obj/item/circuitboard/supplycomp
name = "Circuit board (Supply Shuttle Console)"
board_name = "Supply Shuttle Console"
build_path = /obj/machinery/computer/supplycomp
origin_tech = "programming=3"
var/contraband_enabled = 0
/obj/item/circuitboard/operating
name = "Circuit board (Operating Computer)"
board_name = "Operating Computer"
build_path = /obj/machinery/computer/operating
origin_tech = "programming=2;biotech=3"
/obj/item/circuitboard/shuttle
name = "circuit board (Shuttle)"
board_name = "Shuttle"
build_path = /obj/machinery/computer/shuttle
var/shuttleId
var/possible_destinations = ""
/obj/item/circuitboard/labor_shuttle
name = "circuit Board (Labor Shuttle)"
board_name = "Labor Shuttle"
build_path = /obj/machinery/computer/shuttle/labor
/obj/item/circuitboard/labor_shuttle/one_way
name = "circuit Board (Prisoner Shuttle Console)"
board_name = "Prisoner Shuttle Console"
build_path = /obj/machinery/computer/shuttle/labor/one_way
/obj/item/circuitboard/ferry
name = "circuit Board (Transport Ferry)"
board_name = "Transport Ferry"
build_path = /obj/machinery/computer/shuttle/ferry
/obj/item/circuitboard/ferry/request
name = "circuit Board (Transport Ferry Console)"
board_name = "Transport Ferry Console"
build_path = /obj/machinery/computer/shuttle/ferry/request
/obj/item/circuitboard/mining_shuttle
name = "circuit Board (Mining Shuttle)"
board_name = "Mining Shuttle"
build_path = /obj/machinery/computer/shuttle/mining
/obj/item/circuitboard/white_ship
name = "circuit Board (White Ship)"
board_name = "White Ship"
build_path = /obj/machinery/computer/shuttle/white_ship
/obj/item/circuitboard/shuttle/syndicate
name = "circuit board (Syndicate Shuttle)"
board_name = "Syndicate Shuttle"
build_path = /obj/machinery/computer/shuttle/syndicate
/obj/item/circuitboard/shuttle/syndicate/recall
name = "circuit board (Syndicate Shuttle Recall Terminal)"
board_name = "Syndicate Shuttle Recall Terminal"
build_path = /obj/machinery/computer/shuttle/syndicate/recall
/obj/item/circuitboard/shuttle/syndicate/drop_pod
name = "circuit board (Syndicate Drop Pod)"
board_name = "Syndicate Drop Pod"
build_path = /obj/machinery/computer/shuttle/syndicate/drop_pod
/obj/item/circuitboard/shuttle/golem_ship
name = "circuit Board (Golem Ship)"
board_name = "Golem Ship"
build_path = /obj/machinery/computer/shuttle/golem_ship
/obj/item/circuitboard/HolodeckControl
name = "Circuit board (Holodeck Control)"
board_name = "Holodeck Control"
build_path = /obj/machinery/computer/HolodeckControl
origin_tech = "programming=4"
/obj/item/circuitboard/aifixer
name = "Circuit board (AI Integrity Restorer)"
board_name = "AI Integrity Restorer"
build_path = /obj/machinery/computer/aifixer
origin_tech = "programming=2;biotech=2"
/obj/item/circuitboard/area_atmos
name = "Circuit board (Area Air Control)"
board_name = "Area Air Control"
build_path = /obj/machinery/computer/area_atmos
origin_tech = "programming=2"
/obj/item/circuitboard/telesci_console
name = "Circuit board (Telepad Control Console)"
board_name = "Telepad Control Console"
build_path = /obj/machinery/computer/telescience
origin_tech = "programming=3;bluespace=3;plasmatech=4"
/obj/item/circuitboard/large_tank_control
name = "Circuit board (Atmospheric Tank Control)"
board_name = "Atmospheric Tank Control"
build_path = /obj/machinery/computer/general_air_control/large_tank_control
origin_tech = "programming=2;engineering=3;materials=2"
/obj/item/circuitboard/turbine_computer
name = "circuit board (Turbine Computer)"
board_name = "Turbine Computer"
build_path = /obj/machinery/computer/turbine_computer
origin_tech = "programming=4;engineering=4;powerstorage=4"
/obj/item/circuitboard/supplycomp/multitool_act(mob/living/user, obj/item/I)
. = TRUE
var/catastasis // Why is it called this
var/opposite_catastasis
if(contraband_enabled)
catastasis = "BROAD"
opposite_catastasis = "STANDARD"
else
catastasis = "STANDARD"
opposite_catastasis = "BROAD"
/obj/item/circuitboard/supplycomp/attackby(obj/item/I as obj, mob/user as mob, params)
if(istype(I,/obj/item/multitool))
var/catastasis = contraband_enabled
var/opposite_catastasis
if(catastasis)
opposite_catastasis = "STANDARD"
catastasis = "BROAD"
else
opposite_catastasis = "BROAD"
catastasis = "STANDARD"
switch( alert("Current receiver spectrum is set to: [catastasis]","Multitool-Circuitboard interface","Switch to [opposite_catastasis]","Cancel") )
//switch( alert("Current receiver spectrum is set to: " {(contraband_enabled) ? ("BROAD") : ("STANDARD")} , "Multitool-Circuitboard interface" , "Switch to " {(contraband_enabled) ? ("STANDARD") : ("BROAD")}, "Cancel") )
if("Switch to STANDARD","Switch to BROAD")
contraband_enabled = !contraband_enabled
if("Cancel")
return
else
to_chat(user, "DERP! BUG! Report this (And what you were doing to cause it) to Agouri")
var/choice = alert("Current receiver spectrum is set to: [catastasis]", "Multitool-Circuitboard interface", "Switch to [opposite_catastasis]", "Cancel")
if(choice == "Cancel")
return
return ..()
/obj/item/circuitboard/rdconsole/attackby(obj/item/I as obj, mob/user as mob, params)
if(istype(I,/obj/item/card/id)||istype(I, /obj/item/pda))
contraband_enabled = !contraband_enabled
playsound(src, 'sound/effects/pop.ogg', 50)
/obj/item/circuitboard/rdconsole/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/card/id) || istype(I, /obj/item/pda))
if(allowed(user))
user.visible_message("<span class='notice'>[user] waves [user.p_their()] ID past [src]'s access protocol scanner.</span>", "<span class='notice'>You swipe your ID past [src]'s access protocol scanner.</span>")
var/console_choice = input(user, "What do you want to configure the access to?", "Access Modification", "R&D Core") as null|anything in access_types
if(console_choice == null)
if(!console_choice)
return
switch(console_choice)
if("R&D Core")
name = "Circuit Board (RD Console)"
board_name = "RD Console"
build_path = /obj/machinery/computer/rdconsole/core
id = 1
if("Robotics")
name = "Circuit Board (RD Console - Robotics)"
board_name = "RD Console - Robotics"
build_path = /obj/machinery/computer/rdconsole/robotics
id = 2
if("E.X.P.E.R.I-MENTOR")
name = "Circuit Board (RD Console - E.X.P.E.R.I-MENTOR)"
board_name = "RD Console - E.X.P.E.R.I-MENTOR"
build_path = /obj/machinery/computer/rdconsole/experiment
id = 3
if("Mechanics")
name = "Circuit Board (RD Console - Mechanics)"
board_name = "RD Console - Mechanics"
build_path = /obj/machinery/computer/rdconsole/mechanics
id = 4
if("Public")
name = "Circuit Board (RD Console - Public)"
board_name = "RD Console - Public"
build_path = /obj/machinery/computer/rdconsole/public
id = 5
format_board_name()
to_chat(user, "<span class='notice'>Access protocols set to [console_choice].</span>")
else
to_chat(user, "<span class='warning'>Access Denied</span>")
return
return ..()
/obj/structure/computerframe/attackby(obj/item/P as obj, mob/user as mob, params)
switch(state)
if(0)
if(istype(P, /obj/item/wrench))
playsound(loc, P.usesound, 50, 1)
if(do_after(user, 20 * P.toolspeed, target = src))
to_chat(user, "<span class='notice'>You wrench the frame into place.</span>")
anchored = 1
state = 1
return
if(1)
if(istype(P, /obj/item/wrench))
playsound(loc, P.usesound, 50, 1)
if(do_after(user, 20 * P.toolspeed, target = src))
to_chat(user, "<span class='notice'>You unfasten the frame.</span>")
anchored = 0
state = 0
return
if(istype(P, /obj/item/circuitboard) && !circuit)
var/obj/item/circuitboard/B = P
if(B.board_type == "computer")
playsound(loc, B.usesound, 50, 1)
to_chat(user, "<span class='notice'>You place the circuit board inside the frame.</span>")
icon_state = "1"
circuit = P
user.drop_item()
P.loc = src
else
to_chat(user, "<span class='warning'>This frame does not accept circuit boards of this type!</span>")
return
if(istype(P, /obj/item/screwdriver) && circuit)
playsound(loc, P.usesound, 50, 1)
to_chat(user, "<span class='notice'>You screw the circuit board into place.</span>")
state = 2
icon_state = "2"
return
if(istype(P, /obj/item/crowbar) && circuit)
playsound(loc, P.usesound, 50, 1)
to_chat(user, "<span class='notice'>You remove the circuit board.</span>")
state = 1
icon_state = "0"
circuit.loc = loc
circuit = null
return
if(2)
if(istype(P, /obj/item/screwdriver) && circuit)
playsound(loc, P.usesound, 50, 1)
to_chat(user, "<span class='notice'>You unfasten the circuit board.</span>")
state = 1
icon_state = "1"
return
if(istype(P, /obj/item/stack/cable_coil))
var/obj/item/stack/cable_coil/C = P
if(C.get_amount() >= 5)
playsound(loc, C.usesound, 50, 1)
to_chat(user, "<span class='notice'>You start to add cables to the frame.</span>")
if(do_after(user, 20 * C.toolspeed, target = src))
if(state == 2 && C.get_amount() >= 5 && C.use(5))
to_chat(user, "<span class='notice'>You add cables to the frame.</span>")
state = 3
icon_state = "3"
else
to_chat(user, "<span class='warning'>At some point during construction you lost some cable. Make sure you have five lengths before trying again.</span>")
return
else
to_chat(user, "<span class='warning'>You need five lengths of cable to wire the frame.</span>")
return
if(3)
if(istype(P, /obj/item/wirecutters))
playsound(loc, P.usesound, 50, 1)
to_chat(user, "<span class='notice'>You remove the cables.</span>")
state = 2
icon_state = "2"
var/obj/item/stack/cable_coil/A = new /obj/item/stack/cable_coil( loc )
A.amount = 5
return
if(istype(P, /obj/item/stack/sheet/glass))
var/obj/item/stack/sheet/glass/G = P
if(G.get_amount() >= 2)
playsound(loc, G.usesound, 50, 1)
to_chat(user, "<span class='notice'>You start to add the glass panel to the frame.</span>")
if(do_after(user, 20 * G.toolspeed, target = src))
if(state == 3 && G.get_amount() >= 2 && G.use(2))
to_chat(user, "<span class='notice'>You put in the glass panel.</span>")
state = 4
icon_state = "4"
else
to_chat(user, "<span class='warning'>At some point during construction you lost some glass. Make sure you have two sheets before trying again.</span>")
return
else
to_chat(user, "<span class='warning'>You need two sheets of glass for this.</span>")
return
if(4)
if(istype(P, /obj/item/crowbar))
playsound(loc, P.usesound, 50, 1)
to_chat(user, "<span class='notice'>You remove the glass panel.</span>")
state = 3
icon_state = "3"
new /obj/item/stack/sheet/glass(loc, 2)
return
if(istype(P, /obj/item/screwdriver))
playsound(loc, P.usesound, 50, 1)
to_chat(user, "<span class='notice'>You connect the monitor.</span>")
var/B = new circuit.build_path (loc)
if(circuit.powernet) B:powernet = circuit.powernet
if(circuit.id) B:id = circuit.id
if(circuit.records) B:records = circuit.records
if(circuit.frequency) B:frequency = circuit.frequency
if(istype(circuit,/obj/item/circuitboard/supplycomp))
var/obj/machinery/computer/supplycomp/SC = B
var/obj/item/circuitboard/supplycomp/C = circuit
SC.can_order_contraband = C.contraband_enabled
qdel(src)
return
if(user.a_intent == INTENT_HARM)
return ..()
// Construction | Deconstruction
#define STATE_EMPTY 1 // Add a circuitboard | Weld to destroy
#define STATE_CIRCUIT 2 // Screwdriver the cover closed | Crowbar the circuit
#define STATE_NOWIRES 3 // Add wires | Screwdriver the cover open
#define STATE_WIRES 4 // Add glass | Remove wires
#define STATE_GLASS 5 // Screwdriver to complete | Crowbar glass out
/obj/structure/computerframe
name = "computer frame"
icon = 'icons/obj/stock_parts.dmi'
icon_state = "comp_frame_1"
density = TRUE
anchored = TRUE
max_integrity = 100
var/state = STATE_EMPTY
var/obj/item/circuitboard/circuit = null
/obj/structure/computerframe/deconstruct(disassembled = TRUE)
if(!(flags & NODECONSTRUCT))
drop_computer_parts()
return ..() // will qdel the frame
/obj/structure/computerframe/obj_break(damage_flag)
deconstruct()
/obj/structure/computerframe/proc/drop_computer_parts()
var/location = drop_location()
new /obj/item/stack/sheet/metal(location, 5)
if(circuit)
circuit.forceMove(location)
circuit = null
if(state >= STATE_WIRES)
var/obj/item/stack/cable_coil/C = new(location)
C.amount = 5
if(state == STATE_GLASS)
new /obj/item/stack/sheet/glass(location, 2)
/obj/structure/computerframe/update_icon()
. = ..()
icon_state = "comp_frame_[state]"
/obj/structure/computerframe/welder_act(mob/user, obj/item/I)
if(state)
if(state != STATE_EMPTY)
return
. = TRUE
if(!I.tool_use_check(user, 0))
return
WELDER_ATTEMPT_SLICING_MESSAGE
if(I.use_tool(src, user, 50, volume = I.tool_volume) && !state)
to_chat(user, "<span class='notice'>You deconstruct [src].</span>")
if(I.use_tool(src, user, 50, volume = I.tool_volume))
WELDER_SLICING_SUCCESS_MESSAGE
deconstruct(TRUE)
/obj/structure/computerframe/wrench_act(mob/living/user, obj/item/I)
. = TRUE
if(!I.use_tool(src, user, 2 SECONDS, volume = I.tool_volume))
return
if(anchored)
to_chat(user, "<span class='notice'>You unfasten the frame.</span>")
anchored = FALSE
else
to_chat(user, "<span class='notice'>You wrench the frame into place.</span>")
anchored = TRUE
/obj/structure/computerframe/crowbar_act(mob/living/user, obj/item/I)
. = TRUE
if(!I.use_tool(src, user))
return
if(state == STATE_CIRCUIT)
to_chat(user, "<span class='notice'>You remove the circuit board.</span>")
state = STATE_EMPTY
name = initial(name)
circuit.forceMove(drop_location())
circuit = null
else if(state == STATE_GLASS)
to_chat(user, "<span class='notice'>You remove the glass panel.</span>")
state = STATE_WIRES
new /obj/item/stack/sheet/glass(drop_location(), 2)
else
return
I.play_tool_sound(src)
update_icon()
/obj/structure/computerframe/screwdriver_act(mob/living/user, obj/item/I)
. = TRUE
if(!I.use_tool(src, user))
return
switch(state)
if(STATE_CIRCUIT)
to_chat(user, "<span class='notice'>You screw the circuit board into place.</span>")
state = STATE_NOWIRES
I.play_tool_sound(src)
update_icon()
if(STATE_NOWIRES)
to_chat(user, "<span class='notice'>You unfasten the circuit board.</span>")
state = STATE_CIRCUIT
I.play_tool_sound(src)
update_icon()
if(STATE_GLASS)
to_chat(user, "<span class='notice'>You connect the monitor.</span>")
I.play_tool_sound(src)
var/B = new circuit.build_path(loc)
if(istype(circuit, /obj/item/circuitboard/supplycomp))
var/obj/machinery/computer/supplycomp/SC = B
var/obj/item/circuitboard/supplycomp/C = circuit
SC.can_order_contraband = C.contraband_enabled
qdel(src)
/obj/structure/computerframe/wirecutter_act(mob/living/user, obj/item/I)
. = TRUE
if(!I.use_tool(src, user))
return
if(state == STATE_WIRES)
to_chat(user, "<span class='notice'>You remove the cables.</span>")
var/obj/item/stack/cable_coil/C = new(drop_location())
C.amount = 5
state = STATE_NOWIRES
I.play_tool_sound(src)
update_icon()
/obj/structure/computerframe/attackby(obj/item/I, mob/user, params)
switch(state)
if(STATE_EMPTY)
if(!istype(I, /obj/item/circuitboard))
return ..()
var/obj/item/circuitboard/B = I
if(B.board_type != "computer")
to_chat(user, "<span class='warning'>[src] does not accept circuit boards of this type!</span>")
return
B.play_tool_sound(src)
to_chat(user, "<span class='notice'>You place [B] inside [src].</span>")
name += " ([B.board_name])"
state = STATE_CIRCUIT
user.drop_item()
B.forceMove(src)
circuit = B
update_icon()
return
if(STATE_NOWIRES)
if(!istype(I, /obj/item/stack/cable_coil))
return ..()
var/obj/item/stack/cable_coil/C = I
if(C.get_amount() < 5)
to_chat(user, "<span class='warning'>You need five lengths of cable to wire the frame.</span>")
return
C.play_tool_sound(src)
to_chat(user, "<span class='notice'>You start to add cables to the frame.</span>")
if(!do_after(user, 2 SECONDS * C.toolspeed, target = src))
return
if(C.get_amount() < 5 || !C.use(5))
to_chat(user, "<span class='warning'>At some point during construction you lost some cable. Make sure you have five lengths before trying again.</span>")
return
to_chat(user, "<span class='notice'>You add cables to the frame.</span>")
state = STATE_WIRES
update_icon()
return
if(STATE_WIRES)
if(!istype(I, /obj/item/stack/sheet/glass))
return ..()
var/obj/item/stack/sheet/glass/G = I
if(G.get_amount() < 2)
to_chat(user, "<span class='warning'>You need two sheets of glass for this.</span>")
return
G.play_tool_sound(src)
to_chat(user, "<span class='notice'>You start to add the glass panel to the frame.</span>")
if(!do_after(user, 2 SECONDS * G.toolspeed, target = src))
return
if(G.get_amount() < 2 || !G.use(2))
to_chat(user, "<span class='warning'>At some point during construction you lost some glass. Make sure you have two sheets before trying again.</span>")
return
to_chat(user, "<span class='notice'>You put in the glass panel.</span>")
state = STATE_GLASS
update_icon()
return
return ..()
#undef STATE_EMPTY
#undef STATE_CIRCUIT
#undef STATE_NOWIRES
#undef STATE_WIRES
#undef STATE_GLASS
+4 -4
View File
@@ -130,6 +130,7 @@
if(circuit) //no circuit, no computer frame
var/obj/structure/computerframe/A = new /obj/structure/computerframe(loc)
var/obj/item/circuitboard/M = new circuit(A)
A.name += " ([M.board_name])"
A.setDir(dir)
A.circuit = M
A.anchored = TRUE
@@ -140,13 +141,12 @@
playsound(src, 'sound/effects/hit_on_shattered_glass.ogg', 70, TRUE)
new /obj/item/shard(drop_location())
new /obj/item/shard(drop_location())
A.state = 3
A.icon_state = "3"
A.state = 4
else
if(user)
to_chat(user, "<span class='notice'>You disconnect the monitor.</span>")
A.state = 4
A.icon_state = "4"
A.state = 5
A.update_icon()
for(var/obj/C in src)
C.forceMove(loc)
qdel(src)
+130 -132
View File
@@ -104,6 +104,7 @@
circuit = P
user.drop_item()
P.loc = src
name += " ([B.board_name])"
icon_state = "box_2"
state = 3
components = list()
@@ -133,6 +134,7 @@
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
name = initial(name)
desc = initial(desc)
req_components = null
components = null
@@ -223,61 +225,58 @@ Note: Once everything is added to the public areas, will add MAT_METAL and MAT_G
to destroy them and players will be able to make replacements.
*/
/obj/item/circuitboard/vendor
name = "circuit board (Booze-O-Mat Vendor)"
board_name = "Booze-O-Mat Vendor"
board_type = "machine"
origin_tech = "programming=1"
build_path = /obj/machinery/vending/boozeomat
req_components = list(/obj/item/vending_refill/boozeomat = 1)
var/static/list/vending_names_paths = list(
/obj/machinery/vending/boozeomat = "Booze-O-Mat",
/obj/machinery/vending/coffee = "Solar's Best Hot Drinks",
/obj/machinery/vending/snack = "Getmore Chocolate Corp",
/obj/machinery/vending/chinese = "Mr. Chang",
/obj/machinery/vending/cola = "Robust Softdrinks",
/obj/machinery/vending/cigarette = "ShadyCigs Deluxe",
/obj/machinery/vending/hatdispenser = "Hatlord 9000",
/obj/machinery/vending/suitdispenser = "Suitlord 9000",
/obj/machinery/vending/shoedispenser = "Shoelord 9000",
/obj/machinery/vending/autodrobe = "AutoDrobe",
/obj/machinery/vending/clothing = "ClothesMate",
/obj/machinery/vending/medical = "NanoMed Plus",
/obj/machinery/vending/wallmed = "NanoMed",
/obj/machinery/vending/assist = "Vendomat",
/obj/machinery/vending/engivend = "Engi-Vend",
/obj/machinery/vending/hydronutrients = "NutriMax",
/obj/machinery/vending/hydroseeds = "MegaSeed Servitor",
/obj/machinery/vending/sustenance = "Sustenance Vendor",
/obj/machinery/vending/dinnerware = "Plasteel Chef's Dinnerware Vendor",
/obj/machinery/vending/cart = "PTech",
/obj/machinery/vending/robotics = "Robotech Deluxe",
/obj/machinery/vending/engineering = "Robco Tool Maker",
/obj/machinery/vending/sovietsoda = "BODA",
/obj/machinery/vending/security = "SecTech",
/obj/machinery/vending/crittercare = "CritterCare")
"Booze-O-Mat" = /obj/machinery/vending/boozeomat,
"Solar's Best Hot Drinks" = /obj/machinery/vending/coffee,
"Getmore Chocolate Corp" = /obj/machinery/vending/snack,
"Mr. Chang" = /obj/machinery/vending/chinese,
"Robust Softdrinks" = /obj/machinery/vending/cola,
"ShadyCigs Deluxe" = /obj/machinery/vending/cigarette,
"Hatlord 9000" = /obj/machinery/vending/hatdispenser,
"Suitlord 9000" = /obj/machinery/vending/suitdispenser,
"Shoelord 9000" = /obj/machinery/vending/shoedispenser,
"AutoDrobe" = /obj/machinery/vending/autodrobe,
"ClothesMate" = /obj/machinery/vending/clothing,
"NanoMed Plus" = /obj/machinery/vending/medical,
"NanoMed" = /obj/machinery/vending/wallmed,
"Vendomat" = /obj/machinery/vending/assist,
"YouTool" = /obj/machinery/vending/tool,
"Engi-Vend" = /obj/machinery/vending/engivend,
"NutriMax" = /obj/machinery/vending/hydronutrients,
"MegaSeed Servitor" = /obj/machinery/vending/hydroseeds,
"Sustenance Vendor" = /obj/machinery/vending/sustenance,
"Plasteel Chef's Dinnerware Vendor" = /obj/machinery/vending/dinnerware,
"PTech" = /obj/machinery/vending/cart,
"Robotech Deluxe" = /obj/machinery/vending/robotics,
"Robco Tool Maker" = /obj/machinery/vending/engineering,
"BODA" = /obj/machinery/vending/sovietsoda,
"SecTech" = /obj/machinery/vending/security,
"CritterCare" = /obj/machinery/vending/crittercare)
/obj/item/circuitboard/vendor/screwdriver_act(mob/user, obj/item/I)
. = TRUE
if(!I.use_tool(src, user, 0, volume = I.tool_volume))
return
var/static/list/display_vending_names_paths
if(!display_vending_names_paths)
display_vending_names_paths = list()
for(var/path in vending_names_paths)
display_vending_names_paths[vending_names_paths[path]] = path
var/choice = input(user, "Choose a new brand","Select an Item") as null|anything in display_vending_names_paths
if(loc != user)
to_chat(user, "<span class='notice'>You need to keep [src] in your hands while doing that!</span>")
var/choice = input(user, "Choose a new brand", "Select an Item") as null|anything in vending_names_paths
if(!choice)
return
set_type(display_vending_names_paths[choice])
set_type(choice)
/obj/item/circuitboard/vendor/proc/set_type(obj/machinery/vending/typepath)
/obj/item/circuitboard/vendor/proc/set_type(type)
var/obj/machinery/vending/typepath = vending_names_paths[type]
build_path = typepath
name = "circuit board ([vending_names_paths[build_path]] Vendor)"
board_name = "[type] Vendor"
format_board_name()
req_components = list(initial(typepath.refill_canister) = 1)
/obj/item/circuitboard/smes
name = "circuit board (SMES)"
board_name = "SMES"
build_path = /obj/machinery/power/smes
board_type = "machine"
origin_tech = "programming=3;powerstorage=3;engineering=3"
@@ -287,7 +286,7 @@ to destroy them and players will be able to make replacements.
/obj/item/stock_parts/capacitor = 1)
/obj/item/circuitboard/emitter
name = "circuit board (Emitter)"
board_name = "Emitter"
build_path = /obj/machinery/power/emitter
board_type = "machine"
origin_tech = "programming=3;powerstorage=4;engineering=4"
@@ -296,7 +295,7 @@ to destroy them and players will be able to make replacements.
/obj/item/stock_parts/manipulator = 1)
/obj/item/circuitboard/power_compressor
name = "circuit board (Power Compressor)"
board_name = "Power Compressor"
build_path = /obj/machinery/power/compressor
board_type = "machine"
origin_tech = "programming=4;powerstorage=4;engineering=4"
@@ -305,7 +304,7 @@ to destroy them and players will be able to make replacements.
/obj/item/stock_parts/manipulator = 6)
/obj/item/circuitboard/power_turbine
name = "circuit board (Power Turbine)"
board_name = "Power Turbine"
build_path = /obj/machinery/power/turbine
board_type = "machine"
origin_tech = "programming=4;powerstorage=4;engineering=4"
@@ -314,7 +313,7 @@ to destroy them and players will be able to make replacements.
/obj/item/stock_parts/capacitor = 6)
/obj/item/circuitboard/thermomachine
name = "Thermomachine (Machine Board)"
board_name = "Thermomachine"
build_path = /obj/machinery/atmospherics/unary/thermomachine
board_type = "machine"
origin_tech = "programming=3;plasmatech=3"
@@ -325,14 +324,14 @@ to destroy them and players will be able to make replacements.
/obj/item/stack/sheet/glass = 1)
/obj/item/circuitboard/recharger
name = "circuit board (Recharger)"
board_name = "Recharger"
build_path = /obj/machinery/recharger
board_type = "machine"
origin_tech = "powerstorage=3;materials=2"
req_components = list(/obj/item/stock_parts/capacitor = 1)
/obj/item/circuitboard/snow_machine
name = "circuit board (snow machine)"
board_name = "Snow Machine"
build_path = /obj/machinery/snow_machine
board_type = "machine"
origin_tech = "programming=2;materials=2"
@@ -341,7 +340,7 @@ to destroy them and players will be able to make replacements.
/obj/item/stock_parts/micro_laser = 1)
/obj/item/circuitboard/biogenerator
name = "circuit board (Biogenerator)"
board_name = "Biogenerator"
build_path = /obj/machinery/biogenerator
board_type = "machine"
origin_tech = "programming=2;biotech=3;materials=3"
@@ -352,7 +351,7 @@ to destroy them and players will be able to make replacements.
/obj/item/stack/sheet/glass = 1)
/obj/item/circuitboard/plantgenes
name = "Plant DNA Manipulator (Machine Board)"
board_name = "Plant DNA Manipulator"
build_path = /obj/machinery/plantgenes
board_type = "machine"
origin_tech = "programming=3;biotech=3"
@@ -365,7 +364,7 @@ to destroy them and players will be able to make replacements.
/obj/item/circuitboard/plantgenes/vault
/obj/item/circuitboard/seed_extractor
name = "circuit board (Seed Extractor)"
board_name = "Seed Extractor"
build_path = /obj/machinery/seed_extractor
board_type = "machine"
origin_tech = "programming=1"
@@ -374,7 +373,7 @@ to destroy them and players will be able to make replacements.
/obj/item/stock_parts/manipulator = 1)
/obj/item/circuitboard/hydroponics
name = "circuit board (Hydroponics Tray)"
board_name = "Hydroponics Tray"
build_path = /obj/machinery/hydroponics/constructable
board_type = "machine"
origin_tech = "programming=1;biotech=2"
@@ -384,7 +383,7 @@ to destroy them and players will be able to make replacements.
/obj/item/stack/sheet/glass = 1)
/obj/item/circuitboard/microwave
name = "circuit board (Microwave)"
board_name = "Microwave"
build_path = /obj/machinery/kitchen_machine/microwave
board_type = "machine"
origin_tech = "programming=2;magnets=2"
@@ -394,7 +393,7 @@ to destroy them and players will be able to make replacements.
/obj/item/stack/sheet/glass = 1)
/obj/item/circuitboard/oven
name = "circuit board (Oven)"
board_name = "Oven"
build_path = /obj/machinery/kitchen_machine/oven
board_type = "machine"
origin_tech = "programming=2;magnets=2"
@@ -404,7 +403,7 @@ to destroy them and players will be able to make replacements.
/obj/item/stack/sheet/glass = 1)
/obj/item/circuitboard/grill
name = "circuit board (Grill)"
board_name = "Grill"
build_path = /obj/machinery/kitchen_machine/grill
board_type = "machine"
origin_tech = "programming=2;magnets=2"
@@ -414,7 +413,7 @@ to destroy them and players will be able to make replacements.
/obj/item/stack/sheet/glass = 1)
/obj/item/circuitboard/candy_maker
name = "circuit board (Candy Maker)"
board_name = "Candy Maker"
build_path = /obj/machinery/kitchen_machine/candy_maker
board_type = "machine"
origin_tech = "programming=2;magnets=2"
@@ -424,7 +423,7 @@ to destroy them and players will be able to make replacements.
/obj/item/stack/sheet/glass = 1)
/obj/item/circuitboard/deepfryer
name = "circuit board (Deep Fryer)"
board_name = "Deep Fryer"
build_path = /obj/machinery/cooker/deepfryer
board_type = "machine"
origin_tech = "programming=1"
@@ -433,7 +432,7 @@ to destroy them and players will be able to make replacements.
/obj/item/stack/cable_coil = 5)
/obj/item/circuitboard/gibber
name = "circuit board (Gibber)"
board_name = "Gibber"
build_path = /obj/machinery/gibber
board_type = "machine"
origin_tech = "programming=2;engineering=2"
@@ -442,7 +441,7 @@ to destroy them and players will be able to make replacements.
/obj/item/stock_parts/manipulator = 1)
/obj/item/circuitboard/tesla_coil
name = "circuit board (Tesla Coil)"
board_name = "Tesla Coil"
build_path = /obj/machinery/power/tesla_coil
board_type = "machine"
origin_tech = "programming=3;magnets=3;powerstorage=3"
@@ -450,7 +449,7 @@ to destroy them and players will be able to make replacements.
/obj/item/stock_parts/capacitor = 1)
/obj/item/circuitboard/grounding_rod
name = "circuit board (Grounding Rod)"
board_name = "Grounding Rod"
build_path = /obj/machinery/power/grounding_rod
board_type = "machine"
origin_tech = "programming=3;powerstorage=3;magnets=3;plasmatech=2"
@@ -458,7 +457,7 @@ to destroy them and players will be able to make replacements.
/obj/item/stock_parts/capacitor = 1)
/obj/item/circuitboard/processor
name = "circuit board (Food processor)"
board_name = "Food Processor"
build_path = /obj/machinery/processor
board_type = "machine"
origin_tech = "programming=1"
@@ -467,7 +466,7 @@ to destroy them and players will be able to make replacements.
/obj/item/stock_parts/manipulator = 1)
/obj/item/circuitboard/recycler
name = "circuit board (Recycler)"
board_name = "Recycler"
build_path = /obj/machinery/recycler
board_type = "machine"
origin_tech = "programming=2;engineering=2"
@@ -476,51 +475,49 @@ to destroy them and players will be able to make replacements.
/obj/item/stock_parts/manipulator = 1)
/obj/item/circuitboard/smartfridge
name = "circuit board (Smartfridge)"
board_name = "Smartfridge"
build_path = /obj/machinery/smartfridge
board_type = "machine"
origin_tech = "programming=1"
req_components = list(
/obj/item/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,
"disk compartmentalizer" = /obj/machinery/smartfridge/disks
)
var/static/list/fridge_names_paths = list(
"SmartFridge" = /obj/machinery/smartfridge,
"MegaSeed Servitor" = /obj/machinery/smartfridge/seeds,
"Refrigerated Medicine Storage" = /obj/machinery/smartfridge/medbay,
"Slime Extract Storage" = /obj/machinery/smartfridge/secure/extract,
"Secure Refrigerated Medicine Storage" = /obj/machinery/smartfridge/secure/medbay,
"Smart Chemical Storage" = /obj/machinery/smartfridge/secure/chemistry,
"Smart Virus Storage" = /obj/machinery/smartfridge/secure/chemistry/virology,
"Drink Showcase" = /obj/machinery/smartfridge/drinks,
"Disk Compartmentalizer" = /obj/machinery/smartfridge/disks)
/obj/item/circuitboard/smartfridge/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/screwdriver))
set_type(null, user)
/obj/item/circuitboard/smartfridge/screwdriver_act(mob/living/user, obj/item/I)
. = TRUE
if(!I.use_tool(src, user, 0, volume = I.tool_volume))
return
return ..()
var/choice = input(user, "Circuit Setting", "What would you change the board setting to?") as null|anything in fridge_names_paths
if(!choice)
return
set_type(user, choice)
/obj/item/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]
/obj/item/circuitboard/smartfridge/proc/set_type(mob/user, type)
if(!ispath(type))
board_name = type
type = fridge_names_paths[type]
else
for(var/name in fridge_names_paths)
if(fridge_names_paths[name] == typepath)
new_name = name
if(fridge_names_paths[name] == type)
board_name = name
break
build_path = typepath
name = new_name
if(findtextEx(new_name, "\improper"))
new_name = replacetext(new_name, "\improper", "")
build_path = type
format_board_name()
if(user)
to_chat(user, "<span class='notice'>You set the board to [new_name].</span>")
to_chat(user, "<span class='notice'>You set the board to [board_name].</span>")
/obj/item/circuitboard/monkey_recycler
name = "circuit board (Monkey Recycler)"
board_name = "Monkey Recycler"
build_path = /obj/machinery/monkey_recycler
board_type = "machine"
origin_tech = "programming=1;biotech=2"
@@ -529,7 +526,7 @@ to destroy them and players will be able to make replacements.
/obj/item/stock_parts/manipulator = 1)
/obj/item/circuitboard/holopad
name = "circuit board (AI Holopad)"
board_name = "AI Holopad"
build_path = /obj/machinery/hologram/holopad
board_type = "machine"
origin_tech = "programming=1"
@@ -537,7 +534,7 @@ to destroy them and players will be able to make replacements.
/obj/item/stock_parts/capacitor = 1)
/obj/item/circuitboard/chem_dispenser
name = "circuit board (Chem Dispenser)"
board_name = "Chem Dispenser"
build_path = /obj/machinery/chem_dispenser
board_type = "machine"
origin_tech = "materials=4;programming=4;plasmatech=4;biotech=3"
@@ -548,7 +545,7 @@ to destroy them and players will be able to make replacements.
/obj/item/stock_parts/cell = 1)
/obj/item/circuitboard/chem_master
name = "circuit board (ChemMaster 3000)"
board_name = "ChemMaster 3000"
build_path = /obj/machinery/chem_master
board_type = "machine"
origin_tech = "materials=3;programming=2;biotech=3"
@@ -573,11 +570,11 @@ to destroy them and players will be able to make replacements.
to_chat(user, "<span class='notice'>You change the circuit board setting to \"[new_name]\".</span>")
/obj/item/circuitboard/chem_master/condi_master
name = "circuit board (CondiMaster 3000)"
board_name = "CondiMaster 3000"
build_path = /obj/machinery/chem_master/condimaster
/obj/item/circuitboard/chem_heater
name = "circuit board (Chemical Heater)"
board_name = "Chemical Heater"
build_path = /obj/machinery/chem_heater
board_type = "machine"
origin_tech = "programming=2;engineering=2;biotech=2"
@@ -586,7 +583,7 @@ to destroy them and players will be able to make replacements.
/obj/item/stack/sheet/glass = 1)
/obj/item/circuitboard/reagentgrinder
name = "circuit board (All-In-One Grinder)"
board_name = "All-In-One Grinder"
build_path = /obj/machinery/reagentgrinder/empty
board_type = "machine"
origin_tech = "materials=2;engineering=2;biotech=2"
@@ -596,7 +593,7 @@ to destroy them and players will be able to make replacements.
//Almost the same recipe as destructive analyzer to give people choices.
/obj/item/circuitboard/experimentor
name = "circuit board (E.X.P.E.R.I-MENTOR)"
board_name = "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"
@@ -606,7 +603,7 @@ to destroy them and players will be able to make replacements.
/obj/item/stock_parts/micro_laser = 2)
/obj/item/circuitboard/destructive_analyzer
name = "Circuit board (Destructive Analyzer)"
board_name = "Destructive Analyzer"
build_path = /obj/machinery/r_n_d/destructive_analyzer
board_type = "machine"
origin_tech = "magnets=2;engineering=2;programming=2"
@@ -616,7 +613,7 @@ to destroy them and players will be able to make replacements.
/obj/item/stock_parts/micro_laser = 1)
/obj/item/circuitboard/autolathe
name = "Circuit board (Autolathe)"
board_name = "Autolathe"
build_path = /obj/machinery/autolathe
board_type = "machine"
origin_tech = "engineering=2;programming=2"
@@ -630,7 +627,7 @@ to destroy them and players will be able to make replacements.
build_path = /obj/machinery/autolathe/syndicate
/obj/item/circuitboard/protolathe
name = "Circuit board (Protolathe)"
board_name = "Protolathe"
build_path = /obj/machinery/r_n_d/protolathe
board_type = "machine"
origin_tech = "engineering=2;programming=2"
@@ -640,15 +637,15 @@ to destroy them and players will be able to make replacements.
/obj/item/reagent_containers/glass/beaker = 2)
/obj/item/circuitboard/chem_dispenser/soda
name = "Circuit board (Soda Machine)"
board_name = "Soda Machine"
build_path = /obj/machinery/chem_dispenser/soda
/obj/item/circuitboard/chem_dispenser/beer
name = "Circuit board (Beer Machine)"
board_name = "Beer Machine"
build_path = /obj/machinery/chem_dispenser/beer
/obj/item/circuitboard/circuit_imprinter
name = "Circuit board (Circuit Imprinter)"
board_name = "Circuit Imprinter"
build_path = /obj/machinery/r_n_d/circuit_imprinter
board_type = "machine"
origin_tech = "engineering=2;programming=2"
@@ -658,7 +655,7 @@ to destroy them and players will be able to make replacements.
/obj/item/reagent_containers/glass/beaker = 2)
/obj/item/circuitboard/pacman
name = "Circuit Board (PACMAN-type Generator)"
board_name = "PACMAN-type Generator"
build_path = /obj/machinery/power/port_gen/pacman
board_type = "machine"
origin_tech = "programming=2;powerstorage=3;plasmatech=3;engineering=3"
@@ -669,17 +666,17 @@ to destroy them and players will be able to make replacements.
/obj/item/stock_parts/capacitor = 1)
/obj/item/circuitboard/pacman/super
name = "Circuit Board (SUPERPACMAN-type Generator)"
board_name = "SUPERPACMAN-type Generator"
build_path = /obj/machinery/power/port_gen/pacman/super
origin_tech = "programming=3;powerstorage=4;engineering=4"
/obj/item/circuitboard/pacman/mrs
name = "Circuit Board (MRSPACMAN-type Generator)"
board_name = "MRSPACMAN-type Generator"
build_path = /obj/machinery/power/port_gen/pacman/mrs
origin_tech = "programming=3;powerstorage=4;engineering=4;plasmatech=4"
/obj/item/circuitboard/rdserver
name = "Circuit Board (R&D Server)"
board_name = "R&D Server"
build_path = /obj/machinery/r_n_d/server
board_type = "machine"
origin_tech = "programming=3"
@@ -688,7 +685,7 @@ to destroy them and players will be able to make replacements.
/obj/item/stock_parts/scanning_module = 1)
/obj/item/circuitboard/mechfab
name = "Circuit board (Exosuit Fabricator)"
board_name = "Exosuit Fabricator"
build_path = /obj/machinery/mecha_part_fabricator
board_type = "machine"
origin_tech = "programming=2;engineering=2"
@@ -699,7 +696,7 @@ to destroy them and players will be able to make replacements.
/obj/item/stack/sheet/glass = 1)
/obj/item/circuitboard/podfab
name = "Circuit board (Spacepod Fabricator)"
board_name = "Spacepod Fabricator"
build_path = /obj/machinery/mecha_part_fabricator/spacepod
board_type = "machine"
origin_tech = "programming=2;engineering=2"
@@ -711,7 +708,7 @@ to destroy them and players will be able to make replacements.
/obj/item/circuitboard/clonepod
name = "Circuit board (Clone Pod)"
board_name = "Clone Pod"
build_path = /obj/machinery/clonepod
board_type = "machine"
origin_tech = "programming=2;biotech=2"
@@ -722,7 +719,7 @@ to destroy them and players will be able to make replacements.
/obj/item/stack/sheet/glass = 1)
/obj/item/circuitboard/clonescanner
name = "Circuit board (Cloning Scanner)"
board_name = "Cloning Scanner"
build_path = /obj/machinery/dna_scannernew
board_type = "machine"
origin_tech = "programming=2;biotech=2"
@@ -734,7 +731,7 @@ to destroy them and players will be able to make replacements.
/obj/item/stack/cable_coil = 2,)
/obj/item/circuitboard/mech_recharger
name = "circuit board (Mech Bay Recharger)"
board_name = "Mech Bay Recharger"
build_path = /obj/machinery/mech_bay_recharge_port
board_type = "machine"
origin_tech = "programming=3;powerstorage=3;engineering=3"
@@ -743,7 +740,7 @@ to destroy them and players will be able to make replacements.
/obj/item/stock_parts/capacitor = 5)
/obj/item/circuitboard/teleporter_hub
name = "circuit board (Teleporter Hub)"
board_name = "Teleporter Hub"
build_path = /obj/machinery/teleport/hub
board_type = "machine"
origin_tech = "programming=3;engineering=4;bluespace=4;materials=4"
@@ -752,7 +749,7 @@ to destroy them and players will be able to make replacements.
/obj/item/stock_parts/matter_bin = 1)
/obj/item/circuitboard/teleporter_station
name = "circuit board (Teleporter Station)"
board_name = "Teleporter Station"
build_path = /obj/machinery/teleport/station
board_type = "machine"
origin_tech = "programming=4;engineering=4;bluespace=4;plasmatech=3"
@@ -762,7 +759,7 @@ to destroy them and players will be able to make replacements.
/obj/item/stack/sheet/glass = 1)
/obj/item/circuitboard/teleporter_perma
name = "circuit board (Permanent Teleporter)"
board_name = "Permanent Teleporter"
build_path = /obj/machinery/teleport/perma
board_type = "machine"
origin_tech = "programming=3;engineering=4;bluespace=4;materials=4"
@@ -781,7 +778,7 @@ to destroy them and players will be able to make replacements.
return ..()
/obj/item/circuitboard/telesci_pad
name = "Circuit board (Telepad)"
board_name = "Telepad"
build_path = /obj/machinery/telepad
board_type = "machine"
origin_tech = "programming=4;engineering=3;plasmatech=4;bluespace=4"
@@ -792,7 +789,7 @@ to destroy them and players will be able to make replacements.
/obj/item/stack/sheet/glass = 1)
/obj/item/circuitboard/quantumpad
name = "circuit board (Quantum Pad)"
board_name = "Quantum Pad"
build_path = /obj/machinery/quantumpad
board_type = "machine"
origin_tech = "programming=3;engineering=3;plasmatech=3;bluespace=4"
@@ -803,7 +800,7 @@ to destroy them and players will be able to make replacements.
/obj/item/stack/cable_coil = 1)
/obj/item/circuitboard/sleeper
name = "circuit board (Sleeper)"
board_name = "Sleeper"
build_path = /obj/machinery/sleeper
board_type = "machine"
origin_tech = "programming=3;biotech=2;engineering=3"
@@ -814,16 +811,16 @@ to destroy them and players will be able to make replacements.
/obj/item/stack/sheet/glass = 2)
/obj/item/circuitboard/sleeper/syndicate
name = "circuit board (Sleeper Syndicate)"
board_name = "Sleeper - Syndicate"
build_path = /obj/machinery/sleeper/syndie
/obj/item/circuitboard/sleeper/survival
name = "circuit board (Sleeper Survival Pod)"
board_name = "Sleeper - Survival Pod"
build_path = /obj/machinery/sleeper/survival_pod
/obj/item/circuitboard/bodyscanner
name = "circuit board (Body Scanner)"
board_name = "Body Scanner"
build_path = /obj/machinery/bodyscanner
board_type = "machine"
origin_tech = "programming=3;biotech=2;engineering=3"
@@ -833,7 +830,7 @@ to destroy them and players will be able to make replacements.
/obj/item/stack/sheet/glass = 2)
/obj/item/circuitboard/cryo_tube
name = "circuit board (Cryotube)"
board_name = "Cryotube"
build_path = /obj/machinery/atmospherics/unary/cryo_cell
board_type = "machine"
origin_tech = "programming=4;biotech=3;engineering=4;plasmatech=3"
@@ -843,7 +840,7 @@ to destroy them and players will be able to make replacements.
/obj/item/stack/sheet/glass = 4)
/obj/item/circuitboard/cyborgrecharger
name = "circuit board (Cyborg Recharger)"
board_name = "Cyborg Recharger"
build_path = /obj/machinery/recharge_station
board_type = "machine"
origin_tech = "powerstorage=3;engineering=3"
@@ -854,21 +851,22 @@ to destroy them and players will be able to make replacements.
// Telecomms circuit boards:
/obj/item/circuitboard/tcomms/relay
name = "Circuit Board (Telecommunications Relay)"
board_name = "Telecommunications Relay"
build_path = /obj/machinery/tcomms/relay
board_type = "machine"
origin_tech = "programming=2;engineering=2;bluespace=2"
req_components = list(/obj/item/stock_parts/manipulator = 2, /obj/item/stack/cable_coil = 2)
/obj/item/circuitboard/tcomms/core
name = "Circuit Board (Telecommunications Core)"
board_name = "Telecommunications Core"
build_path = /obj/machinery/tcomms/core
board_type = "machine"
origin_tech = "programming=2;engineering=2"
req_components = list(/obj/item/stock_parts/manipulator = 2, /obj/item/stack/cable_coil = 2)
// End telecomms circuit boards
/obj/item/circuitboard/ore_redemption
name = "circuit board (Ore Redemption)"
board_name = "Ore Redemption"
build_path = /obj/machinery/mineral/ore_redemption
board_type = "machine"
origin_tech = "programming=1;engineering=2"
@@ -880,15 +878,15 @@ to destroy them and players will be able to make replacements.
/obj/item/assembly/igniter = 1)
/obj/item/circuitboard/ore_redemption/golem
name = "circuit board (Golem Ore Redemption)"
board_name = "Ore Redemption - Golem"
build_path = /obj/machinery/mineral/ore_redemption/golem
/obj/item/circuitboard/ore_redemption/labor
name = "circuit board (Labor Ore Redemption)"
board_name = "Ore Redemption - Labour"
build_path = /obj/machinery/mineral/ore_redemption/labor
/obj/item/circuitboard/mining_equipment_vendor
name = "circuit board (Mining Equipment Vendor)"
board_name = "Mining Equipment Vendor"
build_path = /obj/machinery/mineral/equipment_vendor
board_type = "machine"
origin_tech = "programming=1;engineering=3"
@@ -897,15 +895,15 @@ to destroy them and players will be able to make replacements.
/obj/item/stock_parts/matter_bin = 3)
/obj/item/circuitboard/mining_equipment_vendor/golem
name = "circuit board (Mining Equipment Vendor)"
board_name = "Golem Equipment Vendor"
build_path = /obj/machinery/mineral/equipment_vendor/golem
/obj/item/circuitboard/mining_equipment_vendor/labor
name = "circuit board (Labor Equipment Vendor)"
board_name = "Labour Equipment Vendor"
build_path = /obj/machinery/mineral/equipment_vendor/labor
/obj/item/circuitboard/clawgame
name = "circuit board (Claw Game)"
board_name = "Claw Game"
build_path = /obj/machinery/arcade/claw
board_type = "machine"
origin_tech = "programming=1"
@@ -916,7 +914,7 @@ to destroy them and players will be able to make replacements.
/obj/item/stack/sheet/glass = 1)
/obj/item/circuitboard/prize_counter
name = "circuit board (Prize Counter)"
board_name = "Prize Counter"
build_path = /obj/machinery/prize_counter
board_type = "machine"
origin_tech = "programming=1"
@@ -927,7 +925,7 @@ to destroy them and players will be able to make replacements.
/obj/item/stack/cable_coil = 1)
/obj/item/circuitboard/gameboard
name = "circuit board (Virtual Gameboard)"
board_name = "Virtual Gameboard"
build_path = /obj/machinery/gameboard
board_type = "machine"
origin_tech = "programming=1"
+2 -2
View File
@@ -170,12 +170,12 @@
dispense_item(I)
/obj/item/circuitboard/cryopodcontrol
name = "Circuit board (Cryogenic Oversight Console)"
board_name = "Cryogenic Oversight Console"
build_path = "/obj/machinery/computer/cryopod"
origin_tech = "programming=1"
/obj/item/circuitboard/robotstoragecontrol
name = "Circuit board (Robotic Storage Console)"
board_name = "Robotic Storage Console"
build_path = "/obj/machinery/computer/cryopod/robot"
origin_tech = "programming=1"
+20 -205
View File
@@ -101,16 +101,24 @@
var/force_no_power_icon_state = FALSE
/obj/machinery/vending/Initialize(mapload)
. = ..()
var/build_inv = FALSE
if(!refill_canister)
build_inv = TRUE
. = ..()
else
component_parts = list()
var/obj/item/circuitboard/vendor/V = new
V.set_type(replacetext(name, "\improper", ""))
component_parts += V
component_parts += new refill_canister
RefreshParts()
wires = new(src)
if(build_inv) //non-constructable vending machine
build_inventory(products, product_records)
build_inventory(contraband, hidden_records)
build_inventory(premium, coin_records)
for (var/datum/data/vending_product/R in (product_records + coin_records + hidden_records))
for(var/datum/data/vending_product/R in (product_records + coin_records + hidden_records))
var/obj/item/I = R.product_path
var/pp = replacetext(replacetext("[R.product_path]", "/obj/item/", ""), "/", "-")
imagelist[pp] = "[icon2base64(icon(initial(I.icon), initial(I.icon_state)))]"
@@ -887,14 +895,6 @@
ads_list = list("Only the finest!","Have some tools.","The most robust equipment.","The finest gear in space!")
refill_canister = /obj/item/vending_refill/assist
/obj/machinery/vending/assist/Initialize(mapload)
component_parts = list()
var/obj/item/circuitboard/vendor/V = new(null)
V.set_type(type)
component_parts += V
component_parts += new /obj/item/vending_refill/assist(null)
RefreshParts()
return ..()
/obj/machinery/vending/boozeomat
name = "\improper Booze-O-Mat"
@@ -934,15 +934,6 @@
/obj/machinery/vending/boozeomat/syndicate_access
req_access = list(ACCESS_SYNDICATE)
/obj/machinery/vending/boozeomat/Initialize(mapload)
component_parts = list()
var/obj/item/circuitboard/vendor/V = new(null)
V.set_type(type)
component_parts += V
component_parts += new /obj/item/vending_refill/boozeomat(null)
RefreshParts()
return ..()
/obj/machinery/vending/coffee
name = "\improper Hot Drinks machine"
@@ -964,15 +955,6 @@
/obj/machinery/vending/coffee/free
prices = list()
/obj/machinery/vending/coffee/Initialize(mapload)
component_parts = list()
var/obj/item/circuitboard/vendor/V = new(null)
V.set_type(type)
component_parts += V
component_parts += new /obj/item/vending_refill/coffee(null)
RefreshParts()
return ..()
/obj/machinery/vending/coffee/item_slot_check(mob/user, obj/item/I)
if(!(istype(I, /obj/item/reagent_containers/glass) || istype(I, /obj/item/reagent_containers/food/drinks)))
return FALSE
@@ -1029,14 +1011,6 @@
/obj/machinery/vending/snack/free
prices = list()
/obj/machinery/vending/snack/Initialize(mapload)
component_parts = list()
var/obj/item/circuitboard/vendor/V = new(null)
V.set_type(type)
component_parts += V
component_parts += new /obj/item/vending_refill/snack(null)
RefreshParts()
return ..()
/obj/machinery/vending/chinese
name = "\improper Mr. Chang"
@@ -1052,14 +1026,6 @@
/obj/machinery/vending/chinese/free
prices = list()
/obj/machinery/vending/chinese/Initialize(mapload)
component_parts = list()
var/obj/item/circuitboard/vendor/V = new(null)
V.set_type(type)
component_parts += V
component_parts += new /obj/item/vending_refill/chinese(null)
RefreshParts()
return ..()
/obj/machinery/vending/cola
name = "\improper Robust Softdrinks"
@@ -1079,15 +1045,6 @@
/obj/machinery/vending/cola/free
prices = list()
/obj/machinery/vending/cola/Initialize(mapload)
component_parts = list()
var/obj/item/circuitboard/vendor/V = new(null)
V.set_type(type)
component_parts += V
component_parts += new /obj/item/vending_refill/cola(null)
RefreshParts()
return ..()
/obj/machinery/vending/cart
name = "\improper PTech"
@@ -1107,14 +1064,6 @@
/obj/machinery/vending/cart/free
prices = list()
/obj/machinery/vending/cart/Initialize(mapload)
component_parts = list()
var/obj/item/circuitboard/vendor/V = new(null)
V.set_type(type)
component_parts += V
component_parts += new /obj/item/vending_refill/cart(null)
RefreshParts()
return ..()
/obj/machinery/vending/liberationstation
name = "\improper Liberation Station"
@@ -1161,6 +1110,7 @@
armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50)
resistance_flags = FIRE_PROOF
/obj/machinery/vending/cigarette
name = "cigarette machine"
desc = "If you want to get cancer, might as well do it in style."
@@ -1190,6 +1140,7 @@
/obj/machinery/vending/cigarette/syndicate/free
prices = list()
/obj/machinery/vending/cigarette/beach //Used in the lavaland_biodome_beach.dmm ruin
name = "\improper ShadyCigs Ultra"
desc = "Now with extra premium products!"
@@ -1208,14 +1159,6 @@
/obj/item/lighter/zippo = 3)
prices = list()
/obj/machinery/vending/cigarette/Initialize(mapload)
component_parts = list()
var/obj/item/circuitboard/vendor/V = new(null)
V.set_type(type)
component_parts += V
component_parts += new /obj/item/vending_refill/cigarette(null)
RefreshParts()
return ..()
/obj/machinery/vending/medical
name = "\improper NanoMed Plus"
@@ -1242,14 +1185,6 @@
name = "\improper SyndiMed Plus"
req_access = list(ACCESS_SYNDICATE)
/obj/machinery/vending/medical/Initialize(mapload)
component_parts = list()
var/obj/item/circuitboard/vendor/V = new(null)
V.set_type(type)
component_parts += V
component_parts += new /obj/item/vending_refill/medical(null)
RefreshParts()
return ..()
/obj/machinery/vending/plasmaresearch
name = "\improper Toximate 3000"
@@ -1258,6 +1193,7 @@
/obj/item/wirecutters = 1, /obj/item/assembly/timer = 8)
contraband = list(/obj/item/flashlight = 5, /obj/item/assembly/voice = 3, /obj/item/assembly/health = 3, /obj/item/assembly/infra = 3)
/obj/machinery/vending/wallmed
name = "\improper NanoMed"
desc = "Wall-mounted Medical Equipment dispenser."
@@ -1271,14 +1207,6 @@
resistance_flags = FIRE_PROOF
refill_canister = /obj/item/vending_refill/wallmed
/obj/machinery/vending/wallmed/Initialize(mapload)
component_parts = list()
var/obj/item/circuitboard/vendor/V = new(null)
V.set_type(type)
component_parts += V
component_parts += new /obj/item/vending_refill/wallmed(null)
RefreshParts()
return ..()
/obj/machinery/vending/wallmed/syndicate
name = "\improper SyndiMed Plus"
@@ -1290,6 +1218,7 @@
products = list(/obj/item/stack/medical/bruise_pack = 2,/obj/item/stack/medical/ointment = 2,/obj/item/reagent_containers/hypospray/autoinjector = 4,/obj/item/healthanalyzer = 1)
contraband = list(/obj/item/reagent_containers/syringe/charcoal = 4,/obj/item/reagent_containers/syringe/antiviral = 4,/obj/item/reagent_containers/food/pill/tox = 1)
/obj/machinery/vending/security
name = "\improper SecTech"
desc = "A security equipment vendor."
@@ -1303,14 +1232,6 @@
contraband = list(/obj/item/clothing/glasses/sunglasses = 2,/obj/item/storage/fancy/donut_box = 2,/obj/item/hailer = 5)
refill_canister = /obj/item/vending_refill/security
/obj/machinery/vending/security/Initialize(mapload)
component_parts = list()
var/obj/item/circuitboard/vendor/V = new(null)
V.set_type(type)
component_parts += V
component_parts += new /obj/item/vending_refill/security(null)
RefreshParts()
return ..()
/obj/machinery/vending/hydronutrients
name = "\improper NutriMax"
@@ -1324,14 +1245,6 @@
contraband = list(/obj/item/reagent_containers/glass/bottle/ammonia = 10,/obj/item/reagent_containers/glass/bottle/diethylamine = 5)
refill_canister = /obj/item/vending_refill/hydronutrients
/obj/machinery/vending/hydronutrients/Initialize(mapload)
component_parts = list()
var/obj/item/circuitboard/vendor/V = new(null)
V.set_type(type)
component_parts += V
component_parts += new /obj/item/vending_refill/hydronutrients(null)
RefreshParts()
return ..()
/obj/machinery/vending/hydroseeds
name = "\improper MegaSeed Servitor"
@@ -1394,14 +1307,6 @@
premium = list(/obj/item/reagent_containers/spray/waterflower = 1)
refill_canister = /obj/item/vending_refill/hydroseeds
/obj/machinery/vending/hydroseeds/Initialize(mapload)
component_parts = list()
var/obj/item/circuitboard/vendor/V = new(null)
V.set_type(type)
component_parts += V
component_parts += new /obj/item/vending_refill/hydroseeds(null)
RefreshParts()
return ..()
/obj/machinery/vending/magivend
name = "\improper MagiVend"
@@ -1429,6 +1334,7 @@
armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50)
resistance_flags = FIRE_PROOF
/obj/machinery/vending/autodrobe
name = "\improper AutoDrobe"
desc = "A vending machine for costumes."
@@ -1564,14 +1470,6 @@
/obj/item/clothing/head/cuban_hat = 1)
refill_canister = /obj/item/vending_refill/autodrobe
/obj/machinery/vending/autodrobe/Initialize(mapload)
component_parts = list()
var/obj/item/circuitboard/vendor/V = new(null)
V.set_type(type)
component_parts += V
component_parts += new /obj/item/vending_refill/autodrobe(null)
RefreshParts()
return ..()
/obj/machinery/vending/dinnerware
name = "\improper Plasteel Chef's Dinnerware Vendor"
@@ -1602,14 +1500,6 @@
contraband = list(/obj/item/kitchen/rollingpin = 2, /obj/item/kitchen/knife/butcher = 2)
refill_canister = /obj/item/vending_refill/dinnerware
/obj/machinery/vending/dinnerware/Initialize(mapload)
component_parts = list()
var/obj/item/circuitboard/vendor/V = new(null)
V.set_type(type)
component_parts += V
component_parts += new /obj/item/vending_refill/dinnerware(null)
RefreshParts()
return ..()
/obj/machinery/vending/sovietsoda
name = "\improper BODA"
@@ -1621,14 +1511,6 @@
resistance_flags = FIRE_PROOF
refill_canister = /obj/item/vending_refill/sovietsoda
/obj/machinery/vending/sovietsoda/Initialize(mapload)
component_parts = list()
var/obj/item/circuitboard/vendor/V = new(null)
V.set_type(type)
component_parts += V
component_parts += new /obj/item/vending_refill/sovietsoda(null)
RefreshParts()
return ..()
/obj/machinery/vending/tool
name = "\improper YouTool"
@@ -1639,9 +1521,11 @@
/obj/item/wrench = 5,/obj/item/analyzer = 5,/obj/item/t_scanner = 5,/obj/item/screwdriver = 5)
contraband = list(/obj/item/weldingtool/hugetank = 2,/obj/item/clothing/gloves/color/fyellow = 2)
premium = list(/obj/item/clothing/gloves/color/yellow = 1)
refill_canister = /obj/item/vending_refill/youtool
armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 70)
resistance_flags = FIRE_PROOF
/obj/machinery/vending/engivend
name = "\improper Engi-Vend"
desc = "Spare tool vending. What? Did you expect some witty description?"
@@ -1653,14 +1537,6 @@
premium = list(/obj/item/storage/belt/utility = 3)
refill_canister = /obj/item/vending_refill/engivend
/obj/machinery/vending/engivend/Initialize(mapload)
component_parts = list()
var/obj/item/circuitboard/vendor/V = new(null)
V.set_type(type)
component_parts += V
component_parts += new /obj/item/vending_refill/engivend(null)
RefreshParts()
return ..()
/obj/machinery/vending/engineering
name = "\improper Robco Tool Maker"
@@ -1676,14 +1552,6 @@
/obj/item/stock_parts/matter_bin = 5,/obj/item/stock_parts/manipulator = 5)
refill_canister = /obj/item/vending_refill/engineering
/obj/machinery/vending/engineering/Initialize(mapload)
component_parts = list()
var/obj/item/circuitboard/vendor/V = new(null)
V.set_type(type)
component_parts += V
component_parts += new /obj/item/vending_refill/engineering(null)
RefreshParts()
return ..()
/obj/machinery/vending/robotics
name = "\improper Robotech Deluxe"
@@ -1697,14 +1565,6 @@
/obj/item/screwdriver = 5,/obj/item/crowbar = 5)
refill_canister = /obj/item/vending_refill/robotics
/obj/machinery/vending/robotics/Initialize(mapload)
component_parts = list()
var/obj/item/circuitboard/vendor/V = new(null)
V.set_type(type)
component_parts += V
component_parts += new /obj/item/vending_refill/robotics(null)
RefreshParts()
return ..()
/obj/machinery/vending/sustenance
name = "\improper Sustenance Vendor"
@@ -1721,14 +1581,6 @@
/obj/item/clothing/mask/breath = 6)
refill_canister = /obj/item/vending_refill/sustenance
/obj/machinery/vending/sustenance/Initialize(mapload)
component_parts = list()
var/obj/item/circuitboard/vendor/V = new(null)
V.set_type(type)
component_parts += V
component_parts += new /obj/item/vending_refill/sustenance(null)
RefreshParts()
return ..()
/obj/machinery/vending/hatdispenser
name = "\improper Hatlord 9000"
@@ -1745,14 +1597,6 @@
premium = list(/obj/item/clothing/head/soft/rainbow = 1)
refill_canister = /obj/item/vending_refill/hatdispenser
/obj/machinery/vending/hatdispenser/Initialize(mapload)
component_parts = list()
var/obj/item/circuitboard/vendor/V = new(null)
V.set_type(type)
component_parts += V
component_parts += new /obj/item/vending_refill/hatdispenser(null)
RefreshParts()
return ..()
/obj/machinery/vending/suitdispenser
name = "\improper Suitlord 9000"
@@ -1766,14 +1610,6 @@
premium = list(/obj/item/clothing/under/rainbow = 1)
refill_canister = /obj/item/vending_refill/suitdispenser
/obj/machinery/vending/suitdispenser/Initialize(mapload)
component_parts = list()
var/obj/item/circuitboard/vendor/V = new(null)
V.set_type(type)
component_parts += V
component_parts += new /obj/item/vending_refill/suitdispenser(null)
RefreshParts()
return ..()
/obj/machinery/vending/shoedispenser
name = "\improper Shoelord 9000"
@@ -1785,14 +1621,6 @@
premium = list(/obj/item/clothing/shoes/rainbow = 1)
refill_canister = /obj/item/vending_refill/shoedispenser
/obj/machinery/vending/shoedispenser/Initialize(mapload)
component_parts = list()
var/obj/item/circuitboard/vendor/V = new(null)
V.set_type(type)
component_parts += V
component_parts += new /obj/item/vending_refill/shoedispenser(null)
RefreshParts()
return ..()
/obj/machinery/vending/syndicigs
name = "\improper Suspicious Cigarette Machine"
@@ -1803,6 +1631,7 @@
icon_state = "cigs"
products = list(/obj/item/storage/fancy/cigarettes/syndicate = 10,/obj/item/lighter/random = 5)
/obj/machinery/vending/syndisnack
name = "\improper Getmore Chocolate Corp"
desc = "A modified snack machine courtesy of the Getmore Chocolate Corporation, based out of Mars"
@@ -1812,6 +1641,7 @@
products = list(/obj/item/reagent_containers/food/snacks/chips =6,/obj/item/reagent_containers/food/snacks/sosjerky = 6,
/obj/item/reagent_containers/food/snacks/syndicake = 6, /obj/item/reagent_containers/food/snacks/cheesiehonkers = 6)
//don't forget to change the refill size if you change the machine's contents!
/obj/machinery/vending/clothing
name = "\improper ClothesMate" //renamed to make the slogan rhyme
@@ -1907,14 +1737,6 @@
refill_canister = /obj/item/vending_refill/clothing
/obj/machinery/vending/clothing/Initialize(mapload)
component_parts = list()
var/obj/item/circuitboard/vendor/V = new(null)
V.set_type(type)
component_parts += V
component_parts += new /obj/item/vending_refill/clothing(null)
RefreshParts()
return ..()
/obj/machinery/vending/artvend
name = "\improper ArtVend"
@@ -1931,6 +1753,7 @@
contraband = list(/obj/item/toy/crayon/mime = 1,/obj/item/toy/crayon/rainbow = 1)
premium = list(/obj/item/poster/random_contraband = 5)
/obj/machinery/vending/crittercare
name = "\improper CritterCare"
desc = "A vending machine for pet supplies."
@@ -1955,11 +1778,3 @@
/obj/machinery/vending/crittercare/free
prices = list()
/obj/machinery/vending/crittercare/Initialize(mapload)
component_parts = list()
var/obj/item/circuitboard/vendor/V = new(null)
V.set_type(type)
component_parts += V
component_parts += new /obj/item/vending_refill/crittercare(null)
RefreshParts()
return ..()
+44 -40
View File
@@ -347,117 +347,121 @@
///////// Circuitboards
/obj/item/circuitboard/mecha
name = "Exosuit Circuit board"
icon = 'icons/obj/module.dmi'
icon_state = "std_mod"
item_state = "electronic"
board_type = "other"
flags = CONDUCT
force = 5.0
w_class = WEIGHT_CLASS_SMALL
throwforce = 5.0
force = 5
throwforce = 5
throw_speed = 3
throw_range = 15
/obj/item/circuitboard/mecha/ripley
origin_tech = "programming=2"
/obj/item/circuitboard/mecha/ripley/main
board_name = "Ripley Central Control Module"
icon_state = "mainboard"
/obj/item/circuitboard/mecha/ripley/peripherals
name = "Circuit board (Ripley Peripherals Control module)"
board_name = "Ripley Peripherals Control Module"
icon_state = "mcontroller"
/obj/item/circuitboard/mecha/ripley/main
name = "Circuit board (Ripley Central Control module)"
icon_state = "mainboard"
/obj/item/circuitboard/mecha/gygax
origin_tech = "programming=4;combat=3;engineering=3"
/obj/item/circuitboard/mecha/gygax/main
board_name = "Gygax Central Control Module"
icon_state = "mainboard"
/obj/item/circuitboard/mecha/gygax/peripherals
name = "Circuit board (Gygax Peripherals Control module)"
board_name = "Gygax Peripherals Control Module"
icon_state = "mcontroller"
/obj/item/circuitboard/mecha/gygax/targeting
name = "Circuit board (Gygax Weapon Control and Targeting module)"
board_name = "Gygax Weapon Control and Targeting Module"
icon_state = "mcontroller"
origin_tech = "programming=4;combat=4"
/obj/item/circuitboard/mecha/gygax/main
name = "Circuit board (Gygax Central Control module)"
icon_state = "mainboard"
/obj/item/circuitboard/mecha/durand
origin_tech = "programming=4;combat=3;engineering=3"
/obj/item/circuitboard/mecha/durand/main
board_name = "Durand Central Control Module"
icon_state = "mainboard"
/obj/item/circuitboard/mecha/durand/peripherals
name = "Circuit board (Durand Peripherals Control module)"
board_name = "Durand Peripherals Control Module"
icon_state = "mcontroller"
/obj/item/circuitboard/mecha/durand/targeting
name = "Circuit board (Durand Weapon Control and Targeting module)"
board_name = "Durand Weapon Control and Targeting Module"
icon_state = "mcontroller"
origin_tech = "programming=4;combat=4;engineering=3"
/obj/item/circuitboard/mecha/durand/main
name = "Circuit board (Durand Central Control module)"
icon_state = "mainboard"
/obj/item/circuitboard/mecha/phazon
origin_tech = "programming=5;plasmatech=4"
/obj/item/circuitboard/mecha/phazon/main
board_name = "Phazon Central Control Module"
icon_state = "mainboard"
/obj/item/circuitboard/mecha/phazon/peripherals
name = "Circuit board (Phazon Peripherals Control module)"
board_name = "Phazon Peripherals Control Module"
icon_state = "mcontroller"
/obj/item/circuitboard/mecha/phazon/targeting
name = "Circuit board (Phazon Weapon Control and Targeting module)"
board_name = "Phazon Weapon Control and Targeting Module"
icon_state = "mcontroller"
/obj/item/circuitboard/mecha/phazon/main
name = "Circuit board (Phazon Central Control module)"
icon_state = "mainboard"
/obj/item/circuitboard/mecha/honker
origin_tech = "programming=3;engineering=3"
/obj/item/circuitboard/mecha/honker/main
board_name = "H.O.N.K Central Control Module"
icon_state = "mainboard"
/obj/item/circuitboard/mecha/honker/peripherals
name = "Circuit board (H.O.N.K Peripherals Control module)"
board_name = "H.O.N.K Peripherals Control Module"
icon_state = "mcontroller"
/obj/item/circuitboard/mecha/honker/targeting
name = "Circuit board (H.O.N.K Weapon Control and Targeting module)"
board_name = "H.O.N.K Weapon Control and Targeting Module"
icon_state = "mcontroller"
/obj/item/circuitboard/mecha/honker/main
name = "Circuit board (H.O.N.K Central Control module)"
icon_state = "mainboard"
/obj/item/circuitboard/mecha/reticence
origin_tech = "programming=3;engineering=3"
/obj/item/circuitboard/mecha/reticence/main
board_name = "Reticence Central Control Module"
icon_state = "mainboard"
/obj/item/circuitboard/mecha/reticence/peripherals
name = "circuit board (Reticence Peripherals Control module)"
board_name = "Reticence Peripherals Control Module"
icon_state = "mcontroller"
/obj/item/circuitboard/mecha/reticence/targeting
name = "circuit board (Reticence Weapon Control and Targeting module)"
board_name = "Reticence Weapon Control and Targeting Module"
icon_state = "mcontroller"
/obj/item/circuitboard/mecha/reticence/main
name = "circuit board (Reticence Central Control module)"
icon_state = "mainboard"
/obj/item/circuitboard/mecha/odysseus
origin_tech = "programming=3;biotech=3"
/obj/item/circuitboard/mecha/odysseus/main
board_name = "Odysseus Central Control Module"
icon_state = "mainboard"
/obj/item/circuitboard/mecha/odysseus/peripherals
name = "Circuit board (Odysseus Peripherals Control module)"
board_name = "Odysseus Peripherals Control Module"
icon_state = "mcontroller"
/obj/item/circuitboard/mecha/odysseus/main
name = "Circuit board (Odysseus Central Control module)"
icon_state = "mainboard"
/obj/item/circuitboard/mecha/pod
name = "Circuit board (Space Pod Mainboard)"
board_name = "Space Pod Mainboard"
icon_state = "mainboard"
@@ -114,6 +114,10 @@
machine_name = "Robco Tool Maker"
icon_state = "refill_engi"
/obj/item/vending_refill/youtool
machine_name = "YouTool"
icon_state = "refill_engi"
/obj/item/vending_refill/engivend
machine_name = "Engi-Vend"
icon_state = "refill_engi"
@@ -45,7 +45,7 @@
// Components
component_parts = list()
var/obj/item/circuitboard/smartfridge/board = new(null)
board.set_type(type)
board.set_type(null, type)
component_parts += board
component_parts += new /obj/item/stock_parts/matter_bin(null)
RefreshParts()
+1 -1
View File
@@ -42,7 +42,7 @@
product_cost = cost
/obj/item/circuitboard/machine/bluespace_tap
name = "Bluespace Harvester (Machine Board)"
board_name = "Bluespace Harvester"
build_path = /obj/machinery/power/bluespace_tap
origin_tech = "engineering=2;combat=2;bluespace=3"
req_components = list(
+4 -4
View File
@@ -225,7 +225,7 @@
last_fire_time = world.time / 10
/obj/item/circuitboard/machine/bsa/back
name = "Bluespace Artillery Generator (Machine Board)"
board_name = "Bluespace Artillery Generator"
build_path = /obj/machinery/bsa/back
origin_tech = "engineering=2;combat=2;bluespace=2" //No freebies!
req_components = list(
@@ -233,7 +233,7 @@
/obj/item/stack/cable_coil = 2)
/obj/item/circuitboard/machine/bsa/middle
name = "Bluespace Artillery Fusor (Machine Board)"
board_name = "Bluespace Artillery Fusor"
build_path = /obj/machinery/bsa/middle
origin_tech = "engineering=2;combat=2;bluespace=2"
req_components = list(
@@ -241,7 +241,7 @@
/obj/item/stack/cable_coil = 2)
/obj/item/circuitboard/machine/bsa/front
name = "Bluespace Artillery Bore (Machine Board)"
board_name = "Bluespace Artillery Bore"
build_path = /obj/machinery/bsa/front
origin_tech = "engineering=2;combat=2;bluespace=2"
req_components = list(
@@ -249,7 +249,7 @@
/obj/item/stack/cable_coil = 2)
/obj/item/circuitboard/computer/bsa_control
name = "Bluespace Artillery Controls (Computer Board)"
board_name = "Bluespace Artillery Controls"
build_path = /obj/machinery/computer/bsa_control
origin_tech = "engineering=2;combat=2;bluespace=2"
+1 -1
View File
@@ -121,7 +121,7 @@ GLOBAL_LIST_INIT(non_simple_animals, typecacheof(list(/mob/living/carbon/human/m
/obj/item/circuitboard/machine/dna_vault
name = "DNA Vault (Machine Board)"
board_name = "DNA Vault"
build_path = /obj/machinery/dna_vault
origin_tech = "engineering=2;combat=2;bluespace=2" //No freebies!
req_components = list(
+1 -1
View File
@@ -35,7 +35,7 @@
return coverage.len
/obj/item/circuitboard/computer/sat_control
name = "Satellite Network Control (Computer Board)"
board_name = "Satellite Network Control"
build_path = /obj/machinery/computer/sat_control
origin_tech = "engineering=3"
Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB