[MIRROR] Adds toggleable darkmode to the game! (#4857)

* Adds toggleable darkmode to the game! (#43072)
This commit is contained in:
yogstation13-bot
2019-04-08 09:13:33 +02:00
committed by Gary Lafortune
parent b3d94e3b8a
commit 25a1dad23e
18 changed files with 762 additions and 122 deletions

View File

@@ -220,7 +220,7 @@ GLOBAL_LIST_INIT(ghost_others_options, list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE
GLOBAL_LIST_INIT(pda_styles, list(MONO, VT, ORBITRON, SHARE)) GLOBAL_LIST_INIT(pda_styles, list(MONO, VT, ORBITRON, SHARE))
//Color Defines //Color Defines
#define OOC_COLOR "#002eb8" #define OOC_COLOR "#386aff"
///////////////////////////////////// /////////////////////////////////////
// atom.appearence_flags shortcuts // // atom.appearence_flags shortcuts //

View File

@@ -442,7 +442,7 @@ SUBSYSTEM_DEF(job)
to_chat(M, "<FONT color='red'><b>Space Law has been updated! </font><a href='https://wiki.yogstation.net/wiki/Space_Law'>Click here to view the updates.</a></b>") to_chat(M, "<FONT color='red'><b>Space Law has been updated! </font><a href='https://wiki.yogstation.net/wiki/Space_Law'>Click here to view the updates.</a></b>")
//YOGS end //YOGS end
if(CONFIG_GET(number/minimal_access_threshold)) if(CONFIG_GET(number/minimal_access_threshold))
to_chat(M, "<FONT color='blue'><B>As this station was initially staffed with a [CONFIG_GET(flag/jobs_have_minimal_access) ? "full crew, only your job's necessities" : "skeleton crew, additional access may"] have been added to your ID card.</B></font>") to_chat(M, "<span class='notice'><B>As this station was initially staffed with a [CONFIG_GET(flag/jobs_have_minimal_access) ? "full crew, only your job's necessities" : "skeleton crew, additional access may"] have been added to your ID card.</B></span>")
if(ishuman(H)) if(ishuman(H))
var/mob/living/carbon/human/wageslave = H var/mob/living/carbon/human/wageslave = H
to_chat(M, "<b>Your account ID is [wageslave.account_id].</b>") to_chat(M, "<b>Your account ID is [wageslave.account_id].</b>")

View File

@@ -205,7 +205,7 @@ SUBSYSTEM_DEF(ticker)
if(GLOB.secret_force_mode != "secret") if(GLOB.secret_force_mode != "secret")
var/datum/game_mode/smode = config.pick_mode(GLOB.secret_force_mode) var/datum/game_mode/smode = config.pick_mode(GLOB.secret_force_mode)
if(!smode.can_start()) if(!smode.can_start())
message_admins("\blue Unable to force secret [GLOB.secret_force_mode]. [smode.required_players] players and [smode.required_enemies] eligible antagonists needed.") message_admins("<span class='notice'>Unable to force secret [GLOB.secret_force_mode]. [smode.required_players] players and [smode.required_enemies] eligible antagonists needed.</span>")
else else
mode = smode mode = smode
@@ -275,7 +275,7 @@ SUBSYSTEM_DEF(ticker)
round_start_time = world.time round_start_time = world.time
SSdbcore.SetRoundStart() SSdbcore.SetRoundStart()
to_chat(world, "<FONT color='blue'><B>Welcome to [station_name()], enjoy your stay!</B></FONT>") to_chat(world, "<span class='notice'><B>Welcome to [station_name()], enjoy your stay!</B></span>")
SEND_SOUND(world, sound('sound/ai/welcome.ogg')) SEND_SOUND(world, sound('sound/ai/welcome.ogg'))
current_state = GAME_STATE_PLAYING current_state = GAME_STATE_PLAYING
@@ -283,7 +283,7 @@ SUBSYSTEM_DEF(ticker)
Master.SetRunLevel(RUNLEVEL_GAME) Master.SetRunLevel(RUNLEVEL_GAME)
if(SSevents.holidays) if(SSevents.holidays)
to_chat(world, "<font color='blue'>and...</font>") to_chat(world, "<span class='notice'>and...</span>")
for(var/holidayname in SSevents.holidays) for(var/holidayname in SSevents.holidays)
var/datum/holiday/holiday = SSevents.holidays[holidayname] var/datum/holiday/holiday = SSevents.holidays[holidayname]
to_chat(world, "<h4>[holiday.greet()]</h4>") to_chat(world, "<h4>[holiday.greet()]</h4>")

View File

@@ -159,15 +159,15 @@
t1 = "*dead*" t1 = "*dead*"
else else
t1 = "Unknown" t1 = "Unknown"
return {"<font color="[patient.health > 50 ? "blue" : "red"]"><b>Health:</b> [patient.stat > 1 ? "[t1]" : "[patient.health]% ([t1])"]</font><br /> return {"<font color="[patient.health > 50 ? "#3d5bc3" : "#c51e1e"]"><b>Health:</b> [patient.stat > 1 ? "[t1]" : "[patient.health]% ([t1])"]</font><br />
<font color="[patient.bodytemperature > 50 ? "blue" : "red"]"><b>Core Temperature:</b> [patient.bodytemperature-T0C]&deg;C ([patient.bodytemperature*1.8-459.67]&deg;F)</font><br /> <font color="[patient.bodytemperature > 50 ? "#3d5bc3" : "#c51e1e"]"><b>Core Temperature:</b> [patient.bodytemperature-T0C]&deg;C ([patient.bodytemperature*1.8-459.67]&deg;F)</font><br />
<font color="[patient.getBruteLoss() < 60 ? "blue" : "red"]"><b>Brute Damage:</b> [patient.getBruteLoss()]%</font><br /> <font color="[patient.getBruteLoss() < 60 ? "#3d5bc3" : "#c51e1e"]"><b>Brute Damage:</b> [patient.getBruteLoss()]%</font><br />
<font color="[patient.getOxyLoss() < 60 ? "blue" : "red"]"><b>Respiratory Damage:</b> [patient.getOxyLoss()]%</font><br /> <font color="[patient.getOxyLoss() < 60 ? "#3d5bc3" : "#c51e1e"]"><b>Respiratory Damage:</b> [patient.getOxyLoss()]%</font><br />
<font color="[patient.getToxLoss() < 60 ? "blue" : "red"]"><b>Toxin Content:</b> [patient.getToxLoss()]%</font><br /> <font color="[patient.getToxLoss() < 60 ? "#3d5bc3" : "#c51e1e"]"><b>Toxin Content:</b> [patient.getToxLoss()]%</font><br />
<font color="[patient.getFireLoss() < 60 ? "blue" : "red"]"><b>Burn Severity:</b> [patient.getFireLoss()]%</font><br /> <font color="[patient.getFireLoss() < 60 ? "#3d5bc3" : "#c51e1e"]"><b>Burn Severity:</b> [patient.getFireLoss()]%</font><br />
<font color="red">[patient.getCloneLoss() ? "Subject appears to have cellular damage." : ""]</font><br /> <span_class='danger'>[patient.getCloneLoss() ? "Subject appears to have cellular damage." : ""]</span><br />
<font color="red">[patient.getBrainLoss() ? "Significant brain damage detected." : ""]</font><br /> <span_class='danger'>[patient.getBrainLoss() ? "Significant brain damage detected." : ""]</span><br />
<font color="red">[length(patient.get_traumas()) ? "Brain Traumas detected." : ""]</font><br /> <span_class='danger'>[length(patient.get_traumas()) ? "Brain Traumas detected." : ""]</span><br />
"} "}
/obj/item/mecha_parts/mecha_equipment/medical/sleeper/proc/get_patient_reagents() /obj/item/mecha_parts/mecha_equipment/medical/sleeper/proc/get_patient_reagents()

View File

@@ -6,7 +6,7 @@
set category = null set category = null
set name = "Admin PM Mob" set name = "Admin PM Mob"
if(!holder) if(!holder)
to_chat(src, "<font color='red'>Error: Admin-PM-Context: Only administrators may use this command.</font>") to_chat(src, "<span_class='danger'>Error: Admin-PM-Context: Only administrators may use this command.</span>")
return return
if(!ismob(M)) //yogs start if(!ismob(M)) //yogs start
return return
@@ -23,7 +23,7 @@
set category = "Admin" set category = "Admin"
set name = "Admin PM" set name = "Admin PM"
if(!holder) if(!holder)
to_chat(src, "<font color='red'>Error: Admin-PM-Panel: Only administrators may use this command.</font>") to_chat(src, "<span_class='danger'>Error: Admin-PM-Panel: Only administrators may use this command.</span>")
return return
var/list/client/targets[0] var/list/client/targets[0]
for(var/client/T) for(var/client/T)
@@ -42,7 +42,7 @@
/client/proc/cmd_ahelp_reply(whom) /client/proc/cmd_ahelp_reply(whom)
if(prefs.muted & MUTE_ADMINHELP) if(prefs.muted & MUTE_ADMINHELP)
to_chat(src, "<font color='red'>Error: Admin-PM: You are unable to use admin PM-s (muted).</font>") to_chat(src, "<span_class='danger'>Error: Admin-PM: You are unable to use admin PM-s (muted).</span>")
return return
var/client/C var/client/C
if(istext(whom)) if(istext(whom))
@@ -53,7 +53,7 @@
C = whom C = whom
if(!C) if(!C)
if(holder) if(holder)
to_chat(src, "<font color='red'>Error: Admin-PM: Client not found.</font>") to_chat(src, "<span_class='danger'>Error: Admin-PM: Client not found.</span>")
return return
var/datum/admin_help/AH = C.current_ticket var/datum/admin_help/AH = C.current_ticket
@@ -70,12 +70,12 @@
//Fetching a message if needed. src is the sender and C is the target client //Fetching a message if needed. src is the sender and C is the target client
/client/proc/cmd_admin_pm(whom, msg) /client/proc/cmd_admin_pm(whom, msg)
if(prefs.muted & MUTE_ADMINHELP) if(prefs.muted & MUTE_ADMINHELP)
to_chat(src, "<font color='red'>Error: Admin-PM: You are unable to use admin PM-s (muted).</font>") to_chat(src, "<span_class='danger'>Error: Admin-PM: You are unable to use admin PM-s (muted).</span>")
return return
if(!holder && !current_ticket) //no ticket? https://www.youtube.com/watch?v=iHSPf6x1Fdo if(!holder && !current_ticket) //no ticket? https://www.youtube.com/watch?v=iHSPf6x1Fdo
to_chat(src, "<font color='red'>You can no longer reply to this ticket, please open another one by using the Adminhelp verb if need be.</font>") to_chat(src, "<span_class='danger'>You can no longer reply to this ticket, please open another one by using the Adminhelp verb if need be.</span>")
to_chat(src, "<font color='blue'>Message: [msg]</font>") to_chat(src, "<span_class='notice'>Message: [msg]</span>")
return return
var/client/recipient var/client/recipient
@@ -100,14 +100,14 @@
if(!msg) if(!msg)
return return
if(holder) if(holder)
to_chat(src, "<font color='red'>Error: Use the admin IRC channel, nerd.</font>") to_chat(src, "<span_class='danger'>Error: Use the admin IRC channel, nerd.</span>")
return return
else else
if(!recipient) if(!recipient)
if(holder) if(holder)
to_chat(src, "<font color='red'>Error: Admin-PM: Client not found.</font>") to_chat(src, "<span_class='danger'>Error: Admin-PM: Client not found.</span>")
if(msg) if(msg)
to_chat(src, msg) to_chat(src, msg)
return return
@@ -123,12 +123,12 @@
return return
if(prefs.muted & MUTE_ADMINHELP) if(prefs.muted & MUTE_ADMINHELP)
to_chat(src, "<font color='red'>Error: Admin-PM: You are unable to use admin PM-s (muted).</font>") to_chat(src, "<span_class='danger'>Error: Admin-PM: You are unable to use admin PM-s (muted).</span>")
return return
if(!recipient) if(!recipient)
if(holder) if(holder)
to_chat(src, "<font color='red'>Error: Admin-PM: Client not found.</font>") to_chat(src, "<span_class='danger'>Error: Admin-PM: Client not found.</span>")
else else
current_ticket.MessageNoRecipient(msg) current_ticket.MessageNoRecipient(msg)
return return
@@ -157,24 +157,27 @@
else else
if(recipient.holder) if(recipient.holder)
if(holder) //both are admins if(holder) //both are admins
to_chat(recipient, "<font color='red'>Admin PM from-<b>[key_name(src, recipient, 1)]</b>: <span class='linkify'>[keywordparsedmsg]</span></font>") to_chat(recipient, "<span_class='danger'>Admin PM from-<b>[key_name(src, recipient, 1)]</b>: <span class='linkify'>[keywordparsedmsg]</span></span>")
to_chat(src, "<font color='blue'>Admin PM to-<b>[key_name(recipient, src, 1)]</b>: <span class='linkify'>[keywordparsedmsg]</span></font>") to_chat(src, "<span_class='notice'>Admin PM to-<b>[key_name(recipient, src, 1)]</b>: <span class='linkify'>[keywordparsedmsg]</span></span>")
//omg this is dumb, just fill in both their tickets //omg this is dumb, just fill in both their tickets
admin_ticket_log(src, msg, FALSE) // yogs - Yog Tickets // yogs start - Yog Tickets
admin_ticket_log(src, msg, FALSE)
if(recipient.current_ticket && !recipient.current_ticket.handling_admin) if(recipient.current_ticket && !recipient.current_ticket.handling_admin)
recipient.current_ticket.Administer(src) recipient.current_ticket.Administer(src)
// yogs end - Yog Tickets
if(recipient != src) //reeee if(recipient != src) //reeee
admin_ticket_log(recipient, msg, FALSE) // yogs - Yog Tickets admin_ticket_log(recipient, msg, FALSE) // yogs - Yog Tickets
else //recipient is an admin but sender is not else //recipient is an admin but sender is not
//YOGS START -- Yogs Tickets
if(!current_ticket) if(!current_ticket)
to_chat(src, "<font color='blue'>Ticket closed, please make a new one before trying to contact admins!</span>") // yogs - Yog Tickets to_chat(src, "<span class='notice'>Ticket closed, please make a new one before trying to contact admins!</span>")
return return
admin_ticket_log(src, keywordparsedmsg, FALSE) // yogs - Yog Tickets admin_ticket_log(src, keywordparsedmsg, FALSE)
to_chat(recipient, "<font color='red'>Reply PM from-<b>[key_name(src, recipient, 1)]</b>: <span class='linkify'>[keywordparsedmsg]</span></font>") // yogs - Yog Tickets to_chat(recipient, "<span class='danger'>Reply PM from-<b>[key_name(src, recipient, 1)]</b>: <span class='linkify'>[keywordparsedmsg]</span></span>")
to_chat(src, "<font color='blue'>-- [key_name(src, null, 0)] -> <b>Admins</b>: <span class='linkify'>[msg]</span></font>") // yogs - Yog Tickets to_chat(src, "<span class='notice'>-- [key_name(src, null, 0)] -> <b>Admins</b>: <span class='linkify'>[msg]</span></span>")
//YOGS END
//play the receiving admin the adminhelp sound (if they have them enabled) //play the receiving admin the adminhelp sound (if they have them enabled)
if(recipient.prefs.toggles & SOUND_ADMINHELP) if(recipient.prefs.toggles & SOUND_ADMINHELP)
SEND_SOUND(recipient, sound('sound/effects/adminhelp.ogg')) SEND_SOUND(recipient, sound('sound/effects/adminhelp.ogg'))
@@ -186,10 +189,10 @@
if(!recipient.current_ticket.handling_admin) if(!recipient.current_ticket.handling_admin)
recipient.current_ticket.Administer(src) // yogs - Yog Tickets recipient.current_ticket.Administer(src) // yogs - Yog Tickets
to_chat(recipient, "<font color='red' size='4'><b>-- Administrator private message --</b></font>") to_chat(recipient, "<font color='red' size='4'><b>-- Administrator private message --</b></span>")
to_chat(recipient, "<font color='red'>Admin PM from-<b>[key_name(src, recipient, 0)]</b>: <span class='linkify'>[msg]</span></font>") to_chat(recipient, "<span_class='danger'>Admin PM from-<b>[key_name(src, recipient, 0)]</b>: <span class='linkify'>[msg]</span></span>")
to_chat(recipient, "<font color='red'><i>Click on the administrator's name to reply.</i></font>") to_chat(recipient, "<span_class='danger'><i>Click on the administrator's name to reply.</i></span>")
to_chat(src, "<font color='blue'>Admin PM to-<b>[key_name(recipient, src, 1)]</b>: <span class='linkify'>[msg]</span></font>") to_chat(src, "<span_class='notice'>Admin PM to-<b>[key_name(recipient, src, 1)]</b>: <span class='linkify'>[msg]</span></span>")
admin_ticket_log(recipient, msg, FALSE) // yogs - Yog Tickets admin_ticket_log(recipient, msg, FALSE) // yogs - Yog Tickets
@@ -210,20 +213,20 @@
return return
else //neither are admins else //neither are admins
to_chat(src, "<font color='red'>Error: Admin-PM: Non-admin to non-admin PM communication is forbidden.</font>") to_chat(src, "<span_class='danger'>Error: Admin-PM: Non-admin to non-admin PM communication is forbidden.</span>")
return return
if(irc) if(irc)
log_admin_private("PM: [key_name(src)]->IRC: [rawmsg]") log_admin_private("PM: [key_name(src)]->IRC: [rawmsg]")
for(var/client/X in GLOB.admins) for(var/client/X in GLOB.admins)
to_chat(X, "<font color='blue'><B>PM: [key_name(src, X, 0)]-&gt;IRC:</B> [keywordparsedmsg]</font>") to_chat(X, "<span_class='notice'><B>PM: [key_name(src, X, 0)]-&gt;IRC:</B> [keywordparsedmsg]</span>")
else else
window_flash(recipient, ignorepref = TRUE) window_flash(recipient, ignorepref = TRUE)
log_admin_private("PM: [key_name(src)]->[key_name(recipient)]: [rawmsg]") 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 //we don't use message_admins here because the sender/receiver might get it too
for(var/client/X in GLOB.admins) 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 if(X.key!=key && X.key!=recipient.key) //check client/X is an admin and isn't the sender or recipient
to_chat(X, "<font color='blue'><B>PM: [key_name(src, X, 0)]-&gt;[key_name(recipient, X, 0)]:</B> [keywordparsedmsg]</font>" ) to_chat(X, "<span_class='notice'><B>PM: [key_name(src, X, 0)]-&gt;[key_name(recipient, X, 0)]:</B> [keywordparsedmsg]</span>" )
@@ -305,9 +308,9 @@
log_admin_private("IRC PM: [sender] -> [key_name(C)] : [msg]") log_admin_private("IRC PM: [sender] -> [key_name(C)] : [msg]")
msg = emoji_parse(msg) msg = emoji_parse(msg)
to_chat(C, "<font color='red' size='4'><b>-- Administrator private message --</b></font>") to_chat(C, "<font color='red' size='4'><b>-- Administrator private message --</b></span>")
to_chat(C, "<font color='red'>Admin PM from-<b><a href='?priv_msg=[stealthkey]'>[adminname]</A></b>: [msg]</font>") to_chat(C, "<span_class='danger'>Admin PM from-<b><a href='?priv_msg=[stealthkey]'>[adminname]</A></b>: [msg]</span>")
to_chat(C, "<font color='red'><i>Click on the administrator's name to reply.</i></font>") to_chat(C, "<span_class='danger'><i>Click on the administrator's name to reply.</i></span>")
admin_ticket_log(C, msg) // yogs - Yog Tickets admin_ticket_log(C, msg) // yogs - Yog Tickets

View File

@@ -298,7 +298,7 @@
if(candidates.len) if(candidates.len)
ckey = input("Pick the player you want to respawn as a xeno.", "Suitable Candidates") as null|anything in candidates ckey = input("Pick the player you want to respawn as a xeno.", "Suitable Candidates") as null|anything in candidates
else else
to_chat(usr, "<font color='red'>Error: create_xeno(): no suitable candidates.</font>") to_chat(usr, "<span class='danger'>Error: create_xeno(): no suitable candidates.</span>")
if(!istext(ckey)) if(!istext(ckey))
return 0 return 0

View File

@@ -233,10 +233,10 @@ GLOBAL_LIST_EMPTY(external_rsc_urls)
alert_mob_dupe_login = TRUE alert_mob_dupe_login = TRUE
if(matches) if(matches)
if(C) if(C)
message_admins("<font color='red'><B>Notice: </B><font color='blue'>[key_name_admin(src)] has the same [matches] as [key_name_admin(C)].</font>") message_admins("<span class='danger'><B>Notice: </B></span><span class='notice'>[key_name_admin(src)] has the same [matches] as [key_name_admin(C)].</span>")
log_access("Notice: [key_name(src)] has the same [matches] as [key_name(C)].") log_access("Notice: [key_name(src)] has the same [matches] as [key_name(C)].")
else else
message_admins("<font color='red'><B>Notice: </B><font color='blue'>[key_name_admin(src)] has the same [matches] as [key_name_admin(C)] (no longer logged in). </font>") message_admins("<span class='danger'><B>Notice: </B></span><span class='notice'>[key_name_admin(src)] has the same [matches] as [key_name_admin(C)] (no longer logged in). </span>")
log_access("Notice: [key_name(src)] has the same [matches] as [key_name(C)] (no longer logged in).") log_access("Notice: [key_name(src)] has the same [matches] as [key_name(C)] (no longer logged in).")
if(GLOB.player_details[ckey]) if(GLOB.player_details[ckey])

View File

@@ -0,0 +1,128 @@
//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 = #2c2f33;background-color = none")
winset(src, "infowindow", "text-color = #99aab5;text-color = #000000")
winset(src, "info", "background-color = #272727;background-color = none")
winset(src, "info", "text-color = #99aab5;text-color = #000000")
winset(src, "browseroutput", "background-color = #272727;background-color = none")
winset(src, "browseroutput", "text-color = #99aab5;text-color = #000000")
winset(src, "outputwindow", "background-color = #272727;background-color = none")
winset(src, "outputwindow", "text-color = #99aab5;text-color = #000000")
winset(src, "mainwindow", "background-color = #2c2f33;background-color = none")
winset(src, "split", "background-color = #272727;background-color = none")
//Buttons
winset(src, "changelog", "background-color = #494949;background-color = none")
winset(src, "changelog", "text-color = #99aab5;text-color = #000000")
winset(src, "rules", "background-color = #494949;background-color = none")
winset(src, "rules", "text-color = #99aab5;text-color = #000000")
winset(src, "wiki", "background-color = #494949;background-color = none")
winset(src, "wiki", "text-color = #99aab5;text-color = #000000")
winset(src, "forum", "background-color = #494949;background-color = none")
winset(src, "forum", "text-color = #99aab5;text-color = #000000")
winset(src, "github", "background-color = #3a3a3a;background-color = none")
winset(src, "github", "text-color = #99aab5;text-color = #000000")
winset(src, "report-issue", "background-color = #492020;background-color = none")
winset(src, "report-issue", "text-color = #99aab5;text-color = #000000")
//Status and verb tabs
winset(src, "output", "background-color = #272727;background-color = none")
winset(src, "output", "text-color = #99aab5;text-color = #000000")
winset(src, "outputwindow", "background-color = #272727;background-color = none")
winset(src, "outputwindow", "text-color = #99aab5;text-color = #000000")
winset(src, "statwindow", "background-color = #272727;background-color = none")
winset(src, "statwindow", "text-color = #eaeaea;text-color = #000000")
winset(src, "stat", "background-color = #2c2f33;background-color = #FFFFFF")
winset(src, "stat", "tab-background-color = #272727;tab-background-color = none")
winset(src, "stat", "text-color = #99aab5;text-color = #000000")
winset(src, "stat", "tab-text-color = #99aab5;tab-text-color = #000000")
//Say, OOC, me Buttons etc.
winset(src, "saybutton", "background-color = #272727;background-color = none")
winset(src, "saybutton", "text-color = #99aab5;text-color = #000000")
winset(src, "oocbutton", "background-color = #272727;background-color = none")
winset(src, "oocbutton", "text-color = #99aab5;text-color = #000000")
winset(src, "mebutton", "background-color = #272727;background-color = none")
winset(src, "mebutton", "text-color = #99aab5;text-color = #000000")
winset(src, "asset_cache_browser", "background-color = #272727;background-color = none")
winset(src, "asset_cache_browser", "text-color = #99aab5;text-color = #000000")
winset(src, "tooltip", "background-color = #272727;background-color = none")
winset(src, "tooltip", "text-color = #99aab5;text-color = #000000")
/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 = #2c2f33")
winset(src, "infowindow", "text-color = #000000;text-color = #99aab5")
winset(src, "info", "background-color = none;background-color = #272727")
winset(src, "info", "text-color = #000000;text-color = #99aab5")
winset(src, "browseroutput", "background-color = none;background-color = #272727")
winset(src, "browseroutput", "text-color = #000000;text-color = #99aab5")
winset(src, "outputwindow", "background-color = none;background-color = #272727")
winset(src, "outputwindow", "text-color = #000000;text-color = #99aab5")
winset(src, "mainwindow", "background-color = none;background-color = #2c2f33")
winset(src, "split", "background-color = none;background-color = #272727")
//Buttons
winset(src, "changelog", "background-color = none;background-color = #494949")
winset(src, "changelog", "text-color = #000000;text-color = #99aab5")
winset(src, "rules", "background-color = none;background-color = #494949")
winset(src, "rules", "text-color = #000000;text-color = #99aab5")
winset(src, "wiki", "background-color = none;background-color = #494949")
winset(src, "wiki", "text-color = #000000;text-color = #99aab5")
winset(src, "forum", "background-color = none;background-color = #494949")
winset(src, "forum", "text-color = #000000;text-color = #99aab5")
winset(src, "github", "background-color = none;background-color = #3a3a3a")
winset(src, "github", "text-color = #000000;text-color = #99aab5")
winset(src, "report-issue", "background-color = none;background-color = #492020")
winset(src, "report-issue", "text-color = #000000;text-color = #99aab5")
//Status and verb tabs
winset(src, "output", "background-color = none;background-color = #272727")
winset(src, "output", "text-color = #000000;text-color = #99aab5")
winset(src, "outputwindow", "background-color = none;background-color = #272727")
winset(src, "outputwindow", "text-color = #000000;text-color = #99aab5")
winset(src, "statwindow", "background-color = none;background-color = #272727")
winset(src, "statwindow", "text-color = #000000;text-color = #eaeaea")
winset(src, "stat", "background-color = #FFFFFF;background-color = #2c2f33")
winset(src, "stat", "tab-background-color = none;tab-background-color = #272727")
winset(src, "stat", "text-color = #000000;text-color = #99aab5")
winset(src, "stat", "tab-text-color = #000000;tab-text-color = #99aab5")
//Say, OOC, me Buttons etc.
winset(src, "saybutton", "background-color = none;background-color = #272727")
winset(src, "saybutton", "text-color = #000000;text-color = #99aab5")
winset(src, "oocbutton", "background-color = none;background-color = #272727")
winset(src, "oocbutton", "text-color = #000000;text-color = #99aab5")
winset(src, "mebutton", "background-color = none;background-color = #272727")
winset(src, "mebutton", "text-color = #000000;text-color = #99aab5")
winset(src, "asset_cache_browser", "background-color = none;background-color = #272727")
winset(src, "asset_cache_browser", "text-color = #000000;text-color = #99aab5")
winset(src, "tooltip", "background-color = none;background-color = #272727")
winset(src, "tooltip", "text-color = #000000;text-color = #99aab5")
/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',
)

View File

@@ -97,6 +97,10 @@ GLOBAL_DATUM_INIT(iconCache, /savefile, new("tmp/iconCache.sav")) //Cache of ico
// yogs end // yogs end
if("setMusicVolume") if("setMusicVolume")
data = setMusicVolume(arglist(params)) data = setMusicVolume(arglist(params))
if("swaptodarkmode")
swaptodarkmode()
if("swaptolightmode")
swaptolightmode()
if(data) if(data)
ehjax_send(data = data) ehjax_send(data = data)
@@ -261,3 +265,9 @@ 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. // 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") 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()

View File

@@ -7,16 +7,20 @@ html, body {
padding: 0; padding: 0;
margin: 0; margin: 0;
height: 100%; height: 100%;
color: #000000; color: #99aab5;
} }
body { body {
background: #fff; background: #2c2f33;
font-family: Verdana, sans-serif; font-family: Verdana, sans-serif;
font-size: 9pt; font-size: 9pt;
font-color: #99aab5;
line-height: 1.2; line-height: 1.2;
overflow-x: hidden; overflow-x: hidden;
overflow-y: scroll; overflow-y: scroll;
word-wrap: break-word; word-wrap: break-word;
scrollbar-face-color:#1A1A1A;
scrollbar-track-color:#2c2f33;
scrollbar-highlight-color:#2c2f33;
} }
em { em {
@@ -38,7 +42,6 @@ img.icon {
vertical-align: bottom; vertical-align: bottom;
} }
.r:before { /* "repeated" badge class for combined messages */ .r:before { /* "repeated" badge class for combined messages */
content: 'x'; content: 'x';
} }
@@ -56,9 +59,9 @@ img.icon {
border-radius: 10px; border-radius: 10px;
} }
a {color: #0000ff;} a {color: #397ea5;}
a.visited {color: #ff00ff;} a.visited {color: #7c00e6;}
a:visited {color: #ff00ff;} a:visited {color: #7c00e6;}
a.popt {text-decoration: none;} a.popt {text-decoration: none;}
/***************************************** /*****************************************
@@ -101,7 +104,7 @@ a.popt {text-decoration: none;}
#ping { #ping {
position: fixed; position: fixed;
top: 0; top: 0;
right: 80px; right: 115px;
width: 45px; width: 45px;
background: #ddd; background: #ddd;
height: 30px; height: 30px;
@@ -242,9 +245,9 @@ a.popt {text-decoration: none;}
******************************************/ ******************************************/
/* MOTD */ /* MOTD */
.motd {color: #638500; font-family: Verdana, sans-serif;} .motd {color: #99aab5; font-family: Verdana, sans-serif;}
.motd h1, .motd h2, .motd h3, .motd h4, .motd h5, .motd h6 {color: #638500; text-decoration: underline;} .motd h1, .motd h2, .motd h3, .motd h4, .motd h5, .motd h6 {color: #99aab5; text-decoration: underline;}
.motd a, .motd a:link, .motd a:visited, .motd a:active, .motd a:hover {color: #638500;} .motd a, .motd a:link, .motd a:visited, .motd a:active, .motd a:hover {color: #99aab5;}
/* ADD HERE FOR BOLD */ /* ADD HERE FOR BOLD */
.bold, .name, .prefix, .ooc, .looc, .adminooc, .admin, .medal, .yell {font-weight: bold;} .bold, .name, .prefix, .ooc, .looc, .adminooc, .admin, .medal, .yell {font-weight: bold;}
@@ -255,85 +258,85 @@ a.popt {text-decoration: none;}
/* OUTPUT COLORS */ /* OUTPUT COLORS */
.highlight {background: yellow;} .highlight {background: yellow;}
h1, h2, h3, h4, h5, h6 {color: #0000ff;font-family: Georgia, Verdana, sans-serif;} h1, h2, h3, h4, h5, h6 {color: #99aab5;font-family: Georgia, Verdana, sans-serif;}
h1.alert, h2.alert {color: #000000;} h1.alert, h2.alert {color: #99aab5;}
em {font-style: normal; font-weight: bold;} em {font-style: normal; font-weight: bold;}
.ooc { font-weight: bold;} .ooc { font-weight: bold;}
.adminobserverooc {color: #0099cc; font-weight: bold;} .adminobserverooc {color: #0099cc; font-weight: bold;}
.adminooc {color: #700038; font-weight: bold;} .adminooc {color: #3d5bc3; font-weight: bold;}
.looc {color: #63b2f2; font-weight: bold;} /* yogs - LOOC */ .looc {color: #63b2f2; font-weight: bold;} /* yogs - LOOC */
.adminsay {color: #996600; font-weight: bold;} /*yogs - changes asay colour back*/ .adminsay {color: #996600; font-weight: bold;} /*yogs - changes asay colour back*/
.admin {color: #386aff; font-weight: bold;} .admin {color: #3d5bc3; font-weight: bold;}
.name { font-weight: bold;} .name { font-weight: bold;}
.say {} .say {}
.deadsay {color: #5c00e6;} .deadsay {color: #7c00e6;}
.binarysay {color: #20c20e; background-color: #000000; display: block;} .binarysay {color: #20c20e; background-color: #000000; display: block;}
.binarysay a {color: #00ff00;} .binarysay a {color: #00ff00;}
.binarysay a:active, .binarysay a:visited {color: #88ff88;} .binarysay a:active, .binarysay a:visited {color: #88ff88;}
.radio {color: #839e85;} /* yogs -- general radio usage, noncommon*/ .radio {color: #839e85;} /* yogs -- general radio usage, noncommon*/
.commonradio {color: #008000;} /* yogs -- Standard green radio chatter, for common only*/ .commonradio {color: #008000;} /* yogs -- Standard green radio chatter, for common only*/
.sciradio {color: #993399;} .sciradio {color: #7c00e6;}
.comradio {color: #204090;} /* yogs */ .comradio {color: #204090;} /* yogs */
.secradio {color: #a30000;} .secradio {color: #a30000;}
.medradio {color: #337296;} .medradio {color: #397ea5;}
.engradio {color: #fb5613;} .engradio {color: #c75f35;}
.suppradio {color: #a8732b;} .suppradio {color: #8b6532;}
.servradio {color: #6eaa2c;} .servradio {color: #577c2d;}
.syndradio {color: #6d3f40;} .syndradio {color: #6d3f40;}
.centcomradio {color: #686868;} .centcomradio {color: #2b677e;}
.aiprivradio {color: #ff00ff;} .aiprivradio {color: #811981;}
.redteamradio {color: #ff0000;} .redteamradio {color: #ff0000;}
.blueteamradio {color: #0000ff;} .blueteamradio {color: #0000ff;}
.yell { font-weight: bold;} .yell { font-weight: bold;}
.alert {color: #ff0000;} .alert {color: #c51e1e;}
h1.alert, h2.alert {color: #000000;} h1.alert, h2.alert {color: #99aab5;}
.emote { font-style: italic;} .emote { font-style: italic;}
.selecteddna {color: #ffffff; background-color: #001B1B} .selecteddna {color: #ffffff; background-color: #001B1B}
.attack {color: #ff0000;} .attack {color: #c51e1e;}
.disarm {color: #990000;} .disarm {color: #780202;}
.passive {color: #660000;} .passive {color: #510000;}
.userdanger {color: #ff0000; font-weight: bold; font-size: 24px;} .userdanger {color: #c51e1e; font-weight: bold; font-size: 24px;}
.danger {color: #ff0000;} .danger {color: #c51e1e;}
.warning {color: #ff0000; font-style: italic;} .warning {color: #c51e1e; font-style: italic;}
.boldwarning {color: #ff0000; font-style: italic; font-weight: bold} .boldwarning {color: #c51e1e; font-style: italic; font-weight: bold}
.announce {color: #228b22; font-weight: bold;} .announce {color: #c51e1e; font-weight: bold;}
.boldannounce {color: #ff0000; font-weight: bold;} .boldannounce {color: #c51e1e; font-weight: bold;}
.greenannounce {color: #00ff00; font-weight: bold;} .greenannounce {color: #059223; font-weight: bold;}
.rose {color: #ff5050;} .rose {color: #ff5050;}
.info {color: #0000CC;} .info {color: #3d5bc3;}
.notice {color: #000099;} .notice {color: #3d5bc3;}
.boldnotice {color: #000099; font-weight: bold;} .boldnotice {color: #3d5bc3; font-weight: bold;}
.adminnotice {color: #0000ff;} .adminnotice {color: #3d5bc3;}
.adminhelp {color: #ff0000; font-weight: bold;} .adminhelp {color: #c51e1e; font-weight: bold;}
.unconscious {color: #0000ff; font-weight: bold;} .unconscious {color: #99aab5; font-weight: bold;}
.suicide {color: #ff5050; font-style: italic;} .suicide {color: #ff5050; font-style: italic;}
.green {color: #03ff39;} .green {color: #059223;}
.nicegreen {color: #14a833;} .nicegreen {color: #059223;}
.shadowling {color: #3b2769;} .shadowling {color: #3b2769;}
.cult {color: #960000;} .cult {color: #740202;}
.cultitalic {color: #960000; font-style: italic;} .cultitalic {color: #740202; font-style: italic;}
.cultbold {color: #960000; font-style: italic; font-weight: bold;} .cultbold {color: #740202; font-style: italic; font-weight: bold;}
.cultboldtalic {color: #960000; font-weight: bold; font-size: 24px;} .cultboldtalic {color: #740202; font-weight: bold; font-size: 24px;}
.cultlarge {color: #960000; font-weight: bold; font-size: 24px;} .cultlarge {color: #740202; font-weight: bold; font-size: 24px;}
.narsie {color: #960000; font-weight: bold; font-size: 120px;} .narsie {color: #740202; font-weight: bold; font-size: 120px;}
.narsiesmall {color: #960000; font-weight: bold; font-size: 48px;} .narsiesmall {color: #740202; font-weight: bold; font-size: 48px;}
.colossus {color: #7F282A; font-size: 40px;} .colossus {color: #7F282A; font-size: 40px;}
.hierophant {color: #660099; font-weight: bold; font-style: italic;} .hierophant {color: #660099; font-weight: bold; font-style: italic;}
.hierophant_warning {color: #660099; font-style: italic;} .hierophant_warning {color: #660099; font-style: italic;}
.purple {color: #5e2d79;} .purple {color: #7c00e6;}
.holoparasite {color: #35333a;} .holoparasite {color: #35333a;}
.revennotice {color: #1d2953;} .revennotice {color: #1d2953;}
@@ -342,11 +345,11 @@ h1.alert, h2.alert {color: #000000;}
.revenminor {color: #823abb} .revenminor {color: #823abb}
.revenwarning {color: #760fbb; font-style: italic;} .revenwarning {color: #760fbb; font-style: italic;}
.revendanger {color: #760fbb; font-weight: bold; font-size: 24px;} .revendanger {color: #760fbb; font-weight: bold; font-size: 24px;}
.umbra {color: #5000A0;} .umbra {color: #7c00e6;}
.umbra_emphasis {color: #5000A0; font-weight: bold; font-style: italic;} .umbra_emphasis {color: #7c00e6; font-weight: bold; font-style: italic;}
.umbra_large {color: #5000A0; font-size: 24px; 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: #7c00e6; font-size: 24px; font-style: italic;}
.brass {color: #BE8700;} .brass {color: #BE8700;}
.heavy_brass {color: #BE8700; font-weight: bold; font-style: italic;} .heavy_brass {color: #BE8700; font-weight: bold; font-style: italic;}
@@ -375,13 +378,12 @@ h1.alert, h2.alert {color: #000000;}
.ghostalert {color: #5c00e6; font-style: italic; font-weight: bold;} .ghostalert {color: #5c00e6; font-style: italic; font-weight: bold;}
.alien {color: #543354;} .alien {color: #543354;}
.noticealien {color: #00c000;} .noticealien {color: #059223;}
.alertalien {color: #00c000; font-weight: bold;} .alertalien {color: #059223; font-weight: bold;}
.changeling {color: #800080; font-style: italic;} .changeling {color: #059223; font-style: italic;}
.assimilator {color: #800080; font-size: 16px ; font-weight: bold;} .assimilator {color: #059223; font-size: 16px ; font-weight: bold;}
.bigassimilator {color: #800080; font-size: 32px ; font-weight: bold;}
.spider {color: #4d004d;} .spider {color: #7c00e6;}
.interface {color: #330033;} .interface {color: #330033;}
@@ -394,13 +396,13 @@ h1.alert, h2.alert {color: #000000;}
.big {font-size: 24px;} .big {font-size: 24px;}
.reallybig {font-size: 32px;} .reallybig {font-size: 32px;}
.extremelybig {font-size: 40px;} .extremelybig {font-size: 40px;}
.greentext {color: #00FF00; font-size: 24px;} .greentext {color: #00FF00; font-size: 24px;} /* yogs -- pure Greentext, as it should be */
.redtext {color: #FF0000; font-size: 24px;} .redtext {color: #FF0000; font-size: 24px;} /* yogs -- pure Redtext, as it should be */
.clown {color: #FF69Bf; font-size: 24px; font-family: "Comic Sans MS", cursive, sans-serif; font-weight: bold;} .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;} .his_grace {color: #15D512; font-family: "Courier New", cursive, sans-serif; font-style: italic;}
.hypnophrase {color: #0d0d0d; font-weight: bold; animation: hypnocolor 1500ms infinite;} .hypnophrase {color: #2c2f33; font-weight: bold; animation: hypnocolor 1500ms infinite;}
@keyframes hypnocolor { @keyframes hypnocolor {
0% { color: #0d0d0d; } 0% { color: #2c2f33; }
25% { color: #410194; } 25% { color: #410194; }
50% { color: #7f17d8; } 50% { color: #7f17d8; }
75% { color: #410194; } 75% { color: #410194; }
@@ -431,7 +433,7 @@ h1.alert, h2.alert {color: #000000;}
.connectionClosed, .fatalError {background: red; color: white; padding: 5px;} .connectionClosed, .fatalError {background: red; color: white; padding: 5px;}
.connectionClosed.restored {background: green;} .connectionClosed.restored {background: green;}
.internal.boldnshit {color: blue; font-weight: bold;} .internal.boldnshit {color: #3d5bc3; font-weight: bold;}
/* HELPER CLASSES */ /* HELPER CLASSES */
.text-normal {font-weight: normal; font-style: normal;} .text-normal {font-weight: normal; font-style: normal;}

View File

@@ -0,0 +1,435 @@
/*****************************************
*
* GLOBAL STYLES for white theme normies
*
******************************************/
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 { font-weight: bold;}
.adminobserverooc {color: #0099cc; font-weight: bold;}
.adminooc {color: #700038; font-weight: bold;}
.adminsay {color: #FF4500; font-weight: bold;}
.admin {color: #386aff; 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;}
.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;}
.nicegreen {color: #14a833;}
.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;}
.assimilator {color: #800080; font-size: 16px ; font-weight: bold;}
.bigassimilator {color: #800080; font-size: 32px ; font-weight: bold;}
.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;}
.hypnophrase {color: #0d0d0d; font-weight: bold; animation: hypnocolor 1500ms infinite;}
@keyframes hypnocolor {
0% { color: #0d0d0d; }
25% { color: #410194; }
50% { color: #7f17d8; }
75% { color: #410194; }
100% { color: #3bb5d3; }
}
.phobia {color: #dd0000; font-weight: bold; animation: phobia 750ms infinite;}
@keyframes phobia {
0% { color: #0d0d0d; }
50% { color: #dd0000; }
100% { color: #0d0d0d; }
}
.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;}

View File

@@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="font-awesome.css" /> <link rel="stylesheet" type="text/css" href="font-awesome.css" />
<link rel="stylesheet" type="text/css" href="browserOutput.css" /> <link id="sheetofstyles" rel="stylesheet" type="text/css" href="browserOutput.css" />
<link rel="stylesheet" type="text/css" href="spritesheet_chat.css" /> <link rel="stylesheet" type="text/css" href="spritesheet_chat.css" />
<script type="text/javascript" src="errorHandler.js"></script> <script type="text/javascript" src="errorHandler.js"></script>
<script type="text/javascript" src="jquery.min.js"></script> <script type="text/javascript" src="jquery.min.js"></script>
@@ -28,6 +28,9 @@
<i class="icon-circle" id="pingDot"></i> <i class="icon-circle" id="pingDot"></i>
<span class="ms" id="pingMs">--ms</span> <span class="ms" id="pingMs">--ms</span>
</div> </div>
<div id="darkmodething">
<a href="#" class="subCell toggle" id="darkmodetoggle" title="Darkmode"><i class="icon-adjust"></i></a>
</div>
<div id="audio"> <div id="audio">
<a href="#" class="subCell toggle" id="toggleAudio" title="Audio"><i class="icon-volume-up"></i></a> <a href="#" class="subCell toggle" id="toggleAudio" title="Audio"><i class="icon-volume-up"></i></a>
</div> </div>

View File

@@ -35,6 +35,7 @@ var opts = {
'wasd': false, //Is the user in wasd mode? 'wasd': false, //Is the user in wasd mode?
'priorChatHeight': 0, //Thing for height-resizing detection 'priorChatHeight': 0, //Thing for height-resizing detection
'restarting': false, //Is the round restarting? 'restarting': false, //Is the round restarting?
'darkmode':true, //Are we using darkmode? If not WHY ARE YOU LIVING IN 2009???
//Options menu //Options menu
'selectedSubLoop': null, //Contains the interval loop for closing the selected sub menu 'selectedSubLoop': null, //Contains the interval loop for closing the selected sub menu
@@ -456,6 +457,19 @@ function toHex(n) {
return "0123456789ABCDEF".charAt((n-n%16)/16) + "0123456789ABCDEF".charAt(n%16); 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) { function handleClientData(ckey, ip, compid) {
//byond sends player info to here //byond sends player info to here
var currentData = {'ckey': ckey, 'ip': ip, 'compid': compid}; var currentData = {'ckey': ckey, 'ip': ip, 'compid': compid};
@@ -716,6 +730,7 @@ $(function() {
'shighlightColor': getCookie('highlightcolor'), 'shighlightColor': getCookie('highlightcolor'),
'smusicVolume': getCookie('musicVolume'), 'smusicVolume': getCookie('musicVolume'),
'smessagecombining': getCookie('messagecombining'), 'smessagecombining': getCookie('messagecombining'),
'sdarkmode': getCookie('darkmode'),
}; };
if (savedConfig.sfontSize) { if (savedConfig.sfontSize) {
@@ -726,6 +741,9 @@ $(function() {
$("body").css('line-height', savedConfig.slineHeight); $("body").css('line-height', savedConfig.slineHeight);
internalOutput('<span class="internal boldnshit">Loaded line height setting of: '+savedConfig.slineHeight+'</span>', 'internal'); internalOutput('<span class="internal boldnshit">Loaded line height setting of: '+savedConfig.slineHeight+'</span>', 'internal');
} }
if(savedConfig.sdarkmode == 'false'){
swap(); //They dont want darkmode, so switch!
}
if (savedConfig.spingDisabled) { if (savedConfig.spingDisabled) {
if (savedConfig.spingDisabled == 'true') { if (savedConfig.spingDisabled == 'true') {
opts.pingDisabled = true; opts.pingDisabled = true;
@@ -772,8 +790,6 @@ $(function() {
opts.messageCombining = true; opts.messageCombining = true;
} }
} }
(function() { (function() {
var dataCookie = getCookie('connData'); var dataCookie = getCookie('connData');
if (dataCookie) { if (dataCookie) {
@@ -940,7 +956,9 @@ $(function() {
$('#toggleOptions').click(function(e) { $('#toggleOptions').click(function(e) {
handleToggleClick($subOptions, $(this)); handleToggleClick($subOptions, $(this));
}); });
$('#darkmodetoggle').click(function(e) {
swap();
});
$('#toggleAudio').click(function(e) { $('#toggleAudio').click(function(e) {
handleToggleClick($subAudio, $(this)); handleToggleClick($subAudio, $(this));
}); });

View File

@@ -37,4 +37,4 @@
return return
last_request = world.time last_request = world.time
to_chat(usr, "<span class='notice'>Your request has been received by CentCom.</span>") to_chat(usr, "<span class='notice'>Your request has been received by CentCom.</span>")
to_chat(GLOB.admins, "<b>FERRY: <font color='blue'>[ADMIN_LOOKUPFLW(usr)] (<A HREF='?_src_=holder;[HrefToken()];secrets=moveferry'>Move Ferry</a>)</b> is requesting to move the transport ferry to CentCom.</font>") to_chat(GLOB.admins, "<b>FERRY: <font color='#3d5bc3'>[ADMIN_LOOKUPFLW(usr)] (<A HREF='?_src_=holder;[HrefToken()];secrets=moveferry'>Move Ferry</a>)</b> is requesting to move the transport ferry to CentCom.</font>")

View File

@@ -1,6 +1,5 @@
macro "default" macro "default"
menu "menu" menu "menu"
elem elem
name = "&File" name = "&File"
@@ -54,6 +53,7 @@ window "mainwindow"
size = 640x440 size = 640x440
anchor1 = none anchor1 = none
anchor2 = none anchor2 = none
background-color = #272727
is-default = true is-default = true
saved-params = "pos;size;is-minimized;is-maximized" saved-params = "pos;size;is-minimized;is-maximized"
icon = 'icons\\ss13_64.png' icon = 'icons\\ss13_64.png'
@@ -65,6 +65,7 @@ window "mainwindow"
size = 634x417 size = 634x417
anchor1 = 0,0 anchor1 = 0,0
anchor2 = 100,100 anchor2 = 100,100
background-color = #272727
saved-params = "splitter" saved-params = "splitter"
left = "mapwindow" left = "mapwindow"
right = "infowindow" right = "infowindow"
@@ -85,6 +86,8 @@ window "mainwindow"
size = 40x20 size = 40x20
anchor1 = 100,100 anchor1 = 100,100
anchor2 = none anchor2 = none
background-color = #272727
text-color = #eaeaea
saved-params = "is-checked" saved-params = "is-checked"
text = "Chat" text = "Chat"
command = ".winset \"saybutton.is-checked=true ? input.command=\"!say \\\"\" : input.command=\"\"saybutton.is-checked=true ? mebutton.is-checked=false\"\"saybutton.is-checked=true ? oocbutton.is-checked=false\"" command = ".winset \"saybutton.is-checked=true ? input.command=\"!say \\\"\" : input.command=\"\"saybutton.is-checked=true ? mebutton.is-checked=false\"\"saybutton.is-checked=true ? oocbutton.is-checked=false\""
@@ -95,6 +98,8 @@ window "mainwindow"
size = 40x20 size = 40x20
anchor1 = 100,100 anchor1 = 100,100
anchor2 = none anchor2 = none
background-color = #272727
text-color = #eaeaea
saved-params = "is-checked" saved-params = "is-checked"
text = "OOC" text = "OOC"
command = ".winset \"oocbutton.is-checked=true ? input.command=\"!ooc \\\"\" : input.command=\"\"oocbutton.is-checked=true ? mebutton.is-checked=false\"\"oocbutton.is-checked=true ? saybutton.is-checked=false\"" command = ".winset \"oocbutton.is-checked=true ? input.command=\"!ooc \\\"\" : input.command=\"\"oocbutton.is-checked=true ? mebutton.is-checked=false\"\"oocbutton.is-checked=true ? saybutton.is-checked=false\""
@@ -105,6 +110,8 @@ window "mainwindow"
size = 40x20 size = 40x20
anchor1 = 100,100 anchor1 = 100,100
anchor2 = none anchor2 = none
background-color = #272727
text-color = #eaeaea
saved-params = "is-checked" saved-params = "is-checked"
text = "Me" text = "Me"
command = ".winset \"mebutton.is-checked=true ? input.command=\"!me \\\"\" : input.command=\"\"mebutton.is-checked=true ? saybutton.is-checked=false\"\"mebutton.is-checked=true ? oocbutton.is-checked=false\"" command = ".winset \"mebutton.is-checked=true ? input.command=\"!me \\\"\" : input.command=\"\"mebutton.is-checked=true ? saybutton.is-checked=false\"\"mebutton.is-checked=true ? oocbutton.is-checked=false\""
@@ -115,6 +122,7 @@ window "mainwindow"
size = 200x200 size = 200x200
anchor1 = none anchor1 = none
anchor2 = none anchor2 = none
background-color = #272727
is-visible = false is-visible = false
saved-params = "" saved-params = ""
elem "tooltip" elem "tooltip"
@@ -123,6 +131,7 @@ window "mainwindow"
size = 999x999 size = 999x999
anchor1 = none anchor1 = none
anchor2 = none anchor2 = none
background-color = #272727
is-visible = false is-visible = false
saved-params = "" saved-params = ""
@@ -133,6 +142,7 @@ window "mapwindow"
size = 640x480 size = 640x480
anchor1 = none anchor1 = none
anchor2 = none anchor2 = none
background-color = #000000
saved-params = "pos;size;is-minimized;is-maximized" saved-params = "pos;size;is-minimized;is-maximized"
is-pane = true is-pane = true
elem "map" elem "map"
@@ -141,6 +151,7 @@ window "mapwindow"
size = 640x480 size = 640x480
anchor1 = 0,0 anchor1 = 0,0
anchor2 = 100,100 anchor2 = 100,100
background-color = #000000
font-family = "Arial" font-family = "Arial"
font-size = 7 font-size = 7
text-color = none text-color = none
@@ -155,6 +166,8 @@ window "infowindow"
size = 640x480 size = 640x480
anchor1 = none anchor1 = none
anchor2 = none anchor2 = none
text-color = #99aab5
background-color = #272727
saved-params = "pos;size;is-minimized;is-maximized" saved-params = "pos;size;is-minimized;is-maximized"
is-pane = true is-pane = true
elem "info" elem "info"
@@ -163,6 +176,8 @@ window "infowindow"
size = 640x445 size = 640x445
anchor1 = 0,0 anchor1 = 0,0
anchor2 = 100,100 anchor2 = 100,100
text-color = #99aab5
background-color = #272727
saved-params = "splitter" saved-params = "splitter"
left = "statwindow" left = "statwindow"
right = "outputwindow" right = "outputwindow"
@@ -173,6 +188,8 @@ window "infowindow"
size = 80x20 size = 80x20
anchor1 = 3,0 anchor1 = 3,0
anchor2 = 19,0 anchor2 = 19,0
text-color = #99aab5
background-color = #494949
saved-params = "is-checked" saved-params = "is-checked"
text = "Changelog" text = "Changelog"
command = "changelog" command = "changelog"
@@ -182,6 +199,8 @@ window "infowindow"
size = 80x20 size = 80x20
anchor1 = 19,0 anchor1 = 19,0
anchor2 = 34,0 anchor2 = 34,0
text-color = #99aab5
background-color = #494949
saved-params = "is-checked" saved-params = "is-checked"
text = "Rules" text = "Rules"
command = "rules" command = "rules"
@@ -191,6 +210,8 @@ window "infowindow"
size = 80x20 size = 80x20
anchor1 = 34,0 anchor1 = 34,0
anchor2 = 50,0 anchor2 = 50,0
text-color = #99aab5
background-color = #494949
saved-params = "is-checked" saved-params = "is-checked"
text = "Wiki" text = "Wiki"
command = "wiki" command = "wiki"
@@ -200,6 +221,8 @@ window "infowindow"
size = 80x20 size = 80x20
anchor1 = 50,0 anchor1 = 50,0
anchor2 = 66,0 anchor2 = 66,0
text-color = #99aab5
background-color = #494949
saved-params = "is-checked" saved-params = "is-checked"
text = "Forum" text = "Forum"
command = "forum" command = "forum"
@@ -209,6 +232,8 @@ window "infowindow"
size = 80x20 size = 80x20
anchor1 = 66,0 anchor1 = 66,0
anchor2 = 81,0 anchor2 = 81,0
text-color = #99aab5
background-color = #3a3a3a
saved-params = "is-checked" saved-params = "is-checked"
text = "Github" text = "Github"
command = "github" command = "github"
@@ -218,6 +243,8 @@ window "infowindow"
size = 80x20 size = 80x20
anchor1 = 81,0 anchor1 = 81,0
anchor2 = 97,0 anchor2 = 97,0
text-color = #99aab5
background-color = #492020
saved-params = "is-checked" saved-params = "is-checked"
text = "Report Issue" text = "Report Issue"
command = "report-issue" command = "report-issue"
@@ -256,6 +283,8 @@ window "outputwindow"
size = 640x480 size = 640x480
anchor1 = none anchor1 = none
anchor2 = none anchor2 = none
text-color = #99aab5
background-color = #272727
saved-params = "pos;size;is-minimized;is-maximized" saved-params = "pos;size;is-minimized;is-maximized"
is-pane = true is-pane = true
elem "browseroutput" elem "browseroutput"
@@ -264,7 +293,8 @@ window "outputwindow"
size = 640x480 size = 640x480
anchor1 = 0,0 anchor1 = 0,0
anchor2 = 100,100 anchor2 = 100,100
background-color = #ffffff text-color = #99aab5
background-color = #272727
is-visible = false is-visible = false
is-disabled = true is-disabled = true
saved-params = "" saved-params = ""
@@ -275,6 +305,8 @@ window "outputwindow"
size = 640x480 size = 640x480
anchor1 = 0,0 anchor1 = 0,0
anchor2 = 100,100 anchor2 = 100,100
text-color = #99aab5
background-color = #272727
is-default = true is-default = true
saved-params = "" saved-params = ""
@@ -313,6 +345,8 @@ window "statwindow"
size = 640x480 size = 640x480
anchor1 = none anchor1 = none
anchor2 = none anchor2 = none
text-color = #eaeaea
background-color = #272727
saved-params = "pos;size;is-minimized;is-maximized" saved-params = "pos;size;is-minimized;is-maximized"
is-pane = true is-pane = true
elem "stat" elem "stat"
@@ -321,9 +355,14 @@ window "statwindow"
size = 640x480 size = 640x480
anchor1 = 0,0 anchor1 = 0,0
anchor2 = 100,100 anchor2 = 100,100
text-color = #99aab5
background-color = #2c2f33
is-default = true is-default = true
saved-params = "" saved-params = ""
tab-text-color = #99aab5
tab-background-color = #272727
prefix-color = #ebebeb
suffix-color = #ebebeb
window "Telecomms IDE" window "Telecomms IDE"
elem "Telecomms IDE" elem "Telecomms IDE"
type = MAIN type = MAIN

View File

@@ -1486,6 +1486,7 @@
#include "code\modules\client\client_colour.dm" #include "code\modules\client\client_colour.dm"
#include "code\modules\client\client_defines.dm" #include "code\modules\client\client_defines.dm"
#include "code\modules\client\client_procs.dm" #include "code\modules\client\client_procs.dm"
#include "code\modules\client\darkmode.dm"
#include "code\modules\client\message.dm" #include "code\modules\client\message.dm"
#include "code\modules\client\player_details.dm" #include "code\modules\client\player_details.dm"
#include "code\modules\client\preferences.dm" #include "code\modules\client\preferences.dm"

View File

@@ -1498,6 +1498,7 @@
#include "code\modules\client\client_colour.dm" #include "code\modules\client\client_colour.dm"
#include "code\modules\client\client_defines.dm" #include "code\modules\client\client_defines.dm"
#include "code\modules\client\client_procs.dm" #include "code\modules\client\client_procs.dm"
#include "code\modules\client\darkmode.dm"
#include "code\modules\client\message.dm" #include "code\modules\client\message.dm"
#include "code\modules\client\player_details.dm" #include "code\modules\client\player_details.dm"
#include "code\modules\client\preferences.dm" #include "code\modules\client\preferences.dm"