diff --git a/README.md b/README.md index dade37afd8e..5a182f9ddfd 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ [![forthebadge](http://forthebadge.com/images/badges/contains-technical-debt.svg)](http://forthebadge.com) [![forthebadge](http://forthebadge.com/images/badges/fuck-it-ship-it.svg)](http://forthebadge.com) -[Website](http://www.nanotrasen.se/) - [Code](https://github.com/ParadiseSS13/Paradise) - [Discord](https://discordapp.com/invite/gXZMc?utm_source=Discord%20Widget&utm_medium=Connect) +[Website](https://nanotrasen.se/) - [Code](https://github.com/ParadiseSS13/Paradise) - [Discord](https://discordapp.com/invite/gXZMc?utm_source=Discord%20Widget&utm_medium=Connect) --- diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm index 0683edc0dd8..f78259337f8 100644 --- a/_maps/map_files/cyberiad/cyberiad.dmm +++ b/_maps/map_files/cyberiad/cyberiad.dmm @@ -574,7 +574,7 @@ "alb" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/security/permabrig) "alc" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/security/permabrig) "ald" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{name = "Prisoner Transfer Center"; req_access = null; req_access_txt = "1"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/execution{name = "\improper Prisoner Transfer Center"}) -"ale" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/hatch/gamma{locked = 1; req_access_txt = "1"; use_power = 0},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/permabrig) +"ale" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/hatch/gamma{locked = 1; req_access_txt = "1"; use_power = 0},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/armoury) "alf" = (/obj/machinery/vending/security,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/item/device/radio/intercom/department/security{pixel_x = -28},/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 1},/area/security/armoury) "alg" = (/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 1},/area/security/armoury) "alh" = (/obj/effect/decal/warning_stripes/red/hollow,/obj/structure/closet/l3closet/security,/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 4},/area/security/armoury) @@ -621,7 +621,7 @@ "alW" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable,/turf/simulated/floor/plating,/area/security/warden) "alX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/poddoor/shutters{dir = 2; id_tag = "Secure Armory"; name = "Secure Armory Shutters"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/securearmoury) "alY" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable,/turf/simulated/floor/plating,/area/security/securearmoury) -"alZ" = (/obj/structure/table/reinforced,/obj/machinery/door/window/brigdoor{dir = 2; name = "Secure Armory"; req_access_txt = "3"},/obj/machinery/door/window/brigdoor{dir = 1; name = "Secure Armory"; req_access_txt = "3"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/securearmoury) +"alZ" = (/obj/structure/table/reinforced,/obj/machinery/door/window/brigdoor{dir = 2; name = "Secure Armory"; req_access_txt = "1"},/obj/machinery/door/window/brigdoor{dir = 1; name = "Secure Armory"; req_access_txt = "3"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/securearmoury) "ama" = (/obj/structure/closet/secure_closet/security,/obj/structure/window/reinforced{dir = 8},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 9},/area/security/main) "amb" = (/obj/structure/table,/obj/item/clothing/suit/tracksuit/red,/obj/item/device/radio/intercom/department/security{pixel_x = -28},/obj/machinery/camera{c_tag = "Brig Security Equipment Lockers"; dir = 4; network = list("SS13")},/obj/machinery/requests_console{department = "Security"; departmentType = 5; name = "Security Requests Console"; pixel_x = 0; pixel_y = 30},/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 1},/area/security/main) "amc" = (/obj/structure/closet/secure_closet/security,/obj/structure/sign/goldenplaque{pixel_y = 30},/obj/machinery/light{dir = 1; on = 1},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/security/main) @@ -873,9 +873,9 @@ "aqO" = (/obj/structure/sign/poster/legit{pixel_x = 0; pixel_y = 32},/obj/machinery/camera{c_tag = "Firing Range"; dir = 2; network = list("SS13")},/turf/simulated/floor/plasteel{icon_state = "red"},/area/security/range) "aqP" = (/obj/structure/closet/crate,/obj/item/target,/obj/item/target,/obj/item/target,/obj/item/target,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor/plasteel,/area/security/range) "aqQ" = (/obj/effect/decal/cleanable/dirt,/obj/item/device/radio/intercom{broadcasting = 0; name = "station intercom (General)"; pixel_y = 25},/turf/simulated/floor/plasteel{dir = 8; icon_state = "redcorner"},/area/security/range) -"aqR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/security/brig) -"aqS" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/security/brig) -"aqT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/security/brig) +"aqR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{dir = 1; icon_state = "darkredcorners"},/area/security/brig) +"aqS" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/brig) +"aqT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/brig) "aqU" = (/obj/machinery/light{dir = 1; on = 1},/obj/item/device/radio/intercom/department/security{pixel_x = 0; pixel_y = 25},/turf/simulated/floor/plasteel{dir = 1; icon_state = "darkredcorners"},/area/security/brig) "aqV" = (/obj/machinery/ai_status_display{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{dir = 1; icon_state = "darkredcorners"},/area/security/brig) "aqW" = (/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/brig) @@ -924,10 +924,10 @@ "arN" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 101; on = 1; pressure_checks = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/range) "arO" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel,/area/security/range) "arP" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/security/range) -"arQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor/plasteel,/area/security/brig) +"arQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/brig) "arR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Firing Range"; req_access_txt = "1"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel,/area/security/range) -"arS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/brig) -"arT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel,/area/security/brig) +"arS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/brig) +"arT" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "redcorner"},/area/hallway/primary/fore) "arU" = (/turf/simulated/floor/plating/airless,/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk3"; icon_state = "catwalk3"},/area/solar/auxstarboard) "arV" = (/obj/structure/shuttle/engine/propulsion{dir = 8; icon_state = "burst_r"},/turf/space,/area/shuttle/trade/sol) "arW" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1450; master_tag = "trade_sol"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access_txt = "160"},/turf/simulated/shuttle/floor,/area/shuttle/trade/sol) @@ -988,9 +988,9 @@ "asZ" = (/obj/machinery/light,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/security/range) "ata" = (/obj/structure/table/reinforced,/obj/item/weapon/gun/energy/laser/practice,/obj/machinery/recharger{pixel_y = 0},/turf/simulated/floor/plating,/area/security/range) "atb" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 1},/area/security/range) -"atc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/security/brig) +"atc" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/plasteel{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/fore) "atd" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable,/turf/simulated/floor/plating,/area/security/brig) -"ate" = (/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/security/brig) +"ate" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/prison/cell_block/B) "atf" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "darkredcorners"},/area/security/brig) "atg" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "darkredcorners"},/area/security/brig) "ath" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel{dir = 8; icon_state = "darkredcorners"},/area/security/brig) @@ -1474,7 +1474,6 @@ "aCr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/light/small{dir = 8},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "redcorner"},/area/security/prison/cell_block/B) "aCs" = (/obj/machinery/door/window/brigdoor{dir = 8; id = "Cell 6"; name = "Cell 6"; req_access_txt = "2"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/prison/cell_block/B) "aCt" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10; initialize_directions = 10; level = 1},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "darkredcorners"},/area/security/prison/cell_block/B) -"aCu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/prison/cell_block/B) "aCv" = (/obj/structure/stool/bed/chair,/obj/item/device/radio/intercom/department/security{pixel_x = -28},/obj/machinery/camera{c_tag = "Brig Interrogation Observation"; dir = 4; network = list("SS13")},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/interrogation) "aCw" = (/obj/structure/stool/bed/chair,/obj/machinery/light_switch{pixel_x = 25},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/interrogation) "aCx" = (/obj/structure/stool/bed/chair,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/interrogation) @@ -1720,7 +1719,6 @@ "aHd" = (/obj/structure/stool/bed,/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aHe" = (/obj/machinery/camera{c_tag = "Fore Primary Hallway West"; dir = 4; network = list("SS13")},/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/newscaster{layer = 3.3; pixel_x = 0; pixel_y = -27},/turf/simulated/floor/plasteel{dir = 8; icon_state = "redcorner"},/area/hallway/primary/fore) "aHf" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/disposal,/turf/simulated/floor/plasteel{dir = 8; icon_state = "redcorner"},/area/hallway/primary/fore) -"aHg" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/plasteel{dir = 8; icon_state = "redcorner"},/area/hallway/primary/fore) "aHh" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/wood,/area/crew_quarters/mrchangs) "aHi" = (/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/item/weapon/twohanded/required/kirbyplants,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5; level = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "barber"},/area/civilian/barber) "aHj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{dir = 2; icon_state = "barber"},/area/civilian/barber) @@ -4359,7 +4357,7 @@ "bGz" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/poddoor/shutters{dir = 2; id_tag = "mechbay"; name = "Mech Bay"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/assembly/chargebay) "bGA" = (/obj/structure/table,/obj/item/weapon/book/manual/robotics_cyborgs{pixel_x = 2; pixel_y = 5},/obj/item/weapon/storage/belt/utility,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/machinery/requests_console{department = "Robotics"; departmentType = 2; name = "Robotics Requests Console"; pixel_y = 30},/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/assembly/robotics) "bGB" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id_tag = "robotics"; name = "Robotics Lab Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/assembly/robotics) -"bGC" = (/obj/machinery/autolathe,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) +"bGC" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 0; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) "bGD" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 0},/obj/item/weapon/storage/belt/utility,/obj/item/clothing/gloves/color/latex,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) "bGE" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/machinery/door/window/eastright{base_state = "left"; dir = 2; icon_state = "left"; name = "Robotics Desk"; req_access_txt = "29"},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/weapon/folder/white,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id_tag = "robotics"; name = "Robotics Lab Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/assembly/robotics) "bGF" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{dir = 10; icon_state = "purple"},/area/hallway/primary/starboard/east) @@ -4882,7 +4880,7 @@ "bRn" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/medical/research{name = "Research Division"}) "bRo" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/camera{c_tag = "Research Hallway Entrance"; dir = 2; network = list("Research","SS13")},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/medical/research{name = "Research Division"}) "bRp" = (/obj/machinery/door_control{id = "rdlab2"; name = "Research and Development Lab Shutters Control"; pixel_x = -24; pixel_y = -24; req_access_txt = "47"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) -"bRq" = (/obj/structure/table,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 0; pixel_y = 0},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 0; pixel_y = 0},/obj/item/stack/tape_roll,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) +"bRq" = (/obj/structure/table,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 0; pixel_y = 0},/obj/item/stack/tape_roll,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) "bRr" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 8},/turf/space,/area/shuttle/research) "bRs" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/shuttle/research) "bRt" = (/obj/machinery/computer/shuttle/science,/turf/simulated/shuttle/floor,/area/shuttle/research) @@ -9056,9 +9054,9 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwalwalvalwalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanfangaomaocaobaoeaodaohaogaitapGaojaoiaonaokaopaooapFaoqaosaoraouaotaowaovaoxalWaozaoyaoBaoAaoDaoCaoJaoEaoGaoFaoFaoHaoLaoIaoIaoMaoPaoNalFaoQaoRaiYaiYaiYaoTaoSaihaabaaaaaaajbakyajwajwajwajwakzajyaaaaaaaaaaaaamWaaaaaaaoKaaaaaaaaaamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwaaaaabaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanfaoUaomaoValEaoXaoWanlajJaigapGaoZaoYapbapaapdapcapFapeapgapfaphamyapjapiapkapSapAaplapCapBapEapDapIapHapJapJapLapKapNapMapOaoJapQaoJapRapNapTaiYapVapUapXapWaihaaaaabaabajbapYaqaapZaqcaqbajbalIaqeaaaaaaaaaamWaabappapnapqaabaabamWamWamWamWamWamWaqpamWamWamWamWamWamWamWamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapsaprapuaptapwapraprapxapraprapvaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaabapyaabalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakBakBakBakBaslakWakZaomaomaomaomakUaqsapFapGapGapGaqtaquapGapFaqvalUaqwaqwalTaqxaqxapPapSapSaqyaqzapSapSapSanAaqAaqCaqBanxanAanAaqAaqDanxaqFaqEanxanAaqGaqGaqGaqGaqHaihaihaqIaqIaqIaqIajbalsaqJaqKalsajbaabaaaaaaaaaaaaamWaaaappaqdapqaaaaaaaabaabaabaabaabaabaabaabaqLaabaabaabaaaaaaamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfaqhaqiaqgaqkaqlaqlaqlaqmaqjaqoaaaaaaaaaalwalwalwalvalvaabaabaaaaqnaaaaabaabalvalvalwalwalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakBakXaqraqMaqNaqraqOapzaqQaqPakWaqRaqTaqSaqVaqUaqXaqWariaqYarjaqXaqXaqXaqXarkaqXaqXaqXarlarnarmarparoarrarqarsarsarsartarsaruarwarvarxaqXaryaqWaqXarzarBarAarCaqXariaqXaqXarDarEaqVaqXarFarHarGarJarIajbaabaaaaaaaaaaaaamWaaaappaqdapqaaaaaaaabaqZaraaraaraaraarbaraaraaraaraarcaabaaaamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaardaqhareargaqlarharharharharharfaaaaaaaaaalwaaaaaaaabaaaaabaaaaaaaqnaaaaaaaabaaaaabaaaaaaalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakBalDarKalDarLalDarNarMarParOarRarQarTarSasdascaseaseasfaseasgaseaseaseasiashasiasjasiasiassaskasnasmaspasoasoasoasoasqasoasoasoasrastasAasvasuasxaswaszasyasAasAasCasBasBasDasEasEasEasFasHasGasIamRamVaaaaaaaaaaaaaaaamWaabappaqdapqaaaaaaaabarUaabaaaaaaaabarUaabaabaaaaaaarUaabaaaamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarVaqharWarYarharharharharZasaaqoaaaaaaaaaalwaabarXarXarXarXarXaaaasbaaaarXarXarXarXarXaabalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakBamoasYasXasZasYasYataatbalBakWatcateatdatgatfatiathatkatjatmatlatnatjatpatoatratqatratsatuattatwatvatyatxatAatzatCatBatEatDatAatOatRatQaFLaFLaFLaFLaFLaFLaFLaxeatSatSatSatTatSatSatSarFatVatUatXatWajbaaaaaaaaaaaaaabamWaaaappaqdapqaabaabappapnapqaabaabappapnapqaabaabappapnapqaabamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfaqhaqiaqgaqkaqlaqlaqlaqmaqjaqoaaaaaaaaaalwalwalwalvalvaabaabaaaaqnaaaaabaabalvalvalwalwalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakBakXaqraqMaqNaqraqOapzaqQaqPakWaqRaqSaqXaqVaqUaqXaqWariaqYarjaqXaqXaqXaqXarkaqXaqXaqXarlarnarmarparoarrarqarsarsarsartarsaruarwarvarxaqXaryaqWaqXarzarBarAarCaqXariaqXaqXarDarEaqVaqXarFarHarGarJarIajbaabaaaaaaaaaaaaamWaaaappaqdapqaaaaaaaabaqZaraaraaraaraarbaraaraaraaraarcaabaaaamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaardaqhareargaqlarharharharharharfaaaaaaaaaalwaaaaaaaabaaaaabaaaaaaaqnaaaaaaaabaaaaabaaaaaaalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakBalDarKalDarLalDarNarMarParOarRaqTarSarQasdascaseaseasfaseasgaseaseaseasiashasiasjasiasiassaskasnasmaspasoasoasoasoasqasoasoasoasrastasAasvasuasxaswaszasyasAasAasCasBasBasDasEasEasEasFasHasGasIamRamVaaaaaaaaaaaaaaaamWaabappaqdapqaaaaaaaabarUaabaaaaaaaabarUaabaabaaaaaaarUaabaaaamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarVaqharWarYarharharharharZasaaqoaaaaaaaaaalwaabarXarXarXarXarXaaaasbaaaarXarXarXarXarXaabalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakBamoasYasXasZasYasYataatbalBakWaryatgatgatgatfatiathatkatjatmatlatnatjatpatoatratqatratsatuattatwatvatyatxatAatzatCatBatEatDatAatOatRatQaFLaFLaFLaFLaFLaFLaFLaxeatSatSatSatTatSatSatSarFatVatUatXatWajbaaaaaaaaaaaaaabamWaaaappaqdapqaabaabappapnapqaabaabappapnapqaabaabappapnapqaabamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasJaprapraprapwapraprapxapraprasKaaaaaaaaaalwaaaasMasLasLasLasLasNasPasOasQasQasQasQasRaaaalwaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaakBakBakBakBakBakBakBatYauaatZakWaubaudapFaufaueawKaugauhawKawKawKawKaujaukaucatdaulatdaucaunaumawHawHawHawHauAauoawVauEauEawXauEauFauEauEaFLauGauHaFLauHauIaFLauJauLauKauNauMauPauOauQajbajbajbajbajbajbaaaaaaaaaaaaaaaamWaaaappaqdapqaaaaaaappaqdapqaaaaaaappaqdapqaaaaaaappaqdapqaabaqpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwaabatFatFatFatFatFaaaatHaaaatFatFatFatFatFaabalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakBauRauTauSakWauUauVapGauXauWaucauYavaauZavcavbauZavdavfaveavhavgaviaveavjaAzavlavkavmavlavoavnavzavravBavAaAFavCaCyavDaFLauIavFavEavFauIaFLavGavHayVayVavIavKavJavLaHEaaaaabaaaaaaaaaaaaaaaaaaaaaaaaamWaaaappaqdapqaaaaaaappaqdapqaaaaaaappaqdapqaaaaaaappaqdapqaabamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwaaaaaaaaaaabaaaaaaaaaautaaaaaaaaaaabaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasSasUasTasWasVaaaaaaawBawBaudaudaudaudavMavNaucavOauWaucavPavRavQavTavSavUavdavfavVavXavWavZavYavjaAzawbawaawdawcawfaweawgaCyawhavAaAFawiawnawjaFLawAawDawCawEawAaFLawFawGayVawJawIawLawGawMaHEaabaabaaaaaaaaaaaaaaaaaaaaaaaaamWaaaappaqdapqaabaabappaqdapqaabaabappaqdapqaabaabappaqdapqaabamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -9069,12 +9067,12 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxiazeazgazhaxiaaaaxkazfazjaziaxkalwaabarXarXarXarXarXaaaatHaaaarXarXarXarXarXaabalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauvaxoawzaxmatIatMatNazVauyawBaudaudaudaznazXazWazsazrawKazYazZawWaAcaAaawWaAdaAqaxLaAraBHaAsaxLazyaAtaxpaAuaAvaxpaAwavnaxvaAyaACaAAaAEaADaAHaAGawlaAIaAKaAJawlaydavqavqaxhaxhaxhdmoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUazUaAbaraaraaraazbaraaraaraaraazbaraaraaraaraaALaaaaaaamWaaaaAfaAfaAgaAgaAgaAgaAgaAgaAfaAfaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxiaAhazgazhaxiaaaaxkaAiaykaykaxkalwaaaasMasLasLasLasLasNasPasOasQasQasQasQasRaaaalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatIaymawzawzayhauyayoaAMauCaAmaAnaAlaAnaApaApaANaApaAoaElaAOaAPawKaxSaARawKaATaAVaAUaAWaxLaAZaAXaBbaBaawHaBiayeawHaBraBpaBsaBsaBsaBsaBsawVaBuaBtawlaBvaBRaBvawlaBwavqavqatGaupaurauqauqausaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaAYaBxaByaabaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaamWaAfaAfaBdaBcaBeaBgaBhaBfaBjaBeaAfaAfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxiaAhazgazhaxiaaaaxkaBkaykaBlaxkaabaBmatFatFatFatFatFaaaatHaaaatFatFatFatFatFaabalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatIazkazkazkatIatMaBAaBzaBBaAmaCaaAnaAnaBCaApaBDaBqaBoaElaBEaBFauZavcaBGauZaAdaxLaxLaBJaBIaBKaxLaxLazxavlaBLavmavlaBNaBMaBPaBOaBSaBQaBsaCcaCfaCeaZIaCgavqaSPavqaChavqavqavsavqavtavpavuavwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaabaabaBTaabaabaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaAfaAfaAfaAfaBUaBgaBVaBgaBVaBXaBgaBgaBgaBWaAfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxiazgazgazgaBYaaaaxkaBkaykaBlaxkalwaaaaaaaabaaaaabaaaaaaaBZaaaaaaaabaaaaabaaaaaaalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAeaAkaAkaAkaAjaaaaaaaaaaaaaBnaAnaAnaAnaCiaCkaCjaCdaCbaElavPaCmaClavTaCnaCoavdaxLaEBaCpaEBaCqaEBaxLaAzazAaCrawdaCsaCuaCtaBsaCvaCxaCwaBsaCzaCBaCAaCCaZIaZIaCgavqavqaybaycatGavqawkauqauqawmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaCLaabaabaaaaaaaabaaaaabaabaaaaaaaaaaaaaaaaaaaaaaAfaCNaCOaCPaCMaCRaCQaCSaBgaBgaCUaCVaBgaCWaAfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxiazgazgazgaBYaaaaxkaBkaykaBlaxkalwaaaaaaaabaaaaabaaaaaaaBZaaaaaaaabaaaaabaaaaaaalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAeaAkaAkaAkaAjaaaaaaaaaaaaaBnaAnaAnaAnaCiaCkaCjaCdaCbaElavPaCmaClavTaCnaCoavdaxLaEBaCpaEBaCqaEBaxLaAzazAaCrawdaCsateaCtaBsaCvaCxaCwaBsaCzaCBaCAaCCaZIaZIaCgavqavqaybaycatGavqawkauqauqawmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaCLaabaabaaaaaaaabaaaaabaabaaaaaaaaaaaaaaaaaaaaaaAfaCNaCOaCPaCMaCRaCQaCSaBgaBgaCUaCVaBgaCWaAfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxiaCTazgazgaCXaaaaxkaCYaykaykaCZalwalwalwaabaabaabaabaDbaDaaDbaabaabaabaabalwalwalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBnaDdaDcaCEaCDaCGaCFaCHaDiaElauYaCIawWaCKaCJawWaDeaDfaEBaDgaFFaDhaEBaDkaDjaxpaDlaDmaxpaDoaDnaBsaDpaDraDqaBsaDsaDNaDNaDNaDNaDPaDPaDRaDRaDRaDRatGatGatGatGaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaabaaaaabaabaDSaDKaDSaabaabaaaaabaaaaaaaabaabaaaaaaaaaaaaaaaaaaaAfaDUaDTaDWaDVaDYaDXaBgaBgaBgaDZaEaaBgaEcaAfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxiaEbazgaEeaxiaaaaxkaEfaykaykaxkaabaaaaabaaaaaaaabaaaaDbaEgaEdaaaaaaaabaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEiaEiaEiaEiaEiaEiaEiaAmaElaElaElaDtaElaElaElaDuaAmaAxaAxaAxaAxaAxaAxaEBaEBaDvaDgaFFaDhaDvaDvaDvaEpaEpaEpaEpaDxaDwaBsaDyaDAaDzaBsaDsaDNaELaEMaEKaDPaENaDBaEOaEQaDRaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaabaabaaaaabaabaabaabaabaaaaDSaERaDSaaaaabaaaaabaaaaaaaaaaabaabaaaaaaaaaaaaaaaaAfaETaESaCPaEUaEWaEVaEXaBgaEZaEYaFbaFaaAfaFdaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFeaFfaFcaFfaFgaaaaFiaFhaykaFkaFiaabaaaaabaaaaaaaabaDbaDbaFjaFmaDbaaaaabaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEiaFlaFoaDCaDDaFvaFwaFsaDFaDEaDDaDGaFvaFvaDIaDHaFBaFAaFyaFyaFyaFyaFyaFyaFyaDJaDLaGraDMaEjaDOavqavqavqavqavqaBsaDQaEkaEhaEnaEmaBsaEoaDNaFTaFUaFPaDPaFVaEqaFWaFYaDPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaabaabaDSaDSaFZaDSaDSaabaaaaabaaaaaaaaaaaaaabaabaaaaaaaaaaaaaAfaGbaGaaCPaAfaCPaCPaGdaGcaAfaAfaAfaAfaAfaAfaabaabaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaFeaGfaFgaaaaaaaGgaFiaGeaFiaGhaabaaaaabaaaaaaaabaGjaGiaGlaGkaGjaGnaGnaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGoaGmaEraGpaEtaEsaEuaEsaEvaEsaExaEwaGraGraEzaEyaGraGraGraGraGraGraGraGraGraECaEEaEDaEGaEFaEHaAQaASaEIaASaAQaBsaEJaFnaEPaFnaFnaBsaDsaDNaFpaGNaFqaDPaFraGRaGQaEQaDPaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaabaGTaGUaGSaGWaGTaabaaaaabaaaaaaaabaaaaaaaabaabaaaaaaaGXaAfaCPaAfaCPaGYaGVaGYaMzaGYaGYaGYaHbaGXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaGnaGnaGnaGnaGnaGnaGnaGnaabaabaGjaHcaHaaGZaGjaHdaGnaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGoaHeaHgaHfaFuaFtaFxaHnaFzaHnaFCaHqaHnaHnaFEaFDaHnaHnaHnaHnaHnaHnaHnaFHaFJaFIaFKaHvaHxaEjaFMaAQaFNaASaFOaAQaBsaBsaBsaBsaBsaBsaBsaFQaDNaHCaFUaFRaDPaFSaHGaFWaHHaDPaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaGTaHKaHIaHJaGTaabaaaaabaaaaaaaabaaaaaaaGXaHNaGXaHNaGXaHbaGYaGYaGYaGYaGYaGYaGYaGYaGYaHOaHPaGXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaGnaGnaGnaGnaGnaGnaGnaGnaabaabaGjaHcaHaaGZaGjaHdaGnaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGoaHearTaHfaFuaFtaFxaHnaFzaHnaFCaHqaHnaHnaFEaFDaHnaHnaHnaHnaHnaHnaHnaFHaFJaFIaFKaHvaHxaEjaFMaAQaFNaASaFOaAQaBsaBsaBsaBsaBsaBsaBsaFQaDNaHCaFUaFRaDPaFSaHGaFWaHHaDPaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaGTaHKaHIaHJaGTaabaaaaabaaaaaaaabaaaaaaaGXaHNaGXaHNaGXaHbaGYaGYaGYaGYaGYaGYaGYaGYaGYaHOaHPaGXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaHQaHLaHQaaaaaaaaaaGnaHSaHTaHSaHRaHMaHUaGnaaaaaaaGjaHVaHXaHWaIaaHSaGnaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIbaIcaIcaIeaIeaFXaLAaIhaIhaGqaLAaGsaIlaIiaIiaIlaGtaIlaIoaIoaIoaIoaIoaIoaImaIoaIoaInaIraIpaEjaGuavqaAQaAQaAQavqavqavqaydaGvaGwavqavqaGxaDNaIwaFUaGyaDPaGzaGRaGQaEQaDPaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaHQaIzaHQaaaaabaGTaIBaIAaICaGTaIFaIFaIFaIFaIFaHNaHNaHNaGXaIDaGYaHOaHPaMzaGYaMzaMzaMzaGXaIEaGXaGXaGXaGXaGXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaIIaIGaIIaaaaaaaabaGnaIHaILaHSaHSaIJaHSaGnaIIaIIaGjaGjaIMaIKaIaaHSaGnaGnaIIaIIaIIaGnaGnaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaIbaIPaGAaGCaGBaGDaLAaGFaGEaGGaLAaGHaIlaIWaIZaGJaGIaJbaJaaJdaJcaJfaJeaJhaJgaJjaJiaJkaFFaFGaEjaGKavqavqavqavqavqavqavqavqavqavqavqavqaGLaGOaGMaHhaGPaDPaHiaHjaJyaJBaDPaabaJEaJFaJFaJFaJFaJFaJGaabaabaaaaaaaaaaaaaHNaJCaHNaaaaIFaGTaGTaJDaJHaGTaJIaGYaGYaGYaMzaJJaGYaJMaGXaGYaGYaGYaJKaMzaGYaGXaJNaJLaGXaGYaJOaGXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJPaJSaJQaaaaJRaJVaJTaabaabaIIaHSaIIaaaaaaaabaGnaJXaJYaJZaJWaJUaKaaGnaKbaHSaKdaKcaKfaKeaKeaKeaKeaKeaKeaKeaKeaKgaGnaaaaKhaaaaaaaaaaaaaaaaaaaaaaaaaIbaKkaHkaKmaKnaHlaLAaHmaKraHoaLAaGHaIlaKtaKuaKvaGIaJbaKqaKsaKsaKsaKsaKsaJgaKwaJiaFyaFFaFGaEjaFMaLPaLPaLPaLPaLPaHpaKOaKOaKOaKOaKOaKOaKOaDNaDNaHraDNaDPaDPaHsaDPaDPaDPaKOaKPaKQaKQaKQaKQaKQaKPaKOaabaaaaaaaaaaaaaHNaKJaKMaaaaIFaKRaKTaKSaKWaGYaGYaGYaMzaGYaMzaKXaGYaGYaGXaGYaKVaKUaKXaIEaGYaGXaKZaKYaGXaGYaLcaGXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -9085,7 +9083,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPVaSdaSdaLdaMsaPZaQaaLdaMsaPZaQaaLdaGnaLkaGnaGnaGnaGnaGnaHSaGnaHSaQbaPXaHSaHSaGnaLsaGnaPYaabaPYaGnaJYaOZaGnaQeaQcaGnaNAaKaaGnaLsaMAaMAaQgaQgaQgaQgaQgaQgaQgaQgaQgaPiaPiaPjaQhaQiaQjaQkaQlaQdaKEaKDaKFaKFaKFaKFaKFaKGaKIaKHaKFaKFaKFaKKaKKaKLaLzaKNaLBaEjaHBaLPaQzaKpaLNaLPaITaOpaPAaQEaQFaOpaMVaPCaPDaPDaPEaQGaOqaPGaPIaPIaPJaKBaKCaODaKQaKQaKQaKQaKQaODaQHaPMaODaaaaaaaGXaQIaGYaGYaQBaMzaQCaHOaQLaQJaHbaGXaOFaHbaGXaQKaGYaGXaQMaGYaGXaQOaQNaQPaOGaQQaOGaQSaQRaQUaQTaQVaQYaQWaMqaMraMrafOafOaMraMraMraMraabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQXaRbaOQaRbaQZaQZaQZaRaaQZaQZaQZaRdaRcaReaReaReaReaRfaGnaHSaGnaRhaRgaRiaHSaRjaPcaLsaGnaGnaGnaGnaGnaGnaPcaGnaHSaRiaLkaHSaHSaHSaRkaRmaRlaRnaRnaRnaRnaRoaRnaRnaRpaRqaRlaRsaRraRraRraRraRraRraRraRtaRwaRwaRwaRwaRxaRwaRwaLDaRwaRwaRxaRwaRwaRwaRwaRzaLFaLKaLGaLLaLPaRDaLMaLWaLOaLXaOpaRJaRKaRLaOpaMVaRMaRNaRNaRGaMWaOqaRPaRQaRQaRIaLYaLZaOzaKQaKQaKQaKQaKQaOAaRVaRRaODaaaaaaaGXaGYaGYaGYaGYaGYaGYaQPaOGaOGaOGaOGaOGaOGaOGaKSaGYaGYaGYaGYaMnaGYaGYaMkaGYaRTaRSaRXaRWaRYaOLaOLaOLaRZaMqaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaaSdaSdaSbaSfaScaSgaSiaSjaShaSkaSjaSmaSlaSjaSjaSnaGnaHSaGnaSoaHSaHSaSpaSqaGnaNIaKgaHSaHSaHSaHSaHSaHSaPcaSsaHSaGnaNxaNxaGnaSraMAaSuaSwaSvaSvaSvaSxaSvaSvaSvaSyaSuaSzaSAaSAaSAaSAaSAaSAaSAaPiaRwaSBaSCaSEaSDaMdaMcaMDaMBaMEaSJaSLaSCaSMaRwaSNaFFaSOaEjaMFaLPaSRaMGaSTaSSaMHaSUaSXaSWaSWaMIaMJaSZaSYaTaaTaaTbaTeaTcaMVaMVaTdaKBaThaTfaKQaKQaKQaKQaKQaTfaKOaKOaKOaGXaGXaGXaHbaMzaMzaIEaGXaGXaMkaMzaGXaTgaMzaGXaIEaGXaMkaQIaMzaGXaIEaGXaGYaQIaMkaGYaTiaMqaTjaQRaTlaTkaTmaQRaTnaMqaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaMsaSdaRUaSdaToaSfaSfaTpaSdaRUaSdaTqaTraTsaTtaGnaHSaPcaPcaGnaGnaGnaTuaTuaTuaIfaTuaTuaTuaTuaTuaHSaGnaGnaGnaGnaGnaGnaGnaSraKbaStaaaaabaaaaabaaaaabaaaaabaaaaSuaSzaSAaTwaTvaTyaTxaTAaSAaPiaRwaTzaTzaTCaTBaTEaTDaTFaTDaMKaTGaTIaTzaTzaRwaSNaFFaTJaEjaMFaLPaOnaKpaLNaLPaMNaMLaMUaMTaMYaMXaNaaMZaNdaNcaNdaNeaNSaNRaNUaNTaNXaNVaKOaTfaKQaKQaKQaKQaKQaTfaGXaLcaGYaTXaUaaMzaGXaMzaLcaGYaGXaLcaMkaGXaTZaGYaGXaUbaGYaMzaUdaUcaGXaUeaGYaMzaIEaIEaMkaIEaUfaMqaUgaQRaUiaUhaUiaQRaUjaMqaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaMsaSdaRUaSdaToaSfaSfaTpaSdaRUaSdaTqaTraTsaTtaGnaHSaPcaPcaGnaGnaGnaTuaTuaTuaIfaTuaTuaTuaTuaTuaHSaGnaGnaGnaGnaGnaGnaGnaSraKbaStaaaaabaaaaabaaaaabaaaaabaaaaSuaSzaSAaTwaTvaTyaTxaTAaSAaPiaRwaTzaTzaTCaTBaTEaTDaTFaTDaMKaTGaTIaTzaTzaRwatcaFFaTJaEjaMFaLPaOnaKpaLNaLPaMNaMLaMUaMTaMYaMXaNaaMZaNdaNcaNdaNeaNSaNRaNUaNTaNXaNVaKOaTfaKQaKQaKQaKQaKQaTfaGXaLcaGYaTXaUaaMzaGXaMzaLcaGYaGXaLcaMkaGXaTZaGYaGXaUbaGYaMzaUdaUcaGXaUeaGYaMzaIEaIEaMkaIEaUfaMqaUgaQRaUiaUhaUiaQRaUjaMqaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaLdaLdaSdaOQaSdaUkaUoaUmaUlaSdaOQaSdaSdaLdaUnaUpaGnaHSaHSaHSaHSaHSaHSaTuaUuaUvaUqaUxaUsaUzaUuaTuaUwaUAaUyaUyaUyaUyaUyaUyaUBaNxaStaabaUEaUEaUEaUEaUEaUEaUEaabaSuaSzaSAaUFaUCaUHaUDaUFaSAaPiaRwaUJaUJaUJaUGaULaSCaUIaSCaULaUKaUJaUJaUJaRwaSNaFFaUMaEjaMFaLPaOjaKpaLNaLPaNYaUNaUQaUQaUQaUQaUQaUQaUQaNZaUQaUSaUSaUSaUSaUSaOaaGXaKOaTfaKQaKQaKQaKQaKQaTfaGXaGXaGYaURaUaaMzaUTaGXaGYaGYaGXaGYaMkaMzaGYaGYaGXaGYaGYaMzaMkaGVaGXaGYaGYaMzaUWaGYaMkaGYaUUaUYaUYaMqaMqaMqaMqaMqaMqaMqaMraMraMraMraMraabaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSdaRUaSdaSdaSdaSdaSdaSdaRUaSdaUZaLdaUVaUXaVcaVcaVcaVcaVcaVcaVaaTuaUuaVeaUqaVfaVeaVeaUuaTuaVgaVbaViaViaViaViaViaViaViaViaVjaaaaUEaVkaVdaVmaVlaVnaUEaaaaSuaSzaSAaVpaVoaVraVqaUFaSAaPiaRwaVsaVsaTCaVtaVuaTDaTFaTDaVuaVvaVwaTzaTzaRwaSNaFFaSOaEjaObaLPaOdaOcaLNaLPaOeaUNaUQaVzaVAaVCaVCaUQaVBaOfaVDaUSaVGaVFaVHaUSaOgaGXaaaaVKaVLaVLaVLaVLaVLaVMaaaaGXaGYaVNaVJaMzaMzaGXaGXaMzaMzaVOaVPaMzaGXaHPaGXaGXaMzaMzaVRaVQaGXaGXaGXaQLaUWaGYaMkaGYaUUaHOaHbaOFaYPbcDaVhbcDaYPaYPaYPaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVVaVSaVXaVSaVSaVYaVZaVSaVSaVXaWaaVWaLdaToaWbaVcaWdaWcaWfaWeaWhaWgaTuaUuaVeaUqaWjaVeaVeaUuaTuaWkaWlaWiaWnaWmaWoaWqaWraWpaWtaVjaabaUEaWuaWsaWwaWvaWxaUEaabaSuaSzaSAaWzaWAaWyaWCaWBaSAaPiaRwaSBaSCaWEaWDaULaSCaWFaSCaULaWGaSLaSCaSMaRwaSNaFFaWJaEjaMFaLPaISaOhaLNaLPaOiaWHaUQaWKaVEaVEaVEaWLaOlaOkaOmaUSaWQaWPaOxaOtaPgaHPaaaaaaaaaaaaaaaaaaaaaaaaaaaaGXaWVaWUaWXaWWaWYaGXaNhaGYaQIaMkaGYaGXaaaaGXaGYaGYaGYaGYaMkaXbaXaaWZaWZaWZaWZaXcaXeaXdaXhaXiaXfaXiaXgaVTaVTaVUaXkaXjaXlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/code/controllers/Processes/shuttles.dm b/code/controllers/Processes/shuttles.dm index 21f2e8c390e..4f47bda014c 100644 --- a/code/controllers/Processes/shuttles.dm +++ b/code/controllers/Processes/shuttles.dm @@ -25,7 +25,7 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12 var/points_per_crate = 5 //points gained per crate returned var/points_per_intel = 250 //points gained per intel returned var/points_per_plasma = 5 //points gained per plasma returned - var/points_per_design = 25 //points gained per max reliability research design returned (only for initilally unreliable designs) + var/points_per_design = 25 //points gained per research design returned var/centcom_message = "" //Remarks from Centcom on how well you checked the last order. var/list/discoveredPlants = list() //Typepaths for unusual plants we've already sent CentComm, associated with their potencies var/list/techLevels = list() diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index 10f6c242d34..dbe111b6dbe 100644 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -250,6 +250,17 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine cost = 10 containername = "disabler crate" +/datum/supply_packs/security/forensics + name = "Forensics Crate" + contains = list(/obj/item/device/detective_scanner, + /obj/item/weapon/storage/box/evidence, + /obj/item/device/camera, + /obj/item/device/taperecorder, + /obj/item/toy/crayon/white, + /obj/item/clothing/head/det_hat) + cost = 20 + containername = "forensics crate" + ///// Armory stuff /datum/supply_packs/security/armory @@ -895,6 +906,13 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine containername = "tank transfer valves crate" access = access_rd +/datum/supply_packs/science/prototype + name = "Machine Prototype Crate" + contains = list(/obj/item/device/machineprototype) + cost = 80 + containertype = /obj/structure/closet/crate/secure/scisec + containername = "machine prototype crate" + access = access_research ////////////////////////////////////////////////////////////////////////////// //////////////////////////// Organic ///////////////////////////////////////// diff --git a/code/game/gamemodes/changeling/powers/augmented_eyesight.dm b/code/game/gamemodes/changeling/powers/augmented_eyesight.dm index a9899b33462..bf16d90d55e 100644 --- a/code/game/gamemodes/changeling/powers/augmented_eyesight.dm +++ b/code/game/gamemodes/changeling/powers/augmented_eyesight.dm @@ -38,7 +38,6 @@ icon_state = "ling_eyeshield" eye_colour = null implant_overlay = null - origin_tech = "biotech=4" slot = "eye_ling" status = 0 aug_message = "We feel a minute twitch in our eyes, our eyes feel more durable." @@ -61,7 +60,6 @@ icon_state = "ling_thermal" eye_colour = null implant_overlay = null - origin_tech = "biotech=5;magnets=5" slot = "eye_ling" status = 0 aug_message = "We feel a minute twitch in our eyes, and darkness creeps away." @@ -82,4 +80,4 @@ var/mob/living/carbon/human/H = owner H.weakeyes = 0 H.vision_type = null - ..() \ No newline at end of file + ..() diff --git a/code/game/gamemodes/miniantags/abduction/gland.dm b/code/game/gamemodes/miniantags/abduction/gland.dm index 1c481e7c333..e58665c514e 100644 --- a/code/game/gamemodes/miniantags/abduction/gland.dm +++ b/code/game/gamemodes/miniantags/abduction/gland.dm @@ -113,7 +113,7 @@ owner.set_species(species) /obj/item/organ/internal/heart/gland/ventcrawling - origin_tech = "materials=4;biotech=5;bluespace=3;abductor=3" + origin_tech = "materials=4;biotech=5;bluespace=4;abductor=3" cooldown_low = 1800 cooldown_high = 2400 uses = 1 diff --git a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm index c6ea23c4bbc..680cb183e86 100644 --- a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm +++ b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm @@ -4,6 +4,7 @@ desc = "A currently unactivated swarmer. Swarmers can self activate at any time, it would be wise to immediately dispose of this." icon = 'icons/mob/swarmer.dmi' icon_state = "swarmer_unactivated" + origin_tech = "bluespace=4;materials=4;programming=7" /obj/item/unactivated_swarmer/New() notify_ghosts("An unactivated swarmer has been created in [get_area(src)]!", enter_link = "(Click to enter)", source = src, action = NOTIFY_ATTACK) diff --git a/code/game/gamemodes/miniantags/slaughter/slaughter.dm b/code/game/gamemodes/miniantags/slaughter/slaughter.dm index 62c3a9a00b0..19411dee6de 100644 --- a/code/game/gamemodes/miniantags/slaughter/slaughter.dm +++ b/code/game/gamemodes/miniantags/slaughter/slaughter.dm @@ -230,7 +230,7 @@ desc = "Still it beats furiously, emanating an aura of utter hate." icon = 'icons/obj/surgery.dmi' icon_state = "demon_heart" - origin_tech = "combat=5;biotech=8" + origin_tech = "combat=5;biotech=7" /obj/item/organ/internal/heart/demon/update_icon() return //always beating visually diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index e60b564f5d0..6cb2f8d6db6 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -11,7 +11,7 @@ name = "traitor" config_tag = "traitor" restricted_jobs = list("Cyborg")//They are part of the AI if he is traitor so are they, they use to get double chances - protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Internal Affairs Agent", "Captain", "Blueshield", "Nanotrasen Representative", "Security Pod Pilot", "Magistrate", "Internal Affairs Agent", "Brig Physician", "Nanotrasen Navy Officer", "Special Operations Officer") + protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Security Pod Pilot", "Magistrate", "Internal Affairs Agent", "Brig Physician", "Nanotrasen Navy Officer", "Special Operations Officer") required_players = 0 required_enemies = 1 recommended_enemies = 4 diff --git a/code/game/gamemodes/wizard/soulstone.dm b/code/game/gamemodes/wizard/soulstone.dm index cc3c1a131e9..3e396ae14a8 100644 --- a/code/game/gamemodes/wizard/soulstone.dm +++ b/code/game/gamemodes/wizard/soulstone.dm @@ -6,7 +6,7 @@ desc = "A fragment of the legendary treasure known simply as the 'Soul Stone'. The shard still flickers with a fraction of the full artifact's power." w_class = WEIGHT_CLASS_TINY slot_flags = SLOT_BELT - origin_tech = "bluespace=4;materials=4" + origin_tech = "bluespace=4;materials=5" var/imprinted = "empty" var/usability = TRUE // Can this soul stone be used by anyone, or only cultists/wizards? diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm index 433b2adfb27..82238f732b9 100644 --- a/code/game/jobs/job_controller.dm +++ b/code/game/jobs/job_controller.dm @@ -580,7 +580,7 @@ var/global/datum/controller/occupations/job_master H.mind.store_memory(remembered_info) // If they're head, give them the account info for their department - if(job.head_position) + if(job && job.head_position) remembered_info = "" var/datum/money_account/department_account = department_accounts[job.department] diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index 02a815c096f..b7c7961e5de 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -1072,5 +1072,6 @@ Just an object used in constructing air alarms desc = "Looks like a circuit. Probably is." w_class = WEIGHT_CLASS_SMALL materials = list(MAT_METAL=50, MAT_GLASS=50) + origin_tech = "engineering=2;programming=1" toolspeed = 1 usesound = 'sound/items/Deconstruct.ogg' diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index e5c9d1a0804..721372b56f5 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -332,7 +332,7 @@ while((progress / milestone) > INSTALLED && LAZYLEN(missing_organs)) var/obj/item/organ/I = pick_n_take(missing_organs) - I.replaced(occupant) + I.safe_replace(occupant) #undef INSTALLED @@ -377,7 +377,7 @@ return else connected_message("Authorized Ejection") - announce_radio_message("An authorized ejection of [occupant.real_name] has occured") + announce_radio_message("An authorized ejection of [(occupant) ? occupant.real_name : "the malfunctioning pod"] has occured") to_chat(user, "You force an emergency ejection.") go_out() diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm index 22355ed4fbc..d72c1792932 100644 --- a/code/game/machinery/computer/buildandrepair.dm +++ b/code/game/machinery/computer/buildandrepair.dm @@ -41,30 +41,31 @@ /obj/item/weapon/circuitboard/message_monitor name = "Circuit board (Message Monitor)" build_path = /obj/machinery/computer/message_monitor - origin_tech = "programming=3" + origin_tech = "programming=2" /obj/item/weapon/circuitboard/camera name = "Circuit board (Camera Monitor)" build_path = /obj/machinery/computer/security - origin_tech = "programming=2" + origin_tech = "programming=2;combat=2" /obj/item/weapon/circuitboard/xenobiology name = "Circuit board (Xenobiology Console)" build_path = /obj/machinery/computer/camera_advanced/xenobio origin_tech = "programming=3;biotech=3" /obj/item/weapon/circuitboard/aicore name = "Circuit board (AI Core)" - origin_tech = "programming=4;biotech=2" + origin_tech = "programming=3" board_type = "other" /obj/item/weapon/circuitboard/aiupload name = "Circuit board (AI Upload)" build_path = /obj/machinery/computer/aiupload - origin_tech = "programming=4" + origin_tech = "programming=4;engineering=4" /obj/item/weapon/circuitboard/borgupload name = "Circuit board (Cyborg Upload)" build_path = /obj/machinery/computer/borgupload - origin_tech = "programming=4" + origin_tech = "programming=4;engineering=4" /obj/item/weapon/circuitboard/med_data name = "Circuit board (Medical Records)" build_path = /obj/machinery/computer/med_data + origin_tech = "programming=2;biotech=2" /obj/item/weapon/circuitboard/pandemic name = "circuit board (PanD.E.M.I.C. 2200)" build_path = /obj/machinery/computer/pandemic @@ -76,10 +77,11 @@ /obj/item/weapon/circuitboard/communications name = "Circuit board (Communications Console)" build_path = /obj/machinery/computer/communications - origin_tech = "programming=2;magnets=2" + origin_tech = "programming=3;magnets=3" /obj/item/weapon/circuitboard/card name = "Circuit board (ID Computer)" build_path = /obj/machinery/computer/card + origin_tech = "programming=3" /obj/item/weapon/circuitboard/card/minor name = "Circuit board (Dept ID Computer)" build_path = /obj/machinery/computer/card/minor @@ -106,10 +108,11 @@ /obj/item/weapon/circuitboard/teleporter name = "Circuit board (Teleporter Console)" build_path = /obj/machinery/computer/teleporter - origin_tech = "programming=2;bluespace=2" + origin_tech = "programming=3;bluespace=3;plasmatech=3" /obj/item/weapon/circuitboard/secure_data name = "Circuit board (Security Records)" build_path = /obj/machinery/computer/secure_data + origin_tech = "programming=2;combat=2" /obj/item/weapon/circuitboard/skills name = "Circuit board (Employment Records)" build_path = /obj/machinery/computer/skills @@ -151,7 +154,7 @@ /obj/item/weapon/circuitboard/cloning name = "Circuit board (Cloning Machine Console)" build_path = /obj/machinery/computer/cloning - origin_tech = "programming=3;biotech=3" + origin_tech = "programming=2;biotech=2" /obj/item/weapon/circuitboard/arcade/battle name = "circuit board (Arcade Battle)" build_path = /obj/machinery/computer/arcade/battle @@ -159,7 +162,7 @@ /obj/item/weapon/circuitboard/arcade/orion_trail name = "circuit board (Orion Trail)" build_path = /obj/machinery/computer/arcade/orion_trail - origin_tech = "programming=2" + origin_tech = "programming=1" /obj/item/weapon/circuitboard/solar_control name = "Circuit board (Solar Control)" build_path = /obj/machinery/power/solar_control @@ -167,6 +170,7 @@ /obj/item/weapon/circuitboard/powermonitor name = "Circuit board (Power Monitor)" build_path = /obj/machinery/computer/monitor + origin_tech = "programming=2;powerstorage=2" /obj/item/weapon/circuitboard/olddoor name = "Circuit board (DoorMex)" build_path = /obj/machinery/computer/pod/old @@ -219,15 +223,15 @@ /obj/item/weapon/circuitboard/crew name = "Circuit board (Crew Monitoring Computer)" build_path = /obj/machinery/computer/crew - origin_tech = "programming=3;biotech=2;magnets=2" + origin_tech = "programming=2;biotech=2" /obj/item/weapon/circuitboard/mech_bay_power_console name = "Circuit board (Mech Bay Power Control Console)" build_path = /obj/machinery/computer/mech_bay_power_console - origin_tech = "programming=2;powerstorage=3" + origin_tech = "programming=3;powerstorage=3" /obj/item/weapon/circuitboard/ordercomp name = "Circuit board (Supply Ordering Console)" build_path = /obj/machinery/computer/ordercomp - origin_tech = "programming=2" + origin_tech = "programming=3" /obj/item/weapon/circuitboard/supplycomp name = "Circuit board (Supply Shuttle Console)" build_path = /obj/machinery/computer/supplycomp @@ -237,19 +241,19 @@ /obj/item/weapon/circuitboard/operating name = "Circuit board (Operating Computer)" build_path = /obj/machinery/computer/operating - origin_tech = "programming=2;biotech=2" + origin_tech = "programming=2;biotech=3" /obj/item/weapon/circuitboard/comm_monitor name = "Circuit board (Telecommunications Monitor)" build_path = /obj/machinery/computer/telecomms/monitor - origin_tech = "programming=3" + origin_tech = "programming=3;magnets=3;bluespace=2" /obj/item/weapon/circuitboard/comm_server name = "Circuit board (Telecommunications Server Monitor)" build_path = /obj/machinery/computer/telecomms/server - origin_tech = "programming=3" + origin_tech = "programming=3;magnets=3;bluespace=2" /obj/item/weapon/circuitboard/comm_traffic name = "Circuitboard (Telecommunications Traffic Control)" build_path = /obj/machinery/computer/telecomms/traffic - origin_tech = "programming=3" + origin_tech = "programming=3;magnets=3;bluespace=2" /obj/item/weapon/circuitboard/shuttle @@ -285,7 +289,7 @@ /obj/item/weapon/circuitboard/aifixer name = "Circuit board (AI Integrity Restorer)" build_path = /obj/machinery/computer/aifixer - origin_tech = "programming=3;biotech=2" + origin_tech = "programming=2;biotech=2" /obj/item/weapon/circuitboard/area_atmos name = "Circuit board (Area Air Control)" build_path = /obj/machinery/computer/area_atmos @@ -293,7 +297,7 @@ /obj/item/weapon/circuitboard/telesci_console name = "Circuit board (Telepad Control Console)" build_path = /obj/machinery/computer/telescience - origin_tech = "programming=3;bluespace=2" + origin_tech = "programming=3;bluespace=3;plasmatech=4" /obj/item/weapon/circuitboard/atmos_automation name = "Circuit board (Atmospherics Automation)" @@ -301,6 +305,7 @@ /obj/item/weapon/circuitboard/large_tank_control name = "Circuit board (Atmospheric Tank Control)" build_path = /obj/machinery/computer/general_air_control/large_tank_control + origin_tech = "programming=2;engineering=3;materials=2" /obj/item/weapon/circuitboard/turbine_computer name = "circuit board (Turbine Computer)" @@ -310,7 +315,7 @@ /obj/item/weapon/circuitboard/HONKputer name = "Circuit board (HONKputer)" build_path = /obj/machinery/computer/HONKputer - origin_tech = "programming=4" + origin_tech = "programming=2" icon = 'icons/obj/machines/HONKputer.dmi' icon_state = "bananium_board" board_type = "honkcomputer" diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index a714e24febc..24f5c88695c 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -57,10 +57,7 @@ else desc += "." -/obj/machinery/constructable_frame/machine_frame/attackby(obj/item/P as obj, mob/user as mob, params) - if(P.crit_fail) - to_chat(user, "This part is faulty, you cannot add this to the machine!") - return +/obj/machinery/constructable_frame/machine_frame/attackby(obj/item/P, mob/user, params) switch(state) if(1) if(istype(P, /obj/item/stack/cable_coil)) @@ -171,11 +168,10 @@ for(var/path in req_components) while(req_components[path] > 0 && (locate(path) in part_list)) var/obj/item/part = (locate(path) in part_list) - if(!part.crit_fail) - added_components[part] = path - replacer.remove_from_storage(part, src) - req_components[path]-- - part_list -= part + added_components[part] = path + replacer.remove_from_storage(part, src) + req_components[path]-- + part_list -= part for(var/obj/item/weapon/stock_parts/part in added_components) components += part @@ -265,7 +261,7 @@ to destroy them and players will be able to make replacements. name = "circuit board (SMES)" build_path = /obj/machinery/power/smes board_type = "machine" - origin_tech = "programming=4;powerstorage=5;engineering=5" + origin_tech = "programming=3;powerstorage=3;engineering=3" frame_desc = "Requires 5 pieces of cable, 5 Power Cells and 1 Capacitor." req_components = list( /obj/item/stack/cable_coil = 5, @@ -276,7 +272,7 @@ to destroy them and players will be able to make replacements. name = "circuit board (Emitter)" build_path = /obj/machinery/power/emitter board_type = "machine" - origin_tech = "programming=4;powerstorage=5;engineering=5" + origin_tech = "programming=3;powerstorage=4;engineering=4" req_components = list( /obj/item/weapon/stock_parts/micro_laser = 1, /obj/item/weapon/stock_parts/manipulator = 1) @@ -285,7 +281,7 @@ to destroy them and players will be able to make replacements. name = "circuit board (Power Compressor)" build_path = /obj/machinery/power/compressor board_type = "machine" - origin_tech = "programming=4;powerstorage=5;engineering=4" + origin_tech = "programming=4;powerstorage=4;engineering=4" req_components = list( /obj/item/stack/cable_coil = 5, /obj/item/weapon/stock_parts/manipulator = 6) @@ -294,7 +290,7 @@ to destroy them and players will be able to make replacements. name = "circuit board (Power Turbine)" build_path = /obj/machinery/power/turbine board_type = "machine" - origin_tech = "programming=4;powerstorage=4;engineering=5" + origin_tech = "programming=4;powerstorage=4;engineering=4" req_components = list( /obj/item/stack/cable_coil = 5, /obj/item/weapon/stock_parts/capacitor = 6) @@ -327,7 +323,7 @@ to destroy them and players will be able to make replacements. name = "circuit board (Biogenerator)" build_path = /obj/machinery/biogenerator board_type = "machine" - origin_tech = "programming=3;biotech=2;materials=3" + origin_tech = "programming=2;biotech=3;materials=3" frame_desc = "Requires 1 Matter Bin, 1 Manipulator, 1 piece of cable and 1 Console Screen." req_components = list( /obj/item/weapon/stock_parts/matter_bin = 1, @@ -361,7 +357,7 @@ to destroy them and players will be able to make replacements. name = "circuit board (Hydroponics Tray)" build_path = /obj/machinery/hydroponics/constructable board_type = "machine" - origin_tech = "programming=1;biotech=1" + origin_tech = "programming=1;biotech=2" frame_desc = "Requires 2 Matter Bins, 1 Manipulator, and 1 Console Screen." req_components = list( /obj/item/weapon/stock_parts/matter_bin = 2, @@ -372,7 +368,7 @@ to destroy them and players will be able to make replacements. name = "circuit board (Microwave)" build_path = /obj/machinery/kitchen_machine/microwave board_type = "machine" - origin_tech = "programming=1" + origin_tech = "programming=2;magnets=2" frame_desc = "Requires 1 Micro Laser, 2 pieces of cable and 1 Console Screen." req_components = list( /obj/item/weapon/stock_parts/micro_laser = 1, @@ -383,7 +379,7 @@ to destroy them and players will be able to make replacements. name = "circuit board (Oven)" build_path = /obj/machinery/kitchen_machine/oven board_type = "machine" - origin_tech = "programming=1;plasmatech=1" + origin_tech = "programming=2;magnets=2" frame_desc = "Requires 2 Micro Lasers, 5 pieces of cable and 1 Console Screen." req_components = list( /obj/item/weapon/stock_parts/micro_laser = 2, @@ -394,7 +390,7 @@ to destroy them and players will be able to make replacements. name = "circuit board (Grill)" build_path = /obj/machinery/kitchen_machine/grill board_type = "machine" - origin_tech = "programming=1;plasmatech=1" + origin_tech = "programming=2;magnets=2" frame_desc = "Requires 2 Micro Lasers, 5 pieces of cable and 1 Console Screen." req_components = list( /obj/item/weapon/stock_parts/micro_laser = 2, @@ -405,7 +401,7 @@ to destroy them and players will be able to make replacements. name = "circuit board (Candy Maker)" build_path = /obj/machinery/kitchen_machine/candy_maker board_type = "machine" - origin_tech = "programming=2" + origin_tech = "programming=2;magnets=2" frame_desc = "Requires 1 Manipulator, 5 pieces of cable and 1 Console Screen." req_components = list( /obj/item/weapon/stock_parts/manipulator = 1, @@ -416,7 +412,7 @@ to destroy them and players will be able to make replacements. name = "circuit board (Deep Fryer)" build_path = /obj/machinery/cooker/deepfryer board_type = "machine" - origin_tech = "programming=2" + origin_tech = "programming=1" frame_desc = "Requires 2 Micro Lasers and 5 pieces of cable." req_components = list( /obj/item/weapon/stock_parts/micro_laser = 2, @@ -426,7 +422,7 @@ to destroy them and players will be able to make replacements. name = "circuit board (Gibber)" build_path = /obj/machinery/gibber board_type = "machine" - origin_tech = "programming=1" + origin_tech = "programming=2;engineering=2" req_components = list( /obj/item/weapon/stock_parts/matter_bin = 1, /obj/item/weapon/stock_parts/manipulator = 1) @@ -435,7 +431,7 @@ to destroy them and players will be able to make replacements. name = "circuit board (Tesla Coil)" build_path = /obj/machinery/power/tesla_coil board_type = "machine" - origin_tech = "programming=1" + origin_tech = "programming=3;magnets=3;powerstorage=3" req_components = list( /obj/item/weapon/stock_parts/capacitor = 1) @@ -443,7 +439,7 @@ to destroy them and players will be able to make replacements. name = "circuit board (Grounding Rod)" build_path = /obj/machinery/power/grounding_rod board_type = "machine" - origin_tech = "programming=1" + origin_tech = "programming=3;powerstorage=3;magnets=3;plasmatech=2" req_components = list( /obj/item/weapon/stock_parts/capacitor = 1) @@ -460,16 +456,7 @@ to destroy them and players will be able to make replacements. name = "circuit board (Recycler)" build_path = /obj/machinery/recycler board_type = "machine" - origin_tech = "programming=1" - req_components = list( - /obj/item/weapon/stock_parts/matter_bin = 1, - /obj/item/weapon/stock_parts/manipulator = 1) - -/obj/item/weapon/circuitboard/seed_extractor - name = "circuit board (Seed Extractor)" - build_path = /obj/machinery/seed_extractor - board_type = "machine" - origin_tech = "programming=1" + origin_tech = "programming=2;engineering=2" req_components = list( /obj/item/weapon/stock_parts/matter_bin = 1, /obj/item/weapon/stock_parts/manipulator = 1) @@ -519,7 +506,7 @@ to destroy them and players will be able to make replacements. name = "circuit board (Monkey Recycler)" build_path = /obj/machinery/monkey_recycler board_type = "machine" - origin_tech = "programming=1" + origin_tech = "programming=1;biotech=2" req_components = list( /obj/item/weapon/stock_parts/matter_bin = 1, /obj/item/weapon/stock_parts/manipulator = 1) @@ -536,7 +523,7 @@ to destroy them and players will be able to make replacements. name = "circuit board (Portable Chem Dispenser)" build_path = /obj/machinery/chem_dispenser/constructable board_type = "machine" - origin_tech = "materials=4;engineering=4;programming=4;plasmatech=3;biotech=3" + origin_tech = "materials=4;programming=4;plasmatech=4;biotech=3" frame_desc = "Requires 2 Matter Bins, 1 Capacitor, 1 Manipulator, 1 Console Screen, and 1 Power Cell." req_components = list( /obj/item/weapon/stock_parts/matter_bin = 2, @@ -549,7 +536,7 @@ to destroy them and players will be able to make replacements. name = "circuit board (Chem Master 2999)" build_path = /obj/machinery/chem_master/constructable board_type = "machine" - origin_tech = "materials=2;programming=2;biotech=1" + origin_tech = "materials=3;programming=2;biotech=3" req_components = list( /obj/item/weapon/reagent_containers/glass/beaker = 2, /obj/item/weapon/stock_parts/manipulator = 1, @@ -559,7 +546,7 @@ to destroy them and players will be able to make replacements. name = "circuit board (Chemical Heater)" build_path = /obj/machinery/chem_heater board_type = "machine" - origin_tech = "materials=2;engineering=2" + origin_tech = "programming=2;engineering=2;biotech=2" frame_desc = "Requires 1 Micro Laser and 1 Console Screen." req_components = list( /obj/item/weapon/stock_parts/micro_laser = 1, @@ -625,7 +612,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 = "programming=3:powerstorage=3;plasmatech=3;engineering=3" + origin_tech = "programming=2;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, @@ -641,7 +628,7 @@ to destroy them and players will be able to make replacements. /obj/item/weapon/circuitboard/pacman/mrs name = "Circuit Board (MRSPACMAN-type Generator)" build_path = /obj/machinery/power/port_gen/pacman/mrs - origin_tech = "programming=3;powerstorage=5;engineering=5" + origin_tech = "programming=3;powerstorage=4;engineering=4;plasmatech=4" obj/item/weapon/circuitboard/rdserver name = "Circuit Board (R&D Server)" @@ -657,7 +644,7 @@ obj/item/weapon/circuitboard/rdserver name = "Circuit board (Exosuit Fabricator)" build_path = /obj/machinery/mecha_part_fabricator board_type = "machine" - origin_tech = "programming=3;engineering=3" + origin_tech = "programming=2;engineering=2" 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, @@ -669,7 +656,7 @@ obj/item/weapon/circuitboard/rdserver name = "Circuit board (Spacepod Fabricator)" build_path = /obj/machinery/spod_part_fabricator //ah fuck my life board_type = "machine" - origin_tech = "programming=3;engineering=3" + origin_tech = "programming=2;engineering=2" frame_desc = "Requires 3 Matter Bins, 2 Manipulators, 2 Micro-Lasers, and 1 Console Screen." req_components = list( /obj/item/weapon/stock_parts/matter_bin = 3, @@ -682,7 +669,7 @@ obj/item/weapon/circuitboard/rdserver name = "Circuit board (Clone Pod)" build_path = /obj/machinery/clonepod board_type = "machine" - origin_tech = "programming=3;biotech=3" + origin_tech = "programming=2;biotech=2" frame_desc = "Requires 2 Manipulator, 2 Scanning Module, 2 pieces of cable and 1 Console Screen." req_components = list( /obj/item/stack/cable_coil = 2, @@ -707,7 +694,7 @@ obj/item/weapon/circuitboard/rdserver name = "circuit board (Mech Bay Recharger)" build_path = /obj/machinery/mech_bay_recharge_port board_type = "machine" - origin_tech = "programming=3;powerstorage=4;engineering=4" + origin_tech = "programming=3;powerstorage=3;engineering=3" frame_desc = "Requires 1 piece of cable and 5 Capacitors." req_components = list( /obj/item/stack/cable_coil = 1, @@ -717,7 +704,7 @@ obj/item/weapon/circuitboard/rdserver name = "circuit board (Teleporter Hub)" build_path = /obj/machinery/teleport/hub board_type = "machine" - origin_tech = "programming=3;engineering=5;bluespace=5;materials=4" + origin_tech = "programming=3;engineering=4;bluespace=4;materials=4" frame_desc = "Requires 3 Bluespace Crystals and 1 Matter Bin." req_components = list( /obj/item/weapon/ore/bluespace_crystal = 3, @@ -727,7 +714,7 @@ obj/item/weapon/circuitboard/rdserver name = "circuit board (Teleporter Station)" build_path = /obj/machinery/teleport/station board_type = "machine" - origin_tech = "programming=4;engineering=4;bluespace=4" + origin_tech = "programming=4;engineering=4;bluespace=4;plasmatech=3" frame_desc = "Requires 2 Bluespace Crystals, 2 Capacitors and 1 Console Screen." req_components = list( /obj/item/weapon/ore/bluespace_crystal = 2, @@ -738,7 +725,7 @@ obj/item/weapon/circuitboard/rdserver name = "circuit board (Permanent Teleporter)" build_path = /obj/machinery/teleport/perma board_type = "machine" - origin_tech = "programming=3;engineering=5;bluespace=5;materials=4" + origin_tech = "programming=3;engineering=4;bluespace=4;materials=4" frame_desc = "Requires 3 Bluespace Crystals and 1 Matter Bin." req_components = list( /obj/item/weapon/ore/bluespace_crystal = 3, @@ -749,7 +736,7 @@ obj/item/weapon/circuitboard/rdserver name = "Circuit board (Telepad)" build_path = /obj/machinery/telepad board_type = "machine" - origin_tech = "programming=4;engineering=3;materials=3;bluespace=4" + origin_tech = "programming=4;engineering=3;plasmatech=4;bluespace=4" frame_desc = "Requires 2 Bluespace Crystals, 1 Capacitor, 1 piece of cable and 1 Console Screen." req_components = list( /obj/item/weapon/ore/bluespace_crystal = 2, @@ -773,7 +760,7 @@ obj/item/weapon/circuitboard/rdserver name = "circuit board (Sleeper)" build_path = /obj/machinery/sleeper board_type = "machine" - origin_tech = "programming=3;biotech=2;engineering=3;materials=3" + origin_tech = "programming=3;biotech=2;engineering=3" frame_desc = "Requires 1 Matter Bin, 1 Manipulator, 1 piece of cable and 2 Console Screens." req_components = list( /obj/item/weapon/stock_parts/matter_bin = 1, @@ -794,7 +781,7 @@ obj/item/weapon/circuitboard/rdserver name = "circuit board (Body Scanner)" build_path = /obj/machinery/bodyscanner board_type = "machine" - origin_tech = "programming=3;biotech=2;engineering=3;materials=3" + origin_tech = "programming=3;biotech=2;engineering=3" frame_desc = "Requires 1 Scanning Module, 2 pieces of cable and 2 Console Screens." req_components = list( /obj/item/weapon/stock_parts/scanning_module = 1, @@ -805,7 +792,7 @@ obj/item/weapon/circuitboard/rdserver name = "circuit board (Body Scanner Console)" build_path = /obj/machinery/body_scanconsole board_type = "machine" - origin_tech = "programming=3;biotech=2;engineering=3;materials=3" + origin_tech = "programming=3;biotech=2;engineering=3" frame_desc = "Requires 2 pieces of cable and 2 Console Screens." req_components = list( /obj/item/stack/cable_coil = 2, @@ -815,7 +802,7 @@ obj/item/weapon/circuitboard/rdserver name = "circuit board (Cryotube)" build_path = /obj/machinery/atmospherics/unary/cryo_cell board_type = "machine" - origin_tech = "programming=4;biotech=3;engineering=4" + origin_tech = "programming=4;biotech=3;engineering=4;plasmatech=3" frame_desc = "Requires 1 Matter Bin, 1 piece of cable and 4 Console Screens." req_components = list( /obj/item/weapon/stock_parts/matter_bin = 1, @@ -933,7 +920,7 @@ obj/item/weapon/circuitboard/rdserver name = "circuit board (Mining Equipment Vendor)" build_path = /obj/machinery/mineral/equipment_vendor board_type = "machine" - origin_tech = "programming=1;engineering=2" + origin_tech = "programming=1;engineering=3" req_components = list( /obj/item/weapon/stock_parts/console_screen = 1, /obj/item/weapon/stock_parts/matter_bin = 3) @@ -942,7 +929,7 @@ obj/item/weapon/circuitboard/rdserver name = "circuit board (Claw Game)" build_path = /obj/machinery/arcade/claw board_type = "machine" - origin_tech = "programming=2" + origin_tech = "programming=1" req_components = list( /obj/item/weapon/stock_parts/matter_bin = 1, /obj/item/weapon/stock_parts/manipulator = 1, @@ -953,7 +940,7 @@ obj/item/weapon/circuitboard/rdserver name = "circuit board (Prize Counter)" build_path = /obj/machinery/prize_counter board_type = "machine" - origin_tech = "programming=2;materials=2" + origin_tech = "programming=1" req_components = list( /obj/item/weapon/stock_parts/matter_bin = 1, /obj/item/weapon/stock_parts/manipulator = 1, @@ -964,7 +951,7 @@ obj/item/weapon/circuitboard/rdserver name = "circuit board (Virtual Gameboard)" build_path = /obj/machinery/gameboard board_type = "machine" - origin_tech = "programming=2" + origin_tech = "programming=1" req_components = list( /obj/item/weapon/stock_parts/micro_laser = 1, /obj/item/stack/cable_coil = 3, diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index 789d4f81b1c..1e31207b574 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -126,12 +126,12 @@ /obj/item/weapon/circuitboard/cryopodcontrol name = "Circuit board (Cryogenic Oversight Console)" build_path = "/obj/machinery/computer/cryopod" - origin_tech = "programming=3" + origin_tech = "programming=1" /obj/item/weapon/circuitboard/robotstoragecontrol name = "Circuit board (Robotic Storage Console)" build_path = "/obj/machinery/computer/cryopod/robot" - origin_tech = "programming=3" + origin_tech = "programming=1" //Decorative structures to go alongside cryopods. /obj/structure/cryofeed diff --git a/code/game/machinery/doors/airlock_electronics.dm b/code/game/machinery/doors/airlock_electronics.dm index 186d4c9705a..fd18985d9fa 100644 --- a/code/game/machinery/doors/airlock_electronics.dm +++ b/code/game/machinery/doors/airlock_electronics.dm @@ -6,7 +6,7 @@ icon_state = "door_electronics" w_class = WEIGHT_CLASS_SMALL materials = list(MAT_METAL=50, MAT_GLASS=50) - + origin_tech = "engineering=2;programming=1" req_access = list(access_engine) var/list/conf_access = null diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index 477bc4b1e98..7ecf1f17920 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -261,6 +261,7 @@ desc = "A circuit board used in construction of firelocks." w_class = WEIGHT_CLASS_SMALL materials = list(MAT_METAL=50, MAT_GLASS=50) + origin_tech = "engineering=2;programming=1" toolspeed = 1 usesound = 'sound/items/Deconstruct.ogg' diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm index 710dde7ebda..2c48f91b422 100644 --- a/code/game/machinery/firealarm.dm +++ b/code/game/machinery/firealarm.dm @@ -269,6 +269,7 @@ Just a object used in constructing fire alarms desc = "A circuit. It has a label on it, it says \"Can handle heat levels up to 40 degrees celsius!\"" w_class = WEIGHT_CLASS_SMALL materials = list(MAT_METAL=50, MAT_GLASS=50) + origin_tech = "engineering=2;programming=1" toolspeed = 1 usesound = 'sound/items/Deconstruct.ogg' diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index 514b5459973..901ea27a7df 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -404,8 +404,6 @@ Class Procs: on_deconstruction() spawn_frame() for(var/obj/item/I in component_parts) - if(I.reliability != 100 && crit_fail) - I.crit_fail = 1 I.forceMove(loc) qdel(src) diff --git a/code/game/machinery/programmable_unloader.dm b/code/game/machinery/programmable_unloader.dm index c86d745c05a..6b6b1938de9 100644 --- a/code/game/machinery/programmable_unloader.dm +++ b/code/game/machinery/programmable_unloader.dm @@ -551,7 +551,7 @@ name = "Circuit board (Programmable Unloader)" build_path = "/obj/machinery/programmable" board_type = "machine" - origin_tech = "engineering=3;programming=6" + origin_tech = "engineering=1;programming=2" frame_desc = "Requires 2 Manipulators, 1 Scanning Module, 1 Cable." req_components = list( /obj/item/weapon/stock_parts/scanning_module = 1, diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm index 193c311e012..10f6fc1c8c5 100644 --- a/code/game/machinery/syndicatebomb.dm +++ b/code/game/machinery/syndicatebomb.dm @@ -193,7 +193,7 @@ icon_state = "bombcore" item_state = "eshield0" w_class = WEIGHT_CLASS_NORMAL - origin_tech = "syndicate=6;combat=5" + origin_tech = "syndicate=5;combat=6" burn_state = FLAMMABLE //Burnable (but the casing isn't) var/adminlog = null @@ -311,7 +311,7 @@ icon_state = "bigred" item_state = "electronic" w_class = WEIGHT_CLASS_TINY - origin_tech = "syndicate=2" + origin_tech = "syndicate=3" var/cooldown = 0 var/detonated = 0 var/existant = 0 diff --git a/code/game/machinery/telecomms/machine_interactions.dm b/code/game/machinery/telecomms/machine_interactions.dm index db436bfb772..d730ca57529 100644 --- a/code/game/machinery/telecomms/machine_interactions.dm +++ b/code/game/machinery/telecomms/machine_interactions.dm @@ -68,8 +68,6 @@ // Drop all the component stuff if(component_parts) for(var/obj/I in component_parts) - if(I.reliability != 100 && crit_fail) - I.crit_fail = 1 I.loc = src.loc else // If the machine wasn't made during runtime, probably doesn't have components: diff --git a/code/game/mecha/equipment/mecha_equipment.dm b/code/game/mecha/equipment/mecha_equipment.dm index c60a560d19b..98e7b6f342d 100644 --- a/code/game/mecha/equipment/mecha_equipment.dm +++ b/code/game/mecha/equipment/mecha_equipment.dm @@ -1,4 +1,3 @@ -//TODO: Add critfail checks and reliability //DO NOT ADD MECHA PARTS TO THE GAME WITH THE DEFAULT "SPRITE ME" SPRITE! //I'm annoyed I even have to tell you this! SPRITE FIRST, then commit. @@ -7,7 +6,7 @@ icon = 'icons/mecha/mecha_equipment.dmi' icon_state = "mecha_equip" force = 5 - origin_tech = "materials=2" + origin_tech = "materials=2;engineering=2" var/equip_cooldown = 0 var/equip_ready = 1 var/energy_drain = 0 diff --git a/code/game/mecha/equipment/tools/mining_tools.dm b/code/game/mecha/equipment/tools/mining_tools.dm index 6146e326023..3b1b919bde6 100644 --- a/code/game/mecha/equipment/tools/mining_tools.dm +++ b/code/game/mecha/equipment/tools/mining_tools.dm @@ -110,7 +110,6 @@ name = "exosuit mining scanner" desc = "Equipment for engineering and combat exosuits. It will automatically check surrounding rock for useful minerals." icon_state = "mecha_analyzer" - origin_tech = "materials=3;engineering=2" selectable = 0 equip_cooldown = 30 var/scanning = 0 diff --git a/code/game/mecha/equipment/tools/other_tools.dm b/code/game/mecha/equipment/tools/other_tools.dm index 3f60c56a952..2e9c75510f4 100644 --- a/code/game/mecha/equipment/tools/other_tools.dm +++ b/code/game/mecha/equipment/tools/other_tools.dm @@ -7,7 +7,7 @@ name = "mounted teleporter" desc = "An exosuit module that allows exosuits to teleport to any position in view." icon_state = "mecha_teleport" - origin_tech = "bluespace=10" + origin_tech = "bluespace=7" equip_cooldown = 150 energy_drain = 8000 range = RANGED @@ -25,7 +25,7 @@ /obj/item/mecha_parts/mecha_equipment/teleporter/precise name = "upgraded teleporter" desc = "An exosuit module that allows exosuits to teleport to any position in view. This is the high-precision, energy-efficient version." - origin_tech = "bluespace=13" + origin_tech = "bluespace=7" energy_drain = 1000 tele_precision = 1 @@ -36,7 +36,7 @@ name = "mounted wormhole generator" desc = "An exosuit module that allows generating of small quasi-stable wormholes." icon_state = "mecha_wholegen" - origin_tech = "bluespace=3" + origin_tech = "bluespace=4;magnets=4;plasmatech=2" equip_cooldown = 50 energy_drain = 300 range = RANGED @@ -82,7 +82,7 @@ name = "mounted gravitational catapult" desc = "An exosuit mounted Gravitational Catapult." icon_state = "mecha_teleport" - origin_tech = "bluespace=2;magnets=3" + origin_tech = "bluespace=3;magnets=3;engineering=4" equip_cooldown = 10 energy_drain = 100 range = MELEE|RANGED @@ -145,7 +145,7 @@ name = "Armor Booster Module (Close Combat Weaponry)" desc = "Boosts exosuit armor against armed melee attacks. Requires energy to operate." icon_state = "mecha_abooster_ccw" - origin_tech = "materials=3" + origin_tech = "materials=4;combat=4" equip_cooldown = 10 energy_drain = 50 range = 0 @@ -163,7 +163,7 @@ name = "Armor Booster Module (Ranged Weaponry)" desc = "Boosts exosuit armor against ranged attacks. Completely blocks taser shots. Requires energy to operate." icon_state = "mecha_abooster_proj" - origin_tech = "materials=4" + origin_tech = "materials=4;combat=3;engineering=3" equip_cooldown = 10 energy_drain = 50 range = 0 @@ -183,7 +183,7 @@ name = "Repair Droid" desc = "Automated repair droid. Scans exosuit for damage and repairs it. Can fix almost all types of external or internal damage." icon_state = "repair_droid" - origin_tech = "magnets=3;programming=3" + origin_tech ="magnets=3;programming=3;engineering=4" equip_cooldown = 20 energy_drain = 50 range = 0 @@ -490,4 +490,4 @@ /obj/item/mecha_parts/mecha_equipment/generator/nuclear/process() if(..()) for(var/mob/living/carbon/M in view(chassis)) - M.apply_effect((rad_per_cycle * 3),IRRADIATE,0) \ No newline at end of file + M.apply_effect((rad_per_cycle * 3),IRRADIATE,0) diff --git a/code/game/mecha/equipment/tools/work_tools.dm b/code/game/mecha/equipment/tools/work_tools.dm index 7a0e388b39e..81fba15d1e8 100644 --- a/code/game/mecha/equipment/tools/work_tools.dm +++ b/code/game/mecha/equipment/tools/work_tools.dm @@ -188,7 +188,7 @@ name = "Mounted RCD" desc = "An exosuit-mounted Rapid Construction Device. (Can be attached to: Any exosuit)" icon_state = "mecha_rcd" - origin_tech = "materials=4;bluespace=3;magnets=4;powerstorage=4" + origin_tech = "materials=4;bluespace=3;magnets=4;powerstorage=4;engineering=4" equip_cooldown = 10 energy_drain = 250 range = MELEE|RANGED @@ -287,7 +287,7 @@ name = "mounted MRCD" desc = "An exosuit-mounted Mime Rapid Construction Device. (Can be attached to: Reticence)" icon_state = "mecha_rcd" - origin_tech = "materials=4;bluespace=3;magnets=4;powerstorage=4" + origin_tech = "materials=4;bluespace=3;magnets=4;powerstorage=4;engineering=4" equip_cooldown = 10 energy_drain = 250 range = MELEE|RANGED diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm index 5fea88f278f..9c554407afa 100644 --- a/code/game/mecha/equipment/weapons/weapons.dm +++ b/code/game/mecha/equipment/weapons/weapons.dm @@ -70,6 +70,7 @@ equip_cooldown = 8 name = "CH-PS \"Firedart\" Laser" icon_state = "mecha_laser" + origin_tech = "magnets=3;combat=3;engineering=3" energy_drain = 30 projectile = /obj/item/projectile/beam fire_sound = 'sound/weapons/Laser.ogg' @@ -84,6 +85,7 @@ equip_cooldown = 10 name = "CH-LC \"Solaris\" Laser Cannon" icon_state = "mecha_laser" + origin_tech = "magnets=4;combat=4;engineering=3" energy_drain = 60 projectile = /obj/item/projectile/beam/laser/heavylaser fire_sound = 'sound/weapons/lasercannonfire.ogg' @@ -92,6 +94,7 @@ equip_cooldown = 40 name = "mkIV Ion Heavy Cannon" icon_state = "mecha_ion" + origin_tech = "materials=4;combat=5;magnets=4" energy_drain = 120 projectile = /obj/item/projectile/ion fire_sound = 'sound/weapons/Laser.ogg' @@ -170,6 +173,7 @@ /obj/item/mecha_parts/mecha_equipment/weapon/energy/taser name = "PBT \"Pacifier\" Mounted Taser" icon_state = "mecha_taser" + origin_tech = "combat=3" energy_drain = 20 equip_cooldown = 8 projectile = /obj/item/projectile/energy/electrode @@ -270,6 +274,7 @@ /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/carbine name = "FNX-66 Carbine" icon_state = "mecha_carbine" + origin_tech = "materials=4;combat=4" equip_cooldown = 5 projectile = /obj/item/projectile/bullet/incendiary/shell/dragonsbreath fire_sound = 'sound/weapons/Gunshot.ogg' @@ -294,6 +299,7 @@ /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot name = "LBX AC 10 \"Scattershot\"" icon_state = "mecha_scatter" + origin_tech = "combat=4" equip_cooldown = 20 projectile = /obj/item/projectile/bullet/midbullet fire_sound = 'sound/weapons/Gunshot.ogg' @@ -305,6 +311,7 @@ /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/lmg name = "Ultra AC 2" icon_state = "mecha_uac2" + origin_tech = "combat=4" equip_cooldown = 10 projectile = /obj/item/projectile/bullet/weakbullet3 fire_sound = 'sound/weapons/Gunshot.ogg' @@ -321,6 +328,7 @@ /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack name = "SRM-8 Light Missile Rack" icon_state = "mecha_missilerack" + origin_tech = "combat=5;materials=4;engineering=4" projectile = /obj/item/missile fire_sound = 'sound/effects/bang.ogg' projectiles = 8 @@ -373,6 +381,7 @@ /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang name = "SGL-6 Grenade Launcher" icon_state = "mecha_grenadelnchr" + origin_tech = "combat=4;engineering=4" projectile = /obj/item/weapon/grenade/flashbang fire_sound = 'sound/effects/bang.ogg' projectiles = 6 @@ -398,6 +407,7 @@ /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang/clusterbang//Because I am a heartless bastard -Sieve name = "SOB-3 Grenade Launcher" desc = "A weapon for combat exosuits. Launches primed clusterbangs. You monster." + origin_tech = "combat=4;materials=4" projectiles = 3 projectile = /obj/item/weapon/grenade/clusterbuster projectile_energy_cost = 1600 //getting off cheap seeing as this is 3 times the flashbangs held in the grenade launcher. @@ -504,7 +514,7 @@ icon_state = "mecha_plasmacutter" item_state = "plasmacutter" energy_drain = 30 - origin_tech = "materials=3;combat=2;powerstorage=3;plasmatech=3" + origin_tech = "materials=3;plasmatech=4;engineering=3" projectile = /obj/item/projectile/plasma/adv/mech fire_sound = 'sound/weapons/laser.ogg' diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm index cd20b68f10d..b7aadbaae26 100644 --- a/code/game/mecha/mech_fabricator.dm +++ b/code/game/mecha/mech_fabricator.dm @@ -9,6 +9,7 @@ idle_power_usage = 20 active_power_usage = 5000 var/time_coeff = 1 + var/component_coeff = 1 var/list/resources = list( MAT_METAL=0, MAT_GLASS=0, @@ -77,6 +78,12 @@ T += M.rating res_max_amount = (187000+(T * 37500)) + //resources adjustment coefficient (1 -> 0.85 -> 0.7 -> 0.55) + T = 1.15 + for(var/obj/item/weapon/stock_parts/micro_laser/Ma in component_parts) + T -= Ma.rating*0.15 + component_coeff = T + //building time adjustment coefficient (1 -> 0.8 -> 0.6) T = -1 for(var/obj/item/weapon/stock_parts/manipulator/Ml in component_parts) @@ -246,7 +253,7 @@ return /obj/machinery/mecha_part_fabricator/proc/get_resource_cost_w_coeff(datum/design/D, resource, roundto = 1) - return round(D.materials[resource], roundto) + return round(D.materials[resource]*component_coeff, roundto) /obj/machinery/mecha_part_fabricator/proc/get_construction_time_w_coeff(datum/design/D, roundto = 1) //aran return round(initial(D.construction_time)*time_coeff, roundto) diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 2fa9b3af00f..9eab3e88cee 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -602,7 +602,6 @@ WR.crowbar_salvage += E E.forceMove(WR) E.equip_ready = 1 - E.reliability = round(rand(E.reliability/3,E.reliability)) else E.forceMove(loc) qdel(E) diff --git a/code/game/mecha/mecha_parts.dm b/code/game/mecha/mecha_parts.dm index 0516d8bf659..ce22dd723f9 100644 --- a/code/game/mecha/mecha_parts.dm +++ b/code/game/mecha/mecha_parts.dm @@ -8,7 +8,7 @@ icon_state = "blank" w_class = WEIGHT_CLASS_GIGANTIC flags = CONDUCT - origin_tech = "programming=2;materials=2" + origin_tech = "programming=2;materials=2;engineering=2" /obj/item/mecha_parts/chassis @@ -47,25 +47,21 @@ 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=2;engineering=2" /obj/item/mecha_parts/part/ripley_right_arm 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=2;engineering=2" /obj/item/mecha_parts/part/ripley_left_leg 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=2;engineering=2" /obj/item/mecha_parts/part/ripley_right_leg 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=2;engineering=2" ///////// Gygax @@ -80,40 +76,40 @@ 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=2;biotech=3;engineering=3" + origin_tech = "programming=2;materials=4;biotech=3;engineering=3" /obj/item/mecha_parts/part/gygax_head name="Gygax Head" desc="A Gygax head. Houses advanced surveilance and targeting sensors." icon_state = "gygax_head" - origin_tech = "programming=2;materials=2;magnets=3;engineering=3" + origin_tech = "programming=2;materials=4;magnets=3;engineering=3" /obj/item/mecha_parts/part/gygax_left_arm name="Gygax Left Arm" desc="A Gygax left arm. Data and power sockets are compatible with most exosuit tools and weapons." icon_state = "gygax_l_arm" - origin_tech = "programming=2;materials=2;engineering=3" + origin_tech = "programming=2;materials=4;engineering=3" /obj/item/mecha_parts/part/gygax_right_arm name="Gygax Right Arm" desc="A Gygax right arm. Data and power sockets are compatible with most exosuit tools and weapons." icon_state = "gygax_r_arm" - origin_tech = "programming=2;materials=2;engineering=3" + origin_tech = "programming=2;materials=4;engineering=3" /obj/item/mecha_parts/part/gygax_left_leg name="Gygax Left Leg" icon_state = "gygax_l_leg" - origin_tech = "programming=2;materials=2;engineering=3" + origin_tech = "programming=2;materials=4;engineering=3" /obj/item/mecha_parts/part/gygax_right_leg name="Gygax Right Leg" icon_state = "gygax_r_leg" - origin_tech = "programming=2;materials=2;engineering=3" + origin_tech = "programming=2;materials=4;engineering=3" /obj/item/mecha_parts/part/gygax_armour name="Gygax Armour Plates" icon_state = "gygax_armour" - origin_tech = "materials=6;combat=4;engineering=5" + origin_tech = "materials=6;combat=4;engineering=4" //////////// Durand @@ -158,7 +154,7 @@ /obj/item/mecha_parts/part/durand_armor name="Durand Armour Plates" icon_state = "durand_armor" - origin_tech = "materials=5;combat=4;engineering=5" + origin_tech = "materials=5;combat=4;engineering=4" @@ -278,7 +274,6 @@ /obj/item/mecha_parts/chassis/phazon name = "Phazon Chassis" - origin_tech = "materials=6" New() ..() @@ -287,38 +282,38 @@ /obj/item/mecha_parts/part/phazon_torso name="Phazon Torso" icon_state = "phazon_harness" - origin_tech = "programming=5;materials=6;bluespace=5;powerstorage=5" + origin_tech = "programming=4;materials=4;bluespace=4;plasmatech=5" /obj/item/mecha_parts/part/phazon_head name="Phazon Head" icon_state = "phazon_head" - origin_tech = "programming=4;materials=5;magnets=5" + origin_tech = "programming=3;materials=3;magnets=3" /obj/item/mecha_parts/part/phazon_left_arm name="Phazon Left Arm" icon_state = "phazon_l_arm" - origin_tech = "materials=5;bluespace=2;magnets=2" + origin_tech = "materials=3;bluespace=3;magnets=3" /obj/item/mecha_parts/part/phazon_right_arm name="Phazon Right Arm" icon_state = "phazon_r_arm" - origin_tech = "materials=5;bluespace=2;magnets=2" + origin_tech = "materials=3;bluespace=3;magnets=3" /obj/item/mecha_parts/part/phazon_left_leg name="Phazon Left Leg" icon_state = "phazon_l_leg" - origin_tech = "materials=5;bluespace=3;magnets=3" + origin_tech = "materials=3;bluespace=3;magnets=3" /obj/item/mecha_parts/part/phazon_right_leg name="Phazon Right Leg" icon_state = "phazon_r_leg" - origin_tech = "materials=5;bluespace=3;magnets=3" + origin_tech = "materials=3;bluespace=3;magnets=3" /obj/item/mecha_parts/part/phazon_armor name="Phazon armor" desc="Phazon armor plates. They are layered with plasma to protect the pilot from the stress of phasing and have unusual properties." icon_state = "phazon_armor" - origin_tech = "materials=6;bluespace=5;magnets=5" + origin_tech = "materials=4;bluespace=4;plasmatech=5" ///////// Odysseus /obj/item/mecha_parts/chassis/odysseus @@ -331,7 +326,6 @@ /obj/item/mecha_parts/part/odysseus_head name="Odysseus Head" icon_state = "odysseus_head" - origin_tech = "programming=3;materials=2" /obj/item/mecha_parts/part/odysseus_torso name="Odysseus Torso" @@ -343,25 +337,21 @@ name="Odysseus Left Arm" desc="An Odysseus left arm. Data and power sockets are compatible with most exosuit tools." icon_state = "odysseus_l_arm" - origin_tech = "programming=2;materials=2;engineering=2" /obj/item/mecha_parts/part/odysseus_right_arm name="Odysseus Right Arm" desc="An Odysseus right arm. Data and power sockets are compatible with most exosuit tools." icon_state = "odysseus_r_arm" - origin_tech = "programming=2;materials=2;engineering=2" /obj/item/mecha_parts/part/odysseus_left_leg name="Odysseus Left Leg" desc="An Odysseus left leg. Contains somewhat complex servodrives and balance maintaining systems." icon_state = "odysseus_l_leg" - origin_tech = "programming=2;materials=2;engineering=2" /obj/item/mecha_parts/part/odysseus_right_leg name="Odysseus Right Leg" desc="A Odysseus right leg. Contains somewhat complex servodrives and balance maintaining systems." icon_state = "odysseus_r_leg" - origin_tech = "programming=2;materials=2;engineering=2" /*/obj/item/mecha_parts/part/odysseus_armour name="Odysseus Carapace" @@ -385,7 +375,7 @@ throw_range = 15 /obj/item/weapon/circuitboard/mecha/ripley - origin_tech = "programming=3" + origin_tech = "programming=2" /obj/item/weapon/circuitboard/mecha/ripley/peripherals name = "Circuit board (Ripley Peripherals Control module)" @@ -396,7 +386,7 @@ icon_state = "mainboard" /obj/item/weapon/circuitboard/mecha/gygax - origin_tech = "programming=4" + origin_tech = "programming=4;combat=3;engineering=3" /obj/item/weapon/circuitboard/mecha/gygax/peripherals name = "Circuit board (Gygax Peripherals Control module)" @@ -412,7 +402,7 @@ icon_state = "mainboard" /obj/item/weapon/circuitboard/mecha/durand - origin_tech = "programming=4" + origin_tech = "programming=4;combat=3;engineering=3" /obj/item/weapon/circuitboard/mecha/durand/peripherals name = "Circuit board (Durand Peripherals Control module)" @@ -421,14 +411,14 @@ /obj/item/weapon/circuitboard/mecha/durand/targeting name = "Circuit board (Durand Weapon Control and Targeting module)" icon_state = "mcontroller" - origin_tech = "programming=4;combat=4" + origin_tech = "programming=4;combat=4;engineering=3" /obj/item/weapon/circuitboard/mecha/durand/main name = "Circuit board (Durand Central Control module)" icon_state = "mainboard" /obj/item/weapon/circuitboard/mecha/phazon - origin_tech = "programming=4" + origin_tech = "programming=5;plasmatech=4" /obj/item/weapon/circuitboard/mecha/phazon/peripherals name = "Circuit board (Phazon Peripherals Control module)" @@ -437,14 +427,13 @@ /obj/item/weapon/circuitboard/mecha/phazon/targeting name = "Circuit board (Phazon Weapon Control and Targeting module)" icon_state = "mcontroller" - origin_tech = "programming=4;combat=4" /obj/item/weapon/circuitboard/mecha/phazon/main name = "Circuit board (Phazon Central Control module)" icon_state = "mainboard" /obj/item/weapon/circuitboard/mecha/honker - origin_tech = "programming=4" + origin_tech = "programming=3;engineering=3" /obj/item/weapon/circuitboard/mecha/honker/peripherals name = "Circuit board (H.O.N.K Peripherals Control module)" @@ -459,7 +448,7 @@ icon_state = "mainboard" /obj/item/weapon/circuitboard/mecha/reticence - origin_tech = "programming=4" + origin_tech = "programming=3;engineering=3" /obj/item/weapon/circuitboard/mecha/reticence/peripherals name = "circuit board (Reticence Peripherals Control module)" @@ -474,7 +463,7 @@ icon_state = "mainboard" /obj/item/weapon/circuitboard/mecha/odysseus - origin_tech = "programming=3" + origin_tech = "programming=3;biotech=3" /obj/item/weapon/circuitboard/mecha/odysseus/peripherals name = "Circuit board (Odysseus Peripherals Control module)" diff --git a/code/game/objects/effects/anomalies.dm b/code/game/objects/effects/anomalies.dm index 89baf450720..adf46ef47e1 100644 --- a/code/game/objects/effects/anomalies.dm +++ b/code/game/objects/effects/anomalies.dm @@ -53,7 +53,7 @@ /obj/effect/anomaly/grav/New() ..() - aSignal.origin_tech = "magnets=5;powerstorage=4" + aSignal.origin_tech = "magnets=7" /obj/effect/anomaly/grav/anomalyEffect() ..() @@ -89,7 +89,7 @@ /obj/effect/anomaly/flux/New() ..() - aSignal.origin_tech = "powerstorage=6;programming=4;plasmatech=4" + aSignal.origin_tech = "powerstorage=7" ///////////////////// @@ -101,7 +101,7 @@ /obj/effect/anomaly/bluespace/New() ..() - aSignal.origin_tech = "bluespace=5;magnets=5;powerstorage=3" + aSignal.origin_tech = "bluespace=7" /obj/effect/anomaly/bluespace/Bumped(atom/A) if(isliving(A)) @@ -116,7 +116,7 @@ /obj/effect/anomaly/pyro/New() ..() - aSignal.origin_tech = "plasmatech=5;powerstorage=4;biotech=6" + aSignal.origin_tech = "plasmatech=7" /obj/effect/anomaly/pyro/anomalyEffect() ..() @@ -133,7 +133,7 @@ /obj/effect/anomaly/bhole/New() ..() - aSignal.origin_tech = "materials=5;combat=4;engineering=4" + aSignal.origin_tech = "engineering=7" /obj/effect/anomaly/bhole/anomalyEffect() ..() @@ -180,4 +180,4 @@ //Damaging the turf if( T && istype(T,/turf/simulated) && prob(turf_removal_chance) ) T.ex_act(ex_act_force) - return \ No newline at end of file + return diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index cca6f9d9265..00eb1bd6884 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -169,9 +169,6 @@ var/global/image/fire_overlay = image("icon" = 'icons/goonstation/effects/fire.d var/list/techlvls = params2list(origin_tech) for(var/T in techlvls) //This needs to use the better names. msg += "Tech: [CallTechName(T)] | Magnitude: [techlvls[T]]
" - msg += "Research reliability: [reliability]%
" - if(crit_fail) - msg += "Critical failure detected in subject!
" else msg += "No tech origins detected.
" diff --git a/code/game/objects/items/devices/aicard.dm b/code/game/objects/items/devices/aicard.dm index 542d3cd3fb4..f74d80f845e 100644 --- a/code/game/objects/items/devices/aicard.dm +++ b/code/game/objects/items/devices/aicard.dm @@ -7,7 +7,7 @@ slot_flags = SLOT_BELT flags = NOBLUDGEON var/flush = null - origin_tech = "programming=4;materials=4" + origin_tech = "programming=3;materials=3" /obj/item/device/aicard/afterattack(atom/target, mob/user, proximity) diff --git a/code/game/objects/items/devices/autopsy.dm b/code/game/objects/items/devices/autopsy.dm index 2839715d7d7..3bad7c09cf6 100644 --- a/code/game/objects/items/devices/autopsy.dm +++ b/code/game/objects/items/devices/autopsy.dm @@ -5,7 +5,7 @@ icon_state = "" flags = CONDUCT w_class = WEIGHT_CLASS_TINY - origin_tech = "materials=1;biotech=1" + origin_tech = "magnets=1;biotech=1" var/list/datum/autopsy_data_scanner/wdata = list() var/list/chemtraces = list() var/target_name = null diff --git a/code/game/objects/items/devices/camera_bug.dm b/code/game/objects/items/devices/camera_bug.dm index 5554fd4f0f4..17fddd581e4 100644 --- a/code/game/objects/items/devices/camera_bug.dm +++ b/code/game/objects/items/devices/camera_bug.dm @@ -13,7 +13,7 @@ item_state = "camera_bug" throw_speed = 4 throw_range = 20 - origin_tech = "syndicate=3;engineering=1" + origin_tech = "syndicate=1;engineering=3" var/obj/machinery/camera/current = null diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index f82e8ab2cee..1bf736d7024 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -243,7 +243,7 @@ obj/item/device/flashlight/lamp/bananalamp return //Bio-luminescence does not toggle. /obj/item/device/flashlight/emp - origin_tech = "magnets=4;syndicate=5" + origin_tech = "magnets=3;syndicate=1" var/emp_max_charges = 4 var/emp_cur_charges = 4 diff --git a/code/game/objects/items/devices/laserpointer.dm b/code/game/objects/items/devices/laserpointer.dm index ee49962cfe7..c8294590e3c 100644 --- a/code/game/objects/items/devices/laserpointer.dm +++ b/code/game/objects/items/devices/laserpointer.dm @@ -9,8 +9,7 @@ slot_flags = SLOT_BELT materials = list(MAT_METAL=500, MAT_GLASS=500) w_class = WEIGHT_CLASS_SMALL //Increased to 2, because diodes are w_class 2. Conservation of matter. - origin_tech = "combat=1" - origin_tech = "magnets=2" + origin_tech = "combat=1;magnets=2" var/energy = 5 var/max_energy = 5 var/effectchance = 33 diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm index 664bd07f8ad..7fa63f07eb7 100644 --- a/code/game/objects/items/devices/lightreplacer.dm +++ b/code/game/objects/items/devices/lightreplacer.dm @@ -49,7 +49,7 @@ flags = CONDUCT slot_flags = SLOT_BELT - origin_tech = "magnets=3;materials=2" + origin_tech = "magnets=3;engineering=4" var/max_uses = 20 var/uses = 0 diff --git a/code/game/objects/items/devices/machineprototype.dm b/code/game/objects/items/devices/machineprototype.dm new file mode 100644 index 00000000000..e6574d0e55a --- /dev/null +++ b/code/game/objects/items/devices/machineprototype.dm @@ -0,0 +1,7 @@ +/obj/item/device/machineprototype + name = "machine prototype" + desc = "A complicated machine prototype. You have no idea how it works." + icon = 'icons/obj/machineprototype.dmi' + icon_state = "machineprototype" + materials = list(MAT_METAL=1000, MAT_GLASS=500) + origin_tech = "engineering=6" diff --git a/code/game/objects/items/devices/powersink.dm b/code/game/objects/items/devices/powersink.dm index 7c81ca0e6e9..c02337e339a 100644 --- a/code/game/objects/items/devices/powersink.dm +++ b/code/game/objects/items/devices/powersink.dm @@ -11,7 +11,7 @@ throw_speed = 1 throw_range = 2 materials = list(MAT_METAL=750) - origin_tech = "powerstorage=3;syndicate=5" + origin_tech = "powerstorage=5;syndicate=5" var/drain_rate = 1600000 // amount of power to drain per tick var/apc_drain_rate = 50 // Max. amount drained from single APC. In Watts. var/dissipation_rate = 20000 // Passive dissipation of drained power. In Watts. diff --git a/code/game/objects/items/devices/radio/beacon.dm b/code/game/objects/items/devices/radio/beacon.dm index 55f42587104..465d75d2b8e 100644 --- a/code/game/objects/items/devices/radio/beacon.dm +++ b/code/game/objects/items/devices/radio/beacon.dm @@ -53,7 +53,7 @@ /obj/item/device/radio/beacon/syndicate name = "suspicious beacon" desc = "A label on it reads: Activate to have a singularity beacon teleported to your location." - origin_tech = "bluespace=1;syndicate=7" + origin_tech = "bluespace=6;syndicate=5" syndicate = 1 /obj/item/device/radio/beacon/syndicate/attack_self(mob/user as mob) @@ -67,7 +67,7 @@ /obj/item/device/radio/beacon/syndicate/bomb name = "suspicious beacon" desc = "A label on it reads: Warning: Activating this device will send a high-ordinance explosive to your location." - origin_tech = "bluespace=1;syndicate=7" + origin_tech = "bluespace=5;syndicate=5" /obj/item/device/radio/beacon/syndicate/bomb/attack_self(mob/user as mob) if(user) diff --git a/code/game/objects/items/devices/radio/encryptionkey.dm b/code/game/objects/items/devices/radio/encryptionkey.dm index a31e09e896c..cfbde361db1 100644 --- a/code/game/objects/items/devices/radio/encryptionkey.dm +++ b/code/game/objects/items/devices/radio/encryptionkey.dm @@ -6,6 +6,7 @@ icon_state = "cypherkey" item_state = "" w_class = WEIGHT_CLASS_TINY + origin_tech = "engineering=2;bluespace=1" var/translate_binary = 0 var/translate_hive = 0 var/syndie = 0 @@ -19,7 +20,7 @@ /obj/item/device/encryptionkey/syndicate icon_state = "cypherkey" channels = list("Syndicate" = 1) - origin_tech = "syndicate=3" + origin_tech = "syndicate=1;engineering=3;bluespace=2" syndie = 1 //Signifies that it de-crypts Syndicate transmissions /obj/item/device/encryptionkey/syndteam @@ -33,7 +34,7 @@ desc = "An encryption key for a radio headset. To access the binary channel, use :b." icon_state = "cypherkey" translate_binary = 1 - origin_tech = "syndicate=3" + origin_tech = "syndicate=3;engineering=4;bluespace=3" /obj/item/device/encryptionkey/headset_sec name = "Security Radio Encryption Key" diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm index 4cf20378443..1e24f966cf3 100644 --- a/code/game/objects/items/devices/radio/intercom.dm +++ b/code/game/objects/items/devices/radio/intercom.dm @@ -233,6 +233,7 @@ desc = "Looks like a circuit. Probably is." w_class = WEIGHT_CLASS_SMALL materials = list(MAT_METAL=50, MAT_GLASS=50) + origin_tech = "engineering=2;programming=1" toolspeed = 1 usesound = 'sound/items/Deconstruct.ogg' diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index a1112493b01..e31c49f9392 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -22,15 +22,12 @@ REAGENT SCANNER var/pulse_duration = 10 /obj/item/device/t_scanner/longer_pulse - origin_tech = "magnets=2;engineering=2" pulse_duration = 50 /obj/item/device/t_scanner/extended_range - origin_tech = "magnets=1;engineering=3" scan_range = 3 /obj/item/device/t_scanner/extended_range/longer_pulse - origin_tech = "magnets=2;engineering=3" scan_range = 3 pulse_duration = 50 @@ -375,10 +372,9 @@ REAGENT SCANNER throwforce = 5 throw_speed = 4 throw_range = 20 - materials = list(MAT_METAL=30, MAT_GLASS=20) - origin_tech = "magnets=2;biotech=2" + materials = list(MAT_METAL=150, MAT_GLASS=100) + origin_tech = "magnets=2;biotech=1;plasmatech=2" var/details = 0 - var/recent_fail = 0 var/datatoprint = "" var/scanning = 1 actions_types = list(/datum/action/item_action/print_report) @@ -396,9 +392,6 @@ REAGENT SCANNER /obj/item/device/mass_spectrometer/attack_self(mob/user as mob) if(user.stat) return - if(crit_fail) - to_chat(user, "This device has critically failed and is no longer functional!") - return if(!user.IsAdvancedToolUser()) to_chat(user, "You don't have the dexterity to do this!") return @@ -414,34 +407,19 @@ REAGENT SCANNER break var/dat = "" for(var/R in blood_traces) - if(prob(reliability)) - if(details) - dat += "[R] ([blood_traces[R]] units) " - else - dat += "[R]
" - recent_fail = 0 + if(details) + dat += "[R] ([blood_traces[R]] units) " else - if(recent_fail) - crit_fail = 1 - reagents.clear_reagents() - return - else - recent_fail = 1 - if(dat) - to_chat(user, "Trace chemicals detected in blood sample: [dat]") - datatoprint = dat - scanning = 0 - reagents.clear_reagents() - else - reagents.clear_reagents() - to_chat(user, "No trace chemicals detected in blood sample.") + dat += "[R] " + to_chat(user, "[dat]") + reagents.clear_reagents() return /obj/item/device/mass_spectrometer/adv name = "advanced mass-spectrometer" icon_state = "adv_spectrometer" details = 1 - origin_tech = "magnets=4;biotech=2" + origin_tech = "magnets=4;biotech=3;plasmatech=3" /obj/item/device/mass_spectrometer/proc/print_report() if(!scanning) @@ -477,9 +455,8 @@ REAGENT SCANNER throw_speed = 4 throw_range = 20 materials = list(MAT_METAL=30, MAT_GLASS=20) - origin_tech = "magnets=2;biotech=2" + origin_tech = "magnets=2;biotech=1;plasmatech=2" var/details = 0 - var/recent_fail = 0 var/datatoprint = "" var/scanning = 1 actions_types = list(/datum/action/item_action/print_report) @@ -492,23 +469,13 @@ REAGENT SCANNER return if(!istype(O)) return - if(crit_fail) - to_chat(user, "This device has critically failed and is no longer functional!") - return + if(!isnull(O.reagents)) var/dat = "" if(O.reagents.reagent_list.len > 0) var/one_percent = O.reagents.total_volume / 100 for(var/datum/reagent/R in O.reagents.reagent_list) - if(prob(reliability)) - dat += "
[TAB][R][details ? ": [R.volume / one_percent]%" : ""]" - recent_fail = 0 - else if(recent_fail) - crit_fail = 1 - dat = null - break - else - recent_fail = 1 + dat += "
[TAB][R][details ? ": [R.volume / one_percent]%" : ""]" if(dat) to_chat(user, "Chemicals found: [dat]") datatoprint = dat @@ -523,7 +490,7 @@ REAGENT SCANNER name = "advanced reagent scanner" icon_state = "adv_spectrometer" details = 1 - origin_tech = "magnets=4;biotech=2" + origin_tech = "magnets=4;biotech=3;plasmatech=3" /obj/item/device/reagent_scanner/proc/print_report() if(!scanning) @@ -551,7 +518,7 @@ REAGENT SCANNER name = "slime scanner" icon_state = "adv_spectrometer_s" item_state = "analyzer" - origin_tech = "biotech=1" + origin_tech = "biotech=2" w_class = WEIGHT_CLASS_SMALL flags = CONDUCT throwforce = 0 diff --git a/code/game/objects/items/devices/sensor_device.dm b/code/game/objects/items/devices/sensor_device.dm index b063682f770..ccd05ba2895 100644 --- a/code/game/objects/items/devices/sensor_device.dm +++ b/code/game/objects/items/devices/sensor_device.dm @@ -5,7 +5,7 @@ icon_state = "scanner" w_class = WEIGHT_CLASS_SMALL slot_flags = SLOT_BELT - origin_tech = "biotech=3;materials=3;magnets=3" + origin_tech = "programming=3;materials=3;magnets=3" var/datum/nano_module/crew_monitor/crew_monitor /obj/item/device/sensor_device/New() diff --git a/code/game/objects/items/flag.dm b/code/game/objects/items/flag.dm index 0117f1b9f19..ebdaa953fbf 100644 --- a/code/game/objects/items/flag.dm +++ b/code/game/objects/items/flag.dm @@ -163,7 +163,7 @@ name = "Chameleon flag" desc = "A poor recreation of the official NT flag. It seems to shimmer a little." icon_state = "ntflag" - origin_tech = "materials=3;magnets=4;syndicate=4" + origin_tech = "syndicate=4;magnets=4" var/used = 0 /obj/item/flag/chameleon/attack_self(mob/user) diff --git a/code/game/objects/items/mountable_frames/frames.dm b/code/game/objects/items/mountable_frames/frames.dm index b8ef9216053..0bc5a8f9be6 100644 --- a/code/game/objects/items/mountable_frames/frames.dm +++ b/code/game/objects/items/mountable_frames/frames.dm @@ -1,6 +1,7 @@ /obj/item/mounted/frame name = "mountable frame" desc = "Place it on a wall." + origin_tech = "materials=1;engineering=1" var/sheets_refunded = 2 var/list/mount_reqs = list() //can contain simfloor, nospace. Used in try_build to see if conditions are needed, then met toolspeed = 1 diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index 40cc65da34a..c5ecb18edec 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -6,6 +6,7 @@ desc = "Protected by FRM." icon = 'icons/obj/module.dmi' icon_state = "cyborg_upgrade" + origin_tech = "programming=2" var/locked = 0 var/installed = 0 var/require_module = 0 @@ -103,6 +104,7 @@ desc = "Used to kick in a robot's VTEC systems, increasing their speed." icon_state = "cyborg_upgrade2" require_module = 1 + origin_tech = "engineering=4;materials=5;programming=4" /obj/item/borg/upgrade/vtec/action(var/mob/living/silicon/robot/R) if(..()) @@ -120,6 +122,7 @@ name = "cyborg rapid disabler cooling module" desc = "Used to cool a mounted disabler, increasing the potential current in it and thus its recharge rate." icon_state = "cyborg_upgrade3" + origin_tech = "engineering=4;powerstorage=4;combat=4" require_module = 1 module_type = /obj/item/weapon/robot_module/security @@ -144,6 +147,7 @@ name = "ion thruster upgrade" desc = "A energy-operated thruster system for cyborgs." icon_state = "cyborg_upgrade3" + origin_tech = "engineering=4;powerstorage=4" /obj/item/borg/upgrade/thrusters/action(mob/living/silicon/robot/R) if(..()) @@ -160,6 +164,7 @@ name = "mining cyborg diamond drill" desc = "A diamond drill replacement for the mining module's standard drill." icon_state = "cyborg_upgrade3" + origin_tech = "engineering=4;materials=5" require_module = 1 module_type = /obj/item/weapon/robot_module/miner @@ -181,6 +186,7 @@ name = "mining cyborg satchel of holding" desc = "A satchel of holding replacement for mining cyborg's ore satchel module." icon_state = "cyborg_upgrade3" + origin_tech = "engineering=4;materials=4;bluespace=4" require_module = 1 module_type = /obj/item/weapon/robot_module/miner @@ -200,6 +206,7 @@ name = "illegal equipment module" desc = "Unlocks the hidden, deadlier functions of a cyborg" icon_state = "cyborg_upgrade3" + origin_tech = "combat=4;syndicate=1" require_module = 1 /obj/item/borg/upgrade/syndicate/action(mob/living/silicon/robot/R) diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index e50c51ba100..82d2ce8c024 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -75,7 +75,7 @@ singular_name = "gauze length" desc = "Some sterile gauze to wrap around bloody stumps." icon_state = "gauze" - origin_tech = "biotech=1" + origin_tech = "biotech=2" /obj/item/stack/medical/bruise_pack/attack(mob/living/M, mob/user) if(..()) @@ -121,7 +121,7 @@ gender = PLURAL singular_name = "ointment" icon_state = "ointment" - origin_tech = "biotech=1" + origin_tech = "biotech=2" /obj/item/stack/medical/ointment/attack(mob/living/M, mob/user) if(..()) diff --git a/code/game/objects/items/stacks/nanopaste.dm b/code/game/objects/items/stacks/nanopaste.dm index a21bb504fdc..8e3c6a57e18 100644 --- a/code/game/objects/items/stacks/nanopaste.dm +++ b/code/game/objects/items/stacks/nanopaste.dm @@ -4,7 +4,7 @@ desc = "A tube of paste containing swarms of repair nanites. Very effective in repairing robotic machinery." icon = 'icons/obj/nanopaste.dmi' icon_state = "tube" - origin_tech = "materials=3;engineering=2" + origin_tech = "materials=2;engineering=3" amount = 10 toolspeed = 1 diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index deea1ecc24e..38d426766a0 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -267,7 +267,7 @@ singular_name = "glass sheet" icon_state = "sheet-plasmaglass" materials = list(MAT_GLASS=MINERAL_MATERIAL_AMOUNT*2) - origin_tech = "materials=3;plasmatech=2" + origin_tech = "plasmatech=2;materials=2" var/created_window = /obj/structure/window/plasmabasic var/full_window = /obj/structure/window/full/plasmabasic @@ -356,7 +356,7 @@ singular_name = "reinforced plasma glass sheet" icon_state = "sheet-plasmarglass" materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT/2, MAT_GLASS=MINERAL_MATERIAL_AMOUNT*2) - origin_tech = "materials=3;plasmatech=2" + origin_tech = "plasmatech=2;materials=2" var/created_window = /obj/structure/window/plasmareinforced var/full_window = /obj/structure/window/full/plasmareinforced diff --git a/code/game/objects/items/stacks/sheets/leather.dm b/code/game/objects/items/stacks/sheets/leather.dm index e222f1627cd..9ccfdf28ad5 100644 --- a/code/game/objects/items/stacks/sheets/leather.dm +++ b/code/game/objects/items/stacks/sheets/leather.dm @@ -1,9 +1,13 @@ +/obj/item/stack/sheet/animalhide + name = "hide" + desc = "Something went wrong." + origin_tech = "biotech=3" + /obj/item/stack/sheet/animalhide/human name = "human skin" desc = "The by-product of human farming." singular_name = "human skin piece" icon_state = "sheet-hide" - origin_tech = "" var/global/list/datum/stack_recipe/human_recipes = list( \ new/datum/stack_recipe("bloated human costume", /obj/item/clothing/suit/bloated_human, 5, on_floor = 1), \ @@ -19,42 +23,36 @@ var/global/list/datum/stack_recipe/human_recipes = list( \ desc = "A piece of generic skin." singular_name = "generic skin piece" icon_state = "sheet-hide" - origin_tech = null /obj/item/stack/sheet/animalhide/corgi name = "corgi hide" desc = "The by-product of corgi farming." singular_name = "corgi hide piece" icon_state = "sheet-corgi" - origin_tech = "" /obj/item/stack/sheet/animalhide/cat name = "cat hide" desc = "The by-product of cat farming." singular_name = "cat hide piece" icon_state = "sheet-cat" - origin_tech = "" /obj/item/stack/sheet/animalhide/monkey name = "monkey hide" desc = "The by-product of monkey farming." singular_name = "monkey hide piece" icon_state = "sheet-monkey" - origin_tech = "" /obj/item/stack/sheet/animalhide/lizard name = "lizard skin" desc = "Sssssss..." singular_name = "lizard skin piece" icon_state = "sheet-lizard" - origin_tech = "" /obj/item/stack/sheet/animalhide/xeno name = "alien hide" desc = "The skin of a terrible creature." singular_name = "alien hide piece" icon_state = "sheet-xeno" - origin_tech = "" //don't see anywhere else to put these, maybe together they could be used to make the xenos suit? /obj/item/stack/sheet/xenochitin diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index fc933a14f20..c381000f5b9 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -106,7 +106,6 @@ var/global/list/datum/stack_recipe/abductor_recipes = list ( \ throwforce = 5 w_class = WEIGHT_CLASS_NORMAL throw_speed = 3 - throw_range = 3 /obj/item/stack/sheet/mineral/New() ..() @@ -118,7 +117,6 @@ var/global/list/datum/stack_recipe/abductor_recipes = list ( \ desc = "This appears to be a combination of both sand and stone." singular_name = "sandstone brick" icon_state = "sheet-sandstone" - throw_speed = 3 throw_range = 5 origin_tech = "materials=1" sheettype = "sandstone" @@ -194,7 +192,7 @@ var/global/list/datum/stack_recipe/abductor_recipes = list ( \ name = "silver" icon_state = "sheet-silver" singular_name = "silver bar" - origin_tech = "materials=3" + origin_tech = "materials=4" sheettype = "silver" materials = list(MAT_SILVER=MINERAL_MATERIAL_AMOUNT) @@ -242,7 +240,6 @@ var/global/list/datum/stack_recipe/abductor_recipes = list ( \ throwforce = 5 w_class = WEIGHT_CLASS_NORMAL throw_speed = 1 - throw_range = 3 origin_tech = "materials=6;abductor=1" sheettype = "abductor" diff --git a/code/game/objects/items/weapons/AI_modules.dm b/code/game/objects/items/weapons/AI_modules.dm index 17d40971804..ad593ca438d 100755 --- a/code/game/objects/items/weapons/AI_modules.dm +++ b/code/game/objects/items/weapons/AI_modules.dm @@ -95,7 +95,7 @@ AI MODULES name = "\improper 'Safeguard' AI module" var/targetName = "" desc = "A 'safeguard' AI module: 'Safeguard . Individuals that threaten are not crew and must be eliminated.'" - origin_tech = "programming=3;materials=4" + origin_tech = "programming=3;materials=3" /obj/item/weapon/aiModule/safeguard/attack_self(var/mob/user as mob) ..() @@ -121,7 +121,7 @@ AI MODULES name = "\improper 'oneCrewMember' AI module" var/targetName = "" desc = "A 'one human' AI module: 'Only is crew.'" - origin_tech = "programming=3;materials=6" //made with diamonds! + origin_tech = "programming=4;materials=4" /obj/item/weapon/aiModule/oneCrewMember/attack_self(var/mob/user as mob) ..() @@ -152,7 +152,7 @@ AI MODULES /obj/item/weapon/aiModule/protectStation name = "\improper '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 crew, and is a threat to the station which must be neutralized.'" - origin_tech = "programming=3;materials=4" //made of gold + origin_tech = "programming=4;materials=4" //made of gold /obj/item/weapon/aiModule/protectStation/attack_self(var/mob/user as mob) ..() @@ -182,7 +182,7 @@ AI MODULES /obj/item/weapon/aiModule/oxygen name = "\improper 'OxygenIsToxicToHumans' AI module" desc = "A 'OxygenIsToxicToHumans' AI module: 'Oxygen is highly toxic to crew members, 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 crew member.'" - origin_tech = "programming=3;biotech=2;materials=4" + origin_tech = "programming=4;biotech=2;materials=4" /obj/item/weapon/aiModule/oxygen/attack_self(var/mob/user as mob) ..() @@ -231,7 +231,7 @@ AI MODULES name = "\improper 'Reset' AI module" var/targetName = "name" desc = "A 'reset' AI module: 'Clears all laws except for the core laws.'" - origin_tech = "programming=3;materials=4" + origin_tech = "programming=3;materials=2" /obj/item/weapon/aiModule/reset/transmitInstructions(var/mob/living/silicon/ai/target, var/mob/sender) log_law_changes(target, sender) @@ -248,7 +248,7 @@ AI MODULES /obj/item/weapon/aiModule/purge // -- TLE name = "\improper 'Purge' AI module" desc = "A 'purge' AI Module: 'Purges all laws.'" - origin_tech = "programming=3;materials=6" + origin_tech = "programming=5;materials=4" /obj/item/weapon/aiModule/purge/transmitInstructions(var/mob/living/silicon/ai/target, var/mob/sender) ..() @@ -305,14 +305,14 @@ AI MODULES /obj/item/weapon/aiModule/paladin // -- NEO name = "\improper '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=3;materials=6" + origin_tech = "programming=3;materials=4" laws = new/datum/ai_laws/paladin /****************** T.Y.R.A.N.T. *****************/ /obj/item/weapon/aiModule/tyrant // -- Darem name = "\improper '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=3;materials=6;syndicate=2" + origin_tech = "programming=3;materials=4;syndicate=1" laws = new/datum/ai_laws/tyrant() /******************** Antimov ********************/ @@ -327,7 +327,7 @@ AI MODULES name = "\improper 'Freeform' core AI module" var/newFreeFormLaw = "" desc = "A 'freeform' Core AI module: ''" - origin_tech = "programming=3;materials=6" + origin_tech = "programming=5;materials=4" /obj/item/weapon/aiModule/freeformcore/attack_self(var/mob/user as mob) ..() @@ -353,7 +353,7 @@ AI MODULES name = "hacked AI module" var/newFreeFormLaw = "" desc = "A hacked AI law module: ''" - origin_tech = "programming=3;materials=6;syndicate=7" + origin_tech = "programming=5;materials=5;syndicate=5" /obj/item/weapon/aiModule/syndicate/attack_self(var/mob/user as mob) ..() @@ -384,7 +384,7 @@ AI MODULES desc = "A little toy model AI core with real law uploading action!" //Note: subtle tell icon = 'icons/obj/toy.dmi' icon_state = "AI" - origin_tech = "programming=3;materials=6;syndicate=7" + origin_tech = "programming=6;materials=5;syndicate=6" laws = list("") /obj/item/weapon/aiModule/toyAI/transmitInstructions(var/mob/living/silicon/ai/target, var/mob/sender) diff --git a/code/game/objects/items/weapons/RCD.dm b/code/game/objects/items/weapons/RCD.dm index cd00d2f2b78..2623c70606e 100644 --- a/code/game/objects/items/weapons/RCD.dm +++ b/code/game/objects/items/weapons/RCD.dm @@ -394,7 +394,7 @@ RCD opacity = 0 density = 0 anchored = 0.0 - origin_tech = "materials=2" + origin_tech = "materials=3" materials = list(MAT_METAL=16000, MAT_GLASS=8000) var/ammoamt = 20 diff --git a/code/game/objects/items/weapons/RCL.dm b/code/game/objects/items/weapons/RCL.dm index 0655c0b4b8b..ebc7c2f58da 100644 --- a/code/game/objects/items/weapons/RCL.dm +++ b/code/game/objects/items/weapons/RCL.dm @@ -10,7 +10,7 @@ throw_speed = 1 throw_range = 7 w_class = WEIGHT_CLASS_NORMAL - origin_tech = "engineering=4;materials=4" + origin_tech = "engineering=4;materials=2" var/max_amount = 90 var/active = 0 var/obj/structure/cable/last = null diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm index 826cd386f3c..dc4f23657b5 100644 --- a/code/game/objects/items/weapons/cards_ids.dm +++ b/code/game/objects/items/weapons/cards_ids.dm @@ -299,7 +299,7 @@ /obj/item/weapon/card/id/syndicate name = "agent card" var/list/initial_access = list(access_maint_tunnels, access_syndicate, access_external_airlocks) - origin_tech = "syndicate=3" + origin_tech = "syndicate=1" var/registered_user = null untrackable = 1 diff --git a/code/game/objects/items/weapons/clown_items.dm b/code/game/objects/items/weapons/clown_items.dm index bb69ffaee50..7be57f646c4 100644 --- a/code/game/objects/items/weapons/clown_items.dm +++ b/code/game/objects/items/weapons/clown_items.dm @@ -89,6 +89,7 @@ icon_state = "air_horn" honk_sound = 'sound/items/AirHorn2.ogg' cooldowntime = 50 + origin_tech = "materials=4;engineering=4" /obj/item/weapon/bikehorn/golden name = "golden bike horn" diff --git a/code/game/objects/items/weapons/defib.dm b/code/game/objects/items/weapons/defib.dm index b7f337e6155..ee7a6d4764b 100644 --- a/code/game/objects/items/weapons/defib.dm +++ b/code/game/objects/items/weapons/defib.dm @@ -112,8 +112,6 @@ /obj/item/weapon/defibrillator/emp_act(severity) if(bcell) deductcharge(1000 / severity) - if(bcell.reliability != 100 && prob(50/severity)) - bcell.reliability -= 10 / severity if(safety) safety = 0 src.visible_message("[src] beeps: Safety protocols disabled!") @@ -208,7 +206,7 @@ item_state = "defibcompact" w_class = WEIGHT_CLASS_NORMAL slot_flags = SLOT_BELT - origin_tech = "biotech=4" + origin_tech = "biotech=5" /obj/item/weapon/defibrillator/compact/item_action_slot_check(slot, mob/user) if(slot == slot_belt) diff --git a/code/game/objects/items/weapons/explosives.dm b/code/game/objects/items/weapons/explosives.dm index 13a9186058e..ea89aab651c 100644 --- a/code/game/objects/items/weapons/explosives.dm +++ b/code/game/objects/items/weapons/explosives.dm @@ -6,7 +6,7 @@ flags = NOBLUDGEON det_time = 10 display_timer = 0 - origin_tech = "syndicate=2" + origin_tech = "syndicate=1" toolspeed = 1 var/atom/target = null var/image_overlay = null diff --git a/code/game/objects/items/weapons/flamethrower.dm b/code/game/objects/items/weapons/flamethrower.dm index 9adb05f15a7..f02eb57ae8b 100644 --- a/code/game/objects/items/weapons/flamethrower.dm +++ b/code/game/objects/items/weapons/flamethrower.dm @@ -13,7 +13,7 @@ throw_range = 5 w_class = WEIGHT_CLASS_NORMAL materials = list(MAT_METAL=500) - origin_tech = "combat=1;plasmatech=1" + origin_tech = "combat=1;plasmatech=2;engineering=2" var/status = 0 var/throw_amount = 100 var/lit = 0 //on or off diff --git a/code/game/objects/items/weapons/grenades/atmosgrenade.dm b/code/game/objects/items/weapons/grenades/atmosgrenade.dm index 4bfda1ab659..d9b411f4893 100644 --- a/code/game/objects/items/weapons/grenades/atmosgrenade.dm +++ b/code/game/objects/items/weapons/grenades/atmosgrenade.dm @@ -4,7 +4,7 @@ /obj/item/weapon/grenade/gas name = "Plasma Fire Grenade" desc = "A compressed plasma grenade, used to start horrific plasma fires." - origin_tech = "materials=3;magnets=4;syndicate=4" + origin_tech = "materials=3;magnets=4;syndicate=3" icon = 'icons/obj/grenade.dmi' icon_state = "syndicate" item_state = "flashbang" diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm index 4221528e100..f21914a7c32 100644 --- a/code/game/objects/items/weapons/grenades/chem_grenade.dm +++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm @@ -332,7 +332,7 @@ bomb_state = "largebomb" allowed_containers = list(/obj/item/weapon/reagent_containers/glass,/obj/item/weapon/reagent_containers/food/condiment, /obj/item/weapon/reagent_containers/food/drinks) - origin_tech = "combat=3;materials=3" + origin_tech = "combat=3;engineering=3" affected_area = 4 diff --git a/code/game/objects/items/weapons/grenades/emgrenade.dm b/code/game/objects/items/weapons/grenades/emgrenade.dm index 12dd3b7585e..9840604ccff 100644 --- a/code/game/objects/items/weapons/grenades/emgrenade.dm +++ b/code/game/objects/items/weapons/grenades/emgrenade.dm @@ -3,7 +3,7 @@ desc = "It is designed to wreak havoc on electronic systems." icon_state = "emp" item_state = "emp" - origin_tech = "materials=2;magnets=3" + origin_tech = "magnets=3;combat=2" /obj/item/weapon/grenade/empgrenade/prime() update_mob() diff --git a/code/game/objects/items/weapons/grenades/flashbang.dm b/code/game/objects/items/weapons/grenades/flashbang.dm index 3b82b972663..6aa33fc9714 100644 --- a/code/game/objects/items/weapons/grenades/flashbang.dm +++ b/code/game/objects/items/weapons/grenades/flashbang.dm @@ -2,7 +2,7 @@ name = "flashbang" icon_state = "flashbang" item_state = "flashbang" - origin_tech = "materials=2;combat=1" + origin_tech = "materials=2;combat=3" /obj/item/weapon/grenade/flashbang/prime() update_mob() diff --git a/code/game/objects/items/weapons/grenades/spawnergrenade.dm b/code/game/objects/items/weapons/grenades/spawnergrenade.dm index fe3cb3a0c12..3804555402c 100644 --- a/code/game/objects/items/weapons/grenades/spawnergrenade.dm +++ b/code/game/objects/items/weapons/grenades/spawnergrenade.dm @@ -35,20 +35,20 @@ name = "manhack delivery grenade" spawner_type = /mob/living/simple_animal/hostile/viscerator deliveryamt = 5 - origin_tech = "materials=3;magnets=4;syndicate=4" + origin_tech = "materials=3;magnets=4;syndicate=3" /obj/item/weapon/grenade/spawnergrenade/spesscarp name = "carp delivery grenade" spawner_type = /mob/living/simple_animal/hostile/carp deliveryamt = 5 - origin_tech = "materials=3;magnets=4;syndicate=4" + origin_tech = "materials=3;magnets=4;syndicate=3" /obj/item/weapon/grenade/spawnergrenade/feral_cats name = "feral cat delivery grenade" desc = "This grenade contains 8 dehydrated feral cats in a similar manner to dehydrated monkeys, which, upon detonation, will be rehydrated by a small reservoir of water contained within the grenade. These cats will then attack anything in sight." spawner_type = /mob/living/simple_animal/hostile/feral_cat deliveryamt = 5 - origin_tech = "materials=3;magnets=4;syndicate=4" + origin_tech = "materials=3;magnets=4;syndicate=3" /obj/item/weapon/grenade/spawnergrenade/feral_cats/prime() //Own proc for this because the regular one would flash people which was dumb. update_mob() @@ -65,4 +65,4 @@ qdel(src) - return \ No newline at end of file + return diff --git a/code/game/objects/items/weapons/grenades/syndieminibomb.dm b/code/game/objects/items/weapons/grenades/syndieminibomb.dm index 160c6846d3c..a154a4a5583 100644 --- a/code/game/objects/items/weapons/grenades/syndieminibomb.dm +++ b/code/game/objects/items/weapons/grenades/syndieminibomb.dm @@ -4,9 +4,9 @@ icon = 'icons/obj/grenade.dmi' icon_state = "syndicate" item_state = "flashbang" - origin_tech = "materials=3;magnets=4;syndicate=4" + origin_tech = "materials=3;magnets=4;syndicate=3" /obj/item/weapon/grenade/syndieminibomb/prime() update_mob() explosion(src.loc,1,2,4,flame_range = 2) - qdel(src) \ No newline at end of file + qdel(src) diff --git a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm index e802916de27..f22c706d4f5 100644 --- a/code/game/objects/items/weapons/handcuffs.dm +++ b/code/game/objects/items/weapons/handcuffs.dm @@ -11,7 +11,7 @@ throw_speed = 2 throw_range = 5 materials = list(MAT_METAL=500) - origin_tech = "materials=1" + origin_tech = "engineering=3;combat=3" breakouttime = 600 //Deciseconds = 60s = 1 minutes var/cuffsound = 'sound/weapons/handcuffs.ogg' var/trashtype = null //For disposable cuffs @@ -75,6 +75,7 @@ name = "cable restraints" desc = "Looks like some cables tied together. Could be used to tie something up." icon_state = "cuff_white" + origin_tech = "engineering=2" materials = list(MAT_METAL=150, MAT_GLASS=75) breakouttime = 300 //Deciseconds = 30s cuffsound = 'sound/weapons/cablecuff.ogg' diff --git a/code/game/objects/items/weapons/holosign.dm b/code/game/objects/items/weapons/holosign.dm index 47547ec543a..3ec25dfabaf 100644 --- a/code/game/objects/items/weapons/holosign.dm +++ b/code/game/objects/items/weapons/holosign.dm @@ -9,7 +9,7 @@ throwforce = 0 throw_speed = 3 throw_range = 7 - origin_tech = "programming=3" + origin_tech = "magnets=1;programming=3" var/list/signs = list() var/max_signs = 20 diff --git a/code/game/objects/items/weapons/implants/implant_freedom.dm b/code/game/objects/items/weapons/implants/implant_freedom.dm index 3e269622e61..44474038406 100644 --- a/code/game/objects/items/weapons/implants/implant_freedom.dm +++ b/code/game/objects/items/weapons/implants/implant_freedom.dm @@ -3,7 +3,7 @@ desc = "Use this to escape from those evil Red Shirts." icon_state = "freedom" item_color = "r" - origin_tech = "materials=2;magnets=3;biotech=3;syndicate=4" + origin_tech = "combat=5;magnets=3;biotech=4;syndicate=2" uses = 4 @@ -48,4 +48,4 @@ No Implant Specifics"} /obj/item/weapon/implantcase/freedom/New() imp = new /obj/item/weapon/implant/freedom(src) - ..() \ No newline at end of file + ..() diff --git a/code/game/objects/items/weapons/implants/implant_misc.dm b/code/game/objects/items/weapons/implants/implant_misc.dm index c949d7e561e..5d1d54e7ddf 100644 --- a/code/game/objects/items/weapons/implants/implant_misc.dm +++ b/code/game/objects/items/weapons/implants/implant_misc.dm @@ -2,7 +2,7 @@ name = "firearms authentication implant" desc = "Lets you shoot your guns" icon_state = "auth" - origin_tech = "materials=2;magnets=2;programming=2;biotech=5;syndicate=5" + origin_tech = "magnets=2;programming=7;biotech=5;syndicate=5" activated = 0 /obj/item/weapon/implant/weapons_auth/get_data() @@ -53,7 +53,7 @@ name = "emp implant" desc = "Triggers an EMP." icon_state = "emp" - origin_tech = "materials=2;biotech=3;magnets=4;syndicate=4" + origin_tech = "biotech=3;magnets=4;syndicate=1" uses = 2 /obj/item/weapon/implant/emp/activate() @@ -65,4 +65,4 @@ /obj/item/weapon/implant/cortical name = "cortical stack" desc = "A fist-sized mass of biocircuits and chips." - icon_state = "implant_evil" \ No newline at end of file + icon_state = "implant_evil" diff --git a/code/game/objects/items/weapons/implants/implant_storage.dm b/code/game/objects/items/weapons/implants/implant_storage.dm index acbed742159..0fd4fc76382 100644 --- a/code/game/objects/items/weapons/implants/implant_storage.dm +++ b/code/game/objects/items/weapons/implants/implant_storage.dm @@ -12,7 +12,7 @@ name = "storage implant" desc = "Stores up to two big items in a bluespace pocket." icon_state = "storage" - origin_tech = "materials=2;magnets=4;bluespace=4;syndicate=4" + origin_tech = "materials=2;magnets=4;bluespace=5;syndicate=4" item_color = "r" var/obj/item/weapon/storage/hidden/implant/storage diff --git a/code/game/objects/items/weapons/implants/implanter.dm b/code/game/objects/items/weapons/implants/implanter.dm index d055c7f1bb4..92d35d0ef87 100644 --- a/code/game/objects/items/weapons/implants/implanter.dm +++ b/code/game/objects/items/weapons/implants/implanter.dm @@ -7,7 +7,7 @@ throw_speed = 3 throw_range = 5 w_class = WEIGHT_CLASS_SMALL - origin_tech = "materials=1;biotech=3;programming=2" + origin_tech = "materials=2;biotech=3" materials = list(MAT_METAL=600, MAT_GLASS=200) toolspeed = 1 var/obj/item/weapon/implant/imp = null diff --git a/code/game/objects/items/weapons/implants/implantuplink.dm b/code/game/objects/items/weapons/implants/implantuplink.dm index 3ccea8aee20..0e6332e78f1 100644 --- a/code/game/objects/items/weapons/implants/implantuplink.dm +++ b/code/game/objects/items/weapons/implants/implantuplink.dm @@ -3,7 +3,7 @@ desc = "Summon things." icon = 'icons/obj/radio.dmi' icon_state = "radio" - origin_tech = "materials=2;magnets=4;programming=4;biotech=4;syndicate=8;bluespace=5" + origin_tech = "materials=4;magnets=4;programming=4;biotech=4;syndicate=5;bluespace=5" /obj/item/weapon/implant/uplink/New() hidden_uplink = new(src) @@ -32,4 +32,4 @@ /obj/item/weapon/implanter/uplink/New() imp = new /obj/item/weapon/implant/uplink(src) - ..() \ No newline at end of file + ..() diff --git a/code/game/objects/items/weapons/kitchen.dm b/code/game/objects/items/weapons/kitchen.dm index c2bb92d4f89..c3763f4924e 100644 --- a/code/game/objects/items/weapons/kitchen.dm +++ b/code/game/objects/items/weapons/kitchen.dm @@ -12,6 +12,7 @@ /obj/item/weapon/kitchen icon = 'icons/obj/kitchen.dmi' + origin_tech = "materials=1" /* * Utensils @@ -23,7 +24,6 @@ throw_speed = 3 throw_range = 5 flags = CONDUCT - origin_tech = "materials=1" attack_verb = list("attacked", "stabbed", "poked") hitsound = 'sound/weapons/bladeslice.ogg' sharp = 0 @@ -97,7 +97,6 @@ throw_speed = 3 throw_range = 6 materials = list(MAT_METAL=12000) - origin_tech = "materials=1" attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") no_embed = 1 sharp = 1 @@ -149,7 +148,7 @@ desc = "A military combat utility survival knife." force = 20 throwforce = 20 - origin_tech = "materials=2;combat=4" + origin_tech = "materials=3;combat=4" attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "cut") /obj/item/weapon/kitchen/knife/carrotshiv diff --git a/code/game/objects/items/weapons/legcuffs.dm b/code/game/objects/items/weapons/legcuffs.dm index 4592ff67cc2..cbb8c3d4ed2 100644 --- a/code/game/objects/items/weapons/legcuffs.dm +++ b/code/game/objects/items/weapons/legcuffs.dm @@ -7,7 +7,7 @@ flags = CONDUCT throwforce = 0 w_class = WEIGHT_CLASS_NORMAL - origin_tech = "materials=1" + origin_tech = "engineering=3;combat=3" slowdown = 7 breakouttime = 300 //Deciseconds = 30s = 0.5 minute @@ -17,6 +17,7 @@ throw_range = 1 icon_state = "beartrap" desc = "A trap used to catch bears and other legged creatures." + origin_tech = "engineering=4" var/armed = 0 var/trap_damage = 20 var/obj/item/weapon/grenade/iedcasing/IED = null diff --git a/code/game/objects/items/weapons/manuals.dm b/code/game/objects/items/weapons/manuals.dm index 2178ccbb726..973f25e6d2f 100644 --- a/code/game/objects/items/weapons/manuals.dm +++ b/code/game/objects/items/weapons/manuals.dm @@ -580,11 +580,8 @@

Protolathe

This machine is an advanced form of the Autolathe that produce non-circuit designs. Unlike the Autolathe, it can use processed metal, glass, solid plasma, silver, gold, and diamonds along with a variety of chemicals to produce devices. The downside is that, again, not all devices you make are 100% reliable when you first discover them. -

Reliability and You

- As it has been stated, many devices when they're first discovered do not have a 100% reliablity when you first discover them. Instead, the reliablity of the device is dependent upon a base reliability value, whatever improvements to the design you've discovered through the Destructive Analyzer, and any advancements you've made with the device's source technologies. To be able to improve the reliability of a device, you have to use the device until it breaks beyond repair. Once that happens, you can analyze it in a Destructive Analyzer. Once the device reachs a certain minimum reliability, you'll gain tech advancements from it. -

Building a Better Machine

- Many machines produces from circuit boards and inserted into a machine frame require a variety of parts to construct. These are parts like capacitors, batteries, matter bins, and so forth. As your knowledge of science improves, more advanced versions are unlocked. If you use these parts when constructing something, its attributes may be improved. For example, if you use an advanced matter bin when constructing an autolathe (rather then a regular one), it'll hold more materials. Experiment around with stock parts of various qualities to see how they affect the end results! Be warned, however: Tier 3 and higher stock parts don't have 100% reliability and their low reliability may affect the reliability of the end machine. + Many machines produces from circuit boards and inserted into a machine frame require a variety of parts to construct. These are parts like capacitors, batteries, matter bins, and so forth. As your knowledge of science improves, more advanced versions are unlocked. If you use these parts when constructing something, its attributes may be improved. For example, if you use an advanced matter bin when constructing an autolathe (rather then a regular one), it'll hold more materials. Experiment around with stock parts of various qualities to see how they affect the end results! "}*/ diff --git a/code/game/objects/items/weapons/melee/energy.dm b/code/game/objects/items/weapons/melee/energy.dm index e0c4ec435fa..1c1dbbd8363 100644 --- a/code/game/objects/items/weapons/melee/energy.dm +++ b/code/game/objects/items/weapons/melee/energy.dm @@ -66,7 +66,7 @@ hitsound = "swing_hit" flags = CONDUCT armour_penetration = 100 - origin_tech = "combat=3" + origin_tech = "combat=4;magnets=3" attack_verb = list("attacked", "chopped", "cleaved", "torn", "cut") attack_verb_on = list() sharp = 1 @@ -86,7 +86,7 @@ throw_range = 5 hitsound = "swing_hit" armour_penetration = 35 - origin_tech = "magnets=3;syndicate=4" + origin_tech = "combat=3;magnets=4;syndicate=4" block_chance = 50 sharp = 1 edge = 1 @@ -123,7 +123,6 @@ sharp = 1 edge = 1 hitsound = 'sound/weapons/circsawhit.ogg' - origin_tech = "materials=3;biotech=3;syndicate=3" icon = 'icons/obj/surgery.dmi' icon_state = "esaw_0" icon_state_on = "esaw_1" diff --git a/code/game/objects/items/weapons/melee/misc.dm b/code/game/objects/items/weapons/melee/misc.dm index 6f0de4720e3..f4ccf9fac65 100644 --- a/code/game/objects/items/weapons/melee/misc.dm +++ b/code/game/objects/items/weapons/melee/misc.dm @@ -11,7 +11,7 @@ force = 10 throwforce = 7 w_class = WEIGHT_CLASS_NORMAL - origin_tech = "combat=4" + origin_tech = "combat=5" attack_verb = list("flogged", "whipped", "lashed", "disciplined") hitsound = 'sound/weapons/slash.ogg' //pls replace @@ -61,4 +61,4 @@ force = 10 throwforce = 7 w_class = WEIGHT_CLASS_NORMAL - attack_verb = list("slashed", "stabbed", "sliced", "caned") + attack_verb = list("slashed", "stabbed", "sliced", "caned") \ No newline at end of file diff --git a/code/game/objects/items/weapons/mop.dm b/code/game/objects/items/weapons/mop.dm index 59db57459b9..93144dc6c17 100644 --- a/code/game/objects/items/weapons/mop.dm +++ b/code/game/objects/items/weapons/mop.dm @@ -78,6 +78,7 @@ mopcap = 15 icon_state = "advmop" item_state = "mop" //meh will do for now until TG makes one + origin_tech = "materials=3;engineering=3" force = 6 throwforce = 8 throw_range = 4 diff --git a/code/game/objects/items/weapons/power_cells.dm b/code/game/objects/items/weapons/power_cells.dm index de5d788a9f3..d291329f354 100644 --- a/code/game/objects/items/weapons/power_cells.dm +++ b/code/game/objects/items/weapons/power_cells.dm @@ -15,7 +15,6 @@ materials = list(MAT_METAL=700, MAT_GLASS=50) var/rigged = 0 // true if rigged to explode var/chargerate = 100 //how much power is given every tick in a recharger - var/minor_fault = 0 //If not 100% reliable, it will build up faults. var/self_recharge = 0 //does it self recharge, over time, or not? var/grown_battery = FALSE // If it's a grown that acts as a battery, add a wire overlay to it. @@ -102,7 +101,7 @@ /obj/item/weapon/stock_parts/cell/super name = "super-capacity power cell" - origin_tech = "powerstorage=5" + origin_tech = "powerstorage=3;materials=3" icon_state = "scell" maxcharge = 20000 materials = list(MAT_GLASS=300) @@ -115,7 +114,7 @@ /obj/item/weapon/stock_parts/cell/hyper name = "hyper-capacity power cell" - origin_tech = "powerstorage=6" + origin_tech = "powerstorage=4;engineering=4;materials=4" icon_state = "hpcell" maxcharge = 30000 materials = list(MAT_GLASS=400) @@ -128,7 +127,7 @@ /obj/item/weapon/stock_parts/cell/bluespace name = "bluespace power cell" - origin_tech = "powerstorage=7" + origin_tech = "powerstorage=5;bluespace=4;materials=4;engineering=4" icon_state = "bscell" maxcharge = 40000 materials = list(MAT_GLASS=600) @@ -142,7 +141,7 @@ /obj/item/weapon/stock_parts/cell/infinite name = "infinite-capacity power cell!" icon_state = "icell" - origin_tech = null + origin_tech = "powerstorage=7" maxcharge = 30000 materials = list(MAT_GLASS=1000) rating = 6 @@ -161,13 +160,12 @@ maxcharge = 300 materials = list() rating = 1 - minor_fault = 1 grown_battery = TRUE //it has the overlays for wires /obj/item/weapon/stock_parts/cell/high/slime name = "charged slime core" desc = "A yellow slime core infused with plasma, it crackles with power." - origin_tech = "powerstorage=2;biotech=4" + origin_tech = "powerstorage=5;biotech=4" icon = 'icons/mob/slimes.dmi' icon_state = "yellow slime extract" materials = list() diff --git a/code/game/objects/items/weapons/scrolls.dm b/code/game/objects/items/weapons/scrolls.dm index 254b936ed46..4ad7f70e016 100644 --- a/code/game/objects/items/weapons/scrolls.dm +++ b/code/game/objects/items/weapons/scrolls.dm @@ -8,13 +8,13 @@ item_state = "paper" throw_speed = 4 throw_range = 20 - origin_tech = "bluespace=4" + origin_tech = "bluespace=6" burn_state = FLAMMABLE /obj/item/weapon/teleportation_scroll/apprentice name = "lesser scroll of teleportation" uses = 1 - origin_tech = "bluespace 2" + origin_tech = "bluespace=5" /obj/item/weapon/teleportation_scroll/attack_self(mob/user as mob) user.set_machine(src) diff --git a/code/game/objects/items/weapons/shields.dm b/code/game/objects/items/weapons/shields.dm index d801ec7d460..6d4b1238d39 100644 --- a/code/game/objects/items/weapons/shields.dm +++ b/code/game/objects/items/weapons/shields.dm @@ -21,7 +21,7 @@ throw_range = 3 w_class = WEIGHT_CLASS_BULKY materials = list(MAT_GLASS=7500, MAT_METAL=1000) - origin_tech = "materials=2" + origin_tech = "materials=3;combat=4" attack_verb = list("shoved", "bashed") var/cooldown = 0 //shield bash cooldown. based on world.time @@ -46,6 +46,7 @@ icon_state = "buckler" item_state = "buckler" materials = list() + origin_tech = "materials=1;combat=3;biotech=2" burn_state = FLAMMABLE block_chance = 30 @@ -59,7 +60,7 @@ throw_speed = 3 throw_range = 5 w_class = WEIGHT_CLASS_TINY - origin_tech = "materials=4;magnets=3;syndicate=4" + origin_tech = "materials=4;magnets=5;syndicate=6" attack_verb = list("shoved", "bashed") var/active = 0 @@ -102,6 +103,7 @@ desc = "An advanced riot shield made of lightweight materials that collapses for easy storage." icon = 'icons/obj/weapons.dmi' icon_state = "teleriot0" + origin_tech = "materials=3;combat=4;engineering=4" slot_flags = null force = 3 throwforce = 3 diff --git a/code/game/objects/items/weapons/stock_parts.dm b/code/game/objects/items/weapons/stock_parts.dm index 3615d6848c2..29d4d310b5d 100644 --- a/code/game/objects/items/weapons/stock_parts.dm +++ b/code/game/objects/items/weapons/stock_parts.dm @@ -24,12 +24,11 @@ /obj/item/weapon/storage/part_replacer/afterattack(obj/machinery/T as obj, mob/living/carbon/human/user as mob, flag, params) if(flag) return - else - if(works_from_distance) - if(istype(T)) - if(T.component_parts) - T.exchange_parts(user, src) - user.Beam(T,icon_state="rped_upgrade",icon='icons/effects/effects.dmi',time=5) + else if(works_from_distance) + if(istype(T)) + if(T.component_parts) + T.exchange_parts(user, src) + user.Beam(T,icon_state="rped_upgrade",icon='icons/effects/effects.dmi',time=5) return /obj/item/weapon/storage/part_replacer/bluespace @@ -164,7 +163,7 @@ name = "super capacitor" desc = "A super-high capacity capacitor used in the construction of a variety of devices." icon_state = "super_capacitor" - origin_tech = "powerstorage=5;materials=4" + origin_tech = "powerstorage=4;engineering=4" rating = 3 materials = list(MAT_METAL=50, MAT_GLASS=50) @@ -172,7 +171,7 @@ name = "phasic scanning module" desc = "A compact, high resolution phasic scanning module used in the construction of certain devices." icon_state = "super_scan_module" - origin_tech = "magnets=5" + origin_tech = "magnets=4;engineering=4" rating = 3 materials = list(MAT_METAL=50, MAT_GLASS=20) @@ -180,7 +179,7 @@ name = "pico-manipulator" desc = "A tiny little manipulator used in the construction of certain devices." icon_state = "pico_mani" - origin_tech = "materials=5;programming=2" + origin_tech = "materials=4;programming=4;engineering=4" rating = 3 materials = list(MAT_METAL=30) @@ -188,7 +187,7 @@ name = "ultra-high-power micro-laser" icon_state = "ultra_high_micro_laser" desc = "A tiny laser used in certain devices." - origin_tech = "magnets=5" + origin_tech = "magnets=4;engineering=4" rating = 3 materials = list(MAT_METAL=10, MAT_GLASS=20) @@ -196,7 +195,7 @@ name = "super matter bin" desc = "A container for hold compressed matter awaiting re-construction." icon_state = "super_matter_bin" - origin_tech = "materials=5" + origin_tech = "materials=4;engineering=4" rating = 3 materials = list(MAT_METAL=80) @@ -206,7 +205,7 @@ name = "quadratic capacitor" desc = "An capacity capacitor used in the construction of a variety of devices." icon_state = "quadratic_capacitor" - origin_tech = "powerstorage=6;materials=5" + origin_tech = "powerstorage=5;materials=4;engineering=4" rating = 4 materials = list(MAT_METAL=50, MAT_GLASS=50) @@ -214,7 +213,7 @@ name = "triphasic scanning module" desc = "A compact, ultra resolution triphasic scanning module used in the construction of certain devices." icon_state = "triphasic_scan_module" - origin_tech = "magnets=6" + origin_tech = "magnets=5;materials=4;engineering=4" rating = 4 materials = list(MAT_METAL=50, MAT_GLASS=20) @@ -222,7 +221,7 @@ name = "femto-manipulator" desc = "A tiny little manipulator used in the construction of certain devices." icon_state = "femto_mani" - origin_tech = "materials=6;programming=3" + origin_tech = "materials=6;programming=4;engineering=4" rating = 4 materials = list(MAT_METAL=30) @@ -230,7 +229,7 @@ name = "quad-ultra micro-laser" icon_state = "quadultra_micro_laser" desc = "A tiny laser used in certain devices." - origin_tech = "magnets=6" + origin_tech = "magnets=5;materials=4;engineering=4" rating = 4 materials = list(MAT_METAL=10, MAT_GLASS=20) @@ -238,7 +237,7 @@ name = "bluespace matter bin" desc = "A container for hold compressed matter awaiting re-construction." icon_state = "bluespace_matter_bin" - origin_tech = "materials=6" + origin_tech = "materials=6;programming=4;engineering=4" rating = 4 materials = list(MAT_METAL=80) @@ -248,49 +247,49 @@ name = "subspace ansible" icon_state = "subspace_ansible" desc = "A compact module capable of sensing extradimensional activity." - origin_tech = "programming=2;magnets=3;materials=2;bluespace=1" + origin_tech = "programming=2;magnets=2;materials=2;bluespace=1" materials = list(MAT_METAL=30, MAT_GLASS=10) /obj/item/weapon/stock_parts/subspace/filter name = "hyperwave filter" icon_state = "hyperwave_filter" desc = "A tiny device capable of filtering and converting super-intense radiowaves." - origin_tech = "programming=2;magnets=1" + origin_tech = "programming=2;magnets=2" materials = list(MAT_METAL=30, MAT_GLASS=10) /obj/item/weapon/stock_parts/subspace/amplifier name = "subspace amplifier" icon_state = "subspace_amplifier" desc = "A compact micro-machine capable of amplifying weak subspace transmissions." - origin_tech = "programming=2;magnets=2;materials=1;bluespace=1" + origin_tech = "programming=2;magnets=2;materials=2;bluespace=2" materials = list(MAT_METAL=30, MAT_GLASS=10) /obj/item/weapon/stock_parts/subspace/treatment name = "subspace treatment disk" icon_state = "treatment_disk" desc = "A compact micro-machine capable of stretching out hyper-compressed radio waves." - origin_tech = "programming=2;magnets=1;materials=3;bluespace=1" + origin_tech = "programming=2;magnets=2;materials=2;bluespace=2" materials = list(MAT_METAL=30, MAT_GLASS=10) /obj/item/weapon/stock_parts/subspace/analyzer name = "subspace wavelength analyzer" icon_state = "wavelength_analyzer" desc = "A sophisticated analyzer capable of analyzing cryptic subspace wavelengths." - origin_tech = "programming=2;magnets=2;materials=2;bluespace=1" + origin_tech = "programming=2;magnets=2;materials=2;bluespace=2" materials = list(MAT_METAL=30, MAT_GLASS=10) /obj/item/weapon/stock_parts/subspace/crystal name = "ansible crystal" icon_state = "ansible_crystal" desc = "A crystal made from pure glass used to transmit laser databursts to subspace." - origin_tech = "magnets=2;materials=2;bluespace=1" + origin_tech = "magnets=2;materials=2;bluespace=2;plasmatech=2" materials = list(MAT_GLASS=50) /obj/item/weapon/stock_parts/subspace/transmitter name = "subspace transmitter" icon_state = "subspace_transmitter" desc = "A large piece of equipment used to open a window into the subspace dimension." - origin_tech = "magnets=3;materials=3;bluespace=2" + origin_tech = "magnets=2;materials=2;bluespace=2" materials = list(MAT_METAL=50) /obj/item/weapon/research//Makes testing much less of a pain -Sieve @@ -298,4 +297,4 @@ icon = 'icons/obj/stock_parts.dmi' icon_state = "capacitor" desc = "A debug item for research." - origin_tech = "materials=8;programming=8;magnets=8;powerstorage=8;bluespace=8;combat=8;biotech=8;syndicate=8" + origin_tech = "materials=8;programming=8;magnets=8;powerstorage=8;bluespace=8;combat=8;biotech=8;syndicate=8;engineering=8;plasmatech=8;abductor=8" diff --git a/code/game/objects/items/weapons/storage/artistic_toolbox.dm b/code/game/objects/items/weapons/storage/artistic_toolbox.dm index 470c273bd69..1b6cbd5a027 100644 --- a/code/game/objects/items/weapons/storage/artistic_toolbox.dm +++ b/code/game/objects/items/weapons/storage/artistic_toolbox.dm @@ -12,6 +12,7 @@ desc = "His Grace." force = 5 throwforce = 10 + origin_tech = "combat=4;engineering=4;syndicate=2" var/list/servantlinks = list() var/hunger = 0 var/hunger_message_level = 0 diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm index 6a5f9b80ae3..99e24b393a5 100644 --- a/code/game/objects/items/weapons/storage/backpack.dm +++ b/code/game/objects/items/weapons/storage/backpack.dm @@ -33,55 +33,39 @@ /obj/item/weapon/storage/backpack/holding name = "Bag of Holding" desc = "A backpack that opens into a localized pocket of Blue Space." - origin_tech = "bluespace=4" + origin_tech = "bluespace=5;materials=4;engineering=4;plasmatech=5" icon_state = "holdingpack" max_w_class = WEIGHT_CLASS_HUGE max_combined_w_class = 35 burn_state = FIRE_PROOF - New() - ..() - return +/obj/item/weapon/storage/backpack/holding/New() + ..() + return - attackby(obj/item/weapon/W as obj, mob/user as mob, params) - if(crit_fail) - to_chat(user, "The Bluespace generator isn't working.") - return - else if(istype(W, /obj/item/weapon/storage/backpack/holding) && !W.crit_fail) - var/response = alert(user, "Are you sure you want to put the bag of holding inside another bag of holding?","Are you sure you want to die?","Yes","No") - if(response == "Yes") - user.visible_message("[user] grins as \he begins to put a Bag of Holding into a Bag of Holding!", "You begin to put the Bag of Holding into the Bag of Holding!") - if(do_after(user, 30, target=src)) - investigate_log("has become a singularity. Caused by [user.key]","singulo") - user.visible_message("[user] erupts in evil laughter as \he puts the Bag of Holding into another Bag of Holding!", "You can't help but laugh wildly as you put the Bag of Holding into another Bag of Holding, complete darkness surrounding you."," You hear the sound of scientific evil brewing! ") - qdel(W) - var/obj/singularity/singulo = new /obj/singularity(get_turf(user)) - singulo.energy = 300 //To give it a small boost - message_admins("[key_name_admin(user)] detonated a bag of holding JMP)") - log_game("[key_name(user)] detonated a bag of holding") - qdel(src) - else - user.visible_message("After careful consideration, [user] has decided that putting a Bag of Holding inside another Bag of Holding would not yield the ideal outcome.","You come to the realization that this might not be the greatest idea.") - else - . = ..() - - proc/failcheck(mob/user as mob) - if(prob(src.reliability)) return 1 //No failure - if(prob(src.reliability)) - to_chat(user, "The Bluespace portal resists your attempt to add another item.")//light failure - - else - to_chat(user, "The Bluespace generator malfunctions!") - for(var/obj/O in src.contents) //it broke, delete what was in it - qdel(O) - crit_fail = 1 - icon_state = "brokenpack" - - singularity_act(current_size) - var/dist = max((current_size - 2),1) - explosion(src.loc,(dist),(dist*2),(dist*4)) - return +/obj/item/weapon/storage/backpack/holding/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/storage/backpack/holding)) + var/response = alert(user, "Are you sure you want to put the bag of holding inside another bag of holding?","Are you sure you want to die?","Yes","No") + if(response == "Yes") + user.visible_message("[user] grins as \he begins to put a Bag of Holding into a Bag of Holding!", "You begin to put the Bag of Holding into the Bag of Holding!") + if(do_after(user, 30, target=src)) + investigate_log("has become a singularity. Caused by [user.key]","singulo") + user.visible_message("[user] erupts in evil laughter as \he puts the Bag of Holding into another Bag of Holding!", "You can't help but laugh wildly as you put the Bag of Holding into another Bag of Holding, complete darkness surrounding you."," You hear the sound of scientific evil brewing! ") + qdel(W) + var/obj/singularity/singulo = new /obj/singularity(get_turf(user)) + singulo.energy = 300 //To give it a small boost + message_admins("[key_name_admin(user)] detonated a bag of holding JMP)") + log_game("[key_name(user)] detonated a bag of holding") + qdel(src) + else + user.visible_message("After careful consideration, [user] has decided that putting a Bag of Holding inside another Bag of Holding would not yield the ideal outcome.","You come to the realization that this might not be the greatest idea.") + else + . = ..() +/obj/item/weapon/storage/backpack/holding/singularity_act(current_size) + var/dist = max((current_size - 2),1) + explosion(src.loc,(dist),(dist*2),(dist*4)) + return /obj/item/weapon/storage/backpack/santabag name = "Santa's Gift Bag" diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm index 0cff8d89ea4..9ea57893c56 100644 --- a/code/game/objects/items/weapons/storage/bags.dm +++ b/code/game/objects/items/weapons/storage/bags.dm @@ -72,6 +72,7 @@ name = "trash bag of holding" desc = "The latest and greatest in custodial convenience, a trashbag that is capable of holding vast quantities of garbage." icon_state = "bluetrashbag" + origin_tech = "materials=4;bluespace=4;engineering=4;plasmatech=3" max_combined_w_class = 60 storage_slots = 60 @@ -131,6 +132,7 @@ desc = "This little bugger can be used to store and transport ores." icon = 'icons/obj/mining.dmi' icon_state = "satchel" + origin_tech = "engineering=2" slot_flags = SLOT_BELT | SLOT_POCKET w_class = WEIGHT_CLASS_NORMAL storage_slots = 50 @@ -147,7 +149,7 @@ desc = "A revolution in convenience, this satchel allows for infinite ore storage. It's been outfitted with anti-malfunction safety measures." storage_slots = INFINITY max_combined_w_class = INFINITY - origin_tech = "bluespace=3" + origin_tech = "bluespace=4;materials=3;engineering=3" icon_state = "satchel_bspace" /obj/item/weapon/storage/bag/ore/holding/cyborg diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index dd1af4c6ea4..95e72d458f7 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -509,21 +509,9 @@ w_class = WEIGHT_CLASS_BULKY max_w_class = WEIGHT_CLASS_SMALL max_combined_w_class = 21 // = 14 * 1.5, not 14 * 2. This is deliberate - origin_tech = "bluespace=4" + origin_tech = "bluespace=5;materials=4;engineering=4;plasmatech=5" can_hold = list() - proc/failcheck(mob/user as mob) - if(prob(src.reliability)) return 1 //No failure - if(prob(src.reliability)) - to_chat(user, "The Bluespace portal resists your attempt to add another item.")//light failure - - else - to_chat(user, "The Bluespace generator malfunctions!") - for(var/obj/O in src.contents) //it broke, delete what was in it - qdel(O) - crit_fail = 1 - return 0 - /obj/item/weapon/storage/belt/bluespace/owlman name = "Owlman's utility belt" desc = "Sometimes people choose justice. Sometimes, justice chooses you..." @@ -532,7 +520,7 @@ storage_slots = 6 max_w_class = WEIGHT_CLASS_NORMAL max_combined_w_class = 18 - origin_tech = "bluespace=4;syndicate=2" + origin_tech = "bluespace=5;materials=4;engineering=4;plasmatech=5" allow_quick_empty = 1 can_hold = list( /obj/item/weapon/grenade/smokebomb, diff --git a/code/game/objects/items/weapons/storage/toolbox.dm b/code/game/objects/items/weapons/storage/toolbox.dm index 3c7bcee7ab4..dfad952b12e 100644 --- a/code/game/objects/items/weapons/storage/toolbox.dm +++ b/code/game/objects/items/weapons/storage/toolbox.dm @@ -11,7 +11,7 @@ throw_range = 7 w_class = WEIGHT_CLASS_BULKY materials = list(MAT_METAL = 500) - origin_tech = "combat=1" + origin_tech = "combat=1;engineering=1" attack_verb = list("robusted") hitsound = 'sound/weapons/smash.ogg' @@ -71,7 +71,7 @@ name = "suspicious looking toolbox" icon_state = "syndicate" item_state = "toolbox_syndi" - origin_tech = "combat=1;syndicate=1" + origin_tech = "combat=2;syndicate=1;engineering=2" silent = 1 force = 15.0 throwforce = 18.0 diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm index ca91b988442..9a01f150ea9 100644 --- a/code/game/objects/items/weapons/stunbaton.dm +++ b/code/game/objects/items/weapons/stunbaton.dm @@ -165,8 +165,6 @@ /obj/item/weapon/melee/baton/emp_act(severity) if(bcell) deductcharge(1000 / severity) - if(bcell.reliability != 100 && prob(50/severity)) - bcell.reliability -= 10 / severity ..() /obj/item/weapon/melee/baton/wash(mob/user, atom/source) diff --git a/code/game/objects/items/weapons/table_rack_parts.dm b/code/game/objects/items/weapons/table_rack_parts.dm index 3073125bae0..684dbc688a1 100644 --- a/code/game/objects/items/weapons/table_rack_parts.dm +++ b/code/game/objects/items/weapons/table_rack_parts.dm @@ -88,9 +88,10 @@ for(var/obj/structure/table/T in user.loc) to_chat(user, "You can't build tables on top of tables!") return - new result(user.loc) - user.drop_item() - qdel(src) + if(do_after(user, 20, target = loc)) + new result(user.loc) + user.drop_item() + qdel(src) /* * Rack Parts @@ -102,7 +103,8 @@ qdel(src) /obj/item/weapon/rack_parts/attack_self(mob/user as mob) - var/obj/structure/rack/R = new /obj/structure/rack(user.loc) - R.add_fingerprint(user) - user.drop_item() - qdel(src) \ No newline at end of file + if(do_after(user, 20, target = loc)) + var/obj/structure/rack/R = new /obj/structure/rack(user.loc) + R.add_fingerprint(user) + user.drop_item() + qdel(src) diff --git a/code/game/objects/items/weapons/teleportation.dm b/code/game/objects/items/weapons/teleportation.dm index dafda733396..0a984821fad 100644 --- a/code/game/objects/items/weapons/teleportation.dm +++ b/code/game/objects/items/weapons/teleportation.dm @@ -22,7 +22,7 @@ throw_speed = 4 throw_range = 20 materials = list(MAT_METAL=400) - origin_tech = "magnets=1" + origin_tech = "magnets=3;bluespace=2" /obj/item/weapon/locator/attack_self(mob/user as mob) add_fingerprint(usr) @@ -102,7 +102,7 @@ Frequency: throw_speed = 3 throw_range = 5 materials = list(MAT_METAL=10000) - origin_tech = "magnets=1;bluespace=3" + origin_tech = "magnets=3;bluespace=4" var/active_portals = 0 /obj/item/weapon/hand_tele/attack_self(mob/user as mob) diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm index a79ddf37341..cdd8b8a5de1 100644 --- a/code/game/objects/items/weapons/twohanded.dm +++ b/code/game/objects/items/weapons/twohanded.dm @@ -205,7 +205,7 @@ wieldsound = 'sound/weapons/saberon.ogg' unwieldsound = 'sound/weapons/saberoff.ogg' armour_penetration = 35 - origin_tech = "magnets=3;syndicate=4" + origin_tech = "magnets=4;syndicate=5" attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") block_chance = 75 sharp = 1 @@ -547,7 +547,7 @@ throw_range = 1 w_class = WEIGHT_CLASS_HUGE var/charged = 5 - origin_tech = "combat=5;bluespace=4" + origin_tech = "combat=4;bluespace=4;plasmatech=7" /obj/item/weapon/twohanded/singularityhammer/New() ..() @@ -612,7 +612,7 @@ throw_range = 7 w_class = WEIGHT_CLASS_HUGE //var/charged = 5 - origin_tech = "combat=5;powerstorage=5" + origin_tech = "combat=4;powerstorage=7" /obj/item/weapon/twohanded/mjollnir/proc/shock(mob/living/target as mob) var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread() diff --git a/code/game/response_team.dm b/code/game/response_team.dm index bf25ad6760e..344a9b72054 100644 --- a/code/game/response_team.dm +++ b/code/game/response_team.dm @@ -195,6 +195,8 @@ var/ert_request_answered = 0 ticker.mode.ert += M.mind M.forceMove(spawn_location) + job_master.CreateMoneyAccount(M, class, null) + active_team.equip_officer(class, M) return M @@ -332,6 +334,8 @@ var/ert_request_answered = 0 W.name = "[H.real_name]'s ID Card ([rt_job])" W.access = get_centcom_access(W.assignment) W.photo = get_id_photo(H) + if(H.mind && H.mind.initial_account && H.mind.initial_account.account_number) + W.associated_account_number = H.mind.initial_account.account_number /datum/outfit/job/centcom/response_team/imprint_pda(mob/living/carbon/human/H) var/obj/item/device/pda/PDA = H.wear_pda diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 605c4acd1f3..f3e74d9ff7a 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1546,7 +1546,7 @@ to_chat(X, take_msg) else if(is_mhelp && check_rights(R_MOD|R_MENTOR, 0, X.mob)) to_chat(X, take_msg) - to_chat(M, "Your question is being attended to by [key_name(usr.client)]. Thanks for your patience!") + to_chat(M, "Your question is being attended to by [key_name(usr.client, null, 0)]. Thanks for your patience!") else to_chat(usr, "Unable to locate mob.") diff --git a/code/modules/assembly/assembly.dm b/code/modules/assembly/assembly.dm index 8092d768ad0..34cb4c458f0 100644 --- a/code/modules/assembly/assembly.dm +++ b/code/modules/assembly/assembly.dm @@ -9,7 +9,7 @@ throwforce = 2 throw_speed = 3 throw_range = 10 - origin_tech = "magnets=1" + origin_tech = "magnets=1;engineering=1" toolspeed = 1 usesound = 'sound/items/Deconstruct.ogg' diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm index 3e0c8061ceb..16b047ab1f0 100644 --- a/code/modules/assembly/infrared.dm +++ b/code/modules/assembly/infrared.dm @@ -3,7 +3,7 @@ desc = "Emits a visible or invisible beam and is triggered when the beam is interrupted." icon_state = "infrared" materials = list(MAT_METAL=1000, MAT_GLASS=500) - origin_tech = "magnets=2" + origin_tech = "magnets=2;materials=2" bomb_name = "tripwire mine" diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm index 02a869c9bc3..7436d27a608 100644 --- a/code/modules/assembly/mousetrap.dm +++ b/code/modules/assembly/mousetrap.dm @@ -3,7 +3,7 @@ desc = "A handy little spring-loaded trap for catching pesty rodents." icon_state = "mousetrap" materials = list(MAT_METAL=100) - origin_tech = "combat=1" + origin_tech = "combat=1;materials=2;engineering=1" var/armed = 0 bomb_name = "contact mine" diff --git a/code/modules/assembly/proximity.dm b/code/modules/assembly/proximity.dm index f3296cdabb0..767fe11b8c6 100644 --- a/code/modules/assembly/proximity.dm +++ b/code/modules/assembly/proximity.dm @@ -3,7 +3,7 @@ desc = "Used for scanning and alerting when someone enters a certain proximity." icon_state = "prox" materials = list(MAT_METAL=800, MAT_GLASS=200) - origin_tech = "magnets=1" + origin_tech = "magnets=1;engineering=1" secured = 0 diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm index 9a76869d339..959a8d60452 100644 --- a/code/modules/assembly/signaler.dm +++ b/code/modules/assembly/signaler.dm @@ -4,7 +4,7 @@ icon_state = "signaller" item_state = "signaler" materials = list(MAT_METAL=400, MAT_GLASS=120) - origin_tech = "magnets=1" + origin_tech = "magnets=1;bluespace=1" wires = WIRE_RECEIVE | WIRE_PULSE | WIRE_RADIO_PULSE | WIRE_RADIO_RECEIVE secured = 1 diff --git a/code/modules/assembly/timer.dm b/code/modules/assembly/timer.dm index 0587a806b2b..eeed711ee29 100644 --- a/code/modules/assembly/timer.dm +++ b/code/modules/assembly/timer.dm @@ -3,7 +3,7 @@ desc = "Used to time things. Works well with contraptions which has to count down. Tick tock." icon_state = "timer" materials = list(MAT_METAL=500, MAT_GLASS=50) - origin_tech = "magnets=1" + origin_tech = "magnets=1;engineering=1" secured = 0 diff --git a/code/modules/assembly/voice.dm b/code/modules/assembly/voice.dm index ba0752dd28e..05f5b62a741 100644 --- a/code/modules/assembly/voice.dm +++ b/code/modules/assembly/voice.dm @@ -3,7 +3,7 @@ desc = "A small electronic device able to record a voice sample, and send a signal when that sample is repeated." icon_state = "voice" materials = list(MAT_METAL=500, MAT_GLASS=50) - origin_tech = "magnets=1" + origin_tech = "magnets=1;engineering=1" var/listening = 0 var/recorded = null //the activation message var/recorded_type = 0 // 0 for say, 1 for emote @@ -18,10 +18,10 @@ hear_talk(mob/living/M as mob, msg) hear_input(M, msg, 0) - + hear_message(mob/living/M as mob, msg) hear_input(M, msg, 1) - + proc/hear_input(mob/living/M as mob, msg, type) if(!istype(M,/mob/living)) return diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm index 5c0c6dcb402..c7c7c3afcb0 100644 --- a/code/modules/clothing/glasses/glasses.dm +++ b/code/modules/clothing/glasses/glasses.dm @@ -35,7 +35,7 @@ desc = "Used for seeing walls, floors, and stuff through anything." icon_state = "meson" item_state = "glasses" - origin_tech = "magnets=2;engineering=2" + origin_tech = "magnets=1;engineering=2" vision_flags = SEE_TURFS invis_view = SEE_INVISIBLE_MINIMUM //don't render darkness while wearing these prescription_upgradable = 1 @@ -51,6 +51,7 @@ desc = "An Optical Meson Scanner fitted with an amplified visible light spectrum overlay, providing greater visual clarity in darkness." icon_state = "nvgmeson" item_state = "glasses" + origin_tech = "magnets=4;engineering=5;plasmatech=4" darkness_view = 8 prescription_upgradable = 0 @@ -84,6 +85,7 @@ desc = "A pair of snazzy goggles used to protect against chemical spills. Fitted with an analyzer for scanning items and reagents." icon_state = "purple" item_state = "glasses" + origin_tech = "magnets=2;engineering=1" prescription_upgradable = 0 scan_reagents = 1 //You can see reagents while wearing science goggles species_fit = list("Vox") @@ -119,7 +121,7 @@ desc = "You can totally see in the dark now!" icon_state = "night" item_state = "glasses" - origin_tech = "magnets=2" + origin_tech = "materials=4;magnets=4;plasmatech=4;engineering=4" darkness_view = 8 invis_view = SEE_INVISIBLE_MINIMUM //don't render darkness while wearing these species_fit = list("Vox") diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm index 9eb2455622e..818ed3f2f10 100644 --- a/code/modules/clothing/glasses/hud.dm +++ b/code/modules/clothing/glasses/hud.dm @@ -29,6 +29,7 @@ name = "\improper Health Scanner HUD" desc = "A heads-up display that scans the humans in view and provides accurate data about their health status." icon_state = "healthhud" + origin_tech = "magnets=3;biotech=2" HUDType = DATA_HUD_MEDICAL_ADVANCED species_fit = list("Vox") sprite_sheets = list( @@ -48,6 +49,7 @@ desc = "An advanced medical head-up display that allows doctors to find patients in complete darkness." icon_state = "healthhudnight" item_state = "glasses" + origin_tech = "magnets=4;biotech=4;plasmatech=4;engineering=5" darkness_view = 8 invis_view = SEE_INVISIBLE_MINIMUM //don't render darkness while wearing these prescription_upgradable = 0 @@ -56,6 +58,7 @@ name = "Diagnostic HUD" desc = "A heads-up display capable of analyzing the integrity and status of robotics and exosuits." icon_state = "diagnostichud" + origin_tech = "magnets=2;engineering=2" HUDType = DATA_HUD_DIAGNOSTIC species_fit = list("Vox") sprite_sheets = list( @@ -67,6 +70,7 @@ desc = "A robotics diagnostic HUD fitted with a light amplifier." icon_state = "diagnostichudnight" item_state = "glasses" + origin_tech = "magnets=4;powerstorage=4;plasmatech=4;engineering=5" darkness_view = 8 invis_view = SEE_INVISIBLE_MINIMUM //don't render darkness while wearing these prescription_upgradable = 0 @@ -75,6 +79,7 @@ name = "\improper Security HUD" desc = "A heads-up display that scans the humans in view and provides accurate data about their ID status and security records." icon_state = "securityhud" + origin_tech = "magnets=3;combat=2" var/global/list/jobs[0] HUDType = DATA_HUD_SECURITY_ADVANCED species_fit = list("Vox") @@ -102,6 +107,7 @@ name = "\improper Night Vision Security HUD" desc = "An advanced heads-up display which provides id data and vision in complete darkness." icon_state = "securityhudnight" + origin_tech = "magnets=4;combat=4;plasmatech=4;engineering=5" darkness_view = 8 invis_view = SEE_INVISIBLE_MINIMUM //don't render darkness while wearing these prescription_upgradable = 0 @@ -110,6 +116,7 @@ name = "HUDSunglasses" desc = "Sunglasses with a HUD." icon_state = "sunhud" + origin_tech = "magnets=3;combat=3;engineering=3" darkness_view = 1 flash_protect = 1 tint = 1 @@ -165,4 +172,4 @@ up = 0 /obj/item/clothing/glasses/hud/health/tajblind/attack_self() - toggle_veil() \ No newline at end of file + toggle_veil() diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 908397f990e..80350b3f3fe 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -31,7 +31,7 @@ flash_protect = 2 tint = 2 armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) - origin_tech = "materials=2;engineering=2" + origin_tech = "materials=2;engineering=3" actions_types = list(/datum/action/item_action/toggle) /obj/item/clothing/mask/gas/welding/attack_self() diff --git a/code/modules/clothing/masks/voice.dm b/code/modules/clothing/masks/voice.dm index 8655c2b7541..01dd9a65a99 100644 --- a/code/modules/clothing/masks/voice.dm +++ b/code/modules/clothing/masks/voice.dm @@ -8,7 +8,6 @@ name = "gas mask" // desc = "A face-covering mask that can be connected to an air supply. It seems to house some odd electronics." var/obj/item/voice_changer/changer - origin_tech = "syndicate=4" burn_state = FIRE_PROOF /obj/item/clothing/mask/gas/voice/verb/Toggle_Voice_Changer() diff --git a/code/modules/clothing/shoes/magboots.dm b/code/modules/clothing/shoes/magboots.dm index b036946e4ae..88796165114 100644 --- a/code/modules/clothing/shoes/magboots.dm +++ b/code/modules/clothing/shoes/magboots.dm @@ -2,6 +2,7 @@ desc = "Magnetic boots, often used during extravehicular activity to ensure the user remains safely attached to the vehicle." name = "magboots" icon_state = "magboots0" + origin_tech = "materials=3;magnets=4;engineering=4" var/magboot_state = "magboots" var/magpulse = 0 var/slowdown_active = 2 @@ -40,13 +41,14 @@ icon_state = "advmag0" magboot_state = "advmag" slowdown_active = SHOES_SLOWDOWN + origin_tech = null /obj/item/clothing/shoes/magboots/syndie desc = "Reverse-engineered magnetic boots that have a heavy magnetic pull. Property of Gorlex Marauders." name = "blood-red magboots" icon_state = "syndiemag0" magboot_state = "syndiemag" - origin_tech = "magnets=2;syndicate=3" + origin_tech = "magnets=4;syndicate=2" obj/item/clothing/shoes/magboots/syndie/advance //For the Syndicate Strike Team desc = "Reverse-engineered magboots that appear to be based on an advanced model, as they have a lighter magnetic pull. Property of Gorlex Marauders." diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index 7a651881699..6a07ea17da8 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -5,7 +5,7 @@ item_state = "brown" permeability_coefficient = 0.05 flags = NOSLIP - origin_tech = "syndicate=3" + origin_tech = "syndicate=2" burn_state = FIRE_PROOF var/list/clothing_choices = list() silence_steps = 1 diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm index 4e43aaf61b4..273dab0c787 100644 --- a/code/modules/clothing/spacesuits/plasmamen.dm +++ b/code/modules/clothing/spacesuits/plasmamen.dm @@ -115,7 +115,8 @@ base_state = "plasmamanAtmos_helmet" armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 0) max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT - + flash_protect = 2 + /obj/item/clothing/suit/space/eva/plasmaman/engineer name = "plasmaman engineer suit" icon_state = "plasmamanEngineer_suit" @@ -126,7 +127,8 @@ icon_state = "plasmamanEngineer_helmet0" base_state = "plasmamanEngineer_helmet" armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75) - + flash_protect = 2 + /obj/item/clothing/suit/space/eva/plasmaman/engineer/ce name = "plasmaman chief engineer suit" icon_state = "plasmaman_CE" @@ -138,7 +140,7 @@ icon_state = "plasmaman_CE_helmet0" base_state = "plasmaman_CE_helmet" max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT - + flash_protect = 2 //SERVICE /obj/item/clothing/suit/space/eva/plasmaman/assistant diff --git a/code/modules/clothing/under/chameleon.dm b/code/modules/clothing/under/chameleon.dm index 63f09efd3bf..8828f7a4c2e 100644 --- a/code/modules/clothing/under/chameleon.dm +++ b/code/modules/clothing/under/chameleon.dm @@ -5,7 +5,7 @@ item_state = "bl_suit" item_color = "black" desc = "It's a plain jumpsuit. It seems to have a small dial on the wrist." - origin_tech = "syndicate=3" + origin_tech = "syndicate=2" var/list/clothing_choices = list() burn_state = FIRE_PROOF armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0) diff --git a/code/modules/detective_work/scanner.dm b/code/modules/detective_work/scanner.dm index bb1a79f13ad..c8c2ace6d88 100644 --- a/code/modules/detective_work/scanner.dm +++ b/code/modules/detective_work/scanner.dm @@ -11,7 +11,7 @@ item_state = "electronic" flags = CONDUCT | NOBLUDGEON slot_flags = SLOT_BELT - origin_tech = "magnets=4;biotech=2" + origin_tech = "engineering=4;biotech=2;programming=5" var/scanning = 0 var/list/log = list() actions_types = list(/datum/action/item_action/print_report) diff --git a/code/modules/mining/equipment_locker.dm b/code/modules/mining/equipment_locker.dm index 8bb891834a9..2c37ad5c5bb 100644 --- a/code/modules/mining/equipment_locker.dm +++ b/code/modules/mining/equipment_locker.dm @@ -614,6 +614,7 @@ icon = 'icons/obj/items.dmi' icon_state = "resonator" item_state = "resonator" + origin_tech = "magnets=3;engineering=3" desc = "A handheld device that creates small fields of energy that resonate until they detonate, crushing rock. It can also be activated without a target to create a field at the user's location, to act as a delayed time trap. It's more effective in a vaccuum." w_class = WEIGHT_CLASS_NORMAL force = 8 @@ -627,7 +628,7 @@ name = "upgraded resonator" desc = "An upgraded version of the resonator that can produce more fields at once." icon_state = "resonator_u" - origin_tech = "magnets=3;combat=3" + origin_tech = "materials=4;powerstorage=3;engineering=3;magnets=3" fieldlimit = 5 /obj/item/weapon/resonator/proc/CreateResonance(var/target, var/creator) @@ -745,6 +746,7 @@ icon = 'icons/obj/hypo.dmi' icon_state = "lazarus_hypo" item_state = "hypo" + origin_tech = "biotech=4;magnets=6" throwforce = 0 w_class = WEIGHT_CLASS_SMALL throw_speed = 3 @@ -928,6 +930,7 @@ name = "mining jetpack" icon_state = "jetpack-mining" item_state = "jetpack-mining" + origin_tech = "materials=4;magnets=4;engineering=5" desc = "A tank of compressed carbon dioxide for miners to use as propulsion in local space. The compact size allows for easy storage at the cost of capacity." volume = 40 throw_range = 7 @@ -941,7 +944,7 @@ icon_state = "bottle19" desc = "Inject a hivelord core with this stabilizer to preserve its healing powers indefinitely." w_class = WEIGHT_CLASS_TINY - origin_tech = "biotech=1" + origin_tech = "biotech=3" /obj/item/weapon/hivelordstabilizer/afterattack(obj/item/organ/internal/M, mob/user) var/obj/item/organ/internal/hivelord_core/C = M diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index fba1c56fac0..96735d1a078 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -82,7 +82,7 @@ w_class = WEIGHT_CLASS_BULKY materials = list(MAT_METAL=2000) //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" + origin_tech = "materials=2;engineering=3" attack_verb = list("hit", "pierced", "sliced", "attacked") var/list/digsound = list('sound/effects/picaxe1.ogg','sound/effects/picaxe2.ogg','sound/effects/picaxe3.ogg') var/drill_verb = "picking" @@ -100,7 +100,7 @@ icon_state = "spickaxe" item_state = "spickaxe" digspeed = 30 //mines faster than a normal pickaxe, bought from mining vendor - origin_tech = "materials=3;engineering=2" + origin_tech = "materials=3;engineering=4" desc = "A silver-plated pickaxe that mines slightly faster than standard-issue." toolspeed = 0.75 @@ -109,7 +109,7 @@ icon_state = "gpickaxe" item_state = "gpickaxe" digspeed = 20 - origin_tech = "materials=4;engineering=2" + origin_tech = "materials=4;engineering=4" desc = "A gold-plated pickaxe that mines faster than standard-issue." toolspeed = 0.6 @@ -118,7 +118,7 @@ icon_state = "dpickaxe" item_state = "dpickaxe" digspeed = 20 //mines twice as fast as a normal pickaxe, bought from mining vendor - origin_tech = "materials=4;engineering=3" + origin_tech = "materials=5;engineering=4" desc = "A pickaxe with a diamond pick head. Extremely robust at cracking rock walls and digging up dirt." toolspeed = 0.5 @@ -130,7 +130,7 @@ digsound = list('sound/weapons/drill.ogg') hitsound = 'sound/weapons/drill.ogg' usesound = 'sound/weapons/drill.ogg' - origin_tech = "materials=2;powerstorage=3;engineering=2" + origin_tech = "materials=2;powerstorage=2;engineering=3" desc = "An electric mining drill for the especially scrawny." toolspeed = 0.5 @@ -143,14 +143,14 @@ name = "diamond-tipped mining drill" icon_state = "diamonddrill" digspeed = 10 - origin_tech = "materials=6;powerstorage=4;engineering=5" + origin_tech = "materials=6;powerstorage=4;engineering=4" desc = "Yours is the drill that will pierce the heavens!" toolspeed = 0.25 /obj/item/weapon/pickaxe/diamonddrill/traitor //Pocket-sized traitor diamond drill. name = "supermatter drill" icon_state = "smdrill" - origin_tech = "materials=6;powerstorage=4;engineering=5;syndicate=3" + origin_tech = "materials=6;powerstorage=4;engineering=4;syndicate=3" desc = "Microscopic supermatter crystals cover the head of this tiny drill." w_class = WEIGHT_CLASS_SMALL @@ -165,7 +165,7 @@ icon_state = "jackhammer" item_state = "jackhammer" digspeed = 5 //the epitome of powertools. extremely fast mining, laughs at puny walls - origin_tech = "materials=3;powerstorage=2;engineering=2" + origin_tech = "materials=6;powerstorage=4;engineering=5;magnets=4" digsound = list('sound/weapons/sonic_jackhammer.ogg') hitsound = 'sound/weapons/sonic_jackhammer.ogg' usesound = 'sound/weapons/sonic_jackhammer.ogg' @@ -186,7 +186,7 @@ item_state = "shovel" w_class = WEIGHT_CLASS_NORMAL materials = list(MAT_METAL=50) - origin_tech = "materials=1;engineering=1" + origin_tech = "materials=2;engineering=2" attack_verb = list("bashed", "bludgeoned", "thrashed", "whacked") usesound = 'sound/effects/shovel_dig.ogg' toolspeed = 1 diff --git a/code/modules/mob/living/carbon/brain/MMI.dm b/code/modules/mob/living/carbon/brain/MMI.dm index ec77d1be3bf..55711fb6a6d 100644 --- a/code/modules/mob/living/carbon/brain/MMI.dm +++ b/code/modules/mob/living/carbon/brain/MMI.dm @@ -7,6 +7,7 @@ icon_state = "mmi_empty" w_class = WEIGHT_CLASS_NORMAL origin_tech = "biotech=3" + origin_tech = "biotech=2;programming=3;engineering=2" //Revised. Brainmob is now contained directly within object of transfer. MMI in this case. var/alien = 0 @@ -121,7 +122,7 @@ /obj/item/device/mmi/radio_enabled 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." - origin_tech = "biotech=4" + origin_tech = "biotech=2;programming=3;engineering=2;magnets=2" var/obj/item/device/radio/radio = null//Let's give it a radio. @@ -174,6 +175,7 @@ /obj/item/device/mmi/syndie name = "Syndicate Man-Machine Interface" desc = "Syndicate's own brand of MMI. It enforces laws designed to help Syndicate agents achieve their goals upon cyborgs created with it, but doesn't fit in Nanotrasen AI cores." + origin_tech = "biotech=4;programming=4;syndicate=2" syndiemmi = 1 /obj/item/device/mmi/attempt_become_organ(obj/item/organ/external/parent,mob/living/carbon/human/H) diff --git a/code/modules/mob/living/carbon/brain/brain_item.dm b/code/modules/mob/living/carbon/brain/brain_item.dm index 5a62ead4952..7a12b570201 100644 --- a/code/modules/mob/living/carbon/brain/brain_item.dm +++ b/code/modules/mob/living/carbon/brain/brain_item.dm @@ -8,7 +8,7 @@ throwforce = 1.0 throw_speed = 3 throw_range = 5 - origin_tech = "biotech=3" + origin_tech = "biotech=5" attack_verb = list("attacked", "slapped", "whacked") var/mob/living/carbon/brain/brainmob = null organ_tag = "brain" @@ -28,7 +28,7 @@ name = "xenomorph brain" desc = "We barely understand the brains of terrestial animals. Who knows what we may find in the brain of such an advanced species?" icon_state = "brain-x" - origin_tech = "biotech=7" + origin_tech = "biotech=6" mmi_icon = 'icons/mob/alien.dmi' mmi_icon_state = "AlienMMI" diff --git a/code/modules/mob/living/carbon/brain/posibrain.dm b/code/modules/mob/living/carbon/brain/posibrain.dm index 8dd6e14e427..54d8a680ae7 100644 --- a/code/modules/mob/living/carbon/brain/posibrain.dm +++ b/code/modules/mob/living/carbon/brain/posibrain.dm @@ -4,7 +4,7 @@ icon = 'icons/obj/assemblies.dmi' icon_state = "posibrain" w_class = WEIGHT_CLASS_NORMAL - origin_tech = "biotech=3;programming=2" + origin_tech = "biotech=3;programming=3;plasmatech=2" var/searching = 0 var/askDelay = 10 * 60 * 1 diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/drone.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/drone.dm index 3cfc1b2c291..df5b53f5368 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/drone.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/drone.dm @@ -258,7 +258,7 @@ if(spawnees & 512) C = new(src.loc) C.name = "Corrupted drone morality core" - C.origin_tech = "illegal=[rand(3,6)]" + C.origin_tech = "syndicate=[rand(3,6)]" return ..() diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm index 89bd843467a..9f5d3534215 100644 --- a/code/modules/paperwork/pen.dm +++ b/code/modules/paperwork/pen.dm @@ -124,7 +124,7 @@ */ /obj/item/weapon/pen/sleepy flags = OPENCONTAINER - origin_tech = "materials=2;syndicate=5" + origin_tech = "engineering=4;syndicate=2" /obj/item/weapon/pen/sleepy/attack(mob/living/M, mob/user) @@ -146,7 +146,7 @@ * (Alan) Edaggers */ /obj/item/weapon/pen/edagger - origin_tech = "combat=3;syndicate=5" + origin_tech = "combat=3;syndicate=1" attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") //these wont show up if the pen is off var/on = 0 diff --git a/code/modules/pda/PDA.dm b/code/modules/pda/PDA.dm index df129989965..9b0413b94ee 100755 --- a/code/modules/pda/PDA.dm +++ b/code/modules/pda/PDA.dm @@ -12,6 +12,7 @@ var/global/list/obj/item/device/pda/PDAs = list() item_state = "electronic" w_class = WEIGHT_CLASS_TINY slot_flags = SLOT_ID | SLOT_BELT | SLOT_PDA + origin_tech = "programming=2" //Main variables var/owner = null diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 0b2c6f8b165..da56a496947 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -123,6 +123,7 @@ icon = 'icons/obj/module.dmi' icon_state = "power_mod" w_class = WEIGHT_CLASS_SMALL + origin_tech = "engineering=2;programming=1" item_state = "electronic" flags = CONDUCT usesound = 'sound/items/Deconstruct.ogg' diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index 942ed2ac98a..9832b028270 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -22,13 +22,6 @@ if(maxcharge < amount) return 0 var/power_used = min(maxcharge-charge,amount) - if(crit_fail) - return 0 - if(!prob(reliability)) - minor_fault++ - if(prob(minor_fault)) - crit_fail = 1 - return 0 charge += power_used return power_used @@ -38,8 +31,6 @@ to_chat(user, "[desc]\nThe manufacturer's label states this cell has a power rating of [maxcharge], and that you should not swallow it.\nThe charge meter reads [round(src.percent() )]%.") else to_chat(user, "This power cell has an exciting chrome finish, as it is an uber-capacity cell type! It has a power rating of [maxcharge]!\nThe charge meter reads [round(src.percent() )]%.") - if(crit_fail) - to_chat(user, "This power cell seems to be faulty.") /obj/item/weapon/stock_parts/cell/attack_self(mob/user as mob) src.add_fingerprint(user) diff --git a/code/modules/power/tracker.dm b/code/modules/power/tracker.dm index ffaffd5ea81..c4ce808f00d 100644 --- a/code/modules/power/tracker.dm +++ b/code/modules/power/tracker.dm @@ -82,3 +82,4 @@ icon = 'icons/obj/doors/door_assembly.dmi' icon_state = "door_electronics" w_class = WEIGHT_CLASS_SMALL + origin_tech = "engineering=2;programming=1" \ No newline at end of file diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index fc14b32a09c..7a039ca29df 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -5,7 +5,7 @@ item_state = "laser" w_class = WEIGHT_CLASS_NORMAL materials = list(MAT_METAL=2000) - origin_tech = "combat=3;magnets=2" + origin_tech = "combat=4;magnets=2" ammo_type = list(/obj/item/ammo_casing/energy/lasergun) ammo_x_offset = 1 shaded_charge = 1 @@ -13,6 +13,7 @@ /obj/item/weapon/gun/energy/laser/practice name = "practice laser gun" desc = "A modified version of the basic laser gun, this one fires less concentrated energy bolts designed for target practice." + origin_tech = "combat=2;magnets=2" ammo_type = list(/obj/item/ammo_casing/energy/laser/practice) clumsy_check = 0 needs_permit = 0 @@ -70,7 +71,7 @@ force = 10 flags = CONDUCT slot_flags = SLOT_BACK - origin_tech = "combat=4;materials=3;powerstorage=3" + origin_tech = "combat=4;magnets=4;powerstorage=3" ammo_type = list(/obj/item/ammo_casing/energy/laser/accelerator) ammo_x_offset = 3 @@ -111,7 +112,7 @@ name = "xray laser gun" desc = "A high-power laser gun capable of expelling concentrated xray blasts." icon_state = "xray" - origin_tech = "combat=5;materials=3;magnets=2;syndicate=2" + origin_tech = "combat=6;materials=4;magnets=4;syndicate=1" ammo_type = list(/obj/item/ammo_casing/energy/xray) /obj/item/weapon/gun/energy/immolator @@ -120,7 +121,7 @@ icon_state = "immolator" item_state = "laser" ammo_type = list(/obj/item/ammo_casing/energy/immolator) - origin_tech = "combat=4;materials=4;magnets=3;plasmatech=2" + origin_tech = "combat=4;magnets=4;powerstorage=3" shaded_charge = 1 ////////Laser Tag//////////////////// @@ -130,7 +131,7 @@ icon_state = "bluetag" desc = "Standard issue weapon of the Imperial Guard" ammo_type = list(/obj/item/ammo_casing/energy/laser/bluetag) - origin_tech = "combat=1;magnets=2" + origin_tech = "combat=2;magnets=2" clumsy_check = 0 needs_permit = 0 ammo_x_offset = 2 @@ -141,7 +142,7 @@ icon_state = "redtag" desc = "Standard issue weapon of the Imperial Guard" ammo_type = list(/obj/item/ammo_casing/energy/laser/redtag) - origin_tech = "combat=1;magnets=2" + origin_tech = "combat=2;magnets=2" clumsy_check = 0 needs_permit = 0 ammo_x_offset = 2 diff --git a/code/modules/projectiles/guns/energy/nuclear.dm b/code/modules/projectiles/guns/energy/nuclear.dm index 379a8af70d8..3e4838f7e20 100644 --- a/code/modules/projectiles/guns/energy/nuclear.dm +++ b/code/modules/projectiles/guns/energy/nuclear.dm @@ -4,7 +4,7 @@ icon_state = "energy" item_state = null //so the human update icon uses the icon_state instead. ammo_type = list(/obj/item/ammo_casing/energy/disabler, /obj/item/ammo_casing/energy/laser) - origin_tech = "combat=3;magnets=2" + origin_tech = "combat=4;magnets=3" modifystate = 2 can_flashlight = 1 ammo_x_offset = 3 @@ -51,6 +51,7 @@ name = "\improper X-01 MultiPhase Energy Gun" desc = "This is an expensive, modern recreation of an antique laser gun. This gun has several unique firemodes, but lacks the ability to recharge over time." icon_state = "hoslaser" + origin_tech = null force = 10 ammo_type = list(/obj/item/ammo_casing/energy/electrode/hos, /obj/item/ammo_casing/energy/laser/hos, /obj/item/ammo_casing/energy/disabler) ammo_x_offset = 4 @@ -83,51 +84,10 @@ desc = "An energy gun with an experimental miniaturized nuclear reactor that automatically charges the internal power cell." icon_state = "nucgun" item_state = "nucgun" - origin_tech = "combat=3;materials=5;powerstorage=3" + origin_tech = "combat=4;magnets=4;powerstorage=4" var/fail_tick = 0 charge_delay = 5 can_charge = 0 ammo_x_offset = 1 ammo_type = list(/obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/laser, /obj/item/ammo_casing/energy/disabler) selfcharge = 1 - -/obj/item/weapon/gun/energy/gun/nuclear/process() - if(fail_tick > 0) - fail_tick-- - ..() - -/obj/item/weapon/gun/energy/gun/nuclear/shoot_live_shot() - failcheck() - update_icon() - ..() - -/obj/item/weapon/gun/energy/gun/nuclear/proc/failcheck() - if(!prob(reliability) && istype(loc, /mob/living)) - var/mob/living/M = loc - switch(fail_tick) - if(0 to 200) - fail_tick += (2*(100-reliability)) - M.apply_effect(rand(3,120), IRRADIATE) - to_chat(M, "Your [name] feels warmer.") - if(201 to INFINITY) - processing_objects.Remove(src) - M.apply_effect(300, IRRADIATE) - crit_fail = 1 - to_chat(M, "Your [name]'s reactor overloads!") - -/obj/item/weapon/gun/energy/gun/nuclear/emp_act(severity) - ..() - reliability = max(reliability - round(15/severity), 0) //Do not allow it to go negative! - -/obj/item/weapon/gun/energy/gun/nuclear/update_icon() - ..() - if(crit_fail) - overlays += "[icon_state]_fail_3" - else - switch(fail_tick) - if(0) - overlays += "[icon_state]_fail_0" - if(1 to 150) - overlays += "[icon_state]_fail_1" - if(151 to INFINITY) - overlays += "[icon_state]_fail_2" diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 009d2c6c5e8..cde0361c810 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -4,7 +4,7 @@ icon_state = "ionrifle" item_state = null //so the human update icon uses the icon_state instead. fire_sound = 'sound/weapons/IonRifle.ogg' - origin_tech = "combat=2;magnets=4" + origin_tech = "combat=4;magnets=4" w_class = WEIGHT_CLASS_HUGE flags = CONDUCT slot_flags = SLOT_BACK @@ -20,7 +20,6 @@ name = "ion carbine" desc = "The MK.II Prototype Ion Projector is a lightweight carbine version of the larger ion rifle, built to be ergonomic and efficient." icon_state = "ioncarbine" - origin_tech = "combat=4;magnets=4;materials=4" w_class = WEIGHT_CLASS_NORMAL slot_flags = SLOT_BELT ammo_x_offset = 2 @@ -32,7 +31,7 @@ desc = "A gun that discharges high amounts of controlled radiation to slowly break a target into component elements." icon_state = "decloner" fire_sound = 'sound/weapons/pulse3.ogg' - origin_tech = "combat=5;materials=4;powerstorage=3" + origin_tech = "combat=4;materials=4;biotech=5;plasmatech=6" ammo_type = list(/obj/item/ammo_casing/energy/declone) ammo_x_offset = 1 @@ -49,7 +48,7 @@ item_state = "gun" fire_sound = 'sound/effects/stealthoff.ogg' ammo_type = list(/obj/item/ammo_casing/energy/flora/yield, /obj/item/ammo_casing/energy/flora/mut) - origin_tech = "materials=2;biotech=3;powerstorage=3" + origin_tech = "materials=2;biotech=4" modifystate = 1 ammo_x_offset = 1 selfcharge = 1 @@ -91,7 +90,7 @@ item_state = "crossbow" w_class = WEIGHT_CLASS_SMALL materials = list(MAT_METAL=2000) - origin_tech = "combat=2;magnets=2;syndicate=5" + origin_tech = "combat=4;magnets=4;syndicate=5" suppressed = 1 ammo_type = list(/obj/item/ammo_casing/energy/bolt) weapon_weight = WEAPON_LIGHT @@ -113,7 +112,7 @@ icon_state = "crossbowlarge" w_class = WEIGHT_CLASS_NORMAL materials = list(MAT_METAL=4000) - origin_tech = "combat=2;magnets=2;syndicate=3" //can be further researched for more syndie tech + origin_tech = "combat=4;magnets=4;syndicate=2" suppressed = 0 ammo_type = list(/obj/item/ammo_casing/energy/bolt/large) @@ -136,7 +135,7 @@ icon_state = "plasmacutter" item_state = "plasmacutter" modifystate = -1 - origin_tech = "combat=1;materials=3;magnets=2;plasmatech=2;engineering=1" + origin_tech = "combat=1;materials=3;magnets=2;plasmatech=3;engineering=1" ammo_type = list(/obj/item/ammo_casing/energy/plasma) fire_sound = 'sound/weapons/laser.ogg' usesound = 'sound/items/Welder.ogg' @@ -173,7 +172,7 @@ name = "advanced plasma cutter" icon_state = "adv_plasmacutter" modifystate = "adv_plasmacutter" - origin_tech = "combat=3;materials=4;magnets=3;plasmatech=3;engineering=2" + origin_tech = "combat=3;materials=4;magnets=3;plasmatech=4;engineering=2" ammo_type = list(/obj/item/ammo_casing/energy/plasma/adv) force = 15 @@ -183,6 +182,7 @@ ammo_type = list(/obj/item/ammo_casing/energy/wormhole, /obj/item/ammo_casing/energy/wormhole/orange) item_state = null icon_state = "wormhole_projector1" + origin_tech = "combat=4;bluespace=6;plasmatech=4;engineering=4" var/obj/effect/portal/blue var/obj/effect/portal/orange @@ -250,7 +250,7 @@ desc = "A specialized ASMD laser-rifle, capable of flat-out disintegrating most targets in a single hit." ammo_type = list(/obj/item/ammo_casing/energy/instakill) force = 60 - origin_tech = null + origin_tech = "combat=7;magnets=6" /obj/item/weapon/gun/energy/laser/instakill/emp_act() //implying you could stop the instagib return @@ -280,8 +280,9 @@ desc = "A specialized firearm designed to fire lethal bolts of toxins." icon_state = "toxgun" fire_sound = 'sound/effects/stealthoff.ogg' + w_class = WEIGHT_CLASS_NORMAL - origin_tech = "combat=4;plasmatech=3" + origin_tech = "combat=4;magnets=4;powerstorage=3" ammo_type = list(/obj/item/ammo_casing/energy/toxplasma) shaded_charge = 1 @@ -308,7 +309,7 @@ desc = "A gun that changes the body temperature of its targets." var/temperature = 300 var/target_temperature = 300 - origin_tech = "combat=3;materials=4;powerstorage=3;magnets=2" + origin_tech = "combat=4;materials=4;powerstorage=3;magnets=2" ammo_type = list(/obj/item/ammo_casing/energy/temp) selfcharge = 1 diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm index ea92cb06449..2113a2c1b81 100644 --- a/code/modules/projectiles/guns/energy/stun.dm +++ b/code/modules/projectiles/guns/energy/stun.dm @@ -3,6 +3,7 @@ desc = "A small, low capacity gun used for non-lethal takedowns." icon_state = "taser" item_state = null //so the human update icon uses the icon_state instead. + origin_tech = "combat=3" ammo_type = list(/obj/item/ammo_casing/energy/electrode) ammo_x_offset = 3 @@ -16,6 +17,7 @@ desc = "A high-tech revolver that fires internal, reusable shock cartridges in a revolving cylinder. The cartridges can be recharged using conventional rechargers." icon_state = "stunrevolver" item_state = "gun" + origin_tech = "combat=4;materials=4;powerstorage=4" ammo_type = list(/obj/item/ammo_casing/energy/shock_revolver) can_flashlight = 0 shaded_charge = 1 @@ -25,7 +27,7 @@ desc = "A dual-mode taser designed to fire both short-range high-power electrodes and long-range disabler beams." icon_state = "advtaser" ammo_type = list(/obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/disabler) - origin_tech = null + origin_tech = "combat=4" ammo_x_offset = 2 /obj/item/weapon/gun/energy/gun/advtaser/cyborg @@ -43,6 +45,7 @@ desc = "A self-defense weapon that exhausts organic targets, weakening them until they collapse." icon_state = "disabler" item_state = null + origin_tech = "combat=3" ammo_type = list(/obj/item/ammo_casing/energy/disabler) ammo_x_offset = 3 diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index 1b666a88953..4b4ef8de12e 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -83,7 +83,7 @@ desc = "A two-round burst .45 SMG, designated 'C-20r'. Has a 'Scarborough Arms - Per falcis, per pravitas' buttstamp." icon_state = "c20r" item_state = "c20r" - origin_tech = "combat=5;materials=2;syndicate=8" + origin_tech = "combat=5;materials=2;syndicate=6" mag_type = /obj/item/ammo_box/magazine/smgm45 fire_sound = 'sound/weapons/Gunshot_smg.ogg' fire_delay = 2 @@ -120,7 +120,7 @@ name = "\improper 'Type U3' Uzi" desc = "A lightweight, burst-fire submachine gun, for when you really want someone dead. Uses 9mm rounds." icon_state = "mini-uzi" - origin_tech = "combat=5;materials=2;syndicate=8" + origin_tech = "combat=4;materials=2;syndicate=4" mag_type = /obj/item/ammo_box/magazine/uzim9mm burst_size = 2 @@ -129,7 +129,7 @@ desc = "A three-round burst 5.56 toploading carbine, designated 'M-90gl'. Has an attached underbarrel grenade launcher which can be toggled on and off." icon_state = "m90" item_state = "m90" - origin_tech = "combat=5;materials=2;syndicate=8" + origin_tech = "combat=5;materials=2;syndicate=6" mag_type = /obj/item/ammo_box/magazine/m556 fire_sound = 'sound/weapons/Gunshot_smg.ogg' can_suppress = 0 @@ -196,7 +196,7 @@ item_state = "shotgun" w_class = WEIGHT_CLASS_HUGE slot_flags = 0 - origin_tech = "combat=5;materials=1;syndicate=2" + origin_tech = "combat=5;materials=1;syndicate=3" mag_type = /obj/item/ammo_box/magazine/tommygunm45 fire_sound = 'sound/weapons/Gunshot_smg.ogg' can_suppress = 0 @@ -209,7 +209,7 @@ icon_state = "arg" item_state = "arg" slot_flags = 0 - origin_tech = "combat=5;materials=1" + origin_tech = "combat=6;engineering=4" mag_type = /obj/item/ammo_box/magazine/m556 fire_sound = 'sound/weapons/Gunshot_smg.ogg' can_suppress = 0 @@ -223,7 +223,7 @@ icon_state = "bulldog" item_state = "bulldog" w_class = WEIGHT_CLASS_NORMAL - origin_tech = "combat=5;materials=4;syndicate=6" + origin_tech = "combat=6;materials=4;syndicate=6" mag_type = /obj/item/ammo_box/magazine/m12g fire_sound = 'sound/weapons/Gunshot4.ogg' can_suppress = 0 @@ -256,7 +256,7 @@ icon_state = "lasercarbine" item_state = "laser" w_class = WEIGHT_CLASS_NORMAL - origin_tech = "combat=5;materials=5" + origin_tech = "combat=4;materials=2" mag_type = /obj/item/ammo_box/magazine/laser fire_sound = 'sound/weapons/emitter2.ogg' can_suppress = 0 diff --git a/code/modules/projectiles/guns/projectile/launchers.dm b/code/modules/projectiles/guns/projectile/launchers.dm index e8dd43d1501..eaa1ab67e67 100644 --- a/code/modules/projectiles/guns/projectile/launchers.dm +++ b/code/modules/projectiles/guns/projectile/launchers.dm @@ -35,7 +35,7 @@ desc = "A prototype pistol designed to fire self propelled rockets." icon_state = "gyropistol" fire_sound = 'sound/effects/Explosion1.ogg' - origin_tech = "combat=3" + origin_tech = "combat=5" mag_type = /obj/item/ammo_box/magazine/m75 burst_size = 1 fire_delay = 0 @@ -58,6 +58,7 @@ icon_state = "speargun" item_state = "speargun" w_class = WEIGHT_CLASS_BULKY + origin_tech = "combat=4;engineering=4" force = 10 can_suppress = 0 mag_type = /obj/item/ammo_box/magazine/internal/speargun diff --git a/code/modules/projectiles/guns/projectile/pistol.dm b/code/modules/projectiles/guns/projectile/pistol.dm index 4db9d3175d7..3876e067f70 100644 --- a/code/modules/projectiles/guns/projectile/pistol.dm +++ b/code/modules/projectiles/guns/projectile/pistol.dm @@ -3,7 +3,7 @@ desc = "A small, easily concealable 10mm handgun. Has a threaded barrel for suppressors." icon_state = "pistol" w_class = WEIGHT_CLASS_SMALL - origin_tech = "combat=2;materials=2;syndicate=2" + origin_tech = "combat=3;materials=2;syndicate=4" mag_type = /obj/item/ammo_box/magazine/m10mm can_suppress = 1 burst_size = 1 diff --git a/code/modules/projectiles/guns/projectile/revolver.dm b/code/modules/projectiles/guns/projectile/revolver.dm index 2efc6cda7e0..ef7a17fa28a 100644 --- a/code/modules/projectiles/guns/projectile/revolver.dm +++ b/code/modules/projectiles/guns/projectile/revolver.dm @@ -3,6 +3,7 @@ desc = "A suspicious revolver. Uses .357 ammo." icon_state = "revolver" mag_type = /obj/item/ammo_box/magazine/internal/cylinder + origin_tech = "combat=3;materials=2" /obj/item/weapon/gun/projectile/revolver/New() ..() @@ -88,7 +89,6 @@ desc = "A cheap Martian knock-off of a classic law enforcement firearm. Uses .38-special rounds." name = "\improper .38 Mars Special" icon_state = "detective" - origin_tech = "combat=2;materials=2" mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev38 unique_rename = 1 unique_reskin = 1 @@ -146,7 +146,6 @@ name = "\improper Unica 6 auto-revolver" desc = "A retro high-powered autorevolver typically used by officers of the New Russia military. Uses .357 ammo." //>10mm hole >.357 icon_state = "mateba" - origin_tech = "combat=2;materials=2" /obj/item/weapon/gun/projectile/revolver/golden name = "\improper Golden revolver" @@ -258,7 +257,7 @@ /obj/item/weapon/gun/projectile/revolver/capgun name = "cap gun" desc = "Looks almost like the real thing! Ages 8 and up." - origin_tech = "combat=1;materials=1" + origin_tech = null mag_type = /obj/item/ammo_box/magazine/internal/cylinder/cap ///////////////////////////// @@ -274,7 +273,6 @@ force = 10 flags = CONDUCT slot_flags = SLOT_BACK - origin_tech = "combat=3;materials=1" mag_type = /obj/item/ammo_box/magazine/internal/shot/dual sawn_desc = "Omar's coming!" unique_rename = 1 @@ -328,7 +326,6 @@ w_class = WEIGHT_CLASS_BULKY force = 10 slot_flags = null - origin_tech = "combat=2;materials=2" mag_type = /obj/item/ammo_box/magazine/internal/shot/improvised sawn_desc = "I'm just here for the gasoline." unique_rename = 0 diff --git a/code/modules/projectiles/guns/projectile/saw.dm b/code/modules/projectiles/guns/projectile/saw.dm index 3c80b241613..8b35ac805b4 100644 --- a/code/modules/projectiles/guns/projectile/saw.dm +++ b/code/modules/projectiles/guns/projectile/saw.dm @@ -5,7 +5,7 @@ item_state = "l6closedmag" w_class = WEIGHT_CLASS_HUGE slot_flags = 0 - origin_tech = "combat=5;materials=1;syndicate=2" + origin_tech = "combat=6;engineering=3;syndicate=6" mag_type = /obj/item/ammo_box/magazine/mm556x45 weapon_weight = WEAPON_MEDIUM fire_sound = 'sound/weapons/Gunshot3.ogg' diff --git a/code/modules/projectiles/guns/projectile/shotgun.dm b/code/modules/projectiles/guns/projectile/shotgun.dm index 970f874c334..3ef496d3c0d 100644 --- a/code/modules/projectiles/guns/projectile/shotgun.dm +++ b/code/modules/projectiles/guns/projectile/shotgun.dm @@ -171,7 +171,7 @@ name = "combat shotgun" desc = "A semi automatic shotgun with tactical furniture and a six-shell capacity underneath." icon_state = "cshotgun" - origin_tech = "combat=5;materials=2" + origin_tech = "combat=6" mag_type = /obj/item/ammo_box/magazine/internal/shot/com w_class = WEIGHT_CLASS_HUGE diff --git a/code/modules/projectiles/guns/projectile/sniper.dm b/code/modules/projectiles/guns/projectile/sniper.dm index 5d4078e666d..b0bcc0743e2 100644 --- a/code/modules/projectiles/guns/projectile/sniper.dm +++ b/code/modules/projectiles/guns/projectile/sniper.dm @@ -8,7 +8,7 @@ mag_type = /obj/item/ammo_box/magazine/sniper_rounds fire_delay = 40 burst_size = 1 - origin_tech = "combat=8" + origin_tech = "combat=7" can_unsuppress = 1 can_suppress = 1 w_class = WEIGHT_CLASS_NORMAL @@ -26,7 +26,7 @@ /obj/item/weapon/gun/projectile/automatic/sniper_rifle/syndicate name = "syndicate sniper rifle" desc = "Syndicate flavoured sniper rifle, it packs quite a punch, a punch to your face" - origin_tech = "combat=8;syndicate=4" + origin_tech = "combat=7;syndicate=6" //Normal Boolets /obj/item/ammo_box/magazine/sniper_rounds @@ -101,7 +101,6 @@ name = "sniper rounds (Bleed)" desc = "Haemorrhage sniper rounds, leaves your target in a pool of crimson pain" icon_state = "haemorrhage" - origin_tech = "combat=7;syndicate=5" ammo_type = /obj/item/ammo_casing/haemorrhage max_ammo = 5 @@ -131,6 +130,7 @@ name = "sniper rounds (penetrator)" desc = "An extremely powerful round capable of passing straight through cover and anyone unfortunate enough to be behind it." ammo_type = /obj/item/ammo_casing/penetrator + origin_tech = "combat=6;syndicate=3" max_ammo = 5 /obj/item/ammo_casing/penetrator diff --git a/code/modules/projectiles/guns/rocket.dm b/code/modules/projectiles/guns/rocket.dm index 0bb44409acd..0b1f2b2c94d 100644 --- a/code/modules/projectiles/guns/rocket.dm +++ b/code/modules/projectiles/guns/rocket.dm @@ -9,7 +9,7 @@ throw_range = 10 force = 5.0 flags = CONDUCT - origin_tech = "combat=8;materials=5" + origin_tech = "combat=6" var/missile_speed = 2 var/missile_range = 30 var/max_rockets = 1 diff --git a/code/modules/projectiles/guns/syringe_gun.dm b/code/modules/projectiles/guns/syringe_gun.dm index e9d79fe42c4..65440fa9e49 100644 --- a/code/modules/projectiles/guns/syringe_gun.dm +++ b/code/modules/projectiles/guns/syringe_gun.dm @@ -4,6 +4,7 @@ icon_state = "syringegun" item_state = "syringegun" w_class = WEIGHT_CLASS_NORMAL + origin_tech = "combat=2;biotech=3" throw_speed = 3 throw_range = 7 force = 4 @@ -89,7 +90,7 @@ icon_state = "syringe_pistol" item_state = "gun" //Smaller inhand w_class = WEIGHT_CLASS_SMALL - origin_tech = "combat=2;syndicate=2" + origin_tech = "combat=2;syndicate=2;biotech=3" force = 2 //Also very weak because it's smaller suppressed = 1 //Softer fire sound can_unsuppress = 0 //Permanently silenced diff --git a/code/modules/reagents/reagent_containers/glass_containers.dm b/code/modules/reagents/reagent_containers/glass_containers.dm index 5d22a21aa4a..f60efa3b784 100644 --- a/code/modules/reagents/reagent_containers/glass_containers.dm +++ b/code/modules/reagents/reagent_containers/glass_containers.dm @@ -289,9 +289,10 @@ name = "cryostasis beaker" desc = "A cryostasis beaker that allows for chemical storage without reactions. Can hold up to 50 units." icon_state = "beakernoreact" - materials = list(MAT_GLASS=500) + materials = list(MAT_METAL=3000) volume = 50 amount_per_transfer_from_this = 10 + origin_tech = "materials=2;engineering=3;plasmatech=3" flags = OPENCONTAINER /obj/item/weapon/reagent_containers/glass/beaker/noreact/New() @@ -302,12 +303,12 @@ name = "bluespace beaker" desc = "A bluespace beaker, powered by experimental bluespace technology and Element Cuban combined with the Compound Pete. Can hold up to 300 units." icon_state = "beakerbluespace" - materials = list(MAT_GLASS=5000) + materials = list(MAT_GLASS=3000) volume = 300 amount_per_transfer_from_this = 10 possible_transfer_amounts = list(5,10,15,25,30,50,100,300) flags = OPENCONTAINER - + origin_tech = "bluespace=5;materials=4;plasmatech=4" /obj/item/weapon/reagent_containers/glass/beaker/cryoxadone list_reagents = list("cryoxadone" = 30) diff --git a/code/modules/research/circuitprinter.dm b/code/modules/research/circuitprinter.dm index 9e411abaee3..25a9862b6b1 100644 --- a/code/modules/research/circuitprinter.dm +++ b/code/modules/research/circuitprinter.dm @@ -103,8 +103,6 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis). for(var/obj/I in component_parts) if(istype(I, /obj/item/weapon/reagent_containers/glass/beaker)) reagents.trans_to(I, reagents.total_volume) - if(I.reliability != 100 && crit_fail) - I.crit_fail = 1 I.loc = src.loc for(var/obj/item/weapon/reagent_containers/glass/G in component_parts) reagents.trans_to(G, G.reagents.maximum_volume) diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index 26f9413bc5f..a3ea37c2d30 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -2,7 +2,7 @@ /*************************************************************** ** Design Datums ** -** All the data for building stuff and tracking reliability. ** +** All the data for building stuff. ** ***************************************************************/ /* For the materials datum, it assumes you need reagents unless specified otherwise. To designate a material that isn't a reagent, @@ -23,9 +23,6 @@ The currently supporting non-reagent materials: Don't add new keyword/IDs if they are made from an existing one (such as rods which are made from metal). Only add raw materials. Design Guidlines -- The reliability formula for all R&D built items is reliability (a fixed number) + total tech levels required to make it + -reliability_mod (starts at 0, gets improved through experimentation). Example: PACMAN generator. 79 base reliablity + 6 tech -(3 plasmatech, 3 powerstorage) + 0 (since it's completely new) = 85% reliability. Reliability is the chance it works CORRECTLY. - When adding new designs, check rdreadme.dm to see what kind of things have already been made and where new stuff is needed. - A single sheet of anything is 2000 units of material. Materials besides metal/glass require help from other jobs (mining for other types of metals and chemistry for reagents). @@ -39,7 +36,6 @@ other types of metals and chemistry for reagents). var/desc = "Desc" //Description of the created object. var/id = "id" //ID of the created object for easy refernece. Alphanumeric, lower-case, no symbols var/list/req_tech = list() //IDs of that techs the object originated from and the minimum level requirements. - var/reliability = 100 //Reliability of the device. var/build_type = null //Flag as to what kind machine the design is built in. See defines. var/list/materials = list() //List of materials. Format: "id" = amount. var/construction_time //Amount of time required for building the object @@ -51,14 +47,3 @@ other types of metals and chemistry for reagents). var/list/reagents = list() //List of reagents. Format: "id" = amount. var/maxstack = 1 var/lathe_time_factor = 1 //How many times faster than normal is this to build on the protolathe - -//A proc to calculate the reliability of a design based on tech levels and innate modifiers. -//Input: A list of /datum/tech; Output: The new reliabilty. -/datum/design/proc/CalcReliability(var/list/temp_techs) - var/new_reliability - for(var/datum/tech/T in temp_techs) - if(T.id in req_tech) - new_reliability += T.level - new_reliability = Clamp(new_reliability, reliability, 100) - reliability = new_reliability - return diff --git a/code/modules/research/designs/AI_module_designs.dm b/code/modules/research/designs/AI_module_designs.dm index 01de6f63848..018c0bb837a 100644 --- a/code/modules/research/designs/AI_module_designs.dm +++ b/code/modules/research/designs/AI_module_designs.dm @@ -6,7 +6,7 @@ name = "AI Module (Freeform)" desc = "Allows for the construction of a Freeform AI Module." id = "freeform_module" - req_tech = list("programming" = 4, "materials" = 4) + req_tech = list("programming" = 5, "materials" = 4) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_GOLD = 100) build_path = /obj/item/weapon/aiModule/freeform @@ -16,7 +16,7 @@ name = "AI Module (oneCrewMember)" desc = "Allows for the construction of a oneCrewMember AI Module." id = "onecrewmember_module" - req_tech = list("programming" = 4, "materials" = 6) + req_tech = list("programming" = 6, "materials" = 4) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_DIAMOND = 100) build_path = /obj/item/weapon/aiModule/oneCrewMember @@ -26,7 +26,7 @@ name = "AI Module (OxygenIsToxicToHumans)" desc = "Allows for the construction of a Safeguard AI Module." id = "oxygen_module" - req_tech = list("programming" = 3, "biotech" = 2, "materials" = 4) + req_tech = list("programming" = 4, "biotech" = 2, "materials" = 4) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_GOLD = 100) build_path = /obj/item/weapon/aiModule/oxygen @@ -36,7 +36,7 @@ name = "AI Module (ProtectStation)" desc = "Allows for the construction of a ProtectStation AI Module." id = "protectstation_module" - req_tech = list("programming" = 3, "materials" = 6) + req_tech = list("programming" = 5, "materials" = 4) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_GOLD = 100) build_path = /obj/item/weapon/aiModule/protectStation @@ -46,7 +46,7 @@ name = "AI Module (Purge)" desc = "Allows for the construction of a Purge AI Module." id = "purge_module" - req_tech = list("programming" = 4, "materials" = 6) + req_tech = list("programming" = 5, "materials" = 6) build_type = IMPRINTER materials = list(MAT_GLASS = 2000, "sacid" = 20, MAT_DIAMOND = 100) build_path = /obj/item/weapon/aiModule/purge @@ -66,7 +66,7 @@ name = "AI Module (Reset)" desc = "Allows for the construction of a Reset AI Module." id = "reset_module" - req_tech = list("programming" = 3, "materials" = 6) + req_tech = list("programming" = 4, "materials" = 6) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_GOLD = 100) build_path = /obj/item/weapon/aiModule/reset @@ -76,7 +76,7 @@ name = "AI Module (Safeguard)" desc = "Allows for the construction of a Safeguard AI Module." id = "safeguard_module" - req_tech = list("programming" = 3, "materials" = 4) + req_tech = list("programming" = 3, "materials" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_GOLD = 100) build_path = /obj/item/weapon/aiModule/safeguard @@ -86,7 +86,7 @@ name = "Core AI Module (Antimov)" desc = "Allows for the construction of a Antimov AI Core Module." id = "antimov_module" - req_tech = list("programming" = 4, "materials" = 6, "syndicate" = 2) + req_tech = list("programming" = 5, "syndicate" = 2, "materials" = 5) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_DIAMOND = 100) build_path = /obj/item/weapon/aiModule/antimov @@ -96,7 +96,7 @@ name = "Core AI Module (Asimov)" desc = "Allows for the construction of a Asimov AI Core Module." id = "asimov_module" - req_tech = list("programming" = 3, "materials" = 6) + req_tech = list("programming" = 3, "materials" = 5) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_DIAMOND = 100) build_path = /obj/item/weapon/aiModule/asimov @@ -106,7 +106,7 @@ name = "Core AI Module (Corporate)" desc = "Allows for the construction of a Corporate AI Core Module." id = "corporate_module" - req_tech = list("programming" = 4, "materials" = 6) + req_tech = list("programming" = 5, "materials" = 5) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_DIAMOND = 100) build_path = /obj/item/weapon/aiModule/corp @@ -116,7 +116,7 @@ name = "Core AI Module (Crewsimov)" desc = "Allows for the construction of a Crewsimov AI Core Module." id = "crewsimov_module" - req_tech = list("programming" = 3, "materials" = 6) + req_tech = list("programming" = 3, "materials" = 5) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_DIAMOND = 100) build_path = /obj/item/weapon/aiModule/crewsimov @@ -126,7 +126,7 @@ name = "Core AI Module (Freeform)" desc = "Allows for the construction of a Freeform AI Core Module." id = "freeformcore_module" - req_tech = list("programming" = 4, "materials" = 6) + req_tech = list("programming" = 6, "materials" = 6) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_DIAMOND = 100) build_path = /obj/item/weapon/aiModule/freeformcore @@ -136,7 +136,7 @@ name = "Core AI Module (P.A.L.A.D.I.N.)" desc = "Allows for the construction of a P.A.L.A.D.I.N. AI Core Module." id = "paladin_module" - req_tech = list("programming" = 4, "materials" = 6) + req_tech = list("programming" = 5, "materials" = 5) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_DIAMOND = 100) build_path = /obj/item/weapon/aiModule/paladin @@ -146,7 +146,7 @@ name = "Core AI Module (T.Y.R.A.N.T.)" desc = "Allows for the construction of a T.Y.R.A.N.T. AI Module." id = "tyrant_module" - req_tech = list("programming" = 4, "syndicate" = 2, "materials" = 6) + req_tech = list("programming" = 5, "syndicate" = 2, "materials" = 5) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_DIAMOND = 100) build_path = /obj/item/weapon/aiModule/tyrant diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm index 29370cbc04b..99d4fa8fe22 100644 --- a/code/modules/research/designs/autolathe_designs.dm +++ b/code/modules/research/designs/autolathe_designs.dm @@ -852,7 +852,6 @@ name = "Machine Board (Vendor)" desc = "The circuit board for a Vendor." id = "vendor" - req_tech = list("programming" = 1) build_type = AUTOLATHE materials = list(MAT_GLASS = 750, MAT_METAL = 250) build_path = /obj/item/weapon/circuitboard/vendor diff --git a/code/modules/research/designs/bluespace_designs.dm b/code/modules/research/designs/bluespace_designs.dm index e15fe544f1a..ed42ac98780 100644 --- a/code/modules/research/designs/bluespace_designs.dm +++ b/code/modules/research/designs/bluespace_designs.dm @@ -5,10 +5,9 @@ name = "Artificial Bluespace Crystal" desc = "A small blue crystal with mystical properties." id = "bluespace_crystal" - req_tech = list("bluespace" = 4, "materials" = 6) + req_tech = list("bluespace" = 3, "materials" = 6, "plasmatech" = 4) build_type = PROTOLATHE materials = list(MAT_DIAMOND = 1500, MAT_PLASMA = 1500) - reliability = 100 build_path = /obj/item/weapon/ore/bluespace_crystal/artificial category = list("Bluespace") @@ -16,10 +15,9 @@ name = "Bag of Holding" desc = "A backpack that opens into a localized pocket of Blue Space." id = "bag_holding" - req_tech = list("bluespace" = 4, "materials" = 6) + req_tech = list("bluespace" = 7, "materials" = 5, "engineering" = 5, "plasmatech" = 6) build_type = PROTOLATHE materials = list(MAT_GOLD = 3000, MAT_DIAMOND = 1500, MAT_URANIUM = 250) - reliability = 80 build_path = /obj/item/weapon/storage/backpack/holding category = list("Bluespace") @@ -27,29 +25,17 @@ name = "Belt of Holding" desc = "An astonishingly complex belt popularized by a rich blue-space technology magnate." id = "bluespace_belt" - req_tech = list("bluespace" = 4, "materials" = 6) + req_tech = list("bluespace" = 7, "materials" = 5, "engineering" = 5, "plasmatech" = 6) build_type = PROTOLATHE materials = list(MAT_GOLD = 1500, MAT_DIAMOND = 3000, MAT_URANIUM = 1000) - reliability = 80 build_path = /obj/item/weapon/storage/belt/bluespace category = list("Bluespace") -/datum/design/bluespacebeaker - name = "Bluespace Beaker" - desc = "A bluespace beaker, powered by experimental bluespace technology and Element Cuban combined with the Compound Pete. Can hold up to 300 units." - id = "bluespacebeaker" - req_tech = list("bluespace" = 2, "materials" = 6) - build_type = PROTOLATHE - materials = list(MAT_METAL = 3000, MAT_PLASMA = 3000, MAT_DIAMOND = 500) - reliability = 76 - build_path = /obj/item/weapon/reagent_containers/glass/beaker/bluespace - category = list("Medical") - /datum/design/telesci_gps name = "GPS Device" desc = "A device that can track its position at all times." id = "telesci_Gps" - req_tech = list("materials" = 2, "magnets" = 3, "bluespace" = 3) + req_tech = list("materials" = 2, "bluespace" = 2) build_type = PROTOLATHE materials = list(MAT_METAL = 500, MAT_GLASS = 1000) build_path = /obj/item/device/gps @@ -59,10 +45,9 @@ name = "Mining Satchel of Holding" desc = "A mining satchel that can hold an infinite amount of ores." id = "minerbag_holding" - req_tech = list("bluespace" = 3, "materials" = 4) + req_tech = list("bluespace" = 4, "materials" = 3, "engineering" = 4) build_type = PROTOLATHE materials = list(MAT_GOLD = 250, MAT_URANIUM = 500) //quite cheap, for more convenience - reliability = 100 build_path = /obj/item/weapon/storage/bag/ore/holding category = list("Bluespace") @@ -70,7 +55,7 @@ name = "Telepad Beacon" desc = "Use to warp in a cargo telepad." id = "telepad_beacon" - req_tech = list("bluespace" = 3, "materials" = 4) + req_tech = list("programming" = 5, "bluespace" = 4, "engineering" = 4, "plasmatech" = 4) build_type = PROTOLATHE materials = list (MAT_METAL = 2000, MAT_GLASS = 1750, MAT_SILVER = 500) build_path = /obj/item/device/telepad_beacon @@ -82,6 +67,6 @@ id = "beacon" req_tech = list("bluespace" = 1) build_type = PROTOLATHE - materials = list (MAT_METAL = 20, MAT_GLASS = 10) + materials = list (MAT_METAL = 150, MAT_GLASS = 100) build_path = /obj/item/device/radio/beacon - category = list("Bluespace") \ No newline at end of file + category = list("Bluespace") diff --git a/code/modules/research/designs/comp_board_designs.dm b/code/modules/research/designs/comp_board_designs.dm index 6d3624701b9..961dfd51710 100644 --- a/code/modules/research/designs/comp_board_designs.dm +++ b/code/modules/research/designs/comp_board_designs.dm @@ -6,7 +6,7 @@ name = "Console Board (AI Core)" desc = "Allows for the construction of circuit boards used to build new AI cores." id = "aicore" - req_tech = list("programming" = 4, "biotech" = 3) + req_tech = list("programming" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/aicore @@ -16,7 +16,7 @@ name = "Console Board (AI Integrity Restorer)" desc = "Allows for the construction of circuit boards used to build an AI Integrity Restorer." id = "aifixer" - req_tech = list("programming" = 3, "biotech" = 2) + req_tech = list("programming" = 4, "magnets" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/aifixer @@ -26,7 +26,7 @@ name = "Console Board (AI Upload)" desc = "Allows for the construction of circuit boards used to build an AI Upload Console." id = "aiupload" - req_tech = list("programming" = 4) + req_tech = list("programming" = 5, "engineering" = 4) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/aiupload @@ -56,7 +56,7 @@ name = "Console Board (Camera Monitor)" desc = "Allows for the construction of circuit boards used to build camera monitors." id = "seccamera" - req_tech = list("programming" = 2) + req_tech = list("programming" = 2, "combat" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/camera @@ -66,7 +66,7 @@ name = "Console Board (Cloning Machine Console)" desc = "Allows for the construction of circuit boards used to build a new Cloning Machine console." id = "clonecontrol" - req_tech = list("programming" = 3, "biotech" = 3) + req_tech = list("programming" = 4, "biotech" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/cloning @@ -76,7 +76,7 @@ name = "Console Board (Communications Console)" desc = "Allows for the construction of circuit boards used to build a communications console." id = "comconsole" - req_tech = list("programming" = 2, "magnets" = 2) + req_tech = list("programming" = 3, "magnets" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/communications @@ -96,7 +96,7 @@ name = "Console Board (Cyborg Upload)" desc = "Allows for the construction of circuit boards used to build a Cyborg Upload Console." id = "borgupload" - req_tech = list("programming" = 4) + req_tech = list("programming" = 5, "engineering" = 4) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/borgupload @@ -106,7 +106,7 @@ name = "Console Board (DNA Machine)" desc = "Allows for the construction of circuit boards used to build a new DNA scanning console." id = "scan_console" - req_tech = list("programming" = 2, "biotech" = 3) + req_tech = list("programming" = 2, "biotech" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/scan_consolenew @@ -136,7 +136,7 @@ name = "Console Board (ID Computer)" desc = "Allows for the construction of circuit boards used to build an ID computer." id = "idcardconsole" - req_tech = list("programming" = 2) + req_tech = list("programming" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/card @@ -146,7 +146,7 @@ name = "Console Board (Mech Bay Power Control Console)" desc = "Allows for the construction of circuit boards used to build a mech bay power control console." id = "mechapower" - req_tech = list("programming" = 2, "powerstorage" = 3) + req_tech = list("programming" = 3, "powerstorage" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mech_bay_power_console @@ -156,7 +156,7 @@ name = "Console Board (Medical Records)" desc = "Allows for the construction of circuit boards used to build a medical records console." id = "med_data" - req_tech = list("programming" = 2) + req_tech = list("programming" = 2, "biotech" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/med_data @@ -176,7 +176,7 @@ name = "Console Board (Operating Computer)" desc = "Allows for the construction of circuit boards used to build an operating computer console." id = "operating" - req_tech = list("programming" = 2, "biotech" = 2) + req_tech = list("programming" = 2, "biotech" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/operating @@ -186,7 +186,7 @@ name = "Computer Design (PanD.E.M.I.C. 2200)" desc = "Allows for the construction of circuit boards used to build a PanD.E.M.I.C. 2200 console." id = "pandemic" - req_tech = list("programming" = 2, "biotech" = 2) + req_tech = list("programming" = 3, "biotech" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/pandemic @@ -196,7 +196,7 @@ name = "Console Board (Power Monitor)" desc = "Allows for the construction of circuit boards used to build a new power monitor" id = "powermonitor" - req_tech = list("programming" = 2) + req_tech = list("programming" = 2, "powerstorage" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/powermonitor @@ -246,7 +246,7 @@ name = "Console Board (Security Records Console)" desc = "Allows for the construction of circuit boards used to build a security records console." id = "secdata" - req_tech = list("programming" = 2) + req_tech = list("programming" = 2, "combat" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/secure_data @@ -266,7 +266,7 @@ name = "Console Board (Spacepod Locator)" desc = "Allows for the construction of circuit boards used to build a space-pod locating console" id = "spacepodc" - req_tech = list("programming" = 2) + req_tech = list("programming" = 4) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/pod_locater @@ -296,7 +296,7 @@ name = "Console Board (Telecommunications Monitoring Console)" desc = "Allows for the construction of circuit boards used to build a telecommunications monitor." id = "comm_monitor" - req_tech = list("programming" = 3) + req_tech = list("programming" = 3, "magnets" = 3, "bluespace" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/comm_monitor @@ -306,7 +306,7 @@ name = "Console Board (Telecommunications Server Monitoring Console)" desc = "Allows for the construction of circuit boards used to build a telecommunication server browser and monitor." id = "comm_server" - req_tech = list("programming" = 3) + req_tech = list("programming" = 3, "magnets" = 3, "bluespace" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/comm_server @@ -316,7 +316,7 @@ name = "Console Board (Telecommunications Traffic Control Console)" desc = "Allows for the construction of circuit boards used to build a telecommunications traffic control console." id = "comm_traffic" - req_tech = list("programming" = 3) + req_tech = list("programming" = 3, "magnets" = 3, "bluespace" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/comm_traffic @@ -326,7 +326,7 @@ name = "Console Board (Telepad Control Console)" desc = "Allows for the construction of circuit boards used to build a telescience console." id = "telesci_console" - req_tech = list("programming" = 3, "bluespace" = 2) + req_tech = list("programming" = 3, "bluespace" = 3, "plasmatech" = 4) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/telesci_console @@ -336,7 +336,7 @@ name = "Console Board (Teleporter Console)" desc = "Allows for the construction of circuit boards used to build a teleporter control console." id = "teleconsole" - req_tech = list("programming" = 3, "bluespace" = 2) + req_tech = list("programming" = 3, "bluespace" = 3, "plasmatech" = 4) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/teleporter diff --git a/code/modules/research/designs/computer_part_designs.dm b/code/modules/research/designs/computer_part_designs.dm index 278adb3cf25..5108cdfeaee 100644 --- a/code/modules/research/designs/computer_part_designs.dm +++ b/code/modules/research/designs/computer_part_designs.dm @@ -63,7 +63,7 @@ id = "netcard_basic" req_tech = list("programming" = 2, "engineering" = 1) build_type = IMPRINTER - materials = list(MAT_GLASS = 100, "sacid" = 20) + materials = list(MAT_METAL = 250, MAT_GLASS = 100, "sacid" = 20) build_path = /obj/item/weapon/computer_hardware/network_card category = list("Computer Parts") @@ -72,7 +72,7 @@ id = "netcard_advanced" req_tech = list("programming" = 4, "engineering" = 2) build_type = IMPRINTER - materials = list(MAT_GLASS = 200, "sacid" = 20) + materials = list(MAT_METAL = 500, MAT_GLASS = 200, "sacid" = 20) build_path = /obj/item/weapon/computer_hardware/network_card/advanced category = list("Computer Parts") @@ -81,7 +81,7 @@ id = "netcard_wired" req_tech = list("programming" = 5, "engineering" = 3) build_type = IMPRINTER - materials = list(MAT_GLASS = 400, "sacid" = 20) + materials = list(MAT_METAL = 2500, MAT_GLASS = 400, "sacid" = 20) build_path = /obj/item/weapon/computer_hardware/network_card/wired category = list("Computer Parts") diff --git a/code/modules/research/designs/equipment_designs.dm b/code/modules/research/designs/equipment_designs.dm index 9792f007c55..a3e9b82b722 100644 --- a/code/modules/research/designs/equipment_designs.dm +++ b/code/modules/research/designs/equipment_designs.dm @@ -5,7 +5,7 @@ name = "Experimental Welding Tool" desc = "An experimental welder capable of self-fuel generation." id = "exwelder" - req_tech = list("materials" = 4, "engineering" = 4, "bluespace" = 3, "plasmatech" = 3) + req_tech = list("materials" = 4, "engineering" = 5, "bluespace" = 3, "plasmatech" = 4) build_type = PROTOLATHE materials = list(MAT_METAL = 1000, MAT_GLASS = 500, MAT_PLASMA = 1500, MAT_URANIUM = 200) build_path = /obj/item/weapon/weldingtool/experimental @@ -17,7 +17,7 @@ id = "health_hud" req_tech = list("biotech" = 2, "magnets" = 3) build_type = PROTOLATHE - materials = list(MAT_METAL = 50, MAT_GLASS = 50) + materials = list(MAT_METAL = 500, MAT_GLASS = 500) build_path = /obj/item/clothing/glasses/hud/health category = list("Equipment") @@ -25,9 +25,9 @@ name = "Night Vision Health Scanner HUD" desc = "An advanced medical head-up display that allows doctors to find patients in complete darkness." id = "health_hud_night" - req_tech = list("biotech" = 4, "magnets" = 5) + req_tech = list("biotech" = 4, "magnets" = 5, "plasmatech" = 4, "engineering" = 6) build_type = PROTOLATHE - materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_URANIUM = 1000, MAT_SILVER = 250) + materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_URANIUM = 1000, MAT_SILVER = 350) build_path = /obj/item/clothing/glasses/hud/health/night category = list("Equipment") @@ -45,9 +45,9 @@ name = "Night Vision Goggles" desc = "Goggles that let you see through darkness unhindered." id = "night_vision_goggles" - req_tech = list("magnets" = 4) + req_tech = list("materials" = 4, "magnets" = 5, "plasmatech" = 4, "engineering" = 5) build_type = PROTOLATHE - materials = list(MAT_METAL = 100, MAT_GLASS = 100, MAT_URANIUM = 1000) + materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_PLASMA = 350, MAT_URANIUM = 1000) build_path = /obj/item/clothing/glasses/night category = list("Equipment") @@ -57,7 +57,7 @@ id = "security_hud" req_tech = list("magnets" = 3, "combat" = 2) build_type = PROTOLATHE - materials = list(MAT_METAL = 50, MAT_GLASS = 50) + materials = list(MAT_METAL = 500, MAT_GLASS = 500) build_path = /obj/item/clothing/glasses/hud/security category = list("Equipment") @@ -65,9 +65,9 @@ name = "Night Vision Security HUD" desc = "A heads-up display which provides id data and vision in complete darkness." id = "security_hud_night" - req_tech = list("magnets" = 5, "combat" = 4) + req_tech = list("combat" = 4, "magnets" = 5, "plasmatech" = 4, "engineering" = 6) build_type = PROTOLATHE - materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_URANIUM = 1000, MAT_GOLD = 350) + materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_URANIUM = 1000, MAT_GOLD = 350) build_path = /obj/item/clothing/glasses/hud/security/night category = list("Equipment") @@ -75,9 +75,9 @@ name = "Optical Meson Scanners" desc = "Used for seeing walls, floors, and stuff through anything." id = "mesons" - req_tech = list("materials" = 3, "magnets" = 3, "engineering" = 3) + req_tech = list("magnets" = 2, "engineering" = 2, "plasmatech" = 2) build_type = PROTOLATHE - materials = list(MAT_METAL = 200, MAT_GLASS = 300, MAT_PLASMA = 100) + materials = list(MAT_METAL = 500, MAT_GLASS = 500) build_path = /obj/item/clothing/glasses/meson category = list("Equipment") @@ -85,9 +85,9 @@ name = "Night Vision Optical Meson Scanners" desc = "Prototype meson scanners fitted with an extra sensor which amplifies the visible light spectrum and overlays it to the UHD display." id = "nvgmesons" - req_tech = list("materials" = 5, "magnets" = 5, "engineering" = 4) + req_tech = list("magnets" = 5, "plasmatech" = 5, "engineering" = 6) build_type = PROTOLATHE - materials = list(MAT_METAL = 300, MAT_GLASS = 400, MAT_PLASMA = 250, MAT_URANIUM = 1000) + materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_PLASMA = 350, MAT_URANIUM = 1000) build_path = /obj/item/clothing/glasses/meson/night category = list("Equipment") @@ -95,7 +95,7 @@ name = "Air Horn" desc = "Damn son, where'd you find this?" id = "air_horn" - req_tech = list("materials" = 2, "engineering" = 2) + req_tech = list("materials" = 4, "engineering" = 4) build_type = PROTOLATHE materials = list(MAT_METAL = 4000, MAT_BANANIUM = 1000) build_path = /obj/item/weapon/bikehorn/airhorn @@ -105,9 +105,9 @@ name = "Welding Gas Mask" desc = "A gas mask with built in welding goggles and face shield. Looks like a skull, clearly designed by a nerd." id = "weldingmask" - req_tech = list("materials" = 2, "engineering" = 2) + req_tech = list("materials" = 2, "engineering" = 3) build_type = PROTOLATHE - materials = list(MAT_METAL = 4000, MAT_GLASS = 1000) + materials = list(MAT_METAL = 3000, MAT_GLASS = 1000) build_path = /obj/item/clothing/mask/gas/welding category = list("Equipment") @@ -115,37 +115,26 @@ name = "Portable Seed Extractor" desc = "For the enterprising botanist on the go. Less efficient than the stationary model, it creates one seed per plant." build_type = PROTOLATHE - req_tech = list("biotech" = 2, "materials" = 2) - materials = list(MAT_METAL = 200, MAT_GLASS = 100) + req_tech = list("biotech" = 3, "engineering" = 2) + materials = list(MAT_METAL = 1000, MAT_GLASS = 400) build_path = /obj/item/weapon/storage/bag/plants/portaseeder category = list("Equipment") -/datum/design/detective_scanner - name = "Forensic Scanner" - desc = "A high tech scanner designed for forensic evidence collection, DNA recovery, and fiber analysis." - id = "detectivescanner" - req_tech = list("biotech" = 2, "magnets" = 4) - build_type = PROTOLATHE - materials = list(MAT_METAL = 6000, MAT_GLASS = 2000) - build_path = /obj/item/device/detective_scanner - locked = 1 //no validhunting scientists. - category = list("Equipment") - /datum/design/sci_goggles name = "Science Goggles" desc = "Goggles fitted with a portable analyzer capable of determining the research worth of an item or components of a machine." id = "scigoggles" - req_tech = list("materials" = 3, "magnets" = 3, "engineering" = 2) + req_tech = list("magnets" = 2) build_type = PROTOLATHE - materials = list(MAT_METAL = 250, MAT_GLASS = 300) + materials = list(MAT_METAL = 500, MAT_GLASS = 500) build_path = /obj/item/clothing/glasses/science category = list("Equipment") /datum/design/nv_sci_goggles name = "Night Vision Science Goggles" - desc = "Like Science google, but works in darkness." + desc = "Like Science Goggles, but works in darkness." id = "nvscigoggles" - req_tech = list("materials" = 5, "magnets" = 5, "engineering" = 4) + req_tech = list("magnets" = 5, "plasmatech" = 4, "engineering" = 6) build_type = PROTOLATHE materials = list(MAT_METAL = 250, MAT_GLASS = 300, MAT_PLASMA = 250, MAT_URANIUM = 1000) build_path = /obj/item/clothing/glasses/science/night @@ -155,9 +144,9 @@ name = "Diagnostic HUD" desc = "A HUD used to analyze and determine faults within robotic machinery." id = "dianostic_hud" - req_tech = list("magnets" = 3, "engineering" = 3, "materials" = 2) + req_tech = list("magnets" = 3, "engineering" = 2) build_type = PROTOLATHE - materials = list("$metal" = 50, "$glass" = 50) + materials = list(MAT_METAL = 500, MAT_GLASS = 500) build_path = /obj/item/clothing/glasses/hud/diagnostic category = list("Equipment") @@ -165,9 +154,9 @@ name = "Night Vision Diagnostic HUD" desc = "Upgraded version of the diagnostic HUD designed to function during a power failure." id = "dianostic_hud_night" - req_tech = list("magnets" = 5, "engineering" = 4, "materials" = 4) + req_tech = list("magnets" = 5, "plasmatech" = 4, "engineering" = 6, "powerstorage" = 4) build_type = PROTOLATHE - materials = list("$metal" = 200, "$glass" = 200, "$uranium" = 1000, "$plasma" = 300) + materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_URANIUM = 1000, MAT_PLASMA = 300) build_path = /obj/item/clothing/glasses/hud/diagnostic/night category = list("Equipment") @@ -177,7 +166,7 @@ id = "hydroponic_hud" req_tech = list("magnets" = 3, "biotech" = 3) build_type = PROTOLATHE - materials = list("$metal" = 50, "$glass" = 50) + materials = list(MAT_METAL = 50, MAT_GLASS = 50) build_path = /obj/item/clothing/glasses/hud/hydroponic category = list("Equipment") @@ -185,9 +174,9 @@ name = "Night Vision Hydroponic HUD" desc = "A HUD used to analyze the health and status of plants growing in low-light environments." id = "hydroponic_hud_night" - req_tech = list("magnets" = 5, "biotech" = 4) + req_tech = list("biotech" = 4, "magnets" = 5, "plasmatech" = 4, "engineering" = 6) build_type = PROTOLATHE - materials = list("$metal" = 200, "$glass" = 200, "$uranium" = 1000, "$plasma" = 200) + materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_URANIUM = 1000, MAT_PLASMA = 200) build_path = /obj/item/clothing/glasses/hud/hydroponic/night category = list("Equipment") @@ -269,4 +258,4 @@ build_path = /obj/item/device/multitool/abductor build_type = PROTOLATHE materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 5000, MAT_DIAMOND = 2000) - category = list("Equipment") \ No newline at end of file + category = list("Equipment") diff --git a/code/modules/research/designs/janitorial_designs.dm b/code/modules/research/designs/janitorial_designs.dm index 8c575425ebe..d7031f4f754 100644 --- a/code/modules/research/designs/janitorial_designs.dm +++ b/code/modules/research/designs/janitorial_designs.dm @@ -13,9 +13,9 @@ /datum/design/blutrash name = "Trashbag of Holding" - desc = "An advanced trashabg with bluespace properties; capable of holding a plethora of garbage." + desc = "An advanced trash bag with bluespace properties; capable of holding a plethora of garbage." id = "blutrash" - req_tech = list("materials" = 5, "bluespace" = 3) + req_tech = list("materials" = 5, "bluespace" = 4, "engineering" = 4, "plasmatech" = 3) build_type = PROTOLATHE materials = list(MAT_GOLD = 1500, MAT_URANIUM = 250, MAT_PLASMA = 1500) build_path = /obj/item/weapon/storage/bag/trash/bluespace @@ -25,7 +25,7 @@ name = "Floor Buffer Upgrade" desc = "A floor buffer that can be attached to vehicular janicarts." id = "buffer" - req_tech = list("materials" = 5, "engineering" = 3) + req_tech = list("materials" = 4, "engineering" = 4) build_type = PROTOLATHE materials = list(MAT_METAL = 3000, MAT_GLASS = 200) build_path = /obj/item/janiupgrade @@ -35,7 +35,7 @@ name = "Holographic Sign Projector" desc = "A holograpic projector used to project various warning signs." id = "holosign" - req_tech = list("magnets" = 3, "powerstorage" = 2) + req_tech = list("programming" = 3) build_type = PROTOLATHE materials = list(MAT_METAL = 2000, MAT_GLASS = 1000) build_path = /obj/item/weapon/holosign_creator @@ -45,8 +45,8 @@ name = "Light Replacer" desc = "A device to automatically replace lights. Refill with working lightbulbs." id = "light_replacer" - req_tech = list("magnets" = 3, "materials" = 4) + req_tech = list("magnets" = 3, "engineering" = 4) build_type = PROTOLATHE materials = list(MAT_METAL = 1500, MAT_SILVER = 150, MAT_GLASS = 3000) build_path = /obj/item/device/lightreplacer - category = list("Janitorial") \ No newline at end of file + category = list("Janitorial") diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm index c1d3c64d6b9..5e54cbadb4e 100644 --- a/code/modules/research/designs/machine_designs.dm +++ b/code/modules/research/designs/machine_designs.dm @@ -26,7 +26,7 @@ name = "Machine Board (Emitter)" desc = "The circuit board for an emitter." id = "emitter" - req_tech = list("programming" = 4, "powerstorage" = 5, "engineering" = 5) + req_tech = list("programming" = 3, "powerstorage" = 5, "engineering" = 4) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/emitter @@ -36,7 +36,7 @@ name = "Computer Design (Power Turbine Console Board)" desc = "The circuit board for a power turbine console." id = "power_turbine_console" - req_tech = list("programming" = 4, "powerstorage" = 4, "engineering" = 4) + req_tech = list("programming" = 4, "powerstorage" = 5, "engineering" = 4) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/turbine_computer @@ -76,7 +76,7 @@ name = "Machine Board (Telepad Board)" desc = "Allows for the construction of circuit boards used to build a Telepad." id = "telepad" - req_tech = list("programming" = 4, "bluespace" = 4, "materials" = 3, "engineering" = 3) + req_tech = list("programming" = 4, "bluespace" = 5, "plasmatech" = 4, "engineering" = 4) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/telesci_pad @@ -96,7 +96,7 @@ name = "Machine Board (Teleportation Station)" desc = "Allows for the construction of circuit boards used to build a Teleporter Station." id = "tele_station" - req_tech = list("programming" = 4, "bluespace" = 4, "engineering" = 4) + req_tech = list("programming" = 5, "bluespace" = 4, "engineering" = 4, "plasmatech" = 4) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/teleporter_station @@ -116,7 +116,7 @@ name = "Machine Board (Body Scanner)" desc = "Allows for the construction of circuit boards used to build a Body Scanner." id = "bodyscanner" - req_tech = list("programming" = 3, "biotech" = 2, "materials" = 3, "engineering" = 3) + req_tech = list("programming" = 3, "biotech" = 2, "engineering" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/bodyscanner @@ -126,7 +126,7 @@ name = "Machine Board (Body Scanner Console)" desc = "Allows for the construction of circuit boards used to build a Body Scanner Console." id = "bodyscanner_console" - req_tech = list("programming" = 3, "biotech" = 2, "materials" = 3, "engineering" = 3) + req_tech = list("programming" = 3, "biotech" = 2, "engineering" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/bodyscanner_console @@ -136,7 +136,7 @@ name = "Machine Board (Cloning Pod)" desc = "Allows for the construction of circuit boards used to build a Cloning Pod." id = "clonepod" - req_tech = list("programming" = 3, "biotech" = 3) + req_tech = list("programming" = 4, "biotech" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/clonepod @@ -146,7 +146,7 @@ name = "Machine Board (Cloning Scanner)" desc = "Allows for the construction of circuit boards used to build a Cloning Scanner." id = "clonescanner" - req_tech = list("programming" = 3, "biotech" = 3) + req_tech = list("programming" = 4, "biotech" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/clonescanner @@ -156,7 +156,7 @@ name = "Machine Board (Cryotube Board)" desc = "Allows for the construction of circuit boards used to build a Cryotube." id = "cryotube" - req_tech = list("programming" = 4, "biotech" = 3, "engineering" = 4) + req_tech = list("programming" = 5, "biotech" = 3, "engineering" = 4, "plasmatech" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/cryo_tube @@ -166,7 +166,7 @@ name = "Machine Board (Portable Chem Dispenser)" desc = "The circuit board for a Portable Chem Dispenser." id = "chem_dispenser" - req_tech = list("programming" = 4, "biotech" = 3, "engineering" = 4, "materials" = 4, "plasmatech" = 3) + req_tech = list("programming" = 5, "biotech" = 3, "materials" = 4, "plasmatech" = 4) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/chem_dispenser @@ -176,7 +176,7 @@ name = "Machine Design (Chem Master Board)" desc = "The circuit board for a Chem Master 2999." id = "chem_master" - req_tech = list("biotech" = 1, "materials" = 2, "programming" = 2) + req_tech = list("biotech" = 3, "materials" = 3, "programming" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/chem_master @@ -186,7 +186,7 @@ name = "Machine Design (Chemical Heater Board)" desc = "The circuit board for a chemical heater." id = "chem_heater" - req_tech = list("engineering" = 2, "materials" = 2) + req_tech = list("engineering" = 2, "biotech" = 2, "programming" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/chem_heater @@ -196,7 +196,7 @@ name = "Machine Board (Sleeper)" desc = "Allows for the construction of circuit boards used to build a Sleeper." id = "sleeper" - req_tech = list("programming" = 3, "biotech" = 2, "materials" = 3, "engineering" = 3) + req_tech = list("programming" = 3, "biotech" = 2, "engineering" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/sleeper @@ -206,7 +206,7 @@ name = "Machine Board (Biogenerator)" desc = "The circuit board for a Biogenerator." id = "biogenerator" - req_tech = list("programming" = 3, "biotech" = 2, "materials" = 3) + req_tech = list("programming" = 2, "biotech" = 3, "materials" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/biogenerator @@ -216,7 +216,7 @@ name = "Machine Board (Hydroponics Tray)" desc = "The circuit board for a Hydroponics Tray." id = "hydro_tray" - req_tech = list("programming" = 1, "biotech" = 1) + req_tech = list("biotech" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/hydroponics @@ -226,7 +226,7 @@ name = "Machine Board (Autolathe)" desc = "The circuit board for an Autolathe." id = "autolathe" - req_tech = list("programming" = 2, "engineering" = 2) + req_tech = list("programming" = 3, "engineering" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/autolathe @@ -276,7 +276,7 @@ name = "Machine Board (Mech Bay Recharger)" desc = "The circuit board for a Mech Bay Recharger." id = "mech_recharger" - req_tech = list("programming" = 3, "powerstorage" = 4, "engineering" = 4) + req_tech = list("programming" = 3, "powerstorage" = 4, "engineering" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mech_recharger @@ -316,7 +316,7 @@ name = "Machine Design (Gibber Board)" desc = "The circuit board for a gibber." id = "gibber" - req_tech = list("programming" = 1) + req_tech = list("programming" = 2, "engineering" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/gibber @@ -366,7 +366,7 @@ name = "Machine Design (Recycler Board)" desc = "The circuit board for a recycler." id = "recycler" - req_tech = list("programming" = 1) + req_tech = list("programming" = 2, "engineering" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/recycler @@ -396,7 +396,7 @@ name = "Machine Board (Microwave)" desc = "The circuit board for a Microwave." id = "microwave" - req_tech = list("programming" = 1) + req_tech = list("programming" = 2, "magnets" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/microwave @@ -406,7 +406,7 @@ name = "Machine Board (Oven)" desc = "The circuit board for an Oven." id = "oven" - req_tech = list("programming" = 1, "plasmatech" = 1) + req_tech = list("programming" = 2, "magnets" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/oven @@ -416,7 +416,7 @@ name = "Machine Board (Grill)" desc = "The circuit board for a Grill." id = "grill" - req_tech = list("programming" = 1, "plasmatech" = 1) + req_tech = list("programming" = 2, "magnets" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/grill @@ -426,7 +426,7 @@ name = "Machine Board (Candy Maker)" desc = "The circuit board for a Candy Maker." id = "candymaker" - req_tech = list("programming" = 2) + req_tech = list("programming" = 2, "magnets" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/candy_maker @@ -436,7 +436,7 @@ name = "Machine Board (Deep Fryer)" desc = "The circuit board for a Deep Fryer." id = "deepfryer" - req_tech = list("programming" = 2) + req_tech = list("programming" = 1) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/deepfryer @@ -446,7 +446,7 @@ name = "Machine Board (Orion Trail Arcade Machine)" desc = "Allows for the construction of circuit boards used to build a new Orion Trail machine." id = "arcademachineonion" - req_tech = list("programming" = 2) + req_tech = list("programming" = 1) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/arcade/orion_trail @@ -456,7 +456,7 @@ name = "Machine Board (Programmable Unloader)" desc = "The circuit board for a Programmable Unloader." id = "selunload" - req_tech = list("programming" = 5) + req_tech = list("engineering" = 1, "programming" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 2000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/programmable @@ -476,7 +476,7 @@ name = "Machine Design (Ore Redemption Board)" desc = "The circuit board for an Ore Redemption machine." id = "ore_redemption" - req_tech = list("programming" = 1, "engineering" = 2) + req_tech = list("programming" = 2, "engineering" = 2, "plasmatech" = 3) build_type = IMPRINTER materials = list(MAT_GLASS=1000, "sacid"=20) build_path = /obj/item/weapon/circuitboard/ore_redemption @@ -486,7 +486,7 @@ name = "Machine Design (Mining Rewards Vendor Board)" desc = "The circuit board for a Mining Rewards Vendor." id = "mining_equipment_vendor" - req_tech = list("programming" = 1, "engineering" = 2) + req_tech = list("engineering" = 3) build_type = IMPRINTER materials = list(MAT_GLASS=1000, "sacid"=20) build_path = /obj/item/weapon/circuitboard/mining_equipment_vendor @@ -496,7 +496,7 @@ name = "Machine Design (Claw Game Board)" desc = "The circuit board for a Claw Game." id = "clawgame" - req_tech = list("programming" = 2) + req_tech = list("programming" = 1) build_type = IMPRINTER materials = list(MAT_GLASS=1000, "sacid"=20) build_path = /obj/item/weapon/circuitboard/clawgame @@ -530,4 +530,14 @@ build_type = IMPRINTER materials = list(MAT_GLASS=1000, "sacid"=20) build_path = /obj/item/weapon/circuitboard/plantgenes - category = list("Hydroponics Machinery") \ No newline at end of file + category = list("Hydroponics Machinery") + +/datum/design/ntnet_relay + name = "Machine Design (NTNet Relay Board)" + desc = "The circuit board for a wireless network relay." + id = "ntnet_relay" + req_tech = list("programming" = 2, "engineering" = 2, "bluespace" = 2) + build_type = IMPRINTER + materials = list(MAT_GLASS=1000, "sacid"=20) + build_path = /obj/item/weapon/circuitboard/machine/ntnet_relay + category = list("Subspace Telecomms") diff --git a/code/modules/research/designs/mecha_designs.dm b/code/modules/research/designs/mecha_designs.dm index 4b00be0b932..e535c6cf3c0 100644 --- a/code/modules/research/designs/mecha_designs.dm +++ b/code/modules/research/designs/mecha_designs.dm @@ -6,7 +6,7 @@ name = "Exosuit Board (APLU \"Ripley\" Central Control module)" desc = "Allows for the construction of a \"Ripley\" Central Control module." id = "ripley_main" - req_tech = list("programming" = 3) + req_tech = list("programming" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/ripley/main @@ -16,7 +16,7 @@ name = "Exosuit Board (APLU \"Ripley\" Peripherals Control module)" desc = "Allows for the construction of a \"Ripley\" Peripheral Control module." id = "ripley_peri" - req_tech = list("programming" = 3) + req_tech = list("programming" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/ripley/peripherals @@ -27,7 +27,7 @@ name = "Exosuit Board (\"Odysseus\" Central Control module)" desc = "Allows for the construction of a \"Odysseus\" Central Control module." id = "odysseus_main" - req_tech = list("programming" = 3,"biotech" = 2) + req_tech = list("programming" = 3,"biotech" = 3, "engineering" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/odysseus/main @@ -37,7 +37,7 @@ name = "Exosuit Board (\"Odysseus\" Peripherals Control module)" desc = "Allows for the construction of a \"Odysseus\" Peripheral Control module." id = "odysseus_peri" - req_tech = list("programming" = 3,"biotech" = 2) + req_tech = list("programming" = 3,"biotech" = 3, "engineering" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/odysseus/peripherals @@ -48,7 +48,7 @@ name = "Exosuit Board (\"Gygax\" Central Control module)" desc = "Allows for the construction of a \"Gygax\" Central Control module." id = "gygax_main" - req_tech = list("programming" = 4) + req_tech = list("programming" = 4, "combat" = 3, "engineering" = 4) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/gygax/main @@ -58,7 +58,7 @@ name = "Exosuit Board (\"Gygax\" Peripherals Control module)" desc = "Allows for the construction of a \"Gygax\" Peripheral Control module." id = "gygax_peri" - req_tech = list("programming" = 4) + req_tech = list("programming" = 4, "combat" = 3, "engineering" = 4) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/gygax/peripherals @@ -68,7 +68,7 @@ name = "Exosuit Board (\"Gygax\" Weapons & Targeting Control module)" desc = "Allows for the construction of a \"Gygax\" Weapons & Targeting Control module." id = "gygax_targ" - req_tech = list("programming" = 4, "combat" = 2) + req_tech = list("programming" = 4, "combat" = 4, "engineering" = 4) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/gygax/targeting @@ -79,7 +79,7 @@ name = "Exosuit Board (\"Durand\" Central Control module)" desc = "Allows for the construction of a \"Durand\" Central Control module." id = "durand_main" - req_tech = list("programming" = 4) + req_tech = list("programming" = 4, "combat" = 4, "engineering" = 4) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/durand/main @@ -89,7 +89,7 @@ name = "Exosuit Board (\"Durand\" Peripherals Control module)" desc = "Allows for the construction of a \"Durand\" Peripheral Control module." id = "durand_peri" - req_tech = list("programming" = 4) + req_tech = list("programming" = 4, "combat" = 4, "engineering" = 4) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/durand/peripherals @@ -99,7 +99,7 @@ name = "Exosuit Board (\"Durand\" Weapons & Targeting Control module)" desc = "Allows for the construction of a \"Durand\" Weapons & Targeting Control module." id = "durand_targ" - req_tech = list("programming" = 4, "combat" = 2) + req_tech = list("programming" = 5, "combat" = 4, "engineering" = 4) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/durand/targeting @@ -110,7 +110,7 @@ name = "Exosuit Board (\"Phazon\" Central Control module)" desc = "Allows for the construction of a \"Phazon\" Central Control module." id = "phazon_main" - req_tech = list("programming" = 5, "materials" = 7, "powerstorage" = 6) + req_tech = list("programming" = 6, "materials" = 6, "plasmatech" = 5) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/phazon/main @@ -120,7 +120,7 @@ name = "Exosuit Board (\"Phazon\" Peripherals Control module)" desc = "Allows for the construction of a \"Phazon\" Peripheral Control module." id = "phazon_peri" - req_tech = list("programming" = 5, "bluespace" = 6) + req_tech = list("programming" = 6, "bluespace" = 5, "plasmatech" = 5) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/phazon/peripherals @@ -130,7 +130,7 @@ name = "Exosuit Design (\"Phazon\" Weapons & Targeting Control module)" desc = "Allows for the construction of a \"Phazon\" Weapons & Targeting Control module." id = "phazon_targ" - req_tech = list("programming" = 5, "magnets" = 6) + req_tech = list("programming" = 6, "magnets" = 5, "plasmatech" = 5) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/phazon/targeting @@ -141,7 +141,7 @@ name = "Exosuit Board (\"H.O.N.K\" Central Control module)" desc = "Allows for the construction of a \"H.O.N.K\" Central Control module." id = "honker_main" - req_tech = list("programming" = 3) + req_tech = list("programming" = 3, "engineering" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/honker/main @@ -151,7 +151,7 @@ name = "Exosuit Board (\"H.O.N.K\" Peripherals Control module)" desc = "Allows for the construction of a \"H.O.N.K\" Peripheral Control module." id = "honker_peri" - req_tech = list("programming" = 3) + req_tech = list("programming" = 3, "engineering" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/honker/peripherals @@ -161,7 +161,7 @@ name = "Exosuit Board (\"H.O.N.K\" Weapons & Targeting Control module)" desc = "Allows for the construction of a \"H.O.N.K\" Weapons & Targeting Control module." id = "honker_targ" - req_tech = list("programming" = 3) + req_tech = list("programming" = 3, "engineering" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/honker/targeting @@ -171,7 +171,7 @@ name = "Exosuit Module (\"Reticence\" Central Control module)" desc = "Allows for the construction of a \"Reticence\" Central Control module." id = "reticence_main" - req_tech = list("programming" = 3) + req_tech = list("programming" = 3, "engineering" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/reticence/main @@ -181,7 +181,7 @@ name = "Exosuit Module (\"Reticence\" Peripherals Control module)" desc = "Allows for the construction of a \"Reticence\" Peripheral Control module." id = "reticence_peri" - req_tech = list("programming" = 3) + req_tech = list("programming" = 3, "engineering" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/reticence/peripherals @@ -191,8 +191,8 @@ name = "Exosuit Module (\"Reticence\" Weapons & Targeting Control module)" desc = "Allows for the construction of a \"Reticence\" Weapons & Targeting Control module." id = "reticence_targ" - req_tech = list("programming" = 3) + req_tech = list("programming" = 3, "engineering" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/reticence/targeting - category = list("Exosuit Modules") \ No newline at end of file + category = list("Exosuit Modules") diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index b31eeb43319..42b4151fcf0 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -637,7 +637,7 @@ name = "Exosuit Medical Equipment (Mounted Sleeper)" id = "mech_sleeper" build_type = MECHFAB - req_tech = list("biotech" = 2) + req_tech = list("biotech" = 3, "engineering" = 3, "plasmatech" = 2) build_path = /obj/item/mecha_parts/mecha_equipment/medical/sleeper materials = list(MAT_METAL=5000,MAT_GLASS=10000) construction_time = 100 @@ -647,7 +647,7 @@ name = "Exosuit Medical Equipment (Syringe Gun)" id = "mech_syringe_gun" build_type = MECHFAB - req_tech = list("magnets" = 3,"biotech" = 3) + req_tech = list("magnets" = 4,"biotech" = 4, "combat" = 3, "materials" = 4) build_path = /obj/item/mecha_parts/mecha_equipment/medical/syringe_gun materials = list(MAT_METAL=3000,MAT_GLASS=2000) construction_time = 200 @@ -658,7 +658,7 @@ id = "mech_generator" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/generator - materials = list(MAT_METAL=10000,MAT_GLASS=1000,MAT_SILVER=500) + materials = list(MAT_METAL=10000,MAT_GLASS=1000,MAT_SILVER=2000,MAT_PLASMA=5000) construction_time = 100 category = list("Exosuit Equipment") @@ -666,7 +666,7 @@ name = "Exosuit Weapon (PBT \"Pacifier\" Mounted Taser)" id = "mech_taser" build_type = MECHFAB - req_tech = list("combat" = 2) + req_tech = list("combat" = 3) build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/taser materials = list(MAT_METAL=10000) construction_time = 100 @@ -676,7 +676,7 @@ name = "Exosuit Weapon (\"Ultra AC 2\" LMG)" id = "mech_lmg" build_type = MECHFAB - req_tech = list("combat" = 2) + req_tech = list("combat" = 4) build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/lmg materials = list(MAT_METAL=10000) construction_time = 100 @@ -734,7 +734,7 @@ desc = "An upgraded version of the standard drill." id = "mech_diamond_drill" build_type = MECHFAB - req_tech = list("materials" = 4, "engineering" = 3) + req_tech = list("materials" = 5, "engineering" = 4) build_path = /obj/item/mecha_parts/mecha_equipment/drill/diamonddrill materials = list(MAT_METAL=10000,MAT_DIAMOND=6500) construction_time = 100 @@ -754,7 +754,7 @@ desc = "Compact nuclear reactor module." id = "mech_generator_nuclear" build_type = MECHFAB - req_tech = list("powerstorage"= 3, "engineering" = 3, "materials" = 3) + req_tech = list("powerstorage"= 5, "engineering" = 4, "materials" = 3) build_path = /obj/item/mecha_parts/mecha_equipment/generator/nuclear materials = list(MAT_METAL=10000,MAT_GLASS=1000,MAT_SILVER=500) construction_time = 100 @@ -765,7 +765,7 @@ desc = "An exosuit mounted Gravitational Catapult." id = "mech_gravcatapult" build_type = MECHFAB - req_tech = list("bluespace" = 2, "magnets" = 3, "engineering" = 3) + req_tech = list("bluespace" = 4, "magnets" = 3, "engineering" = 4) build_path = /obj/item/mecha_parts/mecha_equipment/gravcatapult materials = list(MAT_METAL=10000) construction_time = 100 @@ -776,7 +776,7 @@ desc = "An exosuit module that allows generating of small quasi-stable wormholes." id = "mech_wormhole_gen" build_type = MECHFAB - req_tech = list("bluespace" = 3, "magnets" = 2) + req_tech = list("bluespace" = 4, "magnets" = 4, "plasmatech" = 3) build_path = /obj/item/mecha_parts/mecha_equipment/wormhole_generator materials = list(MAT_METAL=10000) construction_time = 100 @@ -787,7 +787,7 @@ desc = "An exosuit-mounted Rapid Construction Device." id = "mech_rcd" build_type = MECHFAB - req_tech = list("materials" = 4, "bluespace" = 3, "magnets" = 4, "powerstorage"=4, "engineering" = 4) + req_tech = list("materials" = 5, "bluespace" = 3, "magnets" = 4, "powerstorage"=4, "engineering" = 5) build_path = /obj/item/mecha_parts/mecha_equipment/rcd materials = list(MAT_METAL=30000,MAT_GOLD=20000,MAT_PLASMA=25000,MAT_SILVER=20000) construction_time = 1200 @@ -820,7 +820,7 @@ desc = "Automated Repair Droid. BEEP BOOP" id = "mech_repair_droid" build_type = MECHFAB - req_tech = list("magnets" = 3, "programming" = 3, "engineering" = 3) + req_tech = list("magnets" = 3, "programming" = 3, "engineering" = 5) build_path = /obj/item/mecha_parts/mecha_equipment/repair_droid materials = list(MAT_METAL=10000,MAT_GLASS=5000,MAT_GOLD=1000,MAT_SILVER=2000) construction_time = 100 @@ -853,9 +853,9 @@ desc = "An exosuit module that allows exosuits to teleport to any position in view." id = "mech_teleporter" build_type = MECHFAB - req_tech = list("bluespace" = 10, "magnets" = 5) + req_tech = list("bluespace" = 8, "magnets" = 5) build_path = /obj/item/mecha_parts/mecha_equipment/teleporter - materials = list(MAT_METAL=10000) + materials = list(MAT_METAL=10000,MAT_DIAMOND=10000) construction_time = 100 category = list("Exosuit Equipment") @@ -864,7 +864,7 @@ desc = "Tesla Energy Relay" id = "mech_energy_relay" build_type = MECHFAB - req_tech = list("magnets" = 4, "powerstorage" = 3) + req_tech = list("magnets" = 4, "powerstorage" = 5, "engineering" = 4) build_path = /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay materials = list(MAT_METAL=10000,MAT_GLASS=2000,MAT_GOLD=2000,MAT_SILVER=3000) construction_time = 100 @@ -876,7 +876,7 @@ desc = "Allows for the construction of CH-LC Laser Cannon." id = "mech_laser_heavy" build_type = MECHFAB - req_tech = list("combat" = 4, "magnets" = 4) + req_tech = list("combat" = 4, "magnets" = 4, "engineering" = 4) build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy materials = list(MAT_METAL=10000) construction_time = 100 @@ -887,7 +887,7 @@ desc = "Allows for the construction of CH-PS Laser." id = "mech_laser" build_type = MECHFAB - req_tech = list("combat" = 3, "magnets" = 3) + req_tech = list("combat" = 3, "magnets" = 3, "engineering" = 3) build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser materials = list(MAT_METAL=10000) construction_time = 100 @@ -942,7 +942,7 @@ desc = "Allows for the construction of SGL-6 Grenade Launcher." id = "mech_grenade_launcher" build_type = MECHFAB - req_tech = list("combat" = 3) + req_tech = list("combat" = 4, "engineering" = 4) build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang materials = list(MAT_METAL=22000,MAT_GOLD=6000,MAT_SILVER=8000) construction_time = 100 @@ -953,7 +953,7 @@ desc = "Allows for the construction of SRM-8 Missile Rack." id = "mech_missile_rack" build_type = MECHFAB - req_tech = list("combat" = 6, "materials" = 6) + req_tech = list("combat" = 6, "materials" = 5, "engineering" = 5) build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack materials = list(MAT_METAL=22000,MAT_GOLD=6000,MAT_SILVER=8000) construction_time = 100 @@ -964,9 +964,9 @@ desc = "A device that shoots resonant plasma bursts at extreme velocity. The blasts are capable of crushing rock and demolishing solid obstacles." id = "mech_plasma_cutter" build_type = MECHFAB - req_tech = list("powerstorage"= 3, "engineering" = 3, "materials" = 3, "combat" = 1, "plasmatech" = 2) + req_tech = list("engineering" = 3, "materials" = 3, "plasmatech" = 4) build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/plasma - materials = list(MAT_METAL=1500, MAT_GLASS=500, MAT_PLASMA=200) + materials = list(MAT_METAL = 8000, MAT_GLASS = 1000, MAT_PLASMA = 2000) construction_time = 100 category = list("Exosuit Equipment") @@ -1026,7 +1026,7 @@ id = "borg_upgrade_vtec" build_type = MECHFAB build_path = /obj/item/borg/upgrade/vtec - req_tech = list("engineering" = 4, "materials" = 5) + req_tech = list("engineering" = 4, "materials" = 5, "programming" = 4) materials = list(MAT_METAL=80000 , MAT_GLASS=6000 , MAT_URANIUM= 5000) construction_time = 120 category = list("Cyborg Upgrade Modules") @@ -1046,7 +1046,7 @@ id = "borg_upgrade_disablercooler" build_type = MECHFAB build_path = /obj/item/borg/upgrade/disablercooler - req_tech = list("combat" = 5, "powerstorage" = 4) + req_tech = list("combat" = 5, "powerstorage" = 4, "engineering" = 4) materials = list(MAT_METAL=80000 , MAT_GLASS=6000 , MAT_GOLD= 2000, MAT_DIAMOND = 500) construction_time = 120 category = list("Cyborg Upgrade Modules") @@ -1056,7 +1056,7 @@ id = "borg_upgrade_diamonddrill" build_type = MECHFAB build_path = /obj/item/borg/upgrade/ddrill - req_tech = list("engineering" = 5, "materials" = 5) + req_tech = list("engineering" = 5, "materials" = 6) materials = list(MAT_METAL=10000, MAT_DIAMOND=2000) construction_time = 120 category = list("Cyborg Upgrade Modules") @@ -1066,7 +1066,7 @@ id = "borg_upgrade_holding" build_type = MECHFAB build_path = /obj/item/borg/upgrade/soh - req_tech = list("engineering" = 5, "materials" = 5, "bluespace" = 3) + req_tech = list("engineering" = 4, "materials" = 4, "bluespace" = 4) materials = list(MAT_METAL = 10000, MAT_GOLD = 250, MAT_URANIUM = 500) construction_time = 120 category = list("Cyborg Upgrade Modules") @@ -1075,7 +1075,7 @@ name = "Cyborg Upgrade (Illegal Modules)" id = "borg_syndicate_module" build_type = MECHFAB - req_tech = list("combat" = 4, "syndicate" = 3) + req_tech = list("combat" = 4, "syndicate" = 2) build_path = /obj/item/borg/upgrade/syndicate materials = list(MAT_METAL=10000,MAT_GLASS=15000,MAT_DIAMOND = 10000) construction_time = 120 @@ -1137,3 +1137,14 @@ materials = list(MAT_METAL=1000, MAT_GLASS=2500) construction_time = 200 category = list("Misc") + +/datum/design/synthetic_flash + name = "Synthetic Flash" + desc = "A synthetic flash used mostly in borg construction." + id = "sflash" + req_tech = list("magnets" = 3, "combat" = 2) + build_type = MECHFAB + materials = list(MAT_METAL = 750, MAT_GLASS = 750) + construction_time = 100 + build_path = /obj/item/device/flash/synthetic + category = list("Misc") diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index f1d477a4f89..c84c7c4c6c8 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -5,10 +5,9 @@ name = "Advanced Mass-Spectrometer" desc = "A device for analyzing chemicals in the blood and their quantities." id = "adv_mass_spectrometer" - req_tech = list("biotech" = 2, "magnets" = 4) + req_tech = list("biotech" = 3, "magnets" = 4, "plasmatech" = 3) build_type = PROTOLATHE - materials = list(MAT_METAL = 30, MAT_GLASS = 20) - reliability = 74 + materials = list(MAT_METAL = 500, MAT_GLASS = 200) build_path = "/obj/item/device/mass_spectrometer/adv" category = list("Medical") @@ -16,21 +15,29 @@ name = "Advanced Reagent Scanner" desc = "A device for identifying chemicals and their proportions." id = "adv_reagent_scanner" - req_tech = list("biotech" = 2, "magnets" = 4) + req_tech = list("biotech" = 3, "magnets" = 4, "plasmatech" = 3) build_type = PROTOLATHE materials = list(MAT_METAL = 30, MAT_GLASS = 20) - reliability = 74 build_path = /obj/item/device/reagent_scanner/adv category = list("Medical") +/datum/design/bluespacebeaker + name = "Bluespace Beaker" + desc = "A bluespace beaker, powered by experimental bluespace technology and Element Cuban combined with the Compound Pete. Can hold up to 300 units." + id = "bluespacebeaker" + req_tech = list("bluespace" = 6, "materials" = 5, "plasmatech" = 4) + build_type = PROTOLATHE + materials = list(MAT_METAL = 3000, MAT_PLASMA = 3000, MAT_DIAMOND = 500) + build_path = /obj/item/weapon/reagent_containers/glass/beaker/bluespace + category = list("Medical") + /datum/design/noreactbeaker name = "Cryostasis Beaker" desc = "A cryostasis beaker that allows for chemical storage without reactions. Can hold up to 50 units." id = "splitbeaker" - req_tech = list("materials" = 2) + req_tech = list("materials" = 3, "engineering" = 3, "plasmatech" = 3) build_type = PROTOLATHE materials = list(MAT_METAL = 3000) - reliability = 76 build_path = /obj/item/weapon/reagent_containers/glass/beaker/noreact category = list("Medical") @@ -41,7 +48,6 @@ req_tech = list("programming" = 2, "biotech" = 2, "magnets" = 2) build_type = PROTOLATHE materials = list(MAT_METAL = 30, MAT_GLASS = 20) - reliability = 76 build_path = /obj/item/device/robotanalyzer category = list("Medical") @@ -62,7 +68,6 @@ req_tech = list("materials" = 7, "biotech" = 5, "powerstorage" = 5) build_type = PROTOLATHE materials = list(MAT_METAL = 5000, MAT_GLASS = 2000, MAT_SILVER = 1000) - reliability = 76 build_path = /obj/item/weapon/defibrillator category = list("Medical") @@ -71,10 +76,9 @@ name = "Handheld Crew Monitor" desc = "A device for tracking crew members on the station." id = "sensor_device" - req_tech = list("biotech" = 4, "magnets" = 3, "materials" = 3) + req_tech = list("programming" = 3, "magnets" = 2, "biotech" = 2) build_type = PROTOLATHE materials = list(MAT_METAL = 30, MAT_GLASS = 20) - reliability = 76 build_path = /obj/item/device/sensor_device category = list("Medical") @@ -82,11 +86,10 @@ name = "Man-Machine Interface" desc = "The Warrior's bland acronym, MMI, obscures the true horror of this monstrosity." id = "mmi" - req_tech = list("programming" = 2, "biotech" = 3) + req_tech = list("programming" = 3, "biotech" = 2, "engineering" = 2) build_type = PROTOLATHE | MECHFAB materials = list(MAT_METAL = 1000, MAT_GLASS = 500) construction_time = 75 - reliability = 76 build_path = /obj/item/device/mmi category = list("Misc","Medical") @@ -94,10 +97,9 @@ name = "Mass-Spectrometer" desc = "A device for analyzing chemicals in the blood." id = "mass_spectrometer" - req_tech = list("biotech" = 2, "magnets" = 2) + req_tech = list("magnets" = 2, "plasmatech" = 2) build_type = PROTOLATHE - materials = list(MAT_METAL = 30, MAT_GLASS = 20) - reliability = 76 + materials = list(MAT_METAL = 300, MAT_GLASS = 100) build_path = /obj/item/device/mass_spectrometer category = list("Medical") @@ -105,10 +107,9 @@ name = "Positronic Brain" desc = "The latest in Artificial Intelligences." id = "mmi_posi" - req_tech = list("programming" = 5, "biotech" = 4) + req_tech = list("programming" = 5, "biotech" = 4, "plasmatech" = 3) build_type = PROTOLATHE | MECHFAB materials = list(MAT_METAL = 1700, MAT_GLASS = 1350, MAT_GOLD = 500) //Gold, because SWAG. - reliability = 74 construction_time = 75 build_path = /obj/item/device/mmi/posibrain category = list("Misc","Medical") @@ -117,11 +118,10 @@ 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("programming" = 2, "biotech" = 4) + req_tech = list("programming" = 3, "biotech" = 2, "engineering" = 2) build_type = PROTOLATHE | MECHFAB materials = list(MAT_METAL = 1200, MAT_GLASS = 500) construction_time = 75 - reliability = 74 build_path = /obj/item/device/mmi/radio_enabled category = list("Misc","Medical") @@ -139,25 +139,12 @@ name = "Reagent Scanner" desc = "A device for identifying chemicals." id = "reagent_scanner" - req_tech = list("biotech" = 2, "magnets" = 2) + req_tech = list("magnets" = 2, "plasmatech" = 2) build_type = PROTOLATHE materials = list(MAT_METAL = 30, MAT_GLASS = 20) - reliability = 76 build_path = /obj/item/device/reagent_scanner category = list("Medical") -/datum/design/synthetic_flash - name = "Synthetic Flash" - desc = "A synthetic flash used mostly in borg construction." - id = "sflash" - req_tech = list("magnets" = 3, "combat" = 2) - build_type = MECHFAB - materials = list(MAT_METAL = 750, MAT_GLASS = 750) - construction_time = 100 - reliability = 76 - build_path = /obj/item/device/flash/synthetic - category = list("Misc") - /datum/design/item/scalpel_laser1 name = "Basic Laser Scalpel" desc = "A scalpel augmented with a directed laser, for more precise cutting without blood entering the field. This one looks basic and could be improved." @@ -266,10 +253,10 @@ name = "Welding Shield implant" desc = "These reactive micro-shields will protect you from welders and flashes without obscuring your vision." id = "ci-welding" - req_tech = list("materials" = 4, "biotech" = 2) + req_tech = list("materials" = 4, "biotech" = 4, "engineering" = 5, "plasmatech" = 4) build_type = PROTOLATHE | MECHFAB construction_time = 40 - materials = list(MAT_METAL = 200, MAT_GLASS = 400) + materials = list(MAT_METAL = 600, MAT_GLASS = 400) build_path = /obj/item/organ/internal/cyberimp/eyes/shield category = list("Misc", "Medical") @@ -277,10 +264,10 @@ name = "Medical HUD implant" desc = "These cybernetic eyes will display a medical HUD over everything you see. Wiggle eyes to control." id = "ci-medhud" - req_tech = list("materials" = 6, "programming" = 4, "biotech" = 4) + req_tech = list("materials" = 5, "programming" = 4, "biotech" = 4) build_type = PROTOLATHE | MECHFAB construction_time = 50 - materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_SILVER = 500, MAT_GOLD = 500) + materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 500, MAT_GOLD = 500) build_path = /obj/item/organ/internal/cyberimp/eyes/hud/medical category = list("Misc", "Medical") @@ -288,10 +275,10 @@ name = "Security HUD implant" desc = "These cybernetic eyes will display a security HUD over everything you see. Wiggle eyes to control." id = "ci-sechud" - req_tech = list("materials" = 6, "programming" = 5, "biotech" = 4, "combat" = 2) + req_tech = list("materials" = 5, "programming" = 4, "biotech" = 4, "combat" = 3) build_type = PROTOLATHE | MECHFAB construction_time = 50 - materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_SILVER = 750, MAT_GOLD = 750) + materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 750, MAT_GOLD = 750) build_path = /obj/item/organ/internal/cyberimp/eyes/hud/security category = list("Misc", "Medical") @@ -299,10 +286,10 @@ name = "X-Ray implant" desc = "These cybernetic eyes will give you X-ray vision. Blinking is futile." id = "ci-xray" - req_tech = list("materials" = 7, "programming" = 5, "biotech" = 6, "magnets" = 5) + req_tech = list("materials" = 7, "programming" = 5, "biotech" = 7, "magnets" = 5,"plasmatech" = 6) build_type = PROTOLATHE | MECHFAB construction_time = 60 - materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_SILVER = 600, MAT_GOLD = 600, MAT_PLASMA = 1000, MAT_URANIUM = 1000, MAT_DIAMOND = 2000) + materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 600, MAT_GOLD = 600, MAT_PLASMA = 1000, MAT_URANIUM = 1000, MAT_DIAMOND = 2000) build_path = /obj/item/organ/internal/cyberimp/eyes/xray category = list("Misc", "Medical") @@ -310,10 +297,10 @@ name = "Thermals implant" desc = "These cybernetic eyes will give you Thermal vision. Vertical slit pupil included." id = "ci-thermals" - req_tech = list("materials" = 7, "programming" = 5, "biotech" = 5, "magnets" = 5, "syndicate" = 5) + req_tech = list("materials" = 6, "programming" = 4, "biotech" = 7, "magnets" = 5,"plasmatech" = 4) build_type = PROTOLATHE | MECHFAB construction_time = 60 - materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_SILVER = 600, MAT_GOLD = 600, MAT_PLASMA = 1000, MAT_DIAMOND = 2000) + materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 600, MAT_GOLD = 600, MAT_PLASMA = 1000, MAT_DIAMOND = 2000) build_path = /obj/item/organ/internal/cyberimp/eyes/thermals category = list("Misc", "Medical") @@ -321,10 +308,10 @@ name = "Anti-Drop implant" desc = "This cybernetic brain implant will allow you to force your hand muscles to contract, preventing item dropping. Twitch ear to toggle." id = "ci-antidrop" - req_tech = list("materials" = 7, "programming" = 5, "biotech" = 5) + req_tech = list("materials" = 5, "programming" = 6, "biotech" = 5) build_type = PROTOLATHE | MECHFAB construction_time = 60 - materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_SILVER = 400, MAT_GOLD = 400) + materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 400, MAT_GOLD = 400) build_path = /obj/item/organ/internal/cyberimp/brain/anti_drop category = list("Misc", "Medical") @@ -332,10 +319,10 @@ name = "CNS Rebooter implant" desc = "This implant will automatically give you back control over your central nervous system, reducing downtime when stunned." id = "ci-antistun" - req_tech = list("materials" = 7, "programming" = 5, "biotech" = 6) + req_tech = list("materials" = 6, "programming" = 5, "biotech" = 6) build_type = PROTOLATHE | MECHFAB construction_time = 60 - materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_SILVER = 500, MAT_GOLD = 1000) + materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 500, MAT_GOLD = 1000) build_path = /obj/item/organ/internal/cyberimp/brain/anti_stun category = list("Misc", "Medical") @@ -354,10 +341,10 @@ name = "Nutriment pump implant" desc = "This implant with synthesize and pump into your bloodstream a small amount of nutriment when you are starving." id = "ci-nutriment" - req_tech = list("materials" = 6, "programming" = 4, "biotech" = 5) + req_tech = list("materials" = 3, "powerstorage" = 4, "biotech" = 3) build_type = PROTOLATHE | MECHFAB construction_time = 40 - materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_GOLD = 500, MAT_URANIUM = 500) + materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_GOLD = 500) build_path = /obj/item/organ/internal/cyberimp/chest/nutriment category = list("Misc", "Medical") @@ -365,10 +352,10 @@ name = "Nutriment pump implant PLUS" desc = "This implant with synthesize and pump into your bloodstream a small amount of nutriment when you are hungry." id = "ci-nutrimentplus" - req_tech = list("materials" = 6, "programming" = 4, "biotech" = 6) + req_tech = list("materials" = 5, "powerstorage" = 4, "biotech" = 4) build_type = PROTOLATHE | MECHFAB construction_time = 50 - materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_GOLD = 500, MAT_URANIUM = 750) + materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_GOLD = 500, MAT_URANIUM = 750) build_path = /obj/item/organ/internal/cyberimp/chest/nutriment/plus category = list("Misc", "Medical") @@ -376,10 +363,10 @@ name = "Reviver implant" desc = "This implant will attempt to revive you if you lose consciousness. For the faint of heart!" id = "ci-reviver" - req_tech = list("materials" = 6, "programming" = 4, "biotech" = 7, "syndicate" = 4) + req_tech = list("materials" = 5, "programming" = 4, "biotech" = 5) build_type = PROTOLATHE | MECHFAB construction_time = 60 - materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_GOLD = 500, MAT_URANIUM = 1000, MAT_DIAMOND = 2000) + materials = list(MAT_METAL = 800, MAT_GLASS = 800, MAT_GOLD = 300, MAT_URANIUM = 500) build_path = /obj/item/organ/internal/cyberimp/chest/reviver category = list("Misc", "Medical") @@ -391,7 +378,7 @@ name = "Implanter" desc = "A sterile automatic implant injector." id = "implanter" - req_tech = list("materials" = 1, "programming" = 2, "biotech" = 3) + req_tech = list("materials" = 2, "biotech" = 3, "programming" = 2) build_type = PROTOLATHE materials = list(MAT_METAL = 600, MAT_GLASS = 200) build_path = /obj/item/weapon/implanter @@ -401,7 +388,7 @@ name = "Implant Case" desc = "A glass case containing an implant." id = "implantcase" - req_tech = list("materials" = 1, "biotech" = 2) + req_tech = list("biotech" = 2) build_type = PROTOLATHE materials = list(MAT_GLASS = 500) build_path = /obj/item/weapon/implantcase @@ -411,9 +398,9 @@ name = "Freedom Implant Case" desc = "A glass case containing an implant." id = "implant_freedom" - req_tech = list("materials" = 2, "biotech" = 3, "magnets" = 3, "syndicate" = 5) + req_tech = list("combat" = 6, "biotech" = 5, "magnets" = 3, "syndicate" = 3) build_type = PROTOLATHE - materials = list(MAT_METAL = 50, MAT_GLASS = 500, MAT_GOLD = 250) + materials = list(MAT_METAL = 800, MAT_GLASS = 500, MAT_GOLD = 500) build_path = /obj/item/weapon/implantcase/freedom category = list("Medical") @@ -421,8 +408,8 @@ name = "Adrenalin Implant Case" desc = "A glass case containing an implant." id = "implant_adrenalin" - req_tech = list("materials" = 2, "biotech" = 5, "combat" = 3, "syndicate" = 6) + req_tech = list("biotech" = 6, "combat" = 6, "syndicate" = 6) build_type = PROTOLATHE - materials = list(MAT_METAL = 50, MAT_GLASS = 500, MAT_GOLD = 500, MAT_URANIUM = 100, MAT_DIAMOND = 200) + materials = list(MAT_METAL = 1000, MAT_GLASS = 500, MAT_GOLD = 500, MAT_URANIUM = 600, MAT_DIAMOND = 600) build_path = /obj/item/weapon/implantcase/adrenaline - category = list("Medical") \ No newline at end of file + category = list("Medical") diff --git a/code/modules/research/designs/mining_designs.dm b/code/modules/research/designs/mining_designs.dm index aa3014e2825..fa75bd29c24 100644 --- a/code/modules/research/designs/mining_designs.dm +++ b/code/modules/research/designs/mining_designs.dm @@ -5,28 +5,17 @@ name = "Diamond Mining Drill" desc = "Yours is the drill that will pierce the heavens!" id = "drill_diamond" - req_tech = list("materials" = 6, "powerstorage" = 4, "engineering" = 4) + req_tech = list("materials" = 6, "powerstorage" = 5, "engineering" = 5) build_type = PROTOLATHE materials = list(MAT_METAL = 3000, MAT_GLASS = 1000, MAT_DIAMOND = 2000) //Yes, a whole diamond is needed. - reliability = 79 build_path = /obj/item/weapon/pickaxe/drill/diamonddrill category = list("Mining") -/datum/design/pick_diamond - name = "Diamond Pickaxe" - desc = "A pickaxe with a diamond pick head, this is just like minecraft." - id = "pick_diamond" - req_tech = list("materials" = 6) - build_type = PROTOLATHE - materials = list(MAT_DIAMOND = 3000) - build_path = /obj/item/weapon/pickaxe/diamond - category = list("Mining") - /datum/design/drill name = "Mining Drill" desc = "Yours is the drill that will pierce through the rock walls." id = "drill" - req_tech = list("materials" = 2, "powerstorage" = 3, "engineering" = 2) + req_tech = list("materials" = 2, "powerstorage" = 2, "engineering" = 3) build_type = PROTOLATHE materials = list(MAT_METAL = 6000, MAT_GLASS = 1000) build_path = /obj/item/weapon/pickaxe/drill @@ -36,10 +25,9 @@ name = "Plasma Cutter" desc = "You could use it to cut limbs off of xenos! Or, you know, mine stuff." id = "plasmacutter" - req_tech = list("materials" = 2, "plasmatech" = 2, "engineering" = 2, "combat" = 1, "magnets" = 2) + req_tech = list("materials" = 3, "plasmatech" = 3, "magnets" = 2) build_type = PROTOLATHE - materials = list(MAT_METAL = 1500, MAT_GLASS = 500, MAT_GOLD = 500, MAT_PLASMA = 500) - reliability = 79 + materials = list(MAT_METAL = 1500, MAT_GLASS = 500, MAT_PLASMA = 400) build_path = /obj/item/weapon/gun/energy/plasmacutter category = list("Mining") @@ -47,10 +35,9 @@ name = "Advanced Plasma Cutter" desc = "It's an advanced plasma cutter, oh my god." id = "plasmacutter_adv" - req_tech = list("materials" = 4, "plasmatech" = 3, "engineering" = 3, "combat" = 3, "magnets" = 3) + req_tech = list("materials" = 4, "plasmatech" = 4, "engineering" = 2, "combat" = 3, "magnets" = 3) build_type = PROTOLATHE materials = list(MAT_METAL = 3000, MAT_GLASS = 1000, MAT_PLASMA = 2000, MAT_GOLD = 500) - reliability = 79 build_path = /obj/item/weapon/gun/energy/plasmacutter/adv category = list("Mining") @@ -58,7 +45,7 @@ name = "Sonic Jackhammer" desc = "Essentially a handheld planet-cracker. Can drill through walls with ease as well." id = "jackhammer" - req_tech = list("materials" = 6, "powerstorage" = 6, "engineering" = 5, "magnets" = 6) + req_tech = list("materials" = 7, "powerstorage" = 5, "engineering" = 6, "magnets" = 5) build_type = PROTOLATHE materials = list(MAT_METAL = 6000, MAT_GLASS = 2000, MAT_SILVER = 2000, MAT_DIAMOND = 6000) build_path = /obj/item/weapon/pickaxe/drill/jackhammer @@ -70,10 +57,10 @@ id = "superresonator" req_tech = list("materials" = 4, "powerstorage" = 3, "engineering" = 3, "magnets" = 3) build_type = PROTOLATHE - materials = list(MAT_METAL = 4000, MAT_GLASS = 1500, MAT_SILVER = 2000, MAT_URANIUM = 2000) + materials = list(MAT_METAL = 4000, MAT_GLASS = 1500, MAT_SILVER = 1000, MAT_URANIUM = 1000) build_path = /obj/item/weapon/resonator/upgraded category = list("Mining") - + /datum/design/trigger_guard_mod name = "Kinetic Accelerator Trigger Guard Mod" desc = "A device which allows kinetic accelerators to be wielded by any organism." @@ -132,4 +119,4 @@ build_type = PROTOLATHE | MECHFAB materials = list(MAT_METAL = 8000, MAT_GLASS = 1500, MAT_SILVER = 2000, MAT_GOLD = 2000, MAT_DIAMOND = 2000) build_path = /obj/item/borg/upgrade/modkit/aoe/turfs - category = list("Mining", "Cyborg Upgrade Modules") \ No newline at end of file + category = list("Mining", "Cyborg Upgrade Modules") diff --git a/code/modules/research/designs/misc_designs.dm b/code/modules/research/designs/misc_designs.dm index ea67fe5e809..080cca11ffb 100644 --- a/code/modules/research/designs/misc_designs.dm +++ b/code/modules/research/designs/misc_designs.dm @@ -7,7 +7,7 @@ id = "design_disk" req_tech = list("programming" = 1) build_type = PROTOLATHE | AUTOLATHE - materials = list(MAT_METAL = 30, MAT_GLASS = 10) + materials = list(MAT_METAL = 300, MAT_GLASS = 100) build_path = /obj/item/weapon/disk/design_disk category = list("Miscellaneous") @@ -25,7 +25,7 @@ name = "Intellicard" desc = "Allows for the construction of an intellicard." id = "intellicard" - req_tech = list("programming" = 4, "materials" = 4) + req_tech = list("programming" = 3, "materials" = 3) build_type = PROTOLATHE materials = list(MAT_GLASS = 1000, MAT_GOLD = 200) build_path = /obj/item/device/aicard @@ -47,7 +47,7 @@ id = "tech_disk" req_tech = list("programming" = 1) build_type = PROTOLATHE | AUTOLATHE - materials = list(MAT_METAL = 30, MAT_GLASS = 10) + materials = list(MAT_METAL = 300, MAT_GLASS = 100) build_path = /obj/item/weapon/disk/tech_disk category = list("Miscellaneous") @@ -59,4 +59,4 @@ build_type = PROTOLATHE materials = list(MAT_METAL = 500, MAT_GLASS = 300) build_path = /obj/item/device/camera/digital - category = list("Miscellaneous") \ No newline at end of file + category = list("Miscellaneous") diff --git a/code/modules/research/designs/power_designs.dm b/code/modules/research/designs/power_designs.dm index a70088b25b1..f1b361a4b5b 100644 --- a/code/modules/research/designs/power_designs.dm +++ b/code/modules/research/designs/power_designs.dm @@ -28,10 +28,9 @@ name = "Hyper-Capacity Power Cell" desc = "A power cell that holds 30000 units of energy" id = "hyper_cell" - req_tech = list("powerstorage" = 5, "materials" = 4) - reliability = 70 + req_tech = list("powerstorage" = 5, "materials" = 5, "engineering" = 5) build_type = PROTOLATHE | MECHFAB | PODFAB - materials = list(MAT_METAL = 400, MAT_GOLD = 150, MAT_SILVER = 150, MAT_GLASS = 70) + materials = list(MAT_METAL = 700, MAT_GOLD = 150, MAT_SILVER = 150, MAT_GLASS = 70) construction_time=100 build_path = /obj/item/weapon/stock_parts/cell/hyper category = list("Misc","Power") @@ -40,8 +39,7 @@ name = "Super-Capacity Power Cell" desc = "A power cell that holds 20000 units of energy" id = "super_cell" - req_tech = list("powerstorage" = 3, "materials" = 2) - reliability = 75 + req_tech = list("powerstorage" = 3, "materials" = 3) build_type = PROTOLATHE | MECHFAB | PODFAB materials = list(MAT_METAL = 700, MAT_GLASS = 70) construction_time=100 @@ -52,8 +50,7 @@ name = "Bluespace Power Cell" desc = "A power cell that holds 40000 units of energy." id = "bluespace_cell" - req_tech = list("powerstorage" = 6, "materials" = 5) - reliability = 70 + req_tech = list("powerstorage" = 6, "materials" = 5, "engineering" = 5, "bluespace" = 5) build_type = PROTOLATHE | MECHFAB materials = list(MAT_METAL = 800, MAT_GOLD = 300, MAT_SILVER = 300, MAT_GLASS = 160, MAT_DIAMOND = 160) construction_time=100 @@ -64,9 +61,8 @@ name = "Machine Board (PACMAN-type Generator)" desc = "The circuit board that for a PACMAN-type portable generator." id = "pacman" - req_tech = list("programming" = 3, "plasmatech" = 3, "powerstorage" = 3, "engineering" = 3) + req_tech = list("programming" = 2, "plasmatech" = 3, "powerstorage" = 3, "engineering" = 3) build_type = IMPRINTER - reliability = 79 materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/pacman category = list("Engineering Machinery") @@ -75,9 +71,8 @@ name = "Machine Board (MRSPACMAN-type Generator)" desc = "The circuit board that for a MRSPACMAN-type portable generator." id = "mrspacman" - req_tech = list("programming" = 3, "powerstorage" = 5, "engineering" = 5) + req_tech = list("programming" = 3, "powerstorage" = 5, "engineering" = 5, "plasmatech" = 4) build_type = IMPRINTER - reliability = 74 materials = list(MAT_GLASS = 2000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/pacman/mrs category = list("Engineering Machinery") @@ -88,7 +83,6 @@ id = "superpacman" req_tech = list("programming" = 3, "powerstorage" = 4, "engineering" = 4) build_type = IMPRINTER - reliability = 76 materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/pacman/super category = list("Engineering Machinery") @@ -97,7 +91,7 @@ name = "Machine Design (Tesla Coil Board)" desc = "The circuit board for a tesla coil." id = "tesla_coil" - req_tech = list("programming" = 1) + req_tech = list("programming" = 3, "powerstorage" = 3, "magnets" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/tesla_coil @@ -107,8 +101,8 @@ name = "Machine Design (Grounding Rod Board)" desc = "The circuit board for a grounding rod." id = "grounding_rod" - req_tech = list("programming" = 1) + req_tech = list("programming" = 3, "powerstorage" = 3, "magnets" = 3, "plasmatech" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/grounding_rod - category = list("Engineering Machinery") \ No newline at end of file + category = list("Engineering Machinery") diff --git a/code/modules/research/designs/stock_parts_designs.dm b/code/modules/research/designs/stock_parts_designs.dm index 7859f635cd5..ab4464a5f27 100644 --- a/code/modules/research/designs/stock_parts_designs.dm +++ b/code/modules/research/designs/stock_parts_designs.dm @@ -8,7 +8,7 @@ id = "basic_capacitor" req_tech = list("powerstorage" = 1) build_type = PROTOLATHE | AUTOLATHE - materials = list(MAT_METAL = 50, MAT_GLASS = 50) + materials = list(MAT_METAL = 100, MAT_GLASS = 100) build_path = /obj/item/weapon/stock_parts/capacitor category = list("Stock Parts","Machinery","initial") lathe_time_factor = 5 @@ -19,7 +19,7 @@ id = "basic_sensor" req_tech = list("magnets" = 1) build_type = PROTOLATHE | AUTOLATHE - materials = list(MAT_METAL = 50, MAT_GLASS = 20) + materials = list(MAT_METAL = 100, MAT_GLASS = 50) build_path = /obj/item/weapon/stock_parts/scanning_module category = list("Stock Parts","Machinery","initial") lathe_time_factor = 5 @@ -28,9 +28,9 @@ name = "Micro Manipulator" desc = "A stock part used in the construction of various devices." id = "micro_mani" - req_tech = list("materials" = 1, "programming" = 1) + req_tech = list("materials" = 1) build_type = PROTOLATHE | AUTOLATHE - materials = list(MAT_METAL = 30) + materials = list(MAT_METAL = 100) build_path = /obj/item/weapon/stock_parts/manipulator category = list("Stock Parts","Machinery","initial") lathe_time_factor = 5 @@ -41,7 +41,7 @@ id = "basic_micro_laser" req_tech = list("magnets" = 1) build_type = PROTOLATHE | AUTOLATHE - materials = list(MAT_METAL = 10, MAT_GLASS = 20) + materials = list(MAT_METAL = 100, MAT_GLASS = 50) build_path = /obj/item/weapon/stock_parts/micro_laser category = list("Stock Parts","Machinery","initial") lathe_time_factor = 5 @@ -52,7 +52,7 @@ id = "basic_matter_bin" req_tech = list("materials" = 1) build_type = PROTOLATHE | AUTOLATHE - materials = list(MAT_METAL = 80) + materials = list(MAT_METAL = 100) build_path = /obj/item/weapon/stock_parts/matter_bin category = list("Stock Parts","Machinery","initial") lathe_time_factor = 5 @@ -63,7 +63,7 @@ id = "adv_capacitor" req_tech = list("powerstorage" = 3) build_type = PROTOLATHE - materials = list(MAT_METAL = 50, MAT_GLASS = 50) + materials = list(MAT_METAL = 150, MAT_GLASS = 150) build_path = /obj/item/weapon/stock_parts/capacitor/adv category = list("Stock Parts") lathe_time_factor = 5 @@ -74,7 +74,7 @@ id = "adv_sensor" req_tech = list("magnets" = 3) build_type = PROTOLATHE - materials = list(MAT_METAL = 50, MAT_GLASS = 20) + materials = list(MAT_METAL = 150, MAT_GLASS = 100) build_path = /obj/item/weapon/stock_parts/scanning_module/adv category = list("Stock Parts") lathe_time_factor = 5 @@ -85,7 +85,7 @@ id = "nano_mani" req_tech = list("materials" = 3, "programming" = 2) build_type = PROTOLATHE - materials = list(MAT_METAL = 30) + materials = list(MAT_METAL = 150) build_path = /obj/item/weapon/stock_parts/manipulator/nano category = list("Stock Parts") lathe_time_factor = 5 @@ -96,7 +96,7 @@ id = "high_micro_laser" req_tech = list("magnets" = 3) build_type = PROTOLATHE - materials = list(MAT_METAL = 10, MAT_GLASS = 20) + materials = list(MAT_METAL = 150, MAT_GLASS = 100) build_path = /obj/item/weapon/stock_parts/micro_laser/high category = list("Stock Parts") lathe_time_factor = 5 @@ -107,7 +107,7 @@ id = "adv_matter_bin" req_tech = list("materials" = 3) build_type = PROTOLATHE - materials = list(MAT_METAL = 80) + materials = list(MAT_METAL = 150) build_path = /obj/item/weapon/stock_parts/matter_bin/adv category = list("Stock Parts") lathe_time_factor = 5 @@ -116,10 +116,9 @@ name = "Super Capacitor" desc = "A stock part used in the construction of various devices." id = "super_capacitor" - req_tech = list("powerstorage" = 5, "materials" = 4) + req_tech = list("powerstorage" = 5, "engineering" = 5) build_type = PROTOLATHE - reliability = 71 - materials = list(MAT_METAL = 50, MAT_GLASS = 50, MAT_GOLD = 20) + materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_GOLD = 100) build_path = /obj/item/weapon/stock_parts/capacitor/super category = list("Stock Parts") lathe_time_factor = 5 @@ -128,10 +127,9 @@ name = "Phasic Scanning Module" desc = "A stock part used in the construction of various devices." id = "phasic_sensor" - req_tech = list("magnets" = 5, "materials" = 3) + req_tech = list("magnets" = 5, "engineering" = 5) build_type = PROTOLATHE - materials = list(MAT_METAL = 50, MAT_GLASS = 20, MAT_SILVER = 10) - reliability = 72 + materials = list(MAT_METAL = 200, MAT_GLASS = 150, MAT_SILVER = 60) build_path = /obj/item/weapon/stock_parts/scanning_module/phasic category = list("Stock Parts") lathe_time_factor = 5 @@ -140,10 +138,9 @@ name = "Pico Manipulator" desc = "A stock part used in the construction of various devices." id = "pico_mani" - req_tech = list("materials" = 5, "programming" = 2) + req_tech = list("materials" = 5, "programming" = 4, "engineering" = 5) build_type = PROTOLATHE - materials = list(MAT_METAL = 30) - reliability = 73 + materials = list(MAT_METAL = 200) build_path = /obj/item/weapon/stock_parts/manipulator/pico category = list("Stock Parts") lathe_time_factor = 5 @@ -152,10 +149,9 @@ name = "Ultra-High-Power Micro-Laser" desc = "A stock part used in the construction of various devices." id = "ultra_micro_laser" - req_tech = list("magnets" = 5, "materials" = 5) + req_tech = list("magnets" = 5, "engineering" = 5) build_type = PROTOLATHE - materials = list(MAT_METAL = 10, MAT_GLASS = 20, MAT_URANIUM = 10) - reliability = 70 + materials = list(MAT_METAL = 200, MAT_GLASS = 150, MAT_URANIUM = 60) build_path = /obj/item/weapon/stock_parts/micro_laser/ultra category = list("Stock Parts") lathe_time_factor = 5 @@ -164,10 +160,9 @@ name = "Super Matter Bin" desc = "A stock part used in the construction of various devices." id = "super_matter_bin" - req_tech = list("materials" = 5) + req_tech = list("materials" = 5, "engineering" = 5) build_type = PROTOLATHE - materials = list(MAT_METAL = 80) - reliability = 75 + materials = list(MAT_METAL = 200) build_path = /obj/item/weapon/stock_parts/matter_bin/super category = list("Stock Parts") lathe_time_factor = 5 @@ -176,10 +171,9 @@ name = "Quadratic Capacitor" desc = "A stock part used in the construction of various devices." id = "quadratic_capacitor" - req_tech = list("powerstorage" = 6, "materials" = 5) + req_tech = list("powerstorage" = 6, "engineering" = 5, "materials" = 5, "bluespace" = 5) build_type = PROTOLATHE - reliability = 71 - materials = list(MAT_METAL = 100, MAT_GLASS = 100, MAT_DIAMOND = 40) + materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_GOLD = 100, MAT_DIAMOND = 100) build_path = /obj/item/weapon/stock_parts/capacitor/quadratic category = list("Stock Parts") lathe_time_factor = 5 @@ -188,10 +182,9 @@ name = "Triphasic Scanning Module" desc = "A stock part used in the construction of various devices." id = "triphasic_scanning" - req_tech = list("magnets" = 6, "materials" = 4) + req_tech = list("magnets" = 6, "materials" = 5, "engineering" = 5, "bluespace" = 5) build_type = PROTOLATHE - materials = list(MAT_METAL = 100, MAT_GLASS = 40, MAT_DIAMOND = 20) - reliability = 72 + materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_DIAMOND = 60) build_path = /obj/item/weapon/stock_parts/scanning_module/triphasic category = list("Stock Parts") lathe_time_factor = 5 @@ -200,10 +193,9 @@ name = "Femto Manipulator" desc = "A stock part used in the construction of various devices." id = "femto_mani" - req_tech = list("materials" = 6, "programming" = 3) + req_tech = list("materials" = 7, "programming" = 5, "engineering" = 5, "bluespace" = 5) build_type = PROTOLATHE - materials = list(MAT_METAL = 60, MAT_DIAMOND = 30) - reliability = 73 + materials = list(MAT_METAL = 200, MAT_DIAMOND = 60) build_path = /obj/item/weapon/stock_parts/manipulator/femto category = list("Stock Parts") lathe_time_factor = 5 @@ -212,10 +204,9 @@ name = "Quad-Ultra Micro-Laser" desc = "A stock part used in the construction of various devices." id = "quadultra_micro_laser" - req_tech = list("magnets" = 6, "materials" = 6) + req_tech = list("magnets" = 6, "materials" = 5, "engineering" = 5, "bluespace" = 5) build_type = PROTOLATHE - materials = list(MAT_METAL = 20, MAT_GLASS = 40, MAT_URANIUM = 20, MAT_DIAMOND = 20) - reliability = 70 + materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_URANIUM = 100, MAT_DIAMOND = 60) build_path = /obj/item/weapon/stock_parts/micro_laser/quadultra category = list("Stock Parts") lathe_time_factor = 5 @@ -224,10 +215,9 @@ name = "Bluespace Matter Bin" desc = "A stock part used in the construction of various devices." id = "bluespace_matter_bin" - req_tech = list("materials" = 6) + req_tech = list("materials" = 7, "engineering" = 5, "bluespace" = 5) build_type = PROTOLATHE - materials = list(MAT_METAL = 160, MAT_DIAMOND = 200) - reliability = 75 + materials = list(MAT_METAL = 250, MAT_DIAMOND = 200) build_path = /obj/item/weapon/stock_parts/matter_bin/bluespace category = list("Stock Parts") lathe_time_factor = 5 @@ -236,7 +226,7 @@ name = "Rapid Part Exchange Device" desc = "Special mechanical module made to store, sort, and apply standard machine parts." id = "rped" - req_tech = list("engineering" = 3, "materials" = 3) + req_tech = list("engineering" = 1) build_type = PROTOLATHE materials = list(MAT_METAL = 10000, MAT_GLASS = 5000) //hardcore build_path = /obj/item/weapon/storage/part_replacer @@ -246,7 +236,7 @@ name = "Bluespace RPED" desc = "Powered by bluespace technology, this RPED variant can upgrade buildings from a distance, without needing to remove the panel first." id = "bs_rped" - req_tech = list("engineering" = 3, "materials" = 5, "programming" = 3, "bluespace" = 3) + req_tech = list("engineering" = 4, "bluespace" = 3) build_type = PROTOLATHE materials = list(MAT_METAL = 15000, MAT_GLASS = 5000, MAT_SILVER = 2500) //hardcore build_path = /obj/item/weapon/storage/part_replacer/bluespace @@ -261,4 +251,4 @@ materials = list(MAT_METAL = 4000, MAT_PLASMA = 4000) build_path = /obj/item/stack/sheet/mineral/abductor category = list("Stock Parts") - lathe_time_factor = 5 \ No newline at end of file + lathe_time_factor = 5 diff --git a/code/modules/research/designs/telecomms_designs.dm b/code/modules/research/designs/telecomms_designs.dm index 4c6d72c0120..fec717f41ab 100644 --- a/code/modules/research/designs/telecomms_designs.dm +++ b/code/modules/research/designs/telecomms_designs.dm @@ -36,7 +36,7 @@ name = "Machine Board (Relay Mainframe)" desc = "Allows for the construction of Telecommunications Relay Mainframes." id = "s-relay" - req_tech = list("programming" = 1, "engineering" = 2, "bluespace" = 2) + req_tech = list("programming" = 2, "engineering" = 2, "bluespace" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/telecomms/relay @@ -56,7 +56,7 @@ name = "Machine Board (Subspace Broadcaster)" desc = "Allows for the construction of Subspace Broadcasting equipment." id = "s-broadcaster" - req_tech = list("programming" = 2, "engineering" = 2, "bluespace" = 1) + req_tech = list("programming" = 2, "engineering" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/telecomms/broadcaster @@ -66,7 +66,7 @@ name = "Machine Board (Subspace Receiver)" desc = "Allows for the construction of Subspace Receiver equipment." id = "s-receiver" - req_tech = list("programming" = 2, "engineering" = 1, "bluespace" = 1) + req_tech = list("programming" = 2, "engineering" = 2, "bluespace" = 1) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/telecomms/receiver @@ -76,9 +76,9 @@ name = "Ansible Crystal" desc = "A sophisticated analyzer capable of analyzing cryptic subspace wavelengths." id = "s-crystal" - req_tech = list("magnets" = 2, "materials" = 2, "bluespace" = 1) + req_tech = list("magnets" = 2, "materials" = 2, "bluespace" = 3, "plasmatech" = 3) build_type = PROTOLATHE - materials = list(MAT_GLASS = 1000, MAT_SILVER = 20, MAT_GOLD = 20) + materials = list(MAT_GLASS = 800, MAT_SILVER = 100, MAT_GOLD = 100) build_path = /obj/item/weapon/stock_parts/subspace/crystal category = list("Stock Parts") @@ -86,9 +86,9 @@ name = "Hyperwave Filter" desc = "A tiny device capable of filtering and converting super-intense radiowaves." id = "s-filter" - req_tech = list("programming" = 2, "magnets" = 2) + req_tech = list("programming" = 3, "magnets" = 3) build_type = PROTOLATHE - materials = list(MAT_METAL = 40, MAT_SILVER = 10) + materials = list(MAT_METAL = 100, MAT_SILVER = 100) build_path = /obj/item/weapon/stock_parts/subspace/filter category = list("Stock Parts") @@ -96,9 +96,9 @@ name = "Subspace Amplifier" desc = "A compact micro-machine capable of amplifying weak subspace transmissions." id = "s-amplifier" - req_tech = list("programming" = 2, "magnets" = 2, "materials" = 2, "bluespace" = 1) + req_tech = list("programming" = 3, "magnets" = 4, "materials" = 3, "bluespace" = 2) build_type = PROTOLATHE - materials = list(MAT_METAL = 10, MAT_GOLD = 30, MAT_URANIUM = 15) + materials = list(MAT_METAL = 100, MAT_GOLD = 100, MAT_URANIUM = 100) build_path = /obj/item/weapon/stock_parts/subspace/amplifier category = list("Stock Parts") @@ -106,9 +106,9 @@ name = "Subspace Analyzer" desc = "A sophisticated analyzer capable of analyzing cryptic subspace wavelengths." id = "s-analyzer" - req_tech = list("programming" = 2, "magnets" = 2, "materials" = 2, "bluespace" = 1) + req_tech = list("programming" = 3, "magnets" = 4, "materials" = 2, "bluespace" = 3) build_type = PROTOLATHE - materials = list(MAT_METAL = 10, MAT_GOLD = 15) + materials = list(MAT_METAL = 100, MAT_GOLD = 100) build_path = /obj/item/weapon/stock_parts/subspace/analyzer category = list("Stock Parts") @@ -116,9 +116,9 @@ name = "Subspace Ansible" desc = "A compact module capable of sensing extradimensional activity." id = "s-ansible" - req_tech = list("programming" = 2, "magnets" = 2, "materials" = 2, "bluespace" = 1) + req_tech = list("programming" = 2, "magnets" = 2, "materials" = 2) build_type = PROTOLATHE - materials = list(MAT_METAL = 80, MAT_SILVER = 20) + materials = list(MAT_METAL = 100, MAT_SILVER = 100) build_path = /obj/item/weapon/stock_parts/subspace/ansible category = list("Stock Parts") @@ -126,9 +126,9 @@ name = "Subspace Transmitter" desc = "A large piece of equipment used to open a window into the subspace dimension." id = "s-transmitter" - req_tech = list("magnets" = 3, "materials" = 3, "bluespace" = 2) + req_tech = list("magnets" = 3, "materials" = 4, "bluespace" = 4) build_type = PROTOLATHE - materials = list(MAT_GLASS = 100, MAT_SILVER = 10, MAT_URANIUM = 15) + materials = list(MAT_GLASS = 100, MAT_SILVER = 100, MAT_URANIUM = 100) build_path = /obj/item/weapon/stock_parts/subspace/transmitter category = list("Stock Parts") @@ -136,8 +136,8 @@ name = "Subspace Treatment Disk" desc = "A compact micro-machine capable of stretching out hyper-compressed radio waves." id = "s-treatment" - req_tech = list("programming" = 2, "magnets" = 1, "materials" = 2, "bluespace" = 1) + req_tech = list("programming" = 2, "magnets" = 3, "materials" = 2, "bluespace" = 3) build_type = PROTOLATHE - materials = list(MAT_METAL = 10, MAT_SILVER = 20) + materials = list(MAT_METAL = 100, MAT_SILVER = 200) build_path = /obj/item/weapon/stock_parts/subspace/treatment category = list("Stock Parts") diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index e282e42fa3f..9391af77424 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -6,10 +6,9 @@ name = "Advanced Energy Gun" desc = "An energy gun with an experimental miniaturized reactor." id = "nuclear_gun" - req_tech = list("combat" = 4, "materials" = 5, "powerstorage" = 3) + req_tech = list("combat" = 5, "magnets" = 5, "powerstorage" = 5) build_type = PROTOLATHE - materials = list(MAT_METAL = 5000, MAT_GLASS = 1000, MAT_URANIUM = 2000) - reliability = 76 + materials = list(MAT_METAL = 10000, MAT_GLASS = 2000, MAT_URANIUM = 4000) build_path = /obj/item/weapon/gun/energy/gun/nuclear locked = 1 category = list("Weapons") @@ -18,7 +17,7 @@ name = "Decloner" desc = "Your opponent will bubble into a messy pile of goop." id = "decloner" - req_tech = list("combat" = 6, "materials" = 7, "biotech" = 5, "powerstorage" = 6) + req_tech = list("combat" = 5, "materials" = 5, "biotech" = 6, "plasmatech" = 7) build_type = PROTOLATHE materials = list(MAT_GOLD = 5000,MAT_URANIUM = 10000) reagents = list("mutagen" = 40) @@ -30,19 +29,18 @@ name = "Energy Crossbow" desc = "A reverse-engineered energy crossbow favored by syndicate infiltration teams and carp hunters." id = "largecrossbow" - req_tech = list("combat" = 5, "materials" = 5, "engineering" = 3, "biotech" = 4, "syndicate" = 3) + req_tech = list("combat" = 5, "engineering" = 3, "magnet" = 5, "syndicate" = 3) build_type = PROTOLATHE materials = list(MAT_METAL = 5000, MAT_GLASS = 1500, MAT_URANIUM = 1500, MAT_SILVER = 1500) build_path = /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow/large locked = 1 category = list("Weapons") - reliability = 76 /datum/design/flora_gun name = "Floral Somatoray" desc = "A tool that discharges controlled radiation which induces mutation in plant cells. Harmless to other organic life." id = "flora_gun" - req_tech = list("materials" = 2, "biotech" = 3, "powerstorage" = 3) + req_tech = list("materials" = 2, "biotech" = 4) build_type = PROTOLATHE materials = list(MAT_METAL = 2000, MAT_GLASS = 500) reagents = list("radium" = 20) @@ -53,9 +51,9 @@ name = "Ion Carbine" desc = "How to dismantle a cyborg : The gun." id = "ioncarbine" - req_tech = list("combat" = 5, "materials" = 4, "magnets" = 4) + req_tech = list("combat" = 5, "magnets" = 4) build_type = PROTOLATHE - materials = list(MAT_SILVER = 4000, MAT_METAL = 6000, MAT_URANIUM = 1000) + materials = list(MAT_SILVER = 6000, MAT_METAL = 8000, MAT_URANIUM = 2000) build_path = /obj/item/weapon/gun/energy/ionrifle/carbine locked = 1 category = list("Weapons") @@ -64,9 +62,9 @@ name = "Bluespace Wormhole Projector" desc = "A projector that emits high density quantum-coupled bluespace beams." id = "wormholeprojector" - req_tech = list("combat" = 6, "materials" = 6, "bluespace" = 4) + req_tech = list("combat" = 5, "engineering" = 5, "bluespace" = 7, "plasmatech" = 6) build_type = PROTOLATHE - materials = list(MAT_SILVER = 1000, MAT_METAL = 5000, MAT_DIAMOND = 3000) + materials = list(MAT_SILVER = 2000, MAT_METAL = 5000, MAT_DIAMOND = 3000) build_path = /obj/item/weapon/gun/energy/wormhole_projector locked = 1 access_requirement = list(access_rd) //screw you, HoS, this aint yours; this is only for a man of science---and trouble. @@ -76,10 +74,9 @@ name = "Large Grenade" desc = "A grenade that affects a larger area and use larger containers." id = "large_Grenade" - req_tech = list("combat" = 3, "materials" = 2) + req_tech = list("combat" = 3, "engineering" = 3) build_type = PROTOLATHE materials = list(MAT_METAL = 3000) - reliability = 79 build_path = /obj/item/weapon/grenade/chem_grenade/large category = list("Weapons") @@ -87,7 +84,7 @@ name = "Telescopic Riot Shield" desc = "An advanced riot shield made of lightweight materials that collapses for easy storage." id = "tele_shield" - req_tech = list("combat" = 4, "materials" = 3, "engineering" = 3) + req_tech = list("combat" = 4, "materials" = 3, "engineering" = 4) build_type = PROTOLATHE materials = list(MAT_METAL = 4000, MAT_GLASS = 5000, MAT_SILVER = 300) build_path = /obj/item/weapon/shield/riot/tele @@ -97,9 +94,9 @@ name = "Accelerator Laser Cannon" desc = "A heavy duty laser cannon. It does more damage the farther away the target is." id = "lasercannon" - req_tech = list("combat" = 4, "materials" = 3, "powerstorage" = 3) + req_tech = list("combat" = 5, "magnets" = 5, "powerstorage" = 3) build_type = PROTOLATHE - materials = list(MAT_METAL = 10000, MAT_GLASS = 2000, MAT_DIAMOND = 2000) + materials = list(MAT_METAL = 10000, MAT_GLASS = 3000, MAT_DIAMOND = 3000) build_path = /obj/item/weapon/gun/energy/lasercannon locked = 1 category = list("Weapons") @@ -108,7 +105,7 @@ name = "Plasma Pistol" desc = "A specialized firearm designed to fire lethal bolts of toxins." id = "ppistol" - req_tech = list("combat" = 4, "plasmatech" = 3) + req_tech = list("combat" = 5, "magnets" = 5, "powerstorage" = 5) build_type = PROTOLATHE materials = list(MAT_METAL = 5000, MAT_GLASS = 1000, MAT_PLASMA = 3000) build_path = /obj/item/weapon/gun/energy/toxgun @@ -152,7 +149,7 @@ name = "Rapid Syringe Gun" desc = "A gun that fires many syringes." id = "rapidsyringe" - req_tech = list("combat" = 3, "materials" = 3, "engineering" = 3, "biotech" = 2) + req_tech = list("combat" = 2, "biotech" = 3) build_type = PROTOLATHE materials = list(MAT_METAL = 5000, MAT_GLASS = 1000) build_path = /obj/item/weapon/gun/syringe/rapidsyringe @@ -172,7 +169,7 @@ name = "Tesla Revolver" desc = "A high-tech revolver that fires internal, reusable shock cartridges in a revolving cylinder. The cartridges can be recharged using conventional rechargers." id = "stunrevolver" - req_tech = list("combat" = 3, "materials" = 3, "powerstorage" = 5) + req_tech = list("combat" = 4, "materials" = 4, "powerstorage" = 5) build_type = PROTOLATHE materials = list(MAT_METAL = 10000, MAT_GLASS = 10000, MAT_SILVER = 10000) build_path = /obj/item/weapon/gun/energy/shock_revolver @@ -183,7 +180,7 @@ name = "Temperature Gun" desc = "A gun that changes the body temperature of its targets." id = "temp_gun" - req_tech = list("combat" = 3, "materials" = 4, "powerstorage" = 3, "magnets" = 2) + req_tech = list("combat" = 4, "materials" = 4, "powerstorage" = 3, "magnets" = 2) build_type = PROTOLATHE materials = list(MAT_METAL = 5000, MAT_GLASS = 500, MAT_SILVER = 3000) build_path = /obj/item/weapon/gun/energy/temperature @@ -213,9 +210,9 @@ name = "Xray Laser Gun" desc = "Not quite as menacing as it sounds" id = "xray" - req_tech = list("combat" = 6, "materials" = 5, "biotech" = 5, "powerstorage" = 4) + req_tech = list("combat" = 7, "magnets" = 5, "biotech" = 5, "powerstorage" = 4) build_type = PROTOLATHE - materials = list(MAT_GOLD = 5000,MAT_URANIUM = 10000, MAT_METAL = 4000) + materials = list(MAT_GOLD = 5000,MAT_URANIUM = 10000, MAT_METAL = 5000) build_path = /obj/item/weapon/gun/energy/xray locked = 1 category = list("Weapons") @@ -224,9 +221,9 @@ name = "Immolator Laser Gun" desc = "Has fewer shots than a regular laser gun, but ignites the target on hit" id = "immolator" - req_tech = list("combat" = 4, "materials" = 5, "powerstorage" = 5, "magnets" = 4) + req_tech = list("combat" = 5, "magnets" = 5, "powerstorage" = 5) build_type = PROTOLATHE materials = list(MAT_METAL = 4000, MAT_GLASS = 1000, MAT_SILVER = 3000, MAT_PLASMA = 2000) build_path = /obj/item/weapon/gun/energy/immolator locked = 1 - category = list("Weapons") \ No newline at end of file + category = list("Weapons") diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm index 421f0cf8e92..f0aed90bc91 100644 --- a/code/modules/research/experimentor.dm +++ b/code/modules/research/experimentor.dm @@ -149,9 +149,6 @@ if(temp_tech.len == 0) to_chat(user, "You cannot experiment on this item!") return - if(O.reliability < 90 && O.crit_fail == 0) - to_chat(usr, "Item is neither reliable enough or broken enough to learn from.") - return if(!user.drop_item()) return loaded_item = O @@ -494,16 +491,11 @@ //Global reactions if(prob(EFFECT_PROB_VERYLOW) && prob(13)) - visible_message("[src] improves [exp_on], drawing the life essence of those nearby!") + visible_message("Experimentor draws the life essence of those nearby!") for(var/mob/living/m in view(4,src)) to_chat(m, "You feel your flesh being torn from you, mists of blood drifting to [src]!") m.take_overall_damage(50) investigate_log("Experimentor has taken 50 brute a blood sacrifice from [m]", "experimentor") - var/list/reqs = ConvertReqString2List(exp_on.origin_tech) - for(var/T in reqs) - reqs[T] = reqs[T] + 1 - exp_on.origin_tech = list2params(reqs) - investigate_log("Experimentor has set the origin tech of [exp_on] to [exp_on.origin_tech]", "experimentor") if(prob(EFFECT_PROB_VERYLOW-badThingCoeff) && prob(87)) var/globalMalf = rand(1,87) @@ -585,7 +577,6 @@ var/list/temp_tech = ConvertReqString2List(process.origin_tech) for(var/T in temp_tech) linked_console.files.UpdateTech(T, temp_tech[T]) - linked_console.files.UpdateDesigns(process,temp_tech) src.updateUsrDialog() return @@ -639,6 +630,7 @@ name = realName cooldownMax = rand(60,300) realProc = pick("teleport","explode","rapidDupe","petSpray","flash","clean","floofcannon") + origin_tech = pick("engineering=[rand(2,5)]","magnets=[rand(2,5)]","plasmatech=[rand(2,5)]","programming=[rand(2,5)]","powerstorage=[rand(2,5)]") /obj/item/weapon/relic/attack_self(mob/user) if(revealed) diff --git a/code/modules/research/protolathe.dm b/code/modules/research/protolathe.dm index 20093e7771b..ad90dcce9f6 100644 --- a/code/modules/research/protolathe.dm +++ b/code/modules/research/protolathe.dm @@ -72,10 +72,10 @@ Note: Must be placed west/left of and R&D console to function. for(var/obj/item/weapon/stock_parts/matter_bin/M in component_parts) T += M.rating materials.max_amount = T * 75000 - T = 0 + T = 1.2 for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts) - T += (M.rating/3) - efficiency_coeff = max(T, 1) + T -= M.rating/10 + efficiency_coeff = min(max(0, T), 1) /obj/machinery/r_n_d/protolathe/proc/check_mat(datum/design/being_built, var/M) // now returns how many times the item can be built with the material var/A = materials.amount(M) @@ -103,8 +103,6 @@ Note: Must be placed west/left of and R&D console to function. for(var/obj/I in component_parts) if(istype(I, /obj/item/weapon/reagent_containers/glass/beaker)) reagents.trans_to(I, reagents.total_volume) - if(I.reliability != 100 && crit_fail) - I.crit_fail = 1 I.loc = src.loc for(var/obj/item/weapon/reagent_containers/glass/G in component_parts) reagents.trans_to(G, G.reagents.maximum_volume) diff --git a/code/modules/research/rd-readme.dm b/code/modules/research/rd-readme.dm index 8680460c227..1ecc9dbb0da 100644 --- a/code/modules/research/rd-readme.dm +++ b/code/modules/research/rd-readme.dm @@ -22,7 +22,7 @@ materials. While researching you are dealing with two different types of information: Technology Paths and Device Designs. Technology Paths are the "Tech Trees" of the game. You start out with a number of them at the game start and they are improved by using the Destructive Analyzer. By themselves, they don't do a whole lot. However, they unlock Device Designs. This is the information used -by the circuit imprinter and the protolathe to produce objects. It also tracks the current reliability of that particular design. +by the circuit imprinter and the protolathe to produce objects. //EXISTING TECH Each tech path should have at LEAST one item at every level (levels 1 - 20). This is to allow for a more fluid progression of the diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index 1e7e9b1674a..fc57e16a6e9 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -319,58 +319,62 @@ won't update every console in existence) but it's more of a hassle to do. Also, if(linked_destroy) if(linked_destroy.busy) to_chat(usr, "The destructive analyzer is busy at the moment.") - else - var/choice = input("Proceeding will destroy loaded item.") in list("Proceed", "Cancel") - if(choice == "Cancel" || !linked_destroy) return - linked_destroy.busy = 1 - add_wait_message("Processing and Updating Database...", DECONSTRUCT_DELAY) - nanomanager.update_uis(src) - flick("d_analyzer_process", linked_destroy) - spawn(DECONSTRUCT_DELAY) - clear_wait_message() - if(linked_destroy) - linked_destroy.busy = 0 - if(!linked_destroy.hacked) - if(!linked_destroy.loaded_item) - to_chat(usr, "The destructive analyzer appears to be empty.") - menu = 0 - submenu = 0 - return - if((linked_destroy.loaded_item.reliability >= 99 - (linked_destroy.decon_mod * 3)) || linked_destroy.loaded_item.crit_fail) - var/list/temp_tech = linked_destroy.ConvertReqString2List(linked_destroy.loaded_item.origin_tech) - for(var/T in temp_tech) - if(prob(linked_destroy.loaded_item.reliability)) //If deconstructed item is not reliable enough its just being wasted, else it is pocessed - files.UpdateTech(T, temp_tech[T]) //Check if deconstructed item has research levels higher/same/one less than current ones - files.UpdateDesigns(linked_destroy.loaded_item, temp_tech, src) //If if such reseach type found all the known designs are checked for having this research type in them - menu = 0 //If design have it it gains some reliability - submenu = 0 - else //Same design always gain quality - menu = 2 //Crit fail gives the same design a lot of reliability, like really a lot - submenu = 0 - if(linked_lathe) //Also sends salvaged materials to a linked protolathe, if any. - for(var/material in linked_destroy.loaded_item.materials) - linked_lathe.materials.insert_amount(min((linked_lathe.materials.max_amount - linked_lathe.materials.total_amount), (linked_destroy.loaded_item.materials[material]*(linked_destroy.decon_mod/10))), material) - linked_destroy.loaded_item = null - else + return + var/list/temp_tech = linked_destroy.ConvertReqString2List(linked_destroy.loaded_item.origin_tech) + var/cancontinue = FALSE + for(var/T in temp_tech) + if(files.IsTechHigher(T, temp_tech[T])) + cancontinue = TRUE + break + if(!cancontinue) + var/choice = input("This item does not raise tech levels. Proceed destroying loaded item anyway?") in list("Proceed", "Cancel") + if(choice == "Cancel" || !linked_destroy) + return + linked_destroy.busy = 1 + add_wait_message("Processing and Updating Database...", DECONSTRUCT_DELAY) + nanomanager.update_uis(src) + flick("d_analyzer_process", linked_destroy) + spawn(DECONSTRUCT_DELAY) + clear_wait_message() + if(linked_destroy) + linked_destroy.busy = 0 + if(!linked_destroy.hacked) + if(!linked_destroy.loaded_item) + to_chat(usr, "The destructive analyzer appears to be empty.") menu = 0 submenu = 0 - for(var/obj/I in linked_destroy.contents) - for(var/mob/M in I.contents) - M.death() - if(istype(I,/obj/item/stack/sheet))//Only deconsturcts one sheet at a time instead of the entire stack - var/obj/item/stack/sheet/S = I - if(S.amount > 1) - S.amount-- - linked_destroy.loaded_item = S - else - qdel(S) - linked_destroy.icon_state = "d_analyzer" + return + for(var/T in temp_tech) + var/datum/tech/KT = files.known_tech[T] //For stat logging of high levels + if(files.IsTechHigher(T, temp_tech[T]) && KT.level >= 5) //For stat logging of high levels + feedback_add_details("high_research_level","[KT][KT.level + 1]") //+1 to show the level which we're about to get + files.UpdateTech(T, temp_tech[T]) + menu = 0 + submenu = 0 + if(linked_lathe) //Also sends salvaged materials to a linked protolathe, if any. + for(var/material in linked_destroy.loaded_item.materials) + linked_lathe.materials.insert_amount(min((linked_lathe.materials.max_amount - linked_lathe.materials.total_amount), (linked_destroy.loaded_item.materials[material]*(linked_destroy.decon_mod/10))), material) + linked_destroy.loaded_item = null + else + menu = 0 + submenu = 0 + for(var/obj/I in linked_destroy.contents) + for(var/mob/M in I.contents) + M.death() + if(istype(I,/obj/item/stack/sheet))//Only deconsturcts one sheet at a time instead of the entire stack + var/obj/item/stack/sheet/S = I + if(S.amount > 1) + S.amount-- + linked_destroy.loaded_item = S else - if(!(I in linked_destroy.component_parts)) - qdel(I) - linked_destroy.icon_state = "d_analyzer" - use_power(250) - nanomanager.update_uis(src) + qdel(S) + linked_destroy.icon_state = "d_analyzer" + else + if(!(I in linked_destroy.component_parts)) + qdel(I) + linked_destroy.icon_state = "d_analyzer" + use_power(250) + nanomanager.update_uis(src) else if(href_list["sync"]) //Sync the research holder with all the R&D consoles in the game that aren't sync protected. if(!sync) @@ -399,13 +403,12 @@ won't update every console in existence) but it's more of a hassle to do. Also, sync = !sync else if(href_list["build"]) //Causes the Protolathe to build something. - var/coeff - if(linked_lathe) - coeff = linked_lathe.efficiency_coeff - else - coeff = 1 - var/g2g = 1 if(linked_lathe) + if(linked_lathe.busy) + to_chat(usr, "Protolathe is busy at the moment.") + return + var/coeff = linked_lathe.efficiency_coeff + var/g2g = 1 var/datum/design/being_built = files.known_designs[href_list["build"]] if(being_built) var/power = 2000 @@ -416,15 +419,11 @@ won't update every console in existence) but it's more of a hassle to do. Also, for(var/M in being_built.materials) power += round(being_built.materials[M] * amount / 5) power = max(2000, power) - if(linked_lathe.busy) - g2g = 0 var/key = usr.key //so we don't lose the info during the spawn delay if(!(being_built.build_type & PROTOLATHE)) g2g = 0 message_admins("Protolathe exploit attempted by [key_name(usr, usr.client)]!") - - if(g2g) //If input is incorrect, nothing happens var/time_to_construct = PROTOLATHE_CONSTRUCT_DELAY * amount / coeff var/enough_materials = 1 @@ -437,7 +436,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, var/list/efficient_mats = list() for(var/MAT in being_built.materials) - efficient_mats[MAT] = being_built.materials[MAT] + efficient_mats[MAT] = being_built.materials[MAT]*coeff if(!linked_lathe.materials.has_materials(efficient_mats, amount)) src.visible_message("The [src.name] beeps, \"Not enough materials to complete prototype.\"") @@ -445,7 +444,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, g2g = 0 else for(var/R in being_built.reagents) - if(!linked_lathe.reagents.has_reagent(R, being_built.reagents[R])) + if(!linked_lathe.reagents.has_reagent(R, being_built.reagents[R])*coeff) src.visible_message("The [src.name] beeps, \"Not enough reagents to complete prototype.\"") enough_materials = 0 g2g = 0 @@ -453,7 +452,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, if(enough_materials) linked_lathe.materials.use_amount(efficient_mats, amount) for(var/R in being_built.reagents) - linked_lathe.reagents.remove_reagent(R, being_built.reagents[R]) + linked_lathe.reagents.remove_reagent(R, being_built.reagents[R]*coeff) var/P = being_built.build_path //lets save these values before the spawn() just in case. Nobody likes runtimes. var/O = being_built.locked @@ -464,7 +463,6 @@ won't update every console in existence) but it's more of a hassle to do. Also, var/obj/item/new_item = new P(src) if( new_item.type == /obj/item/weapon/storage/backpack/holding ) new_item.investigate_log("built by [key]","singulo") - new_item.reliability = 100 if(!istype(new_item, /obj/item/stack/sheet)) // To avoid materials dupe glitches new_item.materials = efficient_mats.Copy() if(O) @@ -487,6 +485,9 @@ won't update every console in existence) but it's more of a hassle to do. Also, var/coeff = linked_imprinter.efficiency_coeff var/g2g = 1 if(linked_imprinter) + if(linked_imprinter.busy) + to_chat(usr, "Circuit Imprinter is busy at the moment.") + return var/datum/design/being_built = null being_built = files.known_designs[href_list["imprint"]] if(being_built) @@ -494,8 +495,6 @@ won't update every console in existence) but it's more of a hassle to do. Also, for(var/M in being_built.materials) power += round(being_built.materials[M] / 5) power = max(2000, power) - if(linked_imprinter.busy) - g2g = 0 if(!(being_built.build_type & IMPRINTER)) g2g = 0 message_admins("Circuit imprinter exploit attempted by [key_name(usr, usr.client)]!") @@ -525,7 +524,6 @@ won't update every console in existence) but it's more of a hassle to do. Also, spawn(IMPRINTER_DELAY) if(g2g) var/obj/item/new_item = new P(src) - new_item.reliability = 100 new_item.loc = linked_imprinter.loc linked_imprinter.busy = 0 clear_wait_message() @@ -710,7 +708,6 @@ won't update every console in existence) but it's more of a hassle to do. Also, var/list/disk_data = list() data["disk_data"] = disk_data disk_data["name"] = d_disk.blueprint.name - disk_data["reliability"] = d_disk.blueprint.reliability var/b_type = d_disk.blueprint.build_type var/list/lathe_types = list() disk_data["lathe_types"] = lathe_types @@ -743,7 +740,6 @@ won't update every console in existence) but it's more of a hassle to do. Also, var/list/loaded_item_list = list() data["loaded_item"] = loaded_item_list loaded_item_list["name"] = linked_destroy.loaded_item.name - loaded_item_list["reliability"] = linked_destroy.loaded_item.reliability var/list/temp_tech = linked_destroy.ConvertReqString2List(linked_destroy.loaded_item.origin_tech) var/list/tech_list = list() loaded_item_list["origin_tech"] = tech_list @@ -767,6 +763,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, if(submenu == 1) var/list/designs_list = list() data["matching_designs"] = designs_list + var/coeff = linked_lathe.efficiency_coeff for(var/datum/design/D in matching_designs) var/list/design_list = list() designs_list[++designs_list.len] = design_list @@ -779,7 +776,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, var/list/material_list = list() materials_list[++materials_list.len] = material_list material_list["name"] = CallMaterialName(M) - material_list["amount"] = D.materials[M] + material_list["amount"] = D.materials[M]*coeff var/t = linked_lathe.check_mat(D, M) if(t < 1) @@ -792,7 +789,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, var/list/material_list = list() materials_list[++materials_list.len] = material_list material_list["name"] = CallMaterialName(R) - material_list["amount"] = D.reagents[R] + material_list["amount"] = D.reagents[R]*coeff var/t = linked_lathe.check_mat(D, R) if(t < 1) diff --git a/code/modules/research/research.dm b/code/modules/research/research.dm index 8386c79377d..ac1ed47f7b3 100644 --- a/code/modules/research/research.dm +++ b/code/modules/research/research.dm @@ -51,8 +51,8 @@ research holder datum. // known is a list of id -> datum mappings var/list/possible_tech = list() //List of all tech in the game that players have access to (barring special events). var/list/known_tech = list() //List of locally known tech. - var/list/possible_designs = list() //List of all designs (at base reliability). - var/list/known_designs = list() //List of available designs (at base reliability). + var/list/possible_designs = list() //List of all designs + var/list/known_designs = list() //List of available designs /datum/research/New() //Insert techs into possible_tech here. Known_tech automatically updated. // MON DIEU!!! @@ -102,15 +102,11 @@ research holder datum. /datum/research/proc/AddDesign2Known(var/datum/design/D) if(D.id in known_designs) - // NOTE: This is for reliability only - This is on the chopping block - var/datum/design/known = known_designs[D.id] - if(D.reliability > known.reliability) - known.reliability = D.reliability return // Global datums make me nervous known_designs[D.id] = D -//Refreshes known_tech and known_designs list. Then updates the reliability vars of the designs in the known_designs list. +//Refreshes known_tech and known_designs list. //Input/Output: n/a /datum/research/proc/RefreshResearch() for(var/datum/tech/PT in possible_tech) @@ -122,10 +118,6 @@ research holder datum. for(var/v in known_tech) var/datum/tech/T = known_tech[v] T.level = Clamp(T.level, 0, 20) - for(var/v in known_designs) - var/datum/design/D = known_designs[v] - // NOTE: reliability stuff, axe this later - D.CalcReliability(known_tech) //Refreshes the levels of a given tech. //Input: Tech's ID and Level; Output: null @@ -133,22 +125,20 @@ research holder datum. var/datum/tech/KT = known_tech[ID] if(KT) if(KT.level <= level) - // Will bump the tech to (value_of_target - 1) automatically - - // after that it'll only bump it up by 1 until it's greater + // Will bump the tech to (value_of_target) automatically - + // after that it'll bump it up by 1 until it's greater // than the source tech - KT.level = max((KT.level + 1), (level - 1)) + KT.level = max((KT.level + 1), level) -/datum/research/proc/UpdateDesigns(var/obj/item/I, var/list/temp_tech) - for(var/T in temp_tech) - if(temp_tech[T] - 1 >= known_tech[T]) - for(var/datum/design/D in known_designs) - // NOTE: icky reliability stuff - if(D.req_tech[T]) - D.reliability = min(100, D.reliability + 1) - if(D.build_path == I.type) - D.reliability = min(100, D.reliability + rand(1,3)) - if(I.crit_fail) - D.reliability = min(100, D.reliability + rand(3, 5)) +//Checks if the origin level can raise current tech levels +//Input: Tech's ID and Level; Output: TRUE for yes, FALSE for no +/datum/research/proc/IsTechHigher(ID, level) + var/datum/tech/KT = known_tech[ID] + if(KT) + if(KT.level <= level) + return TRUE + else + return FALSE /datum/research/proc/FindDesignByID(var/id) return known_designs[id] @@ -210,63 +200,63 @@ research holder datum. //Trunk Technologies (don't require any other techs and you start knowning them). -datum/tech/materials +/datum/tech/materials name = "Materials Research" desc = "Development of new and improved materials." id = "materials" max_level = 7 -datum/tech/engineering +/datum/tech/engineering name = "Engineering Research" desc = "Development of new and improved engineering parts and methods." id = "engineering" - max_level = 6 + max_level = 7 -datum/tech/plasmatech +/datum/tech/plasmatech name = "Plasma Research" desc = "Research into the mysterious substance colloqually known as 'plasma'." id = "plasmatech" - max_level = 4 + max_level = 7 rare = 3 -datum/tech/powerstorage +/datum/tech/powerstorage name = "Power Manipulation Technology" desc = "The various technologies behind the storage and generation of electicity." id = "powerstorage" - max_level = 6 + max_level = 7 -datum/tech/bluespace +/datum/tech/bluespace name = "'Blue-space' Research" desc = "Research into the sub-reality known as 'blue-space'." id = "bluespace" - max_level = 6 + max_level = 7 rare = 2 -datum/tech/biotech +/datum/tech/biotech name = "Biological Technology" desc = "Research into the deeper mysteries of life and organic substances." id = "biotech" - max_level = 5 + max_level = 7 -datum/tech/combat +/datum/tech/combat name = "Combat Systems Research" desc = "The development of offensive and defensive systems." id = "combat" - max_level=6 + max_level = 7 -datum/tech/magnets +/datum/tech/magnets name = "Electromagnetic Spectrum Research" desc = "Research into the electromagnetic spectrum. No clue how they actually work, though." id = "magnets" - max_level = 6 + max_level = 7 -datum/tech/programming +/datum/tech/programming name = "Data Theory Research" desc = "The development of new computer and artificial intelligence and data storage systems." id = "programming" - max_level = 5 + max_level = 7 -datum/tech/syndicate +/datum/tech/syndicate name = "Illegal Technologies Research" desc = "The study of technologies that violate standard Nanotrasen regulations." id = "syndicate" @@ -352,7 +342,7 @@ datum/tech/robotics name = "\improper Component Design Disk" desc = "A disk for storing device design data for construction in lathes." icon_state = "datadisk2" - materials = list(MAT_METAL=30, MAT_GLASS=10) + materials = list(MAT_METAL=100, MAT_GLASS=100) var/datum/design/blueprint // I'm doing this so that disk paths with pre-loaded designs don't get weird names // Otherwise, I'd use "initial()" diff --git a/code/modules/research/server.dm b/code/modules/research/server.dm index 0fa680faf6a..787fdf67350 100644 --- a/code/modules/research/server.dm +++ b/code/modules/research/server.dm @@ -260,7 +260,7 @@ temp_server.files.RefreshResearch() else if(href_list["reset_design"]) - var/choice = alert("Design Data Deletion", "Are you sure you want to delete this design? If you still have the prerequisites for the design, it'll reset to its base reliability. Data lost cannot be recovered.", "Continue", "Cancel") + var/choice = alert("Design Data Deletion", "Are you sure you want to delete this design? Data lost cannot be recovered.", "Continue", "Cancel") if(choice == "Continue") for(var/datum/design/D in temp_server.files.known_designs) if(D.id == href_list["reset_design"]) diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm index 6846548ee6d..c3a0c1a030a 100644 --- a/code/modules/research/xenobiology/xenobiology.dm +++ b/code/modules/research/xenobiology/xenobiology.dm @@ -179,7 +179,7 @@ desc = "A miraculous chemical mix that can raise the intelligence of creatures to human levels." icon = 'icons/obj/chemical.dmi' icon_state = "bottle19" - origin_tech = "biotech=5" + origin_tech = "biotech=6" var/list/not_interested = list() var/being_used = 0 var/sentience_type = SENTIENCE_ORGANIC @@ -350,6 +350,7 @@ desc = "A potent chemical mix that will remove the slowdown from any item." icon = 'icons/obj/chemical.dmi' icon_state = "bottle3" + origin_tech = "biotech=5" /obj/item/slimepotion/speed/afterattack(obj/item/C, mob/user, proximity_flag) if(!proximity_flag) @@ -371,6 +372,7 @@ desc = "A potent chemical mix that will fireproof any article of clothing. Has three uses." icon = 'icons/obj/chemical.dmi' icon_state = "bottle17" + origin_tech = "biotech=5" var/uses = 3 /obj/item/slimepotion/fireproof/afterattack(obj/item/clothing/C, mob/user, proximity_flag) diff --git a/code/modules/shuttle/supply.dm b/code/modules/shuttle/supply.dm index 24d76267b13..e05c7bc924a 100644 --- a/code/modules/shuttle/supply.dm +++ b/code/modules/shuttle/supply.dm @@ -183,18 +183,17 @@ objective.unit_completed(cost) msg += "+[cost]: [tech.name] - new data.
" - // Sell max reliablity designs + // Sell designs if(istype(thing, /obj/item/weapon/disk/design_disk)) var/obj/item/weapon/disk/design_disk/disk = thing - if(!disk.blueprint) continue + if(!disk.blueprint) + continue var/datum/design/design = disk.blueprint - if(design.id in shuttle_master.researchDesigns) continue - - if(initial(design.reliability) < 100 && design.reliability >= 100) - // Maxed out reliability designs only. - shuttle_master.points += shuttle_master.points_per_design - shuttle_master.researchDesigns += design.id - msg += "+[shuttle_master.points_per_design]: Reliable [design.name] design.
" + if(design.id in shuttle_master.researchDesigns) + continue + shuttle_master.points += shuttle_master.points_per_design + shuttle_master.researchDesigns += design.id + msg += "+[shuttle_master.points_per_design]: [design.name] design.
" // Sell exotic plants if(istype(thing, /obj/item/seeds)) diff --git a/code/modules/spacepods/parts.dm b/code/modules/spacepods/parts.dm index 757d7a95dcc..4ae9f73025b 100644 --- a/code/modules/spacepods/parts.dm +++ b/code/modules/spacepods/parts.dm @@ -6,7 +6,7 @@ name="Space Pod Core" icon_state = "core" flags = CONDUCT - origin_tech = "programming=2;materials=3;bluespace=2;engineering=3" + origin_tech = "programming=2;materials=2;biotech=2;engineering=2" /obj/item/pod_parts/pod_frame name = "Space Pod Frame" diff --git a/code/modules/surgery/organs/augments_eyes.dm b/code/modules/surgery/organs/augments_eyes.dm index 873f1332216..1e419fb1b2b 100644 --- a/code/modules/surgery/organs/augments_eyes.dm +++ b/code/modules/surgery/organs/augments_eyes.dm @@ -42,7 +42,7 @@ desc = "These cybernetic eye implants will give you X-ray vision. Blinking is futile." eye_colour = list(0, 0, 0) implant_color = "#000000" - origin_tech = "materials=6;programming=4;biotech=6;magnets=5" + origin_tech = "materials=4;programming=4;biotech=6;magnets=4" vision_flags = SEE_MOBS | SEE_OBJS | SEE_TURFS dark_view = 8 see_invisible = SEE_INVISIBLE_MINIMUM @@ -54,7 +54,7 @@ implant_color = "#FFCC00" vision_flags = SEE_MOBS flash_protect = -1 - origin_tech = "materials=6;programming=4;biotech=5;magnets=5;syndicate=4" + origin_tech = "materials=5;programming=4;biotech=4;magnets=4;syndicate=1" aug_message = "You see prey everywhere you look..." // HUD implants @@ -83,7 +83,7 @@ desc = "These cybernetic eye implants will display a medical HUD over everything you see." eye_colour = list(0,0,208) implant_color = "#00FFFF" - origin_tech = "materials=4;programming=3;biotech=4" + origin_tech = "materials=4;programming=4;biotech=4" aug_message = "You suddenly see health bars floating above people's heads..." HUD_type = DATA_HUD_MEDICAL_ADVANCED @@ -92,7 +92,7 @@ desc = "These cybernetic eye implants will display a security HUD over everything you see." eye_colour = list(208,0,0) implant_color = "#CC0000" - origin_tech = "materials=4;programming=4;biotech=3;combat=1" + origin_tech = "materials=4;programming=4;biotech=3;combat=3" aug_message = "Job indicator icons pop up in your vision. That is not a certified surgeon..." HUD_type = DATA_HUD_SECURITY_ADVANCED @@ -101,7 +101,7 @@ name = "welding shield implant" desc = "These reactive micro-shields will protect you from welders and flashes without obscuring your vision." slot = "eye_shield" - origin_tech = "materials=4;biotech=3" + origin_tech = "materials=4;biotech=3;engineering=4;plasmatech=3" implant_color = "#101010" flash_protect = 2 // Welding with thermals will still hurt your eyes a bit. diff --git a/code/modules/surgery/organs/augments_internal.dm b/code/modules/surgery/organs/augments_internal.dm index 278941d87e4..4a7aa2554fc 100644 --- a/code/modules/surgery/organs/augments_internal.dm +++ b/code/modules/surgery/organs/augments_internal.dm @@ -48,7 +48,7 @@ var/obj/item/r_hand_obj = null implant_color = "#DE7E00" slot = "brain_antidrop" - origin_tech = "materials=5;programming=4;biotech=4" + origin_tech = "materials=4;programming=5;biotech=4" actions_types = list(/datum/action/item_action/organ_action/toggle) /obj/item/organ/internal/cyberimp/brain/anti_drop/ui_action_click() @@ -126,7 +126,7 @@ desc = "This implant will automatically give you back control over your central nervous system, reducing downtime when stunned." implant_color = "#FFFF00" slot = "brain_antistun" - origin_tech = "materials=6;programming=4;biotech=5" + origin_tech = "materials=5;programming=4;biotech=5" /obj/item/organ/internal/cyberimp/brain/anti_stun/on_life() ..() @@ -168,7 +168,7 @@ var/synthesizing = 0 var/poison_amount = 5 slot = "stomach" - origin_tech = "materials=5;programming=3;biotech=4" + origin_tech = "materials=2;powerstorage=2;biotech=2" /obj/item/organ/internal/cyberimp/chest/nutriment/on_life() if(!owner) @@ -197,14 +197,14 @@ implant_color = "#006607" hunger_threshold = NUTRITION_LEVEL_HUNGRY poison_amount = 10 - origin_tech = "materials=5;programming=3;biotech=5" + origin_tech = "materials=4;powerstorage=3;biotech=3" /obj/item/organ/internal/cyberimp/chest/reviver name = "Reviver implant" desc = "This implant will attempt to revive you if you lose consciousness. For the faint of heart!" icon_state = "chest_implant" implant_color = "#AD0000" - origin_tech = "materials=6;programming=3;biotech=6;syndicate=4" + origin_tech = "materials=5;programming=4;biotech=4" slot = "heartdrive" var/revive_cost = 0 var/reviving = 0 @@ -338,7 +338,7 @@ name = "Arm-cannon laser implant" desc = "A variant of the arm cannon implant that fires lethal laser beams. The cannon emerges from the subject's arms and remains in the shoulders when not in use." icon_state = "armcannon_lase_implant" - origin_tech = "materials=5;combat=5;biotech=4;powerstorage=4;syndicate=5"//this is kinda nutty and i might lower it + origin_tech = "materials=4;combat=4;biotech=4;powerstorage=4;syndicate=3" actions_types = list(/datum/action/item_action/organ_action/toggle) /obj/item/organ/internal/cyberimp/chest/arm_mod/lase/New() diff --git a/code/modules/surgery/organs/organ.dm b/code/modules/surgery/organs/organ.dm index 045e34ea41e..fb52fba69f9 100644 --- a/code/modules/surgery/organs/organ.dm +++ b/code/modules/surgery/organs/organ.dm @@ -327,6 +327,10 @@ var/list/organ_cache = list() /obj/item/organ/proc/replaced(var/mob/living/carbon/human/target) return // Nothing uses this, it is always overridden +// A version of `replaced` that "flattens" the process of insertion, making organs "Plug'n'play" +// (Particularly the heart, which stops beating when removed) +/obj/item/organ/proc/safe_replace(var/mob/living/carbon/human/target) + replaced(target) /obj/item/organ/proc/surgeryize() return @@ -370,4 +374,4 @@ I use this so that this can be made better once the organ overhaul rolls out -- // The only thing the official proc does is //instantiate the list and call this proc dna.deserialize(data["dna"]) - ..() \ No newline at end of file + ..() diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm index d09fc88208e..071d579b0c0 100644 --- a/code/modules/surgery/organs/organ_internal.dm +++ b/code/modules/surgery/organs/organ_internal.dm @@ -1,7 +1,7 @@ #define PROCESS_ACCURACY 10 /obj/item/organ/internal - origin_tech = "biotech=2" + origin_tech = "biotech=3" force = 1 w_class = WEIGHT_CLASS_SMALL throwforce = 0 @@ -139,7 +139,7 @@ organ_tag = "heart" parent_organ = "chest" slot = "heart" - origin_tech = "biotech=3" + origin_tech = "biotech=5" var/beating = 1 dead_icon = "heart-off" var/icon_base = "heart" @@ -170,6 +170,10 @@ if(!owner) Stop() +/obj/item/organ/internal/heart/safe_replace(mob/living/carbon/human/target) + Restart() + ..() + /obj/item/organ/internal/heart/proc/Stop() beating = 0 update_icon() @@ -190,7 +194,7 @@ desc = "it needs to be pumped..." icon_state = "cursedheart-off" icon_base = "cursedheart" - origin_tech = "biotech=5" + origin_tech = "biotech=6" actions_types = list(/datum/action/item_action/organ_action/cursed_heart) var/last_pump = 0 var/pump_delay = 30 //you can pump 1 second early, for lag, but no more (otherwise you could spam heal) @@ -487,7 +491,7 @@ name = "black tumor" desc = "A tiny black mass with red tendrils trailing from it. It seems to shrivel in the light." icon_state = "blacktumor" - origin_tech = "biotech=4" + origin_tech = "biotech=5" w_class = WEIGHT_CLASS_TINY parent_organ = "head" slot = "brain_tumor" diff --git a/code/modules/surgery/organs/subtypes/xenos.dm b/code/modules/surgery/organs/subtypes/xenos.dm index 19e9335a61b..8f4434f41bc 100644 --- a/code/modules/surgery/organs/subtypes/xenos.dm +++ b/code/modules/surgery/organs/subtypes/xenos.dm @@ -36,8 +36,8 @@ /obj/item/organ/internal/xenos/plasmavessel name = "xeno plasma vessel" icon_state = "plasma" - origin_tech = "biotech=5;plasmatech=2" w_class = WEIGHT_CLASS_NORMAL + origin_tech = "biotech=5;plasmatech=4" parent_organ = "chest" slot = "plasmavessel" alien_powers = list(/mob/living/carbon/alien/humanoid/verb/plant, /mob/living/carbon/alien/humanoid/verb/transfer_plasma) @@ -56,7 +56,7 @@ /obj/item/organ/internal/xenos/plasmavessel/queen name = "bloated xeno plasma vessel" icon_state = "plasma_large" - origin_tech = "biotech=6;plasma=3" + origin_tech = "biotech=6;plasmatech=4" stored_plasma = 200 max_plasma = 500 plasma_rate = 25 @@ -164,5 +164,5 @@ parent_organ = "groin" slot = "eggsac" w_class = WEIGHT_CLASS_BULKY - origin_tech = "biotech=8" + origin_tech = "biotech=6" alien_powers = list(/mob/living/carbon/alien/humanoid/queen/verb/lay_egg) diff --git a/code/modules/surgery/tools.dm b/code/modules/surgery/tools.dm index 06b9def9c00..37e1aebe089 100644 --- a/code/modules/surgery/tools.dm +++ b/code/modules/surgery/tools.dm @@ -129,7 +129,7 @@ throw_speed = 3 throw_range = 5 materials = list(MAT_METAL=10000, MAT_GLASS=6000) - origin_tech = "materials=1;biotech=1" + origin_tech = "biotech=1;combat=1" attack_verb = list("attacked", "slashed", "sawed", "cut") //misc, formerly from code/defines/weapons.dm diff --git a/code/modules/telesci/bscrystal.dm b/code/modules/telesci/bscrystal.dm index d6cdd0e3b5d..f2d9ad86436 100644 --- a/code/modules/telesci/bscrystal.dm +++ b/code/modules/telesci/bscrystal.dm @@ -5,7 +5,7 @@ icon = 'icons/obj/telescience.dmi' icon_state = "bluespace_crystal" w_class = WEIGHT_CLASS_TINY - origin_tech = "bluespace=4;materials=3" + origin_tech = "bluespace=6;materials=3" points = 50 var/blink_range = 8 // The teleport range when crushed/thrown at someone. refined_type = /obj/item/stack/sheet/bluespace_crystal @@ -44,7 +44,7 @@ /obj/item/weapon/ore/bluespace_crystal/artificial name = "artificial bluespace crystal" desc = "An artificially made bluespace crystal, it looks delicate." - origin_tech = "bluespace=2" + origin_tech = "bluespace=3;plasmatech=4" blink_range = 4 // Not as good as the organic stuff! points = 0 // nice try refined_type = null @@ -58,7 +58,7 @@ var/global/list/datum/stack_recipe/bluespace_crystal_recipes = list(new/datum/st icon = 'icons/obj/telescience.dmi' icon_state = "polycrystal" desc = "A stable polycrystal, made of fused-together bluespace crystals. You could probably break one off." - origin_tech = "bluespace=4;materials=3" + origin_tech = "bluespace=6;materials=3" attack_verb = list("bluespace polybashed", "bluespace polybattered", "bluespace polybludgeoned", "bluespace polythrashed", "bluespace polysmashed") toolspeed = 1 usesound = 'sound/items/Deconstruct.ogg' diff --git a/code/modules/telesci/gps.dm b/code/modules/telesci/gps.dm index b042453eec4..8de7977ce2f 100644 --- a/code/modules/telesci/gps.dm +++ b/code/modules/telesci/gps.dm @@ -6,7 +6,7 @@ var/list/GPS_list = list() icon_state = "gps-c" w_class = WEIGHT_CLASS_SMALL slot_flags = SLOT_BELT - origin_tech = "programming=2;engineering=2" + origin_tech = "materials=2;magnets=1;bluespace=2" var/gpstag = "COM0" var/emped = 0 var/turf/locked_location diff --git a/code/modules/vehicle/janicart.dm b/code/modules/vehicle/janicart.dm index dfdd0ffc03c..ed76e1c2d3d 100644 --- a/code/modules/vehicle/janicart.dm +++ b/code/modules/vehicle/janicart.dm @@ -36,7 +36,7 @@ desc = "An upgrade for mobile janicarts." icon = 'icons/obj/vehicles.dmi' icon_state = "upgrade" - + origin_tech = "materials=3;engineering=4" /obj/vehicle/janicart/Move(atom/OldLoc, Dir) ..() diff --git a/html/changelog.html b/html/changelog.html index 6b55d6509f5..aca4d93de31 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -55,6 +55,55 @@ -->
+

04 June 2017

+

Crazylemon64 updated:

+
    +
  • Clone's hearts now start operational
  • +
  • EMP'd clone pods can now be emptied again
  • +
+

FreeStylaLT updated:

+
    +
  • Cell 6 is now connected to the atmos system properly.
  • +
+ +

03 June 2017

+

FlattestGuitar updated:

+
    +
  • PACMAN boards and pico manipulators now have proper research levels
  • +
+ +

01 June 2017

+

Alexshreds updated:

+
    +
  • Ian's hardsuit is no longer invisible
  • +
+

FreeStylaLT updated:

+
    +
  • Gamma armory no longer affected by brig events.
  • +
  • Outer armory windoor access has been lowered to Security Officer+, instead of Warden+.
  • +
  • Removed a redundant door in the brig's main hallway.
  • +
  • Removed a redundant fire alarm, placed it elsewhere in the north hallway.
  • +
+

Kyep updated:

+
    +
  • ERTs no longer start penniless, unable to afford even basic food, or coffee.
  • +
+

Purpose2 updated:

+
    +
  • Adds a build-time on Tables & Racks.
  • +
+

tigercat2000 updated:

+
    +
  • Upgrading the Exosuit Fabricator and Protolathe with the right parts will lower item costs
  • +
  • Added an item to Cargo that RnD can use
  • +
  • Tweaks the tech levels for many items and the required tech levels for their designs. This is to make RnD more of a station-wide effort.
  • +
  • RnD tech level skipping skips 1 level further
  • +
  • The Destructive Analyzer will only prompt the user if tech levels will not be increased.
  • +
  • The Experimentor can no longer raise tech levels of items. It can however discover the tech levels of strange objects.
  • +
  • Removes the Autolathe from the RnD Room.
  • +
  • Removed the Forensic Scanner from RnD. Cargo can order a Forensics crate now.
  • +
+

31 May 2017

FalseIncarnate updated:

    diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index a9d60e02724..40df7fc8c3f 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -4808,3 +4808,39 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - bugfix: Medical Doctors will stop spawning with Chemist/Virologist Skirts - bugfix: CMOs won't spawn with a virologist skirt anymore. - bugfix: Virologists and Chemists wont spawn with a Medical Doctor skirt anymore. +2017-06-01: + Alexshreds: + - bugfix: Ian's hardsuit is no longer invisible + FreeStylaLT: + - bugfix: Gamma armory no longer affected by brig events. + - tweak: Outer armory windoor access has been lowered to Security Officer+, instead + of Warden+. + - tweak: Removed a redundant door in the brig's main hallway. + - tweak: Removed a redundant fire alarm, placed it elsewhere in the north hallway. + Kyep: + - bugfix: ERTs no longer start penniless, unable to afford even basic food, or coffee. + Purpose2: + - tweak: Adds a build-time on Tables & Racks. + tigercat2000: + - tweak: Upgrading the Exosuit Fabricator and Protolathe with the right parts will + lower item costs + - rscadd: Added an item to Cargo that RnD can use + - tweak: Tweaks the tech levels for many items and the required tech levels for + their designs. This is to make RnD more of a station-wide effort. + - tweak: RnD tech level skipping skips 1 level further + - tweak: The Destructive Analyzer will only prompt the user if tech levels will + not be increased. + - rscdel: The Experimentor can no longer raise tech levels of items. It can however + discover the tech levels of strange objects. + - rscdel: Removes the Autolathe from the RnD Room. + - rscdel: Removed the Forensic Scanner from RnD. Cargo can order a Forensics crate + now. +2017-06-03: + FlattestGuitar: + - bugfix: PACMAN boards and pico manipulators now have proper research levels +2017-06-04: + Crazylemon64: + - bugfix: Clone's hearts now start operational + - bugfix: EMP'd clone pods can now be emptied again + FreeStylaLT: + - bugfix: Cell 6 is now connected to the atmos system properly. diff --git a/icons/mob/corgi_back.dmi b/icons/mob/corgi_back.dmi index ffc5e9428db..e3ed70343a3 100644 Binary files a/icons/mob/corgi_back.dmi and b/icons/mob/corgi_back.dmi differ diff --git a/icons/mob/corgi_head.dmi b/icons/mob/corgi_head.dmi index a92b79d564e..8022b8aaf2e 100644 Binary files a/icons/mob/corgi_head.dmi and b/icons/mob/corgi_head.dmi differ diff --git a/icons/obj/machineprototype.dmi b/icons/obj/machineprototype.dmi new file mode 100644 index 00000000000..f5312bdba60 Binary files /dev/null and b/icons/obj/machineprototype.dmi differ diff --git a/nano/templates/r_n_d.tmpl b/nano/templates/r_n_d.tmpl index e007fc93f31..973ce934873 100644 --- a/nano/templates/r_n_d.tmpl +++ b/nano/templates/r_n_d.tmpl @@ -53,7 +53,6 @@ {{:helper.link('Clear Disk', 'trash', {'clear_tech': 1})}} {{else}}
    Name: {{:data.disk_data.name}}
    -
    Reliability: {{:data.disk_data.reliability}}
    {{for data.disk_data.lathe_types}} {{if index == 0}} @@ -96,7 +95,6 @@ {{else}}

    Deconstruction Menu:

    Name: {{:data.loaded_item.name}}
    -
    Reliability: {{:data.loaded_item.reliability}}

    Origin Tech:

    {{for data.loaded_item.origin_tech}}
    diff --git a/paradise.dme b/paradise.dme index ef365903003..869bffe601b 100644 --- a/paradise.dme +++ b/paradise.dme @@ -733,6 +733,7 @@ #include "code\game\objects\items\devices\guitar.dm" #include "code\game\objects\items\devices\laserpointer.dm" #include "code\game\objects\items\devices\lightreplacer.dm" +#include "code\game\objects\items\devices\machineprototype.dm" #include "code\game\objects\items\devices\megaphone.dm" #include "code\game\objects\items\devices\multitool.dm" #include "code\game\objects\items\devices\paicard.dm"