Files
The Sharkening 4a5104e4a0 Turns janitor borgs into walking crew operated vacuum cleaners. (#96724)
## About The Pull Request
Allows people to detach a cleaner and vacuum (uses the trash bag) from
janitor borgs. This option uses zero water management and doesn't create
slip tiles.

The module can be locked with alt click.

<img width="342" height="681" alt="image"
src="https://github.com/user-attachments/assets/0fe53f8b-d850-4354-aa70-382ca40dcd37"
/>

<img width="590" height="581" alt="image"
src="https://github.com/user-attachments/assets/70fea653-ad20-479a-8986-fed0e15af4b1"
/>


https://github.com/user-attachments/assets/ff81a214-1bfb-4a33-a660-ccb563e310af

Sounds are from soundsnap and properly licenced.
https://soundsnap.zendesk.com/hc/en-us/articles/115003916431-Legal


## Why It's Good For The Game

I think co-op mechanics are fun. If you manage to get a friend, this is
an option with zero water management. I feel like janitor borgs don't
really have much the way to cooperate with their base mechanics. You can
walk into a department and clean it wordlessly. This gives the option
where you can clean with your friend (or the crime scene you're trying
to scrub)

## Changelog
🆑 StrangeWeirdKitten, Toriate (sprites)
add: Janitor borgs now have a crew operated end that allows their
squishy overlords to do some cleaning themselves.
/🆑
2026-07-12 10:50:41 -06:00

25 lines
955 B
Plaintext

/**For items automatically offered to a player when they pull a borg.*/
/datum/component/borg_item_offered_when_pulled
var/mob/living/silicon/robot
/datum/component/borg_item_offered_when_pulled/Initialize(mob/living/silicon/robot/borg)
. = ..()
if(!isitem(parent))
return COMPONENT_INCOMPATIBLE
if(!istype(borg))
stack_trace("Component assigned to [parent], but was not assigned a ref for type /mob/living/silicon/robot to attach COMSIG_LIVING_GET_PULLED")
return COMPONENT_INCOMPATIBLE
RegisterSignal(borg, COMSIG_LIVING_GET_PULLED, PROC_REF(on_pulled))
ADD_TRAIT(parent, TRAIT_OFFERED_WHEN_PULLED, TRAIT_OFFERED_WHEN_PULLED)
robot = borg
/datum/component/borg_item_offered_when_pulled/Destroy(datum/source, ...)
UnregisterSignal(robot, COMSIG_LIVING_GET_PULLED)
robot = null
return ..()
/datum/component/borg_item_offered_when_pulled/proc/on_pulled(mob/living/holder, mob/living/puller)
SIGNAL_HANDLER
holder.give(puller, parent)