Merge pull request #7141 from Amunak/chat-shenanigans

OOC and LOOC colors now use stylesheet; also LOOC rewrite
This commit is contained in:
Chinsky
2014-11-27 00:03:06 +03:00
4 changed files with 57 additions and 91 deletions
+36 -73
View File
@@ -1,8 +1,6 @@
var/global/normal_ooc_colour = "#002eb8"
/client/verb/ooc(msg as text)
set name = "OOC" //Gave this shit a shorter name so you only have to time out "ooc" rather than "ooc message" to use it --NeoFite
set name = "OOC"
set category = "OOC"
if(say_disabled) //This is here to try to identify lag problems
@@ -41,55 +39,32 @@ var/global/normal_ooc_colour = "#002eb8"
log_ooc("[mob.name]/[key] : [msg]")
var/display_colour = normal_ooc_colour
var/ooc_style = "everyone"
if(holder && !holder.fakekey)
display_colour = "#2e78d9" //light blue
if(holder.rights & R_MOD && !(holder.rights & R_ADMIN))
display_colour = "#184880" //dark blue
if(holder.rights & R_DEBUG && !(holder.rights & R_ADMIN))
display_colour = "#1b521f" //dark green
else if(holder.rights & R_ADMIN)
if(config.allow_admin_ooccolor)
display_colour = src.prefs.ooccolor
else
display_colour = "#b82e00" //orange
ooc_style = "elevated"
if(holder.rights & R_MOD)
ooc_style = "moderator"
if(holder.rights & R_DEBUG)
ooc_style = "developer"
if(holder.rights & R_ADMIN)
ooc_style = "admin"
for(var/client/C in clients)
if(C.prefs.toggles & CHAT_OOC)
for(var/client/target in clients)
if(target.prefs.toggles & CHAT_OOC)
var/display_name = src.key
if(holder)
if(holder.fakekey)
if(C.holder)
if(target.holder)
display_name = "[holder.fakekey]/([src.key])"
else
display_name = holder.fakekey
C << "<font color='[display_colour]'><span class='ooc'><span class='prefix'>OOC:</span> <EM>[display_name]:</EM> <span class='message'>[msg]</span></span></font>"
/*
if(holder)
if(!holder.fakekey || C.holder)
if(holder.rights & R_ADMIN)
C << "<font color=[config.allow_admin_ooccolor ? src.prefs.ooccolor :"#b82e00" ]><b><span class='prefix'>OOC:</span> <EM>[key][holder.fakekey ? "/([holder.fakekey])" : ""]:</EM> <span class='message'>[msg]</span></b></font>"
else if(holder.rights & R_MOD)
C << "<font color=#184880><b><span class='prefix'>OOC:</span> <EM>[src.key][holder.fakekey ? "/([holder.fakekey])" : ""]:</EM> <span class='message'>[msg]</span></b></font>"
else
C << "<font color='[normal_ooc_colour]'><span class='ooc'><span class='prefix'>OOC:</span> <EM>[src.key]:</EM> <span class='message'>[msg]</span></span></font>"
else
C << "<font color='[normal_ooc_colour]'><span class='ooc'><span class='prefix'>OOC:</span> <EM>[holder.fakekey ? holder.fakekey : src.key]:</EM> <span class='message'>[msg]</span></span></font>"
if(holder && !holder.fakekey && (holder.rights & R_ADMIN) && config.allow_admin_ooccolor && (src.prefs.ooccolor != initial(src.prefs.ooccolor))) // keeping this for the badmins
target << "<font color='[src.prefs.ooccolor]'><span class='ooc'><span class='prefix'>OOC:</span> <EM>[display_name]:</EM> <span class='message'>[msg]</span></span></font>"
else
C << "<font color='[normal_ooc_colour]'><span class='ooc'><span class='prefix'>OOC:</span> <EM>[src.key]:</EM> <span class='message'>[msg]</span></span></font>"
*/
/client/proc/set_ooc(newColor as color)
set name = "Set Player OOC Colour"
set desc = "Set to yellow for eye burning goodness."
set category = "Fun"
normal_ooc_colour = newColor
target << "<span class='ooc'><span class='[ooc_style]'><span class='prefix'>OOC:</span> <EM>[display_name]:</EM> <span class='message'>[msg]</span></span></span>"
/client/verb/looc(msg as text)
set name = "LOOC" //Gave this shit a shorter name so you only have to time out "ooc" rather than "ooc message" to use it --NeoFite
set name = "LOOC"
set desc = "Local OOC, seen only by those in view."
set category = "OOC"
@@ -129,38 +104,26 @@ var/global/normal_ooc_colour = "#002eb8"
log_ooc("(LOCAL) [mob.name]/[key] : [msg]")
var/list/heard = get_mobs_in_view(7, src.mob)
var/mob/S = src.mob
var/mob/source = src.mob
var/list/heard = get_mobs_in_view(7, source)
var/display_name = S.key
if(S.stat != DEAD)
display_name = S.name
// Handle non-admins
for(var/mob/M in heard)
if(!M.client)
continue
var/client/C = M.client
if (C in admins)
continue //they are handled after that
var/display_name = source.key
if(holder && holder.fakekey)
display_name = holder.fakekey
if(source.stat != DEAD)
display_name = source.name
if(C.prefs.toggles & CHAT_LOOC)
if(holder)
if(holder.fakekey)
if(C.holder)
display_name = "[holder.fakekey]/([src.key])"
else
display_name = holder.fakekey
C << "<font color='#6699CC'><span class='ooc'><span class='prefix'>LOOC:</span> <EM>[display_name]:</EM> <span class='message'>[msg]</span></span></font>"
// Now handle admins
display_name = S.key
if(S.stat != DEAD)
display_name = "[S.name]/([S.key])"
for(var/client/C in admins)
if(C.prefs.toggles & CHAT_LOOC)
var/prefix = "(R)LOOC"
if (C.mob in heard)
var/prefix
var/admin_stuff
for(var/client/target in clients)
if(target.prefs.toggles & CHAT_LOOC)
admin_stuff = ""
if(target in admins)
prefix = "(R)LOOC"
admin_stuff += "/([source.key])"
if(target != source.client)
admin_stuff += "(<A HREF='?src=\ref[target.holder];adminplayerobservejump=\ref[mob]'>JMP</A>)"
if(target.mob in heard)
prefix = "LOOC"
C << "<font color='#6699CC'><span class='ooc'><span class='prefix'>[prefix]:</span> <EM>[display_name]:</EM> <span class='message'>[msg]</span></span></font>"
if((target.mob in heard) || (target in admins))
target << "<span class='ooc'><span class='looc'><span class='prefix'>[prefix]:</span> <EM>[display_name][admin_stuff]:</EM> <span class='message'>[msg]</span></span></span>"
+7 -6
View File
@@ -102,7 +102,6 @@ var/list/admin_verbs_fun = list(
/client/proc/cmd_admin_add_random_ai_law,
/client/proc/make_sound,
/client/proc/toggle_random_events,
/client/proc/set_ooc,
/client/proc/editappear
)
var/list/admin_verbs_spawn = list(
@@ -170,7 +169,6 @@ var/list/admin_verbs_rejuv = list(
//verbs which can be hidden - needs work
var/list/admin_verbs_hideable = list(
/client/proc/set_ooc,
/client/proc/deadmin_self,
// /client/proc/deadchat,
/client/proc/toggleprayers,
@@ -467,10 +465,13 @@ var/list/admin_verbs_mentor = list(
set category = "Fun"
set name = "OOC Text Color"
if(!holder) return
var/new_ooccolor = input(src, "Please select your OOC colour.", "OOC colour") as color|null
if(new_ooccolor)
prefs.ooccolor = new_ooccolor
prefs.save_preferences()
var/response = alert(src, "Please choose a distinct color that is easy to read and doesn't mix with all the other chat and radio frequency colors.", "Change own OOC color", "Pick new color", "Reset to default", "Cancel")
if(response == "Pick new color")
prefs.ooccolor = input(src, "Please select your OOC colour.", "OOC colour") as color
else if(response == "Reset to default")
prefs.ooccolor = initial(prefs.ooccolor)
prefs.save_preferences()
feedback_add_details("admin_verb","OC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
return
+1 -1
View File
@@ -39,7 +39,7 @@ datum/preferences
//game-preferences
var/lastchangelog = "" //Saved changlog filesize to detect if there was a change
var/ooccolor = "#b82e00"
var/ooccolor = "#010000" //Whatever this is set to acts as 'reset' color and is thus unusable as an actual custom color
var/be_special = 0 //Special role selection
var/UI_style = "Midnight"
var/toggles = TOGGLES_DEFAULT
+13 -11
View File
@@ -7,17 +7,23 @@ 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;}
{color: #638500; text-decoration: underline;}
.motd a, .motd a:link, .motd a:visited, .motd a:active, .motd a:hover
{color: #638500;}
{color: #638500;}
.prefix { font-weight: bold;}
.ooc { font-weight: bold;}
.adminobserverooc {color: #0099cc; font-weight: bold;}
.adminooc {color: #b82e00; font-weight: bold;}
.ooc .everyone {color: #002eb8;}
.ooc .looc {color: #6699cc;}
.ooc .elevated {color: #2e78d9;}
.ooc .moderator {color: #184880;}
.ooc .developer {color: #1b521f;}
.ooc .admin {color: #b82e00;}
.mod {color: #735638; font-weight: bold;}
.adminmod {color: #402A14; font-weight: bold;}
.adminobserver {color: #996600; font-weight: bold;}
.admin {color: #386aff; font-weight: bold;}
.adminsay {color: #9611D4; font-weight: bold;}
.headminsay {color: #5A0A7F; font-weight: bold;}
@@ -28,6 +34,8 @@ em {font-style: normal; font-weight: bold;}
.deadsay {color: #5c00e6;}
.radio {color: #008000;}
.deptradio {color: #993399;}
.newscaster {color: #800000;}
.comradio {color: #193A7A;}
.syndradio {color: #6D3F40;}
.centradio {color: #5C5C8A;}
@@ -44,7 +52,6 @@ em {font-style: normal; font-weight: bold;}
h1.alert, h2.alert {color: #000000;}
.emote { font-style: italic;}
.selecteddna {color: #FFFFFF; background-color: #001B1B}
.attack {color: #ff0000;}
.moderate {color: #CC0000;}
@@ -58,11 +65,6 @@ h1.alert, h2.alert {color: #000000;}
.notice {color: #000099;}
.alien {color: #543354;}
.newscaster {color: #800000;}
.mod {color: #735638; font-weight: bold;}
.modooc {color: #184880; font-weight: bold;}
.adminmod {color: #402A14; font-weight: bold;}
.tajaran {color: #803B56;}
.tajaran_signlang {color: #941C1C;}
.skrell {color: #00CED1;}