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 73d4568c17a..ad947c465d2 100644 Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ