mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-12 07:33:34 +01:00
Addresses various things re pda refactor
This commit is contained in:
@@ -121,7 +121,9 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
if(cartridge)
|
||||
prog_list |= cartridge.programs
|
||||
|
||||
for(var/datum/data/pda/P in prog_list)
|
||||
for(var/A in prog_list)
|
||||
var/datum/data/pda/P = A
|
||||
|
||||
if(P.hidden)
|
||||
continue
|
||||
var/list/cat
|
||||
@@ -196,7 +198,8 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
shortcut_cache.Cut()
|
||||
|
||||
/obj/item/device/pda/proc/update_programs()
|
||||
for(var/datum/data/pda/P in programs)
|
||||
for(var/A in programs)
|
||||
var/datum/data/pda/P = A
|
||||
P.pda = src
|
||||
|
||||
/obj/item/device/pda/Topic(href, href_list)
|
||||
@@ -421,10 +424,15 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
|
||||
/obj/item/device/pda/Destroy()
|
||||
PDAs -= src
|
||||
if (src.id)
|
||||
src.id.loc = get_turf(src.loc)
|
||||
if(src.pai)
|
||||
src.pai.loc = get_turf(src.loc)
|
||||
var/T = get_turf(loc)
|
||||
if (id)
|
||||
id.loc = T
|
||||
if(pai)
|
||||
pai.loc = T
|
||||
for(var/A in programs)
|
||||
qdel(A)
|
||||
if(cartridge)
|
||||
cartridge.loc = T
|
||||
return ..()
|
||||
|
||||
// Pass along the pulse to atoms in contents, largely added so pAIs are vulnerable to EMP
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
set name = "Send PDA Message"
|
||||
set src in usr
|
||||
|
||||
if(usr.stat == 2)
|
||||
if(usr.stat == DEAD)
|
||||
usr << "You can't send PDA messages because you are dead!"
|
||||
return
|
||||
var/datum/data/pda/app/messenger/M = find_program(/datum/data/pda/app/messenger)
|
||||
@@ -37,7 +37,7 @@
|
||||
set name = "Show Message Log"
|
||||
set src in usr
|
||||
|
||||
if(usr.stat == 2)
|
||||
if(usr.stat == DEAD)
|
||||
usr << "You can't do that because you are dead!"
|
||||
return
|
||||
var/datum/data/pda/app/messenger/M = find_program(/datum/data/pda/app/messenger)
|
||||
@@ -57,7 +57,7 @@
|
||||
set name = "Toggle Sender/Receiver"
|
||||
set src in usr
|
||||
|
||||
if(usr.stat == 2)
|
||||
if(usr.stat == DEAD)
|
||||
usr << "You can't do that because you are dead!"
|
||||
return
|
||||
var/datum/data/pda/app/messenger/M = find_program(/datum/data/pda/app/messenger)
|
||||
@@ -70,7 +70,7 @@
|
||||
set name = "Toggle Ringer"
|
||||
set src in usr
|
||||
|
||||
if(usr.stat == 2)
|
||||
if(usr.stat == DEAD)
|
||||
usr << "You can't do that because you are dead!"
|
||||
return
|
||||
var/datum/data/pda/app/messenger/M = find_program(/datum/data/pda/app/messenger)
|
||||
|
||||
@@ -17,11 +17,22 @@
|
||||
/obj/item/weapon/cartridge/New()
|
||||
if(ticker && ticker.current_state >= GAME_STATE_SETTING_UP)
|
||||
initialize()
|
||||
|
||||
/obj/item/weapon/cartridge/Destroy()
|
||||
if(radio)
|
||||
qdel(radio)
|
||||
for(var/A in programs)
|
||||
qdel(A)
|
||||
for(var/A in messenger_plugins)
|
||||
qdel(A)
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/cartridge/proc/update_programs(obj/item/device/pda/pda)
|
||||
for(var/datum/data/pda/P in programs)
|
||||
for(var/A in programs)
|
||||
var/datum/data/pda/P = A
|
||||
P.pda = pda
|
||||
for(var/datum/data/pda/messenger_plugin/P in messenger_plugins)
|
||||
for(var/A in messenger_plugins)
|
||||
var/datum/data/pda/messenger_plugin/P = A
|
||||
P.pda = pda
|
||||
|
||||
/obj/item/weapon/cartridge/engineering
|
||||
@@ -117,10 +128,6 @@
|
||||
radio = new /obj/item/radio/integrated/signal(src)
|
||||
..()
|
||||
|
||||
/obj/item/weapon/cartridge/signal/Destroy()
|
||||
qdel(radio)
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/cartridge/signal/toxins
|
||||
name = "Signal Ace 2"
|
||||
desc = "Complete with integrated radio signaler!"
|
||||
|
||||
@@ -128,7 +128,8 @@
|
||||
records["general"] = general_records.fields
|
||||
return records
|
||||
else
|
||||
for(var/datum/data/record/R in sortRecord(data_core.general))
|
||||
for(var/A in sortRecord(data_core.general))
|
||||
var/datum/data/record/R = A
|
||||
records += list(list(Name = R.fields["name"], "ref" = "\ref[R]"))
|
||||
data["recordsList"] = records
|
||||
return null
|
||||
@@ -167,7 +168,8 @@
|
||||
|
||||
/datum/data/pda/app/crew_records/medical/load_records(datum/data/record/R)
|
||||
..(R)
|
||||
for (var/datum/data/record/E in data_core.medical)
|
||||
for(var/A in data_core.medical)
|
||||
var/datum/data/record/E = A
|
||||
if ((E.fields["name"] == R.fields["name"] || E.fields["id"] == R.fields["id"]))
|
||||
medical_records = E
|
||||
break
|
||||
@@ -192,7 +194,8 @@
|
||||
|
||||
/datum/data/pda/app/crew_records/security/load_records(datum/data/record/R)
|
||||
..(R)
|
||||
for (var/datum/data/record/E in data_core.security)
|
||||
for(var/A in data_core.security)
|
||||
var/datum/data/record/E = A
|
||||
if ((E.fields["name"] == R.fields["name"] || E.fields["id"] == R.fields["id"]))
|
||||
security_records = E
|
||||
break
|
||||
|
||||
@@ -32,7 +32,8 @@
|
||||
var/convopdas[0]
|
||||
var/pdas[0]
|
||||
var/count = 0
|
||||
for (var/obj/item/device/pda/P in PDAs)
|
||||
for(var/A in PDAs)
|
||||
var/obj/item/device/pda/P = A
|
||||
var/datum/data/pda/app/messenger/PM = P.find_program(/datum/data/pda/app/messenger)
|
||||
|
||||
if (!P.owner || PM.toff || P == pda || PM.m_hidden)
|
||||
@@ -60,7 +61,8 @@
|
||||
|
||||
var/list/plugins = list()
|
||||
if(pda.cartridge)
|
||||
for(var/datum/data/pda/messenger_plugin/P in pda.cartridge.messenger_plugins)
|
||||
for(var/A in pda.cartridge.messenger_plugins)
|
||||
var/datum/data/pda/messenger_plugin/P = A
|
||||
plugins += list(list(name = P.name, icon = P.icon, ref = "\ref[P]"))
|
||||
data["plugins"] = plugins
|
||||
|
||||
@@ -172,7 +174,8 @@
|
||||
//var/telecomms_intact = telecomms_process(P.owner, owner, t)
|
||||
var/obj/machinery/message_server/useMS = null
|
||||
if(message_servers)
|
||||
for (var/obj/machinery/message_server/MS in message_servers)
|
||||
for(var/A in message_servers)
|
||||
var/obj/machinery/message_server/MS = A
|
||||
//PDAs are now dependent on the Message Server.
|
||||
if(MS.active)
|
||||
useMS = MS
|
||||
@@ -198,28 +201,12 @@
|
||||
useMS.send_pda_message("[P.owner]","[pda.owner]","[t]")
|
||||
tnote.Add(list(list("sent" = 1, "owner" = "[P.owner]", "job" = "[P.ownjob]", "message" = "[t]", "target" = "\ref[P]")))
|
||||
PM.tnote.Add(list(list("sent" = 0, "owner" = "[pda.owner]", "job" = "[pda.ownjob]", "message" = "[t]", "target" = "\ref[pda]")))
|
||||
/* for(var/mob/M in player_list)
|
||||
if(M.stat == DEAD && M.client && (M.client.prefs.toggles & CHAT_GHOSTEARS)) // src.client is so that ghosts don't have to listen to mice
|
||||
if(istype(M, /mob/new_player))
|
||||
continue
|
||||
M.show_message("<span class='game say'>PDA Message - <span class='name'>[owner]</span> -> <span class='name'>[P.owner]</span>: <span class='message'>[t]</span></span>") */
|
||||
pda.investigate_log("<span class='game say'>PDA Message - <span class='name'>[U.key] - [pda.owner]</span> -> <span class='name'>[P.owner]</span>: <span class='message'>[t]</span></span>", "pda")
|
||||
if(!conversations.Find("\ref[P]"))
|
||||
conversations.Add("\ref[P]")
|
||||
if(!PM.conversations.Find("\ref[pda]"))
|
||||
PM.conversations.Add("\ref[pda]")
|
||||
|
||||
/*
|
||||
if (prob(15)) //Give the AI a chance of intercepting the message
|
||||
var/who = src.owner
|
||||
if(prob(50))
|
||||
who = P.owner
|
||||
for(var/mob/living/silicon/ai/ai in mob_list)
|
||||
// Allows other AIs to intercept the message but the AI won't intercept their own message.
|
||||
if(ai.aiPDA != P && ai.aiPDA != src)
|
||||
ai.show_message("<i>Intercepted message from <b>[who]</b>: [t]</i>")
|
||||
*/
|
||||
|
||||
PM.play_ringtone()
|
||||
//Search for holder of the PDA.
|
||||
var/mob/living/L = null
|
||||
@@ -249,7 +236,7 @@
|
||||
else
|
||||
S = 'sound/machines/twobeep.ogg'
|
||||
playsound(pda.loc, S, 50, 1)
|
||||
for (var/mob/O in hearers(3, pda.loc))
|
||||
for(var/mob/O in hearers(3, pda.loc))
|
||||
if(!silent)
|
||||
O.show_message(text("\icon[pda] *[pda.ttone]*"))
|
||||
|
||||
@@ -262,7 +249,8 @@
|
||||
usr << "Turn on your receiver in order to send messages."
|
||||
return
|
||||
|
||||
for (var/obj/item/device/pda/P in PDAs)
|
||||
for(var/A in PDAs)
|
||||
var/obj/item/device/pda/P = A
|
||||
var/datum/data/pda/app/messenger/PM = P.find_program(/datum/data/pda/app/messenger)
|
||||
|
||||
if(!P.owner || !PM || PM.hidden || P == pda || PM.toff)
|
||||
|
||||
@@ -177,7 +177,7 @@
|
||||
icon = 'icons/obj/pda.dmi'
|
||||
icon_state = "pdabox"
|
||||
|
||||
New()
|
||||
/obj/item/weapon/storage/box/PDAs/New()
|
||||
..()
|
||||
new /obj/item/device/pda(src)
|
||||
new /obj/item/device/pda(src)
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
var/remote_door_id = ""
|
||||
|
||||
/datum/data/pda/utility/toggle_door/start()
|
||||
for(var/obj/machinery/door/poddoor/M in world)
|
||||
for(var/obj/machinery/door/poddoor/M in airlocks)
|
||||
if(M.id_tag == remote_door_id)
|
||||
if(M.density)
|
||||
M.open()
|
||||
@@ -41,8 +41,7 @@
|
||||
icon = "heart-o"
|
||||
|
||||
/datum/data/pda/utility/scanmode/medical/scan_mob(mob/living/C as mob, mob/living/user as mob)
|
||||
for (var/mob/O in viewers(C, null))
|
||||
O.show_message("<span class=warning>[user] has analyzed [C]'s vitals!</span>", 1)
|
||||
C.visible_message("<span class=warning>[user] has analyzed [C]'s vitals!</span>")
|
||||
|
||||
user.show_message("<span class=notice>Analyzing Results for [C]:</span>")
|
||||
user.show_message("<span class=notice>\t Overall Status: [C.stat > 1 ? "dead" : "[C.health - C.halloss]% healthy"]</span>", 1)
|
||||
@@ -66,27 +65,34 @@
|
||||
icon = "link"
|
||||
|
||||
/datum/data/pda/utility/scanmode/dna/scan_mob(mob/living/C as mob, mob/living/user as mob)
|
||||
if (!istype(C:dna, /datum/dna))
|
||||
user << "<span class=notice>No fingerprints found on [C]</span>"
|
||||
if(istype(C, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = C
|
||||
if (!istype(H.dna, /datum/dna))
|
||||
user << "<span class=notice>No fingerprints found on [H]</span>"
|
||||
else
|
||||
user << "<span class=notice>[H]'s Fingerprints: [md5(H.dna.uni_identity)]</span>"
|
||||
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)
|
||||
if (!A.blood_DNA)
|
||||
user << "<span class=notice>No blood found on [A]</span>"
|
||||
if(A.blood_DNA)
|
||||
qdel(A.blood_DNA)
|
||||
else
|
||||
user << "<span class=notice>[C]'s Fingerprints: [md5(C:dna.uni_identity)]</span>"
|
||||
if (!C:blood_DNA)
|
||||
user << "<span class=notice>No blood found on [C]</span>"
|
||||
if(C:blood_DNA)
|
||||
qdel(C:blood_DNA)
|
||||
else
|
||||
user << "<span class=notice>Blood found on [C]. Analysing...</span>"
|
||||
user << "<span class=notice>Blood found on [A]. Analysing...</span>"
|
||||
spawn(15)
|
||||
for(var/blood in C:blood_DNA)
|
||||
user << "<span class=notice>Blood type: [C:blood_DNA[blood]]\nDNA: [blood]</span>"
|
||||
for(var/blood in A.blood_DNA)
|
||||
user << "<span class=notice>Blood type: [A.blood_DNA[blood]]\nDNA: [blood]</span>"
|
||||
|
||||
/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)
|
||||
for (var/mob/O in viewers(C, null))
|
||||
O.show_message("<span class=warning>[user] has analyzed [C]'s radiation levels!</span>", 1)
|
||||
C.visible_message("<span class=warning>[user] has analyzed [C]'s radiation levels!</span>")
|
||||
|
||||
user.show_message("<span class=notice>Analyzing Results for [C]:</span>")
|
||||
if(C.radiation)
|
||||
@@ -103,7 +109,7 @@
|
||||
if(A.reagents.reagent_list.len > 0)
|
||||
var/reagents_length = A.reagents.reagent_list.len
|
||||
user << "<span class='notice'>[reagents_length] chemical agent[reagents_length > 1 ? "s" : ""] found.</span>"
|
||||
for (var/re in A.reagents.reagent_list)
|
||||
for(var/re in A.reagents.reagent_list)
|
||||
user << "<span class='notice'>\t [re]</span>"
|
||||
else
|
||||
user << "<span class='notice'>No active chemical agents found in [A].</span>"
|
||||
@@ -138,7 +144,7 @@
|
||||
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)
|
||||
|
||||
|
||||
/datum/data/pda/utility/scanmode/notes
|
||||
base_name = "Note Scanner"
|
||||
icon = "clipboard"
|
||||
@@ -151,7 +157,7 @@
|
||||
/datum/data/pda/utility/scanmode/notes/scan_atom(atom/A as mob|obj|turf|area, mob/user as mob)
|
||||
if(notes && istype(A, /obj/item/weapon/paper))
|
||||
var/obj/item/weapon/paper/P = A
|
||||
|
||||
|
||||
// JMO 20140705: Makes scanned document show up properly in the notes. Not pretty for formatted documents,
|
||||
// as this will clobber the HTML, but at least it lets you scan a document. You can restore the original
|
||||
// notes by editing the note again. (Was going to allow you to edit, but scanned documents are too long.)
|
||||
|
||||
Reference in New Issue
Block a user