mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 10:43:20 +00:00
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:
@@ -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>"
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user