diff --git a/baystation12.dme b/baystation12.dme index e5f515a69f..042c2ec3c1 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -739,6 +739,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 8b0ea26ed2..96b36bbf36 100644 Binary files a/icons/obj/assemblies/new_assemblies.dmi and b/icons/obj/assemblies/new_assemblies.dmi differ