From ab1812d9ff4927bc925e1409b1eca713de4a06c1 Mon Sep 17 00:00:00 2001 From: Anewbe Date: Mon, 13 Mar 2017 20:03:45 -0500 Subject: [PATCH] Adds the ear translator --- code/game/objects/items/devices/translator.dm | 33 ++++++++++++++---- .../preference_setup/loadout/loadout_ears.dm | 5 +++ icons/obj/device.dmi | Bin 50209 -> 50525 bytes 3 files changed, 32 insertions(+), 6 deletions(-) diff --git a/code/game/objects/items/devices/translator.dm b/code/game/objects/items/devices/translator.dm index a66d9710c2..49128a6fca 100644 --- a/code/game/objects/items/devices/translator.dm +++ b/code/game/objects/items/devices/translator.dm @@ -6,6 +6,9 @@ icon_state = "translator" w_class = ITEMSIZE_SMALL origin_tech = list(TECH_DATA = 3, TECH_ENGINEERING = 3) + var/mult_icons = 1 //Changes sprite when it translates + var/visual = 1 //If you need to see to get the message + var/audio = 0 //If you need to hear to get the message var/listening = 0 var/datum/language/langset @@ -15,7 +18,8 @@ if(langset) listening = 1 listening_objects |= src - icon_state = "[initial(icon_state)]1" + if(mult_icons) + icon_state = "[initial(icon_state)]1" to_chat(user, "You enable \the [src], translating into [langset.name].") else //Turning OFF listening = 0 @@ -29,7 +33,8 @@ return //Show the "I heard something" animation. - flick("[initial(icon_state)]2",src) + if(mult_icons) + flick("[initial(icon_state)]2",src) //Handheld or pocket only. if(!isliving(loc)) @@ -40,15 +45,31 @@ if (language && (language.flags & NONVERBAL)) return //Not gonna translate sign language + if (visual && ((L.sdisabilities & BLIND) || L.eye_blind)) + return //Can't see the screen, don't get the message + + if (audio && ((L.sdisabilities & DEAF) || L.ear_deaf)) + return //Can't hear the translation, don't get the message + //Only translate if they can't understand, otherwise pointlessly spammy //I'll just assume they don't look at the screen in that case //They don't understand the spoken language we're translating FROM if(!L.say_understands(speaker,language)) - //They understand the PRINTED language + //They understand the output language if(L.say_understands(null,langset)) - to_chat(L, "[src] displays, \"[message]\"") + to_chat(L, "[src] translates, \"[message]\"") - //They don't understand the PRINTED language + //They don't understand the output language else - to_chat(L, "[src] displays, \"[langset.scramble(message)]\"") + to_chat(L, "[src] translates, \"[langset.scramble(message)]\"") + +//Let's try an ear-worn version +/obj/item/device/universal_translator/ear + name = "translator earpiece" + desc = "This handy device appears to translate the languages it hears into another language for a user." + icon_state = "earpiece" + w_class = ITEMSIZE_TINY + slot_flags = SLOT_EARS + visual = 0 + audio = 1 \ No newline at end of file diff --git a/code/modules/client/preference_setup/loadout/loadout_ears.dm b/code/modules/client/preference_setup/loadout/loadout_ears.dm index 02bfdaa8b7..d3c7c633ce 100644 --- a/code/modules/client/preference_setup/loadout/loadout_ears.dm +++ b/code/modules/client/preference_setup/loadout/loadout_ears.dm @@ -8,3 +8,8 @@ /datum/gear/ears/headphones display_name = "headphones" path = /obj/item/clothing/ears/earmuffs/headphones + +/datum/gear/ears/translator + display_name = "universal translator, ear" + path = /obj/item/device/universal_translator/ear + cost = 5 \ No newline at end of file diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi index 4e366be140bdce3557a204febb1e0e65d93c71fa..d9b7bd22aaf223e6511636c0bee1fa546571c06d 100644 GIT binary patch delta 8475 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