Experisci Expansion part 0.5 (#18631)

* telescience experiments

* use defines

* fixed up telesci stuff

* non-working bluespace crystal experiment

* allow sec to print basic cells

* allow anyone to make basic power cells

* fix

* medical basic tools

* bad paths

* pathfix

* fixed DA experiments, and clarified proc name

* circuitboards use copper

* changed it back

* lint

* moved signal

* slime deconstructing

* circuits don't give steel

* corrected defines

* correcting designs

* autolathe is not synced yet

* lets just mirror original behavior

* keep procs

* engies get signaler

* no dupe

* destructive borg belly

* unify point generate proc
This commit is contained in:
Will
2026-02-18 00:33:32 -05:00
committed by GitHub
parent 58190b6763
commit 11250fa9d3
29 changed files with 414 additions and 84 deletions
@@ -48,6 +48,16 @@
flags = NOBLUDGEON
/obj/item/dogborg/sleeper/Initialize(mapload)
if(analyzer) //Destructive analysis
var/static/list/destructive_signals = list(
COMSIG_MACHINERY_DESTRUCTIVE_SCAN = TYPE_PROC_REF(/datum/component/experiment_handler, try_run_destructive_experiment),
)
AddComponent(/datum/component/experiment_handler, \
config_mode = EXPERIMENT_CONFIG_ALTCLICK, \
allowed_experiments = list(/datum/experiment/scanning),\
config_flags = EXPERIMENT_CONFIG_ALWAYS_ACTIVE|EXPERIMENT_CONFIG_SILENT_FAIL,\
experiment_signals = destructive_signals, \
)
. = ..()
med_analyzer = new /obj/item/healthanalyzer
@@ -280,6 +290,7 @@
"ingested_reagents" = ingested_reagents
)
var/datum/component/experiment_handler/handler = get_experiment_handler()
var/list/data = list(
"our_patient" = patient_data,
"eject_port" = eject_port,
@@ -298,6 +309,8 @@
"deliveryslot_2" = deliveryslot_2,
"deliveryslot_3" = deliveryslot_3,
"items_preserved" = items_preserved,
"has_destructive_analyzer" = analyzer,
"techweb_name" = handler?.linked_web ? "[handler.linked_web.id] / [handler.linked_web.organization]" : "Disconnected",
)
return data
/obj/item/dogborg/sleeper/tgui_act(action, list/params, datum/tgui/ui, datum/tgui_state/state)
@@ -581,6 +594,10 @@
plastic.add_charge(total_material)
if(material == MAT_WOOD && wood)
wood.add_charge(total_material)
var/datum/component/experiment_handler/handler = get_experiment_handler()
if(analyzer && handler)
techweb_item_generate_points(T, handler.linked_web)
SEND_SIGNAL(src, COMSIG_MACHINERY_DESTRUCTIVE_SCAN, T)
if(is_trash)
hound.adjust_nutrition(digested)
else
@@ -617,4 +634,12 @@
STOP_PROCESSING(SSobj, src)
return
/obj/item/dogborg/sleeper/proc/get_experiment_handler()
PRIVATE_PROC(TRUE)
SHOULD_NOT_OVERRIDE(TRUE)
RETURN_TYPE(/datum/component/experiment_handler)
if(!analyzer)
return null
return GetComponent(/datum/component/experiment_handler)
#undef SLEEPER_INJECT_COST
@@ -351,6 +351,7 @@
src.modules += new /obj/item/borg/sight/meson(src)
src.modules += new /obj/item/t_scanner(src)
src.modules += new /obj/item/analyzer(src)
src.modules += new /obj/item/assembly/signaler(src) // Anomaly handling
src.modules += new /obj/item/geiger(src)
src.modules += new /obj/item/taperoll/engineering(src)
src.modules += new /obj/item/gripper/engineering(src)