mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-01-08 16:31:55 +00:00
Ports Goonchat from Baystation. (#9635)
changes:
rscadd: "Ported a new chat system, Goonchat, that allows for cool things like changing font style, size, spacing, highlighting up to 5 strings in the chat, and DARK MODE."
rscadd: "Repeated chat messages can now get compacted. You can disable this in goonchat settings."
rscadd: "You can change icon style to any font on your system."
tweak: "The game window has been altered a bit to adjust for this."
rscdel: "Removed skin style prefs as they are no longer used."
This commit is contained in:
@@ -127,6 +127,12 @@ You can set verify to TRUE if you want send() to sleep until the client has the
|
||||
/proc/register_asset(asset_name, asset)
|
||||
SSassets.cache[asset_name] = asset
|
||||
|
||||
//Generated names do not include file extention.
|
||||
//Used mainly for code that deals with assets in a generic way
|
||||
//The same asset will always lead to the same asset name
|
||||
/proc/generate_asset_name(file)
|
||||
return "asset.[md5(fcopy_rsc(file))]"
|
||||
|
||||
//These datums are used to populate the asset cache, the proc "register()" does this.
|
||||
|
||||
//all of our asset datums, used for referring to these later
|
||||
@@ -231,6 +237,16 @@ var/list/asset_datums = list()
|
||||
/datum/asset/chem_master/send(client)
|
||||
send_asset_list(client, assets)
|
||||
|
||||
/datum/asset/simple/accents
|
||||
verify = FALSE
|
||||
|
||||
/datum/asset/simple/accents/register()
|
||||
for(var/A in subtypesof(/datum/accent)) //yes we have to do this here, SSrecords isn't initialized yet
|
||||
var/datum/accent/accent = new A
|
||||
var/name = "[accent.tag_icon].png"
|
||||
assets[name] = icon('./icons/accent_tags.dmi', accent.tag_icon)
|
||||
..()
|
||||
|
||||
/datum/asset/simple/faction_icons
|
||||
assets = list(
|
||||
"faction_EPMC.png" = 'icons/misc/factions/ECFlogo.png',
|
||||
@@ -241,3 +257,48 @@ var/list/asset_datums = list()
|
||||
"faction_Hepht.png" = 'icons/misc/factions/Hephaestuslogo.png',
|
||||
"faction_unaffiliated.png" = 'icons/misc/factions/Unaffiliatedlogo.png'
|
||||
)
|
||||
|
||||
/datum/asset/group
|
||||
var/list/children
|
||||
|
||||
/datum/asset/group/register()
|
||||
for(var/type in children)
|
||||
get_asset_datum(type)
|
||||
|
||||
/datum/asset/group/send(client/C)
|
||||
for(var/type in children)
|
||||
var/datum/asset/A = get_asset_datum(type)
|
||||
A.send(C)
|
||||
|
||||
/datum/asset/group/goonchat
|
||||
children = list(
|
||||
/datum/asset/simple/jquery,
|
||||
/datum/asset/simple/goonchat,
|
||||
/datum/asset/simple/fontawesome
|
||||
)
|
||||
|
||||
/datum/asset/simple/jquery
|
||||
verify = FALSE
|
||||
assets = list(
|
||||
"jquery.min.js" = 'code/modules/goonchat/browserassets/js/jquery.min.js',
|
||||
)
|
||||
|
||||
/datum/asset/simple/goonchat
|
||||
verify = TRUE
|
||||
assets = list(
|
||||
"json2.min.js" = 'code/modules/goonchat/browserassets/js/json2.min.js',
|
||||
"browserOutput.js" = 'code/modules/goonchat/browserassets/js/browserOutput.js',
|
||||
"browserOutput.css" = 'code/modules/goonchat/browserassets/css/browserOutput.css',
|
||||
"browserOutput_white.css" = 'code/modules/goonchat/browserassets/css/browserOutput_white.css'
|
||||
)
|
||||
|
||||
/datum/asset/simple/fontawesome
|
||||
verify = FALSE
|
||||
assets = list(
|
||||
"fa-regular-400.eot" = 'html/font-awesome/webfonts/fa-regular-400.eot',
|
||||
"fa-regular-400.woff" = 'html/font-awesome/webfonts/fa-regular-400.woff',
|
||||
"fa-solid-900.eot" = 'html/font-awesome/webfonts/fa-solid-900.eot',
|
||||
"fa-solid-900.woff" = 'html/font-awesome/webfonts/fa-solid-900.woff',
|
||||
"font-awesome.css" = 'html/font-awesome/css/all.min.css',
|
||||
"v4shim.css" = 'html/font-awesome/css/v4-shims.min.css'
|
||||
)
|
||||
|
||||
@@ -77,3 +77,8 @@
|
||||
var/authed = TRUE
|
||||
|
||||
var/is_initialized = FALSE // Used to track whether the client has been initialized with InitClient.
|
||||
|
||||
preload_rsc = 0
|
||||
|
||||
///goonchat chatoutput of the client
|
||||
var/datum/chatOutput/chatOutput
|
||||
|
||||
@@ -42,8 +42,6 @@
|
||||
if (!info_sent)
|
||||
handle_connection_info(src, href_list["data"])
|
||||
info_sent = 1
|
||||
else
|
||||
server_greeting.close_window(src, "Your greeting window has malfunctioned and has been shut down.")
|
||||
|
||||
return
|
||||
|
||||
@@ -96,6 +94,11 @@
|
||||
if("usr") hsrc = mob
|
||||
if("prefs") return prefs.process_link(usr,href_list)
|
||||
if("vars") return view_var_Topic(href,href_list,hsrc)
|
||||
if("chat") return chatOutput.Topic(href, href_list)
|
||||
|
||||
switch(href_list["action"])
|
||||
if("openLink")
|
||||
send_link(src, href_list["link"])
|
||||
|
||||
if(href_list["warnacknowledge"])
|
||||
var/queryid = text2num(href_list["warnacknowledge"])
|
||||
@@ -143,13 +146,13 @@
|
||||
query_details["new_status"] = "confirmed"
|
||||
query_details["id"] = request_id
|
||||
|
||||
feedback_message = "<font color='green'><b>Account successfully linked!</b></font>"
|
||||
feedback_message = "<span class='good'><b>Account successfully linked!</b></span>"
|
||||
if ("deny")
|
||||
query_contents = "UPDATE ss13_player_linking SET status = :new_status:, deleted_at = NOW() WHERE id = :id:"
|
||||
query_details["new_status"] = "rejected"
|
||||
query_details["id"] = request_id
|
||||
|
||||
feedback_message = "<font color='red'><b>Link request rejected!</b></font>"
|
||||
feedback_message = "<span class='warning'><b>Link request rejected!</b></span>"
|
||||
else
|
||||
to_chat(src, "<span class='warning'>Invalid command sent.</span>")
|
||||
return
|
||||
@@ -210,11 +213,6 @@
|
||||
if ("webint")
|
||||
src.open_webint()
|
||||
|
||||
// Forward appropriate topics to the server greeting datum.
|
||||
if ("greeting")
|
||||
if (server_greeting)
|
||||
server_greeting.handle_call(href_list, src)
|
||||
|
||||
// Handle the updating of MotD and Memo tabs upon click.
|
||||
if ("updateHashes")
|
||||
var/save = 0
|
||||
@@ -308,13 +306,13 @@
|
||||
//This stops files larger than UPLOAD_LIMIT being sent from client to server via input(), client.Import() etc.
|
||||
/client/AllowUpload(filename, filelength)
|
||||
if(filelength > UPLOAD_LIMIT)
|
||||
to_chat(src, "<font color='red'>Error: AllowUpload(): File Upload too large. Upload Limit: [UPLOAD_LIMIT/1024]KiB.</font>")
|
||||
to_chat(src, "<span class='warning'>Error: AllowUpload(): File Upload too large. Upload Limit: [UPLOAD_LIMIT/1024]KiB.</span>")
|
||||
return 0
|
||||
/* //Don't need this at the moment. But it's here if it's needed later.
|
||||
//Helps prevent multiple files being uploaded at once. Or right after eachother.
|
||||
var/time_to_wait = fileaccess_timer - world.time
|
||||
if(time_to_wait > 0)
|
||||
to_chat(src, "<font color='red'>Error: AllowUpload(): Spam prevention. Please wait [round(time_to_wait/10)] seconds.</font>")
|
||||
to_chat(src, "<span class='warning'>Error: AllowUpload(): Spam prevention. Please wait [round(time_to_wait/10)] seconds.</span>")
|
||||
return 0
|
||||
fileaccess_timer = world.time + FTPDELAY */
|
||||
return 1
|
||||
@@ -326,6 +324,9 @@
|
||||
/client/New(TopicData)
|
||||
TopicData = null //Prevent calls to client.Topic from connect
|
||||
|
||||
// Load goonchat
|
||||
chatOutput = new(src)
|
||||
|
||||
if(!(connection in list("seeker", "web"))) //Invalid connection type.
|
||||
return null
|
||||
if(byond_version < MIN_CLIENT_VERSION) //Out of date client.
|
||||
@@ -355,6 +356,7 @@
|
||||
m.client = src
|
||||
src.InitPrefs() //Init some default prefs
|
||||
m.LateLogin()
|
||||
chatOutput.start()
|
||||
return m
|
||||
//Do auth shit
|
||||
else
|
||||
@@ -362,6 +364,7 @@
|
||||
src.InitClient()
|
||||
src.InitPrefs()
|
||||
mob.LateLogin()
|
||||
chatOutput.start()
|
||||
|
||||
/client/proc/InitPrefs()
|
||||
//preferences datum - also holds some persistant data for the client (because we may as well keep these datums to a minimum)
|
||||
@@ -376,12 +379,6 @@
|
||||
prefs.last_id = computer_id //these are gonna be used for banning
|
||||
if (byond_version >= 511 && prefs.clientfps)
|
||||
fps = prefs.clientfps
|
||||
if(SStheming)
|
||||
SStheming.apply_theme_from_perfs(src)
|
||||
|
||||
// Server greeting shenanigans.
|
||||
if (server_greeting.find_outdated_info(src, 1) && !info_sent)
|
||||
server_greeting.display_to_client(src)
|
||||
|
||||
/client/proc/InitClient()
|
||||
to_chat(src, "<span class='alert'>If the title screen is black, resources are still downloading. Please be patient until the title screen appears.</span>")
|
||||
@@ -686,15 +683,6 @@
|
||||
send_link(src, linkURL)
|
||||
return
|
||||
|
||||
/client/verb/show_greeting()
|
||||
set name = "Open Greeting"
|
||||
set category = "OOC"
|
||||
|
||||
// Update the information just in case.
|
||||
server_greeting.find_outdated_info(src, 1)
|
||||
|
||||
server_greeting.display_to_client(src)
|
||||
|
||||
/client/proc/check_ip_intel()
|
||||
set waitfor = 0 //we sleep when getting the intel, no need to hold up the client connection while we sleep
|
||||
if (config.ipintel_email)
|
||||
@@ -751,4 +739,4 @@
|
||||
if(istype(gun) && gun.can_autofire())
|
||||
M.set_dir(get_dir(M, over_object))
|
||||
gun.Fire(get_turf(over_object), mob, params, (get_dist(over_object, mob) <= 1), FALSE)
|
||||
CHECK_TICK
|
||||
CHECK_TICK
|
||||
|
||||
132
code/modules/client/darkmode.dm
Normal file
132
code/modules/client/darkmode.dm
Normal file
@@ -0,0 +1,132 @@
|
||||
//Darkmode preference by Kmc2000//
|
||||
|
||||
/*
|
||||
This lets you switch chat themes by using winset and CSS loading, you must relog to see this change (or rebuild your browseroutput datum)
|
||||
Things to note:
|
||||
If you change ANYTHING in interface/skin.dmf you need to change it here:
|
||||
Format:
|
||||
winset(src, "window as appears in skin.dmf after elem", "var to change = currentvalue;var to change = desired value")
|
||||
How this works:
|
||||
I've added a function to browseroutput.js which registers a cookie for darkmode and swaps the chat accordingly. You can find the button to do this under the "cog" icon next to the ping button (top right of chat)
|
||||
This then swaps the window theme automatically
|
||||
Thanks to spacemaniac and mcdonald for help with the JS side of this.
|
||||
*/
|
||||
|
||||
/client/proc/force_white_theme() //There's no way round it. We're essentially changing the skin by hand. It's painful but it works, and is the way Lummox suggested.
|
||||
//Main windows
|
||||
winset(src, "infowindow", "background-color = [COLOR_DARKMODE_DARKBACKGROUND];background-color = none")
|
||||
winset(src, "infowindow", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000")
|
||||
winset(src, "rpane", "background-color = [COLOR_DARKMODE_DARKBACKGROUND];background-color = none")
|
||||
winset(src, "rpane", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000")
|
||||
winset(src, "info", "background-color = [COLOR_DARKMODE_BACKGROUND];background-color = none")
|
||||
winset(src, "info", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000")
|
||||
winset(src, "browseroutput", "background-color = [COLOR_DARKMODE_BACKGROUND];background-color = none")
|
||||
winset(src, "browseroutput", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000")
|
||||
winset(src, "outputwindow", "background-color = [COLOR_DARKMODE_BACKGROUND];background-color = none")
|
||||
winset(src, "outputwindow", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000")
|
||||
winset(src, "rpanewindow", "background-color = [COLOR_DARKMODE_BACKGROUND];background-color = none")
|
||||
winset(src, "rpanewindow", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000")
|
||||
winset(src, "mainwindow", "background-color = [COLOR_DARKMODE_DARKBACKGROUND];background-color = none")
|
||||
winset(src, "split", "background-color = [COLOR_DARKMODE_BACKGROUND];background-color = none")
|
||||
winset(src, "mainvsplit", "background-color = [COLOR_DARKMODE_BACKGROUND];background-color = none")
|
||||
//Buttons
|
||||
winset(src, "textb", "background-color = #494949;background-color = none")
|
||||
winset(src, "textb", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000")
|
||||
winset(src, "infob", "background-color = #494949;background-color = none")
|
||||
winset(src, "infob", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000")
|
||||
winset(src, "rulesb", "background-color = #494949;background-color = none")
|
||||
winset(src, "rulesb", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000")
|
||||
winset(src, "Lore", "background-color = #494949;background-color = none")
|
||||
winset(src, "Lore", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000")
|
||||
winset(src, "wikib", "background-color = #494949;background-color = none")
|
||||
winset(src, "wikib", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000")
|
||||
winset(src, "forumb", "background-color = #494949;background-color = none")
|
||||
winset(src, "forumb", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000")
|
||||
winset(src, "changelog", "background-color = #494949;background-color = none")
|
||||
winset(src, "changelog", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000")
|
||||
winset(src, "interfaceb", "background-color = #494949;background-color = none")
|
||||
winset(src, "interfaceb", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000")
|
||||
winset(src, "discordb", "background-color = #494949;background-color = none")
|
||||
winset(src, "discordb", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000")
|
||||
winset(src, "reportbugb", "background-color = #494949;background-color = none")
|
||||
winset(src, "reportbugb", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000")
|
||||
winset(src, "hotkey_toggle", "background-color = #494949;background-color = none")
|
||||
winset(src, "hotkey_toggle", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000")
|
||||
//Status and verb tabs
|
||||
winset(src, "output", "background-color = [COLOR_DARKMODE_BACKGROUND];background-color = none")
|
||||
winset(src, "output", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000")
|
||||
winset(src, "outputwindow", "background-color = [COLOR_DARKMODE_BACKGROUND];background-color = none")
|
||||
winset(src, "outputwindow", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000")
|
||||
winset(src, "statwindow", "background-color = [COLOR_DARKMODE_BACKGROUND];background-color = none")
|
||||
winset(src, "statwindow", "text-color = #eaeaea;text-color = #000000")
|
||||
winset(src, "info", "background-color = [COLOR_DARKMODE_DARKBACKGROUND];background-color = #FFFFFF")
|
||||
winset(src, "info", "tab-background-color = [COLOR_DARKMODE_BACKGROUND];tab-background-color = none")
|
||||
winset(src, "info", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000")
|
||||
winset(src, "info", "tab-text-color = [COLOR_DARKMODE_TEXT];tab-text-color = #000000")
|
||||
winset(src, "info", "prefix-color = [COLOR_DARKMODE_TEXT];prefix-color = #000000")
|
||||
winset(src, "info", "suffix-color = [COLOR_DARKMODE_TEXT];suffix-color = #000000")
|
||||
//Say, OOC, me Buttons etc.
|
||||
winset(src, "saybutton", "background-color = [COLOR_DARKMODE_BACKGROUND];background-color = none")
|
||||
winset(src, "saybutton", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000")
|
||||
winset(src, "asset_cache_browser", "background-color = [COLOR_DARKMODE_BACKGROUND];background-color = none")
|
||||
winset(src, "asset_cache_browser", "background-color = [COLOR_DARKMODE_BACKGROUND];background-color = none")
|
||||
|
||||
/client/proc/force_dark_theme() //Inversely, if theyre using white theme and want to swap to the superior dark theme, let's get WINSET() ing
|
||||
//Main windows
|
||||
winset(src, "infowindow", "background-color = none;background-color = [COLOR_DARKMODE_BACKGROUND]")
|
||||
winset(src, "infowindow", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]")
|
||||
winset(src, "rpane", "background-color = none;background-color = [COLOR_DARKMODE_BACKGROUND]")
|
||||
winset(src, "rpane", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]")
|
||||
winset(src, "info", "background-color = none;background-color = [COLOR_DARKMODE_BACKGROUND]")
|
||||
winset(src, "info", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]")
|
||||
winset(src, "browseroutput", "background-color = none;background-color = [COLOR_DARKMODE_BACKGROUND]")
|
||||
winset(src, "browseroutput", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]")
|
||||
winset(src, "outputwindow", "background-color = none;background-color = [COLOR_DARKMODE_BACKGROUND]")
|
||||
winset(src, "outputwindow", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]")
|
||||
winset(src, "rpanewindow", "background-color = none;background-color = [COLOR_DARKMODE_BACKGROUND]")
|
||||
winset(src, "rpanewindow", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]")
|
||||
winset(src, "mainwindow", "background-color = none;background-color = [COLOR_DARKMODE_BACKGROUND]")
|
||||
winset(src, "split", "background-color = none;background-color = [COLOR_DARKMODE_BACKGROUND]")
|
||||
winset(src, "mainvsplit", "background-color = none;background-color = [COLOR_DARKMODE_BACKGROUND]")
|
||||
//Buttons
|
||||
winset(src, "textb", "background-color = none;background-color = #494949")
|
||||
winset(src, "textb", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]")
|
||||
winset(src, "infob", "background-color = none;background-color = #494949")
|
||||
winset(src, "infob", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]")
|
||||
winset(src, "rulesb", "background-color = none;background-color = #494949")
|
||||
winset(src, "rulesb", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]")
|
||||
winset(src, "Lore", "background-color = none;background-color = #494949")
|
||||
winset(src, "Lore", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]")
|
||||
winset(src, "wikib", "background-color = none;background-color = #494949")
|
||||
winset(src, "wikib", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]")
|
||||
winset(src, "forumb", "background-color = none;background-color = #494949")
|
||||
winset(src, "forumb", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]")
|
||||
winset(src, "changelog", "background-color = none;background-color = #494949")
|
||||
winset(src, "changelog", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]")
|
||||
winset(src, "interfaceb", "background-color = none;background-color = #494949")
|
||||
winset(src, "interfaceb", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]")
|
||||
winset(src, "discordb", "background-color = none;background-color = #494949")
|
||||
winset(src, "discordb", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]")
|
||||
winset(src, "reportbugb", "background-color = none;background-color = #494949")
|
||||
winset(src, "reportbugb", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]")
|
||||
winset(src, "hotkey_toggle", "background-color = none;background-color = #494949")
|
||||
winset(src, "hotkey_toggle", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]")
|
||||
//Status and verb tabs
|
||||
winset(src, "output", "background-color = none;background-color = [COLOR_DARKMODE_DARKBACKGROUND]")
|
||||
winset(src, "output", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]")
|
||||
winset(src, "outputwindow", "background-color = none;background-color = [COLOR_DARKMODE_DARKBACKGROUND]")
|
||||
winset(src, "outputwindow", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]")
|
||||
winset(src, "statwindow", "background-color = none;background-color = [COLOR_DARKMODE_DARKBACKGROUND]")
|
||||
winset(src, "statwindow", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]")
|
||||
winset(src, "info", "background-color = #FFFFFF;background-color = [COLOR_DARKMODE_DARKBACKGROUND]")
|
||||
winset(src, "info", "tab-background-color = none;tab-background-color = [COLOR_DARKMODE_BACKGROUND]")
|
||||
winset(src, "info", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]")
|
||||
winset(src, "info", "tab-text-color = #000000;tab-text-color = [COLOR_DARKMODE_TEXT]")
|
||||
winset(src, "info", "prefix-color = #000000;prefix-color = [COLOR_DARKMODE_TEXT]")
|
||||
winset(src, "info", "suffix-color = #000000;suffix-color = [COLOR_DARKMODE_TEXT]")
|
||||
//Say, OOC, me Buttons etc.
|
||||
winset(src, "saybutton", "background-color = none;background-color = #494949")
|
||||
winset(src, "saybutton", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]")
|
||||
winset(src, "asset_cache_browser", "background-color = none;background-color = [COLOR_DARKMODE_BACKGROUND]")
|
||||
winset(src, "asset_cache_browser", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]")
|
||||
|
||||
@@ -699,7 +699,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
if(current_species.preview_icon)
|
||||
var/icon/preview = icon(current_species.preview_icon, "")
|
||||
preview.Scale(64, 64) // Scale it here to stop it blurring.
|
||||
to_chat(usr, browse_rsc(icon(icon = preview, icon_state = ""), "species_preview_[current_species.short_name].png"))
|
||||
send_rsc(usr, icon(icon = preview, icon_state = ""), "species_preview_[current_species.short_name].png")
|
||||
dat += "<img src='species_preview_[current_species.short_name].png' width='64px' height='64px'><br/><br/>"
|
||||
dat += "<b>Language:</b> [current_species.language]<br/>"
|
||||
dat += "<small>"
|
||||
@@ -740,9 +740,9 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
|
||||
if(restricted)
|
||||
if(restricted == 1)
|
||||
dat += "<font color='red'><b>You cannot play as this species.</br><small>If you wish to be whitelisted, you can make an application post on <a href='?src=\ref[user];preference=open_whitelist_forum'>the forums</a>.</small></b></font></br>"
|
||||
dat += "<span class='warning'><b>You cannot play as this species.</br><small>If you wish to be whitelisted, you can make an application post on <a href='?src=\ref[user];preference=open_whitelist_forum'>the forums</a>.</small></b></span></br>"
|
||||
else if(restricted == 2)
|
||||
dat += "<font color='red'><b>You cannot play as this species.</br><small>This species is not available for play as a station race.</small></b></font></br>"
|
||||
dat += "<span class='warning'><b>You cannot play as this species.</br><small>This species is not available for play as a station race.</small></b></span></br>"
|
||||
if(!restricted || check_rights(R_ADMIN, 0))
|
||||
dat += "\[<a href='?src=\ref[src];set_species=[html_encode(pref.species_preview)]'>select</a>\]"
|
||||
dat += "</center>"
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
S["UI_style_color"] >> pref.UI_style_color
|
||||
S["UI_style_alpha"] >> pref.UI_style_alpha
|
||||
S["html_UI_style"] >> pref.html_UI_style
|
||||
S["skin_theme"] >> pref.skin_theme
|
||||
S["ooccolor"] >> pref.ooccolor
|
||||
S["clientfps"] >> pref.clientfps
|
||||
|
||||
@@ -16,7 +15,6 @@
|
||||
S["UI_style_color"] << pref.UI_style_color
|
||||
S["UI_style_alpha"] << pref.UI_style_alpha
|
||||
S["html_UI_style"] << pref.html_UI_style
|
||||
S["skin_theme"] << pref.skin_theme
|
||||
S["ooccolor"] << pref.ooccolor
|
||||
S["clientfps"] << pref.clientfps
|
||||
|
||||
@@ -28,7 +26,6 @@
|
||||
"UI_style_color",
|
||||
"UI_style_alpha",
|
||||
"html_UI_style",
|
||||
"skin_theme",
|
||||
"ooccolor",
|
||||
"clientfps",
|
||||
"tooltip_style"
|
||||
@@ -47,7 +44,6 @@
|
||||
"UI_style_color",
|
||||
"UI_style_alpha",
|
||||
"html_UI_style",
|
||||
"skin_theme",
|
||||
"ooccolor",
|
||||
"clientfps",
|
||||
"tooltip_style",
|
||||
@@ -62,7 +58,6 @@
|
||||
"UI_style_color" = pref.UI_style_color,
|
||||
"UI_style" = pref.UI_style,
|
||||
"html_UI_style" = pref.html_UI_style,
|
||||
"skin_theme" = pref.skin_theme,
|
||||
"ooccolor" = pref.ooccolor,
|
||||
"clientfps" = pref.clientfps,
|
||||
"tooltip_style" = pref.tooltip_style
|
||||
@@ -74,7 +69,6 @@
|
||||
pref.UI_style_alpha = sanitize_integer(text2num(pref.UI_style_alpha), 0, 255, initial(pref.UI_style_alpha))
|
||||
pref.clientfps = sanitize_integer(text2num(pref.clientfps), 0, 1000, initial(pref.clientfps))
|
||||
pref.html_UI_style = sanitize_inlist(pref.html_UI_style, SStheming.available_html_themes, initial(pref.html_UI_style))
|
||||
pref.skin_theme = sanitize_inlist(pref.skin_theme, SStheming.skin_themes, initial(pref.skin_theme))
|
||||
pref.ooccolor = sanitize_hexcolor(pref.ooccolor, initial(pref.ooccolor))
|
||||
|
||||
/datum/category_item/player_setup_item/player_global/ui/content(mob/user)
|
||||
@@ -86,7 +80,6 @@
|
||||
dat += "-Alpha(transparency): <a href='?src=\ref[src];select_alpha=1'><b>[pref.UI_style_alpha]</b></a> - <a href='?src=\ref[src];reset=alpha'>reset</a><br>"
|
||||
dat += "<b>Tooltip Style:</b> <a href='?src=\ref[src];select_tooltip_style=1'><b>[pref.tooltip_style]</b></a><br>"
|
||||
dat += "<b>HTML UI Style:</b> <a href='?src=\ref[src];select_html=1'><b>[pref.html_UI_style]</b></a><br>"
|
||||
dat += "<b>Main UI Style:</b> <a href='?src=\ref[src];select_skin_theme=1'><b>[pref.skin_theme]</b></a><br>"
|
||||
dat += "-FPS: <a href='?src=\ref[src];select_fps=1'><b>[pref.clientfps]</b></a> - <a href='?src=\ref[src];reset=fps'>reset</a><br>"
|
||||
if(can_select_ooc_color(user))
|
||||
dat += "<b>OOC Color:</b> "
|
||||
@@ -122,14 +115,6 @@
|
||||
pref.html_UI_style = html_style_new
|
||||
return TOPIC_REFRESH
|
||||
|
||||
else if(href_list["select_skin_theme"])
|
||||
var/skin_theme_new = input(user, "Choose HTML UI style.", "Global Preference", pref.skin_theme) as null|anything in SStheming.skin_themes
|
||||
if(isnull(skin_theme_new) || !CanUseTopic(user)) return TOPIC_NOACTION
|
||||
pref.skin_theme = skin_theme_new
|
||||
if(SStheming)
|
||||
SStheming.apply_theme_from_perfs(user)
|
||||
return TOPIC_REFRESH
|
||||
|
||||
else if(href_list["select_ooc_color"])
|
||||
var/new_ooccolor = input(user, "Choose OOC color:", "Global Preference") as color|null
|
||||
if(new_ooccolor && can_select_ooc_color(user) && CanUseTopic(user))
|
||||
|
||||
@@ -234,7 +234,7 @@
|
||||
|
||||
switch(pref.alternate_option)
|
||||
if(BE_ASSISTANT)
|
||||
dat += "<center><br><u><a href='?src=\ref[src];job_alternative=1'><font color=red>Be assistant if preference unavailable</font></a></u></center><br>"
|
||||
dat += "<center><br><u><a href='?src=\ref[src];job_alternative=1'><span class='attack'>Be assistant if preference unavailable</span></a></u></center><br>"
|
||||
if(RETURN_TO_LOBBY)
|
||||
dat += "<center><br><u><a href='?src=\ref[src];job_alternative=1'><font color=purple>Return to lobby if preference unavailable</font></a></u></center><br>"
|
||||
|
||||
|
||||
@@ -27,7 +27,6 @@ datum/preferences
|
||||
var/UI_style_color = "#ffffff"
|
||||
var/UI_style_alpha = 255
|
||||
var/html_UI_style = "Nano"
|
||||
var/skin_theme = "Light"
|
||||
//Style for popup tooltips
|
||||
var/tooltip_style = "Midnight"
|
||||
var/motd_hash = "" //Hashes for the new server greeting window.
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
if(prefs.asfx_togs & ASFX_AMBIENCE)
|
||||
to_chat(src, "You will now hear ambient sounds.")
|
||||
else
|
||||
to_chat(src, "<font color='red'>You will no longer hear ambient sounds.</font>")
|
||||
to_chat(src, "<span class='warning'>You will no longer hear ambient sounds.</span>")
|
||||
src << sound(null, repeat = 0, wait = 0, volume = 0, channel = 1)
|
||||
src << sound(null, repeat = 0, wait = 0, volume = 0, channel = 2)
|
||||
feedback_add_details("admin_verb","TSFXAmbi") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
@@ -42,7 +42,7 @@
|
||||
if(prefs.asfx_togs & ASFX_FOOTSTEPS)
|
||||
to_chat(src, "You will now hear footstep sounds.")
|
||||
else
|
||||
to_chat(src, "<font color='red'>You will no longer hear footstep sounds.</font>")
|
||||
to_chat(src, "<span class='warning'>You will no longer hear footstep sounds.</span>")
|
||||
feedback_add_details("admin_verb","TSFXFS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/proc/Toggle_asfx_vote()
|
||||
@@ -54,7 +54,7 @@
|
||||
if(prefs.asfx_togs & ASFX_VOTE)
|
||||
to_chat(src, "You will now hear the vote alarm.")
|
||||
else
|
||||
to_chat(src, "<font color='red'>You will no longer hear the vote alarm.</font>")
|
||||
to_chat(src, "<span class='warning'>You will no longer hear the vote alarm.</span>")
|
||||
feedback_add_details("admin_verb","TSFXFV") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/proc/toggle_vox_voice()
|
||||
@@ -76,7 +76,7 @@
|
||||
if(prefs.asfx_togs & ASFX_DROPSOUND)
|
||||
to_chat(src, "You will now hear dropping and throwing sounds.")
|
||||
else
|
||||
to_chat(src, "<font color='red'>You will no longer hear dropping and throwing sounds.</font>")
|
||||
to_chat(src, "<span class='warning'>You will no longer hear dropping and throwing sounds.</span>")
|
||||
|
||||
/client/proc/Toggle_arcadesounds()
|
||||
set name = "Toggle Arcade SFX"
|
||||
@@ -88,7 +88,7 @@
|
||||
if(prefs.asfx_togs & ASFX_ARCADE)
|
||||
to_chat(src, "You will now hear arcade sounds.")
|
||||
else
|
||||
to_chat(src, "<font color='red'>You will no longer hear arcade sounds.</font>")
|
||||
to_chat(src, "<span class='warning'>You will no longer hear arcade sounds.</span>")
|
||||
|
||||
/client/proc/Toggle_radiosounds()
|
||||
set name = "Toggle Radio SFX"
|
||||
@@ -100,7 +100,7 @@
|
||||
if(prefs.asfx_togs & ASFX_RADIO)
|
||||
to_chat(src, "You will now hear radio sounds.")
|
||||
else
|
||||
to_chat(src, "<font color='red'>You will no longer hear radio sounds.</font>")
|
||||
to_chat(src, "<span class='warning'>You will no longer hear radio sounds.</span>")
|
||||
|
||||
/client/proc/Toggle_instrumentsounds()
|
||||
set name = "Toggle Instrument SFX"
|
||||
@@ -112,4 +112,4 @@
|
||||
if(prefs.asfx_togs & ASFX_INSTRUMENT)
|
||||
to_chat(src, "You will now hear instrument sounds.")
|
||||
else
|
||||
to_chat(src, "<font color='red'>You will no longer hear instrument sounds.</font>")
|
||||
to_chat(src, "<span class='warning'>You will no longer hear instrument sounds.</span>")
|
||||
@@ -205,7 +205,7 @@
|
||||
if(panel_notification)
|
||||
new_notification("warning","You have <b>[notification_count] unread notifications!</b> Click <a href='?JSlink=warnings;notification=:src_ref'>here</a> to review and acknowledge them!")
|
||||
if(chat_notification)
|
||||
to_chat(user,"<font color='red'><BIG><B>You have unacknowledged notifications.</B></BIG><br>Click <a href='?JSlink=warnings;notification=:src_ref'>here</a> to review and acknowledge them!</font>")
|
||||
to_chat(user,"<span class='warning'><BIG><B>You have unacknowledged notifications.</B></BIG><br>Click <a href='?JSlink=warnings;notification=:src_ref'>here</a> to review and acknowledge them!</span>")
|
||||
|
||||
/*
|
||||
* Helper proc for getting a count of active CCIA actions against the player's characters.
|
||||
|
||||
Reference in New Issue
Block a user