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.\nAlt-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, iThe [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() -