mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-20 12:35:33 +01:00
Bargain bin organ quirks: Prosthetic organ and Tin Man (#76498)
## About The Pull Request Basically, the organ equivalents of prosthetic limb and quadruple amputee. These replace your organs with absolutely terrible cybernetic counterparts which also have absolutely no resistance against EMPs.  ### ADDITIONAL FUN Surplus organs are so awful that if surgically removed while not EMPed nor failing, they *explode*! ## Why It's Good For The Game More character customization, and more suffering for hardcore random players. ## Changelog 🆑 add: Added two new quirks, prosthetic organ and tin man. Essentially, they replace organs with bad bad not good cybernetic counterparts. /🆑 --------- Co-authored-by: Jacquerel <hnevard@gmail.com> Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
/**
|
||||
* ## DANGEROUS SURGICAL REMOVAL ELEMENT
|
||||
*
|
||||
* Makes the organ explode when removed surgically.
|
||||
* That's about it.
|
||||
*/
|
||||
/datum/element/dangerous_surgical_removal
|
||||
|
||||
/datum/element/dangerous_surgical_removal/Attach(datum/target)
|
||||
. = ..()
|
||||
if(!isorgan(target))
|
||||
return ELEMENT_INCOMPATIBLE
|
||||
RegisterSignal(target, COMSIG_ORGAN_SURGICALLY_REMOVED, PROC_REF(on_surgical_removal))
|
||||
|
||||
/datum/element/dangerous_surgical_removal/Detach(datum/source)
|
||||
. = ..()
|
||||
UnregisterSignal(source, COMSIG_ORGAN_SURGICALLY_REMOVED)
|
||||
|
||||
/datum/element/dangerous_surgical_removal/proc/on_surgical_removal(obj/item/organ/source, mob/living/user, mob/living/carbon/old_owner, target_zone, obj/item/tool)
|
||||
SIGNAL_HANDLER
|
||||
if(source.organ_flags & (ORGAN_FAILING|ORGAN_EMP))
|
||||
return
|
||||
if(user?.Adjacent(source))
|
||||
source.audible_message("[source] explodes on [user]'s face!")
|
||||
user.take_bodypart_damage(15)
|
||||
else
|
||||
source.audible_message("[source] explodes into tiny pieces!")
|
||||
explosion(source, light_impact_range = 1, explosion_cause = source)
|
||||
qdel(source)
|
||||
Reference in New Issue
Block a user