/obj/item/audio_tape
name = "compact tape"
desc = "A small audio tape. You could make some rad mix-tapes with this!"
icon = 'icons/obj/device.dmi'
icon_state = "recordertape"
w_class = 1.0
mats = 3
var/log_line = 1 //Which line of the log it's on.
var/max_lines = 60
var/list/messages = list()
var/list/speakers = list()
proc
add_message(speaker="Unknown",message, continuous)
if (!speaker || !message)
return 0
if (!continuous && (log_line >= max_lines))
return 0
log_line++
messages += "[message]"
speakers += "[speaker]"
if (continuous && (log_line > max_lines))
messages.Cut(1,2)
speakers.Cut(1,2)
log_line = messages.len
return 1
get_message(continuous)
if (log_line > messages.len)
if (continuous && messages.len)
log_line = 1
else
return null
return "[speakers.len < log_line ? "Unknown" : speakers[log_line]]|[messages[log_line]]"
next(continuous)
if (log_line >= messages.len)
if (continuous && messages.len)
log_line = 1
else
return 0
log_line++
return 1
reset()
if (messages)
messages.len = 0
else
messages = list()
if (speakers)
speakers.len = 0
else
speakers = list()
src.log_line = 1
return
use_percentage()
if (!messages)
return 0
return round((messages.len / max_lines) * 100)
/obj/item/device/audio_log
name = "Audio log"
desc = "A fairly spartan recording device."
icon_state = "recorder"
item_state = "electronic"
w_class = 2.0
var/obj/item/audio_tape/tape = null
var/mode = 0 //1 recording, 2 playing back
var/max_lines = 60
var/continuous = 1
var/list/audiolog_messages = list()
var/list/audiolog_speakers = list()
var/self_destruct = 0 //This message will self-destruct in five seconds...
mats = 4
//nuclear mode briefing log
nuke_briefing
name = "Mission Briefing"
desc = "The standard for covert mission briefing."
continuous = 0
//self_destruct = 1
New(newloc, var/nuke_area)
..()
if(!nuke_area)
nuke_area = "an unknown area. I think mission control fucked up somewhere."
src.audiolog_messages += "Your mission this time is simple, team."
src.audiolog_messages += "NanoTrasen has been causing us significant trouble recently."
src.audiolog_messages += "You are to detonate their station with a nuclear device."
src.audiolog_messages += "You must arm the bomb in [nuke_area]. Good luck and god speed."
src.audiolog_speakers.len = src.audiolog_messages.len
if (!src.tape)
src.tape = new /obj/item/audio_tape(src)
src.tape.messages = src.audiolog_messages
src.audiolog_messages = null
src.tape.speakers = src.audiolog_speakers
src.audiolog_speakers = null
return
//researchstat log #1
researchstat_log
name = "Bloody log"
desc = "There's blood on it."
continuous = 0
New(newloc)
..()
audiolog_speakers += "Scientist #1"
src.audiolog_messages += "Earlier today we began research on the Artifact recovered by our exploration team."
audiolog_speakers += "Scientist #1"
src.audiolog_messages += "It looks pretty unremarkable by all standards, but we've been getting some very strange readings."
audiolog_speakers += "Scientist #1"
src.audiolog_messages += "There seems to be some sort of energy source in it but our scans show nothing."
audiolog_speakers += "Scientist #1"
src.audiolog_messages += "When I say nothing, I mean literally nothing. There seems to be nothing AT ALL in it."
audiolog_speakers += "Scientist #1"
src.audiolog_messages += "Some crew members have reported strange noises on the station ever since we recovered the artifact, but I'm su---"
audiolog_speakers += "*static*"
src.audiolog_messages += "ZZZZZZZZZZZZZZZZZZZZZZZ"
src.audiolog_speakers.len = src.audiolog_messages.len
return
wjam_office_log
continuous = 0
audiolog_messages = list("Must I remind you, Dr. Garriott, that you are under contract?",
"You weren't there! You didn't see what I-",
"Your tone is not appreciated. If you are unable to control yourself I suggest you leave.",
"In fact, I insist. Our business is concluded-",
"Speak with me face to face you son of a bitch!",
"So you can murder me with whatever plague you have engineered in my labs? Using MY funds?",
"If you are not willing to leave I will have security escort you out, with neither suit nor shuttle to shield you.",
"Think carefully, Bruce.")
audiolog_speakers = list("Willard Jam",
"Dr. Garriott",
"Willard Jam",
"Willard Jam",
"Dr. Garriott",
"Willard Jam",
"Willard Jam",
"Willard Jam")
wall_mounted
name = "Mounted Logger"
desc = "A wall-mounted audio log device."
max_lines = 30
attack_hand(mob/user as mob)
return attack_self(user)
updateSelfDialog()
return updateUsrDialog()
attack_self(mob/user as mob)
..()
if (user.stat || user.restrained() || user.lying)
return
if ((user.contents.Find(src) || user.contents.Find(src.master) || get_dist(src, user) <= 1 && istype(src.loc, /turf)))
user.machine = src
var/dat = "Audio Logger "
if (src.tape)
dat += "Memory [src.tape.use_percentage()]% Full -- Eject "
else
dat += "No Tape Loaded "
dat += "