mirror of
https://github.com/fulpstation/fulpstation.git
synced 2025-12-10 01:57:01 +00:00
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:
@@ -13,8 +13,8 @@
|
||||
//TODO : replace with presets or spectrum
|
||||
return rgb(rand(0,255),rand(0,255),rand(0,255))
|
||||
|
||||
/obj/machinery/abductor/gland_dispenser/New()
|
||||
..()
|
||||
/obj/machinery/abductor/gland_dispenser/Initialize()
|
||||
. = ..()
|
||||
gland_types = subtypesof(/obj/item/organ/heart/gland)
|
||||
gland_types = shuffle(gland_types)
|
||||
gland_colors = new/list(gland_types.len)
|
||||
|
||||
@@ -86,8 +86,7 @@
|
||||
var/obj/machinery/nuclearbomb/existing = locate("syndienuke") in GLOB.nuke_list
|
||||
if(existing)
|
||||
qdel(src)
|
||||
throw EXCEPTION("Attempted to spawn a syndicate nuke while one already exists at [existing.loc.x],[existing.loc.y],[existing.loc.z]")
|
||||
return 0
|
||||
CRASH("Attempted to spawn a syndicate nuke while one already exists at [existing.loc.x],[existing.loc.y],[existing.loc.z]")
|
||||
tag = "syndienuke"
|
||||
|
||||
/obj/machinery/nuclearbomb/attackby(obj/item/I, mob/user, params)
|
||||
|
||||
@@ -11,8 +11,8 @@
|
||||
idle_power_usage = 0
|
||||
var/obj/item/device/radio/beacon/Beacon
|
||||
|
||||
/obj/machinery/bluespace_beacon/New()
|
||||
..()
|
||||
/obj/machinery/bluespace_beacon/Initialize()
|
||||
. = ..()
|
||||
var/turf/T = loc
|
||||
Beacon = new /obj/item/device/radio/beacon
|
||||
Beacon.invisibility = INVISIBILITY_MAXIMUM
|
||||
@@ -21,9 +21,7 @@
|
||||
hide(T.intact)
|
||||
|
||||
/obj/machinery/bluespace_beacon/Destroy()
|
||||
if(Beacon)
|
||||
qdel(Beacon)
|
||||
Beacon = null
|
||||
QDEL_NULL(Beacon)
|
||||
return ..()
|
||||
|
||||
// update the invisibility and icon
|
||||
|
||||
@@ -27,12 +27,16 @@
|
||||
|
||||
return
|
||||
|
||||
/obj/machinery/pdapainter/New()
|
||||
..()
|
||||
var/blocked = list(/obj/item/device/pda/ai/pai, /obj/item/device/pda/ai, /obj/item/device/pda/heads,
|
||||
/obj/item/device/pda/clear, /obj/item/device/pda/syndicate)
|
||||
/obj/machinery/pdapainter/Initialize()
|
||||
. = ..()
|
||||
var/list/blocked = list(
|
||||
/obj/item/device/pda/ai/pai,
|
||||
/obj/item/device/pda/ai,
|
||||
/obj/item/device/pda/heads,
|
||||
/obj/item/device/pda/clear,
|
||||
/obj/item/device/pda/syndicate)
|
||||
|
||||
for(var/P in typesof(/obj/item/device/pda)-blocked)
|
||||
for(var/P in typesof(/obj/item/device/pda) - blocked)
|
||||
var/obj/item/device/pda/D = new P
|
||||
|
||||
//D.name = "PDA Style [colorlist.len+1]" //Gotta set the name, otherwise it all comes up as "PDA"
|
||||
@@ -41,9 +45,7 @@
|
||||
src.colorlist += D
|
||||
|
||||
/obj/machinery/pdapainter/Destroy()
|
||||
if(storedpda)
|
||||
qdel(storedpda)
|
||||
storedpda = null
|
||||
QDEL_NULL(storedpda)
|
||||
return ..()
|
||||
|
||||
/obj/machinery/pdapainter/on_deconstruction()
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
state_open = TRUE
|
||||
circuit = /obj/item/weapon/circuitboard/machine/sleeper
|
||||
var/efficiency = 1
|
||||
var/min_health = -25
|
||||
var/list/available_chems
|
||||
@@ -26,24 +27,11 @@
|
||||
var/list/chem_buttons //Used when emagged to scramble which chem is used, eg: antitoxin -> morphine
|
||||
var/scrambled_chems = FALSE //Are chem buttons scrambled? used as a warning
|
||||
|
||||
/obj/machinery/sleeper/New()
|
||||
..()
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/sleeper(null)
|
||||
B.apply_default_parts(src)
|
||||
/obj/machinery/sleeper/Initialize()
|
||||
. = ..()
|
||||
update_icon()
|
||||
reset_chem_buttons()
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/sleeper
|
||||
name = "Sleeper (Machine Board)"
|
||||
build_path = /obj/machinery/sleeper
|
||||
origin_tech = "programming=3;biotech=2;engineering=3"
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/matter_bin = 1,
|
||||
/obj/item/weapon/stock_parts/manipulator = 1,
|
||||
/obj/item/stack/cable_coil = 1,
|
||||
/obj/item/weapon/stock_parts/console_screen = 1,
|
||||
/obj/item/stack/sheet/glass = 1)
|
||||
|
||||
/obj/machinery/sleeper/RefreshParts()
|
||||
var/E
|
||||
for(var/obj/item/weapon/stock_parts/matter_bin/B in component_parts)
|
||||
|
||||
@@ -123,12 +123,18 @@ Class Procs:
|
||||
var/interact_open = FALSE // Can the machine be interacted with when in maint/when the panel is open.
|
||||
var/interact_offline = 0 // Can the machine be interacted with while de-powered.
|
||||
var/speed_process = 0 // Process as fast as possible?
|
||||
var/obj/item/weapon/circuitboard/circuit // Circuit to be created and inserted when the machinery is created
|
||||
|
||||
/obj/machinery/Initialize()
|
||||
if(!armor)
|
||||
armor = list(melee = 25, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 70)
|
||||
. = ..()
|
||||
GLOB.machines += src
|
||||
|
||||
if(ispath(circuit, /obj/item/weapon/circuitboard))
|
||||
circuit = new circuit
|
||||
circuit.apply_default_parts(src)
|
||||
|
||||
if(!speed_process)
|
||||
START_PROCESSING(SSmachines, src)
|
||||
else
|
||||
@@ -7,7 +7,6 @@ GLOBAL_LIST_EMPTY(announcement_systems)
|
||||
desc = "An automated announcement system that handles minor announcements over the radio."
|
||||
icon = 'icons/obj/machines/telecomms.dmi'
|
||||
icon_state = "AAS_On"
|
||||
var/obj/item/device/radio/headset/radio
|
||||
|
||||
verb_say = "coldly states"
|
||||
verb_ask = "queries"
|
||||
@@ -16,6 +15,9 @@ GLOBAL_LIST_EMPTY(announcement_systems)
|
||||
idle_power_usage = 20
|
||||
active_power_usage = 50
|
||||
|
||||
circuit = /obj/item/weapon/circuitboard/machine/announcement_system
|
||||
|
||||
var/obj/item/device/radio/headset/radio
|
||||
var/arrival = "%PERSON has signed up as %RANK"
|
||||
var/arrivalToggle = 1
|
||||
var/newhead = "%PERSON, %RANK, is the department head."
|
||||
@@ -25,24 +27,11 @@ GLOBAL_LIST_EMPTY(announcement_systems)
|
||||
var/pinklight = "Light_Pink"
|
||||
var/errorlight = "Error_Red"
|
||||
|
||||
/obj/machinery/announcement_system/New()
|
||||
..()
|
||||
/obj/machinery/announcement_system/Initialize()
|
||||
. = ..()
|
||||
GLOB.announcement_systems += src
|
||||
radio = new /obj/item/device/radio/headset/ai(src)
|
||||
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/announcement_system(null)
|
||||
B.apply_default_parts(src)
|
||||
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/announcement_system
|
||||
name = "Announcement System (Machine Board)"
|
||||
build_path = /obj/machinery/announcement_system
|
||||
origin_tech = "programming=3;bluespace=3;magnets=2"
|
||||
req_components = list(
|
||||
/obj/item/stack/cable_coil = 2,
|
||||
/obj/item/weapon/stock_parts/console_screen = 1)
|
||||
|
||||
/obj/machinery/announcement_system/update_icon()
|
||||
if(is_operational())
|
||||
icon_state = (panel_open ? "AAS_On_Open" : "AAS_On")
|
||||
|
||||
@@ -7,9 +7,13 @@
|
||||
desc = "It produces items using metal and glass."
|
||||
icon_state = "autolathe"
|
||||
density = TRUE
|
||||
anchored = TRUE
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 10
|
||||
active_power_usage = 100
|
||||
circuit = /obj/item/weapon/circuitboard/machine/autolathe
|
||||
|
||||
var/operating = FALSE
|
||||
anchored = TRUE
|
||||
var/list/L = list()
|
||||
var/list/LL = list()
|
||||
var/hacked = FALSE
|
||||
@@ -18,9 +22,7 @@
|
||||
var/hack_wire
|
||||
var/disable_wire
|
||||
var/shock_wire
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 10
|
||||
active_power_usage = 100
|
||||
|
||||
var/busy = FALSE
|
||||
var/prod_coeff = 1
|
||||
|
||||
@@ -45,30 +47,16 @@
|
||||
"Imported"
|
||||
)
|
||||
|
||||
/obj/machinery/autolathe/New()
|
||||
..()
|
||||
/obj/machinery/autolathe/Initialize()
|
||||
materials = new /datum/material_container(src, list(MAT_METAL, MAT_GLASS))
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/autolathe(null)
|
||||
B.apply_default_parts(src)
|
||||
|
||||
wires = new /datum/wires/autolathe(src)
|
||||
files = new /datum/research/autolathe(src)
|
||||
matching_designs = list()
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/autolathe
|
||||
name = "Autolathe (Machine Board)"
|
||||
build_path = /obj/machinery/autolathe
|
||||
origin_tech = "engineering=2;programming=2"
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/matter_bin = 3,
|
||||
/obj/item/weapon/stock_parts/manipulator = 1,
|
||||
/obj/item/weapon/stock_parts/console_screen = 1)
|
||||
return ..()
|
||||
|
||||
/obj/machinery/autolathe/Destroy()
|
||||
qdel(wires)
|
||||
wires = null
|
||||
qdel(materials)
|
||||
materials = null
|
||||
QDEL_NULL(wires)
|
||||
QDEL_NULL(materials)
|
||||
return ..()
|
||||
|
||||
/obj/machinery/autolathe/interact(mob/user)
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
var/radio_channel = "Common"
|
||||
var/minimum_time_between_warnings = 400
|
||||
|
||||
/obj/machinery/computer/bank_machine/Initialize(mapload)
|
||||
..()
|
||||
/obj/machinery/computer/bank_machine/Initialize()
|
||||
. = ..()
|
||||
radio = new(src)
|
||||
radio.subspace_transmission = TRUE
|
||||
radio.canhear_range = 0
|
||||
|
||||
@@ -17,6 +17,8 @@
|
||||
icon_state = "pod_0"
|
||||
req_access = list(ACCESS_CLONING) //FOR PREMATURE UNLOCKING.
|
||||
verb_say = "states"
|
||||
circuit = /obj/item/weapon/circuitboard/machine/clonepod
|
||||
|
||||
var/heal_level //The clone is released once its health reaches this level.
|
||||
var/obj/machinery/computer/cloning/connected = null //So we remember the connected clone machine.
|
||||
var/mess = FALSE //Need to clean out it if it's full of exploded clone.
|
||||
@@ -46,8 +48,6 @@
|
||||
|
||||
/obj/machinery/clonepod/Initialize()
|
||||
. = ..()
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/clonepod(null)
|
||||
B.apply_default_parts(src)
|
||||
|
||||
countdown = new(src)
|
||||
|
||||
@@ -59,16 +59,11 @@
|
||||
|
||||
/obj/machinery/clonepod/Destroy()
|
||||
go_out()
|
||||
qdel(radio)
|
||||
radio = null
|
||||
qdel(countdown)
|
||||
countdown = null
|
||||
QDEL_NULL(radio)
|
||||
QDEL_NULL(countdown)
|
||||
if(connected)
|
||||
connected.DetachCloner(src)
|
||||
for(var/i in unattached_flesh)
|
||||
qdel(i)
|
||||
LAZYCLEARLIST(unattached_flesh)
|
||||
unattached_flesh = null
|
||||
QDEL_LIST(unattached_flesh)
|
||||
. = ..()
|
||||
|
||||
/obj/machinery/clonepod/RefreshParts()
|
||||
@@ -84,16 +79,6 @@
|
||||
if(heal_level > 100)
|
||||
heal_level = 100
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/clonepod
|
||||
name = "Clone Pod (Machine Board)"
|
||||
build_path = /obj/machinery/clonepod
|
||||
origin_tech = "programming=2;biotech=2"
|
||||
req_components = list(
|
||||
/obj/item/stack/cable_coil = 2,
|
||||
/obj/item/weapon/stock_parts/scanning_module = 2,
|
||||
/obj/item/weapon/stock_parts/manipulator = 2,
|
||||
/obj/item/stack/sheet/glass = 1)
|
||||
|
||||
//The return of data disks?? Just for transferring between genetics machine/cloning machine.
|
||||
//TO-DO: Make the genetics machine accept them.
|
||||
/obj/item/weapon/disk/data
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
icon_screen = "crew"
|
||||
icon_keyboard = "med_key"
|
||||
circuit = /obj/item/weapon/circuitboard/computer/operating
|
||||
var/mob/living/carbon/human/patient = null
|
||||
var/obj/structure/table/optable/table = null
|
||||
var/mob/living/carbon/human/patient
|
||||
var/obj/structure/table/optable/table
|
||||
|
||||
light_color = LIGHT_COLOR_BLUE
|
||||
|
||||
|
||||
@@ -1,142 +1,129 @@
|
||||
/obj/machinery/computer
|
||||
name = "computer"
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "computer"
|
||||
density = TRUE
|
||||
anchored = TRUE
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 300
|
||||
active_power_usage = 300
|
||||
max_integrity = 200
|
||||
integrity_failure = 100
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 40, acid = 20)
|
||||
var/obj/item/weapon/circuitboard/computer/circuit = null // if circuit==null, computer can't disassembly
|
||||
var/processing = FALSE
|
||||
var/brightness_on = 2
|
||||
var/icon_keyboard = "generic_key"
|
||||
var/icon_screen = "generic"
|
||||
var/clockwork = FALSE
|
||||
|
||||
/obj/machinery/computer/New(location, obj/item/weapon/circuitboard/C)
|
||||
..(location)
|
||||
if(C && istype(C))
|
||||
circuit = C
|
||||
//Some machines, oldcode arcades mostly, new themselves, so circuit
|
||||
//can already be an instance of a type and trying to new that will
|
||||
//cause a runtime
|
||||
else if(ispath(circuit))
|
||||
circuit = new circuit(null)
|
||||
|
||||
/obj/machinery/computer/Destroy()
|
||||
if(circuit)
|
||||
qdel(circuit)
|
||||
circuit = null
|
||||
return ..()
|
||||
|
||||
/obj/machinery/computer/Initialize()
|
||||
. = ..()
|
||||
power_change()
|
||||
|
||||
/obj/machinery/computer/process()
|
||||
if(stat & (NOPOWER|BROKEN))
|
||||
return 0
|
||||
return 1
|
||||
|
||||
/obj/machinery/computer/ratvar_act()
|
||||
if(!clockwork)
|
||||
clockwork = TRUE
|
||||
icon_screen = "ratvar[rand(1, 4)]"
|
||||
icon_keyboard = "ratvar_key[rand(1, 6)]"
|
||||
icon_state = "ratvarcomputer[rand(1, 4)]"
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/computer/narsie_act()
|
||||
if(clockwork && clockwork != initial(clockwork)) //if it's clockwork but isn't normally clockwork
|
||||
clockwork = FALSE
|
||||
icon_screen = initial(icon_screen)
|
||||
icon_keyboard = initial(icon_keyboard)
|
||||
icon_state = initial(icon_state)
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/computer/update_icon()
|
||||
cut_overlays()
|
||||
if(stat & NOPOWER)
|
||||
add_overlay("[icon_keyboard]_off")
|
||||
return
|
||||
add_overlay(icon_keyboard)
|
||||
if(stat & BROKEN)
|
||||
add_overlay("[icon_state]_broken")
|
||||
else
|
||||
add_overlay(icon_screen)
|
||||
|
||||
/obj/machinery/computer/power_change()
|
||||
..()
|
||||
if(stat & NOPOWER)
|
||||
set_light(0)
|
||||
else
|
||||
set_light(brightness_on)
|
||||
update_icon()
|
||||
return
|
||||
|
||||
/obj/machinery/computer/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/weapon/screwdriver) && circuit && !(flags&NODECONSTRUCT))
|
||||
playsound(src.loc, I.usesound, 50, 1)
|
||||
to_chat(user, "<span class='notice'> You start to disconnect the monitor...</span>")
|
||||
if(do_after(user, 20*I.toolspeed, target = src))
|
||||
deconstruct(TRUE, user)
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/machinery/computer/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0)
|
||||
switch(damage_type)
|
||||
if(BRUTE)
|
||||
if(stat & BROKEN)
|
||||
playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1)
|
||||
else
|
||||
playsound(src.loc, 'sound/effects/glasshit.ogg', 75, 1)
|
||||
if(BURN)
|
||||
playsound(src.loc, 'sound/items/welder.ogg', 100, 1)
|
||||
|
||||
/obj/machinery/computer/obj_break(damage_flag)
|
||||
if(circuit && !(flags & NODECONSTRUCT)) //no circuit, no breaking
|
||||
if(!(stat & BROKEN))
|
||||
playsound(loc, 'sound/effects/glassbr3.ogg', 100, 1)
|
||||
stat |= BROKEN
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/computer/emp_act(severity)
|
||||
switch(severity)
|
||||
if(1)
|
||||
if(prob(50))
|
||||
obj_break("energy")
|
||||
if(2)
|
||||
if(prob(10))
|
||||
obj_break("energy")
|
||||
..()
|
||||
|
||||
/obj/machinery/computer/deconstruct(disassembled = TRUE, mob/user)
|
||||
on_deconstruction()
|
||||
if(!(flags & NODECONSTRUCT))
|
||||
if(circuit) //no circuit, no computer frame
|
||||
var/obj/structure/frame/computer/A = new /obj/structure/frame/computer(src.loc)
|
||||
A.circuit = circuit
|
||||
A.anchored = TRUE
|
||||
if(stat & BROKEN)
|
||||
if(user)
|
||||
to_chat(user, "<span class='notice'>The broken glass falls out.</span>")
|
||||
else
|
||||
playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1)
|
||||
new /obj/item/weapon/shard(src.loc)
|
||||
new /obj/item/weapon/shard(src.loc)
|
||||
A.state = 3
|
||||
A.icon_state = "3"
|
||||
else
|
||||
if(user)
|
||||
to_chat(user, "<span class='notice'>You disconnect the monitor.</span>")
|
||||
A.state = 4
|
||||
A.icon_state = "4"
|
||||
circuit = null
|
||||
for(var/obj/C in src)
|
||||
C.forceMove(loc)
|
||||
|
||||
qdel(src)
|
||||
/obj/machinery/computer
|
||||
name = "computer"
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "computer"
|
||||
density = TRUE
|
||||
anchored = TRUE
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 300
|
||||
active_power_usage = 300
|
||||
max_integrity = 200
|
||||
integrity_failure = 100
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 40, acid = 20)
|
||||
var/processing = FALSE
|
||||
var/brightness_on = 2
|
||||
var/icon_keyboard = "generic_key"
|
||||
var/icon_screen = "generic"
|
||||
var/clockwork = FALSE
|
||||
|
||||
/obj/machinery/computer/Initialize(mapload, obj/item/weapon/circuitboard/C)
|
||||
. = ..()
|
||||
power_change()
|
||||
|
||||
/obj/machinery/computer/Destroy()
|
||||
QDEL_NULL(circuit)
|
||||
return ..()
|
||||
|
||||
/obj/machinery/computer/process()
|
||||
if(stat & (NOPOWER|BROKEN))
|
||||
return 0
|
||||
return 1
|
||||
|
||||
/obj/machinery/computer/ratvar_act()
|
||||
if(!clockwork)
|
||||
clockwork = TRUE
|
||||
icon_screen = "ratvar[rand(1, 4)]"
|
||||
icon_keyboard = "ratvar_key[rand(1, 6)]"
|
||||
icon_state = "ratvarcomputer[rand(1, 4)]"
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/computer/narsie_act()
|
||||
if(clockwork && clockwork != initial(clockwork)) //if it's clockwork but isn't normally clockwork
|
||||
clockwork = FALSE
|
||||
icon_screen = initial(icon_screen)
|
||||
icon_keyboard = initial(icon_keyboard)
|
||||
icon_state = initial(icon_state)
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/computer/update_icon()
|
||||
cut_overlays()
|
||||
if(stat & NOPOWER)
|
||||
add_overlay("[icon_keyboard]_off")
|
||||
return
|
||||
add_overlay(icon_keyboard)
|
||||
if(stat & BROKEN)
|
||||
add_overlay("[icon_state]_broken")
|
||||
else
|
||||
add_overlay(icon_screen)
|
||||
|
||||
/obj/machinery/computer/power_change()
|
||||
..()
|
||||
if(stat & NOPOWER)
|
||||
set_light(0)
|
||||
else
|
||||
set_light(brightness_on)
|
||||
update_icon()
|
||||
return
|
||||
|
||||
/obj/machinery/computer/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/weapon/screwdriver) && circuit && !(flags&NODECONSTRUCT))
|
||||
playsound(src.loc, I.usesound, 50, 1)
|
||||
to_chat(user, "<span class='notice'> You start to disconnect the monitor...</span>")
|
||||
if(do_after(user, 20*I.toolspeed, target = src))
|
||||
deconstruct(TRUE, user)
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/machinery/computer/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0)
|
||||
switch(damage_type)
|
||||
if(BRUTE)
|
||||
if(stat & BROKEN)
|
||||
playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1)
|
||||
else
|
||||
playsound(src.loc, 'sound/effects/glasshit.ogg', 75, 1)
|
||||
if(BURN)
|
||||
playsound(src.loc, 'sound/items/welder.ogg', 100, 1)
|
||||
|
||||
/obj/machinery/computer/obj_break(damage_flag)
|
||||
if(circuit && !(flags & NODECONSTRUCT)) //no circuit, no breaking
|
||||
if(!(stat & BROKEN))
|
||||
playsound(loc, 'sound/effects/glassbr3.ogg', 100, 1)
|
||||
stat |= BROKEN
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/computer/emp_act(severity)
|
||||
switch(severity)
|
||||
if(1)
|
||||
if(prob(50))
|
||||
obj_break("energy")
|
||||
if(2)
|
||||
if(prob(10))
|
||||
obj_break("energy")
|
||||
..()
|
||||
|
||||
/obj/machinery/computer/deconstruct(disassembled = TRUE, mob/user)
|
||||
on_deconstruction()
|
||||
if(!(flags & NODECONSTRUCT))
|
||||
if(circuit) //no circuit, no computer frame
|
||||
var/obj/structure/frame/computer/A = new /obj/structure/frame/computer(src.loc)
|
||||
A.circuit = circuit
|
||||
A.anchored = TRUE
|
||||
if(stat & BROKEN)
|
||||
if(user)
|
||||
to_chat(user, "<span class='notice'>The broken glass falls out.</span>")
|
||||
else
|
||||
playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1)
|
||||
new /obj/item/weapon/shard(src.loc)
|
||||
new /obj/item/weapon/shard(src.loc)
|
||||
A.state = 3
|
||||
A.icon_state = "3"
|
||||
else
|
||||
if(user)
|
||||
to_chat(user, "<span class='notice'>You disconnect the monitor.</span>")
|
||||
A.state = 4
|
||||
A.icon_state = "4"
|
||||
circuit = null
|
||||
for(var/obj/C in src)
|
||||
C.forceMove(loc)
|
||||
|
||||
qdel(src)
|
||||
@@ -18,7 +18,7 @@
|
||||
/obj/machinery/computer/apc_control/Initialize()
|
||||
apcs = list() //To avoid BYOND making the list run through a ton of procs
|
||||
filters = list("Name" = null, "Charge Above" = null, "Charge Below" = null, "Responsive" = null)
|
||||
..()
|
||||
return ..()
|
||||
|
||||
/obj/machinery/computer/apc_control/process()
|
||||
apcs = list() //Clear the list every tick
|
||||
|
||||
@@ -51,8 +51,8 @@
|
||||
/obj/machinery/computer/arcade/proc/Reset()
|
||||
return
|
||||
|
||||
/obj/machinery/computer/arcade/New()
|
||||
..()
|
||||
/obj/machinery/computer/arcade/Initialize()
|
||||
. = ..()
|
||||
// If it's a generic arcade machine, pick a random arcade
|
||||
// circuit board for it and make the new machine
|
||||
if(!circuit)
|
||||
@@ -60,12 +60,9 @@
|
||||
var/obj/item/weapon/circuitboard/CB = new choice()
|
||||
new CB.build_path(loc, CB)
|
||||
qdel(src)
|
||||
|
||||
/obj/machinery/computer/arcade/Initialize()
|
||||
. = ..()
|
||||
return
|
||||
Reset()
|
||||
|
||||
|
||||
#define PULSE_MEDAL "Jackpot"
|
||||
|
||||
/obj/machinery/computer/arcade/proc/prizevend()
|
||||
|
||||
@@ -142,320 +142,4 @@
|
||||
new /obj/item/weapon/shard(loc)
|
||||
if(state >= 3)
|
||||
new /obj/item/stack/cable_coil(loc , 5)
|
||||
..()
|
||||
|
||||
|
||||
/obj/item/weapon/circuitboard
|
||||
name = "circuit board"
|
||||
icon = 'icons/obj/module.dmi'
|
||||
icon_state = "id_mod"
|
||||
item_state = "electronic"
|
||||
lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
|
||||
origin_tech = "programming=2"
|
||||
materials = list(MAT_GLASS=1000)
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
var/build_path = null
|
||||
|
||||
/obj/item/weapon/circuitboard/computer/turbine_computer
|
||||
name = "Turbine Computer (Computer Board)"
|
||||
build_path = /obj/machinery/computer/turbine_computer
|
||||
origin_tech = "programming=4;engineering=4;powerstorage=4"
|
||||
/obj/item/weapon/circuitboard/computer/launchpad_console
|
||||
name = "Launchpad Control Console (Computer Board)"
|
||||
build_path = /obj/machinery/computer/launchpad
|
||||
origin_tech = "programming=3;bluespace=3;plasmatech=2"
|
||||
/obj/item/weapon/circuitboard/computer/message_monitor
|
||||
name = "Message Monitor (Computer Board)"
|
||||
build_path = /obj/machinery/computer/message_monitor
|
||||
origin_tech = "programming=2"
|
||||
/obj/item/weapon/circuitboard/computer/security
|
||||
name = "Security Cameras (Computer Board)"
|
||||
build_path = /obj/machinery/computer/security
|
||||
origin_tech = "programming=2;combat=2"
|
||||
/obj/item/weapon/circuitboard/computer/xenobiology
|
||||
name = "circuit board (Xenobiology Console)"
|
||||
build_path = /obj/machinery/computer/camera_advanced/xenobio
|
||||
origin_tech = "programming=3;biotech=3"
|
||||
/obj/item/weapon/circuitboard/computer/base_construction
|
||||
name = "circuit board (Aux Mining Base Construction Console)"
|
||||
build_path = /obj/machinery/computer/camera_advanced/base_construction
|
||||
origin_tech = "programming=3;engineering=3"
|
||||
/obj/item/weapon/circuitboard/computer/aiupload
|
||||
name = "AI Upload (Computer Board)"
|
||||
build_path = /obj/machinery/computer/upload/ai
|
||||
origin_tech = "programming=4;engineering=4"
|
||||
/obj/item/weapon/circuitboard/computer/borgupload
|
||||
name = "Cyborg Upload (Computer Board)"
|
||||
build_path = /obj/machinery/computer/upload/borg
|
||||
origin_tech = "programming=4;engineering=4"
|
||||
/obj/item/weapon/circuitboard/computer/med_data
|
||||
name = "Medical Records Console (Computer Board)"
|
||||
build_path = /obj/machinery/computer/med_data
|
||||
origin_tech = "programming=2;biotech=2"
|
||||
/obj/item/weapon/circuitboard/computer/pandemic
|
||||
name = "PanD.E.M.I.C. 2200 (Computer Board)"
|
||||
build_path = /obj/machinery/computer/pandemic
|
||||
origin_tech = "programming=2;biotech=2"
|
||||
/obj/item/weapon/circuitboard/computer/scan_consolenew
|
||||
name = "DNA Machine (Computer Board)"
|
||||
build_path = /obj/machinery/computer/scan_consolenew
|
||||
origin_tech = "programming=2;biotech=2"
|
||||
/obj/item/weapon/circuitboard/computer/communications
|
||||
name = "Communications (Computer Board)"
|
||||
build_path = /obj/machinery/computer/communications
|
||||
origin_tech = "programming=3;magnets=3"
|
||||
var/lastTimeUsed = 0
|
||||
|
||||
/obj/item/weapon/circuitboard/computer/card
|
||||
name = "ID Console (Computer Board)"
|
||||
build_path = /obj/machinery/computer/card
|
||||
origin_tech = "programming=3"
|
||||
/obj/item/weapon/circuitboard/computer/card/centcom
|
||||
name = "CentCom ID Console (Computer Board)"
|
||||
build_path = /obj/machinery/computer/card/centcom
|
||||
|
||||
/obj/item/weapon/circuitboard/computer/card/minor
|
||||
name = "Department Management Console (Computer Board)"
|
||||
build_path = /obj/machinery/computer/card/minor
|
||||
var/target_dept = 1
|
||||
var/list/dept_list = list("General","Security","Medical","Science","Engineering")
|
||||
|
||||
/obj/item/weapon/circuitboard/computer/card/minor/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/weapon/screwdriver))
|
||||
target_dept = (target_dept == dept_list.len) ? 1 : (target_dept + 1)
|
||||
to_chat(user, "<span class='notice'>You set the board to \"[dept_list[target_dept]]\".</span>")
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/circuitboard/computer/card/minor/examine(user)
|
||||
..()
|
||||
to_chat(user, "Currently set to \"[dept_list[target_dept]]\".")
|
||||
|
||||
//obj/item/weapon/circuitboard/computer/shield
|
||||
// name = "Shield Control (Computer Board)"
|
||||
// build_path = /obj/machinery/computer/stationshield
|
||||
/obj/item/weapon/circuitboard/computer/teleporter
|
||||
name = "Teleporter (Computer Board)"
|
||||
build_path = /obj/machinery/computer/teleporter
|
||||
origin_tech = "programming=3;bluespace=3;plasmatech=3"
|
||||
/obj/item/weapon/circuitboard/computer/secure_data
|
||||
name = "Security Records Console (Computer Board)"
|
||||
build_path = /obj/machinery/computer/secure_data
|
||||
origin_tech = "programming=2;combat=2"
|
||||
/obj/item/weapon/circuitboard/computer/stationalert
|
||||
name = "Station Alerts (Computer Board)"
|
||||
build_path = /obj/machinery/computer/station_alert
|
||||
/*/obj/item/weapon/circuitboard/computer/atmospheresiphonswitch
|
||||
name = "Atmosphere siphon control (Computer Board)"
|
||||
build_path = /obj/machinery/computer/atmosphere/siphonswitch*/
|
||||
/obj/item/weapon/circuitboard/computer/atmos_control
|
||||
name = "Atmospheric Monitor (Computer Board)"
|
||||
build_path = /obj/machinery/computer/atmos_control
|
||||
/obj/item/weapon/circuitboard/computer/atmos_control/tank
|
||||
name = "Tank Control (Computer Board)"
|
||||
build_path = /obj/machinery/computer/atmos_control/tank
|
||||
origin_tech = "programming=2;engineering=3;materials=2"
|
||||
/obj/item/weapon/circuitboard/computer/atmos_alert
|
||||
name = "Atmospheric Alert (Computer Board)"
|
||||
build_path = /obj/machinery/computer/atmos_alert
|
||||
/obj/item/weapon/circuitboard/computer/pod
|
||||
name = "Massdriver control (Computer Board)"
|
||||
build_path = /obj/machinery/computer/pod
|
||||
/obj/item/weapon/circuitboard/computer/robotics
|
||||
name = "Robotics Control (Computer Board)"
|
||||
build_path = /obj/machinery/computer/robotics
|
||||
origin_tech = "programming=3"
|
||||
/obj/item/weapon/circuitboard/computer/cloning
|
||||
name = "Cloning (Computer Board)"
|
||||
build_path = /obj/machinery/computer/cloning
|
||||
origin_tech = "programming=2;biotech=2"
|
||||
/obj/item/weapon/circuitboard/computer/arcade/battle
|
||||
name = "Arcade Battle (Computer Board)"
|
||||
build_path = /obj/machinery/computer/arcade/battle
|
||||
origin_tech = "programming=1"
|
||||
/obj/item/weapon/circuitboard/computer/arcade/orion_trail
|
||||
name = "Orion Trail (Computer Board)"
|
||||
build_path = /obj/machinery/computer/arcade/orion_trail
|
||||
origin_tech = "programming=1"
|
||||
/obj/item/weapon/circuitboard/computer/turbine_control
|
||||
name = "Turbine control (Computer Board)"
|
||||
build_path = /obj/machinery/computer/turbine_computer
|
||||
/obj/item/weapon/circuitboard/computer/solar_control
|
||||
name = "Solar Control (Computer Board)" //name fixed 250810
|
||||
build_path = /obj/machinery/power/solar_control
|
||||
origin_tech = "programming=2;powerstorage=2"
|
||||
/obj/item/weapon/circuitboard/computer/powermonitor
|
||||
name = "Power Monitor (Computer Board)" //name fixed 250810
|
||||
build_path = /obj/machinery/computer/monitor
|
||||
origin_tech = "programming=2;powerstorage=2"
|
||||
/obj/item/weapon/circuitboard/computer/olddoor
|
||||
name = "DoorMex (Computer Board)"
|
||||
build_path = /obj/machinery/computer/pod/old
|
||||
/obj/item/weapon/circuitboard/computer/syndicatedoor
|
||||
name = "ProComp Executive (Computer Board)"
|
||||
build_path = /obj/machinery/computer/pod/old/syndicate
|
||||
/obj/item/weapon/circuitboard/computer/swfdoor
|
||||
name = "Magix (Computer Board)"
|
||||
build_path = /obj/machinery/computer/pod/old/swf
|
||||
/obj/item/weapon/circuitboard/computer/prisoner
|
||||
name = "Prisoner Management Console (Computer Board)"
|
||||
build_path = /obj/machinery/computer/prisoner
|
||||
/obj/item/weapon/circuitboard/computer/gulag_teleporter_console
|
||||
name = "Labor Camp teleporter console (Computer Board)"
|
||||
build_path = /obj/machinery/computer/gulag_teleporter_computer
|
||||
|
||||
/obj/item/weapon/circuitboard/computer/rdconsole
|
||||
name = "R&D Console (Computer Board)"
|
||||
build_path = /obj/machinery/computer/rdconsole/core
|
||||
|
||||
/obj/item/weapon/circuitboard/computer/rdconsole/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/weapon/screwdriver))
|
||||
if(build_path == /obj/machinery/computer/rdconsole/core)
|
||||
name = "R&D Console - Robotics (Computer Board)"
|
||||
build_path = /obj/machinery/computer/rdconsole/robotics
|
||||
to_chat(user, "<span class='notice'>Access protocols successfully updated.</span>")
|
||||
else
|
||||
name = "R&D Console (Computer Board)"
|
||||
build_path = /obj/machinery/computer/rdconsole/core
|
||||
to_chat(user, "<span class='notice'>Defaulting access protocols.</span>")
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/circuitboard/computer/mecha_control
|
||||
name = "Exosuit Control Console (Computer Board)"
|
||||
build_path = /obj/machinery/computer/mecha
|
||||
/obj/item/weapon/circuitboard/computer/rdservercontrol
|
||||
name = "R&D Server Control (Computer Board)"
|
||||
build_path = /obj/machinery/computer/rdservercontrol
|
||||
/obj/item/weapon/circuitboard/computer/crew
|
||||
name = "Crew Monitoring Console (Computer Board)"
|
||||
build_path = /obj/machinery/computer/crew
|
||||
origin_tech = "programming=2;biotech=2"
|
||||
/obj/item/weapon/circuitboard/computer/mech_bay_power_console
|
||||
name = "Mech Bay Power Control Console (Computer Board)"
|
||||
build_path = /obj/machinery/computer/mech_bay_power_console
|
||||
origin_tech = "programming=3;powerstorage=3"
|
||||
|
||||
/obj/item/weapon/circuitboard/computer/cargo
|
||||
name = "Supply Console (Computer Board)"
|
||||
build_path = /obj/machinery/computer/cargo
|
||||
origin_tech = "programming=3"
|
||||
var/contraband = FALSE
|
||||
var/emagged = FALSE
|
||||
|
||||
/obj/item/weapon/circuitboard/computer/cargo/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/device/multitool))
|
||||
if(!emagged)
|
||||
contraband = !contraband
|
||||
to_chat(user, "<span class='notice'>Receiver spectrum set to [contraband ? "Broad" : "Standard"].</span>")
|
||||
else
|
||||
to_chat(user, "<span class='notice'>The spectrum chip is unresponsive.</span>")
|
||||
else if(istype(I, /obj/item/weapon/card/emag))
|
||||
if(!emagged)
|
||||
contraband = TRUE
|
||||
emagged = TRUE
|
||||
to_chat(user, "<span class='notice'>You adjust [src]'s routing and receiver spectrum, unlocking special supplies and contraband.</span>")
|
||||
else
|
||||
return ..()
|
||||
|
||||
|
||||
/obj/item/weapon/circuitboard/computer/cargo/request
|
||||
name = "Supply Request Console (Computer Board)"
|
||||
build_path = /obj/machinery/computer/cargo/request
|
||||
/obj/item/weapon/circuitboard/computer/stockexchange
|
||||
name = "circuit board (Stock Exchange Console)"
|
||||
build_path = /obj/machinery/computer/stockexchange
|
||||
origin_tech = "programming=3"
|
||||
|
||||
/obj/item/weapon/circuitboard/computer/operating
|
||||
name = "Operating Computer (Computer Board)"
|
||||
build_path = /obj/machinery/computer/operating
|
||||
origin_tech = "programming=2;biotech=3"
|
||||
/obj/item/weapon/circuitboard/computer/mining
|
||||
name = "Outpost Status Display (Computer Board)"
|
||||
build_path = /obj/machinery/computer/security/mining
|
||||
/obj/item/weapon/circuitboard/computer/comm_monitor
|
||||
name = "Telecommunications Monitor (Computer Board)"
|
||||
build_path = /obj/machinery/computer/telecomms/monitor
|
||||
origin_tech = "programming=3;magnets=3;bluespace=2"
|
||||
/obj/item/weapon/circuitboard/computer/comm_server
|
||||
name = "Telecommunications Server Monitor (Computer Board)"
|
||||
build_path = /obj/machinery/computer/telecomms/server
|
||||
origin_tech = "programming=3;magnets=3;bluespace=2"
|
||||
|
||||
/obj/item/weapon/circuitboard/computer/shuttle
|
||||
name = "Shuttle (Computer Board)"
|
||||
build_path = /obj/machinery/computer/shuttle
|
||||
var/shuttleId
|
||||
var/possible_destinations = ""
|
||||
|
||||
/obj/item/weapon/circuitboard/computer/shuttle/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/device/multitool))
|
||||
var/chosen_id = round(input(usr, "Choose an ID number (-1 for reset):", "Input an Integer", null) as num|null)
|
||||
if(chosen_id >= 0)
|
||||
shuttleId = chosen_id
|
||||
else
|
||||
shuttleId = initial(shuttleId)
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/circuitboard/computer/labor_shuttle
|
||||
name = "Labor Shuttle (Computer Board)"
|
||||
build_path = /obj/machinery/computer/shuttle/labor
|
||||
/obj/item/weapon/circuitboard/computer/labor_shuttle/one_way
|
||||
name = "Prisoner Shuttle Console (Computer Board)"
|
||||
build_path = /obj/machinery/computer/shuttle/labor/one_way
|
||||
/obj/item/weapon/circuitboard/computer/ferry
|
||||
name = "Transport Ferry (Computer Board)"
|
||||
build_path = /obj/machinery/computer/shuttle/ferry
|
||||
/obj/item/weapon/circuitboard/computer/ferry/request
|
||||
name = "Transport Ferry Console (Computer Board)"
|
||||
build_path = /obj/machinery/computer/shuttle/ferry/request
|
||||
/obj/item/weapon/circuitboard/computer/mining_shuttle
|
||||
name = "Mining Shuttle (Computer Board)"
|
||||
build_path = /obj/machinery/computer/shuttle/mining
|
||||
/obj/item/weapon/circuitboard/computer/white_ship
|
||||
name = "White Ship (Computer Board)"
|
||||
build_path = /obj/machinery/computer/shuttle/white_ship
|
||||
/obj/item/weapon/circuitboard/computer/auxillary_base
|
||||
name = "Auxillary Base Management Console (Computer Board)"
|
||||
build_path = /obj/machinery/computer/auxillary_base
|
||||
/obj/item/weapon/circuitboard/computer/holodeck// Not going to let people get this, but it's just here for future
|
||||
name = "Holodeck Control (Computer Board)"
|
||||
build_path = /obj/machinery/computer/holodeck
|
||||
origin_tech = "programming=4"
|
||||
/obj/item/weapon/circuitboard/computer/aifixer
|
||||
name = "AI Integrity Restorer (Computer Board)"
|
||||
build_path = /obj/machinery/computer/aifixer
|
||||
origin_tech = "programming=2;biotech=2"
|
||||
/*/obj/item/weapon/circuitboard/computer/prison_shuttle
|
||||
name = "Prison Shuttle (Computer Board)"
|
||||
build_path = /obj/machinery/computer/prison_shuttle*/
|
||||
/obj/item/weapon/circuitboard/computer/slot_machine
|
||||
name = "Slot Machine (Computer Board)"
|
||||
build_path = /obj/machinery/computer/slot_machine
|
||||
origin_tech = "programming=1"
|
||||
|
||||
/obj/item/weapon/circuitboard/computer/libraryconsole
|
||||
name = "Library Visitor Console (Computer Board)"
|
||||
build_path = /obj/machinery/computer/libraryconsole
|
||||
origin_tech = "programming=1"
|
||||
|
||||
/obj/item/weapon/circuitboard/computer/libraryconsole/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/weapon/screwdriver))
|
||||
if(build_path == /obj/machinery/computer/libraryconsole/bookmanagement)
|
||||
name = "Library Visitor Console (Computer Board)"
|
||||
build_path = /obj/machinery/computer/libraryconsole
|
||||
to_chat(user, "<span class='notice'>Defaulting access protocols.</span>")
|
||||
else
|
||||
name = "Book Inventory Management Console (Computer Board)"
|
||||
build_path = /obj/machinery/computer/libraryconsole/bookmanagement
|
||||
to_chat(user, "<span class='notice'>Access protocols successfully updated.</span>")
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/circuitboard/computer/apc_control
|
||||
name = "\improper Power Flow Control Console (Computer Board)"
|
||||
build_path = /obj/machinery/computer/apc_control
|
||||
origin_tech = "programming=3;engineering=3;powerstorage=2"
|
||||
..()
|
||||
@@ -572,8 +572,8 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0)
|
||||
icon_screen = "idminor"
|
||||
circuit = /obj/item/weapon/circuitboard/computer/card/minor
|
||||
|
||||
/obj/machinery/computer/card/minor/New()
|
||||
..()
|
||||
/obj/machinery/computer/card/minor/Initialize()
|
||||
. = ..()
|
||||
var/obj/item/weapon/circuitboard/computer/card/minor/typed_circuit = circuit
|
||||
if(target_dept)
|
||||
typed_circuit.target_dept = target_dept
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
light_color = LIGHT_COLOR_BLUE
|
||||
|
||||
/obj/machinery/computer/cloning/Initialize()
|
||||
..()
|
||||
. = ..()
|
||||
updatemodules(TRUE)
|
||||
|
||||
/obj/machinery/computer/cloning/Destroy()
|
||||
|
||||
@@ -41,9 +41,9 @@
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/computer/communications/New()
|
||||
/obj/machinery/computer/communications/Initialize()
|
||||
. = ..()
|
||||
GLOB.shuttle_caller_list += src
|
||||
..()
|
||||
|
||||
/obj/machinery/computer/communications/process()
|
||||
if(..())
|
||||
|
||||
@@ -53,17 +53,16 @@
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/machinery/computer/scan_consolenew/New()
|
||||
/obj/machinery/computer/scan_consolenew/Initialize()
|
||||
..()
|
||||
return INITIALIZE_HINT_LATELOAD
|
||||
|
||||
spawn(5)
|
||||
for(dir in list(NORTH,EAST,SOUTH,WEST))
|
||||
connected = locate(/obj/machinery/dna_scannernew, get_step(src, dir))
|
||||
if(!isnull(connected))
|
||||
break
|
||||
injectorready = world.time + INJECTOR_TIMEOUT
|
||||
return
|
||||
return
|
||||
/obj/machinery/computer/scan_consolenew/LateInitialize()
|
||||
for(dir in list(NORTH,EAST,SOUTH,WEST))
|
||||
connected = locate(/obj/machinery/dna_scannernew, get_step(src, dir))
|
||||
if(!isnull(connected))
|
||||
break
|
||||
injectorready = world.time + INJECTOR_TIMEOUT
|
||||
|
||||
/obj/machinery/computer/scan_consolenew/attack_hand(mob/user)
|
||||
if(..())
|
||||
|
||||
@@ -15,9 +15,12 @@
|
||||
|
||||
light_color = LIGHT_COLOR_RED
|
||||
|
||||
/obj/machinery/computer/gulag_teleporter_computer/New()
|
||||
/obj/machinery/computer/gulag_teleporter_computer/Initialize()
|
||||
..()
|
||||
addtimer(CALLBACK(src, .proc/scan_machinery), 5)
|
||||
return INITIALIZE_HINT_LATELOAD
|
||||
|
||||
/obj/machinery/computer/gulag_teleporter_computer/LateInitialize()
|
||||
scan_machinery()
|
||||
|
||||
/obj/machinery/computer/gulag_teleporter_computer/Destroy()
|
||||
if(id)
|
||||
|
||||
@@ -5,7 +5,3 @@
|
||||
shuttleId = "pod1"
|
||||
possible_destinations = "monastery_shuttle_asteroid;monastery_shuttle_station"
|
||||
no_destination_swap = TRUE
|
||||
|
||||
/obj/item/weapon/circuitboard/computer/shuttle/monastery_shuttle
|
||||
name = "Monastery Shuttle (Computer Board)"
|
||||
build_path = /obj/machinery/computer/shuttle/monastery_shuttle
|
||||
|
||||
217
code/game/machinery/computer/teleporter.dm
Normal file
217
code/game/machinery/computer/teleporter.dm
Normal 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()
|
||||
@@ -259,52 +259,4 @@
|
||||
for(var/X in components)
|
||||
var/obj/item/I = X
|
||||
I.forceMove(loc)
|
||||
..()
|
||||
|
||||
|
||||
|
||||
//Machine Frame Circuit Boards
|
||||
/*Common Parts: Parts List: Ignitor, Timer, Infra-red laser, Infra-red sensor, t_scanner, Capacitor, Valve, sensor unit,
|
||||
micro-manipulator, console screen, beaker, Microlaser, matter bin, power cells.
|
||||
*/
|
||||
|
||||
/obj/item/weapon/circuitboard/machine
|
||||
var/list/req_components = null
|
||||
// Components required by the machine.
|
||||
// Example: list(/obj/item/weapon/stock_parts/matter_bin = 5)
|
||||
var/list/def_components = null
|
||||
// Default replacements for req_components, to be used in apply_default_parts instead of req_components types
|
||||
// Example: list(/obj/item/weapon/stock_parts/matter_bin = /obj/item/weapon/stock_parts/matter_bin/super)
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/proc/apply_default_parts(obj/machinery/M)
|
||||
if(!req_components)
|
||||
return
|
||||
|
||||
M.component_parts = list(src) // List of components always contains a board
|
||||
loc = null
|
||||
|
||||
for(var/comp_path in req_components)
|
||||
var/comp_amt = req_components[comp_path]
|
||||
if(!comp_amt)
|
||||
continue
|
||||
|
||||
if(def_components && def_components[comp_path])
|
||||
comp_path = def_components[comp_path]
|
||||
|
||||
if(ispath(comp_path, /obj/item/stack))
|
||||
M.component_parts += new comp_path(null, comp_amt)
|
||||
else
|
||||
for(var/i in 1 to comp_amt)
|
||||
M.component_parts += new comp_path(null)
|
||||
|
||||
M.RefreshParts()
|
||||
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/abductor
|
||||
name = "alien board (Report This)"
|
||||
icon_state = "abductor_mod"
|
||||
origin_tech = "programming=5;abductor=3"
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/clockwork
|
||||
name = "clockwork board (Report This)"
|
||||
icon_state = "clock_mod"
|
||||
..()
|
||||
@@ -50,7 +50,7 @@
|
||||
songs += T
|
||||
|
||||
/obj/machinery/disco/Initialize()
|
||||
..()
|
||||
. = ..()
|
||||
selection = songs[1]
|
||||
|
||||
|
||||
|
||||
@@ -4,32 +4,17 @@
|
||||
icon = 'icons/obj/Cryogenic2.dmi'
|
||||
icon_state = "scanner"
|
||||
density = TRUE
|
||||
var/locked = FALSE
|
||||
anchored = TRUE
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 50
|
||||
active_power_usage = 300
|
||||
occupant_typecache = list(/mob/living, /obj/item/bodypart/head, /obj/item/organ/brain)
|
||||
circuit = /obj/item/weapon/circuitboard/machine/clonescanner
|
||||
var/locked = FALSE
|
||||
var/damage_coeff
|
||||
var/scan_level
|
||||
var/precision_coeff
|
||||
|
||||
/obj/machinery/dna_scannernew/New()
|
||||
..()
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/clonescanner(null)
|
||||
B.apply_default_parts(src)
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/clonescanner
|
||||
name = "Cloning Scanner (Machine Board)"
|
||||
build_path = /obj/machinery/dna_scannernew
|
||||
origin_tech = "programming=2;biotech=2"
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/scanning_module = 1,
|
||||
/obj/item/weapon/stock_parts/manipulator = 1,
|
||||
/obj/item/weapon/stock_parts/micro_laser = 1,
|
||||
/obj/item/stack/sheet/glass = 1,
|
||||
/obj/item/stack/cable_coil = 2)
|
||||
|
||||
/obj/machinery/dna_scannernew/RefreshParts()
|
||||
scan_level = 0
|
||||
damage_coeff = 0
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
return ..()
|
||||
|
||||
/obj/machinery/door/airlock/alarmlock/Initialize()
|
||||
..()
|
||||
. = ..()
|
||||
SSradio.remove_object(src, air_frequency)
|
||||
air_connection = SSradio.add_object(src, air_frequency, GLOB.RADIO_TO_AIRALARM)
|
||||
open()
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
Radio.listening = 0
|
||||
|
||||
/obj/machinery/door_timer/Initialize()
|
||||
..()
|
||||
. = ..()
|
||||
if(id != null)
|
||||
for(var/obj/machinery/door/window/brigdoor/M in urange(20, src))
|
||||
if (M.id == id)
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
var/list/affecting_areas
|
||||
|
||||
/obj/machinery/door/firedoor/Initialize()
|
||||
..()
|
||||
. = ..()
|
||||
CalculateAffectingAreas()
|
||||
|
||||
/obj/machinery/door/firedoor/examine(mob/user)
|
||||
|
||||
@@ -11,8 +11,8 @@ GLOBAL_LIST_EMPTY(doppler_arrays)
|
||||
var/max_dist = 100
|
||||
verb_say = "states coldly"
|
||||
|
||||
/obj/machinery/doppler_array/New()
|
||||
..()
|
||||
/obj/machinery/doppler_array/Initialize()
|
||||
. = ..()
|
||||
GLOB.doppler_arrays += src
|
||||
|
||||
/obj/machinery/doppler_array/Destroy()
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
|
||||
var/datum/material_container/materials
|
||||
var/list/using_materials
|
||||
var/starting_amount = 0
|
||||
var/metal_cost = 1000
|
||||
var/glass_cost = 1000
|
||||
var/power_used = 1000
|
||||
@@ -52,34 +53,27 @@
|
||||
var/break_message = "lets out a tinny alarm before falling dark."
|
||||
var/break_sound = 'sound/machines/warning-buzzer.ogg'
|
||||
|
||||
/obj/machinery/droneDispenser/New()
|
||||
..()
|
||||
obj_integrity = max_integrity
|
||||
materials = new(src, list(MAT_METAL, MAT_GLASS),
|
||||
MINERAL_MATERIAL_AMOUNT*MAX_STACK_SIZE*2)
|
||||
|
||||
/obj/machinery/droneDispenser/Initialize()
|
||||
. = ..()
|
||||
materials = new(src, list(MAT_METAL, MAT_GLASS), MINERAL_MATERIAL_AMOUNT*MAX_STACK_SIZE*2)
|
||||
materials.insert_amount(starting_amount)
|
||||
using_materials = list(MAT_METAL=metal_cost, MAT_GLASS=glass_cost)
|
||||
|
||||
/obj/machinery/droneDispenser/Destroy()
|
||||
qdel(materials)
|
||||
. = ..()
|
||||
QDEL_NULL(materials)
|
||||
return ..()
|
||||
|
||||
/obj/machinery/droneDispenser/preloaded/New()
|
||||
..()
|
||||
materials.insert_amount(5000)
|
||||
/obj/machinery/droneDispenser/preloaded
|
||||
starting_amount = 5000
|
||||
|
||||
/obj/machinery/droneDispenser/syndrone //Please forgive me
|
||||
name = "syndrone shell dispenser"
|
||||
desc = "A suspicious machine that will create Syndicate \
|
||||
exterminator drones when supplied with metal and glass. Disgusting."
|
||||
desc = "A suspicious machine that will create Syndicate exterminator drones when supplied with metal and glass. Disgusting."
|
||||
dispense_type = /obj/item/drone_shell/syndrone
|
||||
//If we're gonna be a jackass, go the full mile - 10 second recharge timer
|
||||
cooldownTime = 100
|
||||
end_create_message = "dispenses a suspicious drone shell."
|
||||
|
||||
/obj/machinery/droneDispenser/syndrone/New()
|
||||
..()
|
||||
materials.insert_amount(25000)
|
||||
starting_amount = 25000
|
||||
|
||||
/obj/machinery/droneDispenser/syndrone/badass //Please forgive me
|
||||
name = "badass syndrone shell dispenser"
|
||||
@@ -101,10 +95,7 @@
|
||||
metal_cost = 2000
|
||||
glass_cost = 2000
|
||||
power_used = 2000
|
||||
|
||||
/obj/machinery/droneDispenser/snowflake/preloaded/New()
|
||||
..()
|
||||
materials.insert_amount(10000)
|
||||
starting_amount = 10000
|
||||
|
||||
// An example of a custom drone dispenser.
|
||||
// This one requires no materials and creates basic hivebots
|
||||
|
||||
@@ -220,7 +220,7 @@
|
||||
var/sanitize_external
|
||||
|
||||
/obj/machinery/embedded_controller/radio/airlock_controller/Initialize(mapload)
|
||||
..()
|
||||
. = ..()
|
||||
if(!mapload)
|
||||
return
|
||||
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
return ..()
|
||||
|
||||
/obj/machinery/embedded_controller/radio/Initialize()
|
||||
..()
|
||||
. = ..()
|
||||
set_frequency(frequency)
|
||||
|
||||
/obj/machinery/embedded_controller/radio/post_signal(datum/signal/signal)
|
||||
|
||||
@@ -52,8 +52,7 @@
|
||||
var/airpump_tag
|
||||
|
||||
/obj/machinery/embedded_controller/radio/simple_vent_controller/Initialize(mapload)
|
||||
..()
|
||||
|
||||
. = ..()
|
||||
if(!mapload)
|
||||
return
|
||||
var/datum/computer/file/embedded_program/simple_vent_controller/new_prog = new
|
||||
|
||||
@@ -5,15 +5,15 @@
|
||||
desc = "A wall-mounted flashbulb device."
|
||||
icon = 'icons/obj/stationobjs.dmi'
|
||||
icon_state = "mflash1"
|
||||
var/obj/item/device/assembly/flash/handheld/bulb = null
|
||||
max_integrity = 250
|
||||
integrity_failure = 100
|
||||
anchored = TRUE
|
||||
var/obj/item/device/assembly/flash/handheld/bulb
|
||||
var/id = null
|
||||
var/range = 2 //this is roughly the size of brig cell
|
||||
var/last_flash = 0 //Don't want it getting spammed like regular flashes
|
||||
var/strength = 100 //How knocked down targets are when flashed.
|
||||
var/base_state = "mflash"
|
||||
max_integrity = 250
|
||||
integrity_failure = 100
|
||||
anchored = TRUE
|
||||
|
||||
/obj/machinery/flasher/portable //Portable version of the flasher. Only flashes when anchored
|
||||
name = "portable flasher"
|
||||
@@ -24,19 +24,17 @@
|
||||
base_state = "pflash"
|
||||
density = TRUE
|
||||
|
||||
/obj/machinery/flasher/New(loc, ndir = 0, built = 0)
|
||||
..() // ..() is EXTREMELY IMPORTANT, never forget to add it
|
||||
/obj/machinery/flasher/Initialize(mapload, ndir = 0, built = 0)
|
||||
. = ..() // ..() is EXTREMELY IMPORTANT, never forget to add it
|
||||
if(built)
|
||||
setDir(ndir)
|
||||
pixel_x = (dir & 3)? 0 : (dir == 4 ? -28 : 28)
|
||||
pixel_y = (dir & 3)? (dir ==1 ? -28 : 28) : 0
|
||||
else
|
||||
bulb = new /obj/item/device/assembly/flash/handheld(src)
|
||||
bulb = new(src)
|
||||
|
||||
/obj/machinery/flasher/Destroy()
|
||||
if(bulb)
|
||||
qdel(bulb)
|
||||
bulb = null
|
||||
QDEL_NULL(bulb)
|
||||
return ..()
|
||||
|
||||
/obj/machinery/flasher/power_change()
|
||||
|
||||
@@ -17,25 +17,26 @@ The console is located at computer/gulag_teleporter.dm
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 200
|
||||
active_power_usage = 5000
|
||||
circuit = /obj/item/weapon/circuitboard/machine/gulag_teleporter
|
||||
var/locked = FALSE
|
||||
var/jumpsuit_type = /obj/item/clothing/under/rank/prisoner
|
||||
var/shoes_type = /obj/item/clothing/shoes/sneakers/orange
|
||||
var/obj/machinery/gulag_item_reclaimer/linked_reclaimer = null
|
||||
var/list/required_items
|
||||
var/obj/machinery/gulag_item_reclaimer/linked_reclaimer
|
||||
var/static/list/telegulag_required_items = typecacheof(list(
|
||||
/obj/item/weapon/implant,
|
||||
/obj/item/clothing/suit/space/eva/plasmaman,
|
||||
/obj/item/clothing/under/plasmaman,
|
||||
/obj/item/clothing/head/helmet/space/plasmaman,
|
||||
/obj/item/weapon/tank/internals,
|
||||
/obj/item/clothing/mask/breath,
|
||||
/obj/item/clothing/mask/gas))
|
||||
|
||||
/obj/machinery/gulag_teleporter/New()
|
||||
/obj/machinery/gulag_teleporter/Initialize()
|
||||
..()
|
||||
required_items = typecacheof(list(
|
||||
/obj/item/weapon/implant,
|
||||
/obj/item/clothing/suit/space/eva/plasmaman,
|
||||
/obj/item/clothing/under/plasmaman,
|
||||
/obj/item/clothing/head/helmet/space/plasmaman,
|
||||
/obj/item/weapon/tank/internals,
|
||||
/obj/item/clothing/mask/breath,
|
||||
/obj/item/clothing/mask/gas))
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/gulag_teleporter(null)
|
||||
B.apply_default_parts(src)
|
||||
addtimer(CALLBACK(src, .proc/locate_reclaimer), 5)
|
||||
return INITIALIZE_HINT_LATELOAD
|
||||
|
||||
/obj/machinery/gulag_teleporter/LateInitialize()
|
||||
locate_reclaimer()
|
||||
|
||||
/obj/machinery/gulag_teleporter/Destroy()
|
||||
if(linked_reclaimer)
|
||||
@@ -46,7 +47,6 @@ The console is located at computer/gulag_teleporter.dm
|
||||
..()
|
||||
update_icon()
|
||||
|
||||
|
||||
/obj/machinery/gulag_teleporter/interact(mob/user)
|
||||
if(locked)
|
||||
to_chat(user, "[src] is locked.")
|
||||
@@ -138,7 +138,7 @@ The console is located at computer/gulag_teleporter.dm
|
||||
linked_reclaimer.stored_items[occupant] = list()
|
||||
var/mob/living/mob_occupant = occupant
|
||||
for(var/obj/item/W in mob_occupant)
|
||||
if(!is_type_in_typecache(W, required_items) && mob_occupant.temporarilyRemoveItemFromInventory(W))
|
||||
if(!is_type_in_typecache(W, telegulag_required_items) && mob_occupant.temporarilyRemoveItemFromInventory(W))
|
||||
if(istype(W, /obj/item/weapon/restraints/handcuffs))
|
||||
W.forceMove(get_turf(src))
|
||||
continue
|
||||
|
||||
@@ -40,6 +40,7 @@ Possible to do for anyone motivated enough:
|
||||
active_power_usage = 100
|
||||
max_integrity = 300
|
||||
armor = list(melee = 50, bullet = 20, laser = 20, energy = 20, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 0)
|
||||
circuit = /obj/item/weapon/circuitboard/machine/holopad
|
||||
var/list/masters = list()//List of living mobs that use the holopad
|
||||
var/last_request = 0 //to prevent request spam. ~Carn
|
||||
var/holo_range = 5 // Change to change how far the AI can move away from the holopad before deactivating.
|
||||
@@ -51,8 +52,6 @@ Possible to do for anyone motivated enough:
|
||||
|
||||
/obj/machinery/holopad/Initialize()
|
||||
. = ..()
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/holopad(null)
|
||||
B.apply_default_parts(src)
|
||||
holopads += src
|
||||
|
||||
/obj/machinery/holopad/Destroy()
|
||||
@@ -384,11 +383,5 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/
|
||||
return Impersonation.examine(user)
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/holopad
|
||||
name = "AI Holopad (Machine Board)"
|
||||
build_path = /obj/machinery/holopad
|
||||
origin_tech = "programming=1"
|
||||
req_components = list(/obj/item/weapon/stock_parts/capacitor = 1)
|
||||
|
||||
#undef HOLOPAD_PASSIVE_POWER_USAGE
|
||||
#undef HOLOGRAM_POWER_USAGE
|
||||
|
||||
@@ -36,8 +36,8 @@
|
||||
location.hotspot_expose(1000,500,1)
|
||||
return 1
|
||||
|
||||
/obj/machinery/igniter/New()
|
||||
..()
|
||||
/obj/machinery/igniter/Initialize()
|
||||
. = ..()
|
||||
icon_state = "igniter[on]"
|
||||
|
||||
/obj/machinery/igniter/power_change()
|
||||
@@ -61,15 +61,14 @@
|
||||
anchored = TRUE
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/obj/machinery/sparker/New()
|
||||
..()
|
||||
/obj/machinery/sparker/Initialize()
|
||||
. = ..()
|
||||
spark_system = new /datum/effect_system/spark_spread
|
||||
spark_system.set_up(2, 1, src)
|
||||
spark_system.attach(src)
|
||||
|
||||
/obj/machinery/sparker/Destroy()
|
||||
qdel(spark_system)
|
||||
spark_system = null
|
||||
QDEL_NULL(spark_system)
|
||||
return ..()
|
||||
|
||||
/obj/machinery/sparker/power_change()
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
/obj/item/weapon/reagent_containers/glass)
|
||||
|
||||
/obj/machinery/iv_drip/Initialize()
|
||||
..()
|
||||
. = ..()
|
||||
update_icon()
|
||||
drip_containers = typecacheof(drip_containers)
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
use_power = TRUE
|
||||
idle_power_usage = 200
|
||||
active_power_usage = 2500
|
||||
circuit = /obj/item/weapon/circuitboard/machine/launchpad
|
||||
var/stationary = TRUE //to prevent briefcase pad deconstruction and such
|
||||
var/display_name = "Launchpad"
|
||||
var/teleport_speed = 35
|
||||
@@ -17,20 +18,6 @@
|
||||
var/x_offset = 0
|
||||
var/y_offset = 0
|
||||
|
||||
/obj/machinery/launchpad/Initialize()
|
||||
. = ..()
|
||||
var/obj/item/weapon/circuitboard/machine/launchpad/B = new
|
||||
B.apply_default_parts(src)
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/launchpad
|
||||
name = "Bluespace Launchpad (Machine Board)"
|
||||
build_path = /obj/machinery/launchpad
|
||||
origin_tech = "programming=3;engineering=3;plasmatech=2;bluespace=3"
|
||||
req_components = list(
|
||||
/obj/item/weapon/ore/bluespace_crystal = 1,
|
||||
/obj/item/weapon/stock_parts/manipulator = 1)
|
||||
def_components = list(/obj/item/weapon/ore/bluespace_crystal = /obj/item/weapon/ore/bluespace_crystal/artificial)
|
||||
|
||||
/obj/machinery/launchpad/RefreshParts()
|
||||
var/E = -1 //to make default parts have the base value
|
||||
for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts)
|
||||
@@ -171,9 +158,7 @@
|
||||
qdel(src)
|
||||
|
||||
/obj/machinery/launchpad/briefcase/Destroy()
|
||||
if(!QDELETED(briefcase))
|
||||
qdel(briefcase)
|
||||
briefcase = null
|
||||
QDEL_NULL(briefcase)
|
||||
return ..()
|
||||
|
||||
/obj/machinery/launchpad/briefcase/isAvailable()
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
// luminosity = 1
|
||||
|
||||
/obj/machinery/light_switch/Initialize()
|
||||
..()
|
||||
. = ..()
|
||||
area = get_area(src)
|
||||
|
||||
if(otherarea)
|
||||
|
||||
@@ -11,21 +11,20 @@
|
||||
icon_state = "limbgrower_idleoff"
|
||||
density = TRUE
|
||||
container_type = OPENCONTAINER
|
||||
|
||||
var/operating = FALSE
|
||||
anchored = TRUE
|
||||
use_power = IDLE_POWER_USE
|
||||
var/disabled = 0
|
||||
idle_power_usage = 10
|
||||
active_power_usage = 100
|
||||
circuit = /obj/item/weapon/circuitboard/machine/limbgrower
|
||||
|
||||
var/operating = FALSE
|
||||
var/disabled = FALSE
|
||||
var/busy = FALSE
|
||||
var/prod_coeff = 1
|
||||
|
||||
var/datum/design/being_built
|
||||
var/datum/research/files
|
||||
var/selected_category
|
||||
var/screen = 1
|
||||
|
||||
var/list/categories = list(
|
||||
"human",
|
||||
"lizard",
|
||||
@@ -33,22 +32,11 @@
|
||||
"special"
|
||||
)
|
||||
|
||||
/obj/machinery/limbgrower/New()
|
||||
..()
|
||||
/obj/machinery/limbgrower/Initialize()
|
||||
. = ..()
|
||||
create_reagents(0)
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/limbgrower(null)
|
||||
B.apply_default_parts(src)
|
||||
files = new /datum/research/limbgrower(src)
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/limbgrower
|
||||
name = "Limb Grower (Machine Board)"
|
||||
build_path = /obj/machinery/limbgrower
|
||||
origin_tech = "programming=2;biotech=2"
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/manipulator = 1,
|
||||
/obj/item/weapon/reagent_containers/glass/beaker = 2,
|
||||
/obj/item/weapon/stock_parts/console_screen = 1)
|
||||
|
||||
/obj/machinery/limbgrower/interact(mob/user)
|
||||
if(!is_operational())
|
||||
return
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
// This was created for firing ranges, but I suppose this could have other applications - Doohl
|
||||
|
||||
/obj/machinery/magnetic_module
|
||||
|
||||
icon = 'icons/obj/objects.dmi'
|
||||
icon_state = "floor_magnet-f"
|
||||
name = "electromagnetic generator"
|
||||
@@ -29,22 +28,22 @@
|
||||
var/center_y = 0
|
||||
var/max_dist = 20 // absolute value of center_x,y cannot exceed this integer
|
||||
|
||||
/obj/machinery/magnetic_module/New()
|
||||
/obj/machinery/magnetic_module/Initialize()
|
||||
..()
|
||||
var/turf/T = loc
|
||||
hide(T.intact)
|
||||
center = T
|
||||
|
||||
spawn(10) // must wait for map loading to finish
|
||||
SSradio.add_object(src, freq, GLOB.RADIO_MAGNETS)
|
||||
return INITIALIZE_HINT_LATELOAD
|
||||
|
||||
spawn()
|
||||
magnetic_process()
|
||||
/obj/machinery/magnetic_module/LateInitialize()
|
||||
SSradio.add_object(src, freq, GLOB.RADIO_MAGNETS)
|
||||
magnetic_process()
|
||||
|
||||
/obj/machinery/magnetic_module/Destroy()
|
||||
SSradio.remove_object(src, freq)
|
||||
. = ..()
|
||||
center = null
|
||||
return ..()
|
||||
|
||||
// update the invisibility and icon
|
||||
/obj/machinery/magnetic_module/hide(intact)
|
||||
@@ -216,27 +215,26 @@
|
||||
var/datum/radio_frequency/radio_connection
|
||||
|
||||
|
||||
/obj/machinery/magnetic_controller/New()
|
||||
/obj/machinery/magnetic_controller/Initialize()
|
||||
..()
|
||||
|
||||
if(autolink)
|
||||
for(var/obj/machinery/magnetic_module/M in GLOB.machines)
|
||||
if(M.freq == frequency && M.code == code)
|
||||
magnets.Add(M)
|
||||
|
||||
|
||||
spawn(45) // must wait for map loading to finish
|
||||
radio_connection = SSradio.add_object(src, frequency, GLOB.RADIO_MAGNETS)
|
||||
|
||||
|
||||
if(path) // check for default path
|
||||
filter_path() // renders rpath
|
||||
|
||||
return INITIALIZE_HINT_LATELOAD
|
||||
|
||||
/obj/machinery/magnetic_controller/LateInitialize()
|
||||
radio_connection = SSradio.add_object(src, frequency, GLOB.RADIO_MAGNETS)
|
||||
|
||||
/obj/machinery/magnetic_controller/Destroy()
|
||||
SSradio.remove_object(src, frequency)
|
||||
magnets = null
|
||||
rpath = null
|
||||
. = ..()
|
||||
return ..()
|
||||
|
||||
/obj/machinery/magnetic_controller/process()
|
||||
if(magnets.len == 0 && autolink)
|
||||
|
||||
@@ -22,8 +22,8 @@
|
||||
|
||||
req_access = list(ACCESS_ENGINE, ACCESS_ROBOTICS)
|
||||
|
||||
/obj/machinery/navbeacon/New()
|
||||
..()
|
||||
/obj/machinery/navbeacon/Initialize()
|
||||
. = ..()
|
||||
|
||||
set_codes()
|
||||
|
||||
|
||||
@@ -197,16 +197,15 @@ GLOBAL_LIST_EMPTY(allCasters)
|
||||
name = "security newscaster"
|
||||
securityCaster = 1
|
||||
|
||||
/obj/machinery/newscaster/New(loc, ndir, building)
|
||||
..()
|
||||
/obj/machinery/newscaster/Initialize(mapload, ndir, building)
|
||||
. = ..()
|
||||
if(building)
|
||||
setDir(ndir)
|
||||
pixel_x = (dir & 3)? 0 : (dir == 4 ? -32 : 32)
|
||||
pixel_y = (dir & 3)? (dir ==1 ? -32 : 32) : 0
|
||||
|
||||
GLOB.allCasters += src
|
||||
for(var/obj/machinery/newscaster/NEWSCASTER in GLOB.allCasters)
|
||||
unit_no++
|
||||
unit_no = GLOB.allCasters.len
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/newscaster/Destroy()
|
||||
|
||||
@@ -72,8 +72,8 @@
|
||||
|
||||
var/obj/machinery/turretid/cp = null
|
||||
|
||||
/obj/machinery/porta_turret/New(loc)
|
||||
..()
|
||||
/obj/machinery/porta_turret/Initialize()
|
||||
. = ..()
|
||||
if(!base)
|
||||
base = src
|
||||
update_icon()
|
||||
@@ -143,18 +143,13 @@
|
||||
|
||||
/obj/machinery/porta_turret/Destroy()
|
||||
//deletes its own cover with it
|
||||
if(cover)
|
||||
qdel(cover)
|
||||
cover = null
|
||||
QDEL_NULL(cover)
|
||||
base = null
|
||||
if(cp)
|
||||
cp.turrets -= src
|
||||
cp = null
|
||||
if(stored_gun)
|
||||
qdel(stored_gun)
|
||||
stored_gun = null
|
||||
qdel(spark_system)
|
||||
spark_system = null
|
||||
QDEL_NULL(stored_gun)
|
||||
QDEL_NULL(spark_system)
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -602,8 +597,8 @@
|
||||
/obj/machinery/porta_turret/aux_base/interact(mob/user) //Controlled solely from the base console.
|
||||
return
|
||||
|
||||
/obj/machinery/porta_turret/aux_base/New()
|
||||
..()
|
||||
/obj/machinery/porta_turret/aux_base/Initialize()
|
||||
. = ..()
|
||||
cover.name = name
|
||||
cover.desc = desc
|
||||
|
||||
@@ -650,8 +645,8 @@
|
||||
var/list/obj/machinery/porta_turret/turrets = list()
|
||||
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
|
||||
|
||||
/obj/machinery/turretid/New(loc, ndir = 0, built = 0)
|
||||
..()
|
||||
/obj/machinery/turretid/Initialize(loc, ndir = 0, built = 0)
|
||||
. = ..()
|
||||
if(built)
|
||||
setDir(ndir)
|
||||
locked = FALSE
|
||||
@@ -664,7 +659,7 @@
|
||||
return ..()
|
||||
|
||||
/obj/machinery/turretid/Initialize(mapload) //map-placed turrets autolink turrets
|
||||
..()
|
||||
. = ..()
|
||||
if(!mapload)
|
||||
return
|
||||
|
||||
@@ -681,7 +676,8 @@
|
||||
T.cp = src
|
||||
|
||||
/obj/machinery/turretid/attackby(obj/item/I, mob/user, params)
|
||||
if(stat & BROKEN) return
|
||||
if(stat & BROKEN)
|
||||
return
|
||||
|
||||
if (istype(I, /obj/item/device/multitool))
|
||||
var/obj/item/device/multitool/M = I
|
||||
|
||||
@@ -8,28 +8,13 @@
|
||||
idle_power_usage = 200
|
||||
active_power_usage = 5000
|
||||
unique_rename = 1
|
||||
circuit = /obj/item/weapon/circuitboard/machine/quantumpad
|
||||
var/teleport_cooldown = 400 //30 seconds base due to base parts
|
||||
var/teleport_speed = 50
|
||||
var/last_teleport //to handle the cooldown
|
||||
var/teleporting = 0 //if it's in the process of teleporting
|
||||
var/power_efficiency = 1
|
||||
var/obj/machinery/quantumpad/linked_pad = null
|
||||
|
||||
/obj/machinery/quantumpad/New()
|
||||
..()
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/quantumpad(null)
|
||||
B.apply_default_parts(src)
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/quantumpad
|
||||
name = "Quantum Pad (Machine Board)"
|
||||
build_path = /obj/machinery/quantumpad
|
||||
origin_tech = "programming=3;engineering=3;plasmatech=3;bluespace=4"
|
||||
req_components = list(
|
||||
/obj/item/weapon/ore/bluespace_crystal = 1,
|
||||
/obj/item/weapon/stock_parts/capacitor = 1,
|
||||
/obj/item/weapon/stock_parts/manipulator = 1,
|
||||
/obj/item/stack/cable_coil = 1)
|
||||
def_components = list(/obj/item/weapon/ore/bluespace_crystal = /obj/item/weapon/ore/bluespace_crystal/artificial)
|
||||
var/obj/machinery/quantumpad/linked_pad
|
||||
|
||||
/obj/machinery/quantumpad/RefreshParts()
|
||||
var/E = 0
|
||||
|
||||
@@ -7,20 +7,14 @@
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 4
|
||||
active_power_usage = 250
|
||||
circuit = /obj/item/weapon/circuitboard/machine/recharger
|
||||
var/obj/item/charging = null
|
||||
var/static/list/allowed_devices = typecacheof(list(/obj/item/weapon/gun/energy, /obj/item/weapon/melee/baton, /obj/item/ammo_box/magazine/recharge, /obj/item/device/modular_computer))
|
||||
var/recharge_coeff = 1
|
||||
|
||||
/obj/machinery/recharger/Initialize()
|
||||
. = ..()
|
||||
var/obj/item/weapon/circuitboard/machine/recharger/B = new()
|
||||
B.apply_default_parts(src)
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/recharger
|
||||
name = "Weapon Recharger (Machine Board)"
|
||||
build_path = /obj/machinery/recharger
|
||||
origin_tech = "powerstorage=4;engineering=3;materials=4"
|
||||
req_components = list(/obj/item/weapon/stock_parts/capacitor = 1)
|
||||
var/static/list/allowed_devices = typecacheof(list(
|
||||
/obj/item/weapon/gun/energy,
|
||||
/obj/item/weapon/melee/baton,
|
||||
/obj/item/ammo_box/magazine/recharge,
|
||||
/obj/item/device/modular_computer))
|
||||
|
||||
/obj/machinery/recharger/RefreshParts()
|
||||
for(var/obj/item/weapon/stock_parts/capacitor/C in component_parts)
|
||||
|
||||
@@ -8,27 +8,15 @@
|
||||
idle_power_usage = 5
|
||||
active_power_usage = 1000
|
||||
req_access = list(ACCESS_ROBOTICS)
|
||||
state_open = TRUE
|
||||
circuit = /obj/item/weapon/circuitboard/machine/cyborgrecharger
|
||||
var/recharge_speed
|
||||
var/repairs
|
||||
state_open = TRUE
|
||||
|
||||
/obj/machinery/recharge_station/New()
|
||||
..()
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/cyborgrecharger(null)
|
||||
B.apply_default_parts(src)
|
||||
/obj/machinery/recharge_station/Initialize()
|
||||
. = ..()
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/cyborgrecharger
|
||||
name = "Cyborg Recharger (Machine Board)"
|
||||
build_path = /obj/machinery/recharge_station
|
||||
origin_tech = "powerstorage=3;engineering=3"
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/capacitor = 2,
|
||||
/obj/item/weapon/stock_parts/cell = 1,
|
||||
/obj/item/weapon/stock_parts/manipulator = 1)
|
||||
def_components = list(
|
||||
/obj/item/weapon/stock_parts/cell = /obj/item/weapon/stock_parts/cell/high)
|
||||
|
||||
/obj/machinery/recharge_station/RefreshParts()
|
||||
recharge_speed = 0
|
||||
repairs = 0
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
layer = ABOVE_ALL_MOB_LAYER // Overhead
|
||||
anchored = TRUE
|
||||
density = TRUE
|
||||
circuit = /obj/item/weapon/circuitboard/machine/recycler
|
||||
var/safety_mode = FALSE // Temporarily stops machine if it detects a mob
|
||||
var/icon_name = "grinder-o"
|
||||
var/blood = 0
|
||||
@@ -18,20 +19,10 @@
|
||||
var/eat_victim_items = TRUE
|
||||
var/item_recycle_sound = 'sound/items/welder.ogg'
|
||||
|
||||
/obj/machinery/recycler/New()
|
||||
..()
|
||||
/obj/machinery/recycler/Initialize()
|
||||
materials = new /datum/material_container(src, list(MAT_METAL, MAT_GLASS, MAT_PLASMA, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM))
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/recycler(null)
|
||||
B.apply_default_parts(src)
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/recycler
|
||||
name = "Recycler (Machine Board)"
|
||||
build_path = /obj/machinery/recycler
|
||||
origin_tech = "programming=2;engineering=2"
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/matter_bin = 1,
|
||||
/obj/item/weapon/stock_parts/manipulator = 1)
|
||||
return ..()
|
||||
|
||||
/obj/machinery/recycler/RefreshParts()
|
||||
var/amt_made = 0
|
||||
|
||||
@@ -88,7 +88,7 @@ GLOBAL_LIST_EMPTY(allConsoles)
|
||||
icon_state = "req_comp0"
|
||||
|
||||
/obj/machinery/requests_console/Initialize()
|
||||
..()
|
||||
. = ..()
|
||||
name = "\improper [department] requests console"
|
||||
GLOB.allConsoles += src
|
||||
switch(departmentType)
|
||||
|
||||
@@ -10,9 +10,9 @@
|
||||
max_integrity = 200 //The shield can only take so much beating (prevents perma-prisons)
|
||||
CanAtmosPass = ATMOS_PASS_DENSITY
|
||||
|
||||
/obj/structure/emergency_shield/New()
|
||||
src.setDir(pick(1,2,3,4))
|
||||
..()
|
||||
/obj/structure/emergency_shield/Initialize()
|
||||
setDir(pick(1,2,3,4))
|
||||
. = ..()
|
||||
air_update_turf(1)
|
||||
|
||||
/obj/structure/emergency_shield/Destroy()
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
light_color = LIGHT_COLOR_BROWN
|
||||
|
||||
/obj/machinery/computer/slot_machine/Initialize()
|
||||
..()
|
||||
. = ..()
|
||||
jackpots = rand(1, 4) //false hope
|
||||
plays = rand(75, 200)
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
desc = "Made by Space Amish using traditional space techniques, this heater/cooler is guaranteed not to set the station on fire."
|
||||
max_integrity = 250
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 100, fire = 80, acid = 10)
|
||||
circuit = /obj/item/weapon/circuitboard/machine/space_heater
|
||||
var/obj/item/weapon/stock_parts/cell/cell
|
||||
var/on = FALSE
|
||||
var/mode = HEATER_MODE_STANDBY
|
||||
@@ -26,22 +27,11 @@
|
||||
/obj/machinery/space_heater/get_cell()
|
||||
return cell
|
||||
|
||||
/obj/machinery/space_heater/New()
|
||||
..()
|
||||
/obj/machinery/space_heater/Initialize()
|
||||
. = ..()
|
||||
cell = new(src)
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/space_heater(null)
|
||||
B.apply_default_parts(src)
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/space_heater
|
||||
name = "Space Heater (Machine Board)"
|
||||
build_path = /obj/machinery/space_heater
|
||||
origin_tech = "programming=2;engineering=2;plasmatech=2"
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/micro_laser = 1,
|
||||
/obj/item/weapon/stock_parts/capacitor = 1,
|
||||
/obj/item/stack/cable_coil = 3)
|
||||
|
||||
/obj/machinery/space_heater/on_construction()
|
||||
qdel(cell)
|
||||
cell = null
|
||||
|
||||
@@ -101,8 +101,8 @@
|
||||
mask_type = /obj/item/clothing/mask/breath
|
||||
storage_type = /obj/item/weapon/tank/internals/emergency_oxygen/double
|
||||
|
||||
/obj/machinery/suit_storage_unit/New()
|
||||
..()
|
||||
/obj/machinery/suit_storage_unit/Initialize()
|
||||
. = ..()
|
||||
wires = new /datum/wires/suit_storage_unit(src)
|
||||
if(suit_type)
|
||||
suit = new suit_type(src)
|
||||
@@ -115,18 +115,10 @@
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/suit_storage_unit/Destroy()
|
||||
if(suit)
|
||||
qdel(suit)
|
||||
suit = null
|
||||
if(helmet)
|
||||
qdel(helmet)
|
||||
helmet = null
|
||||
if(mask)
|
||||
qdel(mask)
|
||||
mask = null
|
||||
if(storage)
|
||||
qdel(storage)
|
||||
storage = null
|
||||
QDEL_NULL(suit)
|
||||
QDEL_NULL(helmet)
|
||||
QDEL_NULL(mask)
|
||||
QDEL_NULL(storage)
|
||||
return ..()
|
||||
|
||||
/obj/machinery/suit_storage_unit/update_icon()
|
||||
|
||||
@@ -82,22 +82,19 @@
|
||||
countdown.stop()
|
||||
STOP_PROCESSING(SSfastprocess, src)
|
||||
|
||||
/obj/machinery/syndicatebomb/New()
|
||||
/obj/machinery/syndicatebomb/Initialize()
|
||||
. = ..()
|
||||
wires = new /datum/wires/syndicatebomb(src)
|
||||
if(src.payload)
|
||||
if(payload)
|
||||
payload = new payload(src)
|
||||
update_icon()
|
||||
countdown = new(src)
|
||||
..()
|
||||
|
||||
/obj/machinery/syndicatebomb/Destroy()
|
||||
qdel(wires)
|
||||
wires = null
|
||||
if(countdown)
|
||||
qdel(countdown)
|
||||
countdown = null
|
||||
QDEL_NULL(wires)
|
||||
QDEL_NULL(countdown)
|
||||
STOP_PROCESSING(SSfastprocess, src)
|
||||
. = ..()
|
||||
return ..()
|
||||
|
||||
/obj/machinery/syndicatebomb/examine(mob/user)
|
||||
..()
|
||||
|
||||
@@ -17,8 +17,7 @@ GLOBAL_VAR_INIT(message_delay, 0) // To make sure restarting the recentmessages
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 25
|
||||
machinetype = 5
|
||||
/*heatgen = 0
|
||||
delay = 7*/
|
||||
circuit = /obj/item/weapon/circuitboard/machine/telecomms/broadcaster
|
||||
|
||||
/obj/machinery/telecomms/broadcaster/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from)
|
||||
// Don't broadcast rejected signals
|
||||
@@ -82,22 +81,6 @@ GLOBAL_VAR_INIT(message_delay, 0) // To make sure restarting the recentmessages
|
||||
/* --- Do a snazzy animation! --- */
|
||||
flick("broadcaster_send", src)
|
||||
|
||||
/obj/machinery/telecomms/broadcaster/New()
|
||||
..()
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/telecomms/broadcaster(null)
|
||||
B.apply_default_parts(src)
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/telecomms/broadcaster
|
||||
name = "Subspace Broadcaster (Machine Board)"
|
||||
build_path = /obj/machinery/telecomms/broadcaster
|
||||
origin_tech = "programming=2;engineering=2;bluespace=1"
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/manipulator = 2,
|
||||
/obj/item/stack/cable_coil = 1,
|
||||
/obj/item/weapon/stock_parts/subspace/filter = 1,
|
||||
/obj/item/weapon/stock_parts/subspace/crystal = 1,
|
||||
/obj/item/weapon/stock_parts/micro_laser = 2)
|
||||
|
||||
/obj/machinery/telecomms/broadcaster/Destroy()
|
||||
// In case message_delay is left on 1, otherwise it won't reset the list and people can't say the same thing twice anymore.
|
||||
if(GLOB.message_delay)
|
||||
|
||||
@@ -17,8 +17,8 @@
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 50
|
||||
machinetype = 2
|
||||
//heatgen = 20
|
||||
netspeed = 40
|
||||
circuit = /obj/item/weapon/circuitboard/machine/telecomms/bus
|
||||
var/change_frequency = 0
|
||||
|
||||
/obj/machinery/telecomms/bus/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from)
|
||||
@@ -49,24 +49,6 @@
|
||||
if(can_send)
|
||||
break
|
||||
|
||||
/obj/machinery/telecomms/bus/New()
|
||||
..()
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/telecomms/bus(null)
|
||||
B.apply_default_parts(src)
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/telecomms/bus
|
||||
name = "Bus Mainframe (Machine Board)"
|
||||
build_path = /obj/machinery/telecomms/bus
|
||||
origin_tech = "programming=2;engineering=2"
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/manipulator = 2,
|
||||
/obj/item/stack/cable_coil = 1,
|
||||
/obj/item/weapon/stock_parts/subspace/filter = 1)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//Preset Buses
|
||||
|
||||
/obj/machinery/telecomms/bus/preset_one
|
||||
@@ -93,10 +75,10 @@
|
||||
freq_listening = list(GLOB.ENG_FREQ)
|
||||
autolinkers = list("processor4", "engineering", "common")
|
||||
|
||||
/obj/machinery/telecomms/bus/preset_four/New()
|
||||
/obj/machinery/telecomms/bus/preset_four/Initialize()
|
||||
. = ..()
|
||||
for(var/i = 1441, i < 1489, i += 2)
|
||||
freq_listening |= i
|
||||
..()
|
||||
|
||||
/obj/machinery/telecomms/bus/preset_one/birdstation
|
||||
name = "Bus"
|
||||
|
||||
@@ -18,10 +18,9 @@
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 80
|
||||
machinetype = 7
|
||||
//heatgen = 40
|
||||
long_range_link = 1
|
||||
netspeed = 40
|
||||
|
||||
circuit = /obj/item/weapon/circuitboard/machine/telecomms/hub
|
||||
|
||||
/obj/machinery/telecomms/hub/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from)
|
||||
if(is_freq_listening(signal))
|
||||
@@ -33,23 +32,6 @@
|
||||
relay_information(signal, "/obj/machinery/telecomms/relay", 1)
|
||||
relay_information(signal, "/obj/machinery/telecomms/broadcaster", 1) // Send it to a broadcaster.
|
||||
|
||||
/obj/machinery/telecomms/hub/New()
|
||||
..()
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/telecomms/hub(null)
|
||||
B.apply_default_parts(src)
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/telecomms/hub
|
||||
name = "Hub Mainframe (Machine Board)"
|
||||
build_path = /obj/machinery/telecomms/hub
|
||||
origin_tech = "programming=2;engineering=2"
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/manipulator = 2,
|
||||
/obj/item/stack/cable_coil = 2,
|
||||
/obj/item/weapon/stock_parts/subspace/filter = 2)
|
||||
|
||||
|
||||
|
||||
|
||||
//Preset HUB
|
||||
|
||||
/obj/machinery/telecomms/hub/preset
|
||||
|
||||
@@ -16,8 +16,7 @@
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 30
|
||||
machinetype = 3
|
||||
//heatgen = 100
|
||||
//delay = 5
|
||||
circuit = /obj/item/weapon/circuitboard/machine/telecomms/processor
|
||||
var/process_mode = 1 // 1 = Uncompress Signals, 0 = Compress Signals
|
||||
|
||||
/obj/machinery/telecomms/processor/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from)
|
||||
@@ -35,24 +34,6 @@
|
||||
signal.data["slow"] += rand(5, 10) // slow the signal down
|
||||
relay_information(signal, "/obj/machinery/telecomms/server")
|
||||
|
||||
/obj/machinery/telecomms/processor/New()
|
||||
..()
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/telecomms/processor(null)
|
||||
B.apply_default_parts(src)
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/telecomms/processor
|
||||
name = "Processor Unit (Machine Board)"
|
||||
build_path = /obj/machinery/telecomms/processor
|
||||
origin_tech = "programming=2;engineering=2"
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/manipulator = 3,
|
||||
/obj/item/weapon/stock_parts/subspace/filter = 1,
|
||||
/obj/item/weapon/stock_parts/subspace/treatment = 2,
|
||||
/obj/item/weapon/stock_parts/subspace/analyzer = 1,
|
||||
/obj/item/stack/cable_coil = 2,
|
||||
/obj/item/weapon/stock_parts/subspace/amplifier = 1)
|
||||
|
||||
|
||||
//Preset Processors
|
||||
|
||||
/obj/machinery/telecomms/processor/preset_one
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 30
|
||||
machinetype = 1
|
||||
//heatgen = 0
|
||||
circuit = /obj/item/weapon/circuitboard/machine/telecomms/receiver
|
||||
|
||||
/obj/machinery/telecomms/receiver/receive_signal(datum/signal/signal)
|
||||
|
||||
@@ -50,25 +50,6 @@
|
||||
return 0
|
||||
return 1
|
||||
|
||||
|
||||
/obj/machinery/telecomms/receiver/New()
|
||||
..()
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/telecomms/receiver(null)
|
||||
B.apply_default_parts(src)
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/telecomms/receiver
|
||||
name = "Subspace Receiver (Machine Board)"
|
||||
build_path = /obj/machinery/telecomms/receiver
|
||||
origin_tech = "programming=2;engineering=2;bluespace=1"
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/subspace/ansible = 1,
|
||||
/obj/item/weapon/stock_parts/subspace/filter = 1,
|
||||
/obj/item/weapon/stock_parts/manipulator = 2,
|
||||
/obj/item/weapon/stock_parts/micro_laser = 1)
|
||||
|
||||
|
||||
|
||||
|
||||
//Preset Receivers
|
||||
|
||||
//--PRESET LEFT--//
|
||||
@@ -89,10 +70,10 @@
|
||||
freq_listening = list(GLOB.COMM_FREQ, GLOB.ENG_FREQ, GLOB.SEC_FREQ) //command, engineering, security
|
||||
|
||||
//Common and other radio frequencies for people to freely use
|
||||
/obj/machinery/telecomms/receiver/preset_right/New()
|
||||
/obj/machinery/telecomms/receiver/preset_right/Initialize()
|
||||
. = ..()
|
||||
for(var/i = 1441, i < 1489, i += 2)
|
||||
freq_listening |= i
|
||||
..()
|
||||
|
||||
/obj/machinery/telecomms/receiver/preset_left/birdstation
|
||||
name = "Receiver"
|
||||
|
||||
@@ -15,9 +15,9 @@
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 30
|
||||
machinetype = 8
|
||||
//heatgen = 0
|
||||
netspeed = 5
|
||||
long_range_link = 1
|
||||
circuit = /obj/item/weapon/circuitboard/machine/telecomms/relay
|
||||
var/broadcasting = 1
|
||||
var/receiving = 1
|
||||
|
||||
@@ -45,22 +45,6 @@
|
||||
return FALSE
|
||||
return receiving
|
||||
|
||||
/obj/machinery/telecomms/relay/New()
|
||||
..()
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/telecomms/relay(null)
|
||||
B.apply_default_parts(src)
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/telecomms/relay
|
||||
name = "Relay Mainframe (Machine Board)"
|
||||
build_path = /obj/machinery/telecomms/relay
|
||||
origin_tech = "programming=2;engineering=2;bluespace=2"
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/manipulator = 2,
|
||||
/obj/item/stack/cable_coil = 2,
|
||||
/obj/item/weapon/stock_parts/subspace/filter = 2)
|
||||
|
||||
|
||||
|
||||
//Preset Relay
|
||||
|
||||
/obj/machinery/telecomms/relay/preset
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 15
|
||||
machinetype = 4
|
||||
//heatgen = 50
|
||||
circuit = /obj/item/weapon/circuitboard/machine/telecomms/server
|
||||
var/list/log_entries = list()
|
||||
var/list/stored_names = list()
|
||||
var/list/TrafficActions = list()
|
||||
@@ -32,20 +32,9 @@
|
||||
var/obj/item/device/radio/headset/server_radio = null
|
||||
var/last_signal = 0 // Last time it sent a signal
|
||||
|
||||
/obj/machinery/telecomms/server/New()
|
||||
..()
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/telecomms/server(null)
|
||||
B.apply_default_parts(src)
|
||||
server_radio = new()
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/telecomms/server
|
||||
name = "Telecommunication Server (Machine Board)"
|
||||
build_path = /obj/machinery/telecomms/server
|
||||
origin_tech = "programming=2;engineering=2"
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/manipulator = 2,
|
||||
/obj/item/stack/cable_coil = 1,
|
||||
/obj/item/weapon/stock_parts/subspace/filter = 1)
|
||||
/obj/machinery/telecomms/server/Initialize()
|
||||
. = ..()
|
||||
server_radio = new
|
||||
|
||||
/obj/machinery/telecomms/server/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from)
|
||||
if(signal.data["message"])
|
||||
@@ -135,8 +124,8 @@
|
||||
/obj/machinery/telecomms/server/presets
|
||||
network = "tcommsat"
|
||||
|
||||
/obj/machinery/telecomms/server/presets/New()
|
||||
..()
|
||||
/obj/machinery/telecomms/server/presets/Initialize()
|
||||
. = ..()
|
||||
name = id
|
||||
|
||||
|
||||
@@ -167,10 +156,10 @@
|
||||
|
||||
//Common and other radio frequencies for people to freely use
|
||||
// 1441 to 1489
|
||||
/obj/machinery/telecomms/server/presets/common/New()
|
||||
/obj/machinery/telecomms/server/presets/common/Initialize()
|
||||
. = ..()
|
||||
for(var/i = 1441, i < 1489, i += 2)
|
||||
freq_listening |= i
|
||||
..()
|
||||
|
||||
/obj/machinery/telecomms/server/presets/command
|
||||
id = "Command Server"
|
||||
@@ -187,6 +176,6 @@
|
||||
freq_listening = list(GLOB.SEC_FREQ)
|
||||
autolinkers = list("security")
|
||||
|
||||
/obj/machinery/telecomms/server/presets/common/birdstation/New()
|
||||
..()
|
||||
/obj/machinery/telecomms/server/presets/common/birdstation/Initialize()
|
||||
. = ..()
|
||||
freq_listening = list()
|
||||
|
||||
@@ -16,6 +16,7 @@ GLOBAL_LIST_EMPTY(telecomms_list)
|
||||
|
||||
/obj/machinery/telecomms
|
||||
icon = 'icons/obj/machines/telecomms.dmi'
|
||||
critical_machine = TRUE
|
||||
var/list/links = list() // list of machines this machine is linked to
|
||||
var/traffic = 0 // value increases as traffic increases
|
||||
var/netspeed = 5 // how much traffic to lose per tick (50 gigabytes/second * netspeed)
|
||||
@@ -31,7 +32,6 @@ GLOBAL_LIST_EMPTY(telecomms_list)
|
||||
var/long_range_link = 0 // Can you link it across Z levels or on the otherside of the map? (Relay & Hub)
|
||||
var/hide = 0 // Is it a hidden machine?
|
||||
var/listening_level = 0 // 0 = auto set in New() - this is the z level that the machine is listening to.
|
||||
critical_machine = TRUE
|
||||
|
||||
|
||||
/obj/machinery/telecomms/proc/relay_information(datum/signal/signal, filter, copysig, amount = 20)
|
||||
@@ -144,7 +144,7 @@ GLOBAL_LIST_EMPTY(telecomms_list)
|
||||
listening_level = position.z
|
||||
|
||||
/obj/machinery/telecomms/Initialize(mapload)
|
||||
..()
|
||||
. = ..()
|
||||
if(mapload && autolinkers.len)
|
||||
// Links nearby machines
|
||||
if(!long_range_link)
|
||||
|
||||
@@ -1,221 +1,3 @@
|
||||
/obj/machinery/computer/teleporter
|
||||
name = "teleporter control console"
|
||||
desc = "Used to control a linked teleportation Hub and Station."
|
||||
icon_screen = "teleport"
|
||||
icon_keyboard = "teleport_key"
|
||||
circuit = /obj/item/weapon/circuitboard/computer/teleporter
|
||||
var/obj/item/device/gps/locked = null
|
||||
var/regime_set = "Teleporter"
|
||||
var/id = null
|
||||
var/obj/machinery/teleport/station/power_station
|
||||
var/calibrating
|
||||
var/turf/target //Used for one-time-use teleport cards (such as clown planet coordinates.)
|
||||
//Setting this to 1 will set src.locked to null after a player enters the portal and will not allow hand-teles to open portals to that location.
|
||||
|
||||
light_color = LIGHT_COLOR_BLUE
|
||||
|
||||
/obj/machinery/computer/teleporter/New()
|
||||
src.id = "[rand(1000, 9999)]"
|
||||
..()
|
||||
|
||||
/obj/machinery/computer/teleporter/Initialize()
|
||||
..()
|
||||
link_power_station()
|
||||
|
||||
/obj/machinery/computer/teleporter/Destroy()
|
||||
if (power_station)
|
||||
power_station.teleporter_console = null
|
||||
power_station = null
|
||||
return ..()
|
||||
|
||||
/obj/machinery/computer/teleporter/proc/link_power_station()
|
||||
if(power_station)
|
||||
return
|
||||
for(dir in list(NORTH,EAST,SOUTH,WEST))
|
||||
power_station = locate(/obj/machinery/teleport/station, get_step(src, dir))
|
||||
if(power_station)
|
||||
break
|
||||
return power_station
|
||||
|
||||
/obj/machinery/computer/teleporter/attackby(obj/I, mob/living/user, params)
|
||||
if(istype(I, /obj/item/device/gps))
|
||||
var/obj/item/device/gps/L = I
|
||||
if(L.locked_location && !(stat & (NOPOWER|BROKEN)))
|
||||
if(!user.transferItemToLoc(L, src))
|
||||
to_chat(user, "<span class='warning'>\the [I] is stuck to your hand, you cannot put it in \the [src]!</span>")
|
||||
return
|
||||
locked = L
|
||||
to_chat(user, "<span class='caution'>You insert the GPS device into the [name]'s slot.</span>")
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/machinery/computer/teleporter/attack_ai(mob/user)
|
||||
src.attack_hand(user)
|
||||
|
||||
/obj/machinery/computer/teleporter/attack_hand(mob/user)
|
||||
if(..())
|
||||
return
|
||||
interact(user)
|
||||
|
||||
/obj/machinery/computer/teleporter/interact(mob/user)
|
||||
var/data = "<h3>Teleporter Status</h3>"
|
||||
if(!power_station)
|
||||
data += "<div class='statusDisplay'>No power station linked.</div>"
|
||||
else if(!power_station.teleporter_hub)
|
||||
data += "<div class='statusDisplay'>No hub linked.</div>"
|
||||
else
|
||||
data += "<div class='statusDisplay'>Current regime: [regime_set]<BR>"
|
||||
data += "Current target: [(!target) ? "None" : "[get_area(target)] [(regime_set != "Gate") ? "" : "Teleporter"]"]<BR>"
|
||||
if(calibrating)
|
||||
data += "Calibration: <font color='yellow'>In Progress</font>"
|
||||
else if(power_station.teleporter_hub.calibrated || power_station.teleporter_hub.accurate >= 3)
|
||||
data += "Calibration: <font color='green'>Optimal</font>"
|
||||
else
|
||||
data += "Calibration: <font color='red'>Sub-Optimal</font>"
|
||||
data += "</div><BR>"
|
||||
|
||||
data += "<A href='?src=\ref[src];regimeset=1'>Change regime</A><BR>"
|
||||
data += "<A href='?src=\ref[src];settarget=1'>Set target</A><BR>"
|
||||
if(locked)
|
||||
data += "<BR><A href='?src=\ref[src];locked=1'>Get target from memory</A><BR>"
|
||||
data += "<A href='?src=\ref[src];eject=1'>Eject GPS device</A><BR>"
|
||||
else
|
||||
data += "<BR><span class='linkOff'>Get target from memory</span><BR>"
|
||||
data += "<span class='linkOff'>Eject GPS device</span><BR>"
|
||||
|
||||
data += "<BR><A href='?src=\ref[src];calibrate=1'>Calibrate Hub</A>"
|
||||
|
||||
var/datum/browser/popup = new(user, "teleporter", name, 400, 400)
|
||||
popup.set_content(data)
|
||||
popup.open()
|
||||
return
|
||||
|
||||
/obj/machinery/computer/teleporter/Topic(href, href_list)
|
||||
if(..())
|
||||
return
|
||||
|
||||
if(href_list["eject"])
|
||||
eject()
|
||||
updateDialog()
|
||||
return
|
||||
|
||||
if(!check_hub_connection())
|
||||
say("Error: Unable to detect hub.")
|
||||
return
|
||||
if(calibrating)
|
||||
say("Error: Calibration in progress. Stand by.")
|
||||
return
|
||||
|
||||
if(href_list["regimeset"])
|
||||
power_station.engaged = 0
|
||||
power_station.teleporter_hub.update_icon()
|
||||
power_station.teleporter_hub.calibrated = 0
|
||||
reset_regime()
|
||||
if(href_list["settarget"])
|
||||
power_station.engaged = 0
|
||||
power_station.teleporter_hub.update_icon()
|
||||
power_station.teleporter_hub.calibrated = 0
|
||||
set_target(usr)
|
||||
if(href_list["locked"])
|
||||
power_station.engaged = 0
|
||||
power_station.teleporter_hub.update_icon()
|
||||
power_station.teleporter_hub.calibrated = 0
|
||||
target = get_turf(locked.locked_location)
|
||||
if(href_list["calibrate"])
|
||||
if(!target)
|
||||
say("Error: No target set to calibrate to.")
|
||||
return
|
||||
if(power_station.teleporter_hub.calibrated || power_station.teleporter_hub.accurate >= 3)
|
||||
say("Hub is already calibrated!")
|
||||
return
|
||||
say("Processing hub calibration to target...")
|
||||
|
||||
calibrating = 1
|
||||
spawn(50 * (3 - power_station.teleporter_hub.accurate)) //Better parts mean faster calibration
|
||||
calibrating = 0
|
||||
if(check_hub_connection())
|
||||
power_station.teleporter_hub.calibrated = 1
|
||||
say("Calibration complete.")
|
||||
else
|
||||
say("Error: Unable to detect hub.")
|
||||
updateDialog()
|
||||
|
||||
updateDialog()
|
||||
|
||||
/obj/machinery/computer/teleporter/proc/check_hub_connection()
|
||||
if(!power_station)
|
||||
return
|
||||
if(!power_station.teleporter_hub)
|
||||
return
|
||||
return 1
|
||||
|
||||
/obj/machinery/computer/teleporter/proc/reset_regime()
|
||||
target = null
|
||||
if(regime_set == "Teleporter")
|
||||
regime_set = "Gate"
|
||||
else
|
||||
regime_set = "Teleporter"
|
||||
|
||||
/obj/machinery/computer/teleporter/proc/eject()
|
||||
if(locked)
|
||||
locked.loc = loc
|
||||
locked = null
|
||||
|
||||
/obj/machinery/computer/teleporter/proc/set_target(mob/user)
|
||||
var/list/L = list()
|
||||
var/list/areaindex = list()
|
||||
if(regime_set == "Teleporter")
|
||||
for(var/obj/item/device/radio/beacon/R in GLOB.teleportbeacons)
|
||||
var/turf/T = get_turf(R)
|
||||
if(!T)
|
||||
continue
|
||||
if(T.z == ZLEVEL_CENTCOM || T.z > ZLEVEL_SPACEMAX)
|
||||
continue
|
||||
L[avoid_assoc_duplicate_keys(T.loc.name, areaindex)] = R
|
||||
|
||||
for(var/obj/item/weapon/implant/tracking/I in GLOB.tracked_implants)
|
||||
if(!I.imp_in || !ismob(I.loc))
|
||||
continue
|
||||
else
|
||||
var/mob/M = I.loc
|
||||
if(M.stat == DEAD)
|
||||
if(M.timeofdeath + 6000 < world.time)
|
||||
continue
|
||||
var/turf/T = get_turf(M)
|
||||
if(!T)
|
||||
continue
|
||||
if(T.z == ZLEVEL_CENTCOM)
|
||||
continue
|
||||
L[avoid_assoc_duplicate_keys(M.real_name, areaindex)] = I
|
||||
|
||||
var/desc = input("Please select a location to lock in.", "Locking Computer") as null|anything in L
|
||||
target = L[desc]
|
||||
|
||||
else
|
||||
var/list/S = power_station.linked_stations
|
||||
if(!S.len)
|
||||
to_chat(user, "<span class='alert'>No connected stations located.</span>")
|
||||
return
|
||||
for(var/obj/machinery/teleport/station/R in S)
|
||||
var/turf/T = get_turf(R)
|
||||
if(!T || !R.teleporter_hub || !R.teleporter_console)
|
||||
continue
|
||||
if(T.z == ZLEVEL_CENTCOM || T.z > ZLEVEL_SPACEMAX)
|
||||
continue
|
||||
L[avoid_assoc_duplicate_keys(T.loc.name, areaindex)] = R
|
||||
var/desc = input("Please select a station to lock in.", "Locking Computer") as null|anything in L
|
||||
target = L[desc]
|
||||
if(target)
|
||||
var/obj/machinery/teleport/station/trg = target
|
||||
trg.linked_stations |= power_station
|
||||
trg.stat &= ~NOPOWER
|
||||
if(trg.teleporter_hub)
|
||||
trg.teleporter_hub.stat &= ~NOPOWER
|
||||
trg.teleporter_hub.update_icon()
|
||||
if(trg.teleporter_console)
|
||||
trg.teleporter_console.stat &= ~NOPOWER
|
||||
trg.teleporter_console.update_icon()
|
||||
|
||||
/obj/machinery/teleport
|
||||
name = "teleport"
|
||||
icon = 'icons/obj/machines/teleporter.dmi'
|
||||
@@ -226,29 +8,16 @@
|
||||
name = "teleporter hub"
|
||||
desc = "It's the hub of a teleporting machine."
|
||||
icon_state = "tele0"
|
||||
var/accurate = 0
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 10
|
||||
active_power_usage = 2000
|
||||
circuit = /obj/item/weapon/circuitboard/machine/teleporter_hub
|
||||
var/accurate = FALSE
|
||||
var/obj/machinery/teleport/station/power_station
|
||||
var/calibrated //Calibration prevents mutation
|
||||
|
||||
/obj/machinery/teleport/hub/New()
|
||||
..()
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/teleporter_hub(null)
|
||||
B.apply_default_parts(src)
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/teleporter_hub
|
||||
name = "Teleporter Hub (Machine Board)"
|
||||
build_path = /obj/machinery/teleport/hub
|
||||
origin_tech = "programming=3;engineering=4;bluespace=4;materials=4"
|
||||
req_components = list(
|
||||
/obj/item/weapon/ore/bluespace_crystal = 3,
|
||||
/obj/item/weapon/stock_parts/matter_bin = 1)
|
||||
def_components = list(/obj/item/weapon/ore/bluespace_crystal = /obj/item/weapon/ore/bluespace_crystal/artificial)
|
||||
|
||||
/obj/machinery/teleport/hub/Initialize()
|
||||
..()
|
||||
. = ..()
|
||||
link_power_station()
|
||||
|
||||
/obj/machinery/teleport/hub/Destroy()
|
||||
@@ -327,8 +96,8 @@
|
||||
/obj/machinery/teleport/hub/proc/is_ready()
|
||||
. = !panel_open && !(stat & (BROKEN|NOPOWER)) && power_station && power_station.engaged && !(power_station.stat & (BROKEN|NOPOWER))
|
||||
|
||||
/obj/machinery/teleport/hub/syndicate/New()
|
||||
..()
|
||||
/obj/machinery/teleport/hub/syndicate/Initialize()
|
||||
. = ..()
|
||||
component_parts += new /obj/item/weapon/stock_parts/matter_bin/super(null)
|
||||
RefreshParts()
|
||||
|
||||
@@ -337,32 +106,18 @@
|
||||
name = "station"
|
||||
desc = "The power control station for a bluespace teleporter. Used for toggling power, and can activate a test-fire to prevent malfunctions."
|
||||
icon_state = "controller"
|
||||
var/engaged = 0
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 10
|
||||
active_power_usage = 2000
|
||||
circuit = /obj/item/weapon/circuitboard/machine/teleporter_station
|
||||
var/engaged = 0
|
||||
var/obj/machinery/computer/teleporter/teleporter_console
|
||||
var/obj/machinery/teleport/hub/teleporter_hub
|
||||
var/list/linked_stations = list()
|
||||
var/efficiency = 0
|
||||
|
||||
/obj/machinery/teleport/station/New()
|
||||
..()
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/teleporter_station(null)
|
||||
B.apply_default_parts(src)
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/teleporter_station
|
||||
name = "Teleporter Station (Machine Board)"
|
||||
build_path = /obj/machinery/teleport/station
|
||||
origin_tech = "programming=4;engineering=4;bluespace=4;plasmatech=3"
|
||||
req_components = list(
|
||||
/obj/item/weapon/ore/bluespace_crystal = 2,
|
||||
/obj/item/weapon/stock_parts/capacitor = 2,
|
||||
/obj/item/weapon/stock_parts/console_screen = 1)
|
||||
def_components = list(/obj/item/weapon/ore/bluespace_crystal = /obj/item/weapon/ore/bluespace_crystal/artificial)
|
||||
|
||||
/obj/machinery/teleport/station/Initialize()
|
||||
..()
|
||||
. = ..()
|
||||
link_console_and_hub()
|
||||
|
||||
/obj/machinery/teleport/station/RefreshParts()
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
. = ..()
|
||||
new /obj/machinery/conveyor/auto(locate(x - 1, y, z), WEST)
|
||||
new /obj/machinery/conveyor/auto(loc, WEST)
|
||||
new /obj/machinery/conveyor/auto(locate(x + 1, y, z), WEST)
|
||||
new /obj/machinery/conveyor/auto(locate(x + 1, y, z), WEST)
|
||||
countdown = new(src)
|
||||
countdown.start()
|
||||
|
||||
@@ -33,9 +33,7 @@
|
||||
to_chat(user, "It will be ready in [max(0, seconds_remaining)] seconds.")
|
||||
|
||||
/obj/machinery/transformer/Destroy()
|
||||
if(countdown)
|
||||
qdel(countdown)
|
||||
countdown = null
|
||||
QDEL_NULL(countdown)
|
||||
. = ..()
|
||||
|
||||
/obj/machinery/transformer/power_change()
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
max_integrity = 300
|
||||
integrity_failure = 100
|
||||
armor = list(melee = 20, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 70)
|
||||
circuit = /obj/item/weapon/circuitboard/machine/vendor
|
||||
var/active = 1 //No sales pitches if off!
|
||||
var/vend_ready = 1 //Are we ready to vend?? Is it time??
|
||||
|
||||
@@ -62,10 +63,7 @@
|
||||
/obj/machinery/vending/Initialize()
|
||||
. = ..()
|
||||
wires = new /datum/wires/vending(src)
|
||||
if(refill_canister) //constructable vending machine
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/vendor(null)
|
||||
B.apply_default_parts(src)
|
||||
else
|
||||
if(!refill_canister) //constructable vending machine
|
||||
build_inventory(products)
|
||||
build_inventory(contraband, 1)
|
||||
build_inventory(premium, 0, 1)
|
||||
@@ -77,46 +75,6 @@
|
||||
last_slogan = world.time + rand(0, slogan_delay)
|
||||
power_change()
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/vendor
|
||||
name = "Booze-O-Mat Vendor (Machine Board)"
|
||||
build_path = /obj/machinery/vending/boozeomat
|
||||
origin_tech = "programming=1"
|
||||
req_components = list(
|
||||
/obj/item/weapon/vending_refill/boozeomat = 3)
|
||||
|
||||
var/list/names_paths = list(/obj/machinery/vending/boozeomat = "Booze-O-Mat",
|
||||
/obj/machinery/vending/coffee = "Solar's Best Hot Drinks",
|
||||
/obj/machinery/vending/snack = "Getmore Chocolate Corp",
|
||||
/obj/machinery/vending/cola = "Robust Softdrinks",
|
||||
/obj/machinery/vending/cigarette = "ShadyCigs Deluxe",
|
||||
/obj/machinery/vending/autodrobe = "AutoDrobe",
|
||||
/obj/machinery/vending/clothing = "ClothesMate",
|
||||
/obj/machinery/vending/medical = "NanoMed Plus",
|
||||
/obj/machinery/vending/wallmed = "NanoMed")
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/vendor/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/weapon/screwdriver))
|
||||
var/position = names_paths.Find(build_path)
|
||||
position = (position == names_paths.len) ? 1 : (position + 1)
|
||||
var/typepath = names_paths[position]
|
||||
|
||||
to_chat(user, "<span class='notice'>You set the board to \"[names_paths[typepath]]\".</span>")
|
||||
set_type(typepath)
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/vendor/proc/set_type(var/obj/machinery/vending/typepath)
|
||||
build_path = typepath
|
||||
name = "[names_paths[build_path]] Vendor (Machine Board)"
|
||||
req_components = list(initial(typepath.refill_canister) = initial(typepath.refill_count))
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/vendor/apply_default_parts(obj/machinery/M)
|
||||
for(var/typepath in names_paths)
|
||||
if(istype(M, typepath))
|
||||
set_type(typepath)
|
||||
break
|
||||
..()
|
||||
|
||||
/obj/machinery/vending/Destroy()
|
||||
QDEL_NULL(wires)
|
||||
QDEL_NULL(coin)
|
||||
@@ -795,7 +753,7 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C
|
||||
desc = "Uh oh!"
|
||||
|
||||
/obj/machinery/vending/cola/random/Initialize()
|
||||
..()
|
||||
. = ..()
|
||||
var/T = pick(subtypesof(/obj/machinery/vending/cola) - /obj/machinery/vending/cola/random)
|
||||
new T(get_turf(src))
|
||||
qdel(src)
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
dir = EAST
|
||||
icon = 'icons/mecha/mech_bay.dmi'
|
||||
icon_state = "recharge_port"
|
||||
circuit = /obj/item/weapon/circuitboard/machine/mech_recharger
|
||||
var/obj/mecha/recharging_mech
|
||||
var/obj/machinery/computer/mech_bay_power_console/recharge_console
|
||||
var/max_charge = 50
|
||||
@@ -24,20 +25,10 @@
|
||||
var/repairability = 0
|
||||
var/turf/recharging_turf = null
|
||||
|
||||
/obj/machinery/mech_bay_recharge_port/New()
|
||||
..()
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/mech_recharger(null)
|
||||
B.apply_default_parts(src)
|
||||
/obj/machinery/mech_bay_recharge_port/Initialize()
|
||||
. = ..()
|
||||
recharging_turf = get_step(loc, dir)
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/mech_recharger
|
||||
name = "Mechbay Recharger (Machine Board)"
|
||||
build_path = /obj/machinery/mech_bay_recharge_port
|
||||
origin_tech = "programming=3;powerstorage=3;engineering=3"
|
||||
req_components = list(
|
||||
/obj/item/stack/cable_coil = 2,
|
||||
/obj/item/weapon/stock_parts/capacitor = 5)
|
||||
|
||||
/obj/machinery/mech_bay_recharge_port/RefreshParts()
|
||||
var/MC
|
||||
for(var/obj/item/weapon/stock_parts/capacitor/C in component_parts)
|
||||
@@ -149,5 +140,5 @@
|
||||
add_overlay("recharge_comp_on")
|
||||
|
||||
/obj/machinery/computer/mech_bay_power_console/Initialize()
|
||||
..()
|
||||
. = ..()
|
||||
reconnect()
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
idle_power_usage = 20
|
||||
active_power_usage = 5000
|
||||
req_access = list(ACCESS_ROBOTICS)
|
||||
circuit = /obj/item/weapon/circuitboard/machine/mechfab
|
||||
var/time_coeff = 1
|
||||
var/component_coeff = 1
|
||||
var/datum/material_container/materials
|
||||
@@ -34,22 +35,10 @@
|
||||
"Misc"
|
||||
)
|
||||
|
||||
/obj/machinery/mecha_part_fabricator/New()
|
||||
..()
|
||||
/obj/machinery/mecha_part_fabricator/Initialize()
|
||||
files = new /datum/research(src) //Setup the research data holder.
|
||||
materials = new(src, list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM, MAT_BLUESPACE))
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/mechfab(null)
|
||||
B.apply_default_parts(src)
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/mechfab
|
||||
name = "Exosuit Fabricator (Machine Board)"
|
||||
build_path = /obj/machinery/mecha_part_fabricator
|
||||
origin_tech = "programming=2;engineering=2"
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/matter_bin = 2,
|
||||
/obj/item/weapon/stock_parts/manipulator = 1,
|
||||
/obj/item/weapon/stock_parts/micro_laser = 1,
|
||||
/obj/item/weapon/stock_parts/console_screen = 1)
|
||||
return ..()
|
||||
|
||||
/obj/machinery/mecha_part_fabricator/RefreshParts()
|
||||
var/T = 0
|
||||
|
||||
@@ -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()
|
||||
@@ -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"
|
||||
@@ -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)
|
||||
@@ -20,15 +20,13 @@
|
||||
var/special = FALSE
|
||||
var/special_name = "special function"
|
||||
|
||||
/obj/machinery/implantchair/New()
|
||||
..()
|
||||
/obj/machinery/implantchair/Initialize()
|
||||
. = ..()
|
||||
open_machine()
|
||||
update_icon()
|
||||
|
||||
|
||||
/obj/machinery/implantchair/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \
|
||||
datum/tgui/master_ui = null, datum/ui_state/state = GLOB.notcontained_state)
|
||||
|
||||
/obj/machinery/implantchair/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.notcontained_state)
|
||||
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
|
||||
if(!ui)
|
||||
ui = new(user, src, ui_key, "implantchair", name, 375, 280, master_ui, state)
|
||||
|
||||
@@ -52,8 +52,7 @@
|
||||
/obj/machinery/vr_sleeper/Destroy()
|
||||
open_machine()
|
||||
cleanup_vr_human()
|
||||
qdel(sparks)
|
||||
sparks = null
|
||||
QDEL_NULL(sparks)
|
||||
return ..()
|
||||
|
||||
|
||||
|
||||
@@ -9,9 +9,10 @@
|
||||
max_integrity = 350
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 100, bomb = 0, bio = 100, rad = 100, fire = 30, acid = 30)
|
||||
layer = ABOVE_WINDOW_LAYER
|
||||
state_open = FALSE
|
||||
circuit = /obj/item/weapon/circuitboard/machine/cryo_tube
|
||||
|
||||
var/on = FALSE
|
||||
state_open = FALSE
|
||||
var/autoeject = FALSE
|
||||
var/volume = 100
|
||||
|
||||
@@ -35,8 +36,6 @@
|
||||
/obj/machinery/atmospherics/components/unary/cryo_cell/Initialize()
|
||||
. = ..()
|
||||
initialize_directions = dir
|
||||
var/obj/item/weapon/circuitboard/machine/cryo_tube/B = new
|
||||
B.apply_default_parts(src)
|
||||
|
||||
radio = new(src)
|
||||
radio.keyslot = new radio_key
|
||||
@@ -44,16 +43,6 @@
|
||||
radio.canhear_range = 0
|
||||
radio.recalculateChannels()
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/cryo_tube
|
||||
name = "Cryotube (Machine Board)"
|
||||
build_path = /obj/machinery/atmospherics/components/unary/cryo_cell
|
||||
origin_tech = "programming=4;biotech=3;engineering=4;plasmatech=3"
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/matter_bin = 1,
|
||||
/obj/item/stack/cable_coil = 1,
|
||||
/obj/item/weapon/stock_parts/console_screen = 1,
|
||||
/obj/item/stack/sheet/glass = 2)
|
||||
|
||||
/obj/machinery/atmospherics/components/unary/cryo_cell/on_construction()
|
||||
..(dir, dir)
|
||||
|
||||
@@ -69,11 +58,8 @@
|
||||
conduction_coefficient = initial(conduction_coefficient) * C
|
||||
|
||||
/obj/machinery/atmospherics/components/unary/cryo_cell/Destroy()
|
||||
qdel(radio)
|
||||
radio = null
|
||||
if(beaker)
|
||||
qdel(beaker)
|
||||
beaker = null
|
||||
QDEL_NULL(radio)
|
||||
QDEL_NULL(beaker)
|
||||
return ..()
|
||||
|
||||
/obj/machinery/atmospherics/components/unary/cryo_cell/contents_explosion(severity, target)
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
max_integrity = 300
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 100, bomb = 0, bio = 100, rad = 100, fire = 80, acid = 30)
|
||||
layer = OBJ_LAYER
|
||||
circuit = /obj/item/weapon/circuitboard/machine/thermomachine
|
||||
|
||||
var/on = FALSE
|
||||
var/min_temperature = 0
|
||||
@@ -18,49 +19,9 @@
|
||||
var/heat_capacity = 0
|
||||
var/interactive = TRUE // So mapmakers can disable interaction.
|
||||
|
||||
/obj/machinery/atmospherics/components/unary/thermomachine/New()
|
||||
..()
|
||||
initialize_directions = dir
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/thermomachine(null)
|
||||
B.apply_default_parts(src)
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/thermomachine
|
||||
name = "Thermomachine (Machine Board)"
|
||||
desc = "You can use a screwdriver to switch between heater and freezer."
|
||||
origin_tech = "programming=3;plasmatech=3"
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/matter_bin = 2,
|
||||
/obj/item/weapon/stock_parts/micro_laser = 2,
|
||||
/obj/item/stack/cable_coil = 1,
|
||||
/obj/item/weapon/stock_parts/console_screen = 1)
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/thermomachine/Initialize()
|
||||
/obj/machinery/atmospherics/components/unary/thermomachine/Initialize()
|
||||
. = ..()
|
||||
if(prob(50))
|
||||
name = "Freezer (Machine Board)"
|
||||
build_path = /obj/machinery/atmospherics/components/unary/thermomachine/freezer
|
||||
else
|
||||
name = "Heater (Machine Board)"
|
||||
build_path = /obj/machinery/atmospherics/components/unary/thermomachine/heater
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/thermomachine/attackby(obj/item/I, mob/user, params)
|
||||
var/obj/item/weapon/circuitboard/machine/freezer = /obj/item/weapon/circuitboard/machine/thermomachine/freezer
|
||||
var/obj/item/weapon/circuitboard/machine/heater = /obj/item/weapon/circuitboard/machine/thermomachine/heater
|
||||
var/obj/item/weapon/circuitboard/machine/newtype
|
||||
|
||||
if(istype(I, /obj/item/weapon/screwdriver))
|
||||
var/new_setting = "Heater"
|
||||
playsound(src.loc, I.usesound, 50, 1)
|
||||
if(build_path == initial(heater.build_path))
|
||||
newtype = freezer
|
||||
new_setting = "Freezer"
|
||||
else
|
||||
newtype = heater
|
||||
name = initial(newtype.name)
|
||||
build_path = initial(newtype.build_path)
|
||||
to_chat(user, "<span class='notice'>You change the circuitboard setting to \"[new_setting]\".</span>")
|
||||
else
|
||||
return ..()
|
||||
initialize_directions = dir
|
||||
|
||||
/obj/machinery/atmospherics/components/unary/thermomachine/on_construction()
|
||||
..(dir,dir)
|
||||
@@ -202,15 +163,7 @@
|
||||
icon_state_open = "freezer-o"
|
||||
max_temperature = T20C
|
||||
min_temperature = 170
|
||||
|
||||
/obj/machinery/atmospherics/components/unary/thermomachine/freezer/New()
|
||||
..()
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/thermomachine/freezer(null)
|
||||
B.apply_default_parts(src)
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/thermomachine/freezer
|
||||
name = "Freezer (Machine Board)"
|
||||
build_path = /obj/machinery/atmospherics/components/unary/thermomachine/freezer
|
||||
circuit = /obj/item/weapon/circuitboard/machine/thermomachine/freezer
|
||||
|
||||
/obj/machinery/atmospherics/components/unary/thermomachine/freezer/RefreshParts()
|
||||
..()
|
||||
@@ -227,15 +180,7 @@
|
||||
icon_state_open = "heater-o"
|
||||
max_temperature = 140
|
||||
min_temperature = T20C
|
||||
|
||||
/obj/machinery/atmospherics/components/unary/thermomachine/heater/New()
|
||||
..()
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/thermomachine/heater(null)
|
||||
B.apply_default_parts(src)
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/thermomachine/heater
|
||||
name = "Heater (Machine Board)"
|
||||
build_path = /obj/machinery/atmospherics/components/unary/thermomachine/heater
|
||||
circuit = /obj/item/weapon/circuitboard/machine/thermomachine/heater
|
||||
|
||||
/obj/machinery/atmospherics/components/unary/thermomachine/heater/RefreshParts()
|
||||
..()
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
volume = 1000
|
||||
|
||||
/obj/machinery/portable_atmospherics/pump/Initialize()
|
||||
..()
|
||||
. = ..()
|
||||
pump = new(src, FALSE)
|
||||
pump.on = TRUE
|
||||
pump.stat = 0
|
||||
@@ -26,8 +26,7 @@
|
||||
var/turf/T = get_turf(src)
|
||||
T.assume_air(air_contents)
|
||||
air_update_turf()
|
||||
qdel(pump)
|
||||
pump = null
|
||||
QDEL_NULL(pump)
|
||||
return ..()
|
||||
|
||||
/obj/machinery/portable_atmospherics/pump/update_icon()
|
||||
|
||||
@@ -29,13 +29,11 @@
|
||||
var/reset_path = /obj/effect/ctf/flag_reset
|
||||
|
||||
/obj/item/weapon/twohanded/ctf/Destroy()
|
||||
if(reset)
|
||||
qdel(reset)
|
||||
reset = null
|
||||
. = ..()
|
||||
QDEL_NULL(reset)
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/twohanded/ctf/Initialize()
|
||||
..()
|
||||
. = ..()
|
||||
SET_SECONDARY_FLAG(src, SLOWS_WHILE_IN_HAND)
|
||||
if(!reset)
|
||||
reset = new reset_path(get_turf(src))
|
||||
|
||||
@@ -22,7 +22,7 @@ GLOBAL_DATUM(the_gateway, /obj/machinery/gateway/centerstation)
|
||||
switch(dir)
|
||||
if(SOUTH,SOUTHEAST,SOUTHWEST)
|
||||
density = FALSE
|
||||
..()
|
||||
return ..()
|
||||
|
||||
/obj/machinery/gateway/proc/toggleoff()
|
||||
for(var/obj/machinery/gateway/G in linked)
|
||||
@@ -75,10 +75,13 @@ GLOBAL_DATUM(the_gateway, /obj/machinery/gateway/centerstation)
|
||||
/obj/machinery/gateway/proc/toggleon(mob/user)
|
||||
return FALSE
|
||||
|
||||
/obj/machinery/gateway/centerstation/New()
|
||||
..()
|
||||
/obj/machinery/gateway/centerstation/Initialize()
|
||||
. = ..()
|
||||
if(!GLOB.the_gateway)
|
||||
GLOB.the_gateway = src
|
||||
update_icon()
|
||||
wait = world.time + config.gateway_delay //+ thirty minutes default
|
||||
awaygate = locate(/obj/machinery/gateway/centeraway)
|
||||
|
||||
/obj/machinery/gateway/centerstation/Destroy()
|
||||
if(GLOB.the_gateway == src)
|
||||
@@ -96,12 +99,6 @@ GLOBAL_DATUM(the_gateway, /obj/machinery/gateway/centerstation)
|
||||
var/obj/machinery/gateway/centeraway/awaygate = null
|
||||
can_link = TRUE
|
||||
|
||||
/obj/machinery/gateway/centerstation/Initialize()
|
||||
..()
|
||||
update_icon()
|
||||
wait = world.time + config.gateway_delay //+ thirty minutes default
|
||||
awaygate = locate(/obj/machinery/gateway/centeraway)
|
||||
|
||||
/obj/machinery/gateway/centerstation/update_icon()
|
||||
if(active)
|
||||
icon_state = "oncenter"
|
||||
@@ -182,7 +179,7 @@ GLOBAL_DATUM(the_gateway, /obj/machinery/gateway/centerstation)
|
||||
|
||||
|
||||
/obj/machinery/gateway/centeraway/Initialize()
|
||||
..()
|
||||
. = ..()
|
||||
update_icon()
|
||||
stationgate = locate(/obj/machinery/gateway/centerstation)
|
||||
|
||||
|
||||
@@ -18,8 +18,8 @@
|
||||
circuit = /obj/item/weapon/circuitboard/computer/cargo/request
|
||||
requestonly = TRUE
|
||||
|
||||
/obj/machinery/computer/cargo/New()
|
||||
..()
|
||||
/obj/machinery/computer/cargo/Initialize()
|
||||
. = ..()
|
||||
var/obj/item/weapon/circuitboard/computer/cargo/board = circuit
|
||||
contraband = board.contraband
|
||||
emagged = board.emagged
|
||||
|
||||
@@ -1778,9 +1778,7 @@
|
||||
name = "Shield System Control Board"
|
||||
cost = 5000
|
||||
special = TRUE
|
||||
contains = list(
|
||||
/obj/item/weapon/circuitboard/machine/computer/sat_control
|
||||
)
|
||||
contains = list(/obj/item/weapon/circuitboard/computer/sat_control)
|
||||
crate_name= "shield control board crate"
|
||||
|
||||
/datum/supply_pack/misc/bicycle
|
||||
|
||||
@@ -18,7 +18,7 @@ insert ascii eagle on american flag background here
|
||||
container_type = OPENCONTAINER
|
||||
var/obj/item/frying = null //What's being fried RIGHT NOW?
|
||||
var/cook_time = 0
|
||||
var/static/list/blacklisted_items = typecacheof(list(
|
||||
var/static/list/deepfry_blacklisted_items = typecacheof(list(
|
||||
/obj/item/weapon/screwdriver,
|
||||
/obj/item/weapon/crowbar,
|
||||
/obj/item/weapon/wrench,
|
||||
@@ -28,14 +28,8 @@ insert ascii eagle on american flag background here
|
||||
/obj/item/weapon/reagent_containers/glass,
|
||||
/obj/item/weapon/storage/part_replacer))
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/deep_fryer
|
||||
name = "circuit board (Deep Fryer)"
|
||||
build_path = /obj/machinery/deepfryer
|
||||
origin_tech = "programming=1"
|
||||
req_components = list(/obj/item/weapon/stock_parts/micro_laser = 1)
|
||||
|
||||
/obj/machinery/deepfryer/New()
|
||||
..()
|
||||
/obj/machinery/deepfryer/Initialize()
|
||||
. = ..()
|
||||
create_reagents(50)
|
||||
reagents.add_reagent("nutriment", 25)
|
||||
component_parts = list()
|
||||
@@ -62,7 +56,7 @@ insert ascii eagle on american flag background here
|
||||
else if(default_deconstruction_screwdriver(user, "fryer_off", "fryer_off" ,I)) //where's the open maint panel icon?!
|
||||
return
|
||||
else
|
||||
if(is_type_in_typecache(I, blacklisted_items))
|
||||
if(is_type_in_typecache(I, deepfry_blacklisted_items))
|
||||
. = ..()
|
||||
else if(user.drop_item() && !frying)
|
||||
to_chat(user, "<span class='notice'>You put [I] into [src].</span>")
|
||||
|
||||
@@ -18,17 +18,15 @@
|
||||
container_type = OPENCONTAINER
|
||||
var/obj/item/weapon/reagent_containers/mixer
|
||||
|
||||
/obj/machinery/food_cart/New()
|
||||
..()
|
||||
/obj/machinery/food_cart/Initialize()
|
||||
. = ..()
|
||||
create_reagents(LIQUID_CAPACIY)
|
||||
reagents.set_reacting(FALSE)
|
||||
mixer = new /obj/item/weapon/reagent_containers(src, MIXER_CAPACITY)
|
||||
mixer.name = "Mixer"
|
||||
|
||||
/obj/machinery/food_cart/Destroy()
|
||||
if(mixer)
|
||||
qdel(mixer)
|
||||
mixer = null
|
||||
QDEL_NULL(mixer)
|
||||
return ..()
|
||||
|
||||
/obj/machinery/food_cart/attack_hand(mob/user)
|
||||
|
||||
@@ -6,58 +6,21 @@
|
||||
icon_state = "grinder"
|
||||
density = TRUE
|
||||
anchored = TRUE
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 2
|
||||
active_power_usage = 500
|
||||
circuit = /obj/item/weapon/circuitboard/machine/gibber
|
||||
|
||||
var/operating = FALSE //Is it on?
|
||||
var/dirty = 0 // Does it need cleaning?
|
||||
var/gibtime = 40 // Time from starting until meat appears
|
||||
var/meat_produced = 0
|
||||
var/ignore_clothing = 0
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 2
|
||||
active_power_usage = 500
|
||||
|
||||
//auto-gibs anything that bumps into it
|
||||
/obj/machinery/gibber/autogibber
|
||||
var/turf/input_plate
|
||||
|
||||
/obj/machinery/gibber/autogibber/Initialize()
|
||||
. = ..()
|
||||
for(var/i in GLOB.cardinals)
|
||||
var/obj/machinery/mineral/input/input_obj = locate() in get_step(loc, i)
|
||||
if(input_obj)
|
||||
if(isturf(input_obj.loc))
|
||||
input_plate = input_obj.loc
|
||||
qdel(input_obj)
|
||||
break
|
||||
|
||||
if(!input_plate)
|
||||
CRASH("Didn't find an input plate.")
|
||||
return
|
||||
|
||||
/obj/machinery/gibber/autogibber/CollidedWith(atom/movable/AM)
|
||||
if(!input_plate)
|
||||
return
|
||||
|
||||
if(ismob(AM))
|
||||
var/mob/M = AM
|
||||
|
||||
if(M.loc == input_plate)
|
||||
M.loc = src
|
||||
M.gib()
|
||||
|
||||
|
||||
/obj/machinery/gibber/Initialize()
|
||||
. = ..()
|
||||
add_overlay("grjam")
|
||||
var/obj/item/weapon/circuitboard/machine/gibber/B = new
|
||||
B.apply_default_parts(src)
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/gibber
|
||||
name = "Gibber (Machine Board)"
|
||||
build_path = /obj/machinery/gibber
|
||||
origin_tech = "programming=2;engineering=2"
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/matter_bin = 1,
|
||||
/obj/item/weapon/stock_parts/manipulator = 1)
|
||||
|
||||
/obj/machinery/gibber/RefreshParts()
|
||||
var/gib_time = 40
|
||||
@@ -234,3 +197,32 @@
|
||||
pixel_x = initial(pixel_x) //return to its spot after shaking
|
||||
operating = FALSE
|
||||
update_icon()
|
||||
|
||||
//auto-gibs anything that bumps into it
|
||||
/obj/machinery/gibber/autogibber
|
||||
var/turf/input_plate
|
||||
|
||||
/obj/machinery/gibber/autogibber/Initialize()
|
||||
. = ..()
|
||||
for(var/i in GLOB.cardinals)
|
||||
var/obj/machinery/mineral/input/input_obj = locate() in get_step(loc, i)
|
||||
if(input_obj)
|
||||
if(isturf(input_obj.loc))
|
||||
input_plate = input_obj.loc
|
||||
qdel(input_obj)
|
||||
break
|
||||
|
||||
if(!input_plate)
|
||||
CRASH("Didn't find an input plate.")
|
||||
return
|
||||
|
||||
/obj/machinery/gibber/autogibber/CollidedWith(atom/movable/AM)
|
||||
if(!input_plate)
|
||||
return
|
||||
|
||||
if(ismob(AM))
|
||||
var/mob/M = AM
|
||||
|
||||
if(M.loc == input_plate)
|
||||
M.loc = src
|
||||
M.gib()
|
||||
@@ -14,11 +14,19 @@
|
||||
anchored = FALSE
|
||||
use_power = NO_POWER_USE
|
||||
layer = BELOW_OBJ_LAYER
|
||||
container_type = OPENCONTAINER
|
||||
max_integrity = 300
|
||||
var/list/product_types = list()
|
||||
var/dispense_flavour = ICECREAM_VANILLA
|
||||
var/flavour_name = "vanilla"
|
||||
container_type = OPENCONTAINER
|
||||
max_integrity = 300
|
||||
var/static/list/icecream_vat_reagents = list(
|
||||
"milk" = 5,
|
||||
"flour" = 5,
|
||||
"sugar" = 5,
|
||||
"ice" = 5,
|
||||
"cocoa" = 5,
|
||||
"berryjuice" = 5,
|
||||
"singulo" = 5)
|
||||
|
||||
/obj/machinery/icecream_vat/proc/get_ingredient_list(type)
|
||||
switch(type)
|
||||
@@ -52,19 +60,14 @@
|
||||
return "vanilla"
|
||||
|
||||
|
||||
/obj/machinery/icecream_vat/New()
|
||||
..()
|
||||
/obj/machinery/icecream_vat/Initialize()
|
||||
. = ..()
|
||||
while(product_types.len < 6)
|
||||
product_types.Add(5)
|
||||
create_reagents()
|
||||
reagents.set_reacting(FALSE)
|
||||
reagents.add_reagent("milk", 5)
|
||||
reagents.add_reagent("flour", 5)
|
||||
reagents.add_reagent("sugar", 5)
|
||||
reagents.add_reagent("ice", 5)
|
||||
reagents.add_reagent("cocoa", 5)
|
||||
reagents.add_reagent("berryjuice", 5)
|
||||
reagents.add_reagent("singulo", 5)
|
||||
for(var/reagent in icecream_vat_reagents)
|
||||
reagents.add_reagent(reagent, icecream_vat_reagents[reagent])
|
||||
|
||||
/obj/machinery/icecream_vat/attack_hand(mob/user)
|
||||
user.set_machine(src)
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 5
|
||||
active_power_usage = 100
|
||||
circuit = /obj/item/weapon/circuitboard/machine/microwave
|
||||
var/operating = FALSE // Is it on?
|
||||
var/dirty = 0 // = {0..100} Does it need cleaning?
|
||||
var/broken = 0 // ={0,1,2} How broken is it???
|
||||
@@ -21,22 +22,9 @@
|
||||
* Initialising
|
||||
********************/
|
||||
|
||||
/obj/machinery/microwave/New()
|
||||
/obj/machinery/microwave/Initialize()
|
||||
. = ..()
|
||||
create_reagents(100)
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/microwave(null)
|
||||
B.apply_default_parts(src)
|
||||
..()
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/microwave
|
||||
name = "Microwave (Machine Board)"
|
||||
build_path = /obj/machinery/microwave
|
||||
origin_tech = "programming=2;magnets=2"
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/micro_laser = 1,
|
||||
/obj/item/weapon/stock_parts/matter_bin = 1,
|
||||
/obj/item/stack/cable_coil = 2,
|
||||
/obj/item/weapon/stock_parts/console_screen = 1,
|
||||
/obj/item/stack/sheet/glass = 1)
|
||||
|
||||
/obj/machinery/microwave/RefreshParts()
|
||||
var/E
|
||||
|
||||
@@ -9,24 +9,11 @@
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 5
|
||||
active_power_usage = 50
|
||||
circuit = /obj/item/weapon/circuitboard/machine/monkey_recycler
|
||||
var/grinded = 0
|
||||
var/required_grind = 5
|
||||
var/cube_production = 1
|
||||
|
||||
|
||||
/obj/machinery/monkey_recycler/New()
|
||||
..()
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/monkey_recycler(null)
|
||||
B.apply_default_parts(src)
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/monkey_recycler
|
||||
name = "Monkey Recycler (Machine Board)"
|
||||
build_path = /obj/machinery/monkey_recycler
|
||||
origin_tech = "programming=1;biotech=2"
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/matter_bin = 1,
|
||||
/obj/item/weapon/stock_parts/manipulator = 1)
|
||||
|
||||
/obj/machinery/monkey_recycler/RefreshParts()
|
||||
var/req_grind = 5
|
||||
var/cubes_made = 1
|
||||
|
||||
@@ -7,44 +7,15 @@
|
||||
layer = BELOW_OBJ_LAYER
|
||||
density = TRUE
|
||||
anchored = TRUE
|
||||
var/broken = 0
|
||||
var/processing = FALSE
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 5
|
||||
active_power_usage = 50
|
||||
circuit = /obj/item/weapon/circuitboard/machine/processor
|
||||
var/broken = 0
|
||||
var/processing = FALSE
|
||||
var/rating_speed = 1
|
||||
var/rating_amount = 1
|
||||
|
||||
/obj/machinery/processor/New()
|
||||
..()
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/processor(null)
|
||||
B.apply_default_parts(src)
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/processor
|
||||
name = "Food Processor (Machine Board)"
|
||||
build_path = /obj/machinery/processor
|
||||
origin_tech = "programming=1"
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/matter_bin = 1,
|
||||
/obj/item/weapon/stock_parts/manipulator = 1)
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/processor
|
||||
name = "Food Processor (Machine Board)"
|
||||
build_path = /obj/machinery/processor
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/processor/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/weapon/screwdriver))
|
||||
if(build_path == /obj/machinery/processor)
|
||||
name = "Slime Processor (Machine Board)"
|
||||
build_path = /obj/machinery/processor/slime
|
||||
to_chat(user, "<span class='notice'>Name protocols successfully updated.</span>")
|
||||
else
|
||||
name = "Food Processor (Machine Board)"
|
||||
build_path = /obj/machinery/processor
|
||||
to_chat(user, "<span class='notice'>Defaulting name protocols.</span>")
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/machinery/processor/RefreshParts()
|
||||
for(var/obj/item/weapon/stock_parts/matter_bin/B in component_parts)
|
||||
rating_amount = B.rating
|
||||
@@ -300,11 +271,7 @@
|
||||
name = "Slime processor"
|
||||
desc = "An industrial grinder with a sticker saying appropriated for science department. Keep hands clear of intake area while operating."
|
||||
|
||||
/obj/machinery/processor/slime/New()
|
||||
..()
|
||||
/obj/machinery/processor/slime/Initialize()
|
||||
. = ..()
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/processor/slime(null)
|
||||
B.apply_default_parts(src)
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/processor/slime
|
||||
name = "Slime Processor (Machine Board)"
|
||||
build_path = /obj/machinery/processor/slime
|
||||
B.apply_default_parts(src)
|
||||
@@ -12,13 +12,14 @@
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 5
|
||||
active_power_usage = 100
|
||||
circuit = /obj/item/weapon/circuitboard/machine/smartfridge
|
||||
var/max_n_of_items = 1500
|
||||
var/icon_on = "smartfridge"
|
||||
var/icon_off = "smartfridge-off"
|
||||
var/list/initial_contents
|
||||
|
||||
/obj/machinery/smartfridge/Initialize()
|
||||
..()
|
||||
. = ..()
|
||||
create_reagents()
|
||||
reagents.set_reacting(FALSE)
|
||||
|
||||
@@ -30,40 +31,6 @@
|
||||
for(var/i in 1 to amount)
|
||||
load(new typekey(src))
|
||||
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/smartfridge(null)
|
||||
B.apply_default_parts(src)
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/smartfridge
|
||||
name = "Smartfridge (Machine Board)"
|
||||
build_path = /obj/machinery/smartfridge
|
||||
origin_tech = "programming=1"
|
||||
req_components = list(/obj/item/weapon/stock_parts/matter_bin = 1)
|
||||
var/static/list/fridges = list(/obj/machinery/smartfridge = "plant produce",
|
||||
/obj/machinery/smartfridge/food = "food",
|
||||
/obj/machinery/smartfridge/drinks = "drinks",
|
||||
/obj/machinery/smartfridge/extract = "slimes",
|
||||
/obj/machinery/smartfridge/chemistry = "chems",
|
||||
/obj/machinery/smartfridge/chemistry/virology = "viruses",
|
||||
/obj/machinery/smartfridge/disks = "disks")
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/smartfridge/New(loc, new_type)
|
||||
if(new_type)
|
||||
build_path = new_type
|
||||
..()
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/smartfridge/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/weapon/screwdriver))
|
||||
var/position = fridges.Find(build_path, fridges)
|
||||
position = (position == fridges.len) ? 1 : (position + 1)
|
||||
build_path = fridges[position]
|
||||
to_chat(user, "<span class='notice'>You set the board to [fridges[build_path]].</span>")
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/smartfridge/examine(mob/user)
|
||||
..()
|
||||
to_chat(user, "<span class='info'>[src] is set to [fridges[build_path]]. You can use a screwdriver to reconfigure it.</span>")
|
||||
|
||||
/obj/machinery/smartfridge/RefreshParts()
|
||||
for(var/obj/item/weapon/stock_parts/matter_bin/B in component_parts)
|
||||
max_n_of_items = 1500 * B.rating
|
||||
@@ -255,8 +222,8 @@
|
||||
icon_off = "drying_rack"
|
||||
var/drying = FALSE
|
||||
|
||||
/obj/machinery/smartfridge/drying_rack/New()
|
||||
..()
|
||||
/obj/machinery/smartfridge/drying_rack/Initialize()
|
||||
. = ..()
|
||||
if(component_parts && component_parts.len)
|
||||
component_parts.Cut()
|
||||
component_parts = null
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
anchored = TRUE
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 40
|
||||
circuit = /obj/item/weapon/circuitboard/machine/biogenerator
|
||||
var/processing = FALSE
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker = null
|
||||
var/points = 0
|
||||
@@ -18,17 +19,13 @@
|
||||
var/list/show_categories = list("Food", "Botany Chemicals", "Leather and Cloth")
|
||||
var/list/timesFiveCategories = list("Food", "Botany Chemicals")
|
||||
|
||||
/obj/machinery/biogenerator/New()
|
||||
..()
|
||||
/obj/machinery/biogenerator/Initialize()
|
||||
. = ..()
|
||||
files = new /datum/research/biogenerator(src)
|
||||
create_reagents(1000)
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/biogenerator(null)
|
||||
B.apply_default_parts(src)
|
||||
|
||||
/obj/machinery/biogenerator/Destroy()
|
||||
if(beaker)
|
||||
qdel(beaker)
|
||||
beaker = null
|
||||
QDEL_NULL(beaker)
|
||||
return ..()
|
||||
|
||||
/obj/machinery/biogenerator/contents_explosion(severity, target)
|
||||
@@ -43,16 +40,6 @@
|
||||
update_icon()
|
||||
updateUsrDialog()
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/biogenerator
|
||||
name = "Biogenerator (Machine Board)"
|
||||
build_path = /obj/machinery/biogenerator
|
||||
origin_tech = "programming=2;biotech=3;materials=3"
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/matter_bin = 1,
|
||||
/obj/item/weapon/stock_parts/manipulator = 1,
|
||||
/obj/item/stack/cable_coil = 1,
|
||||
/obj/item/weapon/stock_parts/console_screen = 1)
|
||||
|
||||
/obj/machinery/biogenerator/RefreshParts()
|
||||
var/E = 0
|
||||
var/P = 0
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
icon_state = "dnamod"
|
||||
density = TRUE
|
||||
anchored = TRUE
|
||||
circuit = /obj/item/weapon/circuitboard/machine/plantgenes
|
||||
|
||||
var/obj/item/seeds/seed
|
||||
var/obj/item/weapon/disk/plantgene/disk
|
||||
@@ -22,21 +23,6 @@
|
||||
var/min_wchance = 67
|
||||
var/min_wrate = 10
|
||||
|
||||
/obj/machinery/plantgenes/New()
|
||||
..()
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/plantgenes(null)
|
||||
B.apply_default_parts(src)
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/plantgenes
|
||||
name = "Plant DNA Manipulator (Machine Board)"
|
||||
build_path = /obj/machinery/plantgenes
|
||||
origin_tech = "programming=3;biotech=3"
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/manipulator = 1,
|
||||
/obj/item/weapon/stock_parts/micro_laser = 1,
|
||||
/obj/item/weapon/stock_parts/console_screen = 1,
|
||||
/obj/item/weapon/stock_parts/scanning_module = 1)
|
||||
|
||||
/obj/machinery/plantgenes/RefreshParts() // Comments represent the max you can set per tier, respectively. seeds.dm [219] clamps these for us but we don't want to mislead the viewer.
|
||||
for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts)
|
||||
if(M.rating > 3)
|
||||
@@ -421,23 +407,9 @@
|
||||
seed.name = "experimental " + seed.name
|
||||
seed.icon_state = "seed-x"
|
||||
|
||||
|
||||
|
||||
// Gene modder for seed vault ship, built with high tech alien parts.
|
||||
/obj/machinery/plantgenes/seedvault/New()
|
||||
..()
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/plantgenes/vault(null)
|
||||
B.apply_default_parts(src)
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/plantgenes/vault
|
||||
name = "alien board (Plant DNA Manipulator)"
|
||||
icon_state = "abductor_mod"
|
||||
origin_tech = "programming=5;biotech=5"
|
||||
// It wasn't made by actual abductors race, so no abductor tech here.
|
||||
def_components = list(
|
||||
/obj/item/weapon/stock_parts/manipulator = /obj/item/weapon/stock_parts/manipulator/femto,
|
||||
/obj/item/weapon/stock_parts/micro_laser = /obj/item/weapon/stock_parts/micro_laser/quadultra,
|
||||
/obj/item/weapon/stock_parts/scanning_module = /obj/item/weapon/stock_parts/scanning_module/triphasic)
|
||||
/obj/machinery/plantgenes/seedvault
|
||||
circuit = /obj/item/weapon/circuitboard/machine/plantgenes/vault
|
||||
|
||||
/*
|
||||
* Plant DNA disk
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
anchored = TRUE
|
||||
pixel_y = 8
|
||||
unique_rename = 1
|
||||
circuit = /obj/item/weapon/circuitboard/machine/hydroponics
|
||||
var/waterlevel = 100 //The amount of water in the tray (max 100)
|
||||
var/maxwater = 100 //The maximum amount of water in the tray
|
||||
var/nutrilevel = 10 //The amount of nutrient in the tray (max 10)
|
||||
@@ -37,20 +38,6 @@
|
||||
icon = 'icons/obj/hydroponics/equipment.dmi'
|
||||
icon_state = "hydrotray3"
|
||||
|
||||
/obj/machinery/hydroponics/constructable/New()
|
||||
..()
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/hydroponics(null)
|
||||
B.apply_default_parts(src)
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/hydroponics
|
||||
name = "Hydroponics Tray (Machine Board)"
|
||||
build_path = /obj/machinery/hydroponics/constructable
|
||||
origin_tech = "programming=1;biotech=2"
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/matter_bin = 2,
|
||||
/obj/item/weapon/stock_parts/manipulator = 1,
|
||||
/obj/item/weapon/stock_parts/console_screen = 1)
|
||||
|
||||
/obj/machinery/hydroponics/constructable/RefreshParts()
|
||||
var/tmp_capacity = 0
|
||||
for (var/obj/item/weapon/stock_parts/matter_bin/M in component_parts)
|
||||
|
||||
@@ -44,23 +44,11 @@
|
||||
icon_state = "sextractor"
|
||||
density = TRUE
|
||||
anchored = TRUE
|
||||
circuit = /obj/item/weapon/circuitboard/machine/seed_extractor
|
||||
var/piles = list()
|
||||
var/max_seeds = 1000
|
||||
var/seed_multiplier = 1
|
||||
|
||||
/obj/machinery/seed_extractor/New()
|
||||
..()
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/seed_extractor(null)
|
||||
B.apply_default_parts(src)
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/seed_extractor
|
||||
name = "Seed Extractor (Machine Board)"
|
||||
build_path = /obj/machinery/seed_extractor
|
||||
origin_tech = "programming=1"
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/matter_bin = 1,
|
||||
/obj/item/weapon/stock_parts/manipulator = 1)
|
||||
|
||||
/obj/machinery/seed_extractor/RefreshParts()
|
||||
for(var/obj/item/weapon/stock_parts/matter_bin/B in component_parts)
|
||||
max_seeds = 1000 * B.rating
|
||||
|
||||
@@ -193,8 +193,8 @@ GLOBAL_LIST(cachedbooks) // List of our cached book datums
|
||||
libcomp_menu[page] = ""
|
||||
libcomp_menu[page] += "<tr><td>[C.author]</td><td>[C.title]</td><td>[C.category]</td><td><A href='?src=\ref[src];targetid=[C.id]'>\[Order\]</A></td></tr>\n"
|
||||
|
||||
/obj/machinery/computer/libraryconsole/bookmanagement/New()
|
||||
..()
|
||||
/obj/machinery/computer/libraryconsole/bookmanagement/Initialize()
|
||||
. = ..()
|
||||
if(circuit)
|
||||
circuit.name = "Book Inventory Management Console (Machine Board)"
|
||||
circuit.build_path = /obj/machinery/computer/libraryconsole/bookmanagement
|
||||
|
||||
@@ -26,10 +26,9 @@ interface with the mining shuttle at the landing site if a mobile beacon is also
|
||||
var/obj/item/device/gps/internal/base/locator
|
||||
circuit = /obj/item/weapon/circuitboard/computer/auxillary_base
|
||||
|
||||
/obj/machinery/computer/auxillary_base/New(location, obj/item/weapon/circuitboard/computer/shuttle/C)
|
||||
..()
|
||||
locator = new /obj/item/device/gps/internal/base(src)
|
||||
|
||||
/obj/machinery/computer/auxillary_base/Initialize()
|
||||
. = ..()
|
||||
locator = new(src)
|
||||
|
||||
/obj/machinery/computer/auxillary_base/attack_hand(mob/user)
|
||||
if(..(user))
|
||||
|
||||
@@ -49,9 +49,9 @@
|
||||
|
||||
light_color = LIGHT_COLOR_PINK
|
||||
|
||||
/obj/machinery/computer/camera_advanced/base_construction/New()
|
||||
..()
|
||||
RCD = new /obj/item/weapon/construction/rcd/internal(src)
|
||||
/obj/machinery/computer/camera_advanced/base_construction/Initialize()
|
||||
. = ..()
|
||||
RCD = new(src)
|
||||
|
||||
/obj/machinery/computer/camera_advanced/base_construction/Initialize(mapload)
|
||||
..()
|
||||
|
||||
@@ -199,18 +199,9 @@
|
||||
max_n_of_items = 10
|
||||
pixel_y = -4
|
||||
flags = NODECONSTRUCT
|
||||
var/empty = FALSE
|
||||
|
||||
/obj/machinery/smartfridge/survival_pod/empty
|
||||
name = "dusty survival pod storage"
|
||||
desc = "A heated storage unit. This one's seen better days."
|
||||
|
||||
/obj/machinery/smartfridge/survival_pod/empty/Initialize(mapload)
|
||||
..(mapload, TRUE)
|
||||
|
||||
/obj/machinery/smartfridge/survival_pod/accept_check(obj/item/O)
|
||||
return isitem(O)
|
||||
|
||||
/obj/machinery/smartfridge/survival_pod/Initialize(mapload, empty)
|
||||
/obj/machinery/smartfridge/survival_pod/Initialize(mapload)
|
||||
. = ..()
|
||||
if(empty)
|
||||
return
|
||||
@@ -224,6 +215,14 @@
|
||||
var/obj/item/device/instrument/guitar/G = new(src)
|
||||
load(G)
|
||||
|
||||
/obj/machinery/smartfridge/survival_pod/accept_check(obj/item/O)
|
||||
return isitem(O)
|
||||
|
||||
/obj/machinery/smartfridge/survival_pod/empty
|
||||
name = "dusty survival pod storage"
|
||||
desc = "A heated storage unit. This one's seen better days."
|
||||
empty = TRUE
|
||||
|
||||
//Fans
|
||||
/obj/structure/fans
|
||||
icon = 'icons/obj/lavaland/survival_pod.dmi'
|
||||
|
||||
@@ -15,11 +15,14 @@
|
||||
var/obj/item/device/radio/Radio //needed to send messages to sec radio
|
||||
|
||||
|
||||
/obj/machinery/mineral/labor_claim_console/New()
|
||||
/obj/machinery/mineral/labor_claim_console/Initialize()
|
||||
..()
|
||||
Radio = new/obj/item/device/radio(src)
|
||||
Radio.listening = 0
|
||||
addtimer(CALLBACK(src, .proc/locate_stacking_machine), 7)
|
||||
return INITIALIZE_HINT_LATELOAD
|
||||
|
||||
/obj/machinery/mineral/labor_claim_console/LateInitialize()
|
||||
locate_stacking_machine()
|
||||
|
||||
/obj/machinery/mineral/labor_claim_console/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/weapon/card/id/prisoner))
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
anchored = TRUE
|
||||
|
||||
/obj/machinery/mineral/input/New()
|
||||
. = ..()
|
||||
icon_state = "blank"
|
||||
|
||||
/obj/machinery/mineral/output
|
||||
@@ -18,6 +19,7 @@
|
||||
anchored = TRUE
|
||||
|
||||
/obj/machinery/mineral/output/New()
|
||||
. = ..()
|
||||
icon_state = "blank"
|
||||
|
||||
/obj/machinery/mineral
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
input_dir = NORTH
|
||||
output_dir = SOUTH
|
||||
req_access = list(ACCESS_MINERAL_STOREROOM)
|
||||
speed_process = 1
|
||||
circuit = /obj/item/weapon/circuitboard/machine/ore_redemption
|
||||
var/req_access_reclaim = ACCESS_MINING_STATION
|
||||
var/obj/item/weapon/card/id/inserted_id
|
||||
var/points = 0
|
||||
@@ -18,7 +20,6 @@
|
||||
var/sheet_per_ore = 1
|
||||
var/point_upgrade = 1
|
||||
var/list/ore_values = list(MAT_GLASS = 1, MAT_METAL = 1, MAT_PLASMA = 15, MAT_SILVER = 16, MAT_GOLD = 18, MAT_TITANIUM = 30, MAT_URANIUM = 30, MAT_DIAMOND = 50, MAT_BLUESPACE = 50, MAT_BANANIUM = 60)
|
||||
speed_process = 1
|
||||
var/message_sent = FALSE
|
||||
var/list/ore_buffer = list()
|
||||
var/datum/material_container/materials
|
||||
@@ -27,8 +28,6 @@
|
||||
|
||||
/obj/machinery/mineral/ore_redemption/Initialize()
|
||||
. = ..()
|
||||
var/obj/item/weapon/circuitboard/machine/ore_redemption/B = new
|
||||
B.apply_default_parts(src)
|
||||
materials = new(src, list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM, MAT_BLUESPACE),INFINITY)
|
||||
files = new /datum/research/smelter(src)
|
||||
|
||||
@@ -37,17 +36,6 @@
|
||||
QDEL_NULL(files)
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/ore_redemption
|
||||
name = "Ore Redemption (Machine Board)"
|
||||
build_path = /obj/machinery/mineral/ore_redemption
|
||||
origin_tech = "programming=1;engineering=2"
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/console_screen = 1,
|
||||
/obj/item/weapon/stock_parts/matter_bin = 1,
|
||||
/obj/item/weapon/stock_parts/micro_laser = 1,
|
||||
/obj/item/weapon/stock_parts/manipulator = 1,
|
||||
/obj/item/device/assembly/igniter = 1)
|
||||
|
||||
/obj/machinery/mineral/ore_redemption/RefreshParts()
|
||||
var/ore_pickup_rate_temp = 15
|
||||
var/point_upgrade_temp = 1
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
icon_state = "mining"
|
||||
density = TRUE
|
||||
anchored = TRUE
|
||||
circuit = /obj/item/weapon/circuitboard/machine/mining_equipment_vendor
|
||||
var/obj/item/weapon/card/id/inserted_id
|
||||
var/list/prize_list = list( //if you add something to this, please, for the love of god, use tabs and not spaces.
|
||||
new /datum/data/mining_equipment("1 Marker Beacon", /obj/item/stack/marker_beacon, 10),
|
||||
@@ -67,19 +68,6 @@
|
||||
src.equipment_path = path
|
||||
src.cost = cost
|
||||
|
||||
/obj/machinery/mineral/equipment_vendor/New()
|
||||
..()
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/mining_equipment_vendor(null)
|
||||
B.apply_default_parts(src)
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/mining_equipment_vendor
|
||||
name = "Mining Equipment Vendor (Machine Board)"
|
||||
build_path = /obj/machinery/mineral/equipment_vendor
|
||||
origin_tech = "programming=1;engineering=3"
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/console_screen = 1,
|
||||
/obj/item/weapon/stock_parts/matter_bin = 3)
|
||||
|
||||
/obj/machinery/mineral/equipment_vendor/power_change()
|
||||
..()
|
||||
update_icon()
|
||||
@@ -207,9 +195,10 @@
|
||||
|
||||
/obj/machinery/mineral/equipment_vendor/golem
|
||||
name = "golem ship equipment vendor"
|
||||
circuit = /obj/item/weapon/circuitboard/machine/mining_equipment_vendor/golem
|
||||
|
||||
/obj/machinery/mineral/equipment_vendor/golem/New()
|
||||
..()
|
||||
/obj/machinery/mineral/equipment_vendor/golem/Initialize()
|
||||
. = ..()
|
||||
desc += "\nIt seems a few selections have been added."
|
||||
prize_list += list(
|
||||
new /datum/data/mining_equipment("Extra Id", /obj/item/weapon/card/id/mining, 250),
|
||||
@@ -223,14 +212,6 @@
|
||||
new /datum/data/mining_equipment("Royal Cape of the Liberator", /obj/item/weapon/bedsheet/rd/royal_cape, 500)
|
||||
)
|
||||
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/mining_equipment_vendor/golem(null)
|
||||
B.apply_default_parts(src)
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/mining_equipment_vendor/golem
|
||||
name = "Golem Ship Equipment Vendor (Machine Board)"
|
||||
build_path = /obj/machinery/mineral/equipment_vendor/golem
|
||||
|
||||
|
||||
/**********************Mining Equipment Vendor Items**************************/
|
||||
|
||||
/**********************Mining Equipment Voucher**********************/
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user