diff --git a/code/__DEFINES/research.dm b/code/__DEFINES/research.dm index bafce499476..16776ed8e2b 100644 --- a/code/__DEFINES/research.dm +++ b/code/__DEFINES/research.dm @@ -29,7 +29,7 @@ #define RDSCREEN_TEXT_NO_PROTOLATHE "

No Protolathe Linked!


" #define RDSCREEN_TEXT_NO_IMPRINTER "

No Circuit Imprinter Linked!


" -#define RDSCREEN_TEXT_NO_DECONSTRUCT "

No Deconstructive Analyzer Linked!


" +#define RDSCREEN_TEXT_NO_DECONSTRUCT "

No Destructive Analyzer Linked!


" #define RDSCREEN_TEXT_NO_TDISK "

No Technology Disk Inserted!


" #define RDSCREEN_TEXT_NO_DDISK "

No Design Disk Inserted!


" #define RDSCREEN_TEXT_NO_SNODE "

No Technology Node Selected!


" diff --git a/code/modules/research/destructive_analyzer.dm b/code/modules/research/destructive_analyzer.dm index 4bd6fb63ffb..4307626b828 100644 --- a/code/modules/research/destructive_analyzer.dm +++ b/code/modules/research/destructive_analyzer.dm @@ -102,9 +102,6 @@ Note: Must be placed within 3 tiles of the R&D Console var/datum/techweb_node/TN = get_techweb_node_by_id(id) if(!istype(TN)) return FALSE - var/list/can_boost = techweb_item_boost_check(loaded_item) - if(isnull(can_boost[id])) - return FALSE var/dpath = loaded_item.type var/list/worths = TN.boost_item_paths[dpath] var/list/differences = list() @@ -114,7 +111,7 @@ Note: Must be placed within 3 tiles of the R&D Console var/value = min(worths[i], TN.research_costs[i]) - used if(value > 0) differences[i] = value - if(!length(differences)) + if(length(worths) && !length(differences)) return FALSE var/choice = input("Are you sure you want to destroy [loaded_item] to [!length(worths) ? "reveal [TN.display_name]" : "boost [TN.display_name] by [json_encode(differences)] point\s"]?") in list("Proceed", "Cancel") if(choice == "Cancel") diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm index b8e075ec484..55b193de5ac 100644 --- a/code/modules/research/experimentor.dm +++ b/code/modules/research/experimentor.dm @@ -19,7 +19,7 @@ #define FAIL 8 /obj/machinery/rnd/experimentor name = "\improper E.X.P.E.R.I-MENTOR" - desc = "A \"replacement\" for the deconstructive analyzer with a slight tendency to catastrophically fail." + desc = "A \"replacement\" for the destructive analyzer with a slight tendency to catastrophically fail." icon = 'icons/obj/machines/heavy_lathe.dmi' icon_state = "h_lathe" density = TRUE diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index 8e99b64239c..eb4c3b69a4b 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -861,7 +861,7 @@ Nothing else in the console has ID requirements. switch(ls["disconnect"]) if("destroy") if(QDELETED(linked_destroy)) - say("No Deconstructive Analyzer Linked!") + say("No Destructive Analyzer Linked!") return linked_destroy.linked_console = null linked_destroy = null @@ -887,9 +887,10 @@ Nothing else in the console has ID requirements. say("Ejecting Technology Disk") if(ls["deconstruct"]) if(QDELETED(linked_destroy)) - say("No Deconstructive Analyzer Linked!") + say("No Destructive Analyzer Linked!") return - linked_destroy.user_try_decon_id(ls["deconstruct"], usr) + if(!linked_destroy.user_try_decon_id(ls["deconstruct"], usr)) + say("Destructive analysis failed!") //Protolathe Materials if(ls["disposeP"]) //Causes the protolathe to dispose of a single reagent (all of it) if(QDELETED(linked_lathe)) @@ -995,7 +996,7 @@ Nothing else in the console has ID requirements. screen = RDSCREEN_DESIGNDISK if(ls["eject_item"]) //Eject the item inside the destructive analyzer. if(QDELETED(linked_destroy)) - say("No Deconstructive Analyzer Linked!") + say("No Destructive Analyzer Linked!") return if(linked_destroy.busy) to_chat(usr, "The destructive analyzer is busy at the moment.") diff --git a/code/modules/research/techweb/__techweb_helpers.dm b/code/modules/research/techweb/__techweb_helpers.dm index 1b814ede1df..1e90f0f28d9 100644 --- a/code/modules/research/techweb/__techweb_helpers.dm +++ b/code/modules/research/techweb/__techweb_helpers.dm @@ -72,43 +72,44 @@ SSresearch.invalid_design_ids[id] = 1 /proc/node_boost_error(id, message) + WARNING("Invalid boost information for node \[[id]\]: [message]") SSresearch.invalid_node_boost[id] = message /proc/verify_techweb_nodes() for(var/n in SSresearch.techweb_nodes) var/datum/techweb_node/N = SSresearch.techweb_nodes[n] if(!istype(N)) - stack_trace("WARNING: Invalid research node with ID [n] detected and removed.") + WARNING("Invalid research node with ID [n] detected and removed.") SSresearch.techweb_nodes -= n research_node_id_error(n) for(var/p in N.prereq_ids) var/datum/techweb_node/P = SSresearch.techweb_nodes[p] if(!istype(P)) - stack_trace("WARNING: Invalid research prerequisite node with ID [p] detected in node [N.display_name]\[[N.id]\] removed.") + WARNING("Invalid research prerequisite node with ID [p] detected in node [N.display_name]\[[N.id]\] removed.") N.prereq_ids -= p research_node_id_error(p) for(var/d in N.design_ids) var/datum/design/D = SSresearch.techweb_designs[d] if(!istype(D)) - stack_trace("WARNING: Invalid research design with ID [d] detected in node [N.display_name]\[[N.id]\] removed.") + WARNING("Invalid research design with ID [d] detected in node [N.display_name]\[[N.id]\] removed.") N.designs -= d design_id_error(d) for(var/p in N.prerequisites) var/datum/techweb_node/P = N.prerequisites[p] if(!istype(P)) - stack_trace("WARNING: Invalid research prerequisite node with ID [p] detected in node [N.display_name]\[[N.id]\] removed.") + WARNING("Invalid research prerequisite node with ID [p] detected in node [N.display_name]\[[N.id]\] removed.") N.prerequisites -= p research_node_id_error(p) for(var/u in N.unlocks) var/datum/techweb_node/U = N.unlocks[u] if(!istype(U)) - stack_trace("WARNING: Invalid research unlock node with ID [u] detected in node [N.display_name]\[[N.id]\] removed.") + WARNING("Invalid research unlock node with ID [u] detected in node [N.display_name]\[[N.id]\] removed.") N.unlocks -= u research_node_id_error(u) for(var/d in N.designs) var/datum/design/D = N.designs[d] if(!istype(D)) - stack_trace("WARNING: Invalid research design with ID [d] detected in node [N.display_name]\[[N.id]\] removed.") + WARNING("Invalid research design with ID [d] detected in node [N.display_name]\[[N.id]\] removed.") N.designs -= d design_id_error(d) for(var/p in N.boost_item_paths) @@ -116,15 +117,15 @@ N.boost_item_paths -= p node_boost_error(N.id, "[p] is not a valid path.") var/list/points = N.boost_item_paths[p] - if(!islist(points)) - N.boost_item_paths -= p - node_boost_error(N.id, "No valid list.") - else + if(islist(points)) for(var/i in points) if(!isnum(points[i])) node_boost_error(N.id, "[points[i]] is not a valid number.") else if(!SSresearch.point_types[i]) node_boost_error(N.id, "[i] is not a valid point type.") + else if(!isnull(points)) + N.boost_item_paths -= p + node_boost_error(N.id, "No valid list.") CHECK_TICK /proc/verify_techweb_designs()