[Bounty] Ports and reworks the Cybernetic limb mounts quirk from Nova (#5136)

## About The Pull Request
Picking up the work from
https://github.com/Bubberstation/Bubberstation/pull/4672 that has since
gone stale and unadded to the game. PR description will be the same as
previously.

Partial Port of https://github.com/NovaSector/NovaSector/pull/465
reworked to use right clicking on self similar the ghouls rather than a
spell.

Coded as a bounty for Dinklemyr
## Why It's Good For The Game
Similar to Nova's explanation, suitable for a lot of character ideas
who's mechanical limbs can be popped off.
## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>
Unfortunately I don't have the images from the initial PR, but I can
confirm this works as intended.
</details>

## Changelog
🆑SpaceCatSS13, YakiAttaki
add: The cybernetic limb mount quirk has been added, synths and people
with synthetic limbs can now take this quirk to remove their limbs at
their discretion.
/🆑

---------

Co-authored-by: Alexis <catmc8565@gmail.com>
This commit is contained in:
Bridget (Yaki)
2026-02-12 11:30:14 -05:00
committed by GitHub
co-authored by Alexis
parent b208635099
commit 15c707de3b
7 changed files with 106 additions and 2 deletions
@@ -1039,7 +1039,7 @@ GLOBAL_LIST_EMPTY(features_by_species)
to_chat(owner, span_warning("You attempt to touch [target]!"))
return
SEND_SIGNAL(owner, COMSIG_MOB_ATTACK_HAND, owner, target, attacker_style)
SEND_SIGNAL(owner, COMSIG_MOB_ATTACK_HAND, owner, target, attacker_style, modifiers) //BUBBER EDIT - Original line SEND_SIGNAL(owner, COMSIG_MOB_ATTACK_HAND, owner, target, attacker_style)
if(LAZYACCESS(modifiers, RIGHT_CLICK))
disarm(owner, target, attacker_style)
+5 -1
View File
@@ -423,7 +423,11 @@
if(ishuman(victim))
var/mob/living/carbon/human/human_victim = victim
if(HAS_TRAIT(victim, TRAIT_LIMBATTACHMENT) || HAS_TRAIT(src, TRAIT_EASY_ATTACH))
if(HAS_TRAIT(victim, TRAIT_LIMBATTACHMENT) || HAS_TRAIT(src, TRAIT_EASY_ATTACH) || (HAS_TRAIT(victim, TRAIT_ROBOTIC_LIMBATTACHMENT) && bodytype & BODYTYPE_ROBOTIC)) // BUBBER EDIT CHANGE - ORIGINAL: if(HAS_TRAIT(victim, TRAIT_LIMBATTACHMENT) || HAS_TRAIT(src, TRAIT_EASY_ATTACH))
// BUBBER EDIT ADDITION START - robot_limb_detach_quirk
if (!HAS_TRAIT(victim, TRAIT_LIMBATTACHMENT) && !HAS_TRAIT(victim, TRAIT_EASY_ATTACH) && !(bodytype & BODYTYPE_ROBOTIC) && !(bodytype & BODYTYPE_KINETIC) && !(bodytype & BODYTYPE_PEG)) //if we're trying to attach something that's not synthetic, end out
return
// BUBBER EDIT ADDITION END
if(!human_victim.get_bodypart(body_zone))
user.temporarilyRemoveItemFromInventory(src, TRUE)
if(!try_attach_limb(victim))