diff --git a/code/datums/abilities/ghost_observer.dm b/code/datums/abilities/ghost_observer.dm index a9a73c148b31a..6d1418834e417 100644 --- a/code/datums/abilities/ghost_observer.dm +++ b/code/datums/abilities/ghost_observer.dm @@ -155,6 +155,7 @@ var/global/datum/spooktober_ghost_handler/spooktober_GH = new() src.addAbility(/datum/targetable/ghost_observer/observe) src.addAbility(/datum/targetable/ghost_observer/reenter_corpse) src.addAbility(/datum/targetable/ghost_observer/toggle_lighting) + src.addAbility(/datum/targetable/ghost_observer/toggle_ghosts) // src.addAbility(/datum/targetable/ghost_observer/afterlife_Bar) // src.addAbility(/datum/targetable/ghost_observer/respawn_animal) //moved to respawn_options menu src.addAbility(/datum/targetable/ghost_observer/respawn_options) @@ -181,6 +182,7 @@ var/global/datum/spooktober_ghost_handler/spooktober_GH = new() src.removeAbility(/datum/targetable/ghost_observer/observe) src.removeAbility(/datum/targetable/ghost_observer/reenter_corpse) src.removeAbility(/datum/targetable/ghost_observer/toggle_lighting) + src.removeAbility(/datum/targetable/ghost_observer/toggle_ghosts) // src.removeAbility(/datum/targetable/ghost_observer/afterlife_Bar) // src.removeAbility(/datum/targetable/ghost_observer/respawn_animal) src.removeAbility(/datum/targetable/ghost_observer/respawn_options) @@ -288,6 +290,22 @@ var/global/datum/spooktober_ghost_handler/spooktober_GH = new() else boutput(usr, "Oop! Something broke! Just type \"Toggle Lighting\" (without the quotation marks) into the bottom bar.") + +/datum/targetable/ghost_observer/toggle_ghosts + name = "Toggle Seeing Ghosts" + desc = "Toggle seeing other ghosts." + icon_state = "toggle-ghosts" + targeted = 0 + cooldown = 0 + + cast(atom/target) + if (holder && istype(holder.owner, /mob/dead/observer)) + var/mob/dead/observer/ghost = holder.owner + ghost.toggle_ghosts() + else + boutput(usr, "Oop! Something broke! Just type \"Toggle Ghosts\" (without the quotation marks) into the bottom bar.") + + /datum/targetable/ghost_observer/toggle_HUD name = "Hide HUD" desc = "Hide all HUD buttons." diff --git a/code/mob/dead/observer.dm b/code/mob/dead/observer.dm index 0b3bc43ebc36b..833195c882ecc 100644 --- a/code/mob/dead/observer.dm +++ b/code/mob/dead/observer.dm @@ -627,6 +627,23 @@ else boutput( usr, "Well, I want to, but you don't have any lights to fix!" ) + +/mob/dead/observer/verb/toggle_ghosts() + set name = "Toggle Ghosts" + set category = null + + if (src.see_invisible >= INVIS_GHOST) + src.see_invisible = INVIS_NONE + boutput(src, "You can no longer see other ghosts.", group="ghostsight") + else if(HAS_FLAG(src.sight, SEE_SELF)) + src.sight &= ~SEE_SELF + boutput(src, "You can no longer see yourself.", group="ghostsight") + else + src.see_invisible = INVIS_SPOOKY + src.sight |= SEE_SELF + boutput(src, "You can now see other ghosts and yourself.", group="ghostsight") + + /mob/dead/observer/verb/observe() set name = "Observe" set category = null diff --git a/icons/mob/ghost_observer_abilities.dmi b/icons/mob/ghost_observer_abilities.dmi index 4c05621a70038..6517a7980fcf8 100644 Binary files a/icons/mob/ghost_observer_abilities.dmi and b/icons/mob/ghost_observer_abilities.dmi differ diff --git a/strings/changelog.txt b/strings/changelog.txt index fc9827a55a125..f413a0823f71d 100644 --- a/strings/changelog.txt +++ b/strings/changelog.txt @@ -1,5 +1,7 @@ (t)sun jan 15 23 +(u)pali & Shiiba +(*)Ghosts now have a button to toggle seeing other ghosts and even themselves. (u)FlameArrow57 (p)11684 (e)⚖🧛|C-Balance, A-Gamemodes