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 //TODO : replace with presets or spectrum
return rgb(rand(0,255),rand(0,255),rand(0,255)) 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 = subtypesof(/obj/item/organ/heart/gland)
gland_types = shuffle(gland_types) gland_types = shuffle(gland_types)
gland_colors = new/list(gland_types.len) gland_colors = new/list(gland_types.len)

View File

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

View File

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

View File

@@ -27,12 +27,16 @@
return return
/obj/machinery/pdapainter/New() /obj/machinery/pdapainter/Initialize()
..() . = ..()
var/blocked = list(/obj/item/device/pda/ai/pai, /obj/item/device/pda/ai, /obj/item/device/pda/heads, var/list/blocked = list(
/obj/item/device/pda/clear, /obj/item/device/pda/syndicate) /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 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" //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 src.colorlist += D
/obj/machinery/pdapainter/Destroy() /obj/machinery/pdapainter/Destroy()
if(storedpda) QDEL_NULL(storedpda)
qdel(storedpda)
storedpda = null
return ..() return ..()
/obj/machinery/pdapainter/on_deconstruction() /obj/machinery/pdapainter/on_deconstruction()

View File

@@ -13,6 +13,7 @@
density = FALSE density = FALSE
anchored = TRUE anchored = TRUE
state_open = TRUE state_open = TRUE
circuit = /obj/item/weapon/circuitboard/machine/sleeper
var/efficiency = 1 var/efficiency = 1
var/min_health = -25 var/min_health = -25
var/list/available_chems 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/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 var/scrambled_chems = FALSE //Are chem buttons scrambled? used as a warning
/obj/machinery/sleeper/New() /obj/machinery/sleeper/Initialize()
..() . = ..()
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/sleeper(null)
B.apply_default_parts(src)
update_icon() update_icon()
reset_chem_buttons() 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() /obj/machinery/sleeper/RefreshParts()
var/E var/E
for(var/obj/item/weapon/stock_parts/matter_bin/B in component_parts) 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_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/interact_offline = 0 // Can the machine be interacted with while de-powered.
var/speed_process = 0 // Process as fast as possible? 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() /obj/machinery/Initialize()
if(!armor) if(!armor)
armor = list(melee = 25, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 70) armor = list(melee = 25, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 70)
. = ..() . = ..()
GLOB.machines += src GLOB.machines += src
if(ispath(circuit, /obj/item/weapon/circuitboard))
circuit = new circuit
circuit.apply_default_parts(src)
if(!speed_process) if(!speed_process)
START_PROCESSING(SSmachines, src) START_PROCESSING(SSmachines, src)
else else

View File

@@ -7,7 +7,6 @@ GLOBAL_LIST_EMPTY(announcement_systems)
desc = "An automated announcement system that handles minor announcements over the radio." desc = "An automated announcement system that handles minor announcements over the radio."
icon = 'icons/obj/machines/telecomms.dmi' icon = 'icons/obj/machines/telecomms.dmi'
icon_state = "AAS_On" icon_state = "AAS_On"
var/obj/item/device/radio/headset/radio
verb_say = "coldly states" verb_say = "coldly states"
verb_ask = "queries" verb_ask = "queries"
@@ -16,6 +15,9 @@ GLOBAL_LIST_EMPTY(announcement_systems)
idle_power_usage = 20 idle_power_usage = 20
active_power_usage = 50 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/arrival = "%PERSON has signed up as %RANK"
var/arrivalToggle = 1 var/arrivalToggle = 1
var/newhead = "%PERSON, %RANK, is the department head." var/newhead = "%PERSON, %RANK, is the department head."
@@ -25,24 +27,11 @@ GLOBAL_LIST_EMPTY(announcement_systems)
var/pinklight = "Light_Pink" var/pinklight = "Light_Pink"
var/errorlight = "Error_Red" var/errorlight = "Error_Red"
/obj/machinery/announcement_system/New() /obj/machinery/announcement_system/Initialize()
..() . = ..()
GLOB.announcement_systems += src 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() 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() /obj/machinery/announcement_system/update_icon()
if(is_operational()) if(is_operational())
icon_state = (panel_open ? "AAS_On_Open" : "AAS_On") icon_state = (panel_open ? "AAS_On_Open" : "AAS_On")

View File

@@ -7,9 +7,13 @@
desc = "It produces items using metal and glass." desc = "It produces items using metal and glass."
icon_state = "autolathe" icon_state = "autolathe"
density = TRUE 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 var/operating = FALSE
anchored = TRUE
var/list/L = list() var/list/L = list()
var/list/LL = list() var/list/LL = list()
var/hacked = FALSE var/hacked = FALSE
@@ -18,9 +22,7 @@
var/hack_wire var/hack_wire
var/disable_wire var/disable_wire
var/shock_wire var/shock_wire
use_power = IDLE_POWER_USE
idle_power_usage = 10
active_power_usage = 100
var/busy = FALSE var/busy = FALSE
var/prod_coeff = 1 var/prod_coeff = 1
@@ -45,30 +47,16 @@
"Imported" "Imported"
) )
/obj/machinery/autolathe/New() /obj/machinery/autolathe/Initialize()
..()
materials = new /datum/material_container(src, list(MAT_METAL, MAT_GLASS)) 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) wires = new /datum/wires/autolathe(src)
files = new /datum/research/autolathe(src) files = new /datum/research/autolathe(src)
matching_designs = list() matching_designs = list()
return ..()
/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/machinery/autolathe/Destroy() /obj/machinery/autolathe/Destroy()
qdel(wires) QDEL_NULL(wires)
wires = null QDEL_NULL(materials)
qdel(materials)
materials = null
return ..() return ..()
/obj/machinery/autolathe/interact(mob/user) /obj/machinery/autolathe/interact(mob/user)

View File

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

View File

@@ -17,6 +17,8 @@
icon_state = "pod_0" icon_state = "pod_0"
req_access = list(ACCESS_CLONING) //FOR PREMATURE UNLOCKING. req_access = list(ACCESS_CLONING) //FOR PREMATURE UNLOCKING.
verb_say = "states" verb_say = "states"
circuit = /obj/item/weapon/circuitboard/machine/clonepod
var/heal_level //The clone is released once its health reaches this level. 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/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. var/mess = FALSE //Need to clean out it if it's full of exploded clone.
@@ -46,8 +48,6 @@
/obj/machinery/clonepod/Initialize() /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) countdown = new(src)
@@ -59,16 +59,11 @@
/obj/machinery/clonepod/Destroy() /obj/machinery/clonepod/Destroy()
go_out() go_out()
qdel(radio) QDEL_NULL(radio)
radio = null QDEL_NULL(countdown)
qdel(countdown)
countdown = null
if(connected) if(connected)
connected.DetachCloner(src) connected.DetachCloner(src)
for(var/i in unattached_flesh) QDEL_LIST(unattached_flesh)
qdel(i)
LAZYCLEARLIST(unattached_flesh)
unattached_flesh = null
. = ..() . = ..()
/obj/machinery/clonepod/RefreshParts() /obj/machinery/clonepod/RefreshParts()
@@ -84,16 +79,6 @@
if(heal_level > 100) if(heal_level > 100)
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. //The return of data disks?? Just for transferring between genetics machine/cloning machine.
//TO-DO: Make the genetics machine accept them. //TO-DO: Make the genetics machine accept them.
/obj/item/weapon/disk/data /obj/item/weapon/disk/data

View File

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

View File

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

View File

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

View File

@@ -142,320 +142,4 @@
new /obj/item/weapon/shard(loc) new /obj/item/weapon/shard(loc)
if(state >= 3) if(state >= 3)
new /obj/item/stack/cable_coil(loc , 5) 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" icon_screen = "idminor"
circuit = /obj/item/weapon/circuitboard/computer/card/minor 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 var/obj/item/weapon/circuitboard/computer/card/minor/typed_circuit = circuit
if(target_dept) if(target_dept)
typed_circuit.target_dept = target_dept typed_circuit.target_dept = target_dept

View File

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

View File

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

View File

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

View File

@@ -15,9 +15,12 @@
light_color = LIGHT_COLOR_RED 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() /obj/machinery/computer/gulag_teleporter_computer/Destroy()
if(id) if(id)

View File

@@ -5,7 +5,3 @@
shuttleId = "pod1" shuttleId = "pod1"
possible_destinations = "monastery_shuttle_asteroid;monastery_shuttle_station" possible_destinations = "monastery_shuttle_asteroid;monastery_shuttle_station"
no_destination_swap = TRUE 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) for(var/X in components)
var/obj/item/I = X var/obj/item/I = X
I.forceMove(loc) 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 songs += T
/obj/machinery/disco/Initialize() /obj/machinery/disco/Initialize()
..() . = ..()
selection = songs[1] selection = songs[1]

View File

@@ -4,32 +4,17 @@
icon = 'icons/obj/Cryogenic2.dmi' icon = 'icons/obj/Cryogenic2.dmi'
icon_state = "scanner" icon_state = "scanner"
density = TRUE density = TRUE
var/locked = FALSE
anchored = TRUE anchored = TRUE
use_power = IDLE_POWER_USE use_power = IDLE_POWER_USE
idle_power_usage = 50 idle_power_usage = 50
active_power_usage = 300 active_power_usage = 300
occupant_typecache = list(/mob/living, /obj/item/bodypart/head, /obj/item/organ/brain) 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/damage_coeff
var/scan_level var/scan_level
var/precision_coeff 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() /obj/machinery/dna_scannernew/RefreshParts()
scan_level = 0 scan_level = 0
damage_coeff = 0 damage_coeff = 0

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -5,15 +5,15 @@
desc = "A wall-mounted flashbulb device." desc = "A wall-mounted flashbulb device."
icon = 'icons/obj/stationobjs.dmi' icon = 'icons/obj/stationobjs.dmi'
icon_state = "mflash1" 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/id = null
var/range = 2 //this is roughly the size of brig cell 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/last_flash = 0 //Don't want it getting spammed like regular flashes
var/strength = 100 //How knocked down targets are when flashed. var/strength = 100 //How knocked down targets are when flashed.
var/base_state = "mflash" 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 /obj/machinery/flasher/portable //Portable version of the flasher. Only flashes when anchored
name = "portable flasher" name = "portable flasher"
@@ -24,19 +24,17 @@
base_state = "pflash" base_state = "pflash"
density = TRUE density = TRUE
/obj/machinery/flasher/New(loc, ndir = 0, built = 0) /obj/machinery/flasher/Initialize(mapload, ndir = 0, built = 0)
..() // ..() is EXTREMELY IMPORTANT, never forget to add it . = ..() // ..() is EXTREMELY IMPORTANT, never forget to add it
if(built) if(built)
setDir(ndir) setDir(ndir)
pixel_x = (dir & 3)? 0 : (dir == 4 ? -28 : 28) pixel_x = (dir & 3)? 0 : (dir == 4 ? -28 : 28)
pixel_y = (dir & 3)? (dir ==1 ? -28 : 28) : 0 pixel_y = (dir & 3)? (dir ==1 ? -28 : 28) : 0
else else
bulb = new /obj/item/device/assembly/flash/handheld(src) bulb = new(src)
/obj/machinery/flasher/Destroy() /obj/machinery/flasher/Destroy()
if(bulb) QDEL_NULL(bulb)
qdel(bulb)
bulb = null
return ..() return ..()
/obj/machinery/flasher/power_change() /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 use_power = IDLE_POWER_USE
idle_power_usage = 200 idle_power_usage = 200
active_power_usage = 5000 active_power_usage = 5000
circuit = /obj/item/weapon/circuitboard/machine/gulag_teleporter
var/locked = FALSE var/locked = FALSE
var/jumpsuit_type = /obj/item/clothing/under/rank/prisoner var/jumpsuit_type = /obj/item/clothing/under/rank/prisoner
var/shoes_type = /obj/item/clothing/shoes/sneakers/orange var/shoes_type = /obj/item/clothing/shoes/sneakers/orange
var/obj/machinery/gulag_item_reclaimer/linked_reclaimer = null var/obj/machinery/gulag_item_reclaimer/linked_reclaimer
var/list/required_items 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( return INITIALIZE_HINT_LATELOAD
/obj/item/weapon/implant,
/obj/item/clothing/suit/space/eva/plasmaman, /obj/machinery/gulag_teleporter/LateInitialize()
/obj/item/clothing/under/plasmaman, locate_reclaimer()
/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)
/obj/machinery/gulag_teleporter/Destroy() /obj/machinery/gulag_teleporter/Destroy()
if(linked_reclaimer) if(linked_reclaimer)
@@ -46,7 +47,6 @@ The console is located at computer/gulag_teleporter.dm
..() ..()
update_icon() update_icon()
/obj/machinery/gulag_teleporter/interact(mob/user) /obj/machinery/gulag_teleporter/interact(mob/user)
if(locked) if(locked)
to_chat(user, "[src] is 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() linked_reclaimer.stored_items[occupant] = list()
var/mob/living/mob_occupant = occupant var/mob/living/mob_occupant = occupant
for(var/obj/item/W in mob_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)) if(istype(W, /obj/item/weapon/restraints/handcuffs))
W.forceMove(get_turf(src)) W.forceMove(get_turf(src))
continue continue

View File

@@ -40,6 +40,7 @@ Possible to do for anyone motivated enough:
active_power_usage = 100 active_power_usage = 100
max_integrity = 300 max_integrity = 300
armor = list(melee = 50, bullet = 20, laser = 20, energy = 20, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 0) 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/list/masters = list()//List of living mobs that use the holopad
var/last_request = 0 //to prevent request spam. ~Carn 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. 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() /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 holopads += src
/obj/machinery/holopad/Destroy() /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 Impersonation.examine(user)
return ..() 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 HOLOPAD_PASSIVE_POWER_USAGE
#undef HOLOGRAM_POWER_USAGE #undef HOLOGRAM_POWER_USAGE

View File

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

View File

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

View File

@@ -8,6 +8,7 @@
use_power = TRUE use_power = TRUE
idle_power_usage = 200 idle_power_usage = 200
active_power_usage = 2500 active_power_usage = 2500
circuit = /obj/item/weapon/circuitboard/machine/launchpad
var/stationary = TRUE //to prevent briefcase pad deconstruction and such var/stationary = TRUE //to prevent briefcase pad deconstruction and such
var/display_name = "Launchpad" var/display_name = "Launchpad"
var/teleport_speed = 35 var/teleport_speed = 35
@@ -17,20 +18,6 @@
var/x_offset = 0 var/x_offset = 0
var/y_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() /obj/machinery/launchpad/RefreshParts()
var/E = -1 //to make default parts have the base value var/E = -1 //to make default parts have the base value
for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts) for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts)
@@ -171,9 +158,7 @@
qdel(src) qdel(src)
/obj/machinery/launchpad/briefcase/Destroy() /obj/machinery/launchpad/briefcase/Destroy()
if(!QDELETED(briefcase)) QDEL_NULL(briefcase)
qdel(briefcase)
briefcase = null
return ..() return ..()
/obj/machinery/launchpad/briefcase/isAvailable() /obj/machinery/launchpad/briefcase/isAvailable()

View File

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

View File

@@ -11,21 +11,20 @@
icon_state = "limbgrower_idleoff" icon_state = "limbgrower_idleoff"
density = TRUE density = TRUE
container_type = OPENCONTAINER container_type = OPENCONTAINER
var/operating = FALSE
anchored = TRUE anchored = TRUE
use_power = IDLE_POWER_USE use_power = IDLE_POWER_USE
var/disabled = 0
idle_power_usage = 10 idle_power_usage = 10
active_power_usage = 100 active_power_usage = 100
circuit = /obj/item/weapon/circuitboard/machine/limbgrower
var/operating = FALSE
var/disabled = FALSE
var/busy = FALSE var/busy = FALSE
var/prod_coeff = 1 var/prod_coeff = 1
var/datum/design/being_built var/datum/design/being_built
var/datum/research/files var/datum/research/files
var/selected_category var/selected_category
var/screen = 1 var/screen = 1
var/list/categories = list( var/list/categories = list(
"human", "human",
"lizard", "lizard",
@@ -33,22 +32,11 @@
"special" "special"
) )
/obj/machinery/limbgrower/New() /obj/machinery/limbgrower/Initialize()
..() . = ..()
create_reagents(0) 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) 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) /obj/machinery/limbgrower/interact(mob/user)
if(!is_operational()) if(!is_operational())
return return

View File

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

View File

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

View File

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

View File

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

View File

@@ -8,28 +8,13 @@
idle_power_usage = 200 idle_power_usage = 200
active_power_usage = 5000 active_power_usage = 5000
unique_rename = 1 unique_rename = 1
circuit = /obj/item/weapon/circuitboard/machine/quantumpad
var/teleport_cooldown = 400 //30 seconds base due to base parts var/teleport_cooldown = 400 //30 seconds base due to base parts
var/teleport_speed = 50 var/teleport_speed = 50
var/last_teleport //to handle the cooldown var/last_teleport //to handle the cooldown
var/teleporting = 0 //if it's in the process of teleporting var/teleporting = 0 //if it's in the process of teleporting
var/power_efficiency = 1 var/power_efficiency = 1
var/obj/machinery/quantumpad/linked_pad = null var/obj/machinery/quantumpad/linked_pad
/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)
/obj/machinery/quantumpad/RefreshParts() /obj/machinery/quantumpad/RefreshParts()
var/E = 0 var/E = 0

View File

@@ -7,20 +7,14 @@
use_power = IDLE_POWER_USE use_power = IDLE_POWER_USE
idle_power_usage = 4 idle_power_usage = 4
active_power_usage = 250 active_power_usage = 250
circuit = /obj/item/weapon/circuitboard/machine/recharger
var/obj/item/charging = null 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 var/recharge_coeff = 1
var/static/list/allowed_devices = typecacheof(list(
/obj/machinery/recharger/Initialize() /obj/item/weapon/gun/energy,
. = ..() /obj/item/weapon/melee/baton,
var/obj/item/weapon/circuitboard/machine/recharger/B = new() /obj/item/ammo_box/magazine/recharge,
B.apply_default_parts(src) /obj/item/device/modular_computer))
/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/machinery/recharger/RefreshParts() /obj/machinery/recharger/RefreshParts()
for(var/obj/item/weapon/stock_parts/capacitor/C in component_parts) for(var/obj/item/weapon/stock_parts/capacitor/C in component_parts)

View File

@@ -8,27 +8,15 @@
idle_power_usage = 5 idle_power_usage = 5
active_power_usage = 1000 active_power_usage = 1000
req_access = list(ACCESS_ROBOTICS) req_access = list(ACCESS_ROBOTICS)
state_open = TRUE
circuit = /obj/item/weapon/circuitboard/machine/cyborgrecharger
var/recharge_speed var/recharge_speed
var/repairs var/repairs
state_open = TRUE
/obj/machinery/recharge_station/New() /obj/machinery/recharge_station/Initialize()
..() . = ..()
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/cyborgrecharger(null)
B.apply_default_parts(src)
update_icon() 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() /obj/machinery/recharge_station/RefreshParts()
recharge_speed = 0 recharge_speed = 0
repairs = 0 repairs = 0

View File

@@ -8,6 +8,7 @@
layer = ABOVE_ALL_MOB_LAYER // Overhead layer = ABOVE_ALL_MOB_LAYER // Overhead
anchored = TRUE anchored = TRUE
density = TRUE density = TRUE
circuit = /obj/item/weapon/circuitboard/machine/recycler
var/safety_mode = FALSE // Temporarily stops machine if it detects a mob var/safety_mode = FALSE // Temporarily stops machine if it detects a mob
var/icon_name = "grinder-o" var/icon_name = "grinder-o"
var/blood = 0 var/blood = 0
@@ -18,20 +19,10 @@
var/eat_victim_items = TRUE var/eat_victim_items = TRUE
var/item_recycle_sound = 'sound/items/welder.ogg' 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)) 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() update_icon()
return ..()
/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/machinery/recycler/RefreshParts() /obj/machinery/recycler/RefreshParts()
var/amt_made = 0 var/amt_made = 0

View File

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

View File

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

View File

@@ -34,7 +34,7 @@
light_color = LIGHT_COLOR_BROWN light_color = LIGHT_COLOR_BROWN
/obj/machinery/computer/slot_machine/Initialize() /obj/machinery/computer/slot_machine/Initialize()
..() . = ..()
jackpots = rand(1, 4) //false hope jackpots = rand(1, 4) //false hope
plays = rand(75, 200) 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." desc = "Made by Space Amish using traditional space techniques, this heater/cooler is guaranteed not to set the station on fire."
max_integrity = 250 max_integrity = 250
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 100, fire = 80, acid = 10) 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/obj/item/weapon/stock_parts/cell/cell
var/on = FALSE var/on = FALSE
var/mode = HEATER_MODE_STANDBY var/mode = HEATER_MODE_STANDBY
@@ -26,22 +27,11 @@
/obj/machinery/space_heater/get_cell() /obj/machinery/space_heater/get_cell()
return cell return cell
/obj/machinery/space_heater/New() /obj/machinery/space_heater/Initialize()
..() . = ..()
cell = new(src) 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() 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() /obj/machinery/space_heater/on_construction()
qdel(cell) qdel(cell)
cell = null cell = null

View File

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

View File

@@ -82,22 +82,19 @@
countdown.stop() countdown.stop()
STOP_PROCESSING(SSfastprocess, src) STOP_PROCESSING(SSfastprocess, src)
/obj/machinery/syndicatebomb/New() /obj/machinery/syndicatebomb/Initialize()
. = ..()
wires = new /datum/wires/syndicatebomb(src) wires = new /datum/wires/syndicatebomb(src)
if(src.payload) if(payload)
payload = new payload(src) payload = new payload(src)
update_icon() update_icon()
countdown = new(src) countdown = new(src)
..()
/obj/machinery/syndicatebomb/Destroy() /obj/machinery/syndicatebomb/Destroy()
qdel(wires) QDEL_NULL(wires)
wires = null QDEL_NULL(countdown)
if(countdown)
qdel(countdown)
countdown = null
STOP_PROCESSING(SSfastprocess, src) STOP_PROCESSING(SSfastprocess, src)
. = ..() return ..()
/obj/machinery/syndicatebomb/examine(mob/user) /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 use_power = IDLE_POWER_USE
idle_power_usage = 25 idle_power_usage = 25
machinetype = 5 machinetype = 5
/*heatgen = 0 circuit = /obj/item/weapon/circuitboard/machine/telecomms/broadcaster
delay = 7*/
/obj/machinery/telecomms/broadcaster/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from) /obj/machinery/telecomms/broadcaster/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from)
// Don't broadcast rejected signals // 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! --- */ /* --- Do a snazzy animation! --- */
flick("broadcaster_send", src) 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() /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. // 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) if(GLOB.message_delay)

View File

@@ -17,8 +17,8 @@
use_power = IDLE_POWER_USE use_power = IDLE_POWER_USE
idle_power_usage = 50 idle_power_usage = 50
machinetype = 2 machinetype = 2
//heatgen = 20
netspeed = 40 netspeed = 40
circuit = /obj/item/weapon/circuitboard/machine/telecomms/bus
var/change_frequency = 0 var/change_frequency = 0
/obj/machinery/telecomms/bus/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from) /obj/machinery/telecomms/bus/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from)
@@ -49,24 +49,6 @@
if(can_send) if(can_send)
break 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 //Preset Buses
/obj/machinery/telecomms/bus/preset_one /obj/machinery/telecomms/bus/preset_one
@@ -93,10 +75,10 @@
freq_listening = list(GLOB.ENG_FREQ) freq_listening = list(GLOB.ENG_FREQ)
autolinkers = list("processor4", "engineering", "common") 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) for(var/i = 1441, i < 1489, i += 2)
freq_listening |= i freq_listening |= i
..()
/obj/machinery/telecomms/bus/preset_one/birdstation /obj/machinery/telecomms/bus/preset_one/birdstation
name = "Bus" name = "Bus"

View File

@@ -18,10 +18,9 @@
use_power = IDLE_POWER_USE use_power = IDLE_POWER_USE
idle_power_usage = 80 idle_power_usage = 80
machinetype = 7 machinetype = 7
//heatgen = 40
long_range_link = 1 long_range_link = 1
netspeed = 40 netspeed = 40
circuit = /obj/item/weapon/circuitboard/machine/telecomms/hub
/obj/machinery/telecomms/hub/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from) /obj/machinery/telecomms/hub/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from)
if(is_freq_listening(signal)) if(is_freq_listening(signal))
@@ -33,23 +32,6 @@
relay_information(signal, "/obj/machinery/telecomms/relay", 1) relay_information(signal, "/obj/machinery/telecomms/relay", 1)
relay_information(signal, "/obj/machinery/telecomms/broadcaster", 1) // Send it to a broadcaster. 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 //Preset HUB
/obj/machinery/telecomms/hub/preset /obj/machinery/telecomms/hub/preset

View File

@@ -16,8 +16,7 @@
use_power = IDLE_POWER_USE use_power = IDLE_POWER_USE
idle_power_usage = 30 idle_power_usage = 30
machinetype = 3 machinetype = 3
//heatgen = 100 circuit = /obj/item/weapon/circuitboard/machine/telecomms/processor
//delay = 5
var/process_mode = 1 // 1 = Uncompress Signals, 0 = Compress Signals var/process_mode = 1 // 1 = Uncompress Signals, 0 = Compress Signals
/obj/machinery/telecomms/processor/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from) /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 signal.data["slow"] += rand(5, 10) // slow the signal down
relay_information(signal, "/obj/machinery/telecomms/server") 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 //Preset Processors
/obj/machinery/telecomms/processor/preset_one /obj/machinery/telecomms/processor/preset_one

View File

@@ -16,7 +16,7 @@
use_power = IDLE_POWER_USE use_power = IDLE_POWER_USE
idle_power_usage = 30 idle_power_usage = 30
machinetype = 1 machinetype = 1
//heatgen = 0 circuit = /obj/item/weapon/circuitboard/machine/telecomms/receiver
/obj/machinery/telecomms/receiver/receive_signal(datum/signal/signal) /obj/machinery/telecomms/receiver/receive_signal(datum/signal/signal)
@@ -50,25 +50,6 @@
return 0 return 0
return 1 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 Receivers
//--PRESET LEFT--// //--PRESET LEFT--//
@@ -89,10 +70,10 @@
freq_listening = list(GLOB.COMM_FREQ, GLOB.ENG_FREQ, GLOB.SEC_FREQ) //command, engineering, security 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 //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) for(var/i = 1441, i < 1489, i += 2)
freq_listening |= i freq_listening |= i
..()
/obj/machinery/telecomms/receiver/preset_left/birdstation /obj/machinery/telecomms/receiver/preset_left/birdstation
name = "Receiver" name = "Receiver"

View File

@@ -15,9 +15,9 @@
use_power = IDLE_POWER_USE use_power = IDLE_POWER_USE
idle_power_usage = 30 idle_power_usage = 30
machinetype = 8 machinetype = 8
//heatgen = 0
netspeed = 5 netspeed = 5
long_range_link = 1 long_range_link = 1
circuit = /obj/item/weapon/circuitboard/machine/telecomms/relay
var/broadcasting = 1 var/broadcasting = 1
var/receiving = 1 var/receiving = 1
@@ -45,22 +45,6 @@
return FALSE return FALSE
return receiving 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 //Preset Relay
/obj/machinery/telecomms/relay/preset /obj/machinery/telecomms/relay/preset

View File

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

View File

@@ -16,6 +16,7 @@ GLOBAL_LIST_EMPTY(telecomms_list)
/obj/machinery/telecomms /obj/machinery/telecomms
icon = 'icons/obj/machines/telecomms.dmi' icon = 'icons/obj/machines/telecomms.dmi'
critical_machine = TRUE
var/list/links = list() // list of machines this machine is linked to var/list/links = list() // list of machines this machine is linked to
var/traffic = 0 // value increases as traffic increases var/traffic = 0 // value increases as traffic increases
var/netspeed = 5 // how much traffic to lose per tick (50 gigabytes/second * netspeed) 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/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/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. 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) /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 listening_level = position.z
/obj/machinery/telecomms/Initialize(mapload) /obj/machinery/telecomms/Initialize(mapload)
..() . = ..()
if(mapload && autolinkers.len) if(mapload && autolinkers.len)
// Links nearby machines // Links nearby machines
if(!long_range_link) 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 /obj/machinery/teleport
name = "teleport" name = "teleport"
icon = 'icons/obj/machines/teleporter.dmi' icon = 'icons/obj/machines/teleporter.dmi'
@@ -226,29 +8,16 @@
name = "teleporter hub" name = "teleporter hub"
desc = "It's the hub of a teleporting machine." desc = "It's the hub of a teleporting machine."
icon_state = "tele0" icon_state = "tele0"
var/accurate = 0
use_power = IDLE_POWER_USE use_power = IDLE_POWER_USE
idle_power_usage = 10 idle_power_usage = 10
active_power_usage = 2000 active_power_usage = 2000
circuit = /obj/item/weapon/circuitboard/machine/teleporter_hub
var/accurate = FALSE
var/obj/machinery/teleport/station/power_station var/obj/machinery/teleport/station/power_station
var/calibrated //Calibration prevents mutation 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() /obj/machinery/teleport/hub/Initialize()
..() . = ..()
link_power_station() link_power_station()
/obj/machinery/teleport/hub/Destroy() /obj/machinery/teleport/hub/Destroy()
@@ -327,8 +96,8 @@
/obj/machinery/teleport/hub/proc/is_ready() /obj/machinery/teleport/hub/proc/is_ready()
. = !panel_open && !(stat & (BROKEN|NOPOWER)) && power_station && power_station.engaged && !(power_station.stat & (BROKEN|NOPOWER)) . = !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) component_parts += new /obj/item/weapon/stock_parts/matter_bin/super(null)
RefreshParts() RefreshParts()
@@ -337,32 +106,18 @@
name = "station" name = "station"
desc = "The power control station for a bluespace teleporter. Used for toggling power, and can activate a test-fire to prevent malfunctions." 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" icon_state = "controller"
var/engaged = 0
use_power = IDLE_POWER_USE use_power = IDLE_POWER_USE
idle_power_usage = 10 idle_power_usage = 10
active_power_usage = 2000 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/computer/teleporter/teleporter_console
var/obj/machinery/teleport/hub/teleporter_hub var/obj/machinery/teleport/hub/teleporter_hub
var/list/linked_stations = list() var/list/linked_stations = list()
var/efficiency = 0 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() /obj/machinery/teleport/station/Initialize()
..() . = ..()
link_console_and_hub() link_console_and_hub()
/obj/machinery/teleport/station/RefreshParts() /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(locate(x - 1, y, z), WEST)
new /obj/machinery/conveyor/auto(loc, 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 = new(src)
countdown.start() countdown.start()
@@ -33,9 +33,7 @@
to_chat(user, "It will be ready in [max(0, seconds_remaining)] seconds.") to_chat(user, "It will be ready in [max(0, seconds_remaining)] seconds.")
/obj/machinery/transformer/Destroy() /obj/machinery/transformer/Destroy()
if(countdown) QDEL_NULL(countdown)
qdel(countdown)
countdown = null
. = ..() . = ..()
/obj/machinery/transformer/power_change() /obj/machinery/transformer/power_change()

View File

@@ -24,6 +24,7 @@
max_integrity = 300 max_integrity = 300
integrity_failure = 100 integrity_failure = 100
armor = list(melee = 20, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 70) 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/active = 1 //No sales pitches if off!
var/vend_ready = 1 //Are we ready to vend?? Is it time?? var/vend_ready = 1 //Are we ready to vend?? Is it time??
@@ -62,10 +63,7 @@
/obj/machinery/vending/Initialize() /obj/machinery/vending/Initialize()
. = ..() . = ..()
wires = new /datum/wires/vending(src) wires = new /datum/wires/vending(src)
if(refill_canister) //constructable vending machine 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
build_inventory(products) build_inventory(products)
build_inventory(contraband, 1) build_inventory(contraband, 1)
build_inventory(premium, 0, 1) build_inventory(premium, 0, 1)
@@ -77,46 +75,6 @@
last_slogan = world.time + rand(0, slogan_delay) last_slogan = world.time + rand(0, slogan_delay)
power_change() 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() /obj/machinery/vending/Destroy()
QDEL_NULL(wires) QDEL_NULL(wires)
QDEL_NULL(coin) 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!" desc = "Uh oh!"
/obj/machinery/vending/cola/random/Initialize() /obj/machinery/vending/cola/random/Initialize()
..() . = ..()
var/T = pick(subtypesof(/obj/machinery/vending/cola) - /obj/machinery/vending/cola/random) var/T = pick(subtypesof(/obj/machinery/vending/cola) - /obj/machinery/vending/cola/random)
new T(get_turf(src)) new T(get_turf(src))
qdel(src) qdel(src)

View File

@@ -17,6 +17,7 @@
dir = EAST dir = EAST
icon = 'icons/mecha/mech_bay.dmi' icon = 'icons/mecha/mech_bay.dmi'
icon_state = "recharge_port" icon_state = "recharge_port"
circuit = /obj/item/weapon/circuitboard/machine/mech_recharger
var/obj/mecha/recharging_mech var/obj/mecha/recharging_mech
var/obj/machinery/computer/mech_bay_power_console/recharge_console var/obj/machinery/computer/mech_bay_power_console/recharge_console
var/max_charge = 50 var/max_charge = 50
@@ -24,20 +25,10 @@
var/repairability = 0 var/repairability = 0
var/turf/recharging_turf = null var/turf/recharging_turf = null
/obj/machinery/mech_bay_recharge_port/New() /obj/machinery/mech_bay_recharge_port/Initialize()
..() . = ..()
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/mech_recharger(null)
B.apply_default_parts(src)
recharging_turf = get_step(loc, dir) 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() /obj/machinery/mech_bay_recharge_port/RefreshParts()
var/MC var/MC
for(var/obj/item/weapon/stock_parts/capacitor/C in component_parts) for(var/obj/item/weapon/stock_parts/capacitor/C in component_parts)
@@ -149,5 +140,5 @@
add_overlay("recharge_comp_on") add_overlay("recharge_comp_on")
/obj/machinery/computer/mech_bay_power_console/Initialize() /obj/machinery/computer/mech_bay_power_console/Initialize()
..() . = ..()
reconnect() reconnect()

View File

@@ -9,6 +9,7 @@
idle_power_usage = 20 idle_power_usage = 20
active_power_usage = 5000 active_power_usage = 5000
req_access = list(ACCESS_ROBOTICS) req_access = list(ACCESS_ROBOTICS)
circuit = /obj/item/weapon/circuitboard/machine/mechfab
var/time_coeff = 1 var/time_coeff = 1
var/component_coeff = 1 var/component_coeff = 1
var/datum/material_container/materials var/datum/material_container/materials
@@ -34,22 +35,10 @@
"Misc" "Misc"
) )
/obj/machinery/mecha_part_fabricator/New() /obj/machinery/mecha_part_fabricator/Initialize()
..()
files = new /datum/research(src) //Setup the research data holder. 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)) 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) return ..()
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)
/obj/machinery/mecha_part_fabricator/RefreshParts() /obj/machinery/mecha_part_fabricator/RefreshParts()
var/T = 0 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 = FALSE
var/special_name = "special function" var/special_name = "special function"
/obj/machinery/implantchair/New() /obj/machinery/implantchair/Initialize()
..() . = ..()
open_machine() open_machine()
update_icon() update_icon()
/obj/machinery/implantchair/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \ /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)
datum/tgui/master_ui = null, datum/ui_state/state = GLOB.notcontained_state)
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui) if(!ui)
ui = new(user, src, ui_key, "implantchair", name, 375, 280, master_ui, state) ui = new(user, src, ui_key, "implantchair", name, 375, 280, master_ui, state)

View File

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

View File

@@ -9,9 +9,10 @@
max_integrity = 350 max_integrity = 350
armor = list(melee = 0, bullet = 0, laser = 0, energy = 100, bomb = 0, bio = 100, rad = 100, fire = 30, acid = 30) armor = list(melee = 0, bullet = 0, laser = 0, energy = 100, bomb = 0, bio = 100, rad = 100, fire = 30, acid = 30)
layer = ABOVE_WINDOW_LAYER layer = ABOVE_WINDOW_LAYER
state_open = FALSE
circuit = /obj/item/weapon/circuitboard/machine/cryo_tube
var/on = FALSE var/on = FALSE
state_open = FALSE
var/autoeject = FALSE var/autoeject = FALSE
var/volume = 100 var/volume = 100
@@ -35,8 +36,6 @@
/obj/machinery/atmospherics/components/unary/cryo_cell/Initialize() /obj/machinery/atmospherics/components/unary/cryo_cell/Initialize()
. = ..() . = ..()
initialize_directions = dir initialize_directions = dir
var/obj/item/weapon/circuitboard/machine/cryo_tube/B = new
B.apply_default_parts(src)
radio = new(src) radio = new(src)
radio.keyslot = new radio_key radio.keyslot = new radio_key
@@ -44,16 +43,6 @@
radio.canhear_range = 0 radio.canhear_range = 0
radio.recalculateChannels() 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() /obj/machinery/atmospherics/components/unary/cryo_cell/on_construction()
..(dir, dir) ..(dir, dir)
@@ -69,11 +58,8 @@
conduction_coefficient = initial(conduction_coefficient) * C conduction_coefficient = initial(conduction_coefficient) * C
/obj/machinery/atmospherics/components/unary/cryo_cell/Destroy() /obj/machinery/atmospherics/components/unary/cryo_cell/Destroy()
qdel(radio) QDEL_NULL(radio)
radio = null QDEL_NULL(beaker)
if(beaker)
qdel(beaker)
beaker = null
return ..() return ..()
/obj/machinery/atmospherics/components/unary/cryo_cell/contents_explosion(severity, target) /obj/machinery/atmospherics/components/unary/cryo_cell/contents_explosion(severity, target)

View File

@@ -10,6 +10,7 @@
max_integrity = 300 max_integrity = 300
armor = list(melee = 0, bullet = 0, laser = 0, energy = 100, bomb = 0, bio = 100, rad = 100, fire = 80, acid = 30) armor = list(melee = 0, bullet = 0, laser = 0, energy = 100, bomb = 0, bio = 100, rad = 100, fire = 80, acid = 30)
layer = OBJ_LAYER layer = OBJ_LAYER
circuit = /obj/item/weapon/circuitboard/machine/thermomachine
var/on = FALSE var/on = FALSE
var/min_temperature = 0 var/min_temperature = 0
@@ -18,49 +19,9 @@
var/heat_capacity = 0 var/heat_capacity = 0
var/interactive = TRUE // So mapmakers can disable interaction. var/interactive = TRUE // So mapmakers can disable interaction.
/obj/machinery/atmospherics/components/unary/thermomachine/New() /obj/machinery/atmospherics/components/unary/thermomachine/Initialize()
..()
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()
. = ..() . = ..()
if(prob(50)) initialize_directions = dir
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 ..()
/obj/machinery/atmospherics/components/unary/thermomachine/on_construction() /obj/machinery/atmospherics/components/unary/thermomachine/on_construction()
..(dir,dir) ..(dir,dir)
@@ -202,15 +163,7 @@
icon_state_open = "freezer-o" icon_state_open = "freezer-o"
max_temperature = T20C max_temperature = T20C
min_temperature = 170 min_temperature = 170
circuit = /obj/item/weapon/circuitboard/machine/thermomachine/freezer
/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
/obj/machinery/atmospherics/components/unary/thermomachine/freezer/RefreshParts() /obj/machinery/atmospherics/components/unary/thermomachine/freezer/RefreshParts()
..() ..()
@@ -227,15 +180,7 @@
icon_state_open = "heater-o" icon_state_open = "heater-o"
max_temperature = 140 max_temperature = 140
min_temperature = T20C min_temperature = T20C
circuit = /obj/item/weapon/circuitboard/machine/thermomachine/heater
/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
/obj/machinery/atmospherics/components/unary/thermomachine/heater/RefreshParts() /obj/machinery/atmospherics/components/unary/thermomachine/heater/RefreshParts()
..() ..()

View File

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

View File

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

View File

@@ -22,7 +22,7 @@ GLOBAL_DATUM(the_gateway, /obj/machinery/gateway/centerstation)
switch(dir) switch(dir)
if(SOUTH,SOUTHEAST,SOUTHWEST) if(SOUTH,SOUTHEAST,SOUTHWEST)
density = FALSE density = FALSE
..() return ..()
/obj/machinery/gateway/proc/toggleoff() /obj/machinery/gateway/proc/toggleoff()
for(var/obj/machinery/gateway/G in linked) 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) /obj/machinery/gateway/proc/toggleon(mob/user)
return FALSE return FALSE
/obj/machinery/gateway/centerstation/New() /obj/machinery/gateway/centerstation/Initialize()
..() . = ..()
if(!GLOB.the_gateway) if(!GLOB.the_gateway)
GLOB.the_gateway = src 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() /obj/machinery/gateway/centerstation/Destroy()
if(GLOB.the_gateway == src) if(GLOB.the_gateway == src)
@@ -96,12 +99,6 @@ GLOBAL_DATUM(the_gateway, /obj/machinery/gateway/centerstation)
var/obj/machinery/gateway/centeraway/awaygate = null var/obj/machinery/gateway/centeraway/awaygate = null
can_link = TRUE 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() /obj/machinery/gateway/centerstation/update_icon()
if(active) if(active)
icon_state = "oncenter" icon_state = "oncenter"
@@ -182,7 +179,7 @@ GLOBAL_DATUM(the_gateway, /obj/machinery/gateway/centerstation)
/obj/machinery/gateway/centeraway/Initialize() /obj/machinery/gateway/centeraway/Initialize()
..() . = ..()
update_icon() update_icon()
stationgate = locate(/obj/machinery/gateway/centerstation) stationgate = locate(/obj/machinery/gateway/centerstation)

View File

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

View File

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

View File

@@ -18,7 +18,7 @@ insert ascii eagle on american flag background here
container_type = OPENCONTAINER container_type = OPENCONTAINER
var/obj/item/frying = null //What's being fried RIGHT NOW? var/obj/item/frying = null //What's being fried RIGHT NOW?
var/cook_time = 0 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/screwdriver,
/obj/item/weapon/crowbar, /obj/item/weapon/crowbar,
/obj/item/weapon/wrench, /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/reagent_containers/glass,
/obj/item/weapon/storage/part_replacer)) /obj/item/weapon/storage/part_replacer))
/obj/item/weapon/circuitboard/machine/deep_fryer /obj/machinery/deepfryer/Initialize()
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()
..()
create_reagents(50) create_reagents(50)
reagents.add_reagent("nutriment", 25) reagents.add_reagent("nutriment", 25)
component_parts = list() 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?! else if(default_deconstruction_screwdriver(user, "fryer_off", "fryer_off" ,I)) //where's the open maint panel icon?!
return return
else else
if(is_type_in_typecache(I, blacklisted_items)) if(is_type_in_typecache(I, deepfry_blacklisted_items))
. = ..() . = ..()
else if(user.drop_item() && !frying) else if(user.drop_item() && !frying)
to_chat(user, "<span class='notice'>You put [I] into [src].</span>") to_chat(user, "<span class='notice'>You put [I] into [src].</span>")

View File

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

View File

@@ -6,58 +6,21 @@
icon_state = "grinder" icon_state = "grinder"
density = TRUE density = TRUE
anchored = 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/operating = FALSE //Is it on?
var/dirty = 0 // Does it need cleaning? var/dirty = 0 // Does it need cleaning?
var/gibtime = 40 // Time from starting until meat appears var/gibtime = 40 // Time from starting until meat appears
var/meat_produced = 0 var/meat_produced = 0
var/ignore_clothing = 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() /obj/machinery/gibber/Initialize()
. = ..() . = ..()
add_overlay("grjam") 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() /obj/machinery/gibber/RefreshParts()
var/gib_time = 40 var/gib_time = 40
@@ -234,3 +197,32 @@
pixel_x = initial(pixel_x) //return to its spot after shaking pixel_x = initial(pixel_x) //return to its spot after shaking
operating = FALSE operating = FALSE
update_icon() 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 anchored = FALSE
use_power = NO_POWER_USE use_power = NO_POWER_USE
layer = BELOW_OBJ_LAYER layer = BELOW_OBJ_LAYER
container_type = OPENCONTAINER
max_integrity = 300
var/list/product_types = list() var/list/product_types = list()
var/dispense_flavour = ICECREAM_VANILLA var/dispense_flavour = ICECREAM_VANILLA
var/flavour_name = "vanilla" var/flavour_name = "vanilla"
container_type = OPENCONTAINER var/static/list/icecream_vat_reagents = list(
max_integrity = 300 "milk" = 5,
"flour" = 5,
"sugar" = 5,
"ice" = 5,
"cocoa" = 5,
"berryjuice" = 5,
"singulo" = 5)
/obj/machinery/icecream_vat/proc/get_ingredient_list(type) /obj/machinery/icecream_vat/proc/get_ingredient_list(type)
switch(type) switch(type)
@@ -52,19 +60,14 @@
return "vanilla" return "vanilla"
/obj/machinery/icecream_vat/New() /obj/machinery/icecream_vat/Initialize()
..() . = ..()
while(product_types.len < 6) while(product_types.len < 6)
product_types.Add(5) product_types.Add(5)
create_reagents() create_reagents()
reagents.set_reacting(FALSE) reagents.set_reacting(FALSE)
reagents.add_reagent("milk", 5) for(var/reagent in icecream_vat_reagents)
reagents.add_reagent("flour", 5) reagents.add_reagent(reagent, icecream_vat_reagents[reagent])
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)
/obj/machinery/icecream_vat/attack_hand(mob/user) /obj/machinery/icecream_vat/attack_hand(mob/user)
user.set_machine(src) user.set_machine(src)

View File

@@ -9,6 +9,7 @@
use_power = IDLE_POWER_USE use_power = IDLE_POWER_USE
idle_power_usage = 5 idle_power_usage = 5
active_power_usage = 100 active_power_usage = 100
circuit = /obj/item/weapon/circuitboard/machine/microwave
var/operating = FALSE // Is it on? var/operating = FALSE // Is it on?
var/dirty = 0 // = {0..100} Does it need cleaning? var/dirty = 0 // = {0..100} Does it need cleaning?
var/broken = 0 // ={0,1,2} How broken is it??? var/broken = 0 // ={0,1,2} How broken is it???
@@ -21,22 +22,9 @@
* Initialising * Initialising
********************/ ********************/
/obj/machinery/microwave/New() /obj/machinery/microwave/Initialize()
. = ..()
create_reagents(100) 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() /obj/machinery/microwave/RefreshParts()
var/E var/E

View File

@@ -9,24 +9,11 @@
use_power = IDLE_POWER_USE use_power = IDLE_POWER_USE
idle_power_usage = 5 idle_power_usage = 5
active_power_usage = 50 active_power_usage = 50
circuit = /obj/item/weapon/circuitboard/machine/monkey_recycler
var/grinded = 0 var/grinded = 0
var/required_grind = 5 var/required_grind = 5
var/cube_production = 1 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() /obj/machinery/monkey_recycler/RefreshParts()
var/req_grind = 5 var/req_grind = 5
var/cubes_made = 1 var/cubes_made = 1

View File

@@ -7,44 +7,15 @@
layer = BELOW_OBJ_LAYER layer = BELOW_OBJ_LAYER
density = TRUE density = TRUE
anchored = TRUE anchored = TRUE
var/broken = 0
var/processing = FALSE
use_power = IDLE_POWER_USE use_power = IDLE_POWER_USE
idle_power_usage = 5 idle_power_usage = 5
active_power_usage = 50 active_power_usage = 50
circuit = /obj/item/weapon/circuitboard/machine/processor
var/broken = 0
var/processing = FALSE
var/rating_speed = 1 var/rating_speed = 1
var/rating_amount = 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() /obj/machinery/processor/RefreshParts()
for(var/obj/item/weapon/stock_parts/matter_bin/B in component_parts) for(var/obj/item/weapon/stock_parts/matter_bin/B in component_parts)
rating_amount = B.rating rating_amount = B.rating
@@ -300,11 +271,7 @@
name = "Slime processor" name = "Slime processor"
desc = "An industrial grinder with a sticker saying appropriated for science department. Keep hands clear of intake area while operating." 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) var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/processor/slime(null)
B.apply_default_parts(src) B.apply_default_parts(src)
/obj/item/weapon/circuitboard/machine/processor/slime
name = "Slime Processor (Machine Board)"
build_path = /obj/machinery/processor/slime

View File

@@ -12,13 +12,14 @@
use_power = IDLE_POWER_USE use_power = IDLE_POWER_USE
idle_power_usage = 5 idle_power_usage = 5
active_power_usage = 100 active_power_usage = 100
circuit = /obj/item/weapon/circuitboard/machine/smartfridge
var/max_n_of_items = 1500 var/max_n_of_items = 1500
var/icon_on = "smartfridge" var/icon_on = "smartfridge"
var/icon_off = "smartfridge-off" var/icon_off = "smartfridge-off"
var/list/initial_contents var/list/initial_contents
/obj/machinery/smartfridge/Initialize() /obj/machinery/smartfridge/Initialize()
..() . = ..()
create_reagents() create_reagents()
reagents.set_reacting(FALSE) reagents.set_reacting(FALSE)
@@ -30,40 +31,6 @@
for(var/i in 1 to amount) for(var/i in 1 to amount)
load(new typekey(src)) 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() /obj/machinery/smartfridge/RefreshParts()
for(var/obj/item/weapon/stock_parts/matter_bin/B in component_parts) for(var/obj/item/weapon/stock_parts/matter_bin/B in component_parts)
max_n_of_items = 1500 * B.rating max_n_of_items = 1500 * B.rating
@@ -255,8 +222,8 @@
icon_off = "drying_rack" icon_off = "drying_rack"
var/drying = FALSE var/drying = FALSE
/obj/machinery/smartfridge/drying_rack/New() /obj/machinery/smartfridge/drying_rack/Initialize()
..() . = ..()
if(component_parts && component_parts.len) if(component_parts && component_parts.len)
component_parts.Cut() component_parts.Cut()
component_parts = null component_parts = null

View File

@@ -7,6 +7,7 @@
anchored = TRUE anchored = TRUE
use_power = IDLE_POWER_USE use_power = IDLE_POWER_USE
idle_power_usage = 40 idle_power_usage = 40
circuit = /obj/item/weapon/circuitboard/machine/biogenerator
var/processing = FALSE var/processing = FALSE
var/obj/item/weapon/reagent_containers/glass/beaker = null var/obj/item/weapon/reagent_containers/glass/beaker = null
var/points = 0 var/points = 0
@@ -18,17 +19,13 @@
var/list/show_categories = list("Food", "Botany Chemicals", "Leather and Cloth") var/list/show_categories = list("Food", "Botany Chemicals", "Leather and Cloth")
var/list/timesFiveCategories = list("Food", "Botany Chemicals") var/list/timesFiveCategories = list("Food", "Botany Chemicals")
/obj/machinery/biogenerator/New() /obj/machinery/biogenerator/Initialize()
..() . = ..()
files = new /datum/research/biogenerator(src) files = new /datum/research/biogenerator(src)
create_reagents(1000) 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() /obj/machinery/biogenerator/Destroy()
if(beaker) QDEL_NULL(beaker)
qdel(beaker)
beaker = null
return ..() return ..()
/obj/machinery/biogenerator/contents_explosion(severity, target) /obj/machinery/biogenerator/contents_explosion(severity, target)
@@ -43,16 +40,6 @@
update_icon() update_icon()
updateUsrDialog() 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() /obj/machinery/biogenerator/RefreshParts()
var/E = 0 var/E = 0
var/P = 0 var/P = 0

View File

@@ -5,6 +5,7 @@
icon_state = "dnamod" icon_state = "dnamod"
density = TRUE density = TRUE
anchored = TRUE anchored = TRUE
circuit = /obj/item/weapon/circuitboard/machine/plantgenes
var/obj/item/seeds/seed var/obj/item/seeds/seed
var/obj/item/weapon/disk/plantgene/disk var/obj/item/weapon/disk/plantgene/disk
@@ -22,21 +23,6 @@
var/min_wchance = 67 var/min_wchance = 67
var/min_wrate = 10 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. /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) for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts)
if(M.rating > 3) if(M.rating > 3)
@@ -421,23 +407,9 @@
seed.name = "experimental " + seed.name seed.name = "experimental " + seed.name
seed.icon_state = "seed-x" seed.icon_state = "seed-x"
// Gene modder for seed vault ship, built with high tech alien parts. // Gene modder for seed vault ship, built with high tech alien parts.
/obj/machinery/plantgenes/seedvault/New() /obj/machinery/plantgenes/seedvault
..() circuit = /obj/item/weapon/circuitboard/machine/plantgenes/vault
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)
/* /*
* Plant DNA disk * Plant DNA disk

View File

@@ -6,6 +6,7 @@
anchored = TRUE anchored = TRUE
pixel_y = 8 pixel_y = 8
unique_rename = 1 unique_rename = 1
circuit = /obj/item/weapon/circuitboard/machine/hydroponics
var/waterlevel = 100 //The amount of water in the tray (max 100) var/waterlevel = 100 //The amount of water in the tray (max 100)
var/maxwater = 100 //The maximum amount of water in the tray var/maxwater = 100 //The maximum amount of water in the tray
var/nutrilevel = 10 //The amount of nutrient in the tray (max 10) var/nutrilevel = 10 //The amount of nutrient in the tray (max 10)
@@ -37,20 +38,6 @@
icon = 'icons/obj/hydroponics/equipment.dmi' icon = 'icons/obj/hydroponics/equipment.dmi'
icon_state = "hydrotray3" 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() /obj/machinery/hydroponics/constructable/RefreshParts()
var/tmp_capacity = 0 var/tmp_capacity = 0
for (var/obj/item/weapon/stock_parts/matter_bin/M in component_parts) for (var/obj/item/weapon/stock_parts/matter_bin/M in component_parts)

View File

@@ -44,23 +44,11 @@
icon_state = "sextractor" icon_state = "sextractor"
density = TRUE density = TRUE
anchored = TRUE anchored = TRUE
circuit = /obj/item/weapon/circuitboard/machine/seed_extractor
var/piles = list() var/piles = list()
var/max_seeds = 1000 var/max_seeds = 1000
var/seed_multiplier = 1 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() /obj/machinery/seed_extractor/RefreshParts()
for(var/obj/item/weapon/stock_parts/matter_bin/B in component_parts) for(var/obj/item/weapon/stock_parts/matter_bin/B in component_parts)
max_seeds = 1000 * B.rating 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] = ""
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" 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) if(circuit)
circuit.name = "Book Inventory Management Console (Machine Board)" circuit.name = "Book Inventory Management Console (Machine Board)"
circuit.build_path = /obj/machinery/computer/libraryconsole/bookmanagement 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 var/obj/item/device/gps/internal/base/locator
circuit = /obj/item/weapon/circuitboard/computer/auxillary_base circuit = /obj/item/weapon/circuitboard/computer/auxillary_base
/obj/machinery/computer/auxillary_base/New(location, obj/item/weapon/circuitboard/computer/shuttle/C) /obj/machinery/computer/auxillary_base/Initialize()
..() . = ..()
locator = new /obj/item/device/gps/internal/base(src) locator = new(src)
/obj/machinery/computer/auxillary_base/attack_hand(mob/user) /obj/machinery/computer/auxillary_base/attack_hand(mob/user)
if(..(user)) if(..(user))

View File

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

View File

@@ -199,18 +199,9 @@
max_n_of_items = 10 max_n_of_items = 10
pixel_y = -4 pixel_y = -4
flags = NODECONSTRUCT flags = NODECONSTRUCT
var/empty = FALSE
/obj/machinery/smartfridge/survival_pod/empty /obj/machinery/smartfridge/survival_pod/Initialize(mapload)
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)
. = ..() . = ..()
if(empty) if(empty)
return return
@@ -224,6 +215,14 @@
var/obj/item/device/instrument/guitar/G = new(src) var/obj/item/device/instrument/guitar/G = new(src)
load(G) 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 //Fans
/obj/structure/fans /obj/structure/fans
icon = 'icons/obj/lavaland/survival_pod.dmi' 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 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 = new/obj/item/device/radio(src)
Radio.listening = 0 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) /obj/machinery/mineral/labor_claim_console/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/card/id/prisoner)) if(istype(I, /obj/item/weapon/card/id/prisoner))

View File

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

View File

@@ -11,6 +11,8 @@
input_dir = NORTH input_dir = NORTH
output_dir = SOUTH output_dir = SOUTH
req_access = list(ACCESS_MINERAL_STOREROOM) 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/req_access_reclaim = ACCESS_MINING_STATION
var/obj/item/weapon/card/id/inserted_id var/obj/item/weapon/card/id/inserted_id
var/points = 0 var/points = 0
@@ -18,7 +20,6 @@
var/sheet_per_ore = 1 var/sheet_per_ore = 1
var/point_upgrade = 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) 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/message_sent = FALSE
var/list/ore_buffer = list() var/list/ore_buffer = list()
var/datum/material_container/materials var/datum/material_container/materials
@@ -27,8 +28,6 @@
/obj/machinery/mineral/ore_redemption/Initialize() /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) 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) files = new /datum/research/smelter(src)
@@ -37,17 +36,6 @@
QDEL_NULL(files) QDEL_NULL(files)
return ..() 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() /obj/machinery/mineral/ore_redemption/RefreshParts()
var/ore_pickup_rate_temp = 15 var/ore_pickup_rate_temp = 15
var/point_upgrade_temp = 1 var/point_upgrade_temp = 1

View File

@@ -7,6 +7,7 @@
icon_state = "mining" icon_state = "mining"
density = TRUE density = TRUE
anchored = TRUE anchored = TRUE
circuit = /obj/item/weapon/circuitboard/machine/mining_equipment_vendor
var/obj/item/weapon/card/id/inserted_id 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. 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), new /datum/data/mining_equipment("1 Marker Beacon", /obj/item/stack/marker_beacon, 10),
@@ -67,19 +68,6 @@
src.equipment_path = path src.equipment_path = path
src.cost = cost 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() /obj/machinery/mineral/equipment_vendor/power_change()
..() ..()
update_icon() update_icon()
@@ -207,9 +195,10 @@
/obj/machinery/mineral/equipment_vendor/golem /obj/machinery/mineral/equipment_vendor/golem
name = "golem ship equipment vendor" 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." desc += "\nIt seems a few selections have been added."
prize_list += list( prize_list += list(
new /datum/data/mining_equipment("Extra Id", /obj/item/weapon/card/id/mining, 250), 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) 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 Vendor Items**************************/
/**********************Mining Equipment Voucher**********************/ /**********************Mining Equipment Voucher**********************/

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