mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-30 07:27:57 +01:00
Browser/TGUI Stat Panels (#24065)
* initial commit (broken)
* load the html
* fix this
* Fix various issues with browser statpanel
* Fix Alt Clicking opening up a window and Add back some object verbs to the browser stat panel
* Optimize stat panel and fix guardian verbs
* Restyles Stat Panel, Adds Subpanel Sub-Categories
* Use better layout for verbs in stat panel
* Updates statpanel verb widths to be more dynamic at higher screen resolutions.
* Adjust stat panel grid item widths and breakpoints
* refactors statpanel to use tgui API
* CI moment
* more CI
* this stupid thing
* Apply suggestions from code review
Co-authored-by: GDN <96800819+GDNgit@users.noreply.github.com>
Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
* Update code/modules/client/client_procs.dm
* ci fix
* emergency mc debug view
* temp revert some code change suggestions due to massive runtiming
* proper atom click topic implementation
* optimise
* mob clicking in stat panels work
* yeet spell tab thingy
* yeet simple stat panel pref
* allow insertion of html into MC tab content
* tidy up status tab
* Apply suggestions from code review
* fix this
* fix CI
* oops
* fix index runtime
* fixes MC tab showing up for mentors, fixes runtime
* safeties!
* Return of theme support
* more fixes
* fix view range pref, tidy prefs tab
* Remove old stat panel from themes
* fixes
* make sure verbs don't go missing
* fix ooc/looc breaking
* Revert "make sure verbs don't go missing"
This reverts commit 7d07ad45ed.
* fix this properly
* fix stat panel hitting rate limiters
* fix borg status tab
* Object Window Niceties
* Adds file cycling for icon2base64
* optimizes icon2html() for icon files known to be in the rsc at compile time
* CI moment
* remove dupe emergency shuttle timers
* more robust verb updates
* statpanel tweaks
* zip archived changelog to avoid search results
* optimise
* fix mentor chat wonkyness when disabled
* debug log moment
* i am very smart
* reintroduce this because it was needed
* better time listings
* less jank
* stops telling admins they arent mentors
* returns MC tab pref for admins
* Update code/controllers/subsystem/SSstatpanel.dm
Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
* lewcc
* OD typemaker prep
---------
Co-authored-by: GDN <96800819+GDNgit@users.noreply.github.com>
Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
Co-authored-by: Aylong <alexanderkitsa@gmail.com>
Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
This commit is contained in:
co-authored by
GDN
Burzah
Luc
Aylong
parent
19a3f768c8
commit
91660824fa
@@ -6,6 +6,8 @@
|
||||
////////////////
|
||||
//ADMIN THINGS//
|
||||
////////////////
|
||||
/// hides the byond verb panel as we use our own custom version
|
||||
show_verb_panel = FALSE
|
||||
var/datum/admins/holder = null
|
||||
|
||||
var/last_message = "" //contains the last message sent by this client - used to protect against copy-paste spamming.
|
||||
@@ -80,6 +82,15 @@
|
||||
/// Messages currently seen by this client
|
||||
var/list/seen_messages
|
||||
|
||||
/// list of tabs containing spells and abilities
|
||||
var/list/spell_tabs = list()
|
||||
|
||||
/// our current tab
|
||||
var/stat_tab
|
||||
|
||||
/// list of all tabs
|
||||
var/list/panel_tabs = list()
|
||||
|
||||
// Last world.time that the player tried to request their resources.
|
||||
var/last_ui_resource_send = 0
|
||||
|
||||
@@ -135,6 +146,9 @@
|
||||
/// Assigned say modal of the client
|
||||
var/datum/tgui_say/tgui_say
|
||||
|
||||
/// Our object window datum. It stores info about and handles behavior for the object tab
|
||||
var/datum/object_window_info/obj_window
|
||||
|
||||
/client/vv_edit_var(var_name, var_value)
|
||||
switch(var_name)
|
||||
// I know we will never be in a world where admins are editing client vars to let people bypass TOS
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
return
|
||||
|
||||
var/stl = 10 // 10 topics a second
|
||||
if(!holder) // Admins are allowed to spam click, deal with it.
|
||||
if(!holder && href_list["window_id"] != "statbrowser") // Admins are allowed to spam click, deal with it.
|
||||
var/second = round(world.time, 10)
|
||||
if(!topiclimiter)
|
||||
topiclimiter = new(LIMITER_SIZE)
|
||||
@@ -158,6 +158,10 @@
|
||||
// Tgui Topic middleware
|
||||
if(tgui_Topic(href_list))
|
||||
return
|
||||
|
||||
if(href_list["reload_statbrowser"])
|
||||
stat_panel.reinitialize()
|
||||
|
||||
if(href_list["reload_tguipanel"])
|
||||
nuke_chat()
|
||||
|
||||
@@ -254,10 +258,12 @@
|
||||
///////////
|
||||
/client/New(TopicData)
|
||||
var/tdata = TopicData //save this for later use
|
||||
// Instantiate stat panel
|
||||
stat_panel = new(src, "statbrowser")
|
||||
stat_panel.subscribe(src, PROC_REF(on_stat_panel_message))
|
||||
|
||||
tgui_panel = new(src, "browseroutput")
|
||||
tgui_say = new(src, "tgui_say")
|
||||
|
||||
TopicData = null //Prevent calls to client.Topic from connect
|
||||
|
||||
if(connection != "seeker") //Invalid connection type.
|
||||
@@ -359,7 +365,7 @@
|
||||
_2fa_alert = TRUE
|
||||
// This also has to be manually done since no mob to use check_rights() on
|
||||
deadmin()
|
||||
verbs += /client/proc/readmin
|
||||
add_verb(src, /client/proc/readmin)
|
||||
GLOB.de_admins += ckey
|
||||
|
||||
else
|
||||
@@ -394,6 +400,13 @@
|
||||
|
||||
// Initialize tgui panel
|
||||
tgui_panel.initialize()
|
||||
// Initialize stat panel
|
||||
stat_panel.initialize(
|
||||
inline_html = file2text('html/statbrowser.html'),
|
||||
inline_js = file2text('html/statbrowser.js'),
|
||||
inline_css = file2text('html/statbrowser.css'),
|
||||
)
|
||||
addtimer(CALLBACK(src, PROC_REF(check_panel_loaded)), 30 SECONDS)
|
||||
|
||||
// Initialize tgui say
|
||||
tgui_say.initialize()
|
||||
@@ -438,6 +451,8 @@
|
||||
to_chat(src, "<span class='notice'>You are currently connected [prefs.server_region ? "via the <b>[prefs.server_region]</b> relay" : "directly"] to Paradise.</span>")
|
||||
to_chat(src, "<span class='notice'>You can change this using the <code>Change Region</code> verb in the OOC tab, as selecting a region closer to you may reduce latency.</span>")
|
||||
display_job_bans(TRUE)
|
||||
if(check_rights(R_DEBUG|R_VIEWRUNTIMES, FALSE, mob))
|
||||
winset(src, "debugmcbutton", "is-disabled=false")
|
||||
|
||||
/client/proc/is_connecting_from_localhost()
|
||||
var/static/list/localhost_addresses = list("127.0.0.1", "::1")
|
||||
@@ -474,6 +489,9 @@
|
||||
movingmob.client_mobs_in_contents -= mob
|
||||
UNSETEMPTY(movingmob.client_mobs_in_contents)
|
||||
|
||||
if(obj_window)
|
||||
QDEL_NULL(obj_window)
|
||||
|
||||
SSambience.ambience_listening_clients -= src
|
||||
SSinput.processing -= src
|
||||
SSping.current_run -= src
|
||||
@@ -788,7 +806,7 @@
|
||||
cidcheck[ckey] = computer_id
|
||||
|
||||
// Disable the reconnect button to force a CID change
|
||||
winset(src, "reconnectbutton", "is-disable=true")
|
||||
winset(src, "reconnectbutton", "is-disabled=true")
|
||||
|
||||
tokens[ckey] = cid_check_reconnect()
|
||||
sleep(10) // Since browse is non-instant, and kinda async
|
||||
@@ -1158,6 +1176,67 @@
|
||||
var/list/screensize = getviewsize(view)
|
||||
return max(screensize[1], screensize[2])
|
||||
|
||||
/// Compiles a full list of verbs and sends it to the browser
|
||||
/client/proc/init_verbs()
|
||||
if(IsAdminAdvancedProcCall())
|
||||
return
|
||||
var/list/verblist = list()
|
||||
var/list/verbstoprocess = verbs.Copy()
|
||||
if(mob)
|
||||
verbstoprocess += mob.verbs
|
||||
for(var/AM in mob.contents)
|
||||
var/atom/movable/thing = AM
|
||||
verbstoprocess += thing.verbs
|
||||
panel_tabs.Cut() // panel_tabs get reset in init_verbs on JS side anyway
|
||||
for(var/thing in verbstoprocess)
|
||||
var/procpath/verb_to_init = thing
|
||||
if(!verb_to_init)
|
||||
continue
|
||||
if(verb_to_init.hidden)
|
||||
continue
|
||||
if(!istext(verb_to_init.category))
|
||||
continue
|
||||
panel_tabs |= verb_to_init.category
|
||||
verblist[++verblist.len] = list(verb_to_init.category, verb_to_init.name)
|
||||
src.stat_panel.send_message("init_verbs", list(panel_tabs = panel_tabs, verblist = verblist))
|
||||
|
||||
/client/proc/check_panel_loaded()
|
||||
if(stat_panel.is_ready())
|
||||
return
|
||||
to_chat(src, "<span class='userdanger'>Statpanel failed to load, click <a href='?src=[UID()];reload_statbrowser=1'>here</a> to reload the panel </span>")
|
||||
|
||||
/**
|
||||
* Handles incoming messages from the stat-panel TGUI.
|
||||
*/
|
||||
/client/proc/on_stat_panel_message(type, payload)
|
||||
switch(type)
|
||||
if("Update-Verbs")
|
||||
init_verbs()
|
||||
if("Remove-Tabs")
|
||||
panel_tabs -= payload["tab"]
|
||||
if("Send-Tabs")
|
||||
panel_tabs |= payload["tab"]
|
||||
if("Reset-Tabs")
|
||||
panel_tabs = list()
|
||||
if("Set-Tab")
|
||||
stat_tab = payload["tab"]
|
||||
SSstatpanels.immediate_send_stat_data(src)
|
||||
if("Debug-Stat-Entry")
|
||||
var/stat_item = locateUID(payload["stat_item_uid"])
|
||||
if(!check_rights(R_DEBUG | R_VIEWRUNTIMES) || !stat_item)
|
||||
return
|
||||
var/class
|
||||
if(istype(stat_item, /datum/controller/subsystem))
|
||||
class = "subsystem"
|
||||
else if(istype(stat_item, /datum/controller))
|
||||
class = "controller"
|
||||
else if(istype(stat_item, /datum))
|
||||
class = "datum"
|
||||
else
|
||||
class = "unknown"
|
||||
debug_variables(stat_item)
|
||||
message_admins("Admin [key_name_admin(usr)] is debugging the [stat_item] [class].")
|
||||
|
||||
#undef LIMITER_SIZE
|
||||
#undef CURRENT_SECOND
|
||||
#undef SECOND_COUNT
|
||||
|
||||
@@ -1,34 +1,34 @@
|
||||
//toggles
|
||||
/client/verb/toggle_ghost_ears()
|
||||
set name = "Show/Hide GhostEars"
|
||||
set category = "Preferences"
|
||||
set desc = ".Toggle Between seeing all mob speech, and only speech of nearby mobs"
|
||||
set name = "GhostEars"
|
||||
set category = "Preferences.Show/Hide"
|
||||
set desc = "Toggle Between seeing all mob speech, and only speech of nearby mobs"
|
||||
prefs.toggles ^= PREFTOGGLE_CHAT_GHOSTEARS
|
||||
to_chat(src, "As a ghost, you will now [(prefs.toggles & PREFTOGGLE_CHAT_GHOSTEARS) ? "see all speech in the world" : "only see speech from nearby mobs"].")
|
||||
prefs.save_preferences(src)
|
||||
SSblackbox.record_feedback("tally", "toggle_verbs", 1, "Toggle GhostEars") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/verb/toggle_ghost_sight()
|
||||
set name = "Show/Hide GhostSight"
|
||||
set category = "Preferences"
|
||||
set desc = ".Toggle Between seeing all mob emotes, and only emotes of nearby mobs"
|
||||
set name = "GhostSight"
|
||||
set category = "Preferences.Show/Hide"
|
||||
set desc = "Toggle Between seeing all mob emotes, and only emotes of nearby mobs"
|
||||
prefs.toggles ^= PREFTOGGLE_CHAT_GHOSTSIGHT
|
||||
to_chat(src, "As a ghost, you will now [(prefs.toggles & PREFTOGGLE_CHAT_GHOSTSIGHT) ? "see all emotes in the world" : "only see emotes from nearby mobs"].")
|
||||
prefs.save_preferences(src)
|
||||
SSblackbox.record_feedback("tally", "toggle_verbs", 1, "Toggle GhostSight") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/verb/toggle_ghost_radio()
|
||||
set name = "Enable/Disable GhostRadio"
|
||||
set category = "Preferences"
|
||||
set desc = ".Toggle between hearing all radio chatter, or only from nearby speakers"
|
||||
set name = "GhostRadio"
|
||||
set category = "Preferences.Show/Hide"
|
||||
set desc = "Toggle between hearing all radio chatter, or only from nearby speakers"
|
||||
prefs.toggles ^= PREFTOGGLE_CHAT_GHOSTRADIO
|
||||
to_chat(src, "As a ghost, you will now [(prefs.toggles & PREFTOGGLE_CHAT_GHOSTRADIO) ? "hear all radio chat in the world" : "only hear from nearby speakers"].")
|
||||
prefs.save_preferences(src)
|
||||
SSblackbox.record_feedback("tally", "toggle_verbs", 1, "Toggle GhostRadio")
|
||||
|
||||
/client/proc/toggle_hear_radio()
|
||||
set name = "Show/Hide RadioChatter"
|
||||
set category = "Preferences"
|
||||
set name = "RadioChatter"
|
||||
set category = "Preferences.Show/Hide"
|
||||
set desc = "Toggle seeing radiochatter from radios and speakers"
|
||||
if(!check_rights(R_ADMIN))
|
||||
return
|
||||
@@ -38,8 +38,8 @@
|
||||
SSblackbox.record_feedback("tally", "toggle_verbs", 1, "Toggle RadioChatter") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/verb/toggle_ai_voice_annoucements()
|
||||
set name = "Hear/Silence AI Voice Announcements"
|
||||
set category = "Preferences"
|
||||
set name = "AI Voice Announcements"
|
||||
set category = "Preferences.Hear/Silence"
|
||||
set desc = "Toggle hearing AI annoucements in voice form or in text form"
|
||||
prefs.sound ^= SOUND_AI_VOICE
|
||||
prefs.save_preferences(src)
|
||||
@@ -47,8 +47,8 @@
|
||||
SSblackbox.record_feedback("tally", "toggle_verbs", 1, "Toggle AI Voice") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/proc/toggleadminhelpsound()
|
||||
set name = "Hear/Silence Admin Bwoinks"
|
||||
set category = "Preferences"
|
||||
set name = "Admin Bwoinks"
|
||||
set category = "Preferences.Hear/Silence"
|
||||
set desc = "Toggle hearing a notification when admin PMs are received"
|
||||
if(!check_rights(R_ADMIN))
|
||||
return
|
||||
@@ -58,8 +58,8 @@
|
||||
SSblackbox.record_feedback("tally", "toggle_verbs", 1, "Toggle Admin Bwoinks") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/proc/togglementorhelpsound()
|
||||
set name = "Hear/Silence Mentorhelp Bwoinks"
|
||||
set category = "Preferences"
|
||||
set name = "Mentorhelp Bwoinks"
|
||||
set category = "Preferences.Hear/Silence"
|
||||
set desc = "Toggle hearing a notification when mentorhelps are received"
|
||||
if(!check_rights(R_ADMIN|R_MENTOR))
|
||||
return
|
||||
@@ -69,8 +69,8 @@
|
||||
SSblackbox.record_feedback("tally", "toggle_verbs", 1, "Toggle Mentor Bwoinks") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/verb/deadchat() // Deadchat toggle is usable by anyone.
|
||||
set name = "Show/Hide Deadchat"
|
||||
set category = "Preferences"
|
||||
set name = "Deadchat"
|
||||
set category = "Preferences.Show/Hide"
|
||||
set desc ="Toggles seeing deadchat"
|
||||
prefs.toggles ^= PREFTOGGLE_CHAT_DEAD
|
||||
prefs.save_preferences(src)
|
||||
@@ -83,8 +83,8 @@
|
||||
SSblackbox.record_feedback("tally", "toggle_verbs", 1, "Toggle Deadchat") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/proc/toggleprayers()
|
||||
set name = "Show/Hide Prayers"
|
||||
set category = "Preferences"
|
||||
set name = "Prayers"
|
||||
set category = "Preferences.Show/Hide"
|
||||
set desc = "Toggles seeing prayers"
|
||||
prefs.toggles ^= PREFTOGGLE_CHAT_PRAYER
|
||||
prefs.save_preferences(src)
|
||||
@@ -92,8 +92,8 @@
|
||||
SSblackbox.record_feedback("tally", "toggle_verbs", 1, "Toggle Prayers") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/verb/toggleprayernotify()
|
||||
set name = "Hear/Silence Prayer Notification Sound"
|
||||
set category = "Preferences"
|
||||
set name = "Prayer Notification Sound"
|
||||
set category = "Preferences.Hear/Silence"
|
||||
set desc = "Toggles hearing when prayers are made"
|
||||
prefs.sound ^= SOUND_PRAYERNOTIFY
|
||||
prefs.save_preferences(src)
|
||||
@@ -101,8 +101,8 @@
|
||||
SSblackbox.record_feedback("tally", "toggle_verbs", 1, "Toggle Prayer Sound") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/verb/togglescoreboard()
|
||||
set name = "Hide/Display End Round Scoreboard"
|
||||
set category = "Preferences"
|
||||
set name = "End Round Scoreboard"
|
||||
set category = "Preferences.Show/Hide"
|
||||
set desc = "Toggles displaying end of round scoreboard"
|
||||
prefs.toggles ^= PREFTOGGLE_DISABLE_SCOREBOARD
|
||||
prefs.save_preferences(src)
|
||||
@@ -110,8 +110,8 @@
|
||||
SSblackbox.record_feedback("tally", "toggle_verbs", 1, "Toggle Scoreboard") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/verb/toggletitlemusic()
|
||||
set name = "Hear/Silence LobbyMusic"
|
||||
set category = "Preferences"
|
||||
set name = "LobbyMusic"
|
||||
set category = "Preferences.Hear/Silence"
|
||||
set desc = "Toggles hearing the GameLobby music"
|
||||
prefs.sound ^= SOUND_LOBBY
|
||||
prefs.save_preferences(src)
|
||||
@@ -126,8 +126,8 @@
|
||||
SSblackbox.record_feedback("tally", "toggle_verbs", 1, "Toggle Lobby Music") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/verb/togglemidis()
|
||||
set name = "Hear/Silence Midis"
|
||||
set category = "Preferences"
|
||||
set name = "Midis"
|
||||
set category = "Preferences.Hear/Silence"
|
||||
set desc = "Toggles hearing sounds uploaded by admins"
|
||||
prefs.sound ^= SOUND_MIDI
|
||||
prefs.save_preferences(src)
|
||||
@@ -140,8 +140,8 @@
|
||||
SSblackbox.record_feedback("tally", "toggle_verbs", 1, "Toggle MIDIs") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/verb/listen_ooc()
|
||||
set name = "Show/Hide OOC"
|
||||
set category = "Preferences"
|
||||
set name = "OOC (Out of Character)"
|
||||
set category = "Preferences.Show/Hide"
|
||||
set desc = "Toggles seeing OutOfCharacter chat"
|
||||
prefs.toggles ^= PREFTOGGLE_CHAT_OOC
|
||||
prefs.save_preferences(src)
|
||||
@@ -150,8 +150,8 @@
|
||||
|
||||
|
||||
/client/verb/listen_looc()
|
||||
set name = "Show/Hide LOOC"
|
||||
set category = "Preferences"
|
||||
set name = "LOOC (Local Out of Character)"
|
||||
set category = "Preferences.Show/Hide"
|
||||
set desc = "Toggles seeing Local OutOfCharacter chat"
|
||||
prefs.toggles ^= PREFTOGGLE_CHAT_LOOC
|
||||
prefs.save_preferences(src)
|
||||
@@ -160,8 +160,8 @@
|
||||
|
||||
|
||||
/client/verb/Toggle_Soundscape() //All new ambience should be added here so it works with this verb until someone better at things comes up with a fix that isn't awful
|
||||
set name = "Hear/Silence Ambience"
|
||||
set category = "Preferences"
|
||||
set name = "Ambience"
|
||||
set category = "Preferences.Hear/Silence"
|
||||
set desc = "Toggles hearing ambient sound effects"
|
||||
prefs.sound ^= SOUND_AMBIENCE
|
||||
prefs.save_preferences(src)
|
||||
@@ -174,8 +174,8 @@
|
||||
SSblackbox.record_feedback("tally", "toggle_verbs", 1, "Toggle Ambience") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/verb/Toggle_Parallax_Dark() //All new ambience should be added here so it works with this verb until someone better at things comes up with a fix that isn't awful
|
||||
set name = "Show/Hide Parallax in darkness"
|
||||
set category = "Preferences"
|
||||
set name = "Parallax in darkness"
|
||||
set category = "Preferences.Show/Hide"
|
||||
set desc = "If enabled, drawing parallax if you see in dark instead of black tiles."
|
||||
prefs.toggles2 ^= PREFTOGGLE_2_PARALLAX_IN_DARKNESS
|
||||
prefs.save_preferences(src)
|
||||
@@ -187,8 +187,8 @@
|
||||
SSblackbox.record_feedback("tally", "toggle_verbs", 1, "Toggle Parallax Darkness") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/verb/Toggle_Buzz() //No more headaches because headphones bump up shipambience.ogg to insanity levels.
|
||||
set name = "Hear/Silence White Noise"
|
||||
set category = "Preferences"
|
||||
set name = "White Noise"
|
||||
set category = "Preferences.Hear/Silence"
|
||||
set desc = "Toggles hearing ambient white noise"
|
||||
prefs.sound ^= SOUND_BUZZ
|
||||
prefs.save_preferences(src)
|
||||
@@ -201,8 +201,8 @@
|
||||
|
||||
|
||||
/client/verb/Toggle_Heartbeat() //to toggle off heartbeat sounds, in case they get too annoying
|
||||
set name = "Hear/Silence Heartbeat"
|
||||
set category = "Preferences"
|
||||
set name = "Heartbeat"
|
||||
set category = "Preferences.Hear/Silence"
|
||||
set desc = "Toggles hearing heart beating sound effects"
|
||||
prefs.sound ^= SOUND_HEARTBEAT
|
||||
prefs.save_preferences(src)
|
||||
@@ -215,8 +215,8 @@
|
||||
|
||||
// This needs a toggle because you people are awful and spammed terrible music
|
||||
/client/verb/toggle_instruments()
|
||||
set name = "Hear/Silence Instruments"
|
||||
set category = "Preferences"
|
||||
set name = "Instruments"
|
||||
set category = "Preferences.Hear/Silence"
|
||||
set desc = "Toggles hearing musical instruments like the violin and piano"
|
||||
prefs.sound ^= SOUND_INSTRUMENTS
|
||||
prefs.save_preferences(src)
|
||||
@@ -227,16 +227,16 @@
|
||||
SSblackbox.record_feedback("tally", "toggle_verbs", 1, "Toggle Instruments") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/verb/toggle_input()
|
||||
set name = "Toggle TGUI Input"
|
||||
set category = "Preferences"
|
||||
set name = "TGUI Input"
|
||||
set category = "Preferences.Toggle"
|
||||
set desc = "Switches inputs between the TGUI and the standard one"
|
||||
prefs.toggles2 ^= PREFTOGGLE_2_DISABLE_TGUI_INPUT
|
||||
prefs.save_preferences(src)
|
||||
to_chat(src, "You will [(prefs.toggles2 & PREFTOGGLE_2_DISABLE_TGUI_INPUT) ? "no longer" : "now"] use TGUI Inputs.")
|
||||
|
||||
/client/verb/Toggle_disco() //to toggle off the disco machine locally, in case it gets too annoying
|
||||
set name = "Hear/Silence Dance Machine"
|
||||
set category = "Preferences"
|
||||
set name = "Dance Machine"
|
||||
set category = "Preferences.Hear/Silence"
|
||||
set desc = "Toggles hearing and dancing to the radiant dance machine"
|
||||
prefs.sound ^= SOUND_DISCO
|
||||
prefs.save_preferences(src)
|
||||
@@ -255,8 +255,8 @@
|
||||
prefs.ShowChoices(usr)
|
||||
|
||||
/client/verb/toggle_ghost_pda()
|
||||
set name = "Show/Hide GhostPDA"
|
||||
set category = "Preferences"
|
||||
set name = "GhostPDA"
|
||||
set category = "Preferences.Show/Hide"
|
||||
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"].")
|
||||
@@ -272,80 +272,64 @@
|
||||
|
||||
|
||||
/client/verb/toggle_runechat()
|
||||
set name = "Enable/Disable Runechat"
|
||||
set category = "Preferences"
|
||||
set name = "Runechat"
|
||||
set category = "Preferences.Toggle"
|
||||
set desc = "Toggle runechat messages"
|
||||
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 name = "Death Notifications"
|
||||
set category = "Preferences.Toggle"
|
||||
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.")
|
||||
|
||||
/client/verb/toggle_reverb()
|
||||
set name = "Enable/Disable Reverb"
|
||||
set category = "Preferences"
|
||||
set name = "Reverb"
|
||||
set category = "Preferences.Toggle"
|
||||
set desc = "Toggle ingame reverb effects"
|
||||
prefs.toggles2 ^= PREFTOGGLE_2_REVERB_DISABLE
|
||||
prefs.save_preferences(src)
|
||||
to_chat(src, "You will [(prefs.toggles2 & PREFTOGGLE_2_REVERB_DISABLE) ? "no longer" : "now"] get reverb on ingame sounds.")
|
||||
|
||||
/client/verb/toggle_forced_white_runechat()
|
||||
set name = "Toggle Runechat Colour Forcing"
|
||||
set category = "Preferences"
|
||||
set name = "Runechat Colour Forcing"
|
||||
set category = "Preferences.Toggle"
|
||||
set desc = "Toggles forcing your runechat colour to white"
|
||||
prefs.toggles2 ^= PREFTOGGLE_2_FORCE_WHITE_RUNECHAT
|
||||
prefs.save_preferences(src)
|
||||
to_chat(src, "Your runechats will [(prefs.toggles2 & PREFTOGGLE_2_FORCE_WHITE_RUNECHAT) ? "now" : "no longer"] be forced to be white.")
|
||||
|
||||
/client/verb/toggle_simple_stat_panel()
|
||||
set name = "Toggle Simple Status Panel"
|
||||
set category = "Preferences"
|
||||
set desc = "Toggles detailed information on the status panel"
|
||||
prefs.toggles2 ^= PREFTOGGLE_2_SIMPLE_STAT_PANEL
|
||||
prefs.save_preferences(src)
|
||||
to_chat(src, "You will [(prefs.toggles2 & PREFTOGGLE_2_SIMPLE_STAT_PANEL) ? "no longer" : "now"] get detailed information on the status panel.")
|
||||
|
||||
/client/verb/toggle_item_outlines()
|
||||
set name = "Toggle Item Outlines"
|
||||
set category = "Preferences"
|
||||
set name = "Item Outlines"
|
||||
set category = "Preferences.Toggle"
|
||||
set desc = "Toggles seeing item outlines on hover."
|
||||
prefs.toggles2 ^= PREFTOGGLE_2_SEE_ITEM_OUTLINES
|
||||
prefs.save_preferences(src)
|
||||
to_chat(usr, "You will [(prefs.toggles2 & PREFTOGGLE_2_SEE_ITEM_OUTLINES) ? "now" : "no longer"] see item outlines on hover.")
|
||||
|
||||
/client/verb/toggle_item_tooltips()
|
||||
set name = "Toggle Hover-over Item Tooltips"
|
||||
set category = "Preferences"
|
||||
set name = "Hover-over Item Tooltips"
|
||||
set category = "Preferences.Toggle"
|
||||
set desc = "Toggles textboxes with the item descriptions after hovering on them in your inventory."
|
||||
prefs.toggles2 ^= PREFTOGGLE_2_HIDE_ITEM_TOOLTIPS
|
||||
prefs.save_preferences(src)
|
||||
to_chat(src, "You will [(prefs.toggles2 & PREFTOGGLE_2_HIDE_ITEM_TOOLTIPS) ? "no longer" : "now"] see item tooltips when you hover over items on your HUD.")
|
||||
|
||||
/mob/verb/toggle_anonmode()
|
||||
set name = "Toggle Anonymous Mode"
|
||||
set category = "Preferences"
|
||||
set name = "Anonymous Mode"
|
||||
set category = "Preferences.Toggle"
|
||||
set desc = "Toggles showing your key in various parts of the game (deadchat, end round, etc)."
|
||||
client.prefs.toggles2 ^= PREFTOGGLE_2_ANON
|
||||
to_chat(src, "Your key will [(client.prefs.toggles2 & PREFTOGGLE_2_ANON) ? "no longer" : "now"] be shown in certain events (end round reports, deadchat, etc).</span>")
|
||||
client.prefs.save_preferences(src)
|
||||
|
||||
/client/proc/toggle_mctabs()
|
||||
set name = "Show/Hide MC Tabs"
|
||||
set category = "Preferences"
|
||||
set desc = "Shows or hides the MC tabs."
|
||||
prefs.toggles2 ^= PREFTOGGLE_2_MC_TABS
|
||||
prefs.save_preferences(src)
|
||||
to_chat(src, "You will [(prefs.toggles2 & PREFTOGGLE_2_MC_TABS) ? "now" : "no longer"] see the MC tabs on the top right.")
|
||||
|
||||
/client/verb/toggle_dance()
|
||||
set name = "Toggle Disco Machine Dancing"
|
||||
set category = "Preferences"
|
||||
set name = "Disco Machine Dancing"
|
||||
set category = "Preferences.Toggle"
|
||||
set desc = "Toggles automatic dancing from the radiant dance machine"
|
||||
prefs.toggles2 ^= PREFTOGGLE_2_DANCE_DISCO
|
||||
prefs.save_preferences(src)
|
||||
@@ -367,3 +351,11 @@
|
||||
prefs.admin_sound_ckey_ignore -= choice
|
||||
to_chat(usr, "You will now hear sounds from <code>[choice]</code> again.")
|
||||
prefs.save_preferences(src)
|
||||
|
||||
/client/proc/toggle_mctabs()
|
||||
set name = "MC Tab"
|
||||
set category = "Preferences.Show/Hide"
|
||||
set desc = "Shows or hides the MC tab."
|
||||
prefs.toggles2 ^= PREFTOGGLE_2_MC_TAB
|
||||
prefs.save_preferences(src)
|
||||
to_chat(src, "You will [(prefs.toggles2 & PREFTOGGLE_2_MC_TAB) ? "now" : "no longer"] see the MC tab on the top right.")
|
||||
|
||||
@@ -76,10 +76,12 @@
|
||||
/proc/viewNum_to_text(view)
|
||||
return "[(view * 2) + 1]x[(view * 2) + 1]"
|
||||
|
||||
/client/verb/set_view_range(view_range as null|anything in CUSTOM_VIEWRANGES)
|
||||
/client/verb/set_view_range()
|
||||
set name = "Set View Range"
|
||||
set category = "Preferences"
|
||||
|
||||
var/view_range = tgui_input_list(src.mob, "Select a view range", "Set View Range", CUSTOM_VIEWRANGES, "RESET")
|
||||
|
||||
if(!view_range)
|
||||
return
|
||||
|
||||
|
||||
Reference in New Issue
Block a user