diff --git a/code/__DEFINES/preferences.dm b/code/__DEFINES/preferences.dm
index 8e5c72c00de..c2cd40c1a58 100644
--- a/code/__DEFINES/preferences.dm
+++ b/code/__DEFINES/preferences.dm
@@ -26,6 +26,7 @@
#define CHAT_NO_ADMINLOGS 16384
#define DONATOR_PUBLIC 32768
#define CHAT_NO_TICKETLOGS 65536
+#define UI_DARKMODE 131072
#define TOGGLES_DEFAULT (CHAT_OOC|CHAT_DEAD|CHAT_GHOSTEARS|CHAT_GHOSTSIGHT|CHAT_PRAYER|CHAT_RADIO|CHAT_LOOC|MEMBER_PUBLIC|DONATOR_PUBLIC)
diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm
index 2fe2c8e0863..d90b5208d63 100644
--- a/code/modules/client/client procs.dm
+++ b/code/modules/client/client procs.dm
@@ -366,10 +366,22 @@
send_resources()
+ if(prefs.toggles & UI_DARKMODE) // activates dark mode if its flagged. -AA07
+ if(establish_db_connection())
+ activate_darkmode()
+
if(prefs.lastchangelog != changelog_hash) //bolds the changelog button on the interface so we know there are updates. -CP
if(establish_db_connection())
- winset(src, "rpane.changelog", "background-color=#f4aa94;font-style=bold")
to_chat(src, "Changelog has changed since your last visit.")
+ winset(src, "rpane.changelog", "background-color=#bb7700;font-color=#FFFFFF;font-style=bold")
+ else
+ if(establish_db_connection())
+ if(prefs.toggles & UI_DARKMODE)
+ winset(src, "rpane.changelog", "background-color=#bb7700;font-color=#FFFFFF;font-style=bold") // makes changelog dark if its been set
+ else
+ winset(src, "rpane.changelog", "background-color=#ffffff;font-color=#000000") // makes changelog normal if it hasnt been set
+ else
+ winset(src, "rpane.changelog", "background-color=#ffffff;font-color=#000000") // makes changelog normal if DB isnt connected
if(!void)
void = new()
@@ -660,3 +672,75 @@
/client/proc/on_varedit()
var_edited = TRUE
+
+/////////////////
+// DARKMODE UI //
+/////////////////
+// IF YOU CHANGE ANYTHING IN ACTIVATE, MAKE SURE IT HAS A DEACTIVATE METHOD, -AA07
+/client/proc/activate_darkmode()
+ ///// BUTTONS /////
+ /* Rpane */
+ winset(src, "rpane.textb", "background-color=#40628a;text-color=#FFFFFF")
+ winset(src, "rpane.infob", "background-color=#40628a;text-color=#FFFFFF")
+ winset(src, "rpane.wikib", "background-color=#40628a;text-color=#FFFFFF")
+ winset(src, "rpane.forumb", "background-color=#40628a;text-color=#FFFFFF")
+ winset(src, "rpane.rulesb", "background-color=#40628a;text-color=#FFFFFF")
+ winset(src, "rpane.githubb", "background-color=#40628a;text-color=#FFFFFF")
+ /* Mainwindow */
+ winset(src, "mainwindow.saybutton", "background-color=#40628a;text-color=#FFFFFF")
+ winset(src, "mainwindow.mebutton", "background-color=#40628a;text-color=#FFFFFF")
+ winset(src, "mainwindow.hotkey_toggle", "background-color=#40628a;text-color=#FFFFFF")
+ ///// UI ELEMENTS /////
+ /* Mainwindow */
+ winset(src, "mainwindow", "background-color=#272727")
+ winset(src, "mainwindow.mainvsplit", "background-color=#272727")
+ winset(src, "mainwindow.tooltip", "background-color=#272727")
+ /* Outputwindow */
+ winset(src, "outputwindow.outputwindow", "background-color=#272727")
+ winset(src, "outputwindow.browseroutput", "background-color=#272727")
+ /* Rpane */
+ winset(src, "rpane", "background-color=#272727")
+ winset(src, "rpane.rpane", "background-color=#272727")
+ winset(src, "rpane.rpanewindow", "background-color=#272727")
+ /* Browserwindow */
+ winset(src, "browserwindow", "background-color=#272727")
+ winset(src, "browserwindow.browser", "background-color=#272727")
+ /* Infowindow */
+ winset(src, "infowindow", "background-color=#272727;text-color=#FFFFFF")
+ winset(src, "infowindow.info", "background-color=#272727;text-color=#FFFFFF;highlight-color=#009900;tab-text-color=#FFFFFF;tab-background-color=#272727")
+ // NOTIFY USER
+ to_chat(src, "Darkmode Enabled")
+
+/client/proc/deactivate_darkmode()
+ ///// BUTTONS /////
+ /* Rpane */
+ winset(src, "rpane.textb", "background-color=#ffffff;text-color=#000000")
+ winset(src, "rpane.infob", "background-color=#ffffff;text-color=#000000")
+ winset(src, "rpane.wikib", "background-color=#ffffff;text-color=#000000")
+ winset(src, "rpane.forumb", "background-color=#ffffff;text-color=#000000")
+ winset(src, "rpane.rulesb", "background-color=#ffffff;text-color=#000000")
+ winset(src, "rpane.githubb", "background-color=#ffffff;text-color=#000000")
+ /* Mainwindow */
+ winset(src, "mainwindow.saybutton", "background-color=#ffffff;text-color=#000000")
+ winset(src, "mainwindow.mebutton", "background-color=#ffffff;text-color=#000000")
+ winset(src, "mainwindow.hotkey_toggle", "background-color=#ffffff;text-color=#000000")
+ ///// UI ELEMENTS /////
+ /* Mainwindow */
+ winset(src, "mainwindow", "background-color=#ffffff")
+ winset(src, "mainwindow.mainvsplit", "background-color=#ffffff")
+ winset(src, "mainwindow.tooltip", "background-color=#ffffff")
+ /* Outputwindow */
+ winset(src, "outputwindow.outputwindow", "background-color=#ffffff")
+ winset(src, "outputwindow.browseroutput", "background-color=#ffffff")
+ /* Rpane */
+ winset(src, "rpane", "background-color=#ffffff")
+ winset(src, "rpane.rpane", "background-color=#ffffff")
+ winset(src, "rpane.rpanewindow", "background-color=#ffffff")
+ /* Browserwindow */
+ winset(src, "browserwindow", "background-color=#ffffff")
+ winset(src, "browserwindow.browser", "background-color=#ffffff")
+ /* Infowindow */
+ winset(src, "infowindow", "background-color=#ffffff;text-color=#000000")
+ winset(src, "infowindow.info", "background-color=#ffffff;text-color=#000000;highlight-color=#007700;tab-text-color=#000000;tab-background-color=#ffffff")
+ ///// NOTIFY USER /////
+ to_chat(src, "Darkmode Disabled") // what a sick fuck
\ No newline at end of file
diff --git a/code/modules/client/preference/preferences_mysql.dm b/code/modules/client/preference/preferences_mysql.dm
index 086040b5595..878cdb1f4a6 100644
--- a/code/modules/client/preference/preferences_mysql.dm
+++ b/code/modules/client/preference/preferences_mysql.dm
@@ -55,7 +55,7 @@
ooccolor = sanitize_hexcolor(ooccolor, initial(ooccolor))
UI_style = sanitize_inlist(UI_style, list("White", "Midnight"), initial(UI_style))
default_slot = sanitize_integer(default_slot, 1, max_save_slots, initial(default_slot))
- toggles = sanitize_integer(toggles, 0, 65535, initial(toggles))
+ toggles = sanitize_integer(toggles, 0, 262143, initial(toggles))
sound = sanitize_integer(sound, 0, 65535, initial(sound))
UI_style_color = sanitize_hexcolor(UI_style_color, initial(UI_style_color))
UI_style_alpha = sanitize_integer(UI_style_alpha, 0, 255, initial(UI_style_alpha))
diff --git a/code/modules/client/preference/preferences_toggles.dm b/code/modules/client/preference/preferences_toggles.dm
index a212aeb7c18..7d3994681b9 100644
--- a/code/modules/client/preference/preferences_toggles.dm
+++ b/code/modules/client/preference/preferences_toggles.dm
@@ -206,4 +206,16 @@
set category = "Preferences"
set desc = "Allows you to access the Setup Character screen. Changes to your character won't take effect until next round, but other changes will."
prefs.current_tab = 1
- prefs.ShowChoices(usr)
\ No newline at end of file
+ prefs.ShowChoices(usr)
+
+/client/verb/toggle_darkmode()
+ set name = "Toggle Darkmode"
+ set category = "Preferences"
+ set desc = "Toggles UI style between dark and light"
+ prefs.toggles ^= UI_DARKMODE
+ prefs.save_preferences(src)
+ if(prefs.toggles & UI_DARKMODE)
+ activate_darkmode()
+ else
+ deactivate_darkmode()
+ feedback_add_details("admin_verb","TDarkmode") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
\ No newline at end of file
diff --git a/goon/browserassets/css/browserOutput-dark.css b/goon/browserassets/css/browserOutput-dark.css
new file mode 100644
index 00000000000..30618df6fa5
--- /dev/null
+++ b/goon/browserassets/css/browserOutput-dark.css
@@ -0,0 +1,411 @@
+/*****************************************
+*
+* GLOBAL STYLES
+*
+******************************************/
+html, body {
+ padding: 0;
+ margin: 0;
+ height: 100%;
+ color: #fff;
+}
+body {
+ background: #151515;
+ font-family: Verdana, "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-size: 9pt;
+ line-height: 1.2;
+ overflow-x: hidden;
+ overflow-y: scroll;
+ word-wrap: break-word;
+}
+h1, h2, h3, h4, h5, h6 {color: #06f; font-family: Georgia, Verdana, sans-serif;}
+
+img {
+ margin: 0;
+ padding: 0;
+ line-height: 1;
+}
+img.icon {
+ width: 16px;
+ height: 16px;
+}
+a {color: #06f;}
+a:visited {color: #ff00ff;}
+a.popt {text-decoration: none;}
+
+/*****************************************
+*
+* CUSTOM FONTS
+*
+******************************************/
+@font-face { font-family: PxPlus IBM MDA; src: url('PxPlus_IBM_MDA.ttf'); }
+
+/*****************************************
+*
+* 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: 14px;
+ 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: 40px;
+ width: 45px;
+ background: #ddd;
+ color: #000;
+ height: 30px;
+ padding: 8px 0 2px 0;
+}
+#ping i {display: block; text-align: center;}
+#ping .ms {
+ display: block;
+ text-align: center;
+ font-size: 8pt;
+ color: #000;
+ padding-top: 2px;
+}
+#options {
+ position: fixed;
+ top: 0;
+ right: 0;
+}
+#options a {
+ background: #ddd;
+ height: 30px;
+ padding: 5px 0;
+ display: block;
+ color: #333;
+ text-decoration: none;
+ line-height: 28px;
+ border-top: 1px solid #b4b4b4;
+}
+#options a:hover {background: #ccc;}
+#options .toggle {
+ width: 40px;
+ background: #ccc;
+ border-top: 0;
+ float: right;
+ text-align: center;
+}
+#options .sub {clear: both; display: none; width: 160px;}
+#options .sub.scroll {overflow-y: scroll;}
+#options .sub a {padding: 5px 0 5px 8px; line-height: 30px; font-size: 0.9em; clear: both;}
+#options .sub span {
+ display: block;
+ line-height: 30px;
+ float: left;
+}
+#options .sub i {
+ display: block;
+ padding: 0 5px;
+ font-size: 1.1em;
+ width: 22px;
+ text-align: center;
+ line-height: 30px;
+ float: right;
+}
+#options .decreaseFont {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;}
+.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, .adminlooc, .admin, .gfartooc, .gfartlooc, .gfartadmin, .mentorooc, .mentorlooc, .medal {font-weight: bold;}
+
+/* ADD HERE FOR ITALIC */
+.italic, .ghostdronesay.broadcast {font-style: italic;}
+
+/* BADGE */
+.repeatBadge {
+ 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;
+}
+
+/* OUTPUT COLORS */
+.highlight {background: yellow;}
+h1, h2, h3, h4, h5, h6 {color: #06f;font-family: Georgia, Verdana, sans-serif;}
+em {font-style: normal; font-weight: bold;}
+.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;}
+.prefix { font-weight: bold;}
+.ooc { font-weight: bold;}
+.looc {color: #6699CC;}
+.adminobserverooc {color: #0099cc; font-weight: bold;}
+.adminooc {color: #b82e00; font-weight: bold;}
+.adminobserver {color: #996600; font-weight: bold;}
+.admin {color: #386aff; font-weight: bold;}
+.adminsay {color: #9611D4; font-weight: bold;}
+.mentorhelp {color: #0077bb; font-weight: bold;}
+.adminhelp {color: #aa0000; font-weight: bold;}
+.playerreply {color: #8800bb; font-weight: bold;}
+.name { font-weight: bold;}
+.say {}
+.yell { font-weight: bold;}
+.siliconsay {font-family: 'Courier New', Courier, monospace;}
+.deadsay {color: #cc00c6;}
+.radio {color: #408010;}
+.deptradio {color: #993399;}
+.comradio {color: #2040ff;}
+.syndradio {color: #993F40;}
+.dsquadradio {color: #998599;}
+.resteamradio {color: #18BC46;}
+.airadio {color: #FF00FF;}
+.centradio {color: #5C5C7C;}
+.secradio {color: #CF0000;}
+.engradio {color: #A66300;}
+.medradio {color: #009190;}
+.sciradio {color: #993399;}
+.supradio {color: #9F8545;}
+.srvradio {color: #80A000;}
+.admin_channel {color: #9A04D1; font-weight: bold;}
+.mentor_channel {color: #775BFF; font-weight: bold;}
+.mentor_channel_admin {color: #A35CFF; font-weight: bold;}
+.djradio {color: #996600;}
+.binaryradio {color: #1B00FB; font-family: 'Courier New', Courier, monospace;}
+.mommiradio {color: #1B00AB;}
+.alert {color: #ff0000;}
+h1.alert, h2.alert {color: #FFF;}
+.ghostalert {color: #cc00c6; font-style: italic; font-weight: bold;}
+.emote { font-style: italic;}
+.selecteddna {color: #FFFFFF; background-color: #001B1B}
+
+.attack {color: #ff0000;}
+.moderate {color: #CC0000;}
+.disarm {color: #990000;}
+.passive {color: #660000;}
+
+.warning {color: #ff0000; font-style: italic;}
+.boldwarning {color: #ff0000; font-style: italic; font-weight: bold}
+.danger {color: #ff0000; font-weight: bold;}
+.userdanger {color: #ff0000; font-weight: bold; font-size: 120%;}
+.biggerdanger {color: #ff0000; font-weight: bold; font-size: 150%;}
+
+.info {color: #0044DD;}
+.notice {color: #0044DD;}
+.bnotice {color: #0044DD; font-weight: bold;}
+.boldnotice {color: #0044DD; font-weight: bold;}
+.suicide {color: #ff5050; font-style: italic;}
+.green {color: #03bb39;}
+.announce {color: #228b22; font-weight: bold;}
+.boldannounce {color: #ff0000; font-weight: bold;}
+.greenannounce {color: #00ff00; font-weight: bold;}
+
+.alien {color: #C433C4;}
+.noticealien {color: #00c000;}
+.alertalien {color: #00c000; font-weight: bold;}
+.terrorspider {color: #CF52FA;}
+
+
+.sinister {color: #800080; font-weight: bold; font-style: italic;} /* /vg/ */
+.blob {color: #006221; font-weight: bold; font-style: italic;}
+.confirm {color: #00af3b;}
+.rose {color: #ff5050;}
+.sans {font-family: 'Comic Sans MS', cursive, sans-serif;}
+.wingdings {font-family: Wingdings, Webdings;}
+.robot {font-family: 'PxPlus IBM MDA'; font-size: 1.15em;}
+.ancient {color: #008B8B; font-stye: italic;}
+.newscaster {color: #CC0000;}
+.mod {color: #735638; font-weight: bold;}
+.modooc {color: #184880; font-weight: bold;}
+.adminmod {color: #F0AA14; font-weight: bold;}
+.tajaran {color: #803B56;}
+.skrell {color: #00CED1;}
+.solcom {color: #8282FB;}
+.soghun {color: #228B22;}
+.changeling {color: #800080;}
+.vox {color: #AA00AA;}
+.diona {color: #804000; font-weight: bold;}
+.trinary {color: #727272;}
+.kidan {color: #C64C05;}
+.slime {color: #0077AA;}
+.drask {color: #a3d4eb; font-family: "Arial Black";}
+.clown {color: #ff0000;}
+.shadowling {color: #Cb2799;}
+.vulpkanin {color: #B97A57;}
+.abductor {color: #800080; font-style: italic;}
+.mind_control {color: #A00D6F; font-size: 3; font-weight: bold; font-style: italic;}
+.rough {font-family: 'Trebuchet MS', cursive, sans-serif;}
+.say_quote {font-family: Georgia, Verdana, sans-serif;}
+.cult {color: #800080; font-weight: bold; font-style: italic;}
+.cultspeech {color: #AF0000; font-style: italic;}
+.cultitalic {color: #A60000; font-style: italic;}
+.cultlarge {color: #A60000; font-weight: bold; font-size: 120%;}
+.narsie {color: #A60000; font-weight: bold; font-size: 300%;}
+.narsiesmall {color: #A60000; font-weight: bold; font-size: 200%;}
+.interface {color: #330033;}
+.big {font-size: 150%;}
+.reallybig {font-size: 175%;}
+.greentext {color: #00FF00; font-size: 150%;}
+.redtext {color: #FF0000; font-size: 150%;}
+.bold {font-weight: bold;}
+.center {text-align: center;}
+.red {color: #FF0000;}
+.skeleton {color: #C8C8C8; font-weight: bold; font-style: italic;}
+.gutter {color: #7092BE; font-family: "Trebuchet MS", cursive, sans-serif;}
+.orange {color: #ffa500;}
+.orangei {color: #ffa500; font-style: italic;}
+.orangeb {color: #ffa500; font-weight: bold;}
+
+.revennotice {color: #1d29C3;}
+.revenboldnotice {color: #1d29C3; font-weight: bold;}
+.revenbignotice {color: #1d29C3; font-weight: bold; font-size: 120%;}
+.revenminor {color: #823abb}
+.revenwarning {color: #760fbb; font-style: italic;}
+.revendanger {color: #760fbb; font-weight: bold; font-size: 120%;}
+
+/* /vg/ */
+.good {color: green;}
+.average {color: #FF8000;}
+.bad {color: #FF0000;}
+/* /vg/ Saycode Rewrite */
+.italics, .talkinto {font-style:italic;}
+.whisper {font-style:italic;color:#CCCCCC;}
+/* Recruiting stuff */
+.recruit {color: #5c00e6; font-weight: bold; font-style: italic;}
+"}
+
+.memo {color: #638500; text-align: center;}
+.memoedit {text-align: center; font-size: 75%;}
+
+.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;}
+
+/* MEGAFAUNA */
+.colossus {color: #7F282A; font-size: 175%;}
+.hierophant {color: #660099; font-weight: bold; font-size: 150%;}
+.hierophant_warning {color: #660099; font-weight: bold; font-style: italic;}
+
+/* EMOJI STUFF */
+.emoji {max-height: 16px; max-width: 16px}
+
+/* ADMIN TICKETS */
+
+.adminticket {color: #3daf21; font-weight: bold}
diff --git a/goon/browserassets/html/browserOutput.html b/goon/browserassets/html/browserOutput.html
index 496eac94a6c..cfa67167f88 100644
--- a/goon/browserassets/html/browserOutput.html
+++ b/goon/browserassets/html/browserOutput.html
@@ -5,7 +5,7 @@
-
+
@@ -54,6 +54,7 @@
Highlight string
Save chat log
Clear all messages
+ Toggle Dark Chat
diff --git a/goon/browserassets/js/browserOutput.js b/goon/browserassets/js/browserOutput.js
index 06f968044fe..184420011d1 100644
--- a/goon/browserassets/js/browserOutput.js
+++ b/goon/browserassets/js/browserOutput.js
@@ -573,8 +573,9 @@ $(function() {
'shighlightTerms': getCookie('highlightterms'),
'shighlightColor': getCookie('highlightcolor'),
'shideSpam': getCookie('hidespam'),
+ 'darkChat': getCookie('darkChat'),
};
-
+
if (savedConfig.sfontSize) {
$messages.css('font-size', savedConfig.sfontSize);
internalOutput('Loaded font size setting of: '+savedConfig.sfontSize+'', 'internal');
@@ -612,7 +613,28 @@ $(function() {
opts.hideSpam = $.parseJSON(savedConfig.shideSpam);
internalOutput('Loaded hide spam preference of: ' + savedConfig.shideSpam + '', 'internal');
}
-
+ if (savedConfig.darkChat == "on") {
+ $("head").append("");
+ var css = $("head").children(":last");
+ css.attr({
+ rel: "stylesheet",
+ type: "text/css",
+ href: "./browserOutput-dark.css"
+ });
+ } else {
+ $("head").append("");
+ var css = $("head").children(":last");
+ css.attr({
+ rel: "stylesheet",
+ type: "text/css",
+ href: "./browserOutput.css"
+ });
+ }
+ if(localStorage){
+ var backlog = localStorage.getItem('backlog')
+ $messages.html(backlog)
+ localStorage.setItem('backlog', '')
+ }
(function() {
var dataCookie = getCookie('connData');
if (dataCookie) {
@@ -1012,6 +1034,17 @@ $(function() {
opts.previousMessageCount = 1;
});
+ $('#toggleDarkChat').click(function(e) {
+ var backlog = $messages.html()
+ if(getCookie('darkChat') == "on"){
+ setCookie('darkChat', "off", 365)
+ } else {
+ setCookie('darkChat', "on", 365)
+ }
+ localStorage.setItem('backlog', backlog)
+ location.reload();
+ });
+
// Tell BYOND to give us a macro list.
// I don't know why but for some retarded reason,
// You need to activate hotkeymode before you can winget the macros in it.
diff --git a/goon/code/datums/browserOutput.dm b/goon/code/datums/browserOutput.dm
index 32a2dcd8b88..28a2690b5f6 100644
--- a/goon/code/datums/browserOutput.dm
+++ b/goon/code/datums/browserOutput.dm
@@ -11,6 +11,7 @@ var/list/chatResources = list(
"goon/browserassets/css/fonts/PxPlus_IBM_MDA.ttf",
"goon/browserassets/css/font-awesome.css",
"goon/browserassets/css/browserOutput.css",
+ "goon/browserassets/css/browserOutput-dark.css",
"goon/browserassets/json/unicode_9_annotations.json",
"goon/browserassets/html/saveInstructions.html"
)
diff --git a/icons/paradise.png b/icons/paradise.png
new file mode 100644
index 00000000000..9b7e3b6db3d
Binary files /dev/null and b/icons/paradise.png differ
diff --git a/interface/skin.dmf b/interface/skin.dmf
index ab8e7ef370c..996edf78905 100644
--- a/interface/skin.dmf
+++ b/interface/skin.dmf
@@ -1523,7 +1523,7 @@ window "mainwindow"
is-default = true
is-maximized = true
title = "Paradise Station 13"
- icon = 'icons\\ss13_64.png'
+ icon = 'icons\\paradise.png'
menu = "menu"
macro = "macro"
saved-params = "pos;size;is-minimized;is-maximized"
@@ -1658,7 +1658,7 @@ window "rpane"
show-splitter = true
elem "textb"
type = BUTTON
- pos = 0,0
+ pos = 0,7
size = 60x16
is-visible = false
saved-params = "is-checked"
@@ -1669,7 +1669,7 @@ window "rpane"
button-type = pushbox
elem "infob"
type = BUTTON
- pos = 64,0
+ pos = 64,7
size = 60x16
is-visible = false
saved-params = "is-checked"
@@ -1679,37 +1679,37 @@ window "rpane"
button-type = pushbox
elem "wikib"
type = BUTTON
- pos = 155,0
+ pos = 155,7
size = 60x16
text = "Wiki"
command = "wiki"
elem "forumb"
type = BUTTON
- pos = 220,0
+ pos = 220,7
size = 60x16
text = "Forum"
command = "forum"
elem "rulesb"
type = BUTTON
- pos = 285,0
+ pos = 285,7
size = 60x16
text = "Rules"
command = "rules"
elem "githubb"
type = BUTTON
- pos = 350,0
+ pos = 350,7
size = 60x16
text = "GitHub"
command = "github"
elem "changelog"
type = BUTTON
- pos = 415,0
+ pos = 415,7
size = 67x16
text = "Changelog"
command = "Changelog"
elem "discordb"
type = BUTTON
- pos = 487,0
+ pos = 487,7
size = 60x16
background-color = #7289DA
text-color = #FFFFFF
@@ -1718,7 +1718,7 @@ window "rpane"
command = "discord"
elem "karma"
type = BUTTON
- pos = 552,0
+ pos = 552,7
size = 60x16
background-color = #FF4500
text-color = #FFFFFF
@@ -1727,7 +1727,7 @@ window "rpane"
command = "karmashop"
elem "donate"
type = BUTTON
- pos = 617,0
+ pos = 617,7
size = 60x16
background-color = #008000
text-color = #FFFFFF
@@ -1736,7 +1736,7 @@ window "rpane"
command = "Donate"
elem "browseb"
type = BUTTON
- pos = 561,0
+ pos = 561,7
size = 60x16
is-visible = false
saved-params = "is-checked"
@@ -1758,8 +1758,8 @@ window "browserwindow"
anchor1 = 0,0
anchor2 = 100,100
is-default = true
- on-show = ".winset\"rpane.infob.is-visible=true?rpane.infob.pos=130,0;rpane.textb.is-visible=true;rpane.browseb.is-visible=true;rpane.browseb.is-checked=true;rpane.rpanewindow.pos=0,30;rpane.rpanewindow.size=0x0;rpane.rpanewindow.left=browserwindow\""
- on-hide = ".winset\"rpane.infob.is-visible=true?rpane.infob.is-checked=true rpane.infob.pos=65,0 rpane.rpanewindow.left=infowindow:rpane.rpanewindow.left=textwindow rpane.textb.is-visible=true rpane.rpanewindow.pos=0,30 rpane.rpanewindow.size=0x0\""
+ on-show = ".winset\"rpane.infob.is-visible=true?rpane.infob.pos=130,7;rpane.textb.is-visible=true;rpane.browseb.is-visible=true;rpane.browseb.is-checked=true;rpane.rpanewindow.pos=0,30;rpane.rpanewindow.size=0x0;rpane.rpanewindow.left=browserwindow\""
+ on-hide = ".winset\"rpane.infob.is-visible=true?rpane.infob.is-checked=true rpane.infob.pos=65,7 rpane.rpanewindow.left=infowindow:rpane.rpanewindow.left=textwindow rpane.textb.is-visible=true rpane.rpanewindow.pos=0,30 rpane.rpanewindow.size=0x0\""
window "infowindow"
elem "infowindow"
@@ -1778,5 +1778,5 @@ window "infowindow"
tab-text-color = #000000
allow-html = true
multi-line = true
- on-show = ".winset\"rpane.infob.is-visible=true;rpane.browseb.is-visible=true?rpane.infob.pos=130,0:rpane.infob.pos=65,0 rpane.textb.is-visible=true rpane.infob.is-checked=true rpane.rpanewindow.pos=0,30 rpane.rpanewindow.size=0x0 rpane.rpanewindow.left=infowindow\""
+ on-show = ".winset\"rpane.infob.is-visible=true;rpane.browseb.is-visible=true?rpane.infob.pos=130,7:rpane.infob.pos=65,7 rpane.textb.is-visible=true rpane.infob.is-checked=true rpane.rpanewindow.pos=0,30 rpane.rpanewindow.size=0x0 rpane.rpanewindow.left=infowindow\""
on-hide = ".winset\"rpane.infob.is-visible=false;rpane.browseb.is-visible=true?rpane.browseb.is-checked=true rpane.rpanewindow.left=browserwindow:rpane.textb.is-visible=true rpane.rpanewindow.pos=0,30 rpane.rpanewindow.size=0x0 rpane.rpanewindow.left=\""