From 8c7cbeb093657ae05c285a65cd6a41566f36f73b Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Fri, 12 Jun 2015 14:55:38 +0200 Subject: [PATCH 1/4] Ghosts can now follow hivemind speech. Ghosts can now follow hivemind speech with the same targets as for normal speech (separate links for mob and eye if any, etc.). --- code/modules/mob/language/language.dm | 17 +++++++++++++---- code/modules/mob/language/synthetic.dm | 2 +- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/code/modules/mob/language/language.dm b/code/modules/mob/language/language.dm index bf5b51a1b1..5322a7ed50 100644 --- a/code/modules/mob/language/language.dm +++ b/code/modules/mob/language/language.dm @@ -101,11 +101,20 @@ log_say("[key_name(speaker)] : ([name]) [message]") if(!speaker_mask) speaker_mask = speaker.name - var/msg = "[name], [speaker_mask] [format_message(message, get_spoken_verb(message))]" - for(var/mob/player in player_list) - if(istype(player,/mob/dead) || ((src in player.languages) && check_special_condition(player))) - player << msg + player.hear_broadcast(src, speaker, speaker_mask, format_message(message, get_spoken_verb(message))) + +/mob/proc/hear_broadcast(var/datum/language/language, var/speaker, var/message) + if((language in languages) && language.check_special_condition(src)) + var/msg = "[language.name], [speaker] [message]" + src << msg + +/mob/new_player/hear_broadcast() + return + +/mob/dead/hear_broadcast(var/datum/language/language, var/speaker, var/speaker_name, var/message) + var/msg = "[language.name], [speaker_name] ([ghost_follow_link(speaker, src)]) [message]" + src << msg /datum/language/proc/check_special_condition(var/mob/other) return 1 diff --git a/code/modules/mob/language/synthetic.dm b/code/modules/mob/language/synthetic.dm index 3355a1e5c8..501a8a61f0 100644 --- a/code/modules/mob/language/synthetic.dm +++ b/code/modules/mob/language/synthetic.dm @@ -22,7 +22,7 @@ for (var/mob/M in dead_mob_list) if(!istype(M,/mob/new_player) && !istype(M,/mob/living/carbon/brain)) //No meta-evesdropping - M.show_message("[message_start] [message_body]", 2) + M.show_message("[message_start] ([ghost_follow_link(speaker, M)]) [message_body]", 2) for (var/mob/living/S in living_mob_list) From 279277bca9cbfebb3f879bea4bd3b2a6ec5613cc Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Fri, 12 Jun 2015 15:01:01 +0200 Subject: [PATCH 2/4] Changelog entry. --- html/changelogs/PsiOmegaDelta-HiveTracking.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/PsiOmegaDelta-HiveTracking.yml diff --git a/html/changelogs/PsiOmegaDelta-HiveTracking.yml b/html/changelogs/PsiOmegaDelta-HiveTracking.yml new file mode 100644 index 0000000000..9accb225c9 --- /dev/null +++ b/html/changelogs/PsiOmegaDelta-HiveTracking.yml @@ -0,0 +1,6 @@ +author: PsiOmegaDelta +delete-after: True +changes: + - rscadd: "Observers can now follow both the AI and its eye upon speech." + - rscadd: "Observers can now follow both observers and their body, if they ever had one, upon speech." + - rscadd: "Observers can now follow hivemind speakers." From 57f0a3535c012df92283eefa89163b5706bce14a Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Fri, 12 Jun 2015 17:19:29 +0200 Subject: [PATCH 3/4] Observers can now only follow hivespeech as long as the speaker uses its real identity or antagHUD is enabled. --- code/modules/mob/language/language.dm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/code/modules/mob/language/language.dm b/code/modules/mob/language/language.dm index 5322a7ed50..a69e08df58 100644 --- a/code/modules/mob/language/language.dm +++ b/code/modules/mob/language/language.dm @@ -17,7 +17,7 @@ var/flags = 0 // Various language flags. var/native // If set, non-native speakers will have trouble speaking. var/list/syllables // Used when scrambling text for a non-speaker. - var/list/space_chance = 55 // Likelihood of getting a space in the random scramble string. + var/list/space_chance = 55 // Likelihood of getting a space in the random scramble string /datum/language/proc/get_random_name(var/gender, name_count=2, syllable_count=4) if(!syllables || !syllables.len) @@ -112,9 +112,11 @@ /mob/new_player/hear_broadcast() return -/mob/dead/hear_broadcast(var/datum/language/language, var/speaker, var/speaker_name, var/message) - var/msg = "[language.name], [speaker_name] ([ghost_follow_link(speaker, src)]) [message]" - src << msg +/mob/dead/observer/hear_broadcast(var/datum/language/language, var/mob/speaker, var/speaker_name, var/message) + if(speaker.name == speaker_name || antagHUD) + src << "[language.name], [speaker_name] ([ghost_follow_link(speaker, src)]) [message]" + else + src << "[language.name], [speaker_name] [message]" /datum/language/proc/check_special_condition(var/mob/other) return 1 From 1256135a26a8a8e8a0ab71f322d0ab09fbdad056 Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Fri, 12 Jun 2015 17:20:35 +0200 Subject: [PATCH 4/4] Changelog update. --- html/changelogs/PsiOmegaDelta-HiveTracking.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html/changelogs/PsiOmegaDelta-HiveTracking.yml b/html/changelogs/PsiOmegaDelta-HiveTracking.yml index 9accb225c9..c42ffec9c3 100644 --- a/html/changelogs/PsiOmegaDelta-HiveTracking.yml +++ b/html/changelogs/PsiOmegaDelta-HiveTracking.yml @@ -3,4 +3,4 @@ delete-after: True changes: - rscadd: "Observers can now follow both the AI and its eye upon speech." - rscadd: "Observers can now follow both observers and their body, if they ever had one, upon speech." - - rscadd: "Observers can now follow hivemind speakers." + - rscadd: "Observers can now follow hivemind speakers if the speaker is not using an alias or antagHUD is enabled."