From ecd110c502696f5ca6751f9a4c1d4da4475b82bb Mon Sep 17 00:00:00 2001 From: CHOMPStation2 <58959929+CHOMPStation2@users.noreply.github.com> Date: Tue, 24 Oct 2023 17:31:37 -0700 Subject: [PATCH] [MIRROR] Throw Notices (#7090) Co-authored-by: Selis Co-authored-by: CHOMPStation2 --- code/modules/client/preference_setup/global/01_ui.dm | 8 ++++++++ code/modules/client/preferences.dm | 1 + code/modules/client/preferences_toggle_procs.dm | 10 ++++++++++ code/modules/mob/mob.dm | 9 +++++++++ 4 files changed, 28 insertions(+) diff --git a/code/modules/client/preference_setup/global/01_ui.dm b/code/modules/client/preference_setup/global/01_ui.dm index f47aa9e14e..739fd1b10e 100644 --- a/code/modules/client/preference_setup/global/01_ui.dm +++ b/code/modules/client/preference_setup/global/01_ui.dm @@ -17,6 +17,7 @@ S["tgui_large_buttons"] >> pref.tgui_large_buttons S["tgui_swapped_buttons"] >> pref.tgui_swapped_buttons S["chat_timestamp"] >> pref.chat_timestamp + S["throwmode_loud"] >> pref.throwmode_loud /datum/category_item/player_setup_item/player_global/ui/save_preferences(var/savefile/S) S["UI_style"] << pref.UI_style @@ -33,6 +34,7 @@ S["tgui_large_buttons"] << pref.tgui_large_buttons S["tgui_swapped_buttons"] << pref.tgui_swapped_buttons S["chat_timestamp"] << pref.chat_timestamp + S["throwmode_loud"] << pref.throwmode_loud /datum/category_item/player_setup_item/player_global/ui/sanitize_preferences() pref.UI_style = sanitize_inlist(pref.UI_style, all_ui_styles, initial(pref.UI_style)) @@ -49,6 +51,7 @@ pref.tgui_large_buttons = sanitize_integer(pref.tgui_large_buttons, 0, 1, initial(pref.tgui_large_buttons)) pref.tgui_swapped_buttons = sanitize_integer(pref.tgui_swapped_buttons, 0, 1, initial(pref.tgui_swapped_buttons)) pref.chat_timestamp = sanitize_integer(pref.chat_timestamp, 0, 1, initial(pref.chat_timestamp)) + pref.throwmode_loud = sanitize_integer(pref.throwmode_loud, 0, 1, initial(pref.throwmode_loud)) /datum/category_item/player_setup_item/player_global/ui/content(var/mob/user) . = "UI Style: [pref.UI_style]
" @@ -65,6 +68,7 @@ . += "TGUI Large Buttons: [(pref.tgui_large_buttons) ? "Enabled (default)" : "Disabled"]
" . += "TGUI Swapped Buttons: [(pref.tgui_swapped_buttons) ? "Enabled" : "Disabled (default)"]
" . += "Chat Timestamps: [(pref.chat_timestamp) ? "Enabled" : "Disabled (default)"]
" + . += "Throw Mode Messages: [(pref.throwmode_loud) ? "Loud" : "Quiet (default)"]
" if(can_select_ooc_color(user)) . += "OOC Color:" if(pref.ooccolor == initial(pref.ooccolor)) @@ -150,6 +154,10 @@ pref.chat_timestamp = !pref.chat_timestamp return TOPIC_REFRESH + else if(href_list["throwmode_loudness"]) + pref.throwmode_loud = !pref.throwmode_loud + return TOPIC_REFRESH + else if(href_list["reset"]) switch(href_list["reset"]) if("ui") diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 687d6df6cf..3211404ad4 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -32,6 +32,7 @@ var/list/preferences_datums = list() var/tgui_large_buttons = TRUE var/tgui_swapped_buttons = FALSE var/chat_timestamp = FALSE + var/throwmode_loud = FALSE //character preferences var/real_name //our character's name diff --git a/code/modules/client/preferences_toggle_procs.dm b/code/modules/client/preferences_toggle_procs.dm index d74d3c178f..050ffa0b5d 100644 --- a/code/modules/client/preferences_toggle_procs.dm +++ b/code/modules/client/preferences_toggle_procs.dm @@ -389,6 +389,16 @@ to_chat(src, span_notice("You have toggled chat timestamps: [prefs.chat_timestamp ? "ON" : "OFF"].")) +/client/verb/toggle_throwmode_messages() + set name = "Toggle Throw Mode Messages" + set category = "Preferences" + set desc = "Toggles whether or not activating throw mode (hotkey: R) will announce you're preparing to throw your current handheld item, or catch an incoming item if your hand is empty." + + prefs.throwmode_loud = !prefs.throwmode_loud //There is no preference datum for tgui input lock, nor for any TGUI prefs. + SScharacter_setup.queue_preferences_save(prefs) + + to_chat(src, span_notice("You have toggled throw mode messages: [prefs.throwmode_loud ? "ON" : "OFF"].")) + /client/verb/toggle_status_indicators() set name = "Toggle Status Indicators" set category = "Preferences" diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index a3f3368db1..c3cca6f582 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -1155,11 +1155,20 @@ /mob/proc/throw_mode_off() src.in_throw_mode = 0 + if(client) + if(a_intent == I_HELP || client.prefs.throwmode_loud) + src.visible_message("[src] relaxes from their ready stance.","You relax from your ready stance.") if(src.throw_icon) //in case we don't have the HUD and we use the hotkey src.throw_icon.icon_state = "act_throw_off" /mob/proc/throw_mode_on() src.in_throw_mode = 1 + if(client) + if(a_intent == I_HELP || client.prefs.throwmode_loud) + if(src.get_active_hand()) + src.visible_message("[src] winds up to throw [get_active_hand()]!","You wind up to throw [get_active_hand()].") + else + src.visible_message("[src] looks ready to catch anything thrown at them!","You get ready to catch anything thrown at you.") if(src.throw_icon) src.throw_icon.icon_state = "act_throw_on"