mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 18:53:06 +00:00
[MIRROR] Allow choosing your own runechat color (#9082)
Co-authored-by: Heroman3003 <31296024+Heroman3003@users.noreply.github.com> Co-authored-by: CHOMPStation2 <chompsation2@gmail.com>
This commit is contained in:
@@ -118,6 +118,13 @@ var/list/runechat_image_cache = list()
|
|||||||
target.chat_color_darkened = colorize_string(target.name, 0.85, 0.85)
|
target.chat_color_darkened = colorize_string(target.name, 0.85, 0.85)
|
||||||
target.chat_color_name = target.name
|
target.chat_color_name = target.name
|
||||||
|
|
||||||
|
// Always force it back to a pref if they have one
|
||||||
|
if(ismob(target))
|
||||||
|
var/mob/M = target
|
||||||
|
if(M?.client?.prefs?.runechat_color != COLOR_BLACK)
|
||||||
|
target.chat_color = M.client.prefs.runechat_color
|
||||||
|
target.chat_color_darkened = M.client.prefs.runechat_color
|
||||||
|
|
||||||
// Get rid of any URL schemes that might cause BYOND to automatically wrap something in an anchor tag
|
// Get rid of any URL schemes that might cause BYOND to automatically wrap something in an anchor tag
|
||||||
var/static/regex/url_scheme = new(@"[A-Za-z][A-Za-z0-9+-\.]*:\/\/", "g")
|
var/static/regex/url_scheme = new(@"[A-Za-z][A-Za-z0-9+-\.]*:\/\/", "g")
|
||||||
text = replacetext(text, url_scheme, "")
|
text = replacetext(text, url_scheme, "")
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
/datum/preferences
|
/datum/preferences
|
||||||
var/extra_languages = 0
|
var/extra_languages = 0
|
||||||
var/preferred_language = "common" // VOREStation Edit: Allow selecting a preferred language
|
var/preferred_language = "common" // VOREStation Edit: Allow selecting a preferred language
|
||||||
|
var/runechat_color = COLOR_BLACK
|
||||||
|
|
||||||
/datum/category_item/player_setup_item/general/language
|
/datum/category_item/player_setup_item/general/language
|
||||||
name = "Language"
|
name = "Language"
|
||||||
@@ -14,6 +15,7 @@
|
|||||||
pref.species = save_data["species"]
|
pref.species = save_data["species"]
|
||||||
pref.preferred_language = save_data["preflang"]
|
pref.preferred_language = save_data["preflang"]
|
||||||
pref.language_custom_keys = check_list_copy(save_data["language_custom_keys"])
|
pref.language_custom_keys = check_list_copy(save_data["language_custom_keys"])
|
||||||
|
pref.runechat_color = save_data["runechat_color"]
|
||||||
|
|
||||||
/datum/category_item/player_setup_item/general/language/save_character(list/save_data)
|
/datum/category_item/player_setup_item/general/language/save_character(list/save_data)
|
||||||
save_data["language"] = check_list_copy(pref.alternate_languages)
|
save_data["language"] = check_list_copy(pref.alternate_languages)
|
||||||
@@ -21,6 +23,7 @@
|
|||||||
save_data["language_prefixes"] = pref.language_prefixes
|
save_data["language_prefixes"] = pref.language_prefixes
|
||||||
save_data["language_custom_keys"] = pref.language_custom_keys
|
save_data["language_custom_keys"] = pref.language_custom_keys
|
||||||
save_data["preflang"] = check_list_copy(pref.preferred_language)
|
save_data["preflang"] = check_list_copy(pref.preferred_language)
|
||||||
|
save_data["runechat_color"] = pref.runechat_color
|
||||||
|
|
||||||
/datum/category_item/player_setup_item/general/language/sanitize_character()
|
/datum/category_item/player_setup_item/general/language/sanitize_character()
|
||||||
if(!islist(pref.alternate_languages)) pref.alternate_languages = list()
|
if(!islist(pref.alternate_languages)) pref.alternate_languages = list()
|
||||||
@@ -59,6 +62,8 @@
|
|||||||
if(!((pref.language_custom_keys[key] == S.language) || (pref.language_custom_keys[key] == S.default_language && S.default_language != S.language) || (pref.language_custom_keys[key] in pref.alternate_languages)))
|
if(!((pref.language_custom_keys[key] == S.language) || (pref.language_custom_keys[key] == S.default_language && S.default_language != S.language) || (pref.language_custom_keys[key] in pref.alternate_languages)))
|
||||||
pref.language_custom_keys.Remove(key)
|
pref.language_custom_keys.Remove(key)
|
||||||
|
|
||||||
|
pref.runechat_color = sanitize_hexcolor(pref.runechat_color, COLOR_BLACK)
|
||||||
|
|
||||||
/datum/category_item/player_setup_item/general/language/content()
|
/datum/category_item/player_setup_item/general/language/content()
|
||||||
. += "<b>Languages</b><br>"
|
. += "<b>Languages</b><br>"
|
||||||
var/datum/species/S = GLOB.all_species[pref.species]
|
var/datum/species/S = GLOB.all_species[pref.species]
|
||||||
@@ -83,6 +88,7 @@
|
|||||||
. += "<b>Language Keys</b><br>"
|
. += "<b>Language Keys</b><br>"
|
||||||
. += " [jointext(pref.language_prefixes, " ")] <a href='?src=\ref[src];change_prefix=1'>Change</a> <a href='?src=\ref[src];reset_prefix=1'>Reset</a><br>"
|
. += " [jointext(pref.language_prefixes, " ")] <a href='?src=\ref[src];change_prefix=1'>Change</a> <a href='?src=\ref[src];reset_prefix=1'>Reset</a><br>"
|
||||||
. += "<b>Preferred Language</b> <a href='?src=\ref[src];pref_lang=1'>[pref.preferred_language]</a><br>" // VOREStation Add
|
. += "<b>Preferred Language</b> <a href='?src=\ref[src];pref_lang=1'>[pref.preferred_language]</a><br>" // VOREStation Add
|
||||||
|
. += "<b>Runechat Color</b> <a href='?src=\ref[src];pref_runechat_color=1'>Change Runechat Color</a> [color_square(hex = pref.runechat_color)]"
|
||||||
|
|
||||||
/datum/category_item/player_setup_item/general/language/OnTopic(var/href,var/list/href_list, var/mob/user)
|
/datum/category_item/player_setup_item/general/language/OnTopic(var/href,var/list/href_list, var/mob/user)
|
||||||
if(href_list["remove_language"])
|
if(href_list["remove_language"])
|
||||||
@@ -188,5 +194,17 @@
|
|||||||
return TOPIC_REFRESH
|
return TOPIC_REFRESH
|
||||||
// VOREStation Add End
|
// VOREStation Add End
|
||||||
|
|
||||||
|
else if(href_list["pref_runechat_color"])
|
||||||
|
var/new_runechat_color = input(user, "Choose your character's runechat colour (#000000 for random):", "Character Preference", pref.runechat_color) as color|null
|
||||||
|
if(new_runechat_color && CanUseTopic(user))
|
||||||
|
pref.runechat_color = new_runechat_color
|
||||||
|
// whenever we change this, we update our mob
|
||||||
|
var/mob/pref_mob = preference_mob()
|
||||||
|
if(pref_mob)
|
||||||
|
pref_mob.chat_color = new_runechat_color
|
||||||
|
pref_mob.chat_color_darkened = new_runechat_color
|
||||||
|
pref_mob.chat_color_name = pref_mob.name
|
||||||
|
return TOPIC_REFRESH
|
||||||
|
|
||||||
|
|
||||||
return ..()
|
return ..()
|
||||||
|
|||||||
Reference in New Issue
Block a user