From 5f389e6fe7a11c59b88d214e586c62a42182dfa2 Mon Sep 17 00:00:00 2001 From: Chinsky Date: Fri, 29 Aug 2014 04:42:20 +0400 Subject: [PATCH] Ported new kinda of assemblies from TG - voice assembly. It can be set to trigger on hearing a specific phrase. Credit to PeteTheGoat. --- baystation12.dme | 1 + code/modules/assembly/holder.dm | 6 +++- code/modules/assembly/voice.dm | 36 ++++++++++++++++++++++++ icons/obj/assemblies/new_assemblies.dmi | Bin 3346 -> 3535 bytes 4 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 code/modules/assembly/voice.dm diff --git a/baystation12.dme b/baystation12.dme index ff370aa446..2d63766ad6 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -737,6 +737,7 @@ #include "code\modules\assembly\shock_kit.dm" #include "code\modules\assembly\signaler.dm" #include "code\modules\assembly\timer.dm" +#include "code\modules\assembly\voice.dm" #include "code\modules\awaymissions\bluespaceartillery.dm" #include "code\modules\awaymissions\corpse.dm" #include "code\modules\awaymissions\exile.dm" diff --git a/code/modules/assembly/holder.dm b/code/modules/assembly/holder.dm index 477313114d..5c5e8b4f1e 100644 --- a/code/modules/assembly/holder.dm +++ b/code/modules/assembly/holder.dm @@ -212,7 +212,11 @@ return 1 - +/obj/item/device/assembly_holder/hear_talk(mob/living/M as mob, msg) + if(a_right) + a_right.hear_talk(M,msg) + if(a_left) + a_left.hear_talk(M,msg) diff --git a/code/modules/assembly/voice.dm b/code/modules/assembly/voice.dm new file mode 100644 index 0000000000..b9c3eb88de --- /dev/null +++ b/code/modules/assembly/voice.dm @@ -0,0 +1,36 @@ +/obj/item/device/assembly/voice + name = "voice analyzer" + desc = "A small electronic device able to record a voice sample, and send a signal when that sample is repeated." + icon_state = "voice" + matter = list("metal" = 500, "glass" = 50, "waste" = 10) + origin_tech = "magnets=1" + var/listening = 0 + var/recorded //the activation message + +/obj/item/device/assembly/voice/hear_talk(mob/living/M as mob, msg) + if(listening) + recorded = msg + listening = 0 + var/turf/T = get_turf(src) //otherwise it won't work in hand + T.visible_message("\icon[src] beeps, \"Activation message is '[recorded]'.\"") + else + if(findtext(msg, recorded)) + pulse(0) + +/obj/item/device/assembly/voice/activate() + if(secured) + if(!holder) + listening = !listening + var/turf/T = get_turf(src) + T.visible_message("\icon[src] beeps, \"[listening ? "Now" : "No longer"] recording input.\"") + + +/obj/item/device/assembly/voice/attack_self(mob/user) + if(!user) return 0 + activate() + return 1 + + +/obj/item/device/assembly/voice/toggle_secure() + . = ..() + listening = 0 \ No newline at end of file diff --git a/icons/obj/assemblies/new_assemblies.dmi b/icons/obj/assemblies/new_assemblies.dmi index 8b0ea26ed23bc4abfa7127ac3c928d629200a8e9..96b36bbf369e0eb9accc74a2d2c794964b3e18f9 100644 GIT binary patch delta 3081 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 YyAFEqC4~N0lz}H1^@s6 delta 2891 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