mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-21 19:19:12 +01:00
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:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user