Progress in core mutation: [T.applied] / [SLIME_EXTRACT_CROSSING_REQUIRED]")
+ to_chat(user, "Progress in core mutation: [T.applied] / [SLIME_EXTRACT_CROSSING_REQUIRED]")
to_chat(user, "========================")
diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm
index 84e5ba4f82..5f3153d90f 100644
--- a/code/modules/admin/verbs/adminpm.dm
+++ b/code/modules/admin/verbs/adminpm.dm
@@ -6,7 +6,7 @@
set category = null
set name = "Admin PM Mob"
if(!holder)
- to_chat(src, "Error: Admin-PM-Context: Only administrators may use this command.")
+ to_chat(src, "Error: Admin-PM-Context: Only administrators may use this command.")
return
if( !ismob(M) || !M.client )
return
@@ -18,7 +18,7 @@
set category = "Admin"
set name = "Admin PM"
if(!holder)
- to_chat(src, "Error: Admin-PM-Panel: Only administrators may use this command.")
+ to_chat(src, "Error: Admin-PM-Panel: Only administrators may use this command.")
return
var/list/client/targets[0]
for(var/client/T)
@@ -37,7 +37,7 @@
/client/proc/cmd_ahelp_reply(whom)
if(prefs.muted & MUTE_ADMINHELP)
- to_chat(src, "Error: Admin-PM: You are unable to use admin PM-s (muted).")
+ to_chat(src, "Error: Admin-PM: You are unable to use admin PM-s (muted).")
return
var/client/C
if(istext(whom))
@@ -48,7 +48,7 @@
C = whom
if(!C)
if(holder)
- to_chat(src, "Error: Admin-PM: Client not found.")
+ to_chat(src, "Error: Admin-PM: Client not found.")
return
var/datum/admin_help/AH = C.current_ticket
@@ -65,12 +65,12 @@
//Fetching a message if needed. src is the sender and C is the target client
/client/proc/cmd_admin_pm(whom, msg)
if(prefs.muted & MUTE_ADMINHELP)
- to_chat(src, "Error: Admin-PM: You are unable to use admin PM-s (muted).")
+ to_chat(src, "Error: Admin-PM: You are unable to use admin PM-s (muted).")
return
if(!holder && !current_ticket) //no ticket? https://www.youtube.com/watch?v=iHSPf6x1Fdo
- to_chat(src, "You can no longer reply to this ticket, please open another one by using the Adminhelp verb if need be.")
- to_chat(src, "Message: [msg]")
+ to_chat(src, "You can no longer reply to this ticket, please open another one by using the Adminhelp verb if need be.")
+ to_chat(src, "Message: [msg]")
return
var/client/recipient
@@ -95,14 +95,14 @@
if(!msg)
return
if(holder)
- to_chat(src, "Error: Use the admin IRC channel, nerd.")
+ to_chat(src, "Error: Use the admin IRC channel, nerd.")
return
else
if(!recipient)
if(holder)
- to_chat(src, "Error: Admin-PM: Client not found.")
+ to_chat(src, "Error: Admin-PM: Client not found.")
if(msg)
to_chat(src, msg)
return
@@ -118,12 +118,12 @@
return
if(prefs.muted & MUTE_ADMINHELP)
- to_chat(src, "Error: Admin-PM: You are unable to use admin PM-s (muted).")
+ to_chat(src, "Error: Admin-PM: You are unable to use admin PM-s (muted).")
return
if(!recipient)
if(holder)
- to_chat(src, "Error: Admin-PM: Client not found.")
+ to_chat(src, "Error: Admin-PM: Client not found.")
else
current_ticket.MessageNoRecipient(msg)
return
@@ -145,15 +145,15 @@
var/keywordparsedmsg = keywords_lookup(msg)
if(irc)
- to_chat(src, "PM to-Admins: [rawmsg]")
+ to_chat(src, "PM to-Admins: [rawmsg]")
var/datum/admin_help/AH = admin_ticket_log(src, "Reply PM from-[key_name(src, TRUE, TRUE)] to IRC: [keywordparsedmsg]")
ircreplyamount--
send2irc("[AH ? "#[AH.id] " : ""]Reply: [ckey]", rawmsg)
else
if(recipient.holder)
if(holder) //both are admins
- to_chat(recipient, "Admin PM from-[key_name(src, recipient, 1)]: [keywordparsedmsg]")
- to_chat(src, "Admin PM to-[key_name(recipient, src, 1)]: [keywordparsedmsg]")
+ to_chat(recipient, "Admin PM from-[key_name(src, recipient, 1)]: [keywordparsedmsg]")
+ to_chat(src, "Admin PM to-[key_name(recipient, src, 1)]: [keywordparsedmsg]")
//omg this is dumb, just fill in both their tickets
var/interaction_message = "PM from-[key_name(src, recipient, 1)] to-[key_name(recipient, src, 1)]: [keywordparsedmsg]"
@@ -162,10 +162,10 @@
admin_ticket_log(recipient, interaction_message)
else //recipient is an admin but sender is not
- var/replymsg = "Reply PM from-[key_name(src, recipient, 1)]: [keywordparsedmsg]"
- admin_ticket_log(src, replymsg)
- to_chat(recipient, replymsg)
- to_chat(src, "PM to-Admins: [msg]")
+ var/replymsg = "Reply PM from-[key_name(src, recipient, 1)]: [keywordparsedmsg]"
+ admin_ticket_log(src, "[replymsg]")
+ to_chat(recipient, "[replymsg]")
+ to_chat(src, "PM to-Admins: [msg]")
//play the receiving admin the adminhelp sound (if they have them enabled)
if(recipient.prefs.toggles & SOUND_ADMINHELP)
@@ -177,11 +177,11 @@
new /datum/admin_help(msg, recipient, TRUE)
to_chat(recipient, "-- Administrator private message --")
- to_chat(recipient, "Admin PM from-[key_name(src, recipient, 0)]: [msg]")
- to_chat(recipient, "Click on the administrator's name to reply.")
- to_chat(src, "Admin PM to-[key_name(recipient, src, 1)]: [msg]")
+ to_chat(recipient, "Admin PM from-[key_name(src, recipient, 0)]: [msg]")
+ to_chat(recipient, "Click on the administrator's name to reply.")
+ to_chat(src, "Admin PM to-[key_name(recipient, src, 1)]: [msg]")
- admin_ticket_log(recipient, "PM From [key_name_admin(src)]: [keywordparsedmsg]")
+ admin_ticket_log(recipient, "PM From [key_name_admin(src)]: [keywordparsedmsg]")
//always play non-admin recipients the adminhelp sound
SEND_SOUND(recipient, sound('sound/effects/adminhelp.ogg'))
@@ -200,20 +200,20 @@
return
else //neither are admins
- to_chat(src, "Error: Admin-PM: Non-admin to non-admin PM communication is forbidden.")
+ to_chat(src, "Error: Admin-PM: Non-admin to non-admin PM communication is forbidden.")
return
if(irc)
log_admin_private("PM: [key_name(src)]->IRC: [rawmsg]")
for(var/client/X in GLOB.admins)
- to_chat(X, "PM: [key_name(src, X, 0)]->IRC: [keywordparsedmsg]")
+ to_chat(X, "PM: [key_name(src, X, 0)]->IRC: [keywordparsedmsg]")
else
window_flash(recipient, ignorepref = TRUE)
log_admin_private("PM: [key_name(src)]->[key_name(recipient)]: [rawmsg]")
//we don't use message_admins here because the sender/receiver might get it too
for(var/client/X in GLOB.admins)
if(X.key!=key && X.key!=recipient.key) //check client/X is an admin and isn't the sender or recipient
- to_chat(X, "PM: [key_name(src, X, 0)]->[key_name(recipient, X, 0)]: [keywordparsedmsg]" )
+ to_chat(X, "PM: [key_name(src, X, 0)]->[key_name(recipient, X, 0)]: [keywordparsedmsg]" )
@@ -296,10 +296,10 @@
msg = emoji_parse(msg)
to_chat(C, "-- Administrator private message --")
- to_chat(C, "Admin PM from-[adminname]: [msg]")
- to_chat(C, "Click on the administrator's name to reply.")
+ to_chat(C, "Admin PM from-[adminname]: [msg]")
+ to_chat(C, "Click on the administrator's name to reply.")
- admin_ticket_log(C, "PM From [irc_tagged]: [msg]")
+ admin_ticket_log(C, "PM From [irc_tagged]: [msg]")
window_flash(C, ignorepref = TRUE)
//always play non-admin recipients the adminhelp sound
diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm
index f74b31760d..52e76f95b6 100644
--- a/code/modules/admin/verbs/randomverbs.dm
+++ b/code/modules/admin/verbs/randomverbs.dm
@@ -298,7 +298,7 @@
if(candidates.len)
ckey = input("Pick the player you want to respawn as a xeno.", "Suitable Candidates") as null|anything in candidates
else
- to_chat(usr, "Error: create_xeno(): no suitable candidates.")
+ to_chat(usr, "Error: create_xeno(): no suitable candidates.")
if(!istext(ckey))
return 0
diff --git a/code/modules/client/darkmode.dm b/code/modules/client/darkmode.dm
new file mode 100644
index 0000000000..9e8d136b3b
--- /dev/null
+++ b/code/modules/client/darkmode.dm
@@ -0,0 +1,117 @@
+//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 = [COLOR_WHITEMODE_DARKBACKGROUND]")
+ winset(src, "infowindow", "text-color = [COLOR_DARKMODE_TEXT];text-color = [COLOR_WHITEMODE_TEXT]")
+ winset(src, "info", "background-color = [COLOR_DARKMODE_BACKGROUND];background-color = [COLOR_WHITEMODE_BACKGROUND]")
+ winset(src, "info", "text-color = [COLOR_DARKMODE_TEXT];text-color = [COLOR_WHITEMODE_TEXT]")
+ winset(src, "browseroutput", "background-color = [COLOR_DARKMODE_BACKGROUND];background-color = [COLOR_DARKMODE_INFO_BUTTONS_BG]")
+ winset(src, "browseroutput", "text-color = [COLOR_DARKMODE_TEXT];text-color = [COLOR_WHITEMODE_TEXT]")
+ winset(src, "outputwindow", "background-color = [COLOR_DARKMODE_BACKGROUND];background-color = [COLOR_WHITEMODE_DARKBACKGROUND]")
+ winset(src, "outputwindow", "text-color = [COLOR_DARKMODE_TEXT];text-color = [COLOR_WHITEMODE_TEXT]")
+ winset(src, "mainwindow", "background-color = [COLOR_DARKMODE_DARKBACKGROUND];background-color = [COLOR_WHITEMODE_DARKBACKGROUND]")
+ winset(src, "split", "background-color = [COLOR_DARKMODE_DARKBACKGROUND];background-color = [COLOR_WHITEMODE_BACKGROUND]")
+ //Buttons
+ winset(src, "changelog", "background-color = [COLOR_DARKMODE_INFO_BUTTONS_BG];background-color = [COLOR_WHITEMODE_INFO_BUTTONS_BG]")
+ winset(src, "changelog", "text-color = [COLOR_DARKMODE_TEXT];text-color = [COLOR_WHITEMODE_TEXT]")
+ winset(src, "rules", "background-color = [COLOR_DARKMODE_INFO_BUTTONS_BG];background-color = [COLOR_WHITEMODE_INFO_BUTTONS_BG]")
+ winset(src, "rules", "text-color = [COLOR_DARKMODE_TEXT];text-color = [COLOR_WHITEMODE_TEXT]")
+ winset(src, "wiki", "background-color = [COLOR_DARKMODE_INFO_BUTTONS_BG];background-color = [COLOR_WHITEMODE_INFO_BUTTONS_BG]")
+ winset(src, "wiki", "text-color = [COLOR_DARKMODE_TEXT];text-color = [COLOR_WHITEMODE_TEXT]")
+ winset(src, "forum", "background-color = [COLOR_DARKMODE_INFO_BUTTONS_BG];background-color = [COLOR_WHITEMODE_INFO_BUTTONS_BG]")
+ winset(src, "forum", "text-color = [COLOR_DARKMODE_TEXT];text-color = [COLOR_WHITEMODE_TEXT]")
+ winset(src, "github", "background-color = [COLOR_DARKMODE_INFO_BUTTONS_BG];background-color = [COLOR_WHITEMODE_INFO_BUTTONS_BG]")
+ winset(src, "github", "text-color = [COLOR_DARKMODE_TEXT];text-color = [COLOR_WHITEMODE_TEXT]")
+ winset(src, "report-issue", "background-color = [COLOR_DARKMODE_ISSUE_BUTTON_BG];background-color = [COLOR_WHITEMODE_ISSUE_BUTTON_BG]")
+ winset(src, "report-issue", "text-color = [COLOR_DARKMODE_TEXT];text-color = [COLOR_WHITEMODE_TEXT]")
+ //Status and verb tabs
+ winset(src, "output", "background-color = [COLOR_DARKMODE_DARKBACKGROUND];background-color = [COLOR_WHITEMODE_BACKGROUND]")
+ winset(src, "output", "text-color = [COLOR_DARKMODE_TEXT];text-color = [COLOR_WHITEMODE_TEXT]")
+ winset(src, "statwindow", "background-color = [COLOR_DARKMODE_BACKGROUND];background-color = [COLOR_WHITEMODE_DARKBACKGROUND]")
+ winset(src, "statwindow", "text-color = #eaeaea;text-color = [COLOR_WHITEMODE_TEXT]")
+ winset(src, "stat", "background-color = [COLOR_DARKMODE_DARKBACKGROUND];background-color = [COLOR_WHITEMODE_BACKGROUND]")
+ winset(src, "stat", "tab-background-color = [COLOR_DARKMODE_BACKGROUND];tab-background-color = [COLOR_WHITEMODE_DARKBACKGROUND]")
+ winset(src, "stat", "text-color = [COLOR_DARKMODE_TEXT];text-color = [COLOR_WHITEMODE_TEXT]")
+ winset(src, "stat", "tab-text-color = [COLOR_DARKMODE_TEXT];tab-text-color = [COLOR_WHITEMODE_TEXT]")
+ winset(src, "stat", "prefix-color = [COLOR_DARKMODE_TEXT];prefix-color = [COLOR_WHITEMODE_TEXT]")
+ winset(src, "stat", "suffix-color = [COLOR_DARKMODE_TEXT];suffix-color = [COLOR_WHITEMODE_TEXT]")
+ //Etc.
+ winset(src, "say", "background-color = [COLOR_DARKMODE_DARKBACKGROUND];background-color = [COLOR_WHITEMODE_DARKBACKGROUND]")
+ winset(src, "say", "text-color = [COLOR_DARKMODE_TEXT];text-color = [COLOR_WHITEMODE_TEXT]")
+ winset(src, "asset_cache_browser", "background-color = [COLOR_DARKMODE_BACKGROUND];background-color = [COLOR_WHITEMODE_DARKBACKGROUND]")
+ winset(src, "asset_cache_browser", "text-color = [COLOR_DARKMODE_TEXT];text-color = [COLOR_WHITEMODE_TEXT]")
+ winset(src, "tooltip", "background-color = [COLOR_DARKMODE_BACKGROUND];background-color = [COLOR_WHITEMODE_BACKGROUND]")
+ winset(src, "tooltip", "text-color = [COLOR_DARKMODE_TEXT];text-color = [COLOR_WHITEMODE_TEXT]")
+
+/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 = [COLOR_WHITEMODE_DARKBACKGROUND];background-color = [COLOR_DARKMODE_DARKBACKGROUND]")
+ winset(src, "infowindow", "text-color = [COLOR_WHITEMODE_TEXT];text-color = [COLOR_DARKMODE_TEXT]")
+ winset(src, "info", "background-color = [COLOR_WHITEMODE_BACKGROUND];background-color = [COLOR_DARKMODE_BACKGROUND]")
+ winset(src, "info", "text-color = [COLOR_WHITEMODE_TEXT];text-color = [COLOR_DARKMODE_TEXT]")
+ winset(src, "browseroutput", "background-color = [COLOR_WHITEMODE_BACKGROUND];background-color = [COLOR_DARKMODE_BACKGROUND]")
+ winset(src, "browseroutput", "text-color = [COLOR_WHITEMODE_TEXT];text-color = [COLOR_DARKMODE_TEXT]")
+ winset(src, "outputwindow", "background-color = [COLOR_WHITEMODE_DARKBACKGROUND];background-color = [COLOR_DARKMODE_BACKGROUND]")
+ winset(src, "outputwindow", "text-color = [COLOR_WHITEMODE_TEXT];text-color = [COLOR_DARKMODE_TEXT]")
+ winset(src, "mainwindow", "background-color = [COLOR_WHITEMODE_DARKBACKGROUND];background-color = [COLOR_DARKMODE_DARKBACKGROUND]")
+ winset(src, "split", "background-color = [COLOR_WHITEMODE_BACKGROUND];background-color = [COLOR_DARKMODE_BACKGROUND]")
+ //Buttons
+ winset(src, "changelog", "background-color = [COLOR_WHITEMODE_INFO_BUTTONS_BG];background-color = [COLOR_DARKMODE_INFO_BUTTONS_BG]")
+ winset(src, "changelog", "text-color = [COLOR_WHITEMODE_TEXT];text-color = [COLOR_DARKMODE_TEXT]")
+ winset(src, "rules", "background-color = [COLOR_WHITEMODE_INFO_BUTTONS_BG];background-color = [COLOR_DARKMODE_INFO_BUTTONS_BG]")
+ winset(src, "rules", "text-color = [COLOR_WHITEMODE_TEXT];text-color = [COLOR_DARKMODE_TEXT]")
+ winset(src, "wiki", "background-color = [COLOR_WHITEMODE_INFO_BUTTONS_BG];background-color = [COLOR_DARKMODE_INFO_BUTTONS_BG]")
+ winset(src, "wiki", "text-color = [COLOR_WHITEMODE_TEXT];text-color = [COLOR_DARKMODE_TEXT]")
+ winset(src, "forum", "background-color = [COLOR_WHITEMODE_INFO_BUTTONS_BG];background-color = [COLOR_DARKMODE_INFO_BUTTONS_BG]")
+ winset(src, "forum", "text-color = [COLOR_WHITEMODE_TEXT];text-color = [COLOR_DARKMODE_TEXT]")
+ winset(src, "github", "background-color = [COLOR_WHITEMODE_INFO_BUTTONS_BG];background-color = [COLOR_DARKMODE_INFO_BUTTONS_BG]")
+ winset(src, "github", "text-color = [COLOR_WHITEMODE_TEXT];text-color = [COLOR_DARKMODE_TEXT]")
+ winset(src, "report-issue", "background-color = [COLOR_WHITEMODE_ISSUE_BUTTON_BG];background-color = [COLOR_DARKMODE_ISSUE_BUTTON_BG]")
+ winset(src, "report-issue", "text-color = [COLOR_WHITEMODE_TEXT];text-color = [COLOR_DARKMODE_TEXT]")
+ //Status and verb tabs
+ winset(src, "output", "background-color = [COLOR_WHITEMODE_DARKBACKGROUND];background-color = [COLOR_DARKMODE_BACKGROUND]")
+ winset(src, "output", "text-color = [COLOR_WHITEMODE_TEXT];text-color = [COLOR_DARKMODE_TEXT]")
+ winset(src, "statwindow", "background-color = [COLOR_WHITEMODE_DARKBACKGROUND];background-color = [COLOR_DARKMODE_DARKBACKGROUND]")
+ winset(src, "statwindow", "text-color = [COLOR_WHITEMODE_TEXT];text-color = [COLOR_DARKMODE_TEXT]")
+ winset(src, "stat", "background-color = [COLOR_WHITEMODE_BACKGROUND];background-color = [COLOR_DARKMODE_DARKBACKGROUND]")
+ winset(src, "stat", "tab-background-color = [COLOR_WHITEMODE_DARKBACKGROUND];tab-background-color = [COLOR_DARKMODE_BACKGROUND]")
+ winset(src, "stat", "text-color = [COLOR_WHITEMODE_TEXT];text-color = [COLOR_DARKMODE_TEXT]")
+ winset(src, "stat", "tab-text-color = [COLOR_WHITEMODE_TEXT];tab-text-color = [COLOR_DARKMODE_TEXT]")
+ winset(src, "stat", "prefix-color = [COLOR_WHITEMODE_TEXT];prefix-color = [COLOR_DARKMODE_TEXT]")
+ winset(src, "stat", "suffix-color = [COLOR_WHITEMODE_TEXT];suffix-color = [COLOR_DARKMODE_TEXT]")
+ //Etc.
+ winset(src, "say", "background-color = [COLOR_WHITEMODE_DARKBACKGROUND];background-color = [COLOR_DARKMODE_BACKGROUND]")
+ winset(src, "say", "text-color = [COLOR_WHITEMODE_TEXT];text-color = [COLOR_DARKMODE_TEXT]")
+ winset(src, "asset_cache_browser", "background-color = [COLOR_WHITEMODE_DARKBACKGROUND];background-color = [COLOR_DARKMODE_BACKGROUND]")
+ winset(src, "asset_cache_browser", "text-color = [COLOR_WHITEMODE_TEXT];text-color = [COLOR_DARKMODE_TEXT]")
+ winset(src, "tooltip", "background-color = [COLOR_WHITEMODE_BACKGROUND];background-color = [COLOR_DARKMODE_BACKGROUND]")
+ winset(src, "tooltip", "text-color = [COLOR_WHITEMODE_TEXT];text-color = [COLOR_DARKMODE_TEXT]")
+
+
+/datum/asset/simple/goonchat
+ verify = FALSE
+ assets = list(
+ "json2.min.js" = 'code/modules/goonchat/browserassets/js/json2.min.js',
+ "errorHandler.js" = 'code/modules/goonchat/browserassets/js/errorHandler.js',
+ "browserOutput.js" = 'code/modules/goonchat/browserassets/js/browserOutput.js',
+ "fontawesome-webfont.eot" = 'tgui/assets/fonts/fontawesome-webfont.eot',
+ "fontawesome-webfont.svg" = 'tgui/assets/fonts/fontawesome-webfont.svg',
+ "fontawesome-webfont.ttf" = 'tgui/assets/fonts/fontawesome-webfont.ttf',
+ "fontawesome-webfont.woff" = 'tgui/assets/fonts/fontawesome-webfont.woff',
+ "font-awesome.css" = 'code/modules/goonchat/browserassets/css/font-awesome.css',
+ "browserOutput.css" = 'code/modules/goonchat/browserassets/css/browserOutput.css',
+ "browserOutput_white.css" = 'code/modules/goonchat/browserassets/css/browserOutput_white.css',
+ )
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 9e48591361..54d75e8437 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -29,7 +29,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
//game-preferences
var/lastchangelog = "" //Saved changlog filesize to detect if there was a change
- var/ooccolor = null
+ var/ooccolor = "#c43b23"
+ var/aooccolor = "#ce254f"
var/enable_tips = TRUE
var/tip_delay = 500 //tip delay in milliseconds
@@ -774,6 +775,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "BYOND Membership Publicity: [(toggles & MEMBER_PUBLIC) ? "Public" : "Hidden"]
"
if(unlock_content || check_rights_for(user.client, R_ADMIN))
dat += "OOC Color: Change
"
+ dat += "Antag OOC Color: Change
"
+
dat += ""
if(user.client.holder)
dat +=""
@@ -1951,6 +1954,11 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if(new_ooccolor)
ooccolor = new_ooccolor
+ if("aooccolor")
+ var/new_aooccolor = input(user, "Choose your Antag OOC colour:", "Game Preference",ooccolor) as color|null
+ if(new_aooccolor)
+ aooccolor = new_aooccolor
+
if("bag")
var/new_backbag = input(user, "Choose your character's style of bag:", "Character Preference") as null|anything in GLOB.backbaglist
if(new_backbag)
diff --git a/code/modules/client/verbs/aooc.dm b/code/modules/client/verbs/aooc.dm
index 893501a852..311c22955d 100644
--- a/code/modules/client/verbs/aooc.dm
+++ b/code/modules/client/verbs/aooc.dm
@@ -1,3 +1,6 @@
+GLOBAL_VAR_INIT(AOOC_COLOR, null)//If this is null, use the CSS for OOC. Otherwise, use a custom colour.
+GLOBAL_VAR_INIT(normal_aooc_colour, "#ce254f")
+
/client/verb/aooc(msg as text)
set name = "AOOC"
set desc = "An OOC channel exclusive to antagonists."
@@ -50,7 +53,7 @@
var/keyname = key
if(prefs.unlock_content)
if(prefs.toggles & MEMBER_PUBLIC)
- keyname = "[icon2html('icons/member_content.dmi', world, "blag")][keyname]"
+ keyname = "[icon2html('icons/member_content.dmi', world, "blag")][keyname]"
//The linkify span classes and linkify=TRUE below make ooc text get clickable chat href links if you pass in something resembling a url
var/antaglisting = list()
@@ -74,23 +77,27 @@
else
to_chat(C, "Antag OOC: [keyname][holder.fakekey ? "/([holder.fakekey])" : ""]: [msg]")
else
- to_chat(C, "Antag OOC: [holder.fakekey ? holder.fakekey : key]: [msg]")
+ if(GLOB.AOOC_COLOR)
+ to_chat(C, "Antag OOC: [holder.fakekey ? holder.fakekey : key]: [msg]")
+ else
+ to_chat(C, "Antag OOC: [holder.fakekey ? holder.fakekey : key]: [msg]")
else if(!(key in C.prefs.ignoring))
- to_chat(C, "Antag OOC: [keyname]: [msg]")
-
-GLOBAL_VAR_INIT(antag_ooc_colour, AOOC_COLOR)
+ if(GLOB.AOOC_COLOR)
+ to_chat(C, "Antag OOC: [keyname]: [msg]")
+ else
+ to_chat(C, "Antag OOC: [keyname]: [msg]")
/client/proc/set_aooc(newColor as color)
set name = "Set Antag OOC Color"
set desc = "Modifies antag OOC Color"
set category = "Fun"
- GLOB.antag_ooc_colour = sanitize_ooccolor(newColor)
+ GLOB.AOOC_COLOR = sanitize_ooccolor(newColor)
/client/proc/reset_aooc()
set name = "Reset Antag OOC Color"
set desc = "Returns antag OOC Color to default"
set category = "Fun"
- GLOB.antag_ooc_colour = AOOC_COLOR
+ GLOB.AOOC_COLOR = null
/proc/toggle_aooc(toggle = null)
if(toggle != null) //if we're specifically en/disabling ooc
diff --git a/code/modules/client/verbs/ooc.dm b/code/modules/client/verbs/ooc.dm
index 5df13a1ffe..8a233025a1 100644
--- a/code/modules/client/verbs/ooc.dm
+++ b/code/modules/client/verbs/ooc.dm
@@ -1,3 +1,6 @@
+GLOBAL_VAR_INIT(OOC_COLOR, null)//If this is null, use the CSS for OOC. Otherwise, use a custom colour.
+GLOBAL_VAR_INIT(normal_ooc_colour, "#002eb8")
+
/client/verb/ooc(msg as text)
set name = "OOC" //Gave this shit a shorter name so you only have to time out "ooc" rather than "ooc message" to use it --NeoFite
set category = "OOC"
@@ -66,9 +69,15 @@
else
to_chat(C, "OOC: [keyname][holder.fakekey ? "/([holder.fakekey])" : ""]: [msg]")
else
- to_chat(C, "OOC: [holder.fakekey ? holder.fakekey : key]: [msg]")
+ if(GLOB.OOC_COLOR)
+ to_chat(C, "OOC: [holder.fakekey ? holder.fakekey : key]: [msg]")
+ else
+ to_chat(C, "OOC: [holder.fakekey ? holder.fakekey : key]: [msg]")
else if(!(key in C.prefs.ignoring))
- to_chat(C, "OOC: [keyname]: [msg]")
+ if(GLOB.OOC_COLOR)
+ to_chat(C, "OOC: [keyname]: [msg]")
+ else
+ to_chat(C, "OOC: [keyname]: [msg]")
/proc/toggle_ooc(toggle = null)
if(toggle != null) //if we're specifically en/disabling ooc
@@ -99,19 +108,17 @@
else
GLOB.dooc_allowed = !GLOB.dooc_allowed
-GLOBAL_VAR_INIT(normal_ooc_colour, OOC_COLOR)
-
/client/proc/set_ooc(newColor as color)
set name = "Set Player OOC Color"
set desc = "Modifies player OOC Color"
set category = "Fun"
- GLOB.normal_ooc_colour = sanitize_ooccolor(newColor)
+ GLOB.OOC_COLOR = sanitize_ooccolor(newColor)
/client/proc/reset_ooc()
set name = "Reset Player OOC Color"
set desc = "Returns player OOC Color to default"
set category = "Fun"
- GLOB.normal_ooc_colour = OOC_COLOR
+ GLOB.OOC_COLOR = null
/client/verb/colorooc()
set name = "Set Your OOC Color"
diff --git a/code/modules/goonchat/browserOutput.dm b/code/modules/goonchat/browserOutput.dm
index 463df71f71..082f20f524 100644
--- a/code/modules/goonchat/browserOutput.dm
+++ b/code/modules/goonchat/browserOutput.dm
@@ -82,6 +82,12 @@ GLOBAL_DATUM_INIT(iconCache, /savefile, new("tmp/iconCache.sav")) //Cache of ico
if("setMusicVolume")
data = setMusicVolume(arglist(params))
+ if("swaptodarkmode")
+ swaptodarkmode()
+
+ if("swaptolightmode")
+ swaptolightmode()
+
if(data)
ehjax_send(data = data)
@@ -240,3 +246,10 @@ GLOBAL_DATUM_INIT(iconCache, /savefile, new("tmp/iconCache.sav")) //Cache of ico
// url_encode it TWICE, this way any UTF-8 characters are able to be decoded by the Javascript.
C << output(url_encode(url_encode(message)), "browseroutput:output")
+
+
+/datum/chatOutput/proc/swaptolightmode() //Dark mode light mode stuff. Yell at KMC if this breaks! (See darkmode.dm for documentation)
+ owner.force_white_theme()
+
+/datum/chatOutput/proc/swaptodarkmode()
+ owner.force_dark_theme()
diff --git a/code/modules/goonchat/browserassets/css/browserOutput.css b/code/modules/goonchat/browserassets/css/browserOutput.css
index cf11b77879..b6db020df0 100644
--- a/code/modules/goonchat/browserassets/css/browserOutput.css
+++ b/code/modules/goonchat/browserassets/css/browserOutput.css
@@ -7,16 +7,20 @@ html, body {
padding: 0;
margin: 0;
height: 100%;
- color: #000000;
+ color: #f0f0f0;
}
body {
- background: #E0E0E0; /*CIT CHANGE - darkens chatbox a lil*/
+ background: #171717;
font-family: Verdana, sans-serif;
font-size: 9pt;
+ font-color: #f0f0f0;
line-height: 1.2;
overflow-x: hidden;
overflow-y: scroll;
- word-wrap: break-word;
+ word-wrap: break-word;
+ scrollbar-face-color:#1A1A1A;
+ scrollbar-track-color:#171717;
+ scrollbar-highlight-color:#171717;
}
em {
@@ -56,9 +60,9 @@ img.icon {
border-radius: 10px;
}
-a {color: #0000ff;}
-a.visited {color: #ff00ff;}
-a:visited {color: #ff00ff;}
+a {color: #397ea5;}
+a.visited {color: #7c00e6;}
+a:visited {color: #7c00e6;}
a.popt {text-decoration: none;}
/*****************************************
@@ -89,21 +93,21 @@ a.popt {text-decoration: none;}
bottom: 0;
right: 0;
padding: 8px;
- background: #ddd;
+ background: #202020;
text-decoration: none;
font-variant: small-caps;
font-size: 1.1em;
font-weight: bold;
- color: #333;
+ color: #a4bad6;
}
-#newMessages:hover {background: #ccc;}
+#newMessages:hover {background: #171717;}
#newMessages i {vertical-align: middle; padding-left: 3px;}
#ping {
position: fixed;
top: 0;
- right: 80px;
+ right: 115px;
width: 45px;
- background: #ddd;
+ background: #202020;
height: 30px;
padding: 8px 0 2px 0;
}
@@ -120,19 +124,19 @@ a.popt {text-decoration: none;}
right: 0;
}
#userBar .subCell {
- background: #ddd;
+ background: #202020;
height: 30px;
padding: 5px 0;
display: block;
- color: #333;
+ color: #a4bad6;
text-decoration: none;
line-height: 28px;
- border-top: 1px solid #b4b4b4;
+ border-top: 1px solid #171717;
}
-#userBar .subCell:hover {background: #ccc;}
+#userBar .subCell:hover {background: #202020;}
#userBar .toggle {
width: 40px;
- background: #ccc;
+ background: #202020;
border-top: 0;
float: right;
text-align: center;
@@ -242,9 +246,9 @@ a.popt {text-decoration: none;}
******************************************/
/* MOTD */
-.motd {color: #638500; font-family: Verdana, sans-serif;}
-.motd h1, .motd h2, .motd h3, .motd h4, .motd h5, .motd h6 {color: #638500; text-decoration: underline;}
-.motd a, .motd a:link, .motd a:visited, .motd a:active, .motd a:hover {color: #638500;}
+.motd {color: #a4bad6; font-family: Verdana, sans-serif;}
+.motd h1, .motd h2, .motd h3, .motd h4, .motd h5, .motd h6 {color: #a4bad6; text-decoration: underline;}
+.motd a, .motd a:link, .motd a:visited, .motd a:active, .motd a:hover {color: #a4bad6;}
/* ADD HERE FOR BOLD */
.bold, .name, .prefix, .ooc, .looc, .adminooc, .admin, .medal, .yell {font-weight: bold;}
@@ -255,88 +259,90 @@ a.popt {text-decoration: none;}
/* OUTPUT COLORS */
.highlight {background: yellow;}
-h1, h2, h3, h4, h5, h6 {color: #0000ff;font-family: Georgia, Verdana, sans-serif;}
-h1.alert, h2.alert {color: #000000;}
+h1, h2, h3, h4, h5, h6 {color: #a4bad6;font-family: Georgia, Verdana, sans-serif;}
+h1.alert, h2.alert {color: #a4bad6;}
em {font-style: normal; font-weight: bold;}
-.ooc { font-weight: bold;}
+.ooc {color: #cca300; font-weight: bold;}
+.antagooc {color: #ce254f; font-weight: bold;}
.adminobserverooc {color: #0099cc; font-weight: bold;}
-.adminooc {color: #700038; font-weight: bold;}
+.adminooc {color: #3d5bc3; font-weight: bold;}
-.adminsay {color: #FF4500; font-weight: bold;}
-.admin {color: #386aff; font-weight: bold;}
+.adminsay {color: #ff4500; font-weight: bold;}
+.admin {color: #5975da; font-weight: bold;}
.name { font-weight: bold;}
.say {}
-.deadsay {color: #5c00e6;}
+.deadsay {color: #e2c1ff;}
.binarysay {color: #20c20e; background-color: #000000; display: block;}
.binarysay a {color: #00ff00;}
.binarysay a:active, .binarysay a:visited {color: #88ff88;}
-.radio {color: #008000;}
-.sciradio {color: #993399;}
-.comradio {color: #948f02;}
-.secradio {color: #a30000;}
-.medradio {color: #337296;}
-.engradio {color: #fb5613;}
-.suppradio {color: #a8732b;}
-.servradio {color: #6eaa2c;}
-.syndradio {color: #6d3f40;}
-.centcomradio {color: #686868;}
-.aiprivradio {color: #ff00ff;}
-.redteamradio {color: #ff0000;}
-.blueteamradio {color: #0000ff;}
+.radio {color: #1ecc43;}
+.sciradio {color: #c68cfa;}
+.comradio {color: #5177ff;}
+.secradio {color: #dd3535;}
+.medradio {color: #57b8f0;}
+.engradio {color: #f37746;}
+.suppradio {color: #b88646;}
+.servradio {color: #6ca729;}
+.syndradio {color: #8f4a4b;}
+.centcomradio {color: #2681a5;}
+.aiprivradio {color: #d65d95;}
+.redteamradio {color: #ff4444;}
+.blueteamradio {color: #3434fd;}
.yell { font-weight: bold;}
-.alert {color: #ff0000;}
-h1.alert, h2.alert {color: #000000;}
+.alert {color: #d82020;}
+h1.alert, h2.alert {color: #99aab5;}
.emote { font-style: italic;}
.selecteddna {color: #ffffff; background-color: #001B1B}
-.attack {color: #ff0000;}
-.disarm {color: #990000;}
-.passive {color: #660000;}
+.attack {color: #e01c1c;}
+.disarm {color: #b42525;}
+.passive {color: #a00f0f;}
-.userdanger {color: #ff0000; font-weight: bold; font-size: 24px;}
-.danger {color: #ff0000;}
-.warning {color: #ff0000; font-style: italic;}
-.alertwarning {color: #FF0000; font-weight: bold}
-.boldwarning {color: #ff0000; font-style: italic; font-weight: bold}
-.announce {color: #228b22; font-weight: bold;}
-.boldannounce {color: #ff0000; font-weight: bold;}
-.greenannounce {color: #00ff00; font-weight: bold;}
+.userdanger {color: #c51e1e; font-weight: bold; font-size: 24px;}
+.danger {color: #c51e1e;}
+.warning {color: #c51e1e; font-style: italic;}
+.alertwarning {color: #FF0000; font-weight: bold}
+.boldwarning {color: #c51e1e; font-style: italic; font-weight: bold}
+.announce {color: #c51e1e; font-weight: bold;}
+.boldannounce {color: #c51e1e; font-weight: bold;}
+.greenannounce {color: #059223; font-weight: bold;}
.rose {color: #ff5050;}
-.info {color: #0000CC;}
-.notice {color: #000099;}
-.boldnotice {color: #000099; font-weight: bold;}
-.adminnotice {color: #0000ff;}
+.info {color: #6685f5;}
+.notice {color: #6685f5;}
+.boldnotice {color: #6685f5; font-weight: bold;}
+.adminnotice {color: #6685f5;}
.adminhelp {color: #ff0000; font-weight: bold;}
-.unconscious {color: #0000ff; font-weight: bold;}
+.unconscious {color: #a4bad6; font-weight: bold;}
.suicide {color: #ff5050; font-style: italic;}
-.green {color: #03ff39;}
-.red {color: #FF0000}
-.blue {color: #215cff}
-.nicegreen {color: #14a833;}
+.red {color: #FF0000}
+.pink {color: #ff70c1;}
+.blue {color: #215cff}
+.green {color: #059223;}
+.nicegreen {color: #059223;}
.userlove {color: #FF1493; font-style: italic; font-weight: bold; text-shadow: 0 0 6px #ff6dbc;}
.love {color: #ff006a; font-style: italic; text-shadow: 0 0 6px #ff6d6d;}
-.shadowling {color: #3b2769;}
-.cult {color: #960000;}
+.shadowling {color: #8e8a99;}
+.cult {color: #aa1c1c;}
-.cultitalic {color: #960000; font-style: italic;}
-.cultbold {color: #960000; font-style: italic; font-weight: bold;}
-.cultboldtalic {color: #960000; font-weight: bold; font-size: 24px;}
+.cultitalic {color: #aa1c1c; font-style: italic;}
+.cultbold {color: #aa1c1c; font-style: italic; font-weight: bold;}
+.cultboldtalic {color: #aa1c1c; font-weight: bold; font-size: 24px;}
-.cultlarge {color: #960000; font-weight: bold; font-size: 24px;}
-.narsie {color: #960000; font-weight: bold; font-size: 120px;}
-.narsiesmall {color: #960000; font-weight: bold; font-size: 48px;}
+.cultlarge {color: #aa1c1c; font-weight: bold; font-size: 24px;}
+.narsie {color: #aa1c1c; font-weight: bold; font-size: 120px;}
+.narsiesmall {color: #aa1c1c; font-weight: bold; font-size: 48px;}
.colossus {color: #7F282A; font-size: 40px;}
-.hierophant {color: #660099; font-weight: bold; font-style: italic;}
-.hierophant_warning {color: #660099; font-style: italic;}
-.purple {color: #5e2d79;}
-.holoparasite {color: #35333a;}
+.hierophant {color: #b441ee; font-weight: bold; font-style: italic;}
+.hierophant_warning {color: #c56bf1; font-style: italic;}
+.purple {color: #9956d3;}
+.holoparasite {color: #88809c;}
.revennotice {color: #1d2953;}
.revenboldnotice {color: #1d2953; font-weight: bold;}
@@ -344,11 +350,11 @@ h1.alert, h2.alert {color: #000000;}
.revenminor {color: #823abb}
.revenwarning {color: #760fbb; font-style: italic;}
.revendanger {color: #760fbb; font-weight: bold; font-size: 24px;}
-.umbra {color: #5000A0;}
-.umbra_emphasis {color: #5000A0; font-weight: bold; font-style: italic;}
-.umbra_large {color: #5000A0; font-size: 24px; font-weight: bold; font-style: italic;}
+.umbra {color: #7c00e6;}
+.umbra_emphasis {color: #7c00e6; font-weight: bold; font-style: italic;}
+.umbra_large {color: #7c00e6; font-size: 24px; font-weight: bold; font-style: italic;}
-.deconversion_message {color: #5000A0; font-size: 24px; font-style: italic;}
+.deconversion_message {color: #a947ff; font-size: 24px; font-style: italic;}
.brass {color: #BE8700;}
.heavy_brass {color: #BE8700; font-weight: bold; font-style: italic;}
@@ -373,17 +379,17 @@ h1.alert, h2.alert {color: #000000;}
.neovgre {color: #6E001A; font-weight: bold; font-style: italic;}
.neovgre_small {color: #6E001A;}
-.newscaster {color: #800000;}
-.ghostalert {color: #5c00e6; font-style: italic; font-weight: bold;}
+.newscaster {color: #c05d5d;}
+.ghostalert {color: #6600ff; font-style: italic; font-weight: bold;}
-.alien {color: #543354;}
-.noticealien {color: #00c000;}
-.alertalien {color: #00c000; font-weight: bold;}
-.changeling {color: #800080; font-style: italic;}
+.alien {color: #855d85;}
+.noticealien {color: #059223;}
+.alertalien {color: #059223; font-weight: bold;}
+.changeling {color: #059223; font-style: italic;}
-.spider {color: #4d004d;}
+.spider {color: #8800ff;}
-.interface {color: #330033;}
+.interface {color: #750e75;}
.sans {font-family: "Comic Sans MS", cursive, sans-serif;}
.papyrus {font-family: "Papyrus", cursive, sans-serif;}
@@ -394,29 +400,29 @@ h1.alert, h2.alert {color: #000000;}
.big {font-size: 24px;}
.reallybig {font-size: 32px;}
.extremelybig {font-size: 40px;}
-.greentext {color: #00FF00; font-size: 24px;}
-.redtext {color: #FF0000; font-size: 24px;}
-.clown {color: #FF69Bf; font-size: 24px; font-family: "Comic Sans MS", cursive, sans-serif; font-weight: bold;}
+.greentext {color: #059223; font-size: 24px;}
+.redtext {color: #c51e1e; font-size: 24px;}
+.clown {color: #ff70c1; font-size: 24px; font-family: "Comic Sans MS", cursive, sans-serif; font-weight: bold;}
.his_grace {color: #15D512; font-family: "Courier New", cursive, sans-serif; font-style: italic;}
.icon {height: 1em; width: auto;}
.memo {color: #638500; text-align: center;}
.memoedit {text-align: center; font-size: 16px;}
-.abductor {color: #800080; font-style: italic;}
-.mind_control {color: #A00D6F; font-size: 3; font-weight: bold; font-style: italic;}
+.abductor {color: #c204c2; font-style: italic;}
+.mind_control {color: #df3da9; font-size: 3; font-weight: bold; font-style: italic;}
.slime {color: #00CED1;}
.drone {color: #848482;}
.monkey {color: #975032;}
.swarmer {color: #2C75FF;}
.resonate {color: #298F85;}
-.monkeyhive {color: #774704;}
-.monkeylead {color: #774704; font-size: 2;}
+.monkeyhive {color: #a56408;}
+.monkeylead {color: #af6805; font-size: 2;}
.connectionClosed, .fatalError {background: red; color: white; padding: 5px;}
.connectionClosed.restored {background: green;}
-.internal.boldnshit {color: blue; font-weight: bold;}
+.internal.boldnshit {color: #3d5bc3; font-weight: bold;}
/* HELPER CLASSES */
.text-normal {font-weight: normal; font-style: normal;}
diff --git a/code/modules/goonchat/browserassets/css/browserOutput_white.css b/code/modules/goonchat/browserassets/css/browserOutput_white.css
new file mode 100644
index 0000000000..e21185449b
--- /dev/null
+++ b/code/modules/goonchat/browserassets/css/browserOutput_white.css
@@ -0,0 +1,426 @@
+/*****************************************
+*
+* GLOBAL STYLES
+*
+******************************************/
+html, body {
+ padding: 0;
+ margin: 0;
+ height: 100%;
+ color: #000000;
+}
+body {
+ background: #fff;
+ font-family: Verdana, sans-serif;
+ font-size: 9pt;
+ line-height: 1.2;
+ overflow-x: hidden;
+ overflow-y: scroll;
+ word-wrap: break-word;
+}
+
+em {
+ font-style: normal;
+ font-weight: bold;
+}
+
+img {
+ margin: 0;
+ padding: 0;
+ line-height: 1;
+ -ms-interpolation-mode: nearest-neighbor;
+ image-rendering: pixelated;
+}
+img.icon {
+ height: 1em;
+ min-height: 16px;
+ width: auto;
+ vertical-align: bottom;
+}
+
+
+.r:before { /* "repeated" badge class for combined messages */
+ content: 'x';
+}
+.r {
+ display: inline-block;
+ min-width: 0.5em;
+ font-size: 0.7em;
+ padding: 0.2em 0.3em;
+ line-height: 1;
+ color: white;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: middle;
+ background-color: crimson;
+ border-radius: 10px;
+}
+
+a {color: #0000ff;}
+a.visited {color: #ff00ff;}
+a:visited {color: #ff00ff;}
+a.popt {text-decoration: none;}
+
+/*****************************************
+*
+* OUTPUT NOT RELATED TO ACTUAL MESSAGES
+*
+******************************************/
+#loading {
+ position: fixed;
+ width: 300px;
+ height: 150px;
+ text-align: center;
+ left: 50%;
+ top: 50%;
+ margin: -75px 0 0 -150px;
+}
+#loading i {display: block; padding-bottom: 3px;}
+
+#messages {
+ font-size: 13px;
+ padding: 3px;
+ margin: 0;
+ word-wrap: break-word;
+}
+#newMessages {
+ position: fixed;
+ display: block;
+ bottom: 0;
+ right: 0;
+ padding: 8px;
+ background: #ddd;
+ text-decoration: none;
+ font-variant: small-caps;
+ font-size: 1.1em;
+ font-weight: bold;
+ color: #333;
+}
+#newMessages:hover {background: #ccc;}
+#newMessages i {vertical-align: middle; padding-left: 3px;}
+#ping {
+ position: fixed;
+ top: 0;
+ right: 115px;
+ width: 45px;
+ background: #ddd;
+ height: 30px;
+ padding: 8px 0 2px 0;
+}
+#ping i {display: block; text-align: center;}
+#ping .ms {
+ display: block;
+ text-align: center;
+ font-size: 8pt;
+ padding-top: 2px;
+}
+#userBar {
+ position: fixed;
+ top: 0;
+ right: 0;
+}
+#userBar .subCell {
+ background: #ddd;
+ height: 30px;
+ padding: 5px 0;
+ display: block;
+ color: #333;
+ text-decoration: none;
+ line-height: 28px;
+ border-top: 1px solid #b4b4b4;
+}
+#userBar .subCell:hover {background: #ccc;}
+#userBar .toggle {
+ width: 40px;
+ background: #ccc;
+ border-top: 0;
+ float: right;
+ text-align: center;
+}
+#userBar .sub {clear: both; display: none; width: 160px;}
+#userBar .sub.scroll {overflow-y: scroll;}
+#userBar .sub.subCell {padding: 3px 0 3px 8px; line-height: 30px; font-size: 0.9em; clear: both;}
+#userBar .sub span {
+ display: block;
+ line-height: 30px;
+ float: left;
+}
+#userBar .sub i {
+ display: block;
+ padding: 0 5px;
+ font-size: 1.1em;
+ width: 22px;
+ text-align: center;
+ line-height: 30px;
+ float: right;
+}
+#userBar .sub input {
+ position: absolute;
+ padding: 7px 5px;
+ width: 121px;
+ line-height: 30px;
+ float: left;
+}
+#userBar .topCell {border-top: 0;}
+
+/* POPUPS */
+.popup {
+ position: fixed;
+ top: 50%;
+ left: 50%;
+ background: #ddd;
+}
+.popup .close {
+ position: absolute;
+ background: #aaa;
+ top: 0;
+ right: 0;
+ color: #333;
+ text-decoration: none;
+ z-index: 2;
+ padding: 0 10px;
+ height: 30px;
+ line-height: 30px;
+}
+.popup .close:hover {background: #999;}
+.popup .head {
+ background: #999;
+ color: #ddd;
+ padding: 0 10px;
+ height: 30px;
+ line-height: 30px;
+ text-transform: uppercase;
+ font-size: 0.9em;
+ font-weight: bold;
+ border-bottom: 2px solid green;
+}
+.popup input {border: 1px solid #999; background: #fff; margin: 0; padding: 5px; outline: none; color: #333;}
+.popup input[type=text]:hover, .popup input[type=text]:active, .popup input[type=text]:focus {border-color: green;}
+.popup input[type=submit] {padding: 5px 10px; background: #999; color: #ddd; text-transform: uppercase; font-size: 0.9em; font-weight: bold;}
+.popup input[type=submit]:hover, .popup input[type=submit]:focus, .popup input[type=submit]:active {background: #aaa; cursor: pointer;}
+
+.changeFont {padding: 10px;}
+.changeFont a {display: block; text-decoration: none; padding: 3px; color: #333;}
+.changeFont a:hover {background: #ccc;}
+
+.highlightPopup {padding: 10px; text-align: center;}
+.highlightPopup input[type=text] {display: block; width: 215px; text-align: left; margin-top: 5px;}
+.highlightPopup input.highlightColor {background-color: #FFFF00;}
+.highlightPopup input.highlightTermSubmit {margin-top: 5px;}
+
+/* ADMIN CONTEXT MENU */
+.contextMenu {
+ background-color: #ddd;
+ position: fixed;
+ margin: 2px;
+ width: 150px;
+}
+.contextMenu a {
+ display: block;
+ padding: 2px 5px;
+ text-decoration: none;
+ color: #333;
+}
+
+.contextMenu a:hover {
+ background-color: #ccc;
+}
+
+/* ADMIN FILTER MESSAGES MENU */
+.filterMessages {padding: 5px;}
+.filterMessages div {padding: 2px 0;}
+.filterMessages input {}
+.filterMessages label {}
+
+.icon-stack {height: 1em; line-height: 1em; width: 1em; vertical-align: middle; margin-top: -2px;}
+
+
+/*****************************************
+*
+* OUTPUT ACTUALLY RELATED TO MESSAGES
+*
+******************************************/
+
+/* MOTD */
+.motd {color: #638500; font-family: Verdana, sans-serif;}
+.motd h1, .motd h2, .motd h3, .motd h4, .motd h5, .motd h6 {color: #638500; text-decoration: underline;}
+.motd a, .motd a:link, .motd a:visited, .motd a:active, .motd a:hover {color: #638500;}
+
+/* ADD HERE FOR BOLD */
+.bold, .name, .prefix, .ooc, .looc, .adminooc, .admin, .medal, .yell {font-weight: bold;}
+
+/* ADD HERE FOR ITALIC */
+.italic, .italics, .emote {font-style: italic;}
+
+/* OUTPUT COLORS */
+.highlight {background: yellow;}
+
+h1, h2, h3, h4, h5, h6 {color: #0000ff;font-family: Georgia, Verdana, sans-serif;}
+h1.alert, h2.alert {color: #000000;}
+
+em {font-style: normal; font-weight: bold;}
+
+.ooc {color: #002eb8; font-weight: bold;}
+.antagooc {color: #b8002e; font-weight: bold;}
+.adminobserverooc {color: #0099cc; font-weight: bold;}
+.adminooc {color: #700038; font-weight: bold;}
+
+.adminsay {color: #ff4500; font-weight: bold;}
+.admin {color: #4473ff; font-weight: bold;}
+
+.name { font-weight: bold;}
+
+.say {}
+.deadsay {color: #5c00e6;}
+.binarysay {color: #20c20e; background-color: #000000; display: block;}
+.binarysay a {color: #00ff00;}
+.binarysay a:active, .binarysay a:visited {color: #88ff88;}
+.radio {color: #008000;}
+.sciradio {color: #993399;}
+.comradio {color: #948f02;}
+.secradio {color: #a30000;}
+.medradio {color: #337296;}
+.engradio {color: #fb5613;}
+.suppradio {color: #a8732b;}
+.servradio {color: #6eaa2c;}
+.syndradio {color: #6d3f40;}
+.centcomradio {color: #686868;}
+.aiprivradio {color: #ff00ff;}
+.redteamradio {color: #ff0000;}
+.blueteamradio {color: #0000ff;}
+
+.yell { font-weight: bold;}
+
+.alert {color: #ff0000;}
+h1.alert, h2.alert {color: #000000;}
+
+.emote { font-style: italic;}
+.selecteddna {color: #ffffff; background-color: #001B1B}
+
+.attack {color: #ff0000;}
+.disarm {color: #990000;}
+.passive {color: #660000;}
+
+.userdanger {color: #ff0000; font-weight: bold; font-size: 24px;}
+.danger {color: #ff0000;}
+.warning {color: #ff0000; font-style: italic;}
+.alertwarning {color: #FF0000; font-weight: bold}
+.boldwarning {color: #ff0000; font-style: italic; font-weight: bold}
+.announce {color: #228b22; font-weight: bold;}
+.boldannounce {color: #ff0000; font-weight: bold;}
+.greenannounce {color: #00ff00; font-weight: bold;}
+.rose {color: #ff5050;}
+.info {color: #0000CC;}
+.notice {color: #000099;}
+.boldnotice {color: #000099; font-weight: bold;}
+.adminnotice {color: #0000ff;}
+.adminhelp {color: #ff0000; font-weight: bold;}
+.unconscious {color: #0000ff; font-weight: bold;}
+.suicide {color: #ff5050; font-style: italic;}
+.green {color: #03ff39;}
+.red {color: #FF0000}
+.pink {color: #FF69Bf;}
+.blue {color: #0000FF}
+.nicegreen {color: #14a833;}
+.userlove {color: #FF1493; font-style: italic; font-weight: bold; text-shadow: 0 0 6px #ff6dbc;}
+.love {color: #ff006a; font-style: italic; text-shadow: 0 0 6px #ff6d6d;}
+.shadowling {color: #3b2769;}
+.cult {color: #960000;}
+
+.cultitalic {color: #960000; font-style: italic;}
+.cultbold {color: #960000; font-style: italic; font-weight: bold;}
+.cultboldtalic {color: #960000; font-weight: bold; font-size: 24px;}
+
+.cultlarge {color: #960000; font-weight: bold; font-size: 24px;}
+.narsie {color: #960000; font-weight: bold; font-size: 120px;}
+.narsiesmall {color: #960000; font-weight: bold; font-size: 48px;}
+.colossus {color: #7F282A; font-size: 40px;}
+.hierophant {color: #660099; font-weight: bold; font-style: italic;}
+.hierophant_warning {color: #660099; font-style: italic;}
+.purple {color: #5e2d79;}
+.holoparasite {color: #35333a;}
+
+.revennotice {color: #1d2953;}
+.revenboldnotice {color: #1d2953; font-weight: bold;}
+.revenbignotice {color: #1d2953; font-weight: bold; font-size: 24px;}
+.revenminor {color: #823abb}
+.revenwarning {color: #760fbb; font-style: italic;}
+.revendanger {color: #760fbb; font-weight: bold; font-size: 24px;}
+.umbra {color: #5000A0;}
+.umbra_emphasis {color: #5000A0; font-weight: bold; font-style: italic;}
+.umbra_large {color: #5000A0; font-size: 24px; font-weight: bold; font-style: italic;}
+
+.deconversion_message {color: #5000A0; font-size: 24px; font-style: italic;}
+
+.brass {color: #BE8700;}
+.heavy_brass {color: #BE8700; font-weight: bold; font-style: italic;}
+.large_brass {color: #BE8700; font-size: 24px;}
+.big_brass {color: #BE8700; font-size: 24px; font-weight: bold; font-style: italic;}
+.ratvar {color: #BE8700; font-size: 48px; font-weight: bold; font-style: italic;}
+.alloy {color: #42474D;}
+.heavy_alloy {color: #42474D; font-weight: bold; font-style: italic;}
+.nezbere_large {color: #42474D; font-size: 24px; font-weight: bold; font-style: italic;}
+.nezbere {color: #42474D; font-weight: bold; font-style: italic;}
+.nezbere_small {color: #42474D;}
+.sevtug_large {color: #AF0AAF; font-size: 24px; font-weight: bold; font-style: italic;}
+.sevtug {color: #AF0AAF; font-weight: bold; font-style: italic;}
+.sevtug_small {color: #AF0AAF;}
+.inathneq_large {color: #1E8CE1; font-size: 24px; font-weight: bold; font-style: italic;}
+.inathneq {color: #1E8CE1; font-weight: bold; font-style: italic;}
+.inathneq_small {color: #1E8CE1;}
+.nzcrentr_large {color: #DAAA18; font-size: 24px; font-weight: bold; font-style: italic;}
+.nzcrentr {color: #DAAA18; font-weight: bold; font-style: italic;}
+.nzcrentr_small {color: #DAAA18;}
+.neovgre_large {color: #6E001A; font-size: 24px; font-weight: bold; font-style: italic;}
+.neovgre {color: #6E001A; font-weight: bold; font-style: italic;}
+.neovgre_small {color: #6E001A;}
+
+.newscaster {color: #800000;}
+.ghostalert {color: #5c00e6; font-style: italic; font-weight: bold;}
+
+.alien {color: #543354;}
+.noticealien {color: #00c000;}
+.alertalien {color: #00c000; font-weight: bold;}
+.changeling {color: #800080; font-style: italic;}
+
+.spider {color: #4d004d;}
+
+.interface {color: #330033;}
+
+.sans {font-family: "Comic Sans MS", cursive, sans-serif;}
+.papyrus {font-family: "Papyrus", cursive, sans-serif;}
+.robot {font-family: "Courier New", cursive, sans-serif;}
+
+.command_headset {font-weight: bold; font-size: 24px;}
+.small {font-size: 8px;}
+.big {font-size: 24px;}
+.reallybig {font-size: 32px;}
+.extremelybig {font-size: 40px;}
+.greentext {color: #00FF00; font-size: 24px;}
+.redtext {color: #FF0000; font-size: 24px;}
+.clown {color: #FF69Bf; font-size: 24px; font-family: "Comic Sans MS", cursive, sans-serif; font-weight: bold;}
+.his_grace {color: #15D512; font-family: "Courier New", cursive, sans-serif; font-style: italic;}
+
+.icon {height: 1em; width: auto;}
+
+.memo {color: #638500; text-align: center;}
+.memoedit {text-align: center; font-size: 16px;}
+.abductor {color: #800080; font-style: italic;}
+.mind_control {color: #A00D6F; font-size: 3; font-weight: bold; font-style: italic;}
+.slime {color: #00CED1;}
+.drone {color: #848482;}
+.monkey {color: #975032;}
+.swarmer {color: #2C75FF;}
+.resonate {color: #298F85;}
+
+.monkeyhive {color: #774704;}
+.monkeylead {color: #774704; font-size: 2;}
+
+.connectionClosed, .fatalError {background: red; color: white; padding: 5px;}
+.connectionClosed.restored {background: green;}
+.internal.boldnshit {color: blue; font-weight: bold;}
+
+/* HELPER CLASSES */
+.text-normal {font-weight: normal; font-style: normal;}
+.hidden {display: none; visibility: hidden;}
+
diff --git a/code/modules/goonchat/browserassets/html/browserOutput.html b/code/modules/goonchat/browserassets/html/browserOutput.html
index fe3be9486c..9c6d462a85 100644
--- a/code/modules/goonchat/browserassets/html/browserOutput.html
+++ b/code/modules/goonchat/browserassets/html/browserOutput.html
@@ -5,7 +5,7 @@
-
+
@@ -28,6 +28,9 @@
--ms
+
diff --git a/code/modules/goonchat/browserassets/js/browserOutput.js b/code/modules/goonchat/browserassets/js/browserOutput.js
index 33553d765e..93a498fd06 100644
--- a/code/modules/goonchat/browserassets/js/browserOutput.js
+++ b/code/modules/goonchat/browserassets/js/browserOutput.js
@@ -35,6 +35,7 @@ var opts = {
'wasd': false, //Is the user in wasd mode?
'priorChatHeight': 0, //Thing for height-resizing detection
'restarting': false, //Is the round restarting?
+ 'darkmode':false, //Are we using darkmode? If not WHY ARE YOU LIVING IN 2009???
//Options menu
'selectedSubLoop': null, //Contains the interval loop for closing the selected sub menu
@@ -394,6 +395,19 @@ function toHex(n) {
return "0123456789ABCDEF".charAt((n-n%16)/16) + "0123456789ABCDEF".charAt(n%16);
}
+function swap() { //Swap to darkmode
+ if (opts.darkmode){
+ document.getElementById("sheetofstyles").href = "browserOutput_white.css";
+ opts.darkmode = false;
+ runByond('?_src_=chat&proc=swaptolightmode');
+ } else {
+ document.getElementById("sheetofstyles").href = "browserOutput.css";
+ opts.darkmode = true;
+ runByond('?_src_=chat&proc=swaptodarkmode');
+ }
+ setCookie('darkmode', (opts.darkmode ? 'true' : 'false'), 365);
+}
+
function handleClientData(ckey, ip, compid) {
//byond sends player info to here
var currentData = {'ckey': ckey, 'ip': ip, 'compid': compid};
@@ -601,6 +615,7 @@ $(function() {
'shighlightColor': getCookie('highlightcolor'),
'smusicVolume': getCookie('musicVolume'),
'smessagecombining': getCookie('messagecombining'),
+ 'sdarkmode': getCookie('darkmode'),
};
if (savedConfig.sfontSize) {
@@ -611,6 +626,9 @@ $(function() {
$("body").css('line-height', savedConfig.slineHeight);
internalOutput('Loaded line height setting of: '+savedConfig.slineHeight+'', 'internal');
}
+ if(savedConfig.sdarkmode == 'true'){
+ swap();
+ }
if (savedConfig.spingDisabled) {
if (savedConfig.spingDisabled == 'true') {
opts.pingDisabled = true;
@@ -655,8 +673,6 @@ $(function() {
opts.messageCombining = true;
}
}
-
-
(function() {
var dataCookie = getCookie('connData');
if (dataCookie) {
@@ -823,7 +839,9 @@ $(function() {
$('#toggleOptions').click(function(e) {
handleToggleClick($subOptions, $(this));
});
-
+ $('#darkmodetoggle').click(function(e) {
+ swap();
+ });
$('#toggleAudio').click(function(e) {
handleToggleClick($subAudio, $(this));
});
@@ -895,7 +913,7 @@ $(function() {
$.ajax({
type: 'GET',
- url: 'browserOutput.css',
+ url: 'browserOutput_white.css',
success: function(styleData) {
var blob = new Blob(['Chat Log', $messages.html(), '']);
diff --git a/code/modules/shuttle/ferry.dm b/code/modules/shuttle/ferry.dm
index eaa1f36b75..06e38bb3eb 100644
--- a/code/modules/shuttle/ferry.dm
+++ b/code/modules/shuttle/ferry.dm
@@ -37,4 +37,4 @@
return
last_request = world.time
to_chat(usr, "Your request has been received by CentCom.")
- to_chat(GLOB.admins, "FERRY: [ADMIN_LOOKUPFLW(usr)] (Move Ferry) is requesting to move the transport ferry to CentCom.")
+ to_chat(GLOB.admins, "FERRY: [ADMIN_LOOKUPFLW(usr)] (Move Ferry) is requesting to move the transport ferry to CentCom.")
diff --git a/icons/member_content.dmi b/icons/member_content.dmi
index bb59764627..7744371119 100644
Binary files a/icons/member_content.dmi and b/icons/member_content.dmi differ
diff --git a/modular_citadel/code/modules/mentor/mentorpm.dm b/modular_citadel/code/modules/mentor/mentorpm.dm
index 34ace6f002..4c9a4766ec 100644
--- a/modular_citadel/code/modules/mentor/mentorpm.dm
+++ b/modular_citadel/code/modules/mentor/mentorpm.dm
@@ -3,7 +3,7 @@
set category = "Mentor"
set name = "Mentor PM"
if(!is_mentor())
- to_chat(src, "Error: Mentor-PM-Panel: Only Mentors and Admins may use this command.")
+ to_chat(src, "Error: Mentor-PM-Panel: Only Mentors and Admins may use this command.")
return
var/list/client/targets[0]
for(var/client/T)
@@ -27,24 +27,24 @@
else if(istype(whom,/client))
C = whom
if(!C)
- if(is_mentor()) to_chat(src, "Error: Mentor-PM: Client not found.")
+ if(is_mentor()) to_chat(src, "Error: Mentor-PM: Client not found.")
else mentorhelp(msg) //Mentor we are replying to left. Mentorhelp instead(check below)
return
if(is_mentor(whom))
- to_chat(GLOB.admins | GLOB.mentors, "[src] has started replying to [whom]'s mhelp.")
+ to_chat(GLOB.admins | GLOB.mentors, "[src] has started replying to [whom]'s mhelp.")
//get message text, limit it's length.and clean/escape html
if(!msg)
msg = input(src,"Message:", "Private message") as text|null
-
+
if(!msg && is_mentor(whom))
- to_chat(GLOB.admins | GLOB.mentors, "[src] has stopped their reply to [whom]'s mhelp.")
+ to_chat(GLOB.admins | GLOB.mentors, "[src] has stopped their reply to [whom]'s mhelp.")
return
if(!C)
if(is_mentor())
- to_chat(src, "Error: Mentor-PM: Client not found.")
+ to_chat(src, "Error: Mentor-PM: Client not found.")
else
mentorhelp(msg) //Mentor we are replying to has vanished, Mentorhelp instead (how the fuck does this work?let's hope it works,shrug)
return
@@ -54,8 +54,8 @@
return
msg = sanitize(copytext(msg,1,MAX_MESSAGE_LEN))
- if(!msg && is_mentor(whom))
- to_chat(GLOB.admins | GLOB.mentors, "[src] has stopped their reply to [whom]'s mhelp.")
+ if(!msg && is_mentor(whom))
+ to_chat(GLOB.admins | GLOB.mentors, "[src] has stopped their reply to [whom]'s mhelp.")
return
log_mentor("Mentor PM: [key_name(src)]->[key_name(C)]: [msg]")
@@ -65,21 +65,21 @@
var/show_char = CONFIG_GET(flag/mentors_mobname_only)
if(C.is_mentor())
if(is_mentor())//both are mentors
- to_chat(C, "Mentor PM from-[key_name_mentor(src, C, 1, 0, 0)]: [msg]")
- to_chat(src, "Mentor PM to-[key_name_mentor(C, C, 1, 0, 0)]: [msg]")
+ to_chat(C, "Mentor PM from-[key_name_mentor(src, C, 1, 0, 0)]: [msg]")
+ to_chat(src, "Mentor PM to-[key_name_mentor(C, C, 1, 0, 0)]: [msg]")
- else //recipient is an mentor but sender is not
- to_chat(C, "Reply PM from-[key_name_mentor(src, C, 1, 0, show_char)]: [msg]")
- to_chat(src, "Mentor PM to-[key_name_mentor(C, C, 1, 0, 0)]: [msg]")
+ else //recipient is a mentor but sender is not
+ to_chat(C, "Reply PM from-[key_name_mentor(src, C, 1, 0, show_char)]: [msg]")
+ to_chat(src, "Mentor PM to-[key_name_mentor(C, C, 1, 0, 0)]: [msg]")
else
- if(is_mentor()) //sender is an mentor but recipient is not.
- to_chat(C, "Mentor PM from-[key_name_mentor(src, C, 1, 0, 0)]: [msg]")
- to_chat(src, "Mentor PM to-[key_name_mentor(C, C, 1, 0, show_char)]: [msg]")
+ if(is_mentor()) //sender is a mentor but recipient is not.
+ to_chat(C, "Mentor PM from-[key_name_mentor(src, C, 1, 0, 0)]: [msg]")
+ to_chat(src, "Mentor PM to-[key_name_mentor(C, C, 1, 0, show_char)]: [msg]")
//we don't use message_Mentors here because the sender/receiver might get it too
var/show_char_sender = !is_mentor() && CONFIG_GET(flag/mentors_mobname_only)
var/show_char_recip = !C.is_mentor() && CONFIG_GET(flag/mentors_mobname_only)
for(var/client/X in GLOB.mentors | GLOB.admins)
if(X.key!=key && X.key!=C.key) //check client/X is an Mentor and isn't the sender or recipient
- to_chat(X, "Mentor PM: [key_name_mentor(src, X, 0, 0, show_char_sender)]->[key_name_mentor(C, X, 0, 0, show_char_recip)]: [msg]") //inform X
+ to_chat(X, "Mentor PM: [key_name_mentor(src, X, 0, 0, show_char_sender)]->[key_name_mentor(C, X, 0, 0, show_char_recip)]: [msg]") //inform X
diff --git a/modular_citadel/interface/skin.dmf b/modular_citadel/interface/skin.dmf
index e4531a24ea..c5b5138609 100644
--- a/modular_citadel/interface/skin.dmf
+++ b/modular_citadel/interface/skin.dmf
@@ -54,7 +54,7 @@ window "mainwindow"
size = 640x440
anchor1 = none
anchor2 = none
- background-color = #272727
+ background-color = #eeeeee
is-default = true
saved-params = "pos;size;is-minimized;is-maximized"
icon = 'icons\\ss13_64.png'
@@ -66,7 +66,7 @@ window "mainwindow"
size = 637x440
anchor1 = 0,0
anchor2 = 100,100
- background-color = #272727
+ background-color = #eeeeee
saved-params = "splitter"
left = "mapwindow"
right = "infowindow"
@@ -78,7 +78,7 @@ window "mainwindow"
size = 200x200
anchor1 = none
anchor2 = none
- background-color = #272727
+ background-color = #ffffff
is-visible = false
saved-params = ""
elem "tooltip"
@@ -87,7 +87,7 @@ window "mainwindow"
size = 999x999
anchor1 = none
anchor2 = none
- background-color = #272727
+ background-color = #ffffff
is-visible = false
saved-params = ""
@@ -98,7 +98,6 @@ window "mapwindow"
size = 640x480
anchor1 = none
anchor2 = none
- background-color = #272727
saved-params = "pos;size;is-minimized;is-maximized"
is-pane = true
elem "map"
@@ -120,7 +119,7 @@ window "infowindow"
size = 640x480
anchor1 = none
anchor2 = none
- background-color = #272727
+ background-color = #eeeeee
saved-params = "pos;size;is-minimized;is-maximized"
is-pane = true
elem "info"
@@ -129,7 +128,6 @@ window "infowindow"
size = 640x445
anchor1 = 0,0
anchor2 = 100,100
- background-color = #272727
saved-params = "splitter"
left = "statwindow"
right = "outputwindow"
@@ -140,8 +138,7 @@ window "infowindow"
size = 104x20
anchor1 = 3,0
anchor2 = 19,0
- text-color = #ffffff
- background-color = #40628a
+ background-color = #90b3dd
saved-params = "is-checked"
text = "Changelog"
command = "changelog"
@@ -151,8 +148,7 @@ window "infowindow"
size = 100x20
anchor1 = 19,0
anchor2 = 34,0
- text-color = #ffffff
- background-color = #40628a
+ background-color = #90b3dd
saved-params = "is-checked"
text = "Rules"
command = "rules"
@@ -162,8 +158,7 @@ window "infowindow"
size = 100x20
anchor1 = 34,0
anchor2 = 50,0
- text-color = #ffffff
- background-color = #40628a
+ background-color = #90b3dd
saved-params = "is-checked"
text = "Wiki"
command = "wiki"
@@ -173,8 +168,7 @@ window "infowindow"
size = 100x20
anchor1 = 50,0
anchor2 = 66,0
- text-color = #ffffff
- background-color = #40628a
+ background-color = #90b3dd
saved-params = "is-checked"
text = "Forum"
command = "forum"
@@ -184,8 +178,7 @@ window "infowindow"
size = 100x20
anchor1 = 66,0
anchor2 = 81,0
- text-color = #ffffff
- background-color = #40628a
+ background-color = #90b3dd
saved-params = "is-checked"
text = "GitHub"
command = "github"
@@ -196,8 +189,7 @@ window "infowindow"
anchor1 = 81,0
anchor2 = 97,0
font-size = 8
- text-color = #ffffff
- background-color = #40628a
+ background-color = #ef7f7f
saved-params = "is-checked"
text = "Report Issue"
command = "report-issue"
@@ -209,7 +201,7 @@ window "outputwindow"
size = 640x480
anchor1 = none
anchor2 = none
- background-color = #272727
+ background-color = #eeeeee
saved-params = "pos;size;is-minimized;is-maximized"
titlebar = false
statusbar = false
@@ -223,9 +215,9 @@ window "outputwindow"
size = 595x20
anchor1 = 0,100
anchor2 = 100,100
- font-size = 10
background-color = #d3b5b5
is-default = true
+ border = sunken
saved-params = "command"
elem "say"
type = BUTTON
@@ -233,8 +225,7 @@ window "outputwindow"
size = 37x20
anchor1 = 100,100
anchor2 = none
- text-color = #ffffff
- background-color = #272727
+ background-color = #eeeeee
saved-params = "is-checked"
text = "Chat"
command = ".winset \"say.is-checked=true ? input.command=\"!say \\\"\" : input.command=\""
@@ -246,7 +237,7 @@ window "outputwindow"
size = 640x456
anchor1 = 0,0
anchor2 = 100,100
- background-color = #272727
+ background-color = #ffffff
is-visible = false
is-disabled = true
saved-params = ""
@@ -257,8 +248,6 @@ window "outputwindow"
size = 640x456
anchor1 = 0,0
anchor2 = 100,100
- text-color = #40628a
- background-color = #272727
is-default = true
saved-params = ""
@@ -269,7 +258,7 @@ window "statwindow"
size = 640x480
anchor1 = none
anchor2 = none
- background-color = #272727
+ background-color = #eeeeee
saved-params = "pos;size;is-minimized;is-maximized"
is-pane = true
elem "stat"
@@ -278,14 +267,9 @@ window "statwindow"
size = 640x480
anchor1 = 0,0
anchor2 = 100,100
- text-color = #ffffff
- background-color = #383838
is-default = true
saved-params = ""
- tab-text-color = #ffffff
- tab-background-color = #272727
- prefix-color = #ebebeb
- suffix-color = #ebebeb
+ tab-background-color = #eeeeee
window "preferences_window"
elem "preferences_window"
@@ -294,7 +278,6 @@ window "preferences_window"
size = 1280x1000
anchor1 = none
anchor2 = none
- background-color = none
is-visible = false
saved-params = "pos;size;is-minimized;is-maximized"
statusbar = false
@@ -304,7 +287,6 @@ window "preferences_window"
size = 960x1000
anchor1 = 0,0
anchor2 = 75,100
- background-color = none
saved-params = ""
elem "character_preview_map"
type = MAP
diff --git a/tgstation.dme b/tgstation.dme
index 6aee7dffa1..43c6df9606 100755
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -1453,6 +1453,7 @@
#include "code\modules\client\client_colour.dm"
#include "code\modules\client\client_defines.dm"
#include "code\modules\client\client_procs.dm"
+#include "code\modules\client\darkmode.dm"
#include "code\modules\client\message.dm"
#include "code\modules\client\player_details.dm"
#include "code\modules\client\preferences.dm"
|