Files
pixelkitty286andGitHub 92ab041247 Research Cyborg and other borg module changes (#5118)
# About The Pull Request
This PR aims to put the some of the feature set I originally intended
research borgs to have and some quality of life things.

It also includes some small changes for some other modules mostly small
things such as removing names already being defined twice and it moves
some mining borg items into the proper mining borg tech web.

Also research borgs now have their own tech web instead of relying off
other techwebs.

### This PR adds these items to research borgs:

- robotics RCD with proper functionality to fix synths. (Upgrade item
only! Does not allow decon or construction!)


### This PR changes a few grippers:

- Research borg circuit gripper now allows full assembly use

- Research borg Illegal gripper now allows upgrades to be preformed on
other cyborgs (Only obtainable via emag or illegal upgrades!)

## Why It's Good For The Game
I made this PR to allow research cyborgs to have more expanded use for
what their intended purpose is which in my eyes is a support role
allowing them to build machines and gadgets that science builds wile
also preforming some basic tasks, and when malfunctioning becoming a
reliable back bone to the silicons or their subversive for repairs or
upgrades with some of these tasks taking longer than robotics preforming
such tasks.

Other cyborg changes were done to clean up and are some small quality of
life changes that I think I was suggested and research borgs get their
own tech web now because they should of had one in the first place but
for some reason I never made it one.

I've been holding off on this PR for a few months and in that time I've
been deciding if it would be worth to finish it or not and the more I
look and see how things are actually used and the state of research
borgs are in it makes me wonder if players who brought up some of the
original features, I intended this borg module to have, were complaining
out of bad faith or were worried bad faith players would exploit this,
and my response is if players are going to use these items intended for
the research department are used for bad faith as borg, what makes one
think they won't just as a non borg.
## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>
Please note these images were taken few months ago during ice scream day

Card IDs have been removed also!

Normal stock
<img width="587" height="299" alt="dreamseeker_nWLUzOEgdY"
src="https://github.com/user-attachments/assets/6010fc2b-1d07-421a-a85b-5555b3889bbd"
/>

Normal upgraded
<img width="584" height="288" alt="dreamseeker_S4yChSmUFw"
src="https://github.com/user-attachments/assets/c4b0e5d1-92a5-4410-8a2b-1a505fbe833f"
/>

Hacked and upgraded
<img width="584" height="287" alt="dreamseeker_3UtWhSGNig"
src="https://github.com/user-attachments/assets/f3069a8b-48f3-43af-916f-2710d9fae89e"
/>

</details>

## Changelog
🆑
add: Research borg RCD
add: Assembly usage for research borgs
add: Allowing research borg Illegal gripper to apply borg upgrades
balance: Research borg
code: Removed some double name defines
code: Made mining borg items under the mining borg tech web
refactor: Research borg tech web into it's own tech web
/🆑
2026-01-22 01:11:58 +02:00

111 lines
4.6 KiB
Plaintext

/obj/item/construction/rcd/arcd/mattermanipulator
name = "matter manipulator"
desc = "A strange, familiar yet distinctly different analogue to the Nanotrasen standard RCD. Works at range, and can deconstruct reinforced walls. Reload using metal, glass, or plasteel."
icon = 'modular_skyrat/master_files/icons/obj/tools.dmi'
icon_state = "rcd"
worn_icon_state = "RCD"
ranged = TRUE
canRturf = TRUE
max_matter = 500
matter = 500
canRturf = TRUE
construction_upgrades = RCD_UPGRADE_FRAMES | RCD_UPGRADE_SIMPLE_CIRCUITS | RCD_UPGRADE_FURNISHING
// Check for drains - we only want one per tile
/obj/item/construction/plumbing/canPlace(turf/destination)
if(ispath(blueprint, /obj/structure/drain))
for(var/obj/structure/drain/other_drain in destination.contents)
if(istype(other_drain))
return FALSE
return ..()
// Drain deconstruction
/obj/item/construction/plumbing/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers)
if(!istype(interacting_with, /obj/structure/drain))
return ..()
var/obj/structure/drain/drain_target = interacting_with
if(do_after(user, 2 SECONDS, target = interacting_with))
drain_target.deconstruct() //Let's not substract matter
playsound(get_turf(src), 'sound/machines/click.ogg', 50, TRUE)
return ITEM_INTERACT_SUCCESS
return ITEM_INTERACT_BLOCKING
/obj/item/construction/plumbing/mining
name = "mining plumbing constructor"
desc = "A type of plumbing constructor designed to harvest from geysers and collect their fluids."
icon = 'modular_skyrat/modules/aesthetics/tools/tools.dmi'
icon_state = "plumberer_mining"
var/static/list/mining_design_types = list(
//category 1 Synthesizers i.e devices which creates , reacts & destroys chemicals
"Synthesizers" = list(
/obj/machinery/plumbing/grinder_chemical = 30,
/obj/machinery/plumbing/liquid_pump = 35, //extracting chemicals from ground is one way of creation
/obj/machinery/plumbing/disposer = 10,
/obj/machinery/plumbing/buffer = 10, //creates chemicals as it waits for other buffers containing other chemicals and when mixed creates new chemicals
),
//category 2 distributors i.e devices which inject , move around , remove chemicals from the network
"Distributors" = list(
/obj/machinery/duct = 1,
/obj/machinery/plumbing/layer_manifold = 5,
/obj/machinery/plumbing/input = 5,
/obj/machinery/plumbing/filter = 5,
/obj/machinery/plumbing/splitter = 5,
/obj/machinery/plumbing/sender = 20,
/obj/machinery/plumbing/output = 5,
),
//category 3 Storage i.e devices which stores & makes the processed chemicals ready for consumption
"Storage" = list(
/obj/machinery/plumbing/tank = 20,
/obj/machinery/plumbing/acclimator = 10,
/obj/machinery/plumbing/bottler = 50,
/obj/machinery/iv_drip/plumbing = 20
),
//category 4 liquids
"Liquids" = list(
/obj/structure/drain = 5,
),
)
/obj/item/construction/plumbing/mining/Initialize(mapload)
. = ..()
plumbing_design_types = mining_design_types
/obj/item/construction/rcd/robotics_rcd
name = "Robotics RCD"
desc = "A modified RCD that has less storage than your usual NT RCD is and has less construction options and has lost the ability to deconstruct in favor of being more accessible for synthetic repairs. Reload using metal, glass, or plasteel."
icon = 'modular_skyrat/master_files/icons/obj/tools.dmi'
icon_state = "roborcd"
worn_icon_state = "RCD"
lefthand_file = 'modular_skyrat/modules/aesthetics/tools/tools_lefthand.dmi'
righthand_file = 'modular_skyrat/modules/aesthetics/tools/tools_righthand.dmi'
max_matter = 50
matter = 50
action_slots = NONE
banned_upgrades = RCD_ALL_UPGRADES
/obj/item/construction/rcd/robotics_rcd/interact_with_atom_secondary(atom/interacting_with, mob/living/user, list/modifiers)
balloon_alert(user, "no deconstruction mode")
return NONE
//Research cyborg RCD upgrade
/obj/item/construction/rcd/borg/robotics_rcd
name = "Robotics RCD"
desc = "A modified RCD designed specifically for synthetic repairs."
icon = 'modular_skyrat/master_files/icons/obj/tools.dmi'
icon_state = "roborcd"
worn_icon_state = "RCD"
lefthand_file = 'modular_skyrat/modules/aesthetics/tools/tools_lefthand.dmi'
righthand_file = 'modular_skyrat/modules/aesthetics/tools/tools_righthand.dmi'
action_slots = NONE
banned_upgrades = RCD_ALL_UPGRADES
/obj/item/construction/rcd/borg/robotics_rcd/interact_with_atom_secondary(atom/interacting_with, mob/living/user, list/modifiers)
return ITEM_INTERACT_BLOCKING
/obj/item/construction/rcd/borg/robotics_rcd/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers)
SHOULD_CALL_PARENT(FALSE)
return ITEM_INTERACT_BLOCKING