diff --git a/code/game/dna.dm b/code/game/dna.dm
index 04c6a091e5a..4e331c2d961 100644
--- a/code/game/dna.dm
+++ b/code/game/dna.dm
@@ -336,6 +336,9 @@
use_power = 1
idle_power_usage = 50
active_power_usage = 300
+ var/damage_coeff
+ var/scan_level
+ var/precision_coeff
/obj/machinery/dna_scannernew/New()
..()
@@ -347,8 +350,20 @@
component_parts += new /obj/item/weapon/stock_parts/console_screen(null)
component_parts += new /obj/item/weapon/cable_coil(null, 1)
component_parts += new /obj/item/weapon/cable_coil(null, 1)
+ RefreshParts()
+/obj/machinery/dna_scannernew/RefreshParts()
+ scan_level = 0
+ damage_coeff = 0
+ precision_coeff = 0
+ for(var/obj/item/weapon/stock_parts/scanning_module/P in component_parts)
+ scan_level += P.rating
+ for(var/obj/item/weapon/stock_parts/manipulator/P in component_parts)
+ precision_coeff = P.rating
+ for(var/obj/item/weapon/stock_parts/micro_laser/P in component_parts)
+ damage_coeff = P.rating
+
/obj/machinery/dna_scannernew/proc/toggle_open(mob/user=usr)
if(!user)
return
@@ -582,7 +597,7 @@
if(connected)
if(connected.occupant) //set occupant_status message
viable_occupant = connected.occupant
- if(check_dna_integrity(viable_occupant) && !(NOCLONE in viable_occupant.mutations)) //occupent is viable for dna modification
+ if(check_dna_integrity(viable_occupant) && (!(NOCLONE in viable_occupant.mutations) || (connected.scan_level == 3))) //occupent is viable for dna modification
occupant_status += "[viable_occupant.name] => "
switch(viable_occupant.stat)
if(CONSCIOUS) occupant_status += "Conscious"
@@ -624,7 +639,7 @@
var/stddev = radstrength*RADIATION_STRENGTH_MULTIPLIER
status += "
Output Level:
[radstrength]
"
status += " \> Mutation:
(-[stddev] to +[stddev] = 68%) (-[2*stddev] to +[2*stddev] = 95%)
"
- stddev = RADIATION_ACCURACY_MULTIPLIER/radduration
+ stddev = RADIATION_ACCURACY_MULTIPLIER/(radduration + (connected.precision_coeff ** 2))
var/chance_to_hit
switch(stddev) //hardcoded values from a z-table for a normal distribution
if(0 to 0.25) chance_to_hit = ">95%"
@@ -828,9 +843,9 @@
if(num && viable_occupant)
num = Clamp(num, 1, NUMBER_OF_BUFFERS)
var/list/buffer_slot = buffer[num]
- if(istype(buffer_slot))
- viable_occupant.radiation += rand(15,40)
- switch(href_list["text"])
+ if(istype(buffer_slot)) //15 and 40 are just magic numbers that were here before so i didnt touch them, they are initial boundaries of damage
+ viable_occupant.radiation += rand(15/(connected.damage_coeff ** 2),40/(connected.damage_coeff ** 2)) //Each laser level reduces damage by lvl^2, so no effect on 1 lvl, 4 times less damage on 2 and 9 times less damage on 3
+ switch(href_list["text"]) //Numbers are this high because other way upgrading laser is just not worth the hassle, and i cant think of anything better to inmrove
if("se")
if(buffer_slot["SE"])
viable_occupant.dna.struc_enzymes = buffer_slot["SE"]
@@ -899,13 +914,13 @@
current_screen = "mainmenu"
if(viable_occupant && connected && connected.occupant==viable_occupant)
- viable_occupant.radiation += RADIATION_IRRADIATION_MULTIPLIER*radduration*radstrength
- switch(href_list["task"])
+ viable_occupant.radiation += (RADIATION_IRRADIATION_MULTIPLIER*radduration*radstrength)/(connected.damage_coeff ** 2) //Read comment in "transferbuffer" section above for explanation
+ switch(href_list["task"]) //Same thing as there but values are even lower, on best part they are about 0.0*, effectively no damage
if("pulseui")
var/len = length(viable_occupant.dna.uni_identity)
num = Wrap(num, 1, len+1)
- num = randomize_radiation_accuracy(num, radduration, len)
-
+ num = randomize_radiation_accuracy(num, radduration + (connected.precision_coeff ** 2), len) //Each manipulator level above 1 makes randomization as accurate as selected time + manipulator lvl^2
+ //Value is this high for the same reason as with laser - not worth the hassle of upgrading if the bonus is low
var/block = round((num-1)/DNA_BLOCK_SIZE)+1
var/subblock = num - block*DNA_BLOCK_SIZE
last_change = "UI #[block]-[subblock]; "
diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm
index 6a31eb60051..16f4339e1fd 100644
--- a/code/game/machinery/autolathe.dm
+++ b/code/game/machinery/autolathe.dm
@@ -89,6 +89,7 @@ var/global/list/autolathe_recipes_hidden = list( \
idle_power_usage = 10
active_power_usage = 100
var/busy = 0
+ var/prod_coeff
proc
wires_win(mob/user as mob)
@@ -104,6 +105,7 @@ var/global/list/autolathe_recipes_hidden = list( \
onclose(user, "autolathe_hack")
regular_win(mob/user as mob)
+ var/coeff = 2 ** prod_coeff
var/dat as text
dat = text("Metal Amount: [src.m_amount] cm3 (MAX: [max_m_amount])
\nGlass Amount: [src.g_amount] cm3 (MAX: [max_g_amount])
")
var/list/objs = list()
@@ -111,12 +113,13 @@ var/global/list/autolathe_recipes_hidden = list( \
if (src.hacked)
objs += src.LL
for(var/obj/t in objs)
- var/title = "[t.name] ([t.m_amt] m /[t.g_amt] g)"
- if (m_amount"
- continue
- dat += "[title]"
if (istype(t, /obj/item/stack))
+ var/title = "[t.name] ([t.m_amt] m /[t.g_amt] g)"
+ if (m_amount"
+ continue
+ dat += "[title]"
+
var/obj/item/stack/S = t
var/max_multiplier = min(S.max_amount, S.m_amt?round(m_amount/S.m_amt):INFINITY, S.g_amt?round(g_amount/S.g_amt):INFINITY)
if (max_multiplier>1)
@@ -127,6 +130,12 @@ var/global/list/autolathe_recipes_hidden = list( \
dat += " x[25]"
if (max_multiplier>1)
dat += " x[max_multiplier]"
+ else
+ var/title = "[t.name] ([t.m_amt/coeff] m /[t.g_amt/coeff] g)"
+ if (m_amount"
+ continue
+ dat += "[title]"
dat += "
"
user << browse("Autolathe Control Panel[dat]", "window=autolathe_regular")
onclose(user, "autolathe_regular")
@@ -250,6 +259,7 @@ var/global/list/autolathe_recipes_hidden = list( \
src.add_fingerprint(usr)
if (!busy)
if(href_list["make"])
+ var/coeff = 2 ** prod_coeff
var/turf/T = get_step(src.loc, get_dir(src,usr))
var/obj/template = locate(href_list["make"])
var/multiplier = text2num(href_list["multiplier"])
@@ -260,21 +270,27 @@ var/global/list/autolathe_recipes_hidden = list( \
use_power(power)
icon_state = "autolathe"
flick("autolathe_n",src)
- spawn(16)
+ spawn(16/coeff)
use_power(power)
- spawn(16)
+ spawn(16/coeff)
use_power(power)
- spawn(16)
- src.m_amount -= template.m_amt*multiplier
- src.g_amount -= template.g_amt*multiplier
+ spawn(16/coeff)
+ if(template.type == /obj/item/stack)
+ src.m_amount -= template.m_amt*multiplier
+ src.g_amount -= template.g_amt*multiplier
+ var/obj/new_item = new template.type(T)
+ var/obj/item/stack/S = new_item
+ S.amount = multiplier
+ else
+ src.m_amount -= template.m_amt/coeff
+ src.g_amount -= template.g_amt/coeff
+ var/obj/new_item = new template.type(T)
+ new_item.m_amt /= coeff
+ new_item.g_amt /= coeff
if(src.m_amount < 0)
src.m_amount = 0
if(src.g_amount < 0)
src.g_amount = 0
- var/obj/new_item = new template.type(T)
- if (multiplier>1)
- var/obj/item/stack/S = new_item
- S.amount = multiplier
busy = 0
src.updateUsrDialog()
if(href_list["act"])
@@ -319,21 +335,24 @@ var/global/list/autolathe_recipes_hidden = list( \
RefreshParts()
..()
var/tot_rating = 0
+ prod_coeff = 0
for(var/obj/item/weapon/stock_parts/matter_bin/MB in component_parts)
tot_rating += MB.rating
tot_rating *= 25000
max_m_amount = tot_rating * 2
max_g_amount = tot_rating
+ for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts)
+ prod_coeff += M.rating - 1
New()
..()
component_parts = list()
- component_parts += new /obj/item/weapon/circuitboard/autolathe(src)
- component_parts += new /obj/item/weapon/stock_parts/matter_bin(src)
- component_parts += new /obj/item/weapon/stock_parts/matter_bin(src)
- component_parts += new /obj/item/weapon/stock_parts/matter_bin(src)
- component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
- component_parts += new /obj/item/weapon/stock_parts/console_screen(src)
+ component_parts += new /obj/item/weapon/circuitboard/autolathe(null)
+ component_parts += new /obj/item/weapon/stock_parts/matter_bin(null)
+ component_parts += new /obj/item/weapon/stock_parts/matter_bin(null)
+ component_parts += new /obj/item/weapon/stock_parts/matter_bin(null)
+ component_parts += new /obj/item/weapon/stock_parts/manipulator(null)
+ component_parts += new /obj/item/weapon/stock_parts/console_screen(null)
RefreshParts()
src.L = autolathe_recipes
diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm
index 2498538e4f2..a1fbdcb16c0 100644
--- a/code/game/machinery/cloning.dm
+++ b/code/game/machinery/cloning.dm
@@ -3,6 +3,9 @@
//Potential replacement for genetics revives or something I dunno (?)
+#define CLONE_INITIAL_DAMAGE 190 //Clones in clonepods start with 190 cloneloss damage and 190 brainloss damage, thats just logical
+
+
/obj/machinery/clonepod
anchored = 1
name = "cloning pod"
@@ -18,19 +21,30 @@
var/mess = 0 //Need to clean out it if it's full of exploded clone.
var/attempting = 0 //One clone attempt at a time thanks
var/eject_wait = 0 //Don't eject them as soon as they are created fuckkk
+ var/speed_coeff
+ var/efficiency
/obj/machinery/clonepod/New()
..()
component_parts = list()
- component_parts += new /obj/item/weapon/circuitboard/clonepod(src)
- component_parts += new /obj/item/weapon/stock_parts/scanning_module(src)
- component_parts += new /obj/item/weapon/stock_parts/scanning_module(src)
- component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
- component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
- component_parts += new /obj/item/weapon/stock_parts/console_screen(src)
- component_parts += new /obj/item/weapon/cable_coil(src, 1)
- component_parts += new /obj/item/weapon/cable_coil(src, 1)
+ component_parts += new /obj/item/weapon/circuitboard/clonepod(null)
+ component_parts += new /obj/item/weapon/stock_parts/scanning_module(null)
+ component_parts += new /obj/item/weapon/stock_parts/scanning_module(null)
+ component_parts += new /obj/item/weapon/stock_parts/manipulator(null)
+ component_parts += new /obj/item/weapon/stock_parts/manipulator(null)
+ component_parts += new /obj/item/weapon/stock_parts/console_screen(null)
+ component_parts += new /obj/item/weapon/cable_coil(null, 1)
+ component_parts += new /obj/item/weapon/cable_coil(null, 1)
+ RefreshParts()
+/obj/machinery/clonepod/RefreshParts()
+ speed_coeff = 0
+ efficiency = 0
+ for(var/obj/item/weapon/stock_parts/scanning_module/S in component_parts)
+ efficiency += S.rating
+ for(var/obj/item/weapon/stock_parts/manipulator/P in component_parts)
+ speed_coeff += P.rating
+ heal_level = (efficiency * 15) + 10
//The return of data disks?? Just for transferring between genetics machine/cloning machine.
//TO-DO: Make the genetics machine accept them.
@@ -132,8 +146,6 @@
return 0
- src.heal_level = rand(50,90) //Randomizes what health the clone is when ejected
-
src.attempting = 1 //One at a time!!
src.locked = 1
@@ -150,8 +162,8 @@
src.icon_state = "pod_1"
//Get the clone body ready
- H.adjustCloneLoss(src.heal_level + 100) //new damage var so you can't eject a clone early then stab them to abuse the current damage system --NeoFite
- H.adjustBrainLoss(heal_level)
+ H.adjustCloneLoss(CLONE_INITIAL_DAMAGE ) //Yeah, clones start with very low health, not with random, because why would they start with random health
+ H.adjustBrainLoss(CLONE_INITIAL_DAMAGE )
H.Paralyse(4)
//Here let's calculate their health so the pod doesn't immediately eject them!!!
@@ -178,7 +190,13 @@
// -- End mode specific stuff
hardset_dna(H, ui, se, null, mrace)
- randmutb(H) //Sometimes the clones come out wrong.
+ if(efficiency > 2)
+ for(var/A in bad_se_blocks)
+ setblock(H.dna.struc_enzymes, A, construct_block(0,2))
+ if(efficiency > 5 && prob(20))
+ randmutg(H)
+ if(efficiency < 3 && prob(50))
+ randmutb(H)
if(H.gender == MALE)
H.facial_hair_style = "Full Beard"
@@ -206,14 +224,14 @@
src.connected_message("Clone Rejected: Deceased.")
return
- else if(src.occupant.cloneloss > src.heal_level)
+ else if(src.occupant.cloneloss > (100 - src.heal_level))
src.occupant.Paralyse(4)
//Slowly get that clone healed and finished.
- src.occupant.adjustCloneLoss(-heal_level/50)
+ src.occupant.adjustCloneLoss(-((speed_coeff/2)))
//Premature clones may have brain damage.
- src.occupant.adjustBrainLoss(-heal_level/100)
+ src.occupant.adjustBrainLoss(-((speed_coeff/2)))
//So clones don't die of oxyloss in a running pod.
if (src.occupant.reagents.get_reagent_amount("inaprovaline") < 30)
@@ -222,7 +240,7 @@
use_power(7500) //This might need tweaking.
return
- else if((src.occupant.cloneloss <= src.heal_level) && (!src.eject_wait))
+ else if((src.occupant.cloneloss <= (100 - src.heal_level)) && (!src.eject_wait))
src.connected_message("Cloning Process Complete.")
src.locked = 0
src.go_out()
@@ -350,7 +368,7 @@
return
/obj/machinery/clonepod/emp_act(severity)
- if(prob(100/severity)) malfunction()
+ if(prob(100/(severity*efficiency))) malfunction()
..()
/obj/machinery/clonepod/ex_act(severity)
@@ -427,4 +445,6 @@
/* EMP grenade/spell effect
if(istype(A, /obj/machinery/clonepod))
A:malfunction()
-*/
\ No newline at end of file
+*/
+
+#undef CLONE_INITIAL_DAMAGE
\ No newline at end of file
diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm
index 5400185bd75..3cdb28b5be2 100644
--- a/code/game/machinery/computer/cloning.dm
+++ b/code/game/machinery/computer/cloning.dm
@@ -15,6 +15,7 @@
var/datum/data/record/active_record = null
var/obj/item/weapon/disk/data/diskette = null //Mostly so the geneticist can steal everything.
var/loading = 0 // Nice loading text
+ var/autoprocess = 0
/obj/machinery/computer/cloning/New()
..()
@@ -23,6 +24,19 @@
return
return
+/obj/machinery/computer/cloning/process()
+ if(!(scanner && pod1 && autoprocess))
+ return
+
+ if(scanner.occupant && (scanner.scan_level > 2))
+ scan_mob(scanner.occupant)
+
+ if(!(pod1.occupant || pod1.mess) && (pod1.efficiency > 5))
+ for(var/datum/data/record/R in records)
+ if(!(pod1.occupant || pod1.mess))
+ if(pod1.growclone(R.fields["ckey"], R.fields["name"], R.fields["UI"], R.fields["SE"], R.fields["mind"], R.fields["mrace"]))
+ records -= R
+
/obj/machinery/computer/cloning/proc/updatemodules()
src.scanner = findscanner()
src.pod1 = findcloner()
@@ -82,7 +96,13 @@
var/dat = ""
dat += "Refresh"
-
+ if(scanner && pod1 && ((scanner.scan_level > 2) || (pod1.efficiency > 5)))
+ if(!autoprocess)
+ dat += "Autoprocess"
+ else
+ dat += "Stop autoprocess"
+ else
+ dat += "Autoprocess"
dat += "Cloning Pod Status
"
dat += "[temp]
"
@@ -200,7 +220,14 @@
if(loading)
return
- if ((href_list["scan"]) && (!isnull(src.scanner)))
+ if(href_list["task"])
+ switch(href_list["task"])
+ if("autoprocess")
+ autoprocess = 1
+ if("stopautoprocess")
+ autoprocess = 0
+
+ else if ((href_list["scan"]) && (!isnull(src.scanner)))
scantemp = ""
loading = 1
@@ -296,7 +323,7 @@
temp = "Clonepod malfunction."
else if(!config.revival_cloning)
temp = "Unable to initiate cloning cycle."
- else if(pod1.growclone(C.fields["ckey"], C.fields["name"], C.fields["UI"], C.fields["SE"], C.fields["mind"], C.fields["mrace"]))
+ else if(pod1.growclone(null, C.fields["name"], C.fields["UI"], C.fields["SE"], C.fields["mind"], C.fields["mrace"]))
temp = "[C.fields["name"]] => Cloning cycle in progress..."
records.Remove(C)
if(active_record == C)
@@ -325,7 +352,7 @@
if (subject.suiciding == 1)
scantemp = "Subject's brain is not responding to scanning stimuli."
return
- if (NOCLONE in subject.mutations)
+ if (NOCLONE in subject.mutations && src.scanner.scan_level < 2)
scantemp = "Subject no longer contains the fundamental materials required to create a living clone."
return
if ((!subject.ckey) || (!subject.client))
diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm
index ebe0566804d..17b64808df7 100644
--- a/code/game/machinery/constructable_frame.dm
+++ b/code/game/machinery/constructable_frame.dm
@@ -162,7 +162,7 @@ to destroy them and players will be able to make replacements.
*/
/obj/item/weapon/circuitboard/destructive_analyzer
name = "circuit board (Destructive Analyzer)"
- build_path = "/obj/machinery/r_n_d/destructive_analyzer"
+ build_path = /obj/machinery/r_n_d/destructive_analyzer
board_type = "machine"
origin_tech = "magnets=2;engineering=2;programming=2"
req_components = list(
@@ -172,7 +172,7 @@ to destroy them and players will be able to make replacements.
/obj/item/weapon/circuitboard/autolathe
name = "circuit board (Autolathe)"
- build_path = "/obj/machinery/autolathe"
+ build_path = /obj/machinery/autolathe
board_type = "machine"
origin_tech = "engineering=2;programming=2"
req_components = list(
@@ -182,7 +182,7 @@ to destroy them and players will be able to make replacements.
/obj/item/weapon/circuitboard/protolathe
name = "circuit board (Protolathe)"
- build_path = "/obj/machinery/r_n_d/protolathe"
+ build_path = /obj/machinery/r_n_d/protolathe
board_type = "machine"
origin_tech = "engineering=2;programming=2"
req_components = list(
@@ -193,7 +193,7 @@ to destroy them and players will be able to make replacements.
/obj/item/weapon/circuitboard/circuit_imprinter
name = "circuit board (Circuit Imprinter)"
- build_path = "/obj/machinery/r_n_d/circuit_imprinter"
+ build_path = /obj/machinery/r_n_d/circuit_imprinter
board_type = "machine"
origin_tech = "engineering=2;programming=2"
req_components = list(
@@ -203,7 +203,7 @@ to destroy them and players will be able to make replacements.
/obj/item/weapon/circuitboard/pacman
name = "circuit board (PACMAN-type Generator)"
- build_path = "/obj/machinery/power/port_gen/pacman"
+ build_path = /obj/machinery/power/port_gen/pacman
board_type = "machine"
origin_tech = "programming=3:powerstorage=3;plasmatech=3;engineering=3"
req_components = list(
@@ -214,7 +214,7 @@ to destroy them and players will be able to make replacements.
/obj/item/weapon/circuitboard/pacman/super
name = "circuit board (SUPERPACMAN-type Generator)"
- build_path = "/obj/machinery/power/port_gen/pacman/super"
+ build_path = /obj/machinery/power/port_gen/pacman/super
origin_tech = "programming=3;powerstorage=4;engineering=4"
/obj/item/weapon/circuitboard/pacman/mrs
@@ -224,7 +224,7 @@ to destroy them and players will be able to make replacements.
obj/item/weapon/circuitboard/rdserver
name = "circuit board (R&D Server)"
- build_path = "/obj/machinery/r_n_d/server"
+ build_path = /obj/machinery/r_n_d/server
board_type = "machine"
origin_tech = "programming=3"
req_components = list(
@@ -233,7 +233,7 @@ obj/item/weapon/circuitboard/rdserver
/obj/item/weapon/circuitboard/mechfab
name = "circuit board (Exosuit Fabricator)"
- build_path = "/obj/machinery/mecha_part_fabricator"
+ build_path = /obj/machinery/mecha_part_fabricator
board_type = "machine"
origin_tech = "programming=3;engineering=3"
req_components = list(
@@ -244,7 +244,7 @@ obj/item/weapon/circuitboard/rdserver
/obj/item/weapon/circuitboard/clonepod
name = "circuit board (Clone Pod)"
- build_path = "/obj/machinery/clonepod"
+ build_path = /obj/machinery/clonepod
board_type = "machine"
origin_tech = "programming=3;biotech=3"
req_components = list(
@@ -255,7 +255,7 @@ obj/item/weapon/circuitboard/rdserver
/obj/item/weapon/circuitboard/clonescanner
name = "circuit board (Cloning Scanner)"
- build_path = "/obj/machinery/dna_scannernew"
+ build_path = /obj/machinery/dna_scannernew
board_type = "machine"
origin_tech = "programming=2;biotech=2"
req_components = list(
@@ -267,7 +267,7 @@ obj/item/weapon/circuitboard/rdserver
/obj/item/weapon/circuitboard/cyborgrecharger
name = "circuit board (Cyborg Recharger)"
- build_path = "/obj/machinery/recharge_station"
+ build_path = /obj/machinery/recharge_station
board_type = "machine"
origin_tech = "powerstorage=3;engineering=3"
req_components = list(
@@ -279,7 +279,7 @@ obj/item/weapon/circuitboard/rdserver
/obj/item/weapon/circuitboard/telecomms/receiver
name = "circuit board (Subspace Receiver)"
- build_path = "/obj/machinery/telecomms/receiver"
+ build_path = /obj/machinery/telecomms/receiver
board_type = "machine"
origin_tech = "programming=2;engineering=2;bluespace=1"
req_components = list(
@@ -290,7 +290,7 @@ obj/item/weapon/circuitboard/rdserver
/obj/item/weapon/circuitboard/telecomms/hub
name = "circuit board (Hub Mainframe)"
- build_path = "/obj/machinery/telecomms/hub"
+ build_path = /obj/machinery/telecomms/hub
board_type = "machine"
origin_tech = "programming=2;engineering=2"
req_components = list(
@@ -300,7 +300,7 @@ obj/item/weapon/circuitboard/rdserver
/obj/item/weapon/circuitboard/telecomms/relay
name = "circuit board (Relay Mainframe)"
- build_path = "/obj/machinery/telecomms/relay"
+ build_path = /obj/machinery/telecomms/relay
board_type = "machine"
origin_tech = "programming=2;engineering=2;bluespace=2"
req_components = list(
@@ -310,7 +310,7 @@ obj/item/weapon/circuitboard/rdserver
/obj/item/weapon/circuitboard/telecomms/bus
name = "circuit board (Bus Mainframe)"
- build_path = "/obj/machinery/telecomms/bus"
+ build_path = /obj/machinery/telecomms/bus
board_type = "machine"
origin_tech = "programming=2;engineering=2"
req_components = list(
@@ -320,7 +320,7 @@ obj/item/weapon/circuitboard/rdserver
/obj/item/weapon/circuitboard/telecomms/processor
name = "circuit board (Processor Unit)"
- build_path = "/obj/machinery/telecomms/processor"
+ build_path = /obj/machinery/telecomms/processor
board_type = "machine"
origin_tech = "programming=2;engineering=2"
req_components = list(
@@ -333,7 +333,7 @@ obj/item/weapon/circuitboard/rdserver
/obj/item/weapon/circuitboard/telecomms/server
name = "circuit board (Telecommunication Server)"
- build_path = "/obj/machinery/telecomms/server"
+ build_path = /obj/machinery/telecomms/server
board_type = "machine"
origin_tech = "programming=2;engineering=2"
req_components = list(
@@ -343,7 +343,7 @@ obj/item/weapon/circuitboard/rdserver
/obj/item/weapon/circuitboard/telecomms/broadcaster
name = "circuit board (Subspace Broadcaster)"
- build_path = "/obj/machinery/telecomms/broadcaster"
+ build_path = /obj/machinery/telecomms/broadcaster
board_type = "machine"
origin_tech = "programming=2;engineering=2;bluespace=1"
req_components = list(
diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm
index 2f30bef8818..401acff9da5 100644
--- a/code/game/machinery/rechargestation.dm
+++ b/code/game/machinery/rechargestation.dm
@@ -13,12 +13,32 @@
var/circuitboard = "/obj/item/weapon/circuitboard/cyborgrecharger"
var/locked = 1
req_access = list(access_robotics)
+ var/recharge_speed
+ var/repairs
/obj/machinery/recharge_station/New()
..()
+ component_parts = list()
+ component_parts += new /obj/item/weapon/circuitboard/cyborgrecharger(null)
+ component_parts += new /obj/item/weapon/stock_parts/capacitor(null)
+ component_parts += new /obj/item/weapon/stock_parts/capacitor(null)
+ component_parts += new /obj/item/weapon/stock_parts/manipulator(null)
+ component_parts += new /obj/item/weapon/cell/high(null)
+ RefreshParts()
build_icon()
+/obj/machinery/recharge_station/RefreshParts()
+ recharge_speed = 0
+ repairs = 0
+ for(var/obj/item/weapon/stock_parts/capacitor/C in component_parts)
+ recharge_speed += C.rating * 100
+ for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts)
+ repairs += M.rating - 1
+ for(var/obj/item/weapon/cell/C in component_parts)
+ recharge_speed *= C.maxcharge / 10000
+
+
/obj/machinery/recharge_station/process()
if(!(NOPOWER|BROKEN))
return
@@ -230,22 +250,25 @@
/obj/machinery/recharge_station/proc/process_occupant()
if(occupant)
restock_modules()
+ if(repairs)
+ occupant.heal_organ_damage(repairs, repairs - 1)
if(occupant.cell)
if(occupant.cell.charge >= occupant.cell.maxcharge)
occupant.cell.charge = occupant.cell.maxcharge
else
- occupant.cell.charge = min(occupant.cell.charge + 200, occupant.cell.maxcharge)
+ occupant.cell.charge = min(occupant.cell.charge + recharge_speed, occupant.cell.maxcharge)
/obj/machinery/recharge_station/proc/restock_modules()
if(occupant)
if(occupant.module && occupant.module.modules)
var/list/um = occupant.contents|occupant.module.modules
// ^ makes sinle list of active (occupant.contents) and inactive modules (occupant.module.modules)
+ var/coeff = recharge_speed / 200
for(var/obj/O in um)
// Engineering
if(istype(O,/obj/item/stack/sheet/metal) || istype(O,/obj/item/stack/sheet/rglass) || istype(O,/obj/item/stack/rods) || istype(O,/obj/item/weapon/cable_coil)|| istype(O,/obj/item/stack/tile/plasteel))
if(O:amount < 50)
- O:amount += 1
+ O:amount += coeff
// Security
if(istype(O,/obj/item/device/flash))
if(O:broken)
@@ -254,7 +277,7 @@
O:icon_state = "flash"
if(istype(O,/obj/item/weapon/gun/energy/taser/cyborg))
if(O:power_supply.charge < O:power_supply.maxcharge)
- O:power_supply.give(O:charge_cost)
+ O:power_supply.give(O:charge_cost * coeff)
O:update_icon()
else
O:charge_tick = 0
@@ -265,16 +288,18 @@
//Service
if(istype(O,/obj/item/weapon/reagent_containers/food/condiment/enzyme))
if(O.reagents.get_reagent_amount("enzyme") < 50)
- O.reagents.add_reagent("enzyme", 2)
+ O.reagents.add_reagent("enzyme", 2 * coeff)
//Medical
if(istype(O,/obj/item/weapon/reagent_containers/glass/bottle/robot))
var/obj/item/weapon/reagent_containers/glass/bottle/robot/B = O
if(B.reagent && (B.reagents.get_reagent_amount(B.reagent) < B.volume))
- B.reagents.add_reagent(B.reagent, 2)
+ B.reagents.add_reagent(B.reagent, 2 * coeff)
//Janitor
if(istype(O, /obj/item/device/lightreplacer))
var/obj/item/device/lightreplacer/LR = O
- LR.Charge(occupant)
+ var/i = 1
+ for(1, i < coeff, i++)
+ LR.Charge(occupant)
if(occupant)
if(occupant.module)
@@ -285,6 +310,6 @@
if(istype(occupant.module.emag, /obj/item/weapon/reagent_containers/spray))
var/obj/item/weapon/reagent_containers/spray/S = occupant.module.emag
if(S.name == "polyacid spray")
- S.reagents.add_reagent("pacid", 2)
+ S.reagents.add_reagent("pacid", 2 * coeff)
else if(S.name == "lube spray")
- S.reagents.add_reagent("lube", 2)
+ S.reagents.add_reagent("lube", 2 * coeff)
diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm
index c985f93d0d1..1efaf3e2498 100644
--- a/code/game/mecha/mech_fabricator.dm
+++ b/code/game/mecha/mech_fabricator.dm
@@ -133,12 +133,12 @@
/obj/machinery/mecha_part_fabricator/New()
..()
component_parts = list()
- component_parts += new /obj/item/weapon/circuitboard/mechfab(src)
- component_parts += new /obj/item/weapon/stock_parts/matter_bin(src)
- component_parts += new /obj/item/weapon/stock_parts/matter_bin(src)
- component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
- component_parts += new /obj/item/weapon/stock_parts/micro_laser(src)
- component_parts += new /obj/item/weapon/stock_parts/console_screen(src)
+ component_parts += new /obj/item/weapon/circuitboard/mechfab(null)
+ component_parts += new /obj/item/weapon/stock_parts/matter_bin(null)
+ component_parts += new /obj/item/weapon/stock_parts/matter_bin(null)
+ component_parts += new /obj/item/weapon/stock_parts/manipulator(null)
+ component_parts += new /obj/item/weapon/stock_parts/micro_laser(null)
+ component_parts += new /obj/item/weapon/stock_parts/console_screen(null)
RefreshParts()
// part_sets["Cyborg Upgrade Modules"] = typesof(/obj/item/borg/upgrade/) - /obj/item/borg/upgrade/ // Eh. This does it dymaically, but to support having the items referenced otherwhere in the code but not being constructable, going to do it manaully.
@@ -162,18 +162,16 @@
T = 0
for(var/obj/item/weapon/stock_parts/micro_laser/Ma in component_parts)
T += Ma.rating
- if(T >= 1)
- T -= 1
+ T -= 1
var/diff
- diff = round(initial(resource_coeff) - (initial(resource_coeff)*(T))/25,0.01)
+ diff = round(initial(resource_coeff) - (initial(resource_coeff)*(T))/6,0.01)
if(resource_coeff!=diff)
resource_coeff = diff
T = 0
for(var/obj/item/weapon/stock_parts/manipulator/Ml in component_parts)
T += Ml.rating
- if(T>= 2)
- T -= 2
- diff = round(initial(time_coeff) - (initial(time_coeff)*(T))/25,0.01)
+ T -= 1
+ diff = round(initial(time_coeff) - (initial(time_coeff)*(T))/4,0.01)
if(time_coeff!=diff)
time_coeff = diff
@@ -358,6 +356,8 @@
src.being_built = new part.type(src)
src.desc = "It's building [src.being_built]."
src.remove_resources(part)
+ part.m_amt = get_resource_cost_w_coeff(part,"metal")
+ part.g_amt = get_resource_cost_w_coeff(part,"glass")
src.overlays += "fab-active"
src.use_power = 2
src.updateUsrDialog()
@@ -581,10 +581,10 @@
- |
+ |
[left_part]
|
-
+ |
[list_queue()]
|
diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm
index f8569d10924..edbbf4fd5f4 100644
--- a/code/modules/power/port_gen.dm
+++ b/code/modules/power/port_gen.dm
@@ -55,6 +55,7 @@ display round(lastgen) and plasmatank amount
var/power_gen = 5000
var/recent_fault = 0
var/power_output = 1
+ var/consumption = 0
/obj/machinery/power/port_gen/proc/HasFuel() //Placeholder for fuel check.
return 1
@@ -129,15 +130,19 @@ display round(lastgen) and plasmatank amount
/obj/machinery/power/port_gen/pacman/RefreshParts()
var/temp_rating = 0
var/temp_reliability = 0
+ var/consumption_coeff = 0
for(var/obj/item/weapon/stock_parts/SP in component_parts)
if(istype(SP, /obj/item/weapon/stock_parts/matter_bin))
max_sheets = SP.rating * SP.rating * 50
- else if(istype(SP, /obj/item/weapon/stock_parts/micro_laser) || istype(SP, /obj/item/weapon/stock_parts/capacitor))
+ else if(istype(SP, /obj/item/weapon/stock_parts/capacitor))
temp_rating += SP.rating
+ else
+ consumption_coeff += SP.rating
for(var/obj/item/weapon/CP in component_parts)
temp_reliability += CP.reliability
reliability = min(round(temp_reliability / 4), 100)
- power_gen = round(initial(power_gen) * (max(2, temp_rating) / 2))
+ power_gen = round(initial(power_gen) * temp_rating * 2)
+ consumption = consumption_coeff
/obj/machinery/power/port_gen/pacman/examine()
..()
@@ -160,7 +165,7 @@ display round(lastgen) and plasmatank amount
sheets -= amount
/obj/machinery/power/port_gen/pacman/UseFuel()
- var/needed_sheets = 1 / (time_per_sheet / power_output)
+ var/needed_sheets = 1 / (time_per_sheet * consumption / power_output)
var/temp = min(needed_sheets, sheet_left)
needed_sheets -= temp
sheet_left -= temp
@@ -175,9 +180,9 @@ display round(lastgen) and plasmatank amount
var/bias = 0
if (power_output > 4)
upper_limit = 400
- bias = power_output * 3
+ bias = power_output - consumption * (4 - consumption)
if (heat < lower_limit)
- heat += 3
+ heat += 4 - consumption
else
heat += rand(-7 + bias, 7 + bias)
if (heat < lower_limit)
diff --git a/code/modules/research/circuitprinter.dm b/code/modules/research/circuitprinter.dm
index 5ac1762d266..90528dac641 100644
--- a/code/modules/research/circuitprinter.dm
+++ b/code/modules/research/circuitprinter.dm
@@ -13,6 +13,7 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis).
var/gold_amount = 0
var/diamond_amount = 0
var/max_material_amount = 75000.0
+ var/efficiency_coeff
New()
..()
@@ -35,7 +36,10 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis).
for(var/obj/item/weapon/stock_parts/matter_bin/M in component_parts)
T += M.rating
max_material_amount = T * 75000.0
-
+ T = 0
+ for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts)
+ T += M.rating
+ efficiency_coeff = T-1
blob_act()
if (prob(50))
diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm
index e2a80bdd9d8..6adcad7b422 100644
--- a/code/modules/research/designs.dm
+++ b/code/modules/research/designs.dm
@@ -22,7 +22,7 @@ The currently supporting non-reagent materials:
Don't add new keyword/IDs if they are made from an existing one (such as rods which are made from metal). Only add raw materials.
Design Guidlines
-- The reliability formula for all R&D built items is reliability_base (a fixed number) + total tech levels required to make it +
+- The reliability formula for all R&D built items is reliability (a fixed number) + total tech levels required to make it +
reliability_mod (starts at 0, gets improved through experimentation). Example: PACMAN generator. 79 base reliablity + 6 tech
(3 plasmatech, 3 powerstorage) + 0 (since it's completely new) = 85% reliability. Reliability is the chance it works CORRECTLY.
- When adding new designs, check rdreadme.dm to see what kind of things have already been made and where new stuff is needed.
@@ -43,9 +43,7 @@ datum/design //Datum for object designs, used in construction
var/name = "Name" //Name of the created object.
var/desc = "Desc" //Description of the created object.
var/id = "id" //ID of the created object for easy refernece. Alphanumeric, lower-case, no symbols
- var/list/req_tech = list() //IDs of that techs the object originated from and the minimum level requirements.
- var/reliability_mod = 0 //Reliability modifier of the device at it's starting point.
- var/reliability_base = 100 //Base reliability of a device before modifiers.
+ var/list/req_tech = list() //IDs of that techs the object originated from and the minimum level requirements. //Reliability modifier of the device at it's starting point.
var/reliability = 100 //Reliability of the device.
var/build_type = null //Flag as to what kind machine the design is built in. See defines.
var/list/materials = list() //List of materials. Format: "id" = amount.
@@ -57,11 +55,11 @@ datum/design //Datum for object designs, used in construction
//A proc to calculate the reliability of a design based on tech levels and innate modifiers.
//Input: A list of /datum/tech; Output: The new reliabilty.
datum/design/proc/CalcReliability(var/list/temp_techs)
- var/new_reliability = reliability_mod + reliability_base
+ var/new_reliability
for(var/datum/tech/T in temp_techs)
if(T.id in req_tech)
new_reliability += T.level
- new_reliability = Clamp(new_reliability, reliability_base, 100)
+ new_reliability = Clamp(new_reliability, reliability, 100)
reliability = new_reliability
return
@@ -75,7 +73,7 @@ datum/design/seccamera
req_tech = list("programming" = 2)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/security"
+ build_path = /obj/item/weapon/circuitboard/security
datum/design/aicore
name = "Circuit Design (AI Core)"
@@ -84,7 +82,7 @@ datum/design/aicore
req_tech = list("programming" = 4, "biotech" = 3)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/aicore"
+ build_path = /obj/item/weapon/circuitboard/aicore
datum/design/aiupload
name = "Circuit Design (AI Upload)"
@@ -93,7 +91,7 @@ datum/design/aiupload
req_tech = list("programming" = 4)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/aiupload"
+ build_path = /obj/item/weapon/circuitboard/aiupload
datum/design/borgupload
name = "Circuit Design (Cyborg Upload)"
@@ -102,7 +100,7 @@ datum/design/borgupload
req_tech = list("programming" = 4)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/borgupload"
+ build_path = /obj/item/weapon/circuitboard/borgupload
datum/design/med_data
name = "Circuit Design (Medical Records)"
@@ -111,7 +109,7 @@ datum/design/med_data
req_tech = list("programming" = 2)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/med_data"
+ build_path = /obj/item/weapon/circuitboard/med_data
datum/design/operating
name = "Circuit Design (Operating Computer)"
@@ -120,7 +118,7 @@ datum/design/operating
req_tech = list("programming" = 2, "biotech" = 2)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/operating"
+ build_path = /obj/item/weapon/circuitboard/operating
datum/design/pandemic
name = "Circuit Design (PanD.E.M.I.C. 2200)"
@@ -129,7 +127,7 @@ datum/design/pandemic
req_tech = list("programming" = 2, "biotech" = 2)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/pandemic"
+ build_path = /obj/item/weapon/circuitboard/pandemic
datum/design/scan_console
name = "Circuit Design (DNA Machine)"
@@ -138,7 +136,7 @@ datum/design/scan_console
req_tech = list("programming" = 2, "biotech" = 3)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/scan_consolenew"
+ build_path = /obj/item/weapon/circuitboard/scan_consolenew
datum/design/comconsole
name = "Circuit Design (Communications)"
@@ -147,7 +145,7 @@ datum/design/comconsole
req_tech = list("programming" = 2, "magnets" = 2)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/communications"
+ build_path = /obj/item/weapon/circuitboard/communications
datum/design/idcardconsole
name = "Circuit Design (ID Console)"
@@ -156,7 +154,7 @@ datum/design/idcardconsole
req_tech = list("programming" = 2)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/card"
+ build_path = /obj/item/weapon/circuitboard/card
datum/design/crewconsole
name = "Circuit Design (Crew monitoring computer)"
@@ -165,7 +163,7 @@ datum/design/crewconsole
req_tech = list("programming" = 3, "magnets" = 2, "biotech" = 2)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/crew"
+ build_path = /obj/item/weapon/circuitboard/crew
datum/design/teleconsole
name = "Circuit Design (Teleporter Console)"
@@ -174,7 +172,7 @@ datum/design/teleconsole
req_tech = list("programming" = 3, "bluespace" = 2)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/teleporter"
+ build_path = /obj/item/weapon/circuitboard/teleporter
datum/design/secdata
name = "Circuit Design (Security Records Console)"
@@ -183,7 +181,7 @@ datum/design/secdata
req_tech = list("programming" = 2)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/secure_data"
+ build_path = /obj/item/weapon/circuitboard/secure_data
datum/design/atmosalerts
name = "Circuit Design (Atmosphere Alert)"
@@ -192,7 +190,7 @@ datum/design/atmosalerts
req_tech = list("programming" = 2)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/atmos_alert"
+ build_path = /obj/item/weapon/circuitboard/atmos_alert
datum/design/air_management
name = "Circuit Design (Atmospheric Monitor)"
@@ -201,18 +199,7 @@ datum/design/air_management
req_tech = list("programming" = 2)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/air_management"
-
-
-datum/design/general_alert
- name = "Circuit Design (Station Alert Console)"
- desc = "Allows for the construction of circuit boards used to build a Station Alert console."
- id = "station_alert"
- req_tech = list("programming" = 2)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/station_alert"
-
+ build_path = /obj/item/weapon/circuitboard/air_management
datum/design/robocontrol
name = "Circuit Design (Robotics Control Console)"
@@ -221,7 +208,7 @@ datum/design/robocontrol
req_tech = list("programming" = 4)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/robotics"
+ build_path = /obj/item/weapon/circuitboard/robotics
datum/design/clonecontrol
name = "Circuit Design (Cloning Machine Console)"
@@ -230,7 +217,7 @@ datum/design/clonecontrol
req_tech = list("programming" = 3, "biotech" = 3)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/cloning"
+ build_path = /obj/item/weapon/circuitboard/cloning
datum/design/clonepod
name = "Circuit Design (Clone Pod)"
@@ -239,7 +226,7 @@ datum/design/clonepod
req_tech = list("programming" = 3, "biotech" = 3)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/clonepod"
+ build_path = /obj/item/weapon/circuitboard/clonepod
datum/design/clonescanner
name = "Circuit Design (Cloning Scanner)"
@@ -248,7 +235,7 @@ datum/design/clonescanner
req_tech = list("programming" = 3, "biotech" = 3)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/clonescanner"
+ build_path = /obj/item/weapon/circuitboard/clonescanner
datum/design/arcadebattle
name = "Circuit Design (Battle Arcade Machine)"
@@ -257,7 +244,7 @@ datum/design/arcadebattle
req_tech = list("programming" = 1)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/arcade/battle"
+ build_path = /obj/item/weapon/circuitboard/arcade/battle
datum/design/orion_trail
name = "Circuit Design (Orion Trail Arcade Machine)"
@@ -266,7 +253,7 @@ datum/design/orion_trail
req_tech = list("programming" = 2)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/arcade/orion_trail"
+ build_path = /obj/item/weapon/circuitboard/arcade/orion_trail
datum/design/powermonitor
name = "Circuit Design (Power Monitor)"
@@ -275,7 +262,7 @@ datum/design/powermonitor
req_tech = list("programming" = 2)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/powermonitor"
+ build_path = /obj/item/weapon/circuitboard/powermonitor
datum/design/solarcontrol
name = "Circuit Design (Solar Control)"
@@ -284,7 +271,7 @@ datum/design/solarcontrol
req_tech = list("programming" = 2, "powerstorage" = 2)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/solar_control"
+ build_path = /obj/item/weapon/circuitboard/solar_control
datum/design/prisonmanage
name = "Circuit Design (Prisoner Management Console)"
@@ -293,7 +280,7 @@ datum/design/prisonmanage
req_tech = list("programming" = 2)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/prisoner"
+ build_path = /obj/item/weapon/circuitboard/prisoner
datum/design/mechacontrol
name = "Circuit Design (Exosuit Control Console)"
@@ -302,7 +289,7 @@ datum/design/mechacontrol
req_tech = list("programming" = 3)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/mecha_control"
+ build_path = /obj/item/weapon/circuitboard/mecha_control
datum/design/mechapower
name = "Circuit Design (Mech Bay Power Control Console)"
@@ -311,7 +298,7 @@ datum/design/mechapower
req_tech = list("programming" = 2, "powerstorage" = 3)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/mech_bay_power_console"
+ build_path = /obj/item/weapon/circuitboard/mech_bay_power_console
datum/design/rdconsole
name = "Circuit Design (R&D Console)"
@@ -320,7 +307,7 @@ datum/design/rdconsole
req_tech = list("programming" = 4)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/rdconsole"
+ build_path = /obj/item/weapon/circuitboard/rdconsole
datum/design/ordercomp
name = "Circuit Design (Supply ordering console)"
@@ -329,7 +316,7 @@ datum/design/ordercomp
req_tech = list("programming" = 2)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/ordercomp"
+ build_path = /obj/item/weapon/circuitboard/ordercomp
datum/design/supplycomp
name = "Circuit Design (Supply shuttle console)"
@@ -338,7 +325,7 @@ datum/design/supplycomp
req_tech = list("programming" = 3)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/supplycomp"
+ build_path = /obj/item/weapon/circuitboard/supplycomp
datum/design/mining
name = "Circuit Design (Outpost Status Display)"
@@ -347,7 +334,7 @@ datum/design/mining
req_tech = list("programming" = 2)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/mining"
+ build_path = /obj/item/weapon/circuitboard/mining
datum/design/comm_monitor
name = "Circuit Design (Telecommunications Monitoring Console)"
@@ -356,7 +343,7 @@ datum/design/comm_monitor
req_tech = list("programming" = 3)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/comm_monitor"
+ build_path = /obj/item/weapon/circuitboard/comm_monitor
datum/design/comm_server
name = "Circuit Design (Telecommunications Server Monitoring Console)"
@@ -365,7 +352,7 @@ datum/design/comm_server
req_tech = list("programming" = 3)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/comm_server"
+ build_path = /obj/item/weapon/circuitboard/comm_server
datum/design/message_monitor
name = "Circuit Design (Messaging Monitor Console)"
@@ -374,7 +361,7 @@ datum/design/message_monitor
req_tech = list("programming" = 5)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/message_monitor"
+ build_path = /obj/item/weapon/circuitboard/message_monitor
datum/design/aifixer
name = "Circuit Design (AI Integrity Restorer)"
@@ -383,7 +370,7 @@ datum/design/aifixer
req_tech = list("programming" = 3, "biotech" = 2)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/aifixer"
+ build_path = /obj/item/weapon/circuitboard/aifixer
///////////////////////////////////
//////////AI Module Disks//////////
@@ -395,7 +382,7 @@ datum/design/safeguard_module
req_tech = list("programming" = 3, "materials" = 4)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20, "$gold" = 100)
- build_path = "/obj/item/weapon/aiModule/safeguard"
+ build_path = /obj/item/weapon/aiModule/safeguard
datum/design/onehuman_module
name = "Module Design (OneHuman)"
@@ -404,7 +391,7 @@ datum/design/onehuman_module
req_tech = list("programming" = 4, "materials" = 6)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20, "$diamond" = 100)
- build_path = "/obj/item/weapon/aiModule/oneHuman"
+ build_path = /obj/item/weapon/aiModule/oneHuman
datum/design/protectstation_module
name = "Module Design (ProtectStation)"
@@ -413,7 +400,7 @@ datum/design/protectstation_module
req_tech = list("programming" = 3, "materials" = 6)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20, "$gold" = 100)
- build_path = "/obj/item/weapon/aiModule/protectStation"
+ build_path = /obj/item/weapon/aiModule/protectStation
/*datum/design/notele_module
name = "Module Design (TeleporterOffline Module)"
@@ -422,7 +409,7 @@ datum/design/protectstation_module
req_tech = list("programming" = 3)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20, "$gold" = 100)
- build_path = "/obj/item/weapon/aiModule/teleporterOffline"*/
+ build_path = /obj/item/weapon/aiModule/teleporterOffline"*/
datum/design/quarantine_module
name = "Module Design (Quarantine)"
@@ -431,7 +418,7 @@ datum/design/quarantine_module
req_tech = list("programming" = 3, "biotech" = 2, "materials" = 4)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20, "$gold" = 100)
- build_path = "/obj/item/weapon/aiModule/quarantine"
+ build_path = /obj/item/weapon/aiModule/quarantine
datum/design/oxygen_module
name = "Module Design (OxygenIsToxicToHumans)"
@@ -440,7 +427,7 @@ datum/design/oxygen_module
req_tech = list("programming" = 3, "biotech" = 2, "materials" = 4)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20, "$gold" = 100)
- build_path = "/obj/item/weapon/aiModule/oxygen"
+ build_path = /obj/item/weapon/aiModule/oxygen
datum/design/freeform_module
name = "Module Design (Freeform)"
@@ -449,7 +436,7 @@ datum/design/freeform_module
req_tech = list("programming" = 4, "materials" = 4)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20, "$gold" = 100)
- build_path = "/obj/item/weapon/aiModule/freeform"
+ build_path = /obj/item/weapon/aiModule/freeform
datum/design/reset_module
name = "Module Design (Reset)"
@@ -458,7 +445,7 @@ datum/design/reset_module
req_tech = list("programming" = 3, "materials" = 6)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20, "$gold" = 100)
- build_path = "/obj/item/weapon/aiModule/reset"
+ build_path = /obj/item/weapon/aiModule/reset
datum/design/purge_module
name = "Module Design (Purge)"
@@ -467,7 +454,7 @@ datum/design/purge_module
req_tech = list("programming" = 4, "materials" = 6)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20, "$diamond" = 100)
- build_path = "/obj/item/weapon/aiModule/purge"
+ build_path = /obj/item/weapon/aiModule/purge
datum/design/freeformcore_module
name = "Core Module Design (Freeform)"
@@ -476,7 +463,7 @@ datum/design/freeformcore_module
req_tech = list("programming" = 4, "materials" = 6)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20, "$diamond" = 100)
- build_path = "/obj/item/weapon/aiModule/freeformcore"
+ build_path = /obj/item/weapon/aiModule/freeformcore
datum/design/asimov
name = "Core Module Design (Asimov)"
@@ -485,7 +472,7 @@ datum/design/asimov
req_tech = list("programming" = 3, "materials" = 6)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20, "$diamond" = 100)
- build_path = "/obj/item/weapon/aiModule/asimov"
+ build_path = /obj/item/weapon/aiModule/asimov
datum/design/paladin_module
name = "Core Module Design (P.A.L.A.D.I.N.)"
@@ -494,7 +481,7 @@ datum/design/paladin_module
req_tech = list("programming" = 4, "materials" = 6)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20, "$diamond" = 100)
- build_path = "/obj/item/weapon/aiModule/paladin"
+ build_path = /obj/item/weapon/aiModule/paladin
datum/design/tyrant_module
name = "Core Module Design (T.Y.R.A.N.T.)"
@@ -503,7 +490,7 @@ datum/design/tyrant_module
req_tech = list("programming" = 4, "syndicate" = 2, "materials" = 6)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20, "$diamond" = 100)
- build_path = "/obj/item/weapon/aiModule/tyrant"
+ build_path = /obj/item/weapon/aiModule/tyrant
@@ -517,7 +504,7 @@ datum/design/subspace_receiver
req_tech = list("programming" = 2, "engineering" = 2, "bluespace" = 1)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/telecomms/receiver"
+ build_path = /obj/item/weapon/circuitboard/telecomms/receiver
datum/design/telecomms_bus
name = "Circuit Design (Bus Mainframe)"
@@ -526,7 +513,7 @@ datum/design/telecomms_bus
req_tech = list("programming" = 2, "engineering" = 2)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/telecomms/bus"
+ build_path = /obj/item/weapon/circuitboard/telecomms/bus
datum/design/telecomms_hub
name = "Circuit Design (Hub Mainframe)"
@@ -535,7 +522,7 @@ datum/design/telecomms_hub
req_tech = list("programming" = 2, "engineering" = 2)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/telecomms/hub"
+ build_path = /obj/item/weapon/circuitboard/telecomms/hub
datum/design/telecomms_relay
name = "Circuit Design (Relay Mainframe)"
@@ -544,7 +531,7 @@ datum/design/telecomms_relay
req_tech = list("programming" = 2, "engineering" = 2, "bluespace" = 2)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/telecomms/relay"
+ build_path = /obj/item/weapon/circuitboard/telecomms/relay
datum/design/telecomms_processor
name = "Circuit Design (Processor Unit)"
@@ -553,7 +540,7 @@ datum/design/telecomms_processor
req_tech = list("programming" = 2, "engineering" = 2)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/telecomms/processor"
+ build_path = /obj/item/weapon/circuitboard/telecomms/processor
datum/design/telecomms_server
name = "Circuit Design (Server Mainframe)"
@@ -562,7 +549,7 @@ datum/design/telecomms_server
req_tech = list("programming" = 2, "engineering" = 2)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/telecomms/server"
+ build_path = /obj/item/weapon/circuitboard/telecomms/server
datum/design/subspace_broadcaster
name = "Circuit Design (Subspace Broadcaster)"
@@ -571,7 +558,7 @@ datum/design/subspace_broadcaster
req_tech = list("programming" = 2, "engineering" = 2, "bluespace" = 1)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/telecomms/broadcaster"
+ build_path = /obj/item/weapon/circuitboard/telecomms/broadcaster
///////////////////////////////////
@@ -585,7 +572,7 @@ datum/design/intellicard
req_tech = list("programming" = 4, "materials" = 4)
build_type = PROTOLATHE
materials = list("$glass" = 1000, "$gold" = 200)
- build_path = "/obj/item/device/aicard"
+ build_path = /obj/item/device/aicard
datum/design/paicard
name = "Personal Artificial Intelligence Card"
@@ -594,7 +581,7 @@ datum/design/paicard
req_tech = list("programming" = 2)
build_type = PROTOLATHE
materials = list("$glass" = 500, "$metal" = 500)
- build_path = "/obj/item/device/paicard"
+ build_path = /obj/item/device/paicard
///////////////////////////////////
//////////Mecha Module Disks///////
@@ -607,7 +594,7 @@ datum/design/ripley_main
req_tech = list("programming" = 3)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/mecha/ripley/main"
+ build_path = /obj/item/weapon/circuitboard/mecha/ripley/main
datum/design/ripley_peri
name = "Circuit Design (APLU \"Ripley\" Peripherals Control module)"
@@ -616,7 +603,7 @@ datum/design/ripley_peri
req_tech = list("programming" = 3)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/mecha/ripley/peripherals"
+ build_path = /obj/item/weapon/circuitboard/mecha/ripley/peripherals
datum/design/odysseus_main
name = "Circuit Design (\"Odysseus\" Central Control module)"
@@ -625,7 +612,7 @@ datum/design/odysseus_main
req_tech = list("programming" = 3,"biotech" = 2)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/mecha/odysseus/main"
+ build_path = /obj/item/weapon/circuitboard/mecha/odysseus/main
datum/design/odysseus_peri
name = "Circuit Design (\"Odysseus\" Peripherals Control module)"
@@ -634,7 +621,7 @@ datum/design/odysseus_peri
req_tech = list("programming" = 3,"biotech" = 2)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/mecha/odysseus/peripherals"
+ build_path = /obj/item/weapon/circuitboard/mecha/odysseus/peripherals
datum/design/gygax_main
name = "Circuit Design (\"Gygax\" Central Control module)"
@@ -643,7 +630,7 @@ datum/design/gygax_main
req_tech = list("programming" = 4)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/mecha/gygax/main"
+ build_path = /obj/item/weapon/circuitboard/mecha/gygax/main
datum/design/gygax_peri
name = "Circuit Design (\"Gygax\" Peripherals Control module)"
@@ -652,7 +639,7 @@ datum/design/gygax_peri
req_tech = list("programming" = 4)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/mecha/gygax/peripherals"
+ build_path = /obj/item/weapon/circuitboard/mecha/gygax/peripherals
datum/design/gygax_targ
name = "Circuit Design (\"Gygax\" Weapons & Targeting Control module)"
@@ -661,7 +648,7 @@ datum/design/gygax_targ
req_tech = list("programming" = 4, "combat" = 2)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/mecha/gygax/targeting"
+ build_path = /obj/item/weapon/circuitboard/mecha/gygax/targeting
datum/design/durand_main
name = "Circuit Design (\"Durand\" Central Control module)"
@@ -670,7 +657,7 @@ datum/design/durand_main
req_tech = list("programming" = 4)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/mecha/durand/main"
+ build_path = /obj/item/weapon/circuitboard/mecha/durand/main
datum/design/durand_peri
name = "Circuit Design (\"Durand\" Peripherals Control module)"
@@ -679,7 +666,7 @@ datum/design/durand_peri
req_tech = list("programming" = 4)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/mecha/durand/peripherals"
+ build_path = /obj/item/weapon/circuitboard/mecha/durand/peripherals
datum/design/durand_targ
name = "Circuit Design (\"Durand\" Weapons & Targeting Control module)"
@@ -688,7 +675,7 @@ datum/design/durand_targ
req_tech = list("programming" = 4, "combat" = 2)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/mecha/durand/targeting"
+ build_path = /obj/item/weapon/circuitboard/mecha/durand/targeting
datum/design/honker_main
name = "Circuit Design (\"H.O.N.K\" Central Control module)"
@@ -697,7 +684,7 @@ datum/design/honker_main
req_tech = list("programming" = 3)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/mecha/honker/main"
+ build_path = /obj/item/weapon/circuitboard/mecha/honker/main
datum/design/honker_peri
name = "Circuit Design (\"H.O.N.K\" Peripherals Control module)"
@@ -706,7 +693,7 @@ datum/design/honker_peri
req_tech = list("programming" = 3)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/mecha/honker/peripherals"
+ build_path = /obj/item/weapon/circuitboard/mecha/honker/peripherals
datum/design/honker_targ
name = "Circuit Design (\"H.O.N.K\" Weapons & Targeting Control module)"
@@ -715,7 +702,7 @@ datum/design/honker_targ
req_tech = list("programming" = 3)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/mecha/honker/targeting"
+ build_path = /obj/item/weapon/circuitboard/mecha/honker/targeting
////////////////////////////////////////
/////////// Mecha Equpment /////////////
@@ -727,7 +714,7 @@ datum/design/mech_scattershot
id = "mech_scattershot"
build_type = MECHFAB
req_tech = list("combat" = 4)
- build_path = "/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot"
+ build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot
category = "Exosuit Equipment"
datum/design/mech_laser
@@ -736,7 +723,7 @@ datum/design/mech_laser
id = "mech_laser"
build_type = MECHFAB
req_tech = list("combat" = 3, "magnets" = 3)
- build_path = "/obj/item/mecha_parts/mecha_equipment/weapon/energy/laser"
+ build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser
category = "Exosuit Equipment"
datum/design/mech_laser_heavy
@@ -745,7 +732,7 @@ datum/design/mech_laser_heavy
id = "mech_laser_heavy"
build_type = MECHFAB
req_tech = list("combat" = 4, "magnets" = 4)
- build_path = "/obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy"
+ build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy
category = "Exosuit Equipment"
datum/design/mech_grenade_launcher
@@ -754,7 +741,7 @@ datum/design/mech_grenade_launcher
id = "mech_grenade_launcher"
build_type = MECHFAB
req_tech = list("combat" = 3)
- build_path = "/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang"
+ build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang
category = "Exosuit Equipment"
datum/design/clusterbang_launcher
@@ -763,7 +750,7 @@ datum/design/clusterbang_launcher
id = "clusterbang_launcher"
build_type = MECHFAB
req_tech = list("combat"= 5, "materials" = 5, "syndicate" = 3)
- build_path = "/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang/clusterbang"
+ build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang/clusterbang
category = "Exosuit Equipment"
datum/design/mech_wormhole_gen
@@ -772,7 +759,7 @@ datum/design/mech_wormhole_gen
id = "mech_wormhole_gen"
build_type = MECHFAB
req_tech = list("bluespace" = 3, "magnets" = 2)
- build_path = "/obj/item/mecha_parts/mecha_equipment/wormhole_generator"
+ build_path = /obj/item/mecha_parts/mecha_equipment/wormhole_generator
category = "Exosuit Equipment"
datum/design/mech_teleporter
@@ -781,7 +768,7 @@ datum/design/mech_teleporter
id = "mech_teleporter"
build_type = MECHFAB
req_tech = list("bluespace" = 10, "magnets" = 5)
- build_path = "/obj/item/mecha_parts/mecha_equipment/teleporter"
+ build_path = /obj/item/mecha_parts/mecha_equipment/teleporter
category = "Exosuit Equipment"
datum/design/mech_rcd
@@ -790,7 +777,7 @@ datum/design/mech_rcd
id = "mech_rcd"
build_type = MECHFAB
req_tech = list("materials" = 4, "bluespace" = 3, "magnets" = 4, "powerstorage"=4, "engineering" = 4)
- build_path = "/obj/item/mecha_parts/mecha_equipment/tool/rcd"
+ build_path = /obj/item/mecha_parts/mecha_equipment/tool/rcd
category = "Exosuit Equipment"
datum/design/mech_gravcatapult
@@ -799,7 +786,7 @@ datum/design/mech_gravcatapult
id = "mech_gravcatapult"
build_type = MECHFAB
req_tech = list("bluespace" = 2, "magnets" = 3, "engineering" = 3)
- build_path = "/obj/item/mecha_parts/mecha_equipment/gravcatapult"
+ build_path = /obj/item/mecha_parts/mecha_equipment/gravcatapult
category = "Exosuit Equipment"
datum/design/mech_repair_droid
@@ -808,16 +795,7 @@ datum/design/mech_repair_droid
id = "mech_repair_droid"
build_type = MECHFAB
req_tech = list("magnets" = 3, "programming" = 3, "engineering" = 3)
- build_path = "/obj/item/mecha_parts/mecha_equipment/repair_droid"
- category = "Exosuit Equipment"
-
-datum/design/mech_plasma_generator
- name = "Exosuit Module Design (Plasma Converter Module)"
- desc = "Exosuit-mounted plasma converter."
- id = "mech_plasma_generator"
- build_type = MECHFAB
- req_tech = list("plasmatech" = 2, "powerstorage"= 2, "engineering" = 2)
- build_path = "/obj/item/mecha_parts/mecha_equipment/plasma_generator"
+ build_path = /obj/item/mecha_parts/mecha_equipment/repair_droid
category = "Exosuit Equipment"
datum/design/mech_energy_relay
@@ -826,7 +804,7 @@ datum/design/mech_energy_relay
id = "mech_energy_relay"
build_type = MECHFAB
req_tech = list("magnets" = 4, "powerstorage" = 3)
- build_path = "/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay"
+ build_path = /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay
category = "Exosuit Equipment"
datum/design/mech_ccw_armor
@@ -835,7 +813,7 @@ datum/design/mech_ccw_armor
id = "mech_ccw_armor"
build_type = MECHFAB
req_tech = list("materials" = 5, "combat" = 4)
- build_path = "/obj/item/mecha_parts/mecha_equipment/anticcw_armor_booster"
+ build_path = /obj/item/mecha_parts/mecha_equipment/anticcw_armor_booster
category = "Exosuit Equipment"
datum/design/mech_proj_armor
@@ -844,7 +822,7 @@ datum/design/mech_proj_armor
id = "mech_proj_armor"
build_type = MECHFAB
req_tech = list("materials" = 5, "combat" = 5, "engineering"=3)
- build_path = "/obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster"
+ build_path = /obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster
category = "Exosuit Equipment"
datum/design/mech_syringe_gun
@@ -853,7 +831,7 @@ datum/design/mech_syringe_gun
id = "mech_syringe_gun"
build_type = MECHFAB
req_tech = list("materials" = 3, "biotech"=4, "magnets"=4, "programming"=3)
- build_path = "/obj/item/mecha_parts/mecha_equipment/tool/syringe_gun"
+ build_path = /obj/item/mecha_parts/mecha_equipment/tool/syringe_gun
category = "Exosuit Equipment"
datum/design/mech_diamond_drill
@@ -862,7 +840,7 @@ datum/design/mech_diamond_drill
id = "mech_diamond_drill"
build_type = MECHFAB
req_tech = list("materials" = 4, "engineering" = 3)
- build_path = "/obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill"
+ build_path = /obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill
category = "Exosuit Equipment"
datum/design/mech_generator_nuclear
@@ -871,7 +849,7 @@ datum/design/mech_generator_nuclear
id = "mech_generator_nuclear"
build_type = MECHFAB
req_tech = list("powerstorage"= 3, "engineering" = 3, "materials" = 3)
- build_path = "/obj/item/mecha_parts/mecha_equipment/generator/nuclear"
+ build_path = /obj/item/mecha_parts/mecha_equipment/generator/nuclear
category = "Exosuit Equipment"
@@ -885,7 +863,7 @@ datum/design/design_disk
req_tech = list("programming" = 1)
build_type = PROTOLATHE | AUTOLATHE
materials = list("$metal" = 30, "$glass" = 10)
- build_path = "/obj/item/weapon/disk/design_disk"
+ build_path = /obj/item/weapon/disk/design_disk
datum/design/tech_disk
name = "Technology Data Storage Disk"
@@ -894,7 +872,7 @@ datum/design/tech_disk
req_tech = list("programming" = 1)
build_type = PROTOLATHE | AUTOLATHE
materials = list("$metal" = 30, "$glass" = 10)
- build_path = "/obj/item/weapon/disk/tech_disk"
+ build_path = /obj/item/weapon/disk/tech_disk
////////////////////////////////////////
/////////////Stock Parts////////////////
@@ -907,7 +885,7 @@ datum/design/basic_capacitor
req_tech = list("powerstorage" = 1)
build_type = PROTOLATHE | AUTOLATHE
materials = list("$metal" = 50, "$glass" = 50)
- build_path = "/obj/item/weapon/stock_parts/capacitor"
+ build_path = /obj/item/weapon/stock_parts/capacitor
datum/design/basic_scanning
name = "Basic Scanning Module"
@@ -916,7 +894,7 @@ datum/design/basic_scanning
req_tech = list("magnets" = 1)
build_type = PROTOLATHE | AUTOLATHE
materials = list("$metal" = 50, "$glass" = 20)
- build_path = "/obj/item/weapon/stock_parts/scanning_module"
+ build_path = /obj/item/weapon/stock_parts/scanning_module
datum/design/micro_mani
name = "Micro Manipulator"
@@ -925,7 +903,7 @@ datum/design/micro_mani
req_tech = list("materials" = 1, "programming" = 1)
build_type = PROTOLATHE | AUTOLATHE
materials = list("$metal" = 30)
- build_path = "/obj/item/weapon/stock_parts/manipulator"
+ build_path = /obj/item/weapon/stock_parts/manipulator
datum/design/basic_micro_laser
name = "Basic Micro-Laser"
@@ -934,7 +912,7 @@ datum/design/basic_micro_laser
req_tech = list("magnets" = 1)
build_type = PROTOLATHE | AUTOLATHE
materials = list("$metal" = 10, "$glass" = 20)
- build_path = "/obj/item/weapon/stock_parts/micro_laser"
+ build_path = /obj/item/weapon/stock_parts/micro_laser
datum/design/basic_matter_bin
name = "Basic Matter Bin"
@@ -943,7 +921,7 @@ datum/design/basic_matter_bin
req_tech = list("materials" = 1)
build_type = PROTOLATHE | AUTOLATHE
materials = list("$metal" = 80)
- build_path = "/obj/item/weapon/stock_parts/matter_bin"
+ build_path = /obj/item/weapon/stock_parts/matter_bin
datum/design/adv_capacitor
name = "Advanced Capacitor"
@@ -952,7 +930,7 @@ datum/design/adv_capacitor
req_tech = list("powerstorage" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 50, "$glass" = 50)
- build_path = "/obj/item/weapon/stock_parts/capacitor/adv"
+ build_path = /obj/item/weapon/stock_parts/capacitor/adv
datum/design/adv_scanning
name = "Advanced Scanning Module"
@@ -961,7 +939,7 @@ datum/design/adv_scanning
req_tech = list("magnets" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 50, "$glass" = 20)
- build_path = "/obj/item/weapon/stock_parts/scanning_module/adv"
+ build_path = /obj/item/weapon/stock_parts/scanning_module/adv
datum/design/nano_mani
name = "Nano Manipulator"
@@ -970,7 +948,7 @@ datum/design/nano_mani
req_tech = list("materials" = 3, "programming" = 2)
build_type = PROTOLATHE
materials = list("$metal" = 30)
- build_path = "/obj/item/weapon/stock_parts/manipulator/nano"
+ build_path = /obj/item/weapon/stock_parts/manipulator/nano
datum/design/high_micro_laser
name = "High-Power Micro-Laser"
@@ -979,7 +957,7 @@ datum/design/high_micro_laser
req_tech = list("magnets" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 10, "$glass" = 20)
- build_path = "/obj/item/weapon/stock_parts/micro_laser/high"
+ build_path = /obj/item/weapon/stock_parts/micro_laser/high
datum/design/adv_matter_bin
name = "Advanced Matter Bin"
@@ -988,7 +966,7 @@ datum/design/adv_matter_bin
req_tech = list("materials" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 80)
- build_path = "/obj/item/weapon/stock_parts/matter_bin/adv"
+ build_path = /obj/item/weapon/stock_parts/matter_bin/adv
datum/design/super_capacitor
name = "Super Capacitor"
@@ -996,9 +974,9 @@ datum/design/super_capacitor
id = "super_capacitor"
req_tech = list("powerstorage" = 5, "materials" = 4)
build_type = PROTOLATHE
- reliability_base = 71
+ reliability = 71
materials = list("$metal" = 50, "$glass" = 50, "$gold" = 20)
- build_path = "/obj/item/weapon/stock_parts/capacitor/super"
+ build_path = /obj/item/weapon/stock_parts/capacitor/super
datum/design/phasic_scanning
name = "Phasic Scanning Module"
@@ -1007,8 +985,8 @@ datum/design/phasic_scanning
req_tech = list("magnets" = 5, "materials" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 50, "$glass" = 20, "$silver" = 10)
- reliability_base = 72
- build_path = "/obj/item/weapon/stock_parts/scanning_module/phasic"
+ reliability = 72
+ build_path = /obj/item/weapon/stock_parts/scanning_module/phasic
datum/design/pico_mani
name = "Pico Manipulator"
@@ -1017,8 +995,8 @@ datum/design/pico_mani
req_tech = list("materials" = 5, "programming" = 2)
build_type = PROTOLATHE
materials = list("$metal" = 30)
- reliability_base = 73
- build_path = "/obj/item/weapon/stock_parts/manipulator/pico"
+ reliability = 73
+ build_path = /obj/item/weapon/stock_parts/manipulator/pico
datum/design/ultra_micro_laser
name = "Ultra-High-Power Micro-Laser"
@@ -1027,8 +1005,8 @@ datum/design/ultra_micro_laser
req_tech = list("magnets" = 5, "materials" = 5)
build_type = PROTOLATHE
materials = list("$metal" = 10, "$glass" = 20, "$uranium" = 10)
- reliability_base = 70
- build_path = "/obj/item/weapon/stock_parts/micro_laser/ultra"
+ reliability = 70
+ build_path = /obj/item/weapon/stock_parts/micro_laser/ultra
datum/design/super_matter_bin
name = "Super Matter Bin"
@@ -1037,8 +1015,8 @@ datum/design/super_matter_bin
req_tech = list("materials" = 5)
build_type = PROTOLATHE
materials = list("$metal" = 80)
- reliability_base = 75
- build_path = "/obj/item/weapon/stock_parts/matter_bin/super"
+ reliability = 75
+ build_path = /obj/item/weapon/stock_parts/matter_bin/super
@@ -1049,7 +1027,7 @@ datum/design/subspace_ansible
req_tech = list("programming" = 2, "magnets" = 2, "materials" = 2, "bluespace" = 1)
build_type = PROTOLATHE
materials = list("$metal" = 80, "$silver" = 20)
- build_path = "/obj/item/weapon/stock_parts/subspace/ansible"
+ build_path = /obj/item/weapon/stock_parts/subspace/ansible
datum/design/hyperwave_filter
name = "Hyperwave Filter"
@@ -1058,7 +1036,7 @@ datum/design/hyperwave_filter
req_tech = list("programming" = 2, "magnets" = 2)
build_type = PROTOLATHE
materials = list("$metal" = 40, "$silver" = 10)
- build_path = "/obj/item/weapon/stock_parts/subspace/filter"
+ build_path = /obj/item/weapon/stock_parts/subspace/filter
datum/design/subspace_amplifier
name = "Subspace Amplifier"
@@ -1067,7 +1045,7 @@ datum/design/subspace_amplifier
req_tech = list("programming" = 2, "magnets" = 2, "materials" = 2, "bluespace" = 1)
build_type = PROTOLATHE
materials = list("$metal" = 10, "$gold" = 30, "$uranium" = 15)
- build_path = "/obj/item/weapon/stock_parts/subspace/amplifier"
+ build_path = /obj/item/weapon/stock_parts/subspace/amplifier
datum/design/subspace_treatment
name = "Subspace Treatment Disk"
@@ -1076,7 +1054,7 @@ datum/design/subspace_treatment
req_tech = list("programming" = 2, "magnets" = 1, "materials" = 2, "bluespace" = 1)
build_type = PROTOLATHE
materials = list("$metal" = 10, "$silver" = 20)
- build_path = "/obj/item/weapon/stock_parts/subspace/treatment"
+ build_path = /obj/item/weapon/stock_parts/subspace/treatment
datum/design/subspace_analyzer
name = "Subspace Analyzer"
@@ -1085,7 +1063,7 @@ datum/design/subspace_analyzer
req_tech = list("programming" = 2, "magnets" = 2, "materials" = 2, "bluespace" = 1)
build_type = PROTOLATHE
materials = list("$metal" = 10, "$gold" = 15)
- build_path = "/obj/item/weapon/stock_parts/subspace/analyzer"
+ build_path = /obj/item/weapon/stock_parts/subspace/analyzer
datum/design/subspace_crystal
name = "Ansible Crystal"
@@ -1094,7 +1072,7 @@ datum/design/subspace_crystal
req_tech = list("magnets" = 2, "materials" = 2, "bluespace" = 1)
build_type = PROTOLATHE
materials = list("$glass" = 1000, "$silver" = 20, "$gold" = 20)
- build_path = "/obj/item/weapon/stock_parts/subspace/crystal"
+ build_path = /obj/item/weapon/stock_parts/subspace/crystal
datum/design/subspace_transmitter
name = "Subspace Transmitter"
@@ -1103,7 +1081,7 @@ datum/design/subspace_transmitter
req_tech = list("magnets" = 3, "materials" = 3, "bluespace" = 2)
build_type = PROTOLATHE
materials = list("$glass" = 100, "$silver" = 10, "$uranium" = 15)
- build_path = "/obj/item/weapon/stock_parts/subspace/transmitter"
+ build_path = /obj/item/weapon/stock_parts/subspace/transmitter
////////////////////////////////////////
//////////////////Power/////////////////
@@ -1116,7 +1094,7 @@ datum/design/basic_cell
req_tech = list("powerstorage" = 1)
build_type = PROTOLATHE | AUTOLATHE |MECHFAB
materials = list("$metal" = 700, "$glass" = 50)
- build_path = "/obj/item/weapon/cell"
+ build_path = /obj/item/weapon/cell
category = "Misc"
datum/design/high_cell
@@ -1126,7 +1104,7 @@ datum/design/high_cell
req_tech = list("powerstorage" = 2)
build_type = PROTOLATHE | AUTOLATHE | MECHFAB
materials = list("$metal" = 700, "$glass" = 60)
- build_path = "/obj/item/weapon/cell/high"
+ build_path = /obj/item/weapon/cell/high
category = "Misc"
datum/design/super_cell
@@ -1134,10 +1112,10 @@ datum/design/super_cell
desc = "A power cell that holds 20000 units of energy"
id = "super_cell"
req_tech = list("powerstorage" = 3, "materials" = 2)
- reliability_base = 75
+ reliability = 75
build_type = PROTOLATHE | MECHFAB
materials = list("$metal" = 700, "$glass" = 70)
- build_path = "/obj/item/weapon/cell/super"
+ build_path = /obj/item/weapon/cell/super
category = "Misc"
datum/design/hyper_cell
@@ -1145,10 +1123,10 @@ datum/design/hyper_cell
desc = "A power cell that holds 30000 units of energy"
id = "hyper_cell"
req_tech = list("powerstorage" = 5, "materials" = 4)
- reliability_base = 70
+ reliability = 70
build_type = PROTOLATHE | MECHFAB
materials = list("$metal" = 400, "$gold" = 150, "$silver" = 150, "$glass" = 70)
- build_path = "/obj/item/weapon/cell/hyper"
+ build_path = /obj/item/weapon/cell/hyper
category = "Misc"
datum/design/light_replacer
@@ -1158,7 +1136,7 @@ datum/design/light_replacer
req_tech = list("magnets" = 3, "materials" = 4)
build_type = PROTOLATHE
materials = list("$metal" = 1500, "$silver" = 150, "$glass" = 3000)
- build_path = "/obj/item/device/lightreplacer"
+ build_path = /obj/item/device/lightreplacer
////////////////////////////////////////
//////////////MISC Boards///////////////
@@ -1171,7 +1149,7 @@ datum/design/destructive_analyzer
req_tech = list("programming" = 2, "magnets" = 2, "engineering" = 2)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/destructive_analyzer"
+ build_path = /obj/item/weapon/circuitboard/destructive_analyzer
datum/design/protolathe
name = "Protolathe Board"
@@ -1180,7 +1158,7 @@ datum/design/protolathe
req_tech = list("programming" = 2, "engineering" = 2)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/protolathe"
+ build_path = /obj/item/weapon/circuitboard/protolathe
datum/design/circuit_imprinter
name = "Circuit Imprinter Board"
@@ -1189,7 +1167,7 @@ datum/design/circuit_imprinter
req_tech = list("programming" = 2, "engineering" = 2)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/circuit_imprinter"
+ build_path = /obj/item/weapon/circuitboard/circuit_imprinter
datum/design/autolathe
name = "Autolathe Board"
@@ -1198,7 +1176,7 @@ datum/design/autolathe
req_tech = list("programming" = 2, "engineering" = 2)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/autolathe"
+ build_path = /obj/item/weapon/circuitboard/autolathe
datum/design/rdservercontrol
name = "R&D Server Control Console Board"
@@ -1207,7 +1185,7 @@ datum/design/rdservercontrol
req_tech = list("programming" = 3)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/rdservercontrol"
+ build_path = /obj/item/weapon/circuitboard/rdservercontrol
datum/design/rdserver
name = "R&D Server Board"
@@ -1216,7 +1194,7 @@ datum/design/rdserver
req_tech = list("programming" = 3)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/rdserver"
+ build_path = /obj/item/weapon/circuitboard/rdserver
datum/design/mechfab
name = "Exosuit Fabricator Board"
@@ -1225,7 +1203,7 @@ datum/design/mechfab
req_tech = list("programming" = 3, "engineering" = 3)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/mechfab"
+ build_path = /obj/item/weapon/circuitboard/mechfab
datum/design/cyborgrecharger
@@ -1235,7 +1213,7 @@ datum/design/cyborgrecharger
req_tech = list("powerstorage" = 3, "engineering" = 3)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/cyborgrecharger"
+ build_path = /obj/item/weapon/circuitboard/cyborgrecharger
/////////////////////////////////////////
////////////Power Stuff//////////////////
@@ -1247,9 +1225,9 @@ datum/design/pacman
id = "pacman"
req_tech = list("programming" = 3, "plasmatech" = 3, "powerstorage" = 3, "engineering" = 3)
build_type = IMPRINTER
- reliability_base = 79
+ reliability = 79
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/pacman"
+ build_path = /obj/item/weapon/circuitboard/pacman
datum/design/superpacman
name = "SUPERPACMAN-type Generator Board"
@@ -1257,9 +1235,9 @@ datum/design/superpacman
id = "superpacman"
req_tech = list("programming" = 3, "powerstorage" = 4, "engineering" = 4)
build_type = IMPRINTER
- reliability_base = 76
+ reliability = 76
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/pacman/super"
+ build_path = /obj/item/weapon/circuitboard/pacman/super
datum/design/mrspacman
name = "MRSPACMAN-type Generator Board"
@@ -1267,9 +1245,9 @@ datum/design/mrspacman
id = "mrspacman"
req_tech = list("programming" = 3, "powerstorage" = 5, "engineering" = 5)
build_type = IMPRINTER
- reliability_base = 74
+ reliability = 74
materials = list("$glass" = 2000, "sacid" = 20)
- build_path = "/obj/item/weapon/circuitboard/pacman/mrs"
+ build_path = /obj/item/weapon/circuitboard/pacman/mrs
/////////////////////////////////////////
@@ -1283,8 +1261,8 @@ datum/design/mass_spectrometer
req_tech = list("biotech" = 2, "magnets" = 2)
build_type = PROTOLATHE
materials = list("$metal" = 30, "$glass" = 20)
- reliability_base = 76
- build_path = "/obj/item/device/mass_spectrometer"
+ reliability = 76
+ build_path = /obj/item/device/mass_spectrometer
datum/design/adv_mass_spectrometer
name = "Advanced Mass-Spectrometer"
@@ -1293,8 +1271,8 @@ datum/design/adv_mass_spectrometer
req_tech = list("biotech" = 2, "magnets" = 4)
build_type = PROTOLATHE
materials = list("$metal" = 30, "$glass" = 20)
- reliability_base = 74
- build_path = "/obj/item/device/mass_spectrometer/adv"
+ reliability = 74
+ build_path = /obj/item/device/mass_spectrometer/adv
datum/design/mmi
name = "Man-Machine Interface"
@@ -1303,8 +1281,8 @@ datum/design/mmi
req_tech = list("programming" = 2, "biotech" = 3)
build_type = PROTOLATHE | MECHFAB
materials = list("$metal" = 1000, "$glass" = 500)
- reliability_base = 76
- build_path = "/obj/item/device/mmi"
+ reliability = 76
+ build_path = /obj/item/device/mmi
category = "Misc"
datum/design/mmi_radio
@@ -1314,8 +1292,8 @@ datum/design/mmi_radio
req_tech = list("programming" = 2, "biotech" = 4)
build_type = PROTOLATHE | MECHFAB
materials = list("$metal" = 1200, "$glass" = 500)
- reliability_base = 74
- build_path = "/obj/item/device/mmi/radio_enabled"
+ reliability = 74
+ build_path = /obj/item/device/mmi/radio_enabled
category = "Misc"
datum/design/synthetic_flash
@@ -1325,8 +1303,8 @@ datum/design/synthetic_flash
req_tech = list("magnets" = 3, "combat" = 2)
build_type = MECHFAB
materials = list("$metal" = 750, "$glass" = 750)
- reliability_base = 76
- build_path = "/obj/item/device/flash/synthetic"
+ reliability = 76
+ build_path = /obj/item/device/flash/synthetic
category = "Misc"
datum/design/bluespacebeaker
@@ -1336,8 +1314,8 @@ datum/design/bluespacebeaker
req_tech = list("bluespace" = 2, "materials" = 6)
build_type = PROTOLATHE
materials = list("$metal" = 3000, "$plasma" = 3000, "$diamond" = 500)
- reliability_base = 76
- build_path = "/obj/item/weapon/reagent_containers/glass/beaker/bluespace"
+ reliability = 76
+ build_path = /obj/item/weapon/reagent_containers/glass/beaker/bluespace
category = "Misc"
datum/design/noreactbeaker
@@ -1347,8 +1325,8 @@ datum/design/noreactbeaker
req_tech = list("materials" = 2)
build_type = PROTOLATHE
materials = list("$metal" = 3000)
- reliability_base = 76
- build_path = "/obj/item/weapon/reagent_containers/glass/beaker/noreact"
+ reliability = 76
+ build_path = /obj/item/weapon/reagent_containers/glass/beaker/noreact
category = "Misc"
/////////////////////////////////////////
@@ -1362,8 +1340,8 @@ datum/design/nuclear_gun
req_tech = list("combat" = 3, "materials" = 5, "powerstorage" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 5000, "$glass" = 1000, "$uranium" = 500)
- reliability_base = 76
- build_path = "/obj/item/weapon/gun/energy/gun/nuclear"
+ reliability = 76
+ build_path = /obj/item/weapon/gun/energy/gun/nuclear
locked = 1
datum/design/stunrevolver
@@ -1373,7 +1351,7 @@ datum/design/stunrevolver
req_tech = list("combat" = 3, "materials" = 3, "powerstorage" = 2)
build_type = PROTOLATHE
materials = list("$metal" = 4000)
- build_path = "/obj/item/weapon/gun/energy/stunrevolver"
+ build_path = /obj/item/weapon/gun/energy/stunrevolver
locked = 1
datum/design/lasercannon
@@ -1383,7 +1361,7 @@ datum/design/lasercannon
req_tech = list("combat" = 4, "materials" = 3, "powerstorage" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 10000, "$glass" = 1000, "$diamond" = 2000)
- build_path = "/obj/item/weapon/gun/energy/lasercannon"
+ build_path = /obj/item/weapon/gun/energy/lasercannon
locked = 1
datum/design/decloner
@@ -1393,7 +1371,7 @@ datum/design/decloner
req_tech = list("combat" = 8, "materials" = 7, "biotech" = 5, "powerstorage" = 6)
build_type = PROTOLATHE
materials = list("$gold" = 5000,"$uranium" = 10000, "mutagen" = 40)
- build_path = "/obj/item/weapon/gun/energy/decloner"
+ build_path = /obj/item/weapon/gun/energy/decloner
locked = 1
/*
datum/design/chemsprayer
@@ -1403,8 +1381,8 @@ datum/design/chemsprayer
req_tech = list("combat" = 3, "materials" = 3, "engineering" = 3, "biotech" = 2)
build_type = PROTOLATHE
materials = list("$metal" = 5000, "$glass" = 1000)
- reliability_base = 100
- build_path = "/obj/item/weapon/chemsprayer"
+ reliability = 100
+ build_path = /obj/item/weapon/chemsprayer"
*/
datum/design/rapidsyringe
name = "Rapid Syringe Gun"
@@ -1413,7 +1391,7 @@ datum/design/rapidsyringe
req_tech = list("combat" = 3, "materials" = 3, "engineering" = 3, "biotech" = 2)
build_type = PROTOLATHE
materials = list("$metal" = 5000, "$glass" = 1000)
- build_path = "/obj/item/weapon/gun/syringe/rapidsyringe"
+ build_path = /obj/item/weapon/gun/syringe/rapidsyringe
/*
datum/design/largecrossbow
name = "Energy Crossbow"
@@ -1422,7 +1400,7 @@ datum/design/largecrossbow
req_tech = list("combat" = 4, "materials" = 5, "engineering" = 3, "biotech" = 4, "syndicate" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 5000, "$glass" = 1000, "$uranium" = 1000, "$silver" = 1000)
- build_path = "/obj/item/weapon/gun/energy/crossbow/largecrossbow"
+ build_path = /obj/item/weapon/gun/energy/crossbow/largecrossbow"
*/
datum/design/temp_gun
name = "Temperature Gun"
@@ -1431,7 +1409,7 @@ datum/design/temp_gun
req_tech = list("combat" = 3, "materials" = 4, "powerstorage" = 3, "magnets" = 2)
build_type = PROTOLATHE
materials = list("$metal" = 5000, "$glass" = 500, "$silver" = 3000)
- build_path = "/obj/item/weapon/gun/energy/temperature"
+ build_path = /obj/item/weapon/gun/energy/temperature
locked = 1
datum/design/flora_gun
@@ -1441,7 +1419,7 @@ datum/design/flora_gun
req_tech = list("materials" = 2, "biotech" = 3, "powerstorage" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 2000, "$glass" = 500, "$uranium" = 500)
- build_path = "/obj/item/weapon/gun/energy/floragun"
+ build_path = /obj/item/weapon/gun/energy/floragun
datum/design/large_grenade
name = "Large Grenade"
@@ -1450,8 +1428,8 @@ datum/design/large_grenade
req_tech = list("combat" = 3, "materials" = 2)
build_type = PROTOLATHE
materials = list("$metal" = 3000)
- reliability_base = 79
- build_path = "/obj/item/weapon/grenade/chem_grenade/large"
+ reliability = 79
+ build_path = /obj/item/weapon/grenade/chem_grenade/large
datum/design/smg
name = "Submachine Gun"
@@ -1460,7 +1438,7 @@ datum/design/smg
req_tech = list("combat" = 4, "materials" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 8000, "$silver" = 2000, "$diamond" = 1000)
- build_path = "/obj/item/weapon/gun/projectile/automatic"
+ build_path = /obj/item/weapon/gun/projectile/automatic
locked = 1
datum/design/xray
@@ -1470,7 +1448,7 @@ datum/design/xray
req_tech = list("combat" = 6, "materials" = 5, "biotech" = 5, "powerstorage" = 4)
build_type = PROTOLATHE
materials = list("$gold" = 5000,"$uranium" = 10000, "$metal" = 4000)
- build_path = "/obj/item/weapon/gun/energy/xray"
+ build_path = /obj/item/weapon/gun/energy/xray
locked = 1
datum/design/ammo_9mm
@@ -1480,7 +1458,7 @@ datum/design/ammo_9mm
req_tech = list("combat" = 4, "materials" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 3750, "$silver" = 100)
- build_path = "/obj/item/ammo_box/c9mm"
+ build_path = /obj/item/ammo_box/c9mm
datum/design/mag_smg
name = "Submachine Gun Magazine (9mm)"
@@ -1489,7 +1467,7 @@ datum/design/mag_smg
req_tech = list("combat" = 4, "materials" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 3750, "$silver" = 100)
- build_path = "/obj/item/ammo_box/magazine/msmg9mm"
+ build_path = /obj/item/ammo_box/magazine/msmg9mm
datum/design/stunshell
name = "Stun Shell"
@@ -1498,7 +1476,7 @@ datum/design/stunshell
req_tech = list("combat" = 3, "materials" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 4000)
- build_path = "/obj/item/ammo_casing/shotgun/stunshell"
+ build_path = /obj/item/ammo_casing/shotgun/stunshell
/////////////////////////////////////////
/////////////////Mining//////////////////
@@ -1511,7 +1489,7 @@ datum/design/jackhammer
req_tech = list("materials" = 3, "powerstorage" = 2, "engineering" = 2)
build_type = PROTOLATHE
materials = list("$metal" = 2000, "$glass" = 500, "$silver" = 500)
- build_path = "/obj/item/weapon/pickaxe/jackhammer"
+ build_path = /obj/item/weapon/pickaxe/jackhammer
datum/design/drill
name = "Mining Drill"
@@ -1520,7 +1498,7 @@ datum/design/drill
req_tech = list("materials" = 2, "powerstorage" = 3, "engineering" = 2)
build_type = PROTOLATHE
materials = list("$metal" = 6000, "$glass" = 1000) //expensive, but no need for miners.
- build_path = "/obj/item/weapon/pickaxe/drill"
+ build_path = /obj/item/weapon/pickaxe/drill
datum/design/plasmacutter
name = "Plasma Cutter"
@@ -1529,8 +1507,8 @@ datum/design/plasmacutter
req_tech = list("materials" = 4, "plasmatech" = 3, "engineering" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 1500, "$glass" = 500, "$gold" = 500, "$plasma" = 500)
- reliability_base = 79
- build_path = "/obj/item/weapon/pickaxe/plasmacutter"
+ reliability = 79
+ build_path = /obj/item/weapon/pickaxe/plasmacutter
datum/design/pick_diamond
name = "Diamond Pickaxe"
@@ -1539,7 +1517,7 @@ datum/design/pick_diamond
req_tech = list("materials" = 6)
build_type = PROTOLATHE
materials = list("$diamond" = 3000)
- build_path = "/obj/item/weapon/pickaxe/diamond"
+ build_path = /obj/item/weapon/pickaxe/diamond
datum/design/drill_diamond
name = "Diamond Mining Drill"
@@ -1548,8 +1526,8 @@ datum/design/drill_diamond
req_tech = list("materials" = 6, "powerstorage" = 4, "engineering" = 4)
build_type = PROTOLATHE
materials = list("$metal" = 3000, "$glass" = 1000, "$diamond" = 3750) //Yes, a whole diamond is needed.
- reliability_base = 79
- build_path = "/obj/item/weapon/pickaxe/diamonddrill"
+ reliability = 79
+ build_path = /obj/item/weapon/pickaxe/diamonddrill
datum/design/mesons
name = "Optical Meson Scanners"
@@ -1558,7 +1536,7 @@ datum/design/mesons
req_tech = list("magnets" = 2, "engineering" = 2)
build_type = PROTOLATHE
materials = list("$metal" = 50, "$glass" = 50)
- build_path = "/obj/item/clothing/glasses/meson"
+ build_path = /obj/item/clothing/glasses/meson
/////////////////////////////////////////
//////////////Blue Space/////////////////
@@ -1571,7 +1549,7 @@ datum/design/beacon
req_tech = list("bluespace" = 1)
build_type = PROTOLATHE
materials = list ("$metal" = 20, "$glass" = 10)
- build_path = "/obj/item/device/radio/beacon"
+ build_path = /obj/item/device/radio/beacon
datum/design/bag_holding
name = "Bag of Holding"
@@ -1580,8 +1558,8 @@ datum/design/bag_holding
req_tech = list("bluespace" = 4, "materials" = 6)
build_type = PROTOLATHE
materials = list("$gold" = 3000, "$diamond" = 1500, "$uranium" = 250)
- reliability_base = 80
- build_path = "/obj/item/weapon/storage/backpack/holding"
+ reliability = 80
+ build_path = /obj/item/weapon/storage/backpack/holding
datum/design/bluespace_crystal
name = "Artificial Bluespace Crystal"
@@ -1590,8 +1568,8 @@ datum/design/bluespace_crystal
req_tech = list("bluespace" = 4, "materials" = 6)
build_type = PROTOLATHE
materials = list("$diamond" = 1500, "$plasma" = 1500)
- reliability_base = 100
- build_path = "/obj/item/bluespace_crystal/artificial"
+ reliability = 100
+ build_path = /obj/item/bluespace_crystal/artificial
/////////////////////////////////////////
/////////////////HUDs////////////////////
@@ -1604,7 +1582,7 @@ datum/design/health_hud
req_tech = list("biotech" = 2, "magnets" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 50, "$glass" = 50)
- build_path = "/obj/item/clothing/glasses/hud/health"
+ build_path = /obj/item/clothing/glasses/hud/health
datum/design/security_hud
name = "Security HUD"
@@ -1613,7 +1591,7 @@ datum/design/security_hud
req_tech = list("magnets" = 3, "combat" = 2)
build_type = PROTOLATHE
materials = list("$metal" = 50, "$glass" = 50)
- build_path = "/obj/item/clothing/glasses/hud/security"
+ build_path = /obj/item/clothing/glasses/hud/security
locked = 1
/////////////////////////////////////////
@@ -1627,7 +1605,7 @@ datum/design/security_hud
build_type = PROTOLATHE
req_tech = list("materials" = 1)
materials = list("$gold" = 3000, "iron" = 15, "copper" = 10, "$silver" = 2500)
- build_path = "/obj/item/weapon/banhammer" */
+ build_path = /obj/item/weapon/banhammer" */
////////////////////////////////////////
//Disks for transporting design datums//
@@ -1658,7 +1636,7 @@ datum/design/borg_syndicate_module
id = "borg_syndicate_module"
build_type = MECHFAB
req_tech = list("combat" = 4, "syndicate" = 3)
- build_path = "/obj/item/borg/upgrade/syndicate"
+ build_path = /obj/item/borg/upgrade/syndicate
category = "Cyborg Upgrade Modules"
/////////////////////////////////////////
@@ -1673,4 +1651,4 @@ datum/design/welding_mask
req_tech = list("materials" = 2, "engineering" = 2)
build_type = PROTOLATHE
materials = list("$metal" = 4000, "$glass" = 2000)
- build_path = "/obj/item/clothing/mask/gas/welding"
+ build_path = /obj/item/clothing/mask/gas/welding
diff --git a/code/modules/research/destructive_analyzer.dm b/code/modules/research/destructive_analyzer.dm
index 64601cf03de..7cca1ef967f 100644
--- a/code/modules/research/destructive_analyzer.dm
+++ b/code/modules/research/destructive_analyzer.dm
@@ -16,17 +16,16 @@ Note: Must be placed within 3 tiles of the R&D Console
/obj/machinery/r_n_d/destructive_analyzer/New()
..()
component_parts = list()
- component_parts += new /obj/item/weapon/circuitboard/destructive_analyzer(src)
- component_parts += new /obj/item/weapon/stock_parts/scanning_module(src)
- component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
- component_parts += new /obj/item/weapon/stock_parts/micro_laser(src)
+ component_parts += new /obj/item/weapon/circuitboard/destructive_analyzer(null)
+ component_parts += new /obj/item/weapon/stock_parts/scanning_module(null)
+ component_parts += new /obj/item/weapon/stock_parts/manipulator(null)
+ component_parts += new /obj/item/weapon/stock_parts/micro_laser(null)
RefreshParts()
/obj/machinery/r_n_d/destructive_analyzer/RefreshParts()
var/T = 0
for(var/obj/item/weapon/stock_parts/S in src)
- T += S.rating * 0.1
- T = Clamp(T, 0, 1)
+ T += S.rating
decon_mod = T
/obj/machinery/r_n_d/destructive_analyzer/meteorhit()
@@ -54,32 +53,29 @@ Note: Must be placed within 3 tiles of the R&D Console
default_deconstruction_crowbar()
return 1
else
- user << "\red You can't load the [src.name] while it's opened."
+ user << "You can't load the [src.name] while it's opened."
return 1
if (disabled)
return
if (!linked_console)
- user << "\red The destructive analyzer must be linked to an R&D console first!"
+ user << "The protolathe must be linked to an R&D console first!"
return
if (busy)
- user << "\red The destructive analyzer is busy right now."
+ user << " The protolathe is busy right now."
return
if (istype(O, /obj/item) && !loaded_item)
if(!O.origin_tech)
- user << "\red This doesn't seem to have a tech origin!"
+ user << " This doesn't seem to have a tech origin!"
return
var/list/temp_tech = ConvertReqString2List(O.origin_tech)
if (temp_tech.len == 0)
- user << "\red You cannot deconstruct this item!"
- return
- if(O.reliability < 90 && O.crit_fail == 0)
- usr << "\red Item is neither reliable enough nor broken enough to learn from."
+ user << " You cannot deconstruct this item!"
return
busy = 1
loaded_item = O
user.drop_item()
O.loc = src
- user << "\blue You add the [O.name] to the machine!"
+ user << "You add the [O.name] to the machine!"
flick("d_analyzer_la", src)
spawn(10)
icon_state = "d_analyzer_l"
diff --git a/code/modules/research/protolathe.dm b/code/modules/research/protolathe.dm
index ec908f22d73..1e09063ca1d 100644
--- a/code/modules/research/protolathe.dm
+++ b/code/modules/research/protolathe.dm
@@ -22,6 +22,7 @@ Note: Must be placed west/left of and R&D console to function.
var/diamond_amount = 0.0
var/clown_amount = 0.0
var/adamantine_amount = 0.0
+ var/efficiency_coeff
/obj/machinery/r_n_d/protolathe/New()
@@ -50,6 +51,10 @@ Note: Must be placed west/left of and R&D console to function.
for(var/obj/item/weapon/stock_parts/matter_bin/M in component_parts)
T += M.rating
max_material_storage = T * 75000
+ T = 0
+ for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts)
+ T += M.rating
+ efficiency_coeff = T-1
/obj/machinery/r_n_d/protolathe/attackby(var/obj/item/O as obj, var/mob/user as mob)
if (shocked)
diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm
index 21f40240320..5da7d4c1adf 100644
--- a/code/modules/research/rdconsole.dm
+++ b/code/modules/research/rdconsole.dm
@@ -256,16 +256,21 @@ won't update every console in existence) but it's more of a hassle to do. Also,
usr <<"\red The destructive analyzer appears to be empty."
screen = 1.0
return
- if(linked_destroy.loaded_item.reliability >= 90)
+ if((linked_destroy.loaded_item.reliability >= 99 - (linked_destroy.decon_mod * 3)) || linked_destroy.loaded_item.crit_fail)
var/list/temp_tech = linked_destroy.ConvertReqString2List(linked_destroy.loaded_item.origin_tech)
for(var/T in temp_tech)
- files.UpdateTech(T, temp_tech[T])
- if(linked_destroy.loaded_item.reliability < 100 && linked_destroy.loaded_item.crit_fail)
- files.UpdateDesign(linked_destroy.loaded_item.type)
+ if(prob(linked_destroy.loaded_item.reliability)) //If deconstructed item is not reliable enough its just being wasted, else it is pocessed
+ files.UpdateTech(T, temp_tech[T]) //Check if deconstructed item has research levels higher/same/one less than current ones
+ files.UpdateDesigns(linked_destroy.loaded_item, temp_tech, src) //If if such reseach type found all the known designs are checked for having this research type in them
+ screen = 1.0 //If design have it it gains some reliability
+ else //Same design always gain quality
+ screen = 2.3 //Crit fail gives the same design a lot of reliability, like really a lot
if(linked_lathe) //Also sends salvaged materials to a linked protolathe, if any.
- linked_lathe.m_amount += min((linked_lathe.max_material_storage - linked_lathe.TotalMaterials()), (linked_destroy.loaded_item.m_amt*linked_destroy.decon_mod))
- linked_lathe.g_amount += min((linked_lathe.max_material_storage - linked_lathe.TotalMaterials()), (linked_destroy.loaded_item.g_amt*linked_destroy.decon_mod))
+ linked_lathe.m_amount += min((linked_lathe.max_material_storage - linked_lathe.TotalMaterials()), (linked_destroy.loaded_item.m_amt*(linked_destroy.decon_mod/10)))
+ linked_lathe.g_amount += min((linked_lathe.max_material_storage - linked_lathe.TotalMaterials()), (linked_destroy.loaded_item.g_amt*(linked_destroy.decon_mod/10)))
linked_destroy.loaded_item = null
+ else
+ screen = 1.0
for(var/obj/I in linked_destroy.contents)
for(var/mob/M in I.contents)
M.death()
@@ -282,7 +287,6 @@ won't update every console in existence) but it's more of a hassle to do. Also,
del(I)
linked_destroy.icon_state = "d_analyzer"
use_power(250)
- screen = 1.0
updateUsrDialog()
else if(href_list["lock"]) //Lock the console from use by anyone without tox access.
@@ -326,6 +330,7 @@ won't update every console in existence) but it's more of a hassle to do. Also,
sync = !sync
else if(href_list["build"]) //Causes the Protolathe to build something.
+ var/coeff = linked_lathe.efficiency_coeff
var/g2g = 1
if(linked_lathe)
var/datum/design/being_built = null
@@ -351,23 +356,23 @@ won't update every console in existence) but it's more of a hassle to do. Also,
break
switch(M)
if("$metal")
- linked_lathe.m_amount = max(0, (linked_lathe.m_amount-being_built.materials[M]))
+ linked_lathe.m_amount = max(0, (linked_lathe.m_amount-(being_built.materials[M]/coeff)))
if("$glass")
- linked_lathe.g_amount = max(0, (linked_lathe.g_amount-being_built.materials[M]))
+ linked_lathe.g_amount = max(0, (linked_lathe.g_amount-(being_built.materials[M]/coeff)))
if("$gold")
- linked_lathe.gold_amount = max(0, (linked_lathe.gold_amount-being_built.materials[M]))
+ linked_lathe.gold_amount = max(0, (linked_lathe.gold_amount-(being_built.materials[M]/coeff)))
if("$silver")
- linked_lathe.silver_amount = max(0, (linked_lathe.silver_amount-being_built.materials[M]))
+ linked_lathe.silver_amount = max(0, (linked_lathe.silver_amount-(being_built.materials[M]/coeff)))
if("$plasma")
- linked_lathe.plasma_amount = max(0, (linked_lathe.plasma_amount-being_built.materials[M]))
+ linked_lathe.plasma_amount = max(0, (linked_lathe.plasma_amount-(being_built.materials[M]/coeff)))
if("$uranium")
- linked_lathe.uranium_amount = max(0, (linked_lathe.uranium_amount-being_built.materials[M]))
+ linked_lathe.uranium_amount = max(0, (linked_lathe.uranium_amount-(being_built.materials[M]/coeff)))
if("$diamond")
- linked_lathe.diamond_amount = max(0, (linked_lathe.diamond_amount-being_built.materials[M]))
+ linked_lathe.diamond_amount = max(0, (linked_lathe.diamond_amount-(being_built.materials[M]/coeff)))
if("$clown")
- linked_lathe.clown_amount = max(0, (linked_lathe.clown_amount-being_built.materials[M]))
+ linked_lathe.clown_amount = max(0, (linked_lathe.clown_amount-(being_built.materials[M]/coeff)))
else
- linked_lathe.reagents.remove_reagent(M, being_built.materials[M])
+ linked_lathe.reagents.remove_reagent(M, being_built.materials[M]/coeff)
var/P = being_built.build_path //lets save these values before the spawn() just in case. Nobody likes runtimes.
var/R = being_built.reliability
@@ -378,6 +383,8 @@ won't update every console in existence) but it's more of a hassle to do. Also,
if( new_item.type == /obj/item/weapon/storage/backpack/holding )
new_item.investigate_log("built by [key]","singulo")
new_item.reliability = R
+ new_item.m_amt /= coeff
+ new_item.g_amt /= coeff
if(linked_lathe.hacked) R = max((reliability / 2), 0)
if(O)
var/obj/item/weapon/storage/lockbox/L = new/obj/item/weapon/storage/lockbox(linked_lathe.loc)
@@ -390,6 +397,7 @@ won't update every console in existence) but it's more of a hassle to do. Also,
updateUsrDialog()
else if(href_list["imprint"]) //Causes the Circuit Imprinter to build something.
+ var/coeff = 2 ** linked_imprinter.efficiency_coeff
if(linked_imprinter)
var/datum/design/being_built = null
for(var/datum/design/D in files.known_designs)
@@ -409,20 +417,19 @@ won't update every console in existence) but it's more of a hassle to do. Also,
for(var/M in being_built.materials)
switch(M)
if("$glass")
- linked_imprinter.g_amount = max(0, (linked_imprinter.g_amount-being_built.materials[M]))
+ linked_imprinter.g_amount = max(0, (linked_imprinter.g_amount-being_built.materials[M]/coeff))
if("$gold")
- linked_imprinter.gold_amount = max(0, (linked_imprinter.gold_amount-being_built.materials[M]))
+ linked_imprinter.gold_amount = max(0, (linked_imprinter.gold_amount-being_built.materials[M]/coeff))
if("$diamond")
- linked_imprinter.diamond_amount = max(0, (linked_imprinter.diamond_amount-being_built.materials[M]))
+ linked_imprinter.diamond_amount = max(0, (linked_imprinter.diamond_amount-being_built.materials[M]/coeff))
else
- linked_imprinter.reagents.remove_reagent(M, being_built.materials[M])
+ linked_imprinter.reagents.remove_reagent(M, being_built.materials[M]/coeff)
var/P = being_built.build_path //lets save these values before the spawn() just in case. Nobody likes runtimes.
var/R = being_built.reliability
spawn(16)
var/obj/new_item = new P(src)
new_item.reliability = R
- if(linked_imprinter.hacked) R = max((reliability / 2), 0)
new_item.loc = linked_imprinter.loc
linked_imprinter.busy = 0
screen = 4.1
@@ -533,23 +540,23 @@ won't update every console in existence) but it's more of a hassle to do. Also,
/obj/machinery/computer/rdconsole/proc/check_mat(datum/design/being_built, var/M)
switch(M)
if("$metal")
- return (linked_lathe.m_amount - being_built.materials[M] >= 0) ? 1 : 0
+ return (linked_lathe.m_amount - (being_built.materials[M]/linked_lathe.efficiency_coeff) >= 0) ? 1 : 0
if("$glass")
- return (linked_lathe.g_amount - being_built.materials[M] >= 0) ? 1 : 0
+ return (linked_lathe.g_amount - (being_built.materials[M]/linked_lathe.efficiency_coeff) >= 0) ? 1 : 0
if("$gold")
- return (linked_lathe.gold_amount - being_built.materials[M] >= 0) ? 1 : 0
+ return (linked_lathe.gold_amount - (being_built.materials[M]/linked_lathe.efficiency_coeff) >= 0) ? 1 : 0
if("$silver")
- return (linked_lathe.silver_amount - being_built.materials[M] >= 0) ? 1 : 0
+ return (linked_lathe.silver_amount - (being_built.materials[M]/linked_lathe.efficiency_coeff) >= 0) ? 1 : 0
if("$plasma")
- return (linked_lathe.plasma_amount - being_built.materials[M] >= 0) ? 1 : 0
+ return (linked_lathe.plasma_amount - (being_built.materials[M]/linked_lathe.efficiency_coeff) >= 0) ? 1 : 0
if("$uranium")
- return (linked_lathe.uranium_amount - being_built.materials[M] >= 0) ? 1 : 0
+ return (linked_lathe.uranium_amount - (being_built.materials[M]/linked_lathe.efficiency_coeff) >= 0) ? 1 : 0
if("$diamond")
- return (linked_lathe.diamond_amount - being_built.materials[M] >= 0) ? 1 : 0
+ return (linked_lathe.diamond_amount - (being_built.materials[M]/linked_lathe.efficiency_coeff) >= 0) ? 1 : 0
if("$clown")
- return (linked_lathe.clown_amount - being_built.materials[M] >= 0) ? 1 : 0
+ return (linked_lathe.clown_amount - (being_built.materials[M]/linked_lathe.efficiency_coeff) >= 0) ? 1 : 0
else
- return linked_lathe.reagents.remove_reagent(M, being_built.materials[M])
+ return linked_lathe.reagents.remove_reagent(M, (being_built.materials[M]/linked_lathe.efficiency_coeff))
/obj/machinery/computer/rdconsole/attack_hand(mob/user as mob)
if(..())
@@ -560,7 +567,9 @@ won't update every console in existence) but it's more of a hassle to do. Also,
files.RefreshResearch()
switch(screen) //A quick check to make sure you get the right screen when a device is disconnected.
if(2 to 2.9)
- if(linked_destroy == null)
+ if(screen == 2.3)
+ ;
+ else if(linked_destroy == null)
screen = 2.0
else if(linked_destroy.loaded_item == null)
screen = 2.1
@@ -708,12 +717,16 @@ won't update every console in existence) but it's more of a hassle to do. Also,
dat += "Main Menu
"
dat += "Deconstruction Menu
"
dat += "Name: [linked_destroy.loaded_item.name]
"
+ dat += "Reliability: [linked_destroy.loaded_item.reliability]
"
dat += "Origin Tech:
"
var/list/temp_tech = linked_destroy.ConvertReqString2List(linked_destroy.loaded_item.origin_tech)
for(var/T in temp_tech)
dat += "* [CallTechName(T)] [temp_tech[T]]
"
dat += "
Deconstruct Item || "
dat += "Eject Item || "
+ if(2.3)
+ dat += "Item is neither reliable enough or broken enough to learn from.
"
+ dat += "Main Menu"
/////////////////////PROTOLATHE SCREENS/////////////////////////
if(3.0)
@@ -727,32 +740,33 @@ won't update every console in existence) but it's more of a hassle to do. Also,
dat += "Protolathe Menu:
"
dat += "Material Amount: [linked_lathe.TotalMaterials()] cm3 (MAX: [linked_lathe.max_material_storage])
"
dat += "Chemical Volume: [linked_lathe.reagents.total_volume] (MAX: [linked_lathe.reagents.maximum_volume])
"
+ var/coeff = linked_lathe.efficiency_coeff
for(var/datum/design/D in files.known_designs)
if(!(D.build_type & PROTOLATHE))
continue
var/temp_dat = "[D.name]"
var/check_materials = 1
for(var/M in D.materials)
- temp_dat += " [D.materials[M]] [CallMaterialName(M)]"
+ temp_dat += " [D.materials[M]/coeff] [CallMaterialName(M)]"
if(copytext(M, 1, 2) == "$")
switch(M)
if("$glass")
- if(D.materials[M] > linked_lathe.g_amount) check_materials = 0
+ if(D.materials[M]/coeff > linked_lathe.g_amount) check_materials = 0
if("$metal")
- if(D.materials[M] > linked_lathe.m_amount) check_materials = 0
+ if(D.materials[M]/coeff > linked_lathe.m_amount) check_materials = 0
if("$gold")
- if(D.materials[M] > linked_lathe.gold_amount) check_materials = 0
+ if(D.materials[M]/coeff > linked_lathe.gold_amount) check_materials = 0
if("$silver")
- if(D.materials[M] > linked_lathe.silver_amount) check_materials = 0
+ if(D.materials[M]/coeff > linked_lathe.silver_amount) check_materials = 0
if("$plasma")
- if(D.materials[M] > linked_lathe.plasma_amount) check_materials = 0
+ if(D.materials[M]/coeff > linked_lathe.plasma_amount) check_materials = 0
if("$uranium")
- if(D.materials[M] > linked_lathe.uranium_amount) check_materials = 0
+ if(D.materials[M]/coeff > linked_lathe.uranium_amount) check_materials = 0
if("$diamond")
- if(D.materials[M] > linked_lathe.diamond_amount) check_materials = 0
+ if(D.materials[M]/coeff > linked_lathe.diamond_amount) check_materials = 0
if("$clown")
- if(D.materials[M] > linked_lathe.clown_amount) check_materials = 0
- else if (!linked_lathe.reagents.has_reagent(M, D.materials[M]))
+ if(D.materials[M]/coeff > linked_lathe.clown_amount) check_materials = 0
+ else if (!linked_lathe.reagents.has_reagent(M, D.materials[M]/coeff))
check_materials = 0
if (check_materials)
dat += "* [temp_dat]
"
@@ -840,23 +854,23 @@ won't update every console in existence) but it's more of a hassle to do. Also,
dat += "Circuit Imprinter Menu:
"
dat += "Material Amount: [linked_imprinter.TotalMaterials()] cm3
"
dat += "Chemical Volume: [linked_imprinter.reagents.total_volume]
"
-
+ var/coeff = 2 ** linked_imprinter.efficiency_coeff
for(var/datum/design/D in files.known_designs)
if(!(D.build_type & IMPRINTER))
continue
var/temp_dat = "[D.name]"
var/check_materials = 1
for(var/M in D.materials)
- temp_dat += " [D.materials[M]] [CallMaterialName(M)]"
+ temp_dat += " [D.materials[M]/coeff] [CallMaterialName(M)]"
if(copytext(M, 1, 2) == "$")
switch(M)
if("$glass")
- if(D.materials[M] > linked_imprinter.g_amount) check_materials = 0
+ if(D.materials[M]/coeff > linked_imprinter.g_amount) check_materials = 0
if("$gold")
- if(D.materials[M] > linked_imprinter.gold_amount) check_materials = 0
+ if(D.materials[M]/coeff > linked_imprinter.gold_amount) check_materials = 0
if("$diamond")
- if(D.materials[M] > linked_imprinter.diamond_amount) check_materials = 0
- else if (!linked_imprinter.reagents.has_reagent(M, D.materials[M]))
+ if(D.materials[M]/coeff > linked_imprinter.diamond_amount) check_materials = 0
+ else if (!linked_imprinter.reagents.has_reagent(M, D.materials[M]/coeff))
check_materials = 0
if (check_materials)
dat += "* [temp_dat]
"
diff --git a/code/modules/research/research.dm b/code/modules/research/research.dm
index 7938720c0c9..f65bbad5142 100644
--- a/code/modules/research/research.dm
+++ b/code/modules/research/research.dm
@@ -118,8 +118,8 @@ research holder datum.
/datum/research/proc/AddDesign2Known(var/datum/design/D)
for(var/datum/design/known in known_designs)
if(D.id == known.id)
- if(D.reliability_mod > known.reliability_mod)
- known.reliability_mod = D.reliability_mod
+ if(D.reliability > known.reliability)
+ known.reliability = D.reliability
return
known_designs += D
return
@@ -144,17 +144,20 @@ research holder datum.
/datum/research/proc/UpdateTech(var/ID, var/level)
for(var/datum/tech/KT in known_tech)
if(KT.id == ID)
- if(KT.level <= level) KT.level = max((KT.level + 1), (level - 1))
+ if(KT.level <= level)
+ KT.level = max((KT.level + 1), (level - 1))
return
-/datum/research/proc/UpdateDesign(var/path)
- for(var/datum/design/KD in known_designs)
- if(KD.build_path == path)
- KD.reliability_mod += rand(1,2)
- break
- return
-
-
+/datum/research/proc/UpdateDesigns(var/obj/item/I, var/list/temp_tech)
+ for(var/T in temp_tech)
+ if(temp_tech[T] - 1 >= known_tech[T])
+ for(var/datum/design/D in known_designs)
+ if(D.req_tech[T])
+ D.reliability = min(100, D.reliability + prob(35))
+ if(D.build_path == I.type)
+ D.reliability = min(100, D.reliability + rand(1,3))
+ if(I.crit_fail)
+ D.reliability = min(100, D.reliability + rand(3, 5))
/***************************************************************
diff --git a/code/modules/research/server.dm b/code/modules/research/server.dm
index b90917b53e1..ca14c2201d0 100644
--- a/code/modules/research/server.dm
+++ b/code/modules/research/server.dm
@@ -17,10 +17,10 @@
/obj/machinery/r_n_d/server/New()
..()
component_parts = list()
- component_parts += new /obj/item/weapon/circuitboard/rdserver(src)
- component_parts += new /obj/item/weapon/stock_parts/scanning_module(src)
- component_parts += new /obj/item/weapon/cable_coil(src, 1)
- component_parts += new /obj/item/weapon/cable_coil(src, 1)
+ component_parts += new /obj/item/weapon/circuitboard/rdserver(null)
+ component_parts += new /obj/item/weapon/stock_parts/scanning_module(null)
+ component_parts += new /obj/item/weapon/cable_coil(null, 1)
+ component_parts += new /obj/item/weapon/cable_coil(null, 1)
RefreshParts()
src.initialize(); //Agouri
@@ -250,7 +250,6 @@
if(choice == "Continue")
for(var/datum/design/D in temp_server.files.known_designs)
if(D.id == href_list["reset_design"])
- D.reliability_mod = 0
temp_server.files.known_designs -= D
break
temp_server.files.RefreshResearch()