mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2026-01-03 05:52:17 +00:00
Revert "Frame Cleanup"
This commit is contained in:
@@ -24,6 +24,7 @@
|
||||
/obj/machinery/atmospherics/unary/freezer/New()
|
||||
..()
|
||||
initialize_directions = dir
|
||||
circuit = new circuit(src)
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/weapon/stock_parts/matter_bin(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/capacitor(src)
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
/obj/machinery/atmospherics/unary/heater/New()
|
||||
..()
|
||||
initialize_directions = dir
|
||||
circuit = new circuit(src)
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/weapon/stock_parts/matter_bin(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/capacitor(src)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
name = "Sleeper Console"
|
||||
icon = 'icons/obj/Cryogenic2.dmi'
|
||||
icon_state = "sleeperconsole"
|
||||
var/obj/machinery/sleeper/sleeper
|
||||
var/obj/machinery/sleeper/connected = null
|
||||
anchored = 1 //About time someone fixed this.
|
||||
density = 0
|
||||
dir = 8
|
||||
@@ -11,19 +11,21 @@
|
||||
interact_offline = 1
|
||||
circuit = /obj/item/weapon/circuitboard/sleeper_console
|
||||
|
||||
//obj/machinery/sleep_console/New()
|
||||
//..()
|
||||
//spawn( 5 )
|
||||
//src.connected = locate(/obj/machinery/sleeper, get_step(src, WEST)) //We assume dir = 8 so sleeper is WEST. Other sprites do exist.
|
||||
//return
|
||||
//return
|
||||
|
||||
/obj/machinery/sleep_console/New()
|
||||
..()
|
||||
findsleeper()
|
||||
|
||||
/obj/machinery/sleep_console/proc/findsleeper()
|
||||
spawn( 5 )
|
||||
var/obj/machinery/sleeper/sleepernew = null
|
||||
for(dir in list(NORTH,EAST,SOUTH,WEST)) // Loop through every direction
|
||||
sleepernew = locate(/obj/machinery/sleeper, get_step(src, dir)) // Try to find a scanner in that direction
|
||||
if(sleepernew)
|
||||
sleeper = sleepernew
|
||||
sleepernew.console = src
|
||||
spawn(5)
|
||||
//src.machine = locate(/obj/machinery/mineral/processing_unit, get_step(src, machinedir))
|
||||
src.connected = locate(/obj/machinery/sleeper) in range(2,src)
|
||||
return
|
||||
return
|
||||
|
||||
|
||||
/obj/machinery/sleep_console/attack_ai(var/mob/user)
|
||||
return attack_hand(user)
|
||||
@@ -31,18 +33,39 @@
|
||||
/obj/machinery/sleep_console/attack_hand(var/mob/user)
|
||||
if(..())
|
||||
return 1
|
||||
if(!sleeper)
|
||||
findsleeper()
|
||||
if(sleeper)
|
||||
return sleeper.ui_interact(user)
|
||||
else
|
||||
user << "<span class='warning'>Sleeper not found!</span>"
|
||||
if(connected)
|
||||
connected.ui_interact(user)
|
||||
|
||||
/obj/machinery/sleep_console/attackby(var/obj/item/I, var/mob/user)
|
||||
if(computer_deconstruction_screwdriver(user, I))
|
||||
return
|
||||
if(istype(I, /obj/item/weapon/screwdriver) && circuit)
|
||||
user << "<span class='notice'>You start disconnecting the monitor.</span>"
|
||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
||||
if(do_after(user, 20))
|
||||
var/obj/structure/frame/A = new /obj/structure/frame( src.loc )
|
||||
var/obj/item/weapon/circuitboard/M = new circuit( A )
|
||||
A.circuit = M
|
||||
A.anchored = 1
|
||||
A.density = 1
|
||||
A.frame_type = M.board_type
|
||||
for (var/obj/C in src)
|
||||
C.forceMove(loc)
|
||||
if (src.stat & BROKEN)
|
||||
user << "<span class='notice'>The broken glass falls out.</span>"
|
||||
new /obj/item/weapon/material/shard( src.loc )
|
||||
A.state = 3
|
||||
A.icon_state = "[A.frame_type]_3"
|
||||
else
|
||||
user << "<span class='notice'>You disconnect the monitor.</span>"
|
||||
A.state = 4
|
||||
A.icon_state = "[A.frame_type]_4"
|
||||
A.pixel_x = pixel_x
|
||||
A.pixel_y = pixel_y
|
||||
A.dir = dir
|
||||
M.deconstruct(src)
|
||||
qdel(src)
|
||||
else
|
||||
return attack_hand(user)
|
||||
src.attack_hand(user)
|
||||
return
|
||||
|
||||
/obj/machinery/sleep_console/power_change()
|
||||
..()
|
||||
@@ -63,7 +86,6 @@
|
||||
var/list/available_chemicals = list("inaprovaline" = "Inaprovaline", "stoxin" = "Soporific", "paracetamol" = "Paracetamol", "anti_toxin" = "Dylovene", "dexalin" = "Dexalin")
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker = null
|
||||
var/filtering = 0
|
||||
var/obj/machinery/sleep_console/console
|
||||
|
||||
use_power = 1
|
||||
idle_power_usage = 15
|
||||
@@ -72,6 +94,7 @@
|
||||
/obj/machinery/sleeper/New()
|
||||
..()
|
||||
beaker = new /obj/item/weapon/reagent_containers/glass/beaker/large(src)
|
||||
circuit = new circuit(src)
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/weapon/stock_parts/scanning_module(src)
|
||||
component_parts += new /obj/item/weapon/reagent_containers/glass/beaker(src)
|
||||
@@ -81,6 +104,14 @@
|
||||
component_parts += new /obj/item/weapon/reagent_containers/syringe(src)
|
||||
component_parts += new /obj/item/weapon/reagent_containers/syringe(src)
|
||||
component_parts += new /obj/item/stack/material/glass/reinforced(src, 2)
|
||||
|
||||
spawn(5)
|
||||
//src.machine = locate(/obj/machinery/mineral/processing_unit, get_step(src, machinedir))
|
||||
var/obj/machinery/sleep_console/C = locate(/obj/machinery/sleep_console) in range(2,src)
|
||||
if(C)
|
||||
C.connected = src
|
||||
return
|
||||
|
||||
RefreshParts()
|
||||
|
||||
/obj/machinery/sleeper/initialize()
|
||||
@@ -177,12 +208,12 @@
|
||||
return 1
|
||||
|
||||
/obj/machinery/sleeper/attackby(var/obj/item/I, var/mob/user)
|
||||
add_fingerprint(user)
|
||||
if(default_deconstruction_screwdriver(user, I))
|
||||
return
|
||||
else if(default_deconstruction_crowbar(user, I))
|
||||
if(default_deconstruction_crowbar(user, I))
|
||||
return
|
||||
else if(istype(I, /obj/item/weapon/reagent_containers/glass))
|
||||
add_fingerprint(user)
|
||||
if(istype(I, /obj/item/weapon/reagent_containers/glass))
|
||||
if(!beaker)
|
||||
beaker = I
|
||||
user.drop_item()
|
||||
@@ -252,21 +283,21 @@
|
||||
if(occupant.client)
|
||||
occupant.client.eye = occupant.client.mob
|
||||
occupant.client.perspective = MOB_PERSPECTIVE
|
||||
occupant.loc = src.loc
|
||||
occupant.loc = loc
|
||||
occupant = null
|
||||
for(var/atom/movable/A in src) // In case an object was dropped inside or something
|
||||
if(A == beaker || A == circuit)
|
||||
continue
|
||||
if(A in component_parts)
|
||||
continue
|
||||
A.loc = src.loc
|
||||
A.loc = loc
|
||||
update_use_power(1)
|
||||
update_icon()
|
||||
toggle_filter()
|
||||
|
||||
/obj/machinery/sleeper/proc/remove_beaker()
|
||||
if(beaker)
|
||||
beaker.loc = src.loc
|
||||
beaker.loc = loc
|
||||
beaker = null
|
||||
toggle_filter()
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
// Pretty much everything here is stolen from the dna scanner FYI
|
||||
|
||||
|
||||
/obj/machinery/bodyscanner
|
||||
var/mob/living/carbon/occupant
|
||||
var/locked
|
||||
@@ -8,15 +9,25 @@
|
||||
icon_state = "body_scanner_0"
|
||||
density = 1
|
||||
anchored = 1
|
||||
|
||||
circuit = /obj/item/weapon/circuitboard/body_scanner
|
||||
|
||||
use_power = 1
|
||||
idle_power_usage = 60
|
||||
active_power_usage = 10000 //10 kW. It's a big all-body scanner.
|
||||
|
||||
light_color = "#00FF00"
|
||||
var/obj/machinery/body_scanconsole/console
|
||||
|
||||
/obj/machinery/bodyscanner/New()
|
||||
..()
|
||||
spawn( 5 )
|
||||
var/obj/machinery/body_scanconsole/C = locate(/obj/machinery/body_scanconsole) in range(2,src)
|
||||
if(C)
|
||||
C.connected = src
|
||||
|
||||
/obj/machinery/bodyscanner/map/New()
|
||||
..()
|
||||
circuit = new circuit(src)
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/weapon/stock_parts/scanning_module(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/scanning_module(src)
|
||||
@@ -34,9 +45,10 @@
|
||||
/obj/machinery/bodyscanner/attackby(var/obj/item/G, user as mob)
|
||||
if(default_deconstruction_screwdriver(user, G))
|
||||
return
|
||||
else if(default_deconstruction_crowbar(user, G))
|
||||
if(default_deconstruction_crowbar(user, G))
|
||||
return
|
||||
else if(istype(G, /obj/item/weapon/grab))
|
||||
|
||||
if(istype(G, /obj/item/weapon/grab))
|
||||
var/obj/item/weapon/grab/H = G
|
||||
if(panel_open)
|
||||
user << "<span class='notice'>Close the maintenance panel first.</span>"
|
||||
@@ -59,8 +71,6 @@
|
||||
icon_state = "body_scanner_1"
|
||||
add_fingerprint(user)
|
||||
qdel(G)
|
||||
else
|
||||
return
|
||||
|
||||
/obj/machinery/bodyscanner/MouseDrop_T(mob/living/carbon/O, mob/user as mob)
|
||||
if(!istype(O))
|
||||
@@ -159,6 +169,7 @@
|
||||
|
||||
//Body Scan Console
|
||||
/obj/machinery/body_scanconsole
|
||||
var/obj/machinery/bodyscanner/connected
|
||||
var/known_implants = list(/obj/item/weapon/implant/chem, /obj/item/weapon/implant/death_alarm, /obj/item/weapon/implant/loyalty, /obj/item/weapon/implant/tracking)
|
||||
var/delete
|
||||
var/temphtml
|
||||
@@ -171,30 +182,41 @@
|
||||
circuit = /obj/item/weapon/circuitboard/scanner_console
|
||||
var/printing = null
|
||||
var/printing_text = null
|
||||
var/obj/machinery/bodyscanner/scanner
|
||||
|
||||
/obj/machinery/body_scanconsole/New()
|
||||
..()
|
||||
findscanner()
|
||||
|
||||
/obj/machinery/body_scanconsole/attackby(var/obj/item/I, var/mob/user)
|
||||
if(computer_deconstruction_screwdriver(user, I))
|
||||
return
|
||||
else if(istype(I, /obj/item/device/multitool)) //Did you want to link it?
|
||||
var/obj/item/device/multitool/P = I
|
||||
if(P.connectable)
|
||||
if(istype(P.connectable, /obj/machinery/bodyscanner))
|
||||
var/obj/machinery/bodyscanner/C = P.connectable
|
||||
scanner = C
|
||||
C.console = src
|
||||
user << "<span class='warning'> You link the [src] to the [P.connectable]!</span>"
|
||||
else
|
||||
user << "<span class='warning'> You store the [src] in the [P]'s buffer!</span>"
|
||||
P.connectable = src
|
||||
return
|
||||
if(istype(I, /obj/item/weapon/screwdriver) && circuit)
|
||||
user << "<span class='notice'>You start disconnecting the monitor.</span>"
|
||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
||||
if(do_after(user, 20))
|
||||
var/obj/structure/frame/A = new /obj/structure/frame( src.loc )
|
||||
var/obj/item/weapon/circuitboard/M = new circuit( A )
|
||||
A.circuit = M
|
||||
A.anchored = 1
|
||||
A.density = 1
|
||||
A.frame_type = M.board_type
|
||||
for (var/obj/C in src)
|
||||
C.forceMove(loc)
|
||||
if (src.stat & BROKEN)
|
||||
user << "<span class='notice'>The broken glass falls out.</span>"
|
||||
new /obj/item/weapon/material/shard( src.loc )
|
||||
A.state = 3
|
||||
A.icon_state = "[A.frame_type]_3"
|
||||
else
|
||||
user << "<span class='notice'>You disconnect the monitor.</span>"
|
||||
A.state = 4
|
||||
A.icon_state = "[A.frame_type]_4"
|
||||
A.pixel_x = pixel_x
|
||||
A.pixel_y = pixel_y
|
||||
A.dir = dir
|
||||
M.deconstruct(src)
|
||||
qdel(src)
|
||||
else
|
||||
src.attack_hand(user)
|
||||
return
|
||||
return
|
||||
|
||||
/obj/machinery/body_scanconsole/power_change()
|
||||
if(stat & BROKEN)
|
||||
@@ -204,7 +226,7 @@
|
||||
stat &= ~NOPOWER
|
||||
else
|
||||
spawn(rand(0, 15))
|
||||
icon_state = "body_scannerconsole-p"
|
||||
src.icon_state = "body_scannerconsole-p"
|
||||
stat |= NOPOWER
|
||||
|
||||
/obj/machinery/body_scanconsole/ex_act(severity)
|
||||
@@ -224,11 +246,11 @@
|
||||
/obj/machinery/body_scanconsole/proc/findscanner()
|
||||
spawn( 5 )
|
||||
var/obj/machinery/bodyscanner/bodyscannernew = null
|
||||
for(dir in list(NORTH,EAST,SOUTH,WEST)) // Loop through every direction
|
||||
bodyscannernew = locate(/obj/machinery/bodyscanner, get_step(src, dir)) // Try to find a scanner in that direction
|
||||
if(bodyscannernew)
|
||||
scanner = bodyscannernew
|
||||
bodyscannernew.console = src
|
||||
// Loop through every direction
|
||||
for(dir in list(NORTH,EAST,SOUTH,WEST))
|
||||
// Try to find a scanner in that direction
|
||||
bodyscannernew = locate(/obj/machinery/bodyscanner, get_step(src, dir))
|
||||
src.connected = bodyscannernew
|
||||
return
|
||||
|
||||
/obj/machinery/body_scanconsole/attack_ai(user as mob)
|
||||
@@ -245,22 +267,22 @@
|
||||
user << "<span class='notice'>Close the maintenance panel first.</span>"
|
||||
return
|
||||
|
||||
if(!scanner)
|
||||
user << "<span class='warning'>Scanner not found!</span>"
|
||||
if(!src.connected)
|
||||
findscanner()
|
||||
|
||||
ui_interact(user)
|
||||
|
||||
/obj/machinery/body_scanconsole/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
|
||||
var/data[0]
|
||||
|
||||
data["connected"] = scanner ? 1 : 0
|
||||
data["connected"] = connected ? 1 : 0
|
||||
|
||||
if(scanner)
|
||||
data["occupied"] = scanner.occupant ? 1 : 0
|
||||
if(connected)
|
||||
data["occupied"] = connected.occupant ? 1 : 0
|
||||
|
||||
var/occupantData[0]
|
||||
if(scanner.occupant && ishuman(scanner.occupant))
|
||||
var/mob/living/carbon/human/H = scanner.occupant
|
||||
if(connected.occupant && ishuman(connected.occupant))
|
||||
var/mob/living/carbon/human/H = connected.occupant
|
||||
occupantData["name"] = H.name
|
||||
occupantData["stat"] = H.stat
|
||||
occupantData["health"] = H.health
|
||||
@@ -398,8 +420,8 @@
|
||||
/obj/machinery/body_scanconsole/proc/generate_printing_text()
|
||||
var/dat = ""
|
||||
|
||||
if(scanner)
|
||||
var/mob/living/carbon/human/occupant = scanner.occupant
|
||||
if(connected)
|
||||
var/mob/living/carbon/human/occupant = connected.occupant
|
||||
dat = "<font color='blue'><b>Occupant Statistics:</b></font><br>" //Blah obvious
|
||||
if(istype(occupant)) //is there REALLY someone in there?
|
||||
var/t1
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
var/wiresexposed = 0 // If it's been screwdrivered open.
|
||||
var/aidisabled = 0
|
||||
var/shorted = 0
|
||||
circuit = /obj/item/weapon/circuitboard/airalarm
|
||||
circuit = /obj/item/weapon/circuitboard/airalarm
|
||||
|
||||
var/datum/wires/alarm/wires
|
||||
|
||||
@@ -745,10 +745,31 @@
|
||||
|
||||
/obj/machinery/alarm/attackby(obj/item/W as obj, mob/user as mob)
|
||||
src.add_fingerprint(user)
|
||||
|
||||
if(alarm_deconstruction_screwdriver(user, W, wiresexposed))
|
||||
if(istype(W, /obj/item/weapon/screwdriver)) // Opening that Air Alarm up.
|
||||
//user << "You pop the Air Alarm's maintence panel open."
|
||||
wiresexposed = !wiresexposed
|
||||
user << "The wires have been [wiresexposed ? "exposed" : "unexposed"]"
|
||||
update_icon()
|
||||
return
|
||||
if(alarm_deconstruction_wirecutters(user, W, wiresexposed))
|
||||
|
||||
if (wiresexposed && istype(W, /obj/item/weapon/wirecutters))
|
||||
user.visible_message("<span class='warning'>[user] has cut the wires inside \the [src]!</span>", "You have cut the wires inside \the [src].")
|
||||
playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
|
||||
new/obj/item/stack/cable_coil(get_turf(src), 5)
|
||||
var/obj/structure/frame/A = new /obj/structure/frame( src.loc )
|
||||
var/obj/item/weapon/circuitboard/M = new circuit( A )
|
||||
A.frame_type = "airalarm"
|
||||
A.pixel_x = pixel_x
|
||||
A.pixel_y = pixel_y
|
||||
A.set_dir(dir)
|
||||
A.circuit = M
|
||||
A.anchored = 1
|
||||
for (var/obj/C in src)
|
||||
C.forceMove(loc)
|
||||
A.state = 2
|
||||
A.icon_state = "airalarm_2"
|
||||
M.deconstruct(src)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
if (istype(W, /obj/item/weapon/card/id) || istype(W, /obj/item/device/pda))// trying to unlock the interface with an ID card
|
||||
@@ -803,7 +824,7 @@ FIRE ALARM
|
||||
var/last_process = 0
|
||||
var/wiresexposed = 0
|
||||
var/seclevel
|
||||
circuit = /obj/item/weapon/circuitboard/firealarm
|
||||
circuit = /obj/item/weapon/circuitboard/firealarm
|
||||
|
||||
/obj/machinery/firealarm/update_icon()
|
||||
overlays.Cut()
|
||||
@@ -852,9 +873,9 @@ FIRE ALARM
|
||||
/obj/machinery/firealarm/attackby(obj/item/W as obj, mob/user as mob)
|
||||
src.add_fingerprint(user)
|
||||
|
||||
if(alarm_deconstruction_screwdriver(user, W, wiresexposed))
|
||||
return
|
||||
if(alarm_deconstruction_wirecutters(user, W, wiresexposed))
|
||||
if (istype(W, /obj/item/weapon/screwdriver))
|
||||
wiresexposed = !wiresexposed
|
||||
update_icon()
|
||||
return
|
||||
|
||||
if(wiresexposed)
|
||||
@@ -864,6 +885,24 @@ FIRE ALARM
|
||||
user.visible_message("<span class='notice'>\The [user] has reconnected [src]'s detecting unit!</span>", "<span class='notice'>You have reconnected [src]'s detecting unit.</span>")
|
||||
else
|
||||
user.visible_message("<span class='notice'>\The [user] has disconnected [src]'s detecting unit!</span>", "<span class='notice'>You have disconnected [src]'s detecting unit.</span>")
|
||||
else if (istype(W, /obj/item/weapon/wirecutters))
|
||||
user.visible_message("<span class='notice'>\The [user] has cut the wires inside \the [src]!</span>", "<span class='notice'>You have cut the wires inside \the [src].</span>")
|
||||
new/obj/item/stack/cable_coil(get_turf(src), 5)
|
||||
playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
|
||||
var/obj/structure/frame/A = new /obj/structure/frame( src.loc )
|
||||
var/obj/item/weapon/circuitboard/M = new circuit( A )
|
||||
A.frame_type = "firealarm"
|
||||
A.pixel_x = pixel_x
|
||||
A.pixel_y = pixel_y
|
||||
A.set_dir(dir)
|
||||
A.circuit = M
|
||||
A.anchored = 1
|
||||
for (var/obj/C in src)
|
||||
C.forceMove(loc)
|
||||
A.state = 2
|
||||
A.icon_state = "firealarm_2"
|
||||
M.deconstruct(src)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
src.alarm()
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
/obj/machinery/autolathe/New()
|
||||
..()
|
||||
wires = new(src)
|
||||
circuit = new circuit(src)
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/weapon/stock_parts/matter_bin(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/matter_bin(src)
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
R.my_atom = src
|
||||
|
||||
beaker = new /obj/item/weapon/reagent_containers/glass/bottle(src)
|
||||
circuit = new circuit(src)
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/weapon/stock_parts/matter_bin(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
|
||||
/obj/machinery/clonepod/New()
|
||||
..()
|
||||
circuit = new circuit(src)
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
use_power = 1
|
||||
idle_power_usage = 300
|
||||
active_power_usage = 300
|
||||
frame_type = "computer"
|
||||
var/processing = 0
|
||||
|
||||
var/icon_keyboard = "generic_key"
|
||||
@@ -96,8 +97,37 @@
|
||||
return text
|
||||
|
||||
/obj/machinery/computer/attackby(I as obj, user as mob)
|
||||
if(computer_deconstruction_screwdriver(user, I))
|
||||
return
|
||||
if(istype(I, /obj/item/weapon/screwdriver) && circuit)
|
||||
user << "<span class='notice'>You start disconnecting the monitor.</span>"
|
||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
||||
if(do_after(user, 20))
|
||||
var/obj/structure/frame/A = new /obj/structure/frame( src.loc )
|
||||
var/obj/item/weapon/circuitboard/M = new circuit( A )
|
||||
A.circuit = M
|
||||
A.anchored = 1
|
||||
A.density = 1
|
||||
A.frame_type = M.board_type
|
||||
for (var/obj/C in src)
|
||||
C.forceMove(loc)
|
||||
if (src.stat & BROKEN)
|
||||
user << "<span class='notice'>The broken glass falls out.</span>"
|
||||
new /obj/item/weapon/material/shard( src.loc )
|
||||
A.state = 3
|
||||
A.icon_state = "[A.frame_type]_3"
|
||||
else
|
||||
user << "<span class='notice'>You disconnect the monitor.</span>"
|
||||
A.state = 4
|
||||
A.icon_state = "[A.frame_type]_4"
|
||||
A.pixel_x = pixel_x
|
||||
A.pixel_y = pixel_y
|
||||
M.deconstruct(src)
|
||||
qdel(src)
|
||||
else
|
||||
src.attack_hand(user)
|
||||
return
|
||||
return
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -65,6 +65,25 @@
|
||||
|
||||
|
||||
/obj/machinery/computer/guestpass/attackby(obj/I, mob/user)
|
||||
if(istype(I, /obj/item/weapon/screwdriver) && circuit)
|
||||
user << "<span class='notice'>You start disconnecting the monitor.</span>"
|
||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
||||
if(do_after(user, 20))
|
||||
var/obj/structure/frame/A = new /obj/structure/frame( src.loc )
|
||||
var/obj/item/weapon/circuitboard/M = new circuit( A )
|
||||
A.frame_type = "guestpass"
|
||||
A.pixel_x = pixel_x
|
||||
A.pixel_y = pixel_y
|
||||
A.circuit = M
|
||||
A.anchored = 1
|
||||
for (var/obj/C in src)
|
||||
C.forceMove(loc)
|
||||
user << "<span class='notice'>You disconnect the monitor.</span>"
|
||||
A.state = 4
|
||||
A.icon_state = "guestpass_4"
|
||||
M.deconstruct(src)
|
||||
qdel(src)
|
||||
return
|
||||
if(istype(I, /obj/item/weapon/card/id))
|
||||
if(!giver && user.unEquip(I))
|
||||
I.forceMove(src)
|
||||
|
||||
@@ -1,177 +1,3 @@
|
||||
/var/global/list/construction_frame_wall
|
||||
/var/global/list/construction_frame_floor
|
||||
|
||||
/proc/populate_frame_types()
|
||||
//Create global frame type list if it hasn't been made already.
|
||||
construction_frame_wall = list()
|
||||
construction_frame_floor = list()
|
||||
for(var/R in typesof(/datum/frame/frame_types) - /datum/frame/frame_types)
|
||||
var/datum/frame/frame_types/type = new R
|
||||
if(type.frame_style == "wall")
|
||||
construction_frame_wall += type
|
||||
else
|
||||
construction_frame_floor += type
|
||||
|
||||
var/datum/frame/frame_types/cancel/cancel = new /datum/frame/frame_types/cancel
|
||||
construction_frame_wall += cancel
|
||||
construction_frame_floor += cancel
|
||||
|
||||
/datum/frame/frame_types
|
||||
var/name
|
||||
var/frame_size = 5
|
||||
var/frame_class
|
||||
var/circuit
|
||||
var/frame_style = "floor"
|
||||
var/x_offset
|
||||
var/y_offset
|
||||
|
||||
/datum/frame/frame_types/computer
|
||||
name = "Computer"
|
||||
frame_class = "computer"
|
||||
|
||||
/datum/frame/frame_types/machine
|
||||
name = "Machine"
|
||||
frame_class = "machine"
|
||||
|
||||
/datum/frame/frame_types/conveyor
|
||||
name = "Conveyor"
|
||||
frame_class = "machine"
|
||||
circuit = /obj/item/weapon/circuitboard/conveyor
|
||||
|
||||
/datum/frame/frame_types/photocopier
|
||||
name = "Photocopier"
|
||||
frame_class = "machine"
|
||||
|
||||
/datum/frame/frame_types/washing_machine
|
||||
name = "Washing Machine"
|
||||
frame_class = "machine"
|
||||
|
||||
/datum/frame/frame_types/medical_console
|
||||
name = "Medical Console"
|
||||
frame_class = "computer"
|
||||
|
||||
/datum/frame/frame_types/medical_pod
|
||||
name = "Medical Pod"
|
||||
frame_class = "machine"
|
||||
|
||||
/datum/frame/frame_types/dna_analyzer
|
||||
name = "DNA Analyzer"
|
||||
frame_class = "machine"
|
||||
|
||||
/datum/frame/frame_types/mass_driver
|
||||
name = "Mass Driver"
|
||||
frame_class = "machine"
|
||||
circuit = /obj/item/weapon/circuitboard/mass_driver
|
||||
|
||||
/datum/frame/frame_types/holopad
|
||||
name = "Holopad"
|
||||
frame_class = "computer"
|
||||
frame_size = 4
|
||||
|
||||
/datum/frame/frame_types/microwave
|
||||
name = "Microwave"
|
||||
frame_class = "machine"
|
||||
frame_size = 4
|
||||
|
||||
/datum/frame/frame_types/fax
|
||||
name = "Fax"
|
||||
frame_class = "machine"
|
||||
frame_size = 3
|
||||
|
||||
/datum/frame/frame_types/recharger
|
||||
name = "Recharger"
|
||||
frame_class = "machine"
|
||||
circuit = /obj/item/weapon/circuitboard/recharger
|
||||
frame_size = 3
|
||||
|
||||
/datum/frame/frame_types/grinder
|
||||
name = "Grinder"
|
||||
frame_class = "machine"
|
||||
circuit = /obj/item/weapon/circuitboard/grinder
|
||||
frame_size = 3
|
||||
|
||||
/datum/frame/frame_types/display
|
||||
name = "Display"
|
||||
frame_class = "display"
|
||||
frame_style = "wall"
|
||||
x_offset = 32
|
||||
y_offset = 32
|
||||
|
||||
/datum/frame/frame_types/supply_request_console
|
||||
name = "Supply Request Console"
|
||||
frame_class = "display"
|
||||
frame_style = "wall"
|
||||
x_offset = 32
|
||||
y_offset = 32
|
||||
|
||||
/datum/frame/frame_types/atm
|
||||
name = "ATM"
|
||||
frame_class = "display"
|
||||
frame_size = 3
|
||||
frame_style = "wall"
|
||||
x_offset = 32
|
||||
y_offset = 32
|
||||
|
||||
/datum/frame/frame_types/newscaster
|
||||
name = "Newscaster"
|
||||
frame_class = "display"
|
||||
frame_size = 3
|
||||
frame_style = "wall"
|
||||
x_offset = 28
|
||||
y_offset = 30
|
||||
|
||||
/datum/frame/frame_types/wall_charger
|
||||
name = "Wall Charger"
|
||||
frame_class = "machine"
|
||||
circuit = /obj/item/weapon/circuitboard/recharger/wrecharger
|
||||
frame_size = 3
|
||||
frame_style = "wall"
|
||||
x_offset = 32
|
||||
y_offset = 32
|
||||
|
||||
/datum/frame/frame_types/fire_alarm
|
||||
name = "Fire Alarm"
|
||||
frame_class = "alarm"
|
||||
frame_size = 2
|
||||
frame_style = "wall"
|
||||
x_offset = 24
|
||||
y_offset = 24
|
||||
|
||||
/datum/frame/frame_types/air_alarm
|
||||
name = "Air Alarm"
|
||||
frame_class = "alarm"
|
||||
frame_size = 2
|
||||
frame_style = "wall"
|
||||
x_offset = 24
|
||||
y_offset = 24
|
||||
|
||||
/datum/frame/frame_types/guest_pass_console
|
||||
name = "Guest Pass Console"
|
||||
frame_class = "display"
|
||||
frame_size = 2
|
||||
frame_style = "wall"
|
||||
x_offset = 30
|
||||
y_offset = 30
|
||||
|
||||
/datum/frame/frame_types/intercom
|
||||
name = "Intercom"
|
||||
frame_class = "alarm"
|
||||
frame_size = 2
|
||||
frame_style = "wall"
|
||||
x_offset = 28
|
||||
y_offset = 28
|
||||
|
||||
/datum/frame/frame_types/keycard_authenticator
|
||||
name = "Keycard Authenticator"
|
||||
frame_class = "alarm"
|
||||
frame_size = 1
|
||||
frame_style = "wall"
|
||||
x_offset = 24
|
||||
y_offset = 24
|
||||
|
||||
/datum/frame/frame_types/cancel //used to get out of input dialogue
|
||||
name = "Cancel"
|
||||
|
||||
/obj/structure/frame
|
||||
anchored = 0
|
||||
name = "frame"
|
||||
@@ -180,16 +6,20 @@
|
||||
var/state = 0
|
||||
var/obj/item/weapon/circuitboard/circuit = null
|
||||
var/need_circuit = 1
|
||||
var/datum/frame/frame_types/frame_type = new /datum/frame/frame_types/machine
|
||||
var/frame_type = "machine"
|
||||
|
||||
var/list/components = null
|
||||
var/list/req_components = null
|
||||
var/list/req_component_names = null
|
||||
|
||||
/obj/structure/frame/computer //used for maps
|
||||
frame_type = new /datum/frame/frame_types/computer
|
||||
anchored = 1
|
||||
density = 1
|
||||
var/list/alarms = list("firealarm", "airalarm", "intercom", "keycard")
|
||||
var/list/machines = list(
|
||||
"machine", "photocopier", "fax", "microwave", "conveyor", "recharger", "wrecharger",
|
||||
"washing", "grinder", "teleporter_hub", "teleporter_station", "medpod", "dna_analyzer",
|
||||
"massdriver")
|
||||
var/list/computers = list("computer", "holopad", "console")
|
||||
var/list/displays = list("display", "guestpass", "newscaster", "atm", "request")
|
||||
var/list/no_circuit = list("wrecharger", "recharger", "grinder", "conveyor", "massdriver")
|
||||
|
||||
/obj/structure/frame/proc/update_desc()
|
||||
var/D
|
||||
@@ -201,12 +31,6 @@
|
||||
D = "Requires [english_list(component_list)]."
|
||||
desc = D
|
||||
|
||||
/obj/structure/frame/update_icon()
|
||||
..()
|
||||
var/type = lowertext(frame_type.name)
|
||||
type = replacetext(type, " ", "_")
|
||||
icon_state = "[type]_[state]"
|
||||
|
||||
/obj/structure/frame/proc/check_components(mob/user as mob)
|
||||
components = list()
|
||||
req_components = circuit.req_components.Copy()
|
||||
@@ -217,110 +41,175 @@
|
||||
var/obj/ct = A
|
||||
req_component_names[A] = initial(ct.name)
|
||||
|
||||
/obj/structure/frame/New(var/loc, var/dir, var/building = 0, var/datum/frame/frame_types/type, mob/user as mob)
|
||||
/obj/structure/frame/New(var/loc, var/dir, var/building = 0, var/obj/item/frame/frame_type, mob/user as mob)
|
||||
..()
|
||||
if(building)
|
||||
frame_type = type
|
||||
state = 0
|
||||
|
||||
src.frame_type = frame_type
|
||||
icon_state = "[frame_type]_0"
|
||||
if(dir)
|
||||
set_dir(dir)
|
||||
src.set_dir(dir)
|
||||
|
||||
if(loc)
|
||||
src.loc = loc
|
||||
if(frame_type in alarms)
|
||||
if(loc)
|
||||
src.loc = loc
|
||||
|
||||
if(frame_type.x_offset)
|
||||
pixel_x = (dir & 3)? 0 : (dir == 4 ? -frame_type.x_offset : frame_type.x_offset)
|
||||
state = 0
|
||||
if(frame_type == "airalarm" || frame_type == "firealarm" || frame_type == "keycard")
|
||||
if(dir)
|
||||
src.set_dir(dir)
|
||||
pixel_x = (dir & 3)? 0 : (dir == 4 ? -24 : 24)
|
||||
pixel_y = (dir & 3)? (dir == 1 ? -24 : 24) : 0
|
||||
|
||||
if(frame_type.y_offset)
|
||||
pixel_y = (dir & 3)? (dir == 1 ? -frame_type.y_offset : frame_type.y_offset) : 0
|
||||
if(frame_type == "intercom")
|
||||
if(dir)
|
||||
src.set_dir(dir)
|
||||
pixel_x = (dir & 3)? 0 : (dir == 4 ? -28 : 28)
|
||||
pixel_y = (dir & 3)? (dir == 1 ? -28 : 28) : 0
|
||||
|
||||
if(frame_type.circuit)
|
||||
update_icon()
|
||||
return
|
||||
|
||||
if(frame_type in displays)
|
||||
if(loc)
|
||||
src.loc = loc
|
||||
|
||||
if(frame_type == "display" || frame_type == "atm" || frame_type == "request")
|
||||
pixel_x = (dir & 3)? 0 : (dir == 4 ? -32 : 32)
|
||||
pixel_y = (dir & 3)? (dir == 1 ? -32 : 32) : 0
|
||||
|
||||
if(frame_type == "newscaster")
|
||||
pixel_x = (dir & 3)? 0 : (dir == 4 ? -28 : 28)
|
||||
pixel_y = (dir & 3)? (dir == 1 ? -30 : 30) : 0
|
||||
|
||||
if(frame_type == "guestpass")
|
||||
pixel_x = (dir & 3)? 0 : (dir == 4 ? -30 : 30)
|
||||
pixel_y = (dir & 3)? (dir == 1 ? -30 : 30) : 0
|
||||
|
||||
update_icon()
|
||||
return
|
||||
|
||||
if(frame_type in no_circuit)
|
||||
need_circuit = 0
|
||||
circuit = new frame_type.circuit(src)
|
||||
if(frame_type == "wrecharger")
|
||||
circuit = new /obj/item/weapon/circuitboard/recharger/wrecharger(src)
|
||||
if(loc)
|
||||
src.loc = loc
|
||||
|
||||
if(frame_type.name == "Computer")
|
||||
state = 0
|
||||
|
||||
pixel_x = (dir & 3)? 0 : (dir == 4 ? -26 : 32)
|
||||
pixel_y = (dir & 3)? (dir == 1 ? -32 : 32) : 0
|
||||
|
||||
update_icon()
|
||||
return
|
||||
if(frame_type == "recharger")
|
||||
circuit = new /obj/item/weapon/circuitboard/recharger(src)
|
||||
if(frame_type == "grinder")
|
||||
circuit = new /obj/item/weapon/circuitboard/grinder(src)
|
||||
if(frame_type == "conveyor")
|
||||
circuit = new /obj/item/weapon/circuitboard/conveyor(src)
|
||||
if(frame_type == "massdriver")
|
||||
circuit = new /obj/item/weapon/circuitboard/mass_driver(src)
|
||||
|
||||
if(frame_type == "computer")
|
||||
density = 1
|
||||
|
||||
if(frame_type.frame_class == "machine")
|
||||
if(frame_type in machines)
|
||||
density = 1
|
||||
|
||||
update_icon()
|
||||
return
|
||||
|
||||
/obj/structure/frame/attackby(obj/item/P as obj, mob/user as mob)
|
||||
if(istype(P, /obj/item/weapon/wrench))
|
||||
if(state == 0 && !anchored)
|
||||
if(state == 0)
|
||||
user << "<span class='notice'>You start to wrench the frame into place.</span>"
|
||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
||||
if(do_after(user, 20))
|
||||
anchored = 1
|
||||
src.anchored = 1
|
||||
if(!need_circuit && circuit)
|
||||
state = 2
|
||||
src.state = 2
|
||||
check_components()
|
||||
update_desc()
|
||||
src.icon_state = "[frame_type]_2"
|
||||
user << "<span class='notice'>You wrench the frame into place and set the outer cover.</span>"
|
||||
else
|
||||
src.state = 1
|
||||
user << "<span class='notice'>You wrench the frame into place.</span>"
|
||||
return
|
||||
|
||||
else if(state == 0 && anchored)
|
||||
if(state == 1)
|
||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
||||
if(do_after(user, 20))
|
||||
user << "<span class='notice'>You unfasten the frame.</span>"
|
||||
anchored = 0
|
||||
src.anchored = 0
|
||||
src.state = 0
|
||||
return
|
||||
|
||||
else if(istype(P, /obj/item/weapon/weldingtool))
|
||||
if(istype(P, /obj/item/weapon/weldingtool))
|
||||
if(state == 0)
|
||||
var/obj/item/weapon/weldingtool/WT = P
|
||||
if(WT.remove_fuel(0, user))
|
||||
playsound(src.loc, 'sound/items/Welder.ogg', 50, 1)
|
||||
if(do_after(user, 20))
|
||||
if(src && WT.isOn())
|
||||
user << "<span class='notice'>You deconstruct the frame.</span>"
|
||||
new /obj/item/stack/material/steel(src.loc, frame_type.frame_size)
|
||||
qdel(src)
|
||||
return
|
||||
else if(!WT.remove_fuel(0, user))
|
||||
if(!WT.remove_fuel(0, user))
|
||||
user << "The welding tool must be on to complete this task."
|
||||
return
|
||||
|
||||
else if(istype(P, /obj/item/weapon/circuitboard) && need_circuit && !circuit)
|
||||
if(state == 0 && anchored)
|
||||
var/obj/item/weapon/circuitboard/B = P
|
||||
var/datum/frame/frame_types/board_type = B.board_type
|
||||
if(board_type.name == frame_type.name)
|
||||
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
user << "<span class='notice'>You place the circuit board inside the frame.</span>"
|
||||
circuit = P
|
||||
user.drop_item()
|
||||
P.loc = src
|
||||
state = 1
|
||||
if(frame_type.frame_class == "machine")
|
||||
check_components()
|
||||
update_desc()
|
||||
else
|
||||
user << "<span class='warning'>This frame does not accept circuit boards of this type!</span>"
|
||||
playsound(src.loc, 'sound/items/Welder.ogg', 50, 1)
|
||||
if(do_after(user, 20))
|
||||
if(!src || !WT.isOn()) return
|
||||
user << "<span class='notice'>You deconstruct the frame.</span>"
|
||||
if(frame_type == "holopad" || frame_type == "microwave")
|
||||
new /obj/item/stack/material/steel( src.loc, 4 )
|
||||
else if(frame_type == "fax" || frame_type == "newscaster" || frame_type == "recharger" || frame_type == "wrecharger" || frame_type == "grinder")
|
||||
new /obj/item/stack/material/steel( src.loc, 3 )
|
||||
else if(frame_type == "firealarm" || frame_type == "airalarm" || frame_type == "intercom" || frame_type == "guestpass")
|
||||
new /obj/item/stack/material/steel( src.loc, 2 )
|
||||
else if(frame_type == "keycard")
|
||||
new /obj/item/stack/material/steel( src.loc, 1 )
|
||||
else
|
||||
new /obj/item/stack/material/steel( src.loc, 5 )
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
else if(istype(P, /obj/item/weapon/screwdriver))
|
||||
if(istype(P, /obj/item/weapon/circuitboard) && need_circuit && !circuit)
|
||||
if(state == 1)
|
||||
var/obj/item/weapon/circuitboard/B = P
|
||||
if(B.board_type == frame_type)
|
||||
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
user << "<span class='notice'>You place the circuit board inside the frame.</span>"
|
||||
src.icon_state = "[frame_type]_1"
|
||||
src.circuit = P
|
||||
user.drop_item()
|
||||
P.loc = src
|
||||
if(frame_type in machines) //because machines are assholes
|
||||
check_components()
|
||||
update_desc()
|
||||
return
|
||||
else
|
||||
user << "<span class='warning'>This frame does not accept circuit boards of this type!</span>"
|
||||
return
|
||||
|
||||
if(istype(P, /obj/item/weapon/screwdriver))
|
||||
if(state == 1)
|
||||
if(need_circuit && circuit)
|
||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
||||
user << "<span class='notice'>You screw the circuit board into place.</span>"
|
||||
state = 2
|
||||
src.state = 2
|
||||
src.icon_state = "[frame_type]_2"
|
||||
return
|
||||
|
||||
else if(state == 2)
|
||||
if(state == 2)
|
||||
if(need_circuit && circuit)
|
||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
||||
user << "<span class='notice'>You unfasten the circuit board.</span>"
|
||||
state = 1
|
||||
src.state = 1
|
||||
src.icon_state = "[frame_type]_1"
|
||||
return
|
||||
|
||||
else if(!need_circuit && circuit)
|
||||
if(!need_circuit && circuit)
|
||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
||||
user << "<span class='notice'>You unfasten the outer cover.</span>"
|
||||
state = 0
|
||||
src.state = 1
|
||||
src.icon_state = "[frame_type]_0"
|
||||
return
|
||||
|
||||
else if(state == 3)
|
||||
if(frame_type.frame_class == "machine")
|
||||
if(state == 3)
|
||||
if(frame_type in machines)
|
||||
var/component_check = 1
|
||||
for(var/R in req_components)
|
||||
if(req_components[R] > 0)
|
||||
@@ -328,7 +217,7 @@
|
||||
break
|
||||
if(component_check)
|
||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
||||
var/obj/machinery/new_machine = new circuit.build_path(src.loc, dir)
|
||||
var/obj/machinery/new_machine = new src.circuit.build_path(src.loc, src.dir)
|
||||
// Handle machines that have allocated default parts in thier constructor.
|
||||
if(new_machine.component_parts)
|
||||
for(var/CP in new_machine.component_parts)
|
||||
@@ -337,9 +226,9 @@
|
||||
else
|
||||
new_machine.component_parts = list()
|
||||
|
||||
circuit.construct(new_machine)
|
||||
src.circuit.construct(new_machine)
|
||||
|
||||
for(var/obj/O in components)
|
||||
for(var/obj/O in src.components)
|
||||
if(circuit.contain_parts)
|
||||
O.loc = new_machine
|
||||
else
|
||||
@@ -351,158 +240,173 @@
|
||||
|
||||
new_machine.RefreshParts()
|
||||
|
||||
new_machine.pixel_x = pixel_x
|
||||
new_machine.pixel_y = pixel_y
|
||||
new_machine.pixel_x = src.pixel_x
|
||||
new_machine.pixel_y = src.pixel_y
|
||||
qdel(src)
|
||||
return
|
||||
return
|
||||
|
||||
else if(frame_type.frame_class == "alarm")
|
||||
if(frame_type in alarms)
|
||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
||||
user << "<span class='notice'>You fasten the cover.</span>"
|
||||
var/obj/machinery/B = new circuit.build_path(src.loc)
|
||||
B.pixel_x = pixel_x
|
||||
B.pixel_y = pixel_y
|
||||
var/obj/machinery/B = new src.circuit.build_path ( src.loc )
|
||||
B.pixel_x = src.pixel_x
|
||||
B.pixel_y = src.pixel_y
|
||||
B.set_dir(dir)
|
||||
circuit.construct(B)
|
||||
circuit.loc = null
|
||||
B.circuit = circuit
|
||||
src.circuit.construct(B)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
else if(state == 4)
|
||||
if(frame_type.frame_class == "computer")
|
||||
if(state == 4)
|
||||
if(frame_type in computers)
|
||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
||||
user << "<span class='notice'>You connect the monitor.</span>"
|
||||
var/obj/machinery/B = new circuit.build_path(src.loc)
|
||||
B.pixel_x = pixel_x
|
||||
B.pixel_y = pixel_y
|
||||
var/obj/machinery/B = new src.circuit.build_path ( src.loc )
|
||||
B.pixel_x = src.pixel_x
|
||||
B.pixel_y = src.pixel_y
|
||||
B.set_dir(dir)
|
||||
circuit.construct(B)
|
||||
circuit.loc = null
|
||||
B.circuit = circuit
|
||||
src.circuit.construct(B)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
else if(frame_type.frame_class == "display")
|
||||
if(frame_type in displays)
|
||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
||||
user << "<span class='notice'>You connect the monitor.</span>"
|
||||
var/obj/machinery/B = new circuit.build_path(src.loc)
|
||||
B.pixel_x = pixel_x
|
||||
B.pixel_y = pixel_y
|
||||
var/obj/machinery/B = new src.circuit.build_path ( src.loc )
|
||||
B.pixel_x = src.pixel_x
|
||||
B.pixel_y = src.pixel_y
|
||||
B.set_dir(dir)
|
||||
circuit.construct(B)
|
||||
circuit.loc = null
|
||||
B.circuit = circuit
|
||||
src.circuit.construct(B)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
else if(istype(P, /obj/item/weapon/crowbar))
|
||||
if(istype(P, /obj/item/weapon/crowbar))
|
||||
if(state == 1)
|
||||
if(need_circuit && circuit)
|
||||
playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
|
||||
user << "<span class='notice'>You remove the circuit board.</span>"
|
||||
state = 0
|
||||
circuit.forceMove(src.loc)
|
||||
circuit = null
|
||||
if(frame_type.frame_class == "machine")
|
||||
src.state = 1
|
||||
src.icon_state = "[frame_type]_0"
|
||||
circuit.loc = src.loc
|
||||
src.circuit = null
|
||||
if(frame_type in machines) //becuase machines are assholes
|
||||
req_components = null
|
||||
return
|
||||
|
||||
else if(state == 3)
|
||||
if(frame_type.frame_class == "machine")
|
||||
if(state == 3)
|
||||
if(frame_type in machines)
|
||||
playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
|
||||
if(components.len == 0)
|
||||
user << "<span class='notice'>There are no components to remove.</span>"
|
||||
else
|
||||
user << "<span class='notice'>You remove the components.</span>"
|
||||
for(var/obj/item/weapon/W in components)
|
||||
W.forceMove(src.loc)
|
||||
W.forceMove(loc)
|
||||
check_components()
|
||||
update_desc()
|
||||
user << desc
|
||||
return
|
||||
|
||||
else if(state == 4)
|
||||
if(frame_type.frame_class == "computer")
|
||||
if(state == 4)
|
||||
if(frame_type in computers)
|
||||
playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
|
||||
user << "<span class='notice'>You remove the glass panel.</span>"
|
||||
state = 3
|
||||
new /obj/item/stack/material/glass(src.loc, 2)
|
||||
src.state = 3
|
||||
src.icon_state = "[frame_type]_3"
|
||||
new /obj/item/stack/material/glass( src.loc, 2 )
|
||||
return
|
||||
|
||||
else if(frame_type.frame_class == "display")
|
||||
if(frame_type in displays)
|
||||
playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
|
||||
user << "<span class='notice'>You remove the glass panel.</span>"
|
||||
state = 3
|
||||
new /obj/item/stack/material/glass(src.loc, 2)
|
||||
src.state = 3
|
||||
src.icon_state = "[frame_type]_3"
|
||||
new /obj/item/stack/material/glass( src.loc, 2 )
|
||||
return
|
||||
|
||||
else if(istype(P, /obj/item/stack/cable_coil))
|
||||
if(istype(P, /obj/item/stack/cable_coil))
|
||||
if(state == 2)
|
||||
var/obj/item/stack/cable_coil/C = P
|
||||
if(C.get_amount() < 5)
|
||||
if (C.get_amount() < 5)
|
||||
user << "<span class='warning'>You need five coils of wire to add them to the frame.</span>"
|
||||
return
|
||||
user << "<span class='notice'>You start to add cables to the frame.</span>"
|
||||
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
if(do_after(user, 20) && state == 2)
|
||||
if(C.use(5))
|
||||
if (C.use(5))
|
||||
user << "<span class='notice'>You add cables to the frame.</span>"
|
||||
state = 3
|
||||
if(frame_type.frame_class == "machine")
|
||||
icon_state = "[frame_type]_3"
|
||||
if(frame_type in machines)
|
||||
user << desc
|
||||
return
|
||||
|
||||
else if(istype(P, /obj/item/weapon/wirecutters))
|
||||
if(istype(P, /obj/item/weapon/wirecutters))
|
||||
if(state == 3)
|
||||
if(frame_type.frame_class == "computer")
|
||||
if(frame_type in computers)
|
||||
playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
|
||||
user << "<span class='notice'>You remove the cables.</span>"
|
||||
state = 2
|
||||
new /obj/item/stack/cable_coil(src.loc, 5)
|
||||
src.state = 2
|
||||
src.icon_state = "[frame_type]_2"
|
||||
new /obj/item/stack/cable_coil( src.loc, 5 )
|
||||
return
|
||||
|
||||
else if(frame_type.frame_class == "display")
|
||||
if(frame_type in displays)
|
||||
playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
|
||||
user << "<span class='notice'>You remove the cables.</span>"
|
||||
state = 2
|
||||
new /obj/item/stack/cable_coil(src.loc, 5)
|
||||
src.state = 2
|
||||
src.icon_state = "[frame_type]_2"
|
||||
new /obj/item/stack/cable_coil( src.loc, 5 )
|
||||
return
|
||||
|
||||
else if(frame_type.frame_class == "alarm")
|
||||
if(frame_type in alarms)
|
||||
playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
|
||||
user << "<span class='notice'>You remove the cables.</span>"
|
||||
state = 2
|
||||
new /obj/item/stack/cable_coil(src.loc, 5)
|
||||
src.state = 2
|
||||
src.icon_state = "[frame_type]_2"
|
||||
new /obj/item/stack/cable_coil( src.loc, 5 )
|
||||
return
|
||||
|
||||
else if(frame_type.frame_class == "machine")
|
||||
if(frame_type in machines)
|
||||
playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
|
||||
user << "<span class='notice'>You remove the cables.</span>"
|
||||
state = 2
|
||||
new /obj/item/stack/cable_coil(src.loc, 5)
|
||||
src.state = 2
|
||||
src.icon_state = "[frame_type]_2"
|
||||
new /obj/item/stack/cable_coil( src.loc, 5 )
|
||||
return
|
||||
|
||||
else if(istype(P, /obj/item/stack/material) && P.get_material_name() == "glass")
|
||||
if(istype(P, /obj/item/stack/material) && P.get_material_name() == "glass")
|
||||
if(state == 3)
|
||||
if(frame_type.frame_class == "computer")
|
||||
if(frame_type in computers)
|
||||
var/obj/item/stack/G = P
|
||||
if(G.get_amount() < 2)
|
||||
if (G.get_amount() < 2)
|
||||
user << "<span class='warning'>You need two sheets of glass to put in the glass panel.</span>"
|
||||
return
|
||||
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
user << "<span class='notice'>You start to put in the glass panel.</span>"
|
||||
if(do_after(user, 20) && state == 3)
|
||||
if(G.use(2))
|
||||
if (G.use(2))
|
||||
user << "<span class='notice'>You put in the glass panel.</span>"
|
||||
state = 4
|
||||
src.state = 4
|
||||
src.icon_state = "[frame_type]_4"
|
||||
return
|
||||
|
||||
else if(frame_type.frame_class == "display")
|
||||
if(frame_type in displays)
|
||||
var/obj/item/stack/G = P
|
||||
if(G.get_amount() < 2)
|
||||
if (G.get_amount() < 2)
|
||||
user << "<span class='warning'>You need two sheets of glass to put in the glass panel.</span>"
|
||||
return
|
||||
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
user << "<span class='notice'>You start to put in the glass panel.</span>"
|
||||
if(do_after(user, 20) && state == 3)
|
||||
if(G.use(2))
|
||||
if (G.use(2))
|
||||
user << "<span class='notice'>You put in the glass panel.</span>"
|
||||
state = 4
|
||||
src.state = 4
|
||||
src.icon_state = "[frame_type]_4"
|
||||
return
|
||||
|
||||
else if(istype(P, /obj/item))
|
||||
if(istype(P, /obj/item))
|
||||
if(state == 3)
|
||||
if(frame_type.frame_class == "machine")
|
||||
if(frame_type in machines)
|
||||
for(var/I in req_components)
|
||||
if(istype(P, I) && (req_components[I] > 0))
|
||||
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
@@ -519,10 +423,10 @@
|
||||
update_desc()
|
||||
break
|
||||
|
||||
else if(istype(P, /obj/item/stack/material/glass/reinforced))
|
||||
if(istype(P, /obj/item/stack/material/glass/reinforced))
|
||||
var/obj/item/stack/material/glass/reinforced/CP = P
|
||||
if(CP.get_amount() > 1)
|
||||
var/camt = min(CP.amount, req_components[I]) // amount of glass to take, idealy amount required, but limited by amount provided
|
||||
var/camt = min(CP.amount, req_components[I]) // amount of cable to take, idealy amount required, but limited by amount provided
|
||||
var/obj/item/stack/material/glass/reinforced/CC = new /obj/item/stack/material/glass/reinforced(src)
|
||||
CC.amount = camt
|
||||
CC.update_icon()
|
||||
@@ -541,6 +445,4 @@
|
||||
user << desc
|
||||
if(P && P.loc != src && !istype(P, /obj/item/stack/cable_coil) && !istype(P, /obj/item/stack/material))
|
||||
user << "<span class='warning'>You cannot add that component to the machine!</span>"
|
||||
return
|
||||
|
||||
update_icon()
|
||||
return
|
||||
@@ -49,8 +49,25 @@ var/const/HOLOPAD_MODE = RANGE_BASED
|
||||
var/holo_range = 5 // Change to change how far the AI can move away from the holopad before deactivating.
|
||||
|
||||
/obj/machinery/hologram/holopad/attackby(obj/item/I as obj, user as mob)
|
||||
if(computer_deconstruction_screwdriver(user, I))
|
||||
return
|
||||
if(istype(I, /obj/item/weapon/screwdriver) && circuit)
|
||||
user << "<span class='notice'>You start removing the glass.</span>"
|
||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
||||
if(do_after(user, 20))
|
||||
var/obj/structure/frame/A = new /obj/structure/frame( src.loc )
|
||||
var/obj/item/weapon/circuitboard/M = new circuit( A )
|
||||
A.circuit = M
|
||||
A.anchored = 1
|
||||
A.density = 1
|
||||
A.frame_type = "holopad"
|
||||
for (var/obj/C in src)
|
||||
C.forceMove(loc)
|
||||
user << "<span class='notice'>You remove the glass.</span>"
|
||||
A.state = 4
|
||||
A.icon_state = "holopad_4"
|
||||
M.deconstruct(src)
|
||||
for (var/mob/living/silicon/ai/master in masters)
|
||||
clear_holo(master)
|
||||
qdel(src)
|
||||
else
|
||||
src.attack_hand(user)
|
||||
return
|
||||
|
||||
@@ -38,6 +38,7 @@ datum/track/New(var/title_name, var/audio)
|
||||
|
||||
/obj/machinery/media/jukebox/New()
|
||||
..()
|
||||
circuit = new circuit(src)
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/weapon/stock_parts/capacitor(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/console_screen(src)
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
reagents = new/datum/reagents(100)
|
||||
reagents.my_atom = src
|
||||
|
||||
circuit = new circuit(src)
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/weapon/stock_parts/console_screen(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/motor(src)
|
||||
|
||||
@@ -113,6 +113,7 @@ Class Procs:
|
||||
var/global/gl_uid = 1
|
||||
var/interact_offline = 0 // Can the machine be interacted with while de-powered.
|
||||
var/circuit = null
|
||||
var/frame_type = "machine"
|
||||
|
||||
/obj/machinery/New(l, d=0)
|
||||
..(l)
|
||||
@@ -123,8 +124,6 @@ Class Procs:
|
||||
else
|
||||
machines += src
|
||||
machinery_sort_required = 1
|
||||
if(circuit)
|
||||
circuit = new circuit(src)
|
||||
|
||||
/obj/machinery/Destroy()
|
||||
machines -= src
|
||||
@@ -166,11 +165,11 @@ Class Procs:
|
||||
qdel(src)
|
||||
return
|
||||
if(2.0)
|
||||
if(prob(50))
|
||||
if (prob(50))
|
||||
qdel(src)
|
||||
return
|
||||
if(3.0)
|
||||
if(prob(25))
|
||||
if (prob(25))
|
||||
qdel(src)
|
||||
return
|
||||
else
|
||||
@@ -183,20 +182,20 @@ Class Procs:
|
||||
/obj/machinery/proc/auto_use_power()
|
||||
if(!powered(power_channel))
|
||||
return 0
|
||||
if(use_power == 1)
|
||||
use_power(idle_power_usage, power_channel, 1)
|
||||
else if(use_power >= 2)
|
||||
use_power(active_power_usage, power_channel, 1)
|
||||
if(src.use_power == 1)
|
||||
use_power(idle_power_usage,power_channel, 1)
|
||||
else if(src.use_power >= 2)
|
||||
use_power(active_power_usage,power_channel, 1)
|
||||
return 1
|
||||
|
||||
/obj/machinery/proc/operable(var/additional_flags = 0)
|
||||
return !inoperable(additional_flags)
|
||||
|
||||
/obj/machinery/proc/inoperable(var/additional_flags = 0)
|
||||
return (stat & (NOPOWER | BROKEN | additional_flags))
|
||||
return (stat & (NOPOWER|BROKEN|additional_flags))
|
||||
|
||||
/obj/machinery/CanUseTopic(var/mob/user)
|
||||
if(!interact_offline && (stat & (NOPOWER | BROKEN)))
|
||||
if(!interact_offline && (stat & (NOPOWER|BROKEN)))
|
||||
return STATUS_CLOSE
|
||||
|
||||
return ..()
|
||||
@@ -224,10 +223,11 @@ Class Procs:
|
||||
return 1
|
||||
if(user.lying || user.stat)
|
||||
return 1
|
||||
if(!(istype(usr, /mob/living/carbon/human) || istype(usr, /mob/living/silicon)))
|
||||
if ( ! (istype(usr, /mob/living/carbon/human) || \
|
||||
istype(usr, /mob/living/silicon)))
|
||||
usr << "<span class='warning'>You don't have the dexterity to do this!</span>"
|
||||
return 1
|
||||
if(ishuman(user))
|
||||
if (ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(H.getBrainLoss() >= 55)
|
||||
visible_message("<span class='warning'>[H] stares cluelessly at [src].</span>")
|
||||
@@ -252,7 +252,7 @@ Class Procs:
|
||||
O.show_message("\icon[src] <span class = 'notice'>[msg]</span>", 2)
|
||||
|
||||
/obj/machinery/proc/ping(text=null)
|
||||
if(!text)
|
||||
if (!text)
|
||||
text = "\The [src] pings."
|
||||
|
||||
state(text, "blue")
|
||||
@@ -266,7 +266,7 @@ Class Procs:
|
||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
||||
s.set_up(5, 1, src)
|
||||
s.start()
|
||||
if(electrocute_mob(user, get_area(src), src, 0.7))
|
||||
if (electrocute_mob(user, get_area(src), src, 0.7))
|
||||
var/area/temp_area = get_area(src)
|
||||
if(temp_area)
|
||||
var/obj/machinery/power/apc/temp_apc = temp_area.get_apc()
|
||||
@@ -304,7 +304,7 @@ Class Procs:
|
||||
RefreshParts()
|
||||
else
|
||||
user << "<span class='notice'>Following parts detected in the machine:</span>"
|
||||
for(var/var/obj/item/C in component_parts) //var/var/obj/item/C?
|
||||
for(var/var/obj/item/C in component_parts)
|
||||
user << "<span class='notice'> [C.name]</span>"
|
||||
return 1
|
||||
|
||||
@@ -324,76 +324,30 @@ Class Procs:
|
||||
update_icon()
|
||||
return 1
|
||||
|
||||
/obj/machinery/proc/computer_deconstruction_screwdriver(var/mob/user, var/obj/item/weapon/screwdriver/S)
|
||||
if(!istype(S))
|
||||
return 0
|
||||
if(!circuit)
|
||||
return 0
|
||||
user << "<span class='notice'>You start disconnecting the monitor.</span>"
|
||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
||||
if(do_after(user, 20))
|
||||
if(stat & BROKEN)
|
||||
user << "<span class='notice'>The broken glass falls out.</span>"
|
||||
new /obj/item/weapon/material/shard(src.loc)
|
||||
else
|
||||
user << "<span class='notice'>You disconnect the monitor.</span>"
|
||||
. = dismantle()
|
||||
|
||||
/obj/machinery/proc/alarm_deconstruction_screwdriver(var/mob/user, var/obj/item/weapon/screwdriver/S, var/wiresexposed)
|
||||
if(!istype(S))
|
||||
return 0
|
||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
||||
wiresexposed = !wiresexposed
|
||||
user << "The wires have been [wiresexposed ? "exposed" : "unexposed"]"
|
||||
update_icon()
|
||||
return 1
|
||||
|
||||
/obj/machinery/proc/alarm_deconstruction_wirecutters(var/mob/user, var/obj/item/weapon/wirecutters/W, var/wiresexposed)
|
||||
if(!istype(W))
|
||||
return 0
|
||||
if(!wiresexposed)
|
||||
return 0
|
||||
user.visible_message("<span class='warning'>[user] has cut the wires inside \the [src]!</span>", "You have cut the wires inside \the [src].")
|
||||
playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
|
||||
new/obj/item/stack/cable_coil(get_turf(src), 5)
|
||||
. = dismantle()
|
||||
|
||||
/obj/machinery/proc/dismantle()
|
||||
playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
|
||||
var/obj/structure/frame/A = new /obj/structure/frame(src.loc)
|
||||
playsound(loc, 'sound/items/Crowbar.ogg', 50, 1)
|
||||
var/obj/structure/frame/A = new /obj/structure/frame( src.loc )
|
||||
var/obj/item/weapon/circuitboard/M = circuit
|
||||
A.circuit = M
|
||||
A.anchored = 1
|
||||
A.density = 1
|
||||
A.frame_type = M.board_type
|
||||
if(A.frame_type.circuit)
|
||||
if(A.frame_type in A.no_circuit)
|
||||
A.need_circuit = 0
|
||||
|
||||
if(A.frame_type.frame_class == "machine")
|
||||
for(var/obj/D in component_parts)
|
||||
D.forceMove(src.loc)
|
||||
if(A.components)
|
||||
A.components.Cut()
|
||||
else
|
||||
A.components = list()
|
||||
component_parts = list()
|
||||
A.check_components()
|
||||
|
||||
if(A.frame_type.frame_class == "alarm")
|
||||
A.state = 2
|
||||
else if(A.frame_type.frame_class == "computer" || A.frame_type.frame_class == "display")
|
||||
if(stat & BROKEN)
|
||||
A.state = 3
|
||||
else
|
||||
A.state = 4
|
||||
for (var/obj/D in src.component_parts)
|
||||
D.forceMove(loc)
|
||||
if(A.components)
|
||||
A.components.Cut()
|
||||
else
|
||||
A.state = 3
|
||||
|
||||
A.set_dir(dir)
|
||||
A.components = list()
|
||||
component_parts = list()
|
||||
A.icon_state = "[A.frame_type]_3"
|
||||
A.state = 3
|
||||
A.dir = dir
|
||||
A.pixel_x = pixel_x
|
||||
A.pixel_y = pixel_y
|
||||
A.check_components()
|
||||
A.update_desc()
|
||||
A.update_icon()
|
||||
M.loc = null
|
||||
M.deconstruct(src)
|
||||
qdel(src)
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
|
||||
/obj/machinery/mass_driver/New()
|
||||
..()
|
||||
circuit = new circuit(src)
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/weapon/stock_parts/motor(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/motor(src)
|
||||
|
||||
@@ -167,7 +167,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
|
||||
light_range = 0
|
||||
anchored = 1
|
||||
var/obj/machinery/exonet_node/node = null
|
||||
circuit = /obj/item/weapon/circuitboard/newscaster
|
||||
circuit = /obj/item/weapon/circuitboard/newscaster
|
||||
|
||||
/obj/machinery/newscaster/security_unit //Security unit
|
||||
name = "Security Newscaster"
|
||||
@@ -752,8 +752,30 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
|
||||
|
||||
|
||||
/obj/machinery/newscaster/attackby(I as obj, user as mob)
|
||||
if(computer_deconstruction_screwdriver(user, I))
|
||||
return
|
||||
if(istype(I, /obj/item/weapon/screwdriver) && circuit)
|
||||
user << "<span class='notice'>You start disconnecting the monitor.</span>"
|
||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
||||
if(do_after(user, 20))
|
||||
var/obj/structure/frame/A = new /obj/structure/frame( src.loc )
|
||||
var/obj/item/weapon/circuitboard/M = new circuit( A )
|
||||
A.frame_type = "newscaster"
|
||||
A.pixel_x = pixel_x
|
||||
A.pixel_y = pixel_y
|
||||
A.circuit = M
|
||||
A.anchored = 1
|
||||
for (var/obj/C in src)
|
||||
C.forceMove(loc)
|
||||
if (src.stat & isbroken == 1)
|
||||
user << "<span class='notice'>The broken glass falls out.</span>"
|
||||
new /obj/item/weapon/material/shard( src.loc )
|
||||
A.state = 3
|
||||
A.icon_state = "newscaster_3"
|
||||
else
|
||||
user << "<span class='notice'>You disconnect the monitor.</span>"
|
||||
A.state = 4
|
||||
A.icon_state = "newscaster_4"
|
||||
M.deconstruct(src)
|
||||
qdel(src)
|
||||
else
|
||||
src.attack_hand(user)
|
||||
return
|
||||
|
||||
@@ -17,6 +17,7 @@ obj/machinery/recharger
|
||||
circuit = /obj/item/weapon/circuitboard/recharger
|
||||
|
||||
obj/machinery/recharger/New()
|
||||
circuit = new circuit(src)
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/weapon/stock_parts/capacitor(src)
|
||||
component_parts += new /obj/item/stack/cable_coil(src, 5)
|
||||
@@ -169,4 +170,5 @@ obj/machinery/recharger/wallcharger
|
||||
icon_state_charging = "wrecharger1"
|
||||
icon_state_idle = "wrecharger0"
|
||||
portable = 0
|
||||
circuit = /obj/item/weapon/circuitboard/recharger/wrecharger
|
||||
circuit = /obj/item/weapon/circuitboard/recharger/wrecharger
|
||||
frame_type = "wrecharger"
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
|
||||
/obj/machinery/recharge_station/New()
|
||||
..()
|
||||
circuit = new circuit(src)
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
||||
@@ -31,6 +32,7 @@
|
||||
component_parts += new /obj/item/weapon/stock_parts/capacitor(src)
|
||||
component_parts += new /obj/item/weapon/cell/high(src)
|
||||
component_parts += new /obj/item/stack/cable_coil(src, 5)
|
||||
|
||||
RefreshParts()
|
||||
|
||||
update_icon()
|
||||
@@ -78,9 +80,9 @@
|
||||
|
||||
if(!has_cell_power())
|
||||
return 0
|
||||
if(use_power == 1)
|
||||
if(src.use_power == 1)
|
||||
cell.use(idle_power_usage * CELLRATE)
|
||||
else if(use_power >= 2)
|
||||
else if(src.use_power >= 2)
|
||||
cell.use(active_power_usage * CELLRATE)
|
||||
return 1
|
||||
|
||||
@@ -264,7 +266,7 @@
|
||||
if(!occupant)
|
||||
return
|
||||
|
||||
occupant.forceMove(src.loc)
|
||||
occupant.forceMove(loc)
|
||||
occupant.reset_view()
|
||||
occupant = null
|
||||
update_icon()
|
||||
|
||||
@@ -200,7 +200,9 @@ var/list/obj/machinery/requests_console/allConsoles = list()
|
||||
|
||||
//err... hacking code, which has no reason for existing... but anyway... it was once supposed to unlock priority 3 messanging on that console (EXTREME priority...), but the code for that was removed.
|
||||
/obj/machinery/requests_console/attackby(var/obj/item/weapon/O as obj, var/mob/user as mob)
|
||||
if(computer_deconstruction_screwdriver(user, O))
|
||||
if(default_deconstruction_screwdriver(user, O))
|
||||
return
|
||||
if(default_deconstruction_crowbar(user, O))
|
||||
return
|
||||
if(istype(O, /obj/item/device/multitool))
|
||||
if(panel_open)
|
||||
|
||||
@@ -53,8 +53,23 @@
|
||||
return ..()
|
||||
|
||||
/obj/machinery/status_display/attackby(I as obj, user as mob)
|
||||
if(computer_deconstruction_screwdriver(user, I))
|
||||
return
|
||||
if(istype(I, /obj/item/weapon/screwdriver) && circuit)
|
||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
||||
if(do_after(user, 20))
|
||||
var/obj/structure/frame/A = new /obj/structure/frame( src.loc )
|
||||
var/obj/item/weapon/circuitboard/M = new circuit( A )
|
||||
A.frame_type = "display"
|
||||
A.pixel_x = pixel_x
|
||||
A.pixel_y = pixel_y
|
||||
A.circuit = M
|
||||
A.anchored = 1
|
||||
for (var/obj/C in src)
|
||||
C.forceMove(loc)
|
||||
user << "<span class='notice'>You disconnect the monitor.</span>"
|
||||
A.state = 4
|
||||
A.icon_state = "display_4"
|
||||
M.deconstruct(src)
|
||||
qdel(src)
|
||||
else
|
||||
src.attack_hand(user)
|
||||
return
|
||||
|
||||
@@ -70,8 +70,23 @@ var/list/ai_status_emotions = list(
|
||||
var/emotion = "Neutral"
|
||||
|
||||
/obj/machinery/ai_status_display/attackby(I as obj, user as mob)
|
||||
if(computer_deconstruction_screwdriver(user, I))
|
||||
return
|
||||
if(istype(I, /obj/item/weapon/screwdriver) && circuit)
|
||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
||||
if(do_after(user, 20))
|
||||
var/obj/structure/frame/A = new /obj/structure/frame( src.loc )
|
||||
var/obj/item/weapon/circuitboard/M = new circuit( A )
|
||||
A.frame_type = "display"
|
||||
A.pixel_x = pixel_x
|
||||
A.pixel_y = pixel_y
|
||||
A.circuit = M
|
||||
A.anchored = 1
|
||||
for (var/obj/C in src)
|
||||
C.forceMove(loc)
|
||||
user << "<span class='notice'>You disconnect the monitor.</span>"
|
||||
A.state = 4
|
||||
A.icon_state = "display_4"
|
||||
M.deconstruct(src)
|
||||
qdel(src)
|
||||
else
|
||||
src.attack_hand(user)
|
||||
return
|
||||
|
||||
@@ -179,6 +179,7 @@
|
||||
underlays.Cut()
|
||||
underlays += image('icons/obj/stationobjs.dmi', icon_state = "tele-wires")
|
||||
|
||||
circuit = new circuit(src)
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/weapon/stock_parts/scanning_module(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/scanning_module(src)
|
||||
@@ -328,6 +329,7 @@
|
||||
overlays.Cut()
|
||||
overlays += image('icons/obj/stationobjs.dmi', icon_state = "controller-wires")
|
||||
|
||||
circuit = new circuit(src)
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/weapon/stock_parts/console_screen(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/capacitor(src)
|
||||
|
||||
@@ -4,96 +4,136 @@
|
||||
icon = 'icons/obj/stock_parts.dmi'
|
||||
icon_state = "frame_bitem"
|
||||
flags = CONDUCT
|
||||
var/build_machine_type
|
||||
var/build_machine_type = /obj/structure/frame
|
||||
var/refund_amt = 5
|
||||
var/refund_type = /obj/item/stack/material/steel
|
||||
var/reverse = 0 //if resulting object faces opposite its dir (like light fixtures)
|
||||
var/list/frame_types_floor
|
||||
var/list/frame_types_wall
|
||||
|
||||
/obj/item/frame/proc/update_type_list()
|
||||
if(!frame_types_floor)
|
||||
frame_types_floor = construction_frame_floor
|
||||
if(!frame_types_wall)
|
||||
frame_types_wall = construction_frame_wall
|
||||
var/frame_type = null
|
||||
|
||||
/obj/item/frame/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(istype(W, /obj/item/weapon/wrench))
|
||||
new refund_type(get_turf(src.loc), refund_amt)
|
||||
if (istype(W, /obj/item/weapon/wrench))
|
||||
new refund_type( get_turf(src.loc), refund_amt)
|
||||
qdel(src)
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/item/frame/attack_self(mob/user as mob)
|
||||
..()
|
||||
update_type_list()
|
||||
var/datum/frame/frame_types/frame_type
|
||||
if(!build_machine_type)
|
||||
var/datum/frame/frame_types/response = input(usr, "What kind of frame would you like to make?", "Frame type request", null) in frame_types_floor
|
||||
if(!response || response.name == "Cancel")
|
||||
return
|
||||
|
||||
if(!frame_type)
|
||||
var/response = input(usr, "What kind of frame would you like to make?", "Frame type request", null) in list("Computer", "Machine", "Holopad", "Conveyor",
|
||||
"Photocopier", "Fax", "Microwave",
|
||||
"Recharger", "Washing Machine", "Grinder",
|
||||
"Medical Console", "Medical Pod", "DNA Analyzer",
|
||||
"Mass Driver",
|
||||
"Cancel")
|
||||
|
||||
if(response == "Cancel")
|
||||
return
|
||||
frame_type = response
|
||||
|
||||
build_machine_type = /obj/structure/frame
|
||||
frame_type = lowertext(response)
|
||||
|
||||
if(frame_type.frame_size != 5)
|
||||
new /obj/item/stack/material/steel(usr.loc, (5 - frame_type.frame_size))
|
||||
switch(response)
|
||||
if("Holopad")
|
||||
new /obj/item/stack/material/steel( usr.loc, 1 ) //holopads are smaller, they only need 4 sheets
|
||||
if("Fax")
|
||||
new /obj/item/stack/material/steel( usr.loc, 2 ) //faxes are smaller, they only need 3 sheets
|
||||
if("Microwave")
|
||||
new /obj/item/stack/material/steel( usr.loc, 1 ) //microwaves are smaller, they only need 4 sheets
|
||||
if("Recharger")
|
||||
new /obj/item/stack/material/steel( usr.loc, 2 ) //rechargers are smaller, they only need 3 sheets
|
||||
if("Washing Machine")
|
||||
frame_type = "washing"
|
||||
if("Grinder")
|
||||
new /obj/item/stack/material/steel( usr.loc, 2 ) //grinders are smaller, they only need 3 sheets
|
||||
if("Medical Console")
|
||||
frame_type = "console"
|
||||
if("Medical Pod")
|
||||
frame_type = "medpod"
|
||||
if("DNA Analyzer")
|
||||
frame_type = "dna_analyzer"
|
||||
if("Mass Driver")
|
||||
frame_type = "massdriver"
|
||||
|
||||
var/ndir
|
||||
ndir = usr.dir
|
||||
if(!(ndir in cardinal))
|
||||
if (!(ndir in cardinal))
|
||||
return
|
||||
|
||||
var/obj/machinery/M = new build_machine_type(get_turf(src.loc), ndir, 1, frame_type)
|
||||
M.fingerprints = fingerprints
|
||||
M.fingerprintshidden = fingerprintshidden
|
||||
M.fingerprintslast = fingerprintslast
|
||||
M.fingerprints = src.fingerprints
|
||||
M.fingerprintshidden = src.fingerprintshidden
|
||||
M.fingerprintslast = src.fingerprintslast
|
||||
qdel(src)
|
||||
|
||||
/obj/item/frame/proc/try_build(turf/on_wall, mob/user as mob)
|
||||
update_type_list()
|
||||
var/datum/frame/frame_types/frame_type
|
||||
if(!build_machine_type)
|
||||
var/datum/frame/frame_types/response = input(usr, "What kind of frame would you like to make?", "Frame type request", null) in frame_types_wall
|
||||
if(!response || response.name == "Cancel")
|
||||
if(!frame_type)
|
||||
var/response = input(usr, "What kind of frame would you like to make?", "Frame type request", null) in list("Fire Alarm", "Air Alarm", "Display", "Newscaster",
|
||||
"ATM", "Guest Pass Console", "Intercom", "Keycard Authenticator",
|
||||
"Wall Charger", "Supply Request Console",
|
||||
"Cancel")
|
||||
|
||||
if(response == "Cancel")
|
||||
return
|
||||
frame_type = response
|
||||
|
||||
build_machine_type = /obj/structure/frame
|
||||
frame_type = lowertext(response)
|
||||
|
||||
if(frame_type.frame_size != 5)
|
||||
new /obj/item/stack/material/steel(usr.loc, (5 - frame_type.frame_size))
|
||||
switch(response)
|
||||
if("Fire Alarm")
|
||||
frame_type = "firealarm"
|
||||
new /obj/item/stack/material/steel( usr.loc, 3 ) //fire alarms are smaller, they only need 2 sheets
|
||||
if("Air Alarm")
|
||||
frame_type = "airalarm"
|
||||
new /obj/item/stack/material/steel( usr.loc, 3 ) //air alarms are smaller, they only need 2 sheets
|
||||
if("Intercom")
|
||||
new /obj/item/stack/material/steel( usr.loc, 3 ) //intercoms are smaller, they only need 2 sheets
|
||||
if("Newscaster")
|
||||
new /obj/item/stack/material/steel( usr.loc, 2 ) //newscasters are smaller, they only need 3 sheets
|
||||
if("Guest Pass Console")
|
||||
frame_type = "guestpass"
|
||||
new /obj/item/stack/material/steel( usr.loc, 3 ) //guestpass consoles are smaller, they only need 2 sheets
|
||||
if("Keycard Authenticator")
|
||||
frame_type = "keycard"
|
||||
new /obj/item/stack/material/steel( usr.loc, 4 ) //keycard authenticators are smaller, they only need 1 sheets
|
||||
if("Wall Charger")
|
||||
frame_type = "wrecharger"
|
||||
new /obj/item/stack/material/steel( usr.loc, 2 ) //wall rechargers are smaller, they only need 3 sheets
|
||||
if("Supply Request Console")
|
||||
frame_type = "request"
|
||||
|
||||
if(get_dist(on_wall, usr)>1)
|
||||
if(!build_machine_type)
|
||||
return
|
||||
|
||||
if (get_dist(on_wall,usr)>1)
|
||||
return
|
||||
|
||||
var/ndir
|
||||
if(reverse)
|
||||
ndir = get_dir(usr, on_wall)
|
||||
ndir = get_dir(usr,on_wall)
|
||||
else
|
||||
ndir = get_dir(on_wall, usr)
|
||||
ndir = get_dir(on_wall,usr)
|
||||
|
||||
if(!(ndir in cardinal))
|
||||
if (!(ndir in cardinal))
|
||||
return
|
||||
|
||||
var/turf/loc = get_turf(usr)
|
||||
var/area/A = loc.loc
|
||||
if(!istype(loc, /turf/simulated/floor))
|
||||
if (!istype(loc, /turf/simulated/floor))
|
||||
usr << "<span class='danger'>\The frame cannot be placed on this spot.</span>"
|
||||
return
|
||||
|
||||
if(A.requires_power == 0 || A.name == "Space")
|
||||
if (A.requires_power == 0 || A.name == "Space")
|
||||
usr << "<span class='danger'>\The [src] Alarm cannot be placed in this area.</span>"
|
||||
return
|
||||
|
||||
if(gotwallitem(loc, ndir))
|
||||
usr << "<span class='danger'>There's already an item on this wall!</span>"
|
||||
return
|
||||
|
||||
var/obj/machinery/M = new build_machine_type(loc, ndir, 1, frame_type)
|
||||
M.fingerprints = fingerprints
|
||||
M.fingerprintshidden = fingerprintshidden
|
||||
M.fingerprintslast = fingerprintslast
|
||||
M.fingerprints = src.fingerprints
|
||||
M.fingerprintshidden = src.fingerprintshidden
|
||||
M.fingerprintslast = src.fingerprintslast
|
||||
qdel(src)
|
||||
|
||||
/obj/item/frame/light
|
||||
@@ -103,12 +143,14 @@
|
||||
icon_state = "tube-construct-item"
|
||||
build_machine_type = /obj/machinery/light_construct
|
||||
reverse = 1
|
||||
frame_type = 1
|
||||
|
||||
/obj/item/frame/light/small
|
||||
name = "small light fixture frame"
|
||||
icon_state = "bulb-construct-item"
|
||||
refund_amt = 1
|
||||
build_machine_type = /obj/machinery/light_construct/small
|
||||
frame_type = 1
|
||||
|
||||
/obj/item/frame/extinguisher_cabinet
|
||||
name = "extinguisher cabinet frame"
|
||||
@@ -117,6 +159,7 @@
|
||||
icon_state = "extinguisher_empty"
|
||||
refund_amt = 4
|
||||
build_machine_type = /obj/structure/extinguisher_cabinet
|
||||
frame_type = 1
|
||||
|
||||
/obj/item/frame/noticeboard
|
||||
name = "noticeboard frame"
|
||||
@@ -126,6 +169,7 @@
|
||||
refund_amt = 4
|
||||
refund_type = /obj/item/stack/material/wood
|
||||
build_machine_type = /obj/structure/noticeboard
|
||||
frame_type = 1
|
||||
|
||||
/obj/item/frame/mirror
|
||||
name = "mirror frame"
|
||||
@@ -134,6 +178,7 @@
|
||||
icon_state = "mirror_frame"
|
||||
refund_amt = 1
|
||||
build_machine_type = /obj/structure/mirror
|
||||
frame_type = 1
|
||||
|
||||
/obj/item/frame/fireaxe_cabinet
|
||||
name = "fire axe cabinet frame"
|
||||
@@ -141,4 +186,5 @@
|
||||
icon = 'icons/obj/closet.dmi'
|
||||
icon_state = "fireaxe0101"
|
||||
refund_amt = 4
|
||||
build_machine_type = /obj/structure/closet/fireaxecabinet
|
||||
build_machine_type = /obj/structure/closet/fireaxecabinet
|
||||
frame_type = 1
|
||||
@@ -26,7 +26,7 @@
|
||||
)
|
||||
|
||||
/obj/machinery/washing_machine/New()
|
||||
..()
|
||||
circuit = new circuit(src)
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/weapon/stock_parts/motor(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/gear(src)
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
icon = 'icons/mecha/mech_bay.dmi'
|
||||
icon_state = "recharge_floor"
|
||||
density = 0
|
||||
anchored = 1
|
||||
layer = TURF_LAYER + 0.1
|
||||
circuit = /obj/item/weapon/circuitboard/mech_recharger
|
||||
|
||||
@@ -15,11 +14,13 @@
|
||||
/obj/machinery/mech_recharger/New()
|
||||
..()
|
||||
component_parts = list()
|
||||
|
||||
component_parts += new /obj/item/weapon/stock_parts/capacitor(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/capacitor(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/scanning_module(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
||||
|
||||
RefreshParts()
|
||||
|
||||
/obj/machinery/mech_recharger/Crossed(var/obj/mecha/M)
|
||||
@@ -49,7 +50,7 @@
|
||||
..()
|
||||
if(!charging)
|
||||
return
|
||||
if(charging.loc != src.loc) // Could be qdel or teleport or something
|
||||
if(charging.loc != loc) // Could be qdel or teleport or something
|
||||
stop_charging()
|
||||
return
|
||||
var/done = 1
|
||||
@@ -94,4 +95,4 @@
|
||||
if(!charging)
|
||||
|
||||
return
|
||||
charging = null
|
||||
charging = null
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
|
||||
/obj/machinery/mecha_part_fabricator/New()
|
||||
..()
|
||||
circuit = new circuit(src)
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/weapon/stock_parts/matter_bin(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/matter_bin(src)
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
|
||||
/obj/machinery/pros_fabricator/New()
|
||||
..()
|
||||
circuit = new circuit(src)
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/weapon/stock_parts/matter_bin(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/matter_bin(src)
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
origin_tech = list(TECH_MAGNET = 1, TECH_ENGINEERING = 1)
|
||||
var/obj/machinery/telecomms/buffer // simple machine buffer for device linkage
|
||||
var/obj/machinery/clonepod/connecting //same for cryopod linkage
|
||||
var/obj/machinery/connectable //Used to connect machinery.
|
||||
|
||||
var/obj/machinery/connectable //Used to connect machinery, currently only used by Xenobio2.
|
||||
|
||||
/obj/item/device/multitool/attack_self(mob/user)
|
||||
var/clear = alert("Do you want to clear the buffers on the [src]?",, "Yes", "No",)
|
||||
if(clear == "Yes")
|
||||
|
||||
@@ -46,7 +46,6 @@
|
||||
/obj/item/device/radio/intercom/New()
|
||||
..()
|
||||
processing_objects += src
|
||||
circuit = new circuit(src)
|
||||
|
||||
/obj/item/device/radio/intercom/department/medbay/New()
|
||||
..()
|
||||
@@ -85,7 +84,7 @@
|
||||
attack_self(user)
|
||||
|
||||
/obj/item/device/radio/intercom/attackby(obj/item/W as obj, mob/user as mob)
|
||||
add_fingerprint(user)
|
||||
src.add_fingerprint(user)
|
||||
if(istype(W, /obj/item/weapon/screwdriver)) // Opening the intercom up.
|
||||
wiresexposed = !wiresexposed
|
||||
user << "The wires have been [wiresexposed ? "exposed" : "unexposed"]"
|
||||
@@ -97,20 +96,22 @@
|
||||
else
|
||||
icon_state = "intercom"
|
||||
return
|
||||
if(wiresexposed && istype(W, /obj/item/weapon/wirecutters))
|
||||
if (wiresexposed && istype(W, /obj/item/weapon/wirecutters))
|
||||
user.visible_message("<span class='warning'>[user] has cut the wires inside \the [src]!</span>", "You have cut the wires inside \the [src].")
|
||||
playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
|
||||
new/obj/item/stack/cable_coil(get_turf(src), 5)
|
||||
var/obj/structure/frame/A = new /obj/structure/frame(src.loc)
|
||||
var/obj/item/weapon/circuitboard/M = circuit
|
||||
A.frame_type = M.board_type
|
||||
var/obj/structure/frame/A = new /obj/structure/frame( src.loc )
|
||||
var/obj/item/weapon/circuitboard/M = new circuit( A )
|
||||
A.frame_type = "intercom"
|
||||
A.pixel_x = pixel_x
|
||||
A.pixel_y = pixel_y
|
||||
A.circuit = M
|
||||
A.set_dir(dir)
|
||||
A.anchored = 1
|
||||
for (var/obj/C in src)
|
||||
C.forceMove(loc)
|
||||
A.state = 2
|
||||
A.update_icon()
|
||||
A.icon_state = "intercom_2"
|
||||
M.deconstruct(src)
|
||||
qdel(src)
|
||||
else
|
||||
|
||||
@@ -19,19 +19,19 @@
|
||||
throw_speed = 3
|
||||
throw_range = 15
|
||||
var/build_path = null
|
||||
var/board_type = new /datum/frame/frame_types/computer
|
||||
var/board_type = "computer"
|
||||
var/list/req_components = null
|
||||
var/contain_parts = 1
|
||||
|
||||
//Called when the circuitboard is used to contruct a new machine.
|
||||
/obj/item/weapon/circuitboard/proc/construct(var/obj/machinery/M)
|
||||
if(istype(M, build_path))
|
||||
if (istype(M, build_path))
|
||||
return 1
|
||||
return 0
|
||||
|
||||
//Called when a computer is deconstructed to produce a circuitboard.
|
||||
//Only used by computers, as other machines store their circuitboard instance.
|
||||
/obj/item/weapon/circuitboard/proc/deconstruct(var/obj/machinery/M)
|
||||
if(istype(M, build_path))
|
||||
if (istype(M, build_path))
|
||||
return 1
|
||||
return 0
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
/obj/item/weapon/circuitboard/security/telescreen/entertainment
|
||||
name = T_BOARD("entertainment camera monitor")
|
||||
build_path = /obj/machinery/computer/security/telescreen/entertainment
|
||||
board_type = new /datum/frame/frame_types/display
|
||||
board_type = "display"
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
|
||||
|
||||
/obj/item/weapon/circuitboard/security/telescreen/entertainment/New()
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#ifndef T_BOARD
|
||||
#error T_BOARD macro is not defined but we need it!
|
||||
#error T_BOARD macro is not defined but we need it!
|
||||
#endif
|
||||
|
||||
/obj/item/weapon/circuitboard/rdconsole
|
||||
@@ -9,12 +9,12 @@
|
||||
/obj/item/weapon/circuitboard/rdconsole/attackby(obj/item/I as obj, mob/user as mob)
|
||||
if(istype(I,/obj/item/weapon/screwdriver))
|
||||
user.visible_message("<span class='notice'>\The [user] adjusts the jumper on \the [src]'s access protocol pins.</span>", "<span class='notice'>You adjust the jumper on the access protocol pins.</span>")
|
||||
if(build_path == /obj/machinery/computer/rdconsole/core)
|
||||
name = T_BOARD("RD Console - Robotics")
|
||||
build_path = /obj/machinery/computer/rdconsole/robotics
|
||||
if(src.build_path == /obj/machinery/computer/rdconsole/core)
|
||||
src.name = T_BOARD("RD Console - Robotics")
|
||||
src.build_path = /obj/machinery/computer/rdconsole/robotics
|
||||
user << "<span class='notice'>Access protocols set to robotics.</span>"
|
||||
else
|
||||
name = T_BOARD("RD Console")
|
||||
build_path = /obj/machinery/computer/rdconsole/core
|
||||
src.name = T_BOARD("RD Console")
|
||||
src.build_path = /obj/machinery/computer/rdconsole/core
|
||||
user << "<span class='notice'>Access protocols set to default.</span>"
|
||||
return
|
||||
return
|
||||
|
||||
@@ -9,37 +9,37 @@
|
||||
/obj/item/weapon/circuitboard/guestpass
|
||||
name = T_BOARD("guestpass console")
|
||||
build_path = /obj/machinery/computer/guestpass
|
||||
board_type = new /datum/frame/frame_types/guest_pass_console
|
||||
board_type = "guestpass"
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
|
||||
|
||||
/obj/item/weapon/circuitboard/status_display
|
||||
name = T_BOARD("status display")
|
||||
build_path = /obj/machinery/status_display
|
||||
board_type = new /datum/frame/frame_types/display
|
||||
board_type = "display"
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
|
||||
|
||||
/obj/item/weapon/circuitboard/ai_status_display
|
||||
name = T_BOARD("ai status display")
|
||||
build_path = /obj/machinery/ai_status_display
|
||||
board_type = new /datum/frame/frame_types/display
|
||||
board_type = "display"
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
|
||||
|
||||
/obj/item/weapon/circuitboard/newscaster
|
||||
name = T_BOARD("newscaster")
|
||||
build_path = /obj/machinery/newscaster
|
||||
board_type = new /datum/frame/frame_types/newscaster
|
||||
board_type = "newscaster"
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
|
||||
|
||||
/obj/item/weapon/circuitboard/atm
|
||||
name = T_BOARD("atm")
|
||||
build_path = /obj/machinery/atm
|
||||
board_type = new /datum/frame/frame_types/atm
|
||||
board_type = "atm"
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
|
||||
|
||||
/obj/item/weapon/circuitboard/request
|
||||
name = T_BOARD("reques console")
|
||||
build_path = /obj/machinery/requests_console
|
||||
board_type = new /datum/frame/frame_types/supply_request_console
|
||||
board_type = "request"
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
|
||||
|
||||
//Alarm
|
||||
@@ -47,25 +47,25 @@
|
||||
/obj/item/weapon/circuitboard/firealarm
|
||||
name = T_BOARD("fire alarm")
|
||||
build_path = /obj/machinery/firealarm
|
||||
board_type = new /datum/frame/frame_types/fire_alarm
|
||||
board_type = "firealarm"
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
|
||||
|
||||
/obj/item/weapon/circuitboard/airalarm
|
||||
name = T_BOARD("air alarm")
|
||||
build_path = /obj/machinery/alarm
|
||||
board_type = new /datum/frame/frame_types/air_alarm
|
||||
board_type = "airalarm"
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
|
||||
|
||||
/obj/item/weapon/circuitboard/intercom
|
||||
name = T_BOARD("intercom")
|
||||
build_path = /obj/item/device/radio/intercom
|
||||
board_type = new /datum/frame/frame_types/intercom
|
||||
board_type = "intercom"
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
|
||||
|
||||
/obj/item/weapon/circuitboard/keycard_auth
|
||||
name = T_BOARD("keycard authenticator")
|
||||
build_path = /obj/machinery/keycard_auth
|
||||
board_type = new /datum/frame/frame_types/keycard_authenticator
|
||||
board_type = "keycard"
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
|
||||
|
||||
//Computer
|
||||
@@ -73,19 +73,19 @@
|
||||
/obj/item/weapon/circuitboard/holopad
|
||||
name = T_BOARD("holopad")
|
||||
build_path = /obj/machinery/hologram/holopad
|
||||
board_type = new /datum/frame/frame_types/holopad
|
||||
board_type = "holopad"
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
|
||||
|
||||
/obj/item/weapon/circuitboard/scanner_console
|
||||
name = T_BOARD("body scanner console")
|
||||
build_path = /obj/machinery/body_scanconsole
|
||||
board_type = new /datum/frame/frame_types/medical_console
|
||||
board_type = "console"
|
||||
origin_tech = list(TECH_MAGNET = 2, TECH_BIO = 2)
|
||||
|
||||
/obj/item/weapon/circuitboard/sleeper_console
|
||||
name = T_BOARD("sleeper console")
|
||||
build_path = /obj/machinery/sleep_console
|
||||
board_type = new /datum/frame/frame_types/medical_console
|
||||
board_type = "console"
|
||||
origin_tech = list(TECH_MAGNET = 2, TECH_BIO = 2)
|
||||
|
||||
//Machine
|
||||
@@ -93,7 +93,7 @@
|
||||
/obj/item/weapon/circuitboard/photocopier
|
||||
name = T_BOARD("photocopier")
|
||||
build_path = /obj/machinery/photocopier
|
||||
board_type = new /datum/frame/frame_types/photocopier
|
||||
board_type = "photocopier"
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/scanning_module = 1,
|
||||
@@ -104,7 +104,7 @@
|
||||
/obj/item/weapon/circuitboard/fax
|
||||
name = T_BOARD("fax")
|
||||
build_path = /obj/machinery/photocopier/faxmachine
|
||||
board_type = new /datum/frame/frame_types/fax
|
||||
board_type = "fax"
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/scanning_module = 1,
|
||||
@@ -115,7 +115,7 @@
|
||||
/obj/item/weapon/circuitboard/conveyor
|
||||
name = T_BOARD("conveyor")
|
||||
build_path = /obj/machinery/conveyor
|
||||
board_type = new /datum/frame/frame_types/conveyor
|
||||
board_type = "conveyor"
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/gear = 2,
|
||||
/obj/item/weapon/stock_parts/motor = 2,
|
||||
@@ -124,7 +124,7 @@
|
||||
/obj/item/weapon/circuitboard/microwave
|
||||
name = T_BOARD("microwave")
|
||||
build_path = /obj/machinery/microwave
|
||||
board_type = new /datum/frame/frame_types/microwave
|
||||
board_type = "microwave"
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/console_screen = 1,
|
||||
@@ -134,7 +134,7 @@
|
||||
/obj/item/weapon/circuitboard/recharger
|
||||
name = T_BOARD("recharger")
|
||||
build_path = /obj/machinery/recharger
|
||||
board_type = new /datum/frame/frame_types/recharger
|
||||
board_type = "recharger"
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/capacitor = 1,
|
||||
/obj/item/stack/cable_coil = 5)
|
||||
@@ -142,12 +142,12 @@
|
||||
/obj/item/weapon/circuitboard/recharger/wrecharger
|
||||
name = T_BOARD("wall recharger")
|
||||
build_path = /obj/machinery/recharger/wallcharger
|
||||
board_type = new /datum/frame/frame_types/wall_charger
|
||||
board_type = "wrecharger"
|
||||
|
||||
/obj/item/weapon/circuitboard/washing
|
||||
name = T_BOARD("washing machine")
|
||||
build_path = /obj/machinery/washing_machine
|
||||
board_type = new /datum/frame/frame_types/washing_machine
|
||||
board_type = "washing"
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/motor = 1,
|
||||
@@ -156,7 +156,7 @@
|
||||
/obj/item/weapon/circuitboard/grinder
|
||||
name = T_BOARD("reagent grinder")
|
||||
build_path = /obj/machinery/reagentgrinder
|
||||
board_type = new /datum/frame/frame_types/grinder
|
||||
board_type = "grinder"
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/motor = 1,
|
||||
/obj/item/weapon/stock_parts/gear = 1,
|
||||
@@ -185,7 +185,7 @@
|
||||
/obj/item/weapon/circuitboard/body_scanner
|
||||
name = T_BOARD("body scanner")
|
||||
build_path = /obj/machinery/bodyscanner
|
||||
board_type = new /datum/frame/frame_types/medical_pod
|
||||
board_type = "medpod"
|
||||
origin_tech = list(TECH_MAGNET = 2, TECH_BIO = 2)
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/scanning_module = 3,
|
||||
@@ -194,7 +194,7 @@
|
||||
/obj/item/weapon/circuitboard/sleeper
|
||||
name = T_BOARD("sleeper")
|
||||
build_path = /obj/machinery/sleeper
|
||||
board_type = new /datum/frame/frame_types/medical_pod
|
||||
board_type = "medpod"
|
||||
origin_tech = list(TECH_MAGNET = 2, TECH_BIO = 2)
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/scanning_module = 1,
|
||||
@@ -205,7 +205,7 @@
|
||||
/obj/item/weapon/circuitboard/dna_analyzer
|
||||
name = T_BOARD("dna analyzer")
|
||||
build_path = /obj/machinery/dnaforensics
|
||||
board_type = new /datum/frame/frame_types/dna_analyzer
|
||||
board_type = "dna_analyzer"
|
||||
origin_tech = list(TECH_MAGNET = 4, TECH_BIO = 2, TECH_DATA = 2)
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/scanning_module = 2,
|
||||
@@ -215,10 +215,104 @@
|
||||
/obj/item/weapon/circuitboard/mass_driver
|
||||
name = T_BOARD("mass driver")
|
||||
build_path = /obj/machinery/mass_driver
|
||||
board_type = new /datum/frame/frame_types/mass_driver
|
||||
board_type = "massdriver"
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/gear = 2,
|
||||
/obj/item/weapon/stock_parts/motor = 2,
|
||||
/obj/item/weapon/stock_parts/capacitor = 1,
|
||||
/obj/item/weapon/stock_parts/spring = 1,
|
||||
/obj/item/stack/cable_coil = 5)
|
||||
/obj/item/stack/cable_coil = 5)
|
||||
|
||||
//for testing - If this is still in when I commit, someone shoot me. --leaving in for now, shouldn't be able to get these on station anyways.
|
||||
/obj/item/weapon/storage/box/frame_parts
|
||||
display_contents_with_number = 1
|
||||
New()
|
||||
..()
|
||||
new /obj/item/weapon/circuitboard/guestpass( src )
|
||||
new /obj/item/weapon/circuitboard/status_display( src )
|
||||
new /obj/item/weapon/circuitboard/ai_status_display( src )
|
||||
new /obj/item/weapon/circuitboard/newscaster( src )
|
||||
new /obj/item/weapon/circuitboard/atm( src )
|
||||
new /obj/item/weapon/circuitboard/firealarm( src )
|
||||
new /obj/item/weapon/circuitboard/airalarm( src )
|
||||
new /obj/item/weapon/circuitboard/intercom( src )
|
||||
new /obj/item/weapon/circuitboard/keycard_auth( src )
|
||||
new /obj/item/weapon/circuitboard/holopad( src )
|
||||
new /obj/item/weapon/circuitboard/photocopier( src )
|
||||
new /obj/item/weapon/circuitboard/fax( src )
|
||||
new /obj/item/weapon/circuitboard/microwave( src )
|
||||
new /obj/item/weapon/circuitboard/washing( src )
|
||||
new /obj/item/weapon/stock_parts/scanning_module( src )
|
||||
new /obj/item/weapon/stock_parts/motor( src )
|
||||
new /obj/item/weapon/stock_parts/micro_laser( src )
|
||||
new /obj/item/weapon/stock_parts/matter_bin( src )
|
||||
new /obj/item/weapon/stock_parts/gear( src )
|
||||
new /obj/item/weapon/stock_parts/console_screen( src )
|
||||
new /obj/item/weapon/stock_parts/capacitor( src )
|
||||
new /obj/item/weapon/stock_parts/spring( src )
|
||||
new /obj/item/weapon/stock_parts/scanning_module( src )
|
||||
new /obj/item/weapon/stock_parts/motor( src )
|
||||
new /obj/item/weapon/stock_parts/micro_laser( src )
|
||||
new /obj/item/weapon/stock_parts/matter_bin( src )
|
||||
new /obj/item/weapon/stock_parts/gear( src )
|
||||
new /obj/item/weapon/stock_parts/console_screen( src )
|
||||
new /obj/item/weapon/stock_parts/capacitor( src )
|
||||
new /obj/item/weapon/stock_parts/spring( src )
|
||||
new /obj/item/weapon/stock_parts/scanning_module( src )
|
||||
new /obj/item/weapon/stock_parts/motor( src )
|
||||
new /obj/item/weapon/stock_parts/micro_laser( src )
|
||||
new /obj/item/weapon/stock_parts/matter_bin( src )
|
||||
new /obj/item/weapon/stock_parts/gear( src )
|
||||
new /obj/item/weapon/stock_parts/console_screen( src )
|
||||
new /obj/item/weapon/stock_parts/capacitor( src )
|
||||
new /obj/item/weapon/stock_parts/spring( src )
|
||||
new /obj/item/weapon/stock_parts/scanning_module( src )
|
||||
new /obj/item/weapon/stock_parts/motor( src )
|
||||
new /obj/item/weapon/stock_parts/micro_laser( src )
|
||||
new /obj/item/weapon/stock_parts/matter_bin( src )
|
||||
new /obj/item/weapon/stock_parts/gear( src )
|
||||
new /obj/item/weapon/stock_parts/console_screen( src )
|
||||
new /obj/item/weapon/stock_parts/capacitor( src )
|
||||
new /obj/item/weapon/stock_parts/spring( src )
|
||||
new /obj/item/weapon/stock_parts/scanning_module( src )
|
||||
new /obj/item/weapon/stock_parts/motor( src )
|
||||
new /obj/item/weapon/stock_parts/micro_laser( src )
|
||||
new /obj/item/weapon/stock_parts/matter_bin( src )
|
||||
new /obj/item/weapon/stock_parts/gear( src )
|
||||
new /obj/item/weapon/stock_parts/console_screen( src )
|
||||
new /obj/item/weapon/stock_parts/capacitor( src )
|
||||
new /obj/item/weapon/stock_parts/spring( src )
|
||||
new /obj/item/weapon/stock_parts/scanning_module( src )
|
||||
new /obj/item/weapon/stock_parts/motor( src )
|
||||
new /obj/item/weapon/stock_parts/micro_laser( src )
|
||||
new /obj/item/weapon/stock_parts/matter_bin( src )
|
||||
new /obj/item/weapon/stock_parts/gear( src )
|
||||
new /obj/item/weapon/stock_parts/console_screen( src )
|
||||
new /obj/item/weapon/stock_parts/capacitor( src )
|
||||
new /obj/item/weapon/stock_parts/spring( src )
|
||||
new /obj/item/weapon/stock_parts/scanning_module( src )
|
||||
new /obj/item/weapon/stock_parts/motor( src )
|
||||
new /obj/item/weapon/stock_parts/micro_laser( src )
|
||||
new /obj/item/weapon/stock_parts/matter_bin( src )
|
||||
new /obj/item/weapon/stock_parts/gear( src )
|
||||
new /obj/item/weapon/stock_parts/console_screen( src )
|
||||
new /obj/item/weapon/stock_parts/capacitor( src )
|
||||
new /obj/item/weapon/stock_parts/spring( src )
|
||||
new /obj/item/weapon/stock_parts/scanning_module( src )
|
||||
new /obj/item/weapon/stock_parts/motor( src )
|
||||
new /obj/item/weapon/stock_parts/micro_laser( src )
|
||||
new /obj/item/weapon/stock_parts/matter_bin( src )
|
||||
new /obj/item/weapon/stock_parts/gear( src )
|
||||
new /obj/item/weapon/stock_parts/console_screen( src )
|
||||
new /obj/item/weapon/stock_parts/capacitor( src )
|
||||
new /obj/item/weapon/stock_parts/spring( src )
|
||||
new /obj/item/weapon/stock_parts/scanning_module( src )
|
||||
new /obj/item/weapon/stock_parts/motor( src )
|
||||
new /obj/item/weapon/stock_parts/micro_laser( src )
|
||||
new /obj/item/weapon/stock_parts/matter_bin( src )
|
||||
new /obj/item/weapon/stock_parts/gear( src )
|
||||
new /obj/item/weapon/stock_parts/console_screen( src )
|
||||
new /obj/item/weapon/stock_parts/capacitor( src )
|
||||
new /obj/item/weapon/stock_parts/spring( src )
|
||||
new /obj/item/stack/cable_coil( src , 5 )
|
||||
new /obj/item/stack/material/glass/reinforced( src , 2 )
|
||||
@@ -5,7 +5,7 @@
|
||||
/obj/item/weapon/circuitboard/biogenerator
|
||||
name = T_BOARD("biogenerator")
|
||||
build_path = "/obj/machinery/biogenerator"
|
||||
board_type = new /datum/frame/frame_types/machine
|
||||
board_type = "machine"
|
||||
origin_tech = list(TECH_DATA = 2)
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/matter_bin = 1,
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
/obj/item/weapon/circuitboard/clonepod
|
||||
name = T_BOARD("clone pod")
|
||||
build_path = "/obj/machinery/clonepod"
|
||||
board_type = new /datum/frame/frame_types/machine
|
||||
board_type = "machine"
|
||||
origin_tech = list(TECH_DATA = 3, TECH_BIO = 3)
|
||||
req_components = list(
|
||||
/obj/item/stack/cable_coil = 2,
|
||||
@@ -16,7 +16,7 @@
|
||||
/obj/item/weapon/circuitboard/clonescanner
|
||||
name = T_BOARD("cloning scanner")
|
||||
build_path = "/obj/machinery/dna_scannernew"
|
||||
board_type = new /datum/frame/frame_types/machine
|
||||
board_type = "machine"
|
||||
origin_tech = list(TECH_DATA = 2, TECH_BIO = 2)
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/scanning_module = 1,
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
/obj/item/weapon/circuitboard/jukebox
|
||||
name = T_BOARD("jukebox")
|
||||
build_path = "/obj/machinery/media/jukebox"
|
||||
board_type = new /datum/frame/frame_types/machine
|
||||
board_type = "machine"
|
||||
origin_tech = list(TECH_MAGNET = 2, TECH_DATA = 1)
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/capacitor = 1,
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
/obj/item/weapon/circuitboard/mech_recharger
|
||||
name = T_BOARD("mech recharger")
|
||||
build_path = "/obj/machinery/mech_recharger"
|
||||
board_type = new /datum/frame/frame_types/machine
|
||||
board_type = "machine"
|
||||
origin_tech = list(TECH_DATA = 2, TECH_POWER = 2, TECH_ENGINEERING = 2)
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/capacitor = 2,
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
/obj/item/weapon/circuitboard/miningdrill
|
||||
name = T_BOARD("mining drill head")
|
||||
build_path = "/obj/machinery/mining/drill"
|
||||
board_type = new /datum/frame/frame_types/machine
|
||||
board_type = "machine"
|
||||
origin_tech = list(TECH_DATA = 1, TECH_ENGINEERING = 1)
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/capacitor = 1,
|
||||
@@ -16,6 +16,6 @@
|
||||
/obj/item/weapon/circuitboard/miningdrillbrace
|
||||
name = T_BOARD("mining drill brace")
|
||||
build_path = "/obj/machinery/mining/brace"
|
||||
board_type = new /datum/frame/frame_types/machine
|
||||
board_type = "machine"
|
||||
origin_tech = list(TECH_DATA = 1, TECH_ENGINEERING = 1)
|
||||
req_components = list()
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
/obj/item/weapon/circuitboard/pacman
|
||||
name = T_BOARD("PACMAN-type generator")
|
||||
build_path = "/obj/machinery/power/port_gen/pacman"
|
||||
board_type = new /datum/frame/frame_types/machine
|
||||
board_type = "machine"
|
||||
origin_tech = list(TECH_DATA = 3, TECH_POWER = 3, TECH_PHORON = 3, TECH_ENGINEERING = 3)
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/matter_bin = 1,
|
||||
|
||||
@@ -5,14 +5,14 @@
|
||||
/obj/item/weapon/circuitboard/smes
|
||||
name = T_BOARD("superconductive magnetic energy storage")
|
||||
build_path = "/obj/machinery/power/smes/buildable"
|
||||
board_type = new /datum/frame/frame_types/machine
|
||||
board_type = "machine"
|
||||
origin_tech = list(TECH_POWER = 6, TECH_ENGINEERING = 4)
|
||||
req_components = list(/obj/item/weapon/smes_coil = 1, /obj/item/stack/cable_coil = 30)
|
||||
|
||||
/obj/item/weapon/circuitboard/batteryrack
|
||||
name = T_BOARD("battery rack PSU")
|
||||
build_path = "/obj/machinery/power/smes/batteryrack"
|
||||
board_type = new /datum/frame/frame_types/machine
|
||||
board_type = "machine"
|
||||
origin_tech = list(TECH_POWER = 3, TECH_ENGINEERING = 2)
|
||||
req_components = list(/obj/item/weapon/cell = 3)
|
||||
|
||||
@@ -20,5 +20,5 @@
|
||||
name = T_BOARD("makeshift PSU")
|
||||
desc = "An APC circuit repurposed into some power storage device controller"
|
||||
build_path = "/obj/machinery/power/smes/batteryrack/makeshift"
|
||||
board_type = new /datum/frame/frame_types/machine
|
||||
board_type = "machine"
|
||||
req_components = list(/obj/item/weapon/cell = 3)
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
/obj/item/weapon/circuitboard/recharge_station
|
||||
name = T_BOARD("cyborg recharging station")
|
||||
build_path = "/obj/machinery/recharge_station"
|
||||
board_type = new /datum/frame/frame_types/machine
|
||||
board_type = "machine"
|
||||
origin_tech = list(TECH_DATA = 3, TECH_ENGINEERING = 3)
|
||||
req_components = list(
|
||||
/obj/item/stack/cable_coil = 5,
|
||||
|
||||
@@ -4,30 +4,17 @@
|
||||
|
||||
obj/item/weapon/circuitboard/rdserver
|
||||
name = T_BOARD("R&D server")
|
||||
build_path = /obj/machinery/r_n_d/server/core
|
||||
board_type = new /datum/frame/frame_types/machine
|
||||
build_path = "/obj/machinery/r_n_d/server"
|
||||
board_type = "machine"
|
||||
origin_tech = list(TECH_DATA = 3)
|
||||
req_components = list(
|
||||
/obj/item/stack/cable_coil = 2,
|
||||
/obj/item/weapon/stock_parts/scanning_module = 1)
|
||||
|
||||
obj/item/weapon/circuitboard/rdserver/attackby(obj/item/I as obj, mob/user as mob)
|
||||
if(istype(I,/obj/item/weapon/screwdriver))
|
||||
user.visible_message("<span class='notice'>\The [user] adjusts the jumper on \the [src]'s access protocol pins.</span>", "<span class='notice'>You adjust the jumper on the access protocol pins.</span>")
|
||||
if(build_path == /obj/machinery/r_n_d/server/core)
|
||||
name = T_BOARD("RD Console - Robotics")
|
||||
build_path = /obj/machinery/r_n_d/server/robotics
|
||||
user << "<span class='notice'>Access protocols set to robotics.</span>"
|
||||
else
|
||||
name = T_BOARD("RD Console")
|
||||
build_path = /obj/machinery/r_n_d/server/core
|
||||
user << "<span class='notice'>Access protocols set to default.</span>"
|
||||
return
|
||||
|
||||
/obj/item/weapon/circuitboard/destructive_analyzer
|
||||
name = T_BOARD("destructive analyzer")
|
||||
build_path = /obj/machinery/r_n_d/destructive_analyzer
|
||||
board_type = new /datum/frame/frame_types/machine
|
||||
build_path = "/obj/machinery/r_n_d/destructive_analyzer"
|
||||
board_type = "machine"
|
||||
origin_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2, TECH_DATA = 2)
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/scanning_module = 1,
|
||||
@@ -36,8 +23,8 @@ obj/item/weapon/circuitboard/rdserver/attackby(obj/item/I as obj, mob/user as mo
|
||||
|
||||
/obj/item/weapon/circuitboard/autolathe
|
||||
name = T_BOARD("autolathe")
|
||||
build_path = /obj/machinery/autolathe
|
||||
board_type = new /datum/frame/frame_types/machine
|
||||
build_path = "/obj/machinery/autolathe"
|
||||
board_type = "machine"
|
||||
origin_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2)
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/matter_bin = 3,
|
||||
@@ -46,8 +33,8 @@ obj/item/weapon/circuitboard/rdserver/attackby(obj/item/I as obj, mob/user as mo
|
||||
|
||||
/obj/item/weapon/circuitboard/protolathe
|
||||
name = T_BOARD("protolathe")
|
||||
build_path = /obj/machinery/r_n_d/protolathe
|
||||
board_type = new /datum/frame/frame_types/machine
|
||||
build_path = "/obj/machinery/r_n_d/protolathe"
|
||||
board_type = "machine"
|
||||
origin_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2)
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/matter_bin = 2,
|
||||
@@ -56,8 +43,8 @@ obj/item/weapon/circuitboard/rdserver/attackby(obj/item/I as obj, mob/user as mo
|
||||
|
||||
/obj/item/weapon/circuitboard/circuit_imprinter
|
||||
name = T_BOARD("circuit imprinter")
|
||||
build_path = /obj/machinery/r_n_d/circuit_imprinter
|
||||
board_type = new /datum/frame/frame_types/machine
|
||||
build_path = "/obj/machinery/r_n_d/circuit_imprinter"
|
||||
board_type = "machine"
|
||||
origin_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2)
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/matter_bin = 1,
|
||||
@@ -66,8 +53,8 @@ obj/item/weapon/circuitboard/rdserver/attackby(obj/item/I as obj, mob/user as mo
|
||||
|
||||
/obj/item/weapon/circuitboard/mechfab
|
||||
name = "Circuit board (Exosuit Fabricator)"
|
||||
build_path = /obj/machinery/mecha_part_fabricator
|
||||
board_type = new /datum/frame/frame_types/machine
|
||||
build_path = "/obj/machinery/mecha_part_fabricator"
|
||||
board_type = "machine"
|
||||
origin_tech = list(TECH_DATA = 3, TECH_ENGINEERING = 3)
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/matter_bin = 2,
|
||||
@@ -77,8 +64,8 @@ obj/item/weapon/circuitboard/rdserver/attackby(obj/item/I as obj, mob/user as mo
|
||||
|
||||
/obj/item/weapon/circuitboard/prosthetics
|
||||
name = "Circuit board (Prosthetics Fabricator)"
|
||||
build_path = /obj/machinery/pros_fabricator
|
||||
board_type = new /datum/frame/frame_types/machine
|
||||
build_path = "/obj/machinery/pros_fabricator"
|
||||
board_type = "machine"
|
||||
origin_tech = list(TECH_DATA = 3, TECH_ENGINEERING = 3)
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/matter_bin = 2,
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
/obj/item/weapon/circuitboard/shield_gen_ex
|
||||
name = T_BOARD("hull shield generator")
|
||||
board_type = new /datum/frame/frame_types/machine
|
||||
board_type = "machine"
|
||||
build_path = "/obj/machinery/shield_gen/external"
|
||||
origin_tech = list(TECH_BLUESPACE = 4, TECH_PHORON = 3)
|
||||
req_components = list(
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
/obj/item/weapon/circuitboard/shield_gen
|
||||
name = T_BOARD("bubble shield generator")
|
||||
board_type = new /datum/frame/frame_types/machine
|
||||
board_type = "machine"
|
||||
build_path = "/obj/machinery/shield_gen"
|
||||
origin_tech = list(TECH_BLUESPACE = 4, TECH_PHORON = 3)
|
||||
req_components = list(
|
||||
@@ -30,7 +30,7 @@
|
||||
|
||||
/obj/item/weapon/circuitboard/shield_cap
|
||||
name = T_BOARD("shield capacitor")
|
||||
board_type = new /datum/frame/frame_types/machine
|
||||
board_type = "machine"
|
||||
build_path = "/obj/machinery/shield_capacitor"
|
||||
origin_tech = list(TECH_MAGNET = 3, TECH_POWER = 4)
|
||||
req_components = list(
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#endif
|
||||
|
||||
/obj/item/weapon/circuitboard/telecomms
|
||||
board_type = new /datum/frame/frame_types/machine
|
||||
board_type = "machine"
|
||||
|
||||
/obj/item/weapon/circuitboard/telecomms/receiver
|
||||
name = T_BOARD("subspace receiver")
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#endif
|
||||
|
||||
/obj/item/weapon/circuitboard/unary_atmos
|
||||
board_type = new /datum/frame/frame_types/machine
|
||||
board_type = "machine"
|
||||
|
||||
/obj/item/weapon/circuitboard/unary_atmos/construct(var/obj/machinery/atmospherics/unary/U)
|
||||
//TODO: Move this stuff into the relevant constructor when pipe/construction.dm is cleaned up.
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
item_state = "electronic"
|
||||
board_type = "other"
|
||||
|
||||
|
||||
/obj/item/weapon/circuitboard/mecha/ripley
|
||||
origin_tech = list(TECH_DATA = 3)
|
||||
|
||||
@@ -21,6 +22,7 @@
|
||||
name = T_BOARD_MECHA("Ripley central control")
|
||||
icon_state = "mainboard"
|
||||
|
||||
|
||||
/obj/item/weapon/circuitboard/mecha/gygax
|
||||
origin_tech = list(TECH_DATA = 4)
|
||||
|
||||
@@ -37,6 +39,7 @@
|
||||
name = T_BOARD_MECHA("Gygax central control")
|
||||
icon_state = "mainboard"
|
||||
|
||||
|
||||
/obj/item/weapon/circuitboard/mecha/durand
|
||||
origin_tech = list(TECH_DATA = 4)
|
||||
|
||||
@@ -53,6 +56,7 @@
|
||||
name = T_BOARD_MECHA("Durand central control")
|
||||
icon_state = "mainboard"
|
||||
|
||||
|
||||
/obj/item/weapon/circuitboard/mecha/honker
|
||||
origin_tech = list(TECH_DATA = 4)
|
||||
|
||||
@@ -68,6 +72,7 @@
|
||||
name = T_BOARD_MECHA("H.O.N.K central control")
|
||||
icon_state = "mainboard"
|
||||
|
||||
|
||||
/obj/item/weapon/circuitboard/mecha/odysseus
|
||||
origin_tech = list(TECH_DATA = 3)
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
var/report_num = 0
|
||||
|
||||
/obj/machinery/dnaforensics/New()
|
||||
circuit = new circuit(src)
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/weapon/stock_parts/console_screen(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/micro_laser(src)
|
||||
|
||||
@@ -80,7 +80,24 @@ log transactions
|
||||
return 1
|
||||
|
||||
/obj/machinery/atm/attackby(obj/item/I as obj, mob/user as mob)
|
||||
if(computer_deconstruction_screwdriver(user, I))
|
||||
if(istype(I, /obj/item/weapon/screwdriver) && circuit)
|
||||
user << "<span class='notice'>You start disconnecting the monitor.</span>"
|
||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
||||
if(do_after(user, 20))
|
||||
var/obj/structure/frame/A = new /obj/structure/frame( src.loc )
|
||||
var/obj/item/weapon/circuitboard/M = new circuit( A )
|
||||
A.frame_type = "atm"
|
||||
A.pixel_x = pixel_x
|
||||
A.pixel_y = pixel_y
|
||||
A.circuit = M
|
||||
A.anchored = 1
|
||||
for (var/obj/C in src)
|
||||
C.forceMove(loc)
|
||||
user << "<span class='notice'>You disconnect the monitor.</span>"
|
||||
A.state = 4
|
||||
A.icon_state = "atm_4"
|
||||
M.deconstruct(src)
|
||||
qdel(src)
|
||||
return
|
||||
if(istype(I, /obj/item/weapon/card))
|
||||
if(emagged > 0)
|
||||
|
||||
@@ -42,6 +42,7 @@
|
||||
/obj/machinery/mining/drill/New()
|
||||
|
||||
..()
|
||||
circuit = new circuit(src)
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/weapon/stock_parts/matter_bin(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/capacitor(src)
|
||||
|
||||
@@ -24,11 +24,13 @@
|
||||
/obj/structure/filingcabinet/filingcabinet //not changing the path to avoid unecessary map issues, but please don't name stuff like this in the future -Pete
|
||||
icon_state = "tallcabinet"
|
||||
|
||||
|
||||
/obj/structure/filingcabinet/initialize()
|
||||
for(var/obj/item/I in loc)
|
||||
if(istype(I, /obj/item/weapon/paper) || istype(I, /obj/item/weapon/folder) || istype(I, /obj/item/weapon/photo) || istype(I, /obj/item/weapon/paper_bundle))
|
||||
I.loc = src
|
||||
|
||||
|
||||
/obj/structure/filingcabinet/attackby(obj/item/P as obj, mob/user as mob)
|
||||
if(istype(P, /obj/item/weapon/paper) || istype(P, /obj/item/weapon/folder) || istype(P, /obj/item/weapon/photo) || istype(P, /obj/item/weapon/paper_bundle))
|
||||
user << "<span class='notice'>You put [P] in [src].</span>"
|
||||
@@ -55,6 +57,7 @@
|
||||
else
|
||||
user << "<span class='notice'>You can't put [P] in [src]!</span>"
|
||||
|
||||
|
||||
/obj/structure/filingcabinet/attack_hand(mob/user as mob)
|
||||
if(contents.len <= 0)
|
||||
user << "<span class='notice'>\The [src] is empty.</span>"
|
||||
@@ -100,12 +103,14 @@
|
||||
sleep(5)
|
||||
icon_state = initial(icon_state)
|
||||
|
||||
|
||||
/*
|
||||
* Security Record Cabinets
|
||||
*/
|
||||
/obj/structure/filingcabinet/security
|
||||
var/virgin = 1
|
||||
|
||||
|
||||
/obj/structure/filingcabinet/security/proc/populate()
|
||||
if(virgin)
|
||||
for(var/datum/data/record/G in data_core.general)
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
var/maxcopies = 10 //how many copies can be copied at once- idea shamelessly stolen from bs12's copier!
|
||||
|
||||
/obj/machinery/photocopier/New()
|
||||
circuit = new circuit(src)
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/weapon/stock_parts/scanning_module(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/motor(src)
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
operating = 1
|
||||
setmove()
|
||||
|
||||
circuit = new circuit(src)
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/weapon/stock_parts/gear(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/motor(src)
|
||||
|
||||
@@ -24,6 +24,7 @@ using metal and glass, it uses glass and reagents (usually sulphuric acid).
|
||||
|
||||
/obj/machinery/r_n_d/circuit_imprinter/New()
|
||||
..()
|
||||
circuit = new circuit()
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/weapon/stock_parts/matter_bin(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
||||
|
||||
@@ -18,6 +18,7 @@ Note: Must be placed within 3 tiles of the R&D Console
|
||||
|
||||
/obj/machinery/r_n_d/destructive_analyzer/New()
|
||||
..()
|
||||
circuit = new circuit()
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/weapon/stock_parts/scanning_module(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
|
||||
/obj/machinery/r_n_d/protolathe/New()
|
||||
..()
|
||||
circuit = new circuit()
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/weapon/stock_parts/matter_bin(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/matter_bin(src)
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
|
||||
/obj/machinery/r_n_d/server/New()
|
||||
..()
|
||||
circuit = new circuit()
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/weapon/stock_parts/scanning_module(src)
|
||||
component_parts += new /obj/item/stack/cable_coil(src)
|
||||
|
||||
@@ -76,20 +76,19 @@
|
||||
scanner_seal_integrity = round(scanner_seal_integrity + amount_used * 10)
|
||||
return
|
||||
if(istype(I, /obj/item/weapon/reagent_containers/glass))
|
||||
var/obj/item/weapon/reagent_containers/glass/G = I
|
||||
if(!G.is_open_container())
|
||||
return
|
||||
var/choice = alert("What do you want to do with the container?","Radiometric Scanner","Add coolant","Empty coolant","Scan container")
|
||||
if(choice == "Add coolant")
|
||||
var/obj/item/weapon/reagent_containers/glass/G = I
|
||||
var/amount_transferred = min(src.reagents.maximum_volume - src.reagents.total_volume, G.reagents.total_volume)
|
||||
var/trans = G.reagents.trans_to_obj(src, amount_transferred)
|
||||
user << "<span class='info'>You empty [trans ? trans : 0]u of coolant into [src].</span>"
|
||||
G.reagents.trans_to(src, amount_transferred)
|
||||
user << "<span class='info'>You empty [amount_transferred]u of coolant into [src].</span>"
|
||||
update_coolant()
|
||||
return
|
||||
else if(choice == "Empty coolant")
|
||||
var/obj/item/weapon/reagent_containers/glass/G = I
|
||||
var/amount_transferred = min(G.reagents.maximum_volume - G.reagents.total_volume, src.reagents.total_volume)
|
||||
var/trans = src.reagents.trans_to(G, amount_transferred)
|
||||
user << "<span class='info'>You remove [trans ? trans : 0]u of coolant from [src].</span>"
|
||||
src.reagents.trans_to(G, amount_transferred)
|
||||
user << "<span class='info'>You remove [amount_transferred]u of coolant from [src].</span>"
|
||||
update_coolant()
|
||||
return
|
||||
if(scanned_item)
|
||||
@@ -149,15 +148,15 @@
|
||||
data["radiation"] = round(radiation)
|
||||
data["t_left_radspike"] = round(t_left_radspike)
|
||||
data["rad_shield_on"] = rad_shield
|
||||
|
||||
|
||||
// update the ui if it exists, returns null if no ui is passed/found
|
||||
ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open)
|
||||
ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open)
|
||||
if (!ui)
|
||||
// the ui does not exist, so we'll create a new() one
|
||||
// for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm
|
||||
ui = new(user, src, ui_key, "geoscanner.tmpl", "High Res Radiocarbon Spectrometer", 900, 825)
|
||||
// when the ui is first opened this is the data it will use
|
||||
ui.set_initial_data(data)
|
||||
ui.set_initial_data(data)
|
||||
// open the new ui window
|
||||
ui.open()
|
||||
// auto update every Master Controller tick
|
||||
|
||||
@@ -42,25 +42,22 @@
|
||||
broadcast_request() //This is the device making the initial event request. It needs to broadcast to other devices
|
||||
|
||||
if(istype(W, /obj/item/weapon/screwdriver))
|
||||
user << "You begin removing the faceplate from the [src]"
|
||||
if(do_after(user, 10))
|
||||
user << "You remove the faceplate from the [src]"
|
||||
var/obj/structure/frame/A = new /obj/structure/frame(loc)
|
||||
var/obj/item/weapon/circuitboard/M = new circuit(A)
|
||||
A.frame_type = M.board_type
|
||||
A.need_circuit = 0
|
||||
A.pixel_x = pixel_x
|
||||
A.pixel_y = pixel_y
|
||||
A.set_dir(dir)
|
||||
A.circuit = M
|
||||
A.anchored = 1
|
||||
for (var/obj/C in src)
|
||||
C.forceMove(loc)
|
||||
A.state = 3
|
||||
A.update_icon()
|
||||
M.deconstruct(src)
|
||||
qdel(src)
|
||||
return
|
||||
user << "You remove the faceplate from the [src]"
|
||||
var/obj/structure/frame/A = new /obj/structure/frame( src.loc )
|
||||
var/obj/item/weapon/circuitboard/M = new circuit( A )
|
||||
A.frame_type = "keycard"
|
||||
A.pixel_x = pixel_x
|
||||
A.pixel_y = pixel_y
|
||||
A.set_dir(dir)
|
||||
A.circuit = M
|
||||
A.anchored = 1
|
||||
for (var/obj/C in src)
|
||||
C.forceMove(loc)
|
||||
A.state = 3
|
||||
A.icon_state = "keycard_3"
|
||||
M.deconstruct(src)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/machinery/keycard_auth/power_change()
|
||||
..()
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
/obj/machinery/slime/extractor/New()
|
||||
..()
|
||||
update_light_color()
|
||||
circuit = new circuit(src)
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
||||
|
||||
@@ -125,6 +125,7 @@
|
||||
|
||||
/obj/machinery/xenobio/extractor/New()
|
||||
..()
|
||||
circuit = new circuit(src)
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
||||
@@ -267,6 +268,7 @@
|
||||
|
||||
/obj/machinery/xenobio/editor/New()
|
||||
..()
|
||||
circuit = new circuit(src)
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
reagents = R
|
||||
R.my_atom = src
|
||||
beaker = new /obj/item/weapon/reagent_containers/glass/beaker(src)
|
||||
circuit = new circuit(src)
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/weapon/stock_parts/matter_bin(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/matter_bin(src)
|
||||
@@ -74,7 +75,7 @@
|
||||
if(occupant)
|
||||
occupant.forceMove(loc)
|
||||
occupant = null
|
||||
|
||||
|
||||
/obj/machinery/xenobio2/manualinjector/proc/eject_beaker()
|
||||
if(beaker)
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/B = beaker
|
||||
@@ -136,9 +137,10 @@
|
||||
|
||||
move_into_injector(user,G.affecting)
|
||||
|
||||
|
||||
/obj/item/weapon/circuitboard/xenobioinjectormachine
|
||||
name = T_BOARD("biological injector")
|
||||
build_path = /obj/machinery/xenobio2/manualinjector
|
||||
board_type = /datum/frame/frame_types/machine
|
||||
build_path = "/obj/machinery/xenobio2/manualinjector"
|
||||
board_type = "machine"
|
||||
origin_tech = list() //To be filled,
|
||||
req_components = list() //To be filled,
|
||||
@@ -61,7 +61,7 @@
|
||||
if(isxeno(injector.occupant))
|
||||
var/mob/living/simple_animal/xeno/X = injector.occupant
|
||||
data["compatible"] = 1
|
||||
data["instability"] = 100 * (X.mut_level / X.mut_max)
|
||||
data["instability"] = 100 * (X.mut_level / X.mut_max)
|
||||
else
|
||||
data["compatible"] = null
|
||||
|
||||
@@ -109,5 +109,6 @@
|
||||
|
||||
/obj/item/weapon/circuitboard/xenobio2computer
|
||||
name = T_BOARD("injector control console")
|
||||
build_path = /obj/item/weapon/circuitboard/xenobio2computer
|
||||
build_path = "/obj/item/weapon/circuitboard/xenobio2computer"
|
||||
board_type = "computer"
|
||||
origin_tech = list() //To be filled,
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
|
||||
/obj/machinery/slime/replicator/New()
|
||||
..()
|
||||
circuit = new circuit(src)
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
||||
|
||||
@@ -104,9 +104,6 @@ var/global/datum/global_init/init = new ()
|
||||
M.update_icon()
|
||||
|
||||
|
||||
// Create frame types, as above.
|
||||
populate_frame_types()
|
||||
|
||||
// Create robolimbs for chargen.
|
||||
populate_robolimb_list()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user