Files
Bubberstation/code/modules/library/skill_learning/generic_skillchips/self_surgery.dm
Y0SH1M4S73R fa573fa539 Adds the self-surgery skillchip as a fairly rare black market item (#91606)
## About The Pull Request

This PR adds a skillchip that allows the user to perform normal
surgeries on themselves, albeit with a 1.5x speed penalty and a flat 33%
increase to the probability of screwing up each step. You can find this
skillchip occasionally on the black market. It is also contraband, and
can be detected by n-spect scanners.

## Why It's Good For The Game

Provides a risky alternate means of obtaining surgical intervention,
such as if you either can't trust anybody else to do surgery on you or
can't be trusted to have certain surgeries done on you.

## Changelog

🆑
add: The Centcom Department of Import Control has become aware of the
use of highly-illegal and medically dubious self-surgery skillchips
aboard company stations. We suspect they are being sold to the station
through the black market.
/🆑
2025-07-05 17:43:54 +10:00

30 lines
1.5 KiB
Plaintext

/obj/item/skillchip/self_surgery
name = "4U70-P3R4710N skillchip"
desc = "A skillchip containing old Nanotrasen medical training protocols, which one could use to perform surgical operations on themselves. \
This one doesn't look like it's in the best condition - bit rot has probably rendered it somewhat risky to use."
auto_traits = list(TRAIT_SELF_SURGERY)
skill_name = "Self Surgery"
skill_description = "Allows you to perform surgery on yourself."
skill_icon = FA_ICON_USER_DOCTOR
activate_message = span_notice("You realize there's nothing stopping you from performing surgery on yourself.")
deactivate_message = span_notice("You suddenly feel like you should never perform surgery on yourself.")
/obj/item/skillchip/self_surgery/Initialize(mapload, is_removable)
. = ..()
ADD_TRAIT(src, TRAIT_CONTRABAND, INNATE_TRAIT)
/obj/item/skillchip/self_surgery/on_activate(mob/living/carbon/user, silent)
. = ..()
RegisterSignal(user, COMSIG_LIVING_INITIATE_SURGERY_STEP, PROC_REF(apply_surgery_penalty))
/obj/item/skillchip/self_surgery/on_deactivate(mob/living/carbon/user, silent)
. = ..()
UnregisterSignal(user, COMSIG_LIVING_INITIATE_SURGERY_STEP)
/obj/item/skillchip/self_surgery/proc/apply_surgery_penalty(mob/living/carbon/_source, mob/living/user, mob/living/target, target_zone, obj/item/tool, datum/surgery/surgery, datum/surgery_step/step, list/modifiers)
SIGNAL_HANDLER
if(user != target)
return
modifiers[FAIL_PROB_INDEX] += 33
modifiers[SPEED_MOD_INDEX] *= 1.5