This commit is contained in:
silicons
2020-07-13 05:55:43 -07:00
parent 1ce29f3bb5
commit bc44f48d25
7 changed files with 49 additions and 9 deletions

View File

@@ -436,13 +436,15 @@ Turf and target are seperate in case you want to teleport some distance from a t
return new_list
//Returns a list of all mobs with their name
/proc/getmobs()
/proc/getmobs(ghostfollow = FALSE)
var/list/mobs = sortmobs()
var/list/names = list()
var/list/creatures = list()
var/list/namecounts = list()
for(var/mob/M in mobs)
if(isobserver(M) && ghostfollow && M.client?.holder?.fakekey && M.is_preference_enabled(/datum/client_preference/holder/stealth_ghost_mode))
continue
var/name = M.name
if (name in names)
namecounts[name]++
@@ -461,6 +463,9 @@ Turf and target are seperate in case you want to teleport some distance from a t
return creatures
/proc/getmobs_ghost_follow()
return getmobs(TRUE)
//Orders mobs by type then by name
/proc/sortmobs()
var/list/moblist = list()

View File

@@ -1548,3 +1548,18 @@ datum/admins/var/obj/item/paper/admin/faxreply // var to hold fax replies in
qdel(P)
faxreply = null
return
/datum/admins/proc/update_stealth_ghost()
if(!isobserver(owner.mob))
return
var/mob/observer/dead = owner.mob
var/stealthghost = owner.is_preference_enabled(/datum/client_preference/holder/stealth_ghost_mode)
if(!stealthghost)
dead.invisibility = initial(dead.invisibility)
dead.alpha = initial(dead.alpha)
dead.name = dead.original_name
else
dead.invisbility = invisibility_maximum
dead.alpha = 0
dead.original_name = dead.name
dead.name = "ghost"

View File

@@ -482,7 +482,8 @@ var/list/admin_verbs_event_manager = list(
/client/proc/admin_ghost()
set category = "Admin"
set name = "Aghost"
if(!holder) return
if(!holder)
return
if(istype(mob,/mob/observer/dead))
//re-enter
var/mob/observer/dead/ghost = mob

View File

@@ -234,8 +234,8 @@ var/list/_client_preferences_by_type
description = "Anonymous Ghost Chat"
key = "ANON_GHOST_CHAT"
enabled_by_default = FALSE
enabled_description = "On"
disabled_description = "Off"
enabled_description = "Hide ckey"
disabled_description = "Show ckey"
/datum/client_preference/show_in_advanced_who
description = "Show my status in advanced who"
@@ -244,6 +244,13 @@ var/list/_client_preferences_by_type
enabled_description = "Visible"
disabled_description = "Hidden"
/datum/client_preference/announce_ghost_joinleave
description = "Announce joining/leaving as a ghost/observer"
key = "ANNOUNCE_GHOST_JOINLEAVE"
enabled_by_default = TRUE
enabled_description = "Announce"
disabled_description = "Silent"
/********************
* Staff Preferences *
********************/
@@ -303,3 +310,10 @@ var/list/_client_preferences_by_type
enabled_by_default = FALSE
enabled_description = "On"
disabled_description = "Off"
/datum/client_preference/holder/stealth_ghost_mode
description = "Stealthmin Ghost Mode"
key = "STEALTH_GHOST_MODE"
enabled_by_default = FALSE
enabled_description = "Obfuscate Ghost"
disabled_description = "Normal Ghost"

View File

@@ -86,6 +86,9 @@
"Beepsky" = "secbot"
)
var/last_revive_notification = null // world.time of last notification, used to avoid spamming players from defibs or cloners.
/// stealthmin vars
var/original_name
/mob/observer/dead/New(mob/body)
sight |= SEE_TURFS | SEE_MOBS | SEE_OBJS | SEE_SELF
see_invisible = SEE_INVISIBLE_OBSERVER
@@ -309,12 +312,12 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
usr.forceMove(pick(get_area_turfs(A)))
/mob/observer/dead/verb/follow(input in getmobs())
/mob/observer/dead/verb/follow(input in getmobs_ghost_follow())
set category = "Ghost"
set name = "Follow" // "Haunt"
set desc = "Follow and haunt a mob."
var/target = getmobs()[input]
var/target = getmobs_ghost_follow()[input]
if(!target)
return
ManualFollow(target)
@@ -326,13 +329,13 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
orbit(target, actually_orbit = FALSE)
/mob/observer/dead/verb/jumptomob(input in getmobs()) //Moves the ghost instead of just changing the ghosts's eye -Nodrak
/mob/observer/dead/verb/jumptomob(input in getmobs_ghost_follow()) //Moves the ghost instead of just changing the ghosts's eye -Nodrak
set category = "Ghost"
set name = "Jump to Mob"
set desc = "Teleport to a mob"
set popup_menu = FALSE //VOREStation Edit - Declutter.
if(istype(usr, /mob/observer/dead)) //Make sure they're an observer!
var/target = getmobs()[input]
var/target = getmobs_ghost_follow()[input]
if (!target)//Make sure we actually have a target
return
else

View File

@@ -453,7 +453,7 @@ proc/is_blind(A)
C = M.original.client
if(C)
if(!isnull(C.holder?.fakekey))
if(!isnull(C.holder?.fakekey) || !C.is_preference_enabled(/datum/client_preference/announce_ghost_joinleave))
return
var/name
if(C.mob)

View File

@@ -0,0 +1,2 @@
Badmin
<span class='adminooc'>Spanmin</span>