diff --git a/code/modules/mob/language.dm b/code/modules/mob/language.dm index 8818d32326f..2f9969cb3ac 100644 --- a/code/modules/mob/language.dm +++ b/code/modules/mob/language.dm @@ -6,7 +6,7 @@ var/name = "an unknown language" // Fluff name of language if any. var/desc = "A language." // Short description for 'Check Languages'. var/speech_verb = "says" // 'says', 'hisses', 'farts'. - var/colour = "body" // CSS style to use for strings in this language. + var/colour = "say_quote" // CSS style to use for strings in this language. var/key = "x" // Character used to speak in language eg. :o for Unathi. var/flags = 0 // Various language flags. var/native // If set, non-native speakers will have trouble speaking. @@ -62,7 +62,6 @@ /datum/language/human name = "Sol Common" desc = "A bastardized hybrid of informal English and elements of Mandarin Chinese; the common language of the Sol system." - colour = "rough" key = "1" flags = RESTRICTED @@ -72,30 +71,35 @@ name = "Tradeband" desc = "Maintained by the various trading cartels in major systems, this elegant, structured language is used for bartering and bargaining." speech_verb = "enunciates" - colour = "say_quote" key = "2" /datum/language/gutter name = "Gutter" desc = "Much like Standard, this crude pidgin tongue descended from numerous languages and serves as Tradeband for criminal elements." speech_verb = "growls" - colour = "rough" key = "3" // Language handling. /mob/proc/add_language(var/language) + for(var/datum/language/L in languages) + if(L && L.name == language) + return 0 + var/datum/language/new_language = all_languages[language] - if(!istype(new_language) || new_language in languages) + if(!istype(new_language,/datum/language)) return 0 - languages.Add(new_language) + languages += new_language return 1 /mob/proc/remove_language(var/rem_language) - languages.Remove(all_languages[rem_language]) + for(var/datum/language/L in languages) + if(L && L.name == rem_language) + languages -= L + return 1 return 0 diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 8ad1f4d427c..06e804e4e91 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -61,6 +61,11 @@ if(!species) set_species("Human") + if(species.language) + var/datum/language/L = all_languages[species.language] + if(L) + languages += L + var/datum/reagents/R = new/datum/reagents(1000) reagents = R R.my_atom = src @@ -1349,9 +1354,6 @@ mob/living/carbon/human/yank_out_object() if(species && (species.name && species.name == new_species)) return 1 - if(species && species.language) - remove_language(species.language) - species = all_species[new_species] see_in_dark = species.darksight @@ -1365,9 +1367,6 @@ mob/living/carbon/human/yank_out_object() mutations+=species.default_mutations - if(species.language) - add_language(species.language) - spawn(0) update_icons() @@ -1424,7 +1423,7 @@ mob/living/carbon/human/yank_out_object() src << "You ran out of blood to write with!" var/obj/effect/decal/cleanable/blood/writing/W = new(T) - W.message = message + W.add_fingerprint(src) /mob/living/carbon/human/proc/expose_brain() @@ -1434,4 +1433,5 @@ mob/living/carbon/human/yank_out_object() h_style = "Bald" drop_from_inventory(head) update_hair() - update_body() \ No newline at end of file + update_body() + diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 5412389f09b..0dc6be11b08 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -109,7 +109,7 @@ var/list/department_radio_keys = list( if(client.prefs.muted & MUTE_IC) src << "\red You cannot speak in IC (muted)." return - if (src.client.handle_spam_prevention(message, MUTE_IC)) + if (src.client.handle_spam_prevention(message,MUTE_IC)) return // undo last word status. @@ -180,7 +180,7 @@ var/list/department_radio_keys = list( if(src.stunned > 2 || (traumatic_shock > 61 && prob(50))) message_mode = null //Stunned people shouldn't be able to physically turn on their radio/hold down the button to speak into it - message = capitalize(trim_left(message)) + message = capitalize(message) if (!message) return diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 1a84411fe0d..806361514dc 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -303,9 +303,6 @@ src << alert("[rank] is not available. Please try another.") return 0 - spawning = 1 - close_spawn_windows() - job_master.AssignRole(src, rank, 1) var/mob/living/carbon/human/character = create_character() //creates the human and transfers vars and mind @@ -377,7 +374,6 @@ if(client.prefs.species) chosen_species = all_species[client.prefs.species] if(chosen_species) - if(is_alien_whitelisted(src, client.prefs.species) || !config.usealienwhitelist || !(chosen_species.flags & IS_WHITELISTED) || (client.holder.rights & R_ADMIN) )// Have to recheck admin due to no usr at roundstart. Latejoins are fine though. switch(chosen_species.name) if("Slime People") @@ -399,10 +395,13 @@ if("Human") new_character = new /mob/living/carbon/human/human(loc) // new_character.set_species(client.prefs.species) + if(chosen_species.language) + new_character.add_language(chosen_species.language) else new_character = new /mob/living/carbon/human(loc) new_character.lastarea = get_area(loc) + var/datum/language/chosen_language if(client.prefs.language) chosen_language = all_languages["[client.prefs.language]"] diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index b5117066378..b4c082c399c 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -101,28 +101,30 @@ //tcomms code is still runtiming somewhere here var/ending = copytext(text, length(text)) - var/speech_verb = "says" - var/speech_style = "body" + var/speechverb = "" if (speaking) - speech_verb = speaking.speech_verb - speech_style = speaking.colour + speechverb = "[speaking.speech_verb], \"" else if(speak_emote && speak_emote.len) - speech_verb = pick(speak_emote) + speechverb = "[pick(speak_emote)], \"" else if (src.stuttering) - speech_verb = "stammers" + speechverb = "stammers, \"" else if (src.slurring) - speech_verb = "slurrs" + speechverb = "slurrs, \"" else if (ending == "?") - speech_verb = "asks" + speechverb = "asks, \"" else if (ending == "!") - speech_verb = "exclaims" + speechverb = "exclaims, \"" else if(isliving(src)) var/mob/living/L = src if (L.getBrainLoss() >= 60) - speech_verb = "gibbers" + speechverb = "gibbers, \"" + else + speechverb = "says, \"" + else + speechverb = "says, \"" - return "[speech_verb], \"[text]\"" + return "[speechverb][text]\"" /mob/proc/emote(var/act, var/type, var/message) if(act == "me") diff --git a/code/stylesheet.dm b/code/stylesheet.dm index b7846429a66..fda3fb64e25 100644 --- a/code/stylesheet.dm +++ b/code/stylesheet.dm @@ -63,7 +63,6 @@ h1.alert, h2.alert {color: #000000;} .skrell {color: #00CED1;} .soghun {color: #228B22;} .vox {color: #AA00AA;} -.rough {font-family: "Trebuchet MS", cursive, sans-serif;} .say_quote {font-family: Georgia, Verdana, sans-serif;} .interface {color: #330033;}