mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-28 14:37:04 +01:00
Taperecorder Rework
This commit is contained in:
@@ -1,62 +1,112 @@
|
||||
/obj/item/device/taperecorder
|
||||
desc = "A device that can record up to an hour of dialogue and play it back. It automatically translates the content in playback."
|
||||
name = "universal recorder"
|
||||
icon_state = "taperecorderidle"
|
||||
desc = "A device that can record to cassette tapes, and play them. It automatically translates the content in playback."
|
||||
icon_state = "taperecorder_empty"
|
||||
item_state = "analyzer"
|
||||
w_class = 1.0
|
||||
w_class = 2
|
||||
slot_flags = SLOT_BELT
|
||||
m_amt = 60
|
||||
g_amt = 30
|
||||
var/emagged = 0.0
|
||||
var/recording = 0.0
|
||||
var/playing = 0.0
|
||||
var/timerecorded = 0.0
|
||||
var/playsleepseconds = 0.0
|
||||
var/list/storedinfo = new/list()
|
||||
var/list/timestamp = new/list()
|
||||
force = 2
|
||||
throwforce = 0
|
||||
var/recording = 0
|
||||
var/playing = 0
|
||||
var/playsleepseconds = 0
|
||||
var/obj/item/device/tape/mytape
|
||||
var/open_panel = 0
|
||||
var/datum/wires/taperecorder/wires = null
|
||||
var/canprint = 1
|
||||
flags = CONDUCT
|
||||
throwforce = 2
|
||||
throw_speed = 4
|
||||
throw_range = 20
|
||||
|
||||
/obj/item/device/taperecorder/hear_talk(mob/living/M as mob, msg)
|
||||
if(recording)
|
||||
var/ending = copytext(msg, length(msg))
|
||||
timestamp+= timerecorded
|
||||
if(M.stuttering)
|
||||
storedinfo += "\[[time2text(timerecorded*10,"mm:ss")]\] [M.name] stammers, \"[msg]\""
|
||||
|
||||
/obj/item/device/taperecorder/New()
|
||||
wires = new(src)
|
||||
mytape = new /obj/item/device/tape/random(src)
|
||||
update_icon()
|
||||
|
||||
|
||||
/obj/item/device/taperecorder/examine()
|
||||
set src in view(1)
|
||||
..()
|
||||
usr << "The wire panel is [open_panel ? "opened" : "closed"]."
|
||||
|
||||
|
||||
/obj/item/device/taperecorder/attackby(obj/item/I, mob/user)
|
||||
if(!mytape && istype(I, /obj/item/device/tape))
|
||||
user.drop_item()
|
||||
I.loc = src
|
||||
mytape = I
|
||||
user << "<span class='notice'>You insert [I] into [src].</span>"
|
||||
update_icon()
|
||||
else if(istype(I, /obj/item/weapon/screwdriver))
|
||||
open_panel = !open_panel
|
||||
user << "<span class='notice'>You [open_panel ? "open" : "close"] the wire panel.</span>"
|
||||
if(open_panel)
|
||||
wires.Interact(user)
|
||||
else if(istype(I, /obj/item/weapon/wirecutters) || istype(I, /obj/item/device/multitool) || istype(I, /obj/item/device/assembly/signaler))
|
||||
wires.Interact(user)
|
||||
|
||||
|
||||
/obj/item/device/taperecorder/proc/eject(mob/user)
|
||||
if(mytape)
|
||||
user << "<span class='notice'>You remove [mytape] from [src].</span>"
|
||||
stop()
|
||||
user.put_in_hands(mytape)
|
||||
mytape = null
|
||||
update_icon()
|
||||
|
||||
|
||||
/obj/item/device/taperecorder/attack_hand(mob/user)
|
||||
if(loc == user)
|
||||
if(mytape)
|
||||
if(user.l_hand != src && user.r_hand != src)
|
||||
..()
|
||||
return
|
||||
eject(user)
|
||||
return
|
||||
if(M.getBrainLoss() >= 60)
|
||||
storedinfo += "\[[time2text(timerecorded*10,"mm:ss")]\] [M.name] gibbers, \"[msg]\""
|
||||
return
|
||||
if(ending == "?")
|
||||
storedinfo += "\[[time2text(timerecorded*10,"mm:ss")]\] [M.name] asks, \"[msg]\""
|
||||
return
|
||||
else if(ending == "!")
|
||||
storedinfo += "\[[time2text(timerecorded*10,"mm:ss")]\] [M.name] exclaims, \"[msg]\""
|
||||
return
|
||||
storedinfo += "\[[time2text(timerecorded*10,"mm:ss")]\] [M.name] says, \"[msg]\""
|
||||
..()
|
||||
|
||||
|
||||
/obj/item/device/taperecorder/verb/ejectverb()
|
||||
set name = "Eject Tape"
|
||||
set category = "Object"
|
||||
|
||||
if(usr.stat)
|
||||
return
|
||||
if(!mytape)
|
||||
return
|
||||
|
||||
/obj/item/device/taperecorder/emag_act(user as mob)
|
||||
if(emagged == 0)
|
||||
emagged = 1
|
||||
recording = 0
|
||||
user << "<span class='warning'>PZZTTPFFFT</span>"
|
||||
icon_state = "taperecorderidle"
|
||||
eject(usr)
|
||||
|
||||
|
||||
/obj/item/device/taperecorder/update_icon()
|
||||
if(!mytape)
|
||||
icon_state = "taperecorder_empty"
|
||||
else if(recording)
|
||||
icon_state = "taperecorder_recording"
|
||||
else if(playing)
|
||||
icon_state = "taperecorder_playing"
|
||||
else
|
||||
user << "<span class='warning'>It is already emagged!</span>"
|
||||
|
||||
/obj/item/device/taperecorder/proc/explode()
|
||||
var/turf/T = get_turf(loc)
|
||||
if(ismob(loc))
|
||||
var/mob/M = loc
|
||||
M << "<span class='danger'>\The [src] explodes!</span>"
|
||||
if(T)
|
||||
T.hotspot_expose(700,125)
|
||||
explosion(T, -1, -1, 0, 4)
|
||||
del(src)
|
||||
return
|
||||
icon_state = "taperecorder_idle"
|
||||
|
||||
|
||||
/obj/item/device/taperecorder/hear_talk(mob/living/M as mob, msg)
|
||||
if(mytape && recording)
|
||||
var/ending = copytext(msg, length(msg))
|
||||
mytape.timestamp += mytape.used_capacity
|
||||
if(M.stuttering)
|
||||
mytape.storedinfo += "\[[time2text(mytape.used_capacity * 10,"mm:ss")]\] [M.name] stammers, \"[msg]\""
|
||||
return
|
||||
if(M.getBrainLoss() >= 60)
|
||||
mytape.storedinfo += "\[[time2text(mytape.used_capacity * 10,"mm:ss")]\] [M.name] gibbers, \"[msg]\""
|
||||
return
|
||||
if(ending == "?")
|
||||
mytape.storedinfo += "\[[time2text(mytape.used_capacity * 10,"mm:ss")]\] [M.name] asks, \"[msg]\""
|
||||
return
|
||||
else if(ending == "!")
|
||||
mytape.storedinfo += "\[[time2text(mytape.used_capacity * 10,"mm:ss")]\] [M.name] exclaims, \"[msg]\""
|
||||
return
|
||||
mytape.storedinfo += "\[[time2text(mytape.used_capacity * 10,"mm:ss")]\] [M.name] says, \"[msg]\""
|
||||
|
||||
|
||||
/obj/item/device/taperecorder/verb/record()
|
||||
set name = "Start Recording"
|
||||
@@ -64,25 +114,35 @@
|
||||
|
||||
if(usr.stat)
|
||||
return
|
||||
if(emagged == 1)
|
||||
usr << "\red The tape recorder makes a scratchy noise."
|
||||
if(!mytape || mytape.ruined)
|
||||
return
|
||||
icon_state = "taperecorderrecording"
|
||||
if(timerecorded < 3600 && playing == 0)
|
||||
if(recording)
|
||||
return
|
||||
if(playing)
|
||||
return
|
||||
if(!wires.get_record())
|
||||
return
|
||||
|
||||
if(mytape.used_capacity < mytape.max_capacity)
|
||||
usr << "<span class='notice'>Recording started.</span>"
|
||||
recording = 1
|
||||
timestamp+= timerecorded
|
||||
storedinfo += "\[[time2text(timerecorded*10,"mm:ss")]\] Recording started."
|
||||
for(timerecorded, timerecorded<3600)
|
||||
update_icon()
|
||||
mytape.timestamp += mytape.used_capacity
|
||||
mytape.storedinfo += "\[[time2text(mytape.used_capacity * 10,"mm:ss")]\] Recording started."
|
||||
var/used = mytape.used_capacity //to stop runtimes when you eject the tape
|
||||
var/max = mytape.max_capacity
|
||||
for(used, used < max)
|
||||
if(recording == 0)
|
||||
break
|
||||
timerecorded++
|
||||
if(!wires.get_record())
|
||||
break
|
||||
mytape.used_capacity++
|
||||
used++
|
||||
sleep(10)
|
||||
recording = 0
|
||||
icon_state = "taperecorderidle"
|
||||
return
|
||||
update_icon()
|
||||
else
|
||||
usr << "<span class='notice'>Either your tape recorder's memory is full, or it is currently playing back its memory.</span>"
|
||||
usr << "<span class='notice'>The tape is full.</span>"
|
||||
|
||||
|
||||
/obj/item/device/taperecorder/verb/stop()
|
||||
@@ -91,101 +151,76 @@
|
||||
|
||||
if(usr.stat)
|
||||
return
|
||||
if(emagged == 1)
|
||||
usr << "\red The tape recorder makes a scratchy noise."
|
||||
return
|
||||
if(recording == 1)
|
||||
|
||||
if(recording)
|
||||
recording = 0
|
||||
timestamp+= timerecorded
|
||||
storedinfo += "\[[time2text(timerecorded*10,"mm:ss")]\] Recording stopped."
|
||||
mytape.timestamp += mytape.used_capacity
|
||||
mytape.storedinfo += "\[[time2text(mytape.used_capacity * 10,"mm:ss")]\] Recording stopped."
|
||||
usr << "<span class='notice'>Recording stopped.</span>"
|
||||
icon_state = "taperecorderidle"
|
||||
return
|
||||
else if(playing == 1)
|
||||
else if(playing)
|
||||
playing = 0
|
||||
var/turf/T = get_turf(src)
|
||||
T.visible_message("<font color=Maroon><B>Tape Recorder</B>: Playback stopped.</font>")
|
||||
icon_state = "taperecorderidle"
|
||||
return
|
||||
update_icon()
|
||||
|
||||
|
||||
/obj/item/device/taperecorder/verb/clear_memory()
|
||||
set name = "Clear Memory"
|
||||
/obj/item/device/taperecorder/verb/play()
|
||||
set name = "Play Tape"
|
||||
set category = "Object"
|
||||
|
||||
if(usr.stat)
|
||||
return
|
||||
if(emagged == 1)
|
||||
usr << "<span class='warning'>The tape recorder makes a scratchy noise.</span>"
|
||||
if(!mytape || mytape.ruined)
|
||||
return
|
||||
if(recording == 1 || playing == 1)
|
||||
usr << "<span class='notice'>You can't clear the memory while playing or recording!</span>"
|
||||
if(recording)
|
||||
return
|
||||
else
|
||||
if(storedinfo) storedinfo.Cut()
|
||||
if(timestamp) timestamp.Cut()
|
||||
timerecorded = 0
|
||||
usr << "<span class='notice'>Memory cleared.</span>"
|
||||
if(playing)
|
||||
return
|
||||
if(!wires.get_play())
|
||||
return
|
||||
|
||||
|
||||
/obj/item/device/taperecorder/verb/playback_memory()
|
||||
set name = "Playback Memory"
|
||||
set category = "Object"
|
||||
|
||||
if(usr.stat)
|
||||
return
|
||||
if(emagged == 1)
|
||||
usr << "\red The tape recorder makes a scratchy noise."
|
||||
return
|
||||
if(recording == 1)
|
||||
usr << "<span class='notice'>You can't playback when recording!</span>"
|
||||
return
|
||||
if(playing == 1)
|
||||
usr << "<span class='notice'>You're already playing!</span>"
|
||||
return
|
||||
playing = 1
|
||||
icon_state = "taperecorderplaying"
|
||||
update_icon()
|
||||
usr << "<span class='notice'>Playing started.</span>"
|
||||
for(var/i=1,timerecorded<3600,sleep(10 * (playsleepseconds) ))
|
||||
var/used = mytape.used_capacity //to stop runtimes when you eject the tape
|
||||
var/max = mytape.max_capacity
|
||||
for(var/i = 1, used < max, sleep(10 * playsleepseconds))
|
||||
if(!mytape)
|
||||
break
|
||||
if(!wires.get_play())
|
||||
break
|
||||
if(playing == 0)
|
||||
break
|
||||
if(storedinfo.len < i)
|
||||
if(mytape.storedinfo.len < i)
|
||||
break
|
||||
var/turf/T = get_turf(src)
|
||||
T.visible_message("<font color=Maroon><B>Tape Recorder</B>: [storedinfo[i]]</font>")
|
||||
if(storedinfo.len < i+1)
|
||||
T.visible_message("<font color=Maroon><B>Tape Recorder</B>: [mytape.storedinfo[i]]</font>")
|
||||
if(mytape.storedinfo.len < i + 1)
|
||||
playsleepseconds = 1
|
||||
sleep(10)
|
||||
T = get_turf(src)
|
||||
T.visible_message("<font color=Maroon><B>Tape Recorder</B>: End of recording.</font>")
|
||||
else
|
||||
playsleepseconds = timestamp[i+1] - timestamp[i]
|
||||
playsleepseconds = mytape.timestamp[i + 1] - mytape.timestamp[i]
|
||||
if(playsleepseconds > 14)
|
||||
sleep(10)
|
||||
T = get_turf(src)
|
||||
T.visible_message("<font color=Maroon><B>Tape Recorder</B>: Skipping [playsleepseconds] seconds of silence</font>")
|
||||
playsleepseconds = 1
|
||||
i++
|
||||
icon_state = "taperecorderidle"
|
||||
|
||||
playing = 0
|
||||
if(emagged == 1.0)
|
||||
var/turf/T = get_turf(src)
|
||||
T.visible_message("<font color=Maroon><B>Tape Recorder</B>: This tape recorder will self-destruct in... Five.</font>")
|
||||
sleep(10)
|
||||
T = get_turf(src)
|
||||
T.visible_message("<font color=Maroon><B>Tape Recorder</B>: Four.</font>")
|
||||
sleep(10)
|
||||
T = get_turf(src)
|
||||
T.visible_message("<font color=Maroon><B>Tape Recorder</B>: Three.</font>")
|
||||
sleep(10)
|
||||
T = get_turf(src)
|
||||
T.visible_message("<font color=Maroon><B>Tape Recorder</B>: Two.</font>")
|
||||
sleep(10)
|
||||
T = get_turf(src)
|
||||
T.visible_message("<font color=Maroon><B>Tape Recorder</B>: One.</font>")
|
||||
sleep(10)
|
||||
explode()
|
||||
update_icon()
|
||||
|
||||
|
||||
/obj/item/device/taperecorder/attack_self(mob/user)
|
||||
if(!mytape || mytape.ruined)
|
||||
return
|
||||
if(recording)
|
||||
stop()
|
||||
else
|
||||
record()
|
||||
|
||||
|
||||
/obj/item/device/taperecorder/verb/print_transcript()
|
||||
@@ -194,68 +229,74 @@
|
||||
|
||||
if(usr.stat)
|
||||
return
|
||||
if(emagged == 1)
|
||||
usr << "\red The tape recorder makes a scratchy noise."
|
||||
if(!mytape)
|
||||
return
|
||||
if(!canprint)
|
||||
usr << "<span class='notice'>The recorder can't print that fast!</span>"
|
||||
return
|
||||
if(recording == 1 || playing == 1)
|
||||
usr << "<span class='notice'>You can't print the transcript while playing or recording!</span>"
|
||||
if(recording || playing)
|
||||
return
|
||||
|
||||
usr << "<span class='notice'>Transcript printed.</span>"
|
||||
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(get_turf(src))
|
||||
var/t1 = "<B>Transcript:</B><BR><BR>"
|
||||
for(var/i=1,storedinfo.len >= i,i++)
|
||||
t1 += "[storedinfo[i]]<BR>"
|
||||
for(var/i = 1, mytape.storedinfo.len >= i, i++)
|
||||
t1 += "[mytape.storedinfo[i]]<BR>"
|
||||
P.info = t1
|
||||
P.name = "paper- 'Transcript'"
|
||||
usr.put_in_hands(P)
|
||||
canprint = 0
|
||||
sleep(300)
|
||||
canprint = 1
|
||||
|
||||
|
||||
/obj/item/device/taperecorder/attack_self(mob/user)
|
||||
if(recording == 0 && playing == 0)
|
||||
if(usr.stat)
|
||||
return
|
||||
if(emagged == 1)
|
||||
usr << "\red The tape recorder makes a scratchy noise."
|
||||
return
|
||||
icon_state = "taperecorderrecording"
|
||||
if(timerecorded < 3600 && playing == 0)
|
||||
usr << "\blue Recording started."
|
||||
recording = 1
|
||||
timestamp+= timerecorded
|
||||
storedinfo += "\[[time2text(timerecorded*10,"mm:ss")]\] Recording started."
|
||||
for(timerecorded, timerecorded<3600)
|
||||
if(recording == 0)
|
||||
break
|
||||
timerecorded++
|
||||
sleep(10)
|
||||
recording = 0
|
||||
icon_state = "taperecorderidle"
|
||||
return
|
||||
else
|
||||
usr << "\red Either your tape recorder's memory is full, or it is currently playing back its memory."
|
||||
else
|
||||
if(usr.stat)
|
||||
usr << "Not when you're incapacitated."
|
||||
return
|
||||
if(recording == 1)
|
||||
recording = 0
|
||||
timestamp+= timerecorded
|
||||
storedinfo += "\[[time2text(timerecorded*10,"mm:ss")]\] Recording stopped."
|
||||
usr << "\blue Recording stopped."
|
||||
icon_state = "taperecorderidle"
|
||||
return
|
||||
else if(playing == 1)
|
||||
playing = 0
|
||||
var/turf/T = get_turf(src)
|
||||
for(var/mob/O in hearers(world.view-1, T))
|
||||
O.show_message("<font color=Maroon><B>Tape Recorder</B>: Playback stopped.</font>",2)
|
||||
icon_state = "taperecorderidle"
|
||||
return
|
||||
else
|
||||
usr << "\red Stop what?"
|
||||
return
|
||||
//empty tape recorders
|
||||
/obj/item/device/taperecorder/empty/New()
|
||||
wires = new(src)
|
||||
return
|
||||
|
||||
|
||||
/obj/item/device/tape
|
||||
name = "tape"
|
||||
desc = "A magnetic tape that can hold up to ten minutes of content."
|
||||
icon_state = "tape_white"
|
||||
item_state = "analyzer"
|
||||
w_class = 1
|
||||
m_amt = 20
|
||||
g_amt = 5
|
||||
force = 1
|
||||
throwforce = 0
|
||||
var/max_capacity = 600
|
||||
var/used_capacity = 0
|
||||
var/list/storedinfo = list()
|
||||
var/list/timestamp = list()
|
||||
var/ruined = 0
|
||||
|
||||
|
||||
/obj/item/device/tape/attack_self(mob/user)
|
||||
if(!ruined)
|
||||
user << "<span class='notice'>You pull out all the tape!</span>"
|
||||
ruin()
|
||||
|
||||
|
||||
/obj/item/device/tape/proc/ruin()
|
||||
overlays += "ribbonoverlay"
|
||||
ruined = 1
|
||||
|
||||
|
||||
/obj/item/device/tape/proc/fix()
|
||||
overlays -= "ribbonoverlay"
|
||||
ruined = 0
|
||||
|
||||
|
||||
/obj/item/device/tape/attackby(obj/item/I, mob/user)
|
||||
if(ruined && istype(I, /obj/item/weapon/screwdriver))
|
||||
user << "<span class='notice'>You start winding the tape back in.</span>"
|
||||
if(do_after(user, 120))
|
||||
user << "<span class='notice'>You wound the tape back in!</span>"
|
||||
fix()
|
||||
|
||||
|
||||
//Random colour tapes
|
||||
/obj/item/device/tape/random/New()
|
||||
icon_state = "tape_[pick("white", "blue", "red", "yellow", "purple")]"
|
||||
@@ -166,7 +166,7 @@
|
||||
name = "security hailer"
|
||||
desc = "A set of recognizable pre-recorded messages for cyborgs to use when apprehending criminals."
|
||||
icon = 'icons/obj/device.dmi'
|
||||
icon_state = "taperecorderidle"
|
||||
icon_state = "taperecorder_idle"
|
||||
aggressiveness = 1 //Borgs are nicecurity!
|
||||
ignore_maskadjust = 1
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
materials = list("$metal" = 30, "$glass" = 20)
|
||||
build_path = /obj/item/device/analyzer
|
||||
category = list("initial","Tools")
|
||||
|
||||
|
||||
/datum/design/bucket
|
||||
name = "Bucket"
|
||||
id = "bucket"
|
||||
@@ -25,7 +25,7 @@
|
||||
materials = list("$metal" = 50)
|
||||
build_path = /obj/item/weapon/crowbar
|
||||
category = list("initial","Tools")
|
||||
|
||||
|
||||
/datum/design/extinguisher
|
||||
name = "Fire Extinguisher"
|
||||
id = "extinguisher"
|
||||
@@ -49,7 +49,7 @@
|
||||
materials = list("$metal" = 50, "$glass" = 20)
|
||||
build_path = /obj/item/device/multitool
|
||||
category = list("initial","Tools")
|
||||
|
||||
|
||||
/datum/design/screwdriver
|
||||
name = "Screwdriver"
|
||||
id = "screwdriver"
|
||||
@@ -72,8 +72,8 @@
|
||||
build_type = AUTOLATHE
|
||||
materials = list("$metal" = 1750, "$glass" = 400)
|
||||
build_path = /obj/item/clothing/head/welding
|
||||
category = list("initial","Tools")
|
||||
|
||||
category = list("initial","Tools")
|
||||
|
||||
/datum/design/weldingtool
|
||||
name = "Welding Tool"
|
||||
id = "welding_tool"
|
||||
@@ -104,16 +104,16 @@
|
||||
build_type = AUTOLATHE
|
||||
materials = list("$metal" = 50, "$glass" = 50)
|
||||
build_path = /obj/item/weapon/airalarm_electronics
|
||||
category = list("initial", "Electronics")
|
||||
|
||||
category = list("initial", "Electronics")
|
||||
|
||||
/datum/design/airlock_board
|
||||
name = "Airlock Electronics"
|
||||
id = "airlock_board"
|
||||
build_type = AUTOLATHE
|
||||
materials = list("$metal" = 50, "$glass" = 50)
|
||||
build_path = /obj/item/weapon/airlock_electronics
|
||||
category = list("initial", "Electronics")
|
||||
|
||||
category = list("initial", "Electronics")
|
||||
|
||||
/datum/design/console_screen
|
||||
name = "Console Screen"
|
||||
id = "console_screen"
|
||||
@@ -128,7 +128,7 @@
|
||||
build_type = AUTOLATHE
|
||||
materials = list("$metal" = 50, "$glass" = 50)
|
||||
build_path = /obj/item/weapon/firealarm_electronics
|
||||
category = list("initial", "Electronics")
|
||||
category = list("initial", "Electronics")
|
||||
|
||||
/datum/design/igniter
|
||||
name = "Igniter"
|
||||
@@ -137,7 +137,7 @@
|
||||
materials = list("$metal" = 500, "$glass" = 50)
|
||||
build_path = /obj/item/device/assembly/igniter
|
||||
category = list("initial", "Miscellaneous")
|
||||
|
||||
|
||||
/datum/design/infrared_emitter
|
||||
name = "Infrared Emitter"
|
||||
id = "infrared_emitter"
|
||||
@@ -145,15 +145,15 @@
|
||||
materials = list("$metal" = 1000, "$glass" = 500)
|
||||
build_path = /obj/item/device/assembly/infra
|
||||
category = list("initial", "Miscellaneous")
|
||||
|
||||
|
||||
/datum/design/kitchen_knife
|
||||
name = "Kitchen knife"
|
||||
id = "kitchen_knife"
|
||||
build_type = AUTOLATHE
|
||||
materials = list("$metal" = 12000)
|
||||
build_path = /obj/item/weapon/kitchenknife
|
||||
category = list("initial","Miscellaneous")
|
||||
|
||||
category = list("initial","Miscellaneous")
|
||||
|
||||
/datum/design/pipe_painter
|
||||
name = "Pipe Painter"
|
||||
id = "pipe_painter"
|
||||
@@ -161,15 +161,15 @@
|
||||
materials = list("$metal" = 5000, "$glass" = 2000)
|
||||
build_path = /obj/item/device/pipe_painter
|
||||
category = list("initial", "Miscellaneous")
|
||||
|
||||
|
||||
/datum/design/prox_sensor
|
||||
name = "Proximity Sensor"
|
||||
id = "prox_sensor"
|
||||
build_type = AUTOLATHE
|
||||
materials = list("$metal" = 800, "$glass" = 200)
|
||||
build_path = /obj/item/device/assembly/prox_sensor
|
||||
category = list("initial", "Miscellaneous")
|
||||
|
||||
category = list("initial", "Miscellaneous")
|
||||
|
||||
/datum/design/timer
|
||||
name = "Timer"
|
||||
id = "timer"
|
||||
@@ -183,9 +183,17 @@
|
||||
id = "recorder"
|
||||
build_type = AUTOLATHE
|
||||
materials = list("$metal" = 60, "$glass" = 30)
|
||||
build_path = /obj/item/device/taperecorder
|
||||
category = list("initial", "Miscellaneous")
|
||||
|
||||
build_path = /obj/item/device/taperecorder/empty
|
||||
category = list("initial", "Miscellaneous")
|
||||
|
||||
/datum/design/tape
|
||||
name = "Tape"
|
||||
id = "tape"
|
||||
build_type = AUTOLATHE
|
||||
materials = list("$metal" = 20, "$glass" = 5)
|
||||
build_path = /obj/item/device/tape/random
|
||||
category = list("initial", "Miscellaneous")
|
||||
|
||||
/datum/design/voice_analyser
|
||||
name = "Voice Analyser"
|
||||
id = "voice_analyser"
|
||||
@@ -200,8 +208,8 @@
|
||||
build_type = AUTOLATHE
|
||||
materials = list("$metal" = 400, "$glass" = 250)
|
||||
build_path = /obj/item/weapon/camera_assembly
|
||||
category = list("initial", "Construction")
|
||||
|
||||
category = list("initial", "Construction")
|
||||
|
||||
/datum/design/glass
|
||||
name = "Glass"
|
||||
id = "glass"
|
||||
@@ -216,16 +224,16 @@
|
||||
build_type = AUTOLATHE
|
||||
materials = list("$metal" = 60, "$glass" = 100)
|
||||
build_path = /obj/item/weapon/light/bulb
|
||||
category = list("initial", "Construction")
|
||||
|
||||
category = list("initial", "Construction")
|
||||
|
||||
/datum/design/light_tube
|
||||
name = "Light Tube"
|
||||
id = "light_tube"
|
||||
build_type = AUTOLATHE
|
||||
materials = list("$metal" = 60, "$glass" = 100)
|
||||
build_path = /obj/item/weapon/light/tube
|
||||
category = list("initial", "Construction")
|
||||
|
||||
category = list("initial", "Construction")
|
||||
|
||||
/datum/design/metal
|
||||
name = "Metal"
|
||||
id = "metal"
|
||||
@@ -233,7 +241,7 @@
|
||||
materials = list("$metal" = 3750)
|
||||
build_path = /obj/item/stack/sheet/metal
|
||||
category = list("initial","Construction")
|
||||
|
||||
|
||||
/datum/design/newscaster_frame
|
||||
name = "Newscaster Frame"
|
||||
id = "newscaster_frame"
|
||||
@@ -248,8 +256,8 @@
|
||||
build_type = AUTOLATHE
|
||||
materials = list("$metal" = 16000, "$glass"=8000)
|
||||
build_path = /obj/item/weapon/rcd_ammo
|
||||
category = list("initial","Construction")
|
||||
|
||||
category = list("initial","Construction")
|
||||
|
||||
/datum/design/rglass
|
||||
name = "Reinforced Glass"
|
||||
id = "rglass"
|
||||
@@ -265,7 +273,7 @@
|
||||
materials = list("$metal" = 1875)
|
||||
build_path = /obj/item/stack/rods
|
||||
category = list("initial","Construction")
|
||||
|
||||
|
||||
/datum/design/beaker
|
||||
name = "Beaker"
|
||||
id = "beaker"
|
||||
@@ -280,16 +288,16 @@
|
||||
build_type = AUTOLATHE
|
||||
materials = list("$metal" = 2500, "$glass" = 750)
|
||||
build_path = /obj/item/weapon/cautery
|
||||
category = list("initial", "Medical")
|
||||
|
||||
category = list("initial", "Medical")
|
||||
|
||||
/datum/design/circular_saw
|
||||
name = "Circular Saw"
|
||||
id = "circular_saw"
|
||||
build_type = AUTOLATHE
|
||||
materials = list("$metal" = 10000, "$glass" = 6000)
|
||||
build_path = /obj/item/weapon/circular_saw
|
||||
category = list("initial", "Medical")
|
||||
|
||||
category = list("initial", "Medical")
|
||||
|
||||
/datum/design/hemostat
|
||||
name = "Hemostat"
|
||||
id = "hemostat"
|
||||
@@ -297,7 +305,7 @@
|
||||
materials = list("$metal" = 5000, "$glass" = 2500)
|
||||
build_path = /obj/item/weapon/hemostat
|
||||
category = list("initial", "Medical")
|
||||
|
||||
|
||||
/datum/design/large_beaker
|
||||
name = "Large Beaker"
|
||||
id = "large_beaker"
|
||||
@@ -313,7 +321,7 @@
|
||||
materials = list("$metal" = 6000, "$glass" = 3000)
|
||||
build_path = /obj/item/weapon/retractor
|
||||
category = list("initial", "Medical")
|
||||
|
||||
|
||||
/datum/design/scalpel
|
||||
name = "Scalpel"
|
||||
id = "scalpel"
|
||||
@@ -329,7 +337,7 @@
|
||||
materials = list("$metal" = 10000, "$glass" = 6000)
|
||||
build_path = /obj/item/weapon/surgicaldrill
|
||||
category = list("initial", "Medical")
|
||||
|
||||
|
||||
/datum/design/syringe
|
||||
name = "Syringe"
|
||||
id = "syringe"
|
||||
@@ -360,8 +368,8 @@
|
||||
build_type = AUTOLATHE
|
||||
materials = list("$metal" = 75)
|
||||
build_path = /obj/item/device/radio/headset
|
||||
category = list("initial", "Communication")
|
||||
|
||||
category = list("initial", "Communication")
|
||||
|
||||
/datum/design/signaler
|
||||
name = "Remote Signaling Device"
|
||||
id = "signaler"
|
||||
@@ -401,8 +409,8 @@
|
||||
build_type = AUTOLATHE
|
||||
materials = list("$metal" = 30000)
|
||||
build_path = /obj/item/ammo_box/c9mm
|
||||
category = list("hacked", "Security")
|
||||
|
||||
category = list("hacked", "Security")
|
||||
|
||||
/datum/design/c10mm
|
||||
name = "Ammo Box (10mm)"
|
||||
id = "c10mm"
|
||||
@@ -410,7 +418,7 @@
|
||||
materials = list("$metal" = 30000)
|
||||
build_path = /obj/item/ammo_box/c10mm
|
||||
category = list("hacked", "Security")
|
||||
|
||||
|
||||
/datum/design/buckshot_shell
|
||||
name = "Buckshot Shell"
|
||||
id = "buckshot_shell"
|
||||
@@ -418,7 +426,7 @@
|
||||
materials = list("$metal" = 4000)
|
||||
build_path = /obj/item/ammo_casing/shotgun/buckshot
|
||||
category = list("hacked", "Security")
|
||||
|
||||
|
||||
/datum/design/electropack
|
||||
name = "Electropack"
|
||||
id = "electropack"
|
||||
@@ -426,7 +434,7 @@
|
||||
materials = list("$metal" = 10000, "$glass" = 2500)
|
||||
build_path = /obj/item/device/radio/electropack
|
||||
category = list("hacked", "Tools")
|
||||
|
||||
|
||||
/datum/design/flamethrower
|
||||
name = "Flamethrower"
|
||||
id = "flamethrower"
|
||||
@@ -434,7 +442,7 @@
|
||||
materials = list("$metal" = 500)
|
||||
build_path = /obj/item/weapon/flamethrower/full
|
||||
category = list("hacked", "Security")
|
||||
|
||||
|
||||
/datum/design/handcuffs
|
||||
name = "Handcuffs"
|
||||
id = "handcuffs"
|
||||
@@ -442,7 +450,7 @@
|
||||
materials = list("$metal" = 500)
|
||||
build_path = /obj/item/weapon/restraints/handcuffs
|
||||
category = list("hacked", "Security")
|
||||
|
||||
|
||||
/datum/design/incendiary_slug
|
||||
name = "Incendiary Slug"
|
||||
id = "incendiary_slug"
|
||||
@@ -457,8 +465,8 @@
|
||||
build_type = AUTOLATHE
|
||||
materials = list("$metal" = 70, "$glass" = 60)
|
||||
build_path = /obj/item/weapon/weldingtool/largetank
|
||||
category = list("hacked", "Tools")
|
||||
|
||||
category = list("hacked", "Tools")
|
||||
|
||||
/datum/design/rcd
|
||||
name = "Rapid Construction Device (RCD)"
|
||||
id = "rcd"
|
||||
@@ -473,8 +481,8 @@
|
||||
build_type = AUTOLATHE
|
||||
materials = list("$metal" = 4000)
|
||||
build_path = /obj/item/ammo_casing/shotgun/dart
|
||||
category = list("hacked", "Security")
|
||||
|
||||
category = list("hacked", "Security")
|
||||
|
||||
/datum/design/shotgun_slug
|
||||
name = "Shotgun Slug"
|
||||
id = "shotgun_slug"
|
||||
@@ -482,4 +490,3 @@
|
||||
materials = list("$metal" = 4000)
|
||||
build_path = /obj/item/ammo_casing/shotgun
|
||||
category = list("hacked", "Security")
|
||||
|
||||
Reference in New Issue
Block a user