From f4dd443b01485d10f8d316448c4087ad334da2e7 Mon Sep 17 00:00:00 2001 From: Anewbe Date: Fri, 10 Mar 2017 21:46:57 -0600 Subject: [PATCH] Ports the translator --- code/game/objects/items/devices/translator.dm | 54 ++++++++++++++++++ .../loadout/loadout_utility.dm | 5 ++ code/modules/research/designs.dm | 8 +++ html/changelogs/Anewbe - Translator.yml | 36 ++++++++++++ icons/obj/device.dmi | Bin 48606 -> 50209 bytes polaris.dme | 1 + 6 files changed, 104 insertions(+) create mode 100644 code/game/objects/items/devices/translator.dm create mode 100644 html/changelogs/Anewbe - Translator.yml diff --git a/code/game/objects/items/devices/translator.dm b/code/game/objects/items/devices/translator.dm new file mode 100644 index 0000000000..a66d9710c2 --- /dev/null +++ b/code/game/objects/items/devices/translator.dm @@ -0,0 +1,54 @@ +//Universal translator +/obj/item/device/universal_translator + name = "handheld translator" + desc = "This handy device appears to translate the languages it hears into onscreen text for a user." + icon = 'icons/obj/device.dmi' + icon_state = "translator" + w_class = ITEMSIZE_SMALL + origin_tech = list(TECH_DATA = 3, TECH_ENGINEERING = 3) + var/listening = 0 + var/datum/language/langset + +/obj/item/device/universal_translator/attack_self(mob/user) + if(!listening) //Turning ON + langset = input(user,"Translate to which of your languages?","Language Selection") as null|anything in user.languages + if(langset) + listening = 1 + listening_objects |= src + icon_state = "[initial(icon_state)]1" + to_chat(user, "You enable \the [src], translating into [langset.name].") + else //Turning OFF + listening = 0 + listening_objects -= src + langset = null + icon_state = "[initial(icon_state)]" + to_chat(user, "You disable \the [src].") + +/obj/item/device/universal_translator/hear_talk(var/mob/speaker, var/message, var/vrb, var/datum/language/language) + if(!listening || !istype(speaker)) + return + + //Show the "I heard something" animation. + flick("[initial(icon_state)]2",src) + + //Handheld or pocket only. + if(!isliving(loc)) + return + + var/mob/living/L = loc + + if (language && (language.flags & NONVERBAL)) + return //Not gonna translate sign language + + //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 + if(L.say_understands(null,langset)) + to_chat(L, "[src] displays, \"[message]\"") + + //They don't understand the PRINTED language + else + to_chat(L, "[src] displays, \"[langset.scramble(message)]\"") diff --git a/code/modules/client/preference_setup/loadout/loadout_utility.dm b/code/modules/client/preference_setup/loadout/loadout_utility.dm index 4c2a378e7d..f9ffc0eb0b 100644 --- a/code/modules/client/preference_setup/loadout/loadout_utility.dm +++ b/code/modules/client/preference_setup/loadout/loadout_utility.dm @@ -61,3 +61,8 @@ cost = 2 slot = "implant" var/implant_type = "EAL" + +/datum/gear/utility/translator + display_name = "universal translator" + path = /obj/item/device/universal_translator + cost = 5 diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index ee1bbcaf2f..49678c966c 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -1586,6 +1586,14 @@ CIRCUITS BELOW build_path = /obj/item/weapon/implant/integrated_circuit sort_string = "VCAAE" +/datum/design/item/translator + name = "handheld translator" + id = "translator" + req_tech = list(TECH_DATA = 3, TECH_ENGINEERING = 3) + materials = list(DEFAULT_WALL_MATERIAL = 2000, "glass" = 2000) + build_path = /obj/item/device/universal_translator + sort_string = "HABBA" + /* Uncomment if someone makes these buildable /datum/design/circuit/general_alert name = "general alert console" diff --git a/html/changelogs/Anewbe - Translator.yml b/html/changelogs/Anewbe - Translator.yml new file mode 100644 index 0000000000..2219cc592d --- /dev/null +++ b/html/changelogs/Anewbe - Translator.yml @@ -0,0 +1,36 @@ +################################ +# 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: Anewbe + +# 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: "Adds a universal translator device, courtesy of a downstream." diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi index 3c5b0ce667153b6d499cd0a8a72c905c674a701c..4e366be140bdce3557a204febb1e0e65d93c71fa 100644 GIT binary patch delta 8178 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 diff --git a/polaris.dme b/polaris.dme index f7bfd240ce..53da36a18f 100644 --- a/polaris.dme +++ b/polaris.dme @@ -779,6 +779,7 @@ #include "code\game\objects\items\devices\taperecorder.dm" #include "code\game\objects\items\devices\traitordevices.dm" #include "code\game\objects\items\devices\transfer_valve.dm" +#include "code\game\objects\items\devices\translator.dm" #include "code\game\objects\items\devices\tvcamera.dm" #include "code\game\objects\items\devices\uplink.dm" #include "code\game\objects\items\devices\uplink_random_lists.dm"