/datum/element/spooky element_flags = ELEMENT_BESPOKE argument_hash_start_idx = 2 ///will it spawn a new instrument var/too_spooky = TRUE ///If, once someone is skeletonized, the element is detached var/single_use = FALSE ///The base multiplier of stamina damage applied by the item var/stam_damage_mult /datum/element/spooky/Attach(datum/target, too_spooky = TRUE, single_use = FALSE, stam_damage_mult = 1) . = ..() if(!isitem(target)) return ELEMENT_INCOMPATIBLE src.too_spooky = too_spooky src.single_use = single_use src.stam_damage_mult = stam_damage_mult RegisterSignal(target, COMSIG_ITEM_ATTACK, PROC_REF(spectral_attack)) /datum/element/spooky/Detach(datum/source) UnregisterSignal(source, COMSIG_ITEM_ATTACK) return ..() /datum/element/spooky/proc/spectral_attack(datum/source, mob/living/carbon/target, mob/user) SIGNAL_HANDLER if(ishuman(user) && !isskeleton(user)) //this weapon wasn't meant for mortals. var/mob/living/carbon/human/human_user = user if(rattle_bones(human_user, stam_dam_mult = stam_damage_mult * 2)) to_chat(human_user, span_userdanger("Your ears weren't meant for this spectral sound.")) INVOKE_ASYNC(src, PROC_REF(spectral_change), human_user, user, source) return to_chat(target, span_userdanger("DOOT