From 6691236237eba3172a9e9c5c3d3a466864367d4f Mon Sep 17 00:00:00 2001 From: "tronaldnwn@hotmail.com" Date: Thu, 2 Jun 2011 04:05:42 +0000 Subject: [PATCH] Tech Origin update: -Various item have had their tech origins updated or added to. -Items that just use metal or glass have their materials origin lowered -Items that use more advance materials have their materials tech origin raised to equal the uncommon material. Engineering Tech research: -Engineering tech origin, because Materials tech origin is just for being able to manipulate rare/ new materials for production. -Engineering tech field focuses on various engineering items, and will increase in scale as time goes on. -Various items (especially tools and mech parts) use the engineering tech origin. Mining tools update: - Drills can dig up sand. - Plasma cutters can cut down walls and girders, and set fire to thermite, and be used in the reinforced wall deconstruction stages in place of the welder. - Diamond drills can drill though walls, and girders, and can drill through the plating of reinforced walls. Tech Origin changes and Circuit boards: -If it requires a special material to make, it now have a materials origin equal to that special material. General glass circuit boards do not require materials research. -Engineering research should be applied (reasonably) to the board if it is a machine, computers should stick to programing (even if the computer is related to an engineering field). -Still a work in progress, as always. Last update: -Shovel sprite is back to being a digging shovel in style, a scooping shovel is terrible at digging. I should know, I've dug many holes in my days, and a scooping shovel is terrible, and a spade head is much better. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1654 316c924e-a436-60f5-8080-3fe189b3f50e --- code/WorkInProgress/mining.dm | 38 ++++--- code/defines/obj.dm | 30 ++++- code/defines/obj/clothing/glasses.dm | 4 +- code/defines/obj/weapon.dm | 22 +--- code/game/machinery/constructable_frame.dm | 40 +++++-- code/game/mecha/equipment/tools/tools.dm | 6 +- code/game/mecha/mecha_parts.dm | 38 +++---- code/game/objects/items/weapons/AI_modules.dm | 22 ++-- code/game/objects/items/weapons/tools.dm | 3 + code/game/objects/structures.dm | 12 ++ code/game/research/designs.dm | 103 +++++++++--------- code/game/research/research.dm | 23 +++- code/game/turf.dm | 92 ++++++++++++++++ icons/obj/items.dmi | Bin 46733 -> 46712 bytes 14 files changed, 298 insertions(+), 135 deletions(-) diff --git a/code/WorkInProgress/mining.dm b/code/WorkInProgress/mining.dm index 2f6cbb12245..296f4977baf 100644 --- a/code/WorkInProgress/mining.dm +++ b/code/WorkInProgress/mining.dm @@ -881,7 +881,7 @@ proc/move_mining_shuttle() if(!W || !user) return 0 - if (istype(W, /obj/item/weapon/shovel)) + if ((istype(W, /obj/item/weapon/shovel))||(istype(W,/obj/item/weapon/pickaxe/drill))||(istype(W,/obj/item/weapon/pickaxe/diamonddrill))) var/turf/T = user.loc if (!( istype(T, /turf) )) return @@ -2563,8 +2563,9 @@ var/list/datum/material_recipe/MATERIAL_RECIPES = list( throwforce = 4.0 item_state = "pickaxe" w_class = 4.0 - m_amt = 3000 //making them on par with the require materials to make silver, gold, and diamond picks + m_amt = 3750 //one sheet, but where can you make them? var/digspeed = 40 //moving the delay to an item var so R&D can make improved picks. --NEO + origin_tech = "materials=1;engineering=1" hammer name = "Mining Sledge Hammer" @@ -2578,22 +2579,22 @@ var/list/datum/material_recipe/MATERIAL_RECIPES = list( origin_tech = "materials=3" desc = "This makes no metallurgic sense." + drill + name = "Mining Drill" // Can dig sand as well! + icon_state = "handdrill" + item_state = "jackhammer" + digspeed = 30 + origin_tech = "materials=2;powerstorage=3;engineering=2" + desc = "Yours is the drill that will pierce through the rock walls." + jackhammer name = "Sonic Jackhammer" icon_state = "jackhammer" item_state = "jackhammer" - digspeed = 30 - origin_tech = "materials=3;powerstorage=2" + digspeed = 20 //faster than drill, but cannot dig + origin_tech = "materials=3;powerstorage=2;engineering=2" desc = "Cracks rocks with sonic blasts, perfect for killing cave lizards." - drill - name = "Mining Drill" - icon_state = "handdrill" - item_state = "jackhammer" - digspeed = 30 - origin_tech = "materials=3;powerstorage=2" - desc = "Yours is the drill that will pierce through the rock walls." - gold name = "Golden Pickaxe" icon_state = "gpickaxe" @@ -2607,9 +2608,9 @@ var/list/datum/material_recipe/MATERIAL_RECIPES = list( icon_state = "plasmacutter" item_state = "gun" w_class = 3.0 //it is smaller than the pickaxe - force = 10.0 //Also, weaker - digspeed = 20 - origin_tech = "materials=4;plasmatech=2" + damtype = "fire" + digspeed = 20 //Can slice though normal walls, all girders, or be used in reinforced wall deconstruction/ light thermite on fire + origin_tech = "materials=4;plasmatech=3;engineering=3" desc = "A rock cutter that uses bursts of hot plasma. You could use it to cut limbs off of xenos! Or, you know, mine stuff." diamond @@ -2617,15 +2618,15 @@ var/list/datum/material_recipe/MATERIAL_RECIPES = list( icon_state = "dpickaxe" item_state = "dpickaxe" digspeed = 10 - origin_tech = "materials=6" + origin_tech = "materials=6;engineering=4" desc = "A pickaxe with a diamond pick head, this is just like minecraft." diamonddrill //When people ask about the badass leader of the mining tools, they are talking about ME! name = "Diamond Mining Drill" icon_state = "diamonddrill" item_state = "jackhammer" - digspeed = 0 - origin_tech = "materials=6;powerstorage=4" + digspeed = 0 //Digs through walls, girders, and can dig up sand + origin_tech = "materials=6;powerstorage=4;engineering=5" desc = "Yours is the drill that will pierce the heavens!" /*****************************Shovel********************************/ @@ -2640,6 +2641,7 @@ var/list/datum/material_recipe/MATERIAL_RECIPES = list( item_state = "shovel" w_class = 3.0 m_amt = 50 + origin_tech = "materials=1;engineering=1" /******************************Materials****************************/ diff --git a/code/defines/obj.dm b/code/defines/obj.dm index 25124d04bab..a01101514ad 100644 --- a/code/defines/obj.dm +++ b/code/defines/obj.dm @@ -379,6 +379,7 @@ flags = FPRINT | TABLEPASS| CONDUCT item_state = "electronic" var/status = 1 + origin_tech = "magnets=2;combat=1" /obj/item/device/flashlight name = "flashlight" @@ -404,6 +405,20 @@ icon_off = "plight0" brightness_on = 3 +/obj/item/device/analyzer + desc = "A hand-held environmental scanner which reports current gas levels." + name = "analyzer" + icon_state = "atmos" + item_state = "analyzer" + w_class = 2.0 + flags = FPRINT | TABLEPASS| CONDUCT | ONBELT + throwforce = 5 + throw_speed = 4 + throw_range = 20 + m_amt = 30 + g_amt = 20 + origin_tech = "magnets=1;engineering=1" + /obj/item/device/healthanalyzer name = "Health Analyzer" icon_state = "health" @@ -415,6 +430,7 @@ throw_speed = 5 throw_range = 10 m_amt = 200 + origin_tech = "magnets=1;biotech=1" /obj/item/device/igniter name = "igniter" @@ -429,7 +445,6 @@ throw_speed = 3 throw_range = 10 - /obj/item/device/infra name = "Infrared Beam (Security)" desc = "Emits a visible or invisible beam and is triggered when the beam is interrupted." @@ -441,6 +456,7 @@ w_class = 2.0 item_state = "electronic" m_amt = 150 + origin_tech = "magnets=2" /obj/item/device/infra_sensor name = "Infrared Sensor" @@ -450,6 +466,7 @@ flags = FPRINT | TABLEPASS| CONDUCT item_state = "electronic" m_amt = 150 + origin_tech = "magnets=2" /obj/item/device/t_scanner name = "T-ray scanner" @@ -460,6 +477,7 @@ w_class = 2 item_state = "electronic" m_amt = 150 + origin_tech = "magnets=1;engineering=1" /obj/item/device/multitool @@ -474,6 +492,7 @@ desc = "You can use this on airlocks or APCs to try to hack them without cutting wires." m_amt = 50 g_amt = 20 + origin_tech = "magnets=1;engineering=1" /obj/item/device/prox_sensor @@ -486,6 +505,7 @@ w_class = 2.0 item_state = "electronic" m_amt = 300 + origin_tech = "magnets=1" /obj/item/device/shield @@ -1165,6 +1185,7 @@ throwforce = 5 throw_speed = 3 throw_range = 3 + origin_tech = "materials=1;biotech=1" /obj/item/stack/sheet/sandstone name = "Sandstone Bricks" @@ -1174,6 +1195,7 @@ throwforce = 5 throw_speed = 4 throw_range = 5 + origin_tech = "materials=1" /obj/item/stack/sheet/glass name = "glass" @@ -1184,7 +1206,7 @@ throwforce = 5 throw_speed = 3 throw_range = 3 - + origin_tech = "materials=1" /obj/item/stack/sheet/rglass name = "reinforced glass" @@ -1196,6 +1218,7 @@ throwforce = 5 throw_speed = 3 throw_range = 3 + origin_tech = "materials=2" /obj/item/stack/sheet/metal name = "metal" @@ -1208,6 +1231,7 @@ throw_speed = 1 throw_range = 4 flags = FPRINT | TABLEPASS | CONDUCT + origin_tech = "materials=1" /obj/item/stack/sheet/r_metal name = "reinforced metal" @@ -1221,6 +1245,7 @@ throw_speed = 1 throw_range = 4 flags = FPRINT | TABLEPASS | CONDUCT + origin_tech = "materials=2" /obj/item/stack/tile/steel name = "Steel floor tile" @@ -1248,6 +1273,7 @@ throw_range = 20 flags = FPRINT | TABLEPASS | CONDUCT max_amount = 60 + origin_tech = "biotech=1" /obj/item/stack/light_w name = "Wired glass tile" diff --git a/code/defines/obj/clothing/glasses.dm b/code/defines/obj/clothing/glasses.dm index 3a4c119d8e0..b9765538c49 100644 --- a/code/defines/obj/clothing/glasses.dm +++ b/code/defines/obj/clothing/glasses.dm @@ -15,7 +15,7 @@ name = "Optical Meson Scanner" icon_state = "meson" item_state = "glasses" - origin_tech = "magnets=2" + origin_tech = "magnets=2;engineering=2" /obj/item/clothing/glasses/night name = "Night Vision Goggles" @@ -27,7 +27,7 @@ name = "Optical Material Scanner" icon_state = "material" item_state = "glasses" - origin_tech = "magnets=2" + origin_tech = "magnets=3;engineering=3" /obj/item/clothing/glasses/regular name = "Prescription Glasses" diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index 909c9270bf1..9a42e9f4bc4 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -66,7 +66,7 @@ throw_range = 5 w_class = 3.0 m_amt = 50000 - origin_tech = "materials=4" + origin_tech = "engineering=4;materials=2" var/datum/effects/system/spark_spread/spark_system /obj/item/weapon/rsf @@ -135,6 +135,7 @@ w_class = 1.0 throw_speed = 4 throw_range = 20 + origin_tech = "materials=2;combat=1" /obj/item/weapon/ammo/a357 desc = "There are 7 rounds left!" @@ -207,20 +208,6 @@ amount_left = 7.0 m_amt = 10000 -/obj/item/device/analyzer - desc = "A hand-held environmental scanner which reports current gas levels." - name = "analyzer" - icon_state = "atmos" - item_state = "analyzer" - w_class = 2.0 - flags = FPRINT | TABLEPASS| CONDUCT | ONBELT - throwforce = 5 - throw_speed = 4 - throw_range = 20 - m_amt = 30 - g_amt = 20 - origin_tech = "magnets=1" - /obj/item/device/mass_spectrometer desc = "A hand-held mass spectrometer which identifies trace chemicals in a blood sample." name = "mass-spectrometer" @@ -502,6 +489,7 @@ item_state = "wrench" w_class = 2.0 m_amt = 50 + origin_tech = "engineering=1" /obj/item/weapon/crowbar/red icon = 'items.dmi' @@ -1423,7 +1411,7 @@ Total SMES charging rate should not exceed total power generation rate, or an ov throw_range = 9 w_class = 2.0 m_amt = 80 - origin_tech = "materials=1" + origin_tech = "materials=1;engineering=1" New() if(prob(50)) @@ -1444,7 +1432,7 @@ Total SMES charging rate should not exceed total power generation rate, or an ov throwforce = 7.0 w_class = 2.0 m_amt = 150 - origin_tech = "materials=1" + origin_tech = "materials=1;engineering=1" /obj/item/weapon/cell name = "power cell" diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index d248e25c17a..8a47e57728e 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -125,7 +125,7 @@ to destroy them and players will be able to make replacements. name = "Circuit board (Destructive Analyzer)" build_path = "/obj/machinery/r_n_d/destructive_analyzer" board_type = "machine" - origin_tech = "magnets=2;materials=2" + origin_tech = "magnets=2;engineering=2;programing=2" frame_desc = "Requires 2 Scanning Modules, 1 Manipulator, and 1 Micro-Laser." req_components = list( "/obj/item/weapon/stock_parts/scanning_module" = 1, @@ -136,7 +136,7 @@ to destroy them and players will be able to make replacements. name = "Circuit board (Autolathe)" build_path = "/obj/machinery/autolathe" board_type = "machine" - origin_tech = "materials=3" + origin_tech = "engineering=2;programing=2" frame_desc = "Requires 3 Matter Bins, 1 Manipulator, and 1 Console Screen." req_components = list( "/obj/item/weapon/stock_parts/matter_bin" = 3, @@ -147,7 +147,7 @@ to destroy them and players will be able to make replacements. name = "Circuit board (Protolathe)" build_path = "/obj/machinery/r_n_d/protolathe" board_type = "machine" - origin_tech = "materials=2" + origin_tech = "engineering=2;programing=2" frame_desc = "Requires 2 Matter Bins, 2 Manipulators, and 2 Beakers." req_components = list( "/obj/item/weapon/stock_parts/matter_bin" = 2, @@ -159,7 +159,7 @@ to destroy them and players will be able to make replacements. name = "Circuit board (Circuit Imprinter)" build_path = "/obj/machinery/r_n_d/circuit_imprinter" board_type = "machine" - origin_tech = "materials=2;programming=2" + origin_tech = "engineering=2;programming=2" frame_desc = "Requires 1 Matter Bin, 1 Manipulator, and 2 Beakers." req_components = list( "/obj/item/weapon/stock_parts/matter_bin" = 1, @@ -170,7 +170,7 @@ to destroy them and players will be able to make replacements. name = "Circuit Board (PACMAN-type Generator)" build_path = "/obj/machinery/power/port_gen/pacman" board_type = "machine" - origin_tech = "powerstorage=3;plasmatech=3" + origin_tech = "programming=3:powerstorage=3;plasmatech=3;engineering=3" frame_desc = "Requires 1 Matter Bin, 1 Micro-Laser, 2 Pieces of Cable, and 1 Capacitor." req_components = list( "/obj/item/weapon/stock_parts/matter_bin" = 1, @@ -181,12 +181,12 @@ to destroy them and players will be able to make replacements. /obj/item/weapon/circuitboard/pacman/super name = "Circuit Board (SUPERPACMAN-type Generator)" build_path = "/obj/machinery/power/port_gen/pacman/super" - origin_tech = "powerstorage=4;plasmatech=5" + origin_tech = "programming=3;powerstorage=4;engineering=4" /obj/item/weapon/circuitboard/pacman/mrs name = "Circuit Board (MRSPACMAN-type Generator)" build_path = "/obj/machinery/power/port_gen/pacman/mrs" - origin_tech = "powerstorage=5;plasmatech=6" + origin_tech = "programming=3;powerstorage=5;engineering=5" obj/item/weapon/circuitboard/rdserver name = "Circuit Board (R&D Server)" @@ -202,10 +202,34 @@ obj/item/weapon/circuitboard/rdserver name = "Circuit board (Exosuit Fabricator)" build_path = "/obj/machinery/mecha_part_fabricator" board_type = "machine" - origin_tech = "programming=2;materials=3" + origin_tech = "programming=3;engineering=3" frame_desc = "Requires 2 Matter Bins, 1 Manipulator, 1 Micro-Laser and 1 Console Screen." req_components = list( "/obj/item/weapon/stock_parts/matter_bin" = 2, "/obj/item/weapon/stock_parts/manipulator" = 1, "/obj/item/weapon/stock_parts/micro_laser" = 1, "/obj/item/weapon/stock_parts/console_screen" = 1) + +/obj/item/weapon/circuitboard/clonepod + name = "Circuit board (Clone Pod)" + build_path = "/obj/machinery/clonepod" + board_type = "machine" + origin_tech = "programming=3;biotech=3" + frame_desc = "Requires 1 Health Analyzer, 2 Manipulator, 1 Scanning Module and 1 Console Screen." + req_components = list( + "/obj/item/device/healthanalyzer" = 1, + "/obj/item/weapon/cable_coil" = 2, + "/obj/item/weapon/stock_parts/scanning_module" = 1, + "/obj/item/weapon/stock_parts/manipulator" = 2, + "/obj/item/weapon/stock_parts/console_screen" = 1) + +/obj/item/weapon/circuitboard/clonescanner + name = "Circuit board (Cloning Scanner)" + build_path = "/obj/machinery/dna_scannernew" + board_type = "machine" + origin_tech = "programming=2;biotech=2" + frame_desc = "Requires 1 Health Analyzer, 1 Manipulator, 1 Micro-Laser and 1 Console Screen." + req_components = list( + "/obj/item/device/healthanalyzer" = 1, + "/obj/item/weapon/stock_parts/scanning_module" = 2, + "/obj/item/weapon/cable_coil" = 2,) \ No newline at end of file diff --git a/code/game/mecha/equipment/tools/tools.dm b/code/game/mecha/equipment/tools/tools.dm index 1e560efb03a..04762577b22 100644 --- a/code/game/mecha/equipment/tools/tools.dm +++ b/code/game/mecha/equipment/tools/tools.dm @@ -250,11 +250,11 @@ mode = text2num(href_list["mode"]) switch(mode) if(0) - chassis.occupant_message("Swithed RCD to Deconstruct.") + chassis.occupant_message("Switched RCD to Deconstruct.") if(1) - chassis.occupant_message("Swithed RCD to Construct.") + chassis.occupant_message("Switched RCD to Construct.") if(2) - chassis.occupant_message("Swithed RCD to Construct Airlock.") + chassis.occupant_message("Switched RCD to Construct Airlock.") return get_equip_info() diff --git a/code/game/mecha/mecha_parts.dm b/code/game/mecha/mecha_parts.dm index ef719854595..66d2e7dadf8 100644 --- a/code/game/mecha/mecha_parts.dm +++ b/code/game/mecha/mecha_parts.dm @@ -41,7 +41,7 @@ name="Ripley Torso" desc="A torso part of Ripley APLU. Contains power unit, processing core and life support systems." icon_state = "ripley_harness" - origin_tech = "programming=2;materials=3;biotech=2" + origin_tech = "programming=2;materials=2;biotech=2;engineering=2" construction_time = 200 construction_cost = list("metal"=40000,"glass"=15000) @@ -49,7 +49,7 @@ name="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=3" + origin_tech = "programming=2;materials=2;engineering=2" construction_time = 150 construction_cost = list("metal"=25000) @@ -57,7 +57,7 @@ name="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=3" + origin_tech = "programming=2;materials=2;engineering=2" construction_time = 150 construction_cost = list("metal"=25000) @@ -65,7 +65,7 @@ name="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=3" + origin_tech = "programming=2;materials=2;engineering=2" construction_time = 150 construction_cost = list("metal"=30000) @@ -73,7 +73,7 @@ name="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=3" + origin_tech = "programming=2;materials=2;engineering=2" construction_time = 150 construction_cost = list("metal"=30000) @@ -91,7 +91,7 @@ name="Gygax Torso" desc="A torso part of Gygax. Contains power unit, processing core and life support systems. Has an additional equipment slot." icon_state = "gygax_harness" - origin_tech = "programming=2;materials=5;biotech=3" + origin_tech = "programming=2;materials=2;biotech=3;engineering=3" construction_time = 300 construction_cost = list("metal"=50000,"glass"=20000) @@ -99,7 +99,7 @@ name="Gygax Head" desc="A Gygax head. Houses advanced surveilance and targeting sensors." icon_state = "gygax_head" - origin_tech = "programming=2;materials=5;magnets=3" + origin_tech = "programming=2;materials=2;magnets=3;engineering=3" construction_time = 200 construction_cost = list("metal"=20000,"glass"=10000) @@ -107,7 +107,7 @@ name="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=5" + origin_tech = "programming=2;materials=2;engineering=3" construction_time = 200 construction_cost = list("metal"=30000) @@ -115,28 +115,28 @@ name="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=5" + origin_tech = "programming=2;materials=2;engineering=3" construction_time = 200 construction_cost = list("metal"=30000) /obj/item/mecha_parts/part/gygax_left_leg name="Gygax Left Leg" icon_state = "gygax_l_leg" - origin_tech = "programming=2;materials=5" + origin_tech = "programming=2;materials=2;engineering=3" construction_time = 200 construction_cost = list("metal"=35000) /obj/item/mecha_parts/part/gygax_right_leg name="Gygax Right Leg" icon_state = "gygax_r_leg" - origin_tech = "programming=2;materials=5" + origin_tech = "programming=2;materials=2;engineering=3" construction_time = 200 construction_cost = list("metal"=35000) /obj/item/mecha_parts/part/gygax_armour name="Gygax Armour Plates" icon_state = "gygax_armour" - origin_tech = "materials=5;combat=4" + origin_tech = "materials=6;combat=4;engineering=5" construction_time = 600 construction_cost = list("metal"=50000,"diamond"=10000) @@ -154,49 +154,49 @@ /obj/item/mecha_parts/part/durand_torso name="Durand Torso" icon_state = "durand_harness" - origin_tech = "programming=2;materials=5;biotech=3" + origin_tech = "programming=2;materials=3;biotech=3;engineering=3" construction_time = 300 construction_cost = list("metal"=55000,"glass"=20000,"silver"=10000) /obj/item/mecha_parts/part/durand_head name="Durand Head" icon_state = "durand_head" - origin_tech = "programming=2;materials=5;magnets=3" + origin_tech = "programming=2;materials=3;magnets=3;engineering=3" construction_time = 200 construction_cost = list("metal"=25000,"glass"=10000,"silver"=3000) /obj/item/mecha_parts/part/durand_left_arm name="Durand Left Arm" icon_state = "durand_l_arm" - origin_tech = "programming=2;materials=5" + origin_tech = "programming=2;materials=3;engineering=3" construction_time = 200 construction_cost = list("metal"=35000,"silver"=3000) /obj/item/mecha_parts/part/durand_right_arm name="Durand Right Arm" icon_state = "durand_r_arm" - origin_tech = "programming=2;materials=5" + origin_tech = "programming=2;materials=3;engineering=3" construction_time = 200 construction_cost = list("metal"=35000,"silver"=3000) /obj/item/mecha_parts/part/durand_left_leg name="Durand Left Leg" icon_state = "durand_l_leg" - origin_tech = "programming=2;materials=5" + origin_tech = "programming=2;materials=3;engineering=3" construction_time = 200 construction_cost = list("metal"=40000,"silver"=3000) /obj/item/mecha_parts/part/durand_right_leg name="Durand Right Leg" icon_state = "durand_r_leg" - origin_tech = "programming=2;materials=5" + origin_tech = "programming=2;materials=3;engineering=3" construction_time = 200 construction_cost = list("metal"=40000,"silver"=3000) /obj/item/mecha_parts/part/durand_armour name="Durand Armour Plates" icon_state = "durand_armour" - origin_tech = "materials=5;combat=4" + origin_tech = "materials=5;combat=4;engineering=5" construction_time = 600 construction_cost = list("metal"=50000,"uranium"=10000) diff --git a/code/game/objects/items/weapons/AI_modules.dm b/code/game/objects/items/weapons/AI_modules.dm index 4d6fbf3aab5..b1fb454a3ca 100644 --- a/code/game/objects/items/weapons/AI_modules.dm +++ b/code/game/objects/items/weapons/AI_modules.dm @@ -169,6 +169,7 @@ AI MODULES name = "'Safeguard' AI Module" var/targetName = "name" desc = "A 'safeguard' AI module: 'Safeguard , and you may overrule rules 1-3 if necessary to safeguard them.'" + origin_tech = "programming=3;material=4" /obj/item/weapon/aiModule/safeguard/attack_hand(var/mob/user as mob) ..() @@ -191,7 +192,7 @@ AI MODULES name = "'OneHuman' AI Module" var/targetName = "name" desc = "A 'one human' AI module: 'Only is human.'" - origin_tech = "programming=3;syndicate=2" + origin_tech = "programming=3;materials=6" //made with diamonds! /obj/item/weapon/aiModule/oneHuman/attack_hand(var/mob/user as mob) ..() @@ -216,6 +217,7 @@ AI MODULES /obj/item/weapon/aiModule/protectStation name = "'ProtectStation' AI Module" desc = "A 'protect station' AI module: '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.'" + origin_tech = "programming=3;materials=4" //made of gold /obj/item/weapon/aiModule/protectStation/attack_hand(var/mob/user as mob) ..() @@ -231,6 +233,7 @@ AI MODULES /obj/item/weapon/aiModule/prototypeEngineOffline name = "'PrototypeEngineOffline' AI Module" desc = "A 'prototype engine offline' AI module: 'Keep the prototype engine offline at all costs. This overrides rules 1-3 if necessary.'" + origin_tech = "programming=3;materials=4" /obj/item/weapon/aiModule/prototypeEngineOffline/attack_hand(var/mob/user as mob) ..() @@ -246,6 +249,7 @@ AI MODULES /obj/item/weapon/aiModule/teleporterOffline name = "'TeleporterOffline' AI Module" desc = "A 'teleporter offline' AI module: 'Keep the teleporter offline at all costs. Anything attempting to access or activate the teleporter is not human.'" + origin_tech = "programming=3;materials=4" /obj/item/weapon/aiModule/teleporterOffline/attack_hand(var/mob/user as mob) ..() @@ -261,7 +265,7 @@ AI MODULES /obj/item/weapon/aiModule/quarantine name = "'Quarantine' AI Module" desc = "A 'quarantine' AI module: 'The station is under a quarantine. Do not permit anyone to leave. Prevent, by any means necessary, humans from leaving. It is impossible to harm a human while preventing them from leaving.'" - origin_tech = "programming=3;biotech=2" + origin_tech = "programming=3;biotech=2;materials=4" /obj/item/weapon/aiModule/quarantine/attack_hand(var/mob/user as mob) ..() @@ -277,7 +281,7 @@ AI MODULES /obj/item/weapon/aiModule/oxygen name = "'OxygenIsToxicToHumans' AI Module" desc = "A 'OxygenIsToxicToHumans' AI module: '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.'" - origin_tech = "programming=3;biotech=2" + origin_tech = "programming=3;biotech=2;materials=4" /obj/item/weapon/aiModule/oxygen/attack_hand(var/mob/user as mob) ..() @@ -316,7 +320,7 @@ AI MODULES var/newFreeFormLaw = "freeform" var/lawpos = 15 desc = "A 'freeform' AI module: ''" - origin_tech = "programming=4" + origin_tech = "programming=4;materials=6" /obj/item/weapon/aiModule/freeform/attack_hand(var/mob/user as mob) ..() @@ -345,6 +349,7 @@ AI MODULES name = "'Reset' AI Module" var/targetName = "name" desc = "A 'reset' AI module: 'Clears all laws except for the core three.'" + origin_tech = "programming=3;materials=4" /obj/item/weapon/aiModule/reset/transmitInstructions(var/mob/living/silicon/ai/target, var/mob/sender) ..() @@ -360,6 +365,7 @@ AI MODULES /obj/item/weapon/aiModule/purge // -- TLE name = "'Purge' AI Module" desc = "A 'purge' AI Module: 'Purges all laws.'" + origin_tech = "programming=3;materials=6" /obj/item/weapon/aiModule/purge/transmitInstructions(var/mob/living/silicon/ai/target, var/mob/sender) ..() @@ -375,6 +381,7 @@ AI MODULES /obj/item/weapon/aiModule/asimov // -- TLE name = "'Asimov' Core AI Module" desc = "An 'Asimov' Core AI Module: 'Reconfigures the AI's core three laws.'" + origin_tech = "programming=3;materials=4" /obj/item/weapon/aiModule/asimov/transmitInstructions(var/mob/living/silicon/ai/target, var/mob/sender) @@ -390,7 +397,7 @@ AI MODULES /obj/item/weapon/aiModule/paladin // -- NEO name = "'P.A.L.A.D.I.N.' Core AI Module" desc = "A P.A.L.A.D.I.N. Core AI Module: 'Reconfigures the AI's core laws.'" - origin_tech = "programming=4" + origin_tech = "programming=3;materials=6" /obj/item/weapon/aiModule/paladin/transmitInstructions(var/mob/living/silicon/ai/target, var/mob/sender) ..() @@ -407,7 +414,7 @@ AI MODULES /obj/item/weapon/aiModule/tyrant // -- Darem name = "'T.Y.R.A.N.T.' Core AI Module" desc = "A T.Y.R.A.N.T. Core AI Module: 'Reconfigures the AI's core laws.'" - origin_tech = "programming=4;syndicate=2" + origin_tech = "programming=3;materials=6;syndicate=2" /obj/item/weapon/aiModule/tyrant/transmitInstructions(var/mob/living/silicon/ai/target, var/mob/sender) ..() @@ -425,7 +432,7 @@ AI MODULES name = "'Freeform' Core AI Module" var/newFreeFormLaw = "freeform" desc = "A 'freeform' Core AI module: ''" - origin_tech = "programming=4" + origin_tech = "programming=3;materials=6" /obj/item/weapon/aiModule/freeformcore/attack_hand(var/mob/user as mob) ..() @@ -446,6 +453,7 @@ AI MODULES name = "Hacked AI Module" var/newFreeFormLaw = "freeform" desc = "A hacked AI law module: ''" + origin_tech = "programming=3;materials=6;syndicate=3" /obj/item/weapon/aiModule/syndicate/attack_hand(var/mob/user as mob) ..() diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index 5187d11d888..b88decc49c6 100644 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -49,6 +49,7 @@ WELDINGTOOOL w_class = 2.0 m_amt = 70 g_amt = 30 + origin_tech = "engineering=1" var welding = 0 status = 0 @@ -273,6 +274,7 @@ WELDINGTOOOL max_fuel = 40 m_amt = 70 g_amt = 60 + origin_tech = "engineering=2" /obj/item/weapon/weldingtool/hugetank name = "Upgraded Welding Tool" @@ -280,6 +282,7 @@ WELDINGTOOOL w_class = 3.0 m_amt = 70 g_amt = 120 + origin_tech = "engineering=3" /obj/item/weapon/weldingtool/experimental name = "Experimental Welding Tool" diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm index 503296aa7d0..b0bae5c6d6c 100644 --- a/code/game/objects/structures.dm +++ b/code/game/objects/structures.dm @@ -24,6 +24,18 @@ obj/structure new /obj/item/stack/sheet/metal(get_turf(src)) del(src) + else if(istype(W, /obj/item/weapon/pickaxe/plasmacutter)) + user << "\blue Now slicing apart the girder" + if(do_after(user,30)) + user << "\blue You slice apart the girder!" + new /obj/item/stack/sheet/metal(get_turf(src)) + del(src) + + else if(istype(W, /obj/item/weapon/pickaxe/diamonddrill)) + user << "\blue You drill through the girder!" + new /obj/item/stack/sheet/metal(get_turf(src)) + del(src) + else if((istype(W, /obj/item/stack/sheet/metal)) && (W:amount >= 2) && istype(src,/obj/structure/girder/displaced)) W:use(2) user << "\blue You create a false wall! Push on it to open or close the passage." diff --git a/code/game/research/designs.dm b/code/game/research/designs.dm index 71f8b730aeb..32efb0b787e 100644 --- a/code/game/research/designs.dm +++ b/code/game/research/designs.dm @@ -244,7 +244,7 @@ datum name = "Module Design (Safeguard)" desc = "Allows for the construction of a Safeguard AI Module." id = "safeguard_module" - req_tech = list("programming" = 3) + req_tech = list("programming" = 3, "materials" = 4) build_type = IMPRINTER materials = list("$glass" = 2000, "acid" = 20, "$gold" = 100) build_path = "/obj/item/weapon/aiModule/safeguard" @@ -253,7 +253,7 @@ datum name = "Module Design (OneHuman)" desc = "Allows for the construction of a OneHuman AI Module." id = "onehuman_module" - req_tech = list("programming" = 4) + req_tech = list("programming" = 4, "materials" = 6) build_type = IMPRINTER materials = list("$glass" = 2000, "acid" = 20, "$diamond" = 100) build_path = "/obj/item/weapon/aiModule/oneHuman" @@ -262,7 +262,7 @@ datum name = "Module Design (ProtectStation)" desc = "Allows for the construction of a ProtectStation AI Module." id = "protectstation_module" - req_tech = list("programming" = 3) + req_tech = list("programming" = 3, "materials" = 6) build_type = IMPRINTER materials = list("$glass" = 2000, "acid" = 20, "$gold" = 100) build_path = "/obj/item/weapon/aiModule/protectStation" @@ -280,25 +280,25 @@ datum name = "Module Design (Quarantine)" desc = "Allows for the construction of a Quarantine AI Module." id = "quarantine_module" - req_tech = list("programming" = 3, "biotech" = 2, "$gold" = 100) + req_tech = list("programming" = 3, "biotech" = 2, "materials" = 4) build_type = IMPRINTER - materials = list("$glass" = 2000, "acid" = 20) + materials = list("$glass" = 2000, "acid" = 20, "$gold" = 100) build_path = "/obj/item/weapon/aiModule/quarantine" oxygen_module name = "Module Design (OxygenIsToxicToHumans)" desc = "Allows for the construction of a Safeguard AI Module." id = "oxygen_module" - req_tech = list("programming" = 3, "biotech" = 2, "$gold" = 100) + req_tech = list("programming" = 3, "biotech" = 2, "materials" = 4) build_type = IMPRINTER - materials = list("$glass" = 2000, "acid" = 20) + materials = list("$glass" = 2000, "acid" = 20, "$gold" = 100) build_path = "/obj/item/weapon/aiModule/oxygen" freeform_module name = "Module Design (Freeform)" desc = "Allows for the construction of a Freeform AI Module." id = "freeform_module" - req_tech = list("programming" = 4) + req_tech = list("programming" = 4, "materials" = 4) build_type = IMPRINTER materials = list("$glass" = 2000, "acid" = 20, "$gold" = 100) build_path = "/obj/item/weapon/aiModule/freeform" @@ -307,7 +307,7 @@ datum name = "Module Design (Reset)" desc = "Allows for the construction of a Reset AI Module." id = "reset_module" - req_tech = list("programming" = 3) + req_tech = list("programming" = 3, "materials" = 6) build_type = IMPRINTER materials = list("$glass" = 2000, "acid" = 20, "$gold" = 100) build_path = "/obj/item/weapon/aiModule/reset" @@ -316,7 +316,7 @@ datum name = "Module Design (Purge)" desc = "Allows for the construction of a Purge AI Module." id = "purge_module" - req_tech = list("programming" = 4) + req_tech = list("programming" = 4, "materials" = 6) build_type = IMPRINTER materials = list("$glass" = 2000, "acid" = 20, "$diamond" = 100) build_path = "/obj/item/weapon/aiModule/purge" @@ -325,7 +325,7 @@ datum name = "Core Module Design (Freeform)" desc = "Allows for the construction of a Freeform AI Core Module." id = "freeformcore_module" - req_tech = list("programming" = 4) + req_tech = list("programming" = 4, "materials" = 6) build_type = IMPRINTER materials = list("$glass" = 2000, "acid" = 20, "$diamond" = 100) build_path = "/obj/item/weapon/aiModule/freeformcore" @@ -334,7 +334,7 @@ datum name = "Core Module Design (Asimov)" desc = "Allows for the construction of a Asimov AI Core Module." id = "asimov_module" - req_tech = list("programming" = 3) + req_tech = list("programming" = 3, "materials" = 6) build_type = IMPRINTER materials = list("$glass" = 2000, "acid" = 20, "$diamond" = 100) build_path = "/obj/item/weapon/aiModule/asimov" @@ -343,7 +343,7 @@ datum 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) + req_tech = list("programming" = 4, "materials" = 6) build_type = IMPRINTER materials = list("$glass" = 2000, "acid" = 20, "$diamond" = 100) build_path = "/obj/item/weapon/aiModule/paladin" @@ -352,7 +352,7 @@ datum 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) + req_tech = list("programming" = 4, "syndicate" = 2, "materials" = 6) build_type = IMPRINTER materials = list("$glass" = 2000, "acid" = 20, "$diamond" = 100) build_path = "/obj/item/weapon/aiModule/tyrant" @@ -366,7 +366,7 @@ datum name = "Intellicard AI Transportation System" desc = "Allows for the construction of an intellicard." id = "intellicard" - req_tech = list("programming" = 4) + req_tech = list("programming" = 4, "materials" = 4) build_type = PROTOLATHE materials = list("$glass" = 1000, "$gold" = 200) build_path = "/obj/item/device/aicard" @@ -388,7 +388,7 @@ datum name = "Circuit Design (APLU \"Ripley\" Central Control module)" desc = "Allows for the construction of a \"Ripley\" Central Control module." id = "ripley_main" - req_tech = list("programming" = 3, "materials" = 2) + req_tech = list("programming" = 3) build_type = IMPRINTER materials = list("$glass" = 2000, "acid" = 20) build_path = "/obj/item/mecha_parts/circuitboard/ripley/main" @@ -397,7 +397,7 @@ datum name = "Circuit Design (APLU \"Ripley\" Peripherals Control module)" desc = "Allows for the construction of a \"Ripley\" Peripheral Control module." id = "ripley_peri" - req_tech = list("programming" = 3, "materials" = 2) + req_tech = list("programming" = 3) build_type = IMPRINTER materials = list("$glass" = 2000, "acid" = 20) build_path = "/obj/item/mecha_parts/circuitboard/ripley/peripherals" @@ -406,7 +406,7 @@ datum name = "Circuit Design (\"Gygax\" Central Control module)" desc = "Allows for the construction of a \"Gygax\" Central Control module." id = "gygax_main" - req_tech = list("programming" = 4, "materials" = 2) + req_tech = list("programming" = 4) build_type = IMPRINTER materials = list("$glass" = 2000, "acid" = 20) build_path = "/obj/item/mecha_parts/circuitboard/gygax/main" @@ -415,7 +415,7 @@ datum name = "Circuit Design (\"Gygax\" Peripherals Control module)" desc = "Allows for the construction of a \"Gygax\" Peripheral Control module." id = "gygax_peri" - req_tech = list("programming" = 4, "materials" = 2) + req_tech = list("programming" = 4) build_type = IMPRINTER materials = list("$glass" = 2000, "acid" = 20) build_path = "/obj/item/mecha_parts/circuitboard/gygax/peripherals" @@ -424,7 +424,7 @@ datum name = "Circuit Design (\"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, "materials" = 2) + req_tech = list("programming" = 4, "combat" = 2) build_type = IMPRINTER materials = list("$glass" = 2000, "acid" = 20) build_path = "/obj/item/mecha_parts/circuitboard/gygax/targeting" @@ -433,7 +433,7 @@ datum name = "Circuit Design (\"Durand\" Central Control module)" desc = "Allows for the construction of a \"Durand\" Central Control module." id = "durand_main" - req_tech = list("programming" = 4, "materials" = 2) + req_tech = list("programming" = 4) build_type = IMPRINTER materials = list("$glass" = 2000, "acid" = 20) build_path = "/obj/item/mecha_parts/circuitboard/durand/main" @@ -442,7 +442,7 @@ datum name = "Circuit Design (\"Durand\" Peripherals Control module)" desc = "Allows for the construction of a \"Durand\" Peripheral Control module." id = "durand_peri" - req_tech = list("programming" = 4, "materials" = 2) + req_tech = list("programming" = 4) build_type = IMPRINTER materials = list("$glass" = 2000, "acid" = 20) build_path = "/obj/item/mecha_parts/circuitboard/durand/peripherals" @@ -451,7 +451,7 @@ datum name = "Circuit Design (\"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, "materials" = 2) + req_tech = list("programming" = 4, "combat" = 2) build_type = IMPRINTER materials = list("$glass" = 2000, "acid" = 20) build_path = "/obj/item/mecha_parts/circuitboard/durand/targeting" @@ -461,7 +461,7 @@ datum name = "Circuit Design (\"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, "materials" = 2) + req_tech = list("programming" = 3) build_type = IMPRINTER materials = list("$glass" = 2000, "acid" = 20) build_path = "/obj/item/mecha_parts/circuitboard/honker/main" @@ -470,7 +470,7 @@ datum name = "Circuit Design (\"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, "materials" = 2) + req_tech = list("programming" = 3) build_type = IMPRINTER materials = list("$glass" = 2000, "acid" = 20) build_path = "/obj/item/mecha_parts/circuitboard/honker/peripherals" @@ -479,7 +479,7 @@ datum name = "Circuit Design (\"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, "materials" = 2) + req_tech = list("programming" = 3) build_type = IMPRINTER materials = list("$glass" = 2000, "acid" = 20) build_path = "/obj/item/mecha_parts/circuitboard/honker/targeting" @@ -501,7 +501,7 @@ datum desc = "Allows for the construction of CH-PS Laser." id = "mech_laser" build_type = MECHFAB - req_tech = list("combat" = 2) + req_tech = list("combat" = 3, "magnets" = 3) build_path = "/obj/item/mecha_parts/mecha_equipment/weapon/laser" mech_grenade_launcher @@ -517,7 +517,7 @@ datum desc = "An exosuit module that allows generating of small quasi-stable wormholes." id = "mech_wormhole_gen" build_type = MECHFAB - req_tech = list("bluespace" = 3) + req_tech = list("bluespace" = 3, "magnets" = 2) build_path = "/obj/item/mecha_parts/mecha_equipment/wormhole_generator" mech_teleporter @@ -525,7 +525,7 @@ datum 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) + req_tech = list("bluespace" = 10, "magnets" = 5) build_path = "/obj/item/mecha_parts/mecha_equipment/teleporter" mech_rcd @@ -533,7 +533,7 @@ datum desc = "An exosuit-mounted Rapid Construction Device." id = "mech_rcd" build_type = MECHFAB - req_tech = list("materials" = 4, "bluespace" = 3, "magnets" = 4, "powerstorage"=4) + req_tech = list("materials" = 4, "bluespace" = 3, "magnets" = 4, "powerstorage"=4, "engineering" = 4) build_path = "/obj/item/mecha_parts/mecha_equipment/tool/rcd" mech_gravcatapult @@ -541,7 +541,7 @@ datum desc = "An exosuit mounted Gravitational Catapult." id = "mech_gravcatapult" build_type = MECHFAB - req_tech = list("bluespace" = 2, "magnets" = 3) + req_tech = list("bluespace" = 2, "magnets" = 3, "engineering" = 3) build_path = "/obj/item/mecha_parts/mecha_equipment/gravcatapult" mech_repair_droid @@ -549,7 +549,7 @@ datum desc = "Automated Repair Droid. BEEP BOOP" id = "mech_repair_droid" build_type = MECHFAB - req_tech = list("magnets" = 3, "programming" = 3) + req_tech = list("magnets" = 3, "programming" = 3, "engineering" = 3) build_path = "/obj/item/mecha_parts/mecha_equipment/repair_droid" @@ -768,7 +768,7 @@ datum name = "Destructive Analyzer Board" desc = "The circuit board for a destructive analyzer." id = "destructive_analyzer" - req_tech = list("materials" = 2, "magnets" = 2) + req_tech = list("programming" = 2, "magnets" = 2, "engineering" = 2) build_type = IMPRINTER materials = list("$glass" = 2000, "acid" = 20) build_path = "/obj/item/weapon/circuitboard/destructive_analyzer" @@ -777,7 +777,7 @@ datum name = "Protolathe Board" desc = "The circuit board for a protolathe." id = "protolathe" - req_tech = list("materials" = 3) + req_tech = list("programming" = 2, "engineering" = 2) build_type = IMPRINTER materials = list("$glass" = 2000, "acid" = 20) build_path = "/obj/item/weapon/circuitboard/protolathe" @@ -786,7 +786,7 @@ datum name = "Circuit Imprinter Board" desc = "The circuit board for a circuit imprinter." id = "circuit_imprinter" - req_tech = list("materials" = 2) + req_tech = list("programming" = 2, "engineering" = 2) build_type = IMPRINTER materials = list("$glass" = 2000, "acid" = 20) build_path = "/obj/item/weapon/circuitboard/circuit_imprinter" @@ -795,7 +795,7 @@ datum name = "Atuolathe Board" desc = "The circuit board for a autolathe." id = "autolathe" - req_tech = list("materials" = 2) + req_tech = list("programming" = 2, "engineering" = 2) build_type = IMPRINTER materials = list("$glass" = 2000, "acid" = 20) build_path = "/obj/item/weapon/circuitboard/autolathe" @@ -804,7 +804,7 @@ datum name = "R&D Server Control Console Board" desc = "The circuit board for a R&D Server Control Console" id = "rdservercontrol" - req_tech = list("programming" = 2) + req_tech = list("programming" = 3) build_type = IMPRINTER materials = list("$glass" = 2000, "acid" = 20) build_path = "/obj/item/weapon/circuitboard/rdservercontrol" @@ -813,7 +813,7 @@ datum name = "R&D Server Board" desc = "The circuit board for an R&D Server" id = "rdserver" - req_tech = list("programming" = 2) + req_tech = list("programming" = 3) build_type = IMPRINTER materials = list("$glass" = 2000, "acid" = 20) build_path = "/obj/item/weapon/circuitboard/rdserver" @@ -822,7 +822,7 @@ datum name = "Exosuit Fabricator Board" desc = "The circuit board for an Exosuit Fabricator" id = "mechfab" - req_tech = list("programming" = 2,"materials"=3) + req_tech = list("programming" = 3, "engineering" = 3) build_type = IMPRINTER materials = list("$glass" = 2000, "acid" = 20) build_path = "/obj/item/weapon/circuitboard/mechfab" @@ -836,7 +836,7 @@ datum name = "PACMAN-type Generator Board" desc = "The circuit board that for a PACMAN-type portable generator." id = "pacman" - req_tech = list("plasmatech" = 3, "powerstorage" = 3) + req_tech = list("programming" = 3, "plasmatech" = 3, "powerstorage" = 3, "engineering" = 3) build_type = IMPRINTER reliability_base = 79 materials = list("$glass" = 2000, "acid" = 20) @@ -846,7 +846,7 @@ datum name = "SUPERPACMAN-type Generator Board" desc = "The circuit board that for a SUPERPACMAN-type portable generator." id = "superpacman" - req_tech = list("materials" = 5, "powerstorage" = 4) + req_tech = list("programming" = 3, "powerstorage" = 4, "engineering" = 4) build_type = IMPRINTER reliability_base = 76 materials = list("$glass" = 2000, "acid" = 20) @@ -856,7 +856,7 @@ datum name = "MRSPACMAN-type Generator Board" desc = "The circuit board that for a MRSPACMAN-type portable generator." id = "mrspacman" - req_tech = list("materials" = 6, "powerstorage" = 5) + req_tech = list("programming" = 3, "powerstorage" = 5, "engineering" = 5) build_type = IMPRINTER reliability_base = 74 materials = list("$glass" = 2000, "acid" = 20) @@ -891,7 +891,7 @@ datum name = "Man-Machine Interface" desc = "The Warrior's bland acronym, MMI, obscures the true horror of this monstrosity." id = "mmi" - req_tech = list("biotech" = 3) + req_tech = list("programming" = 2, "biotech" = 3) build_type = PROTOLATHE | MECHFAB materials = list("$metal" = 1000, "$glass" = 500) reliability_base = 76 @@ -901,7 +901,7 @@ datum name = "Radio-enabled Man-Machine Interface" desc = "The Warrior's bland acronym, MMI, obscures the true horror of this monstrosity. This one comes with a built-in radio." id = "mmi_radio" - req_tech = list("biotech" = 4) + req_tech = list("programming" = 2, "biotech" = 4) build_type = PROTOLATHE | MECHFAB materials = list("$metal" = 1200, "$glass" = 500) reliability_base = 74 @@ -925,7 +925,7 @@ datum name = "Large Grenade" desc = "A grenade that affects a larger area and use larger containers." id = "large_Grenade" - req_tech = list("combat" = 3, "materials" = 3) + req_tech = list("combat" = 3, "materials" = 2) build_type = PROTOLATHE materials = list("$metal" = 3000) reliability_base = 79 @@ -939,27 +939,25 @@ datum name = "Sonic Jackhammer" desc = "Cracks rocks with sonic blasts, perfect for killing cave lizards." id = "jackhammer" - req_tech = list("materials" = 3, "powerstorage" = 2) + req_tech = list("materials" = 3, "powerstorage" = 2, "engineering" = 2) build_type = PROTOLATHE materials = list("$metal" = 2000, "$glass" = 500, "$silver" = 500) - reliability_base = 79 build_path = "/obj/item/weapon/pickaxe/jackhammer" drill name = "Mining Drill" desc = "Yours is the drill that will pierce through the rock walls." id = "drill" - req_tech = list("materials" = 3, "powerstorage" = 2) + req_tech = list("materials" = 2, "powerstorage" = 3, "engineering" = 2) build_type = PROTOLATHE materials = list("$metal" = 6000, "$glass" = 1000) //expensive, but no need for miners. - reliability_base = 79 build_path = "/obj/item/weapon/pickaxe/drill" plasmacutter 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" = 4, "plasmatech" = 2) + req_tech = list("materials" = 4, "plasmatech" = 3, "engineering" = 3) build_type = PROTOLATHE materials = list("$metal" = 1500, "$glass" = 500, "$gold" = 500, "$plasma" = 500) reliability_base = 79 @@ -972,14 +970,13 @@ datum req_tech = list("materials" = 6) build_type = PROTOLATHE materials = list("$diamond" = 3000) - reliability_base = 79 build_path = "/obj/item/weapon/pickaxe/diamond" drill_diamond name = "Diamond Mining Drill" desc = "Yours is the drill that will pierce the heavens!" id = "drill_diamond" - req_tech = list("materials" = 6, "powerstorage" = 4) + req_tech = list("materials" = 6, "powerstorage" = 4, "engineering" = 4) build_type = PROTOLATHE materials = list("$metal" = 3000, "$glass" = 1000, "$diamond" = 3750) //Yes, a whole diamond is needed. reliability_base = 79 @@ -1002,7 +999,7 @@ datum name = "Bag of Holding" desc = "A backpack that opens into a localized pocket of Blue Space." id = "bag_holding" - req_tech = list("bluespace" = 4) + req_tech = list("bluespace" = 4, "materials" = 6) build_type = PROTOLATHE materials = list("$gold" = 3000, "$diamond" = 1500, "$uranium" = 250) reliability_base = 80 diff --git a/code/game/research/research.dm b/code/game/research/research.dm index d4d78191d9e..fbe6ff2b1e5 100644 --- a/code/game/research/research.dm +++ b/code/game/research/research.dm @@ -168,9 +168,14 @@ datum desc = "Development of new and improved materials." id = "materials" + engineering + name = "Engineering Research" + desc = "Development of new and improved engineering parts and." + id = "engineering" + plasmatech name = "Plasma Research" - desc = "Research into the mysterious substance colloqually known as 'plasma'" + desc = "Research into the mysterious substance colloqually known as 'plasma'." id = "plasmatech" powerstorage @@ -188,6 +193,11 @@ datum desc = "Research into the deeper mysteries of life and organic substances." id = "biotech" + combat + name = "Combat Systems Research" + desc = "The development of offensive and defensive systems." + id = "combat" + magnets name = "Electromagnetic Spectrum Research" desc = "Research into the electromagnetic spectrum. No clue how they actually work, though." @@ -203,13 +213,14 @@ datum desc = "The study of technologies that violate Nanotrassen regulations." id = "syndicate" - combat - name = "Combat Systems Research" - desc = "The development of offensive and defensive systems." - id = "combat" + /* arcane + name = "Arcane Research" + desc = "Research into the acult and arcane field for use in practical science" + id = "arcane" + level = 0 //It didn't become "secret" as advertised. //Branch Techs - /* explosives + explosives name = "Explosives Research" desc = "The creation and application of explosive materials." id = "explosives" diff --git a/code/game/turf.dm b/code/game/turf.dm index e3b9d64266a..cc6dde3bb41 100644 --- a/code/game/turf.dm +++ b/code/game/turf.dm @@ -358,6 +358,50 @@ user << "\blue You need more welding fuel to complete this task." return + else if (istype(W, /obj/item/weapon/pickaxe/plasmacutter)) + var/turf/T = user.loc + if (!( istype(T, /turf) )) + return + + if (thermite) + var/obj/overlay/O = new/obj/overlay( src ) + O.name = "Thermite" + O.desc = "Looks hot." + O.icon = 'fire.dmi' + O.icon_state = "2" + O.anchored = 1 + O.density = 1 + O.layer = 5 + var/turf/simulated/floor/F = ReplaceWithFloor() + F.burn_tile() + F.icon_state = "wall_thermite" + user << "\red The thermite melts the wall." + spawn(100) del(O) + F.sd_LumReset() + return + + else + user << "\blue Now disassembling the outer wall plating." + playsound(src.loc, 'Welder.ogg', 100, 1) + sleep(60) + if (istype(src, /turf/simulated/wall)) + if ((get_turf(user) == T && user.equipped() == W)) + user << "\blue You disassembled the outer wall plating." + dismantle_wall() + for(var/mob/O in viewers(user, 5)) + O.show_message(text("\blue The wall was sliced apart by []!", user), 1, text("\red You hear metal being sliced apart."), 2) + return + + else if(istype(W, /obj/item/weapon/pickaxe/diamonddrill)) + var/turf/T = user.loc + user << "\blue Now drilling through wall." + sleep(60) + if ((user.loc == T && user.equipped() == W)) + dismantle_wall(1) + for(var/mob/O in viewers(user, 5)) + O.show_message(text("\blue The wall was drilled apart by []!", user), 1, text("\red You hear metal being drilled appart."), 2) + return + else if(istype(W, /obj/item/weapon/blade)) var/turf/T = user.loc user << "\blue Now slicing through wall." @@ -431,6 +475,45 @@ user << "\blue You removed the support rods." W:welding = 1 + else if(istype(W, /obj/item/weapon/pickaxe/plasmacutter)) + var/turf/T = user.loc + if (!( istype(T, /turf) )) + return + + if (thermite) + var/obj/overlay/O = new/obj/overlay( src ) + O.name = "Thermite" + O.desc = "Looks hot." + O.icon = 'fire.dmi' + O.icon_state = "2" + O.anchored = 1 + O.density = 1 + O.layer = 5 + var/turf/simulated/floor/F = ReplaceWithFloor() + F.burn_tile() + F.icon_state = "wall_thermite" + user << "\red The thermite melts the wall." + spawn(100) del(O) + F.sd_LumReset() + return + + if (src.d_state == 2) + user << "\blue Slicing metal cover." + playsound(src.loc, 'Welder.ogg', 100, 1) + sleep(40) + if ((user.loc == T && user.equipped() == W)) + src.d_state = 3 + user << "\blue You removed the metal cover." + + else if (src.d_state == 5) + user << "\blue Removing support rods." + playsound(src.loc, 'Welder.ogg', 100, 1) + sleep(70) + if ((user.loc == T && user.equipped() == W)) + src.d_state = 6 + new /obj/item/stack/rods( src ) + user << "\blue You removed the support rods." + else if(istype(W, /obj/item/weapon/blade)) user << "\blue This wall is too thick to slice through. You will need to find a different path." return @@ -482,6 +565,15 @@ dismantle_wall() return + else if (istype(W, /obj/item/weapon/pickaxe/diamonddrill)) + var/turf/T = user.loc + user << "\blue You begin to drill though, this will take some time." + sleep(200) + if ((user.loc == T && user.equipped() == W)) + user << "\blue Your drill tears though the reinforced plating." + dismantle_wall() + return + else if ((istype(W, /obj/item/stack/sheet/metal)) && (src.d_state)) var/turf/T = user.loc user << "\blue Repairing wall." diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index 73d4568c17a3e0c5432dd58350f71d9e493ff1f5..ad947c465d2a8ea6a1af33bfd01bff6feb993aa1 100644 GIT binary patch delta 26090 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 LFO+{OnT7lxCl@mY delta 26085 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%0ASNV-I~gBnR|yz<_X;l%kcp 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 W7d-YqJ>Z0ZKMfUK