diff --git a/code/game/gamemodes/cult/ritual.dm b/code/game/gamemodes/cult/ritual.dm index ba12a7478aa..b78baf2816d 100644 --- a/code/game/gamemodes/cult/ritual.dm +++ b/code/game/gamemodes/cult/ritual.dm @@ -330,7 +330,8 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology", msg_admin_attack("[user.name] ([user.ckey]) used [name] on [M.name] ([M.ckey]) (JMP)") if(istype(M,/mob/dead)) - M.invisibility = 0 + 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!" \ diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index d00ae05e5b5..bc27623d894 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -552,3 +552,42 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp return 0 usr.visible_message("[src] points to [A]") return 1 + +/mob/dead/proc/manifest() + verbs += /mob/dead/proc/toggle_visibility + toggle_visibility() + +/mob/dead/proc/toggle_icon(var/icon) + if(!client) + return + + var/iconRemoved = 0 + for(var/image/I in client.images) + if(I.icon_state == icon) + iconRemoved = 1 + del(I) + + if(!iconRemoved) + var/image/J = image('icons/mob/mob.dmi', loc = src, icon_state = icon) + client.images += J + +/mob/dead/proc/toggle_visibility() + 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) + 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") + else + src << "