diff --git a/baystation12.dme b/baystation12.dme index ff370aa4469..2d63766ad6b 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 477313114d2..5c5e8b4f1e6 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 00000000000..b9c3eb88de8 --- /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 8b0ea26ed23..96b36bbf369 100644 Binary files a/icons/obj/assemblies/new_assemblies.dmi and b/icons/obj/assemblies/new_assemblies.dmi differ