diff --git a/code/__HELPERS/traits.dm b/code/__HELPERS/traits.dm index ae15819a2f2..443608f1663 100644 --- a/code/__HELPERS/traits.dm +++ b/code/__HELPERS/traits.dm @@ -267,4 +267,6 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_CANNOT_PULL "pullblocked" /// Abstract condition that prevents movement if being pulled and might be resisted against. Handcuffs and straight jackets, basically. #define TRAIT_RESTRAINED "restrained" +/// Means the user is actively jaunting +#define TRAIT_JAUNTING "jaunting" diff --git a/code/datums/spells/ethereal_jaunt.dm b/code/datums/spells/ethereal_jaunt.dm index 01797ab5bf3..b910cc8abf8 100644 --- a/code/datums/spells/ethereal_jaunt.dm +++ b/code/datums/spells/ethereal_jaunt.dm @@ -32,6 +32,7 @@ INVOKE_ASYNC(src, PROC_REF(do_jaunt), target) /obj/effect/proc_holder/spell/ethereal_jaunt/proc/do_jaunt(mob/living/target) + ADD_TRAIT(target, TRAIT_JAUNTING, "jaunt") target.notransform = TRUE var/turf/mobloc = get_turf(target) var/obj/effect/dummy/spell_jaunt/holder = new jaunt_type_path(mobloc) @@ -59,6 +60,7 @@ target.setDir(holder.dir) sleep(jaunt_in_time) qdel(holder) + REMOVE_TRAIT(target, TRAIT_JAUNTING, "jaunt") if(!QDELETED(target)) if(is_blocked_turf(mobloc, TRUE)) for(var/turf/T in orange(7)) diff --git a/code/datums/spells/rod_form.dm b/code/datums/spells/rod_form.dm index 48c863f19e0..dce1c52c210 100644 --- a/code/datums/spells/rod_form.dm +++ b/code/datums/spells/rod_form.dm @@ -17,6 +17,8 @@ return new /datum/spell_targeting/self /obj/effect/proc_holder/spell/rod_form/cast(list/targets,mob/user = usr) + if(HAS_TRAIT(usr, TRAIT_JAUNTING)) + return for(var/mob/living/M in targets) var/turf/start = get_turf(M) var/obj/effect/immovablerod/wizard/W = new(start, get_ranged_target_turf(M, M.dir, (15 + spell_level * 3)), rod_delay)