From 85c78001cb754115a218c74ff710e233297268b7 Mon Sep 17 00:00:00 2001 From: Atermonera Date: Sat, 1 Apr 2017 16:46:28 -0700 Subject: [PATCH 1/3] Several simple_animals have their own languages, with custom syllables. --- code/__defines/species_languages.dm | 2 +- code/modules/mob/language/monkey.dm | 48 +++++++++++++++++++ .../mob/living/simple_animal/animals/bat.dm | 2 + .../mob/living/simple_animal/animals/cat.dm | 1 + .../mob/living/simple_animal/animals/corgi.dm | 1 + .../simple_animal/animals/farm_animals.dm | 2 + .../mob/living/simple_animal/animals/goose.dm | 1 + .../mob/living/simple_animal/animals/mouse.dm | 1 + .../living/simple_animal/animals/parrot.dm | 1 + .../living/simple_animal/animals/penguin.dm | 1 + html/changelogs/Atermonera - Translators.yml | 37 ++++++++++++++ 11 files changed, 96 insertions(+), 1 deletion(-) create mode 100644 html/changelogs/Atermonera - Translators.yml diff --git a/code/__defines/species_languages.dm b/code/__defines/species_languages.dm index 4e5b6d6dfb0..7ad84b4a79d 100644 --- a/code/__defines/species_languages.dm +++ b/code/__defines/species_languages.dm @@ -52,4 +52,4 @@ #define INNATE 64 // All mobs can be assumed to speak and understand this language. (audible emotes) #define NO_TALK_MSG 128 // Do not show the "\The [speaker] talks into \the [radio]" message #define NO_STUTTER 256 // No stuttering, slurring, or other speech problems -#define ALT_TRANSMIT 512 // Language is not based on vision or sound (Todo: add this into the say code and use it for the rootspeak languages) \ No newline at end of file +#define ALT_TRANSMIT 512 // Language is not based on vision or sound (Todo: add this into the say code and use it for the rootspeak languages) diff --git a/code/modules/mob/language/monkey.dm b/code/modules/mob/language/monkey.dm index ce276a358ab..8541c65c054 100644 --- a/code/modules/mob/language/monkey.dm +++ b/code/modules/mob/language/monkey.dm @@ -5,18 +5,66 @@ ask_verb = "chimpers" exclaim_verb = "screeches" key = "6" + machine_understands = 0 /datum/language/skrell/monkey name = "Neaera" desc = "Squik squik squik." key = "8" + machine_understands = 0 /datum/language/unathi/monkey name = "Stok" desc = "Hiss hiss hiss." key = "7" + machine_understands = 0 /datum/language/tajaran/monkey name = "Farwa" desc = "Meow meow meow." key = "9" + machine_understands = 0 + +/datum/language/corgi + name = "Dog" + desc = "Woof woof woof." + speech_verb = "barks" + ask_verb = "woofs" + exclaim_verb = "howls" + key = "n" + machine_understands = 0 + space_chance = 100 + syllables = list("bark", "woof", "bowwow", "yap", "arf") + +/datum/language/cat + name = "Cat" + desc = "Meow meow meow." + speech_verb = "meows" + ask_verb = "mrowls" + exclaim_verb = "yowls" + key = "c" + machine_understands = 0 + space_chance = 100 + syllables = list("meow", "mrowl", "purr", "meow", "meow", "meow") + +/datum/language/mouse + name = "Mouse" + desc = "Squeak squeak. *Nibbles on cheese*" + speech_verb = "squeaks" + ask_verb = "squeaks" + exclaim_verb = "squeaks" + key = "m" + machine_understands = 0 + space_chance = 100 + syllables = list("squeak") // , "gripes", "oi", "meow") + +/datum/language/bird + name = "Bird" + desc = "Chirp chirp, give me food" + speech_verb = "chirps" + ask_verb = "tweets" + exclaim_verb = "squawks" + key = "m" + machine_understands = 0 + space_chance = 100 + syllables = list("chirp", "squawk", "tweet") \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/animals/bat.dm b/code/modules/mob/living/simple_animal/animals/bat.dm index d7ed8e5f403..1d722c0b8a6 100644 --- a/code/modules/mob/living/simple_animal/animals/bat.dm +++ b/code/modules/mob/living/simple_animal/animals/bat.dm @@ -36,6 +36,8 @@ max_n2 = 0 minbodytemp = 0 + has_langs = list("Mouse") + meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat var/mob/living/owner diff --git a/code/modules/mob/living/simple_animal/animals/cat.dm b/code/modules/mob/living/simple_animal/animals/cat.dm index 808ebdb8fa6..9b3df512470 100644 --- a/code/modules/mob/living/simple_animal/animals/cat.dm +++ b/code/modules/mob/living/simple_animal/animals/cat.dm @@ -27,6 +27,7 @@ holder_type = /obj/item/weapon/holder/cat mob_size = MOB_SMALL + has_langs = list("Cat") speak_chance = 1 speak = list("Meow!","Esp!","Purr!","HSSSSS") speak_emote = list("purrs", "meows") diff --git a/code/modules/mob/living/simple_animal/animals/corgi.dm b/code/modules/mob/living/simple_animal/animals/corgi.dm index 8f4adf8e540..11b2302aaa4 100644 --- a/code/modules/mob/living/simple_animal/animals/corgi.dm +++ b/code/modules/mob/living/simple_animal/animals/corgi.dm @@ -17,6 +17,7 @@ see_in_dark = 5 mob_size = 8 + has_langs = list("Dog") speak_chance = 1 speak = list("YAP", "Woof!", "Bark!", "AUUUUUU") speak_emote = list("barks", "woofs") diff --git a/code/modules/mob/living/simple_animal/animals/farm_animals.dm b/code/modules/mob/living/simple_animal/animals/farm_animals.dm index fc21fbddfde..e65654cdadd 100644 --- a/code/modules/mob/living/simple_animal/animals/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/animals/farm_animals.dm @@ -167,6 +167,7 @@ response_harm = "kicks" attacktext = "kicked" + has_langs = list("Bird") speak_chance = 2 speak = list("Cherp.","Cherp?","Chirrup.","Cheep!") speak_emote = list("cheeps") @@ -213,6 +214,7 @@ var/global/chicken_count = 0 response_harm = "kicks" attacktext = "kicked" + has_langs = list("Bird") speak_chance = 2 speak = list("Cluck!","BWAAAAARK BWAK BWAK BWAK!","Bwaak bwak.") speak_emote = list("clucks","croons") diff --git a/code/modules/mob/living/simple_animal/animals/goose.dm b/code/modules/mob/living/simple_animal/animals/goose.dm index 217ea0b0246..ded7c5214a2 100644 --- a/code/modules/mob/living/simple_animal/animals/goose.dm +++ b/code/modules/mob/living/simple_animal/animals/goose.dm @@ -35,6 +35,7 @@ max_n2 = 0 minbodytemp = 0 + has_langs = list("Bird") speak_chance = 10 speak = list("HONK!") emote_hear = list("honks loudly!") diff --git a/code/modules/mob/living/simple_animal/animals/mouse.dm b/code/modules/mob/living/simple_animal/animals/mouse.dm index 43b12961bd6..cb06aecb7ee 100644 --- a/code/modules/mob/living/simple_animal/animals/mouse.dm +++ b/code/modules/mob/living/simple_animal/animals/mouse.dm @@ -29,6 +29,7 @@ minbodytemp = 223 //Below -50 Degrees Celcius maxbodytemp = 323 //Above 50 Degrees Celcius + has_langs = list("Mouse") speak_chance = 1 speak = list("Squeek!","SQUEEK!","Squeek?") speak_emote = list("squeeks","squeeks","squiks") diff --git a/code/modules/mob/living/simple_animal/animals/parrot.dm b/code/modules/mob/living/simple_animal/animals/parrot.dm index 03f0261688d..0f0fcb3a6bb 100644 --- a/code/modules/mob/living/simple_animal/animals/parrot.dm +++ b/code/modules/mob/living/simple_animal/animals/parrot.dm @@ -46,6 +46,7 @@ stop_automated_movement = 1 universal_speak = 1 + has_langs = list("Bird") speak_chance = 2 speak = list("Hi","Hello!","Cracker?","BAWWWWK george mellons griffing me") speak_emote = list("squawks","says","yells") diff --git a/code/modules/mob/living/simple_animal/animals/penguin.dm b/code/modules/mob/living/simple_animal/animals/penguin.dm index 40c085a72f7..90074edef59 100644 --- a/code/modules/mob/living/simple_animal/animals/penguin.dm +++ b/code/modules/mob/living/simple_animal/animals/penguin.dm @@ -20,6 +20,7 @@ melee_damage_upper = 15 attacktext = "pecked" + has_langs = list("Bird") speak_chance = 0 meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat diff --git a/html/changelogs/Atermonera - Translators.yml b/html/changelogs/Atermonera - Translators.yml new file mode 100644 index 00000000000..278506535cc --- /dev/null +++ b/html/changelogs/Atermonera - Translators.yml @@ -0,0 +1,37 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: Atermonera + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Common simple animals now have their own language, and as such are no longer understandable by humans." + - bugfix: "Translators can't understand the same languages that recorders can't, including the new animal languages." From 971cd2da3025f6c8bdae9724aa8a8a7ed72b224c Mon Sep 17 00:00:00 2001 From: Atermonera Date: Sat, 1 Apr 2017 16:47:54 -0700 Subject: [PATCH 2/3] Translators don't understand animals and other languages that recorders can't record. --- code/game/objects/items/devices/translator.dm | 6 +++++- code/modules/mob/language/outsider.dm | 3 +++ code/modules/mob/language/station.dm | 2 ++ code/modules/mob/language/synthetic.dm | 2 ++ 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items/devices/translator.dm b/code/game/objects/items/devices/translator.dm index 0bb26b32bc7..fbe8dde7630 100644 --- a/code/game/objects/items/devices/translator.dm +++ b/code/game/objects/items/devices/translator.dm @@ -16,7 +16,8 @@ if(!listening) //Turning ON langset = input(user,"Translate to which of your languages?","Language Selection") as null|anything in user.languages if(langset) - if(langset && ((langset.flags & NONVERBAL) || (langset.flags & HIVEMIND))) + if(langset && ((langset.flags & NONVERBAL) || (!langset.machine_understands))) + //Nonverbal means no spoken words to translate, so I didn't see the need to remove it. to_chat(user, "\The [src] cannot output that language.") return else @@ -49,6 +50,9 @@ if (language && (language.flags & NONVERBAL)) return //Not gonna translate sign language + if (!language.machine_understands) + return //Any other languages that it can't translate. + if (visual && ((L.sdisabilities & BLIND) || L.eye_blind)) return //Can't see the screen, don't get the message diff --git a/code/modules/mob/language/outsider.dm b/code/modules/mob/language/outsider.dm index 8c174a2ff74..3e85f4efece 100644 --- a/code/modules/mob/language/outsider.dm +++ b/code/modules/mob/language/outsider.dm @@ -4,6 +4,7 @@ speech_verb = "says" colour = "changeling" key = "g" + machine_understands = 0 flags = RESTRICTED | HIVEMIND /datum/language/ling/broadcast(var/mob/living/speaker,var/message,var/speaker_mask) @@ -21,6 +22,7 @@ exclaim_verb = "sings" colour = "alien" key = "x" + machine_understands = 0 flags = RESTRICTED | HIVEMIND /datum/language/corticalborer/broadcast(var/mob/living/speaker,var/message,var/speaker_mask) @@ -80,4 +82,5 @@ exclaim_verb = "chants" colour = "cult" key = "y" + machine_understands = 0 flags = RESTRICTED | HIVEMIND diff --git a/code/modules/mob/language/station.dm b/code/modules/mob/language/station.dm index 8e2f2987c9e..85942fcb4e9 100644 --- a/code/modules/mob/language/station.dm +++ b/code/modules/mob/language/station.dm @@ -6,6 +6,7 @@ exclaim_verb = "rustles" colour = "soghun" key = "q" + machine_understands = 0 flags = RESTRICTED syllables = list("hs","zt","kr","st","sh") @@ -18,6 +19,7 @@ name = LANGUAGE_ROOTGLOBAL desc = "A complex language known instinctively by Dionaea, 'spoken' by emitting modulated radio waves. This version uses low frequency waves for slow communication at long ranges." key = "w" + machine_understands = 0 flags = RESTRICTED | HIVEMIND /datum/language/unathi diff --git a/code/modules/mob/language/synthetic.dm b/code/modules/mob/language/synthetic.dm index 2a2ddb0ff97..36dd57bc692 100644 --- a/code/modules/mob/language/synthetic.dm +++ b/code/modules/mob/language/synthetic.dm @@ -6,6 +6,7 @@ ask_verb = "queries" exclaim_verb = "declares" key = "b" + machine_understands = 0 flags = RESTRICTED | HIVEMIND var/drone_only @@ -64,5 +65,6 @@ exclaim_verb = "transmits" colour = "say_quote" key = "d" + machine_understands = 0 flags = RESTRICTED | HIVEMIND drone_only = 1 From d9c68e5b9bdbc0fb5645370a37832e3930a51e0d Mon Sep 17 00:00:00 2001 From: Atermonera Date: Sat, 1 Apr 2017 17:49:18 -0700 Subject: [PATCH 3/3] Translators still check against hiveminds --- code/game/objects/items/devices/translator.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/devices/translator.dm b/code/game/objects/items/devices/translator.dm index fbe8dde7630..90fb43724ed 100644 --- a/code/game/objects/items/devices/translator.dm +++ b/code/game/objects/items/devices/translator.dm @@ -16,7 +16,7 @@ if(!listening) //Turning ON langset = input(user,"Translate to which of your languages?","Language Selection") as null|anything in user.languages if(langset) - if(langset && ((langset.flags & NONVERBAL) || (!langset.machine_understands))) + if(langset && ((langset.flags & NONVERBAL) || (langset.flags & HIVEMIND) || (!langset.machine_understands))) //Nonverbal means no spoken words to translate, so I didn't see the need to remove it. to_chat(user, "\The [src] cannot output that language.") return