diff --git a/code/modules/nifsoft/nif.dm b/code/modules/nifsoft/nif.dm index c3b941e462..8d4c320c8f 100644 --- a/code/modules/nifsoft/nif.dm +++ b/code/modules/nifsoft/nif.dm @@ -572,3 +572,32 @@ You can also set the stat of a NIF to NIF_TEMPFAIL without any issues to disable Will function in species where it normally wouldn't." durability = 25 bioadap = TRUE + +//////////////////////////////// +// Special Promethean """surgery""" +/obj/item/device/nif/attack(mob/living/M, mob/living/user, var/target_zone) + if(!ishuman(M) || !ishuman(user) || (M == user)) + return ..() + + var/mob/living/carbon/human/U = user + var/mob/living/carbon/human/T = M + + if(istype(T.species,/datum/species/shapeshifter/promethean) && target_zone == BP_HEAD) //Are prommy, aimed at head. + if(T.head || T.glasses) + to_chat(user,"Remove any headgear they have on first, as it might interfere.") + return + var/obj/item/organ/external/head = T.get_organ(BP_HEAD) + if(!T) + to_chat(user,"They should probably regrow their head first.") + return + U.visible_message("[U] begins installing [src] into [T]'s head by just stuffing it in.", + "You begin installing [src] into [T]'s head by just stuffing it in.", + "There's a wet SQUISH noise.") + if(do_mob(user = user, target = T, time = 200, target_zone = BP_HEAD)) + user.unEquip(src) + forceMove(head) + head.implants |= src + implant(T) + playsound(T,'sound/effects/slime_squish.ogg',50,1) + else + return ..()