/datum/data/pda/utility/flashlight
name = "Enable Flashlight"
icon = "lightbulb-o"
var/fon = 0 //Is the flashlight function on?
var/f_lum = 2 //Luminosity for the flashlight function
/datum/data/pda/utility/flashlight/start()
fon = !fon
name = fon ? "Disable Flashlight" : "Enable Flashlight"
pda.update_shortcuts()
pda.set_light(fon ? f_lum : 0)
if(fon)
pda.overlays += image('icons/obj/pda.dmi', "pda-light")
else
pda.overlays -= image('icons/obj/pda.dmi', "pda-light")
if(!pda.silent)
playsound(pda, 'sound/machines/terminal_select.ogg', 15, TRUE)
/datum/data/pda/utility/honk
name = "Honk Synthesizer"
icon = "smile-o"
category = "Clown"
var/last_honk //Also no honk spamming that's bad too
/datum/data/pda/utility/honk/start()
if(!(last_honk && world.time < last_honk + 20))
playsound(pda.loc, 'sound/items/bikehorn.ogg', 50, 1)
last_honk = world.time
/datum/data/pda/utility/toggle_door
name = "Toggle Door"
icon = "external-link-alt"
var/remote_door_id = ""
/datum/data/pda/utility/toggle_door/start()
for(var/obj/machinery/door/poddoor/M in GLOB.airlocks)
if(M.id_tag == remote_door_id)
if(M.density)
M.open()
else
M.close()
if(!pda.silent)
playsound(pda, 'sound/machines/terminal_select.ogg', 15, TRUE)
/datum/data/pda/utility/scanmode/medical
base_name = "Med Scanner"
icon = "heart-o"
/datum/data/pda/utility/scanmode/medical/scan_mob(mob/living/M, mob/living/user)
user.visible_message("[user] analyzes [M]'s vitals.", "You analyze [M]'s vitals.")
healthscan(user, M, 1)
/datum/data/pda/utility/scanmode/dna
base_name = "DNA Scanner"
icon = "link"
/datum/data/pda/utility/scanmode/dna/scan_mob(mob/living/C as mob, mob/living/user as mob)
var/list/messages = list()
if(ishuman(C))
var/mob/living/carbon/human/H = C
if(!istype(H.dna, /datum/dna))
messages.Add("No fingerprints found on [H]")
else
messages.Add("[H]'s Fingerprints: [md5(H.dna.uni_identity)]")
if(length(messages))
to_chat(user, chat_box_regular(messages.Join("
")))
scan_blood(C, user)
/datum/data/pda/utility/scanmode/dna/scan_atom(atom/A as mob|obj|turf|area, mob/user as mob)
scan_blood(A, user)
/datum/data/pda/utility/scanmode/dna/proc/scan_blood(atom/A, mob/user)
var/list/messages = list()
if(!A.blood_DNA)
messages.Add("No blood found on [A]")
if(A.blood_DNA)
qdel(A.blood_DNA)
else
messages.Add("Blood found on [A]. Analysing...")
spawn(15)
for(var/blood in A.blood_DNA)
messages.Add("Blood type: [A.blood_DNA[blood]]\nDNA: [blood]")
to_chat(user, chat_box_regular(messages.Join("
")))
/datum/data/pda/utility/scanmode/halogen
base_name = "Halogen Counter"
icon = "exclamation-circle"
/datum/data/pda/utility/scanmode/halogen/scan_mob(mob/living/C as mob, mob/living/user as mob)
var/list/messages = list()
C.visible_message("[user] has analyzed [C]'s radiation levels!")
messages.Add("Analyzing Results for [C]:")
if(C.radiation)
messages.Add("Radiation Level: [C.radiation > 0 ? "[C.radiation]" : "0"]")
else
messages.Add("No radiation detected.")
to_chat(user, chat_box_regular(messages.Join("
")))
/datum/data/pda/utility/scanmode/reagent
base_name = "Reagent Scanner"
icon = "flask"
/datum/data/pda/utility/scanmode/reagent/scan_atom(atom/A as mob|obj|turf|area, mob/user as mob)
var/list/messages = list()
if(!isnull(A.reagents))
if(A.reagents.reagent_list.len > 0)
var/reagents_length = A.reagents.reagent_list.len
messages.Add("[reagents_length] chemical agent[reagents_length > 1 ? "s" : ""] found.")
for(var/datum/reagent/R in A.reagents.reagent_list)
if(R.id != "blood")
messages.Add("\t [R]")
else
var/blood_type = R.data["blood_type"]
messages.Add("\t [R] [blood_type]")
else
messages.Add("No active chemical agents found in [A].")
else
messages.Add("No significant chemical agents found in [A].")
to_chat(user, chat_box_regular(messages.Join("
")))
/datum/data/pda/utility/scanmode/gas
base_name = "Gas Scanner"
icon = "tachometer-alt"
/datum/data/pda/utility/scanmode/gas/scan_atom(atom/A as mob|obj|turf|area, mob/user as mob)
if(istype(A, /obj/item/tank))
var/obj/item/tank/T = A
pda.atmosanalyzer_scan(T.air_contents, user, T)
else if(istype(A, /obj/machinery/atmospherics/portable))
var/obj/machinery/atmospherics/portable/T = A
pda.atmosanalyzer_scan(T.air_contents, user, T)
else if(istype(A, /obj/machinery/atmospherics/pipe))
var/obj/machinery/atmospherics/pipe/T = A
pda.atmosanalyzer_scan(T.parent.air, user, T)
else if(istype(A, /obj/machinery/power/rad_collector))
var/obj/machinery/power/rad_collector/T = A
if(T.loaded_tank)
pda.atmosanalyzer_scan(T.loaded_tank.air_contents, user, T)
else if(istype(A, /obj/item/flamethrower))
var/obj/item/flamethrower/T = A
if(T.ptank)
pda.atmosanalyzer_scan(T.ptank.air_contents, user, T)
else if(istype(A, /obj/machinery/atmospherics/portable/scrubber/huge))
var/obj/machinery/atmospherics/portable/scrubber/huge/T = A
pda.atmosanalyzer_scan(T.air_contents, user, T)
else if(istype(A, /obj/machinery/atmospherics/unary/tank))
var/obj/machinery/atmospherics/unary/tank/T = A
pda.atmosanalyzer_scan(T.air_contents, user, T)