[MIRROR] Add a protean ability to absorb implants into themselves (#11247)

Co-authored-by: ShadowLarkens <shadowlarkens@gmail.com>
This commit is contained in:
CHOMPStation2StaffMirrorBot
2025-07-26 12:12:01 -07:00
committed by GitHub
parent 1d9103c1a5
commit 123b401d1d
2 changed files with 41 additions and 1 deletions

View File

@@ -903,3 +903,43 @@
icon = 'icons/obj/slimeborg/slimecore.dmi'
icon_state = "core"
to_call = /mob/living/carbon/human/proc/transparency_toggle
/obj/effect/protean_ability/absorb_implant
ability_name = "Absorb Implant"
desc = "Absorb an implant into your system."
icon = 'icons/obj/surgery.dmi'
icon_state = "heart-on"
to_call = /mob/living/carbon/human/proc/absorb_implant
/mob/living/carbon/human/proc/absorb_implant()
set name = "Absorb Implant"
set category = "Abilities.Protean"
if(stat || world.time < last_special)
return
last_special = world.time + 50
var/obj/item/organ/internal/augment/A = get_active_hand()
if(!istype(A))
to_chat(src, span_danger("You cannot integrate this into your body."))
return
if(!(ORGAN_NANOFORM in A.target_parent_classes))
to_chat(src, span_danger("This implant is incompatible with our nanoform."))
return
var/obj/item/organ/external/target_organ = get_organ(zone_sel.selecting)
if(!istype(target_organ) || target_organ.is_stump())
to_chat(src, span_danger("Your [target_organ] is currently unsuitable for implants."))
return
if(target_organ.organ_tag != A.parent_organ)
to_chat(src, span_danger("[A] does not go in [target_organ]."))
return
if(!unEquip(A))
to_chat(src, span_danger("[A] is stuck to your hand."))
return
A.replaced(src, target_organ)
to_chat(src, span_notice("You absorb [A] into your [target_organ]."))
log_admin("[key_name(src)] protean self-implanted [A].")

View File

@@ -16,7 +16,7 @@
target_slot = slot_l_hand
target_parent_classes = list(ORGAN_FLESH, ORGAN_ROBOT)
target_parent_classes = list(ORGAN_FLESH, ORGAN_ROBOT, ORGAN_NANOFORM)
integrated_object_type = /obj/item/gun/energy/laser/mounted/augment