Removes a great amount of machinery copypasta with circuitboards.

Also changes New -> Initialize in most of them.
renamed: `code/game/machinery/computer/computer.dm` -> `code/game/machinery/computer/_computer.dm`
renamed: `code/game/machinery/machinery.dm` -> `code/game/machinery/_machinery.dm`
Moved all circuitboards to a new folder at `code/game/objects/items/weapons/circuitboards`
This commit is contained in:
Lzimann
2017-08-06 14:11:37 -03:00
parent 79bad5c881
commit 58d0f12c5c
135 changed files with 1985 additions and 2181 deletions

View File

@@ -13,8 +13,8 @@
//TODO : replace with presets or spectrum
return rgb(rand(0,255),rand(0,255),rand(0,255))
/obj/machinery/abductor/gland_dispenser/New()
..()
/obj/machinery/abductor/gland_dispenser/Initialize()
. = ..()
gland_types = subtypesof(/obj/item/organ/heart/gland)
gland_types = shuffle(gland_types)
gland_colors = new/list(gland_types.len)

View File

@@ -86,8 +86,7 @@
var/obj/machinery/nuclearbomb/existing = locate("syndienuke") in GLOB.nuke_list
if(existing)
qdel(src)
throw EXCEPTION("Attempted to spawn a syndicate nuke while one already exists at [existing.loc.x],[existing.loc.y],[existing.loc.z]")
return 0
CRASH("Attempted to spawn a syndicate nuke while one already exists at [existing.loc.x],[existing.loc.y],[existing.loc.z]")
tag = "syndienuke"
/obj/machinery/nuclearbomb/attackby(obj/item/I, mob/user, params)

View File

@@ -11,8 +11,8 @@
idle_power_usage = 0
var/obj/item/device/radio/beacon/Beacon
/obj/machinery/bluespace_beacon/New()
..()
/obj/machinery/bluespace_beacon/Initialize()
. = ..()
var/turf/T = loc
Beacon = new /obj/item/device/radio/beacon
Beacon.invisibility = INVISIBILITY_MAXIMUM
@@ -21,9 +21,7 @@
hide(T.intact)
/obj/machinery/bluespace_beacon/Destroy()
if(Beacon)
qdel(Beacon)
Beacon = null
QDEL_NULL(Beacon)
return ..()
// update the invisibility and icon

View File

@@ -27,12 +27,16 @@
return
/obj/machinery/pdapainter/New()
..()
var/blocked = list(/obj/item/device/pda/ai/pai, /obj/item/device/pda/ai, /obj/item/device/pda/heads,
/obj/item/device/pda/clear, /obj/item/device/pda/syndicate)
/obj/machinery/pdapainter/Initialize()
. = ..()
var/list/blocked = list(
/obj/item/device/pda/ai/pai,
/obj/item/device/pda/ai,
/obj/item/device/pda/heads,
/obj/item/device/pda/clear,
/obj/item/device/pda/syndicate)
for(var/P in typesof(/obj/item/device/pda)-blocked)
for(var/P in typesof(/obj/item/device/pda) - blocked)
var/obj/item/device/pda/D = new P
//D.name = "PDA Style [colorlist.len+1]" //Gotta set the name, otherwise it all comes up as "PDA"
@@ -41,9 +45,7 @@
src.colorlist += D
/obj/machinery/pdapainter/Destroy()
if(storedpda)
qdel(storedpda)
storedpda = null
QDEL_NULL(storedpda)
return ..()
/obj/machinery/pdapainter/on_deconstruction()

View File

@@ -13,6 +13,7 @@
density = FALSE
anchored = TRUE
state_open = TRUE
circuit = /obj/item/weapon/circuitboard/machine/sleeper
var/efficiency = 1
var/min_health = -25
var/list/available_chems
@@ -26,24 +27,11 @@
var/list/chem_buttons //Used when emagged to scramble which chem is used, eg: antitoxin -> morphine
var/scrambled_chems = FALSE //Are chem buttons scrambled? used as a warning
/obj/machinery/sleeper/New()
..()
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/sleeper(null)
B.apply_default_parts(src)
/obj/machinery/sleeper/Initialize()
. = ..()
update_icon()
reset_chem_buttons()
/obj/item/weapon/circuitboard/machine/sleeper
name = "Sleeper (Machine Board)"
build_path = /obj/machinery/sleeper
origin_tech = "programming=3;biotech=2;engineering=3"
req_components = list(
/obj/item/weapon/stock_parts/matter_bin = 1,
/obj/item/weapon/stock_parts/manipulator = 1,
/obj/item/stack/cable_coil = 1,
/obj/item/weapon/stock_parts/console_screen = 1,
/obj/item/stack/sheet/glass = 1)
/obj/machinery/sleeper/RefreshParts()
var/E
for(var/obj/item/weapon/stock_parts/matter_bin/B in component_parts)

View File

@@ -123,12 +123,18 @@ Class Procs:
var/interact_open = FALSE // Can the machine be interacted with when in maint/when the panel is open.
var/interact_offline = 0 // Can the machine be interacted with while de-powered.
var/speed_process = 0 // Process as fast as possible?
var/obj/item/weapon/circuitboard/circuit // Circuit to be created and inserted when the machinery is created
/obj/machinery/Initialize()
if(!armor)
armor = list(melee = 25, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 70)
. = ..()
GLOB.machines += src
if(ispath(circuit, /obj/item/weapon/circuitboard))
circuit = new circuit
circuit.apply_default_parts(src)
if(!speed_process)
START_PROCESSING(SSmachines, src)
else

View File

@@ -7,7 +7,6 @@ GLOBAL_LIST_EMPTY(announcement_systems)
desc = "An automated announcement system that handles minor announcements over the radio."
icon = 'icons/obj/machines/telecomms.dmi'
icon_state = "AAS_On"
var/obj/item/device/radio/headset/radio
verb_say = "coldly states"
verb_ask = "queries"
@@ -16,6 +15,9 @@ GLOBAL_LIST_EMPTY(announcement_systems)
idle_power_usage = 20
active_power_usage = 50
circuit = /obj/item/weapon/circuitboard/machine/announcement_system
var/obj/item/device/radio/headset/radio
var/arrival = "%PERSON has signed up as %RANK"
var/arrivalToggle = 1
var/newhead = "%PERSON, %RANK, is the department head."
@@ -25,24 +27,11 @@ GLOBAL_LIST_EMPTY(announcement_systems)
var/pinklight = "Light_Pink"
var/errorlight = "Error_Red"
/obj/machinery/announcement_system/New()
..()
/obj/machinery/announcement_system/Initialize()
. = ..()
GLOB.announcement_systems += src
radio = new /obj/item/device/radio/headset/ai(src)
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/announcement_system(null)
B.apply_default_parts(src)
update_icon()
/obj/item/weapon/circuitboard/machine/announcement_system
name = "Announcement System (Machine Board)"
build_path = /obj/machinery/announcement_system
origin_tech = "programming=3;bluespace=3;magnets=2"
req_components = list(
/obj/item/stack/cable_coil = 2,
/obj/item/weapon/stock_parts/console_screen = 1)
/obj/machinery/announcement_system/update_icon()
if(is_operational())
icon_state = (panel_open ? "AAS_On_Open" : "AAS_On")

View File

@@ -7,9 +7,13 @@
desc = "It produces items using metal and glass."
icon_state = "autolathe"
density = TRUE
anchored = TRUE
use_power = IDLE_POWER_USE
idle_power_usage = 10
active_power_usage = 100
circuit = /obj/item/weapon/circuitboard/machine/autolathe
var/operating = FALSE
anchored = TRUE
var/list/L = list()
var/list/LL = list()
var/hacked = FALSE
@@ -18,9 +22,7 @@
var/hack_wire
var/disable_wire
var/shock_wire
use_power = IDLE_POWER_USE
idle_power_usage = 10
active_power_usage = 100
var/busy = FALSE
var/prod_coeff = 1
@@ -45,30 +47,16 @@
"Imported"
)
/obj/machinery/autolathe/New()
..()
/obj/machinery/autolathe/Initialize()
materials = new /datum/material_container(src, list(MAT_METAL, MAT_GLASS))
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/autolathe(null)
B.apply_default_parts(src)
wires = new /datum/wires/autolathe(src)
files = new /datum/research/autolathe(src)
matching_designs = list()
/obj/item/weapon/circuitboard/machine/autolathe
name = "Autolathe (Machine Board)"
build_path = /obj/machinery/autolathe
origin_tech = "engineering=2;programming=2"
req_components = list(
/obj/item/weapon/stock_parts/matter_bin = 3,
/obj/item/weapon/stock_parts/manipulator = 1,
/obj/item/weapon/stock_parts/console_screen = 1)
return ..()
/obj/machinery/autolathe/Destroy()
qdel(wires)
wires = null
qdel(materials)
materials = null
QDEL_NULL(wires)
QDEL_NULL(materials)
return ..()
/obj/machinery/autolathe/interact(mob/user)

View File

@@ -9,8 +9,8 @@
var/radio_channel = "Common"
var/minimum_time_between_warnings = 400
/obj/machinery/computer/bank_machine/Initialize(mapload)
..()
/obj/machinery/computer/bank_machine/Initialize()
. = ..()
radio = new(src)
radio.subspace_transmission = TRUE
radio.canhear_range = 0

View File

@@ -17,6 +17,8 @@
icon_state = "pod_0"
req_access = list(ACCESS_CLONING) //FOR PREMATURE UNLOCKING.
verb_say = "states"
circuit = /obj/item/weapon/circuitboard/machine/clonepod
var/heal_level //The clone is released once its health reaches this level.
var/obj/machinery/computer/cloning/connected = null //So we remember the connected clone machine.
var/mess = FALSE //Need to clean out it if it's full of exploded clone.
@@ -46,8 +48,6 @@
/obj/machinery/clonepod/Initialize()
. = ..()
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/clonepod(null)
B.apply_default_parts(src)
countdown = new(src)
@@ -59,16 +59,11 @@
/obj/machinery/clonepod/Destroy()
go_out()
qdel(radio)
radio = null
qdel(countdown)
countdown = null
QDEL_NULL(radio)
QDEL_NULL(countdown)
if(connected)
connected.DetachCloner(src)
for(var/i in unattached_flesh)
qdel(i)
LAZYCLEARLIST(unattached_flesh)
unattached_flesh = null
QDEL_LIST(unattached_flesh)
. = ..()
/obj/machinery/clonepod/RefreshParts()
@@ -84,16 +79,6 @@
if(heal_level > 100)
heal_level = 100
/obj/item/weapon/circuitboard/machine/clonepod
name = "Clone Pod (Machine Board)"
build_path = /obj/machinery/clonepod
origin_tech = "programming=2;biotech=2"
req_components = list(
/obj/item/stack/cable_coil = 2,
/obj/item/weapon/stock_parts/scanning_module = 2,
/obj/item/weapon/stock_parts/manipulator = 2,
/obj/item/stack/sheet/glass = 1)
//The return of data disks?? Just for transferring between genetics machine/cloning machine.
//TO-DO: Make the genetics machine accept them.
/obj/item/weapon/disk/data

View File

@@ -4,8 +4,8 @@
icon_screen = "crew"
icon_keyboard = "med_key"
circuit = /obj/item/weapon/circuitboard/computer/operating
var/mob/living/carbon/human/patient = null
var/obj/structure/table/optable/table = null
var/mob/living/carbon/human/patient
var/obj/structure/table/optable/table
light_color = LIGHT_COLOR_BLUE

View File

@@ -1,142 +1,129 @@
/obj/machinery/computer
name = "computer"
icon = 'icons/obj/computer.dmi'
icon_state = "computer"
density = TRUE
anchored = TRUE
use_power = IDLE_POWER_USE
idle_power_usage = 300
active_power_usage = 300
max_integrity = 200
integrity_failure = 100
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 40, acid = 20)
var/obj/item/weapon/circuitboard/computer/circuit = null // if circuit==null, computer can't disassembly
var/processing = FALSE
var/brightness_on = 2
var/icon_keyboard = "generic_key"
var/icon_screen = "generic"
var/clockwork = FALSE
/obj/machinery/computer/New(location, obj/item/weapon/circuitboard/C)
..(location)
if(C && istype(C))
circuit = C
//Some machines, oldcode arcades mostly, new themselves, so circuit
//can already be an instance of a type and trying to new that will
//cause a runtime
else if(ispath(circuit))
circuit = new circuit(null)
/obj/machinery/computer/Destroy()
if(circuit)
qdel(circuit)
circuit = null
return ..()
/obj/machinery/computer/Initialize()
. = ..()
power_change()
/obj/machinery/computer/process()
if(stat & (NOPOWER|BROKEN))
return 0
return 1
/obj/machinery/computer/ratvar_act()
if(!clockwork)
clockwork = TRUE
icon_screen = "ratvar[rand(1, 4)]"
icon_keyboard = "ratvar_key[rand(1, 6)]"
icon_state = "ratvarcomputer[rand(1, 4)]"
update_icon()
/obj/machinery/computer/narsie_act()
if(clockwork && clockwork != initial(clockwork)) //if it's clockwork but isn't normally clockwork
clockwork = FALSE
icon_screen = initial(icon_screen)
icon_keyboard = initial(icon_keyboard)
icon_state = initial(icon_state)
update_icon()
/obj/machinery/computer/update_icon()
cut_overlays()
if(stat & NOPOWER)
add_overlay("[icon_keyboard]_off")
return
add_overlay(icon_keyboard)
if(stat & BROKEN)
add_overlay("[icon_state]_broken")
else
add_overlay(icon_screen)
/obj/machinery/computer/power_change()
..()
if(stat & NOPOWER)
set_light(0)
else
set_light(brightness_on)
update_icon()
return
/obj/machinery/computer/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/screwdriver) && circuit && !(flags&NODECONSTRUCT))
playsound(src.loc, I.usesound, 50, 1)
to_chat(user, "<span class='notice'> You start to disconnect the monitor...</span>")
if(do_after(user, 20*I.toolspeed, target = src))
deconstruct(TRUE, user)
else
return ..()
/obj/machinery/computer/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0)
switch(damage_type)
if(BRUTE)
if(stat & BROKEN)
playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1)
else
playsound(src.loc, 'sound/effects/glasshit.ogg', 75, 1)
if(BURN)
playsound(src.loc, 'sound/items/welder.ogg', 100, 1)
/obj/machinery/computer/obj_break(damage_flag)
if(circuit && !(flags & NODECONSTRUCT)) //no circuit, no breaking
if(!(stat & BROKEN))
playsound(loc, 'sound/effects/glassbr3.ogg', 100, 1)
stat |= BROKEN
update_icon()
/obj/machinery/computer/emp_act(severity)
switch(severity)
if(1)
if(prob(50))
obj_break("energy")
if(2)
if(prob(10))
obj_break("energy")
..()
/obj/machinery/computer/deconstruct(disassembled = TRUE, mob/user)
on_deconstruction()
if(!(flags & NODECONSTRUCT))
if(circuit) //no circuit, no computer frame
var/obj/structure/frame/computer/A = new /obj/structure/frame/computer(src.loc)
A.circuit = circuit
A.anchored = TRUE
if(stat & BROKEN)
if(user)
to_chat(user, "<span class='notice'>The broken glass falls out.</span>")
else
playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1)
new /obj/item/weapon/shard(src.loc)
new /obj/item/weapon/shard(src.loc)
A.state = 3
A.icon_state = "3"
else
if(user)
to_chat(user, "<span class='notice'>You disconnect the monitor.</span>")
A.state = 4
A.icon_state = "4"
circuit = null
for(var/obj/C in src)
C.forceMove(loc)
qdel(src)
/obj/machinery/computer
name = "computer"
icon = 'icons/obj/computer.dmi'
icon_state = "computer"
density = TRUE
anchored = TRUE
use_power = IDLE_POWER_USE
idle_power_usage = 300
active_power_usage = 300
max_integrity = 200
integrity_failure = 100
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 40, acid = 20)
var/processing = FALSE
var/brightness_on = 2
var/icon_keyboard = "generic_key"
var/icon_screen = "generic"
var/clockwork = FALSE
/obj/machinery/computer/Initialize(mapload, obj/item/weapon/circuitboard/C)
. = ..()
power_change()
/obj/machinery/computer/Destroy()
QDEL_NULL(circuit)
return ..()
/obj/machinery/computer/process()
if(stat & (NOPOWER|BROKEN))
return 0
return 1
/obj/machinery/computer/ratvar_act()
if(!clockwork)
clockwork = TRUE
icon_screen = "ratvar[rand(1, 4)]"
icon_keyboard = "ratvar_key[rand(1, 6)]"
icon_state = "ratvarcomputer[rand(1, 4)]"
update_icon()
/obj/machinery/computer/narsie_act()
if(clockwork && clockwork != initial(clockwork)) //if it's clockwork but isn't normally clockwork
clockwork = FALSE
icon_screen = initial(icon_screen)
icon_keyboard = initial(icon_keyboard)
icon_state = initial(icon_state)
update_icon()
/obj/machinery/computer/update_icon()
cut_overlays()
if(stat & NOPOWER)
add_overlay("[icon_keyboard]_off")
return
add_overlay(icon_keyboard)
if(stat & BROKEN)
add_overlay("[icon_state]_broken")
else
add_overlay(icon_screen)
/obj/machinery/computer/power_change()
..()
if(stat & NOPOWER)
set_light(0)
else
set_light(brightness_on)
update_icon()
return
/obj/machinery/computer/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/screwdriver) && circuit && !(flags&NODECONSTRUCT))
playsound(src.loc, I.usesound, 50, 1)
to_chat(user, "<span class='notice'> You start to disconnect the monitor...</span>")
if(do_after(user, 20*I.toolspeed, target = src))
deconstruct(TRUE, user)
else
return ..()
/obj/machinery/computer/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0)
switch(damage_type)
if(BRUTE)
if(stat & BROKEN)
playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1)
else
playsound(src.loc, 'sound/effects/glasshit.ogg', 75, 1)
if(BURN)
playsound(src.loc, 'sound/items/welder.ogg', 100, 1)
/obj/machinery/computer/obj_break(damage_flag)
if(circuit && !(flags & NODECONSTRUCT)) //no circuit, no breaking
if(!(stat & BROKEN))
playsound(loc, 'sound/effects/glassbr3.ogg', 100, 1)
stat |= BROKEN
update_icon()
/obj/machinery/computer/emp_act(severity)
switch(severity)
if(1)
if(prob(50))
obj_break("energy")
if(2)
if(prob(10))
obj_break("energy")
..()
/obj/machinery/computer/deconstruct(disassembled = TRUE, mob/user)
on_deconstruction()
if(!(flags & NODECONSTRUCT))
if(circuit) //no circuit, no computer frame
var/obj/structure/frame/computer/A = new /obj/structure/frame/computer(src.loc)
A.circuit = circuit
A.anchored = TRUE
if(stat & BROKEN)
if(user)
to_chat(user, "<span class='notice'>The broken glass falls out.</span>")
else
playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1)
new /obj/item/weapon/shard(src.loc)
new /obj/item/weapon/shard(src.loc)
A.state = 3
A.icon_state = "3"
else
if(user)
to_chat(user, "<span class='notice'>You disconnect the monitor.</span>")
A.state = 4
A.icon_state = "4"
circuit = null
for(var/obj/C in src)
C.forceMove(loc)
qdel(src)

View File

@@ -18,7 +18,7 @@
/obj/machinery/computer/apc_control/Initialize()
apcs = list() //To avoid BYOND making the list run through a ton of procs
filters = list("Name" = null, "Charge Above" = null, "Charge Below" = null, "Responsive" = null)
..()
return ..()
/obj/machinery/computer/apc_control/process()
apcs = list() //Clear the list every tick

View File

@@ -51,8 +51,8 @@
/obj/machinery/computer/arcade/proc/Reset()
return
/obj/machinery/computer/arcade/New()
..()
/obj/machinery/computer/arcade/Initialize()
. = ..()
// If it's a generic arcade machine, pick a random arcade
// circuit board for it and make the new machine
if(!circuit)
@@ -60,12 +60,9 @@
var/obj/item/weapon/circuitboard/CB = new choice()
new CB.build_path(loc, CB)
qdel(src)
/obj/machinery/computer/arcade/Initialize()
. = ..()
return
Reset()
#define PULSE_MEDAL "Jackpot"
/obj/machinery/computer/arcade/proc/prizevend()

View File

@@ -142,320 +142,4 @@
new /obj/item/weapon/shard(loc)
if(state >= 3)
new /obj/item/stack/cable_coil(loc , 5)
..()
/obj/item/weapon/circuitboard
name = "circuit board"
icon = 'icons/obj/module.dmi'
icon_state = "id_mod"
item_state = "electronic"
lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi'
righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
origin_tech = "programming=2"
materials = list(MAT_GLASS=1000)
w_class = WEIGHT_CLASS_SMALL
var/build_path = null
/obj/item/weapon/circuitboard/computer/turbine_computer
name = "Turbine Computer (Computer Board)"
build_path = /obj/machinery/computer/turbine_computer
origin_tech = "programming=4;engineering=4;powerstorage=4"
/obj/item/weapon/circuitboard/computer/launchpad_console
name = "Launchpad Control Console (Computer Board)"
build_path = /obj/machinery/computer/launchpad
origin_tech = "programming=3;bluespace=3;plasmatech=2"
/obj/item/weapon/circuitboard/computer/message_monitor
name = "Message Monitor (Computer Board)"
build_path = /obj/machinery/computer/message_monitor
origin_tech = "programming=2"
/obj/item/weapon/circuitboard/computer/security
name = "Security Cameras (Computer Board)"
build_path = /obj/machinery/computer/security
origin_tech = "programming=2;combat=2"
/obj/item/weapon/circuitboard/computer/xenobiology
name = "circuit board (Xenobiology Console)"
build_path = /obj/machinery/computer/camera_advanced/xenobio
origin_tech = "programming=3;biotech=3"
/obj/item/weapon/circuitboard/computer/base_construction
name = "circuit board (Aux Mining Base Construction Console)"
build_path = /obj/machinery/computer/camera_advanced/base_construction
origin_tech = "programming=3;engineering=3"
/obj/item/weapon/circuitboard/computer/aiupload
name = "AI Upload (Computer Board)"
build_path = /obj/machinery/computer/upload/ai
origin_tech = "programming=4;engineering=4"
/obj/item/weapon/circuitboard/computer/borgupload
name = "Cyborg Upload (Computer Board)"
build_path = /obj/machinery/computer/upload/borg
origin_tech = "programming=4;engineering=4"
/obj/item/weapon/circuitboard/computer/med_data
name = "Medical Records Console (Computer Board)"
build_path = /obj/machinery/computer/med_data
origin_tech = "programming=2;biotech=2"
/obj/item/weapon/circuitboard/computer/pandemic
name = "PanD.E.M.I.C. 2200 (Computer Board)"
build_path = /obj/machinery/computer/pandemic
origin_tech = "programming=2;biotech=2"
/obj/item/weapon/circuitboard/computer/scan_consolenew
name = "DNA Machine (Computer Board)"
build_path = /obj/machinery/computer/scan_consolenew
origin_tech = "programming=2;biotech=2"
/obj/item/weapon/circuitboard/computer/communications
name = "Communications (Computer Board)"
build_path = /obj/machinery/computer/communications
origin_tech = "programming=3;magnets=3"
var/lastTimeUsed = 0
/obj/item/weapon/circuitboard/computer/card
name = "ID Console (Computer Board)"
build_path = /obj/machinery/computer/card
origin_tech = "programming=3"
/obj/item/weapon/circuitboard/computer/card/centcom
name = "CentCom ID Console (Computer Board)"
build_path = /obj/machinery/computer/card/centcom
/obj/item/weapon/circuitboard/computer/card/minor
name = "Department Management Console (Computer Board)"
build_path = /obj/machinery/computer/card/minor
var/target_dept = 1
var/list/dept_list = list("General","Security","Medical","Science","Engineering")
/obj/item/weapon/circuitboard/computer/card/minor/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/screwdriver))
target_dept = (target_dept == dept_list.len) ? 1 : (target_dept + 1)
to_chat(user, "<span class='notice'>You set the board to \"[dept_list[target_dept]]\".</span>")
else
return ..()
/obj/item/weapon/circuitboard/computer/card/minor/examine(user)
..()
to_chat(user, "Currently set to \"[dept_list[target_dept]]\".")
//obj/item/weapon/circuitboard/computer/shield
// name = "Shield Control (Computer Board)"
// build_path = /obj/machinery/computer/stationshield
/obj/item/weapon/circuitboard/computer/teleporter
name = "Teleporter (Computer Board)"
build_path = /obj/machinery/computer/teleporter
origin_tech = "programming=3;bluespace=3;plasmatech=3"
/obj/item/weapon/circuitboard/computer/secure_data
name = "Security Records Console (Computer Board)"
build_path = /obj/machinery/computer/secure_data
origin_tech = "programming=2;combat=2"
/obj/item/weapon/circuitboard/computer/stationalert
name = "Station Alerts (Computer Board)"
build_path = /obj/machinery/computer/station_alert
/*/obj/item/weapon/circuitboard/computer/atmospheresiphonswitch
name = "Atmosphere siphon control (Computer Board)"
build_path = /obj/machinery/computer/atmosphere/siphonswitch*/
/obj/item/weapon/circuitboard/computer/atmos_control
name = "Atmospheric Monitor (Computer Board)"
build_path = /obj/machinery/computer/atmos_control
/obj/item/weapon/circuitboard/computer/atmos_control/tank
name = "Tank Control (Computer Board)"
build_path = /obj/machinery/computer/atmos_control/tank
origin_tech = "programming=2;engineering=3;materials=2"
/obj/item/weapon/circuitboard/computer/atmos_alert
name = "Atmospheric Alert (Computer Board)"
build_path = /obj/machinery/computer/atmos_alert
/obj/item/weapon/circuitboard/computer/pod
name = "Massdriver control (Computer Board)"
build_path = /obj/machinery/computer/pod
/obj/item/weapon/circuitboard/computer/robotics
name = "Robotics Control (Computer Board)"
build_path = /obj/machinery/computer/robotics
origin_tech = "programming=3"
/obj/item/weapon/circuitboard/computer/cloning
name = "Cloning (Computer Board)"
build_path = /obj/machinery/computer/cloning
origin_tech = "programming=2;biotech=2"
/obj/item/weapon/circuitboard/computer/arcade/battle
name = "Arcade Battle (Computer Board)"
build_path = /obj/machinery/computer/arcade/battle
origin_tech = "programming=1"
/obj/item/weapon/circuitboard/computer/arcade/orion_trail
name = "Orion Trail (Computer Board)"
build_path = /obj/machinery/computer/arcade/orion_trail
origin_tech = "programming=1"
/obj/item/weapon/circuitboard/computer/turbine_control
name = "Turbine control (Computer Board)"
build_path = /obj/machinery/computer/turbine_computer
/obj/item/weapon/circuitboard/computer/solar_control
name = "Solar Control (Computer Board)" //name fixed 250810
build_path = /obj/machinery/power/solar_control
origin_tech = "programming=2;powerstorage=2"
/obj/item/weapon/circuitboard/computer/powermonitor
name = "Power Monitor (Computer Board)" //name fixed 250810
build_path = /obj/machinery/computer/monitor
origin_tech = "programming=2;powerstorage=2"
/obj/item/weapon/circuitboard/computer/olddoor
name = "DoorMex (Computer Board)"
build_path = /obj/machinery/computer/pod/old
/obj/item/weapon/circuitboard/computer/syndicatedoor
name = "ProComp Executive (Computer Board)"
build_path = /obj/machinery/computer/pod/old/syndicate
/obj/item/weapon/circuitboard/computer/swfdoor
name = "Magix (Computer Board)"
build_path = /obj/machinery/computer/pod/old/swf
/obj/item/weapon/circuitboard/computer/prisoner
name = "Prisoner Management Console (Computer Board)"
build_path = /obj/machinery/computer/prisoner
/obj/item/weapon/circuitboard/computer/gulag_teleporter_console
name = "Labor Camp teleporter console (Computer Board)"
build_path = /obj/machinery/computer/gulag_teleporter_computer
/obj/item/weapon/circuitboard/computer/rdconsole
name = "R&D Console (Computer Board)"
build_path = /obj/machinery/computer/rdconsole/core
/obj/item/weapon/circuitboard/computer/rdconsole/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/screwdriver))
if(build_path == /obj/machinery/computer/rdconsole/core)
name = "R&D Console - Robotics (Computer Board)"
build_path = /obj/machinery/computer/rdconsole/robotics
to_chat(user, "<span class='notice'>Access protocols successfully updated.</span>")
else
name = "R&D Console (Computer Board)"
build_path = /obj/machinery/computer/rdconsole/core
to_chat(user, "<span class='notice'>Defaulting access protocols.</span>")
else
return ..()
/obj/item/weapon/circuitboard/computer/mecha_control
name = "Exosuit Control Console (Computer Board)"
build_path = /obj/machinery/computer/mecha
/obj/item/weapon/circuitboard/computer/rdservercontrol
name = "R&D Server Control (Computer Board)"
build_path = /obj/machinery/computer/rdservercontrol
/obj/item/weapon/circuitboard/computer/crew
name = "Crew Monitoring Console (Computer Board)"
build_path = /obj/machinery/computer/crew
origin_tech = "programming=2;biotech=2"
/obj/item/weapon/circuitboard/computer/mech_bay_power_console
name = "Mech Bay Power Control Console (Computer Board)"
build_path = /obj/machinery/computer/mech_bay_power_console
origin_tech = "programming=3;powerstorage=3"
/obj/item/weapon/circuitboard/computer/cargo
name = "Supply Console (Computer Board)"
build_path = /obj/machinery/computer/cargo
origin_tech = "programming=3"
var/contraband = FALSE
var/emagged = FALSE
/obj/item/weapon/circuitboard/computer/cargo/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/device/multitool))
if(!emagged)
contraband = !contraband
to_chat(user, "<span class='notice'>Receiver spectrum set to [contraband ? "Broad" : "Standard"].</span>")
else
to_chat(user, "<span class='notice'>The spectrum chip is unresponsive.</span>")
else if(istype(I, /obj/item/weapon/card/emag))
if(!emagged)
contraband = TRUE
emagged = TRUE
to_chat(user, "<span class='notice'>You adjust [src]'s routing and receiver spectrum, unlocking special supplies and contraband.</span>")
else
return ..()
/obj/item/weapon/circuitboard/computer/cargo/request
name = "Supply Request Console (Computer Board)"
build_path = /obj/machinery/computer/cargo/request
/obj/item/weapon/circuitboard/computer/stockexchange
name = "circuit board (Stock Exchange Console)"
build_path = /obj/machinery/computer/stockexchange
origin_tech = "programming=3"
/obj/item/weapon/circuitboard/computer/operating
name = "Operating Computer (Computer Board)"
build_path = /obj/machinery/computer/operating
origin_tech = "programming=2;biotech=3"
/obj/item/weapon/circuitboard/computer/mining
name = "Outpost Status Display (Computer Board)"
build_path = /obj/machinery/computer/security/mining
/obj/item/weapon/circuitboard/computer/comm_monitor
name = "Telecommunications Monitor (Computer Board)"
build_path = /obj/machinery/computer/telecomms/monitor
origin_tech = "programming=3;magnets=3;bluespace=2"
/obj/item/weapon/circuitboard/computer/comm_server
name = "Telecommunications Server Monitor (Computer Board)"
build_path = /obj/machinery/computer/telecomms/server
origin_tech = "programming=3;magnets=3;bluespace=2"
/obj/item/weapon/circuitboard/computer/shuttle
name = "Shuttle (Computer Board)"
build_path = /obj/machinery/computer/shuttle
var/shuttleId
var/possible_destinations = ""
/obj/item/weapon/circuitboard/computer/shuttle/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/device/multitool))
var/chosen_id = round(input(usr, "Choose an ID number (-1 for reset):", "Input an Integer", null) as num|null)
if(chosen_id >= 0)
shuttleId = chosen_id
else
shuttleId = initial(shuttleId)
else
return ..()
/obj/item/weapon/circuitboard/computer/labor_shuttle
name = "Labor Shuttle (Computer Board)"
build_path = /obj/machinery/computer/shuttle/labor
/obj/item/weapon/circuitboard/computer/labor_shuttle/one_way
name = "Prisoner Shuttle Console (Computer Board)"
build_path = /obj/machinery/computer/shuttle/labor/one_way
/obj/item/weapon/circuitboard/computer/ferry
name = "Transport Ferry (Computer Board)"
build_path = /obj/machinery/computer/shuttle/ferry
/obj/item/weapon/circuitboard/computer/ferry/request
name = "Transport Ferry Console (Computer Board)"
build_path = /obj/machinery/computer/shuttle/ferry/request
/obj/item/weapon/circuitboard/computer/mining_shuttle
name = "Mining Shuttle (Computer Board)"
build_path = /obj/machinery/computer/shuttle/mining
/obj/item/weapon/circuitboard/computer/white_ship
name = "White Ship (Computer Board)"
build_path = /obj/machinery/computer/shuttle/white_ship
/obj/item/weapon/circuitboard/computer/auxillary_base
name = "Auxillary Base Management Console (Computer Board)"
build_path = /obj/machinery/computer/auxillary_base
/obj/item/weapon/circuitboard/computer/holodeck// Not going to let people get this, but it's just here for future
name = "Holodeck Control (Computer Board)"
build_path = /obj/machinery/computer/holodeck
origin_tech = "programming=4"
/obj/item/weapon/circuitboard/computer/aifixer
name = "AI Integrity Restorer (Computer Board)"
build_path = /obj/machinery/computer/aifixer
origin_tech = "programming=2;biotech=2"
/*/obj/item/weapon/circuitboard/computer/prison_shuttle
name = "Prison Shuttle (Computer Board)"
build_path = /obj/machinery/computer/prison_shuttle*/
/obj/item/weapon/circuitboard/computer/slot_machine
name = "Slot Machine (Computer Board)"
build_path = /obj/machinery/computer/slot_machine
origin_tech = "programming=1"
/obj/item/weapon/circuitboard/computer/libraryconsole
name = "Library Visitor Console (Computer Board)"
build_path = /obj/machinery/computer/libraryconsole
origin_tech = "programming=1"
/obj/item/weapon/circuitboard/computer/libraryconsole/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/screwdriver))
if(build_path == /obj/machinery/computer/libraryconsole/bookmanagement)
name = "Library Visitor Console (Computer Board)"
build_path = /obj/machinery/computer/libraryconsole
to_chat(user, "<span class='notice'>Defaulting access protocols.</span>")
else
name = "Book Inventory Management Console (Computer Board)"
build_path = /obj/machinery/computer/libraryconsole/bookmanagement
to_chat(user, "<span class='notice'>Access protocols successfully updated.</span>")
else
return ..()
/obj/item/weapon/circuitboard/computer/apc_control
name = "\improper Power Flow Control Console (Computer Board)"
build_path = /obj/machinery/computer/apc_control
origin_tech = "programming=3;engineering=3;powerstorage=2"
..()

View File

@@ -572,8 +572,8 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0)
icon_screen = "idminor"
circuit = /obj/item/weapon/circuitboard/computer/card/minor
/obj/machinery/computer/card/minor/New()
..()
/obj/machinery/computer/card/minor/Initialize()
. = ..()
var/obj/item/weapon/circuitboard/computer/card/minor/typed_circuit = circuit
if(target_dept)
typed_circuit.target_dept = target_dept

View File

@@ -20,7 +20,7 @@
light_color = LIGHT_COLOR_BLUE
/obj/machinery/computer/cloning/Initialize()
..()
. = ..()
updatemodules(TRUE)
/obj/machinery/computer/cloning/Destroy()

View File

@@ -41,9 +41,9 @@
return FALSE
return TRUE
/obj/machinery/computer/communications/New()
/obj/machinery/computer/communications/Initialize()
. = ..()
GLOB.shuttle_caller_list += src
..()
/obj/machinery/computer/communications/process()
if(..())

View File

@@ -53,17 +53,16 @@
else
return ..()
/obj/machinery/computer/scan_consolenew/New()
/obj/machinery/computer/scan_consolenew/Initialize()
..()
return INITIALIZE_HINT_LATELOAD
spawn(5)
for(dir in list(NORTH,EAST,SOUTH,WEST))
connected = locate(/obj/machinery/dna_scannernew, get_step(src, dir))
if(!isnull(connected))
break
injectorready = world.time + INJECTOR_TIMEOUT
return
return
/obj/machinery/computer/scan_consolenew/LateInitialize()
for(dir in list(NORTH,EAST,SOUTH,WEST))
connected = locate(/obj/machinery/dna_scannernew, get_step(src, dir))
if(!isnull(connected))
break
injectorready = world.time + INJECTOR_TIMEOUT
/obj/machinery/computer/scan_consolenew/attack_hand(mob/user)
if(..())

View File

@@ -15,9 +15,12 @@
light_color = LIGHT_COLOR_RED
/obj/machinery/computer/gulag_teleporter_computer/New()
/obj/machinery/computer/gulag_teleporter_computer/Initialize()
..()
addtimer(CALLBACK(src, .proc/scan_machinery), 5)
return INITIALIZE_HINT_LATELOAD
/obj/machinery/computer/gulag_teleporter_computer/LateInitialize()
scan_machinery()
/obj/machinery/computer/gulag_teleporter_computer/Destroy()
if(id)

View File

@@ -5,7 +5,3 @@
shuttleId = "pod1"
possible_destinations = "monastery_shuttle_asteroid;monastery_shuttle_station"
no_destination_swap = TRUE
/obj/item/weapon/circuitboard/computer/shuttle/monastery_shuttle
name = "Monastery Shuttle (Computer Board)"
build_path = /obj/machinery/computer/shuttle/monastery_shuttle

View File

@@ -0,0 +1,217 @@
/obj/machinery/computer/teleporter
name = "teleporter control console"
desc = "Used to control a linked teleportation Hub and Station."
icon_screen = "teleport"
icon_keyboard = "teleport_key"
circuit = /obj/item/weapon/circuitboard/computer/teleporter
var/obj/item/device/gps/locked = null
var/regime_set = "Teleporter"
var/id = null
var/obj/machinery/teleport/station/power_station
var/calibrating
var/turf/target //Used for one-time-use teleport cards (such as clown planet coordinates.)
//Setting this to 1 will set src.locked to null after a player enters the portal and will not allow hand-teles to open portals to that location.
light_color = LIGHT_COLOR_BLUE
/obj/machinery/computer/teleporter/New()
src.id = "[rand(1000, 9999)]"
..()
/obj/machinery/computer/teleporter/Initialize()
. = ..()
link_power_station()
/obj/machinery/computer/teleporter/Destroy()
if (power_station)
power_station.teleporter_console = null
power_station = null
return ..()
/obj/machinery/computer/teleporter/proc/link_power_station()
if(power_station)
return
for(dir in list(NORTH,EAST,SOUTH,WEST))
power_station = locate(/obj/machinery/teleport/station, get_step(src, dir))
if(power_station)
break
return power_station
/obj/machinery/computer/teleporter/attackby(obj/I, mob/living/user, params)
if(istype(I, /obj/item/device/gps))
var/obj/item/device/gps/L = I
if(L.locked_location && !(stat & (NOPOWER|BROKEN)))
if(!user.transferItemToLoc(L, src))
to_chat(user, "<span class='warning'>\the [I] is stuck to your hand, you cannot put it in \the [src]!</span>")
return
locked = L
to_chat(user, "<span class='caution'>You insert the GPS device into the [name]'s slot.</span>")
else
return ..()
/obj/machinery/computer/teleporter/attack_ai(mob/user)
src.attack_hand(user)
/obj/machinery/computer/teleporter/attack_hand(mob/user)
if(..())
return
interact(user)
/obj/machinery/computer/teleporter/interact(mob/user)
var/data = "<h3>Teleporter Status</h3>"
if(!power_station)
data += "<div class='statusDisplay'>No power station linked.</div>"
else if(!power_station.teleporter_hub)
data += "<div class='statusDisplay'>No hub linked.</div>"
else
data += "<div class='statusDisplay'>Current regime: [regime_set]<BR>"
data += "Current target: [(!target) ? "None" : "[get_area(target)] [(regime_set != "Gate") ? "" : "Teleporter"]"]<BR>"
if(calibrating)
data += "Calibration: <font color='yellow'>In Progress</font>"
else if(power_station.teleporter_hub.calibrated || power_station.teleporter_hub.accurate >= 3)
data += "Calibration: <font color='green'>Optimal</font>"
else
data += "Calibration: <font color='red'>Sub-Optimal</font>"
data += "</div><BR>"
data += "<A href='?src=\ref[src];regimeset=1'>Change regime</A><BR>"
data += "<A href='?src=\ref[src];settarget=1'>Set target</A><BR>"
if(locked)
data += "<BR><A href='?src=\ref[src];locked=1'>Get target from memory</A><BR>"
data += "<A href='?src=\ref[src];eject=1'>Eject GPS device</A><BR>"
else
data += "<BR><span class='linkOff'>Get target from memory</span><BR>"
data += "<span class='linkOff'>Eject GPS device</span><BR>"
data += "<BR><A href='?src=\ref[src];calibrate=1'>Calibrate Hub</A>"
var/datum/browser/popup = new(user, "teleporter", name, 400, 400)
popup.set_content(data)
popup.open()
return
/obj/machinery/computer/teleporter/Topic(href, href_list)
if(..())
return
if(href_list["eject"])
eject()
updateDialog()
return
if(!check_hub_connection())
say("Error: Unable to detect hub.")
return
if(calibrating)
say("Error: Calibration in progress. Stand by.")
return
if(href_list["regimeset"])
power_station.engaged = 0
power_station.teleporter_hub.update_icon()
power_station.teleporter_hub.calibrated = 0
reset_regime()
if(href_list["settarget"])
power_station.engaged = 0
power_station.teleporter_hub.update_icon()
power_station.teleporter_hub.calibrated = 0
set_target(usr)
if(href_list["locked"])
power_station.engaged = 0
power_station.teleporter_hub.update_icon()
power_station.teleporter_hub.calibrated = 0
target = get_turf(locked.locked_location)
if(href_list["calibrate"])
if(!target)
say("Error: No target set to calibrate to.")
return
if(power_station.teleporter_hub.calibrated || power_station.teleporter_hub.accurate >= 3)
say("Hub is already calibrated!")
return
say("Processing hub calibration to target...")
calibrating = 1
spawn(50 * (3 - power_station.teleporter_hub.accurate)) //Better parts mean faster calibration
calibrating = 0
if(check_hub_connection())
power_station.teleporter_hub.calibrated = 1
say("Calibration complete.")
else
say("Error: Unable to detect hub.")
updateDialog()
updateDialog()
/obj/machinery/computer/teleporter/proc/check_hub_connection()
if(!power_station)
return
if(!power_station.teleporter_hub)
return
return 1
/obj/machinery/computer/teleporter/proc/reset_regime()
target = null
if(regime_set == "Teleporter")
regime_set = "Gate"
else
regime_set = "Teleporter"
/obj/machinery/computer/teleporter/proc/eject()
if(locked)
locked.loc = loc
locked = null
/obj/machinery/computer/teleporter/proc/set_target(mob/user)
var/list/L = list()
var/list/areaindex = list()
if(regime_set == "Teleporter")
for(var/obj/item/device/radio/beacon/R in GLOB.teleportbeacons)
var/turf/T = get_turf(R)
if(!T)
continue
if(T.z == ZLEVEL_CENTCOM || T.z > ZLEVEL_SPACEMAX)
continue
L[avoid_assoc_duplicate_keys(T.loc.name, areaindex)] = R
for(var/obj/item/weapon/implant/tracking/I in GLOB.tracked_implants)
if(!I.imp_in || !ismob(I.loc))
continue
else
var/mob/M = I.loc
if(M.stat == DEAD)
if(M.timeofdeath + 6000 < world.time)
continue
var/turf/T = get_turf(M)
if(!T)
continue
if(T.z == ZLEVEL_CENTCOM)
continue
L[avoid_assoc_duplicate_keys(M.real_name, areaindex)] = I
var/desc = input("Please select a location to lock in.", "Locking Computer") as null|anything in L
target = L[desc]
else
var/list/S = power_station.linked_stations
if(!S.len)
to_chat(user, "<span class='alert'>No connected stations located.</span>")
return
for(var/obj/machinery/teleport/station/R in S)
var/turf/T = get_turf(R)
if(!T || !R.teleporter_hub || !R.teleporter_console)
continue
if(T.z == ZLEVEL_CENTCOM || T.z > ZLEVEL_SPACEMAX)
continue
L[avoid_assoc_duplicate_keys(T.loc.name, areaindex)] = R
var/desc = input("Please select a station to lock in.", "Locking Computer") as null|anything in L
target = L[desc]
if(target)
var/obj/machinery/teleport/station/trg = target
trg.linked_stations |= power_station
trg.stat &= ~NOPOWER
if(trg.teleporter_hub)
trg.teleporter_hub.stat &= ~NOPOWER
trg.teleporter_hub.update_icon()
if(trg.teleporter_console)
trg.teleporter_console.stat &= ~NOPOWER
trg.teleporter_console.update_icon()

View File

@@ -259,52 +259,4 @@
for(var/X in components)
var/obj/item/I = X
I.forceMove(loc)
..()
//Machine Frame Circuit Boards
/*Common Parts: Parts List: Ignitor, Timer, Infra-red laser, Infra-red sensor, t_scanner, Capacitor, Valve, sensor unit,
micro-manipulator, console screen, beaker, Microlaser, matter bin, power cells.
*/
/obj/item/weapon/circuitboard/machine
var/list/req_components = null
// Components required by the machine.
// Example: list(/obj/item/weapon/stock_parts/matter_bin = 5)
var/list/def_components = null
// Default replacements for req_components, to be used in apply_default_parts instead of req_components types
// Example: list(/obj/item/weapon/stock_parts/matter_bin = /obj/item/weapon/stock_parts/matter_bin/super)
/obj/item/weapon/circuitboard/machine/proc/apply_default_parts(obj/machinery/M)
if(!req_components)
return
M.component_parts = list(src) // List of components always contains a board
loc = null
for(var/comp_path in req_components)
var/comp_amt = req_components[comp_path]
if(!comp_amt)
continue
if(def_components && def_components[comp_path])
comp_path = def_components[comp_path]
if(ispath(comp_path, /obj/item/stack))
M.component_parts += new comp_path(null, comp_amt)
else
for(var/i in 1 to comp_amt)
M.component_parts += new comp_path(null)
M.RefreshParts()
/obj/item/weapon/circuitboard/machine/abductor
name = "alien board (Report This)"
icon_state = "abductor_mod"
origin_tech = "programming=5;abductor=3"
/obj/item/weapon/circuitboard/machine/clockwork
name = "clockwork board (Report This)"
icon_state = "clock_mod"
..()

View File

@@ -50,7 +50,7 @@
songs += T
/obj/machinery/disco/Initialize()
..()
. = ..()
selection = songs[1]

View File

@@ -4,32 +4,17 @@
icon = 'icons/obj/Cryogenic2.dmi'
icon_state = "scanner"
density = TRUE
var/locked = FALSE
anchored = TRUE
use_power = IDLE_POWER_USE
idle_power_usage = 50
active_power_usage = 300
occupant_typecache = list(/mob/living, /obj/item/bodypart/head, /obj/item/organ/brain)
circuit = /obj/item/weapon/circuitboard/machine/clonescanner
var/locked = FALSE
var/damage_coeff
var/scan_level
var/precision_coeff
/obj/machinery/dna_scannernew/New()
..()
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/clonescanner(null)
B.apply_default_parts(src)
/obj/item/weapon/circuitboard/machine/clonescanner
name = "Cloning Scanner (Machine Board)"
build_path = /obj/machinery/dna_scannernew
origin_tech = "programming=2;biotech=2"
req_components = list(
/obj/item/weapon/stock_parts/scanning_module = 1,
/obj/item/weapon/stock_parts/manipulator = 1,
/obj/item/weapon/stock_parts/micro_laser = 1,
/obj/item/stack/sheet/glass = 1,
/obj/item/stack/cable_coil = 2)
/obj/machinery/dna_scannernew/RefreshParts()
scan_level = 0
damage_coeff = 0

View File

@@ -21,7 +21,7 @@
return ..()
/obj/machinery/door/airlock/alarmlock/Initialize()
..()
. = ..()
SSradio.remove_object(src, air_frequency)
air_connection = SSradio.add_object(src, air_frequency, GLOB.RADIO_TO_AIRALARM)
open()

View File

@@ -45,7 +45,7 @@
Radio.listening = 0
/obj/machinery/door_timer/Initialize()
..()
. = ..()
if(id != null)
for(var/obj/machinery/door/window/brigdoor/M in urange(20, src))
if (M.id == id)

View File

@@ -26,7 +26,7 @@
var/list/affecting_areas
/obj/machinery/door/firedoor/Initialize()
..()
. = ..()
CalculateAffectingAreas()
/obj/machinery/door/firedoor/examine(mob/user)

View File

@@ -11,8 +11,8 @@ GLOBAL_LIST_EMPTY(doppler_arrays)
var/max_dist = 100
verb_say = "states coldly"
/obj/machinery/doppler_array/New()
..()
/obj/machinery/doppler_array/Initialize()
. = ..()
GLOB.doppler_arrays += src
/obj/machinery/doppler_array/Destroy()

View File

@@ -24,6 +24,7 @@
var/datum/material_container/materials
var/list/using_materials
var/starting_amount = 0
var/metal_cost = 1000
var/glass_cost = 1000
var/power_used = 1000
@@ -52,34 +53,27 @@
var/break_message = "lets out a tinny alarm before falling dark."
var/break_sound = 'sound/machines/warning-buzzer.ogg'
/obj/machinery/droneDispenser/New()
..()
obj_integrity = max_integrity
materials = new(src, list(MAT_METAL, MAT_GLASS),
MINERAL_MATERIAL_AMOUNT*MAX_STACK_SIZE*2)
/obj/machinery/droneDispenser/Initialize()
. = ..()
materials = new(src, list(MAT_METAL, MAT_GLASS), MINERAL_MATERIAL_AMOUNT*MAX_STACK_SIZE*2)
materials.insert_amount(starting_amount)
using_materials = list(MAT_METAL=metal_cost, MAT_GLASS=glass_cost)
/obj/machinery/droneDispenser/Destroy()
qdel(materials)
. = ..()
QDEL_NULL(materials)
return ..()
/obj/machinery/droneDispenser/preloaded/New()
..()
materials.insert_amount(5000)
/obj/machinery/droneDispenser/preloaded
starting_amount = 5000
/obj/machinery/droneDispenser/syndrone //Please forgive me
name = "syndrone shell dispenser"
desc = "A suspicious machine that will create Syndicate \
exterminator drones when supplied with metal and glass. Disgusting."
desc = "A suspicious machine that will create Syndicate exterminator drones when supplied with metal and glass. Disgusting."
dispense_type = /obj/item/drone_shell/syndrone
//If we're gonna be a jackass, go the full mile - 10 second recharge timer
cooldownTime = 100
end_create_message = "dispenses a suspicious drone shell."
/obj/machinery/droneDispenser/syndrone/New()
..()
materials.insert_amount(25000)
starting_amount = 25000
/obj/machinery/droneDispenser/syndrone/badass //Please forgive me
name = "badass syndrone shell dispenser"
@@ -101,10 +95,7 @@
metal_cost = 2000
glass_cost = 2000
power_used = 2000
/obj/machinery/droneDispenser/snowflake/preloaded/New()
..()
materials.insert_amount(10000)
starting_amount = 10000
// An example of a custom drone dispenser.
// This one requires no materials and creates basic hivebots

View File

@@ -220,7 +220,7 @@
var/sanitize_external
/obj/machinery/embedded_controller/radio/airlock_controller/Initialize(mapload)
..()
. = ..()
if(!mapload)
return

View File

@@ -77,7 +77,7 @@
return ..()
/obj/machinery/embedded_controller/radio/Initialize()
..()
. = ..()
set_frequency(frequency)
/obj/machinery/embedded_controller/radio/post_signal(datum/signal/signal)

View File

@@ -52,8 +52,7 @@
var/airpump_tag
/obj/machinery/embedded_controller/radio/simple_vent_controller/Initialize(mapload)
..()
. = ..()
if(!mapload)
return
var/datum/computer/file/embedded_program/simple_vent_controller/new_prog = new

View File

@@ -5,15 +5,15 @@
desc = "A wall-mounted flashbulb device."
icon = 'icons/obj/stationobjs.dmi'
icon_state = "mflash1"
var/obj/item/device/assembly/flash/handheld/bulb = null
max_integrity = 250
integrity_failure = 100
anchored = TRUE
var/obj/item/device/assembly/flash/handheld/bulb
var/id = null
var/range = 2 //this is roughly the size of brig cell
var/last_flash = 0 //Don't want it getting spammed like regular flashes
var/strength = 100 //How knocked down targets are when flashed.
var/base_state = "mflash"
max_integrity = 250
integrity_failure = 100
anchored = TRUE
/obj/machinery/flasher/portable //Portable version of the flasher. Only flashes when anchored
name = "portable flasher"
@@ -24,19 +24,17 @@
base_state = "pflash"
density = TRUE
/obj/machinery/flasher/New(loc, ndir = 0, built = 0)
..() // ..() is EXTREMELY IMPORTANT, never forget to add it
/obj/machinery/flasher/Initialize(mapload, ndir = 0, built = 0)
. = ..() // ..() is EXTREMELY IMPORTANT, never forget to add it
if(built)
setDir(ndir)
pixel_x = (dir & 3)? 0 : (dir == 4 ? -28 : 28)
pixel_y = (dir & 3)? (dir ==1 ? -28 : 28) : 0
else
bulb = new /obj/item/device/assembly/flash/handheld(src)
bulb = new(src)
/obj/machinery/flasher/Destroy()
if(bulb)
qdel(bulb)
bulb = null
QDEL_NULL(bulb)
return ..()
/obj/machinery/flasher/power_change()

View File

@@ -17,25 +17,26 @@ The console is located at computer/gulag_teleporter.dm
use_power = IDLE_POWER_USE
idle_power_usage = 200
active_power_usage = 5000
circuit = /obj/item/weapon/circuitboard/machine/gulag_teleporter
var/locked = FALSE
var/jumpsuit_type = /obj/item/clothing/under/rank/prisoner
var/shoes_type = /obj/item/clothing/shoes/sneakers/orange
var/obj/machinery/gulag_item_reclaimer/linked_reclaimer = null
var/list/required_items
var/obj/machinery/gulag_item_reclaimer/linked_reclaimer
var/static/list/telegulag_required_items = typecacheof(list(
/obj/item/weapon/implant,
/obj/item/clothing/suit/space/eva/plasmaman,
/obj/item/clothing/under/plasmaman,
/obj/item/clothing/head/helmet/space/plasmaman,
/obj/item/weapon/tank/internals,
/obj/item/clothing/mask/breath,
/obj/item/clothing/mask/gas))
/obj/machinery/gulag_teleporter/New()
/obj/machinery/gulag_teleporter/Initialize()
..()
required_items = typecacheof(list(
/obj/item/weapon/implant,
/obj/item/clothing/suit/space/eva/plasmaman,
/obj/item/clothing/under/plasmaman,
/obj/item/clothing/head/helmet/space/plasmaman,
/obj/item/weapon/tank/internals,
/obj/item/clothing/mask/breath,
/obj/item/clothing/mask/gas))
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/gulag_teleporter(null)
B.apply_default_parts(src)
addtimer(CALLBACK(src, .proc/locate_reclaimer), 5)
return INITIALIZE_HINT_LATELOAD
/obj/machinery/gulag_teleporter/LateInitialize()
locate_reclaimer()
/obj/machinery/gulag_teleporter/Destroy()
if(linked_reclaimer)
@@ -46,7 +47,6 @@ The console is located at computer/gulag_teleporter.dm
..()
update_icon()
/obj/machinery/gulag_teleporter/interact(mob/user)
if(locked)
to_chat(user, "[src] is locked.")
@@ -138,7 +138,7 @@ The console is located at computer/gulag_teleporter.dm
linked_reclaimer.stored_items[occupant] = list()
var/mob/living/mob_occupant = occupant
for(var/obj/item/W in mob_occupant)
if(!is_type_in_typecache(W, required_items) && mob_occupant.temporarilyRemoveItemFromInventory(W))
if(!is_type_in_typecache(W, telegulag_required_items) && mob_occupant.temporarilyRemoveItemFromInventory(W))
if(istype(W, /obj/item/weapon/restraints/handcuffs))
W.forceMove(get_turf(src))
continue

View File

@@ -40,6 +40,7 @@ Possible to do for anyone motivated enough:
active_power_usage = 100
max_integrity = 300
armor = list(melee = 50, bullet = 20, laser = 20, energy = 20, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 0)
circuit = /obj/item/weapon/circuitboard/machine/holopad
var/list/masters = list()//List of living mobs that use the holopad
var/last_request = 0 //to prevent request spam. ~Carn
var/holo_range = 5 // Change to change how far the AI can move away from the holopad before deactivating.
@@ -51,8 +52,6 @@ Possible to do for anyone motivated enough:
/obj/machinery/holopad/Initialize()
. = ..()
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/holopad(null)
B.apply_default_parts(src)
holopads += src
/obj/machinery/holopad/Destroy()
@@ -384,11 +383,5 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/
return Impersonation.examine(user)
return ..()
/obj/item/weapon/circuitboard/machine/holopad
name = "AI Holopad (Machine Board)"
build_path = /obj/machinery/holopad
origin_tech = "programming=1"
req_components = list(/obj/item/weapon/stock_parts/capacitor = 1)
#undef HOLOPAD_PASSIVE_POWER_USAGE
#undef HOLOGRAM_POWER_USAGE

View File

@@ -36,8 +36,8 @@
location.hotspot_expose(1000,500,1)
return 1
/obj/machinery/igniter/New()
..()
/obj/machinery/igniter/Initialize()
. = ..()
icon_state = "igniter[on]"
/obj/machinery/igniter/power_change()
@@ -61,15 +61,14 @@
anchored = TRUE
resistance_flags = FIRE_PROOF
/obj/machinery/sparker/New()
..()
/obj/machinery/sparker/Initialize()
. = ..()
spark_system = new /datum/effect_system/spark_spread
spark_system.set_up(2, 1, src)
spark_system.attach(src)
/obj/machinery/sparker/Destroy()
qdel(spark_system)
spark_system = null
QDEL_NULL(spark_system)
return ..()
/obj/machinery/sparker/power_change()

View File

@@ -15,7 +15,7 @@
/obj/item/weapon/reagent_containers/glass)
/obj/machinery/iv_drip/Initialize()
..()
. = ..()
update_icon()
drip_containers = typecacheof(drip_containers)

View File

@@ -8,6 +8,7 @@
use_power = TRUE
idle_power_usage = 200
active_power_usage = 2500
circuit = /obj/item/weapon/circuitboard/machine/launchpad
var/stationary = TRUE //to prevent briefcase pad deconstruction and such
var/display_name = "Launchpad"
var/teleport_speed = 35
@@ -17,20 +18,6 @@
var/x_offset = 0
var/y_offset = 0
/obj/machinery/launchpad/Initialize()
. = ..()
var/obj/item/weapon/circuitboard/machine/launchpad/B = new
B.apply_default_parts(src)
/obj/item/weapon/circuitboard/machine/launchpad
name = "Bluespace Launchpad (Machine Board)"
build_path = /obj/machinery/launchpad
origin_tech = "programming=3;engineering=3;plasmatech=2;bluespace=3"
req_components = list(
/obj/item/weapon/ore/bluespace_crystal = 1,
/obj/item/weapon/stock_parts/manipulator = 1)
def_components = list(/obj/item/weapon/ore/bluespace_crystal = /obj/item/weapon/ore/bluespace_crystal/artificial)
/obj/machinery/launchpad/RefreshParts()
var/E = -1 //to make default parts have the base value
for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts)
@@ -171,9 +158,7 @@
qdel(src)
/obj/machinery/launchpad/briefcase/Destroy()
if(!QDELETED(briefcase))
qdel(briefcase)
briefcase = null
QDEL_NULL(briefcase)
return ..()
/obj/machinery/launchpad/briefcase/isAvailable()

View File

@@ -12,7 +12,7 @@
// luminosity = 1
/obj/machinery/light_switch/Initialize()
..()
. = ..()
area = get_area(src)
if(otherarea)

View File

@@ -11,21 +11,20 @@
icon_state = "limbgrower_idleoff"
density = TRUE
container_type = OPENCONTAINER
var/operating = FALSE
anchored = TRUE
use_power = IDLE_POWER_USE
var/disabled = 0
idle_power_usage = 10
active_power_usage = 100
circuit = /obj/item/weapon/circuitboard/machine/limbgrower
var/operating = FALSE
var/disabled = FALSE
var/busy = FALSE
var/prod_coeff = 1
var/datum/design/being_built
var/datum/research/files
var/selected_category
var/screen = 1
var/list/categories = list(
"human",
"lizard",
@@ -33,22 +32,11 @@
"special"
)
/obj/machinery/limbgrower/New()
..()
/obj/machinery/limbgrower/Initialize()
. = ..()
create_reagents(0)
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/limbgrower(null)
B.apply_default_parts(src)
files = new /datum/research/limbgrower(src)
/obj/item/weapon/circuitboard/machine/limbgrower
name = "Limb Grower (Machine Board)"
build_path = /obj/machinery/limbgrower
origin_tech = "programming=2;biotech=2"
req_components = list(
/obj/item/weapon/stock_parts/manipulator = 1,
/obj/item/weapon/reagent_containers/glass/beaker = 2,
/obj/item/weapon/stock_parts/console_screen = 1)
/obj/machinery/limbgrower/interact(mob/user)
if(!is_operational())
return

View File

@@ -5,7 +5,6 @@
// This was created for firing ranges, but I suppose this could have other applications - Doohl
/obj/machinery/magnetic_module
icon = 'icons/obj/objects.dmi'
icon_state = "floor_magnet-f"
name = "electromagnetic generator"
@@ -29,22 +28,22 @@
var/center_y = 0
var/max_dist = 20 // absolute value of center_x,y cannot exceed this integer
/obj/machinery/magnetic_module/New()
/obj/machinery/magnetic_module/Initialize()
..()
var/turf/T = loc
hide(T.intact)
center = T
spawn(10) // must wait for map loading to finish
SSradio.add_object(src, freq, GLOB.RADIO_MAGNETS)
return INITIALIZE_HINT_LATELOAD
spawn()
magnetic_process()
/obj/machinery/magnetic_module/LateInitialize()
SSradio.add_object(src, freq, GLOB.RADIO_MAGNETS)
magnetic_process()
/obj/machinery/magnetic_module/Destroy()
SSradio.remove_object(src, freq)
. = ..()
center = null
return ..()
// update the invisibility and icon
/obj/machinery/magnetic_module/hide(intact)
@@ -216,27 +215,26 @@
var/datum/radio_frequency/radio_connection
/obj/machinery/magnetic_controller/New()
/obj/machinery/magnetic_controller/Initialize()
..()
if(autolink)
for(var/obj/machinery/magnetic_module/M in GLOB.machines)
if(M.freq == frequency && M.code == code)
magnets.Add(M)
spawn(45) // must wait for map loading to finish
radio_connection = SSradio.add_object(src, frequency, GLOB.RADIO_MAGNETS)
if(path) // check for default path
filter_path() // renders rpath
return INITIALIZE_HINT_LATELOAD
/obj/machinery/magnetic_controller/LateInitialize()
radio_connection = SSradio.add_object(src, frequency, GLOB.RADIO_MAGNETS)
/obj/machinery/magnetic_controller/Destroy()
SSradio.remove_object(src, frequency)
magnets = null
rpath = null
. = ..()
return ..()
/obj/machinery/magnetic_controller/process()
if(magnets.len == 0 && autolink)

View File

@@ -22,8 +22,8 @@
req_access = list(ACCESS_ENGINE, ACCESS_ROBOTICS)
/obj/machinery/navbeacon/New()
..()
/obj/machinery/navbeacon/Initialize()
. = ..()
set_codes()

View File

@@ -197,16 +197,15 @@ GLOBAL_LIST_EMPTY(allCasters)
name = "security newscaster"
securityCaster = 1
/obj/machinery/newscaster/New(loc, ndir, building)
..()
/obj/machinery/newscaster/Initialize(mapload, ndir, building)
. = ..()
if(building)
setDir(ndir)
pixel_x = (dir & 3)? 0 : (dir == 4 ? -32 : 32)
pixel_y = (dir & 3)? (dir ==1 ? -32 : 32) : 0
GLOB.allCasters += src
for(var/obj/machinery/newscaster/NEWSCASTER in GLOB.allCasters)
unit_no++
unit_no = GLOB.allCasters.len
update_icon()
/obj/machinery/newscaster/Destroy()

View File

@@ -72,8 +72,8 @@
var/obj/machinery/turretid/cp = null
/obj/machinery/porta_turret/New(loc)
..()
/obj/machinery/porta_turret/Initialize()
. = ..()
if(!base)
base = src
update_icon()
@@ -143,18 +143,13 @@
/obj/machinery/porta_turret/Destroy()
//deletes its own cover with it
if(cover)
qdel(cover)
cover = null
QDEL_NULL(cover)
base = null
if(cp)
cp.turrets -= src
cp = null
if(stored_gun)
qdel(stored_gun)
stored_gun = null
qdel(spark_system)
spark_system = null
QDEL_NULL(stored_gun)
QDEL_NULL(spark_system)
return ..()
@@ -602,8 +597,8 @@
/obj/machinery/porta_turret/aux_base/interact(mob/user) //Controlled solely from the base console.
return
/obj/machinery/porta_turret/aux_base/New()
..()
/obj/machinery/porta_turret/aux_base/Initialize()
. = ..()
cover.name = name
cover.desc = desc
@@ -650,8 +645,8 @@
var/list/obj/machinery/porta_turret/turrets = list()
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
/obj/machinery/turretid/New(loc, ndir = 0, built = 0)
..()
/obj/machinery/turretid/Initialize(loc, ndir = 0, built = 0)
. = ..()
if(built)
setDir(ndir)
locked = FALSE
@@ -664,7 +659,7 @@
return ..()
/obj/machinery/turretid/Initialize(mapload) //map-placed turrets autolink turrets
..()
. = ..()
if(!mapload)
return
@@ -681,7 +676,8 @@
T.cp = src
/obj/machinery/turretid/attackby(obj/item/I, mob/user, params)
if(stat & BROKEN) return
if(stat & BROKEN)
return
if (istype(I, /obj/item/device/multitool))
var/obj/item/device/multitool/M = I

View File

@@ -8,28 +8,13 @@
idle_power_usage = 200
active_power_usage = 5000
unique_rename = 1
circuit = /obj/item/weapon/circuitboard/machine/quantumpad
var/teleport_cooldown = 400 //30 seconds base due to base parts
var/teleport_speed = 50
var/last_teleport //to handle the cooldown
var/teleporting = 0 //if it's in the process of teleporting
var/power_efficiency = 1
var/obj/machinery/quantumpad/linked_pad = null
/obj/machinery/quantumpad/New()
..()
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/quantumpad(null)
B.apply_default_parts(src)
/obj/item/weapon/circuitboard/machine/quantumpad
name = "Quantum Pad (Machine Board)"
build_path = /obj/machinery/quantumpad
origin_tech = "programming=3;engineering=3;plasmatech=3;bluespace=4"
req_components = list(
/obj/item/weapon/ore/bluespace_crystal = 1,
/obj/item/weapon/stock_parts/capacitor = 1,
/obj/item/weapon/stock_parts/manipulator = 1,
/obj/item/stack/cable_coil = 1)
def_components = list(/obj/item/weapon/ore/bluespace_crystal = /obj/item/weapon/ore/bluespace_crystal/artificial)
var/obj/machinery/quantumpad/linked_pad
/obj/machinery/quantumpad/RefreshParts()
var/E = 0

View File

@@ -7,20 +7,14 @@
use_power = IDLE_POWER_USE
idle_power_usage = 4
active_power_usage = 250
circuit = /obj/item/weapon/circuitboard/machine/recharger
var/obj/item/charging = null
var/static/list/allowed_devices = typecacheof(list(/obj/item/weapon/gun/energy, /obj/item/weapon/melee/baton, /obj/item/ammo_box/magazine/recharge, /obj/item/device/modular_computer))
var/recharge_coeff = 1
/obj/machinery/recharger/Initialize()
. = ..()
var/obj/item/weapon/circuitboard/machine/recharger/B = new()
B.apply_default_parts(src)
/obj/item/weapon/circuitboard/machine/recharger
name = "Weapon Recharger (Machine Board)"
build_path = /obj/machinery/recharger
origin_tech = "powerstorage=4;engineering=3;materials=4"
req_components = list(/obj/item/weapon/stock_parts/capacitor = 1)
var/static/list/allowed_devices = typecacheof(list(
/obj/item/weapon/gun/energy,
/obj/item/weapon/melee/baton,
/obj/item/ammo_box/magazine/recharge,
/obj/item/device/modular_computer))
/obj/machinery/recharger/RefreshParts()
for(var/obj/item/weapon/stock_parts/capacitor/C in component_parts)

View File

@@ -8,27 +8,15 @@
idle_power_usage = 5
active_power_usage = 1000
req_access = list(ACCESS_ROBOTICS)
state_open = TRUE
circuit = /obj/item/weapon/circuitboard/machine/cyborgrecharger
var/recharge_speed
var/repairs
state_open = TRUE
/obj/machinery/recharge_station/New()
..()
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/cyborgrecharger(null)
B.apply_default_parts(src)
/obj/machinery/recharge_station/Initialize()
. = ..()
update_icon()
/obj/item/weapon/circuitboard/machine/cyborgrecharger
name = "Cyborg Recharger (Machine Board)"
build_path = /obj/machinery/recharge_station
origin_tech = "powerstorage=3;engineering=3"
req_components = list(
/obj/item/weapon/stock_parts/capacitor = 2,
/obj/item/weapon/stock_parts/cell = 1,
/obj/item/weapon/stock_parts/manipulator = 1)
def_components = list(
/obj/item/weapon/stock_parts/cell = /obj/item/weapon/stock_parts/cell/high)
/obj/machinery/recharge_station/RefreshParts()
recharge_speed = 0
repairs = 0

View File

@@ -8,6 +8,7 @@
layer = ABOVE_ALL_MOB_LAYER // Overhead
anchored = TRUE
density = TRUE
circuit = /obj/item/weapon/circuitboard/machine/recycler
var/safety_mode = FALSE // Temporarily stops machine if it detects a mob
var/icon_name = "grinder-o"
var/blood = 0
@@ -18,20 +19,10 @@
var/eat_victim_items = TRUE
var/item_recycle_sound = 'sound/items/welder.ogg'
/obj/machinery/recycler/New()
..()
/obj/machinery/recycler/Initialize()
materials = new /datum/material_container(src, list(MAT_METAL, MAT_GLASS, MAT_PLASMA, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM))
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/recycler(null)
B.apply_default_parts(src)
update_icon()
/obj/item/weapon/circuitboard/machine/recycler
name = "Recycler (Machine Board)"
build_path = /obj/machinery/recycler
origin_tech = "programming=2;engineering=2"
req_components = list(
/obj/item/weapon/stock_parts/matter_bin = 1,
/obj/item/weapon/stock_parts/manipulator = 1)
return ..()
/obj/machinery/recycler/RefreshParts()
var/amt_made = 0

View File

@@ -88,7 +88,7 @@ GLOBAL_LIST_EMPTY(allConsoles)
icon_state = "req_comp0"
/obj/machinery/requests_console/Initialize()
..()
. = ..()
name = "\improper [department] requests console"
GLOB.allConsoles += src
switch(departmentType)

View File

@@ -10,9 +10,9 @@
max_integrity = 200 //The shield can only take so much beating (prevents perma-prisons)
CanAtmosPass = ATMOS_PASS_DENSITY
/obj/structure/emergency_shield/New()
src.setDir(pick(1,2,3,4))
..()
/obj/structure/emergency_shield/Initialize()
setDir(pick(1,2,3,4))
. = ..()
air_update_turf(1)
/obj/structure/emergency_shield/Destroy()

View File

@@ -34,7 +34,7 @@
light_color = LIGHT_COLOR_BROWN
/obj/machinery/computer/slot_machine/Initialize()
..()
. = ..()
jackpots = rand(1, 4) //false hope
plays = rand(75, 200)

View File

@@ -12,6 +12,7 @@
desc = "Made by Space Amish using traditional space techniques, this heater/cooler is guaranteed not to set the station on fire."
max_integrity = 250
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 100, fire = 80, acid = 10)
circuit = /obj/item/weapon/circuitboard/machine/space_heater
var/obj/item/weapon/stock_parts/cell/cell
var/on = FALSE
var/mode = HEATER_MODE_STANDBY
@@ -26,22 +27,11 @@
/obj/machinery/space_heater/get_cell()
return cell
/obj/machinery/space_heater/New()
..()
/obj/machinery/space_heater/Initialize()
. = ..()
cell = new(src)
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/space_heater(null)
B.apply_default_parts(src)
update_icon()
/obj/item/weapon/circuitboard/machine/space_heater
name = "Space Heater (Machine Board)"
build_path = /obj/machinery/space_heater
origin_tech = "programming=2;engineering=2;plasmatech=2"
req_components = list(
/obj/item/weapon/stock_parts/micro_laser = 1,
/obj/item/weapon/stock_parts/capacitor = 1,
/obj/item/stack/cable_coil = 3)
/obj/machinery/space_heater/on_construction()
qdel(cell)
cell = null

View File

@@ -101,8 +101,8 @@
mask_type = /obj/item/clothing/mask/breath
storage_type = /obj/item/weapon/tank/internals/emergency_oxygen/double
/obj/machinery/suit_storage_unit/New()
..()
/obj/machinery/suit_storage_unit/Initialize()
. = ..()
wires = new /datum/wires/suit_storage_unit(src)
if(suit_type)
suit = new suit_type(src)
@@ -115,18 +115,10 @@
update_icon()
/obj/machinery/suit_storage_unit/Destroy()
if(suit)
qdel(suit)
suit = null
if(helmet)
qdel(helmet)
helmet = null
if(mask)
qdel(mask)
mask = null
if(storage)
qdel(storage)
storage = null
QDEL_NULL(suit)
QDEL_NULL(helmet)
QDEL_NULL(mask)
QDEL_NULL(storage)
return ..()
/obj/machinery/suit_storage_unit/update_icon()

View File

@@ -82,22 +82,19 @@
countdown.stop()
STOP_PROCESSING(SSfastprocess, src)
/obj/machinery/syndicatebomb/New()
/obj/machinery/syndicatebomb/Initialize()
. = ..()
wires = new /datum/wires/syndicatebomb(src)
if(src.payload)
if(payload)
payload = new payload(src)
update_icon()
countdown = new(src)
..()
/obj/machinery/syndicatebomb/Destroy()
qdel(wires)
wires = null
if(countdown)
qdel(countdown)
countdown = null
QDEL_NULL(wires)
QDEL_NULL(countdown)
STOP_PROCESSING(SSfastprocess, src)
. = ..()
return ..()
/obj/machinery/syndicatebomb/examine(mob/user)
..()

View File

@@ -17,8 +17,7 @@ GLOBAL_VAR_INIT(message_delay, 0) // To make sure restarting the recentmessages
use_power = IDLE_POWER_USE
idle_power_usage = 25
machinetype = 5
/*heatgen = 0
delay = 7*/
circuit = /obj/item/weapon/circuitboard/machine/telecomms/broadcaster
/obj/machinery/telecomms/broadcaster/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from)
// Don't broadcast rejected signals
@@ -82,22 +81,6 @@ GLOBAL_VAR_INIT(message_delay, 0) // To make sure restarting the recentmessages
/* --- Do a snazzy animation! --- */
flick("broadcaster_send", src)
/obj/machinery/telecomms/broadcaster/New()
..()
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/telecomms/broadcaster(null)
B.apply_default_parts(src)
/obj/item/weapon/circuitboard/machine/telecomms/broadcaster
name = "Subspace Broadcaster (Machine Board)"
build_path = /obj/machinery/telecomms/broadcaster
origin_tech = "programming=2;engineering=2;bluespace=1"
req_components = list(
/obj/item/weapon/stock_parts/manipulator = 2,
/obj/item/stack/cable_coil = 1,
/obj/item/weapon/stock_parts/subspace/filter = 1,
/obj/item/weapon/stock_parts/subspace/crystal = 1,
/obj/item/weapon/stock_parts/micro_laser = 2)
/obj/machinery/telecomms/broadcaster/Destroy()
// In case message_delay is left on 1, otherwise it won't reset the list and people can't say the same thing twice anymore.
if(GLOB.message_delay)

View File

@@ -17,8 +17,8 @@
use_power = IDLE_POWER_USE
idle_power_usage = 50
machinetype = 2
//heatgen = 20
netspeed = 40
circuit = /obj/item/weapon/circuitboard/machine/telecomms/bus
var/change_frequency = 0
/obj/machinery/telecomms/bus/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from)
@@ -49,24 +49,6 @@
if(can_send)
break
/obj/machinery/telecomms/bus/New()
..()
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/telecomms/bus(null)
B.apply_default_parts(src)
/obj/item/weapon/circuitboard/machine/telecomms/bus
name = "Bus Mainframe (Machine Board)"
build_path = /obj/machinery/telecomms/bus
origin_tech = "programming=2;engineering=2"
req_components = list(
/obj/item/weapon/stock_parts/manipulator = 2,
/obj/item/stack/cable_coil = 1,
/obj/item/weapon/stock_parts/subspace/filter = 1)
//Preset Buses
/obj/machinery/telecomms/bus/preset_one
@@ -93,10 +75,10 @@
freq_listening = list(GLOB.ENG_FREQ)
autolinkers = list("processor4", "engineering", "common")
/obj/machinery/telecomms/bus/preset_four/New()
/obj/machinery/telecomms/bus/preset_four/Initialize()
. = ..()
for(var/i = 1441, i < 1489, i += 2)
freq_listening |= i
..()
/obj/machinery/telecomms/bus/preset_one/birdstation
name = "Bus"

View File

@@ -18,10 +18,9 @@
use_power = IDLE_POWER_USE
idle_power_usage = 80
machinetype = 7
//heatgen = 40
long_range_link = 1
netspeed = 40
circuit = /obj/item/weapon/circuitboard/machine/telecomms/hub
/obj/machinery/telecomms/hub/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from)
if(is_freq_listening(signal))
@@ -33,23 +32,6 @@
relay_information(signal, "/obj/machinery/telecomms/relay", 1)
relay_information(signal, "/obj/machinery/telecomms/broadcaster", 1) // Send it to a broadcaster.
/obj/machinery/telecomms/hub/New()
..()
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/telecomms/hub(null)
B.apply_default_parts(src)
/obj/item/weapon/circuitboard/machine/telecomms/hub
name = "Hub Mainframe (Machine Board)"
build_path = /obj/machinery/telecomms/hub
origin_tech = "programming=2;engineering=2"
req_components = list(
/obj/item/weapon/stock_parts/manipulator = 2,
/obj/item/stack/cable_coil = 2,
/obj/item/weapon/stock_parts/subspace/filter = 2)
//Preset HUB
/obj/machinery/telecomms/hub/preset

View File

@@ -16,8 +16,7 @@
use_power = IDLE_POWER_USE
idle_power_usage = 30
machinetype = 3
//heatgen = 100
//delay = 5
circuit = /obj/item/weapon/circuitboard/machine/telecomms/processor
var/process_mode = 1 // 1 = Uncompress Signals, 0 = Compress Signals
/obj/machinery/telecomms/processor/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from)
@@ -35,24 +34,6 @@
signal.data["slow"] += rand(5, 10) // slow the signal down
relay_information(signal, "/obj/machinery/telecomms/server")
/obj/machinery/telecomms/processor/New()
..()
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/telecomms/processor(null)
B.apply_default_parts(src)
/obj/item/weapon/circuitboard/machine/telecomms/processor
name = "Processor Unit (Machine Board)"
build_path = /obj/machinery/telecomms/processor
origin_tech = "programming=2;engineering=2"
req_components = list(
/obj/item/weapon/stock_parts/manipulator = 3,
/obj/item/weapon/stock_parts/subspace/filter = 1,
/obj/item/weapon/stock_parts/subspace/treatment = 2,
/obj/item/weapon/stock_parts/subspace/analyzer = 1,
/obj/item/stack/cable_coil = 2,
/obj/item/weapon/stock_parts/subspace/amplifier = 1)
//Preset Processors
/obj/machinery/telecomms/processor/preset_one

View File

@@ -16,7 +16,7 @@
use_power = IDLE_POWER_USE
idle_power_usage = 30
machinetype = 1
//heatgen = 0
circuit = /obj/item/weapon/circuitboard/machine/telecomms/receiver
/obj/machinery/telecomms/receiver/receive_signal(datum/signal/signal)
@@ -50,25 +50,6 @@
return 0
return 1
/obj/machinery/telecomms/receiver/New()
..()
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/telecomms/receiver(null)
B.apply_default_parts(src)
/obj/item/weapon/circuitboard/machine/telecomms/receiver
name = "Subspace Receiver (Machine Board)"
build_path = /obj/machinery/telecomms/receiver
origin_tech = "programming=2;engineering=2;bluespace=1"
req_components = list(
/obj/item/weapon/stock_parts/subspace/ansible = 1,
/obj/item/weapon/stock_parts/subspace/filter = 1,
/obj/item/weapon/stock_parts/manipulator = 2,
/obj/item/weapon/stock_parts/micro_laser = 1)
//Preset Receivers
//--PRESET LEFT--//
@@ -89,10 +70,10 @@
freq_listening = list(GLOB.COMM_FREQ, GLOB.ENG_FREQ, GLOB.SEC_FREQ) //command, engineering, security
//Common and other radio frequencies for people to freely use
/obj/machinery/telecomms/receiver/preset_right/New()
/obj/machinery/telecomms/receiver/preset_right/Initialize()
. = ..()
for(var/i = 1441, i < 1489, i += 2)
freq_listening |= i
..()
/obj/machinery/telecomms/receiver/preset_left/birdstation
name = "Receiver"

View File

@@ -15,9 +15,9 @@
use_power = IDLE_POWER_USE
idle_power_usage = 30
machinetype = 8
//heatgen = 0
netspeed = 5
long_range_link = 1
circuit = /obj/item/weapon/circuitboard/machine/telecomms/relay
var/broadcasting = 1
var/receiving = 1
@@ -45,22 +45,6 @@
return FALSE
return receiving
/obj/machinery/telecomms/relay/New()
..()
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/telecomms/relay(null)
B.apply_default_parts(src)
/obj/item/weapon/circuitboard/machine/telecomms/relay
name = "Relay Mainframe (Machine Board)"
build_path = /obj/machinery/telecomms/relay
origin_tech = "programming=2;engineering=2;bluespace=2"
req_components = list(
/obj/item/weapon/stock_parts/manipulator = 2,
/obj/item/stack/cable_coil = 2,
/obj/item/weapon/stock_parts/subspace/filter = 2)
//Preset Relay
/obj/machinery/telecomms/relay/preset

View File

@@ -16,7 +16,7 @@
use_power = IDLE_POWER_USE
idle_power_usage = 15
machinetype = 4
//heatgen = 50
circuit = /obj/item/weapon/circuitboard/machine/telecomms/server
var/list/log_entries = list()
var/list/stored_names = list()
var/list/TrafficActions = list()
@@ -32,20 +32,9 @@
var/obj/item/device/radio/headset/server_radio = null
var/last_signal = 0 // Last time it sent a signal
/obj/machinery/telecomms/server/New()
..()
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/telecomms/server(null)
B.apply_default_parts(src)
server_radio = new()
/obj/item/weapon/circuitboard/machine/telecomms/server
name = "Telecommunication Server (Machine Board)"
build_path = /obj/machinery/telecomms/server
origin_tech = "programming=2;engineering=2"
req_components = list(
/obj/item/weapon/stock_parts/manipulator = 2,
/obj/item/stack/cable_coil = 1,
/obj/item/weapon/stock_parts/subspace/filter = 1)
/obj/machinery/telecomms/server/Initialize()
. = ..()
server_radio = new
/obj/machinery/telecomms/server/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from)
if(signal.data["message"])
@@ -135,8 +124,8 @@
/obj/machinery/telecomms/server/presets
network = "tcommsat"
/obj/machinery/telecomms/server/presets/New()
..()
/obj/machinery/telecomms/server/presets/Initialize()
. = ..()
name = id
@@ -167,10 +156,10 @@
//Common and other radio frequencies for people to freely use
// 1441 to 1489
/obj/machinery/telecomms/server/presets/common/New()
/obj/machinery/telecomms/server/presets/common/Initialize()
. = ..()
for(var/i = 1441, i < 1489, i += 2)
freq_listening |= i
..()
/obj/machinery/telecomms/server/presets/command
id = "Command Server"
@@ -187,6 +176,6 @@
freq_listening = list(GLOB.SEC_FREQ)
autolinkers = list("security")
/obj/machinery/telecomms/server/presets/common/birdstation/New()
..()
/obj/machinery/telecomms/server/presets/common/birdstation/Initialize()
. = ..()
freq_listening = list()

View File

@@ -16,6 +16,7 @@ GLOBAL_LIST_EMPTY(telecomms_list)
/obj/machinery/telecomms
icon = 'icons/obj/machines/telecomms.dmi'
critical_machine = TRUE
var/list/links = list() // list of machines this machine is linked to
var/traffic = 0 // value increases as traffic increases
var/netspeed = 5 // how much traffic to lose per tick (50 gigabytes/second * netspeed)
@@ -31,7 +32,6 @@ GLOBAL_LIST_EMPTY(telecomms_list)
var/long_range_link = 0 // Can you link it across Z levels or on the otherside of the map? (Relay & Hub)
var/hide = 0 // Is it a hidden machine?
var/listening_level = 0 // 0 = auto set in New() - this is the z level that the machine is listening to.
critical_machine = TRUE
/obj/machinery/telecomms/proc/relay_information(datum/signal/signal, filter, copysig, amount = 20)
@@ -144,7 +144,7 @@ GLOBAL_LIST_EMPTY(telecomms_list)
listening_level = position.z
/obj/machinery/telecomms/Initialize(mapload)
..()
. = ..()
if(mapload && autolinkers.len)
// Links nearby machines
if(!long_range_link)

View File

@@ -1,221 +1,3 @@
/obj/machinery/computer/teleporter
name = "teleporter control console"
desc = "Used to control a linked teleportation Hub and Station."
icon_screen = "teleport"
icon_keyboard = "teleport_key"
circuit = /obj/item/weapon/circuitboard/computer/teleporter
var/obj/item/device/gps/locked = null
var/regime_set = "Teleporter"
var/id = null
var/obj/machinery/teleport/station/power_station
var/calibrating
var/turf/target //Used for one-time-use teleport cards (such as clown planet coordinates.)
//Setting this to 1 will set src.locked to null after a player enters the portal and will not allow hand-teles to open portals to that location.
light_color = LIGHT_COLOR_BLUE
/obj/machinery/computer/teleporter/New()
src.id = "[rand(1000, 9999)]"
..()
/obj/machinery/computer/teleporter/Initialize()
..()
link_power_station()
/obj/machinery/computer/teleporter/Destroy()
if (power_station)
power_station.teleporter_console = null
power_station = null
return ..()
/obj/machinery/computer/teleporter/proc/link_power_station()
if(power_station)
return
for(dir in list(NORTH,EAST,SOUTH,WEST))
power_station = locate(/obj/machinery/teleport/station, get_step(src, dir))
if(power_station)
break
return power_station
/obj/machinery/computer/teleporter/attackby(obj/I, mob/living/user, params)
if(istype(I, /obj/item/device/gps))
var/obj/item/device/gps/L = I
if(L.locked_location && !(stat & (NOPOWER|BROKEN)))
if(!user.transferItemToLoc(L, src))
to_chat(user, "<span class='warning'>\the [I] is stuck to your hand, you cannot put it in \the [src]!</span>")
return
locked = L
to_chat(user, "<span class='caution'>You insert the GPS device into the [name]'s slot.</span>")
else
return ..()
/obj/machinery/computer/teleporter/attack_ai(mob/user)
src.attack_hand(user)
/obj/machinery/computer/teleporter/attack_hand(mob/user)
if(..())
return
interact(user)
/obj/machinery/computer/teleporter/interact(mob/user)
var/data = "<h3>Teleporter Status</h3>"
if(!power_station)
data += "<div class='statusDisplay'>No power station linked.</div>"
else if(!power_station.teleporter_hub)
data += "<div class='statusDisplay'>No hub linked.</div>"
else
data += "<div class='statusDisplay'>Current regime: [regime_set]<BR>"
data += "Current target: [(!target) ? "None" : "[get_area(target)] [(regime_set != "Gate") ? "" : "Teleporter"]"]<BR>"
if(calibrating)
data += "Calibration: <font color='yellow'>In Progress</font>"
else if(power_station.teleporter_hub.calibrated || power_station.teleporter_hub.accurate >= 3)
data += "Calibration: <font color='green'>Optimal</font>"
else
data += "Calibration: <font color='red'>Sub-Optimal</font>"
data += "</div><BR>"
data += "<A href='?src=\ref[src];regimeset=1'>Change regime</A><BR>"
data += "<A href='?src=\ref[src];settarget=1'>Set target</A><BR>"
if(locked)
data += "<BR><A href='?src=\ref[src];locked=1'>Get target from memory</A><BR>"
data += "<A href='?src=\ref[src];eject=1'>Eject GPS device</A><BR>"
else
data += "<BR><span class='linkOff'>Get target from memory</span><BR>"
data += "<span class='linkOff'>Eject GPS device</span><BR>"
data += "<BR><A href='?src=\ref[src];calibrate=1'>Calibrate Hub</A>"
var/datum/browser/popup = new(user, "teleporter", name, 400, 400)
popup.set_content(data)
popup.open()
return
/obj/machinery/computer/teleporter/Topic(href, href_list)
if(..())
return
if(href_list["eject"])
eject()
updateDialog()
return
if(!check_hub_connection())
say("Error: Unable to detect hub.")
return
if(calibrating)
say("Error: Calibration in progress. Stand by.")
return
if(href_list["regimeset"])
power_station.engaged = 0
power_station.teleporter_hub.update_icon()
power_station.teleporter_hub.calibrated = 0
reset_regime()
if(href_list["settarget"])
power_station.engaged = 0
power_station.teleporter_hub.update_icon()
power_station.teleporter_hub.calibrated = 0
set_target(usr)
if(href_list["locked"])
power_station.engaged = 0
power_station.teleporter_hub.update_icon()
power_station.teleporter_hub.calibrated = 0
target = get_turf(locked.locked_location)
if(href_list["calibrate"])
if(!target)
say("Error: No target set to calibrate to.")
return
if(power_station.teleporter_hub.calibrated || power_station.teleporter_hub.accurate >= 3)
say("Hub is already calibrated!")
return
say("Processing hub calibration to target...")
calibrating = 1
spawn(50 * (3 - power_station.teleporter_hub.accurate)) //Better parts mean faster calibration
calibrating = 0
if(check_hub_connection())
power_station.teleporter_hub.calibrated = 1
say("Calibration complete.")
else
say("Error: Unable to detect hub.")
updateDialog()
updateDialog()
/obj/machinery/computer/teleporter/proc/check_hub_connection()
if(!power_station)
return
if(!power_station.teleporter_hub)
return
return 1
/obj/machinery/computer/teleporter/proc/reset_regime()
target = null
if(regime_set == "Teleporter")
regime_set = "Gate"
else
regime_set = "Teleporter"
/obj/machinery/computer/teleporter/proc/eject()
if(locked)
locked.loc = loc
locked = null
/obj/machinery/computer/teleporter/proc/set_target(mob/user)
var/list/L = list()
var/list/areaindex = list()
if(regime_set == "Teleporter")
for(var/obj/item/device/radio/beacon/R in GLOB.teleportbeacons)
var/turf/T = get_turf(R)
if(!T)
continue
if(T.z == ZLEVEL_CENTCOM || T.z > ZLEVEL_SPACEMAX)
continue
L[avoid_assoc_duplicate_keys(T.loc.name, areaindex)] = R
for(var/obj/item/weapon/implant/tracking/I in GLOB.tracked_implants)
if(!I.imp_in || !ismob(I.loc))
continue
else
var/mob/M = I.loc
if(M.stat == DEAD)
if(M.timeofdeath + 6000 < world.time)
continue
var/turf/T = get_turf(M)
if(!T)
continue
if(T.z == ZLEVEL_CENTCOM)
continue
L[avoid_assoc_duplicate_keys(M.real_name, areaindex)] = I
var/desc = input("Please select a location to lock in.", "Locking Computer") as null|anything in L
target = L[desc]
else
var/list/S = power_station.linked_stations
if(!S.len)
to_chat(user, "<span class='alert'>No connected stations located.</span>")
return
for(var/obj/machinery/teleport/station/R in S)
var/turf/T = get_turf(R)
if(!T || !R.teleporter_hub || !R.teleporter_console)
continue
if(T.z == ZLEVEL_CENTCOM || T.z > ZLEVEL_SPACEMAX)
continue
L[avoid_assoc_duplicate_keys(T.loc.name, areaindex)] = R
var/desc = input("Please select a station to lock in.", "Locking Computer") as null|anything in L
target = L[desc]
if(target)
var/obj/machinery/teleport/station/trg = target
trg.linked_stations |= power_station
trg.stat &= ~NOPOWER
if(trg.teleporter_hub)
trg.teleporter_hub.stat &= ~NOPOWER
trg.teleporter_hub.update_icon()
if(trg.teleporter_console)
trg.teleporter_console.stat &= ~NOPOWER
trg.teleporter_console.update_icon()
/obj/machinery/teleport
name = "teleport"
icon = 'icons/obj/machines/teleporter.dmi'
@@ -226,29 +8,16 @@
name = "teleporter hub"
desc = "It's the hub of a teleporting machine."
icon_state = "tele0"
var/accurate = 0
use_power = IDLE_POWER_USE
idle_power_usage = 10
active_power_usage = 2000
circuit = /obj/item/weapon/circuitboard/machine/teleporter_hub
var/accurate = FALSE
var/obj/machinery/teleport/station/power_station
var/calibrated //Calibration prevents mutation
/obj/machinery/teleport/hub/New()
..()
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/teleporter_hub(null)
B.apply_default_parts(src)
/obj/item/weapon/circuitboard/machine/teleporter_hub
name = "Teleporter Hub (Machine Board)"
build_path = /obj/machinery/teleport/hub
origin_tech = "programming=3;engineering=4;bluespace=4;materials=4"
req_components = list(
/obj/item/weapon/ore/bluespace_crystal = 3,
/obj/item/weapon/stock_parts/matter_bin = 1)
def_components = list(/obj/item/weapon/ore/bluespace_crystal = /obj/item/weapon/ore/bluespace_crystal/artificial)
/obj/machinery/teleport/hub/Initialize()
..()
. = ..()
link_power_station()
/obj/machinery/teleport/hub/Destroy()
@@ -327,8 +96,8 @@
/obj/machinery/teleport/hub/proc/is_ready()
. = !panel_open && !(stat & (BROKEN|NOPOWER)) && power_station && power_station.engaged && !(power_station.stat & (BROKEN|NOPOWER))
/obj/machinery/teleport/hub/syndicate/New()
..()
/obj/machinery/teleport/hub/syndicate/Initialize()
. = ..()
component_parts += new /obj/item/weapon/stock_parts/matter_bin/super(null)
RefreshParts()
@@ -337,32 +106,18 @@
name = "station"
desc = "The power control station for a bluespace teleporter. Used for toggling power, and can activate a test-fire to prevent malfunctions."
icon_state = "controller"
var/engaged = 0
use_power = IDLE_POWER_USE
idle_power_usage = 10
active_power_usage = 2000
circuit = /obj/item/weapon/circuitboard/machine/teleporter_station
var/engaged = 0
var/obj/machinery/computer/teleporter/teleporter_console
var/obj/machinery/teleport/hub/teleporter_hub
var/list/linked_stations = list()
var/efficiency = 0
/obj/machinery/teleport/station/New()
..()
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/teleporter_station(null)
B.apply_default_parts(src)
/obj/item/weapon/circuitboard/machine/teleporter_station
name = "Teleporter Station (Machine Board)"
build_path = /obj/machinery/teleport/station
origin_tech = "programming=4;engineering=4;bluespace=4;plasmatech=3"
req_components = list(
/obj/item/weapon/ore/bluespace_crystal = 2,
/obj/item/weapon/stock_parts/capacitor = 2,
/obj/item/weapon/stock_parts/console_screen = 1)
def_components = list(/obj/item/weapon/ore/bluespace_crystal = /obj/item/weapon/ore/bluespace_crystal/artificial)
/obj/machinery/teleport/station/Initialize()
..()
. = ..()
link_console_and_hub()
/obj/machinery/teleport/station/RefreshParts()

View File

@@ -22,7 +22,7 @@
. = ..()
new /obj/machinery/conveyor/auto(locate(x - 1, y, z), WEST)
new /obj/machinery/conveyor/auto(loc, WEST)
new /obj/machinery/conveyor/auto(locate(x + 1, y, z), WEST)
new /obj/machinery/conveyor/auto(locate(x + 1, y, z), WEST)
countdown = new(src)
countdown.start()
@@ -33,9 +33,7 @@
to_chat(user, "It will be ready in [max(0, seconds_remaining)] seconds.")
/obj/machinery/transformer/Destroy()
if(countdown)
qdel(countdown)
countdown = null
QDEL_NULL(countdown)
. = ..()
/obj/machinery/transformer/power_change()

View File

@@ -24,6 +24,7 @@
max_integrity = 300
integrity_failure = 100
armor = list(melee = 20, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 70)
circuit = /obj/item/weapon/circuitboard/machine/vendor
var/active = 1 //No sales pitches if off!
var/vend_ready = 1 //Are we ready to vend?? Is it time??
@@ -62,10 +63,7 @@
/obj/machinery/vending/Initialize()
. = ..()
wires = new /datum/wires/vending(src)
if(refill_canister) //constructable vending machine
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/vendor(null)
B.apply_default_parts(src)
else
if(!refill_canister) //constructable vending machine
build_inventory(products)
build_inventory(contraband, 1)
build_inventory(premium, 0, 1)
@@ -77,46 +75,6 @@
last_slogan = world.time + rand(0, slogan_delay)
power_change()
/obj/item/weapon/circuitboard/machine/vendor
name = "Booze-O-Mat Vendor (Machine Board)"
build_path = /obj/machinery/vending/boozeomat
origin_tech = "programming=1"
req_components = list(
/obj/item/weapon/vending_refill/boozeomat = 3)
var/list/names_paths = list(/obj/machinery/vending/boozeomat = "Booze-O-Mat",
/obj/machinery/vending/coffee = "Solar's Best Hot Drinks",
/obj/machinery/vending/snack = "Getmore Chocolate Corp",
/obj/machinery/vending/cola = "Robust Softdrinks",
/obj/machinery/vending/cigarette = "ShadyCigs Deluxe",
/obj/machinery/vending/autodrobe = "AutoDrobe",
/obj/machinery/vending/clothing = "ClothesMate",
/obj/machinery/vending/medical = "NanoMed Plus",
/obj/machinery/vending/wallmed = "NanoMed")
/obj/item/weapon/circuitboard/machine/vendor/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/screwdriver))
var/position = names_paths.Find(build_path)
position = (position == names_paths.len) ? 1 : (position + 1)
var/typepath = names_paths[position]
to_chat(user, "<span class='notice'>You set the board to \"[names_paths[typepath]]\".</span>")
set_type(typepath)
else
return ..()
/obj/item/weapon/circuitboard/machine/vendor/proc/set_type(var/obj/machinery/vending/typepath)
build_path = typepath
name = "[names_paths[build_path]] Vendor (Machine Board)"
req_components = list(initial(typepath.refill_canister) = initial(typepath.refill_count))
/obj/item/weapon/circuitboard/machine/vendor/apply_default_parts(obj/machinery/M)
for(var/typepath in names_paths)
if(istype(M, typepath))
set_type(typepath)
break
..()
/obj/machinery/vending/Destroy()
QDEL_NULL(wires)
QDEL_NULL(coin)
@@ -795,7 +753,7 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C
desc = "Uh oh!"
/obj/machinery/vending/cola/random/Initialize()
..()
. = ..()
var/T = pick(subtypesof(/obj/machinery/vending/cola) - /obj/machinery/vending/cola/random)
new T(get_turf(src))
qdel(src)

View File

@@ -17,6 +17,7 @@
dir = EAST
icon = 'icons/mecha/mech_bay.dmi'
icon_state = "recharge_port"
circuit = /obj/item/weapon/circuitboard/machine/mech_recharger
var/obj/mecha/recharging_mech
var/obj/machinery/computer/mech_bay_power_console/recharge_console
var/max_charge = 50
@@ -24,20 +25,10 @@
var/repairability = 0
var/turf/recharging_turf = null
/obj/machinery/mech_bay_recharge_port/New()
..()
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/mech_recharger(null)
B.apply_default_parts(src)
/obj/machinery/mech_bay_recharge_port/Initialize()
. = ..()
recharging_turf = get_step(loc, dir)
/obj/item/weapon/circuitboard/machine/mech_recharger
name = "Mechbay Recharger (Machine Board)"
build_path = /obj/machinery/mech_bay_recharge_port
origin_tech = "programming=3;powerstorage=3;engineering=3"
req_components = list(
/obj/item/stack/cable_coil = 2,
/obj/item/weapon/stock_parts/capacitor = 5)
/obj/machinery/mech_bay_recharge_port/RefreshParts()
var/MC
for(var/obj/item/weapon/stock_parts/capacitor/C in component_parts)
@@ -149,5 +140,5 @@
add_overlay("recharge_comp_on")
/obj/machinery/computer/mech_bay_power_console/Initialize()
..()
. = ..()
reconnect()

View File

@@ -9,6 +9,7 @@
idle_power_usage = 20
active_power_usage = 5000
req_access = list(ACCESS_ROBOTICS)
circuit = /obj/item/weapon/circuitboard/machine/mechfab
var/time_coeff = 1
var/component_coeff = 1
var/datum/material_container/materials
@@ -34,22 +35,10 @@
"Misc"
)
/obj/machinery/mecha_part_fabricator/New()
..()
/obj/machinery/mecha_part_fabricator/Initialize()
files = new /datum/research(src) //Setup the research data holder.
materials = new(src, list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM, MAT_BLUESPACE))
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/mechfab(null)
B.apply_default_parts(src)
/obj/item/weapon/circuitboard/machine/mechfab
name = "Exosuit Fabricator (Machine Board)"
build_path = /obj/machinery/mecha_part_fabricator
origin_tech = "programming=2;engineering=2"
req_components = list(
/obj/item/weapon/stock_parts/matter_bin = 2,
/obj/item/weapon/stock_parts/manipulator = 1,
/obj/item/weapon/stock_parts/micro_laser = 1,
/obj/item/weapon/stock_parts/console_screen = 1)
return ..()
/obj/machinery/mecha_part_fabricator/RefreshParts()
var/T = 0

View File

@@ -0,0 +1,55 @@
//File with the circuitboard and circuitboard/machine class definitions and procs
// Circuitboard
/obj/item/weapon/circuitboard
name = "circuit board"
icon = 'icons/obj/module.dmi'
icon_state = "id_mod"
item_state = "electronic"
lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi'
righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
origin_tech = "programming=2"
materials = list(MAT_GLASS=1000)
w_class = WEIGHT_CLASS_SMALL
var/build_path = null
/obj/item/weapon/circuitboard/proc/apply_default_parts(obj/machinery/M)
return
// Circuitboard/machine
/*Common Parts: Parts List: Ignitor, Timer, Infra-red laser, Infra-red sensor, t_scanner, Capacitor, Valve, sensor unit,
micro-manipulator, console screen, beaker, Microlaser, matter bin, power cells.
*/
/obj/item/weapon/circuitboard/machine
var/list/req_components // Components required by the machine.
// Example: list(/obj/item/weapon/stock_parts/matter_bin = 5)
var/list/def_components // Default replacements for req_components, to be used in apply_default_parts instead of req_components types
// Example: list(/obj/item/weapon/stock_parts/matter_bin = /obj/item/weapon/stock_parts/matter_bin/super)
// Applies the default parts defined by the circuit board when the machine is created
/obj/item/weapon/circuitboard/machine/apply_default_parts(obj/machinery/M)
if(!req_components)
return
M.component_parts = list(src) // List of components always contains a board
loc = null
for(var/comp_path in req_components)
var/comp_amt = req_components[comp_path]
if(!comp_amt)
continue
if(def_components && def_components[comp_path])
comp_path = def_components[comp_path]
if(ispath(comp_path, /obj/item/stack))
M.component_parts += new comp_path(null, comp_amt)
else
for(var/i in 1 to comp_amt)
M.component_parts += new comp_path(null)
M.RefreshParts()

View File

@@ -0,0 +1,369 @@
/obj/item/weapon/circuitboard/computer/turbine_computer
name = "Turbine Computer (Computer Board)"
build_path = /obj/machinery/computer/turbine_computer
origin_tech = "programming=4;engineering=4;powerstorage=4"
/obj/item/weapon/circuitboard/computer/launchpad_console
name = "Launchpad Control Console (Computer Board)"
build_path = /obj/machinery/computer/launchpad
origin_tech = "programming=3;bluespace=3;plasmatech=2"
/obj/item/weapon/circuitboard/computer/message_monitor
name = "Message Monitor (Computer Board)"
build_path = /obj/machinery/computer/message_monitor
origin_tech = "programming=2"
/obj/item/weapon/circuitboard/computer/security
name = "Security Cameras (Computer Board)"
build_path = /obj/machinery/computer/security
origin_tech = "programming=2;combat=2"
/obj/item/weapon/circuitboard/computer/xenobiology
name = "circuit board (Xenobiology Console)"
build_path = /obj/machinery/computer/camera_advanced/xenobio
origin_tech = "programming=3;biotech=3"
/obj/item/weapon/circuitboard/computer/base_construction
name = "circuit board (Aux Mining Base Construction Console)"
build_path = /obj/machinery/computer/camera_advanced/base_construction
origin_tech = "programming=3;engineering=3"
/obj/item/weapon/circuitboard/computer/aiupload
name = "AI Upload (Computer Board)"
build_path = /obj/machinery/computer/upload/ai
origin_tech = "programming=4;engineering=4"
/obj/item/weapon/circuitboard/computer/borgupload
name = "Cyborg Upload (Computer Board)"
build_path = /obj/machinery/computer/upload/borg
origin_tech = "programming=4;engineering=4"
/obj/item/weapon/circuitboard/computer/med_data
name = "Medical Records Console (Computer Board)"
build_path = /obj/machinery/computer/med_data
origin_tech = "programming=2;biotech=2"
/obj/item/weapon/circuitboard/computer/pandemic
name = "PanD.E.M.I.C. 2200 (Computer Board)"
build_path = /obj/machinery/computer/pandemic
origin_tech = "programming=2;biotech=2"
/obj/item/weapon/circuitboard/computer/scan_consolenew
name = "DNA Machine (Computer Board)"
build_path = /obj/machinery/computer/scan_consolenew
origin_tech = "programming=2;biotech=2"
/obj/item/weapon/circuitboard/computer/communications
name = "Communications (Computer Board)"
build_path = /obj/machinery/computer/communications
origin_tech = "programming=3;magnets=3"
var/lastTimeUsed = 0
/obj/item/weapon/circuitboard/computer/card
name = "ID Console (Computer Board)"
build_path = /obj/machinery/computer/card
origin_tech = "programming=3"
/obj/item/weapon/circuitboard/computer/card/centcom
name = "CentCom ID Console (Computer Board)"
build_path = /obj/machinery/computer/card/centcom
/obj/item/weapon/circuitboard/computer/card/minor
name = "Department Management Console (Computer Board)"
build_path = /obj/machinery/computer/card/minor
var/target_dept = 1
var/list/dept_list = list("General","Security","Medical","Science","Engineering")
/obj/item/weapon/circuitboard/computer/card/minor/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/screwdriver))
target_dept = (target_dept == dept_list.len) ? 1 : (target_dept + 1)
to_chat(user, "<span class='notice'>You set the board to \"[dept_list[target_dept]]\".</span>")
else
return ..()
/obj/item/weapon/circuitboard/computer/card/minor/examine(user)
..()
to_chat(user, "Currently set to \"[dept_list[target_dept]]\".")
//obj/item/weapon/circuitboard/computer/shield
// name = "Shield Control (Computer Board)"
// build_path = /obj/machinery/computer/stationshield
/obj/item/weapon/circuitboard/computer/teleporter
name = "Teleporter (Computer Board)"
build_path = /obj/machinery/computer/teleporter
origin_tech = "programming=3;bluespace=3;plasmatech=3"
/obj/item/weapon/circuitboard/computer/secure_data
name = "Security Records Console (Computer Board)"
build_path = /obj/machinery/computer/secure_data
origin_tech = "programming=2;combat=2"
/obj/item/weapon/circuitboard/computer/stationalert
name = "Station Alerts (Computer Board)"
build_path = /obj/machinery/computer/station_alert
/obj/item/weapon/circuitboard/computer/atmos_control
name = "Atmospheric Monitor (Computer Board)"
build_path = /obj/machinery/computer/atmos_control
/obj/item/weapon/circuitboard/computer/atmos_control/tank
name = "Tank Control (Computer Board)"
build_path = /obj/machinery/computer/atmos_control/tank
origin_tech = "programming=2;engineering=3;materials=2"
/obj/item/weapon/circuitboard/computer/atmos_alert
name = "Atmospheric Alert (Computer Board)"
build_path = /obj/machinery/computer/atmos_alert
/obj/item/weapon/circuitboard/computer/pod
name = "Massdriver control (Computer Board)"
build_path = /obj/machinery/computer/pod
/obj/item/weapon/circuitboard/computer/robotics
name = "Robotics Control (Computer Board)"
build_path = /obj/machinery/computer/robotics
origin_tech = "programming=3"
/obj/item/weapon/circuitboard/computer/cloning
name = "Cloning (Computer Board)"
build_path = /obj/machinery/computer/cloning
origin_tech = "programming=2;biotech=2"
/obj/item/weapon/circuitboard/computer/arcade/battle
name = "Arcade Battle (Computer Board)"
build_path = /obj/machinery/computer/arcade/battle
origin_tech = "programming=1"
/obj/item/weapon/circuitboard/computer/arcade/orion_trail
name = "Orion Trail (Computer Board)"
build_path = /obj/machinery/computer/arcade/orion_trail
origin_tech = "programming=1"
/obj/item/weapon/circuitboard/computer/turbine_control
name = "Turbine control (Computer Board)"
build_path = /obj/machinery/computer/turbine_computer
/obj/item/weapon/circuitboard/computer/solar_control
name = "Solar Control (Computer Board)" //name fixed 250810
build_path = /obj/machinery/power/solar_control
origin_tech = "programming=2;powerstorage=2"
/obj/item/weapon/circuitboard/computer/powermonitor
name = "Power Monitor (Computer Board)" //name fixed 250810
build_path = /obj/machinery/computer/monitor
origin_tech = "programming=2;powerstorage=2"
/obj/item/weapon/circuitboard/computer/olddoor
name = "DoorMex (Computer Board)"
build_path = /obj/machinery/computer/pod/old
/obj/item/weapon/circuitboard/computer/syndicatedoor
name = "ProComp Executive (Computer Board)"
build_path = /obj/machinery/computer/pod/old/syndicate
/obj/item/weapon/circuitboard/computer/swfdoor
name = "Magix (Computer Board)"
build_path = /obj/machinery/computer/pod/old/swf
/obj/item/weapon/circuitboard/computer/prisoner
name = "Prisoner Management Console (Computer Board)"
build_path = /obj/machinery/computer/prisoner
/obj/item/weapon/circuitboard/computer/gulag_teleporter_console
name = "Labor Camp teleporter console (Computer Board)"
build_path = /obj/machinery/computer/gulag_teleporter_computer
/obj/item/weapon/circuitboard/computer/rdconsole
name = "R&D Console (Computer Board)"
build_path = /obj/machinery/computer/rdconsole/core
/obj/item/weapon/circuitboard/computer/rdconsole/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/screwdriver))
if(build_path == /obj/machinery/computer/rdconsole/core)
name = "R&D Console - Robotics (Computer Board)"
build_path = /obj/machinery/computer/rdconsole/robotics
to_chat(user, "<span class='notice'>Access protocols successfully updated.</span>")
else
name = "R&D Console (Computer Board)"
build_path = /obj/machinery/computer/rdconsole/core
to_chat(user, "<span class='notice'>Defaulting access protocols.</span>")
else
return ..()
/obj/item/weapon/circuitboard/computer/mecha_control
name = "Exosuit Control Console (Computer Board)"
build_path = /obj/machinery/computer/mecha
/obj/item/weapon/circuitboard/computer/rdservercontrol
name = "R&D Server Control (Computer Board)"
build_path = /obj/machinery/computer/rdservercontrol
/obj/item/weapon/circuitboard/computer/crew
name = "Crew Monitoring Console (Computer Board)"
build_path = /obj/machinery/computer/crew
origin_tech = "programming=2;biotech=2"
/obj/item/weapon/circuitboard/computer/mech_bay_power_console
name = "Mech Bay Power Control Console (Computer Board)"
build_path = /obj/machinery/computer/mech_bay_power_console
origin_tech = "programming=3;powerstorage=3"
/obj/item/weapon/circuitboard/computer/cargo
name = "Supply Console (Computer Board)"
build_path = /obj/machinery/computer/cargo
origin_tech = "programming=3"
var/contraband = FALSE
var/emagged = FALSE
/obj/item/weapon/circuitboard/computer/cargo/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/device/multitool))
if(!emagged)
contraband = !contraband
to_chat(user, "<span class='notice'>Receiver spectrum set to [contraband ? "Broad" : "Standard"].</span>")
else
to_chat(user, "<span class='notice'>The spectrum chip is unresponsive.</span>")
else if(istype(I, /obj/item/weapon/card/emag))
if(!emagged)
contraband = TRUE
emagged = TRUE
to_chat(user, "<span class='notice'>You adjust [src]'s routing and receiver spectrum, unlocking special supplies and contraband.</span>")
else
return ..()
/obj/item/weapon/circuitboard/computer/cargo/request
name = "Supply Request Console (Computer Board)"
build_path = /obj/machinery/computer/cargo/request
/obj/item/weapon/circuitboard/computer/stockexchange
name = "circuit board (Stock Exchange Console)"
build_path = /obj/machinery/computer/stockexchange
origin_tech = "programming=3"
/obj/item/weapon/circuitboard/computer/operating
name = "Operating Computer (Computer Board)"
build_path = /obj/machinery/computer/operating
origin_tech = "programming=2;biotech=3"
/obj/item/weapon/circuitboard/computer/mining
name = "Outpost Status Display (Computer Board)"
build_path = /obj/machinery/computer/security/mining
/obj/item/weapon/circuitboard/computer/comm_monitor
name = "Telecommunications Monitor (Computer Board)"
build_path = /obj/machinery/computer/telecomms/monitor
origin_tech = "programming=3;magnets=3;bluespace=2"
/obj/item/weapon/circuitboard/computer/comm_server
name = "Telecommunications Server Monitor (Computer Board)"
build_path = /obj/machinery/computer/telecomms/server
origin_tech = "programming=3;magnets=3;bluespace=2"
/obj/item/weapon/circuitboard/computer/shuttle
name = "Shuttle (Computer Board)"
build_path = /obj/machinery/computer/shuttle
var/shuttleId
var/possible_destinations = ""
/obj/item/weapon/circuitboard/computer/shuttle/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/device/multitool))
var/chosen_id = round(input(usr, "Choose an ID number (-1 for reset):", "Input an Integer", null) as num|null)
if(chosen_id >= 0)
shuttleId = chosen_id
else
shuttleId = initial(shuttleId)
else
return ..()
/obj/item/weapon/circuitboard/computer/labor_shuttle
name = "Labor Shuttle (Computer Board)"
build_path = /obj/machinery/computer/shuttle/labor
/obj/item/weapon/circuitboard/computer/labor_shuttle/one_way
name = "Prisoner Shuttle Console (Computer Board)"
build_path = /obj/machinery/computer/shuttle/labor/one_way
/obj/item/weapon/circuitboard/computer/ferry
name = "Transport Ferry (Computer Board)"
build_path = /obj/machinery/computer/shuttle/ferry
/obj/item/weapon/circuitboard/computer/ferry/request
name = "Transport Ferry Console (Computer Board)"
build_path = /obj/machinery/computer/shuttle/ferry/request
/obj/item/weapon/circuitboard/computer/mining_shuttle
name = "Mining Shuttle (Computer Board)"
build_path = /obj/machinery/computer/shuttle/mining
/obj/item/weapon/circuitboard/computer/white_ship
name = "White Ship (Computer Board)"
build_path = /obj/machinery/computer/shuttle/white_ship
/obj/item/weapon/circuitboard/computer/auxillary_base
name = "Auxillary Base Management Console (Computer Board)"
build_path = /obj/machinery/computer/auxillary_base
/obj/item/weapon/circuitboard/computer/holodeck// Not going to let people get this, but it's just here for future
name = "Holodeck Control (Computer Board)"
build_path = /obj/machinery/computer/holodeck
origin_tech = "programming=4"
/obj/item/weapon/circuitboard/computer/aifixer
name = "AI Integrity Restorer (Computer Board)"
build_path = /obj/machinery/computer/aifixer
origin_tech = "programming=2;biotech=2"
/obj/item/weapon/circuitboard/computer/slot_machine
name = "Slot Machine (Computer Board)"
build_path = /obj/machinery/computer/slot_machine
origin_tech = "programming=1"
/obj/item/weapon/circuitboard/computer/libraryconsole
name = "Library Visitor Console (Computer Board)"
build_path = /obj/machinery/computer/libraryconsole
origin_tech = "programming=1"
/obj/item/weapon/circuitboard/computer/libraryconsole/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/screwdriver))
if(build_path == /obj/machinery/computer/libraryconsole/bookmanagement)
name = "Library Visitor Console (Computer Board)"
build_path = /obj/machinery/computer/libraryconsole
to_chat(user, "<span class='notice'>Defaulting access protocols.</span>")
else
name = "Book Inventory Management Console (Computer Board)"
build_path = /obj/machinery/computer/libraryconsole/bookmanagement
to_chat(user, "<span class='notice'>Access protocols successfully updated.</span>")
else
return ..()
/obj/item/weapon/circuitboard/computer/apc_control
name = "\improper Power Flow Control Console (Computer Board)"
build_path = /obj/machinery/computer/apc_control
origin_tech = "programming=3;engineering=3;powerstorage=2"
/obj/item/weapon/circuitboard/computer/shuttle/monastery_shuttle
name = "Monastery Shuttle (Computer Board)"
build_path = /obj/machinery/computer/shuttle/monastery_shuttle
/obj/item/weapon/circuitboard/computer/syndicate_shuttle
name = "Syndicate Shuttle (Computer Board)"
build_path = /obj/machinery/computer/shuttle/syndicate
var/challenge = FALSE
var/moved = FALSE
/obj/item/weapon/circuitboard/computer/syndicate_shuttle/Initialize()
. = ..()
GLOB.syndicate_shuttle_boards += src
/obj/item/weapon/circuitboard/computer/syndicate_shuttle/Destroy()
GLOB.syndicate_shuttle_boards -= src
return ..()
/obj/item/weapon/circuitboard/computer/bsa_control
name = "Bluespace Artillery Controls (Computer Board)"
build_path = /obj/machinery/computer/bsa_control
origin_tech = "engineering=2;combat=2;bluespace=2"
/obj/item/weapon/circuitboard/computer/sat_control
name = "Satellite Network Control (Computer Board)"
build_path = /obj/machinery/computer/sat_control
origin_tech = "engineering=3"

View File

@@ -0,0 +1,723 @@
/obj/item/weapon/circuitboard/machine/sleeper
name = "Sleeper (Machine Board)"
build_path = /obj/machinery/sleeper
origin_tech = "programming=3;biotech=2;engineering=3"
req_components = list(
/obj/item/weapon/stock_parts/matter_bin = 1,
/obj/item/weapon/stock_parts/manipulator = 1,
/obj/item/stack/cable_coil = 1,
/obj/item/weapon/stock_parts/console_screen = 1,
/obj/item/stack/sheet/glass = 1)
/obj/item/weapon/circuitboard/machine/announcement_system
name = "Announcement System (Machine Board)"
build_path = /obj/machinery/announcement_system
origin_tech = "programming=3;bluespace=3;magnets=2"
req_components = list(
/obj/item/stack/cable_coil = 2,
/obj/item/weapon/stock_parts/console_screen = 1)
/obj/item/weapon/circuitboard/machine/autolathe
name = "Autolathe (Machine Board)"
build_path = /obj/machinery/autolathe
origin_tech = "engineering=2;programming=2"
req_components = list(
/obj/item/weapon/stock_parts/matter_bin = 3,
/obj/item/weapon/stock_parts/manipulator = 1,
/obj/item/weapon/stock_parts/console_screen = 1)
/obj/item/weapon/circuitboard/machine/clonepod
name = "Clone Pod (Machine Board)"
build_path = /obj/machinery/clonepod
origin_tech = "programming=2;biotech=2"
req_components = list(
/obj/item/stack/cable_coil = 2,
/obj/item/weapon/stock_parts/scanning_module = 2,
/obj/item/weapon/stock_parts/manipulator = 2,
/obj/item/stack/sheet/glass = 1)
/obj/item/weapon/circuitboard/machine/abductor
name = "alien board (Report This)"
icon_state = "abductor_mod"
origin_tech = "programming=5;abductor=3"
/obj/item/weapon/circuitboard/machine/clockwork
name = "clockwork board (Report This)"
icon_state = "clock_mod"
/obj/item/weapon/circuitboard/machine/clonescanner
name = "Cloning Scanner (Machine Board)"
build_path = /obj/machinery/dna_scannernew
origin_tech = "programming=2;biotech=2"
req_components = list(
/obj/item/weapon/stock_parts/scanning_module = 1,
/obj/item/weapon/stock_parts/manipulator = 1,
/obj/item/weapon/stock_parts/micro_laser = 1,
/obj/item/stack/sheet/glass = 1,
/obj/item/stack/cable_coil = 2)
/obj/item/weapon/circuitboard/machine/holopad
name = "AI Holopad (Machine Board)"
build_path = /obj/machinery/holopad
origin_tech = "programming=1"
req_components = list(/obj/item/weapon/stock_parts/capacitor = 1)
/obj/item/weapon/circuitboard/machine/launchpad
name = "Bluespace Launchpad (Machine Board)"
build_path = /obj/machinery/launchpad
origin_tech = "programming=3;engineering=3;plasmatech=2;bluespace=3"
req_components = list(
/obj/item/weapon/ore/bluespace_crystal = 1,
/obj/item/weapon/stock_parts/manipulator = 1)
def_components = list(/obj/item/weapon/ore/bluespace_crystal = /obj/item/weapon/ore/bluespace_crystal/artificial)
/obj/item/weapon/circuitboard/machine/limbgrower
name = "Limb Grower (Machine Board)"
build_path = /obj/machinery/limbgrower
origin_tech = "programming=2;biotech=2"
req_components = list(
/obj/item/weapon/stock_parts/manipulator = 1,
/obj/item/weapon/reagent_containers/glass/beaker = 2,
/obj/item/weapon/stock_parts/console_screen = 1)
/obj/item/weapon/circuitboard/machine/quantumpad
name = "Quantum Pad (Machine Board)"
build_path = /obj/machinery/quantumpad
origin_tech = "programming=3;engineering=3;plasmatech=3;bluespace=4"
req_components = list(
/obj/item/weapon/ore/bluespace_crystal = 1,
/obj/item/weapon/stock_parts/capacitor = 1,
/obj/item/weapon/stock_parts/manipulator = 1,
/obj/item/stack/cable_coil = 1)
def_components = list(/obj/item/weapon/ore/bluespace_crystal = /obj/item/weapon/ore/bluespace_crystal/artificial)
/obj/item/weapon/circuitboard/machine/recharger
name = "Weapon Recharger (Machine Board)"
build_path = /obj/machinery/recharger
origin_tech = "powerstorage=4;engineering=3;materials=4"
req_components = list(/obj/item/weapon/stock_parts/capacitor = 1)
/obj/item/weapon/circuitboard/machine/cyborgrecharger
name = "Cyborg Recharger (Machine Board)"
build_path = /obj/machinery/recharge_station
origin_tech = "powerstorage=3;engineering=3"
req_components = list(
/obj/item/weapon/stock_parts/capacitor = 2,
/obj/item/weapon/stock_parts/cell = 1,
/obj/item/weapon/stock_parts/manipulator = 1)
def_components = list(/obj/item/weapon/stock_parts/cell = /obj/item/weapon/stock_parts/cell/high)
/obj/item/weapon/circuitboard/machine/recycler
name = "Recycler (Machine Board)"
build_path = /obj/machinery/recycler
origin_tech = "programming=2;engineering=2"
req_components = list(
/obj/item/weapon/stock_parts/matter_bin = 1,
/obj/item/weapon/stock_parts/manipulator = 1)
/obj/item/weapon/circuitboard/machine/space_heater
name = "Space Heater (Machine Board)"
build_path = /obj/machinery/space_heater
origin_tech = "programming=2;engineering=2;plasmatech=2"
req_components = list(
/obj/item/weapon/stock_parts/micro_laser = 1,
/obj/item/weapon/stock_parts/capacitor = 1,
/obj/item/stack/cable_coil = 3)
/obj/item/weapon/circuitboard/machine/telecomms/broadcaster
name = "Subspace Broadcaster (Machine Board)"
build_path = /obj/machinery/telecomms/broadcaster
origin_tech = "programming=2;engineering=2;bluespace=1"
req_components = list(
/obj/item/weapon/stock_parts/manipulator = 2,
/obj/item/stack/cable_coil = 1,
/obj/item/weapon/stock_parts/subspace/filter = 1,
/obj/item/weapon/stock_parts/subspace/crystal = 1,
/obj/item/weapon/stock_parts/micro_laser = 2)
/obj/item/weapon/circuitboard/machine/telecomms/bus
name = "Bus Mainframe (Machine Board)"
build_path = /obj/machinery/telecomms/bus
origin_tech = "programming=2;engineering=2"
req_components = list(
/obj/item/weapon/stock_parts/manipulator = 2,
/obj/item/stack/cable_coil = 1,
/obj/item/weapon/stock_parts/subspace/filter = 1)
/obj/item/weapon/circuitboard/machine/telecomms/hub
name = "Hub Mainframe (Machine Board)"
build_path = /obj/machinery/telecomms/hub
origin_tech = "programming=2;engineering=2"
req_components = list(
/obj/item/weapon/stock_parts/manipulator = 2,
/obj/item/stack/cable_coil = 2,
/obj/item/weapon/stock_parts/subspace/filter = 2)
/obj/item/weapon/circuitboard/machine/telecomms/processor
name = "Processor Unit (Machine Board)"
build_path = /obj/machinery/telecomms/processor
origin_tech = "programming=2;engineering=2"
req_components = list(
/obj/item/weapon/stock_parts/manipulator = 3,
/obj/item/weapon/stock_parts/subspace/filter = 1,
/obj/item/weapon/stock_parts/subspace/treatment = 2,
/obj/item/weapon/stock_parts/subspace/analyzer = 1,
/obj/item/stack/cable_coil = 2,
/obj/item/weapon/stock_parts/subspace/amplifier = 1)
/obj/item/weapon/circuitboard/machine/telecomms/receiver
name = "Subspace Receiver (Machine Board)"
build_path = /obj/machinery/telecomms/receiver
origin_tech = "programming=2;engineering=2;bluespace=1"
req_components = list(
/obj/item/weapon/stock_parts/subspace/ansible = 1,
/obj/item/weapon/stock_parts/subspace/filter = 1,
/obj/item/weapon/stock_parts/manipulator = 2,
/obj/item/weapon/stock_parts/micro_laser = 1)
/obj/item/weapon/circuitboard/machine/telecomms/relay
name = "Relay Mainframe (Machine Board)"
build_path = /obj/machinery/telecomms/relay
origin_tech = "programming=2;engineering=2;bluespace=2"
req_components = list(
/obj/item/weapon/stock_parts/manipulator = 2,
/obj/item/stack/cable_coil = 2,
/obj/item/weapon/stock_parts/subspace/filter = 2)
/obj/item/weapon/circuitboard/machine/telecomms/server
name = "Telecommunication Server (Machine Board)"
build_path = /obj/machinery/telecomms/server
origin_tech = "programming=2;engineering=2"
req_components = list(
/obj/item/weapon/stock_parts/manipulator = 2,
/obj/item/stack/cable_coil = 1,
/obj/item/weapon/stock_parts/subspace/filter = 1)
/obj/item/weapon/circuitboard/machine/teleporter_hub
name = "Teleporter Hub (Machine Board)"
build_path = /obj/machinery/teleport/hub
origin_tech = "programming=3;engineering=4;bluespace=4;materials=4"
req_components = list(
/obj/item/weapon/ore/bluespace_crystal = 3,
/obj/item/weapon/stock_parts/matter_bin = 1)
def_components = list(/obj/item/weapon/ore/bluespace_crystal = /obj/item/weapon/ore/bluespace_crystal/artificial)
/obj/item/weapon/circuitboard/machine/teleporter_station
name = "Teleporter Station (Machine Board)"
build_path = /obj/machinery/teleport/station
origin_tech = "programming=4;engineering=4;bluespace=4;plasmatech=3"
req_components = list(
/obj/item/weapon/ore/bluespace_crystal = 2,
/obj/item/weapon/stock_parts/capacitor = 2,
/obj/item/weapon/stock_parts/console_screen = 1)
def_components = list(/obj/item/weapon/ore/bluespace_crystal = /obj/item/weapon/ore/bluespace_crystal/artificial)
/obj/item/weapon/circuitboard/machine/vendor
name = "Booze-O-Mat Vendor (Machine Board)"
build_path = /obj/machinery/vending/boozeomat
origin_tech = "programming=1"
req_components = list(
/obj/item/weapon/vending_refill/boozeomat = 3)
var/static/list/vending_names_paths = list(/obj/machinery/vending/boozeomat = "Booze-O-Mat",
/obj/machinery/vending/coffee = "Solar's Best Hot Drinks",
/obj/machinery/vending/snack = "Getmore Chocolate Corp",
/obj/machinery/vending/cola = "Robust Softdrinks",
/obj/machinery/vending/cigarette = "ShadyCigs Deluxe",
/obj/machinery/vending/autodrobe = "AutoDrobe",
/obj/machinery/vending/clothing = "ClothesMate",
/obj/machinery/vending/medical = "NanoMed Plus",
/obj/machinery/vending/wallmed = "NanoMed")
/obj/item/weapon/circuitboard/machine/vendor/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/screwdriver))
var/position = vending_names_paths.Find(build_path)
position = (position == vending_names_paths.len) ? 1 : (position + 1)
var/typepath = vending_names_paths[position]
to_chat(user, "<span class='notice'>You set the board to \"[vending_names_paths[typepath]]\".</span>")
set_type(typepath)
else
return ..()
/obj/item/weapon/circuitboard/machine/vendor/proc/set_type(obj/machinery/vending/typepath)
build_path = typepath
name = "[vending_names_paths[build_path]] Vendor (Machine Board)"
req_components = list(initial(typepath.refill_canister) = initial(typepath.refill_count))
/obj/item/weapon/circuitboard/machine/vendor/apply_default_parts(obj/machinery/M)
for(var/typepath in vending_names_paths)
if(istype(M, typepath))
set_type(typepath)
break
return ..()
/obj/item/weapon/circuitboard/machine/mech_recharger
name = "Mechbay Recharger (Machine Board)"
build_path = /obj/machinery/mech_bay_recharge_port
origin_tech = "programming=3;powerstorage=3;engineering=3"
req_components = list(
/obj/item/stack/cable_coil = 2,
/obj/item/weapon/stock_parts/capacitor = 5)
/obj/item/weapon/circuitboard/machine/mechfab
name = "Exosuit Fabricator (Machine Board)"
build_path = /obj/machinery/mecha_part_fabricator
origin_tech = "programming=2;engineering=2"
req_components = list(
/obj/item/weapon/stock_parts/matter_bin = 2,
/obj/item/weapon/stock_parts/manipulator = 1,
/obj/item/weapon/stock_parts/micro_laser = 1,
/obj/item/weapon/stock_parts/console_screen = 1)
/obj/item/weapon/circuitboard/machine/cryo_tube
name = "Cryotube (Machine Board)"
build_path = /obj/machinery/atmospherics/components/unary/cryo_cell
origin_tech = "programming=4;biotech=3;engineering=4;plasmatech=3"
req_components = list(
/obj/item/weapon/stock_parts/matter_bin = 1,
/obj/item/stack/cable_coil = 1,
/obj/item/weapon/stock_parts/console_screen = 1,
/obj/item/stack/sheet/glass = 2)
/obj/item/weapon/circuitboard/machine/thermomachine
name = "Thermomachine (Machine Board)"
desc = "You can use a screwdriver to switch between heater and freezer."
origin_tech = "programming=3;plasmatech=3"
req_components = list(
/obj/item/weapon/stock_parts/matter_bin = 2,
/obj/item/weapon/stock_parts/micro_laser = 2,
/obj/item/stack/cable_coil = 1,
/obj/item/weapon/stock_parts/console_screen = 1)
/obj/item/weapon/circuitboard/machine/thermomachine/Initialize()
. = ..()
if(prob(50))
name = "Freezer (Machine Board)"
build_path = /obj/machinery/atmospherics/components/unary/thermomachine/freezer
else
name = "Heater (Machine Board)"
build_path = /obj/machinery/atmospherics/components/unary/thermomachine/heater
#define FREEZER /obj/item/weapon/circuitboard/machine/thermomachine/freezer
#define HEATER /obj/item/weapon/circuitboard/machine/thermomachine/heater
/obj/item/weapon/circuitboard/machine/thermomachine/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/screwdriver))
var/obj/item/weapon/circuitboard/new_type
var/new_setting
switch(build_path)
if(FREEZER)
new_type = HEATER
new_setting = "Heater"
if(HEATER)
new_type = FREEZER
new_setting = "Freezer"
name = initial(new_type.name)
build_path = initial(new_type.build_path)
playsound(user, I.usesound, 50, 1)
to_chat(user, "<span class='notice'>You change the circuitboard setting to \"[new_setting]\".</span>")
else
return ..()
#undef FREEZER
#undef HEATER
/obj/item/weapon/circuitboard/machine/thermomachine/heater
name = "Heater (Machine Board)"
build_path = /obj/machinery/atmospherics/components/unary/thermomachine/heater
/obj/item/weapon/circuitboard/machine/thermomachine/freezer
name = "Freezer (Machine Board)"
build_path = /obj/machinery/atmospherics/components/unary/thermomachine/freezer
/obj/item/weapon/circuitboard/machine/deep_fryer
name = "circuit board (Deep Fryer)"
build_path = /obj/machinery/deepfryer
origin_tech = "programming=1"
req_components = list(/obj/item/weapon/stock_parts/micro_laser = 1)
/obj/item/weapon/circuitboard/machine/gibber
name = "Gibber (Machine Board)"
build_path = /obj/machinery/gibber
origin_tech = "programming=2;engineering=2"
req_components = list(
/obj/item/weapon/stock_parts/matter_bin = 1,
/obj/item/weapon/stock_parts/manipulator = 1)
/obj/item/weapon/circuitboard/machine/monkey_recycler
name = "Monkey Recycler (Machine Board)"
build_path = /obj/machinery/monkey_recycler
origin_tech = "programming=1;biotech=2"
req_components = list(
/obj/item/weapon/stock_parts/matter_bin = 1,
/obj/item/weapon/stock_parts/manipulator = 1)
/obj/item/weapon/circuitboard/machine/processor
name = "Food Processor (Machine Board)"
build_path = /obj/machinery/processor
origin_tech = "programming=1"
req_components = list(
/obj/item/weapon/stock_parts/matter_bin = 1,
/obj/item/weapon/stock_parts/manipulator = 1)
/obj/item/weapon/circuitboard/machine/processor/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/screwdriver))
if(build_path == /obj/machinery/processor)
name = "Slime Processor (Machine Board)"
build_path = /obj/machinery/processor/slime
to_chat(user, "<span class='notice'>Name protocols successfully updated.</span>")
else
name = "Food Processor (Machine Board)"
build_path = /obj/machinery/processor
to_chat(user, "<span class='notice'>Defaulting name protocols.</span>")
else
return ..()
/obj/item/weapon/circuitboard/machine/processor/slime
name = "Slime Processor (Machine Board)"
build_path = /obj/machinery/processor/slime
/obj/item/weapon/circuitboard/machine/smartfridge
name = "Smartfridge (Machine Board)"
build_path = /obj/machinery/smartfridge
origin_tech = "programming=1"
req_components = list(/obj/item/weapon/stock_parts/matter_bin = 1)
var/static/list/fridges_name_paths = list(/obj/machinery/smartfridge = "plant produce",
/obj/machinery/smartfridge/food = "food",
/obj/machinery/smartfridge/drinks = "drinks",
/obj/machinery/smartfridge/extract = "slimes",
/obj/machinery/smartfridge/chemistry = "chems",
/obj/machinery/smartfridge/chemistry/virology = "viruses",
/obj/machinery/smartfridge/disks = "disks")
/obj/item/weapon/circuitboard/machine/smartfridge/Initialize(mapload, new_type)
if(new_type)
build_path = new_type
return ..()
/obj/item/weapon/circuitboard/machine/smartfridge/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/screwdriver))
var/position = fridges_name_paths.Find(build_path, fridges_name_paths)
position = (position == fridges_name_paths.len) ? 1 : (position + 1)
build_path = fridges_name_paths[position]
to_chat(user, "<span class='notice'>You set the board to [fridges_name_paths[build_path]].</span>")
else
return ..()
/obj/item/weapon/circuitboard/machine/smartfridge/examine(mob/user)
..()
to_chat(user, "<span class='info'>[src] is set to [fridges_name_paths[build_path]]. You can use a screwdriver to reconfigure it.</span>")
/obj/item/weapon/circuitboard/machine/biogenerator
name = "Biogenerator (Machine Board)"
build_path = /obj/machinery/biogenerator
origin_tech = "programming=2;biotech=3;materials=3"
req_components = list(
/obj/item/weapon/stock_parts/matter_bin = 1,
/obj/item/weapon/stock_parts/manipulator = 1,
/obj/item/stack/cable_coil = 1,
/obj/item/weapon/stock_parts/console_screen = 1)
/obj/item/weapon/circuitboard/machine/plantgenes
name = "Plant DNA Manipulator (Machine Board)"
build_path = /obj/machinery/plantgenes
origin_tech = "programming=3;biotech=3"
req_components = list(
/obj/item/weapon/stock_parts/manipulator = 1,
/obj/item/weapon/stock_parts/micro_laser = 1,
/obj/item/weapon/stock_parts/console_screen = 1,
/obj/item/weapon/stock_parts/scanning_module = 1)
/obj/item/weapon/circuitboard/machine/plantgenes/vault
name = "alien board (Plant DNA Manipulator)"
icon_state = "abductor_mod"
origin_tech = "programming=5;biotech=5"
// It wasn't made by actual abductors race, so no abductor tech here.
def_components = list(
/obj/item/weapon/stock_parts/manipulator = /obj/item/weapon/stock_parts/manipulator/femto,
/obj/item/weapon/stock_parts/micro_laser = /obj/item/weapon/stock_parts/micro_laser/quadultra,
/obj/item/weapon/stock_parts/scanning_module = /obj/item/weapon/stock_parts/scanning_module/triphasic)
/obj/item/weapon/circuitboard/machine/hydroponics
name = "Hydroponics Tray (Machine Board)"
build_path = /obj/machinery/hydroponics/constructable
origin_tech = "programming=1;biotech=2"
req_components = list(
/obj/item/weapon/stock_parts/matter_bin = 2,
/obj/item/weapon/stock_parts/manipulator = 1,
/obj/item/weapon/stock_parts/console_screen = 1)
/obj/item/weapon/circuitboard/machine/seed_extractor
name = "Seed Extractor (Machine Board)"
build_path = /obj/machinery/seed_extractor
origin_tech = "programming=1"
req_components = list(
/obj/item/weapon/stock_parts/matter_bin = 1,
/obj/item/weapon/stock_parts/manipulator = 1)
/obj/item/weapon/circuitboard/machine/ore_redemption
name = "Ore Redemption (Machine Board)"
build_path = /obj/machinery/mineral/ore_redemption
origin_tech = "programming=1;engineering=2"
req_components = list(
/obj/item/weapon/stock_parts/console_screen = 1,
/obj/item/weapon/stock_parts/matter_bin = 1,
/obj/item/weapon/stock_parts/micro_laser = 1,
/obj/item/weapon/stock_parts/manipulator = 1,
/obj/item/device/assembly/igniter = 1)
/obj/item/weapon/circuitboard/machine/mining_equipment_vendor
name = "Mining Equipment Vendor (Machine Board)"
build_path = /obj/machinery/mineral/equipment_vendor
origin_tech = "programming=1;engineering=3"
req_components = list(
/obj/item/weapon/stock_parts/console_screen = 1,
/obj/item/weapon/stock_parts/matter_bin = 3)
/obj/item/weapon/circuitboard/machine/mining_equipment_vendor/golem
name = "Golem Ship Equipment Vendor (Machine Board)"
build_path = /obj/machinery/mineral/equipment_vendor/golem
/obj/item/weapon/circuitboard/machine/ntnet_relay
name = "NTNet Relay (Machine Board)"
build_path = /obj/machinery/ntnet_relay
origin_tech = "programming=3;bluespace=3;magnets=2"
req_components = list(
/obj/item/stack/cable_coil = 2,
/obj/item/weapon/stock_parts/subspace/filter = 1)
/obj/item/weapon/circuitboard/machine/pacman
name = "PACMAN-type Generator (Machine Board)"
build_path = /obj/machinery/power/port_gen/pacman
origin_tech = "programming=2;powerstorage=3;plasmatech=3;engineering=3"
req_components = list(
/obj/item/weapon/stock_parts/matter_bin = 1,
/obj/item/weapon/stock_parts/micro_laser = 1,
/obj/item/stack/cable_coil = 2,
/obj/item/weapon/stock_parts/capacitor = 1)
/obj/item/weapon/circuitboard/machine/pacman/super
name = "SUPERPACMAN-type Generator (Machine Board)"
build_path = /obj/machinery/power/port_gen/pacman/super
origin_tech = "programming=3;powerstorage=4;engineering=4"
/obj/item/weapon/circuitboard/machine/pacman/mrs
name = "MRSPACMAN-type Generator (Machine Board)"
build_path = /obj/machinery/power/port_gen/pacman/mrs
origin_tech = "programming=3;powerstorage=4;engineering=4;plasmatech=4"
/obj/item/weapon/circuitboard/machine/rtg
name = "RTG (Machine Board)"
build_path = /obj/machinery/power/rtg
origin_tech = "programming=2;materials=4;powerstorage=3;engineering=2"
req_components = list(
/obj/item/stack/cable_coil = 5,
/obj/item/weapon/stock_parts/capacitor = 1,
/obj/item/stack/sheet/mineral/uranium = 10) // We have no Pu-238, and this is the closest thing to it.
/obj/item/weapon/circuitboard/machine/rtg/advanced
name = "Advanced RTG (Machine Board)"
build_path = /obj/machinery/power/rtg/advanced
origin_tech = "programming=3;materials=5;powerstorage=4;engineering=3;plasmatech=3"
req_components = list(
/obj/item/stack/cable_coil = 5,
/obj/item/weapon/stock_parts/capacitor = 1,
/obj/item/weapon/stock_parts/micro_laser = 1,
/obj/item/stack/sheet/mineral/uranium = 10,
/obj/item/stack/sheet/mineral/plasma = 5)
/obj/item/weapon/circuitboard/machine/abductor/core
name = "alien board (Void Core)"
build_path = /obj/machinery/power/rtg/abductor
origin_tech = "programming=5;abductor=5;powerstorage=8;engineering=8"
req_components = list(
/obj/item/weapon/stock_parts/capacitor = 1,
/obj/item/weapon/stock_parts/micro_laser = 1,
/obj/item/weapon/stock_parts/cell/infinite/abductor = 1)
def_components = list(
/obj/item/weapon/stock_parts/capacitor = /obj/item/weapon/stock_parts/capacitor/quadratic,
/obj/item/weapon/stock_parts/micro_laser = /obj/item/weapon/stock_parts/micro_laser/quadultra)
/obj/item/weapon/circuitboard/machine/emitter
name = "Emitter (Machine Board)"
build_path = /obj/machinery/power/emitter
origin_tech = "programming=3;powerstorage=4;engineering=4"
req_components = list(
/obj/item/weapon/stock_parts/micro_laser = 1,
/obj/item/weapon/stock_parts/manipulator = 1)
/obj/item/weapon/circuitboard/machine/smes
name = "SMES (Machine Board)"
build_path = /obj/machinery/power/smes
origin_tech = "programming=3;powerstorage=3;engineering=3"
req_components = list(
/obj/item/stack/cable_coil = 5,
/obj/item/weapon/stock_parts/cell = 5,
/obj/item/weapon/stock_parts/capacitor = 1)
def_components = list(/obj/item/weapon/stock_parts/cell = /obj/item/weapon/stock_parts/cell/high/empty)
/obj/item/weapon/circuitboard/machine/tesla_coil
name = "Tesla Coil (Machine Board)"
build_path = /obj/machinery/power/tesla_coil
origin_tech = "programming=3;magnets=3;powerstorage=3"
req_components = list(/obj/item/weapon/stock_parts/capacitor = 1)
/obj/item/weapon/circuitboard/machine/grounding_rod
name = "Grounding Rod (Machine Board)"
build_path = /obj/machinery/power/grounding_rod
origin_tech = "programming=3;powerstorage=3;magnets=3;plasmatech=2"
req_components = list(/obj/item/weapon/stock_parts/capacitor = 1)
/obj/item/weapon/circuitboard/machine/power_compressor
name = "Power Compressor (Machine Board)"
build_path = /obj/machinery/power/compressor
origin_tech = "programming=4;powerstorage=4;engineering=4"
req_components = list(
/obj/item/stack/cable_coil = 5,
/obj/item/weapon/stock_parts/manipulator = 6)
/obj/item/weapon/circuitboard/machine/power_turbine
name = "Power Turbine (Machine Board)"
build_path = /obj/machinery/power/turbine
origin_tech = "programming=4;powerstorage=4;engineering=4"
req_components = list(
/obj/item/stack/cable_coil = 5,
/obj/item/weapon/stock_parts/capacitor = 6)
/obj/item/weapon/circuitboard/machine/chem_dispenser
name = "Portable Chem Dispenser (Machine Board)"
build_path = /obj/machinery/chem_dispenser/constructable
origin_tech = "materials=4;programming=4;plasmatech=4;biotech=3"
req_components = list(
/obj/item/weapon/stock_parts/matter_bin = 2,
/obj/item/weapon/stock_parts/capacitor = 1,
/obj/item/weapon/stock_parts/manipulator = 1,
/obj/item/weapon/stock_parts/console_screen = 1,
/obj/item/weapon/stock_parts/cell = 1)
def_components = list(/obj/item/weapon/stock_parts/cell = /obj/item/weapon/stock_parts/cell/high)
/obj/item/weapon/circuitboard/machine/chem_heater
name = "Chemical Heater (Machine Board)"
build_path = /obj/machinery/chem_heater
origin_tech = "programming=2;engineering=2;biotech=2"
req_components = list(
/obj/item/weapon/stock_parts/micro_laser = 1,
/obj/item/weapon/stock_parts/console_screen = 1)
/obj/item/weapon/circuitboard/machine/chem_master
name = "ChemMaster 3000 (Machine Board)"
build_path = /obj/machinery/chem_master
origin_tech = "materials=3;programming=2;biotech=3"
req_components = list(
/obj/item/weapon/reagent_containers/glass/beaker = 2,
/obj/item/weapon/stock_parts/manipulator = 1,
/obj/item/weapon/stock_parts/console_screen = 1)
/obj/item/weapon/circuitboard/machine/chem_master/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/screwdriver))
var/new_name = "ChemMaster"
var/new_path = /obj/machinery/chem_master
if(build_path == /obj/machinery/chem_master)
new_name = "CondiMaster"
new_path = /obj/machinery/chem_master/condimaster
build_path = new_path
name = "[new_name] 3000 (Machine Board)"
to_chat(user, "<span class='notice'>You change the circuit board setting to \"[new_name]\".</span>")
else
return ..()
/obj/item/weapon/circuitboard/machine/chem_master/condi
name = "CondiMaster 3000 (Machine Board)"
build_path = /obj/machinery/chem_master/condimaster
/obj/item/weapon/circuitboard/machine/circuit_imprinter
name = "Circuit Imprinter (Machine Board)"
build_path = /obj/machinery/r_n_d/circuit_imprinter
origin_tech = "engineering=2;programming=2"
req_components = list(
/obj/item/weapon/stock_parts/matter_bin = 1,
/obj/item/weapon/stock_parts/manipulator = 1,
/obj/item/weapon/reagent_containers/glass/beaker = 2)
/obj/item/weapon/circuitboard/machine/destructive_analyzer
name = "Destructive Analyzer (Machine Board)"
build_path = /obj/machinery/r_n_d/destructive_analyzer
origin_tech = "magnets=2;engineering=2;programming=2"
req_components = list(
/obj/item/weapon/stock_parts/scanning_module = 1,
/obj/item/weapon/stock_parts/manipulator = 1,
/obj/item/weapon/stock_parts/micro_laser = 1)
/obj/item/weapon/circuitboard/machine/experimentor
name = "E.X.P.E.R.I-MENTOR (Machine Board)"
build_path = /obj/machinery/r_n_d/experimentor
origin_tech = "magnets=1;engineering=1;programming=1;biotech=1;bluespace=2"
req_components = list(
/obj/item/weapon/stock_parts/scanning_module = 1,
/obj/item/weapon/stock_parts/manipulator = 2,
/obj/item/weapon/stock_parts/micro_laser = 2)
/obj/item/weapon/circuitboard/machine/protolathe
name = "Protolathe (Machine Board)"
build_path = /obj/machinery/r_n_d/protolathe
origin_tech = "engineering=2;programming=2"
req_components = list(
/obj/item/weapon/stock_parts/matter_bin = 2,
/obj/item/weapon/stock_parts/manipulator = 2,
/obj/item/weapon/reagent_containers/glass/beaker = 2)
/obj/item/weapon/circuitboard/machine/rdserver
name = "R&D Server (Machine Board)"
build_path = /obj/machinery/r_n_d/server
origin_tech = "programming=3"
req_components = list(
/obj/item/stack/cable_coil = 2,
/obj/item/weapon/stock_parts/scanning_module = 1)
/obj/item/weapon/circuitboard/machine/bsa/back
name = "Bluespace Artillery Generator (Machine Board)"
build_path = /obj/machinery/bsa/back
origin_tech = "engineering=2;combat=2;bluespace=2" //No freebies!
req_components = list(
/obj/item/weapon/stock_parts/capacitor/quadratic = 5,
/obj/item/stack/cable_coil = 2)
/obj/item/weapon/circuitboard/machine/bsa/middle
name = "Bluespace Artillery Fusor (Machine Board)"
build_path = /obj/machinery/bsa/middle
origin_tech = "engineering=2;combat=2;bluespace=2"
req_components = list(
/obj/item/weapon/ore/bluespace_crystal = 20,
/obj/item/stack/cable_coil = 2)
/obj/item/weapon/circuitboard/machine/bsa/front
name = "Bluespace Artillery Bore (Machine Board)"
build_path = /obj/machinery/bsa/front
origin_tech = "engineering=2;combat=2;bluespace=2"
req_components = list(
/obj/item/weapon/stock_parts/manipulator/femto = 5,
/obj/item/stack/cable_coil = 2)
/obj/item/weapon/circuitboard/machine/dna_vault
name = "DNA Vault (Machine Board)"
build_path = /obj/machinery/dna_vault
origin_tech = "engineering=2;combat=2;bluespace=2" //No freebies!
req_components = list(
/obj/item/weapon/stock_parts/capacitor/super = 5,
/obj/item/weapon/stock_parts/manipulator/pico = 5,
/obj/item/stack/cable_coil = 2)
/obj/item/weapon/circuitboard/machine/microwave
name = "Microwave (Machine Board)"
build_path = /obj/machinery/microwave
origin_tech = "programming=2;magnets=2"
req_components = list(
/obj/item/weapon/stock_parts/micro_laser = 1,
/obj/item/weapon/stock_parts/matter_bin = 1,
/obj/item/stack/cable_coil = 2,
/obj/item/weapon/stock_parts/console_screen = 1,
/obj/item/stack/sheet/glass = 1)

View File

@@ -20,15 +20,13 @@
var/special = FALSE
var/special_name = "special function"
/obj/machinery/implantchair/New()
..()
/obj/machinery/implantchair/Initialize()
. = ..()
open_machine()
update_icon()
/obj/machinery/implantchair/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \
datum/tgui/master_ui = null, datum/ui_state/state = GLOB.notcontained_state)
/obj/machinery/implantchair/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.notcontained_state)
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "implantchair", name, 375, 280, master_ui, state)

View File

@@ -52,8 +52,7 @@
/obj/machinery/vr_sleeper/Destroy()
open_machine()
cleanup_vr_human()
qdel(sparks)
sparks = null
QDEL_NULL(sparks)
return ..()

View File

@@ -9,9 +9,10 @@
max_integrity = 350
armor = list(melee = 0, bullet = 0, laser = 0, energy = 100, bomb = 0, bio = 100, rad = 100, fire = 30, acid = 30)
layer = ABOVE_WINDOW_LAYER
state_open = FALSE
circuit = /obj/item/weapon/circuitboard/machine/cryo_tube
var/on = FALSE
state_open = FALSE
var/autoeject = FALSE
var/volume = 100
@@ -35,8 +36,6 @@
/obj/machinery/atmospherics/components/unary/cryo_cell/Initialize()
. = ..()
initialize_directions = dir
var/obj/item/weapon/circuitboard/machine/cryo_tube/B = new
B.apply_default_parts(src)
radio = new(src)
radio.keyslot = new radio_key
@@ -44,16 +43,6 @@
radio.canhear_range = 0
radio.recalculateChannels()
/obj/item/weapon/circuitboard/machine/cryo_tube
name = "Cryotube (Machine Board)"
build_path = /obj/machinery/atmospherics/components/unary/cryo_cell
origin_tech = "programming=4;biotech=3;engineering=4;plasmatech=3"
req_components = list(
/obj/item/weapon/stock_parts/matter_bin = 1,
/obj/item/stack/cable_coil = 1,
/obj/item/weapon/stock_parts/console_screen = 1,
/obj/item/stack/sheet/glass = 2)
/obj/machinery/atmospherics/components/unary/cryo_cell/on_construction()
..(dir, dir)
@@ -69,11 +58,8 @@
conduction_coefficient = initial(conduction_coefficient) * C
/obj/machinery/atmospherics/components/unary/cryo_cell/Destroy()
qdel(radio)
radio = null
if(beaker)
qdel(beaker)
beaker = null
QDEL_NULL(radio)
QDEL_NULL(beaker)
return ..()
/obj/machinery/atmospherics/components/unary/cryo_cell/contents_explosion(severity, target)

View File

@@ -10,6 +10,7 @@
max_integrity = 300
armor = list(melee = 0, bullet = 0, laser = 0, energy = 100, bomb = 0, bio = 100, rad = 100, fire = 80, acid = 30)
layer = OBJ_LAYER
circuit = /obj/item/weapon/circuitboard/machine/thermomachine
var/on = FALSE
var/min_temperature = 0
@@ -18,49 +19,9 @@
var/heat_capacity = 0
var/interactive = TRUE // So mapmakers can disable interaction.
/obj/machinery/atmospherics/components/unary/thermomachine/New()
..()
initialize_directions = dir
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/thermomachine(null)
B.apply_default_parts(src)
/obj/item/weapon/circuitboard/machine/thermomachine
name = "Thermomachine (Machine Board)"
desc = "You can use a screwdriver to switch between heater and freezer."
origin_tech = "programming=3;plasmatech=3"
req_components = list(
/obj/item/weapon/stock_parts/matter_bin = 2,
/obj/item/weapon/stock_parts/micro_laser = 2,
/obj/item/stack/cable_coil = 1,
/obj/item/weapon/stock_parts/console_screen = 1)
/obj/item/weapon/circuitboard/machine/thermomachine/Initialize()
/obj/machinery/atmospherics/components/unary/thermomachine/Initialize()
. = ..()
if(prob(50))
name = "Freezer (Machine Board)"
build_path = /obj/machinery/atmospherics/components/unary/thermomachine/freezer
else
name = "Heater (Machine Board)"
build_path = /obj/machinery/atmospherics/components/unary/thermomachine/heater
/obj/item/weapon/circuitboard/machine/thermomachine/attackby(obj/item/I, mob/user, params)
var/obj/item/weapon/circuitboard/machine/freezer = /obj/item/weapon/circuitboard/machine/thermomachine/freezer
var/obj/item/weapon/circuitboard/machine/heater = /obj/item/weapon/circuitboard/machine/thermomachine/heater
var/obj/item/weapon/circuitboard/machine/newtype
if(istype(I, /obj/item/weapon/screwdriver))
var/new_setting = "Heater"
playsound(src.loc, I.usesound, 50, 1)
if(build_path == initial(heater.build_path))
newtype = freezer
new_setting = "Freezer"
else
newtype = heater
name = initial(newtype.name)
build_path = initial(newtype.build_path)
to_chat(user, "<span class='notice'>You change the circuitboard setting to \"[new_setting]\".</span>")
else
return ..()
initialize_directions = dir
/obj/machinery/atmospherics/components/unary/thermomachine/on_construction()
..(dir,dir)
@@ -202,15 +163,7 @@
icon_state_open = "freezer-o"
max_temperature = T20C
min_temperature = 170
/obj/machinery/atmospherics/components/unary/thermomachine/freezer/New()
..()
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/thermomachine/freezer(null)
B.apply_default_parts(src)
/obj/item/weapon/circuitboard/machine/thermomachine/freezer
name = "Freezer (Machine Board)"
build_path = /obj/machinery/atmospherics/components/unary/thermomachine/freezer
circuit = /obj/item/weapon/circuitboard/machine/thermomachine/freezer
/obj/machinery/atmospherics/components/unary/thermomachine/freezer/RefreshParts()
..()
@@ -227,15 +180,7 @@
icon_state_open = "heater-o"
max_temperature = 140
min_temperature = T20C
/obj/machinery/atmospherics/components/unary/thermomachine/heater/New()
..()
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/thermomachine/heater(null)
B.apply_default_parts(src)
/obj/item/weapon/circuitboard/machine/thermomachine/heater
name = "Heater (Machine Board)"
build_path = /obj/machinery/atmospherics/components/unary/thermomachine/heater
circuit = /obj/item/weapon/circuitboard/machine/thermomachine/heater
/obj/machinery/atmospherics/components/unary/thermomachine/heater/RefreshParts()
..()

View File

@@ -16,7 +16,7 @@
volume = 1000
/obj/machinery/portable_atmospherics/pump/Initialize()
..()
. = ..()
pump = new(src, FALSE)
pump.on = TRUE
pump.stat = 0
@@ -26,8 +26,7 @@
var/turf/T = get_turf(src)
T.assume_air(air_contents)
air_update_turf()
qdel(pump)
pump = null
QDEL_NULL(pump)
return ..()
/obj/machinery/portable_atmospherics/pump/update_icon()

View File

@@ -29,13 +29,11 @@
var/reset_path = /obj/effect/ctf/flag_reset
/obj/item/weapon/twohanded/ctf/Destroy()
if(reset)
qdel(reset)
reset = null
. = ..()
QDEL_NULL(reset)
return ..()
/obj/item/weapon/twohanded/ctf/Initialize()
..()
. = ..()
SET_SECONDARY_FLAG(src, SLOWS_WHILE_IN_HAND)
if(!reset)
reset = new reset_path(get_turf(src))

View File

@@ -22,7 +22,7 @@ GLOBAL_DATUM(the_gateway, /obj/machinery/gateway/centerstation)
switch(dir)
if(SOUTH,SOUTHEAST,SOUTHWEST)
density = FALSE
..()
return ..()
/obj/machinery/gateway/proc/toggleoff()
for(var/obj/machinery/gateway/G in linked)
@@ -75,10 +75,13 @@ GLOBAL_DATUM(the_gateway, /obj/machinery/gateway/centerstation)
/obj/machinery/gateway/proc/toggleon(mob/user)
return FALSE
/obj/machinery/gateway/centerstation/New()
..()
/obj/machinery/gateway/centerstation/Initialize()
. = ..()
if(!GLOB.the_gateway)
GLOB.the_gateway = src
update_icon()
wait = world.time + config.gateway_delay //+ thirty minutes default
awaygate = locate(/obj/machinery/gateway/centeraway)
/obj/machinery/gateway/centerstation/Destroy()
if(GLOB.the_gateway == src)
@@ -96,12 +99,6 @@ GLOBAL_DATUM(the_gateway, /obj/machinery/gateway/centerstation)
var/obj/machinery/gateway/centeraway/awaygate = null
can_link = TRUE
/obj/machinery/gateway/centerstation/Initialize()
..()
update_icon()
wait = world.time + config.gateway_delay //+ thirty minutes default
awaygate = locate(/obj/machinery/gateway/centeraway)
/obj/machinery/gateway/centerstation/update_icon()
if(active)
icon_state = "oncenter"
@@ -182,7 +179,7 @@ GLOBAL_DATUM(the_gateway, /obj/machinery/gateway/centerstation)
/obj/machinery/gateway/centeraway/Initialize()
..()
. = ..()
update_icon()
stationgate = locate(/obj/machinery/gateway/centerstation)

View File

@@ -18,8 +18,8 @@
circuit = /obj/item/weapon/circuitboard/computer/cargo/request
requestonly = TRUE
/obj/machinery/computer/cargo/New()
..()
/obj/machinery/computer/cargo/Initialize()
. = ..()
var/obj/item/weapon/circuitboard/computer/cargo/board = circuit
contraband = board.contraband
emagged = board.emagged

View File

@@ -1778,9 +1778,7 @@
name = "Shield System Control Board"
cost = 5000
special = TRUE
contains = list(
/obj/item/weapon/circuitboard/machine/computer/sat_control
)
contains = list(/obj/item/weapon/circuitboard/computer/sat_control)
crate_name= "shield control board crate"
/datum/supply_pack/misc/bicycle

View File

@@ -18,7 +18,7 @@ insert ascii eagle on american flag background here
container_type = OPENCONTAINER
var/obj/item/frying = null //What's being fried RIGHT NOW?
var/cook_time = 0
var/static/list/blacklisted_items = typecacheof(list(
var/static/list/deepfry_blacklisted_items = typecacheof(list(
/obj/item/weapon/screwdriver,
/obj/item/weapon/crowbar,
/obj/item/weapon/wrench,
@@ -28,14 +28,8 @@ insert ascii eagle on american flag background here
/obj/item/weapon/reagent_containers/glass,
/obj/item/weapon/storage/part_replacer))
/obj/item/weapon/circuitboard/machine/deep_fryer
name = "circuit board (Deep Fryer)"
build_path = /obj/machinery/deepfryer
origin_tech = "programming=1"
req_components = list(/obj/item/weapon/stock_parts/micro_laser = 1)
/obj/machinery/deepfryer/New()
..()
/obj/machinery/deepfryer/Initialize()
. = ..()
create_reagents(50)
reagents.add_reagent("nutriment", 25)
component_parts = list()
@@ -62,7 +56,7 @@ insert ascii eagle on american flag background here
else if(default_deconstruction_screwdriver(user, "fryer_off", "fryer_off" ,I)) //where's the open maint panel icon?!
return
else
if(is_type_in_typecache(I, blacklisted_items))
if(is_type_in_typecache(I, deepfry_blacklisted_items))
. = ..()
else if(user.drop_item() && !frying)
to_chat(user, "<span class='notice'>You put [I] into [src].</span>")

View File

@@ -18,17 +18,15 @@
container_type = OPENCONTAINER
var/obj/item/weapon/reagent_containers/mixer
/obj/machinery/food_cart/New()
..()
/obj/machinery/food_cart/Initialize()
. = ..()
create_reagents(LIQUID_CAPACIY)
reagents.set_reacting(FALSE)
mixer = new /obj/item/weapon/reagent_containers(src, MIXER_CAPACITY)
mixer.name = "Mixer"
/obj/machinery/food_cart/Destroy()
if(mixer)
qdel(mixer)
mixer = null
QDEL_NULL(mixer)
return ..()
/obj/machinery/food_cart/attack_hand(mob/user)

View File

@@ -6,58 +6,21 @@
icon_state = "grinder"
density = TRUE
anchored = TRUE
use_power = IDLE_POWER_USE
idle_power_usage = 2
active_power_usage = 500
circuit = /obj/item/weapon/circuitboard/machine/gibber
var/operating = FALSE //Is it on?
var/dirty = 0 // Does it need cleaning?
var/gibtime = 40 // Time from starting until meat appears
var/meat_produced = 0
var/ignore_clothing = 0
use_power = IDLE_POWER_USE
idle_power_usage = 2
active_power_usage = 500
//auto-gibs anything that bumps into it
/obj/machinery/gibber/autogibber
var/turf/input_plate
/obj/machinery/gibber/autogibber/Initialize()
. = ..()
for(var/i in GLOB.cardinals)
var/obj/machinery/mineral/input/input_obj = locate() in get_step(loc, i)
if(input_obj)
if(isturf(input_obj.loc))
input_plate = input_obj.loc
qdel(input_obj)
break
if(!input_plate)
CRASH("Didn't find an input plate.")
return
/obj/machinery/gibber/autogibber/CollidedWith(atom/movable/AM)
if(!input_plate)
return
if(ismob(AM))
var/mob/M = AM
if(M.loc == input_plate)
M.loc = src
M.gib()
/obj/machinery/gibber/Initialize()
. = ..()
add_overlay("grjam")
var/obj/item/weapon/circuitboard/machine/gibber/B = new
B.apply_default_parts(src)
/obj/item/weapon/circuitboard/machine/gibber
name = "Gibber (Machine Board)"
build_path = /obj/machinery/gibber
origin_tech = "programming=2;engineering=2"
req_components = list(
/obj/item/weapon/stock_parts/matter_bin = 1,
/obj/item/weapon/stock_parts/manipulator = 1)
/obj/machinery/gibber/RefreshParts()
var/gib_time = 40
@@ -234,3 +197,32 @@
pixel_x = initial(pixel_x) //return to its spot after shaking
operating = FALSE
update_icon()
//auto-gibs anything that bumps into it
/obj/machinery/gibber/autogibber
var/turf/input_plate
/obj/machinery/gibber/autogibber/Initialize()
. = ..()
for(var/i in GLOB.cardinals)
var/obj/machinery/mineral/input/input_obj = locate() in get_step(loc, i)
if(input_obj)
if(isturf(input_obj.loc))
input_plate = input_obj.loc
qdel(input_obj)
break
if(!input_plate)
CRASH("Didn't find an input plate.")
return
/obj/machinery/gibber/autogibber/CollidedWith(atom/movable/AM)
if(!input_plate)
return
if(ismob(AM))
var/mob/M = AM
if(M.loc == input_plate)
M.loc = src
M.gib()

View File

@@ -14,11 +14,19 @@
anchored = FALSE
use_power = NO_POWER_USE
layer = BELOW_OBJ_LAYER
container_type = OPENCONTAINER
max_integrity = 300
var/list/product_types = list()
var/dispense_flavour = ICECREAM_VANILLA
var/flavour_name = "vanilla"
container_type = OPENCONTAINER
max_integrity = 300
var/static/list/icecream_vat_reagents = list(
"milk" = 5,
"flour" = 5,
"sugar" = 5,
"ice" = 5,
"cocoa" = 5,
"berryjuice" = 5,
"singulo" = 5)
/obj/machinery/icecream_vat/proc/get_ingredient_list(type)
switch(type)
@@ -52,19 +60,14 @@
return "vanilla"
/obj/machinery/icecream_vat/New()
..()
/obj/machinery/icecream_vat/Initialize()
. = ..()
while(product_types.len < 6)
product_types.Add(5)
create_reagents()
reagents.set_reacting(FALSE)
reagents.add_reagent("milk", 5)
reagents.add_reagent("flour", 5)
reagents.add_reagent("sugar", 5)
reagents.add_reagent("ice", 5)
reagents.add_reagent("cocoa", 5)
reagents.add_reagent("berryjuice", 5)
reagents.add_reagent("singulo", 5)
for(var/reagent in icecream_vat_reagents)
reagents.add_reagent(reagent, icecream_vat_reagents[reagent])
/obj/machinery/icecream_vat/attack_hand(mob/user)
user.set_machine(src)

View File

@@ -9,6 +9,7 @@
use_power = IDLE_POWER_USE
idle_power_usage = 5
active_power_usage = 100
circuit = /obj/item/weapon/circuitboard/machine/microwave
var/operating = FALSE // Is it on?
var/dirty = 0 // = {0..100} Does it need cleaning?
var/broken = 0 // ={0,1,2} How broken is it???
@@ -21,22 +22,9 @@
* Initialising
********************/
/obj/machinery/microwave/New()
/obj/machinery/microwave/Initialize()
. = ..()
create_reagents(100)
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/microwave(null)
B.apply_default_parts(src)
..()
/obj/item/weapon/circuitboard/machine/microwave
name = "Microwave (Machine Board)"
build_path = /obj/machinery/microwave
origin_tech = "programming=2;magnets=2"
req_components = list(
/obj/item/weapon/stock_parts/micro_laser = 1,
/obj/item/weapon/stock_parts/matter_bin = 1,
/obj/item/stack/cable_coil = 2,
/obj/item/weapon/stock_parts/console_screen = 1,
/obj/item/stack/sheet/glass = 1)
/obj/machinery/microwave/RefreshParts()
var/E

View File

@@ -9,24 +9,11 @@
use_power = IDLE_POWER_USE
idle_power_usage = 5
active_power_usage = 50
circuit = /obj/item/weapon/circuitboard/machine/monkey_recycler
var/grinded = 0
var/required_grind = 5
var/cube_production = 1
/obj/machinery/monkey_recycler/New()
..()
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/monkey_recycler(null)
B.apply_default_parts(src)
/obj/item/weapon/circuitboard/machine/monkey_recycler
name = "Monkey Recycler (Machine Board)"
build_path = /obj/machinery/monkey_recycler
origin_tech = "programming=1;biotech=2"
req_components = list(
/obj/item/weapon/stock_parts/matter_bin = 1,
/obj/item/weapon/stock_parts/manipulator = 1)
/obj/machinery/monkey_recycler/RefreshParts()
var/req_grind = 5
var/cubes_made = 1

View File

@@ -7,44 +7,15 @@
layer = BELOW_OBJ_LAYER
density = TRUE
anchored = TRUE
var/broken = 0
var/processing = FALSE
use_power = IDLE_POWER_USE
idle_power_usage = 5
active_power_usage = 50
circuit = /obj/item/weapon/circuitboard/machine/processor
var/broken = 0
var/processing = FALSE
var/rating_speed = 1
var/rating_amount = 1
/obj/machinery/processor/New()
..()
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/processor(null)
B.apply_default_parts(src)
/obj/item/weapon/circuitboard/machine/processor
name = "Food Processor (Machine Board)"
build_path = /obj/machinery/processor
origin_tech = "programming=1"
req_components = list(
/obj/item/weapon/stock_parts/matter_bin = 1,
/obj/item/weapon/stock_parts/manipulator = 1)
/obj/item/weapon/circuitboard/machine/processor
name = "Food Processor (Machine Board)"
build_path = /obj/machinery/processor
/obj/item/weapon/circuitboard/machine/processor/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/screwdriver))
if(build_path == /obj/machinery/processor)
name = "Slime Processor (Machine Board)"
build_path = /obj/machinery/processor/slime
to_chat(user, "<span class='notice'>Name protocols successfully updated.</span>")
else
name = "Food Processor (Machine Board)"
build_path = /obj/machinery/processor
to_chat(user, "<span class='notice'>Defaulting name protocols.</span>")
else
return ..()
/obj/machinery/processor/RefreshParts()
for(var/obj/item/weapon/stock_parts/matter_bin/B in component_parts)
rating_amount = B.rating
@@ -300,11 +271,7 @@
name = "Slime processor"
desc = "An industrial grinder with a sticker saying appropriated for science department. Keep hands clear of intake area while operating."
/obj/machinery/processor/slime/New()
..()
/obj/machinery/processor/slime/Initialize()
. = ..()
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/processor/slime(null)
B.apply_default_parts(src)
/obj/item/weapon/circuitboard/machine/processor/slime
name = "Slime Processor (Machine Board)"
build_path = /obj/machinery/processor/slime
B.apply_default_parts(src)

View File

@@ -12,13 +12,14 @@
use_power = IDLE_POWER_USE
idle_power_usage = 5
active_power_usage = 100
circuit = /obj/item/weapon/circuitboard/machine/smartfridge
var/max_n_of_items = 1500
var/icon_on = "smartfridge"
var/icon_off = "smartfridge-off"
var/list/initial_contents
/obj/machinery/smartfridge/Initialize()
..()
. = ..()
create_reagents()
reagents.set_reacting(FALSE)
@@ -30,40 +31,6 @@
for(var/i in 1 to amount)
load(new typekey(src))
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/smartfridge(null)
B.apply_default_parts(src)
/obj/item/weapon/circuitboard/machine/smartfridge
name = "Smartfridge (Machine Board)"
build_path = /obj/machinery/smartfridge
origin_tech = "programming=1"
req_components = list(/obj/item/weapon/stock_parts/matter_bin = 1)
var/static/list/fridges = list(/obj/machinery/smartfridge = "plant produce",
/obj/machinery/smartfridge/food = "food",
/obj/machinery/smartfridge/drinks = "drinks",
/obj/machinery/smartfridge/extract = "slimes",
/obj/machinery/smartfridge/chemistry = "chems",
/obj/machinery/smartfridge/chemistry/virology = "viruses",
/obj/machinery/smartfridge/disks = "disks")
/obj/item/weapon/circuitboard/machine/smartfridge/New(loc, new_type)
if(new_type)
build_path = new_type
..()
/obj/item/weapon/circuitboard/machine/smartfridge/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/screwdriver))
var/position = fridges.Find(build_path, fridges)
position = (position == fridges.len) ? 1 : (position + 1)
build_path = fridges[position]
to_chat(user, "<span class='notice'>You set the board to [fridges[build_path]].</span>")
else
return ..()
/obj/item/weapon/circuitboard/machine/smartfridge/examine(mob/user)
..()
to_chat(user, "<span class='info'>[src] is set to [fridges[build_path]]. You can use a screwdriver to reconfigure it.</span>")
/obj/machinery/smartfridge/RefreshParts()
for(var/obj/item/weapon/stock_parts/matter_bin/B in component_parts)
max_n_of_items = 1500 * B.rating
@@ -255,8 +222,8 @@
icon_off = "drying_rack"
var/drying = FALSE
/obj/machinery/smartfridge/drying_rack/New()
..()
/obj/machinery/smartfridge/drying_rack/Initialize()
. = ..()
if(component_parts && component_parts.len)
component_parts.Cut()
component_parts = null

View File

@@ -7,6 +7,7 @@
anchored = TRUE
use_power = IDLE_POWER_USE
idle_power_usage = 40
circuit = /obj/item/weapon/circuitboard/machine/biogenerator
var/processing = FALSE
var/obj/item/weapon/reagent_containers/glass/beaker = null
var/points = 0
@@ -18,17 +19,13 @@
var/list/show_categories = list("Food", "Botany Chemicals", "Leather and Cloth")
var/list/timesFiveCategories = list("Food", "Botany Chemicals")
/obj/machinery/biogenerator/New()
..()
/obj/machinery/biogenerator/Initialize()
. = ..()
files = new /datum/research/biogenerator(src)
create_reagents(1000)
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/biogenerator(null)
B.apply_default_parts(src)
/obj/machinery/biogenerator/Destroy()
if(beaker)
qdel(beaker)
beaker = null
QDEL_NULL(beaker)
return ..()
/obj/machinery/biogenerator/contents_explosion(severity, target)
@@ -43,16 +40,6 @@
update_icon()
updateUsrDialog()
/obj/item/weapon/circuitboard/machine/biogenerator
name = "Biogenerator (Machine Board)"
build_path = /obj/machinery/biogenerator
origin_tech = "programming=2;biotech=3;materials=3"
req_components = list(
/obj/item/weapon/stock_parts/matter_bin = 1,
/obj/item/weapon/stock_parts/manipulator = 1,
/obj/item/stack/cable_coil = 1,
/obj/item/weapon/stock_parts/console_screen = 1)
/obj/machinery/biogenerator/RefreshParts()
var/E = 0
var/P = 0

View File

@@ -5,6 +5,7 @@
icon_state = "dnamod"
density = TRUE
anchored = TRUE
circuit = /obj/item/weapon/circuitboard/machine/plantgenes
var/obj/item/seeds/seed
var/obj/item/weapon/disk/plantgene/disk
@@ -22,21 +23,6 @@
var/min_wchance = 67
var/min_wrate = 10
/obj/machinery/plantgenes/New()
..()
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/plantgenes(null)
B.apply_default_parts(src)
/obj/item/weapon/circuitboard/machine/plantgenes
name = "Plant DNA Manipulator (Machine Board)"
build_path = /obj/machinery/plantgenes
origin_tech = "programming=3;biotech=3"
req_components = list(
/obj/item/weapon/stock_parts/manipulator = 1,
/obj/item/weapon/stock_parts/micro_laser = 1,
/obj/item/weapon/stock_parts/console_screen = 1,
/obj/item/weapon/stock_parts/scanning_module = 1)
/obj/machinery/plantgenes/RefreshParts() // Comments represent the max you can set per tier, respectively. seeds.dm [219] clamps these for us but we don't want to mislead the viewer.
for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts)
if(M.rating > 3)
@@ -421,23 +407,9 @@
seed.name = "experimental " + seed.name
seed.icon_state = "seed-x"
// Gene modder for seed vault ship, built with high tech alien parts.
/obj/machinery/plantgenes/seedvault/New()
..()
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/plantgenes/vault(null)
B.apply_default_parts(src)
/obj/item/weapon/circuitboard/machine/plantgenes/vault
name = "alien board (Plant DNA Manipulator)"
icon_state = "abductor_mod"
origin_tech = "programming=5;biotech=5"
// It wasn't made by actual abductors race, so no abductor tech here.
def_components = list(
/obj/item/weapon/stock_parts/manipulator = /obj/item/weapon/stock_parts/manipulator/femto,
/obj/item/weapon/stock_parts/micro_laser = /obj/item/weapon/stock_parts/micro_laser/quadultra,
/obj/item/weapon/stock_parts/scanning_module = /obj/item/weapon/stock_parts/scanning_module/triphasic)
/obj/machinery/plantgenes/seedvault
circuit = /obj/item/weapon/circuitboard/machine/plantgenes/vault
/*
* Plant DNA disk

View File

@@ -6,6 +6,7 @@
anchored = TRUE
pixel_y = 8
unique_rename = 1
circuit = /obj/item/weapon/circuitboard/machine/hydroponics
var/waterlevel = 100 //The amount of water in the tray (max 100)
var/maxwater = 100 //The maximum amount of water in the tray
var/nutrilevel = 10 //The amount of nutrient in the tray (max 10)
@@ -37,20 +38,6 @@
icon = 'icons/obj/hydroponics/equipment.dmi'
icon_state = "hydrotray3"
/obj/machinery/hydroponics/constructable/New()
..()
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/hydroponics(null)
B.apply_default_parts(src)
/obj/item/weapon/circuitboard/machine/hydroponics
name = "Hydroponics Tray (Machine Board)"
build_path = /obj/machinery/hydroponics/constructable
origin_tech = "programming=1;biotech=2"
req_components = list(
/obj/item/weapon/stock_parts/matter_bin = 2,
/obj/item/weapon/stock_parts/manipulator = 1,
/obj/item/weapon/stock_parts/console_screen = 1)
/obj/machinery/hydroponics/constructable/RefreshParts()
var/tmp_capacity = 0
for (var/obj/item/weapon/stock_parts/matter_bin/M in component_parts)

View File

@@ -44,23 +44,11 @@
icon_state = "sextractor"
density = TRUE
anchored = TRUE
circuit = /obj/item/weapon/circuitboard/machine/seed_extractor
var/piles = list()
var/max_seeds = 1000
var/seed_multiplier = 1
/obj/machinery/seed_extractor/New()
..()
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/seed_extractor(null)
B.apply_default_parts(src)
/obj/item/weapon/circuitboard/machine/seed_extractor
name = "Seed Extractor (Machine Board)"
build_path = /obj/machinery/seed_extractor
origin_tech = "programming=1"
req_components = list(
/obj/item/weapon/stock_parts/matter_bin = 1,
/obj/item/weapon/stock_parts/manipulator = 1)
/obj/machinery/seed_extractor/RefreshParts()
for(var/obj/item/weapon/stock_parts/matter_bin/B in component_parts)
max_seeds = 1000 * B.rating

View File

@@ -193,8 +193,8 @@ GLOBAL_LIST(cachedbooks) // List of our cached book datums
libcomp_menu[page] = ""
libcomp_menu[page] += "<tr><td>[C.author]</td><td>[C.title]</td><td>[C.category]</td><td><A href='?src=\ref[src];targetid=[C.id]'>\[Order\]</A></td></tr>\n"
/obj/machinery/computer/libraryconsole/bookmanagement/New()
..()
/obj/machinery/computer/libraryconsole/bookmanagement/Initialize()
. = ..()
if(circuit)
circuit.name = "Book Inventory Management Console (Machine Board)"
circuit.build_path = /obj/machinery/computer/libraryconsole/bookmanagement

View File

@@ -26,10 +26,9 @@ interface with the mining shuttle at the landing site if a mobile beacon is also
var/obj/item/device/gps/internal/base/locator
circuit = /obj/item/weapon/circuitboard/computer/auxillary_base
/obj/machinery/computer/auxillary_base/New(location, obj/item/weapon/circuitboard/computer/shuttle/C)
..()
locator = new /obj/item/device/gps/internal/base(src)
/obj/machinery/computer/auxillary_base/Initialize()
. = ..()
locator = new(src)
/obj/machinery/computer/auxillary_base/attack_hand(mob/user)
if(..(user))

View File

@@ -49,9 +49,9 @@
light_color = LIGHT_COLOR_PINK
/obj/machinery/computer/camera_advanced/base_construction/New()
..()
RCD = new /obj/item/weapon/construction/rcd/internal(src)
/obj/machinery/computer/camera_advanced/base_construction/Initialize()
. = ..()
RCD = new(src)
/obj/machinery/computer/camera_advanced/base_construction/Initialize(mapload)
..()

View File

@@ -199,18 +199,9 @@
max_n_of_items = 10
pixel_y = -4
flags = NODECONSTRUCT
var/empty = FALSE
/obj/machinery/smartfridge/survival_pod/empty
name = "dusty survival pod storage"
desc = "A heated storage unit. This one's seen better days."
/obj/machinery/smartfridge/survival_pod/empty/Initialize(mapload)
..(mapload, TRUE)
/obj/machinery/smartfridge/survival_pod/accept_check(obj/item/O)
return isitem(O)
/obj/machinery/smartfridge/survival_pod/Initialize(mapload, empty)
/obj/machinery/smartfridge/survival_pod/Initialize(mapload)
. = ..()
if(empty)
return
@@ -224,6 +215,14 @@
var/obj/item/device/instrument/guitar/G = new(src)
load(G)
/obj/machinery/smartfridge/survival_pod/accept_check(obj/item/O)
return isitem(O)
/obj/machinery/smartfridge/survival_pod/empty
name = "dusty survival pod storage"
desc = "A heated storage unit. This one's seen better days."
empty = TRUE
//Fans
/obj/structure/fans
icon = 'icons/obj/lavaland/survival_pod.dmi'

View File

@@ -15,11 +15,14 @@
var/obj/item/device/radio/Radio //needed to send messages to sec radio
/obj/machinery/mineral/labor_claim_console/New()
/obj/machinery/mineral/labor_claim_console/Initialize()
..()
Radio = new/obj/item/device/radio(src)
Radio.listening = 0
addtimer(CALLBACK(src, .proc/locate_stacking_machine), 7)
return INITIALIZE_HINT_LATELOAD
/obj/machinery/mineral/labor_claim_console/LateInitialize()
locate_stacking_machine()
/obj/machinery/mineral/labor_claim_console/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/card/id/prisoner))

View File

@@ -8,6 +8,7 @@
anchored = TRUE
/obj/machinery/mineral/input/New()
. = ..()
icon_state = "blank"
/obj/machinery/mineral/output
@@ -18,6 +19,7 @@
anchored = TRUE
/obj/machinery/mineral/output/New()
. = ..()
icon_state = "blank"
/obj/machinery/mineral

View File

@@ -11,6 +11,8 @@
input_dir = NORTH
output_dir = SOUTH
req_access = list(ACCESS_MINERAL_STOREROOM)
speed_process = 1
circuit = /obj/item/weapon/circuitboard/machine/ore_redemption
var/req_access_reclaim = ACCESS_MINING_STATION
var/obj/item/weapon/card/id/inserted_id
var/points = 0
@@ -18,7 +20,6 @@
var/sheet_per_ore = 1
var/point_upgrade = 1
var/list/ore_values = list(MAT_GLASS = 1, MAT_METAL = 1, MAT_PLASMA = 15, MAT_SILVER = 16, MAT_GOLD = 18, MAT_TITANIUM = 30, MAT_URANIUM = 30, MAT_DIAMOND = 50, MAT_BLUESPACE = 50, MAT_BANANIUM = 60)
speed_process = 1
var/message_sent = FALSE
var/list/ore_buffer = list()
var/datum/material_container/materials
@@ -27,8 +28,6 @@
/obj/machinery/mineral/ore_redemption/Initialize()
. = ..()
var/obj/item/weapon/circuitboard/machine/ore_redemption/B = new
B.apply_default_parts(src)
materials = new(src, list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM, MAT_BLUESPACE),INFINITY)
files = new /datum/research/smelter(src)
@@ -37,17 +36,6 @@
QDEL_NULL(files)
return ..()
/obj/item/weapon/circuitboard/machine/ore_redemption
name = "Ore Redemption (Machine Board)"
build_path = /obj/machinery/mineral/ore_redemption
origin_tech = "programming=1;engineering=2"
req_components = list(
/obj/item/weapon/stock_parts/console_screen = 1,
/obj/item/weapon/stock_parts/matter_bin = 1,
/obj/item/weapon/stock_parts/micro_laser = 1,
/obj/item/weapon/stock_parts/manipulator = 1,
/obj/item/device/assembly/igniter = 1)
/obj/machinery/mineral/ore_redemption/RefreshParts()
var/ore_pickup_rate_temp = 15
var/point_upgrade_temp = 1

View File

@@ -7,6 +7,7 @@
icon_state = "mining"
density = TRUE
anchored = TRUE
circuit = /obj/item/weapon/circuitboard/machine/mining_equipment_vendor
var/obj/item/weapon/card/id/inserted_id
var/list/prize_list = list( //if you add something to this, please, for the love of god, use tabs and not spaces.
new /datum/data/mining_equipment("1 Marker Beacon", /obj/item/stack/marker_beacon, 10),
@@ -67,19 +68,6 @@
src.equipment_path = path
src.cost = cost
/obj/machinery/mineral/equipment_vendor/New()
..()
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/mining_equipment_vendor(null)
B.apply_default_parts(src)
/obj/item/weapon/circuitboard/machine/mining_equipment_vendor
name = "Mining Equipment Vendor (Machine Board)"
build_path = /obj/machinery/mineral/equipment_vendor
origin_tech = "programming=1;engineering=3"
req_components = list(
/obj/item/weapon/stock_parts/console_screen = 1,
/obj/item/weapon/stock_parts/matter_bin = 3)
/obj/machinery/mineral/equipment_vendor/power_change()
..()
update_icon()
@@ -207,9 +195,10 @@
/obj/machinery/mineral/equipment_vendor/golem
name = "golem ship equipment vendor"
circuit = /obj/item/weapon/circuitboard/machine/mining_equipment_vendor/golem
/obj/machinery/mineral/equipment_vendor/golem/New()
..()
/obj/machinery/mineral/equipment_vendor/golem/Initialize()
. = ..()
desc += "\nIt seems a few selections have been added."
prize_list += list(
new /datum/data/mining_equipment("Extra Id", /obj/item/weapon/card/id/mining, 250),
@@ -223,14 +212,6 @@
new /datum/data/mining_equipment("Royal Cape of the Liberator", /obj/item/weapon/bedsheet/rd/royal_cape, 500)
)
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/mining_equipment_vendor/golem(null)
B.apply_default_parts(src)
/obj/item/weapon/circuitboard/machine/mining_equipment_vendor/golem
name = "Golem Ship Equipment Vendor (Machine Board)"
build_path = /obj/machinery/mineral/equipment_vendor/golem
/**********************Mining Equipment Vendor Items**************************/
/**********************Mining Equipment Voucher**********************/

Some files were not shown because too many files have changed in this diff Show More