diff --git a/code/_globalvars/lists/objects.dm b/code/_globalvars/lists/objects.dm
index ad295167cf..14c752613b 100644
--- a/code/_globalvars/lists/objects.dm
+++ b/code/_globalvars/lists/objects.dm
@@ -38,4 +38,4 @@ GLOBAL_LIST_EMPTY(wire_name_directory)
GLOBAL_LIST_EMPTY(ai_status_displays)
GLOBAL_LIST_EMPTY(mob_spawners) // All mob_spawn objects
-GLOBAL_LIST_EMPTY(alert_consoles) // Station alert consoles, /obj/machinery/computer/station_alert
\ No newline at end of file
+GLOBAL_LIST_EMPTY(alert_consoles) // Station alert consoles, /obj/machinery/computer/station_alert
diff --git a/code/game/alternate_appearance.dm b/code/game/alternate_appearance.dm
index 712b3425e0..1a62a0fd5f 100644
--- a/code/game/alternate_appearance.dm
+++ b/code/game/alternate_appearance.dm
@@ -124,3 +124,20 @@ GLOBAL_LIST_EMPTY(active_alternate_appearances)
/datum/atom_hud/alternate_appearance/basic/observers/mobShouldSee(mob/M)
return isobserver(M)
+
+/datum/atom_hud/alternate_appearance/basic/blessedAware
+
+/datum/atom_hud/alternate_appearance/basic/blessedAware/New()
+ ..()
+ for(var/mob in GLOB.mob_list)
+ if(mobShouldSee(mob))
+ add_hud_to(mob)
+
+/datum/atom_hud/alternate_appearance/basic/blessedAware/mobShouldSee(mob/M)
+ if(M.mind && (M.mind.assigned_role == "Chaplain"))
+ return TRUE
+ if (istype(M, /mob/living/simple_animal/hostile/construct/wraith))
+ return TRUE
+ if(isrevenant(M) || iseminence(M) || iswizard(M))
+ return TRUE
+ return FALSE
\ No newline at end of file
diff --git a/code/game/gamemodes/clock_cult/clock_mobs/_eminence.dm b/code/game/gamemodes/clock_cult/clock_mobs/_eminence.dm
index b53caee281..b3ac43a6c7 100644
--- a/code/game/gamemodes/clock_cult/clock_mobs/_eminence.dm
+++ b/code/game/gamemodes/clock_cult/clock_mobs/_eminence.dm
@@ -26,7 +26,7 @@
var/OldLoc = loc
if(NewLoc && !istype(NewLoc, /turf/open/indestructible/reebe_void))
var/turf/T = get_turf(NewLoc)
- if(T.flags_1 & NOJAUNT_1)
+ for(var/obj/effect/blessing/B in T)
if(last_failed_turf != T)
T.visible_message("[T] suddenly emits a ringing sound!", ignore_mob = src)
playsound(T, 'sound/machines/clockcult/ark_damage.ogg', 75, FALSE)
diff --git a/code/game/gamemodes/miniantags/revenant/revenant.dm b/code/game/gamemodes/miniantags/revenant/revenant.dm
index 0719072077..94775887f9 100644
--- a/code/game/gamemodes/miniantags/revenant/revenant.dm
+++ b/code/game/gamemodes/miniantags/revenant/revenant.dm
@@ -224,7 +224,6 @@
invisibility = INVISIBILITY_ABSTRACT
revealed = FALSE
ghostize(0)//Don't re-enter invisible corpse
- return
//reveal, stun, icon updates, cast checks, and essence changing
diff --git a/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm b/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm
index c401dfea52..5530db7881 100644
--- a/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm
+++ b/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm
@@ -238,9 +238,10 @@
INVOKE_ASYNC(src, .proc/defile, T)
/obj/effect/proc_holder/spell/aoe_turf/revenant/defile/proc/defile(turf/T)
- if(T.flags_1 & NOJAUNT_1)
- T.flags_1 &= ~NOJAUNT_1
+ for(var/obj/effect/blessing/B in T)
+ qdel(B)
new /obj/effect/temp_visual/revenant(T)
+
if(!isplatingturf(T) && !istype(T, /turf/open/floor/engine/cult) && isfloorturf(T) && prob(15))
var/turf/open/floor/floor = T
if(floor.intact && floor.floor_tile)
diff --git a/code/game/objects/effects/blessing.dm b/code/game/objects/effects/blessing.dm
new file mode 100644
index 0000000000..06ba2bb47c
--- /dev/null
+++ b/code/game/objects/effects/blessing.dm
@@ -0,0 +1,18 @@
+/obj/effect/blessing
+ name = "holy blessing"
+ desc = "Holy energies interfere with ethereal travel at this location."
+ icon = 'icons/effects/effects.dmi'
+ icon_state = null
+ anchored = TRUE
+ density = FALSE
+ mouse_opacity = MOUSE_OPACITY_TRANSPARENT
+
+/obj/effect/blessing/Initialize(mapload)
+ . = ..()
+ for(var/obj/effect/blessing/B in loc)
+ if(B != src)
+ return INITIALIZE_HINT_QDEL
+ var/image/I = image(icon = 'icons/effects/effects.dmi', icon_state = "blessed", layer = ABOVE_OPEN_TURF_LAYER, loc = src)
+ I.alpha = 64
+ I.appearance_flags = RESET_ALPHA
+ add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/blessedAware, "blessing", I)
diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm
index 472df91354..c9d3e18743 100755
--- a/code/game/turfs/turf.dm
+++ b/code/game/turfs/turf.dm
@@ -264,7 +264,7 @@
M.take_damage(damage*2, BRUTE, "melee", 1)
/turf/proc/Bless()
- flags_1 |= NOJAUNT_1
+ new /obj/effect/blessing(src)
/turf/storage_contents_dump_act(obj/item/storage/src_object, mob/user)
if(src_object.contents.len)
diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm
index 4a7278289c..0b770888ec 100644
--- a/code/modules/mob/mob_movement.dm
+++ b/code/modules/mob/mob_movement.dm
@@ -212,9 +212,13 @@
R.stun(20)
return
if(stepTurf.flags_1 & NOJAUNT_1)
- to_chat(L, "Holy energies block your path.")
- else
- L.loc = get_step(L, direct)
+ to_chat(L, "Some strange aura is blocking the way.")
+ return
+ if (locate(/obj/effect/blessing, stepTurf))
+ to_chat(L, "Holy energies block your path!")
+ return
+
+ L.loc = get_step(L, direct)
L.setDir(direct)
return TRUE
diff --git a/code/modules/spells/spell_types/ethereal_jaunt.dm b/code/modules/spells/spell_types/ethereal_jaunt.dm
index 79d53d5f49..e438966f45 100644
--- a/code/modules/spells/spell_types/ethereal_jaunt.dm
+++ b/code/modules/spells/spell_types/ethereal_jaunt.dm
@@ -85,12 +85,18 @@
return
var/turf/newLoc = get_step(src,direction)
setDir(direction)
- if(!(newLoc.flags_1 & NOJAUNT_1))
- forceMove(newLoc)
- else
- to_chat(user, "Some strange aura is blocking the way!")
+
movedelay = world.time + movespeed
+ if(newLoc.flags_1 & NOJAUNT_1)
+ to_chat(user, "Some strange aura is blocking the way.")
+ return
+ if (locate(/obj/effect/blessing, newLoc))
+ to_chat(user, "Holy energies block your path!")
+ return
+
+ forceMove(newLoc)
+
/obj/effect/dummy/spell_jaunt/ex_act(blah)
return
/obj/effect/dummy/spell_jaunt/bullet_act(blah)
diff --git a/icons/effects/effects.dmi b/icons/effects/effects.dmi
index 3451915c09..c05ac6d022 100644
Binary files a/icons/effects/effects.dmi and b/icons/effects/effects.dmi differ
diff --git a/tgstation.dme b/tgstation.dme
index e644d1792d..7ca53cfc2c 100755
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -820,6 +820,7 @@
#include "code\game\objects\structures.dm"
#include "code\game\objects\effects\alien_acid.dm"
#include "code\game\objects\effects\anomalies.dm"
+#include "code\game\objects\effects\blessing.dm"
#include "code\game\objects\effects\bump_teleporter.dm"
#include "code\game\objects\effects\contraband.dm"
#include "code\game\objects\effects\countdown.dm"