diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm index ac7fe6b7222..87168fcaee6 100644 --- a/code/modules/mob/living/carbon/alien/alien.dm +++ b/code/modules/mob/living/carbon/alien/alien.dm @@ -39,9 +39,27 @@ verbs += /mob/living/carbon/verb/mob_sleep verbs += /mob/living/verb/lay_down internal_organs += new /obj/item/organ/brain/xeno - ..() +/mob/living/carbon/alien/get_default_language() + if(default_language) + return default_language + return all_languages["Xenomorph"] + +/mob/living/carbon/alien/say_quote(var/message, var/datum/language/speaking = null) + var/verb = "hisses" + var/ending = copytext(message, length(message)) + + if(speaking && (speaking.name != "Galactic Common")) //this is so adminbooze xenos speaking common have their custom verbs, + verb = speaking.get_spoken_verb(ending) //and use normal verbs for their own languages and non-common languages + else + if(ending=="!") + verb = "roars" + else if(ending=="?") + verb = "hisses curiously" + return verb + + /mob/living/carbon/alien/adjustToxLoss(amount) storedPlasma = min(max(storedPlasma + amount,0),max_plasma) //upper limit of max_plasma, lower limit of 0 updatePlasmaDisplay() diff --git a/code/modules/mob/living/carbon/alien/say.dm b/code/modules/mob/living/carbon/alien/say.dm deleted file mode 100644 index 8d2e77a0601..00000000000 --- a/code/modules/mob/living/carbon/alien/say.dm +++ /dev/null @@ -1,44 +0,0 @@ -/mob/living/carbon/alien/say(var/message) - var/verb = "says" - var/message_range = world.view - - if(client) - if(client.prefs.muted & MUTE_IC) - src << "\red You cannot speak in IC (Muted)." - return - - message = trim_strip_html_properly(message) - - if(stat == 2) - return say_dead(message) - - if(copytext(message,1,2) == "*") - return emote(copytext(message,2)) - - var/datum/language/speaking = parse_language(message) - - if(speaking) - message = copytext(message,2+length(speaking.key)) - else - var/quickcheck = get_default_language() - if(quickcheck) - speaking = get_default_language() - else //because no clue how to actually set xeno's default language since they aren't a species, just do it here - speaking = all_languages["Xenomorph"] - - var/ending = copytext(message, length(message)) - if (speaking) - // This is broadcast to all mobs with the language, - // irrespective of distance or anything else. - if(speaking.flags & HIVEMIND) - speaking.broadcast(src,trim(message)) - return - //If we've gotten this far, keep going! - verb = speaking.get_spoken_verb(ending) - - message = trim(message) - - if(!message || stat) - return - - ..(message, speaking, verb, null, null, message_range, null) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/brain/say.dm b/code/modules/mob/living/carbon/brain/say.dm index 26dc7b30f3f..d9e58f167cb 100644 --- a/code/modules/mob/living/carbon/brain/say.dm +++ b/code/modules/mob/living/carbon/brain/say.dm @@ -1,39 +1,28 @@ //TODO: Convert this over for languages. -/mob/living/carbon/brain/say(var/message) +/mob/living/carbon/brain/say(var/message, var/datum/language/speaking = null) if (silent) return - - if (stat == 2) // Dead. - return say_dead(message) if(!(container && (istype(container, /obj/item/device/mmi) || istype(container, /obj/item/device/mmi/posibrain)))) return //No MMI, can't speak, bucko./N else - var/datum/language/speaking = parse_language(message) - if(speaking) - message = copytext(message, 2+length(speaking.key)) - var/verb = "says" - var/ending = copytext(message, length(message)) - if (speaking) - verb = speaking.get_spoken_verb(ending) - else - if(ending=="!") - verb=pick("exclaims","shouts","yells") - if(ending=="?") - verb="asks" - if(prob(emp_damage*4)) if(prob(10))//10% chane to drop the message entirely return else message = Gibberish(message, (emp_damage*6))//scrambles the message, gets worse when emp_damage is higher - if(speaking && speaking.flags & HIVEMIND) - speaking.broadcast(src,trim(message)) - return - if(istype(container, /obj/item/device/mmi/radio_enabled)) + var/radio_MMI_message = message //split off so the MMI can get a trimmed message without fucking up living/say() + if(!speaking) + speaking = parse_language(message) + if(speaking) + radio_MMI_message = copytext(message, 2 + length(speaking.key)) + else + speaking = get_default_language() + var/obj/item/device/mmi/radio_enabled/R = container if(R.radio) - spawn(0) R.radio.hear_talk(src, trim(sanitize(message)), verb, speaking) - ..(trim(message), speaking, verb) + spawn(0) R.radio.hear_talk(src, trim(sanitize(radio_MMI_message)), say_quote(radio_MMI_message), speaking) + + ..(message) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/say.dm b/code/modules/mob/living/carbon/human/say.dm index c972776078e..c8bfc4402c2 100644 --- a/code/modules/mob/living/carbon/human/say.dm +++ b/code/modules/mob/living/carbon/human/say.dm @@ -97,22 +97,6 @@ /mob/living/carbon/human/proc/GetSpecialVoice() return special_voice - -/mob/living/carbon/human/say_quote(var/message, var/datum/language/speaking = null) - var/verb = "says" - var/ending = copytext(message, length(message)) - - if(speaking) - verb = speaking.get_spoken_verb(ending) - else - if(ending == "!") - return pick("exclaims", "shouts", "yells") - if(ending == "?") - return "asks" - - return verb - - /mob/living/carbon/human/handle_speech_problems(var/message, var/verb) var/list/returns[3] var/speech_problem_flag = 0 diff --git a/code/modules/mob/living/carbon/metroid/say.dm b/code/modules/mob/living/carbon/metroid/say.dm index 9c20a40b785..50311ace49e 100644 --- a/code/modules/mob/living/carbon/metroid/say.dm +++ b/code/modules/mob/living/carbon/metroid/say.dm @@ -1,20 +1,13 @@ -/mob/living/carbon/slime/say(var/message) - var/verb = say_quote(message) - - if(copytext(message,1,2) == "*") - return emote(copytext(message,2)) - - return ..(message, null, verb) - -/mob/living/carbon/slime/say_quote(var/text) +/mob/living/carbon/slime/say_quote(var/text, var/datum/language/speaking) + var/verb = "telepathically chirps" var/ending = copytext(text, length(text)) if (ending == "?") - return "telepathically asks"; + verb = "telepathically asks" else if (ending == "!") - return "telepathically cries"; + verb = "telepathically cries" - return "telepathically chirps"; + return verb /mob/living/carbon/slime/say_understands(var/other) if (istype(other, /mob/living/carbon/slime)) diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index cbffd443ae8..d2931044be3 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -544,10 +544,10 @@ gib() return -/mob/living/simple_animal/say(var/message) +/mob/living/simple_animal/say_quote(var/message) var/verb = "says" if(speak_emote.len) verb = pick(speak_emote) - ..(message, null, verb) \ No newline at end of file + return verb \ No newline at end of file diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index a65d31d1229..41536e6bf9e 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -84,14 +84,17 @@ /mob/proc/say_quote(var/message, var/datum/language/speaking = null) - var/verb = "says" - var/ending = copytext(message, length(message)) - if(ending=="!") - verb=pick("exclaims","shouts","yells") - else if(ending=="?") - verb="asks" + var/verb = "says" + var/ending = copytext(message, length(message)) - return verb + if(speaking) + verb = speaking.get_spoken_verb(ending) + else + if(ending=="!") + verb = pick("exclaims","shouts","yells") + else if(ending=="?") + verb = "asks" + return verb /mob/proc/emote(var/act, var/type, var/message) diff --git a/paradise.dme b/paradise.dme index 98b5d5d0562..0c12f807b3f 100644 --- a/paradise.dme +++ b/paradise.dme @@ -1301,7 +1301,6 @@ #include "code\modules\mob\living\carbon\alien\life.dm" #include "code\modules\mob\living\carbon\alien\login.dm" #include "code\modules\mob\living\carbon\alien\logout.dm" -#include "code\modules\mob\living\carbon\alien\say.dm" #include "code\modules\mob\living\carbon\alien\humanoid\alien_powers.dm" #include "code\modules\mob\living\carbon\alien\humanoid\emote.dm" #include "code\modules\mob\living\carbon\alien\humanoid\empress.dm"