Expanded ghost following.

Ghosts can now follow the Eye of a speaking mob, if it has one, or the body of someone who has died.
Partial port of https://github.com/ParadiseSS13/Paradise/pull/1151.
This commit is contained in:
PsiOmega
2015-06-09 15:29:11 +02:00
parent 73146a62fe
commit 6f70049a12
3 changed files with 16 additions and 3 deletions

View File

@@ -681,3 +681,16 @@ mob/dead/observer/MayRespawn(var/feedback = 0)
src << "<span class='warning'>antagHUD restrictions prevent you from respawning.</span>"
return 0
return 1
/proc/ghost_follow_link(var/atom/target, var/atom/ghost)
if((!target) || (!ghost)) return
. = "<a href='byond://?src=\ref[ghost];track=\ref[target]'>follow</a>"
if(istype(target, /mob/dead/observer))
var/mob/dead/observer/O = target
if(O.mind && O.mind.current)
. += "|<a href='byond://?src=\ref[ghost];track=\ref[O.mind.current]'>body</a>"
else if(istype(target, /mob)) // Eye follow links
var/mob/M = target
if(M.client && M.eyeobj) // No point following clientless eyes
. += "|<a href='byond://?src=\ref[ghost];track=\ref[M.eyeobj]'>eye</a>"

View File

@@ -55,7 +55,7 @@
return
if(speaker_name != speaker.real_name && speaker.real_name)
speaker_name = "[speaker.real_name] ([speaker_name])"
track = "(<a href='byond://?src=\ref[src];track=\ref[speaker]'>follow</a>) "
track = "([ghost_follow_link(speaker, src)]) "
if(client.prefs.toggles & CHAT_GHOSTEARS && speaker in view(src))
message = "<b>[message]</b>"
@@ -180,7 +180,7 @@
if(istype(src, /mob/dead/observer))
if(speaker_name != speaker.real_name && !isAI(speaker)) //Announce computer and various stuff that broadcasts doesn't use it's real name but AI's can't pretend to be other mobs.
speaker_name = "[speaker.real_name] ([speaker_name])"
track = "[speaker_name] (<a href='byond://?src=\ref[src];track=\ref[speaker]'>follow</a>)"
track = "[speaker_name] ([ghost_follow_link(speaker, src)])"
var/formatted
if(language)

View File

@@ -555,7 +555,7 @@ proc/is_blind(A)
var/lname
if(subject)
if(subject != M)
follow = "(<a href='byond://?src=\ref[M];track=\ref[subject]'>follow</a>) "
follow = "([ghost_follow_link(subject, M)]) "
if(M.stat != DEAD && M.client.holder)
follow = "(<a href='?src=\ref[M.client.holder];adminplayerobservejump=\ref[subject]'>JMP</a>) "
var/mob/dead/observer/DM