mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-29 19:11:51 +00:00
BCIs are a new shell that can be implanted in your brain through surgery or through a BCI Manipulation Chamber, which provide the ability to easily implant and remove BCIs. They are the same size as compact remotes and generally share the same limitations.
Also adds CIRCUIT_FLAG_HIDDEN, to hide components from the UI. I didn't end up needing this, but Watermelon said he had ideas for it, so eh.
Why It's Good For The Game
BCIs provide an interesting, stealthy input method for circuits. They are seen as a healthier alternative to nanites, and improve on them in several ways:
Circuits have limited manipulation of the world, and intentionally do not perform the ability to provide passive healing, revives, etc.
Circuits have a significantly better UI and UX than nanites.
Circuits regularly get content expansions, which means that as a side-effect, there'll often be new things to play with for BCIs.
Other point to make:
BCI implanters have no cloud, and instead require the BCI to be put inside the machine. This means it requires the attention of the scientist (or even just a box with them inside). With
Adds the ability to save/load circuits for admins. Adds the ability to duplicate modules in a round. #60222, which lets you reprint a circuit you made that round, this means you can print out lots of BCIs, rather than going through the tedium of constantly remaking it.
BCI implanters are not roundstart, but rather in the advanced shells node. This is essentially the same as nanites, except for the difference of nanites starting with all the machinery, but none of the powers.
Changelog
cl
add: Added brain-computer interface circuit shells.
/cl
60 lines
1.6 KiB
Plaintext
60 lines
1.6 KiB
Plaintext
/**
|
|
* # Shell Item
|
|
*
|
|
* Printed out by protolathes. Screwdriver to complete the shell.
|
|
*/
|
|
/obj/item/shell
|
|
name = "assembly"
|
|
desc = "A shell assembly that can be completed by screwdrivering it."
|
|
icon = 'icons/obj/wiremod.dmi'
|
|
var/shell_to_spawn
|
|
var/screw_delay = 3 SECONDS
|
|
|
|
/obj/item/shell/screwdriver_act(mob/living/user, obj/item/tool)
|
|
user.visible_message(span_notice("[user] begins finishing [src]."), span_notice("You begin finishing [src]."))
|
|
tool.play_tool_sound(src)
|
|
if(!do_after(user, screw_delay, src))
|
|
return
|
|
user.visible_message(span_notice("[user] finishes [src]."), span_notice("You finish [src]."))
|
|
|
|
var/turf/drop_loc = drop_location()
|
|
|
|
qdel(src)
|
|
if(drop_loc)
|
|
new shell_to_spawn(drop_loc)
|
|
|
|
return TRUE
|
|
|
|
/obj/item/shell/bot
|
|
name = "bot assembly"
|
|
icon_state = "setup_medium_box-open"
|
|
shell_to_spawn = /obj/structure/bot
|
|
|
|
/obj/item/shell/money_bot
|
|
name = "money bot assembly"
|
|
icon_state = "setup_large-open"
|
|
shell_to_spawn = /obj/structure/money_bot
|
|
|
|
/obj/item/shell/drone
|
|
name = "drone assembly"
|
|
icon_state = "setup_medium_med-open"
|
|
shell_to_spawn = /mob/living/circuit_drone
|
|
|
|
/obj/item/shell/server
|
|
name = "server assembly"
|
|
icon_state = "setup_stationary-open"
|
|
shell_to_spawn = /obj/structure/server
|
|
screw_delay = 10 SECONDS
|
|
|
|
/obj/item/shell/airlock
|
|
name = "circuit airlock assembly"
|
|
icon = 'icons/obj/doors/airlocks/station/public.dmi'
|
|
icon_state = "construction"
|
|
shell_to_spawn = /obj/machinery/door/airlock/shell
|
|
screw_delay = 10 SECONDS
|
|
|
|
/obj/item/shell/bci
|
|
name = "brain-computer interface assembly"
|
|
icon_state = "bci-open"
|
|
shell_to_spawn = /obj/item/organ/cyberimp/bci
|