You can now stick IDs in PDAs.

If you look at your PDA window, there should be an option to stick an ID in, like with some computers.
  While carrying an ID, a PDA can be used for almost everything an ID can.
    While ID scanners can read cards through a PDA, it is difficult to shove a PDA into the ID slot on some computers.
    It is possible I missed some functions, but I was quite thorough in my sweep through the code.
    In the event of PDA destruction, any inserted ID is ejected unharmed.

It is now possible to stick PDAs in your jumpsuit's ID slot.
  Since PDAs are named, you can disguise yourself as someone else using one.
  Beepsky/ED-209 can see through a PDA disguise if you stick your real ID in for access.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@592 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
n3ophyt3@gmail.com
2010-12-12 04:37:39 +00:00
parent c9cd0f6c61
commit 1b4d6517c7
29 changed files with 174 additions and 47 deletions

View File

@@ -226,7 +226,7 @@
else if (src.menu == 4) else if (src.menu == 4)
var/obj/item/weapon/card/id/C = usr.equipped() var/obj/item/weapon/card/id/C = usr.equipped()
if (istype(C)) if (istype(C)||istype(C, /obj/item/device/pda))
if(src.check_access(C)) if(src.check_access(C))
src.records.Remove(src.active_record) src.records.Remove(src.active_record)
del(src.active_record) del(src.active_record)
@@ -568,7 +568,7 @@
//Let's unlock this early I guess. Might be too early, needs tweaking. //Let's unlock this early I guess. Might be too early, needs tweaking.
/obj/machinery/clonepod/attackby(obj/item/weapon/W as obj, mob/user as mob) /obj/machinery/clonepod/attackby(obj/item/weapon/W as obj, mob/user as mob)
if (istype(W, /obj/item/weapon/card/id)) if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
if (!src.check_access(W)) if (!src.check_access(W))
user << "\red Access Denied." user << "\red Access Denied."
return return

View File

@@ -74,11 +74,16 @@
else if(istype(M, /mob/living/carbon/monkey) || istype(M, /mob/living/carbon/alien/humanoid)) else if(istype(M, /mob/living/carbon/monkey) || istype(M, /mob/living/carbon/alien/humanoid))
var/mob/living/carbon/george = M var/mob/living/carbon/george = M
//they can only hold things :( //they can only hold things :(
if(george.equipped() && istype(george.equipped(), /obj/item/weapon/card/id) && src.check_access(george.equipped())) if(george.equipped() && (istype(george.equipped(), /obj/item/weapon/card/id) || istype(george.equipped(), /obj/item/device/pda)) && src.check_access(george.equipped()))
return 1 return 1
return 0 return 0
/obj/proc/check_access(obj/item/weapon/card/id/I) /obj/proc/check_access(obj/item/weapon/card/id/I)
if (istype(I, /obj/item/device/pda))
var/obj/item/device/pda/pda = I
I = pda.id
if(!src.req_access) //no requirements if(!src.req_access) //no requirements
return 1 return 1
if(!istype(src.req_access, /list)) //something's very wrong if(!istype(src.req_access, /list)) //something's very wrong

View File

@@ -607,11 +607,15 @@
//src.equip_if_possible(new /obj/item/device/radio/signaler(src), slot_belt) //src.equip_if_possible(new /obj/item/device/radio/signaler(src), slot_belt)
src.equip_if_possible(new /obj/item/device/pda(src), slot_belt) src.equip_if_possible(new /obj/item/device/pda(src), slot_belt)
if (istype(src.belt, /obj/item/device/pda)) if (istype(src.belt, /obj/item/device/pda))
src.belt:owner = src.real_name var/obj/item/device/pda/pda = src.belt
src.belt.name = "PDA-[src.real_name]" pda.owner = src.real_name
pda.ownjob = src.wear_id.assignment
pda.name = "PDA-[src.real_name]"
if (istype(src.r_store, /obj/item/device/pda)) //damned mime PDAs not starting in belt slot if (istype(src.r_store, /obj/item/device/pda)) //damned mime PDAs not starting in belt slot
src.r_store:owner = src.real_name var/obj/item/device/pda/pda = src.r_store
src.r_store.name = "PDA-[src.real_name]" pda.owner = src.real_name
pda.ownjob = src.wear_id.assignment
pda.name = "PDA-[src.real_name]"
/client/proc/mimewall() /client/proc/mimewall()
set category = "Mime" set category = "Mime"

View File

@@ -268,7 +268,7 @@
O.show_message(text("\red [] has []activated []!", user, (stat&BROKEN) ? "de" : "re", src), 1) O.show_message(text("\red [] has []activated []!", user, (stat&BROKEN) ? "de" : "re", src), 1)
return return
else if (istype(W, /obj/item/weapon/card/id))// trying to unlock the interface with an ID card else if (istype(W, /obj/item/weapon/card/id) || istype(W, /obj/item/device/pda))// trying to unlock the interface with an ID card
if(stat & (NOPOWER|BROKEN)) if(stat & (NOPOWER|BROKEN))
user << "It does nothing" user << "It does nothing"
else else

View File

@@ -101,7 +101,7 @@ text("<A href='?src=\ref[src];operation=oddbutton'>[src.oddbutton ? "Yes" : "No"
src.path = new() src.path = new()
/obj/machinery/bot/cleanbot/attackby(obj/item/weapon/W, mob/user as mob) /obj/machinery/bot/cleanbot/attackby(obj/item/weapon/W, mob/user as mob)
if (istype(W, /obj/item/weapon/card/id)) if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
if(src.allowed(usr)) if(src.allowed(usr))
src.locked = !src.locked src.locked = !src.locked
user << "You [ src.locked ? "lock" : "unlock"] the [src] behaviour controls." user << "You [ src.locked ? "lock" : "unlock"] the [src] behaviour controls."

View File

@@ -172,7 +172,7 @@ Auto Patrol: []"},
src.on = 1 src.on = 1
src.icon_state = "ed209[src.on]" src.icon_state = "ed209[src.on]"
mode = SECBOT_IDLE mode = SECBOT_IDLE
else if (istype(W, /obj/item/weapon/card/id)) else if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
if (src.allowed(user)) if (src.allowed(user))
src.locked = !src.locked src.locked = !src.locked
user << "Controls are now [src.locked ? "locked." : "unlocked."]" user << "Controls are now [src.locked ? "locked." : "unlocked."]"
@@ -649,8 +649,16 @@ Auto Patrol: []"},
if (src.check_records) if (src.check_records)
for (var/datum/data/record/E in data_core.general) for (var/datum/data/record/E in data_core.general)
var/perpname = perp.name var/perpname = perp.name
if (perp:wear_id && perp:wear_id.registered) if (perp:wear_id)
perpname = perp.wear_id.registered var/obj/item/weapon/card/id/id = perp:wear_id
if(istype(perp:wear_id, /obj/item/device/pda))
var/obj/item/device/pda/pda = perp:wear_id
id = pda.id
if (id)
perpname = id.registered
else
var/obj/item/device/pda/pda = perp:wear_id
perpname = pda.owner
if (E.fields["name"] == perpname) if (E.fields["name"] == perpname)
for (var/datum/data/record/R in data_core.security) for (var/datum/data/record/R in data_core.security)
if ((R.fields["id"] == E.fields["id"]) && (R.fields["criminal"] == "*Arrest*")) if ((R.fields["id"] == E.fields["id"]) && (R.fields["criminal"] == "*Arrest*"))

View File

@@ -91,7 +91,7 @@
del(T) del(T)
user << "\red You load [loaded] tiles into the floorbot. He now contains [src.amount] tiles!" user << "\red You load [loaded] tiles into the floorbot. He now contains [src.amount] tiles!"
src.updateicon() src.updateicon()
if(istype(W, /obj/item/weapon/card/id)) if(istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
if(src.allowed(usr)) if(src.allowed(usr))
src.locked = !src.locked src.locked = !src.locked
user << "You [src.locked ? "lock" : "unlock"] the [src] behaviour controls." user << "You [src.locked ? "lock" : "unlock"] the [src] behaviour controls."

View File

@@ -182,7 +182,7 @@
src.on = 1 src.on = 1
src.icon_state = "medibot[src.on]" src.icon_state = "medibot[src.on]"
else if (istype(W, /obj/item/weapon/card/id)) else if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
if (src.allowed(user)) if (src.allowed(user))
src.locked = !src.locked src.locked = !src.locked
user << "Controls are now [src.locked ? "locked." : "unlocked."]" user << "Controls are now [src.locked ? "locked." : "unlocked."]"

View File

@@ -172,7 +172,7 @@ Auto Patrol: []"},
src.on = 1 src.on = 1
src.icon_state = "secbot[src.on]" src.icon_state = "secbot[src.on]"
mode = SECBOT_IDLE mode = SECBOT_IDLE
else if (istype(W, /obj/item/weapon/card/id)) else if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
if (src.allowed(user)) if (src.allowed(user))
src.locked = !src.locked src.locked = !src.locked
user << "Controls are now [src.locked ? "locked." : "unlocked."]" user << "Controls are now [src.locked ? "locked." : "unlocked."]"
@@ -621,8 +621,16 @@ Auto Patrol: []"},
if (src.check_records) if (src.check_records)
for (var/datum/data/record/E in data_core.general) for (var/datum/data/record/E in data_core.general)
var/perpname = perp.name var/perpname = perp.name
if (perp:wear_id && perp:wear_id.registered) if (perp:wear_id)
perpname = perp.wear_id.registered var/obj/item/weapon/card/id/id = perp:wear_id
if(istype(perp:wear_id, /obj/item/device/pda))
var/obj/item/device/pda/pda = perp:wear_id
id = pda.id
if (id)
perpname = id.registered
else
var/obj/item/device/pda/pda = perp:wear_id
perpname = pda.owner
if (E.fields["name"] == perpname) if (E.fields["name"] == perpname)
for (var/datum/data/record/R in data_core.security) for (var/datum/data/record/R in data_core.security)
if ((R.fields["id"] == E.fields["id"]) && (R.fields["criminal"] == "*Arrest*")) if ((R.fields["id"] == E.fields["id"]) && (R.fields["criminal"] == "*Arrest*"))

View File

@@ -19,6 +19,9 @@
if("login") if("login")
var/mob/M = usr var/mob/M = usr
var/obj/item/weapon/card/id/I = M.equipped() var/obj/item/weapon/card/id/I = M.equipped()
if (istype(I, /obj/item/device/pda))
var/obj/item/device/pda/pda = I
I = pda.id
if (I && istype(I)) if (I && istype(I))
if(src.check_access(I)) if(src.check_access(I))
authenticated = 1 authenticated = 1

View File

@@ -137,6 +137,9 @@
else if (href_list["eject2"]) else if (href_list["eject2"])
var/obj/item/weapon/card/id/I = usr.equipped() var/obj/item/weapon/card/id/I = usr.equipped()
if (istype(I, /obj/item/device/pda))
var/obj/item/device/pda/pda = I
I = pda.id
if (istype(I)) if (istype(I))
if(src.check_access(I)) if(src.check_access(I))
if (!status) if (!status)

View File

@@ -5,8 +5,10 @@
return return
if (istype(W, /obj/item/weapon/card/id)) if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
if (istype(W, /obj/item/device/pda))
var/obj/item/device/pda/pda = W
W = pda.id
if (!W:access) //no access if (!W:access) //no access
user << "The access level of [W:registered]\'s card is not high enough. " user << "The access level of [W:registered]\'s card is not high enough. "
return return

View File

@@ -63,9 +63,12 @@
return return
if (href_list["login"]) if (href_list["login"])
var/obj/item/I var/obj/item/I = usr.equipped()
if (istype(usr.l_hand, /obj/item/weapon/card/id)) I = usr.l_hand if (istype(I, /obj/item/device/pda))
if (istype(usr.r_hand, /obj/item/weapon/card/id)) I = usr.r_hand var/obj/item/device/pda/pda = I
I = pda.id
// if (istype(usr.l_hand, /obj/item/weapon/card/id)) I = usr.l_hand
// if (istype(usr.r_hand, /obj/item/weapon/card/id)) I = usr.r_hand
if (I && src.check_access(I)) if (I && src.check_access(I))
src.locked = 0 src.locked = 0
src.last_configurator = I:registered src.last_configurator = I:registered

View File

@@ -111,7 +111,7 @@
updateicon() updateicon()
else if (istype(I, /obj/item/weapon/card/id)) else if (istype(I, /obj/item/weapon/card/id)||istype(I, /obj/item/device/pda))
if(open) if(open)
if (src.allowed(user)) if (src.allowed(user))
src.locked = !src.locked src.locked = !src.locked

View File

@@ -674,7 +674,7 @@ However people seem to like it for some reason.
user << "You cut the emitter free from the floor." user << "You cut the emitter free from the floor."
return return
if(istype(W, /obj/item/weapon/card/id)) if(istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
if (src.allowed(user)) if (src.allowed(user))
src.locked = !src.locked src.locked = !src.locked
user << "Controls are now [src.locked ? "locked." : "unlocked."]" user << "Controls are now [src.locked ? "locked." : "unlocked."]"
@@ -1218,7 +1218,7 @@ However people seem to like it for some reason.
user << "You cut the field generator free from the floor." user << "You cut the field generator free from the floor."
return return
if(istype(W, /obj/item/weapon/card/id)) if(istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
if (src.allowed(user)) if (src.allowed(user))
src.locked = !src.locked src.locked = !src.locked
user << "Controls are now [src.locked ? "locked." : "unlocked."]" user << "Controls are now [src.locked ? "locked." : "unlocked."]"

View File

@@ -497,7 +497,7 @@
/obj/mecha/attackby(obj/item/weapon/W as obj, mob/user as mob) /obj/mecha/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/card/id)) if(istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
if(src.internals_access_allowed(usr)) if(src.internals_access_allowed(usr))
if(state==0) if(state==0)
state = 1 state = 1

View File

@@ -16,7 +16,10 @@
src.MouseDrop_T(W:affecting, user) //act like they were dragged onto the closet src.MouseDrop_T(W:affecting, user) //act like they were dragged onto the closet
user.drop_item() user.drop_item()
if (W) W.loc = src.loc if (W) W.loc = src.loc
else if (istype(W, /obj/item/weapon/card/id)) else if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
if(istype(W, /obj/item/device/pda))
var/obj/item/device/pda/pda = W
W = pda.id
if(src.broken) if(src.broken)
user << "\red It appears to be broken." user << "\red It appears to be broken."
return return

View File

@@ -34,6 +34,8 @@
var/obj/item/weapon/integrated_uplink/uplink = null var/obj/item/weapon/integrated_uplink/uplink = null
var/message1 // used for status_displays var/message1 // used for status_displays
var/message2 var/message2
var/obj/item/weapon/card/id/id = null //Making it possible to slot an ID card into the PDA so it can function as both.
var/ownjob = null //related to above
/obj/item/device/pda/medical /obj/item/device/pda/medical
default_cartridge = /obj/item/weapon/cartridge/medical default_cartridge = /obj/item/weapon/cartridge/medical
@@ -494,7 +496,9 @@
switch (src.mode) switch (src.mode)
if (0) if (0)
dat += "<h2>PERSONAL DATA ASSISTANT</h2>" dat += "<h2>PERSONAL DATA ASSISTANT</h2>"
dat += "Owner: [src.owner]<br><br>" dat += "Owner: [src.owner], [src.ownjob]<br>"
dat += text("ID: <A href='?src=\ref[];auth=1'>[]</A>", src, (src.id ? "[src.id.registered], [src.id.assignment]" : "----------"))
dat += "<br><br>"
dat += "<h4>General Functions</h4>" dat += "<h4>General Functions</h4>"
dat += "<ul>" dat += "<ul>"
@@ -1051,6 +1055,25 @@ Code:
src.add_fingerprint(usr) src.add_fingerprint(usr)
usr.machine = src usr.machine = src
if (href_list["auth"])
if (src.id)
if (istype(src.loc, /mob))
var/obj/item/W = src.loc:equipped()
var/emptyHand = (W == null)
if(emptyHand)
src.id.DblClick()
// src.id.loc = src.loc
// else if (istype(src.loc, /turf)) src.id.loc = src.loc
else src.id.loc = src.loc
src.id = null
else
var/obj/item/I = usr.equipped()
if (istype(I, /obj/item/weapon/card/id))
usr.drop_item()
I.loc = src
src.id = I
if (href_list["mm"]) if (href_list["mm"])
src.mode = 0 src.mode = 0
@@ -1396,6 +1419,7 @@ Code:
else if (istype(C, /obj/item/weapon/card/id) && !src.owner && C:registered) else if (istype(C, /obj/item/weapon/card/id) && !src.owner && C:registered)
src.owner = C:registered src.owner = C:registered
src.ownjob = C:assignment
src.name = "PDA-[src.owner]" src.name = "PDA-[src.owner]"
user << "\blue Card scanned." user << "\blue Card scanned."
src.updateUsrDialog() src.updateUsrDialog()
@@ -1474,6 +1498,13 @@ Code:
del(src) del(src)
return return
/obj/item/device/pda/Del()
if (src.id)
if(istype(src.loc, /mob))
src.id.loc = src.loc.loc
else src.id.loc = src.loc
..()
/obj/item/device/pda/clown/HasEntered(AM as mob|obj) //Clown PDA is slippery. /obj/item/device/pda/clown/HasEntered(AM as mob|obj) //Clown PDA is slippery.
if (istype(AM, /mob/living/carbon)) if (istype(AM, /mob/living/carbon))
var/mob/M = AM var/mob/M = AM

View File

@@ -147,7 +147,13 @@ Frequency:
if (istype(M, /mob/living/carbon)) if (istype(M, /mob/living/carbon))
if (M:wear_id) if (M:wear_id)
eqjobname = M:wear_id:assignment var/obj/item/weapon/card/id/id
if (istype(M:wear_id, /obj/item/device/pda))
var/obj/item/device/pda/pda = M:wear_id
id = pda.id
else id = M:wear_id
if (id.assignment) eqjobname = M:wear_id:assignment
else eqjobname = "No job"
else else
eqjobname = "No id" eqjobname = "No id"
else if (istype(M,/mob/living/silicon/ai)) else if (istype(M,/mob/living/silicon/ai))

View File

@@ -293,6 +293,12 @@ var/ordernum=0
idname = usr:wear_id.registered idname = usr:wear_id.registered
if(usr:wear_id.assignment) if(usr:wear_id.assignment)
idrank = usr:wear_id.assignment idrank = usr:wear_id.assignment
if (istype(usr:wear_id, /obj/item/device/pda))
var/obj/item/device/pda/pda = usr:wear_id
if(pda.owner)
idname = pda.owner
if(pda.ownjob)
idrank = pda.ownjob
else else
idname = usr.name idname = usr.name

View File

@@ -989,7 +989,11 @@ var/showadminmessages = 1
continue continue
H.paralysis += 5 H.paralysis += 5
if(H.wear_id) if(H.wear_id)
for(var/A in H.wear_id.access) var/obj/item/weapon/card/id/id = H.wear_id
if (istype (H.wear_id, /obj/item/device/pda))
var/obj/item/device/pda/pda = H.wear_id
id = pda.id
for(var/A in id.access)
if(A == access_security) if(A == access_security)
security++ security++
if(!security) if(!security)

View File

@@ -246,9 +246,13 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
if (istype(M, /mob/living/carbon/human)) if (istype(M, /mob/living/carbon/human))
var/mob/living/carbon/human/H = M var/mob/living/carbon/human/H = M
if (H.wear_id) if (H.wear_id)
var/obj/item/weapon/card/id/id = H.wear_id
if(istype(H.wear_id, /obj/item/device/pda))
var/obj/item/device/pda/pda = H.wear_id
id = pda.id
log_admin("[key_name(src)] has granted [M.key] full access.") log_admin("[key_name(src)] has granted [M.key] full access.")
H.wear_id.icon_state = "gold" id.icon_state = "gold"
H.wear_id.access = get_all_accesses() id:access = get_all_accesses()
else else
alert("Invalid ID card") alert("Invalid ID card")
else else

View File

@@ -72,7 +72,11 @@
usr << "\blue [src.name] has a \icon[src.back] [src.back.name] on [t_his] back." usr << "\blue [src.name] has a \icon[src.back] [src.back.name] on [t_his] back."
if (src.wear_id) if (src.wear_id)
if (src.wear_id.registered != src.real_name && in_range(src, usr) && prob(10)) var/obj/item/weapon/card/id/id = src:wear_id
if(istype(src:wear_id, /obj/item/device/pda))
var/obj/item/device/pda/pda = src:wear_id
id = pda.id
if (id.registered != src.real_name && in_range(src, usr) && prob(10))
usr << "\red [src.name] is wearing \icon[src.wear_id] [src.wear_id.name] yet doesn't seem to be that person!!!" usr << "\red [src.name] is wearing \icon[src.wear_id] [src.wear_id.name] yet doesn't seem to be that person!!!"
else else
usr << "\blue [src.name] is wearing \icon[src.wear_id] [src.wear_id.name]." usr << "\blue [src.name] is wearing \icon[src.wear_id] [src.wear_id.name]."

View File

@@ -798,7 +798,7 @@
return return
if (!src.w_uniform) if (!src.w_uniform)
return return
if (!( istype(W, /obj/item/weapon/card/id) )) if (!istype(W, /obj/item/weapon/card/id) && !istype(W, /obj/item/device/pda) )
return return
src.u_equip(W) src.u_equip(W)
src.wear_id = W src.wear_id = W
@@ -1178,13 +1178,34 @@
src.s_store.screen_loc = ui_sstore1 src.s_store.screen_loc = ui_sstore1
if ((src.wear_mask && !(src.wear_mask.see_face)) || (src.head && !(src.head.see_face))) // can't see the face if ((src.wear_mask && !(src.wear_mask.see_face)) || (src.head && !(src.head.see_face))) // can't see the face
if (src.wear_id && src.wear_id.registered) if (src.wear_id)
src.name = src.wear_id.registered if (istype(src.wear_id, /obj/item/weapon/card/id))
var/obj/item/weapon/card/id/id = src.wear_id
if (id.registered)
src.name = id.registered
else
src.name = "Unknown"
else if (istype(src.wear_id, /obj/item/device/pda))
var/obj/item/device/pda/pda = src.wear_id
if (pda.owner)
src.name = pda.owner
else
src.name = "Unknown"
else else
src.name = "Unknown" src.name = "Unknown"
else else
if (src.wear_id && src.wear_id.registered != src.real_name) if (src.wear_id)
src.name = "[src.real_name] (as [src.wear_id.registered])" if (istype(src.wear_id, /obj/item/weapon/card/id))
var/obj/item/weapon/card/id/id = src.wear_id
if (id.registered != src.real_name)
src.name = "[src.real_name] (as [id.registered])"
else if (istype(src.wear_id, /obj/item/device/pda))
var/obj/item/device/pda/pda = src.wear_id
if (pda.owner)
if (pda.owner != src.real_name)
src.name = "[src.real_name] (as [pda.owner])"
else else
src.name = src.real_name src.name = src.real_name
@@ -2217,7 +2238,7 @@
W.layer = initial(W.layer) W.layer = initial(W.layer)
W.add_fingerprint(src.source) W.add_fingerprint(src.source)
else else
if ((istype(src.item, /obj/item/weapon/card/id) && src.target.w_uniform)) if (((istype(src.item, /obj/item/weapon/card/id)||istype(src.item, /obj/item/device/pda)) && src.target.w_uniform))
src.source.drop_item() src.source.drop_item()
src.loc = src.target src.loc = src.target
src.item.layer = 20 src.item.layer = 20

View File

@@ -18,8 +18,12 @@
var/alt_name = "" var/alt_name = ""
if (istype(src, /mob/living/carbon/human) && src.name != src.real_name) if (istype(src, /mob/living/carbon/human) && src.name != src.real_name)
if (src:wear_id && src:wear_id:registered) if (src.wear_id)
alt_name = " (as [src:wear_id:registered])" var/obj/item/weapon/card/id/id = src:wear_id
if(istype(src:wear_id, /obj/item/device/pda))
var/obj/item/device/pda/pda = src:wear_id
id = pda.id
alt_name = " (as [id:registered])"
else else
alt_name = " (as Unknown)" alt_name = " (as Unknown)"

View File

@@ -27,8 +27,12 @@
var/alt_name = "" var/alt_name = ""
if (istype(src, /mob/living/carbon/human) && src.name != src.real_name) if (istype(src, /mob/living/carbon/human) && src.name != src.real_name)
if (src:wear_id && src:wear_id:registered) if (src:wear_id)
alt_name = " (as [src:wear_id:registered])" var/obj/item/weapon/card/id/id = src:wear_id
if(istype(src:wear_id, /obj/item/device/pda))
var/obj/item/device/pda/pda = src:wear_id
id = pda.id
alt_name = " (as [id:registered])"
else else
alt_name = " (as Unknown)" alt_name = " (as Unknown)"

View File

@@ -395,7 +395,7 @@
user << "The wires have been [wiresexposed ? "exposed" : "unexposed"]" user << "The wires have been [wiresexposed ? "exposed" : "unexposed"]"
updateicon() updateicon()
else if (istype(W, /obj/item/weapon/card/id)) // trying to unlock the interface with an ID card else if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda)) // trying to unlock the interface with an ID card
if(emagged) if(emagged)
user << "The interface is broken" user << "The interface is broken"
else if(opened) else if(opened)

View File

@@ -14,8 +14,12 @@
var/alt_name = "" var/alt_name = ""
if (istype(src, /mob/living/carbon/human) && src.name != src.real_name) if (istype(src, /mob/living/carbon/human) && src.name != src.real_name)
if (src:wear_id && src:wear_id:registered) if (src:wear_id)
alt_name = " (as [src:wear_id:registered])" var/obj/item/weapon/card/id/id = src:wear_id
if(istype(src:wear_id, /obj/item/device/pda))
var/obj/item/device/pda/pda = src:wear_id
id = pda.id
alt_name = " (as [id:registered])"
else else
alt_name = " (as Unknown)" alt_name = " (as Unknown)"
else if (istype(src, /mob/dead/observer)) else if (istype(src, /mob/dead/observer))

View File

@@ -212,7 +212,7 @@
user << "The wires have been [wiresexposed ? "exposed" : "unexposed"]" user << "The wires have been [wiresexposed ? "exposed" : "unexposed"]"
updateicon() updateicon()
else if (istype(W, /obj/item/weapon/card/id)) // trying to unlock the interface with an ID card else if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda)) // trying to unlock the interface with an ID card
if(emagged || malfhack) if(emagged || malfhack)
user << "The interface is broken" user << "The interface is broken"
else if(opened) else if(opened)