From 40c5a5361339a5f656b1d186f3dd7da4eae43b02 Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Thu, 19 Aug 2021 17:44:53 +0200 Subject: [PATCH] puts chem mass spectrometer inline with other machines (#60896) (#7634) Co-authored-by: manofpepsi <71612753+manofpepsi@users.noreply.github.com> --- code/__DEFINES/traits.dm | 1 + .../circuitboards/machine_circuitboards.dm | 8 +++ .../chemistry/machinery/chem_mass_spec.dm | 48 +++++++++++++++--- .../research/designs/machine_designs.dm | 8 +++ code/modules/research/techweb/all_nodes.dm | 1 + icons/obj/chemical.dmi | Bin 56750 -> 56967 bytes 6 files changed, 59 insertions(+), 7 deletions(-) diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 288526ab878..55b6c0b9fa0 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -582,6 +582,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai ///generic atom traits /// Trait from [/datum/element/rust]. Its rusty and should be applying a special overlay to denote this. #define TRAIT_RUSTY "rust_trait" +///stops someone from splashing their reagent_container on an object with this trait #define DO_NOT_SPLASH "do_not_splash" // unique trait sources, still defines diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm index 518a02fa4a2..1aa5780b880 100644 --- a/code/game/objects/items/circuitboards/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm @@ -684,6 +684,14 @@ /obj/item/stock_parts/micro_laser = 1, /obj/item/stack/sheet/glass = 1) +/obj/item/circuitboard/machine/chem_mass_spec + name = "High-Performance Liquid Chromatography (Machine Board)" + greyscale_colors = CIRCUIT_COLOR_MEDICAL + build_path = /obj/machinery/chem_mass_spec + req_components = list( + /obj/item/stock_parts/micro_laser = 1, + /obj/item/stack/cable_coil = 5) + /obj/item/circuitboard/machine/chem_master name = "ChemMaster 3000 (Machine Board)" greyscale_colors = CIRCUIT_COLOR_MEDICAL diff --git a/code/modules/reagents/chemistry/machinery/chem_mass_spec.dm b/code/modules/reagents/chemistry/machinery/chem_mass_spec.dm index 94eda4d79a9..fb60e186bae 100644 --- a/code/modules/reagents/chemistry/machinery/chem_mass_spec.dm +++ b/code/modules/reagents/chemistry/machinery/chem_mass_spec.dm @@ -7,7 +7,7 @@ desc = {"This machine can separate reagents based on charge, meaning it can clean reagents of some of their impurities, unlike the Chem Master 3000. By selecting a range in the mass spectrograph certain reagents will be transferred from one beaker to another, which will clean it of any impurities up to a certain amount. This will not clean any inverted reagents. Inverted reagents will still be correctly detected and displayed on the scanner, however. -\nLeft click with a beaker to add it to the input slot, Right click with a beaker to add it to the output slot. Alt + left/right click can let you quickly remove the corrisponding beaker too."} +\nLeft click with a beaker to add it to the input slot, Right click with a beaker to add it to the output slot. Alt + left/right click can let you quickly remove the corresponding beaker."} density = TRUE layer = BELOW_OBJ_LAYER icon = 'icons/obj/chemical.dmi' @@ -16,6 +16,7 @@ This will not clean any inverted reagents. Inverted reagents will still be corre use_power = IDLE_POWER_USE idle_power_usage = 20 resistance_flags = FIRE_PROOF | ACID_PROOF + circuit = /obj/item/circuitboard/machine/chem_mass_spec ///If we're processing reagents or not var/processing_reagents = FALSE ///Time we started processing + the delay @@ -32,24 +33,53 @@ This will not clean any inverted reagents. Inverted reagents will still be corre var/obj/item/reagent_containers/beaker1 ///Output reagents container var/obj/item/reagent_containers/beaker2 + ///multiplies the final time needed to process the chems depending on the laser stock part + var/cms_coefficient = 1 -/obj/machinery/chem_mass_spec/Initialize() +/obj/machinery/chem_mass_spec/Initialize(mapload) . = ..() - beaker2 = new /obj/item/reagent_containers/glass/beaker/large(src) ADD_TRAIT(src, DO_NOT_SPLASH, src.type) + if(mapload) + beaker2 = new /obj/item/reagent_containers/glass/beaker/large(src) /obj/machinery/chem_mass_spec/Destroy() QDEL_NULL(beaker1) QDEL_NULL(beaker2) return ..() +/obj/machinery/chem_mass_spec/RefreshParts() + cms_coefficient = 1 + for(var/obj/item/stock_parts/micro_laser/laser in component_parts) + cms_coefficient /= laser.rating + +/obj/machinery/chem_mass_spec/deconstruct(disassembled) + if(beaker1) + beaker1.forceMove(drop_location()) + beaker1 = null + if(beaker2) + beaker2.forceMove(drop_location()) + beaker2 = null + . = ..() + +/obj/machinery/chem_mass_spec/update_overlays() + . = ..() + if(panel_open) + . += mutable_appearance(icon, "[base_icon_state]_panel-o") + /* beaker swapping/attack code */ -///Adds beaker 1 /obj/machinery/chem_mass_spec/attackby(obj/item/item, mob/user, params) if(processing_reagents) to_chat(user, " The [src] is currently processing a batch!") return ..() + + if(default_deconstruction_screwdriver(user, icon_state, icon_state, item)) + update_appearance() + return + + if(default_unfasten_wrench(user, item)) + return + if(istype(item, /obj/item/reagent_containers) && !(item.item_flags & ABSTRACT) && item.is_open_container()) var/obj/item/reagent_containers/beaker = item . = TRUE //no afterattack @@ -57,15 +87,19 @@ This will not clean any inverted reagents. Inverted reagents will still be corre return replace_beaker(user, BEAKER1, beaker) to_chat(user, span_notice("You add [beaker] to [src].")) + update_appearance() updateUsrDialog() - update_appearance() + return ..() -///Adds beaker 2 /obj/machinery/chem_mass_spec/attackby_secondary(obj/item/item, mob/user, params) if(processing_reagents) to_chat(user, " The [src] is currently processing a batch!") return + + if(default_deconstruction_crowbar(item)) + return + if(istype(item, /obj/item/reagent_containers) && !(item.item_flags & ABSTRACT) && item.is_open_container()) var/obj/item/reagent_containers/beaker = item if(!user.transferItemToLoc(beaker, src)) @@ -362,5 +396,5 @@ This will not clean any inverted reagents. Inverted reagents will still be corre continue var/inverse_purity = 1-reagent.purity time += (((reagent.mass * reagent.volume) + (reagent.mass * inverse_purity * 0.1)) * 0.0035) + 10 ///Roughly 10 - 30s? - delay_time = time + delay_time = (time * cms_coefficient) return delay_time diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm index e9daf28ee6c..3c45dddc148 100644 --- a/code/modules/research/designs/machine_designs.dm +++ b/code/modules/research/designs/machine_designs.dm @@ -159,6 +159,14 @@ build_path = /obj/item/circuitboard/machine/chem_heater category = list ("Medical Machinery") +/datum/design/board/chem_mass_spec + name = "Machine Design (High-Performance Liquid Chromatography)" + desc = "The circuit board for a High-Performance Liquid Chromatography (Machine Board)" + id = "chem_mass_spec" + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_MEDICAL + build_path = /obj/item/circuitboard/machine/chem_mass_spec + category = list ("Medical Machinery") + /datum/design/board/smoke_machine name = "Machine Design (Smoke Machine)" desc = "The circuit board for a smoke machine." diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index b7a4601f38f..1fd4dff93ee 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -274,6 +274,7 @@ "blood_pack", "chem_dispenser", "chem_heater", + "chem_mass_spec", "chem_master", "chem_pack", "crewpinpointerprox", diff --git a/icons/obj/chemical.dmi b/icons/obj/chemical.dmi index 687e0c200afbcf278edbbe80be36a9d1894e5893..d868a9272ff15d2afd05608d5671616b9ad52135 100644 GIT binary patch delta 17194 zcmbWe1yodD^gnusMnFQ5P8ASEQc@T|5R?=FQCg%yx?wI2N|&^th;&HzPzp$iba!{d zz|8zFe*eGs{%@_f)?4ebhM9ZMoO{mR`|PvNXU7!REMT(C8vwMZf_vMn3lvkQfJ1su6hr8nz*wVO$RTWfE2ODP~$b*e& z(@^Gafzkd)n~wEO1qWi6C+L#VjQQ@UQ6shD0lkngK132hRzRN*-NV+7*L>X1XtH+^ zLIxh!Xy$X`8%4mQd$h|FkLKCK{Rc+!KGq?5Y4e!GC1sZxg=ut9s)|UK%(+i(yJE^7iqcHUyyNAulu~s$|P3fwO9Nhp_iQ^ zA~7uVwaB3kRIZY{sz5sOIJYe z52f3ocLAdz&g6WTMZcL$4i7?b*)mZodU;6AJ0b|ntIf1@^N z7Mr5oXW&)T^UYqaGIS-f=q~3h|NXqOZC5YYq94Y>8-;hf&88%qG4ue-d-r}GcP0bP z2P^t$p|owqlW%c4ugHFsV|07o`;a&nU5qU*GLfN2`?q^zQ+QZ>o44Mdyrs?vxvMMxAXUpFm#Jv^DOAy)t?u#;av~&*0jGn8!(J0RRX0KVGcYW+Wz2o@i zjm*uN#{|yvvu4>TOnEkn=lzN0gOKdWy}ibtiwMgoC~2)))d++?KZ!79dDyyU`8d_E z@q28!Qa)X4o$j4H>zE(M%GIi>({_9p8V?({e)t=WOEf1u@G973YOn0WVZiNf0td{< zbwQ`*s~ zPL3&CrNp>Qdd0DNBA+(C+l{(6e@VuEA>T_VK4$VPtvgy36oBjU0D(Ey1n5 z#i1#?-=Ot~PCDbPyVb4UX+eLu{S}x`*N-CW>oDYUDdN1N{C8xSXq3^~kbTao+<-$Y zyC|*oRq8QST!*89j_rt&j$}cvXYx(eae)`fqZfWhN6yvv8ty+`mF6(89qE3VkdPD0 zOj>A^EAy#?TB5`kHX!bDCsD{Yu9Iea@Id9F;_>OJrN`Os-~mCVTDP^Y6wfY*gQ{qt z5FMmmCjNW-$fMNgG)nqdRM0!Ont(yBE+w2;s*NS@gm~m_x}{u*`7IlhKG7*Bu@a3Z zub(CK#pfOIIuh&Vsx`PdPqJgNHD2-Do694=iZxc!**uQCZnvCzwB;Q%PmC59mMNCk zn)rQ|yY7^)cdU?C6^2lnm;M3^j+wp~z2#k)aQ5sA=o2%0^*QG<7zny_Q@` z>~xz3wmuy*L(@;Y+EP=imy}9?m=3TQdw_;P)oGzb&CZBzZMbt_|K& zDmDOs27PV+h#96inw#PG%;UG2b_i#2F*ps4jWMeU1&`nFvIEkZnm1RXtZI&OobF4{ z+N=b73ex?aB1`bDsRWD`8nO$YOlME4>)Fjsb_=PQtht0bGb9z{48ED3SDL8sLxQOS zbsM9+H(wQhg8_~}X;fQVu>3}Y8i#};g5gv|lu9U-m`SD1;<@KQYq_9+<44U+mck1> zT}*ZNH>ae{(L`8Em?Uakh{y$-8jDqK

Ye3skPOy{qJVefo%HHt!HG-8N{K1&3qp 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 delta 16993 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