From d3defa8a2f1193a67bf5e7d28a13de2c8091463e Mon Sep 17 00:00:00 2001 From: pixelkitty286 <78038207+pixelkitty286@users.noreply.github.com> Date: Tue, 1 Oct 2024 00:34:20 -0500 Subject: [PATCH] Research module fixes and small rebalances. (#2096) ## About The Pull Request Some general changes and bug fixes required to keep research modules usable. Also added on some quality of life features such as a material bag and a xenobio bag Changed some the assembly items to be under circuits gripper. Fixes some issues with not being able to repair synths and moves surgical drapes and bonesetter into a new small omitool. ## Why It's Good For The Game In the current state of the research module it is broken and has lots of issues this PR is to fix some of it's issues. ## Proof Of Testing Trust me bro I compiled it and tested it locally. This is the new image of a fully upgraded research borg looks like. ![image](https://github.com/user-attachments/assets/2f81def0-e2f4-40a7-9dd4-23f1dce227e0) ## Changelog :cl: add: cut down omitool a small upgrade for the scanner del: Removed old things qol: made research borgs actually able to revive and work on synths balance: research cyborg grippers fix: research cyborgs not being able to repair synths. research cyborgs being able to pick up the nuke disk (oops lol). /:cl: --- .../game/objects/items/robot/items/storage.dm | 15 ++++++++--- .../code/modules/borgs/code/robot_items.dm | 27 ++++++++++++++----- .../code/modules/borgs/code/robot_model.dm | 13 ++++----- .../code/modules/borgs/code/robot_upgrade.dm | 12 ++++++++- .../research/designs/mechfab_designs.dm | 12 +++++++++ .../modules/research/techweb/all_nodes.dm | 1 + 6 files changed, 64 insertions(+), 16 deletions(-) diff --git a/modular_zubbers/code/game/objects/items/robot/items/storage.dm b/modular_zubbers/code/game/objects/items/robot/items/storage.dm index 3686c3402c1..8a7a6b0ebd6 100644 --- a/modular_zubbers/code/game/objects/items/robot/items/storage.dm +++ b/modular_zubbers/code/game/objects/items/robot/items/storage.dm @@ -13,10 +13,12 @@ storable = list( /obj/item/slime_extract, /obj/item/slimepotion, - /obj/item/disk, + /obj/item/disk/data, + /obj/item/disk/design_disk, + /obj/item/disk/tech_disk, + /obj/item/computer_disk,//ordinance /obj/item/stock_parts, /obj/item/reagent_containers/cup/beaker, - /obj/item/assembly/prox_sensor, /obj/item/healthanalyzer, //To build medibots /obj/item/borg_restart_board, //To allow repairs /obj/item/borg/upgrade/rename, //Basics not an upgrade @@ -24,6 +26,7 @@ /obj/item/mod, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/dropper, + /obj/item/food/monkeycube, ) /obj/item/borg/apparatus/research/examine() @@ -32,6 +35,8 @@ . += "The gripper currently has [stored] secured." . += span_notice(" Alt-click will drop the currently held item. ") +//To build funny little gadgets + /obj/item/borg/apparatus/circuit_sci name = "Research circuit assembly gripper" desc = "A complex grasping tool used for working with circuitry." @@ -45,6 +50,10 @@ /obj/item/integrated_circuit, /obj/item/circuit_component, /obj/item/usb_cable, + /obj/item/assembly/signaler, + /obj/item/healthanalyzer, //To build medibots + /obj/item/assembly/prox_sensor, + /obj/item/electronics, ) /obj/item/borg/apparatus/circuit_sci/examine() @@ -65,7 +74,7 @@ icon_state = "connector" storable = list( /obj/item/mmi, - /obj/item/assembly/flash, //Building borgs + /obj/item/assembly, //unrestricted assembly building /obj/item/bodypart/arm/left/robot, /obj/item/bodypart/arm/right/robot, /obj/item/bodypart/leg/left/robot, diff --git a/modular_zubbers/code/modules/borgs/code/robot_items.dm b/modular_zubbers/code/modules/borgs/code/robot_items.dm index 278df44d167..c14475d3448 100644 --- a/modular_zubbers/code/modules/borgs/code/robot_items.dm +++ b/modular_zubbers/code/modules/borgs/code/robot_items.dm @@ -106,7 +106,8 @@ icon = 'icons/obj/tools.dmi' icon_state = "inducer-sci" -//illegal teleporter module +//Illegal experimental Dash module + /obj/item/experimental_dash name = "Exerimental Dash" desc = "An experimental module that allows for dashing." @@ -127,15 +128,18 @@ spark_system.set_up(5, 0, src) spark_system.attach(src) -/obj/item/experimental_dash/afterattack(atom/target, mob/user, proximity_flag, click_parameters) + +/obj/item/experimental_dash/ranged_interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) . = ..() if(. == SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN) - return + return ITEM_INTERACT_SUCCESS if(cyborg.cell.charge <= charge_cost)//Prevents usage when charge is low user.balloon_alert(user, "Low charge!") - return - if(!target.density && jaunt?.teleport(user, target)) + return ITEM_INTERACT_SUCCESS + if(!interacting_with.density && jaunt?.teleport(user, interacting_with)) cyborg?.cell?.use(charge_cost) + return ITEM_INTERACT_SUCCESS + return NONE /obj/item/experimental_dash/equipped(mob/user, slot, initial) . = ..() @@ -159,7 +163,7 @@ max_charges = 1 charge_rate = 15 SECONDS beam_length = 1 SECONDS - recharge_sound = null + recharge_sound = 'sound/machines/ding.ogg' beam_effect = "plasmabeam" /datum/action/innate/dash/research/GiveAction(mob/viewer) //this action should be invisible @@ -171,3 +175,14 @@ //No more ghetto /obj/item/screwdriver/cyborg/power sharpness = NONE + +//Research cyborg omnitool + +/obj/item/borg/cyborg_omnitool/research + name = "research omni-toolset" + desc = "A set of engineering tools with a addition of tools to allow synthetic repairs." + + omni_toolkit = list( + /obj/item/surgical_drapes/cyborg, + /obj/item/bonesetter/cyborg, + ) diff --git a/modular_zubbers/code/modules/borgs/code/robot_model.dm b/modular_zubbers/code/modules/borgs/code/robot_model.dm index ce27623958a..760a96a274f 100644 --- a/modular_zubbers/code/modules/borgs/code/robot_model.dm +++ b/modular_zubbers/code/modules/borgs/code/robot_model.dm @@ -177,34 +177,35 @@ name = "Research" basic_modules = list( /obj/item/assembly/flash/cyborg, - /obj/item/extinguisher/mini, + /obj/item/extinguisher, /obj/item/weldingtool/largetank/cyborg, + /obj/item/borg/cyborg_omnitool/research, // A modded engineering omitool. + /obj/item/borg/cyborghug/medical, // You can now hug and fix synths :3c + /obj/item/multitool/cyborg, /obj/item/screwdriver/cyborg/power, /obj/item/crowbar/cyborg/power, - /obj/item/multitool/cyborg, /obj/item/analyzer, /obj/item/assembly/signaler/cyborg, /obj/item/borg/apparatus/sheet_manipulator, + /obj/item/storage/bag/sheetsnatcher/borg, + /obj/item/storage/bag/xeno, /obj/item/stack/cable_coil, /obj/item/borg/apparatus/beaker, /obj/item/borg/apparatus/organ_storage, /obj/item/borg/apparatus/research, /obj/item/borg/apparatus/circuit_sci, /obj/item/storage/part_replacer/cyborg, - /obj/item/surgical_drapes, /obj/item/healthanalyzer, /obj/item/experi_scanner, - /obj/item/bonesetter, /obj/item/stack/medical/gauze, /obj/item/borg/apparatus/tank_manipulator, ) radio_channels = list(RADIO_CHANNEL_SCIENCE) -//TODO: Illegal science stuff emag_modules = list( /obj/item/borg/stun, /obj/item/experimental_dash, - /obj/item/borg/apparatus/illegal //To replace malf printers + /obj/item/borg/apparatus/illegal //Get to work unit! ) cyborg_base_icon = "research" cyborg_icon_override = CYBORG_ICON_SCI diff --git a/modular_zubbers/code/modules/borgs/code/robot_upgrade.dm b/modular_zubbers/code/modules/borgs/code/robot_upgrade.dm index b732819b60f..dda0bdb571a 100644 --- a/modular_zubbers/code/modules/borgs/code/robot_upgrade.dm +++ b/modular_zubbers/code/modules/borgs/code/robot_upgrade.dm @@ -52,7 +52,6 @@ . = ..() model_type += /obj/item/robot_model/sci model_flags += BORG_MODEL_RESEARCH - items_to_remove = list(/obj/item/surgical_drapes) // Engineering BRPED /obj/item/borg/upgrade/rped/Initialize() @@ -60,6 +59,17 @@ items_to_add = list(/obj/item/storage/part_replacer/bluespace) items_to_add -= list(/obj/item/storage/part_replacer) +//Upgrade for the experi scanner +/obj/item/borg/upgrade/experi_scanner + name = "Research cyborg BlueSpace Experi-Scanner" + desc = "An upgrade to the Research model cyborg's standard health analyzer." + icon_state = "module_general" + require_model = TRUE + model_type = list(/obj/item/robot_model/sci) + model_flags = BORG_MODEL_RESEARCH + items_to_add = list(/obj/item/experi_scanner/bluespace) + items_to_remove = list(/obj/item/experi_scanner) + // Borg Dom Aura :) /obj/item/borg/upgrade/dominatrixmodule/action(mob/living/silicon/robot/borg, mob/living/user) . = ..() diff --git a/modular_zubbers/code/modules/research/designs/mechfab_designs.dm b/modular_zubbers/code/modules/research/designs/mechfab_designs.dm index 7749b30d343..df41517f96c 100644 --- a/modular_zubbers/code/modules/research/designs/mechfab_designs.dm +++ b/modular_zubbers/code/modules/research/designs/mechfab_designs.dm @@ -96,3 +96,15 @@ category = list( RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_RESEARCH ) + +//Some new toys +/datum/design/experi_scanner/bluespace_borg + name = "Cyborg Bluespace Experimental Scanner" + desc = "A version of the experiment scanner that allows for performing experiment scans from a distance." + id = "bs_experi_scanner_cyborg" + build_type = MECHFAB + materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT*7.5, /datum/material/glass =SHEET_MATERIAL_AMOUNT * 2.5, /datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT*2.5) + build_path = /obj/item/borg/upgrade/experi_scanner + category = list( + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_RESEARCH + ) diff --git a/modular_zubbers/code/modules/research/techweb/all_nodes.dm b/modular_zubbers/code/modules/research/techweb/all_nodes.dm index d194a042d82..3ebbcb73ded 100644 --- a/modular_zubbers/code/modules/research/techweb/all_nodes.dm +++ b/modular_zubbers/code/modules/research/techweb/all_nodes.dm @@ -15,6 +15,7 @@ . = ..() design_ids += list( "bs_experi_scanner", + "bs_experi_scanner_cyborg", ) /datum/techweb_node/ai_laws/New()