diff --git a/code/game/gamemodes/cult/ritual.dm b/code/game/gamemodes/cult/ritual.dm
index b78baf2816d..a3829207fe5 100644
--- a/code/game/gamemodes/cult/ritual.dm
+++ b/code/game/gamemodes/cult/ritual.dm
@@ -331,11 +331,7 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology",
if(istype(M,/mob/dead))
var/mob/dead/D = M
- D.manifest()
- user.visible_message( \
- "\red [user] drags the ghost to our plan of reality!", \
- "\red You drag the ghost to our plan of reality!" \
- )
+ D.manifest(user)
return
if(!istype(M))
return
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index 6b3647ef932..54f5583df27 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -83,18 +83,7 @@
/mob/dead/attackby(obj/item/W, mob/user)
if(istype(W,/obj/item/weapon/book/tome))
var/mob/dead/M = src
- if(src.invisibility != 0)
- M.invisibility = 0
- user.visible_message( \
- "\red [user] drags ghost, [M], to our plan of reality!", \
- "\red You drag [M] to our plan of reality!" \
- )
- else
- user.visible_message ( \
- "\red [user] just tried to smash his book into that ghost! It's not very effective", \
- "\red You get the feeling that the ghost can't become any more visible." \
- )
-
+ M.manifest(user)
/mob/dead/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
return 1
@@ -556,9 +545,23 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
usr.visible_message("[src] points to [A]")
return 1
-/mob/dead/proc/manifest()
- verbs += /mob/dead/proc/toggle_visibility
- toggle_visibility()
+/mob/dead/proc/manifest(mob/user)
+ var/is_manifest = 0
+ if(!is_manifest)
+ is_manifest = 1
+ verbs += /mob/dead/proc/toggle_visibility
+
+ if(src.invisibility != 0)
+ user.visible_message( \
+ "[user] drags ghost, [src], to our plan of reality!", \
+ "You drag [src] to our plan of reality!" \
+ )
+ toggle_visibility(1)
+ else
+ user.visible_message ( \
+ "[user] just tried to smash his book into that ghost! It's not very effective.", \
+ "You get the feeling that the ghost can't become any more visible." \
+ )
/mob/dead/proc/toggle_icon(var/icon)
if(!client)
@@ -574,22 +577,21 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
var/image/J = image('icons/mob/mob.dmi', loc = src, icon_state = icon)
client.images += J
-/mob/dead/proc/toggle_visibility()
+/mob/dead/proc/toggle_visibility(var/forced = 0)
set category = "Ghost"
set name = "Toggle Visibility"
set desc = "Allows you to turn (in)visible (almost) at will."
var/toggled_invisible
-
- if(invisibility && world.time < toggled_invisible + 600)
+ if(!forced && invisibility && world.time < toggled_invisible + 600)
src << "You must gather strength before you can turn visible again..."
return
if(invisibility == 0)
toggled_invisible = world.time
- visible_message("It fades from sight...", "You are now invisible")
+ visible_message("It fades from sight...", "You are now invisible.")
else
- src << "You are now visible"
+ src << "You are now visible!"
invisibility = invisibility == INVISIBILITY_OBSERVER ? 0 : INVISIBILITY_OBSERVER
// Give the ghost a cult icon which should be visible only to itself