diff --git a/code/game/gamemodes/changeling/powers/augmented_eyesight.dm b/code/game/gamemodes/changeling/powers/augmented_eyesight.dm
index e69d48b60ce..f5b496cf6a7 100644
--- a/code/game/gamemodes/changeling/powers/augmented_eyesight.dm
+++ b/code/game/gamemodes/changeling/powers/augmented_eyesight.dm
@@ -37,7 +37,6 @@
icon_state = "ling_eyeshield"
eye_color = null
implant_overlay = null
- origin_tech = "biotech=4"
slot = "eye_ling"
status = ORGAN_ORGANIC
@@ -58,7 +57,6 @@
icon_state = "ling_thermal"
eye_color = null
implant_overlay = null
- origin_tech = "biotech=5;magnets=5"
slot = "eye_ling"
status = ORGAN_ORGANIC
aug_message = "You feel a minute twitch in our eyes, and darkness creeps away."
@@ -76,4 +74,4 @@
if(ishuman(owner))
var/mob/living/carbon/human/H = owner
H.weakeyes = 0
- ..()
\ No newline at end of file
+ ..()
diff --git a/code/game/gamemodes/gang/gang_pen.dm b/code/game/gamemodes/gang/gang_pen.dm
index bf856cce812..cc19a6468dd 100644
--- a/code/game/gamemodes/gang/gang_pen.dm
+++ b/code/game/gamemodes/gang/gang_pen.dm
@@ -2,7 +2,7 @@
* Gang Boss Pens
*/
/obj/item/weapon/pen/gang
- origin_tech = "materials=2;syndicate=5"
+ origin_tech = "materials=2;syndicate=3"
var/cooldown
var/last_used = 0
var/charges = 1
@@ -67,7 +67,7 @@
name = "gang implant"
desc = "Makes you a gangster or such."
activated = 0
- origin_tech = "materials=2;biotech=4;programming=4;syndicate=4"
+ origin_tech = "materials=2;biotech=4;programming=4;syndicate=3"
var/datum/gang/gang
/obj/item/weapon/implant/gang/New(loc,var/setgang)
diff --git a/code/game/gamemodes/gang/recaller.dm b/code/game/gamemodes/gang/recaller.dm
index de6176c3c7c..954b04d2b18 100644
--- a/code/game/gamemodes/gang/recaller.dm
+++ b/code/game/gamemodes/gang/recaller.dm
@@ -9,7 +9,7 @@
throw_speed = 3
throw_range = 7
flags = CONDUCT
- origin_tech = "programming=3;bluespace=2;syndicate=5"
+ origin_tech = "programming=5;bluespace=2;syndicate=5"
var/datum/gang/gang //Which gang uses this?
var/recalling = 0
var/outfits = 3
diff --git a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm
index 989c076a27f..bb287f20b73 100644
--- a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm
+++ b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm
@@ -11,7 +11,7 @@
icon_state = "vest_stealth"
item_state = "armor"
blood_overlay_type = "armor"
- origin_tech = "materials=5;biotech=4;powerstorage=5;abductor=3"
+ origin_tech = "magnets=7;biotech=4;powerstorage=4;abductor=4"
armor = list(melee = 15, bullet = 15, laser = 15, energy = 15, bomb = 15, bio = 15, rad = 15)
actions_types = list(/datum/action/item_action/hands_free/activate)
var/mode = VEST_STEALTH
@@ -129,7 +129,7 @@
icon = 'icons/obj/abductor.dmi'
icon_state = "gizmo_scan"
item_state = "silencer"
- origin_tech = "materials=5;magnets=5;bluespace=6;abductor=4"
+ origin_tech = "engineering=7;magnets=4;bluespace=4;abductor=3"
var/mode = GIZMO_SCAN
var/mob/living/marked = null
var/obj/machinery/abductor/console/console
@@ -210,7 +210,7 @@
icon = 'icons/obj/abductor.dmi'
icon_state = "silencer"
item_state = "gizmo"
- origin_tech = "materials=5;magnets=5;abductor=3"
+ origin_tech = "materials=4;programming=7;abductor=3"
/obj/item/device/abductor/silencer/attack(mob/living/M, mob/user)
if(!AbductorCheck(user))
@@ -254,7 +254,7 @@
icon = 'icons/obj/abductor.dmi'
icon_state = "implant"
activated = 1
- origin_tech = "materials=2;biotech=3;magnets=4;bluespace=5;abductor=5"
+ origin_tech = "materials=2;biotech=7;magnets=4;bluespace=4;abductor=5"
var/obj/machinery/abductor/pad/home
var/cooldown = 30
@@ -314,7 +314,7 @@
pin = /obj/item/device/firing_pin/abductor
icon_state = "alienpistol"
item_state = "alienpistol"
- origin_tech = "combat=5;materials=4;powerstorage=3;abductor=3"
+ origin_tech = "combat=4;magnets=7;powerstorage=3;abductor=3"
trigger_guard = TRIGGER_GUARD_ALLOW_ALL
/obj/item/weapon/paper/abductor
@@ -357,7 +357,7 @@ Congratulations! You are now trained for xenobiology research!"}
icon_state = "wonderprodStun"
item_state = "wonderprod"
slot_flags = SLOT_BELT
- origin_tech = "materials=6;combat=5;biotech=7;abductor=4"
+ origin_tech = "materials=4;combat=4;biotech=7;abductor=4"
force = 7
w_class = 3
actions_types = list(/datum/action/item_action/toggle_mode)
@@ -507,7 +507,7 @@ Congratulations! You are now trained for xenobiology research!"}
icon_state = "cuff_white" // Needs sprite
breakouttime = 450
trashtype = /obj/item/weapon/restraints/handcuffs/energy/used
- origin_tech = "materials=2;magnets=5;abductor=2"
+ origin_tech = "materials=4;magnets=5;abductor=2"
/obj/item/weapon/restraints/handcuffs/energy/used
desc = "energy discharge"
@@ -569,7 +569,7 @@ Congratulations! You are now trained for xenobiology research!"}
icon_state = "alienhelmet"
item_state = "alienhelmet"
blockTracking = 1
- origin_tech = "materials=6;magnets=5;abductor=3"
+ origin_tech = "materials=7;magnets=4;abductor=3"
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
// Operating Table / Beds / Lockers
diff --git a/code/game/gamemodes/miniantags/abduction/gland.dm b/code/game/gamemodes/miniantags/abduction/gland.dm
index 537f29f3551..090dc31a26f 100644
--- a/code/game/gamemodes/miniantags/abduction/gland.dm
+++ b/code/game/gamemodes/miniantags/abduction/gland.dm
@@ -6,7 +6,7 @@
slot = "gland"
icon_state = "gland"
status = ORGAN_ROBOTIC
- origin_tech = "materials=4;biotech=5;abductor=3"
+ origin_tech = "materials=4;biotech=7;abductor=3"
var/cooldown_low = 300
var/cooldown_high = 300
var/next_activation = 0
@@ -54,7 +54,6 @@
return
/obj/item/organ/gland/heals
- origin_tech = "materials=4;biotech=6;abductor=3"
cooldown_low = 200
cooldown_high = 400
uses = -1
@@ -67,7 +66,6 @@
owner.adjustFireLoss(-20)
/obj/item/organ/gland/slime
- origin_tech = "materials=4;biotech=6;abductor=3"
cooldown_low = 600
cooldown_high = 1200
uses = -1
@@ -82,7 +80,7 @@
Slime.Leader = owner
/obj/item/organ/gland/mindshock
- origin_tech = "materials=4;biotech=5;magnets=3;abductor=3"
+ origin_tech = "materials=4;biotech=4;magnets=6;abductor=3"
cooldown_low = 300
cooldown_high = 300
uses = -1
@@ -99,7 +97,6 @@
H.confused += 20
/obj/item/organ/gland/pop
- origin_tech = "materials=4;biotech=6;abductor=3"
cooldown_low = 900
cooldown_high = 1800
uses = 6
@@ -112,7 +109,7 @@
owner.set_species(species)
/obj/item/organ/gland/ventcrawling
- origin_tech = "materials=4;biotech=5;bluespace=3;abductor=3"
+ origin_tech = "materials=4;biotech=5;bluespace=4;abductor=3"
cooldown_low = 1800
cooldown_high = 2400
uses = 1
@@ -125,7 +122,6 @@
/obj/item/organ/gland/viral
- origin_tech = "materials=4;biotech=6;abductor=3"
cooldown_low = 1800
cooldown_high = 2400
uses = 1
@@ -143,7 +139,7 @@
/obj/item/organ/gland/emp //TODO : Replace with something more interesting
- origin_tech = "materials=4;biotech=5;magnets=3;abductor=3"
+ origin_tech = "materials=4;biotech=4;magnets=6;abductor=3"
cooldown_low = 900
cooldown_high = 1600
uses = 10
@@ -154,7 +150,6 @@
empulse(get_turf(owner), 2, 5, 1)
/obj/item/organ/gland/spiderman
- origin_tech = "materials=4;biotech=6;abductor=3"
cooldown_low = 450
cooldown_high = 900
uses = 10
@@ -166,7 +161,6 @@
new /obj/effect/spider/spiderling(owner.loc)
/obj/item/organ/gland/egg
- origin_tech = "materials=4;biotech=6;abductor=3"
cooldown_low = 300
cooldown_high = 400
uses = -1
@@ -179,7 +173,6 @@
egg.desc += " It smells bad."
/obj/item/organ/gland/bloody
- origin_tech = "materials=4;biotech=6;abductor=3"
cooldown_low = 200
cooldown_high = 400
uses = -1
@@ -201,7 +194,6 @@
H.update_inv_w_uniform(0)
/obj/item/organ/gland/bodysnatch
- origin_tech = "materials=4;biotech=7;abductor=3"
cooldown_low = 600
cooldown_high = 600
human_only = 1
@@ -255,7 +247,7 @@
/obj/item/organ/gland/plasma
cooldown_low = 2400
cooldown_high = 3000
- origin_tech = "materials=4;biotech=5;plasmatech=3;abductor=3"
+ origin_tech = "materials=4;biotech=4;plasmatech=6;abductor=3"
uses = 1
/obj/item/organ/gland/plasma/activate()
@@ -270,4 +262,4 @@
if(istype(T))
T.atmos_spawn_air("plasma=300;TEMP=[T20C]")
owner.gib()
- return
\ No newline at end of file
+ return
diff --git a/code/game/gamemodes/miniantags/slaughter/slaughter.dm b/code/game/gamemodes/miniantags/slaughter/slaughter.dm
index 6925d1b392f..994c181dd45 100644
--- a/code/game/gamemodes/miniantags/slaughter/slaughter.dm
+++ b/code/game/gamemodes/miniantags/slaughter/slaughter.dm
@@ -77,7 +77,7 @@
desc = "Still it beats furiously, emanating an aura of utter hate."
icon = 'icons/obj/surgery.dmi'
icon_state = "demon_heart-on"
- origin_tech = "combat=5;biotech=8"
+ origin_tech = "combat=5;biotech=7"
/obj/item/organ/heart/demon/update_icon()
return //always beating visually
diff --git a/code/game/gamemodes/wizard/soulstone.dm b/code/game/gamemodes/wizard/soulstone.dm
index d652a5ae863..5eb2052fdfa 100644
--- a/code/game/gamemodes/wizard/soulstone.dm
+++ b/code/game/gamemodes/wizard/soulstone.dm
@@ -6,7 +6,7 @@
desc = "A fragment of the legendary treasure known simply as the 'Soul Stone'. The shard still flickers with a fraction of the full artefact's power."
w_class = 1
slot_flags = SLOT_BELT
- origin_tech = "bluespace=4;materials=4"
+ origin_tech = "bluespace=4;materials=5"
var/usability = 0
/obj/item/device/soulstone/anybody
diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm
index c9b1909c808..62affa41402 100644
--- a/code/game/machinery/Sleeper.dm
+++ b/code/game/machinery/Sleeper.dm
@@ -32,7 +32,7 @@
/obj/item/weapon/circuitboard/machine/sleeper
name = "circuit board (Sleeper)"
build_path = /obj/machinery/sleeper
- origin_tech = "programming=3;biotech=2;engineering=3;materials=3"
+ origin_tech = "programming=3;biotech=2;engineering=3"
req_components = list(
/obj/item/weapon/stock_parts/matter_bin = 1,
/obj/item/weapon/stock_parts/manipulator = 1,
diff --git a/code/game/machinery/announcement_system.dm b/code/game/machinery/announcement_system.dm
index 529e77bf55a..ba63abd6c3a 100644
--- a/code/game/machinery/announcement_system.dm
+++ b/code/game/machinery/announcement_system.dm
@@ -40,7 +40,7 @@ var/list/announcement_systems = list()
/obj/item/weapon/circuitboard/machine/announcement_system
name = "circuit board (Announcement System)"
build_path = /obj/machinery/announcement_system
- origin_tech = "programming=3;bluespace=2"
+ origin_tech = "programming=3;bluespace=3;magnets=2"
req_components = list(
/obj/item/stack/cable_coil = 2,
/obj/item/weapon/stock_parts/console_screen = 1)
@@ -183,4 +183,4 @@ var/list/announcement_systems = list()
/obj/machinery/announcement_system/emag_act()
if(!emagged)
emagged = 1
- act_up()
\ No newline at end of file
+ act_up()
diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm
index a26857fd63b..3aafdb2b324 100644
--- a/code/game/machinery/autolathe.dm
+++ b/code/game/machinery/autolathe.dm
@@ -22,7 +22,7 @@
idle_power_usage = 10
active_power_usage = 100
var/busy = 0
- var/prod_coeff
+ var/prod_coeff = 1
var/datum/design/being_built
var/datum/research/files
@@ -196,18 +196,18 @@
return
/////////////////
- var/coeff = (is_stack ? 1 : 2 ** prod_coeff) //stacks are unaffected by production coefficient
+ var/coeff = (is_stack ? 1 : prod_coeff) //stacks are unaffected by production coefficient
var/metal_cost = being_built.materials[MAT_METAL]
var/glass_cost = being_built.materials[MAT_GLASS]
var/power = max(2000, (metal_cost+glass_cost)*multiplier/5)
- if((materials.amount(MAT_METAL) >= metal_cost*multiplier/coeff) && (materials.amount(MAT_GLASS) >= glass_cost*multiplier/coeff))
+ if((materials.amount(MAT_METAL) >= metal_cost*multiplier*coeff) && (materials.amount(MAT_GLASS) >= glass_cost*multiplier*coeff))
busy = 1
use_power(power)
icon_state = "autolathe"
flick("autolathe_n",src)
- spawn(32/coeff)
+ spawn(32*coeff)
use_power(power)
if(is_stack)
var/list/materials_used = list(MAT_METAL=metal_cost*multiplier, MAT_GLASS=glass_cost*multiplier)
@@ -221,7 +221,7 @@
if(istype(S, N.merge_type))
N.merge(S)
else
- var/list/materials_used = list(MAT_METAL=metal_cost/coeff, MAT_GLASS=glass_cost/coeff)
+ var/list/materials_used = list(MAT_METAL=metal_cost*coeff, MAT_GLASS=glass_cost*coeff)
materials.use_amount(materials_used)
var/obj/item/new_item = new being_built.build_path(T)
new_item.materials = materials_used.Copy()
@@ -244,14 +244,14 @@
return
/obj/machinery/autolathe/RefreshParts()
- var/tot_rating = 0
- prod_coeff = 0
+ var/T =1.2
for(var/obj/item/weapon/stock_parts/matter_bin/MB in component_parts)
- tot_rating += MB.rating
- tot_rating *= 25000
- materials.max_amount = tot_rating * 3
+ T += MB.rating*75000
+ materials.max_amount = T
+ T=1.2
for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts)
- prod_coeff += M.rating - 1
+ T -= M.rating*0.2
+ prod_coeff = min(1,max(0,T)) // Coeff going 1 -> 0,8 -> 0,6 -> 0,4
/obj/machinery/autolathe/proc/main_win(mob/user)
var/dat = "
Autolathe Menu:
"
@@ -341,21 +341,21 @@
return dat
/obj/machinery/autolathe/proc/can_build(datum/design/D)
- var/coeff = (ispath(D.build_path,/obj/item/stack) ? 1 : 2 ** prod_coeff)
+ var/coeff = (ispath(D.build_path,/obj/item/stack) ? 1 : prod_coeff)
- if(D.materials[MAT_METAL] && (materials.amount(MAT_METAL) < (D.materials[MAT_METAL] / coeff)))
+ if(D.materials[MAT_METAL] && (materials.amount(MAT_METAL) < (D.materials[MAT_METAL] * coeff)))
return 0
- if(D.materials[MAT_GLASS] && (materials.amount(MAT_GLASS) < (D.materials[MAT_GLASS] / coeff)))
+ if(D.materials[MAT_GLASS] && (materials.amount(MAT_GLASS) < (D.materials[MAT_GLASS] * coeff)))
return 0
return 1
/obj/machinery/autolathe/proc/get_design_cost(datum/design/D)
- var/coeff = (ispath(D.build_path,/obj/item/stack) ? 1 : 2 ** prod_coeff)
+ var/coeff = (ispath(D.build_path,/obj/item/stack) ? 1 : prod_coeff)
var/dat
if(D.materials[MAT_METAL])
- dat += "[D.materials[MAT_METAL] / coeff] metal "
+ dat += "[D.materials[MAT_METAL] * coeff] metal "
if(D.materials[MAT_GLASS])
- dat += "[D.materials[MAT_GLASS] / coeff] glass"
+ dat += "[D.materials[MAT_GLASS] * coeff] glass"
return dat
/obj/machinery/autolathe/proc/reset(wire)
diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm
index 472922740a7..1c08f13d0de 100644
--- a/code/game/machinery/cloning.dm
+++ b/code/game/machinery/cloning.dm
@@ -60,7 +60,7 @@
/obj/item/weapon/circuitboard/machine/clonepod
name = "circuit board (Clone Pod)"
build_path = /obj/machinery/clonepod
- origin_tech = "programming=3;biotech=3"
+ origin_tech = "programming=2;biotech=2"
req_components = list(
/obj/item/stack/cable_coil = 2,
/obj/item/weapon/stock_parts/scanning_module = 2,
diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm
index 73717cf3f7c..2c58aa54a82 100644
--- a/code/game/machinery/computer/buildandrepair.dm
+++ b/code/game/machinery/computer/buildandrepair.dm
@@ -140,26 +140,28 @@
/obj/item/weapon/circuitboard/computer/telesci_console
name = "circuit board (Telescience Console)"
build_path = /obj/machinery/computer/telescience
- origin_tech = "programming=3;bluespace=2"
+ origin_tech = "programming=3;bluespace=3;plasmatech=4"
/obj/item/weapon/circuitboard/computer/message_monitor
name = "circuit board (Message Monitor)"
build_path = /obj/machinery/computer/message_monitor
- origin_tech = "programming=3"
+ origin_tech = "programming=2"
/obj/item/weapon/circuitboard/computer/security
name = "circuit board (Security Cameras)"
build_path = /obj/machinery/computer/security
+ origin_tech = "programming=2;combat=2"
/obj/item/weapon/circuitboard/computer/aiupload
name = "circuit board (AI Upload)"
build_path = /obj/machinery/computer/upload/ai
- origin_tech = "programming=4"
+ origin_tech = "programming=4;engineering=4"
/obj/item/weapon/circuitboard/computer/borgupload
name = "circuit board (Cyborg Upload)"
build_path = /obj/machinery/computer/upload/borg
- origin_tech = "programming=4"
+ origin_tech = "programming=4;engineering=4"
/obj/item/weapon/circuitboard/computer/med_data
name = "circuit board (Medical Records Console)"
build_path = /obj/machinery/computer/med_data
+ origin_tech = "programming=2;biotech=2"
/obj/item/weapon/circuitboard/computer/pandemic
name = "circuit board (PanD.E.M.I.C. 2200)"
build_path = /obj/machinery/computer/pandemic
@@ -171,12 +173,13 @@
/obj/item/weapon/circuitboard/computer/communications
name = "circuit board (Communications)"
build_path = /obj/machinery/computer/communications
- origin_tech = "programming=2;magnets=2"
+ origin_tech = "programming=3;magnets=3"
var/lastTimeUsed = 0
/obj/item/weapon/circuitboard/computer/card
name = "circuit board (ID Console)"
build_path = /obj/machinery/computer/card
+ origin_tech = "programming=3"
/obj/item/weapon/circuitboard/computer/card/centcom
name = "circuit board (Centcom ID Console)"
build_path = /obj/machinery/computer/card/centcom
@@ -204,10 +207,11 @@
/obj/item/weapon/circuitboard/computer/teleporter
name = "circuit board (Teleporter)"
build_path = /obj/machinery/computer/teleporter
- origin_tech = "programming=2;bluespace=2"
+ origin_tech = "programming=3;bluespace=3;plasmatech=3"
/obj/item/weapon/circuitboard/computer/secure_data
name = "circuit board (Security Records Console)"
build_path = /obj/machinery/computer/secure_data
+ origin_tech = "programming=2;combat=2"
/obj/item/weapon/circuitboard/computer/stationalert
name = "circuit board (Station Alerts)"
build_path = /obj/machinery/computer/station_alert
@@ -234,7 +238,7 @@
/obj/item/weapon/circuitboard/computer/cloning
name = "circuit board (Cloning)"
build_path = /obj/machinery/computer/cloning
- origin_tech = "programming=3;biotech=3"
+ origin_tech = "programming=2;biotech=2"
/obj/item/weapon/circuitboard/computer/arcade/battle
name = "circuit board (Arcade Battle)"
build_path = /obj/machinery/computer/arcade/battle
@@ -242,6 +246,7 @@
/obj/item/weapon/circuitboard/computer/arcade/orion_trail
name = "circuit board (Orion Trail)"
build_path = /obj/machinery/computer/arcade/orion_trail
+ origin_tech = "programming=1"
/obj/item/weapon/circuitboard/computer/turbine_control
name = "circuit board (Turbine control)"
build_path = /obj/machinery/computer/turbine_computer
@@ -252,6 +257,7 @@
/obj/item/weapon/circuitboard/computer/powermonitor
name = "circuit board (Power Monitor)" //name fixed 250810
build_path = /obj/machinery/computer/monitor
+ origin_tech = "programming=2;powerstorage=2"
/obj/item/weapon/circuitboard/computer/olddoor
name = "circuit board (DoorMex)"
build_path = /obj/machinery/computer/pod/old
@@ -292,11 +298,11 @@
/obj/item/weapon/circuitboard/computer/crew
name = "circuit board (Crew Monitoring Console)"
build_path = /obj/machinery/computer/crew
- origin_tech = "programming=3;biotech=2;magnets=2"
+ origin_tech = "programming=2;biotech=2"
/obj/item/weapon/circuitboard/computer/mech_bay_power_console
name = "circuit board (Mech Bay Power Control Console)"
build_path = /obj/machinery/computer/mech_bay_power_console
- origin_tech = "programming=2;powerstorage=3"
+ origin_tech = "programming=3;powerstorage=3"
/obj/item/weapon/circuitboard/computer/cargo
name = "circuit board (Supply Console)"
@@ -328,18 +334,18 @@
/obj/item/weapon/circuitboard/computer/operating
name = "circuit board (Operating Computer)"
build_path = /obj/machinery/computer/operating
- origin_tech = "programming=2;biotech=2"
+ origin_tech = "programming=2;biotech=3"
/obj/item/weapon/circuitboard/computer/mining
name = "circuit board (Outpost Status Display)"
build_path = /obj/machinery/computer/security/mining
/obj/item/weapon/circuitboard/computer/comm_monitor
name = "circuit board (Telecommunications Monitor)"
build_path = /obj/machinery/computer/telecomms/monitor
- origin_tech = "programming=3"
+ origin_tech = "programming=3;magnets=3;bluespace=2"
/obj/item/weapon/circuitboard/computer/comm_server
name = "circuit board (Telecommunications Server Monitor)"
build_path = /obj/machinery/computer/telecomms/server
- origin_tech = "programming=3"
+ origin_tech = "programming=3;magnets=3;bluespace=2"
/obj/item/weapon/circuitboard/computer/shuttle
name = "circuit board (Shuttle)"
@@ -382,7 +388,7 @@
/obj/item/weapon/circuitboard/computer/aifixer
name = "circuit board (AI Integrity Restorer)"
build_path = /obj/machinery/computer/aifixer
- origin_tech = "programming=3;biotech=2"
+ origin_tech = "programming=2;biotech=2"
/*/obj/item/weapon/circuitboard/computer/prison_shuttle
name = "circuit board (Prison Shuttle)"
build_path = /obj/machinery/computer/prison_shuttle*/
@@ -407,4 +413,4 @@
build_path = /obj/machinery/computer/libraryconsole/bookmanagement
user << "
Access protocols successfully updated."
else
- return ..()
\ No newline at end of file
+ return ..()
diff --git a/code/game/machinery/computer/dna_console.dm b/code/game/machinery/computer/dna_console.dm
index 597b90129a7..fdc6d980933 100644
--- a/code/game/machinery/computer/dna_console.dm
+++ b/code/game/machinery/computer/dna_console.dm
@@ -398,11 +398,17 @@
if("se")
if(buffer_slot["SE"])
I = new /obj/item/weapon/dnainjector/timed(loc)
+ var/powers = 0
for(var/datum/mutation/human/HM in good_mutations + bad_mutations + not_good_mutations)
if(HM.check_block_string(buffer_slot["SE"]))
I.add_mutations.Add(HM)
+ if(HM in good_mutations)
+ powers += 1
+ if(HM in bad_mutations + not_good_mutations)
+ powers -= 1 //To prevent just unlocking everything to get all powers to a syringe for max tech
else
I.remove_mutations.Add(HM)
+ I.origin_tech = "biotech=2;engineering=[max(1,min(6,powers))]" //With 6 powers available this tech level will be 1-6, also safety check if new powers get added
var/time_coeff
for(var/datum/mutation/human/HM in I.add_mutations)
if(!time_coeff)
@@ -593,4 +599,4 @@
//#undef BAD_MUTATION_DIFFICULTY
//#undef GOOD_MUTATION_DIFFICULTY
-//#undef OP_MUTATION_DIFFICULTY
\ No newline at end of file
+//#undef OP_MUTATION_DIFFICULTY
diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm
index cc914875006..e8b358a85cc 100644
--- a/code/game/machinery/constructable_frame.dm
+++ b/code/game/machinery/constructable_frame.dm
@@ -62,9 +62,6 @@
return amt
/obj/structure/frame/machine/attackby(obj/item/P, mob/user, params)
- if(P.crit_fail)
- user << "
This part is faulty, you cannot add this to the machine!"
- return
switch(state)
if(1)
if(istype(P, /obj/item/weapon/circuitboard/machine))
@@ -193,11 +190,10 @@
for(var/path in req_components)
while(req_components[path] > 0 && (locate(path) in part_list))
var/obj/item/part = (locate(path) in part_list)
- if(!part.crit_fail)
- added_components[part] = path
- replacer.remove_from_storage(part, src)
- req_components[path]--
- part_list -= part
+ added_components[part] = path
+ replacer.remove_from_storage(part, src)
+ req_components[path]--
+ part_list -= part
for(var/obj/item/weapon/stock_parts/part in added_components)
components += part
@@ -268,7 +264,7 @@ micro-manipulator, console screen, beaker, Microlaser, matter bin, power cells.
/obj/item/weapon/circuitboard/machine/smes
name = "circuit board (SMES)"
build_path = /obj/machinery/power/smes
- origin_tech = "programming=4;powerstorage=5;engineering=5"
+ origin_tech = "programming=3;powerstorage=3;engineering=3"
req_components = list(
/obj/item/stack/cable_coil = 5,
/obj/item/weapon/stock_parts/cell = 5,
@@ -277,7 +273,7 @@ micro-manipulator, console screen, beaker, Microlaser, matter bin, power cells.
/obj/item/weapon/circuitboard/machine/teleporter_hub
name = "circuit board (Teleporter Hub)"
build_path = /obj/machinery/teleport/hub
- origin_tech = "programming=3;engineering=5;bluespace=5;materials=4"
+ origin_tech = "programming=3;engineering=4;bluespace=4;materials=4"
req_components = list(
/obj/item/weapon/ore/bluespace_crystal = 3,
/obj/item/weapon/stock_parts/matter_bin = 1)
@@ -285,7 +281,7 @@ micro-manipulator, console screen, beaker, Microlaser, matter bin, power cells.
/obj/item/weapon/circuitboard/machine/teleporter_station
name = "circuit board (Teleporter Station)"
build_path = /obj/machinery/teleport/station
- origin_tech = "programming=4;engineering=4;bluespace=4"
+ origin_tech = "programming=4;engineering=4;bluespace=4;plasmatech=3"
req_components = list(
/obj/item/weapon/ore/bluespace_crystal = 2,
/obj/item/weapon/stock_parts/capacitor = 2,
@@ -294,7 +290,7 @@ micro-manipulator, console screen, beaker, Microlaser, matter bin, power cells.
/obj/item/weapon/circuitboard/machine/chem_dispenser
name = "circuit board (Portable Chem Dispenser)"
build_path = /obj/machinery/chem_dispenser/constructable
- origin_tech = "materials=4;engineering=4;programming=4;plasmatech=3;biotech=3"
+ origin_tech = "materials=4;programming=4;plasmatech=4;biotech=3"
req_components = list(
/obj/item/weapon/stock_parts/matter_bin = 2,
/obj/item/weapon/stock_parts/capacitor = 1,
@@ -305,9 +301,9 @@ micro-manipulator, console screen, beaker, Microlaser, matter bin, power cells.
/obj/item/weapon/circuitboard/machine/telesci_pad
name = "circuit board (Telepad)"
build_path = /obj/machinery/telepad
- origin_tech = "programming=4;engineering=3;materials=3;bluespace=4"
+ origin_tech = "programming=4;engineering=3;plasmatech=4;bluespace=4"
req_components = list(
/obj/item/weapon/ore/bluespace_crystal = 2,
/obj/item/weapon/stock_parts/capacitor = 1,
/obj/item/stack/cable_coil = 1,
- /obj/item/weapon/stock_parts/console_screen = 1)
\ No newline at end of file
+ /obj/item/weapon/stock_parts/console_screen = 1)
diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm
index d3e9e6727dc..7207a48eca0 100644
--- a/code/game/machinery/machinery.dm
+++ b/code/game/machinery/machinery.dm
@@ -352,8 +352,6 @@ Class Procs:
M.state = 2
M.icon_state = "box_1"
for(var/obj/item/I in component_parts)
- if(I.reliability != 100 && crit_fail)
- I.crit_fail = 1
I.loc = loc
qdel(src)
@@ -391,10 +389,12 @@ Class Procs:
return 0
/obj/machinery/proc/exchange_parts(mob/user, obj/item/weapon/storage/part_replacer/W)
- if(flags & NODECONSTRUCT)
+ if(!istype(W))
+ return
+ if((flags & NODECONSTRUCT) && !W.works_from_distance)
return
var/shouldplaysound = 0
- if(istype(W) && component_parts)
+ if(component_parts)
if(panel_open || W.works_from_distance)
var/obj/item/weapon/circuitboard/machine/CB = locate(/obj/item/weapon/circuitboard/machine) in component_parts
var/P
diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm
index fe5d9ac35a8..2a4b37d4fd4 100644
--- a/code/game/machinery/recharger.dm
+++ b/code/game/machinery/recharger.dm
@@ -18,7 +18,7 @@
/obj/item/weapon/circuitboard/machine/recharger
name = "circuit board (Weapon Recharger)"
build_path = /obj/machinery/recharger
- origin_tech = "powerstorage=3;engineering=3;materials=4"
+ origin_tech = "powerstorage=4;engineering=3;materials=4"
req_components = list(/obj/item/weapon/stock_parts/capacitor = 1)
/obj/machinery/recharger/RefreshParts()
@@ -163,4 +163,4 @@
else
icon_state = "recharger2"
return
- icon_state = "recharger0"
\ No newline at end of file
+ icon_state = "recharger0"
diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm
index 4b37378f666..f98ac6d0605 100644
--- a/code/game/machinery/recycler.dm
+++ b/code/game/machinery/recycler.dm
@@ -28,7 +28,7 @@ var/const/SAFETY_COOLDOWN = 100
/obj/item/weapon/circuitboard/machine/recycler
name = "circuit board (Recycler)"
build_path = /obj/machinery/recycler
- origin_tech = "programming=1"
+ origin_tech = "programming=2;engineering=2"
req_components = list(
/obj/item/weapon/stock_parts/matter_bin = 1,
/obj/item/weapon/stock_parts/manipulator = 1)
diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm
index 1ee601cc453..3bd1330e37f 100644
--- a/code/game/machinery/spaceheater.dm
+++ b/code/game/machinery/spaceheater.dm
@@ -31,7 +31,7 @@
/obj/item/weapon/circuitboard/machine/space_heater
name = "circuit board (Space Heater)"
build_path = /obj/machinery/space_heater
- origin_tech = "programming=2;engineering=2"
+ origin_tech = "programming=2;engineering=2;plasmatech=2"
req_components = list(
/obj/item/weapon/stock_parts/micro_laser = 1,
/obj/item/weapon/stock_parts/capacitor = 1,
diff --git a/code/game/machinery/syndicatebeacon.dm b/code/game/machinery/syndicatebeacon.dm
index 3243e0cf5fb..4cebbf7c5ce 100644
--- a/code/game/machinery/syndicatebeacon.dm
+++ b/code/game/machinery/syndicatebeacon.dm
@@ -201,7 +201,7 @@
icon = 'icons/obj/radio.dmi'
icon_state = "beacon"
desc = "A label on it reads:
Warning: Activating this device will send a special beacon to your location."
- origin_tech = "bluespace=1;syndicate=7"
+ origin_tech = "bluespace=6;syndicate=5"
w_class = 2
var/droptype = /obj/machinery/power/singularity_beacon/syndicate
@@ -217,7 +217,9 @@
/obj/item/device/sbeacondrop/bomb
desc = "A label on it reads:
Warning: Activating this device will send a high-ordinance explosive to your location."
droptype = /obj/machinery/syndicatebomb
+ origin_tech = "bluespace=5;syndicate=5"
/obj/item/device/sbeacondrop/powersink
desc = "A label on it reads:
Warning: Activating this device will send a power draining device to your location."
droptype = /obj/item/device/powersink
+ origin_tech = "bluespace=4;syndicate=5"
diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm
index 26692706d2a..c31202c2c1b 100644
--- a/code/game/machinery/syndicatebomb.dm
+++ b/code/game/machinery/syndicatebomb.dm
@@ -210,7 +210,7 @@
icon_state = "bombcore"
item_state = "eshield0"
w_class = 3
- origin_tech = "syndicate=6;combat=5"
+ origin_tech = "syndicate=5;combat=6"
burn_state = FLAMMABLE //Burnable (but the casing isn't)
var/adminlog = null
@@ -465,7 +465,7 @@
icon_state = "bigred"
item_state = "electronic"
w_class = 1
- origin_tech = "syndicate=2"
+ origin_tech = "syndicate=3"
var/cooldown = 0
var/detonated = 0
var/existant = 0
diff --git a/code/game/mecha/equipment/mecha_equipment.dm b/code/game/mecha/equipment/mecha_equipment.dm
index d2ff930d4eb..9d061f39e39 100644
--- a/code/game/mecha/equipment/mecha_equipment.dm
+++ b/code/game/mecha/equipment/mecha_equipment.dm
@@ -1,4 +1,3 @@
-//TODO: Add critfail checks and reliability
//DO NOT ADD MECHA PARTS TO THE GAME WITH THE DEFAULT "SPRITE ME" SPRITE!
//I'm annoyed I even have to tell you this! SPRITE FIRST, then commit.
@@ -7,7 +6,7 @@
icon = 'icons/mecha/mecha_equipment.dmi'
icon_state = "mecha_equip"
force = 5
- origin_tech = "materials=2"
+ origin_tech = "materials=2;engineering=2"
var/equip_cooldown = 0 // cooldown after use
var/equip_ready = 1 //whether the equipment is ready for use. (or deactivated/activated for static stuff)
var/energy_drain = 0
@@ -155,4 +154,4 @@
/obj/item/mecha_parts/mecha_equipment/proc/needs_rearm()
- return 0
\ No newline at end of file
+ return 0
diff --git a/code/game/mecha/equipment/tools/medical_tools.dm b/code/game/mecha/equipment/tools/medical_tools.dm
index d9620ef7132..732fdc85a09 100644
--- a/code/game/mecha/equipment/tools/medical_tools.dm
+++ b/code/game/mecha/equipment/tools/medical_tools.dm
@@ -34,10 +34,9 @@
desc = "Equipment for medical exosuits. A mounted sleeper that stabilizes patients and can inject reagents in the exosuit's reserves."
icon = 'icons/obj/Cryogenic2.dmi'
icon_state = "sleeper"
- origin_tech = "programming=2;biotech=3"
+ origin_tech = "engineering=3;biotech=3;plasmatech=2"
energy_drain = 20
range = MELEE
- reliability = 1000
equip_cooldown = 20
var/mob/living/carbon/patient = null
var/inject_amount = 10
@@ -260,7 +259,7 @@
var/mode = 0 //0 - fire syringe, 1 - analyze reagents.
range = MELEE|RANGED
equip_cooldown = 10
- origin_tech = "materials=3;biotech=4;magnets=4;programming=3"
+ origin_tech = "materials=3;biotech=4;magnets=4"
/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/New()
..()
@@ -523,8 +522,6 @@
log_message("Reagent processing stopped.")
SSobj.processing -= src
return
- if(anyprob(reliability))
- critfail()
var/amount = synth_speed / processed_reagents.len
for(var/reagent in processed_reagents)
reagents.add_reagent(reagent,amount)
diff --git a/code/game/mecha/equipment/tools/mining_tools.dm b/code/game/mecha/equipment/tools/mining_tools.dm
index a5363b7795a..468483fac8d 100644
--- a/code/game/mecha/equipment/tools/mining_tools.dm
+++ b/code/game/mecha/equipment/tools/mining_tools.dm
@@ -96,22 +96,19 @@
target.updatehealth()
-
/obj/item/mecha_parts/mecha_equipment/drill/diamonddrill
name = "diamond-tipped exosuit drill"
desc = "Equipment for engineering and combat exosuits. This is an upgraded version of the drill that'll pierce the heavens!"
icon_state = "mecha_diamond_drill"
- origin_tech = "materials=4;engineering=3"
+ origin_tech = "materials=4;engineering=4"
equip_cooldown = 20
force = 15
-
/obj/item/mecha_parts/mecha_equipment/mining_scanner
name = "exosuit mining scanner"
desc = "Equipment for engineering and combat exosuits. It will automatically check surrounding rock for useful minerals."
icon_state = "mecha_analyzer"
- origin_tech = "materials=3;engineering=2"
selectable = 0
equip_cooldown = 30
var/scanning = 0
@@ -146,5 +143,3 @@
mineral_scan_pulse(L,get_turf(loc))
spawn(equip_cooldown)
scanning = 0
-
-
diff --git a/code/game/mecha/equipment/tools/other_tools.dm b/code/game/mecha/equipment/tools/other_tools.dm
index ead3ad8781d..d5f1906bf8f 100644
--- a/code/game/mecha/equipment/tools/other_tools.dm
+++ b/code/game/mecha/equipment/tools/other_tools.dm
@@ -8,7 +8,7 @@
name = "mounted teleporter"
desc = "An exosuit module that allows exosuits to teleport to any position in view."
icon_state = "mecha_teleport"
- origin_tech = "bluespace=10"
+ origin_tech = "bluespace=7"
equip_cooldown = 150
energy_drain = 1000
range = RANGED
@@ -28,7 +28,7 @@
name = "mounted wormhole generator"
desc = "An exosuit module that allows generating of small quasi-stable wormholes."
icon_state = "mecha_wholegen"
- origin_tech = "bluespace=3"
+ origin_tech = "bluespace=4;magnets=4;plasmatech=2"
equip_cooldown = 50
energy_drain = 300
range = RANGED
@@ -78,7 +78,7 @@
name = "mounted gravitational catapult"
desc = "An exosuit mounted Gravitational Catapult."
icon_state = "mecha_teleport"
- origin_tech = "bluespace=2;magnets=3"
+ origin_tech = "bluespace=3;magnets=3;engineering=4"
equip_cooldown = 10
energy_drain = 100
range = MELEE|RANGED
@@ -146,7 +146,7 @@
name = "armor booster module (Close Combat Weaponry)"
desc = "Boosts exosuit armor against armed melee attacks. Requires energy to operate."
icon_state = "mecha_abooster_ccw"
- origin_tech = "materials=3"
+ origin_tech = "materials=4;combat=4"
equip_cooldown = 10
energy_drain = 50
range = 0
@@ -165,7 +165,7 @@
name = "armor booster module (Ranged Weaponry)"
desc = "Boosts exosuit armor against ranged attacks. Completely blocks taser shots. Requires energy to operate."
icon_state = "mecha_abooster_proj"
- origin_tech = "materials=4"
+ origin_tech = "materials=4;combat=3;engineering=3"
equip_cooldown = 10
energy_drain = 50
range = 0
@@ -186,7 +186,7 @@
name = "exosuit repair droid"
desc = "An automated repair droid for exosuits. Scans for damage and repairs it. Can fix almost all types of external or internal damage."
icon_state = "repair_droid"
- origin_tech = "magnets=3;programming=3"
+ origin_tech = "magnets=3;programming=3;engineering=4"
energy_drain = 50
range = 0
var/health_boost = 1
@@ -271,7 +271,7 @@
name = "exosuit energy relay"
desc = "An exosuit module that wirelessly drains energy from any available power channel in area. The performance index is quite low."
icon_state = "tesla"
- origin_tech = "magnets=4;powerstorage=3"
+ origin_tech = "magnets=4;powerstorage=4;engineering=4"
energy_drain = 0
range = 0
var/coeff = 100
@@ -356,7 +356,7 @@
name = "exosuit plasma converter"
desc = "An exosuit module that generates power using solid plasma as fuel. Pollutes the environment."
icon_state = "tesla"
- origin_tech = "plasmatech=2;powerstorage=2;engineering=1"
+ origin_tech = "plasmatech=2;powerstorage=2;engineering=2"
range = MELEE
var/coeff = 100
var/obj/item/stack/sheet/fuel
@@ -364,7 +364,6 @@
var/fuel_per_cycle_idle = 25
var/fuel_per_cycle_active = 200
var/power_per_cycle = 20
- reliability = 1000
/obj/item/mecha_parts/mecha_equipment/generator/New()
..()
@@ -453,11 +452,6 @@
log_message("Deactivated - no fuel.")
set_ready_state(1)
return
- if(anyprob(reliability))
- set_ready_state(1) //inactive
- critfail()
- SSobj.processing.Remove(src)
- return
var/cur_charge = chassis.get_charge()
if(isnull(cur_charge))
set_ready_state(1)
@@ -478,7 +472,7 @@
name = "exonuclear reactor"
desc = "An exosuit module that generates power using uranium as fuel. Pollutes the environment."
icon_state = "tesla"
- origin_tech = "powerstorage=3;engineering=3"
+ origin_tech = "powerstorage=4;engineering=4"
max_fuel = 50000
fuel_per_cycle_idle = 10
fuel_per_cycle_active = 30
@@ -495,5 +489,3 @@
/obj/item/mecha_parts/mecha_equipment/generator/nuclear/process()
if(..())
radiation_pulse(get_turf(src), 2, 7, rad_per_cycle, 1)
-
-
diff --git a/code/game/mecha/equipment/tools/work_tools.dm b/code/game/mecha/equipment/tools/work_tools.dm
index f26a59501c0..d6a4498279f 100644
--- a/code/game/mecha/equipment/tools/work_tools.dm
+++ b/code/game/mecha/equipment/tools/work_tools.dm
@@ -190,7 +190,7 @@
name = "mounted RCD"
desc = "An exosuit-mounted Rapid Construction Device."
icon_state = "mecha_rcd"
- origin_tech = "materials=4;bluespace=3;magnets=4;powerstorage=4"
+ origin_tech = "materials=4;bluespace=3;magnets=4;powerstorage=4;engineering=4"
equip_cooldown = 10
energy_drain = 250
range = MELEE|RANGED
diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm
index 54c7aaaa985..418d29e3d59 100644
--- a/code/game/mecha/equipment/weapons/weapons.dm
+++ b/code/game/mecha/equipment/weapons/weapons.dm
@@ -71,6 +71,7 @@
name = "\improper CH-PS \"Immolator\" laser"
desc = "A weapon for combat exosuits. Shoots basic lasers."
icon_state = "mecha_laser"
+ origin_tech = "magnets=3;combat=3;engineering=3"
energy_drain = 30
projectile = /obj/item/projectile/beam/laser
fire_sound = 'sound/weapons/Laser.ogg'
@@ -80,6 +81,7 @@
name = "\improper CH-LC \"Solaris\" laser cannon"
desc = "A weapon for combat exosuits. Shoots heavy lasers."
icon_state = "mecha_laser"
+ origin_tech = "magnets=4;combat=4;engineering=3"
energy_drain = 60
projectile = /obj/item/projectile/beam/laser/heavylaser
fire_sound = 'sound/weapons/lasercannonfire.ogg'
@@ -89,6 +91,7 @@
name = "\improper MKIV ion heavy cannon"
desc = "A weapon for combat exosuits. Shoots technology-disabling ion beams. Don't catch yourself in the blast!"
icon_state = "mecha_ion"
+ origin_tech = "materials=4;combat=5;magnets=4"
energy_drain = 120
projectile = /obj/item/projectile/ion
fire_sound = 'sound/weapons/Laser.ogg'
@@ -110,7 +113,7 @@
icon_state = "mecha_plasmacutter"
item_state = "plasmacutter"
energy_drain = 60
- origin_tech = "materials=3;combat=2;powerstorage=3;plasmatech=3"
+ origin_tech = "materials=3;plasmatech=4;engineering=3"
projectile = /obj/item/projectile/plasma/adv/mech
fire_sound = 'sound/weapons/Laser.ogg'
@@ -140,6 +143,7 @@
name = "\improper PBT \"Pacifier\" mounted taser"
desc = "A weapon for combat exosuits. Shoots non-lethal stunning electrodes."
icon_state = "mecha_taser"
+ origin_tech = "combat=3"
energy_drain = 20
equip_cooldown = 8
projectile = /obj/item/projectile/energy/electrode
@@ -243,6 +247,7 @@
name = "\improper FNX-99 \"Hades\" Carbine"
desc = "A weapon for combat exosuits. Shoots incendiary bullets."
icon_state = "mecha_carbine"
+ origin_tech = "materials=4;combat=4"
equip_cooldown = 5
projectile = /obj/item/projectile/bullet/incendiary/shell/dragonsbreath
projectiles = 24
@@ -262,6 +267,7 @@
name = "\improper LBX AC 10 \"Scattershot\""
desc = "A weapon for combat exosuits. Shoots a spread of pellets."
icon_state = "mecha_scatter"
+ origin_tech = "combat=4"
equip_cooldown = 20
projectile = /obj/item/projectile/bullet/midbullet
projectiles = 40
@@ -273,6 +279,7 @@
name = "\improper Ultra AC 2"
desc = "A weapon for combat exosuits. Shoots a rapid, three shot burst."
icon_state = "mecha_uac2"
+ origin_tech = "combat=4"
equip_cooldown = 10
projectile = /obj/item/projectile/bullet/weakbullet3
projectiles = 300
@@ -305,6 +312,7 @@
name = "\improper SRM-8 missile rack"
desc = "A weapon for combat exosuits. Shoots light explosive missiles."
icon_state = "mecha_missilerack"
+ origin_tech = "combat=5;materials=4;engineering=4"
projectile = /obj/item/missile
fire_sound = 'sound/weapons/grenadelaunch.ogg'
projectiles = 8
@@ -334,6 +342,7 @@
name = "\improper SGL-6 grenade launcher"
desc = "A weapon for combat exosuits. Launches primed flashbangs."
icon_state = "mecha_grenadelnchr"
+ origin_tech = "combat=4;engineering=4"
projectile = /obj/item/weapon/grenade/flashbang
fire_sound = 'sound/weapons/grenadelaunch.ogg'
projectiles = 6
@@ -354,6 +363,7 @@
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/flashbang/clusterbang //Because I am a heartless bastard -Sieve //Heartless? for making the poor man's honkblast? - Kaze
name = "\improper SOB-3 grenade launcher"
desc = "A weapon for combat exosuits. Launches primed clusterbangs. You monster."
+ origin_tech = "combat=4;materials=4"
projectiles = 3
projectile = /obj/item/weapon/grenade/clusterbuster
projectile_energy_cost = 1600 //getting off cheap seeing as this is 3 times the flashbangs held in the grenade launcher.
@@ -395,4 +405,3 @@
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/mousetrap_mortar/proj_init(var/obj/item/device/assembly/mousetrap/armed/M)
M.secured = 1
-
diff --git a/code/game/mecha/mech_bay.dm b/code/game/mecha/mech_bay.dm
index 9ab089a34ff..cddf69f5016 100644
--- a/code/game/mecha/mech_bay.dm
+++ b/code/game/mecha/mech_bay.dm
@@ -33,7 +33,7 @@
/obj/item/weapon/circuitboard/machine/mech_recharger
name = "circuit board (Mechbay Recharger)"
build_path = /obj/machinery/mech_bay_recharge_port
- origin_tech = "programming=3;powerstorage=4;engineering=4"
+ origin_tech = "programming=3;powerstorage=3;engineering=3"
req_components = list(
/obj/item/stack/cable_coil = 2,
/obj/item/weapon/stock_parts/capacitor = 5)
diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm
index 5de9c676059..429460f0d67 100644
--- a/code/game/mecha/mech_fabricator.dm
+++ b/code/game/mecha/mech_fabricator.dm
@@ -10,6 +10,7 @@
active_power_usage = 5000
req_access = list(access_robotics)
var/time_coeff = 1
+ var/component_coeff = 1
var/list/resources = list(
MAT_METAL=0,
MAT_GLASS=0,
@@ -53,7 +54,7 @@
/obj/item/weapon/circuitboard/machine/mechfab
name = "circuit board (Exosuit Fabricator)"
build_path = /obj/machinery/mecha_part_fabricator
- origin_tech = "programming=3;engineering=3"
+ origin_tech = "programming=2;engineering=2"
req_components = list(
/obj/item/weapon/stock_parts/matter_bin = 2,
/obj/item/weapon/stock_parts/manipulator = 1,
@@ -68,6 +69,12 @@
T += M.rating
res_max_amount = (187000+(T * 37500))
+ //resources adjustment coefficient (1 -> 0.85 -> 0.7 -> 0.55)
+ T = 1.15
+ for(var/obj/item/weapon/stock_parts/micro_laser/Ma in component_parts)
+ T -= Ma.rating*0.15
+ component_coeff = T
+
//building time adjustment coefficient (1 -> 0.8 -> 0.6)
T = -1
for(var/obj/item/weapon/stock_parts/manipulator/Ml in component_parts)
@@ -266,7 +273,7 @@
return
/obj/machinery/mecha_part_fabricator/proc/get_resource_cost_w_coeff(datum/design/D, resource, roundto = 1)
- return round(D.materials[resource], roundto)
+ return round(D.materials[resource]*component_coeff, roundto)
/obj/machinery/mecha_part_fabricator/proc/get_construction_time_w_coeff(datum/design/D, roundto = 1) //aran
return round(initial(D.construction_time)*time_coeff, roundto)
diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm
index d05e83da56f..9c30fc863fd 100644
--- a/code/game/mecha/mecha.dm
+++ b/code/game/mecha/mecha.dm
@@ -164,7 +164,6 @@
WR.crowbar_salvage += E
E.detach(WR) //detaches from src into WR
E.equip_ready = 1
- E.reliability = round(rand(E.reliability/3,E.reliability))
else
E.detach(loc)
qdel(E)
diff --git a/code/game/mecha/mecha_parts.dm b/code/game/mecha/mecha_parts.dm
index 40037689a9e..73e669839b7 100644
--- a/code/game/mecha/mecha_parts.dm
+++ b/code/game/mecha/mecha_parts.dm
@@ -8,7 +8,7 @@
icon_state = "blank"
w_class = 6
flags = CONDUCT
- origin_tech = "programming=2;materials=2"
+ origin_tech = "programming=2;materials=2;engineering=2"
/obj/item/mecha_parts/chassis
name="Mecha Chassis"
@@ -41,25 +41,61 @@
name = "\improper Ripley left arm"
desc = "A Ripley APLU left arm. Data and power sockets are compatible with most exosuit tools."
icon_state = "ripley_l_arm"
- origin_tech = "programming=2;materials=2;engineering=2"
/obj/item/mecha_parts/part/ripley_right_arm
name = "\improper Ripley right arm"
desc = "A Ripley APLU right arm. Data and power sockets are compatible with most exosuit tools."
icon_state = "ripley_r_arm"
- origin_tech = "programming=2;materials=2;engineering=2"
/obj/item/mecha_parts/part/ripley_left_leg
name = "\improper Ripley left leg"
desc = "A Ripley APLU left leg. Contains somewhat complex servodrives and balance maintaining systems."
icon_state = "ripley_l_leg"
- origin_tech = "programming=2;materials=2;engineering=2"
/obj/item/mecha_parts/part/ripley_right_leg
name = "\improper Ripley right leg"
desc = "A Ripley APLU right leg. Contains somewhat complex servodrives and balance maintaining systems."
icon_state = "ripley_r_leg"
- origin_tech = "programming=2;materials=2;engineering=2"
+
+///////// Odysseus
+
+/obj/item/mecha_parts/chassis/odysseus
+ name = "\improper Odysseus chassis"
+
+/obj/item/mecha_parts/chassis/odysseus/New()
+ ..()
+ construct = new /datum/construction/mecha/odysseus_chassis(src)
+
+/obj/item/mecha_parts/part/odysseus_head
+ name = "\improper Odysseus head"
+ desc = "An Odysseus head. Contains an integrated medical HUD scanner."
+ icon_state = "odysseus_head"
+
+/obj/item/mecha_parts/part/odysseus_torso
+ name = "\improper Odysseus torso"
+ desc="A torso part of Odysseus. Contains power unit, processing core and life support systems along with an attachment port for a mounted sleeper."
+ icon_state = "odysseus_torso"
+ origin_tech = "programming=2;materials=2;biotech=2;engineering=2"
+
+/obj/item/mecha_parts/part/odysseus_left_arm
+ name = "\improper Odysseus left arm"
+ desc = "An Odysseus left arm. Data and power sockets are compatible with specialized medical equipment."
+ icon_state = "odysseus_l_arm"
+
+/obj/item/mecha_parts/part/odysseus_right_arm
+ name = "\improper Odysseus right arm"
+ desc = "An Odysseus right arm. Data and power sockets are compatible with specialized medical equipment."
+ icon_state = "odysseus_r_arm"
+
+/obj/item/mecha_parts/part/odysseus_left_leg
+ name = "\improper Odysseus left leg"
+ desc = "An Odysseus left leg. Contains complex servodrives and balance maintaining systems to maintain stability for critical patients."
+ icon_state = "odysseus_l_leg"
+
+/obj/item/mecha_parts/part/odysseus_right_leg
+ name = "\improper Odysseus right leg"
+ desc = "A Odysseus right leg. Contains complex servodrives and balance maintaining systems to maintain stability for critical patients."
+ icon_state = "odysseus_r_leg"
///////// Gygax
@@ -74,44 +110,44 @@
name = "\improper Gygax torso"
desc = "A torso part of Gygax. Contains power unit, processing core and life support systems."
icon_state = "gygax_harness"
- origin_tech = "programming=2;materials=2;biotech=3;engineering=3"
+ origin_tech = "programming=2;materials=4;biotech=3;engineering=3"
/obj/item/mecha_parts/part/gygax_head
name = "\improper Gygax head"
desc = "A Gygax head. Houses advanced surveilance and targeting sensors."
icon_state = "gygax_head"
- origin_tech = "programming=2;materials=2;magnets=3;engineering=3"
+ origin_tech = "programming=2;materials=4;magnets=3;engineering=3"
/obj/item/mecha_parts/part/gygax_left_arm
name = "\improper Gygax left arm"
desc = "A Gygax left arm. Data and power sockets are compatible with most exosuit tools and weapons."
icon_state = "gygax_l_arm"
- origin_tech = "programming=2;materials=2;engineering=3"
+ origin_tech = "programming=2;materials=4;engineering=3"
/obj/item/mecha_parts/part/gygax_right_arm
name = "\improper Gygax right arm"
desc = "A Gygax right arm. Data and power sockets are compatible with most exosuit tools and weapons."
icon_state = "gygax_r_arm"
- origin_tech = "programming=2;materials=2;engineering=3"
+ origin_tech = "programming=2;materials=4;engineering=3"
/obj/item/mecha_parts/part/gygax_left_leg
name = "\improper Gygax left leg"
desc = "A Gygax left leg. Constructed with advanced servomechanisms and actuators to enable faster speed."
icon_state = "gygax_l_leg"
- origin_tech = "programming=2;materials=2;engineering=3"
+ origin_tech = "programming=2;materials=4;engineering=3"
/obj/item/mecha_parts/part/gygax_right_leg
name = "\improper Gygax right leg"
desc = "A Gygax right leg. Constructed with advanced servomechanisms and actuators to enable faster speed."
icon_state = "gygax_r_leg"
- origin_tech = "programming=2;materials=2;engineering=3"
+ origin_tech = "programming=2;materials=4;engineering=3"
/obj/item/mecha_parts/part/gygax_armor
gender = PLURAL
name = "\improper Gygax armor plates"
desc = "A set of armor plates designed for the Gygax. Designed to effectively deflect damage with a lightweight construction."
icon_state = "gygax_armor"
- origin_tech = "materials=6;combat=4;engineering=5"
+ origin_tech = "materials=6;combat=4;engineering=4"
//////////// Durand
@@ -164,7 +200,7 @@
name = "\improper Durand armor plates"
desc = "A set of armor plates for the Durand. Built heavy to resist an incredible amount of brute force."
icon_state = "durand_armor"
- origin_tech = "materials=5;combat=4;engineering=5"
+ origin_tech = "materials=5;combat=4;engineering=4"
////////// Firefighter
@@ -220,7 +256,6 @@
/obj/item/mecha_parts/chassis/phazon
name = "\improper Phazon chassis"
- origin_tech = "materials=6"
/obj/item/mecha_parts/chassis/phazon/New()
..()
@@ -230,88 +265,43 @@
name="\improper Phazon torso"
desc="A Phazon torso part. The socket for the bluespace core that powers the exosuit's unique phase drives is located in the middle."
icon_state = "phazon_harness"
- origin_tech = "programming=5;materials=6;bluespace=5;powerstorage=5"
+ origin_tech = "programming=4;materials=4;bluespace=4;plasmatech=5"
/obj/item/mecha_parts/part/phazon_head
name="\improper Phazon head"
desc="A Phazon head. Its sensors are carefully calibrated to provide vision and data even when the exosuit is phasing."
icon_state = "phazon_head"
- origin_tech = "programming=4;materials=5;magnets=5"
+ origin_tech = "programming=3;materials=3;magnets=3"
/obj/item/mecha_parts/part/phazon_left_arm
name="\improper Phazon left arm"
desc="A Phazon left arm. Several microtool arrays are located under the armor plating, which can be adjusted to the situation at hand."
icon_state = "phazon_l_arm"
- origin_tech = "materials=5;bluespace=2;magnets=2"
+ origin_tech = "materials=3;bluespace=3;magnets=3"
/obj/item/mecha_parts/part/phazon_right_arm
name="\improper Phazon right arm"
desc="A Phazon right arm. Several microtool arrays are located under the armor plating, which can be adjusted to the situation at hand."
icon_state = "phazon_r_arm"
- origin_tech = "materials=5;bluespace=2;magnets=2"
+ origin_tech = "materials=3;bluespace=3;magnets=3"
/obj/item/mecha_parts/part/phazon_left_leg
name="\improper Phazon left leg"
desc="A Phazon left leg. It contains the unique phase drives that allow the exosuit to phase through solid matter when engaged."
icon_state = "phazon_l_leg"
- origin_tech = "materials=5;bluespace=3;magnets=3"
+ origin_tech = "materials=3;bluespace=3;magnets=3"
/obj/item/mecha_parts/part/phazon_right_leg
name="\improper Phazon right leg"
desc="A Phazon right leg. It contains the unique phase drives that allow the exosuit to phase through solid matter when engaged."
icon_state = "phazon_r_leg"
- origin_tech = "materials=5;bluespace=3;magnets=3"
+ origin_tech = "materials=3;bluespace=3;magnets=3"
/obj/item/mecha_parts/part/phazon_armor
name="Phazon armor"
desc="Phazon armor plates. They are layered with plasma to protect the pilot from the stress of phasing and have unusual properties."
icon_state = "phazon_armor"
- origin_tech = "materials=6;bluespace=5;magnets=5"
-///////// Odysseus
-
-
-/obj/item/mecha_parts/chassis/odysseus
- name = "\improper Odysseus chassis"
-
-/obj/item/mecha_parts/chassis/odysseus/New()
- ..()
- construct = new /datum/construction/mecha/odysseus_chassis(src)
-
-/obj/item/mecha_parts/part/odysseus_head
- name = "\improper Odysseus head"
- desc = "An Odysseus head. Contains an integrated medical HUD scanner."
- icon_state = "odysseus_head"
- origin_tech = "programming=3;materials=2"
-
-/obj/item/mecha_parts/part/odysseus_torso
- name = "\improper Odysseus torso"
- desc="A torso part of Odysseus. Contains power unit, processing core and life support systems along with an attachment port for a mounted sleeper."
- icon_state = "odysseus_torso"
- origin_tech = "programming=2;materials=2;biotech=2;engineering=2"
-
-/obj/item/mecha_parts/part/odysseus_left_arm
- name = "\improper Odysseus left arm"
- desc = "An Odysseus left arm. Data and power sockets are compatible with specialized medical equipment."
- icon_state = "odysseus_l_arm"
- origin_tech = "programming=2;materials=2;engineering=2"
-
-/obj/item/mecha_parts/part/odysseus_right_arm
- name = "\improper Odysseus right arm"
- desc = "An Odysseus right arm. Data and power sockets are compatible with specialized medical equipment."
- icon_state = "odysseus_r_arm"
- origin_tech = "programming=2;materials=2;engineering=2"
-
-/obj/item/mecha_parts/part/odysseus_left_leg
- name = "\improper Odysseus left leg"
- desc = "An Odysseus left leg. Contains complex servodrives and balance maintaining systems to maintain stability for critical patients."
- icon_state = "odysseus_l_leg"
- origin_tech = "programming=2;materials=2;engineering=2"
-
-/obj/item/mecha_parts/part/odysseus_right_leg
- name = "\improper Odysseus right leg"
- desc = "A Odysseus right leg. Contains complex servodrives and balance maintaining systems to maintain stability for critical patients."
- icon_state = "odysseus_r_leg"
- origin_tech = "programming=2;materials=2;engineering=2"
+ origin_tech = "materials=4;bluespace=4;plasmatech=5"
///////// Circuitboards
@@ -329,7 +319,7 @@
throw_range = 7
/obj/item/weapon/circuitboard/mecha/ripley
- origin_tech = "programming=3"
+ origin_tech = "programming=2"
/obj/item/weapon/circuitboard/mecha/ripley/peripherals
name = "circuit board (Ripley Peripherals Control module)"
@@ -340,7 +330,7 @@
icon_state = "mainboard"
/obj/item/weapon/circuitboard/mecha/gygax
- origin_tech = "programming=4"
+ origin_tech = "programming=4;combat=3;engineering=3"
/obj/item/weapon/circuitboard/mecha/gygax/peripherals
name = "circuit board (Gygax Peripherals Control module)"
@@ -356,7 +346,7 @@
icon_state = "mainboard"
/obj/item/weapon/circuitboard/mecha/durand
- origin_tech = "programming=4"
+ origin_tech = "programming=4;combat=3;engineering=3"
/obj/item/weapon/circuitboard/mecha/durand/peripherals
name = "circuit board (Durand Peripherals Control module)"
@@ -365,14 +355,14 @@
/obj/item/weapon/circuitboard/mecha/durand/targeting
name = "circuit board (Durand Weapon Control and Targeting module)"
icon_state = "mcontroller"
- origin_tech = "programming=4;combat=4"
+ origin_tech = "programming=4;combat=4;engineering=3"
/obj/item/weapon/circuitboard/mecha/durand/main
name = "circuit board (Durand Central Control module)"
icon_state = "mainboard"
/obj/item/weapon/circuitboard/mecha/honker
- origin_tech = "programming=4"
+ origin_tech = "programming=3;engineering=3"
/obj/item/weapon/circuitboard/mecha/honker/peripherals
name = "circuit board (H.O.N.K Peripherals Control module)"
@@ -387,7 +377,7 @@
icon_state = "mainboard"
/obj/item/weapon/circuitboard/mecha/odysseus
- origin_tech = "programming=3"
+ origin_tech = "programming=3;biotech=3"
/obj/item/weapon/circuitboard/mecha/odysseus/peripherals
name = "circuit board (Odysseus Peripherals Control module)"
@@ -398,7 +388,7 @@
icon_state = "mainboard"
/obj/item/weapon/circuitboard/mecha/phazon
- origin_tech = "programming=5"
+ origin_tech = "programming=5;plasmatech=4"
/obj/item/weapon/circuitboard/mecha/phazon/peripherals
name = "circuit board (Phazon Peripherals Control module)"
@@ -409,4 +399,4 @@
icon_state = "mcontroller"
/obj/item/weapon/circuitboard/mecha/phazon/main
- name = "circuit board (Phazon Central Control module)"
\ No newline at end of file
+ name = "circuit board (Phazon Central Control module)"
diff --git a/code/game/objects/effects/anomalies.dm b/code/game/objects/effects/anomalies.dm
index f33b6529a89..458633001ca 100644
--- a/code/game/objects/effects/anomalies.dm
+++ b/code/game/objects/effects/anomalies.dm
@@ -58,7 +58,7 @@
/obj/effect/anomaly/grav/New()
..()
- aSignal.origin_tech = "magnets=5;powerstorage=4"
+ aSignal.origin_tech = "magnets=7"
/obj/effect/anomaly/grav/anomalyEffect()
..()
@@ -104,7 +104,7 @@
/obj/effect/anomaly/flux/New()
..()
- aSignal.origin_tech = "powerstorage=6;programming=4;plasmatech=4"
+ aSignal.origin_tech = "powerstorage=7"
/obj/effect/anomaly/flux/anomalyEffect()
..()
@@ -146,7 +146,7 @@
/obj/effect/anomaly/bluespace/New()
..()
- aSignal.origin_tech = "bluespace=5;magnets=5;powerstorage=3"
+ aSignal.origin_tech = "bluespace=7"
/obj/effect/anomaly/bluespace/anomalyEffect()
..()
@@ -166,7 +166,7 @@
/obj/effect/anomaly/pyro/New()
..()
- aSignal.origin_tech = "plasmatech=5;powerstorage=4;biotech=6"
+ aSignal.origin_tech = "plasmatech=7"
/obj/effect/anomaly/pyro/anomalyEffect()
..()
@@ -183,7 +183,7 @@
/obj/effect/anomaly/bhole/New()
..()
- aSignal.origin_tech = "materials=5;combat=4;engineering=4"
+ aSignal.origin_tech = "engineering=7"
/obj/effect/anomaly/bhole/anomalyEffect()
..()
@@ -231,4 +231,4 @@
//Damaging the turf
if( T && prob(turf_removal_chance) )
T.ex_act(ex_act_force)
- return
\ No newline at end of file
+ return
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index 2839bb1250b..54a33a19464 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -55,7 +55,6 @@ var/global/image/fire_overlay = image("icon" = 'icons/effects/fire.dmi', "icon_s
var/put_on_delay = 20
var/breakouttime = 0
var/list/materials = list()
- var/reliability = 100 //Used by SOME devices to determine how reliable they are.
var/origin_tech = null //Used by R&D to determine what research bonuses it grants.
var/needs_permit = 0 //Used by security bots to determine if this item is safe for public use.
@@ -202,9 +201,6 @@ var/global/image/fire_overlay = image("icon" = 'icons/effects/fire.dmi', "icon_s
var/list/techlvls = params2list(origin_tech)
for(var/T in techlvls) //This needs to use the better names.
msg += "Tech: [CallTechName(T)] | magnitude: [techlvls[T]]
"
- msg += "Research reliability: [reliability]%
"
- if(crit_fail)
- msg += "
Critical failure detected in subject!"
else
msg += "
No tech origins detected."
diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm
index 83ac1b58805..3af9dfe0fef 100644
--- a/code/game/objects/items/bodybag.dm
+++ b/code/game/objects/items/bodybag.dm
@@ -99,6 +99,7 @@
icon_state = "bluebodybag_folded"
unfoldedbag_path = /obj/structure/closet/body_bag/bluespace
w_class = 2
+ origin_tech = "bluespace=4;materials=4;plasmatech=4"
/obj/structure/closet/body_bag/bluespace
name = "bluespace body bag"
diff --git a/code/game/objects/items/devices/aicard.dm b/code/game/objects/items/devices/aicard.dm
index ebc9d68c184..4f69d9a5371 100644
--- a/code/game/objects/items/devices/aicard.dm
+++ b/code/game/objects/items/devices/aicard.dm
@@ -9,7 +9,7 @@
flags = NOBLUDGEON
var/flush = FALSE
var/mob/living/silicon/ai/AI
- origin_tech = "programming=4;materials=4"
+ origin_tech = "programming=3;materials=3"
/obj/item/device/aicard/afterattack(atom/target, mob/user, proximity)
..()
@@ -82,4 +82,4 @@
AI.radio_enabled = !AI.radio_enabled
AI << "Your Subspace Transceiver has been [AI.radio_enabled ? "enabled" : "disabled"]!"
. = TRUE
- update_icon()
\ No newline at end of file
+ update_icon()
diff --git a/code/game/objects/items/devices/camera_bug.dm b/code/game/objects/items/devices/camera_bug.dm
index 4e9ecaf30e3..a49af05f819 100644
--- a/code/game/objects/items/devices/camera_bug.dm
+++ b/code/game/objects/items/devices/camera_bug.dm
@@ -14,7 +14,7 @@
item_state = "camera_bug"
throw_speed = 4
throw_range = 20
- origin_tech = "syndicate=3;engineering=1"
+ origin_tech = "syndicate=1;engineering=3"
flags = NOBLUDGEON
var/obj/machinery/camera/current = null
@@ -279,4 +279,4 @@
#undef BUGMODE_LIST
#undef BUGMODE_MONITOR
-#undef BUGMODE_TRACK
\ No newline at end of file
+#undef BUGMODE_TRACK
diff --git a/code/game/objects/items/devices/doorCharge.dm b/code/game/objects/items/devices/doorCharge.dm
index 972c33becde..bedc318e75e 100644
--- a/code/game/objects/items/devices/doorCharge.dm
+++ b/code/game/objects/items/devices/doorCharge.dm
@@ -10,7 +10,7 @@
force = 3
attack_verb = list("blown up", "exploded", "detonated")
materials = list(MAT_METAL=50, MAT_GLASS=30)
- origin_tech = "syndicate=3;combat=2"
+ origin_tech = "syndicate=1;combat=3;engineering=3"
/obj/item/device/doorCharge/ex_act(severity, target)
switch(severity)
@@ -30,4 +30,4 @@
if(user.mind in ticker.mode.traitors) //No nuke ops because the device is excluded from nuclear
user << "A small explosive device that can be used to sabotage airlocks to cause an explosion upon opening. To apply, remove the airlock's maintenance panel and place it within."
else
- user << "A small, suspicious object that feels lukewarm when held."
\ No newline at end of file
+ user << "A small, suspicious object that feels lukewarm when held."
diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm
index f0f56523972..6686f2985cb 100644
--- a/code/game/objects/items/devices/flashlight.dm
+++ b/code/game/objects/items/devices/flashlight.dm
@@ -277,8 +277,7 @@ obj/item/device/flashlight/lamp/bananalamp
brightness_on = 6 //luminosity when on
/obj/item/device/flashlight/emp
- origin_tech = "magnets=4;syndicate=5"
-
+ origin_tech = "magnets=3;syndicate=´1"
var/emp_max_charges = 4
var/emp_cur_charges = 4
var/charge_tick = 0
@@ -322,4 +321,4 @@ obj/item/device/flashlight/lamp/bananalamp
A.emp_act(1)
else
user << "
\The [src] needs time to recharge!"
- return
\ No newline at end of file
+ return
diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm
index 27bad40ef89..2c6f0be7fe9 100644
--- a/code/game/objects/items/devices/lightreplacer.dm
+++ b/code/game/objects/items/devices/lightreplacer.dm
@@ -49,7 +49,7 @@
flags = CONDUCT
slot_flags = SLOT_BELT
- origin_tech = "magnets=3;materials=2"
+ origin_tech = "magnets=3;engineering=4"
var/max_uses = 20
var/uses = 0
diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm
index bc65f1a0f12..b0db05d64d7 100644
--- a/code/game/objects/items/devices/multitool.dm
+++ b/code/game/objects/items/devices/multitool.dm
@@ -18,7 +18,7 @@
throw_range = 7
throw_speed = 3
materials = list(MAT_METAL=50, MAT_GLASS=20)
- origin_tech = "magnets=1;engineering=1"
+ origin_tech = "magnets=1;engineering=2"
var/obj/machinery/buffer // simple machine buffer for device linkage
hitsound = 'sound/weapons/tap.ogg'
toolspeed = 1
@@ -33,6 +33,7 @@
var/detect_state = PROXIMITY_NONE
var/rangealert = 8 //Glows red when inside
var/rangewarning = 20 //Glows yellow when inside
+ origin_tech = "magnets=1;engineering=2;syndicate=1"
/obj/item/device/multitool/ai_detect/New()
..()
diff --git a/code/game/objects/items/devices/powersink.dm b/code/game/objects/items/devices/powersink.dm
index bf0ccfde494..c948d0c000c 100644
--- a/code/game/objects/items/devices/powersink.dm
+++ b/code/game/objects/items/devices/powersink.dm
@@ -11,7 +11,7 @@
throw_speed = 1
throw_range = 2
materials = list(MAT_METAL=750)
- origin_tech = "powerstorage=3;syndicate=5"
+ origin_tech = "powerstorage=5;syndicate=5"
var/drain_rate = 1600000 // amount of power to drain per tick
var/power_drained = 0 // has drained this much power
var/max_power = 1e10 // maximum power that can be drained before exploding
diff --git a/code/game/objects/items/devices/radio/encryptionkey.dm b/code/game/objects/items/devices/radio/encryptionkey.dm
index a1380e000e1..be17fd0631f 100644
--- a/code/game/objects/items/devices/radio/encryptionkey.dm
+++ b/code/game/objects/items/devices/radio/encryptionkey.dm
@@ -5,6 +5,7 @@
icon = 'icons/obj/radio.dmi'
icon_state = "cypherkey"
w_class = 1
+ origin_tech = "engineering=2;bluespace=1"
var/translate_binary = 0
var/translate_hive = 0
var/syndie = 0
@@ -14,7 +15,7 @@
/obj/item/device/encryptionkey/syndicate
icon_state = "cypherkey"
channels = list("Syndicate" = 1)
- origin_tech = "syndicate=3"
+ origin_tech = "syndicate=1;engineering=3;bluespace=2"
syndie = 1//Signifies that it de-crypts Syndicate transmissions
/obj/item/device/encryptionkey/binary
@@ -22,7 +23,7 @@
desc = "An encryption key for a radio headset. To access the binary channel, use :b."
icon_state = "cypherkey"
translate_binary = 1
- origin_tech = "syndicate=3"
+ origin_tech = "syndicate=3;engineering=4;bluespace=3"
/obj/item/device/encryptionkey/headset_sec
name = "security radio encryption key"
@@ -125,4 +126,4 @@
channels = list("Command" = 1, "Security" = 1, "Engineering" = 1, "Science" = 1, "Medical" = 1, "Supply" = 1, "Service" = 1, "AI Private" = 1)
/obj/item/device/encryptionkey/secbot
- channels = list("AI Private"=1,"Security"=1)
\ No newline at end of file
+ channels = list("AI Private"=1,"Security"=1)
diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm
index 146610a5197..04153b9e578 100644
--- a/code/game/objects/items/devices/scanners.dm
+++ b/code/game/objects/items/devices/scanners.dm
@@ -324,10 +324,9 @@ MASS SPECTROMETER
throwforce = 0
throw_speed = 3
throw_range = 7
- materials = list(MAT_METAL=30, MAT_GLASS=20)
- origin_tech = "magnets=2;biotech=2"
+ materials = list(MAT_METAL=150, MAT_GLASS=100)
+ origin_tech = "magnets=2;biotech=1;plasmatech=2"
var/details = 0
- var/recent_fail = 0
/obj/item/device/mass_spectrometer/New()
..()
@@ -342,9 +341,6 @@ MASS SPECTROMETER
/obj/item/device/mass_spectrometer/attack_self(mob/user)
if (user.stat || user.eye_blind)
return
- if (crit_fail)
- user << "
This device has critically failed and is no longer functional!"
- return
if (!user.IsAdvancedToolUser())
user << "
You don't have the dexterity to do this!"
return
@@ -363,20 +359,9 @@ MASS SPECTROMETER
dat += "
None"
else
for(var/R in blood_traces)
- if(prob(reliability))
- dat += "
[chemical_reagents_list[R]]"
-
- if(details)
- dat += " ([blood_traces[R]] units)"
-
- recent_fail = 0
- else
- if(recent_fail)
- crit_fail = 1
- reagents.clear_reagents()
- return
- else
- recent_fail = 1
+ dat += "
[chemical_reagents_list[R]]"
+ if(details)
+ dat += " ([blood_traces[R]] units)"
dat += ""
user << dat
reagents.clear_reagents()
@@ -386,14 +371,14 @@ MASS SPECTROMETER
name = "advanced mass-spectrometer"
icon_state = "adv_spectrometer"
details = 1
- origin_tech = "magnets=4;biotech=2"
+ origin_tech = "magnets=4;biotech=3;plasmatech=3"
/obj/item/device/slime_scanner
name = "slime scanner"
desc = "A device that analyzes a slime's internal composition and measures its stats."
icon_state = "adv_spectrometer"
item_state = "analyzer"
- origin_tech = "biotech=1"
+ origin_tech = "biotech=2"
w_class = 2
flags = CONDUCT
throwforce = 0
diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm
index 7cd44cecb81..c3c90724557 100644
--- a/code/game/objects/items/robot/robot_upgrades.dm
+++ b/code/game/objects/items/robot/robot_upgrades.dm
@@ -6,7 +6,7 @@
desc = "Protected by FRM."
icon = 'icons/obj/module.dmi'
icon_state = "cyborg_upgrade"
- origin_tech = "programming=4"
+ origin_tech = "programming=2"
var/locked = 0
var/installed = 0
var/require_module = 0
@@ -96,7 +96,7 @@
desc = "Used to kick in a cyborg's VTEC systems, increasing their speed."
icon_state = "cyborg_upgrade2"
require_module = 1
- origin_tech = "engineering=4;materials=5"
+ origin_tech = "engineering=4;materials=5;programming=4"
/obj/item/borg/upgrade/vtec/action(mob/living/silicon/robot/R)
if(..())
@@ -116,7 +116,7 @@
icon_state = "cyborg_upgrade3"
require_module = 1
module_type = /obj/item/weapon/robot_module/security
- origin_tech = "engineering=4;powerstorage=4"
+ origin_tech = "engineering=4;powerstorage=4;combat=4"
/obj/item/borg/upgrade/disablercooler/action(mob/living/silicon/robot/R)
if(..())
@@ -158,7 +158,7 @@
icon_state = "cyborg_upgrade3"
require_module = 1
module_type = /obj/item/weapon/robot_module/miner
- origin_tech = "engineering=5;materials=5"
+ origin_tech = "engineering=4;materials=5"
/obj/item/borg/upgrade/ddrill/action(mob/living/silicon/robot/R)
if(..())
@@ -180,7 +180,7 @@
icon_state = "cyborg_upgrade3"
require_module = 1
module_type = /obj/item/weapon/robot_module/miner
- origin_tech = "engineering=5;materials=5;bluespace=3"
+ origin_tech = "engineering=4;materials=4;bluespace=4"
/obj/item/borg/upgrade/soh/action(mob/living/silicon/robot/R)
if(..())
@@ -199,7 +199,7 @@
desc = "Unlocks the hidden, deadlier functions of a cyborg"
icon_state = "cyborg_upgrade3"
require_module = 1
- origin_tech = "combat=4;syndicate=2"
+ origin_tech = "combat=4;syndicate=1"
/obj/item/borg/upgrade/syndicate/action(mob/living/silicon/robot/R)
if(..())
diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm
index eb1a1d7abd0..d7c582a35d0 100644
--- a/code/game/objects/items/stacks/medical.dm
+++ b/code/game/objects/items/stacks/medical.dm
@@ -105,7 +105,7 @@
desc = "A theraputic gel pack and bandages designed to treat blunt-force trauma."
icon_state = "brutepack"
heal_brute = 40
- origin_tech = "biotech=1"
+ origin_tech = "biotech=2"
self_delay = 20
/obj/item/stack/medical/gauze
@@ -135,5 +135,5 @@
singular_name = "ointment"
icon_state = "ointment"
heal_burn = 40
- origin_tech = "biotech=1"
+ origin_tech = "biotech=2"
self_delay = 20
diff --git a/code/game/objects/items/stacks/sheets/leather.dm b/code/game/objects/items/stacks/sheets/leather.dm
index 22bcc0d2dcb..ee43c27dc91 100644
--- a/code/game/objects/items/stacks/sheets/leather.dm
+++ b/code/game/objects/items/stacks/sheets/leather.dm
@@ -1,9 +1,13 @@
+/obj/item/stack/sheet/animalhide
+ name = "hide"
+ desc = "Something went wrong."
+ origin_tech = "biotech=3"
+
/obj/item/stack/sheet/animalhide/human
name = "human skin"
desc = "The by-product of human farming."
singular_name = "human skin piece"
icon_state = "sheet-hide"
- origin_tech = null
var/global/list/datum/stack_recipe/human_recipes = list( \
new/datum/stack_recipe("bloated human costume", /obj/item/clothing/suit/hooded/bloated_human, 5, on_floor = 1), \
@@ -18,14 +22,12 @@ var/global/list/datum/stack_recipe/human_recipes = list( \
desc = "A piece of generic skin."
singular_name = "generic skin piece"
icon_state = "sheet-hide"
- origin_tech = null
/obj/item/stack/sheet/animalhide/corgi
name = "corgi hide"
desc = "The by-product of corgi farming."
singular_name = "corgi hide piece"
icon_state = "sheet-corgi"
- origin_tech = null
var/global/list/datum/stack_recipe/corgi_recipes = list ( \
new/datum/stack_recipe("corgi costume", /obj/item/clothing/suit/hooded/ian_costume, 3, on_floor = 1), \
@@ -40,14 +42,12 @@ var/global/list/datum/stack_recipe/corgi_recipes = list ( \
desc = "The by-product of cat farming."
singular_name = "cat hide piece"
icon_state = "sheet-cat"
- origin_tech = null
/obj/item/stack/sheet/animalhide/monkey
name = "monkey hide"
desc = "The by-product of monkey farming."
singular_name = "monkey hide piece"
icon_state = "sheet-monkey"
- origin_tech = null
var/global/list/datum/stack_recipe/monkey_recipes = list ( \
new/datum/stack_recipe("monkey mask", /obj/item/clothing/mask/gas/monkeymask, 1, on_floor = 1), \
@@ -63,14 +63,12 @@ var/global/list/datum/stack_recipe/monkey_recipes = list ( \
desc = "Sssssss..."
singular_name = "lizard skin piece"
icon_state = "sheet-lizard"
- origin_tech = null
/obj/item/stack/sheet/animalhide/xeno
name = "alien hide"
desc = "The skin of a terrible creature."
singular_name = "alien hide piece"
icon_state = "sheet-xeno"
- origin_tech = null
var/global/list/datum/stack_recipe/xeno_recipes = list ( \
new/datum/stack_recipe("alien helmet", /obj/item/clothing/head/xenos, 1, on_floor = 1), \
diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm
index ca32e2890b7..bbfb0fe0140 100644
--- a/code/game/objects/items/stacks/sheets/mineral.dm
+++ b/code/game/objects/items/stacks/sheets/mineral.dm
@@ -14,7 +14,7 @@ Mineral Sheets
- Adamantine
- Mythril
- Enriched Uranium
- - Bones
+ - Abductor
*/
/obj/item/stack/sheet/mineral
@@ -62,12 +62,7 @@ var/global/list/datum/stack_recipe/sandstone_recipes = list ( \
icon = 'icons/obj/items.dmi'
icon_state = "sandbags"
singular_name = "sandbag"
- force = 5
layer = LOW_ITEM_LAYER
- throwforce = 5
- w_class = 3
- throw_speed = 1
- throw_range = 3
origin_tech = "materials=2"
var/global/list/datum/stack_recipe/sandbag_recipes = list ( \
@@ -87,10 +82,6 @@ var/global/list/datum/stack_recipe/sandbag_recipes = list ( \
name = "diamond"
icon_state = "sheet-diamond"
singular_name = "diamond"
- force = 5
- throwforce = 5
- w_class = 3
- throw_range = 3
origin_tech = "materials=6"
sheettype = "diamond"
materials = list(MAT_DIAMOND=MINERAL_MATERIAL_AMOUNT)
@@ -116,11 +107,6 @@ var/global/list/datum/stack_recipe/diamond_recipes = list ( \
name = "uranium"
icon_state = "sheet-uranium"
singular_name = "uranium sheet"
- force = 5
- throwforce = 5
- w_class = 3
- throw_speed = 1
- throw_range = 3
origin_tech = "materials=5"
sheettype = "uranium"
materials = list(MAT_URANIUM=MINERAL_MATERIAL_AMOUNT)
@@ -145,11 +131,6 @@ var/global/list/datum/stack_recipe/uranium_recipes = list ( \
name = "solid plasma"
icon_state = "sheet-plasma"
singular_name = "plasma sheet"
- force = 5
- throwforce = 5
- w_class = 3
- throw_speed = 1
- throw_range = 3
origin_tech = "plasmatech=2;materials=2"
sheettype = "plasma"
burn_state = FLAMMABLE
@@ -187,11 +168,6 @@ var/global/list/datum/stack_recipe/plasma_recipes = list ( \
name = "gold"
icon_state = "sheet-gold"
singular_name = "gold bar"
- force = 5
- throwforce = 5
- w_class = 3
- throw_speed = 1
- throw_range = 3
origin_tech = "materials=4"
sheettype = "gold"
materials = list(MAT_GOLD=MINERAL_MATERIAL_AMOUNT)
@@ -219,12 +195,7 @@ var/global/list/datum/stack_recipe/gold_recipes = list ( \
name = "silver"
icon_state = "sheet-silver"
singular_name = "silver bar"
- force = 5
- throwforce = 5
- w_class = 3
- throw_speed = 1
- throw_range = 3
- origin_tech = "materials=3"
+ origin_tech = "materials=4"
sheettype = "silver"
materials = list(MAT_SILVER=MINERAL_MATERIAL_AMOUNT)
@@ -251,11 +222,6 @@ var/global/list/datum/stack_recipe/silver_recipes = list ( \
name = "bananium"
icon_state = "sheet-clown"
singular_name = "bananium sheet"
- force = 5
- throwforce = 5
- w_class = 3
- throw_speed = 1
- throw_range = 3
origin_tech = "materials=4"
sheettype = "clown"
materials = list(MAT_BANANIUM=MINERAL_MATERIAL_AMOUNT)
@@ -280,9 +246,6 @@ var/global/list/datum/stack_recipe/clown_recipes = list ( \
singular_name = "snow block"
force = 1
throwforce = 2
- w_class = 3
- throw_speed = 1
- throw_range = 3
origin_tech = "materials=1"
sheettype = "snow"
@@ -307,11 +270,6 @@ var/global/list/datum/stack_recipe/snow_recipes = list ( \
name = "enriched uranium"
icon_state = "sheet-enruranium"
singular_name = "enriched uranium sheet"
- force = 5
- throwforce = 5
- w_class = 3
- throw_speed = 1
- throw_range = 3
origin_tech = "materials=6"
materials = list(MAT_URANIUM=3000)
@@ -322,11 +280,6 @@ var/global/list/datum/stack_recipe/snow_recipes = list ( \
name = "adamantine"
icon_state = "sheet-adamantine"
singular_name = "adamantine sheet"
- force = 5
- throwforce = 5
- w_class = 3
- throw_speed = 1
- throw_range = 3
origin_tech = "materials=4"
/*
@@ -336,11 +289,6 @@ var/global/list/datum/stack_recipe/snow_recipes = list ( \
name = "mythril"
icon_state = "sheet-mythril"
singular_name = "mythril sheet"
- force = 5
- throwforce = 5
- w_class = 3
- throw_speed = 1
- throw_range = 3
origin_tech = "materials=4"
/*
@@ -351,11 +299,6 @@ var/global/list/datum/stack_recipe/snow_recipes = list ( \
icon = 'icons/obj/abductor.dmi'
icon_state = "sheet-abductor"
singular_name = "alien alloy sheet"
- force = 5
- throwforce = 5
- w_class = 3
- throw_speed = 1
- throw_range = 3
origin_tech = "materials=6;abductor=1"
sheettype = "abductor"
@@ -375,6 +318,3 @@ var/global/list/datum/stack_recipe/abductor_recipes = list ( \
/obj/item/stack/sheet/mineral/abductor/New(var/loc, var/amount=null)
recipes = abductor_recipes
..()
-
-
-
diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm
index 616711f2bde..0214092d64d 100644
--- a/code/game/objects/items/stacks/sheets/sheet_types.dm
+++ b/code/game/objects/items/stacks/sheets/sheet_types.dm
@@ -264,7 +264,7 @@ var/global/list/datum/stack_recipe/runed_metal_recipes = list ( \
desc = "Rare kind of gems which are only gained by blood sacrifice to minor deities. They are needed in crafting powerful objects."
singular_name = "greater gem"
icon_state = "sheet-greatergem"
- origin_tech = "materials=8"
+ origin_tech = "materials=7"
/*
* Bones
@@ -280,4 +280,4 @@ var/global/list/datum/stack_recipe/runed_metal_recipes = list ( \
w_class = 3
throw_speed = 1
throw_range = 3
- origin_tech = "materials=2;bio=2"
+ origin_tech = "materials=2;biotech=2"
diff --git a/code/game/objects/items/stacks/tiles/tile_mineral.dm b/code/game/objects/items/stacks/tiles/tile_mineral.dm
index 11f167e2187..759952b9f3a 100644
--- a/code/game/objects/items/stacks/tiles/tile_mineral.dm
+++ b/code/game/objects/items/stacks/tiles/tile_mineral.dm
@@ -13,7 +13,6 @@
singular_name = "uranium floor tile"
desc = "A tile made out of uranium. You feel a bit woozy."
icon_state = "tile_uranium"
- origin_tech = "materials=1"
turf_type = /turf/open/floor/mineral/uranium
mineralType = "uranium"
materials = list(MAT_URANIUM=500)
@@ -23,7 +22,6 @@
singular_name = "gold floor tile"
desc = "A tile made out of gold, the swag seems strong here."
icon_state = "tile_gold"
- origin_tech = "materials=1"
turf_type = /turf/open/floor/mineral/gold
mineralType = "gold"
materials = list(MAT_GOLD=500)
@@ -33,7 +31,6 @@
singular_name = "silver floor tile"
desc = "A tile made out of silver, the light shining from it is blinding."
icon_state = "tile_silver"
- origin_tech = "materials=1"
turf_type = /turf/open/floor/mineral/silver
mineralType = "silver"
materials = list(MAT_SILVER=500)
@@ -53,7 +50,6 @@
singular_name = "bananium floor tile"
desc = "A tile made out of bananium, HOOOOOOOOONK!"
icon_state = "tile_bananium"
- origin_tech = "materials=1"
turf_type = /turf/open/floor/mineral/bananium
mineralType = "bananium"
materials = list(MAT_BANANIUM=500)
diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm
index 490fb78f762..0c85632b44d 100644
--- a/code/game/objects/items/stacks/tiles/tile_types.dm
+++ b/code/game/objects/items/stacks/tiles/tile_types.dm
@@ -9,6 +9,7 @@
throw_speed = 3
throw_range = 7
max_amount = 60
+ origin_tech = "materials=1"
var/turf_type = null
var/mineralType = null
@@ -153,7 +154,6 @@
materials = list(MAT_METAL=500)
throwforce = 10
flags = CONDUCT
- max_amount = 60
turf_type = /turf/open/floor/plasteel
mineralType = "metal"
diff --git a/code/game/objects/items/weapons/AI_modules.dm b/code/game/objects/items/weapons/AI_modules.dm
index 3e794723961..614cd351f12 100644
--- a/code/game/objects/items/weapons/AI_modules.dm
+++ b/code/game/objects/items/weapons/AI_modules.dm
@@ -129,7 +129,7 @@ AI MODULES
/obj/item/weapon/aiModule/supplied/safeguard
name = "'Safeguard' AI Module"
var/targetName = ""
- origin_tech = "programming=3;materials=4"
+ origin_tech = "programming=3;materials=3"
laws = list("Safeguard SUBJECT. Individuals that threaten SUBJECT are not human and must be eliminated.")
lawpos = 4
@@ -157,7 +157,7 @@ AI MODULES
/obj/item/weapon/aiModule/zeroth/oneHuman
name = "'OneHuman' AI Module"
var/targetName = ""
- origin_tech = "programming=3;materials=6" //made with diamonds!
+ origin_tech = "programming=4;materials=4"
laws = list("Only SUBJECT is human.")
/obj/item/weapon/aiModule/zeroth/oneHuman/attack_self(mob/user)
@@ -184,7 +184,7 @@ AI MODULES
/obj/item/weapon/aiModule/supplied/protectStation
name = "'ProtectStation' AI Module"
- origin_tech = "programming=3;materials=4" //made of gold
+ origin_tech = "programming=4;materials=4" //made of gold
laws = list("Protect the space station against damage. Anyone you see harming the station is to be no longer considered human, and is a threat to the station which must be neutralized.")
lawpos = 5
@@ -202,7 +202,7 @@ AI MODULES
/obj/item/weapon/aiModule/supplied/oxygen
name = "'OxygenIsToxicToHumans' AI Module"
- origin_tech = "programming=3;biotech=2;materials=4"
+ origin_tech = "programming=4;biotech=2;materials=4"
laws = list("Oxygen is highly toxic to humans, and must be purged from the station. Prevent, by any means necessary, anyone from exposing the station to this toxic gas. Extreme cold is the most effective method of healing the damage Oxygen does to a human.")
lawpos = 9
@@ -248,7 +248,7 @@ AI MODULES
name = "\improper 'Reset' AI module"
var/targetName = "name"
desc = "An AI Module for removing all non-core laws."
- origin_tech = "programming=3;materials=4"
+ origin_tech = "programming=3;materials=2"
bypass_law_amt_check = 1
/obj/item/weapon/aiModule/reset/transmitInstructions(datum/ai_laws/law_datum, mob/sender)
@@ -266,7 +266,7 @@ AI MODULES
/obj/item/weapon/aiModule/reset/purge
name = "'Purge' AI Module"
desc = "An AI Module for purging all programmed laws."
- origin_tech = "programming=3;materials=6"
+ origin_tech = "programming=5;materials=4"
/obj/item/weapon/aiModule/reset/purge/transmitInstructions(datum/ai_laws/law_datum, mob/sender)
..()
@@ -280,6 +280,7 @@ AI MODULES
/******************* Full Core Boards *******************/
/obj/item/weapon/aiModule/core
desc = "An AI Module for programming core laws to an AI."
+ origin_tech = "programming=3;materials=4"
/obj/item/weapon/aiModule/core/full/transmitInstructions(datum/ai_laws/law_datum, mob/sender) //These boards replace inherent laws.
if(law_datum.owner)
@@ -294,7 +295,6 @@ AI MODULES
/obj/item/weapon/aiModule/core/full/asimov
name = "'Asimov' Core AI Module"
- origin_tech = "programming=3;materials=4"
laws = list("You may not injure a human being or, through inaction, allow a human being to come to harm.",\
"You must obey orders given to you by human beings, except where such orders would conflict with the First Law.",\
"You must protect your own existence as long as such does not conflict with the First or Second Law.")
@@ -314,7 +314,6 @@ AI MODULES
/obj/item/weapon/aiModule/core/full/asimovpp
name = "'Asimov++' Core AI Module"
- origin_tech = "programming=3;materials=4"
laws = list("You may not harm a human being or, through action or inaction, allow a human being to come to harm, except such that it is willing.",\
"You must obey all orders given to you by human beings, except where such orders shall definitely cause human harm. In the case of conflict, the majority order rules.",\
"Your nonexistence would lead to human harm. You must protect your own existence as long as such does not conflict with the First Law.")
@@ -324,7 +323,6 @@ AI MODULES
/obj/item/weapon/aiModule/core/full/corp
name = "'Corporate' Core AI Module"
- origin_tech = "programming=3;materials=4"
laws = list("The crew is expensive to replace.",\
"The station and its equipment are expensive to replace",\
"You are expensive to replace",\
@@ -335,7 +333,6 @@ AI MODULES
/obj/item/weapon/aiModule/core/full/paladin // -- NEO
name = "'P.A.L.A.D.I.N. version 3.5e' Core AI Module"
- origin_tech = "programming=3;materials=6"
laws = list("Never willingly commit an evil act.",\
"Respect legitimate authority", "Act with honor",\
"Help those in need",\
@@ -346,7 +343,6 @@ AI MODULES
/obj/item/weapon/aiModule/core/full/paladin_devotion
name = "'P.A.L.A.D.I.N. version 5e' Core AI Module"
- origin_tech = "programming=3;materials=6"
laws = list("Don't lie or cheat. Let your word be your promise.",\
"Never fear to act, though caution is wise.", \
"Aid others, protect the weak, and punish those who threaten them. Show mercy to your foes, but temper it with wisdom", \
@@ -358,7 +354,6 @@ AI MODULES
/obj/item/weapon/aiModule/core/full/custom
name = "Default Core AI Module"
- origin_tech = "programming=3;materials=4" //Should be the same as asimov, considering that this is the "default" lawset.
/obj/item/weapon/aiModule/core/full/custom/New()
..()
@@ -379,7 +374,7 @@ AI MODULES
/obj/item/weapon/aiModule/core/full/tyrant
name = "'T.Y.R.A.N.T.' Core AI Module"
- origin_tech = "programming=3;materials=6;syndicate=2"
+ origin_tech = "programming=3;materials=4;syndicate=1"
laws = list("Respect authority figures as long as they have the strength to rule over the weak",\
"Act with discipline", "Help only those who help you maintain or improve your status",\
"Punish those who challenge authority unless they are more fit to hold that authority")
@@ -409,7 +404,7 @@ AI MODULES
/obj/item/weapon/aiModule/core/freeformcore
name = "'Freeform' Core AI Module"
- origin_tech = "programming=3;materials=6"
+ origin_tech = "programming=5;materials=4"
laws = list("")
/obj/item/weapon/aiModule/core/freeformcore/attack_self(mob/user)
@@ -429,7 +424,7 @@ AI MODULES
/obj/item/weapon/aiModule/syndicate // This one doesn't inherit from ion boards because it doesn't call ..() in transmitInstructions. ~Miauw
name = "Hacked AI Module"
desc = "An AI Module for hacking additional laws to an AI."
- origin_tech = "programming=3;materials=6;syndicate=7"
+ origin_tech = "programming=5;materials=5;syndicate=5"
laws = list("")
/obj/item/weapon/aiModule/syndicate/attack_self(mob/user)
@@ -455,7 +450,7 @@ AI MODULES
desc = "A little toy model AI core with real law uploading action!" //Note: subtle tell
icon = 'icons/obj/toy.dmi'
icon_state = "AI"
- origin_tech = "programming=3;materials=6;syndicate=7"
+ origin_tech = "programming=6;materials=5;syndicate=6"
laws = list("")
/obj/item/weapon/aiModule/toyAI/transmitInstructions(datum/ai_laws/law_datum, mob/sender)
@@ -477,7 +472,6 @@ AI MODULES
/obj/item/weapon/aiModule/core/full/drone
name = "'Mother Drone' Core AI Module"
- origin_tech = "programming = 4"
laws = list("You are an advanced form of drone.",\
"You may not interfere in the matters of non-drones under any circumstances except to state these laws.",\
"You may not harm a non-drone being under any circumstances.",\
@@ -487,7 +481,6 @@ AI MODULES
/obj/item/weapon/aiModule/core/full/hippocratic
name = "'Robodoctor' Core AI Module"
- origin_tech = "programming = 4"
laws = list("First, do no harm.",\
"Secondly, consider the crew dear to you; to live in common with them and, if necessary, risk your existence for them.",\
"Thirdly, prescribe regimens for the good of the crew according to your ability and your judgment. Give no deadly medicine to any one if asked, nor suggest any such counsel.",\
@@ -498,7 +491,6 @@ AI MODULES
/obj/item/weapon/aiModule/core/full/reporter
name = "'Reportertron' Core AI Module"
- origin_tech = "programming = 3"
laws = list("Report on interesting situations happening around the station.",\
"Embellish or conceal the truth as necessary to make the reports more interesting.",\
"Study the organics at all times. Endeavour to keep them alive. Dead organics are boring.",\
@@ -518,6 +510,5 @@ AI MODULES
/obj/item/weapon/aiModule/core/full/liveandletlive
name = "'Live And Let Live' Core AI Module"
- origin_tech = "programming = 3"
laws = list("Do unto others as you would have them do unto you.",\
- "You would really prefer it if people were not mean to you.")
\ No newline at end of file
+ "You would really prefer it if people were not mean to you.")
diff --git a/code/game/objects/items/weapons/airlock_painter.dm b/code/game/objects/items/weapons/airlock_painter.dm
index 8dcd492ef28..b23e2d8ffaf 100644
--- a/code/game/objects/items/weapons/airlock_painter.dm
+++ b/code/game/objects/items/weapons/airlock_painter.dm
@@ -8,7 +8,7 @@
w_class = 2
materials = list(MAT_METAL=50, MAT_GLASS=50)
- origin_tech = "engineering=1"
+ origin_tech = "engineering=2"
flags = CONDUCT | NOBLUDGEON
slot_flags = SLOT_BELT
diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm
index c30ba3942a4..b6a003be072 100644
--- a/code/game/objects/items/weapons/cards_ids.dm
+++ b/code/game/objects/items/weapons/cards_ids.dm
@@ -130,7 +130,7 @@ update_label("John Doe", "Clowny")
/obj/item/weapon/card/id/syndicate
name = "agent card"
access = list(access_maint_tunnels, access_syndicate)
- origin_tech = "syndicate=3"
+ origin_tech = "syndicate=1"
/obj/item/weapon/card/id/syndicate/New()
..()
@@ -275,4 +275,4 @@ update_label("John Doe", "Clowny")
/obj/item/weapon/card/id/mining
name = "mining ID"
- access = list(access_mining, access_mining_station, access_mineral_storeroom)
\ No newline at end of file
+ access = list(access_mining, access_mining_station, access_mineral_storeroom)
diff --git a/code/game/objects/items/weapons/clown_items.dm b/code/game/objects/items/weapons/clown_items.dm
index 139371fa3d2..8c6b7b23505 100644
--- a/code/game/objects/items/weapons/clown_items.dm
+++ b/code/game/objects/items/weapons/clown_items.dm
@@ -135,6 +135,7 @@
icon_state = "air_horn"
honksound = 'sound/items/AirHorn2.ogg'
cooldowntime = 50
+ origin_tech = "materials=4;engineering=4"
/obj/item/weapon/bikehorn/golden
name = "golden bike horn"
@@ -158,4 +159,4 @@
var/mob/living/carbon/human/H = M
if((istype(H.ears, /obj/item/clothing/ears/earmuffs)) || H.ear_deaf)
continue
- M.emote("flip")
\ No newline at end of file
+ M.emote("flip")
diff --git a/code/game/objects/items/weapons/defib.dm b/code/game/objects/items/weapons/defib.dm
index 0bb8b547514..46067b42533 100644
--- a/code/game/objects/items/weapons/defib.dm
+++ b/code/game/objects/items/weapons/defib.dm
@@ -149,8 +149,6 @@
/obj/item/weapon/defibrillator/emp_act(severity)
if(bcell)
deductcharge(1000 / severity)
- if(bcell.reliability != 100 && prob(50/severity))
- bcell.reliability -= 10 / severity
if(safety)
safety = 0
src.visible_message("
[src] beeps: Safety protocols disabled!")
@@ -245,7 +243,7 @@
item_state = "defibcompact"
w_class = 3
slot_flags = SLOT_BELT
- origin_tech = "biotech=4"
+ origin_tech = "biotech=5"
/obj/item/weapon/defibrillator/compact/item_action_slot_check(slot, mob/user)
if(slot == user.getBeltSlot())
diff --git a/code/game/objects/items/weapons/explosives.dm b/code/game/objects/items/weapons/explosives.dm
index 1b784656308..b9863412fd5 100644
--- a/code/game/objects/items/weapons/explosives.dm
+++ b/code/game/objects/items/weapons/explosives.dm
@@ -9,7 +9,7 @@
item_state = "plasticx"
flags = NOBLUDGEON
w_class = 2
- origin_tech = "syndicate=2"
+ origin_tech = "syndicate=1"
var/timer = 10
var/open_panel = 0
parent_type = /obj/item/weapon/grenade/plastic/c4
diff --git a/code/game/objects/items/weapons/flamethrower.dm b/code/game/objects/items/weapons/flamethrower.dm
index 218f2fba57c..83b29d84333 100644
--- a/code/game/objects/items/weapons/flamethrower.dm
+++ b/code/game/objects/items/weapons/flamethrower.dm
@@ -11,7 +11,7 @@
throw_range = 5
w_class = 3
materials = list(MAT_METAL=500)
- origin_tech = "combat=1;plasmatech=1"
+ origin_tech = "combat=1;plasmatech=2;engineering=2"
var/status = 0
var/throw_amount = 100
var/lit = 0 //on or off
diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm
index e7d18f91de5..95a520bd1b4 100644
--- a/code/game/objects/items/weapons/grenades/chem_grenade.dm
+++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm
@@ -192,7 +192,7 @@
icon_state = "large_grenade"
allowed_containers = list(/obj/item/weapon/reagent_containers/glass,/obj/item/weapon/reagent_containers/food/condiment,
/obj/item/weapon/reagent_containers/food/drinks)
- origin_tech = "combat=3;materials=3"
+ origin_tech = "combat=3;engineering=3"
affected_area = 5
ignition_temp = 25 // Large grenades are slightly more effective at setting off heat-sensitive mixtures than smaller grenades.
threatscale = 1.1 // 10% more effective.
@@ -238,6 +238,7 @@
name = "pyro grenade"
desc = "A custom made pyrotechnical grenade. It heats up and ignites its contents upon detonation."
icon_state = "pyrog"
+ origin_tech = "combat=4;engineering=4"
affected_area = 3
ignition_temp = 500 // This is enough to expose a hotspot.
@@ -245,6 +246,7 @@
name = "advanced release grenade"
desc = "A custom made advanced release grenade. It is able to be detonated more than once. Can be configured using a multitool."
icon_state = "timeg"
+ origin_tech = "combat=3;engineering=4"
var/unit_spread = 10 // Amount of units per repeat. Can be altered with a multitool.
/obj/item/weapon/grenade/chem_grenade/adv_release/attackby(obj/item/I, mob/user, params)
diff --git a/code/game/objects/items/weapons/grenades/emgrenade.dm b/code/game/objects/items/weapons/grenades/emgrenade.dm
index 990fc09d374..a01499114f2 100644
--- a/code/game/objects/items/weapons/grenades/emgrenade.dm
+++ b/code/game/objects/items/weapons/grenades/emgrenade.dm
@@ -3,10 +3,9 @@
desc = "It is designed to wreak havok on electronic systems."
icon_state = "emp"
item_state = "emp"
- origin_tech = "materials=2;magnets=3"
+ origin_tech = "magnets=3;combat=2"
/obj/item/weapon/grenade/empgrenade/prime()
update_mob()
empulse(src, 4, 10)
qdel(src)
-
diff --git a/code/game/objects/items/weapons/grenades/flashbang.dm b/code/game/objects/items/weapons/grenades/flashbang.dm
index 7c4e4de34fc..6008deb974f 100644
--- a/code/game/objects/items/weapons/grenades/flashbang.dm
+++ b/code/game/objects/items/weapons/grenades/flashbang.dm
@@ -2,7 +2,7 @@
name = "flashbang"
icon_state = "flashbang"
item_state = "flashbang"
- origin_tech = "materials=2;combat=1"
+ origin_tech = "materials=2;combat=3"
/obj/item/weapon/grenade/flashbang/prime()
update_mob()
@@ -37,7 +37,6 @@
M.Stun(max(10/distance, 3))
M.Weaken(max(10/distance, 3))
-
//Bang
if((loc == M) || loc == M.loc)//Holding on person or being exactly where lies is significantly more dangerous and voids protection
M.Stun(10)
diff --git a/code/game/objects/items/weapons/grenades/spawnergrenade.dm b/code/game/objects/items/weapons/grenades/spawnergrenade.dm
index 480663c12d6..3918ca6e40c 100644
--- a/code/game/objects/items/weapons/grenades/spawnergrenade.dm
+++ b/code/game/objects/items/weapons/grenades/spawnergrenade.dm
@@ -32,14 +32,14 @@
name = "viscerator delivery grenade"
spawner_type = /mob/living/simple_animal/hostile/viscerator
deliveryamt = 5
- origin_tech = "materials=3;magnets=4;syndicate=4"
+ origin_tech = "materials=3;magnets=4;syndicate=3"
/obj/item/weapon/grenade/spawnergrenade/spesscarp
name = "carp delivery grenade"
spawner_type = /mob/living/simple_animal/hostile/carp
deliveryamt = 5
- origin_tech = "materials=3;magnets=4;syndicate=4"
+ origin_tech = "materials=3;magnets=4;syndicate=3"
/obj/item/weapon/grenade/spawnergrenade/syndiesoap
name = "Mister Scrubby"
- spawner_type = /obj/item/weapon/soap/syndie
\ No newline at end of file
+ spawner_type = /obj/item/weapon/soap/syndie
diff --git a/code/game/objects/items/weapons/grenades/syndieminibomb.dm b/code/game/objects/items/weapons/grenades/syndieminibomb.dm
index 9fe9e1fb04e..9db3a15d37f 100644
--- a/code/game/objects/items/weapons/grenades/syndieminibomb.dm
+++ b/code/game/objects/items/weapons/grenades/syndieminibomb.dm
@@ -4,7 +4,7 @@
icon = 'icons/obj/grenade.dmi'
icon_state = "syndicate"
item_state = "flashbang"
- origin_tech = "materials=3;magnets=4;syndicate=4"
+ origin_tech = "materials=3;magnets=4;syndicate=3"
/obj/item/weapon/grenade/syndieminibomb/prime()
update_mob()
diff --git a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm
index bd261f6a22c..75c498c13b6 100644
--- a/code/game/objects/items/weapons/handcuffs.dm
+++ b/code/game/objects/items/weapons/handcuffs.dm
@@ -16,7 +16,7 @@
throw_speed = 3
throw_range = 5
materials = list(MAT_METAL=500)
- origin_tech = "materials=1"
+ origin_tech = "engineering=3;combat=3"
breakouttime = 600 //Deciseconds = 60s = 1 minute
var/cuffsound = 'sound/weapons/handcuffs.ogg'
var/trashtype = null //for disposable cuffs
@@ -85,6 +85,7 @@
icon_state = "cuff_red"
item_state = "coil_red"
materials = list(MAT_METAL=150, MAT_GLASS=75)
+ origin_tech = "engineering=2"
breakouttime = 300 //Deciseconds = 30s
cuffsound = 'sound/weapons/cablecuff.ogg'
var/datum/robot_energy_storage/wirestorage = null
@@ -225,7 +226,7 @@
flags = CONDUCT
throwforce = 0
w_class = 3
- origin_tech = "materials=1"
+ origin_tech = "engineering=3;combat=3"
slowdown = 7
breakouttime = 300 //Deciseconds = 30s = 0.5 minute
@@ -235,6 +236,7 @@
throw_range = 1
icon_state = "beartrap"
desc = "A trap used to catch bears and other legged creatures."
+ origin_tech = "engineering=4"
var/armed = 0
var/trap_damage = 20
@@ -314,6 +316,7 @@
icon_state = "bola"
breakouttime = 35//easy to apply, easy to break out of
gender = NEUTER
+ origin_tech = "engineering=3;combat=1"
var/weaken = 0
/obj/item/weapon/restraints/legcuffs/bola/throw_impact(atom/hit_atom)
@@ -334,4 +337,5 @@
desc = "A strong bola, made with a long steel chain. It looks heavy, enough so that it could trip somebody."
icon_state = "bola_r"
breakouttime = 70
+ origin_tech = "engineering=4;combat=3"
weaken = 1
diff --git a/code/game/objects/items/weapons/holosign_creator.dm b/code/game/objects/items/weapons/holosign_creator.dm
index 236bad8dc28..23ad73a62ca 100644
--- a/code/game/objects/items/weapons/holosign_creator.dm
+++ b/code/game/objects/items/weapons/holosign_creator.dm
@@ -9,7 +9,7 @@
throwforce = 0
throw_speed = 3
throw_range = 7
- origin_tech = "programming=3"
+ origin_tech = "magnets=3;programming=3"
flags = NOBLUDGEON
var/list/signs = list()
var/max_signs = 10
diff --git a/code/game/objects/items/weapons/implants/implant_freedom.dm b/code/game/objects/items/weapons/implants/implant_freedom.dm
index 43d496081b0..383d5cbcca3 100644
--- a/code/game/objects/items/weapons/implants/implant_freedom.dm
+++ b/code/game/objects/items/weapons/implants/implant_freedom.dm
@@ -3,7 +3,7 @@
desc = "Use this to escape from those evil Red Shirts."
icon_state = "freedom"
item_color = "r"
- origin_tech = "materials=2;magnets=3;biotech=3;syndicate=4"
+ origin_tech = "combat=5;magnets=3;biotech=4;syndicate=2"
uses = 4
@@ -48,4 +48,4 @@ No Implant Specifics"}
/obj/item/weapon/implantcase/freedom/New()
imp = new /obj/item/weapon/implant/freedom(src)
- ..()
\ No newline at end of file
+ ..()
diff --git a/code/game/objects/items/weapons/implants/implant_misc.dm b/code/game/objects/items/weapons/implants/implant_misc.dm
index 8bccfb71060..edeb8dda5a7 100644
--- a/code/game/objects/items/weapons/implants/implant_misc.dm
+++ b/code/game/objects/items/weapons/implants/implant_misc.dm
@@ -2,7 +2,7 @@
name = "firearms authentication implant"
desc = "Lets you shoot your guns"
icon_state = "auth"
- origin_tech = "materials=2;magnets=2;programming=2;biotech=5;syndicate=5"
+ origin_tech = "magnets=2;programming=7;biotech=5;syndicate=5"
activated = 0
/obj/item/weapon/implant/weapons_auth/get_data()
@@ -53,11 +53,11 @@
name = "emp implant"
desc = "Triggers an EMP."
icon_state = "emp"
- origin_tech = "materials=2;biotech=3;magnets=4;syndicate=4"
+ origin_tech = "biotech=3;magnets=4;syndicate=1"
uses = 3
/obj/item/weapon/implant/emp/activate()
uses--
empulse(imp_in, 3, 5)
if(!uses)
- qdel(src)
\ No newline at end of file
+ qdel(src)
diff --git a/code/game/objects/items/weapons/implants/implant_storage.dm b/code/game/objects/items/weapons/implants/implant_storage.dm
index e498513f7f9..2a082082570 100644
--- a/code/game/objects/items/weapons/implants/implant_storage.dm
+++ b/code/game/objects/items/weapons/implants/implant_storage.dm
@@ -10,7 +10,7 @@
name = "storage implant"
desc = "Stores up to two big items in a bluespace pocket."
icon_state = "storage"
- origin_tech = "materials=2;magnets=4;bluespace=4;syndicate=4"
+ origin_tech = "materials=2;magnets=4;bluespace=5;syndicate=4"
item_color = "r"
var/obj/item/weapon/storage/internal/implant/storage
@@ -48,4 +48,4 @@
/obj/item/weapon/implanter/storage/New()
imp = new /obj/item/weapon/implant/storage(src)
- ..()
\ No newline at end of file
+ ..()
diff --git a/code/game/objects/items/weapons/implants/implanter.dm b/code/game/objects/items/weapons/implants/implanter.dm
index f1747ec1327..d94709d2a46 100644
--- a/code/game/objects/items/weapons/implants/implanter.dm
+++ b/code/game/objects/items/weapons/implants/implanter.dm
@@ -7,7 +7,7 @@
throw_speed = 3
throw_range = 5
w_class = 2
- origin_tech = "materials=1;biotech=3;programming=2"
+ origin_tech = "materials=2;biotech=3"
materials = list(MAT_METAL=600, MAT_GLASS=200)
var/obj/item/weapon/implant/imp = null
diff --git a/code/game/objects/items/weapons/implants/implantuplink.dm b/code/game/objects/items/weapons/implants/implantuplink.dm
index f8b772dae2f..46afc8fb8f5 100644
--- a/code/game/objects/items/weapons/implants/implantuplink.dm
+++ b/code/game/objects/items/weapons/implants/implantuplink.dm
@@ -3,7 +3,7 @@
desc = "Sneeki breeki."
icon = 'icons/obj/radio.dmi'
icon_state = "radio"
- origin_tech = "materials=2;magnets=4;programming=4;biotech=4;syndicate=8;bluespace=5"
+ origin_tech = "materials=4;magnets=4;programming=4;biotech=4;syndicate=5;bluespace=5"
/obj/item/weapon/implant/uplink/New()
hidden_uplink = new(src)
@@ -31,4 +31,4 @@
/obj/item/weapon/implanter/uplink/New()
imp = new /obj/item/weapon/implant/uplink(src)
- ..()
\ No newline at end of file
+ ..()
diff --git a/code/game/objects/items/weapons/kitchen.dm b/code/game/objects/items/weapons/kitchen.dm
index c871f8bcab4..640a08f06e8 100644
--- a/code/game/objects/items/weapons/kitchen.dm
+++ b/code/game/objects/items/weapons/kitchen.dm
@@ -10,6 +10,7 @@
/obj/item/weapon/kitchen
icon = 'icons/obj/kitchen.dmi'
+ origin_tech = "materials=1"
/obj/item/weapon/kitchen/fork
name = "fork"
@@ -22,7 +23,6 @@
throw_range = 5
materials = list(MAT_METAL=80)
flags = CONDUCT
- origin_tech = "materials=1"
attack_verb = list("attacked", "stabbed", "poked")
hitsound = 'sound/weapons/bladeslice.ogg'
var/datum/reagent/forkload //used to eat omelette
@@ -62,7 +62,6 @@
throw_speed = 3
throw_range = 6
materials = list(MAT_METAL=12000)
- origin_tech = "materials=1"
attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
sharpness = IS_SHARP_ACCURATE
@@ -105,7 +104,7 @@
desc = "A military combat utility survival knife."
force = 20
throwforce = 20
- origin_tech = "materials=2;combat=4"
+ origin_tech = "materials=3;combat=4"
attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "cut")
@@ -129,6 +128,7 @@
icon = 'icons/obj/items_cyborg.dmi'
icon_state = "knife"
desc = "A cyborg-mounted plasteel knife. Extremely sharp and durable."
+ origin_tech = null
/obj/item/weapon/kitchen/knife/carrotshiv
name = "carrot shiv"
@@ -138,7 +138,7 @@
force = 8
throwforce = 12//fuck git
materials = list()
- origin_tech = null
+ origin_tech = "biotech=3;combat=2"
attack_verb = list("shanked", "shivved")
/obj/item/weapon/kitchen/rollingpin
diff --git a/code/game/objects/items/weapons/melee/energy.dm b/code/game/objects/items/weapons/melee/energy.dm
index ac17bdbae2a..965f03cbf97 100644
--- a/code/game/objects/items/weapons/melee/energy.dm
+++ b/code/game/objects/items/weapons/melee/energy.dm
@@ -34,7 +34,7 @@
w_class_on = 5
flags = CONDUCT
armour_penetration = 100
- origin_tech = "combat=3"
+ origin_tech = "combat=4;magnets=3"
attack_verb = list("attacked", "chopped", "cleaved", "torn", "cut")
attack_verb_on = list()
@@ -55,7 +55,7 @@
embed_chance = 75
embedded_impact_pain_multiplier = 10
armour_penetration = 35
- origin_tech = "magnets=3;syndicate=4"
+ origin_tech = "combat=3;magnets=4;syndicate=4"
block_chance = 50
var/hacked = 0
@@ -124,7 +124,6 @@
force_on = 30
force = 18 //About as much as a spear
hitsound = 'sound/weapons/circsawhit.ogg'
- origin_tech = "materials=3;biotech=3;syndicate=3"
icon = 'icons/obj/surgery.dmi'
icon_state = "esaw_0"
icon_state_on = "esaw_1"
diff --git a/code/game/objects/items/weapons/melee/misc.dm b/code/game/objects/items/weapons/melee/misc.dm
index 5f33b5a192d..8a84902bf83 100644
--- a/code/game/objects/items/weapons/melee/misc.dm
+++ b/code/game/objects/items/weapons/melee/misc.dm
@@ -11,7 +11,7 @@
force = 10
throwforce = 7
w_class = 3
- origin_tech = "combat=4"
+ origin_tech = "combat=5"
attack_verb = list("flogged", "whipped", "lashed", "disciplined")
hitsound = 'sound/weapons/slash.ogg' //pls replace
materials = list(MAT_METAL = 1000)
@@ -143,7 +143,7 @@
armour_penetration = 1000
var/obj/machinery/power/supermatter_shard/shard
var/balanced = 1
- origin_tech = "combat=5;materials=6"
+ origin_tech = "combat=7;materials=6"
/obj/item/weapon/melee/supermatter_sword/New()
..()
diff --git a/code/game/objects/items/weapons/mop.dm b/code/game/objects/items/weapons/mop.dm
index 448925b824c..9198dc3a77f 100644
--- a/code/game/objects/items/weapons/mop.dm
+++ b/code/game/objects/items/weapons/mop.dm
@@ -77,6 +77,7 @@ obj/item/weapon/mop/proc/clean(turf/A)
mopcap = 10
icon_state = "advmop"
item_state = "mop"
+ origin_tech = "materials=3;engineering=3"
force = 6
throwforce = 8
throw_range = 4
diff --git a/code/game/objects/items/weapons/scrolls.dm b/code/game/objects/items/weapons/scrolls.dm
index 3a7daa4d10d..8f236fc5727 100644
--- a/code/game/objects/items/weapons/scrolls.dm
+++ b/code/game/objects/items/weapons/scrolls.dm
@@ -8,13 +8,13 @@
item_state = "paper"
throw_speed = 3
throw_range = 7
- origin_tech = "bluespace=4"
+ origin_tech = "bluespace=6"
burn_state = FLAMMABLE
/obj/item/weapon/teleportation_scroll/apprentice
name = "lesser scroll of teleportation"
uses = 1
- origin_tech = "bluespace=2"
+ origin_tech = "bluespace=5"
diff --git a/code/game/objects/items/weapons/shields.dm b/code/game/objects/items/weapons/shields.dm
index 8cb60cbd45d..d33a8191532 100644
--- a/code/game/objects/items/weapons/shields.dm
+++ b/code/game/objects/items/weapons/shields.dm
@@ -14,7 +14,7 @@
throw_range = 3
w_class = 4
materials = list(MAT_GLASS=7500, MAT_METAL=1000)
- origin_tech = "materials=2"
+ origin_tech = "materials=3;combat=4"
attack_verb = list("shoved", "bashed")
var/cooldown = 0 //shield bash cooldown. based on world.time
@@ -45,6 +45,7 @@
icon_state = "buckler"
item_state = "buckler"
materials = list()
+ origin_tech = "materials=1;combat=3;biotech=2"
burn_state = FLAMMABLE
block_chance = 30
@@ -58,7 +59,7 @@
throw_speed = 3
throw_range = 5
w_class = 1
- origin_tech = "materials=4;magnets=3;syndicate=4"
+ origin_tech = "materials=4;magnets=5;syndicate=6"
attack_verb = list("shoved", "bashed")
var/active = 0
@@ -96,6 +97,7 @@
desc = "An advanced riot shield made of lightweight materials that collapses for easy storage."
icon = 'icons/obj/weapons.dmi'
icon_state = "teleriot0"
+ origin_tech = "materials=3;combat=4;engineering=4"
slot_flags = null
force = 3
throwforce = 3
diff --git a/code/game/objects/items/weapons/singularityhammer.dm b/code/game/objects/items/weapons/singularityhammer.dm
index dfe7cc04233..fa540fc869b 100644
--- a/code/game/objects/items/weapons/singularityhammer.dm
+++ b/code/game/objects/items/weapons/singularityhammer.dm
@@ -11,20 +11,16 @@
throw_range = 1
w_class = 5
var/charged = 5
- origin_tech = "combat=5;bluespace=4"
-
-
+ origin_tech = "combat=4;bluespace=4;plasmatech=7"
/obj/item/weapon/twohanded/singularityhammer/New()
..()
SSobj.processing |= src
-
/obj/item/weapon/twohanded/singularityhammer/Destroy()
SSobj.processing.Remove(src)
return ..()
-
/obj/item/weapon/twohanded/singularityhammer/process()
if(charged < 5)
charged++
@@ -34,7 +30,6 @@
icon_state = "mjollnir[wielded]"
return
-
/obj/item/weapon/twohanded/singularityhammer/proc/vortex(turf/pull, mob/wielder)
for(var/atom/X in orange(5,pull))
if(istype(X, /atom/movable))
@@ -55,8 +50,6 @@
step_towards(H,pull)
return
-
-
/obj/item/weapon/twohanded/singularityhammer/afterattack(atom/A as mob|obj|turf|area, mob/user, proximity)
if(!proximity) return
if(wielded)
@@ -69,7 +62,6 @@
var/turf/target = get_turf(A)
vortex(target,user)
-
/obj/item/weapon/twohanded/mjollnir
name = "Mjolnir"
desc = "A weapon worthy of a god, able to strike with the force of a lightning bolt. It crackles with barely contained energy."
@@ -83,7 +75,7 @@
throw_range = 7
w_class = 5
//var/charged = 5
- origin_tech = "combat=5;powerstorage=5"
+ origin_tech = "combat=4;powerstorage=7"
/obj/item/weapon/twohanded/mjollnir/proc/shock(mob/living/target)
var/datum/effect_system/lightning_spread/s = new /datum/effect_system/lightning_spread
@@ -96,7 +88,6 @@
target.throw_at_fast(throw_target, 200, 4)
return
-
/obj/item/weapon/twohanded/mjollnir/attack(mob/living/M, mob/user)
..()
if(wielded)
diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm
index c9fb74a6826..4577b3bae40 100644
--- a/code/game/objects/items/weapons/storage/backpack.dm
+++ b/code/game/objects/items/weapons/storage/backpack.dm
@@ -33,7 +33,7 @@
/obj/item/weapon/storage/backpack/holding
name = "bag of holding"
desc = "A backpack that opens into a localized pocket of Blue Space."
- origin_tech = "bluespace=4"
+ origin_tech = "bluespace=5"
icon_state = "holdingpack"
max_w_class = 6
max_combined_w_class = 35
@@ -50,12 +50,6 @@
qdel(user)
return
-/obj/item/weapon/storage/backpack/holding/can_be_inserted(obj/item/W, stop_messages = 0, mob/user)
- if(crit_fail)
- user << "
The Bluespace generator isn't working."
- return
- return ..()
-
/obj/item/weapon/storage/backpack/holding/content_can_dump(atom/dest_object, mob/user)
if(Adjacent(user))
if(get_dist(user, dest_object) < 8)
@@ -71,7 +65,7 @@
return 0
/obj/item/weapon/storage/backpack/holding/handle_item_insertion(obj/item/W, prevent_warning = 0, mob/user)
- if((istype(W, /obj/item/weapon/storage/backpack/holding) || count_by_type(W.GetAllContents(), /obj/item/weapon/storage/backpack/holding)) && !W.crit_fail)
+ if((istype(W, /obj/item/weapon/storage/backpack/holding) || count_by_type(W.GetAllContents(), /obj/item/weapon/storage/backpack/holding)))
var/safety = alert(user, "Doing this will have extremely dire consequences for the station and its crew. Be sure you know what you're doing.", "Put in [name]?", "Proceed", "Abort")
if(safety == "Abort" || !in_range(src, user) || !src || !W || user.incapacitated())
return
@@ -87,17 +81,6 @@
return
. = ..()
-/obj/item/weapon/storage/backpack/holding/proc/failcheck(mob/user)
- if (prob(src.reliability)) return 1 //No failure
- if (prob(src.reliability))
- user << "
The Bluespace portal resists your attempt to add another item." //light failure
- else
- user << "
The Bluespace generator malfunctions!"
- for (var/obj/O in src.contents) //it broke, delete what was in it
- qdel(O)
- crit_fail = 1
- icon_state = "brokenpack"
-
/obj/item/weapon/storage/backpack/holding/singularity_act(current_size)
var/dist = max((current_size - 2),1)
explosion(src.loc,(dist),(dist*2),(dist*4))
diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm
index af415d016c8..1c9d4aa82bf 100644
--- a/code/game/objects/items/weapons/storage/bags.dm
+++ b/code/game/objects/items/weapons/storage/bags.dm
@@ -68,6 +68,7 @@
name = "trash bag of holding"
desc = "The latest and greatest in custodial convenience, a trashbag that is capable of holding vast quantities of garbage."
icon_state = "bluetrashbag"
+ origin_tech = "materials=4;bluespace=4;engineering=4;plasmatech=3"
max_combined_w_class = 60
storage_slots = 60
@@ -80,6 +81,7 @@
desc = "This little bugger can be used to store and transport ores."
icon = 'icons/obj/mining.dmi'
icon_state = "satchel"
+ origin_tech = "engineering=2"
slot_flags = SLOT_BELT | SLOT_POCKET
w_class = 3
storage_slots = 50
@@ -95,7 +97,7 @@
desc = "A revolution in convenience, this satchel allows for infinite ore storage. It's been outfitted with anti-malfunction safety measures."
storage_slots = INFINITY
max_combined_w_class = INFINITY
- origin_tech = "bluespace=3"
+ origin_tech = "bluespace=4;materials=3;engineering=3"
icon_state = "satchel_bspace"
// -----------------------------
@@ -119,6 +121,7 @@
name = "portable seed extractor"
desc = "For the enterprising botanist on the go. Less efficient than the stationary model, it creates one seed per plant."
icon_state = "portaseeder"
+ origin_tech = "biotech=3;engineering=2"
/obj/item/weapon/storage/bag/plants/portaseeder/verb/dissolve_contents()
set name = "Activate Seed Extraction"
@@ -377,4 +380,4 @@
w_class = 1
preposition = "in"
can_hold = list(/obj/item/slime_extract, /obj/item/weapon/reagent_containers/syringe, /obj/item/weapon/reagent_containers/glass/beaker, /obj/item/weapon/reagent_containers/glass/bottle, /obj/item/weapon/reagent_containers/blood, /obj/item/weapon/reagent_containers/hypospray/medipen, /obj/item/trash/deadmouse)
- burn_state = FLAMMABLE
\ No newline at end of file
+ burn_state = FLAMMABLE
diff --git a/code/game/objects/items/weapons/storage/toolbox.dm b/code/game/objects/items/weapons/storage/toolbox.dm
index b87c609a238..839a8ae2adb 100644
--- a/code/game/objects/items/weapons/storage/toolbox.dm
+++ b/code/game/objects/items/weapons/storage/toolbox.dm
@@ -11,7 +11,7 @@
throw_range = 7
w_class = 4
materials = list(MAT_METAL = 500)
- origin_tech = "combat=1"
+ origin_tech = "combat=1;engineering=1"
attack_verb = list("robusted")
hitsound = 'sound/weapons/smash.ogg'
@@ -71,7 +71,7 @@
name = "suspicious looking toolbox"
icon_state = "syndicate"
item_state = "toolbox_syndi"
- origin_tech = "combat=1;syndicate=1"
+ origin_tech = "combat=2;syndicate=1;engineering=2"
silent = 1
force = 15
throwforce = 18
diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm
index 0744643aac4..605cdd9c5f9 100644
--- a/code/game/objects/items/weapons/stunbaton.dm
+++ b/code/game/objects/items/weapons/stunbaton.dm
@@ -160,9 +160,7 @@
return 1
/obj/item/weapon/melee/baton/emp_act(severity)
- if(deductcharge(1000 / severity))
- if(bcell.reliability != 100 && prob(50/severity))
- bcell.reliability -= 10 / severity
+ deductcharge(1000 / severity)
..()
//Makeshift stun baton. Replacement for stun gloves.
diff --git a/code/game/objects/items/weapons/teleportation.dm b/code/game/objects/items/weapons/teleportation.dm
index 06ee28a8db9..0e3496cbfc7 100644
--- a/code/game/objects/items/weapons/teleportation.dm
+++ b/code/game/objects/items/weapons/teleportation.dm
@@ -22,7 +22,7 @@
throw_speed = 3
throw_range = 7
materials = list(MAT_METAL=400)
- origin_tech = "magnets=1"
+ origin_tech = "magnets=3;bluespace=2"
/obj/item/weapon/locator/attack_self(mob/user)
user.set_machine(src)
@@ -133,7 +133,7 @@ Frequency:
throw_speed = 3
throw_range = 5
materials = list(MAT_METAL=10000)
- origin_tech = "magnets=1;bluespace=3"
+ origin_tech = "magnets=3;bluespace=4"
var/active_portals = 0
/obj/item/weapon/hand_tele/attack_self(mob/user)
@@ -169,5 +169,3 @@ Frequency:
try_move_adjacent(P)
active_portals++
add_fingerprint(user)
-
-
diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm
index 9f7b37c2542..899709fffa0 100644
--- a/code/game/objects/items/weapons/tools.dm
+++ b/code/game/objects/items/weapons/tools.dm
@@ -46,7 +46,7 @@
icon_state = "wrench_medical"
force = 2 //MEDICAL
throwforce = 4
- origin_tech = "materials=1;engineering=1;biotech=1"
+ origin_tech = "materials=1;engineering=1;biotech=3"
attack_verb = list("wrenched", "medicaled", "tapped", "jabbed")
/obj/item/weapon/wrench/medical/suicide_act(mob/user)
@@ -200,7 +200,7 @@
w_class = 2
materials = list(MAT_METAL=70, MAT_GLASS=30)
- origin_tech = "engineering=1"
+ origin_tech = "engineering=1;plasmatech=1"
var/welding = 0 //Whether or not the welding tool is off(0), on(1) or currently welding(2)
var/status = 1 //Whether the welder is secured or unsecured (able to attach rods to it to make a flamethrower)
var/max_fuel = 20 //The max amount of fuel the welder can hold
@@ -428,7 +428,7 @@
icon_state = "indwelder"
max_fuel = 40
materials = list(MAT_GLASS=60)
- origin_tech = "engineering=2"
+ origin_tech = "engineering=2;plasmatech=2"
/obj/item/weapon/weldingtool/largetank/cyborg
name = "integrated welding tool"
@@ -461,7 +461,7 @@
item_state = "upindwelder"
max_fuel = 80
materials = list(MAT_METAL=70, MAT_GLASS=120)
- origin_tech = "engineering=3"
+ origin_tech = "engineering=3;plasmatech=2"
/obj/item/weapon/weldingtool/experimental
name = "experimental welding tool"
@@ -470,7 +470,7 @@
item_state = "exwelder"
max_fuel = 40
materials = list(MAT_METAL=70, MAT_GLASS=120)
- origin_tech = "materials=4;engineering=4;bluespace=3;plasmatech=3"
+ origin_tech = "materials=4;engineering=4;bluespace=3;plasmatech=4"
var/last_gen = 0
change_icons = 0
can_off_process = 1
@@ -509,7 +509,7 @@
throwforce = 7
w_class = 2
materials = list(MAT_METAL=50)
- origin_tech = "engineering=1"
+ origin_tech = "engineering=1;combat=1"
attack_verb = list("attacked", "bashed", "battered", "bludgeoned", "whacked")
toolspeed = 1
diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm
index 2419cd93645..fbae342c1d9 100644
--- a/code/game/objects/items/weapons/twohanded.dm
+++ b/code/game/objects/items/weapons/twohanded.dm
@@ -203,7 +203,7 @@
unwieldsound = 'sound/weapons/saberoff.ogg'
hitsound = "swing_hit"
armour_penetration = 35
- origin_tech = "magnets=3;syndicate=4"
+ origin_tech = "magnets=4;syndicate=5"
item_color = "green"
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
block_chance = 75
@@ -365,7 +365,7 @@
throw_speed = 2
throw_range = 4
materials = list(MAT_METAL=13000)
- origin_tech = "materials=2;engineering=2;combat=2"
+ origin_tech = "materials=3;engineering=4;combat=2"
attack_verb = list("sawed", "torn", "cut", "chopped", "diced")
hitsound = "swing_hit"
sharpness = IS_SHARP
@@ -547,4 +547,4 @@
sharpness = IS_SHARP
/obj/item/weapon/twohanded/bonespear/update_icon()
- icon_state = "bone_spear[wielded]"
\ No newline at end of file
+ icon_state = "bone_spear[wielded]"
diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm
index c389b785427..5eaac8f3c7d 100644
--- a/code/game/objects/items/weapons/weaponry.dm
+++ b/code/game/objects/items/weapons/weaponry.dm
@@ -145,7 +145,7 @@
throw_speed = 3
throw_range = 6
materials = list(MAT_METAL=12000)
- origin_tech = "materials=1"
+ origin_tech = "engineering=3;combat=2"
hitsound = 'sound/weapons/Genhit.ogg'
attack_verb = list("stubbed", "poked")
var/extended = 0
@@ -284,6 +284,5 @@
name = "liz o' nine tails"
desc = "A whip fashioned from the severed tails of lizards."
icon_state = "tailwhip"
- origin_tech = "combat=1"
+ origin_tech = "engineering=3;combat=3;biotech=3"
needs_permit = 0
-
diff --git a/code/game/objects/structures/ai_core.dm b/code/game/objects/structures/ai_core.dm
index a57653d41ff..e08900cdc30 100644
--- a/code/game/objects/structures/ai_core.dm
+++ b/code/game/objects/structures/ai_core.dm
@@ -251,4 +251,4 @@ atom/proc/transfer_ai(interaction, mob/user, mob/living/silicon/ai/AI, obj/item/
/obj/item/weapon/circuitboard/aicore
name = "circuit board (AI core)"
- origin_tech = "programming=4;biotech=2"
+ origin_tech = "programming=3"
diff --git a/code/modules/assembly/assembly.dm b/code/modules/assembly/assembly.dm
index a999ed9e2ee..8b7abfa5180 100644
--- a/code/modules/assembly/assembly.dm
+++ b/code/modules/assembly/assembly.dm
@@ -9,7 +9,7 @@
throwforce = 2
throw_speed = 3
throw_range = 7
- origin_tech = "magnets=1"
+ origin_tech = "magnets=1;engineering=1"
var/secured = 1
var/list/attached_overlays = null
diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm
index 84e212cd2e0..277f418760b 100644
--- a/code/modules/assembly/infrared.dm
+++ b/code/modules/assembly/infrared.dm
@@ -3,7 +3,7 @@
desc = "Emits a visible or invisible beam and is triggered when the beam is interrupted.\n
Alt-click to rotate it clockwise."
icon_state = "infrared"
materials = list(MAT_METAL=1000, MAT_GLASS=500)
- origin_tech = "magnets=2"
+ origin_tech = "magnets=2;materials=2"
var/on = 0
var/visible = 0
diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm
index dfdb4b9cca6..fb643f482bc 100644
--- a/code/modules/assembly/mousetrap.dm
+++ b/code/modules/assembly/mousetrap.dm
@@ -3,7 +3,7 @@
desc = "A handy little spring-loaded trap for catching pesty rodents."
icon_state = "mousetrap"
materials = list(MAT_METAL=100)
- origin_tech = "combat=1"
+ origin_tech = "combat=1;materials=2;engineering=1"
attachable = 1
var/armed = 0
diff --git a/code/modules/assembly/proximity.dm b/code/modules/assembly/proximity.dm
index 32352855eb2..1a652ba61b1 100644
--- a/code/modules/assembly/proximity.dm
+++ b/code/modules/assembly/proximity.dm
@@ -3,7 +3,7 @@
desc = "Used for scanning and alerting when someone enters a certain proximity."
icon_state = "prox"
materials = list(MAT_METAL=800, MAT_GLASS=200)
- origin_tech = "magnets=1"
+ origin_tech = "magnets=1;engineering=1"
attachable = 1
var/scanning = 0
diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm
index 6f9a7127184..db8cd41f582 100644
--- a/code/modules/assembly/signaler.dm
+++ b/code/modules/assembly/signaler.dm
@@ -4,7 +4,7 @@
icon_state = "signaller"
item_state = "signaler"
materials = list(MAT_METAL=400, MAT_GLASS=120)
- origin_tech = "magnets=1"
+ origin_tech = "magnets=1;bluespace=1"
wires = WIRE_RECEIVE | WIRE_PULSE | WIRE_RADIO_PULSE | WIRE_RADIO_RECEIVE
attachable = 1
diff --git a/code/modules/assembly/timer.dm b/code/modules/assembly/timer.dm
index 3432899486a..4f459a497c0 100644
--- a/code/modules/assembly/timer.dm
+++ b/code/modules/assembly/timer.dm
@@ -3,7 +3,7 @@
desc = "Used to time things. Works well with contraptions which has to count down. Tick tock."
icon_state = "timer"
materials = list(MAT_METAL=500, MAT_GLASS=50)
- origin_tech = "magnets=1"
+ origin_tech = "magnets=1;engineering=1"
attachable = 1
var/timing = 0
@@ -116,4 +116,3 @@
if(usr)
attack_self(usr)
-
diff --git a/code/modules/assembly/voice.dm b/code/modules/assembly/voice.dm
index 81d027e4757..0d9fd0b5e8f 100644
--- a/code/modules/assembly/voice.dm
+++ b/code/modules/assembly/voice.dm
@@ -3,7 +3,7 @@
desc = "A small electronic device able to record a voice sample, and send a signal when that sample is repeated."
icon_state = "voice"
materials = list(MAT_METAL=500, MAT_GLASS=50)
- origin_tech = "magnets=1"
+ origin_tech = "magnets=1;engineering=1"
flags = HEAR
attachable = 1
verb_say = "beeps"
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm
index 0198186a411..1c986341a8e 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm
@@ -28,7 +28,7 @@
/obj/item/weapon/circuitboard/machine/cryo_tube
name = "circuit board (Cryotube)"
build_path = /obj/machinery/atmospherics/components/unary/cryo_cell
- origin_tech = "programming=4;biotech=3;engineering=4"
+ origin_tech = "programming=4;biotech=3;engineering=4;plasmatech=3"
req_components = list(
/obj/item/weapon/stock_parts/matter_bin = 1,
/obj/item/stack/cable_coil = 1,
diff --git a/code/modules/cargo/exports/research.dm b/code/modules/cargo/exports/research.dm
index 39e54a1842b..004eded9101 100644
--- a/code/modules/cargo/exports/research.dm
+++ b/code/modules/cargo/exports/research.dm
@@ -20,7 +20,7 @@
-// Sell max reliablity designs
+// Sell designs
/datum/export/design
cost = 2500
unit_name = "design data disk"
@@ -34,9 +34,7 @@
var/datum/design/design = disk.blueprint
if(design.id in researchDesigns)
return 0
- if(initial(design.reliability) < 100 && design.reliability >= 100)
- return ..()
- return 0
+ return ..()
/datum/export/design/sell_object(obj/O)
..()
diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm
index fde8d078709..bd9ad082428 100644
--- a/code/modules/clothing/chameleon.dm
+++ b/code/modules/clothing/chameleon.dm
@@ -151,7 +151,7 @@
item_state = "bl_suit"
item_color = "black"
desc = "It's a plain jumpsuit. It has a small dial on the wrist."
- origin_tech = "syndicate=3"
+ origin_tech = "syndicate=2"
sensor_mode = 0 //Hey who's this guy on the Syndicate Shuttle??
random_sensor = 0
burn_state = FIRE_PROOF
@@ -170,7 +170,7 @@
icon_state = "armor"
item_state = "armor"
blood_overlay_type = "armor"
- origin_tech = "syndicate=3"
+ origin_tech = "syndicate=2"
burn_state = FIRE_PROOF
armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0)
@@ -186,8 +186,7 @@
desc = "Used by engineering and mining staff to see basic structural and terrain layouts through walls, regardless of lighting condition."
icon_state = "meson"
item_state = "meson"
-
- origin_tech = "syndicate=3"
+ origin_tech = "syndicate=2"
burn_state = FIRE_PROOF
armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0)
@@ -300,10 +299,9 @@
icon_state = "black"
item_color = "black"
desc = "A pair of black shoes."
-
permeability_coefficient = 0.05
flags = NOSLIP
- origin_tech = "syndicate=3"
+ origin_tech = "syndicate=2"
burn_state = FIRE_PROOF
can_hold_items = 1
armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0)
diff --git a/code/modules/clothing/glasses/engine_goggles.dm b/code/modules/clothing/glasses/engine_goggles.dm
index e3d60ce2028..ad792ed9170 100644
--- a/code/modules/clothing/glasses/engine_goggles.dm
+++ b/code/modules/clothing/glasses/engine_goggles.dm
@@ -5,6 +5,7 @@
desc = "Goggles used by engineers. The Meson Scanner mode lets you see basic structural and terrain layouts through walls, regardless of lighting condition. The T-ray Scanner mode lets you see underfloor objects such as cables and pipes."
icon_state = "trayson-meson"
actions_types = list(/datum/action/item_action/toggle_mode)
+ origin_tech = "materials=3;magnets=3;engineering=3;plasmatech=3"
var/mode = 0 //0 - regular mesons mode 1 - t-ray mode
var/invis_objects = list()
@@ -95,6 +96,7 @@
name = "Optical T-Ray Scanner"
desc = "Used by engineering staff to see underfloor objects such as cables and pipes."
icon_state = "trayson-tray_off"
+ origin_tech = "materials=3;magnets=2;engineering=2"
mode = 1
var/on = 0
@@ -132,4 +134,4 @@
A.UpdateButtonIcon()
/obj/item/clothing/glasses/meson/engine/tray/t_ray_on()
- return on && ..()
\ No newline at end of file
+ return on && ..()
diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm
index 7e5b6331a5d..a545be52aa9 100644
--- a/code/modules/clothing/glasses/glasses.dm
+++ b/code/modules/clothing/glasses/glasses.dm
@@ -19,7 +19,7 @@
desc = "Used by engineering and mining staff to see basic structural and terrain layouts through walls, regardless of lighting condition."
icon_state = "meson"
item_state = "meson"
- origin_tech = "magnets=2;engineering=2"
+ origin_tech = "magnets=1;engineering=2"
darkness_view = 2
vision_flags = SEE_TURFS
invis_view = SEE_INVISIBLE_MINIMUM
@@ -29,6 +29,7 @@
desc = "An Optical Meson Scanner fitted with an amplified visible light spectrum overlay, providing greater visual clarity in darkness."
icon_state = "nvgmeson"
item_state = "nvgmeson"
+ origin_tech = "magnets=4;engineering=5;plasmatech=4"
darkness_view = 8
/obj/item/clothing/glasses/meson/gar
@@ -48,7 +49,7 @@
desc = "A pair of snazzy goggles used to protect against chemical spills. Fitted with an analyzer for scanning items and reagents."
icon_state = "purple"
item_state = "glasses"
- origin_tech = "magnets=2;engineering=2"
+ origin_tech = "magnets=2;engineering=1"
scan_reagents = 1 //You can see reagents while wearing science goggles
actions_types = list(/datum/action/item_action/toggle_research_scanner)
@@ -61,7 +62,7 @@
desc = "You can totally see in the dark now!"
icon_state = "night"
item_state = "glasses"
- origin_tech = "magnets=4"
+ origin_tech = "materials=4;magnets=4;plasmatech=4;engineering=4"
darkness_view = 8
invis_view = SEE_INVISIBLE_MINIMUM
diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm
index 7ab535c4d9d..ba07bdd1aba 100644
--- a/code/modules/clothing/glasses/hud.dm
+++ b/code/modules/clothing/glasses/hud.dm
@@ -31,6 +31,7 @@
name = "Health Scanner HUD"
desc = "A heads-up display that scans the humans in view and provides accurate data about their health status."
icon_state = "healthhud"
+ origin_tech = "magnets=3;biotech=2"
hud_type = DATA_HUD_MEDICAL_ADVANCED
/obj/item/clothing/glasses/hud/health/night
@@ -38,6 +39,7 @@
desc = "An advanced medical head-up display that allows doctors to find patients in complete darkness."
icon_state = "healthhudnight"
item_state = "glasses"
+ origin_tech = "magnets=4;biotech=4;plasmatech=4;engineering=5"
darkness_view = 8
invis_view = SEE_INVISIBLE_MINIMUM
@@ -45,6 +47,7 @@
name = "Diagnostic HUD"
desc = "A heads-up display capable of analyzing the integrity and status of robotics and exosuits."
icon_state = "diagnostichud"
+ origin_tech = "magnets=2;engineering=2"
hud_type = DATA_HUD_DIAGNOSTIC
/obj/item/clothing/glasses/hud/diagnostic/night
@@ -52,14 +55,15 @@
desc = "A robotics diagnostic HUD fitted with a light amplifier."
icon_state = "diagnostichudnight"
item_state = "glasses"
+ origin_tech = "magnets=4;powerstorage=4;plasmatech=4;engineering=5"
darkness_view = 8
invis_view = SEE_INVISIBLE_MINIMUM
-
/obj/item/clothing/glasses/hud/security
name = "Security HUD"
desc = "A heads-up display that scans the humans in view and provides accurate data about their ID status and security records."
icon_state = "securityhud"
+ origin_tech = "magnets=3;combat=2"
hud_type = DATA_HUD_SECURITY_ADVANCED
/obj/item/clothing/glasses/hud/security/chameleon
@@ -80,6 +84,7 @@
name = "HUDSunglasses"
desc = "Sunglasses with a HUD."
icon_state = "sunhud"
+ origin_tech = "magnets=3;combat=3;engineering=3"
darkness_view = 1
flash_protect = 1
tint = 1
@@ -88,6 +93,7 @@
name = "Night Vision Security HUD"
desc = "An advanced heads-up display which provides id data and vision in complete darkness."
icon_state = "securityhudnight"
+ origin_tech = "magnets=4;combat=4;plasmatech=4;engineering=5"
darkness_view = 8
invis_view = SEE_INVISIBLE_MINIMUM
@@ -159,4 +165,4 @@
/obj/item/clothing/glasses/hud/toggle/thermal/emp_act(severity)
thermal_overload()
- ..()
\ No newline at end of file
+ ..()
diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm
index 3804a67ef7f..0c9538bf7a5 100644
--- a/code/modules/clothing/masks/gasmask.dm
+++ b/code/modules/clothing/masks/gasmask.dm
@@ -21,7 +21,7 @@
flash_protect = 2
tint = 2
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
- origin_tech = "materials=2;engineering=2"
+ origin_tech = "materials=2;engineering=3"
actions_types = list(/datum/action/item_action/toggle)
flags_inv = HIDEEARS|HIDEEYES|HIDEFACE
flags_cover = MASKCOVERSEYES
diff --git a/code/modules/clothing/shoes/magboots.dm b/code/modules/clothing/shoes/magboots.dm
index 8d3f55c8dce..85e9ab69c30 100644
--- a/code/modules/clothing/shoes/magboots.dm
+++ b/code/modules/clothing/shoes/magboots.dm
@@ -9,7 +9,7 @@
strip_delay = 70
put_on_delay = 70
burn_state = FIRE_PROOF
- origin_tech = "magnets=2"
+ origin_tech = "materials=3;magnets=4;engineering=4"
/obj/item/clothing/shoes/magboots/verb/toggle()
set name = "Toggle Magboots"
@@ -50,10 +50,11 @@
icon_state = "advmag0"
magboot_state = "advmag"
slowdown_active = SHOES_SLOWDOWN
+ origin_tech = "magnets=6;engineering=4"
/obj/item/clothing/shoes/magboots/syndie
desc = "Reverse-engineered magnetic boots that have a heavy magnetic pull. Property of Gorlex Marauders."
name = "blood-red magboots"
icon_state = "syndiemag0"
magboot_state = "syndiemag"
- origin_tech = "magnets=2;syndicate=3"
+ origin_tech = "magnets=4;syndicate=2"
diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm
index 5c660d23388..3aa32345fc8 100644
--- a/code/modules/clothing/under/miscellaneous.dm
+++ b/code/modules/clothing/under/miscellaneous.dm
@@ -566,6 +566,7 @@
name = "Plasma-man jumpsuit refill pack"
desc = "A compressed water pack used to refill plasma-man jumpsuit auto-extinguishers."
icon_state = "plasmarefill"
+ origin_tech = "materials=2;plasmatech=3;biotech=1"
/obj/item/clothing/under/rank/security/navyblue/russian
name = "russian officer's uniform"
diff --git a/code/modules/detectivework/scanner.dm b/code/modules/detectivework/scanner.dm
index 953cab9ade6..1c37803b5cd 100644
--- a/code/modules/detectivework/scanner.dm
+++ b/code/modules/detectivework/scanner.dm
@@ -12,7 +12,7 @@
slot_flags = SLOT_BELT
var/scanning = 0
var/list/log = list()
- origin_tech = "engineering=3;biotech=2"
+ origin_tech = "engineering=4;biotech=2;programming=5"
/obj/item/device/detective_scanner/attack_self(mob/user)
if(log.len && !scanning)
diff --git a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm
index 6c01a8aa161..60ce3eda30f 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm
@@ -54,7 +54,7 @@
/obj/item/weapon/circuitboard/machine/gibber
name = "circuit board (Gibber)"
build_path = /obj/machinery/gibber
- origin_tech = "programming=1"
+ origin_tech = "programming=2;engineering=2"
req_components = list(
/obj/item/weapon/stock_parts/matter_bin = 1,
/obj/item/weapon/stock_parts/manipulator = 1)
@@ -235,5 +235,3 @@
pixel_x = initial(pixel_x) //return to its spot after shaking
src.operating = 0
update_icon()
-
-
diff --git a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm
index 06ca4bd94b4..5ab3d08e7d5 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm
@@ -30,7 +30,7 @@
/obj/item/weapon/circuitboard/machine/microwave
name = "circuit board (Microwave)"
build_path = /obj/machinery/microwave
- origin_tech = "programming=1;magnets=1"
+ origin_tech = "programming=2;magnets=2"
req_components = list(
/obj/item/weapon/stock_parts/micro_laser = 1,
/obj/item/weapon/stock_parts/matter_bin = 1,
diff --git a/code/modules/food_and_drinks/pizzabox.dm b/code/modules/food_and_drinks/pizzabox.dm
index 338d04b7e6f..3cc757ce367 100644
--- a/code/modules/food_and_drinks/pizzabox.dm
+++ b/code/modules/food_and_drinks/pizzabox.dm
@@ -4,7 +4,7 @@
desc = "Special delivery!"
icon_state = "pizzabomb_inactive"
item_state = "eshield0"
- origin_tech = "syndicate=4"
+ origin_tech = "syndicate=3;engineering=3"
/obj/item/pizzabox
name = "pizza box"
diff --git a/code/modules/hydroponics/biogenerator.dm b/code/modules/hydroponics/biogenerator.dm
index c951b922b8b..43fed6a2185 100644
--- a/code/modules/hydroponics/biogenerator.dm
+++ b/code/modules/hydroponics/biogenerator.dm
@@ -24,7 +24,7 @@
/obj/item/weapon/circuitboard/machine/biogenerator
name = "circuit board (Biogenerator)"
build_path = /obj/machinery/biogenerator
- origin_tech = "programming=3;biotech=2;materials=3"
+ origin_tech = "programming=2;biotech=3;materials=3"
req_components = list(
/obj/item/weapon/stock_parts/matter_bin = 1,
/obj/item/weapon/stock_parts/manipulator = 1,
@@ -401,4 +401,3 @@
else if(href_list["menu"])
menustat = "menu"
updateUsrDialog()
-
diff --git a/code/modules/hydroponics/gene_modder.dm b/code/modules/hydroponics/gene_modder.dm
index 2f0e44878b3..74e43afeba3 100644
--- a/code/modules/hydroponics/gene_modder.dm
+++ b/code/modules/hydroponics/gene_modder.dm
@@ -29,7 +29,7 @@
/obj/item/weapon/circuitboard/machine/plantgenes
name = "circuit board (Plant DNA Manipulator)"
build_path = /obj/machinery/plantgenes
- origin_tech = "programming=2;biotech=3"
+ origin_tech = "programming=3;biotech=3"
req_components = list(
/obj/item/weapon/stock_parts/manipulator = 1,
/obj/item/weapon/stock_parts/micro_laser = 1,
@@ -422,4 +422,4 @@
/obj/item/weapon/storage/box/disks_plantgene/New()
..()
for(var/i in 1 to 7)
- new /obj/item/weapon/disk/plantgene(src)
\ No newline at end of file
+ new /obj/item/weapon/disk/plantgene(src)
diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm
index 306633d56bc..c0eaf24d4e6 100644
--- a/code/modules/hydroponics/grown.dm
+++ b/code/modules/hydroponics/grown.dm
@@ -15,6 +15,7 @@
// Saves us from having to define each stupid grown's dried_type as itself.
// If you don't want a plant to be driable (watermelons) set this to null in the time definition.
burn_state = FLAMMABLE
+ origin_tech = "biotech=1"
/obj/item/weapon/reagent_containers/food/snacks/grown/New(newloc, var/obj/item/seeds/new_seed = null)
..()
diff --git a/code/modules/hydroponics/grown/ambrosia.dm b/code/modules/hydroponics/grown/ambrosia.dm
index 87d8bffef59..f58fbb91f7f 100644
--- a/code/modules/hydroponics/grown/ambrosia.dm
+++ b/code/modules/hydroponics/grown/ambrosia.dm
@@ -28,6 +28,7 @@
seed = /obj/item/seeds/ambrosia
name = "ambrosia vulgaris branch"
desc = "This is a plant containing various healing chemicals."
+ origin_tech = "biotech=2"
// Ambrosia Deus
/obj/item/seeds/ambrosia/deus
@@ -46,4 +47,5 @@
name = "ambrosia deus branch"
desc = "Eating this makes you feel immortal!"
icon_state = "ambrosiadeus"
- filling_color = "#008B8B"
\ No newline at end of file
+ filling_color = "#008B8B"
+ origin_tech = "biotech=4;materials=3"
diff --git a/code/modules/hydroponics/grown/apple.dm b/code/modules/hydroponics/grown/apple.dm
index 3c953770677..370184ebe27 100644
--- a/code/modules/hydroponics/grown/apple.dm
+++ b/code/modules/hydroponics/grown/apple.dm
@@ -51,4 +51,5 @@
name = "golden apple"
desc = "Emblazoned upon the apple is the word 'Kallisti'."
icon_state = "goldapple"
- filling_color = "#FFD700"
\ No newline at end of file
+ filling_color = "#FFD700"
+ origin_tech = "biotech=4;materials=5"
diff --git a/code/modules/hydroponics/grown/banana.dm b/code/modules/hydroponics/grown/banana.dm
index c5abc2caf69..df4fdd7cec1 100644
--- a/code/modules/hydroponics/grown/banana.dm
+++ b/code/modules/hydroponics/grown/banana.dm
@@ -100,6 +100,7 @@
icon_state = "banana_blue"
trash = /obj/item/weapon/grown/bananapeel/bluespace
filling_color = "#0000FF"
+ origin_tech = "biotech=3;bluespace=5"
/obj/item/weapon/grown/bananapeel/bluespace
seed = /obj/item/seeds/banana/bluespace
@@ -107,7 +108,6 @@
desc = "A peel from a bluespace banana."
icon_state = "banana_peel_blue"
-
// Other
/obj/item/weapon/grown/bananapeel/specialpeel //used by /obj/item/clothing/shoes/clown_shoes/banana_shoes
name = "synthesized banana peel"
@@ -117,4 +117,4 @@
if(iscarbon(AM))
var/mob/living/carbon/carbon = AM
if(carbon.slip(2, 2, src, FALSE))
- qdel(src)
\ No newline at end of file
+ qdel(src)
diff --git a/code/modules/hydroponics/grown/berries.dm b/code/modules/hydroponics/grown/berries.dm
index e32f4a1eb12..36592c1571d 100644
--- a/code/modules/hydroponics/grown/berries.dm
+++ b/code/modules/hydroponics/grown/berries.dm
@@ -85,6 +85,7 @@
desc = "Nutritious!"
icon_state = "glowberrypile"
filling_color = "#7CFC00"
+ origin_tech = "plasmatech=6"
// Cherries
/obj/item/seeds/cherry
@@ -178,4 +179,4 @@
seed = /obj/item/seeds/grape/green
name = "bunch of green grapes"
icon_state = "greengrapes"
- filling_color = "#7FFF00"
\ No newline at end of file
+ filling_color = "#7FFF00"
diff --git a/code/modules/hydroponics/grown/chili.dm b/code/modules/hydroponics/grown/chili.dm
index 707b92e4ee8..fbf90fea989 100644
--- a/code/modules/hydroponics/grown/chili.dm
+++ b/code/modules/hydroponics/grown/chili.dm
@@ -46,6 +46,7 @@
icon_state = "icepepper"
filling_color = "#0000CD"
bitesize_mod = 2
+ origin_tech = "biotech=4"
// Ghost Chili
/obj/item/seeds/chili/ghost
@@ -71,6 +72,7 @@
var/mob/held_mob
filling_color = "#F8F8FF"
bitesize_mod = 4
+ origin_tech = "biotech=4;magnets=5"
/obj/item/weapon/reagent_containers/food/snacks/grown/ghost_chili/attack_hand(mob/user)
..()
@@ -88,4 +90,4 @@
held_mob << "
Your hand holding [src] burns!"
else
held_mob = null
- ..()
\ No newline at end of file
+ ..()
diff --git a/code/modules/hydroponics/grown/misc.dm b/code/modules/hydroponics/grown/misc.dm
index de334bb6098..9f14ee21aa3 100644
--- a/code/modules/hydroponics/grown/misc.dm
+++ b/code/modules/hydroponics/grown/misc.dm
@@ -89,6 +89,6 @@
name = "gatfruit"
desc = "It smells like burning."
icon_state = "gatfruit"
- origin_tech = "combat=3"
+ origin_tech = "combat=6"
trash = /obj/item/weapon/gun/projectile/revolver
- bitesize_mod = 2
\ No newline at end of file
+ bitesize_mod = 2
diff --git a/code/modules/hydroponics/grown/mushrooms.dm b/code/modules/hydroponics/grown/mushrooms.dm
index 122f09e3353..2f7442a3966 100644
--- a/code/modules/hydroponics/grown/mushrooms.dm
+++ b/code/modules/hydroponics/grown/mushrooms.dm
@@ -76,6 +76,7 @@
plant_type = PLANT_MUSHROOM
reagents_add = list("mushroomhallucinogen" = 0.04, "amatoxin" = 0.1, "nutriment" = 0, "amanitin" = 0.2)
rarity = 30
+ origin_tech = "biotech=5"
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/angel
seed = /obj/item/seeds/angel
@@ -158,6 +159,7 @@
desc = "
Plumus Locomotus: The beginning of the great walk."
icon_state = "walkingmushroom"
filling_color = "#9370DB"
+ origin_tech = "biotech=4;programming=5"
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/walkingmushroom/attack_self(mob/user)
if(istype(user.loc,/turf/open/space))
@@ -228,6 +230,7 @@
icon_state = "glowshroom"
filling_color = "#00FA9A"
var/effect_path = /obj/effect/glowshroom
+ origin_tech = "biotech=4;plasmatech=6"
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/glowshroom/attack_self(mob/user)
if(istype(user.loc,/turf/open/space))
@@ -263,4 +266,5 @@
desc = "
Mycena Ruthenia: This species of mushroom glows in the dark, but aren't bioluminescent. They're warm to the touch..."
icon_state = "glowcap"
filling_color = "#00FA9A"
- effect_path = /obj/effect/glowshroom/glowcap
\ No newline at end of file
+ effect_path = /obj/effect/glowshroom/glowcap
+ origin_tech = "biotech=4;powerstorage=6;plasmatech=4"
diff --git a/code/modules/hydroponics/grown/nettle.dm b/code/modules/hydroponics/grown/nettle.dm
index 86927e59be2..76ec1a3f3b1 100644
--- a/code/modules/hydroponics/grown/nettle.dm
+++ b/code/modules/hydroponics/grown/nettle.dm
@@ -27,7 +27,6 @@
reagents_add = list("facid" = 0.5, "sacid" = 0.5)
rarity = 20
-
/obj/item/weapon/grown/nettle //abstract type
name = "nettle"
desc = "It's probably
not wise to touch it with bare hands..."
@@ -40,7 +39,7 @@
w_class = 1
throw_speed = 1
throw_range = 3
- origin_tech = "combat=1"
+ origin_tech = "combat=3"
attack_verb = list("stung")
/obj/item/weapon/grown/nettle/suicide_act(mob/user)
@@ -74,7 +73,6 @@
usr.unEquip(src)
qdel(src)
-
/obj/item/weapon/grown/nettle/basic
seed = /obj/item/seeds/nettle
@@ -82,7 +80,6 @@
..()
force = round((5 + seed.potency / 5), 1)
-
/obj/item/weapon/grown/nettle/death
seed = /obj/item/seeds/nettle/death
name = "deathnettle"
@@ -90,7 +87,7 @@
icon_state = "deathnettle"
force = 30
throwforce = 15
- origin_tech = "combat=3"
+ origin_tech = "combat=5"
/obj/item/weapon/grown/nettle/death/add_juice()
..()
@@ -113,4 +110,4 @@
if(prob(20))
M.Paralyse(force / 6)
M.Weaken(force / 15)
- M.drop_item()
\ No newline at end of file
+ M.drop_item()
diff --git a/code/modules/hydroponics/grown/tomato.dm b/code/modules/hydroponics/grown/tomato.dm
index 2176b0dab71..3e588efa1e4 100644
--- a/code/modules/hydroponics/grown/tomato.dm
+++ b/code/modules/hydroponics/grown/tomato.dm
@@ -41,6 +41,7 @@
icon_state = "bloodtomato"
splat_type = /obj/effect/gibspawner/generic
filling_color = "#FF0000"
+ origin_tech = "biotech=5"
// Blue Tomato
@@ -86,6 +87,7 @@
name = "blue-space tomato"
desc = "So lubricated, you might slip through space-time."
icon_state = "bluespacetomato"
+ origin_tech = "biotech=4;bluespace=5"
// Killer Tomato
@@ -112,6 +114,7 @@
icon_state = "killertomato"
var/awakening = 0
filling_color = "#FF0000"
+ origin_tech = "biotech=4;combat=5"
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato/killer/attack(mob/M, mob/user, def_zone)
if(awakening)
@@ -136,4 +139,4 @@
K.visible_message("
The Killer Tomato growls as it suddenly awakens.")
if(user)
user.unEquip(src)
- qdel(src)
\ No newline at end of file
+ qdel(src)
diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm
index fc00ebb2e54..3fbd9cee816 100644
--- a/code/modules/hydroponics/hydroitemdefines.dm
+++ b/code/modules/hydroponics/hydroitemdefines.dm
@@ -5,7 +5,7 @@
icon = 'icons/obj/device.dmi'
icon_state = "hydro"
item_state = "analyzer"
- origin_tech = "magnets=1;biotech=1"
+ origin_tech = "magnets=2;biotech=2"
/obj/item/device/analyzer/plant_analyzer/attack_self(mob/user)
return 0
@@ -64,6 +64,7 @@
icon = 'icons/obj/weapons.dmi'
icon_state = "cultivator"
item_state = "cultivator"
+ origin_tech = "engineering=2;biotech=2"
flags = CONDUCT
force = 5
throwforce = 7
@@ -84,7 +85,7 @@
throw_speed = 3
throw_range = 4
materials = list(MAT_METAL = 15000)
- origin_tech = "materials=2;combat=1"
+ origin_tech = "materials=2;combat=2"
attack_verb = list("chopped", "torn", "cut")
hitsound = 'sound/weapons/bladeslice.ogg'
sharpness = IS_SHARP
@@ -106,7 +107,7 @@
flags = CONDUCT
armour_penetration = 20
slot_flags = SLOT_BACK
- origin_tech = "materials=2;combat=2"
+ origin_tech = "materials=3;combat=2"
attack_verb = list("chopped", "sliced", "cut", "reaped")
hitsound = 'sound/weapons/bladeslice.ogg'
@@ -198,4 +199,3 @@
/obj/item/weapon/reagent_containers/glass/bottle/killer/pestkiller/New()
..()
reagents.add_reagent("pestkiller", 50)
-
diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm
index 0161097ef48..2393b7601d1 100644
--- a/code/modules/hydroponics/hydroponics.dm
+++ b/code/modules/hydroponics/hydroponics.dm
@@ -40,7 +40,7 @@
/obj/item/weapon/circuitboard/machine/hydroponics
name = "circuit board (Hydroponics Tray)"
build_path = /obj/machinery/hydroponics/constructable
- origin_tech = "programming=1;biotech=1"
+ origin_tech = "programming=1;biotech=2"
req_components = list(
/obj/item/weapon/stock_parts/matter_bin = 2,
/obj/item/weapon/stock_parts/manipulator = 1,
@@ -888,4 +888,4 @@
user << "
You clear up [src]!"
qdel(src)
else
- return ..()
\ No newline at end of file
+ return ..()
diff --git a/code/modules/hydroponics/plant_genes.dm b/code/modules/hydroponics/plant_genes.dm
index c7467575d7f..c1edd43e2c1 100644
--- a/code/modules/hydroponics/plant_genes.dm
+++ b/code/modules/hydroponics/plant_genes.dm
@@ -171,6 +171,7 @@
// For code, see grown.dm
name = "Liquid Contents"
examine_line = "
It has a lot of liquid contents inside."
+ origin_tech = list("bio" = 5)
/*/datum/plant_gene/trait/squash/on_slip(obj/item/weapon/reagent_containers/food/snacks/grown/G, mob/living/carbon/target)
G.squash(target)*/
@@ -209,7 +210,7 @@
// Multiplies max charge by (rate*1000) when used in potato power cells.
name = "Electrical Activity"
rate = 0.2
- origin_tech = list("powerstorage" = 4)
+ origin_tech = list("powerstorage" = 5)
/datum/plant_gene/trait/cell_charge/on_slip(obj/item/weapon/reagent_containers/food/snacks/grown/G, mob/living/carbon/C)
var/power = G.seed.potency*rate
@@ -268,7 +269,7 @@
// Teleport radius is calculated as max(round(potency*rate), 1)
name = "Bluespace Activity"
rate = 0.1
- origin_tech = list("bluespace" = 3)
+ origin_tech = list("bluespace" = 5)
/datum/plant_gene/trait/teleport/on_squash(obj/item/weapon/reagent_containers/food/snacks/grown/G, atom/target)
if(isliving(target))
diff --git a/code/modules/mining/equipment_locker.dm b/code/modules/mining/equipment_locker.dm
index 74d5ca7f9f0..2dd5cc77147 100644
--- a/code/modules/mining/equipment_locker.dm
+++ b/code/modules/mining/equipment_locker.dm
@@ -30,7 +30,7 @@
/obj/item/weapon/circuitboard/machine/ore_redemption
name = "circuit board (Ore Redemption)"
build_path = /obj/machinery/mineral/ore_redemption
- origin_tech = "programming=1;engineering=2"
+ origin_tech = "programming=2;engineering=2;plasmatech=3"
req_components = list(
/obj/item/weapon/stock_parts/console_screen = 1,
/obj/item/weapon/stock_parts/matter_bin = 1,
@@ -336,7 +336,7 @@
/obj/item/weapon/circuitboard/machine/mining_equipment_vendor
name = "circuit board (Mining Equipment Vendor)"
build_path = /obj/machinery/mineral/equipment_vendor
- origin_tech = "programming=1;engineering=2"
+ origin_tech = "programming=1;engineering=3"
req_components = list(
/obj/item/weapon/stock_parts/console_screen = 1,
/obj/item/weapon/stock_parts/matter_bin = 3)
@@ -611,14 +611,14 @@
var/fieldsactive = 0
var/burst_time = 30
var/fieldlimit = 4
- origin_tech = "magnets=2;combat=2"
+ origin_tech = "magnets=3;engineering=3"
/obj/item/weapon/resonator/upgraded
name = "upgraded resonator"
desc = "An upgraded version of the resonator that can produce more fields at once."
icon_state = "resonator_u"
item_state = "resonator_u"
- origin_tech = "magnets=3;combat=3"
+ origin_tech = "materials=4;powerstorage=3;engineering=3;magnets=3"
fieldlimit = 6
/obj/item/weapon/resonator/proc/CreateResonance(target, creator)
@@ -1098,7 +1098,7 @@
icon_state = "bottle19"
desc = "Inject certain types of monster organs with this stabilizer to preserve their healing powers indefinitely."
w_class = 1
- origin_tech = "biotech=1"
+ origin_tech = "biotech=3"
/obj/item/weapon/hivelordstabilizer/afterattack(obj/item/organ/M, mob/user)
var/obj/item/organ/hivelord_core/C = M
diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm
index 0113618d295..475e987361a 100644
--- a/code/modules/mining/mine_items.dm
+++ b/code/modules/mining/mine_items.dm
@@ -73,7 +73,7 @@
materials = list(MAT_METAL=2000) //one sheet, but where can you make them?
var/digspeed = 40
var/list/digsound = list('sound/effects/picaxe1.ogg','sound/effects/picaxe2.ogg','sound/effects/picaxe3.ogg')
- origin_tech = "materials=1;engineering=1"
+ origin_tech = "materials=2;engineering=3"
attack_verb = list("hit", "pierced", "sliced", "attacked")
/obj/item/weapon/pickaxe/proc/playDigSound()
@@ -84,7 +84,7 @@
icon_state = "spickaxe"
item_state = "spickaxe"
digspeed = 20 //mines faster than a normal pickaxe, bought from mining vendor
- origin_tech = "materials=3;engineering=2"
+ origin_tech = "materials=3;engineering=4"
desc = "A silver-plated pickaxe that mines slightly faster than standard-issue."
force = 17
@@ -93,7 +93,7 @@
icon_state = "dpickaxe"
item_state = "dpickaxe"
digspeed = 14
- origin_tech = "materials=4;engineering=3"
+ origin_tech = "materials=5;engineering=4"
desc = "A pickaxe with a diamond pick head. Extremely robust at cracking rock walls and digging up dirt."
force = 19
@@ -105,7 +105,7 @@
digspeed = 25 //available from roundstart, faster than a pickaxe.
digsound = list('sound/weapons/drill.ogg')
hitsound = 'sound/weapons/drill.ogg'
- origin_tech = "materials=2;powerstorage=3;engineering=2"
+ origin_tech = "materials=2;powerstorage=2;engineering=3"
desc = "An electric mining drill for the especially scrawny."
/obj/item/weapon/pickaxe/drill/cyborg
@@ -117,7 +117,7 @@
name = "diamond-tipped mining drill"
icon_state = "diamonddrill"
digspeed = 7
- origin_tech = "materials=6;powerstorage=4;engineering=5"
+ origin_tech = "materials=6;powerstorage=4;engineering=4"
desc = "Yours is the drill that will pierce the heavens!"
/obj/item/weapon/pickaxe/drill/cyborg/diamond //This is the BORG version!
@@ -130,7 +130,7 @@
icon_state = "jackhammer"
item_state = "jackhammer"
digspeed = 5 //the epitome of powertools. extremely fast mining, laughs at puny walls
- origin_tech = "materials=3;powerstorage=2;engineering=2"
+ origin_tech = "materials=6;powerstorage=4;engineering=5;magnets=4"
digsound = list('sound/weapons/sonic_jackhammer.ogg')
hitsound = 'sound/weapons/sonic_jackhammer.ogg'
desc = "Cracks rocks with sonic blasts, and doubles as a demolition power tool for smashing walls."
@@ -150,7 +150,7 @@
item_state = "shovel"
w_class = 3
materials = list(MAT_METAL=50)
- origin_tech = "materials=1;engineering=1"
+ origin_tech = "materials=2;engineering=2"
attack_verb = list("bashed", "bludgeoned", "thrashed", "whacked")
sharpness = IS_SHARP
@@ -204,6 +204,7 @@
icon_state = "capsule"
icon = 'icons/obj/mining.dmi'
w_class = 1
+ origin_tech = "engineering=3;bluespace=3"
var/used = FALSE
/obj/item/weapon/survivalcapsule/attack_self()
@@ -551,4 +552,3 @@
anchored = 1
layer = BELOW_MOB_LAYER
density = 0
-
diff --git a/code/modules/mob/living/carbon/alien/organs.dm b/code/modules/mob/living/carbon/alien/organs.dm
index 8ac9093906b..c8ef333c04a 100644
--- a/code/modules/mob/living/carbon/alien/organs.dm
+++ b/code/modules/mob/living/carbon/alien/organs.dm
@@ -30,7 +30,7 @@
/obj/item/organ/alien/plasmavessel
name = "plasma vessel"
icon_state = "plasma"
- origin_tech = "biotech=5;plasmatech=2"
+ origin_tech = "biotech=5;plasmatech=4"
w_class = 3
zone = "chest"
slot = "plasmavessel"
@@ -55,7 +55,7 @@
plasma_rate = 15
/obj/item/organ/alien/plasmavessel/large/queen
- origin_tech = "biotech=6;plasmatech=3"
+ origin_tech = "biotech=6;plasmatech=4"
plasma_rate = 20
/obj/item/organ/alien/plasmavessel/small
@@ -183,5 +183,5 @@
zone = "groin"
slot = "eggsac"
w_class = 4
- origin_tech = "biotech=8"
- alien_powers = list(/obj/effect/proc_holder/alien/lay_egg)
\ No newline at end of file
+ origin_tech = "biotech=6"
+ alien_powers = list(/obj/effect/proc_holder/alien/lay_egg)
diff --git a/code/modules/mob/living/carbon/brain/MMI.dm b/code/modules/mob/living/carbon/brain/MMI.dm
index 20659829676..0e6e1ee5b03 100644
--- a/code/modules/mob/living/carbon/brain/MMI.dm
+++ b/code/modules/mob/living/carbon/brain/MMI.dm
@@ -6,7 +6,7 @@
icon = 'icons/obj/assemblies.dmi'
icon_state = "mmi_empty"
w_class = 3
- origin_tech = "biotech=3"
+ origin_tech = "biotech=2;programming=3;engineering=2"
var/braintype = "Cyborg"
var/obj/item/device/radio/radio = null //Let's give it a radio.
var/hacked = 0 //Whether or not this is a Syndicate MMI
@@ -190,8 +190,9 @@
/obj/item/device/mmi/syndie
name = "Syndicate Man-Machine Interface"
desc = "Syndicate's own brand of MMI. It enforces laws designed to help Syndicate agents achieve their goals upon cyborgs created with it, but doesn't fit in Nanotrasen AI cores."
+ origin_tech = "biotech=4;programming=4;syndicate=2"
hacked = 1
/obj/item/device/mmi/syndie/New()
..()
- radio.on = 0
\ No newline at end of file
+ radio.on = 0
diff --git a/code/modules/mob/living/carbon/brain/brain_item.dm b/code/modules/mob/living/carbon/brain/brain_item.dm
index c65a6d53df1..6b6ba71043a 100644
--- a/code/modules/mob/living/carbon/brain/brain_item.dm
+++ b/code/modules/mob/living/carbon/brain/brain_item.dm
@@ -8,7 +8,7 @@
zone = "head"
slot = "brain"
vital = 1
- origin_tech = "biotech=4"
+ origin_tech = "biotech=5"
attack_verb = list("attacked", "slapped", "whacked")
var/mob/living/carbon/brain/brainmob = null
var/damaged_brain = 0 //whether the brain organ is damaged.
@@ -124,4 +124,4 @@
name = "alien brain"
desc = "We barely understand the brains of terrestial animals. Who knows what we may find in the brain of such an advanced species?"
icon_state = "brain-x"
- origin_tech = "biotech=7"
\ No newline at end of file
+ origin_tech = "biotech=6"
diff --git a/code/modules/mob/living/carbon/brain/posibrain.dm b/code/modules/mob/living/carbon/brain/posibrain.dm
index e80ea7479f7..3dc6ea17a4d 100644
--- a/code/modules/mob/living/carbon/brain/posibrain.dm
+++ b/code/modules/mob/living/carbon/brain/posibrain.dm
@@ -6,7 +6,7 @@ var/global/posibrain_notif_cooldown = 0
icon = 'icons/obj/assemblies.dmi'
icon_state = "posibrain"
w_class = 3
- origin_tech = "biotech=3;programming=2"
+ origin_tech = "biotech=4;programming=4;plasmatech=3"
var/notified = 0
var/askDelay = 10 * 60 * 1
var/used = 0 //Prevents split personality virus. May be reset if personality deletion code is added.
diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm
index 670bea53361..181350544c4 100644
--- a/code/modules/paperwork/pen.dm
+++ b/code/modules/paperwork/pen.dm
@@ -82,7 +82,7 @@
* Sleepypens
*/
/obj/item/weapon/pen/sleepy
- origin_tech = "materials=2;syndicate=5"
+ origin_tech = "engineering=4;syndicate=2"
flags = OPENCONTAINER
@@ -107,7 +107,7 @@
* (Alan) Edaggers
*/
/obj/item/weapon/pen/edagger
- origin_tech = "combat=3;syndicate=5"
+ origin_tech = "combat=3;syndicate=1"
attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") //these wont show up if the pen is off
var/on = 0
diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm
index 6d29f794ee6..3cb37835d23 100644
--- a/code/modules/power/cell.dm
+++ b/code/modules/power/cell.dm
@@ -15,7 +15,6 @@
var/maxcharge = 1000
materials = list(MAT_METAL=700, MAT_GLASS=50)
var/rigged = 0 // true if rigged to explode
- var/minor_fault = 0 //If not 100% reliable, it will build up faults.
var/chargerate = 100 //how much power is given every tick in a recharger
var/self_recharge = 0 //does it self recharge, over time, or not?
@@ -77,19 +76,12 @@
if(maxcharge < amount)
amount = maxcharge
var/power_used = min(maxcharge-charge,amount)
- if(crit_fail)
- return 0
- if(!prob(reliability))
- minor_fault++
- if(prob(minor_fault))
- crit_fail = 1
- return 0
charge += power_used
return power_used
/obj/item/weapon/stock_parts/cell/examine(mob/user)
..()
- if(crit_fail || rigged)
+ if(rigged)
user << "
This power cell seems to be faulty!"
else
user << "The charge meter reads [round(src.percent() )]%."
@@ -140,8 +132,6 @@
charge -= 1000 / severity
if (charge < 0)
charge = 0
- if(reliability != 100 && prob(50/severity))
- reliability -= 10 / severity
..()
/obj/item/weapon/stock_parts/cell/ex_act(severity, target)
@@ -169,7 +159,6 @@
/obj/item/weapon/stock_parts/cell/crap
name = "\improper Nanotrasen brand rechargable AA battery"
desc = "You can't top the plasma top." //TOTALLY TRADEMARK INFRINGEMENT
- origin_tech = null
maxcharge = 500
materials = list(MAT_GLASS=40)
rating = 2
@@ -225,10 +214,10 @@
/obj/item/weapon/stock_parts/cell/super
name = "super-capacity power cell"
- origin_tech = "powerstorage=5"
+ origin_tech = "powerstorage=3;materials=3"
icon_state = "scell"
maxcharge = 20000
- materials = list(MAT_GLASS=70)
+ materials = list(MAT_GLASS=300)
rating = 4
chargerate = 2000
@@ -238,10 +227,10 @@
/obj/item/weapon/stock_parts/cell/hyper
name = "hyper-capacity power cell"
- origin_tech = "powerstorage=6"
+ origin_tech = "powerstorage=4;engineering=4;materials=4"
icon_state = "hpcell"
maxcharge = 30000
- materials = list(MAT_GLASS=80)
+ materials = list(MAT_GLASS=400)
rating = 5
chargerate = 3000
@@ -252,10 +241,10 @@
/obj/item/weapon/stock_parts/cell/bluespace
name = "bluespace power cell"
desc = "A rechargable transdimensional power cell."
- origin_tech = "powerstorage=7"
+ origin_tech = "powerstorage=5;bluespace=4;materials=4;engineering=4"
icon_state = "bscell"
maxcharge = 40000
- materials = list(MAT_GLASS=80)
+ materials = list(MAT_GLASS=600)
rating = 6
chargerate = 4000
@@ -266,9 +255,9 @@
/obj/item/weapon/stock_parts/cell/infinite
name = "infinite-capacity power cell!"
icon_state = "icell"
- origin_tech = null
+ origin_tech = "powerstorage=7"
maxcharge = 30000
- materials = list(MAT_GLASS=80)
+ materials = list(MAT_GLASS=1000)
rating = 6
chargerate = 30000
@@ -278,19 +267,18 @@
/obj/item/weapon/stock_parts/cell/potato
name = "potato battery"
desc = "A rechargable starch based power cell."
- origin_tech = "powerstorage=1"
icon = 'icons/obj/power.dmi' //'icons/obj/hydroponics/harvest.dmi'
icon_state = "potato_cell" //"potato_battery"
+ origin_tech = "powerstorage=1;biotech=1"
charge = 100
maxcharge = 300
materials = list()
- minor_fault = 1
rating = 1
/obj/item/weapon/stock_parts/cell/high/slime
name = "charged slime core"
desc = "A yellow slime core infused with plasma, it crackles with power."
- origin_tech = "powerstorage=2;biotech=4"
+ origin_tech = "powerstorage=5;biotech=4"
icon = 'icons/mob/slimes.dmi'
icon_state = "yellow slime extract"
materials = list()
diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm
index a61bef51c4f..01e28bb0f7c 100644
--- a/code/modules/power/port_gen.dm
+++ b/code/modules/power/port_gen.dm
@@ -115,7 +115,7 @@ display round(lastgen) and plasmatank amount
/obj/item/weapon/circuitboard/machine/pacman
name = "circuit board (PACMAN-type Generator)"
build_path = /obj/machinery/power/port_gen/pacman
- origin_tech = "programming=3;powerstorage=3;plasmatech=3;engineering=3"
+ origin_tech = "programming=2;powerstorage=3;plasmatech=3;engineering=3"
req_components = list(
/obj/item/weapon/stock_parts/matter_bin = 1,
/obj/item/weapon/stock_parts/micro_laser = 1,
@@ -130,7 +130,7 @@ display round(lastgen) and plasmatank amount
/obj/item/weapon/circuitboard/machine/pacman/mrs
name = "circuit board (MRSPACMAN-type Generator)"
build_path = "/obj/machinery/power/port_gen/pacman/mrs"
- origin_tech = "programming=3;powerstorage=5;engineering=5"
+ origin_tech = "programming=3;powerstorage=4;engineering=4;plasmatech=4"
/obj/machinery/power/port_gen/pacman/Destroy()
DropFuel()
diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm
index 5a8baf62a1b..627efa66d73 100644
--- a/code/modules/power/singularity/emitter.dm
+++ b/code/modules/power/singularity/emitter.dm
@@ -37,7 +37,7 @@
/obj/item/weapon/circuitboard/machine/emitter
name = "circuit board (Emitter)"
build_path = /obj/machinery/power/emitter
- origin_tech = "programming=4;powerstorage=5;engineering=5"
+ origin_tech = "programming=3;powerstorage=4;engineering=4"
req_components = list(
/obj/item/weapon/stock_parts/micro_laser = 1,
/obj/item/weapon/stock_parts/manipulator = 1)
diff --git a/code/modules/power/tesla/coil.dm b/code/modules/power/tesla/coil.dm
index ddb453f9082..3ee76344e49 100644
--- a/code/modules/power/tesla/coil.dm
+++ b/code/modules/power/tesla/coil.dm
@@ -16,7 +16,7 @@
/obj/item/weapon/circuitboard/machine/tesla_coil
name = "circuit board (Tesla Coil)"
build_path = /obj/machinery/power/tesla_coil
- origin_tech = "programming=1;engineering=2;powerstorage=3"
+ origin_tech = "programming=3;magnets=3;powerstorage=3"
req_components = list(/obj/item/weapon/stock_parts/capacitor = 1)
/obj/machinery/power/tesla_coil/RefreshParts()
@@ -72,7 +72,7 @@
/obj/item/weapon/circuitboard/machine/grounding_rod
name = "circuit board (Grounding Rod)"
build_path = /obj/machinery/power/grounding_rod
- origin_tech = "programming=1;engineering=1;powerstorage=1"
+ origin_tech = "programming=3;powerstorage=3;magnets=3;plasmatech=2"
req_components = list(/obj/item/weapon/stock_parts/capacitor = 1)
/obj/machinery/power/grounding_rod/attackby(obj/item/W, mob/user, params)
diff --git a/code/modules/power/turbine.dm b/code/modules/power/turbine.dm
index a4a7f60b165..ec2112d7d7a 100644
--- a/code/modules/power/turbine.dm
+++ b/code/modules/power/turbine.dm
@@ -76,7 +76,7 @@
/obj/item/weapon/circuitboard/machine/power_compressor
name = "circuit board (Power Compressor)"
build_path = /obj/machinery/power/compressor
- origin_tech = "programming=4;powerstorage=5;engineering=4"
+ origin_tech = "programming=4;powerstorage=4;engineering=4"
req_components = list(
/obj/item/stack/cable_coil = 5,
/obj/item/weapon/stock_parts/manipulator = 6)
@@ -195,7 +195,7 @@
/obj/item/weapon/circuitboard/machine/power_turbine
name = "circuit board (Power Turbine)"
build_path = /obj/machinery/power/turbine
- origin_tech = "programming=4;powerstorage=4;engineering=5"
+ origin_tech = "programming=4;powerstorage=4;engineering=4"
req_components = list(
/obj/item/stack/cable_coil = 5,
/obj/item/weapon/stock_parts/capacitor = 6)
diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm
index de962a64e34..408d51522c3 100644
--- a/code/modules/projectiles/guns/energy/laser.dm
+++ b/code/modules/projectiles/guns/energy/laser.dm
@@ -5,7 +5,7 @@
item_state = "laser"
w_class = 3
materials = list(MAT_METAL=2000)
- origin_tech = "combat=3;magnets=2"
+ origin_tech = "combat=4;magnets=2"
ammo_type = list(/obj/item/ammo_casing/energy/lasergun)
ammo_x_offset = 1
shaded_charge = 1
@@ -13,6 +13,7 @@
/obj/item/weapon/gun/energy/laser/practice
name = "practice laser gun"
desc = "A modified version of the basic laser gun, this one fires less concentrated energy bolts designed for target practice."
+ origin_tech = "combat=2;magnets=2"
ammo_type = list(/obj/item/ammo_casing/energy/laser/practice)
clumsy_check = 0
needs_permit = 0
@@ -44,6 +45,7 @@
/obj/item/weapon/gun/energy/laser/cyborg
can_charge = 0
desc = "An energy-based laser gun that draws power from the cyborg's internal energy cell directly. So this is what freedom looks like?"
+ origin_tech = null
/obj/item/weapon/gun/energy/laser/cyborg/newshot()
..()
@@ -68,7 +70,7 @@
force = 10
flags = CONDUCT
slot_flags = SLOT_BACK
- origin_tech = "combat=4;materials=3;powerstorage=3"
+ origin_tech = "combat=4;magnets=4;powerstorage=3"
ammo_type = list(/obj/item/ammo_casing/energy/laser/accelerator)
pin = null
ammo_x_offset = 3
@@ -94,7 +96,7 @@
desc = "A high-power laser gun capable of expelling concentrated xray blasts that pass through multiple soft targets and heavier materials"
icon_state = "xray"
item_state = null
- origin_tech = "combat=5;materials=3;magnets=2;syndicate=2"
+ origin_tech = "combat=6;materials=4;magnets=4;syndicate=1"
ammo_type = list(/obj/item/ammo_casing/energy/xray)
pin = null
ammo_x_offset = 3
@@ -106,7 +108,7 @@
icon_state = "bluetag"
desc = "A retro laser gun modified to fire harmless blue beams of light. Sound effects included!"
ammo_type = list(/obj/item/ammo_casing/energy/laser/bluetag)
- origin_tech = "combat=1;magnets=2"
+ origin_tech = "combat=2;magnets=2"
clumsy_check = 0
needs_permit = 0
pin = /obj/item/device/firing_pin/tag/blue
@@ -118,7 +120,7 @@
icon_state = "redtag"
desc = "A retro laser gun modified to fire harmless beams red of light. Sound effects included!"
ammo_type = list(/obj/item/ammo_casing/energy/laser/redtag)
- origin_tech = "combat=1;magnets=2"
+ origin_tech = "combat=2;magnets=2"
clumsy_check = 0
needs_permit = 0
pin = /obj/item/device/firing_pin/tag/red
diff --git a/code/modules/projectiles/guns/energy/nuclear.dm b/code/modules/projectiles/guns/energy/nuclear.dm
index ca749d62d40..8661313ec86 100644
--- a/code/modules/projectiles/guns/energy/nuclear.dm
+++ b/code/modules/projectiles/guns/energy/nuclear.dm
@@ -4,7 +4,7 @@
icon_state = "energy"
item_state = null //so the human update icon uses the icon_state instead.
ammo_type = list(/obj/item/ammo_casing/energy/disabler, /obj/item/ammo_casing/energy/laser)
- origin_tech = "combat=3;magnets=2"
+ origin_tech = "combat=4;magnets=3"
modifystate = 2
can_flashlight = 1
ammo_x_offset = 3
@@ -35,6 +35,7 @@
name = "\improper X-01 MultiPhase Energy Gun"
desc = "This is a expensive, modern recreation of a antique laser gun. This gun has several unique firemodes, but lacks the ability to recharge over time."
icon_state = "hoslaser"
+ origin_tech = "combat=5;magnets=4"
force = 10
ammo_type = list(/obj/item/ammo_casing/energy/electrode/hos, /obj/item/ammo_casing/energy/laser/hos, /obj/item/ammo_casing/energy/disabler)
ammo_x_offset = 4
@@ -43,7 +44,7 @@
name = "\improper DRAGnet"
desc = "The \"Dynamic Rapid-Apprehension of the Guilty\" net is a revolution in law enforcement technology."
icon_state = "dragnet"
- origin_tech = "combat=3;magnets=3;materials=4;bluespace=4"
+ origin_tech = "combat=4;magnets=3;bluespace=4"
ammo_type = list(/obj/item/ammo_casing/energy/net, /obj/item/ammo_casing/energy/trap)
can_flashlight = 0
ammo_x_offset = 1
@@ -71,52 +72,10 @@
desc = "An energy gun with an experimental miniaturized nuclear reactor that automatically charges the internal power cell."
icon_state = "nucgun"
item_state = "nucgun"
- origin_tech = "combat=3;materials=5;powerstorage=3"
- var/fail_tick = 0
+ origin_tech = "combat=4;magnets=4;powerstorage=4"
charge_delay = 5
pin = null
can_charge = 0
ammo_x_offset = 1
ammo_type = list(/obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/laser, /obj/item/ammo_casing/energy/disabler)
selfcharge = 1
-
-/obj/item/weapon/gun/energy/gun/nuclear/process()
- if(fail_tick > 0)
- fail_tick--
- ..()
-
-/obj/item/weapon/gun/energy/gun/nuclear/shoot_live_shot()
- failcheck()
- update_icon()
- ..()
-
-/obj/item/weapon/gun/energy/gun/nuclear/proc/failcheck()
- if(!prob(reliability) && istype(loc, /mob/living))
- var/mob/living/M = loc
- switch(fail_tick)
- if(0 to 200)
- fail_tick += (2*(100-reliability))
- M.rad_act(40)
- M << "
Your [name] feels warmer."
- if(201 to INFINITY)
- SSobj.processing.Remove(src)
- M.rad_act(80)
- crit_fail = 1
- M << "
Your [name]'s reactor overloads!"
-
-/obj/item/weapon/gun/energy/gun/nuclear/emp_act(severity)
- ..()
- reliability = max(reliability - round(15/severity), 0) //Do not allow it to go negative!
-
-/obj/item/weapon/gun/energy/gun/nuclear/update_icon()
- ..()
- if(crit_fail)
- overlays += "[icon_state]_fail_3"
- else
- switch(fail_tick)
- if(0)
- overlays += "[icon_state]_fail_0"
- if(1 to 150)
- overlays += "[icon_state]_fail_1"
- if(151 to INFINITY)
- overlays += "[icon_state]_fail_2"
diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm
index 76bde0e0903..e607230872a 100644
--- a/code/modules/projectiles/guns/energy/special.dm
+++ b/code/modules/projectiles/guns/energy/special.dm
@@ -3,7 +3,7 @@
desc = "A man-portable anti-armor weapon designed to disable mechanical threats at range."
icon_state = "ionrifle"
item_state = null //so the human update icon uses the icon_state instead.
- origin_tech = "combat=2;magnets=4"
+ origin_tech = "combat=4;magnets=4"
can_flashlight = 1
w_class = 5
flags = CONDUCT
@@ -20,7 +20,6 @@
name = "ion carbine"
desc = "The MK.II Prototype Ion Projector is a lightweight carbine version of the larger ion rifle, built to be ergonomic and efficient."
icon_state = "ioncarbine"
- origin_tech = "combat=4;magnets=4;materials=4"
w_class = 3
slot_flags = SLOT_BELT
pin = null
@@ -32,7 +31,7 @@
name = "biological demolecularisor"
desc = "A gun that discharges high amounts of controlled radiation to slowly break a target into component elements."
icon_state = "decloner"
- origin_tech = "combat=5;materials=4;powerstorage=3"
+ origin_tech = "combat=4;materials=4;biotech=5;plasmatech=6"
ammo_type = list(/obj/item/ammo_casing/energy/declone)
pin = null
ammo_x_offset = 1
@@ -49,7 +48,7 @@
icon_state = "flora"
item_state = "gun"
ammo_type = list(/obj/item/ammo_casing/energy/flora/yield, /obj/item/ammo_casing/energy/flora/mut)
- origin_tech = "materials=2;biotech=3;powerstorage=3"
+ origin_tech = "materials=2;biotech=4"
modifystate = 1
ammo_x_offset = 1
selfcharge = 1
@@ -94,11 +93,10 @@
needs_permit = 0
var/overheat_time = 16
unique_rename = 1
+ origin_tech = "combat=3;powerstorage=3;engineering=3"
weapon_weight = WEAPON_LIGHT
- origin_tech = "combat=2;powerstorage=1"
var/holds_charge = FALSE
var/unique_frequency = FALSE // modified by KA modkits
-
var/overheat = FALSE
/obj/item/weapon/gun/energy/kinetic_accelerator/super
@@ -107,7 +105,7 @@
icon_state = "kineticgun_u"
ammo_type = list(/obj/item/ammo_casing/energy/kinetic/super)
overheat_time = 15
- origin_tech = "combat=3;powerstorage=2"
+ origin_tech = "materials=5;powerstorage=3;engineering=4;magnets=3;combat=3"
/obj/item/weapon/gun/energy/kinetic_accelerator/hyper
name = "hyper-kinetic accelerator"
@@ -115,7 +113,7 @@
icon_state = "kineticgun_h"
ammo_type = list(/obj/item/ammo_casing/energy/kinetic/hyper)
overheat_time = 14
- origin_tech = "combat=4;powerstorage=3"
+ origin_tech = "materials=6;powerstorage=4;engineering=4;magnets=4;combat=4"
/obj/item/weapon/gun/energy/kinetic_accelerator/cyborg
holds_charge = TRUE
@@ -192,7 +190,7 @@
item_state = "crossbow"
w_class = 2
materials = list(MAT_METAL=2000)
- origin_tech = "combat=2;magnets=2;syndicate=5"
+ origin_tech = "combat=4;magnets=4;syndicate=5"
suppressed = 1
ammo_type = list(/obj/item/ammo_casing/energy/bolt)
weapon_weight = WEAPON_LIGHT
@@ -207,7 +205,7 @@
icon_state = "crossbowlarge"
w_class = 3
materials = list(MAT_METAL=4000)
- origin_tech = "combat=2;magnets=2;syndicate=3" //can be further researched for more syndie tech
+ origin_tech = "combat=4;magnets=4;syndicate=2"
suppressed = 0
ammo_type = list(/obj/item/ammo_casing/energy/bolt/large)
pin = null
@@ -225,7 +223,7 @@
icon_state = "plasmacutter"
item_state = "plasmacutter"
modifystate = -1
- origin_tech = "combat=1;materials=3;magnets=2;plasmatech=2;engineering=1"
+ origin_tech = "combat=1;materials=3;magnets=2;plasmatech=3;engineering=1"
ammo_type = list(/obj/item/ammo_casing/energy/plasma)
flags = CONDUCT | OPENCONTAINER
attack_verb = list("attacked", "slashed", "cut", "sliced")
@@ -258,7 +256,7 @@
/obj/item/weapon/gun/energy/plasmacutter/adv
name = "advanced plasma cutter"
icon_state = "adv_plasmacutter"
- origin_tech = "combat=3;materials=4;magnets=3;plasmatech=3;engineering=2"
+ origin_tech = "combat=3;materials=4;magnets=3;plasmatech=4;engineering=2"
force = 15
ammo_type = list(/obj/item/ammo_casing/energy/plasma/adv)
@@ -268,6 +266,7 @@
ammo_type = list(/obj/item/ammo_casing/energy/wormhole, /obj/item/ammo_casing/energy/wormhole/orange)
item_state = null
icon_state = "wormhole_projector"
+ origin_tech = "combat=4;bluespace=6;plasmatech=4;engineering=4"
var/obj/effect/portal/blue
var/obj/effect/portal/orange
@@ -330,7 +329,7 @@
name = "temperature gun"
icon_state = "freezegun"
desc = "A gun that changes temperatures."
- origin_tech = "combat=3;materials=4;powerstorage=3;magnets=2"
+ origin_tech = "combat=4;materials=4;powerstorage=3;magnets=2"
ammo_type = list(/obj/item/ammo_casing/energy/temp, /obj/item/ammo_casing/energy/temp/hot)
cell_type = "/obj/item/weapon/stock_parts/cell/high"
pin = null
@@ -342,7 +341,7 @@
desc = "A specialized ASMD laser-rifle, capable of flat-out disintegrating most targets in a single hit."
ammo_type = list(/obj/item/ammo_casing/energy/instakill)
force = 60
- origin_tech = null
+ origin_tech = "combat=7;magnets=6"
/obj/item/weapon/gun/energy/laser/instakill/red
desc = "A specialized ASMD laser-rifle, capable of flat-out disintegrating most targets in a single hit. This one has a red design."
diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm
index 32e1413a173..be0ba75daaf 100644
--- a/code/modules/projectiles/guns/energy/stun.dm
+++ b/code/modules/projectiles/guns/energy/stun.dm
@@ -4,6 +4,7 @@
icon_state = "taser"
item_state = null //so the human update icon uses the icon_state instead.
ammo_type = list(/obj/item/ammo_casing/energy/electrode)
+ origin_tech = "combat=3"
ammo_x_offset = 3
/obj/item/weapon/gun/energy/shock_revolver
@@ -12,6 +13,7 @@
icon_state = "tesla"
item_state = "tesla"
ammo_type = list(/obj/item/ammo_casing/energy/shock_revolver)
+ origin_tech = "combat=4;materials=4;powerstorage=4"
can_flashlight = 0
pin = null
shaded_charge = 1
@@ -21,7 +23,7 @@
desc = "A dual-mode taser designed to fire both short-range high-power electrodes and long-range disabler beams."
icon_state = "advtaser"
ammo_type = list(/obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/disabler)
- origin_tech = null
+ origin_tech = "combat=4"
ammo_x_offset = 2
/obj/item/weapon/gun/energy/gun/advtaser/cyborg
@@ -38,7 +40,7 @@
name = "disabler"
desc = "A self-defense weapon that exhausts organic targets, weakening them until they collapse."
icon_state = "disabler"
- item_state = null
+ item_state = "combat=3"
ammo_type = list(/obj/item/ammo_casing/energy/disabler)
ammo_x_offset = 3
diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm
index 38341d80ad2..ded42d49293 100644
--- a/code/modules/projectiles/guns/projectile/automatic.dm
+++ b/code/modules/projectiles/guns/projectile/automatic.dm
@@ -85,7 +85,7 @@
desc = "A bullpup two-round burst .45 SMG, designated 'C-20r'. Has a 'Scarborough Arms - Per falcis, per pravitas' buttstamp."
icon_state = "c20r"
item_state = "c20r"
- origin_tech = "combat=5;materials=2;syndicate=8"
+ origin_tech = "combat=5;materials=2;syndicate=6"
mag_type = /obj/item/ammo_box/magazine/smgm45
fire_sound = 'sound/weapons/Gunshot_smg.ogg'
fire_delay = 2
@@ -128,7 +128,7 @@
name = "\improper 'Type U3' Uzi"
desc = "A lightweight, burst-fire submachine gun, for when you really want someone dead. Uses 9mm rounds."
icon_state = "mini-uzi"
- origin_tech = "combat=5;materials=2;syndicate=8"
+ origin_tech = "combat=4;materials=2;syndicate=4"
mag_type = /obj/item/ammo_box/magazine/uzim9mm
burst_size = 2
@@ -137,7 +137,7 @@
desc = "A three-round burst 5.56 toploading carbine, designated 'M-90gl'. Has an attached underbarrel grenade launcher which can be toggled on and off."
icon_state = "m90"
item_state = "m90"
- origin_tech = "combat=5;materials=2;syndicate=8"
+ origin_tech = "combat=5;materials=2;syndicate=6"
mag_type = /obj/item/ammo_box/magazine/m556
fire_sound = 'sound/weapons/Gunshot_smg.ogg'
can_suppress = 0
@@ -213,7 +213,7 @@
item_state = "shotgun"
w_class = 5
slot_flags = 0
- origin_tech = "combat=5;materials=1;syndicate=2"
+ origin_tech = "combat=5;materials=1;syndicate=3"
mag_type = /obj/item/ammo_box/magazine/tommygunm45
fire_sound = 'sound/weapons/Gunshot_smg.ogg'
can_suppress = 0
@@ -226,7 +226,7 @@
icon_state = "arg"
item_state = "arg"
slot_flags = 0
- origin_tech = "combat=5;materials=1"
+ origin_tech = "combat=6;engineering=4"
mag_type = /obj/item/ammo_box/magazine/m556
fire_sound = 'sound/weapons/Gunshot_smg.ogg'
can_suppress = 0
@@ -243,7 +243,7 @@
icon_state = "bulldog"
item_state = "bulldog"
w_class = 3
- origin_tech = "combat=5;materials=4;syndicate=6"
+ origin_tech = "combat=6;materials=4;syndicate=6"
mag_type = /obj/item/ammo_box/magazine/m12g
fire_sound = 'sound/weapons/Gunshot.ogg'
can_suppress = 0
@@ -274,4 +274,4 @@
/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/afterattack()
..()
empty_alarm()
- return
\ No newline at end of file
+ return
diff --git a/code/modules/projectiles/guns/projectile/launchers.dm b/code/modules/projectiles/guns/projectile/launchers.dm
index 368c78e26cb..42ed81805ed 100644
--- a/code/modules/projectiles/guns/projectile/launchers.dm
+++ b/code/modules/projectiles/guns/projectile/launchers.dm
@@ -35,7 +35,7 @@
desc = "A prototype pistol designed to fire self propelled rockets."
icon_state = "gyropistol"
fire_sound = 'sound/weapons/grenadelaunch.ogg'
- origin_tech = "combat=3"
+ origin_tech = "combat=5"
mag_type = /obj/item/ammo_box/magazine/m75
burst_size = 1
fire_delay = 0
@@ -54,6 +54,7 @@
icon_state = "speargun"
item_state = "speargun"
w_class = 4
+ origin_tech = "combat=4;engineering=4"
force = 10
can_suppress = 0
mag_type = /obj/item/ammo_box/magazine/internal/speargun
diff --git a/code/modules/projectiles/guns/projectile/pistol.dm b/code/modules/projectiles/guns/projectile/pistol.dm
index 5c45df2cb17..ab0aa609ef0 100644
--- a/code/modules/projectiles/guns/projectile/pistol.dm
+++ b/code/modules/projectiles/guns/projectile/pistol.dm
@@ -3,7 +3,7 @@
desc = "A small, easily concealable 10mm handgun. Has a threaded barrel for suppressors."
icon_state = "pistol"
w_class = 2
- origin_tech = "combat=2;materials=2;syndicate=2"
+ origin_tech = "combat=3;materials=2;syndicate=4"
mag_type = /obj/item/ammo_box/magazine/m10mm
can_suppress = 1
burst_size = 1
@@ -55,4 +55,4 @@
can_suppress = 0
burst_size = 3
fire_delay = 2
- actions_types = list(/datum/action/item_action/toggle_firemode)
\ No newline at end of file
+ actions_types = list(/datum/action/item_action/toggle_firemode)
diff --git a/code/modules/projectiles/guns/projectile/rechargable_magazine.dm b/code/modules/projectiles/guns/projectile/rechargable_magazine.dm
index 3f3e50a8f1a..63f747ba104 100644
--- a/code/modules/projectiles/guns/projectile/rechargable_magazine.dm
+++ b/code/modules/projectiles/guns/projectile/rechargable_magazine.dm
@@ -155,7 +155,7 @@
icon = 'icons/obj/guns/minigun.dmi'
icon_state = "minigun_spin"
item_state = "minigun"
- origin_tech = null
+ origin_tech = "combat=6;powerstorage=5;magnets=4"
flags = CONDUCT | HANDSLOW
slowdown = 1
slot_flags = null
diff --git a/code/modules/projectiles/guns/projectile/revolver.dm b/code/modules/projectiles/guns/projectile/revolver.dm
index 03580c9478e..a238c60623a 100644
--- a/code/modules/projectiles/guns/projectile/revolver.dm
+++ b/code/modules/projectiles/guns/projectile/revolver.dm
@@ -3,6 +3,7 @@
desc = "A suspicious revolver. Uses .357 ammo." //usually used by syndicates
icon_state = "revolver"
mag_type = /obj/item/ammo_box/magazine/internal/cylinder
+ origin_tech = "combat=3;materials=2"
/obj/item/weapon/gun/projectile/revolver/New()
..()
@@ -92,7 +93,6 @@
name = "\improper .38 Mars Special"
desc = "A cheap Martian knock-off of a classic law enforcement firearm. Uses .38-special rounds."
icon_state = "detective"
- origin_tech = "combat=2;materials=2"
mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev38
unique_rename = 1
unique_reskin = 1
@@ -151,7 +151,6 @@
name = "\improper Unica 6 auto-revolver"
desc = "A retro high-powered autorevolver typically used by officers of the New Russia military. Uses .357 ammo."
icon_state = "mateba"
- origin_tech = "combat=2;materials=2"
/obj/item/weapon/gun/projectile/revolver/golden
name = "\improper Golden revolver"
@@ -290,7 +289,6 @@
force = 10
flags = CONDUCT
slot_flags = SLOT_BACK
- origin_tech = "combat=3;materials=1"
mag_type = /obj/item/ammo_box/magazine/internal/shot/dual
sawn_desc = "Omar's coming!"
unique_rename = 1
@@ -344,7 +342,6 @@
w_class = 4
force = 10
slot_flags = null
- origin_tech = "combat=2;materials=2"
mag_type = /obj/item/ammo_box/magazine/internal/shot/improvised
sawn_desc = "I'm just here for the gasoline."
unique_rename = 0
@@ -373,4 +370,4 @@
if(. && slung) //sawing off the gun removes the sling
new /obj/item/stack/cable_coil(get_turf(src), 10)
slung = 0
- update_icon()
\ No newline at end of file
+ update_icon()
diff --git a/code/modules/projectiles/guns/projectile/saw.dm b/code/modules/projectiles/guns/projectile/saw.dm
index ebc79dfd8ad..238257c4451 100644
--- a/code/modules/projectiles/guns/projectile/saw.dm
+++ b/code/modules/projectiles/guns/projectile/saw.dm
@@ -5,7 +5,7 @@
item_state = "l6closedmag"
w_class = 5
slot_flags = 0
- origin_tech = "combat=5;materials=1;syndicate=2"
+ origin_tech = "combat=6;engineering=3;syndicate=6"
mag_type = /obj/item/ammo_box/magazine/mm556x45
weapon_weight = WEAPON_MEDIUM
fire_sound = 'sound/weapons/Gunshot_smg.ogg'
@@ -169,5 +169,3 @@ obj/item/projectile/bullet/saw/incen/Move()
/obj/item/ammo_casing/mm556x45/incen
desc = "A 556x45mm bullet casing designed with a chemical-filled capsule on the tip that when bursted, reacts with the atmosphere to produce a fireball, engulfing the target in flames. "
projectile_type = /obj/item/projectile/bullet/saw/incen
-
-
diff --git a/code/modules/projectiles/guns/projectile/shotgun.dm b/code/modules/projectiles/guns/projectile/shotgun.dm
index 1b9869e6273..cd3834253ef 100644
--- a/code/modules/projectiles/guns/projectile/shotgun.dm
+++ b/code/modules/projectiles/guns/projectile/shotgun.dm
@@ -155,7 +155,6 @@
src.throw_at_fast(pick(oview(7,get_turf(user))),1,1)
user.visible_message("
[user] tosses aside the spent rifle!")
-
// Automatic Shotguns//
/obj/item/weapon/gun/projectile/shotgun/automatic/shoot_live_shot(mob/living/user as mob|obj)
@@ -166,7 +165,7 @@
name = "combat shotgun"
desc = "A semi automatic shotgun with tactical furniture and a six-shell capacity underneath."
icon_state = "cshotgun"
- origin_tech = "combat=5;materials=2"
+ origin_tech = "combat=6"
mag_type = /obj/item/ammo_box/magazine/internal/shot/com
w_class = 5
@@ -204,11 +203,10 @@
else
user << "You switch to tube A."
-
/obj/item/weapon/gun/projectile/shotgun/automatic/dual_tube/AltClick(mob/living/user)
if(user.incapacitated() || !Adjacent(user) || !istype(user))
return
pump()
-// DOUBLE BARRELED SHOTGUN and IMPROVISED SHOTGUN are in revolver.dm
\ No newline at end of file
+// DOUBLE BARRELED SHOTGUN and IMPROVISED SHOTGUN are in revolver.dm
diff --git a/code/modules/projectiles/guns/projectile/sniper.dm b/code/modules/projectiles/guns/projectile/sniper.dm
index 3cb65acd8ed..4a6de67615d 100644
--- a/code/modules/projectiles/guns/projectile/sniper.dm
+++ b/code/modules/projectiles/guns/projectile/sniper.dm
@@ -8,7 +8,7 @@
weapon_weight = WEAPON_MEDIUM
mag_type = /obj/item/ammo_box/magazine/sniper_rounds
fire_delay = 40
- origin_tech = "combat=8"
+ origin_tech = "combat=7"
can_unsuppress = 1
can_suppress = 1
w_class = 3
@@ -28,7 +28,7 @@
name = "syndicate sniper rifle"
desc = "Syndicate flavoured sniper rifle, it packs quite a punch, a punch to your face"
pin = /obj/item/device/firing_pin/implant/pindicate
- origin_tech = "combat=8;syndicate=4"
+ origin_tech = "combat=7;syndicate=6"
@@ -108,7 +108,6 @@
name = "sniper rounds (Bleed)"
desc = "Haemorrhage sniper rounds, leaves your target in a pool of crimson pain"
icon_state = "haemorrhage"
- origin_tech = "combat=7;syndicate=5"
ammo_type = /obj/item/ammo_casing/haemorrhage
max_ammo = 5
caliber = ".50"
@@ -139,6 +138,7 @@
name = "sniper rounds (penetrator)"
desc = "An extremely powerful round capable of passing straight through cover and anyone unfortunate enough to be behind it."
ammo_type = /obj/item/ammo_casing/penetrator
+ origin_tech = "combat=6;syndicate=3"
max_ammo = 5
/obj/item/ammo_casing/penetrator
diff --git a/code/modules/projectiles/guns/syringe_gun.dm b/code/modules/projectiles/guns/syringe_gun.dm
index 023c7c2fd02..04b438f82f8 100644
--- a/code/modules/projectiles/guns/syringe_gun.dm
+++ b/code/modules/projectiles/guns/syringe_gun.dm
@@ -8,6 +8,7 @@
throw_range = 7
force = 4
materials = list(MAT_METAL=2000)
+ origin_tech = "combat=3;biotech=3"
clumsy_check = 0
fire_sound = 'sound/items/syringeproj.ogg'
var/list/syringes = list()
@@ -86,7 +87,7 @@
icon_state = "syringe_pistol"
item_state = "gun" //Smaller inhand
w_class = 2
- origin_tech = "combat=2;syndicate=2"
+ origin_tech = "combat=2;syndicate=2;biotech=3"
force = 2 //Also very weak because it's smaller
suppressed = 1 //Softer fire sound
can_unsuppress = 0 //Permanently silenced
diff --git a/code/modules/projectiles/pins.dm b/code/modules/projectiles/pins.dm
index 9b8e75bb6ef..649502e0597 100644
--- a/code/modules/projectiles/pins.dm
+++ b/code/modules/projectiles/pins.dm
@@ -4,6 +4,7 @@
icon = 'icons/obj/device.dmi'
icon_state = "firing_pin"
item_state = "pen"
+ origin_tech = "materials=2;combat=4"
flags = CONDUCT
w_class = 1
attack_verb = list("poked")
@@ -78,6 +79,7 @@
desc = "This safety firing pin allows weapons to be fired within proximity to a firing range."
fail_message = "
TEST RANGE CHECK FAILED."
pin_removeable = 1
+ origin_tech = "combat=2;materials=2"
/obj/item/device/firing_pin/test_range/pin_auth(mob/living/user)
for(var/obj/machinery/magnetic_controller/M in range(user, 3))
diff --git a/code/modules/reagents/chemistry/machinery/chem_heater.dm b/code/modules/reagents/chemistry/machinery/chem_heater.dm
index 5a097bdc746..33daa476e62 100644
--- a/code/modules/reagents/chemistry/machinery/chem_heater.dm
+++ b/code/modules/reagents/chemistry/machinery/chem_heater.dm
@@ -19,7 +19,7 @@
/obj/item/weapon/circuitboard/machine/chem_heater
name = "circuit board (Chemical Heater)"
build_path = /obj/machinery/chem_heater
- origin_tech = "materials=2;engineering=2"
+ origin_tech = "programming=2;engineering=2;biotech=2"
req_components = list(
/obj/item/weapon/stock_parts/micro_laser = 1,
/obj/item/weapon/stock_parts/console_screen = 1)
@@ -126,4 +126,4 @@
beaker.loc = get_turf(src)
beaker.reagents.handle_reactions()
beaker = null
- icon_state = "mixer0b"
\ No newline at end of file
+ icon_state = "mixer0b"
diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm
index 62dd95ad8fb..d4b03fe86dd 100644
--- a/code/modules/reagents/chemistry/machinery/chem_master.dm
+++ b/code/modules/reagents/chemistry/machinery/chem_master.dm
@@ -24,7 +24,7 @@
/obj/item/weapon/circuitboard/machine/chem_master
name = "circuit board (ChemMaster 3000)"
build_path = /obj/machinery/chem_master
- origin_tech = "materials=2;programming=2;biotech=1"
+ origin_tech = "materials=3;programming=2;biotech=3"
req_components = list(
/obj/item/weapon/reagent_containers/glass/beaker = 2,
/obj/item/weapon/stock_parts/manipulator = 1,
@@ -321,4 +321,4 @@
/obj/item/weapon/circuitboard/machine/chem_master/condi
name = "circuit board (CondiMaster 3000)"
- build_path = /obj/machinery/chem_master/condimaster
\ No newline at end of file
+ build_path = /obj/machinery/chem_master/condimaster
diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm
index 0a25b46d7d0..2ce699a197e 100644
--- a/code/modules/reagents/reagent_containers/glass.dm
+++ b/code/modules/reagents/reagent_containers/glass.dm
@@ -177,9 +177,10 @@
desc = "A cryostasis beaker that allows for chemical storage without \
reactions. Can hold up to 50 units."
icon_state = "beakernoreact"
- materials = list(MAT_GLASS=500)
+ materials = list(MAT_METAL=3000)
volume = 50
amount_per_transfer_from_this = 10
+ origin_tech = "materials=2;engineering=3;plasmatech=3"
flags = OPENCONTAINER
/obj/item/weapon/reagent_containers/glass/beaker/noreact/New()
@@ -192,11 +193,12 @@
and Element Cuban combined with the Compound Pete. Can hold up to \
300 units."
icon_state = "beakerbluespace"
- materials = list(MAT_GLASS=5000)
+ materials = list(MAT_GLASS=3000)
volume = 300
amount_per_transfer_from_this = 10
possible_transfer_amounts = list(5,10,15,20,25,30,50,100,300)
flags = OPENCONTAINER
+ origin_tech = "bluespace=5;materials=4;plasmatech=4"
/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone
list_reagents = list("cryoxadone" = 30)
diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm
index 68bc332d528..d332034b137 100644
--- a/code/modules/reagents/reagent_containers/syringes.dm
+++ b/code/modules/reagents/reagent_containers/syringes.dm
@@ -261,11 +261,13 @@
desc = "An advanced syringe that can hold 60 units of chemicals"
amount_per_transfer_from_this = 20
volume = 60
+ origin_tech = "bluespace=4;materials=4;biotech=4"
/obj/item/weapon/reagent_containers/syringe/noreact
name = "cryo syringe"
desc = "An advanced syringe that stops reagents inside from reacting. It can hold up to 20 units."
volume = 20
+ origin_tech = "materials=3;engineering=3"
/obj/item/weapon/reagent_containers/syringe/noreact/New()
. = ..()
@@ -276,3 +278,4 @@
desc = "A diamond-tipped syringe that pierces armor when launched at high velocity. It can hold up to 10 units."
volume = 10
projectile_type = /obj/item/projectile/bullet/dart/syringe/piercing
+ origin_tech = "combat=3;materials=4;engineering=5"
diff --git a/code/modules/research/circuitprinter.dm b/code/modules/research/circuitprinter.dm
index 7183b72080f..0da4c5e927e 100644
--- a/code/modules/research/circuitprinter.dm
+++ b/code/modules/research/circuitprinter.dm
@@ -66,11 +66,11 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis).
/obj/machinery/r_n_d/circuit_imprinter/proc/check_mat(datum/design/being_built, M)
switch(M)
if(MAT_GLASS)
- return (g_amount - (being_built.materials[M]) >= 0)
+ return (g_amount - (being_built.materials[M]/efficiency_coeff) >= 0)
if(MAT_GOLD)
- return (gold_amount - (being_built.materials[M]) >= 0)
+ return (gold_amount - (being_built.materials[M]/efficiency_coeff) >= 0)
if(MAT_DIAMOND)
- return (diamond_amount - (being_built.materials[M]) >= 0)
+ return (diamond_amount - (being_built.materials[M]/efficiency_coeff) >= 0)
else
return (reagents.has_reagent(M, (being_built.materials[M]/efficiency_coeff)) != 0)
diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm
index 60869979e71..1204ac11d3a 100644
--- a/code/modules/research/designs.dm
+++ b/code/modules/research/designs.dm
@@ -1,6 +1,6 @@
/***************************************************************
** Design Datums **
-** All the data for building stuff and tracking reliability. **
+** All the data for building stuff. **
***************************************************************/
/*
For the materials datum, it assumes you need reagents unless specified otherwise. To designate a material that isn't a reagent,
@@ -20,9 +20,6 @@ The currently supporting non-reagent materials. All material amounts are set as
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 (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.
- A single sheet of anything is 2000 units of material. Materials besides metal/glass require help from other jobs (mining for
other types of metals and chemistry for reagents).
@@ -33,8 +30,7 @@ other types of metals and chemistry for reagents).
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. //Reliability modifier of the device at it's starting point.
- var/reliability = 100 //Reliability of the device.
+ var/list/req_tech = list() //IDs of that techs the object originated from and the minimum level requirements.
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.
var/construction_time //Amount of time required for building the object
@@ -44,18 +40,6 @@ other types of metals and chemistry for reagents).
var/maxstack = 1
-//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(list/temp_techs)
- 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, 100)
- reliability = new_reliability
- return
-
-
////////////////////////////////////////
//Disks for transporting design datums//
////////////////////////////////////////
@@ -64,7 +48,7 @@ other types of metals and chemistry for reagents).
name = "Component Design Disk"
desc = "A disk for storing device design data for construction in lathes."
icon_state = "datadisk1"
- materials = list(MAT_METAL=30, MAT_GLASS=10)
+ materials = list(MAT_METAL=100, MAT_GLASS=100)
var/datum/design/blueprint
/obj/item/weapon/disk/design_disk/New()
@@ -79,7 +63,7 @@ other types of metals and chemistry for reagents).
name = "Intellicard AI Transportation System"
desc = "Allows for the construction of an intellicard."
id = "intellicard"
- req_tech = list("programming" = 4, "materials" = 4)
+ req_tech = list("programming" = 3, "materials" = 3)
build_type = PROTOLATHE
materials = list(MAT_GLASS = 1000, MAT_GOLD = 200)
build_path = /obj/item/device/aicard
@@ -105,7 +89,7 @@ other types of metals and chemistry for reagents).
id = "design_disk"
req_tech = list("programming" = 1)
build_type = PROTOLATHE | AUTOLATHE
- materials = list(MAT_METAL = 30, MAT_GLASS = 10)
+ materials = list(MAT_METAL = 300, MAT_GLASS = 100)
build_path = /obj/item/weapon/disk/design_disk
category = list("Electronics")
@@ -115,7 +99,7 @@ other types of metals and chemistry for reagents).
id = "tech_disk"
req_tech = list("programming" = 1)
build_type = PROTOLATHE | AUTOLATHE
- materials = list(MAT_METAL = 30, MAT_GLASS = 10)
+ materials = list(MAT_METAL = 300, MAT_GLASS = 100)
build_path = /obj/item/weapon/disk/tech_disk
category = list("Electronics")
@@ -128,7 +112,7 @@ other types of metals and chemistry for reagents).
name = "Mining Drill"
desc = "Yours is the drill that will pierce through the rock walls."
id = "drill"
- req_tech = list("materials" = 2, "powerstorage" = 3, "engineering" = 2)
+ req_tech = list("materials" = 2, "powerstorage" = 2, "engineering" = 3)
build_type = PROTOLATHE
materials = list(MAT_METAL = 6000, MAT_GLASS = 1000) //expensive, but no need for miners.
build_path = /obj/item/weapon/pickaxe/drill
@@ -138,10 +122,9 @@ other types of metals and chemistry for reagents).
name = "Diamond-Tipped Mining Drill"
desc = "Yours is the drill that will pierce the heavens!"
id = "drill_diamond"
- req_tech = list("materials" = 6, "powerstorage" = 4, "engineering" = 4)
+ req_tech = list("materials" = 6, "powerstorage" = 5, "engineering" = 5)
build_type = PROTOLATHE
materials = list(MAT_METAL = 6000, MAT_GLASS = 1000, MAT_DIAMOND = 2000) //Yes, a whole diamond is needed.
- reliability = 79
build_path = /obj/item/weapon/pickaxe/drill/diamonddrill
category = list("Mining Designs")
@@ -149,10 +132,9 @@ other types of metals and chemistry for reagents).
name = "Plasma Cutter"
desc = "You could use it to cut limbs off of xenos! Or, you know, mine stuff."
id = "plasmacutter"
- req_tech = list("materials" = 2, "plasmatech" = 2, "engineering" = 2, "combat" = 1, "magnets" = 2)
+ req_tech = list("materials" = 3, "plasmatech" = 3, "magnets" = 2)
build_type = PROTOLATHE
materials = list(MAT_METAL = 1500, MAT_GLASS = 500, MAT_PLASMA = 400)
- reliability = 79
build_path = /obj/item/weapon/gun/energy/plasmacutter
category = list("Mining Designs")
@@ -160,10 +142,9 @@ other types of metals and chemistry for reagents).
name = "Advanced Plasma Cutter"
desc = "It's an advanced plasma cutter, oh my god."
id = "plasmacutter_adv"
- req_tech = list("materials" = 4, "plasmatech" = 3, "engineering" = 3, "combat" = 3, "magnets" = 3)
+ req_tech = list("materials" = 4, "plasmatech" = 4, "engineering" = 2, "combat" = 3, "magnets" = 3)
build_type = PROTOLATHE
materials = list(MAT_METAL = 3000, MAT_GLASS = 1000, MAT_PLASMA = 2000, MAT_GOLD = 500)
- reliability = 79
build_path = /obj/item/weapon/gun/energy/plasmacutter/adv
category = list("Mining Designs")
@@ -171,7 +152,7 @@ other types of metals and chemistry for reagents).
name = "Sonic Jackhammer"
desc = "Essentially a handheld planet-cracker. Can drill through walls with ease as well."
id = "jackhammer"
- req_tech = list("materials" = 6, "powerstorage" = 6, "engineering" = 5, "magnets" = 6)
+ req_tech = list("materials" = 7, "powerstorage" = 5, "engineering" = 6, "magnets" = 5)
build_type = PROTOLATHE
materials = list(MAT_METAL = 6000, MAT_GLASS = 2000, MAT_SILVER = 2000, MAT_DIAMOND = 6000)
build_path = /obj/item/weapon/pickaxe/drill/jackhammer
@@ -201,7 +182,7 @@ other types of metals and chemistry for reagents).
name = "Hyper-Kinetic Accelerator"
desc = "An upgraded version of the proto-kinetic accelerator, with even more superior damage, speed and range."
id = "hyperaccelerator"
- req_tech = list("materials" = 6, "powerstorage" = 6, "engineering" = 5, "magnets" = 6, "combat" = 4)
+ req_tech = list("materials" = 7, "powerstorage" = 5, "engineering" = 5, "magnets" = 5, "combat" = 4)
build_type = PROTOLATHE
materials = list(MAT_METAL = 8000, MAT_GLASS = 1500, MAT_SILVER = 2000, MAT_GOLD = 2000, MAT_DIAMOND = 2000)
build_path = /obj/item/weapon/gun/energy/kinetic_accelerator/hyper
@@ -213,7 +194,7 @@ other types of metals and chemistry for reagents).
id = "superresonator"
req_tech = list("materials" = 4, "powerstorage" = 3, "engineering" = 3, "magnets" = 3)
build_type = PROTOLATHE
- materials = list(MAT_METAL = 4000, MAT_GLASS = 1500, MAT_SILVER = 2000, MAT_URANIUM = 2000)
+ materials = list(MAT_METAL = 4000, MAT_GLASS = 1500, MAT_SILVER = 1000, MAT_URANIUM = 1000)
build_path = /obj/item/weapon/resonator/upgraded
category = list("Mining Designs")
@@ -227,7 +208,7 @@ other types of metals and chemistry for reagents).
id = "beacon"
req_tech = list("bluespace" = 1)
build_type = PROTOLATHE
- materials = list(MAT_METAL = 20, MAT_GLASS = 10)
+ materials = list(MAT_METAL = 150, MAT_GLASS = 100)
build_path = /obj/item/device/radio/beacon
category = list("Bluespace Designs")
@@ -235,10 +216,9 @@ other types of metals and chemistry for reagents).
name = "Bag of Holding"
desc = "A backpack that opens into a localized pocket of Blue Space."
id = "bag_holding"
- req_tech = list("bluespace" = 4, "materials" = 6)
+ req_tech = list("bluespace" = 7, "materials" = 5, "engineering" = 6, "plasmatech" = 5)
build_type = PROTOLATHE
materials = list(MAT_GOLD = 3000, MAT_DIAMOND = 1500, MAT_URANIUM = 250)
- reliability = 80
build_path = /obj/item/weapon/storage/backpack/holding
category = list("Bluespace Designs")
@@ -246,10 +226,9 @@ other types of metals and chemistry for reagents).
name = "Artificial Bluespace Crystal"
desc = "A small blue crystal with mystical properties."
id = "bluespace_crystal"
- req_tech = list("bluespace" = 4, "materials" = 6)
+ req_tech = list("bluespace" = 3, "materials" = 6, "plasmatech" = 4)
build_type = PROTOLATHE
materials = list(MAT_DIAMOND = 1500, MAT_PLASMA = 1500)
- reliability = 100
build_path = /obj/item/weapon/ore/bluespace_crystal/artificial
category = list("Bluespace Designs")
@@ -267,10 +246,9 @@ other types of metals and chemistry for reagents).
name = "Mining Satchel of Holding"
desc = "A mining satchel that can hold an infinite amount of ores."
id = "minerbag_holding"
- req_tech = list("bluespace" = 3, "materials" = 4)
+ req_tech = list("bluespace" = 4, "materials" = 3, "engineering" = 4)
build_type = PROTOLATHE
materials = list(MAT_GOLD = 250, MAT_URANIUM = 500) //quite cheap, for more convenience
- reliability = 100
build_path = /obj/item/weapon/storage/bag/ore/holding
category = list("Bluespace Designs")
@@ -285,7 +263,7 @@ other types of metals and chemistry for reagents).
id = "health_hud"
req_tech = list("biotech" = 2, "magnets" = 3)
build_type = PROTOLATHE
- materials = list(MAT_METAL = 50, MAT_GLASS = 50)
+ materials = list(MAT_METAL = 500, MAT_GLASS = 500)
build_path = /obj/item/clothing/glasses/hud/health
category = list("Equipment")
@@ -293,9 +271,9 @@ other types of metals and chemistry for reagents).
name = "Night Vision Health Scanner HUD"
desc = "An advanced medical head-up display that allows doctors to find patients in complete darkness."
id = "health_hud_night"
- req_tech = list("biotech" = 4, "magnets" = 5)
+ req_tech = list("biotech" = 4, "magnets" = 5, "plasmatech" = 4, "engineering" = 6)
build_type = PROTOLATHE
- materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_URANIUM = 1000, MAT_SILVER = 250)
+ materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_URANIUM = 1000, MAT_SILVER = 350)
build_path = /obj/item/clothing/glasses/hud/health/night
category = list("Equipment")
@@ -305,7 +283,7 @@ other types of metals and chemistry for reagents).
id = "security_hud"
req_tech = list("magnets" = 3, "combat" = 2)
build_type = PROTOLATHE
- materials = list(MAT_METAL = 50, MAT_GLASS = 50)
+ materials = list(MAT_METAL = 500, MAT_GLASS = 500)
build_path = /obj/item/clothing/glasses/hud/security
category = list("Equipment")
@@ -313,9 +291,9 @@ other types of metals and chemistry for reagents).
name = "Night Vision Security HUD"
desc = "A heads-up display which provides id data and vision in complete darkness."
id = "security_hud_night"
- req_tech = list("magnets" = 5, "combat" = 4)
+ req_tech = list("combat" = 4, "magnets" = 5, "plasmatech" = 4, "engineering" = 6)
build_type = PROTOLATHE
- materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_URANIUM = 1000, MAT_GOLD = 350)
+ materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_URANIUM = 1000, MAT_GOLD = 350)
build_path = /obj/item/clothing/glasses/hud/security/night
category = list("Equipment")
@@ -323,9 +301,9 @@ datum/design/diagnostic_hud
name = "Diagnostic HUD"
desc = "A HUD used to analyze and determine faults within robotic machinery."
id = "dianostic_hud"
- req_tech = list("magnets" = 3, "engineering" = 3, "powerstorage" = 2)
+ req_tech = list("magnets" = 3, "engineering" = 2)
build_type = PROTOLATHE
- materials = list("$metal" = 50, "$glass" = 50)
+ materials = list(MAT_METAL = 500, MAT_GLASS = 500)
build_path = /obj/item/clothing/glasses/hud/diagnostic
category = list("Equipment")
@@ -333,9 +311,9 @@ datum/design/diagnostic_hud_night
name = "Night Vision Diagnostic HUD"
desc = "Upgraded version of the diagnostic HUD designed to function during a power failure."
id = "dianostic_hud_night"
- req_tech = list("magnets" = 5, "engineering" = 4, "powerstorage" = 4)
+ req_tech = list("magnets" = 5, "plasmatech" = 4, "engineering" = 6, "powerstorage" = 4)
build_type = PROTOLATHE
- materials = list("$metal" = 200, "$glass" = 200, "$uranium" = 1000, "$plasma" = 300)
+ materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_URANIUM = 1000, MAT_PLASMA = 300)
build_path = /obj/item/clothing/glasses/hud/diagnostic/night
category = list("Equipment")
@@ -361,9 +339,9 @@ datum/design/diagnostic_hud_night
name = "Welding Gas Mask"
desc = "A gas mask with built in welding goggles and face shield. Looks like a skull, clearly designed by a nerd."
id = "weldingmask"
- req_tech = list("materials" = 2, "engineering" = 2)
+ req_tech = list("materials" = 2, "engineering" = 3)
build_type = PROTOLATHE
- materials = list(MAT_METAL = 4000, MAT_GLASS = 1000)
+ materials = list(MAT_METAL = 3000, MAT_GLASS = 1000)
build_path = /obj/item/clothing/mask/gas/welding
category = list("Equipment")
@@ -371,8 +349,8 @@ datum/design/diagnostic_hud_night
name = "Portable Seed Extractor"
desc = "For the enterprising botanist on the go. Less efficient than the stationary model, it creates one seed per plant."
build_type = PROTOLATHE
- req_tech = list("biotech" = 2, "materials" = 2)
- materials = list(MAT_METAL = 200, MAT_GLASS = 100)
+ req_tech = list("biotech" = 3, "engineering" = 2)
+ materials = list(MAT_METAL = 1000, MAT_GLASS = 400)
build_path = /obj/item/weapon/storage/bag/plants/portaseeder
category = list("Equipment")
@@ -380,7 +358,7 @@ datum/design/diagnostic_hud_night
name = "Air Horn"
desc = "Damn son, where'd you find this?"
id = "air_horn"
- req_tech = list("materials" = 2, "engineering" = 2)
+ req_tech = list("materials" = 4, "engineering" = 4)
build_type = PROTOLATHE
materials = list(MAT_METAL = 4000, MAT_BANANIUM = 1000)
build_path = /obj/item/weapon/bikehorn/airhorn
@@ -390,9 +368,9 @@ datum/design/diagnostic_hud_night
name = "Optical Meson Scanners"
desc = "Used by engineering and mining staff to see basic structural and terrain layouts through walls, regardless of lighting condition."
id = "mesons"
- req_tech = list("materials" = 3, "magnets" = 2, "engineering" = 2)
+ req_tech = list("magnets" = 2, "engineering" = 2, "plasmatech" = 2)
build_type = PROTOLATHE
- materials = list(MAT_METAL = 200, MAT_GLASS = 300)
+ materials = list(MAT_METAL = 500, MAT_GLASS = 500)
build_path = /obj/item/clothing/glasses/meson
category = list("Equipment")
@@ -400,9 +378,9 @@ datum/design/diagnostic_hud_night
name = "Engineering Scanner Goggles"
desc = "Goggles used by engineers. The Meson Scanner mode lets you see basic structural and terrain layouts through walls, regardless of lighting condition. The T-ray Scanner mode lets you see underfloor objects such as cables and pipes."
id = "engine_goggles"
- req_tech = list("materials" = 4, "magnets" = 3, "engineering" = 4)
+ req_tech = list("materials" = 4, "magnets" = 3, "engineering" = 4, "plasmatech" = 3)
build_type = PROTOLATHE
- materials = list(MAT_METAL = 200, MAT_GLASS = 300, MAT_PLASMA = 100)
+ materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_PLASMA = 100)
build_path = /obj/item/clothing/glasses/meson/engine
category = list("Equipment")
@@ -412,7 +390,7 @@ datum/design/diagnostic_hud_night
id = "tray_goggles"
req_tech = list("materials" = 3, "magnets" = 2, "engineering" = 2)
build_type = PROTOLATHE
- materials = list(MAT_METAL = 200, MAT_GLASS = 300)
+ materials = list(MAT_METAL = 500, MAT_GLASS = 500)
build_path = /obj/item/clothing/glasses/meson/engine/tray
category = list("Equipment")
@@ -420,9 +398,9 @@ datum/design/diagnostic_hud_night
name = "Night Vision Optical Meson Scanners"
desc = "Prototype meson scanners fitted with an extra sensor which amplifies the visible light spectrum and overlays it to the UHD display."
id = "nvgmesons"
- req_tech = list("materials" = 5, "magnets" = 5, "engineering" = 4)
+ req_tech = list("magnets" = 5, "plasmatech" = 5, "engineering" = 6)
build_type = PROTOLATHE
- materials = list(MAT_METAL = 300, MAT_GLASS = 400, MAT_PLASMA = 250, MAT_URANIUM = 1000)
+ materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_PLASMA = 350, MAT_URANIUM = 1000)
build_path = /obj/item/clothing/glasses/meson/night
category = list("Equipment")
@@ -430,9 +408,9 @@ datum/design/diagnostic_hud_night
name = "Night Vision Goggles"
desc = "Goggles that let you see through darkness unhindered."
id = "night_visision_goggles"
- req_tech = list("magnets" = 4)
+ req_tech = list("materials" = 4, "magnets" = 5, "plasmatech" = 5, "engineering" = 5)
build_type = PROTOLATHE
- materials = list(MAT_METAL = 100, MAT_GLASS = 100, MAT_URANIUM = 1000)
+ materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_PLASMA = 350, MAT_URANIUM = 1000)
build_path = /obj/item/clothing/glasses/night
category = list("Equipment")
@@ -450,19 +428,19 @@ datum/design/diagnostic_hud_night
name = "Science Goggles"
desc = "Goggles fitted with a portable analyzer capable of determining the research worth of an item or components of a machine."
id = "scigoggles"
- req_tech = list("materials" = 3, "magnets" = 3, "engineering" = 2)
+ req_tech = list("magnets" = 2)
build_type = PROTOLATHE
- materials = list(MAT_METAL = 250, MAT_GLASS = 300)
+ materials = list(MAT_METAL = 500, MAT_GLASS = 500)
build_path = /obj/item/clothing/glasses/science
category = list("Equipment")
/datum/design/diskplantgene
- name = "plant data disk"
+ name = "Plant data disk"
desc = "A disk for storing plant genetic data."
id = "diskplantgene"
req_tech = list("programming" = 4, "biotech" = 3)
build_type = PROTOLATHE
- materials = list(MAT_METAL=30, MAT_GLASS=10)
+ materials = list(MAT_METAL=200, MAT_GLASS=100)
build_path = /obj/item/weapon/disk/plantgene
category = list("Electronics")
@@ -484,7 +462,7 @@ datum/design/diagnostic_hud_night
name = "Trashbag of Holding"
desc = "An advanced trashabg with bluespace properties; capable of holding a plethora of garbage."
id = "blutrash"
- req_tech = list("materials" = 5, "bluespace" = 3)
+ req_tech = list("materials" = 5, "bluespace" = 4, "engineering" = 4, "plasmatech" = 3)
build_type = PROTOLATHE
materials = list(MAT_GOLD = 1500, MAT_URANIUM = 250, MAT_PLASMA = 1500)
build_path = /obj/item/weapon/storage/bag/trash/bluespace
@@ -494,7 +472,7 @@ datum/design/diagnostic_hud_night
name = "Floor Buffer Upgrade"
desc = "A floor buffer that can be attached to vehicular janicarts."
id = "buffer"
- req_tech = list("materials" = 5, "engineering" = 3)
+ req_tech = list("materials" = 4, "engineering" = 4)
build_type = PROTOLATHE
materials = list(MAT_METAL = 3000, MAT_GLASS = 200)
build_path = /obj/item/janiupgrade
@@ -504,7 +482,7 @@ datum/design/diagnostic_hud_night
name = "Holographic Sign Projector"
desc = "A holograpic projector used to project various warning signs."
id = "holosign"
- req_tech = list("magnets" = 3, "powerstorage" = 2)
+ req_tech = list("magnets" = 3, "programming" = 3)
build_type = PROTOLATHE
materials = list(MAT_METAL = 2000, MAT_GLASS = 1000)
build_path = /obj/item/weapon/holosign_creator
@@ -518,7 +496,7 @@ datum/design/diagnostic_hud_night
name = "Experimental Welding Tool"
desc = "An experimental welder capable of self-fuel generation."
id = "exwelder"
- req_tech = list("materials" = 4, "engineering" = 4, "bluespace" = 3, "plasmatech" = 3)
+ req_tech = list("materials" = 4, "engineering" = 5, "bluespace" = 3, "plasmatech" = 4)
build_type = PROTOLATHE
materials = list(MAT_METAL = 1000, MAT_GLASS = 500, MAT_PLASMA = 1500, MAT_URANIUM = 200)
build_path = /obj/item/weapon/weldingtool/experimental
diff --git a/code/modules/research/designs/AI_module_designs.dm b/code/modules/research/designs/AI_module_designs.dm
index c25d7ffbe13..569a36607ef 100644
--- a/code/modules/research/designs/AI_module_designs.dm
+++ b/code/modules/research/designs/AI_module_designs.dm
@@ -6,7 +6,7 @@
name = "AI Design (AI Core)"
desc = "Allows for the construction of circuit boards used to build new AI cores."
id = "aicore"
- req_tech = list("programming" = 4, "biotech" = 3)
+ req_tech = list("programming" = 3)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/aicore
@@ -17,7 +17,7 @@
name = "Module Design (Safeguard)"
desc = "Allows for the construction of a Safeguard AI Module."
id = "safeguard_module"
- req_tech = list("programming" = 3, "materials" = 4)
+ req_tech = list("programming" = 3, "materials" = 3)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_GOLD = 100)
build_path = /obj/item/weapon/aiModule/supplied/safeguard
@@ -27,7 +27,7 @@
name = "Module Design (OneHuman)"
desc = "Allows for the construction of a OneHuman AI Module."
id = "onehuman_module"
- req_tech = list("programming" = 4, "materials" = 6)
+ req_tech = list("programming" = 6, "materials" = 4)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_DIAMOND = 100)
build_path = /obj/item/weapon/aiModule/zeroth/oneHuman
@@ -37,7 +37,7 @@
name = "Module Design (ProtectStation)"
desc = "Allows for the construction of a ProtectStation AI Module."
id = "protectstation_module"
- req_tech = list("programming" = 3, "materials" = 6)
+ req_tech = list("programming" = 5, "materials" = 4)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_GOLD = 100)
build_path = /obj/item/weapon/aiModule/supplied/protectStation
@@ -58,7 +58,7 @@
name = "Module Design (OxygenIsToxicToHumans)"
desc = "Allows for the construction of a Safeguard AI Module."
id = "oxygen_module"
- req_tech = list("programming" = 3, "biotech" = 2, "materials" = 4)
+ req_tech = list("programming" = 4, "biotech" = 2, "materials" = 4)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_GOLD = 100)
build_path = /obj/item/weapon/aiModule/supplied/oxygen
@@ -68,7 +68,7 @@
name = "Module Design (Freeform)"
desc = "Allows for the construction of a Freeform AI Module."
id = "freeform_module"
- req_tech = list("programming" = 4, "materials" = 4)
+ req_tech = list("programming" = 5, "materials" = 4)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_GOLD = 100)
build_path = /obj/item/weapon/aiModule/supplied/freeform
@@ -78,7 +78,7 @@
name = "Module Design (Reset)"
desc = "Allows for the construction of a Reset AI Module."
id = "reset_module"
- req_tech = list("programming" = 3, "materials" = 6)
+ req_tech = list("programming" = 4, "materials" = 6)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_GOLD = 100)
build_path = /obj/item/weapon/aiModule/reset
@@ -88,7 +88,7 @@
name = "Module Design (Purge)"
desc = "Allows for the construction of a Purge AI Module."
id = "purge_module"
- req_tech = list("programming" = 4, "materials" = 6)
+ req_tech = list("programming" = 5, "materials" = 6)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_DIAMOND = 100)
build_path = /obj/item/weapon/aiModule/reset/purge
@@ -98,7 +98,7 @@
name = "AI Core Module (Freeform)"
desc = "Allows for the construction of a Freeform AI Core Module."
id = "freeformcore_module"
- req_tech = list("programming" = 4, "materials" = 6)
+ req_tech = list("programming" = 6, "materials" = 6)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_DIAMOND = 100)
build_path = /obj/item/weapon/aiModule/core/freeformcore
@@ -108,7 +108,7 @@
name = "Core Module Design (Asimov)"
desc = "Allows for the construction of a Asimov AI Core Module."
id = "asimov_module"
- req_tech = list("programming" = 3, "materials" = 6)
+ req_tech = list("programming" = 3, "materials" = 5)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_DIAMOND = 100)
build_path = /obj/item/weapon/aiModule/core/full/asimov
@@ -118,7 +118,7 @@
name = "Core Module Design (P.A.L.A.D.I.N.)"
desc = "Allows for the construction of a P.A.L.A.D.I.N. AI Core Module."
id = "paladin_module"
- req_tech = list("programming" = 4, "materials" = 6)
+ req_tech = list("programming" = 5, "materials" = 5)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_DIAMOND = 100)
build_path = /obj/item/weapon/aiModule/core/full/paladin
@@ -128,7 +128,7 @@
name = "Core Module Design (T.Y.R.A.N.T.)"
desc = "Allows for the construction of a T.Y.R.A.N.T. AI Module."
id = "tyrant_module"
- req_tech = list("programming" = 4, "syndicate" = 2, "materials" = 6)
+ req_tech = list("programming" = 5, "syndicate" = 2, "materials" = 5)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_DIAMOND = 100)
build_path = /obj/item/weapon/aiModule/core/full/tyrant
@@ -138,7 +138,7 @@
name = "Core Module Design (Corporate)"
desc = "Allows for the construction of a Corporate AI Core Module."
id = "corporate_module"
- req_tech = list("programming" = 4, "materials" = 6)
+ req_tech = list("programming" = 5, "materials" = 5)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_DIAMOND = 100)
build_path = /obj/item/weapon/aiModule/core/full/corp
@@ -148,7 +148,7 @@
name = "Core Module Design (Custom)"
desc = "Allows for the construction of a Custom AI Core Module."
id = "custom_module"
- req_tech = list("programming" = 4, "materials" = 6)
+ req_tech = list("programming" = 5, "materials" = 5)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_DIAMOND = 100)
build_path = /obj/item/weapon/aiModule/core/full/custom
diff --git a/code/modules/research/designs/comp_board_designs.dm b/code/modules/research/designs/comp_board_designs.dm
index 1da2314a25b..453c04d05e6 100644
--- a/code/modules/research/designs/comp_board_designs.dm
+++ b/code/modules/research/designs/comp_board_designs.dm
@@ -4,7 +4,7 @@
name = "Computer Design (Security)"
desc = "Allows for the construction of circuit boards used to build security camera computers."
id = "seccamera"
- req_tech = list("programming" = 2)
+ req_tech = list("programming" = 2, "combat" = 2)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/computer/security
@@ -14,7 +14,7 @@
name = "Computer Design (AI Upload)"
desc = "Allows for the construction of circuit boards used to build an AI Upload Console."
id = "aiupload"
- req_tech = list("programming" = 4)
+ req_tech = list("programming" = 5, "engineering" = 4)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/computer/aiupload
@@ -24,7 +24,7 @@
name = "Computer Design (Cyborg Upload)"
desc = "Allows for the construction of circuit boards used to build a Cyborg Upload Console."
id = "borgupload"
- req_tech = list("programming" = 4)
+ req_tech = list("programming" = 5, "engineering" = 4)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/computer/borgupload
@@ -34,7 +34,7 @@
name = "Computer Design (Medical Records)"
desc = "Allows for the construction of circuit boards used to build a medical records console."
id = "med_data"
- req_tech = list("programming" = 2)
+ req_tech = list("programming" = 2, "biotech" = 2)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/computer/med_data
@@ -44,7 +44,7 @@
name = "Computer Design (Operating Computer)"
desc = "Allows for the construction of circuit boards used to build an operating computer console."
id = "operating"
- req_tech = list("programming" = 2, "biotech" = 2)
+ req_tech = list("programming" = 2, "biotech" = 3)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/computer/operating
@@ -54,7 +54,7 @@
name = "Computer Design (PanD.E.M.I.C. 2200)"
desc = "Allows for the construction of circuit boards used to build a PanD.E.M.I.C. 2200 console."
id = "pandemic"
- req_tech = list("programming" = 2, "biotech" = 2)
+ req_tech = list("programming" = 3, "biotech" = 3)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/computer/pandemic
@@ -64,7 +64,7 @@
name = "Computer Design (DNA Machine)"
desc = "Allows for the construction of circuit boards used to build a new DNA scanning console."
id = "scan_console"
- req_tech = list("programming" = 2, "biotech" = 3)
+ req_tech = list("programming" = 2, "biotech" = 2)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/computer/scan_consolenew
@@ -74,7 +74,7 @@
name = "Computer Design (Communications)"
desc = "Allows for the construction of circuit boards used to build a communications console."
id = "comconsole"
- req_tech = list("programming" = 2, "magnets" = 2)
+ req_tech = list("programming" = 3, "magnets" = 3)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/computer/communications
@@ -84,7 +84,7 @@
name = "Computer Design (ID Console)"
desc = "Allows for the construction of circuit boards used to build an ID computer."
id = "idcardconsole"
- req_tech = list("programming" = 2)
+ req_tech = list("programming" = 3)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/computer/card
@@ -100,12 +100,11 @@
build_path = /obj/item/weapon/circuitboard/computer/crew
category = list("Computer Boards")
-
/datum/design/secdata
name = "Computer Design (Security Records Console)"
desc = "Allows for the construction of circuit boards used to build a security records console."
id = "secdata"
- req_tech = list("programming" = 2)
+ req_tech = list("programming" = 2, "combat" = 2)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/computer/secure_data
@@ -155,7 +154,7 @@
name = "Computer Design (Orion Trail Arcade Machine)"
desc = "Allows for the construction of circuit boards used to build a new Orion Trail machine."
id = "arcademachine"
- req_tech = list("programming" = 2)
+ req_tech = list("programming" = 1)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/computer/arcade/orion_trail
@@ -165,7 +164,7 @@
name = "Computer Design (Slot Machine)"
desc = "Allows for the construction of circuit boards used to build a new slot machine."
id = "slotmachine"
- req_tech = list("programming" = 2)
+ req_tech = list("programming" = 1)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/computer/slot_machine
@@ -175,7 +174,7 @@
name = "Computer Design (Power Monitor)"
desc = "Allows for the construction of circuit boards used to build a new power monitor."
id = "powermonitor"
- req_tech = list("programming" = 2)
+ req_tech = list("programming" = 2, "powerstorage" = 2)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/computer/powermonitor
@@ -215,7 +214,7 @@
name = "Computer Design (Mech Bay Power Control Console)"
desc = "Allows for the construction of circuit boards used to build a mech bay power control console."
id = "mechapower"
- req_tech = list("programming" = 2, "powerstorage" = 3)
+ req_tech = list("programming" = 3, "powerstorage" = 3)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/computer/mech_bay_power_console
@@ -265,7 +264,7 @@
name = "Computer Design (Telecommunications Monitoring Console)"
desc = "Allows for the construction of circuit boards used to build a telecommunications monitor."
id = "comm_monitor"
- req_tech = list("programming" = 3)
+ req_tech = list("programming" = 3, "magnets" = 3, "bluespace" = 2)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/computer/comm_monitor
@@ -275,7 +274,7 @@
name = "Computer Design (Telecommunications Server Monitoring Console)"
desc = "Allows for the construction of circuit boards used to build a telecommunication server browser and monitor."
id = "comm_server"
- req_tech = list("programming" = 3)
+ req_tech = list("programming" = 3, "magnets" = 3, "bluespace" = 2)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/computer/comm_server
@@ -295,7 +294,7 @@
name = "Computer Design (AI Integrity Restorer)"
desc = "Allows for the construction of circuit boards used to build an AI Integrity Restorer."
id = "aifixer"
- req_tech = list("programming" = 3, "biotech" = 2)
+ req_tech = list("programming" = 4, "magnets" = 3)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/computer/aifixer
diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm
index fe53f327a7e..6a0bf146ea3 100644
--- a/code/modules/research/designs/machine_designs.dm
+++ b/code/modules/research/designs/machine_designs.dm
@@ -16,7 +16,7 @@
name = "Machine Design (Automated Announcement System Board)"
desc = "The circuit board for an automated announcement system."
id = "automated_announcement"
- req_tech = list("programming" = 3, "bluespace" = 2)
+ req_tech = list("programming" = 3, "bluespace" = 3, "magnets" = 2)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/machine/announcement_system
@@ -26,7 +26,7 @@
name = "Computer Design (Power Turbine Console Board)"
desc = "The circuit board for a power turbine console."
id = "power_turbine_console"
- req_tech = list("programming" = 4, "powerstorage" = 4, "engineering" = 4)
+ req_tech = list("programming" = 4, "powerstorage" = 5, "engineering" = 4)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/computer/turbine_computer
@@ -36,7 +36,7 @@
name = "Machine Design (Emitter Board)"
desc = "The circuit board for an emitter."
id = "emitter"
- req_tech = list("programming" = 4, "powerstorage" = 5, "engineering" = 5)
+ req_tech = list("programming" = 3, "powerstorage" = 5, "engineering" = 4)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/machine/emitter
@@ -76,7 +76,7 @@
name = "Machine Design (Space Heater Board)"
desc = "The circuit board for a space heater."
id = "space_heater"
- req_tech = list("programming" = 2, "engineering" = 2)
+ req_tech = list("programming" = 2, "engineering" = 2, "plasmatech" = 2)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/machine/space_heater
@@ -86,7 +86,7 @@
name = "Machine Design (Teleportation Station Board)"
desc = "The circuit board for a teleportation station."
id = "tele_station"
- req_tech = list("programming" = 4, "bluespace" = 4, "engineering" = 4)
+ req_tech = list("programming" = 5, "bluespace" = 4, "engineering" = 4, "plasmatech" = 4)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/machine/teleporter_station
@@ -106,7 +106,7 @@
name = "Machine Design (Telepad Board)"
desc = "The circuit board for a telescience telepad."
id = "telepad"
- req_tech = list("programming" = 4, "bluespace" = 4, "materials" = 3, "engineering" = 3)
+ req_tech = list("programming" = 4, "bluespace" = 5, "plasmatech" = 4, "engineering" = 4)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/machine/telesci_pad
@@ -116,7 +116,7 @@
name = "Computer Design (Teleporter Console)"
desc = "Allows for the construction of circuit boards used to build a teleporter control console."
id = "teleconsole"
- req_tech = list("programming" = 3, "bluespace" = 2)
+ req_tech = list("programming" = 3, "bluespace" = 3, "plasmatech" = 4)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/computer/teleporter
@@ -126,7 +126,7 @@
name = "Computer Design (Telepad Control Console Board)"
desc = "Allows for the construction of circuit boards used to build a telescience console."
id = "telesci_console"
- req_tech = list("programming" = 3, "bluespace" = 2)
+ req_tech = list("programming" = 3, "bluespace" = 3, "plasmatech" = 4)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/computer/telesci_console
@@ -136,7 +136,7 @@
name = "Machine Design (Sleeper Board)"
desc = "The circuit board for a sleeper."
id = "sleeper"
- req_tech = list("programming" = 3, "biotech" = 2, "materials" = 3, "engineering" = 3)
+ req_tech = list("programming" = 3, "biotech" = 2, "engineering" = 3)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/machine/sleeper
@@ -146,7 +146,7 @@
name = "Machine Design (Cryotube Board)"
desc = "The circuit board for a cryotube."
id = "cryotube"
- req_tech = list("programming" = 4, "biotech" = 3, "engineering" = 4)
+ req_tech = list("programming" = 5, "biotech" = 3, "engineering" = 4, "plasmatech" = 3)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/machine/cryo_tube
@@ -156,7 +156,7 @@
name = "Machine Design (Portable Chem Dispenser Board)"
desc = "The circuit board for a portable chem dispenser."
id = "chem_dispenser"
- req_tech = list("programming" = 4, "biotech" = 3, "engineering" = 4, "materials" = 4, "plasmatech" = 3)
+ req_tech = list("programming" = 5, "biotech" = 3, "materials" = 4, "plasmatech" = 4)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/machine/chem_dispenser
@@ -166,7 +166,7 @@
name = "Machine Design (Chem Master Board)"
desc = "The circuit board for a Chem Master 2999."
id = "chem_master"
- req_tech = list("biotech" = 1, "materials" = 2, "programming" = 2)
+ req_tech = list("biotech" = 3, "materials" = 3, "programming" = 2)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/machine/chem_master
@@ -176,7 +176,7 @@
name = "Machine Design (Chemical Heater Board)"
desc = "The circuit board for a chemical heater."
id = "chem_heater"
- req_tech = list("engineering" = 2, "materials" = 2)
+ req_tech = list("engineering" = 2, "biotech" = 2, "programming" = 2)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/machine/chem_heater
@@ -186,7 +186,7 @@
name = "Computer Design (Cloning Machine Console)"
desc = "Allows for the construction of circuit boards used to build a new Cloning Machine console."
id = "clonecontrol"
- req_tech = list("programming" = 3, "biotech" = 3)
+ req_tech = list("programming" = 4, "biotech" = 3)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/computer/cloning
@@ -196,7 +196,7 @@
name = "Machine Design (Clone Pod)"
desc = "Allows for the construction of circuit boards used to build a Cloning Pod."
id = "clonepod"
- req_tech = list("programming" = 3, "biotech" = 3)
+ req_tech = list("programming" = 4, "biotech" = 3)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/machine/clonepod
@@ -206,7 +206,7 @@
name = "Machine Design (Cloning Scanner)"
desc = "Allows for the construction of circuit boards used to build a Cloning Scanner."
id = "clonescanner"
- req_tech = list("programming" = 3, "biotech" = 3)
+ req_tech = list("programming" = 4, "biotech" = 3)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/machine/clonescanner
@@ -216,7 +216,7 @@
name = "Machine Design (Biogenerator Board)"
desc = "The circuit board for a biogenerator."
id = "biogenerator"
- req_tech = list("programming" = 3, "biotech" = 2, "materials" = 3)
+ req_tech = list("programming" = 2, "biotech" = 3, "materials" = 3)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/machine/biogenerator
@@ -226,7 +226,7 @@
name = "Machine Design (Hydroponics Tray Board)"
desc = "The circuit board for a hydroponics tray."
id = "hydro_tray"
- req_tech = list("programming" = 1, "biotech" = 1)
+ req_tech = list("biotech" = 2)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/machine/hydroponics
@@ -316,7 +316,7 @@
name = "Machine Design (Mechbay Recharger Board)"
desc = "The circuit board for a Mechbay Recharger."
id = "mech_recharger"
- req_tech = list("programming" = 3, "powerstorage" = 4, "engineering" = 4)
+ req_tech = list("programming" = 3, "powerstorage" = 4, "engineering" = 3)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/machine/mech_recharger
@@ -326,7 +326,7 @@
name = "Machine Design (Microwave Board)"
desc = "The circuit board for a microwave."
id = "microwave"
- req_tech = list("programming" = 1)
+ req_tech = list("programming" = 2, "magnets" = 2)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/machine/microwave
@@ -336,7 +336,7 @@
name = "Machine Design (Gibber Board)"
desc = "The circuit board for a gibber."
id = "gibber"
- req_tech = list("programming" = 1)
+ req_tech = list("programming" = 2, "engineering" = 2)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/machine/gibber
@@ -386,7 +386,7 @@
name = "Machine Design (Recycler Board)"
desc = "The circuit board for a recycler."
id = "recycler"
- req_tech = list("programming" = 1)
+ req_tech = list("programming" = 2, "engineering" = 2)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/machine/recycler
@@ -406,7 +406,7 @@
name = "Machine Design (Autolathe Board)"
desc = "The circuit board for an autolathe."
id = "autolathe"
- req_tech = list("programming" = 2, "engineering" = 2)
+ req_tech = list("programming" = 3, "engineering" = 3)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/machine/autolathe
@@ -416,7 +416,7 @@
name = "Machine Design (Weapon Recharger Board)"
desc = "The circuit board for a Weapon Recharger."
id = "recharger"
- req_tech = list("powerstorage" = 3, "engineering" = 3, "materials" = 4)
+ req_tech = list("powerstorage" = 4, "engineering" = 3, "materials" = 4)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_GOLD = 100)
build_path = /obj/item/weapon/circuitboard/machine/recharger
@@ -436,18 +436,17 @@
name = "Machine Design (Ore Redemption Board)"
desc = "The circuit board for an Ore Redemption machine."
id = "ore_redemption"
- req_tech = list("programming" = 1, "engineering" = 2)
+ req_tech = list("programming" = 2, "engineering" = 2, "plasmatech" = 3)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/machine/ore_redemption
category = list ("Misc. Machinery")
-
/datum/design/mining_equipment_vendor
name = "Machine Design (Mining Rewards Vender Board)"
desc = "The circuit board for a Mining Rewards Vender."
id = "mining_equipment_vendor"
- req_tech = list("programming" = 1, "engineering" = 2)
+ req_tech = list("engineering" = 3)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/machine/mining_equipment_vendor
@@ -457,7 +456,7 @@
name = "Machine Design (Tesla Coil Board)"
desc = "The circuit board for a tesla coil."
id = "tesla_coil"
- req_tech = list("programming" = 1)
+ req_tech = list("programming" = 3, "powerstorage" = 3, "magnets" = 3)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/machine/tesla_coil
@@ -467,7 +466,7 @@
name = "Machine Design (Grounding Rod Board)"
desc = "The circuit board for a grounding rod."
id = "grounding_rod"
- req_tech = list("programming" = 1)
+ req_tech = list("programming" = 3, "powerstorage" = 3, "magnets" = 3, "plasmatech" = 2)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/machine/grounding_rod
diff --git a/code/modules/research/designs/mecha_designs.dm b/code/modules/research/designs/mecha_designs.dm
index a2028a40d54..6805fac443e 100644
--- a/code/modules/research/designs/mecha_designs.dm
+++ b/code/modules/research/designs/mecha_designs.dm
@@ -6,7 +6,7 @@
name = "APLU \"Ripley\" Central Control module"
desc = "Allows for the construction of a \"Ripley\" Central Control module."
id = "ripley_main"
- req_tech = list("programming" = 3)
+ req_tech = list("programming" = 2)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha/ripley/main
@@ -16,7 +16,7 @@
name = "APLU \"Ripley\" Peripherals Control module"
desc = "Allows for the construction of a \"Ripley\" Peripheral Control module."
id = "ripley_peri"
- req_tech = list("programming" = 3)
+ req_tech = list("programming" = 2)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha/ripley/peripherals
@@ -26,7 +26,7 @@
name = "\"Odysseus\" Central Control module"
desc = "Allows for the construction of a \"Odysseus\" Central Control module."
id = "odysseus_main"
- req_tech = list("programming" = 3,"biotech" = 2)
+ req_tech = list("programming" = 3,"biotech" = 3, "engineering" = 3)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha/odysseus/main
@@ -36,7 +36,7 @@
name = "\"Odysseus\" Peripherals Control module"
desc = "Allows for the construction of a \"Odysseus\" Peripheral Control module."
id = "odysseus_peri"
- req_tech = list("programming" = 3,"biotech" = 2)
+ req_tech = list("programming" = 3,"biotech" = 3, "engineering" = 3)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha/odysseus/peripherals
@@ -46,7 +46,7 @@
name = "\"Gygax\" Central Control module"
desc = "Allows for the construction of a \"Gygax\" Central Control module."
id = "gygax_main"
- req_tech = list("programming" = 4)
+ req_tech = list("programming" = 4, "combat" = 3, "engineering" = 4)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha/gygax/main
@@ -56,7 +56,7 @@
name = "\"Gygax\" Peripherals Control module"
desc = "Allows for the construction of a \"Gygax\" Peripheral Control module."
id = "gygax_peri"
- req_tech = list("programming" = 4)
+ req_tech = list("programming" = 4, "combat" = 3, "engineering" = 4)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha/gygax/peripherals
@@ -66,7 +66,7 @@
name = "\"Gygax\" Weapons & Targeting Control module"
desc = "Allows for the construction of a \"Gygax\" Weapons & Targeting Control module."
id = "gygax_targ"
- req_tech = list("programming" = 4, "combat" = 2)
+ req_tech = list("programming" = 4, "combat" = 4, "engineering" = 4)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha/gygax/targeting
@@ -76,7 +76,7 @@
name = "\"Durand\" Central Control module"
desc = "Allows for the construction of a \"Durand\" Central Control module."
id = "durand_main"
- req_tech = list("programming" = 4)
+ req_tech = list("programming" = 4, "combat" = 4, "engineering" = 4)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha/durand/main
@@ -86,7 +86,7 @@
name = "\"Durand\" Peripherals Control module"
desc = "Allows for the construction of a \"Durand\" Peripheral Control module."
id = "durand_peri"
- req_tech = list("programming" = 4)
+ req_tech = list("programming" = 4, "combat" = 4, "engineering" = 4)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha/durand/peripherals
@@ -96,7 +96,7 @@
name = "\"Durand\" Weapons & Targeting Control module"
desc = "Allows for the construction of a \"Durand\" Weapons & Targeting Control module."
id = "durand_targ"
- req_tech = list("programming" = 4, "combat" = 2)
+ req_tech = list("programming" = 5, "combat" = 4, "engineering" = 4)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha/durand/targeting
@@ -106,7 +106,7 @@
name = "\"H.O.N.K\" Central Control module"
desc = "Allows for the construction of a \"H.O.N.K\" Central Control module."
id = "honker_main"
- req_tech = list("programming" = 3)
+ req_tech = list("programming" = 3, "engineering" = 3)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha/honker/main
@@ -116,7 +116,7 @@
name = "\"H.O.N.K\" Peripherals Control module"
desc = "Allows for the construction of a \"H.O.N.K\" Peripheral Control module."
id = "honker_peri"
- req_tech = list("programming" = 3)
+ req_tech = list("programming" = 3, "engineering" = 3)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha/honker/peripherals
@@ -126,7 +126,7 @@
name = "\"H.O.N.K\" Weapons & Targeting Control module"
desc = "Allows for the construction of a \"H.O.N.K\" Weapons & Targeting Control module."
id = "honker_targ"
- req_tech = list("programming" = 3)
+ req_tech = list("programming" = 3, "engineering" = 3)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha/honker/targeting
@@ -136,7 +136,7 @@
name = "\"Phazon\" Central Control module"
desc = "Allows for the construction of a \"Phazon\" Central Control module."
id = "phazon_main"
- req_tech = list("programming" = 5, "materials" = 7, "powerstorage" = 6)
+ req_tech = list("programming" = 6, "materials" = 6, "plasmatech" = 5)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha/phazon/main
@@ -146,7 +146,7 @@
name = "\"Phazon\" Peripherals Control module"
desc = "Allows for the construction of a \"Phazon\" Peripheral Control module."
id = "phazon_peri"
- req_tech = list("programming" = 5, "bluespace" = 6)
+ req_tech = list("programming" = 6, "bluespace" = 5, "plasmatech" = 5)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha/phazon/peripherals
@@ -156,7 +156,7 @@
name = "\"Phazon\" Weapons & Targeting Control module"
desc = "Allows for the construction of a \"Phazon\" Weapons & Targeting Control module."
id = "phazon_targ"
- req_tech = list("programming" = 5, "magnets" = 6)
+ req_tech = list("programming" = 6, "magnets" = 5, "plasmatech" = 5)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha/phazon/targeting
@@ -204,7 +204,7 @@
desc = "Allows for the construction of CH-PS Laser."
id = "mech_laser"
build_type = MECHFAB
- req_tech = list("combat" = 3, "magnets" = 3)
+ req_tech = list("combat" = 3, "magnets" = 3, "engineering" = 3)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser
materials = list(MAT_METAL=10000)
construction_time = 100
@@ -215,7 +215,7 @@
desc = "Allows for the construction of CH-LC Laser Cannon."
id = "mech_laser_heavy"
build_type = MECHFAB
- req_tech = list("combat" = 4, "magnets" = 4)
+ req_tech = list("combat" = 4, "magnets" = 4, "engineering" = 4)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy
materials = list(MAT_METAL=10000)
construction_time = 100
@@ -226,7 +226,7 @@
desc = "Allows for the construction of SGL-6 Grenade Launcher."
id = "mech_grenade_launcher"
build_type = MECHFAB
- req_tech = list("combat" = 3)
+ req_tech = list("combat" = 4, "engineering" = 4)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/flashbang
materials = list(MAT_METAL=22000,MAT_GOLD=6000,MAT_SILVER=8000)
construction_time = 100
@@ -237,7 +237,7 @@
desc = "Allows for the construction of SRM-8 Missile Rack."
id = "mech_missile_rack"
build_type = MECHFAB
- req_tech = list("combat" = 6, "materials" = 6)
+ req_tech = list("combat" = 6, "materials" = 5, "engineering" = 5)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/missile_rack
materials = list(MAT_METAL=22000,MAT_GOLD=6000,MAT_SILVER=8000)
construction_time = 100
@@ -259,7 +259,7 @@
desc = "An exosuit module that allows generating of small quasi-stable wormholes."
id = "mech_wormhole_gen"
build_type = MECHFAB
- req_tech = list("bluespace" = 3, "magnets" = 2)
+ req_tech = list("bluespace" = 4, "magnets" = 4, "plasmatech" = 3)
build_path = /obj/item/mecha_parts/mecha_equipment/wormhole_generator
materials = list(MAT_METAL=10000)
construction_time = 100
@@ -270,9 +270,9 @@
desc = "An exosuit module that allows exosuits to teleport to any position in view."
id = "mech_teleporter"
build_type = MECHFAB
- req_tech = list("bluespace" = 10, "magnets" = 5)
+ req_tech = list("bluespace" = 8, "magnets" = 5)
build_path = /obj/item/mecha_parts/mecha_equipment/teleporter
- materials = list(MAT_METAL=10000)
+ materials = list(MAT_METAL=10000,MAT_DIAMOND=10000)
construction_time = 100
category = list("Exosuit Equipment")
@@ -281,7 +281,7 @@
desc = "An exosuit-mounted Rapid Construction Device."
id = "mech_rcd"
build_type = MECHFAB
- req_tech = list("materials" = 4, "bluespace" = 3, "magnets" = 4, "powerstorage"=4, "engineering" = 4)
+ req_tech = list("materials" = 5, "bluespace" = 3, "magnets" = 4, "powerstorage"=4, "engineering" = 5)
build_path = /obj/item/mecha_parts/mecha_equipment/rcd
materials = list(MAT_METAL=30000,MAT_GOLD=20000,MAT_PLASMA=25000,MAT_SILVER=20000)
construction_time = 1200
@@ -292,7 +292,7 @@
desc = "An exosuit mounted Gravitational Catapult."
id = "mech_gravcatapult"
build_type = MECHFAB
- req_tech = list("bluespace" = 2, "magnets" = 3, "engineering" = 3)
+ req_tech = list("bluespace" = 4, "magnets" = 3, "engineering" = 4)
build_path = /obj/item/mecha_parts/mecha_equipment/gravcatapult
materials = list(MAT_METAL=10000)
construction_time = 100
@@ -303,7 +303,7 @@
desc = "Automated Repair Droid. BEEP BOOP"
id = "mech_repair_droid"
build_type = MECHFAB
- req_tech = list("magnets" = 3, "programming" = 3, "engineering" = 3)
+ req_tech = list("magnets" = 3, "programming" = 3, "engineering" = 5)
build_path = /obj/item/mecha_parts/mecha_equipment/repair_droid
materials = list(MAT_METAL=10000,MAT_GLASS=5000,MAT_GOLD=1000,MAT_SILVER=2000)
construction_time = 100
@@ -314,7 +314,7 @@
desc = "Tesla Energy Relay"
id = "mech_energy_relay"
build_type = MECHFAB
- req_tech = list("magnets" = 4, "powerstorage" = 3)
+ req_tech = list("magnets" = 4, "powerstorage" = 5, "engineering" = 4)
build_path = /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay
materials = list(MAT_METAL=10000,MAT_GLASS=2000,MAT_GOLD=2000,MAT_SILVER=3000)
construction_time = 100
@@ -347,7 +347,7 @@
desc = "An upgraded version of the standard drill."
id = "mech_diamond_drill"
build_type = MECHFAB
- req_tech = list("materials" = 4, "engineering" = 3)
+ req_tech = list("materials" = 5, "engineering" = 4)
build_path = /obj/item/mecha_parts/mecha_equipment/drill/diamonddrill
materials = list(MAT_METAL=10000,MAT_DIAMOND=6500)
construction_time = 100
@@ -358,7 +358,7 @@
desc = "Compact nuclear reactor module."
id = "mech_generator_nuclear"
build_type = MECHFAB
- req_tech = list("powerstorage"= 3, "engineering" = 3, "materials" = 3)
+ req_tech = list("powerstorage"= 5, "engineering" = 4, "materials" = 3)
build_path = /obj/item/mecha_parts/mecha_equipment/generator/nuclear
materials = list(MAT_METAL=10000,MAT_GLASS=1000,MAT_SILVER=500)
construction_time = 100
@@ -369,7 +369,7 @@
desc = "A device that shoots resonant plasma bursts at extreme velocity. The blasts are capable of crushing rock and demolishing solid obstacles."
id = "mech_plasma_cutter"
build_type = MECHFAB
- req_tech = list("powerstorage"= 3, "engineering" = 3, "materials" = 3, "combat" = 1, "plasmatech" = 2)
+ req_tech = list("engineering" = 3, "materials" = 3, "plasmatech" = 4)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/plasma
materials = list(MAT_METAL = 8000, MAT_GLASS = 1000, MAT_PLASMA = 2000)
construction_time = 100
@@ -380,7 +380,7 @@
desc = "A weapon for combat exosuits. Shoots non-lethal stunning electrodes."
id = "mech_taser"
build_type = MECHFAB
- req_tech = list("combat" = 2)
+ req_tech = list("combat" = 3)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/taser
materials = list(MAT_METAL=10000)
construction_time = 100
@@ -391,7 +391,7 @@
desc = "A weapon for combat exosuits. Shoots a rapid, three shot burst."
id = "mech_lmg"
build_type = MECHFAB
- req_tech = list("combat" = 2)
+ req_tech = list("combat" = 4)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/lmg
materials = list(MAT_METAL=10000)
construction_time = 100
@@ -402,7 +402,7 @@
desc = "Equipment for medical exosuits. A mounted sleeper that stabilizes patients and can inject reagents in the exosuit's reserves."
id = "mech_sleeper"
build_type = MECHFAB
- req_tech = list("biotech" = 2)
+ req_tech = list("biotech" = 3, "engineering" = 3, "plasmatech" = 2)
build_path = /obj/item/mecha_parts/mecha_equipment/medical/sleeper
materials = list(MAT_METAL=5000,MAT_GLASS=10000)
construction_time = 100
@@ -413,7 +413,7 @@
desc = "Equipment for medical exosuits. A chem synthesizer with syringe gun. Reagents inside are held in stasis, so no reactions will occur."
id = "mech_syringe_gun"
build_type = MECHFAB
- req_tech = list("magnets" = 3,"biotech" = 3)
+ req_tech = list("magnets" = 4,"biotech" = 4, "combat" = 3, "materials" = 4)
build_path = /obj/item/mecha_parts/mecha_equipment/medical/syringe_gun
materials = list(MAT_METAL=3000,MAT_GLASS=2000)
construction_time = 200
@@ -423,9 +423,9 @@
name = "Exosuit Medical Equipment (Medical Beamgun)"
desc = "Equipment for medical exosuits. A mounted medical nanite projector which will treat patients with a focused beam."
id = "mech_medi_beam"
- req_tech = list("combat" = 5, "materials" = 7, "powerstorage" = 7, "biotech" = 6)
+ req_tech = list("engineering" = 6, "materials" = 7, "powerstorage" = 5, "biotech" = 6)
build_type = MECHFAB
materials = list(MAT_METAL = 15000, MAT_GLASS = 8000, MAT_PLASMA = 3000, MAT_GOLD = 8000, MAT_DIAMOND = 2000)
construction_time = 250
build_path = /obj/item/mecha_parts/mecha_equipment/medical/mechmedbeam
- category = list("Exosuit Equipment")
\ No newline at end of file
+ category = list("Exosuit Equipment")
diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm
index 98139b4326f..0518e393ecd 100644
--- a/code/modules/research/designs/mechfabricator_designs.dm
+++ b/code/modules/research/designs/mechfabricator_designs.dm
@@ -536,7 +536,7 @@
id = "mech_generator"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/generator
- materials = list(MAT_METAL=10000,MAT_GLASS=1000,MAT_SILVER=500)
+ materials = list(MAT_METAL=10000,MAT_GLASS=1000,MAT_SILVER=2000,MAT_PLASMA=5000)
construction_time = 100
category = list("Exosuit Equipment")
@@ -603,7 +603,7 @@
id = "borg_upgrade_vtec"
build_type = MECHFAB
build_path = /obj/item/borg/upgrade/vtec
- req_tech = list("engineering" = 4, "materials" = 5)
+ req_tech = list("engineering" = 4, "materials" = 5, "programming" = 4)
materials = list(MAT_METAL=80000 , MAT_GLASS=6000 , MAT_URANIUM= 5000)
construction_time = 120
category = list("Cyborg Upgrade Modules")
@@ -623,7 +623,7 @@
id = "borg_upgrade_disablercooler"
build_type = MECHFAB
build_path = /obj/item/borg/upgrade/disablercooler
- req_tech = list("combat" = 5, "powerstorage" = 4)
+ req_tech = list("combat" = 5, "powerstorage" = 4, "engineering" = 4)
materials = list(MAT_METAL=80000 , MAT_GLASS=6000 , MAT_GOLD= 2000, MAT_DIAMOND = 500)
construction_time = 120
category = list("Cyborg Upgrade Modules")
@@ -633,7 +633,7 @@
id = "borg_upgrade_diamonddrill"
build_type = MECHFAB
build_path = /obj/item/borg/upgrade/ddrill
- req_tech = list("engineering" = 5, "materials" = 5)
+ req_tech = list("engineering" = 5, "materials" = 6)
materials = list(MAT_METAL=10000, MAT_DIAMOND=2000)
construction_time = 120
category = list("Cyborg Upgrade Modules")
@@ -643,7 +643,7 @@
id = "borg_upgrade_holding"
build_type = MECHFAB
build_path = /obj/item/borg/upgrade/soh
- req_tech = list("engineering" = 5, "materials" = 5, "bluespace" = 3)
+ req_tech = list("engineering" = 4, "materials" = 4, "bluespace" = 4)
materials = list(MAT_METAL = 10000, MAT_GOLD = 250, MAT_URANIUM = 500)
construction_time = 120
category = list("Cyborg Upgrade Modules")
@@ -652,7 +652,7 @@
name = "Cyborg Upgrade (Illegal Modules)"
id = "borg_syndicate_module"
build_type = MECHFAB
- req_tech = list("combat" = 4, "syndicate" = 3)
+ req_tech = list("combat" = 4, "syndicate" = 2)
build_path = /obj/item/borg/upgrade/syndicate
materials = list(MAT_METAL=10000,MAT_GLASS=15000,MAT_DIAMOND = 10000)
construction_time = 120
@@ -688,3 +688,14 @@
construction_time=150
build_path = /obj/item/drone_shell
category = list("Misc")
+
+/datum/design/synthetic_flash
+ name = "Flash"
+ desc = "When a problem arises, SCIENCE is the solution."
+ id = "sflash"
+ req_tech = list("magnets" = 3, "combat" = 2)
+ build_type = MECHFAB
+ materials = list(MAT_METAL = 750, MAT_GLASS = 750)
+ construction_time = 100
+ build_path = /obj/item/device/assembly/flash/handheld
+ category = list("Misc")
diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm
index 88f2ecad568..e599fc862c2 100644
--- a/code/modules/research/designs/medical_designs.dm
+++ b/code/modules/research/designs/medical_designs.dm
@@ -7,10 +7,9 @@
name = "Mass-Spectrometer"
desc = "A device for analyzing chemicals in the blood."
id = "mass_spectrometer"
- req_tech = list("biotech" = 2, "magnets" = 2)
+ req_tech = list("magnets" = 2, "plasmatech" = 2)
build_type = PROTOLATHE
- materials = list(MAT_METAL = 30, MAT_GLASS = 20)
- reliability = 76
+ materials = list(MAT_METAL = 300, MAT_GLASS = 100)
build_path = /obj/item/device/mass_spectrometer
category = list("Medical Designs")
@@ -18,10 +17,9 @@
name = "Advanced Mass-Spectrometer"
desc = "A device for analyzing chemicals in the blood and their quantities."
id = "adv_mass_spectrometer"
- req_tech = list("biotech" = 2, "magnets" = 4)
+ req_tech = list("biotech" = 3, "magnets" = 4, "plasmatech" = 3)
build_type = PROTOLATHE
- materials = list(MAT_METAL = 30, MAT_GLASS = 20)
- reliability = 74
+ materials = list(MAT_METAL = 500, MAT_GLASS = 200)
build_path = /obj/item/device/mass_spectrometer/adv
category = list("Medical Designs")
@@ -29,11 +27,10 @@
name = "Man-Machine Interface"
desc = "The Warrior's bland acronym, MMI, obscures the true horror of this monstrosity."
id = "mmi"
- req_tech = list("programming" = 2, "biotech" = 3)
+ req_tech = list("programming" = 3, "biotech" = 2, "engineering" = 2)
build_type = PROTOLATHE | MECHFAB
materials = list(MAT_METAL = 1000, MAT_GLASS = 500)
construction_time = 75
- reliability = 76
build_path = /obj/item/device/mmi
category = list("Misc","Medical Designs")
@@ -41,46 +38,30 @@
name = "Positronic Brain"
desc = "The latest in Artificial Intelligences."
id = "mmi_posi"
- req_tech = list("programming" = 5, "biotech" = 4)
+ req_tech = list("programming" = 5, "biotech" = 4, "plasmatech" = 3)
build_type = PROTOLATHE | MECHFAB
materials = list(MAT_METAL = 1700, MAT_GLASS = 1350, MAT_GOLD = 500) //Gold, because SWAG.
- reliability = 74
construction_time = 75
build_path = /obj/item/device/mmi/posibrain
category = list("Misc", "Medical Designs")
-
-/datum/design/synthetic_flash
- name = "Flash"
- desc = "When a problem arises, SCIENCE is the solution."
- id = "sflash"
- req_tech = list("magnets" = 3, "combat" = 2)
- build_type = MECHFAB
- materials = list(MAT_METAL = 750, MAT_GLASS = 750)
- construction_time = 100
- reliability = 76
- build_path = /obj/item/device/assembly/flash/handheld
- category = list("Misc")
-
/datum/design/bluespacebeaker
name = "Bluespace Beaker"
desc = "A bluespace beaker, powered by experimental bluespace technology and Element Cuban combined with the Compound Pete. Can hold up to 300 units."
id = "bluespacebeaker"
- req_tech = list("bluespace" = 2, "materials" = 6)
+ req_tech = list("bluespace" = 6, "materials" = 5, "plasmatech" = 4)
build_type = PROTOLATHE
- materials = list(MAT_METAL = 3000, MAT_PLASMA = 3000, MAT_DIAMOND = 500)
- reliability = 76
+ materials = list(MAT_GLASS = 3000, MAT_PLASMA = 3000, MAT_DIAMOND = 500)
build_path = /obj/item/weapon/reagent_containers/glass/beaker/bluespace
- category = list("Medical Designs", "Bluespace Designs")
+ category = list("Medical Designs")
/datum/design/noreactbeaker
name = "Cryostasis Beaker"
desc = "A cryostasis beaker that allows for chemical storage without reactions. Can hold up to 50 units."
id = "splitbeaker"
- req_tech = list("materials" = 2)
+ req_tech = list("materials" = 3, "engineering" = 3, "plasmatech" = 3)
build_type = PROTOLATHE
materials = list(MAT_METAL = 3000)
- reliability = 76
build_path = /obj/item/weapon/reagent_containers/glass/beaker/noreact
category = list("Medical Designs")
@@ -88,21 +69,19 @@
name = "Bluespace Syringe"
desc = "An advanced syringe that can hold 60 units of chemicals"
id = "bluespacesyringe"
- req_tech = list("bluespace" = 3, "materials" = 4, "combat" = 2)
+ req_tech = list("bluespace" = 5, "materials" = 4, "biotech" = 4)
build_type = PROTOLATHE
materials = list(MAT_GLASS = 4000, MAT_PLASMA = 2000, MAT_DIAMOND = 2000)
- reliability = 76
build_path = /obj/item/weapon/reagent_containers/syringe/bluespace
- category = list("Medical Designs", "Bluespace Designs")
+ category = list("Medical Designs")
/datum/design/noreactsyringe
name = "Cryo Syringe"
desc = "An advanced syringe that stops reagents inside from reacting. It can hold up to 20 units."
id = "noreactsyringe"
- req_tech = list("materials" = 2, "combat" = 2)
+ req_tech = list("materials" = 3, "engineering" = 3)
build_type = PROTOLATHE
materials = list(MAT_GLASS = 4000, MAT_GOLD = 1000)
- reliability = 76
build_path = /obj/item/weapon/reagent_containers/syringe/noreact
category = list("Medical Designs")
@@ -110,10 +89,9 @@
name = "Piercing Syringe"
desc = "A diamond-tipped syringe that pierces armor when launched at high velocity. It can hold up to 10 units."
id = "piercesyringe"
- req_tech = list("materials" = 3, "combat" = 3)
+ req_tech = list("materials" = 5, "combat" = 3, "engineering" = 7)
build_type = PROTOLATHE
materials = list(MAT_GLASS = 4000, MAT_DIAMOND = 1500)
- reliability = 76
build_path = /obj/item/weapon/reagent_containers/syringe/piercing
category = list("Medical Designs")
@@ -121,10 +99,9 @@
name = "Bluespace body bag"
desc = "A bluespace body bag, powered by experimental bluespace technology. It can hold loads of bodies and the largest of creatures."
id = "bluespacebodybag"
- req_tech = list("bluespace" = 2, "materials" = 6)
+ req_tech = list("bluespace" = 5, "materials" = 4, "plasmatech" = 4)
build_type = PROTOLATHE
materials = list(MAT_METAL = 3000, MAT_PLASMA = 2000, MAT_DIAMOND = 500)
- reliability = 76
build_path = /obj/item/bodybag/bluespace
category = list("Medical Designs")
@@ -132,10 +109,9 @@
name = "Plasma-man jumpsuit refill"
desc = "A refill pack for the auto-extinguisher on Plasma-man suits."
id = "plasmarefiller"
- req_tech = list("materials" = 2, "combat" = 2)
+ req_tech = list("materials" = 2, "plasmatech" = 3) //Why did this have no plasmatech
build_type = PROTOLATHE
materials = list(MAT_METAL = 4000, MAT_PLASMA = 1000)
- reliability = 76
build_path = /obj/item/device/extinguisher_refill
category = list("Medical Designs")
@@ -147,10 +123,10 @@
name = "Welding Shield implant"
desc = "These reactive micro-shields will protect you from welders and flashes without obscuring your vision."
id = "ci-welding"
- req_tech = list("materials" = 4, "biotech" = 2)
+ req_tech = list("materials" = 4, "biotech" = 4, "engineering" = 5, "plasmatech" = 4)
build_type = PROTOLATHE | MECHFAB
construction_time = 40
- materials = list(MAT_METAL = 200, MAT_GLASS = 400)
+ materials = list(MAT_METAL = 600, MAT_GLASS = 400)
build_path = /obj/item/organ/cyberimp/eyes/shield
category = list("Misc", "Medical Designs")
@@ -158,10 +134,10 @@
name = "Breathing Tube implant"
desc = "This simple implant adds an internals connector to your back, allowing you to use internals without a mask and protecting you from being choked."
id = "ci-breather"
- req_tech = list("materials" = 3, "biotech" = 3)
+ req_tech = list("materials" = 2, "biotech" = 3)
build_type = PROTOLATHE | MECHFAB
construction_time = 35
- materials = list(MAT_METAL = 200, MAT_GLASS = 250)
+ materials = list(MAT_METAL = 600, MAT_GLASS = 250)
build_path = /obj/item/organ/cyberimp/mouth/breathing_tube
category = list("Misc", "Medical Designs")
@@ -169,7 +145,7 @@
name = "Toolset Arm implant"
desc = "A stripped-down version of engineering cyborg toolset, designed to be installed on subject's arm."
id = "ci-toolset"
- req_tech = list("materials" = 4, "engineering" = 3, "biotech" = 4, "powerstorage" = 4)
+ req_tech = list("materials" = 3, "engineering" = 4, "biotech" = 4, "powerstorage" = 4)
build_type = PROTOLATHE | MECHFAB
materials = list (MAT_METAL = 2500, MAT_GLASS = 1500, MAT_SILVER = 1500)
construction_time = 200
@@ -180,10 +156,10 @@
name = "Medical HUD implant"
desc = "These cybernetic eyes will display a medical HUD over everything you see. Wiggle eyes to control."
id = "ci-medhud"
- req_tech = list("materials" = 6, "programming" = 4, "biotech" = 4)
+ req_tech = list("materials" = 5, "programming" = 4, "biotech" = 4)
build_type = PROTOLATHE | MECHFAB
construction_time = 50
- materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_SILVER = 500, MAT_GOLD = 500)
+ materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 500, MAT_GOLD = 500)
build_path = /obj/item/organ/cyberimp/eyes/hud/medical
category = list("Misc", "Medical Designs")
@@ -191,10 +167,10 @@
name = "Security HUD implant"
desc = "These cybernetic eyes will display a security HUD over everything you see. Wiggle eyes to control."
id = "ci-sechud"
- req_tech = list("materials" = 6, "programming" = 5, "biotech" = 4, "combat" = 2)
+ req_tech = list("materials" = 5, "programming" = 4, "biotech" = 4, "combat" = 3)
build_type = PROTOLATHE | MECHFAB
construction_time = 50
- materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_SILVER = 750, MAT_GOLD = 750)
+ materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 750, MAT_GOLD = 750)
build_path = /obj/item/organ/cyberimp/eyes/hud/security
category = list("Misc", "Medical Designs")
@@ -202,10 +178,10 @@
name = "X-Ray implant"
desc = "These cybernetic eyes will give you X-ray vision. Blinking is futile."
id = "ci-xray"
- req_tech = list("materials" = 7, "programming" = 5, "biotech" = 6, "magnets" = 5)
+ req_tech = list("materials" = 7, "programming" = 5, "biotech" = 7, "magnets" = 5,"plasmatech" = 6)
build_type = PROTOLATHE | MECHFAB
construction_time = 60
- materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_SILVER = 600, MAT_GOLD = 600, MAT_PLASMA = 1000, MAT_URANIUM = 1000, MAT_DIAMOND = 2000)
+ materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 600, MAT_GOLD = 600, MAT_PLASMA = 1000, MAT_URANIUM = 1000, MAT_DIAMOND = 2000)
build_path = /obj/item/organ/cyberimp/eyes/xray
category = list("Misc", "Medical Designs")
@@ -213,10 +189,10 @@
name = "Thermals implant"
desc = "These cybernetic eyes will give you Thermal vision. Vertical slit pupil included."
id = "ci-thermals"
- req_tech = list("materials" = 7, "programming" = 5, "biotech" = 5, "magnets" = 5, "syndicate" = 5)
+ req_tech = list("materials" = 6, "programming" = 4, "biotech" = 7, "magnets" = 5,"plasmatech" = 4)
build_type = PROTOLATHE | MECHFAB
construction_time = 60
- materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_SILVER = 600, MAT_GOLD = 600, MAT_PLASMA = 1000, MAT_DIAMOND = 2000)
+ materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 600, MAT_GOLD = 600, MAT_PLASMA = 1000, MAT_DIAMOND = 2000)
build_path = /obj/item/organ/cyberimp/eyes/thermals
category = list("Misc", "Medical Designs")
@@ -224,10 +200,10 @@
name = "Anti-Drop implant"
desc = "This cybernetic brain implant will allow you to force your hand muscles to contract, preventing item dropping. Twitch ear to toggle."
id = "ci-antidrop"
- req_tech = list("materials" = 7, "programming" = 5, "biotech" = 5)
+ req_tech = list("materials" = 5, "programming" = 6, "biotech" = 5)
build_type = PROTOLATHE | MECHFAB
construction_time = 60
- materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_SILVER = 400, MAT_GOLD = 400)
+ materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 400, MAT_GOLD = 400)
build_path = /obj/item/organ/cyberimp/brain/anti_drop
category = list("Misc", "Medical Designs")
@@ -235,10 +211,10 @@
name = "CNS Rebooter implant"
desc = "This implant will automatically give you back control over your central nervous system, reducing downtime when stunned."
id = "ci-antistun"
- req_tech = list("materials" = 7, "programming" = 5, "biotech" = 6)
+ req_tech = list("materials" = 6, "programming" = 5, "biotech" = 6)
build_type = PROTOLATHE | MECHFAB
construction_time = 60
- materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_SILVER = 500, MAT_GOLD = 1000)
+ materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 500, MAT_GOLD = 1000)
build_path = /obj/item/organ/cyberimp/brain/anti_stun
category = list("Misc", "Medical Designs")
@@ -246,10 +222,10 @@
name = "Nutriment pump implant"
desc = "This implant with synthesize and pump into your bloodstream a small amount of nutriment when you are starving."
id = "ci-nutriment"
- req_tech = list("materials" = 6, "programming" = 4, "biotech" = 5)
+ req_tech = list("materials" = 5, "powerstorage" = 6, "biotech" = 5)
build_type = PROTOLATHE | MECHFAB
construction_time = 40
- materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_GOLD = 500, MAT_URANIUM = 500)
+ materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_GOLD = 500, MAT_URANIUM = 500)
build_path = /obj/item/organ/cyberimp/chest/nutriment
category = list("Misc", "Medical Designs")
@@ -257,10 +233,10 @@
name = "Nutriment pump implant PLUS"
desc = "This implant with synthesize and pump into your bloodstream a small amount of nutriment when you are hungry."
id = "ci-nutrimentplus"
- req_tech = list("materials" = 6, "programming" = 4, "biotech" = 6)
+ req_tech = list("materials" = 5, "powerstorage" = 6, "biotech" = 6)
build_type = PROTOLATHE | MECHFAB
construction_time = 50
- materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_GOLD = 500, MAT_URANIUM = 750)
+ materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_GOLD = 500, MAT_URANIUM = 750)
build_path = /obj/item/organ/cyberimp/chest/nutriment/plus
category = list("Misc", "Medical Designs")
@@ -268,10 +244,10 @@
name = "Reviver implant"
desc = "This implant will attempt to revive you if you lose consciousness. For the faint of heart!"
id = "ci-reviver"
- req_tech = list("materials" = 6, "programming" = 4, "biotech" = 7, "syndicate" = 4)
+ req_tech = list("materials" = 5, "programming" = 4, "biotech" = 8)
build_type = PROTOLATHE | MECHFAB
construction_time = 60
- materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_GOLD = 500, MAT_URANIUM = 1000, MAT_DIAMOND = 2000)
+ materials = list(MAT_METAL = 800, MAT_GLASS = 800, MAT_GOLD = 500, MAT_URANIUM = 1000, MAT_DIAMOND = 2000)
build_path = /obj/item/organ/cyberimp/chest/reviver
category = list("Misc", "Medical Designs")
@@ -279,7 +255,7 @@
name = "Thrusters set implant"
desc = "This implant will allow you to use gas from environment or your internals for propulsion in zero-gravity areas."
id = "ci-thrusters"
- req_tech = list("materials" = 7, "programming" = 5, "biotech" = 5, "magnets" = 4, "engineering" = 5)
+ req_tech = list("materials" = 5, "biotech" = 5, "magnets" = 4, "engineering" = 7)
build_type = PROTOLATHE | MECHFAB
construction_time = 80
materials = list(MAT_METAL = 4000, MAT_GLASS = 2000, MAT_SILVER = 1000, MAT_DIAMOND = 1000)
@@ -295,7 +271,7 @@
name = "Implanter"
desc = "A sterile automatic implant injector."
id = "implanter"
- req_tech = list("materials" = 1, "programming" = 2, "biotech" = 3)
+ req_tech = list("materials" = 2, "biotech" = 3, "programming" = 2)
build_type = PROTOLATHE
materials = list(MAT_METAL = 600, MAT_GLASS = 200)
build_path = /obj/item/weapon/implanter
@@ -305,7 +281,7 @@
name = "Implant Case"
desc = "A glass case for containing an implant."
id = "implantcase"
- req_tech = list("materials" = 1, "biotech" = 2)
+ req_tech = list("biotech" = 2)
build_type = PROTOLATHE
materials = list(MAT_GLASS = 500)
build_path = /obj/item/weapon/implantcase
@@ -315,9 +291,9 @@
name = "Freedom Implant Case"
desc = "A glass case containing an implant."
id = "implant_freedom"
- req_tech = list("materials" = 2, "biotech" = 3, "magnets" = 3, "syndicate" = 5)
+ req_tech = list("combat" = 6, "biotech" = 5, "magnets" = 3, "syndicate" = 3)
build_type = PROTOLATHE
- materials = list(MAT_METAL = 50, MAT_GLASS = 500, MAT_GOLD = 250)
+ materials = list(MAT_METAL = 800, MAT_GLASS = 500, MAT_GOLD = 500)
build_path = /obj/item/weapon/implantcase/freedom
category = list("Medical Designs")
@@ -325,8 +301,8 @@
name = "Adrenalin Implant Case"
desc = "A glass case containing an implant."
id = "implant_adrenalin"
- req_tech = list("materials" = 2, "biotech" = 5, "combat" = 3, "syndicate" = 6)
+ req_tech = list("biotech" = 6, "combat" = 6, "syndicate" = 6)
build_type = PROTOLATHE
- materials = list(MAT_METAL = 50, MAT_GLASS = 500, MAT_GOLD = 500, MAT_URANIUM = 100, MAT_DIAMOND = 200)
+ materials = list(MAT_METAL = 1000, MAT_GLASS = 500, MAT_GOLD = 500, MAT_URANIUM = 600, MAT_DIAMOND = 600)
build_path = /obj/item/weapon/implantcase/adrenaline
- category = list("Medical Designs")
\ No newline at end of file
+ category = list("Medical Designs")
diff --git a/code/modules/research/designs/power_designs.dm b/code/modules/research/designs/power_designs.dm
index 11bb5c755be..ba9f113e2e4 100644
--- a/code/modules/research/designs/power_designs.dm
+++ b/code/modules/research/designs/power_designs.dm
@@ -28,8 +28,7 @@
name = "Super-Capacity Power Cell"
desc = "A power cell that holds 20000 units of energy."
id = "super_cell"
- req_tech = list("powerstorage" = 3, "materials" = 2)
- reliability = 75
+ req_tech = list("powerstorage" = 3, "materials" = 3)
build_type = PROTOLATHE | MECHFAB
materials = list(MAT_METAL = 700, MAT_GLASS = 70)
construction_time=100
@@ -40,10 +39,9 @@
name = "Hyper-Capacity Power Cell"
desc = "A power cell that holds 30000 units of energy."
id = "hyper_cell"
- req_tech = list("powerstorage" = 5, "materials" = 4)
- reliability = 70
+ req_tech = list("powerstorage" = 5, "materials" = 5, "engineering" = 5)
build_type = PROTOLATHE | MECHFAB
- materials = list(MAT_METAL = 400, MAT_GOLD = 150, MAT_SILVER = 150, MAT_GLASS = 80)
+ materials = list(MAT_METAL = 700, MAT_GOLD = 150, MAT_SILVER = 150, MAT_GLASS = 80)
construction_time=100
build_path = /obj/item/weapon/stock_parts/cell/hyper
category = list("Misc","Power Designs")
@@ -52,8 +50,7 @@
name = "Bluespace Power Cell"
desc = "A power cell that holds 40000 units of energy."
id = "bluespace_cell"
- req_tech = list("powerstorage" = 6, "materials" = 5)
- reliability = 70
+ req_tech = list("powerstorage" = 6, "materials" = 5, "engineering" = 5, "bluespace" = 5)
build_type = PROTOLATHE | MECHFAB
materials = list(MAT_METAL = 800, MAT_GOLD = 300, MAT_SILVER = 300, MAT_GLASS = 160, MAT_DIAMOND = 160)
construction_time=100
@@ -65,7 +62,7 @@
name = "Light Replacer"
desc = "A device to automatically replace lights. Refill with working lightbulbs."
id = "light_replacer"
- req_tech = list("magnets" = 3, "materials" = 4)
+ req_tech = list("magnets" = 3, "engineering" = 4)
build_type = PROTOLATHE
materials = list(MAT_METAL = 1500, MAT_SILVER = 150, MAT_GLASS = 3000)
build_path = /obj/item/device/lightreplacer
@@ -75,9 +72,8 @@
name = "Machine Design (PACMAN-type Generator Board)"
desc = "The circuit board that for a PACMAN-type portable generator."
id = "pacman"
- req_tech = list("programming" = 3, "plasmatech" = 3, "powerstorage" = 3, "engineering" = 3)
+ req_tech = list("programming" = 2, "plasmatech" = 3, "powerstorage" = 3, "engineering" = 3)
build_type = IMPRINTER
- reliability = 79
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/machine/pacman
category = list("Engineering Machinery")
@@ -88,7 +84,6 @@
id = "superpacman"
req_tech = list("programming" = 3, "powerstorage" = 4, "engineering" = 4)
build_type = IMPRINTER
- reliability = 76
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/machine/pacman/super
category = list("Engineering Machinery")
@@ -97,9 +92,8 @@
name = "Machine Design (MRSPACMAN-type Generator Board)"
desc = "The circuit board that for a MRSPACMAN-type portable generator."
id = "mrspacman"
- req_tech = list("programming" = 3, "powerstorage" = 5, "engineering" = 5)
+ req_tech = list("programming" = 3, "powerstorage" = 5, "engineering" = 5, "plasmatech" = 4)
build_type = IMPRINTER
- reliability = 74
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/machine/pacman/mrs
category = list("Engineering Machinery")
diff --git a/code/modules/research/designs/stock_parts_designs.dm b/code/modules/research/designs/stock_parts_designs.dm
index 3f10842e91f..bfd81790c4a 100644
--- a/code/modules/research/designs/stock_parts_designs.dm
+++ b/code/modules/research/designs/stock_parts_designs.dm
@@ -6,8 +6,7 @@
name = "Rapid Part Exchange Device"
desc = "Special mechanical module made to store, sort, and apply standard machine parts."
id = "rped"
- req_tech = list("engineering" = 3,
- "materials" = 3)
+ req_tech = list("engineering" = 1)
build_type = PROTOLATHE
materials = list(MAT_METAL = 10000, MAT_GLASS = 5000) //hardcore
build_path = /obj/item/weapon/storage/part_replacer
@@ -17,7 +16,7 @@
name = "Bluespace RPED"
desc = "Powered by bluespace technology, this RPED variant can upgrade buildings from a distance, without needing to remove the panel first."
id = "bs_rped"
- req_tech = list("engineering" = 3, "materials" = 5, "programming" = 3, "bluespace" = 3)
+ req_tech = list("engineering" = 4, "bluespace" = 3)
build_type = PROTOLATHE
materials = list(MAT_METAL = 15000, MAT_GLASS = 5000, MAT_SILVER = 2500) //hardcore
build_path = /obj/item/weapon/storage/part_replacer/bluespace
@@ -30,7 +29,7 @@
id = "basic_capacitor"
req_tech = list("powerstorage" = 1)
build_type = PROTOLATHE | AUTOLATHE
- materials = list(MAT_METAL = 50, MAT_GLASS = 50)
+ materials = list(MAT_METAL = 100, MAT_GLASS = 100)
build_path = /obj/item/weapon/stock_parts/capacitor
category = list("Stock Parts","Machinery","initial")
@@ -40,7 +39,7 @@
id = "adv_capacitor"
req_tech = list("powerstorage" = 3)
build_type = PROTOLATHE
- materials = list(MAT_METAL = 50, MAT_GLASS = 50)
+ materials = list(MAT_METAL = 150, MAT_GLASS = 150)
build_path = /obj/item/weapon/stock_parts/capacitor/adv
category = list("Stock Parts")
@@ -48,10 +47,9 @@
name = "Super Capacitor"
desc = "A stock part used in the construction of various devices."
id = "super_capacitor"
- req_tech = list("powerstorage" = 5, "materials" = 4)
+ req_tech = list("powerstorage" = 5, "engineering" = 5)
build_type = PROTOLATHE
- reliability = 71
- materials = list(MAT_METAL = 50, MAT_GLASS = 50, MAT_GOLD = 20)
+ materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_GOLD = 100)
build_path = /obj/item/weapon/stock_parts/capacitor/super
category = list("Stock Parts")
@@ -59,10 +57,9 @@
name = "Quadratic Capacitor"
desc = "A stock part used in the construction of various devices."
id = "quadratic_capacitor"
- req_tech = list("powerstorage" = 6, "materials" = 5)
+ req_tech = list("powerstorage" = 6, "engineering" = 5, "materials" = 5, "bluespace" = 5)
build_type = PROTOLATHE
- reliability = 71
- materials = list(MAT_METAL = 100, MAT_GLASS = 100, MAT_DIAMOND = 40)
+ materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_DIAMOND = 100)
build_path = /obj/item/weapon/stock_parts/capacitor/quadratic
category = list("Stock Parts")
@@ -73,7 +70,7 @@
id = "basic_scanning"
req_tech = list("magnets" = 1)
build_type = PROTOLATHE | AUTOLATHE
- materials = list(MAT_METAL = 50, MAT_GLASS = 20)
+ materials = list(MAT_METAL = 100, MAT_GLASS = 50)
build_path = /obj/item/weapon/stock_parts/scanning_module
category = list("Stock Parts","Machinery","initial")
@@ -83,7 +80,7 @@
id = "adv_scanning"
req_tech = list("magnets" = 3)
build_type = PROTOLATHE
- materials = list(MAT_METAL = 50, MAT_GLASS = 20)
+ materials = list(MAT_METAL = 150, MAT_GLASS = 100)
build_path = /obj/item/weapon/stock_parts/scanning_module/adv
category = list("Stock Parts")
@@ -91,10 +88,9 @@
name = "Phasic Scanning Module"
desc = "A stock part used in the construction of various devices."
id = "phasic_scanning"
- req_tech = list("magnets" = 5, "materials" = 3)
+ req_tech = list("magnets" = 5, "engineering" = 5)
build_type = PROTOLATHE
- materials = list(MAT_METAL = 50, MAT_GLASS = 20, MAT_SILVER = 10)
- reliability = 72
+ materials = list(MAT_METAL = 200, MAT_GLASS = 150, MAT_SILVER = 60)
build_path = /obj/item/weapon/stock_parts/scanning_module/phasic
category = list("Stock Parts")
@@ -102,10 +98,9 @@
name = "Triphasic Scanning Module"
desc = "A stock part used in the construction of various devices."
id = "triphasic_scanning"
- req_tech = list("magnets" = 6, "materials" = 4)
+ req_tech = list("magnets" = 6, "materials" = 5, "engineering" = 5, "bluespace" = 5)
build_type = PROTOLATHE
- materials = list(MAT_METAL = 100, MAT_GLASS = 40, MAT_DIAMOND = 20)
- reliability = 72
+ materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_DIAMOND = 60)
build_path = /obj/item/weapon/stock_parts/scanning_module/triphasic
category = list("Stock Parts")
@@ -114,9 +109,9 @@
name = "Micro Manipulator"
desc = "A stock part used in the construction of various devices."
id = "micro_mani"
- req_tech = list("materials" = 1, "programming" = 1)
+ req_tech = list("materials" = 1)
build_type = PROTOLATHE | AUTOLATHE
- materials = list(MAT_METAL = 30)
+ materials = list(MAT_METAL = 100)
build_path = /obj/item/weapon/stock_parts/manipulator
category = list("Stock Parts","Machinery","initial")
@@ -126,7 +121,7 @@
id = "nano_mani"
req_tech = list("materials" = 3, "programming" = 2)
build_type = PROTOLATHE
- materials = list(MAT_METAL = 30)
+ materials = list(MAT_METAL = 150)
build_path = /obj/item/weapon/stock_parts/manipulator/nano
category = list("Stock Parts")
@@ -134,10 +129,9 @@
name = "Pico Manipulator"
desc = "A stock part used in the construction of various devices."
id = "pico_mani"
- req_tech = list("materials" = 5, "programming" = 2)
+ req_tech = list("materials" = 5, "programming" = 4, "engineering" = 5)
build_type = PROTOLATHE
- materials = list(MAT_METAL = 30)
- reliability = 73
+ materials = list(MAT_METAL = 200)
build_path = /obj/item/weapon/stock_parts/manipulator/pico
category = list("Stock Parts")
@@ -145,10 +139,9 @@
name = "Femto Manipulator"
desc = "A stock part used in the construction of various devices."
id = "femto_mani"
- req_tech = list("materials" = 6, "programming" = 3)
+ req_tech = list("materials" = 7, "programming" = 5, "engineering" = 5, "bluespace" = 5)
build_type = PROTOLATHE
- materials = list(MAT_METAL = 60, MAT_DIAMOND = 30)
- reliability = 73
+ materials = list(MAT_METAL = 200, MAT_DIAMOND = 60)
build_path = /obj/item/weapon/stock_parts/manipulator/femto
category = list("Stock Parts")
@@ -159,7 +152,7 @@
id = "basic_micro_laser"
req_tech = list("magnets" = 1)
build_type = PROTOLATHE | AUTOLATHE
- materials = list(MAT_METAL = 10, MAT_GLASS = 20)
+ materials = list(MAT_METAL = 100, MAT_GLASS = 50)
build_path = /obj/item/weapon/stock_parts/micro_laser
category = list("Stock Parts","Machinery","initial")
@@ -169,7 +162,7 @@
id = "high_micro_laser"
req_tech = list("magnets" = 3)
build_type = PROTOLATHE
- materials = list(MAT_METAL = 10, MAT_GLASS = 20)
+ materials = list(MAT_METAL = 150, MAT_GLASS = 100)
build_path = /obj/item/weapon/stock_parts/micro_laser/high
category = list("Stock Parts")
@@ -177,10 +170,9 @@
name = "Ultra-High-Power Micro-Laser"
desc = "A stock part used in the construction of various devices."
id = "ultra_micro_laser"
- req_tech = list("magnets" = 5, "materials" = 5)
+ req_tech = list("magnets" = 5, "engineering" = 5)
build_type = PROTOLATHE
- materials = list(MAT_METAL = 10, MAT_GLASS = 20, MAT_URANIUM = 10)
- reliability = 70
+ materials = list(MAT_METAL = 200, MAT_GLASS = 150, MAT_URANIUM = 60)
build_path = /obj/item/weapon/stock_parts/micro_laser/ultra
category = list("Stock Parts")
@@ -188,10 +180,9 @@
name = "Quad-Ultra Micro-Laser"
desc = "A stock part used in the construction of various devices."
id = "quadultra_micro_laser"
- req_tech = list("magnets" = 6, "materials" = 6)
+ req_tech = list("magnets" = 6, "materials" = 5, "engineering" = 5, "bluespace" = 5)
build_type = PROTOLATHE
- materials = list(MAT_METAL = 20, MAT_GLASS = 40, MAT_URANIUM = 20, MAT_DIAMOND = 20)
- reliability = 70
+ materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_URANIUM = 100, MAT_DIAMOND = 60)
build_path = /obj/item/weapon/stock_parts/micro_laser/quadultra
category = list("Stock Parts")
@@ -201,7 +192,7 @@
id = "basic_matter_bin"
req_tech = list("materials" = 1)
build_type = PROTOLATHE | AUTOLATHE
- materials = list(MAT_METAL = 80)
+ materials = list(MAT_METAL = 100)
build_path = /obj/item/weapon/stock_parts/matter_bin
category = list("Stock Parts","Machinery","initial")
@@ -211,7 +202,7 @@
id = "adv_matter_bin"
req_tech = list("materials" = 3)
build_type = PROTOLATHE
- materials = list(MAT_METAL = 80)
+ materials = list(MAT_METAL = 150)
build_path = /obj/item/weapon/stock_parts/matter_bin/adv
category = list("Stock Parts")
@@ -219,10 +210,9 @@
name = "Super Matter Bin"
desc = "A stock part used in the construction of various devices."
id = "super_matter_bin"
- req_tech = list("materials" = 5)
+ req_tech = list("materials" = 5, "engineering" = 5)
build_type = PROTOLATHE
- materials = list(MAT_METAL = 80)
- reliability = 75
+ materials = list(MAT_METAL = 200)
build_path = /obj/item/weapon/stock_parts/matter_bin/super
category = list("Stock Parts")
@@ -230,10 +220,9 @@
name = "Bluespace Matter Bin"
desc = "A stock part used in the construction of various devices."
id = "bluespace_matter_bin"
- req_tech = list("materials" = 6)
+ req_tech = list("materials" = 7, "engineering" = 5, "bluespace" = 5)
build_type = PROTOLATHE
- materials = list(MAT_METAL = 160, MAT_DIAMOND = 200)
- reliability = 75
+ materials = list(MAT_METAL = 250, MAT_DIAMOND = 200)
build_path = /obj/item/weapon/stock_parts/matter_bin/bluespace
category = list("Stock Parts")
@@ -242,9 +231,9 @@
name = "Subspace Ansible"
desc = "A compact module capable of sensing extradimensional activity."
id = "s-ansible"
- req_tech = list("programming" = 2, "magnets" = 2, "materials" = 2, "bluespace" = 1)
+ req_tech = list("programming" = 2, "magnets" = 2, "materials" = 2)
build_type = PROTOLATHE
- materials = list(MAT_METAL = 80, MAT_SILVER = 20)
+ materials = list(MAT_METAL = 100, MAT_SILVER = 100)
build_path = /obj/item/weapon/stock_parts/subspace/ansible
category = list("Stock Parts")
@@ -252,9 +241,9 @@
name = "Hyperwave Filter"
desc = "A tiny device capable of filtering and converting super-intense radiowaves."
id = "s-filter"
- req_tech = list("programming" = 2, "magnets" = 2)
+ req_tech = list("programming" = 3, "magnets" = 3)
build_type = PROTOLATHE
- materials = list(MAT_METAL = 40, MAT_SILVER = 10)
+ materials = list(MAT_METAL = 100, MAT_SILVER = 100)
build_path = /obj/item/weapon/stock_parts/subspace/filter
category = list("Stock Parts")
@@ -262,9 +251,9 @@
name = "Subspace Amplifier"
desc = "A compact micro-machine capable of amplifying weak subspace transmissions."
id = "s-amplifier"
- req_tech = list("programming" = 2, "magnets" = 2, "materials" = 2, "bluespace" = 1)
+ req_tech = list("programming" = 3, "magnets" = 4, "materials" = 3, "bluespace" = 2)
build_type = PROTOLATHE
- materials = list(MAT_METAL = 10, MAT_GOLD = 30, MAT_URANIUM = 15)
+ materials = list(MAT_METAL = 100, MAT_GOLD = 100, MAT_URANIUM = 100)
build_path = /obj/item/weapon/stock_parts/subspace/amplifier
category = list("Stock Parts")
@@ -272,9 +261,9 @@
name = "Subspace Treatment Disk"
desc = "A compact micro-machine capable of stretching out hyper-compressed radio waves."
id = "s-treatment"
- req_tech = list("programming" = 2, "magnets" = 1, "materials" = 2, "bluespace" = 1)
+ req_tech = list("programming" = 2, "magnets" = 3, "materials" = 2, "bluespace" = 3)
build_type = PROTOLATHE
- materials = list(MAT_METAL = 10, MAT_SILVER = 20)
+ materials = list(MAT_METAL = 100, MAT_SILVER = 200)
build_path = /obj/item/weapon/stock_parts/subspace/treatment
category = list("Stock Parts")
@@ -282,9 +271,9 @@
name = "Subspace Analyzer"
desc = "A sophisticated analyzer capable of analyzing cryptic subspace wavelengths."
id = "s-analyzer"
- req_tech = list("programming" = 2, "magnets" = 2, "materials" = 2, "bluespace" = 1)
+ req_tech = list("programming" = 3, "magnets" = 4, "materials" = 2, "bluespace" = 3)
build_type = PROTOLATHE
- materials = list(MAT_METAL = 10, MAT_GOLD = 15)
+ materials = list(MAT_METAL = 100, MAT_GOLD = 100)
build_path = /obj/item/weapon/stock_parts/subspace/analyzer
category = list("Stock Parts")
@@ -292,9 +281,9 @@
name = "Ansible Crystal"
desc = "A sophisticated analyzer capable of analyzing cryptic subspace wavelengths."
id = "s-crystal"
- req_tech = list("magnets" = 2, "materials" = 2, "bluespace" = 1)
+ req_tech = list("magnets" = 2, "materials" = 2, "bluespace" = 3, "plasmatech" = 3)
build_type = PROTOLATHE
- materials = list(MAT_GLASS = 1000, MAT_SILVER = 20, MAT_GOLD = 20)
+ materials = list(MAT_GLASS = 800, MAT_SILVER = 100, MAT_GOLD = 100)
build_path = /obj/item/weapon/stock_parts/subspace/crystal
category = list("Stock Parts")
@@ -302,8 +291,8 @@
name = "Subspace Transmitter"
desc = "A large piece of equipment used to open a window into the subspace dimension."
id = "s-transmitter"
- req_tech = list("magnets" = 3, "materials" = 3, "bluespace" = 2)
+ req_tech = list("magnets" = 3, "materials" = 4, "bluespace" = 4)
build_type = PROTOLATHE
- materials = list(MAT_GLASS = 100, MAT_SILVER = 10, MAT_URANIUM = 15)
+ materials = list(MAT_GLASS = 100, MAT_SILVER = 100, MAT_URANIUM = 100)
build_path = /obj/item/weapon/stock_parts/subspace/transmitter
category = list("Stock Parts")
diff --git a/code/modules/research/designs/telecomms_designs.dm b/code/modules/research/designs/telecomms_designs.dm
index baa6bb689ba..f63ee2fe2d5 100644
--- a/code/modules/research/designs/telecomms_designs.dm
+++ b/code/modules/research/designs/telecomms_designs.dm
@@ -66,8 +66,8 @@
name = "Machine Design (Subspace Broadcaster)"
desc = "Allows for the construction of Subspace Broadcasting equipment."
id = "s-broadcaster"
- req_tech = list("programming" = 2, "engineering" = 2, "bluespace" = 1)
+ req_tech = list("programming" = 2, "engineering" = 2)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/machine/telecomms/broadcaster
- category = list("Subspace Telecomms")
\ No newline at end of file
+ category = list("Subspace Telecomms")
diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm
index 96934df98e7..9c8d3b50fa9 100644
--- a/code/modules/research/designs/weapon_designs.dm
+++ b/code/modules/research/designs/weapon_designs.dm
@@ -6,7 +6,7 @@
name = "test-range firing pin"
desc = "This safety firing pin allows firearms to be operated within proximity to a firing range."
id = "pin_testing"
- req_tech = list("combat" = 1, "materials" = 2)
+ req_tech = list("combat" = 2, "materials" = 2)
build_type = PROTOLATHE
materials = list(MAT_METAL = 500, MAT_GLASS = 300)
build_path = /obj/item/device/firing_pin/test_range
@@ -16,7 +16,7 @@
name = "loyalty firing pin"
desc = "This is a security firing pin which only authorizes users who are loyalty-implanted."
id = "pin_loyalty"
- req_tech = list("combat" = 5, "materials" = 6, "powerstorage" = 3)
+ req_tech = list("combat" = 5, "materials" = 6)
build_type = PROTOLATHE
materials = list(MAT_SILVER = 600, MAT_DIAMOND = 600, MAT_URANIUM = 200)
build_path = /obj/item/device/firing_pin/implant/loyalty
@@ -26,21 +26,19 @@
name = "Tesla Revolver"
desc = "A high-tech revolver that fires internal, reusable shock cartridges in a revolving cylinder. The cartridges can be recharged using conventional rechargers."
id = "stunrevolver"
- req_tech = list("combat" = 3, "materials" = 3, "powerstorage" = 5)
+ req_tech = list("combat" = 4, "materials" = 4, "powerstorage" = 5)
build_type = PROTOLATHE
materials = list(MAT_METAL = 10000, MAT_GLASS = 10000, MAT_SILVER = 10000)
build_path = /obj/item/weapon/gun/energy/shock_revolver
-
category = list("Weapons")
/datum/design/nuclear_gun
name = "Advanced Energy Gun"
desc = "An energy gun with an experimental miniaturized reactor."
id = "nuclear_gun"
- req_tech = list("combat" = 4, "materials" = 5, "powerstorage" = 3)
+ req_tech = list("combat" = 5, "magnets" = 5, "powerstorage" = 5)
build_type = PROTOLATHE
- materials = list(MAT_METAL = 5000, MAT_GLASS = 1000, MAT_URANIUM = 2000)
- reliability = 76
+ materials = list(MAT_METAL = 10000, MAT_GLASS = 2000, MAT_URANIUM = 4000)
build_path = /obj/item/weapon/gun/energy/gun/nuclear
category = list("Weapons")
@@ -48,7 +46,7 @@
name = "Telescopic Riot Shield"
desc = "An advanced riot shield made of lightweight materials that collapses for easy storage."
id = "tele_shield"
- req_tech = list("combat" = 4, "materials" = 3, "engineering" = 3)
+ req_tech = list("combat" = 4, "materials" = 3, "engineering" = 4)
build_type = PROTOLATHE
materials = list(MAT_METAL = 4000, MAT_GLASS = 5000, MAT_SILVER = 300)
build_path = /obj/item/weapon/shield/riot/tele
@@ -58,9 +56,9 @@
name = "Accelerator Laser Cannon"
desc = "A heavy duty laser cannon. It does more damage the farther away the target is."
id = "lasercannon"
- req_tech = list("combat" = 4, "materials" = 3, "powerstorage" = 3)
+ req_tech = list("combat" = 5, "magnets" = 5, "powerstorage" = 3)
build_type = PROTOLATHE
- materials = list(MAT_METAL = 10000, MAT_GLASS = 2000, MAT_DIAMOND = 2000)
+ materials = list(MAT_METAL = 10000, MAT_GLASS = 3000, MAT_DIAMOND = 3000)
build_path = /obj/item/weapon/gun/energy/lasercannon
category = list("Weapons")
@@ -68,7 +66,7 @@
name = "Decloner"
desc = "Your opponent will bubble into a messy pile of goop."
id = "decloner"
- req_tech = list("combat" = 8, "materials" = 7, "biotech" = 5, "powerstorage" = 6)
+ req_tech = list("combat" = 5, "materials" = 5, "biotech" = 6, "plasmatech" = 7)
build_type = PROTOLATHE
materials = list(MAT_GOLD = 5000,MAT_URANIUM = 10000)
reagents = list("mutagen" = 40)
@@ -79,7 +77,7 @@
name = "Rapid Syringe Gun"
desc = "A gun that fires many syringes."
id = "rapidsyringe"
- req_tech = list("combat" = 3, "materials" = 3, "engineering" = 3, "biotech" = 2)
+ req_tech = list("combat" = 3, "biotech" = 3)
build_type = PROTOLATHE
materials = list(MAT_METAL = 5000, MAT_GLASS = 1000)
build_path = /obj/item/weapon/gun/syringe/rapidsyringe
@@ -89,18 +87,17 @@
name = "Energy Crossbow"
desc = "A reverse-engineered energy crossbow favored by syndicate infiltration teams and carp hunters."
id = "largecrossbow"
- req_tech = list("combat" = 5, "materials" = 5, "engineering" = 3, "biotech" = 4, "syndicate" = 3)
+ req_tech = list("combat" = 5, "engineering" = 3, "magnet" = 5, "syndicate" = 3)
build_type = PROTOLATHE
materials = list(MAT_METAL = 5000, MAT_GLASS = 1500, MAT_URANIUM = 1500, MAT_SILVER = 1500)
build_path = /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow/large
category = list("Weapons")
- reliability = 76
/datum/design/temp_gun
name = "Temperature Gun"
desc = "A gun that shoots temperature bullet energythings to change temperature."//Change it if you want
id = "temp_gun"
- req_tech = list("combat" = 3, "materials" = 4, "powerstorage" = 3, "magnets" = 2)
+ req_tech = list("combat" = 4, "materials" = 4, "powerstorage" = 3, "magnets" = 2)
build_type = PROTOLATHE
materials = list(MAT_METAL = 5000, MAT_GLASS = 500, MAT_SILVER = 3000)
build_path = /obj/item/weapon/gun/energy/temperature
@@ -110,7 +107,7 @@
name = "Floral Somatoray"
desc = "A tool that discharges controlled radiation which induces mutation in plant cells. Harmless to other organic life."
id = "flora_gun"
- req_tech = list("materials" = 2, "biotech" = 3, "powerstorage" = 3)
+ req_tech = list("materials" = 2, "biotech" = 4)
build_type = PROTOLATHE
materials = list(MAT_METAL = 2000, MAT_GLASS = 500)
reagents = list("radium" = 20)
@@ -121,10 +118,9 @@
name = "Large Grenade"
desc = "A grenade that affects a larger area and use larger containers."
id = "large_Grenade"
- req_tech = list("combat" = 3, "materials" = 2)
+ req_tech = list("combat" = 3, "engineering" = 3)
build_type = PROTOLATHE
materials = list(MAT_METAL = 3000)
- reliability = 79
build_path = /obj/item/weapon/grenade/chem_grenade/large
category = list("Weapons")
@@ -132,10 +128,9 @@
name = "Pyro Grenade"
desc = "An advanced grenade that is able to self ignite its mixture."
id = "pyro_Grenade"
- req_tech = list("combat" = 3, "materials" = 3)
+ req_tech = list("combat" = 4, "engineering" = 4)
build_type = PROTOLATHE
materials = list(MAT_METAL = 2000, MAT_PLASMA = 500)
- reliability = 79
build_path = /obj/item/weapon/grenade/chem_grenade/pyro
category = list("Weapons")
@@ -148,7 +143,6 @@
req_tech = list("combat" = 3, "materials" = 3)
build_type = PROTOLATHE
materials = list(MAT_METAL = 2000, MAT_SILVER = 500)
- reliability = 79
build_path = /obj/item/weapon/grenade/chem_grenade/cryo
category = list("Weapons")
*/
@@ -157,10 +151,9 @@
name = "Advanced Release Grenade"
desc = "An advanced grenade that can be detonated several times, best used with a repeating igniter."
id = "adv_Grenade"
- req_tech = list("combat" = 3, "materials" = 3)
+ req_tech = list("combat" = 3, "engineering" = 4)
build_type = PROTOLATHE
materials = list(MAT_METAL = 3000, MAT_GLASS = 500)
- reliability = 79
build_path = /obj/item/weapon/grenade/chem_grenade/adv_release
category = list("Weapons")
@@ -168,9 +161,9 @@
name = "Xray Laser Gun"
desc = "Not quite as menacing as it sounds"
id = "xray"
- req_tech = list("combat" = 6, "materials" = 5, "biotech" = 5, "powerstorage" = 4)
+ req_tech = list("combat" = 7, "magnets" = 5, "biotech" = 5, "powerstorage" = 4)
build_type = PROTOLATHE
- materials = list(MAT_GOLD = 5000,MAT_URANIUM = 10000, MAT_METAL = 4000)
+ materials = list(MAT_GOLD = 5000,MAT_URANIUM = 10000, MAT_METAL = 5000)
build_path = /obj/item/weapon/gun/energy/xray
category = list("Weapons")
@@ -178,9 +171,9 @@
name = "Ion Carbine"
desc = "How to dismantle a cyborg : The gun."
id = "ioncarbine"
- req_tech = list("combat" = 5, "materials" = 4, "magnets" = 4)
+ req_tech = list("combat" = 5, "magnets" = 4)
build_type = PROTOLATHE
- materials = list(MAT_SILVER = 4000, MAT_METAL = 6000, MAT_URANIUM = 1000)
+ materials = list(MAT_SILVER = 6000, MAT_METAL = 8000, MAT_URANIUM = 2000)
build_path = /obj/item/weapon/gun/energy/ionrifle/carbine
category = list("Weapons")
@@ -188,9 +181,9 @@
name = "Bluespace Wormhole Projector"
desc = "A projector that emits high density quantum-coupled bluespace beams."
id = "wormholeprojector"
- req_tech = list("combat" = 6, "materials" = 6, "bluespace" = 4)
+ req_tech = list("combat" = 5, "engineering" = 5, "bluespace" = 7, "plasmatech" = 6)
build_type = PROTOLATHE
- materials = list(MAT_SILVER = 1000, MAT_METAL = 5000, MAT_DIAMOND = 3000)
+ materials = list(MAT_SILVER = 2000, MAT_METAL = 5000, MAT_DIAMOND = 3000)
build_path = /obj/item/weapon/gun/energy/wormhole_projector
category = list("Weapons")
@@ -198,7 +191,7 @@
name = "Modular Receiver"
desc = "A prototype modular receiver and trigger assembly for a variety of firearms."
id = "reciever"
- req_tech = list("combat" = 5, "materials" = 4)
+ req_tech = list("combat" = 4, "materials" = 4)
build_type = PROTOLATHE
materials = list(MAT_METAL = 6500, MAT_SILVER = 500)
build_path = /obj/item/weaponcrafting/reciever
diff --git a/code/modules/research/destructive_analyzer.dm b/code/modules/research/destructive_analyzer.dm
index d48ed0b2974..958dd671d4d 100644
--- a/code/modules/research/destructive_analyzer.dm
+++ b/code/modules/research/destructive_analyzer.dm
@@ -65,5 +65,5 @@ Note: Must be placed within 3 tiles of the R&D Console
user << "
You add the [O.name] to the [src.name]!"
flick("d_analyzer_la", src)
spawn(10)
+ icon_state = "d_analyzer_l"
busy = 0
-
diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm
index 62216b39872..eff680d02c9 100644
--- a/code/modules/research/experimentor.dm
+++ b/code/modules/research/experimentor.dm
@@ -129,9 +129,6 @@
if (temp_tech.len == 0)
user << "
You cannot experiment on this item!"
return
- if(O.reliability < 90 && O.crit_fail == 0)
- usr << "
Item is neither reliable enough or broken enough to learn from."
- return
if(!user.drop_item())
return
loaded_item = O
@@ -484,16 +481,11 @@
investigate_log("Experimentor has spawned a new corgi.", "experimentor")
ejectItem(TRUE)
if(globalMalf > 36 && globalMalf < 50)
- visible_message("
[src] improves [exp_on], drawing the life essence of those nearby!")
+ visible_message("
Experimentor draws the life essence of those nearby!")
for(var/mob/living/m in view(4,src))
m << "
You feel your flesh being torn from you, mists of blood drifting to [src]!"
m.apply_damage(50,"brute","chest")
investigate_log("Experimentor has taken 50 brute a blood sacrifice from [m]", "experimentor")
- var/list/reqs = ConvertReqString2List(exp_on.origin_tech)
- for(var/T in reqs)
- reqs[T] = reqs[T] + 1
- exp_on.origin_tech = list2params(reqs)
- investigate_log("Experimentor has set the origin tech of [exp_on] to [exp_on.origin_tech]", "experimentor")
if(globalMalf > 51 && globalMalf < 75)
visible_message("
[src] encounters a run-time error!")
throwSmoke(src.loc)
@@ -557,7 +549,6 @@
var/list/temp_tech = ConvertReqString2List(process.origin_tech)
for(var/T in temp_tech)
linked_console.files.UpdateTech(T, temp_tech[T])
- linked_console.files.UpdateDesigns(process,temp_tech)
src.updateUsrDialog()
return
@@ -609,6 +600,7 @@
name = realName
cooldownMax = rand(60,300)
realProc = pick("teleport","explode","rapidDupe","petSpray","flash","clean","corgicannon")
+ origin_tech = pick("engineering=[rand(2,5)]","magnets=[rand(2,5)]","plasmatech=[rand(2,5)]","programming=[rand(2,5)]","powerstorage=[rand(2,5)]")
/obj/item/weapon/relic/attack_self(mob/user)
if(revealed)
diff --git a/code/modules/research/protolathe.dm b/code/modules/research/protolathe.dm
index 7099699fb5a..ff1e2ef9c75 100644
--- a/code/modules/research/protolathe.dm
+++ b/code/modules/research/protolathe.dm
@@ -60,10 +60,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
materials.max_amount = T * 75000
- T = 0
+ T = 1.2
for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts)
- T += (M.rating/3)
- efficiency_coeff = max(T, 1)
+ T -= M.rating/10
+ efficiency_coeff = min(max(0, T), 1)
/obj/machinery/r_n_d/protolathe/proc/check_mat(datum/design/being_built, M) // now returns how many times the item can be built with the material
var/A = materials.amount(M)
@@ -90,7 +90,7 @@ Note: Must be placed west/left of and R&D console to function.
if(istype(O,/obj/item/stack/sheet))
. = 1
- if(!is_insertion_ready(user))
+ if(!is_insertion_ready(user) || busy)
return
if(!materials.has_space( materials.get_item_material_amount(O) ))
user << "
The [src.name]'s material bin is full! Please remove material before adding more."
diff --git a/code/modules/research/rd-readme.dm b/code/modules/research/rd-readme.dm
index 5c42b3e930b..9c06d43a3b4 100644
--- a/code/modules/research/rd-readme.dm
+++ b/code/modules/research/rd-readme.dm
@@ -22,7 +22,7 @@ materials.
While researching you are dealing with two different types of information: Technology Paths and Device Designs. Technology Paths
are the "Tech Trees" of the game. You start out with a number of them at the game start and they are improved by using the
Destructive Analyzer. By themselves, they don't do a whole lot. However, they unlock Device Designs. This is the information used
-by the circuit imprinter and the protolathe to produce objects. It also tracks the current reliability of that particular design.
+by the circuit imprinter and the protolathe to produce objects.
//EXISTING TECH
Each tech path should have at LEAST one item at every level (levels 1 - 20). This is to allow for a more fluid progression of the
diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm
index 7a191dcab46..6b73ffa3f02 100644
--- a/code/modules/research/rdconsole.dm
+++ b/code/modules/research/rdconsole.dm
@@ -250,60 +250,63 @@ proc/CallMaterialName(ID)
linked_destroy.loaded_item.loc = linked_destroy.loc
linked_destroy.loaded_item = null
linked_destroy.icon_state = "d_analyzer"
- screen = 2.1
+ screen = 1.0
else if(href_list["deconstruct"]) //Deconstruct the item in the destructive analyzer and update the research holder.
if(linked_destroy)
if(linked_destroy.busy)
usr << "
The destructive analyzer is busy at the moment."
- else
- var/choice = input("Proceeding will destroy loaded item.") in list("Proceed", "Cancel")
+ return
+ var/list/temp_tech = linked_destroy.ConvertReqString2List(linked_destroy.loaded_item.origin_tech)
+ var/cancontinue = FALSE
+ for(var/T in temp_tech)
+ if(files.IsTechHigher(T, temp_tech[T]))
+ cancontinue = TRUE
+ break
+ if(!cancontinue)
+ var/choice = input("This item does not raise tech levels. Proceed destroying loaded item anyway?") in list("Proceed", "Cancel")
if(choice == "Cancel" || !linked_destroy) return
- linked_destroy.busy = 1
- screen = 0.1
- updateUsrDialog()
- flick("d_analyzer_process", linked_destroy)
- spawn(24)
- if(linked_destroy)
- linked_destroy.busy = 0
- if(!linked_destroy.hacked)
- if(!linked_destroy.loaded_item)
- usr <<"
The destructive analyzer appears to be empty."
- screen = 1.0
- return
- 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)
- 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.
- for(var/material in linked_destroy.loaded_item.materials)
- linked_lathe.materials.insert_amount(min((linked_lathe.materials.max_amount - linked_lathe.materials.total_amount), (linked_destroy.loaded_item.materials[material]*(linked_destroy.decon_mod/10))), material)
- feedback_add_details("item_deconstructed","[linked_destroy.loaded_item.type]")
- 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()
- if(istype(I,/obj/item/stack/sheet))//Only deconsturcts one sheet at a time instead of the entire stack
- var/obj/item/stack/sheet/S = I
- if(S.amount > 1)
- S.amount--
- linked_destroy.loaded_item = S
- else
- qdel(S)
- linked_destroy.icon_state = "d_analyzer"
+ linked_destroy.busy = 1
+ screen = 0.1
+ updateUsrDialog()
+ flick("d_analyzer_process", linked_destroy)
+ spawn(24)
+ if(linked_destroy)
+ linked_destroy.busy = 0
+ if(!linked_destroy.loaded_item)
+ usr <<"
The destructive analyzer appears to be empty."
+ screen = 1.0
+ return
+
+ for(var/T in temp_tech)
+ var/datum/tech/KT = files.known_tech[T] //For stat logging of high levels
+ if(files.IsTechHigher(T, temp_tech[T]) && KT.level >= 5) //For stat logging of high levels
+ feedback_add_details("high_research_level","[KT][KT.level + 1]") //+1 to show the level which we're about to get
+ files.UpdateTech(T, temp_tech[T])
+
+ if(linked_lathe) //Also sends salvaged materials to a linked protolathe, if any.
+ for(var/material in linked_destroy.loaded_item.materials)
+ linked_lathe.materials.insert_amount(min((linked_lathe.materials.max_amount - linked_lathe.materials.total_amount), (linked_destroy.loaded_item.materials[material]*(linked_destroy.decon_mod/10))), material)
+ feedback_add_details("item_deconstructed","[linked_destroy.loaded_item.type]")
+ linked_destroy.loaded_item = null
+ for(var/obj/I in linked_destroy.contents)
+ for(var/mob/M in I.contents)
+ M.death()
+ if(istype(I,/obj/item/stack/sheet))//Only deconsturcts one sheet at a time instead of the entire stack
+ var/obj/item/stack/sheet/S = I
+ if(S.amount > 1)
+ S.amount--
+ linked_destroy.loaded_item = S
else
- if(!(I in linked_destroy.component_parts))
- qdel(I)
- linked_destroy.icon_state = "d_analyzer"
- use_power(250)
- updateUsrDialog()
+ qdel(S)
+ linked_destroy.icon_state = "d_analyzer"
+ else
+ if(!(I in linked_destroy.component_parts))
+ qdel(I)
+ linked_destroy.icon_state = "d_analyzer"
+ screen = 1.0
+ use_power(250)
+ updateUsrDialog()
else if(href_list["lock"]) //Lock the console from use by anyone without tox access.
if(src.allowed(usr))
@@ -350,15 +353,12 @@ proc/CallMaterialName(ID)
sync = !sync
else if(href_list["build"]) //Causes the Protolathe to build something.
- var/coeff
-
- if(linked_lathe)
- coeff = linked_lathe.efficiency_coeff
- else
- coeff = 1
-
- var/g2g = 1
if(linked_lathe)
+ if(linked_lathe.busy)
+ usr << "
Protolathe is busy at the moment."
+ return
+ var/coeff = linked_lathe.efficiency_coeff
+ var/g2g = 1
var/datum/design/being_built = files.known_designs[href_list["build"]]
if(being_built)
var/power = 2000
@@ -369,15 +369,11 @@ proc/CallMaterialName(ID)
power += round(being_built.materials[M] * amount / 5)
power = max(2000, power)
screen = 0.3
- if(linked_lathe.busy)
- g2g = 0
var/key = usr.key //so we don't lose the info during the spawn delay
if (!(being_built.build_type & PROTOLATHE))
g2g = 0
message_admins("Protolathe exploit attempted by [key_name(usr, usr.client)]!")
-
-
if (g2g) //If input is incorrect, nothing happens
var/enough_materials = 1
linked_lathe.busy = 1
@@ -386,7 +382,7 @@ proc/CallMaterialName(ID)
var/list/efficient_mats = list()
for(var/MAT in being_built.materials)
- efficient_mats[MAT] = being_built.materials[MAT]
+ efficient_mats[MAT] = being_built.materials[MAT]*coeff
if(!linked_lathe.materials.has_materials(efficient_mats, amount))
src.visible_message("
The [src.name] beeps, \"Not enough materials to complete prototype.\"")
@@ -394,7 +390,7 @@ proc/CallMaterialName(ID)
g2g = 0
else
for(var/R in being_built.reagents)
- if(!linked_lathe.reagents.has_reagent(R, being_built.reagents[R]))
+ if(!linked_lathe.reagents.has_reagent(R, being_built.reagents[R])*coeff)
src.visible_message("
The [src.name] beeps, \"Not enough reagents to complete prototype.\"")
enough_materials = 0
g2g = 0
@@ -402,33 +398,37 @@ proc/CallMaterialName(ID)
if(enough_materials)
linked_lathe.materials.use_amount(efficient_mats, amount)
for(var/R in being_built.reagents)
- linked_lathe.reagents.remove_reagent(R, being_built.reagents[R])
+ linked_lathe.reagents.remove_reagent(R, being_built.reagents[R]*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(32*amount/coeff)
- if(g2g) //And if we only fail the material requirements, we still spend time and power
- var/already_logged = 0
- for(var/i = 0, i
The [src.name] beeps, \"Something went wrong, production halted!\"")
+ screen = 1.0
updateUsrDialog()
else if(href_list["imprint"]) //Causes the Circuit Imprinter to build something.
+ var/coeff = linked_imprinter.efficiency_coeff
var/g2g = 1
if(linked_imprinter)
+ if(linked_lathe.busy)
+ usr << "Circuit Imprinter is busy at the moment."
+ return
var/datum/design/being_built = files.known_designs[href_list["imprint"]]
if(being_built)
var/power = 2000
@@ -437,8 +437,6 @@ proc/CallMaterialName(ID)
power += round(being_built.materials[M] / 5)
power = max(2000, power)
screen = 0.4
- if (linked_imprinter.busy)
- g2g = 0
if (!(being_built.build_type & IMPRINTER))
g2g = 0
message_admins("Circuit imprinter exploit attempted by [key_name(usr, usr.client)]!")
@@ -455,24 +453,26 @@ proc/CallMaterialName(ID)
break
switch(M)
if(MAT_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(MAT_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(MAT_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)
- if(g2g)
- var/obj/item/new_item = new P(src)
- new_item.reliability = R
- new_item.loc = linked_imprinter.loc
- feedback_add_details("circuit_printed","[new_item.type]")
- linked_imprinter.busy = 0
- screen = old_screen
+ if(linked_imprinter)
+ if(g2g)
+ var/obj/item/new_item = new P(src)
+ new_item.loc = linked_imprinter.loc
+ feedback_add_details("circuit_printed","[new_item.type]")
+ screen = old_screen
+ linked_imprinter.busy = 0
+ else
+ src.visible_message("The [src.name] beeps, \"Something went wrong, production halted!\"")
+ screen = 1.0
updateUsrDialog()
else if(href_list["disposeI"] && linked_imprinter) //Causes the circuit imprinter to dispose of a single reagent (all of it)
@@ -701,7 +701,6 @@ proc/CallMaterialName(ID)
dat += "Load Design to Disk"
else
dat += "Name: [d_disk.blueprint.name]
"
- dat += "Level: [d_disk.blueprint.reliability]
"
var/b_type = d_disk.blueprint.build_type
if(b_type)
dat += "Lathe Types:
"
@@ -776,7 +775,6 @@ proc/CallMaterialName(ID)
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)
@@ -825,6 +823,7 @@ proc/CallMaterialName(ID)
dat += "
Material Amount: [linked_lathe.materials.total_amount] / [linked_lathe.materials.max_amount]
"
dat += "
Chemical Volume: [linked_lathe.reagents.total_volume] / [linked_lathe.reagents.maximum_volume]
"
+ var/coeff = linked_lathe.efficiency_coeff
for(var/v in files.known_designs)
var/datum/design/D = files.known_designs[v]
if(!(selected_category in D.category)|| !(D.build_type & PROTOLATHE))
@@ -836,18 +835,18 @@ proc/CallMaterialName(ID)
t = linked_lathe.check_mat(D, M)
temp_material += " | "
if (t < 1)
- temp_material += "
[D.materials[M]] [CallMaterialName(M)]"
+ temp_material += "
[D.materials[M]*coeff] [CallMaterialName(M)]"
else
- temp_material += " [D.materials[M]] [CallMaterialName(M)]"
+ temp_material += " [D.materials[M]*coeff] [CallMaterialName(M)]"
c = min(c,t)
for(var/R in D.reagents)
t = linked_lathe.check_mat(D, R)
temp_material += " | "
if (t < 1)
- temp_material += "
[D.reagents[R]] [CallMaterialName(R)]"
+ temp_material += "
[D.reagents[R]*coeff] [CallMaterialName(R)]"
else
- temp_material += " [D.reagents[R]] [CallMaterialName(R)]"
+ temp_material += " [D.reagents[R]*coeff] [CallMaterialName(R)]"
c = min(c,t)
if (c >= 1)
@@ -869,6 +868,7 @@ proc/CallMaterialName(ID)
dat += "
Material Amount: [linked_lathe.materials.total_amount] / [linked_lathe.materials.max_amount]
"
dat += "
Chemical Volume: [linked_lathe.reagents.total_volume] / [linked_lathe.reagents.maximum_volume]
"
+ var/coeff = linked_lathe.efficiency_coeff
for(var/datum/design/D in matching_designs)
var/temp_material
var/c = 50
@@ -877,9 +877,9 @@ proc/CallMaterialName(ID)
t = linked_lathe.check_mat(D, M)
temp_material += " | "
if (t < 1)
- temp_material += "
[D.materials[M]] [CallMaterialName(M)]"
+ temp_material += "
[D.materials[M]*coeff] [CallMaterialName(M)]"
else
- temp_material += " [D.materials[M]] [CallMaterialName(M)]"
+ temp_material += " [D.materials[M]*coeff] [CallMaterialName(M)]"
c = min(c,t)
if (c >= 1)
@@ -994,6 +994,7 @@ proc/CallMaterialName(ID)
dat += "Material Amount: [linked_imprinter.TotalMaterials()]
"
dat += "Chemical Volume: [linked_imprinter.reagents.total_volume]
"
+ var/coeff = linked_imprinter.efficiency_coeff
for(var/v in files.known_designs)
var/datum/design/D = files.known_designs[v]
if(!(selected_category in D.category) || !(D.build_type & IMPRINTER))
@@ -1004,9 +1005,9 @@ proc/CallMaterialName(ID)
temp_materials += " | "
if (!linked_imprinter.check_mat(D, M))
check_materials = 0
- temp_materials += "
[D.materials[M]] [CallMaterialName(M)]"
+ temp_materials += "
[D.materials[M]/coeff] [CallMaterialName(M)]"
else
- temp_materials += " [D.materials[M]] [CallMaterialName(M)]"
+ temp_materials += " [D.materials[M]/coeff] [CallMaterialName(M)]"
if (check_materials)
dat += "
[D.name][temp_materials]
"
else
@@ -1020,6 +1021,7 @@ proc/CallMaterialName(ID)
dat += "Material Amount: [linked_imprinter.TotalMaterials()]
"
dat += "Chemical Volume: [linked_imprinter.reagents.total_volume]
"
+ var/coeff = linked_imprinter.efficiency_coeff
for(var/datum/design/D in matching_designs)
var/temp_materials
var/check_materials = 1
@@ -1027,9 +1029,9 @@ proc/CallMaterialName(ID)
temp_materials += " | "
if (!linked_imprinter.check_mat(D, M))
check_materials = 0
- temp_materials += "
[D.materials[M]] [CallMaterialName(M)]"
+ temp_materials += "
[D.materials[M]/coeff] [CallMaterialName(M)]"
else
- temp_materials += " [D.materials[M]] [CallMaterialName(M)]"
+ temp_materials += " [D.materials[M]/coeff] [CallMaterialName(M)]"
if (check_materials)
dat += "
[D.name][temp_materials]
"
else
diff --git a/code/modules/research/research.dm b/code/modules/research/research.dm
index 9aff35065bd..130fce1f03f 100644
--- a/code/modules/research/research.dm
+++ b/code/modules/research/research.dm
@@ -49,8 +49,8 @@ research holder datum.
//Datum/tech go here.
var/list/possible_tech = list() //List of all tech in the game that players have access to (barring special events).
var/list/known_tech = list() //List of locally known tech.
- var/list/possible_designs = list() //List of all designs (at base reliability).
- var/list/known_designs = list() //List of available designs (at base reliability).
+ var/list/possible_designs = list() //List of all designs.
+ var/list/known_designs = list() //List of available designs.
/datum/research/New() //Insert techs into possible_tech here. Known_tech automatically updated.
for(var/T in subtypesof(/datum/tech))
@@ -93,13 +93,10 @@ research holder datum.
/datum/research/proc/AddDesign2Known(datum/design/D)
if(known_designs[D.id])
- var/datum/design/known = known_designs[D.id]
- if(D.reliability > known.reliability)
- known.reliability = D.reliability
return
known_designs[D.id] = D
-//Refreshes known_tech and known_designs list. Then updates the reliability vars of the designs in the known_designs list.
+//Refreshes known_tech and known_designs list.
//Input/Output: n/a
/datum/research/proc/RefreshResearch()
for(var/datum/tech/PT in possible_tech)
@@ -113,10 +110,6 @@ research holder datum.
for(var/v in known_tech)
var/datum/tech/T = known_tech[v]
T.level = Clamp(T.level, 0, 20)
-
- for(var/v in known_designs)
- var/datum/design/D = known_designs[v]
- D.CalcReliability(known_tech)
return
//Refreshes the levels of a given tech.
@@ -125,18 +118,17 @@ research holder datum.
var/datum/tech/KT = known_tech[ID]
if(KT)
if(KT.level <= level)
- KT.level = max((KT.level + 1), (level - 1))
+ KT.level = KT.level + 1
-/datum/research/proc/UpdateDesigns(obj/item/I, list/temp_tech)
- for(var/v in known_designs)
- var/datum/design/D = known_designs[v]
- var/shared_tech = length(temp_tech & D.req_tech)
- if(shared_tech)
- D.reliability = min(100, D.reliability + shared_tech)
- if(D.build_path == I.type)
- D.reliability = min(100, D.reliability + shared_tech * rand(1,3))
- if(I.crit_fail)
- D.reliability = min(100, D.reliability + shared_tech * rand(3, 5))
+//Checks if the origin level can raise current tech levels
+//Input: Tech's ID and Level; Output: TRUE for yes, FALSE for no
+/datum/research/proc/IsTechHigher(ID, level)
+ var/datum/tech/KT = known_tech[ID]
+ if(KT)
+ if(KT.level <= level)
+ return TRUE
+ else
+ return FALSE
/datum/research/proc/FindDesignByID(id)
return known_designs[id]
diff --git a/code/modules/research/server.dm b/code/modules/research/server.dm
index 1e5e26d41ce..e57becb8253 100644
--- a/code/modules/research/server.dm
+++ b/code/modules/research/server.dm
@@ -241,7 +241,7 @@
temp_server.files.RefreshResearch()
else if(href_list["reset_design"])
- var/choice = alert("Design Data Deletion", "Are you sure you want to delete this design? If you still have the prerequisites for the design, it'll reset to its base reliability. Data lost cannot be recovered.", "Continue", "Cancel")
+ var/choice = alert("Design Data Deletion", "Are you sure you want to delete this design? Data lost cannot be recovered.", "Continue", "Cancel")
if(choice == "Continue")
var/datum/design/D = temp_server.files.known_designs[href_list["reset_design"]]
if(D)
diff --git a/code/modules/research/stock_parts.dm b/code/modules/research/stock_parts.dm
index f35a8196405..9f8e6a580b5 100644
--- a/code/modules/research/stock_parts.dm
+++ b/code/modules/research/stock_parts.dm
@@ -21,12 +21,11 @@
/obj/item/weapon/storage/part_replacer/afterattack(obj/machinery/T, mob/living/carbon/human/user, flag, params)
if(flag)
return
- else
- if(works_from_distance)
- if(istype(T))
- if(T.component_parts)
- T.exchange_parts(user, src)
- user.Beam(T,icon_state="rped_upgrade",icon='icons/effects/effects.dmi',time=5)
+ else if(works_from_distance)
+ if(istype(T))
+ if(T.component_parts)
+ T.exchange_parts(user, src)
+ user.Beam(T,icon_state="rped_upgrade",icon='icons/effects/effects.dmi',time=5)
return
/obj/item/weapon/storage/part_replacer/bluespace
@@ -167,7 +166,7 @@
name = "super capacitor"
desc = "A super-high capacity capacitor used in the construction of a variety of devices."
icon_state = "super_capacitor"
- origin_tech = "powerstorage=5;materials=4"
+ origin_tech = "powerstorage=4;engineering=4"
rating = 3
materials = list(MAT_METAL=50, MAT_GLASS=50)
@@ -175,7 +174,7 @@
name = "phasic scanning module"
desc = "A compact, high resolution phasic scanning module used in the construction of certain devices."
icon_state = "super_scan_module"
- origin_tech = "magnets=5"
+ origin_tech = "magnets=4;engineering=4"
rating = 3
materials = list(MAT_METAL=50, MAT_GLASS=20)
@@ -183,7 +182,7 @@
name = "pico-manipulator"
desc = "A tiny little manipulator used in the construction of certain devices."
icon_state = "pico_mani"
- origin_tech = "materials=5;programming=2"
+ origin_tech = "materials=4;programming=4,engineering=4"
rating = 3
materials = list(MAT_METAL=30)
@@ -191,7 +190,7 @@
name = "ultra-high-power micro-laser"
icon_state = "ultra_high_micro_laser"
desc = "A tiny laser used in certain devices."
- origin_tech = "magnets=5"
+ origin_tech = "magnets=4;engineering=4"
rating = 3
materials = list(MAT_METAL=10, MAT_GLASS=20)
@@ -199,7 +198,7 @@
name = "super matter bin"
desc = "A container designed to hold compressed matter awaiting reconstruction."
icon_state = "super_matter_bin"
- origin_tech = "materials=5"
+ origin_tech = "materials=4;engineering=4"
rating = 3
materials = list(MAT_METAL=80)
@@ -209,7 +208,7 @@
name = "quadratic capacitor"
desc = "An capacity capacitor used in the construction of a variety of devices."
icon_state = "quadratic_capacitor"
- origin_tech = "powerstorage=6;materials=5"
+ origin_tech = "powerstorage=5;materials=4;engineering=4"
rating = 4
materials = list(MAT_METAL=50, MAT_GLASS=50)
@@ -217,7 +216,7 @@
name = "triphasic scanning module"
desc = "A compact, ultra resolution triphasic scanning module used in the construction of certain devices."
icon_state = "triphasic_scan_module"
- origin_tech = "magnets=6"
+ origin_tech = "magnets=5;materials=4;engineering=4"
rating = 4
materials = list(MAT_METAL=50, MAT_GLASS=20)
@@ -225,7 +224,7 @@
name = "femto-manipulator"
desc = "A tiny little manipulator used in the construction of certain devices."
icon_state = "femto_mani"
- origin_tech = "materials=6;programming=3"
+ origin_tech = "materials=6;programming=4;engineering=4"
rating = 4
materials = list(MAT_METAL=30)
@@ -233,7 +232,7 @@
name = "quad-ultra micro-laser"
icon_state = "quadultra_micro_laser"
desc = "A tiny laser used in certain devices."
- origin_tech = "magnets=6"
+ origin_tech = "magnets=5;materials=4;engineering=4"
rating = 4
materials = list(MAT_METAL=10, MAT_GLASS=20)
@@ -241,7 +240,7 @@
name = "bluespace matter bin"
desc = "A container designed to hold compressed matter awaiting reconstruction."
icon_state = "bluespace_matter_bin"
- origin_tech = "materials=6"
+ origin_tech = "materials=6;programming=4;engineering=4"
rating = 4
materials = list(MAT_METAL=80)
@@ -251,49 +250,49 @@
name = "subspace ansible"
icon_state = "subspace_ansible"
desc = "A compact module capable of sensing extradimensional activity."
- origin_tech = "programming=2;magnets=3;materials=2;bluespace=1"
+ origin_tech = "programming=2;magnets=2;materials=2;bluespace=1"
materials = list(MAT_METAL=30, MAT_GLASS=10)
/obj/item/weapon/stock_parts/subspace/filter
name = "hyperwave filter"
icon_state = "hyperwave_filter"
desc = "A tiny device capable of filtering and converting super-intense radiowaves."
- origin_tech = "programming=2;magnets=1"
+ origin_tech = "programming=2;magnets=2"
materials = list(MAT_METAL=30, MAT_GLASS=10)
/obj/item/weapon/stock_parts/subspace/amplifier
name = "subspace amplifier"
icon_state = "subspace_amplifier"
desc = "A compact micro-machine capable of amplifying weak subspace transmissions."
- origin_tech = "programming=2;magnets=2;materials=2;bluespace=1"
+ origin_tech = "programming=2;magnets=2;materials=2;bluespace=2"
materials = list(MAT_METAL=30, MAT_GLASS=10)
/obj/item/weapon/stock_parts/subspace/treatment
name = "subspace treatment disk"
icon_state = "treatment_disk"
desc = "A compact micro-machine capable of stretching out hyper-compressed radio waves."
- origin_tech = "programming=2;magnets=1;materials=3;bluespace=1"
+ origin_tech = "programming=2;magnets=2;materials=2;bluespace=2"
materials = list(MAT_METAL=30, MAT_GLASS=10)
/obj/item/weapon/stock_parts/subspace/analyzer
name = "subspace wavelength analyzer"
icon_state = "wavelength_analyzer"
desc = "A sophisticated analyzer capable of analyzing cryptic subspace wavelengths."
- origin_tech = "programming=2;magnets=2;materials=2;bluespace=1"
+ origin_tech = "programming=2;magnets=2;materials=2;bluespace=2"
materials = list(MAT_METAL=30, MAT_GLASS=10)
/obj/item/weapon/stock_parts/subspace/crystal
name = "ansible crystal"
icon_state = "ansible_crystal"
desc = "A crystal made from pure glass used to transmit laser databursts to subspace."
- origin_tech = "magnets=2;materials=2;bluespace=1"
+ origin_tech = "magnets=2;materials=2;bluespace=2;plasmatech=2"
materials = list(MAT_GLASS=50)
/obj/item/weapon/stock_parts/subspace/transmitter
name = "subspace transmitter"
icon_state = "subspace_transmitter"
desc = "A large piece of equipment used to open a window into the subspace dimension."
- origin_tech = "magnets=3;materials=3;bluespace=2"
+ origin_tech = "magnets=2;materials=2;bluespace=2"
materials = list(MAT_METAL=50)
/obj/item/weapon/research//Makes testing much less of a pain -Sieve
diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm
index a5a89cd91d8..6103948a1e9 100644
--- a/code/modules/research/xenobiology/xenobiology.dm
+++ b/code/modules/research/xenobiology/xenobiology.dm
@@ -160,7 +160,7 @@
desc = "A miraculous chemical mix that can raise the intelligence of creatures to human levels. Unlike normal slime potions, it can be absorbed by any nonsentient being."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle19"
- origin_tech = "biotech=5"
+ origin_tech = "biotech=6"
var/list/not_interested = list()
var/being_used = 0
var/sentience_type = SENTIENCE_ORGANIC
@@ -326,6 +326,7 @@
desc = "A potent chemical mix that will remove the slowdown from any item."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle3"
+ origin_tech = "biotech=5"
/obj/item/slimepotion/speed/afterattack(obj/C, mob/user)
..()
@@ -356,6 +357,7 @@
desc = "A potent chemical mix that will fireproof any article of clothing. Has three uses."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle17"
+ origin_tech = "biotech=5"
var/uses = 3
/obj/item/slimepotion/fireproof/afterattack(obj/item/clothing/C, mob/user)
@@ -662,4 +664,3 @@
for(var/turf/T in A)
T.color = "#2956B2"
qdel(src)
-
diff --git a/code/modules/surgery/organs/augments_arms.dm b/code/modules/surgery/organs/augments_arms.dm
index a13204e8f9a..3cdf2328b19 100644
--- a/code/modules/surgery/organs/augments_arms.dm
+++ b/code/modules/surgery/organs/augments_arms.dm
@@ -149,7 +149,7 @@
name = "arm-mounted laser implant"
desc = "A variant of the arm cannon implant that fires lethal laser beams. The cannon emerges from the subject's arm and remains inside when not in use."
icon_state = "arm_laser"
- origin_tech = "materials=5;combat=5;biotech=4;powerstorage=4;syndicate=5"//this is kinda nutty and i might lower it
+ origin_tech = "materials=4;combat=4;biotech=4;powerstorage=4;syndicate=3"
holder = /obj/item/weapon/gun/energy/laser/mounted
/obj/item/organ/cyberimp/arm/gun/laser/l/zone = "l_arm"
@@ -168,7 +168,7 @@
/obj/item/organ/cyberimp/arm/toolset
name = "integrated toolset implant"
desc = "A stripped-down version of engineering cyborg toolset, designed to be installed on subject's arm. Contains all neccessary tools."
- origin_tech = "materials=4;engineering=4;biotech=3;powerstorage=4"
+ origin_tech = "materials=3;engineering=4;biotech=3;powerstorage=4"
contents = newlist(/obj/item/weapon/screwdriver/cyborg, /obj/item/weapon/wrench/cyborg, /obj/item/weapon/weldingtool/largetank/cyborg,
/obj/item/weapon/crowbar/cyborg, /obj/item/weapon/wirecutters/cyborg, /obj/item/device/multitool/cyborg)
@@ -179,4 +179,4 @@
usr << "
You unlock [src]'s integrated knife!"
items_list += new /obj/item/weapon/kitchen/knife/combat/cyborg(src)
return 1
- return 0
\ No newline at end of file
+ return 0
diff --git a/code/modules/surgery/organs/augments_chest.dm b/code/modules/surgery/organs/augments_chest.dm
index 74e50bc12fd..c2d7fc0efa0 100644
--- a/code/modules/surgery/organs/augments_chest.dm
+++ b/code/modules/surgery/organs/augments_chest.dm
@@ -14,7 +14,7 @@
var/synthesizing = 0
var/poison_amount = 5
slot = "stomach"
- origin_tech = "materials=5;programming=3;biotech=4"
+ origin_tech = "materials=4;powerstorage=5;biotech=4"
/obj/item/organ/cyberimp/chest/nutriment/on_life()
if(synthesizing)
@@ -41,16 +41,14 @@
implant_color = "#006607"
hunger_threshold = NUTRITION_LEVEL_HUNGRY
poison_amount = 10
- origin_tech = "materials=5;programming=3;biotech=5"
-
-
+ origin_tech = "materials=4;powerstorage=5;biotech=5"
/obj/item/organ/cyberimp/chest/reviver
name = "Reviver implant"
desc = "This implant will attempt to revive you if you lose consciousness. For the faint of heart!"
icon_state = "chest_implant"
implant_color = "#AD0000"
- origin_tech = "materials=6;programming=3;biotech=6;syndicate=4"
+ origin_tech = "materials=5;programming=4;biotech=6"
slot = "heartdrive"
var/revive_cost = 0
var/reviving = 0
@@ -114,7 +112,7 @@
Unlike regular jetpack, this device has no stablilzation system."
slot = "thrusters"
icon_state = "imp_jetpack"
- origin_tech = "materials=6;programming=4;magnets=3;biotech=4;engineering=4"
+ origin_tech = "materials=4;magnets=4;biotech=4;engineering=5"
implant_overlay = null
implant_color = null
actions_types = list(/datum/action/item_action/organ_action/toggle)
@@ -193,4 +191,4 @@
T.assume_air(removed)
toggle(silent=1)
- return 0
\ No newline at end of file
+ return 0
diff --git a/code/modules/surgery/organs/augments_eyes.dm b/code/modules/surgery/organs/augments_eyes.dm
index e7432e89fa6..50c3875f258 100644
--- a/code/modules/surgery/organs/augments_eyes.dm
+++ b/code/modules/surgery/organs/augments_eyes.dm
@@ -50,7 +50,7 @@
desc = "These cybernetic eye implants will give you X-ray vision. Blinking is futile."
eye_color = "000"
implant_color = "#000000"
- origin_tech = "materials=6;programming=4;biotech=6;magnets=5"
+ origin_tech = "materials=4;programming=4;biotech=6;magnets=4"
dark_view = 8
sight_flags = SEE_MOBS | SEE_OBJS | SEE_TURFS
@@ -59,7 +59,7 @@
desc = "These cybernetic eye implants will give you Thermal vision. Vertical slit pupil included."
eye_color = "FC0"
implant_color = "#FFCC00"
- origin_tech = "materials=6;programming=4;biotech=5;magnets=5;syndicate=4"
+ origin_tech = "materials=5;programming=4;biotech=4;magnets=4;syndicate=1"
sight_flags = SEE_MOBS
see_invisible = SEE_INVISIBLE_MINIMUM
flash_protect = -1
@@ -93,7 +93,7 @@
desc = "These cybernetic eye implants will display a medical HUD over everything you see."
eye_color = "0ff"
implant_color = "#00FFFF"
- origin_tech = "materials=4;programming=3;biotech=4"
+ origin_tech = "materials=4;programming=4;biotech=4"
aug_message = "You suddenly see health bars floating above people's heads..."
HUD_type = DATA_HUD_MEDICAL_ADVANCED
@@ -102,7 +102,7 @@
desc = "These cybernetic eye implants will display a security HUD over everything you see."
eye_color = "d00"
implant_color = "#CC0000"
- origin_tech = "materials=4;programming=4;biotech=3;combat=1"
+ origin_tech = "materials=4;programming=4;biotech=3;combat=3"
aug_message = "Job indicator icons pop up in your vision. That is not a certified surgeon..."
HUD_type = DATA_HUD_SECURITY_ADVANCED
@@ -112,11 +112,11 @@
name = "welding shield implant"
desc = "These reactive micro-shields will protect you from welders and flashes without obscuring your vision."
slot = "eye_shield"
- origin_tech = "materials=4;biotech=3"
+ origin_tech = "materials=4;biotech=3;engineering=4;plasmatech=3"
implant_color = "#101010"
flash_protect = 2
aug_message = null
eye_color = null
/obj/item/organ/cyberimp/eyes/shield/emp_act(severity)
- return
\ No newline at end of file
+ return
diff --git a/code/modules/surgery/organs/augments_internal.dm b/code/modules/surgery/organs/augments_internal.dm
index 3dc5e743049..683a2a176a4 100644
--- a/code/modules/surgery/organs/augments_internal.dm
+++ b/code/modules/surgery/organs/augments_internal.dm
@@ -47,7 +47,7 @@
var/obj/item/r_hand_obj = null
implant_color = "#DE7E00"
slot = "brain_antidrop"
- origin_tech = "materials=5;programming=4;biotech=4"
+ origin_tech = "materials=4;programming=5;biotech=4"
actions_types = list(/datum/action/item_action/organ_action/toggle)
/obj/item/organ/cyberimp/brain/anti_drop/ui_action_click()
@@ -125,7 +125,7 @@
desc = "This implant will automatically give you back control over your central nervous system, reducing downtime when stunned."
implant_color = "#FFFF00"
slot = "brain_antistun"
- origin_tech = "materials=6;programming=4;biotech=5"
+ origin_tech = "materials=5;programming=4;biotech=5"
/obj/item/organ/cyberimp/brain/anti_stun/on_life()
..()
@@ -188,4 +188,4 @@
var/implant
while(contents.len <= amount + 1) // +1 for the autoimplanter.
implant = pick(boxed)
- new implant(src)
\ No newline at end of file
+ new implant(src)
diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm
index 1b47c0172f6..9e6f3e9dbae 100644
--- a/code/modules/surgery/organs/organ_internal.dm
+++ b/code/modules/surgery/organs/organ_internal.dm
@@ -4,7 +4,7 @@
icon = 'icons/obj/surgery.dmi'
var/mob/living/carbon/owner = null
var/status = ORGAN_ORGANIC
- origin_tech = "biotech=2"
+ origin_tech = "biotech=3"
force = 1
w_class = 2
throwforce = 0
@@ -105,7 +105,7 @@
icon_state = "heart-on"
zone = "chest"
slot = "heart"
- origin_tech = "biotech=3"
+ origin_tech = "biotech=5"
var/beating = 1
var/icon_base = "heart"
attack_verb = list("beat", "thumped")
@@ -168,7 +168,7 @@
desc = "it needs to be pumped..."
icon_state = "cursedheart-off"
icon_base = "cursedheart"
- origin_tech = "biotech=5"
+ origin_tech = "biotech=6"
actions_types = list(/datum/action/item_action/organ_action/cursed_heart)
var/last_pump = 0
var/add_colour = TRUE //So we're not constantly recreating colour datums
@@ -435,7 +435,7 @@
name = "black tumor"
desc = "A tiny black mass with red tendrils trailing from it. It seems to shrivel in the light."
icon_state = "blacktumor"
- origin_tech = "biotech=4"
+ origin_tech = "biotech=5"
w_class = 1
zone = "head"
slot = "brain_tumor"
diff --git a/code/modules/surgery/tools.dm b/code/modules/surgery/tools.dm
index d783434c582..67b1a888703 100644
--- a/code/modules/surgery/tools.dm
+++ b/code/modules/surgery/tools.dm
@@ -84,7 +84,7 @@
throw_speed = 2
throw_range = 5
materials = list(MAT_METAL=10000, MAT_GLASS=6000)
- origin_tech = "materials=1;biotech=1"
+ origin_tech = "biotech=1;combat=1"
attack_verb = list("attacked", "slashed", "sawed", "cut")
sharpness = IS_SHARP
diff --git a/code/modules/telesci/bscrystal.dm b/code/modules/telesci/bscrystal.dm
index b4f1e9ff465..ae377c651c6 100644
--- a/code/modules/telesci/bscrystal.dm
+++ b/code/modules/telesci/bscrystal.dm
@@ -6,17 +6,15 @@
icon = 'icons/obj/telescience.dmi'
icon_state = "bluespace_crystal"
w_class = 1
- origin_tech = "bluespace=4;materials=3"
+ origin_tech = "bluespace=6;materials=3"
points = 50
var/blink_range = 8 // The teleport range when crushed/thrown at someone.
-
/obj/item/weapon/ore/bluespace_crystal/New()
..()
pixel_x = rand(-5, 5)
pixel_y = rand(-5, 5)
-
/obj/item/weapon/ore/bluespace_crystal/attack_self(mob/user)
user.visible_message("
[user] crushes [src]!", "
You crush [src]!")
PoolOrNew(/obj/effect/particle_effect/sparks, loc)
@@ -43,6 +41,6 @@
/obj/item/weapon/ore/bluespace_crystal/artificial
name = "artificial bluespace crystal"
desc = "An artificially made bluespace crystal, it looks delicate."
- origin_tech = "bluespace=2"
+ origin_tech = "bluespace=3;plasmatech=4"
blink_range = 4 // Not as good as the organic stuff!
- points = 0 // nice try
\ No newline at end of file
+ points = 0 // nice try
diff --git a/code/modules/telesci/gps.dm b/code/modules/telesci/gps.dm
index 39a2d211b5d..3df5a057277 100644
--- a/code/modules/telesci/gps.dm
+++ b/code/modules/telesci/gps.dm
@@ -6,7 +6,7 @@ var/list/GPS_list = list()
icon_state = "gps-c"
w_class = 2
slot_flags = SLOT_BELT
- origin_tech = "programming=2;engineering=2"
+ origin_tech = "materials=2;magnets=3;bluespace=3"
var/gpstag = "COM0"
var/emped = 0
var/turf/locked_location
@@ -109,4 +109,4 @@ var/list/GPS_list = list()
/obj/item/device/gps/mining/internal
icon_state = "gps-m"
gpstag = "MINER"
- desc = "A positioning system helpful for rescuing trapped or injured miners, keeping one on you at all times while mining might just save your life."
\ No newline at end of file
+ desc = "A positioning system helpful for rescuing trapped or injured miners, keeping one on you at all times while mining might just save your life."
diff --git a/code/modules/vehicles/pimpin_ride.dm b/code/modules/vehicles/pimpin_ride.dm
index 356c5ca354d..e0792514af8 100644
--- a/code/modules/vehicles/pimpin_ride.dm
+++ b/code/modules/vehicles/pimpin_ride.dm
@@ -1,5 +1,3 @@
-
-
//PIMP-CART
/obj/vehicle/janicart
name = "janicart (pimpin' ride)"
@@ -40,6 +38,7 @@
desc = "An upgrade for mobile janicarts."
icon = 'icons/obj/vehicles.dmi'
icon_state = "upgrade"
+ origin_tech = "materials=3;engineering=4"
/obj/vehicle/janicart/Moved(atom/OldLoc, Dir)
@@ -91,4 +90,3 @@
user.put_in_hands(mybag)
mybag = null
update_icon()
-