mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-30 16:47:13 +01:00
# 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 /🆑
111 lines
4.6 KiB
Plaintext
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
|