From 40c4476ec12e036b54ed923ca0ef6c8ab3812a66 Mon Sep 17 00:00:00 2001 From: SabreML <57483089+SabreML@users.noreply.github.com> Date: Tue, 24 Nov 2020 20:12:24 +0000 Subject: [PATCH] Adds a notification in dchat when a player dies (#14946) * Death Note * Adds a preference * Probably should've done this * Changed the list and shuffled some stuff around --- code/__DEFINES/preferences.dm | 5 +++-- code/modules/client/preference/preferences_toggles.dm | 10 +++++++++- code/modules/mob/living/death.dm | 8 ++++++++ 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/code/__DEFINES/preferences.dm b/code/__DEFINES/preferences.dm index ee16b4d59f4..696d6fdf105 100644 --- a/code/__DEFINES/preferences.dm +++ b/code/__DEFINES/preferences.dm @@ -49,10 +49,11 @@ #define PREFTOGGLE_2_ANONDCHAT 16 #define PREFTOGGLE_2_AFKWATCH 32 #define PREFTOGGLE_2_RUNECHAT 64 +#define PREFTOGGLE_2_DEATHMESSAGE 128 -#define TOGGLES_2_TOTAL 127 // If you add or remove a preference toggle above, make sure you update this define with the total value of the toggles combined. +#define TOGGLES_2_TOTAL 255 // If you add or remove a preference toggle above, make sure you update this define with the total value of the toggles combined. -#define TOGGLES_2_DEFAULT (PREFTOGGLE_2_FANCYUI|PREFTOGGLE_2_ITEMATTACK|PREFTOGGLE_2_WINDOWFLASHING|PREFTOGGLE_2_RUNECHAT) +#define TOGGLES_2_DEFAULT (PREFTOGGLE_2_FANCYUI|PREFTOGGLE_2_ITEMATTACK|PREFTOGGLE_2_WINDOWFLASHING|PREFTOGGLE_2_RUNECHAT|PREFTOGGLE_2_DEATHMESSAGE) // Sanity checks #if TOGGLES_TOTAL > 16777215 diff --git a/code/modules/client/preference/preferences_toggles.dm b/code/modules/client/preference/preferences_toggles.dm index c4a01518922..4a6fe48753d 100644 --- a/code/modules/client/preference/preferences_toggles.dm +++ b/code/modules/client/preference/preferences_toggles.dm @@ -293,7 +293,7 @@ /client/verb/toggle_ghost_pda() set name = "Show/Hide GhostPDA" set category = "Preferences" - set desc = ".Toggle seeing PDA messages as an observer." + set desc = "Toggle seeing PDA messages as an observer." prefs.toggles ^= PREFTOGGLE_CHAT_GHOSTPDA to_chat(src, "As a ghost, you will now [(prefs.toggles & PREFTOGGLE_CHAT_GHOSTPDA) ? "see all PDA messages" : "no longer see PDA messages"].") prefs.save_preferences(src) @@ -314,3 +314,11 @@ prefs.toggles2 ^= PREFTOGGLE_2_RUNECHAT prefs.save_preferences(src) to_chat(src, "You will [(prefs.toggles2 & PREFTOGGLE_2_RUNECHAT) ? "now see" : "no longer see"] floating chat messages.") + +/client/verb/toggle_death_messages() + set name = "Show/Hide Death Notifications" + set category = "Preferences" + set desc = "Toggle player death notifications" + prefs.toggles2 ^= PREFTOGGLE_2_DEATHMESSAGE + prefs.save_preferences(src) + to_chat(src, "You will [(prefs.toggles2 & PREFTOGGLE_2_DEATHMESSAGE) ? "now" : "no longer"] see a notification in deadchat when a player dies.") diff --git a/code/modules/mob/living/death.dm b/code/modules/mob/living/death.dm index 5bdc34cc728..0d831fe5760 100644 --- a/code/modules/mob/living/death.dm +++ b/code/modules/mob/living/death.dm @@ -94,6 +94,14 @@ mind.store_memory("Time of death: [station_time_timestamp("hh:mm:ss", timeofdeath)]", 0) GLOB.respawnable_list += src + if(mind.name && !isbrain(src)) // !isbrain() is to stop it from being called twice + var/turf/T = get_turf(src) + var/area_name = get_area_name(T) + for(var/P in GLOB.dead_mob_list) + var/mob/M = P + if((M.client?.prefs.toggles2 & PREFTOGGLE_2_DEATHMESSAGE) && (isobserver(M) || M.stat == DEAD)) + to_chat(M, "[mind.name] has died at [area_name]. (JMP)") + if(SSticker && SSticker.mode) SSticker.mode.check_win() if(mind && mind.devilinfo) // Expand this into a general-purpose death-response system when appropriate