diff --git a/code/datums/components/effect_remover.dm b/code/datums/components/effect_remover.dm index dd5544297fb..8a117961fd2 100644 --- a/code/datums/components/effect_remover.dm +++ b/code/datums/components/effect_remover.dm @@ -14,6 +14,8 @@ var/datum/callback/on_clear_callback /// A typecache of all effects we can clear with our item. var/list/obj/effect/effects_we_clear + /// If above 0, how long it takes while standing still to remove the effect. + var/time_to_remove = 0 SECONDS /datum/component/effect_remover/Initialize( success_forcesay, @@ -21,6 +23,7 @@ tip_text, on_clear_callback, effects_we_clear, + time_to_remove, ) . = ..() @@ -36,6 +39,7 @@ src.tip_text = tip_text src.on_clear_callback = on_clear_callback src.effects_we_clear = typecacheof(effects_we_clear) + src.time_to_remove = time_to_remove /datum/component/effect_remover/Destroy(force, silent) QDEL_NULL(on_clear_callback) @@ -69,6 +73,9 @@ * Actually removes the effect, invoking our on_clear_callback before it's deleted. */ /datum/component/effect_remover/proc/do_remove_effect(obj/effect/target, mob/living/user) + if(time_to_remove && !do_after(user, time_to_remove, target)) + return + var/obj/item/item_parent = parent if(success_forcesay) user.say(success_forcesay, forced = item_parent.name) diff --git a/code/modules/antagonists/heretic/magic/mansus_grasp.dm b/code/modules/antagonists/heretic/magic/mansus_grasp.dm index 0ddeb4c41b7..584bb05d62a 100644 --- a/code/modules/antagonists/heretic/magic/mansus_grasp.dm +++ b/code/modules/antagonists/heretic/magic/mansus_grasp.dm @@ -69,7 +69,8 @@ success_feedback = "You remove %THEEFFECT.", \ tip_text = "Clear rune", \ on_clear_callback = CALLBACK(src, PROC_REF(after_clear_rune)), \ - effects_we_clear = list(/obj/effect/heretic_rune)) + effects_we_clear = list(/obj/effect/heretic_rune), \ + time_to_remove = 0.4 SECONDS) /* * Callback for effect_remover component. diff --git a/icons/effects/96x96.dmi b/icons/effects/96x96.dmi index 50b05b27a6d..68ac6699c23 100644 Binary files a/icons/effects/96x96.dmi and b/icons/effects/96x96.dmi differ