mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-31 00:49:06 +01:00
ID Name and Guest Pass Terminal Tweaks (#15392)
This commit is contained in:
@@ -98,7 +98,7 @@
|
||||
if(!I)
|
||||
return "Unknown"
|
||||
// Format currently matches that of newscaster feeds: Registered Name (Assigned Rank)
|
||||
return I.assignment ? "[I.registered_name] ([I.assignment])" : I.registered_name
|
||||
return I.assignment ? "[I.registered_name], [I.assignment]" : I.registered_name
|
||||
|
||||
/proc/level_seven_announcement()
|
||||
command_announcement.Announce("Confirmed outbreak of level 7 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", new_sound = 'sound/AI/level_7_biohazard.ogg')
|
||||
@@ -107,10 +107,10 @@
|
||||
command_announcement.Announce("It has come to our attention that the station passed through an ion storm. Please monitor all electronic equipment for malfunctions.", "Anomaly Alert")
|
||||
|
||||
/proc/AnnounceArrival(var/mob/living/carbon/human/character, var/rank, var/join_message)
|
||||
if (SSticker.current_state == GAME_STATE_PLAYING)
|
||||
if(SSticker.current_state == GAME_STATE_PLAYING)
|
||||
if(character.mind.role_alt_title)
|
||||
rank = character.mind.role_alt_title
|
||||
AnnounceArrivalSimple(character.real_name, rank, join_message)
|
||||
|
||||
/proc/AnnounceArrivalSimple(var/name, var/rank = "visitor", var/join_message = "has arrived on the station", var/new_sound = 'sound/misc/announcements/notice.ogg')
|
||||
global_announcer.autosay("[name], [rank], [join_message].", "Arrivals Announcement Computer")
|
||||
/proc/AnnounceArrivalSimple(var/name, var/rank = "visitor", var/join_message = "has arrived on the [current_map.station_type]", var/new_sound = 'sound/misc/announcements/notice.ogg')
|
||||
global_announcer.autosay("[name], [rank], [join_message].", "Arrivals Announcer")
|
||||
@@ -19,22 +19,15 @@
|
||||
|
||||
/obj/item/card/id/guest/examine(mob/user)
|
||||
..(user)
|
||||
if (world.time < expiration_time)
|
||||
to_chat(user, "<span class='notice'>This pass expires at [worldtime2text(expiration_time)].</span>")
|
||||
if(world.time > expiration_time)
|
||||
to_chat(usr, "This pass expired at: [worldtime2text(expiration_time)].")
|
||||
else
|
||||
to_chat(user, "<span class='warning'>It expired at [worldtime2text(expiration_time)].</span>")
|
||||
to_chat(usr, "This pass expires at: [worldtime2text(expiration_time)].")
|
||||
|
||||
/obj/item/card/id/guest/read()
|
||||
if (world.time > expiration_time)
|
||||
to_chat(usr, "<span class='notice'>This pass expired at [worldtime2text(expiration_time)].</span>")
|
||||
else
|
||||
to_chat(usr, "<span class='notice'>This pass expires at [worldtime2text(expiration_time)].</span>")
|
||||
|
||||
to_chat(usr, "<span class='notice'>It grants access to following areas:</span>")
|
||||
for (var/A in temp_access)
|
||||
to_chat(usr, "<span class='notice'>[get_access_desc(A)].</span>")
|
||||
to_chat(usr, "<span class='notice'>Issuing reason: [reason].</span>")
|
||||
return
|
||||
to_chat(usr, "It grants access to the following areas:")
|
||||
for(var/A in temp_access)
|
||||
to_chat(usr, "[get_access_desc(A)]")
|
||||
to_chat(usr, "Issuing reason: [reason].")
|
||||
|
||||
/obj/item/card/id/guest/Initialize(mapload, duration)
|
||||
. = ..(mapload)
|
||||
@@ -45,13 +38,12 @@
|
||||
icon_state += "_invalid"
|
||||
overlay_state += "_invalid"
|
||||
|
||||
/////////////////////////////////////////////
|
||||
//Guest pass terminal////////////////////////
|
||||
/////////////////////////////////////////////
|
||||
#define GUEST_PASS_TERMINAL_UNSET "\[UNSET\]"
|
||||
|
||||
// Guest Pass Terminal
|
||||
/obj/machinery/computer/guestpass
|
||||
name = "guest pass terminal"
|
||||
desc = "Allows issuing temporary access to an area."
|
||||
desc = "A guest pass terminal. It allows issuing temporary access passes to one or more areas."
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "guestw"
|
||||
light_color = LIGHT_COLOR_BLUE
|
||||
@@ -61,14 +53,14 @@
|
||||
density = FALSE
|
||||
appearance_flags = TILE_BOUND // prevents people from viewing the overlay through a wall
|
||||
|
||||
var/obj/item/card/id/giver
|
||||
var/obj/item/card/id/giver = GUEST_PASS_TERMINAL_UNSET
|
||||
var/list/accesses = list()
|
||||
var/giv_name = "NOT SPECIFIED"
|
||||
var/reason = "NOT SPECIFIED"
|
||||
var/duration = 5
|
||||
var/giv_name = GUEST_PASS_TERMINAL_UNSET
|
||||
var/reason = GUEST_PASS_TERMINAL_UNSET
|
||||
var/duration = 10
|
||||
|
||||
var/list/internal_log = list()
|
||||
var/mode = 0 // 0 - making pass, 1 - viewing logs
|
||||
var/mode = 0 // 0: Making pass. 1: Viewing logs.
|
||||
|
||||
/obj/machinery/computer/guestpass/Initialize()
|
||||
. = ..()
|
||||
@@ -76,12 +68,12 @@
|
||||
|
||||
/obj/machinery/computer/guestpass/attackby(obj/O, mob/user)
|
||||
if(istype(O, /obj/item/card/id))
|
||||
if(!giver && user.unEquip(O))
|
||||
if((!giver || giver == GUEST_PASS_TERMINAL_UNSET) && user.unEquip(O))
|
||||
O.forceMove(src)
|
||||
giver = O
|
||||
updateUsrDialog()
|
||||
else if(giver)
|
||||
to_chat(user, "<span class='warning'>There is already ID card inside.</span>")
|
||||
else if(giver && giver != GUEST_PASS_TERMINAL_UNSET)
|
||||
to_chat(user, SPAN_WARNING("There is already ID card inside \the [src]."))
|
||||
return TRUE
|
||||
return ..()
|
||||
|
||||
@@ -97,27 +89,27 @@
|
||||
user.set_machine(src)
|
||||
var/dat
|
||||
|
||||
if (mode == 1) //Logs
|
||||
if(mode == 1) // Logs.
|
||||
dat += "<h3>Activity log</h3><br>"
|
||||
for (var/entry in internal_log)
|
||||
dat += "[entry]<br><hr>"
|
||||
dat += "<a href='?src=\ref[src];action=print'>Print</a><br>"
|
||||
dat += "<a href='?src=\ref[src];mode=0'>Back</a><br>"
|
||||
else
|
||||
dat += "<h3>Guest pass terminal #[uid]</h3><br>"
|
||||
dat += "<a href='?src=\ref[src];mode=1'>View activity log</a><br><br>"
|
||||
dat += "<h3>Guest Pass Terminal #[uid]</h3>"
|
||||
dat += "Issuing ID: <a href='?src=\ref[src];action=id'>[giver]</a><br>"
|
||||
dat += "Issued to: <a href='?src=\ref[src];choice=giv_name'>[giv_name]</a><br>"
|
||||
dat += "Reason: <a href='?src=\ref[src];choice=reason'>[reason]</a><br>"
|
||||
dat += "Duration (minutes): <a href='?src=\ref[src];choice=duration'>[duration] m</a><br>"
|
||||
dat += "Access to areas:<br>"
|
||||
if (giver && giver.access)
|
||||
for (var/A in giver.access)
|
||||
dat += "Issued To: <a href='?src=\ref[src];choice=giv_name'>[giv_name]</a><br>"
|
||||
dat += "Reason: <a href='?src=\ref[src];choice=reason'>[reason]</a><br>"
|
||||
dat += "Duration (minutes): <a href='?src=\ref[src];choice=duration'>[duration] m</a><br>"
|
||||
dat += "Access to Areas:<br>"
|
||||
if((giver && giver != GUEST_PASS_TERMINAL_UNSET) && giver.access)
|
||||
for(var/A in giver.access)
|
||||
var/area = get_access_desc(A)
|
||||
if (A in accesses)
|
||||
area = "<span style='color:#00dd12'>[area]</span>"
|
||||
dat += "<a href='?src=\ref[src];choice=access;access=[A]'>[area]</a><br>"
|
||||
dat += "<br><a href='?src=\ref[src];action=issue'>Issue pass</a><br>"
|
||||
dat += "<br><a href='?src=\ref[src];action=issue'>Issue Pass</a><br>"
|
||||
dat += "<a href='?src=\ref[src];mode=1'>View Activity Log</a><br><br>"
|
||||
|
||||
var/datum/browser/guestpass_win = new(user, "guestpass", capitalize_first_letters(name), 400, 520)
|
||||
guestpass_win.set_content(dat)
|
||||
@@ -127,44 +119,44 @@
|
||||
if(..())
|
||||
return 1
|
||||
usr.set_machine(src)
|
||||
if (href_list["mode"])
|
||||
if(href_list["mode"])
|
||||
mode = text2num(href_list["mode"])
|
||||
|
||||
if (href_list["choice"])
|
||||
if(href_list["choice"])
|
||||
switch(href_list["choice"])
|
||||
if ("giv_name")
|
||||
var/nam = sanitizeName(input("Person pass is issued to", "Name", giv_name) as text|null)
|
||||
if (nam)
|
||||
if("giv_name")
|
||||
var/nam = sanitizeName(input("Issued To:", "Name", giv_name) as text|null)
|
||||
if(nam)
|
||||
giv_name = nam
|
||||
if ("reason")
|
||||
var/reas = sanitize(input("Reason why pass is issued", "Reason", reason) as text|null)
|
||||
if("reason")
|
||||
var/reas = sanitize(input("Reason:", "Reason", reason) as text|null)
|
||||
if(reas)
|
||||
reason = reas
|
||||
if ("duration")
|
||||
var/dur = input("Duration (in minutes) during which pass is valid (up to 60 minutes).", "Duration") as num|null
|
||||
if (dur)
|
||||
if (dur > 0 && dur <= 60)
|
||||
if("duration")
|
||||
var/dur = input("Duration (in minutes) during which pass is valid (up to 60 minutes):", "Duration") as num|null
|
||||
if(dur)
|
||||
if(dur > 0 && dur <= 60)
|
||||
duration = dur
|
||||
else
|
||||
to_chat(usr, "<span class='warning'>Invalid duration.</span>")
|
||||
if ("access")
|
||||
to_chat(usr, "<b>\The [src]</b> displays, \"Invalid duration.\"")
|
||||
if("access")
|
||||
var/A = text2num(href_list["access"])
|
||||
if (A in accesses)
|
||||
accesses.Remove(A)
|
||||
else
|
||||
accesses.Add(A)
|
||||
if (href_list["action"])
|
||||
if(href_list["action"])
|
||||
switch(href_list["action"])
|
||||
if ("id")
|
||||
if (giver)
|
||||
if("id")
|
||||
if(giver && giver != GUEST_PASS_TERMINAL_UNSET)
|
||||
if(ishuman(usr))
|
||||
giver.forceMove(usr.loc)
|
||||
if(!usr.get_active_hand())
|
||||
usr.put_in_hands(giver)
|
||||
giver = null
|
||||
giver = GUEST_PASS_TERMINAL_UNSET
|
||||
else
|
||||
giver.forceMove(src.loc)
|
||||
giver = null
|
||||
giver = GUEST_PASS_TERMINAL_UNSET
|
||||
accesses.Cut()
|
||||
else
|
||||
var/obj/item/I = usr.get_active_hand()
|
||||
@@ -173,8 +165,8 @@
|
||||
giver = I
|
||||
updateUsrDialog()
|
||||
|
||||
if ("print")
|
||||
var/dat = "<h3>Activity log of guest pass terminal #[uid]</h3><br>"
|
||||
if("print")
|
||||
var/dat = "<h3>Activity Log of Guest Pass Terminal #[uid]</h3><br>"
|
||||
for (var/entry in internal_log)
|
||||
dat += "[entry]<br><hr>"
|
||||
//to_chat(usr, "Printing the log, standby...")
|
||||
@@ -182,24 +174,31 @@
|
||||
var/obj/item/paper/P = new/obj/item/paper( loc )
|
||||
P.set_content_unsafe("activity log", dat)
|
||||
|
||||
if ("issue")
|
||||
if (giver)
|
||||
if("issue")
|
||||
if(giver && giver != GUEST_PASS_TERMINAL_UNSET)
|
||||
var/number = add_zero("[rand(0,9999)]", 4)
|
||||
var/entry = "\[[worldtime2text()]\] Pass #[number] issued by [giver.registered_name] ([giver.assignment]) to [giv_name]. Reason: [reason]. Grants access to following areas: "
|
||||
var/entry = "\[[worldtime2text()]\] Pass #[number] issued by [giver.registered_name], [giver.assignment] to [giv_name].<br>Reason: [reason].<br>Grants access to the following areas:<br>"
|
||||
for (var/i=1 to accesses.len)
|
||||
var/A = accesses[i]
|
||||
if (A)
|
||||
if(A)
|
||||
var/area = get_access_desc(A)
|
||||
entry += "[i > 1 ? ", [area]" : "[area]"]"
|
||||
entry += ". Expires at [worldtime2text(world.time + duration*10*60)]."
|
||||
entry += "[i > 1 ? ", [area]" : "[area]"]<br>"
|
||||
entry += "Expires at: [worldtime2text(world.time + duration*10*60)]."
|
||||
internal_log.Add(entry)
|
||||
|
||||
var/obj/item/card/id/guest/pass = new(loc, duration MINUTES)
|
||||
pass.temp_access = accesses.Copy()
|
||||
pass.registered_name = giv_name
|
||||
pass.reason = reason
|
||||
pass.name = "guest pass #[number]"
|
||||
pass.name = "guest pass - [giv_name]"
|
||||
|
||||
// Reset the Terminal
|
||||
giv_name = GUEST_PASS_TERMINAL_UNSET
|
||||
reason = GUEST_PASS_TERMINAL_UNSET
|
||||
duration = 10
|
||||
else
|
||||
to_chat(usr, "<span class='warning'>Cannot issue pass without issuing ID.</span>")
|
||||
to_chat(usr, SPAN_WARNING("Cannot issue a guest pass without a issuing ID."))
|
||||
updateUsrDialog()
|
||||
return
|
||||
|
||||
#undef GUEST_PASS_TERMINAL_UNSET
|
||||
@@ -367,7 +367,7 @@ var/list/obj/machinery/requests_console/allConsoles = list()
|
||||
if(inoperable(MAINT)) return TRUE
|
||||
if(screen == RCS_MESSAUTH)
|
||||
var/obj/item/card/id/T = O
|
||||
msgVerified = text("<font color='green'><b>Verified by [T.registered_name] ([T.assignment])</b></font>")
|
||||
msgVerified = text("<font color='green'><b>Verified by [T.registered_name], [T.assignment]</b></font>")
|
||||
updateUsrDialog()
|
||||
if(screen == RCS_ANNOUNCE)
|
||||
var/obj/item/card/id/ID = O
|
||||
|
||||
@@ -86,25 +86,26 @@ var/const/NO_EMAG_ACT = -50
|
||||
|
||||
return 1
|
||||
|
||||
#define ID_CARD_UNSET "\[UNSET\]"
|
||||
|
||||
/obj/item/card/id
|
||||
name = "identification card"
|
||||
desc = "A card used to provide ID and determine access across the station."
|
||||
desc = "A card used to identify people and determine access."
|
||||
icon_state = "id"
|
||||
item_state = "card-id"
|
||||
overlay_state = "id"
|
||||
|
||||
var/list/access = list()
|
||||
var/registered_name = "Unknown" // The name registered_name on the card
|
||||
var/registered_name = ID_CARD_UNSET // The name registered_name on the card
|
||||
var/datum/weakref/mob_id
|
||||
slot_flags = SLOT_ID
|
||||
|
||||
var/age = "\[UNSET\]"
|
||||
var/blood_type = "\[UNSET\]"
|
||||
var/dna_hash = "\[UNSET\]"
|
||||
var/fingerprint_hash = "\[UNSET\]"
|
||||
var/citizenship = "\[UNSET\]"
|
||||
var/religion = "\[UNSET\]"
|
||||
var/sex = "\[UNSET\]"
|
||||
var/age = ID_CARD_UNSET
|
||||
var/blood_type = ID_CARD_UNSET
|
||||
var/dna_hash = ID_CARD_UNSET
|
||||
var/fingerprint_hash = ID_CARD_UNSET
|
||||
var/citizenship = ID_CARD_UNSET
|
||||
var/sex = ID_CARD_UNSET
|
||||
var/icon/front
|
||||
var/icon/side
|
||||
var/mining_points //miners gotta eat
|
||||
@@ -119,7 +120,6 @@ var/const/NO_EMAG_ACT = -50
|
||||
var/assignment = null //can be alt title or the actual job
|
||||
var/rank = null //actual job
|
||||
var/employer_faction = null
|
||||
var/dorm = 0 // determines if this ID has claimed a dorm already
|
||||
var/datum/ntnet_user/chat_user
|
||||
|
||||
var/iff_faction = IFF_DEFAULT
|
||||
@@ -149,7 +149,7 @@ var/const/NO_EMAG_ACT = -50
|
||||
return
|
||||
|
||||
/obj/item/card/id/proc/update_name()
|
||||
name = "ID Card ([src.registered_name] ([src.assignment]))"
|
||||
name = "workplace ID card - [src.registered_name], [src.assignment]"
|
||||
if(istype(chat_user))
|
||||
chat_user.username = chat_user.generateUsernameIdCard(src)
|
||||
|
||||
@@ -161,44 +161,42 @@ var/const/NO_EMAG_ACT = -50
|
||||
|
||||
/mob/proc/set_id_info(var/obj/item/card/id/id_card)
|
||||
id_card.age = 0
|
||||
id_card.registered_name = real_name
|
||||
id_card.sex = capitalize(gender)
|
||||
id_card.registered_name = real_name
|
||||
id_card.sex = capitalize(gender)
|
||||
id_card.set_id_photo(src)
|
||||
|
||||
if(dna)
|
||||
id_card.blood_type = dna.b_type
|
||||
id_card.dna_hash = dna.unique_enzymes
|
||||
id_card.fingerprint_hash= md5(dna.uni_identity)
|
||||
id_card.blood_type = dna.b_type
|
||||
id_card.dna_hash = dna.unique_enzymes
|
||||
id_card.fingerprint_hash = md5(dna.uni_identity)
|
||||
id_card.update_name()
|
||||
|
||||
/mob/living/carbon/human/set_id_info(var/obj/item/card/id/id_card)
|
||||
..()
|
||||
id_card.age = age
|
||||
id_card.citizenship = citizenship
|
||||
id_card.religion = SSrecords.get_religion_record_name(religion)
|
||||
id_card.mob_id = WEAKREF(src)
|
||||
id_card.employer_faction = employer_faction
|
||||
|
||||
/obj/item/card/id/proc/dat()
|
||||
var/dat = ("<table><tr><td>")
|
||||
dat += text("Name: []</A><BR>", registered_name)
|
||||
dat += text("Sex: []</A><BR>\n", sex)
|
||||
dat += text("Age: []</A><BR>\n", age)
|
||||
dat += text("Citizenship: []</A><BR>\n", citizenship)
|
||||
dat += text("Religion: []</A><BR>\n", religion)
|
||||
dat += text("Rank: []</A><BR>\n", assignment)
|
||||
dat += text("Fingerprint: []</A><BR>\n", fingerprint_hash)
|
||||
dat += text("Blood Type: []<BR>\n", blood_type)
|
||||
dat += text("DNA Hash: []<BR><BR>\n", dna_hash)
|
||||
dat += text("Name: []<br>", registered_name)
|
||||
dat += text("Age: []<br>\n", age)
|
||||
dat += text("Sex: []<br>\n", sex)
|
||||
dat += text("Citizenship: []<br>\n", citizenship)
|
||||
dat += text("Assignment and Employer: []<br>\n", assignment)
|
||||
dat += text("Blood Type: []<br>\n", blood_type)
|
||||
dat += text("Fingerprint Hash: []<br>\n", fingerprint_hash)
|
||||
dat += text("DNA Hash: []\n", dna_hash)
|
||||
if(mining_points)
|
||||
dat += text("Ore Redemption Points: []<BR><BR>\n", mining_points)
|
||||
dat += text("<br>Ore Redemption Points: []\n", mining_points)
|
||||
if(front && side)
|
||||
dat +="<td align = center valign = top>Photo:<br><img src=front.png height=128 width=128 border=4><img src=side.png height=128 width=128 border=4></td>"
|
||||
dat +="<td align = center valign = top>Front and Side Photograph<br><img src=front.png height=128 width=128 border=4><img src=side.png height=128 width=128 border=4></td>"
|
||||
dat += "</tr></table>"
|
||||
return dat
|
||||
|
||||
/obj/item/card/id/attack_self(mob/user as mob)
|
||||
if(dna_hash == "\[UNSET\]" && ishuman(user))
|
||||
if(dna_hash == ID_CARD_UNSET && ishuman(user))
|
||||
var/response = alert(user, "This ID card has not been imprinted with biometric data. Would you like to imprint yours now?", "Biometric Imprinting", "Yes", "No")
|
||||
if (response == "Yes")
|
||||
var/mob/living/carbon/human/H = user
|
||||
@@ -211,9 +209,8 @@ var/const/NO_EMAG_ACT = -50
|
||||
dna_hash = H.dna.unique_enzymes
|
||||
fingerprint_hash = md5(H.dna.uni_identity)
|
||||
citizenship = H.citizenship
|
||||
religion = SSrecords.get_religion_record_name(H.religion)
|
||||
age = H.age
|
||||
to_chat(user, "<span class='notice'>Biometric Imprinting successful!</span>")
|
||||
to_chat(user, "<span class='notice'>Biometric imprinting successful!</span>")
|
||||
return
|
||||
if(last_flash <= world.time - 20)
|
||||
last_flash = world.time
|
||||
@@ -239,7 +236,7 @@ var/const/NO_EMAG_ACT = -50
|
||||
if(!ishuman(M))
|
||||
return ..()
|
||||
|
||||
if (dna_hash == "\[UNSET\]" && ishuman(user))
|
||||
if (dna_hash == ID_CARD_UNSET && ishuman(user))
|
||||
var/response = alert(user, "This ID card has not been imprinted with biometric data. Would you like to imprint [M]'s now?", "Biometric Imprinting", "Yes", "No")
|
||||
if (response == "Yes")
|
||||
|
||||
@@ -274,7 +271,6 @@ var/const/NO_EMAG_ACT = -50
|
||||
dna_hash = H.dna.unique_enzymes
|
||||
fingerprint_hash = md5(H.dna.uni_identity)
|
||||
citizenship = H.citizenship
|
||||
religion = H.religion
|
||||
age = H.age
|
||||
src.add_fingerprint(H)
|
||||
to_chat(user, SPAN_NOTICE("Biometric Imprinting Successful!"))
|
||||
@@ -298,24 +294,8 @@ var/const/NO_EMAG_ACT = -50
|
||||
/obj/item/card/id/GetID()
|
||||
return src
|
||||
|
||||
/obj/item/card/id/verb/read()
|
||||
set name = "Read ID Card"
|
||||
set category = "Object"
|
||||
set src in usr
|
||||
|
||||
to_chat(usr, text("[icon2html(src, usr)] []: The current assignment on the card is [].", src.name, src.assignment))
|
||||
to_chat(usr, "The age on the card is [age].")
|
||||
to_chat(usr, "The citizenship on the card is [citizenship].")
|
||||
to_chat(usr, "The religion on the card is [religion].")
|
||||
to_chat(usr, "The blood type on the card is [blood_type].")
|
||||
to_chat(usr, "The DNA hash on the card is [dna_hash].")
|
||||
to_chat(usr, "The fingerprint hash on the card is [fingerprint_hash].")
|
||||
if(mining_points)
|
||||
to_chat(usr, "A ticker indicates the card has [mining_points] ore redemption points available.")
|
||||
return
|
||||
|
||||
/obj/item/card/id/proc/mob_icon_update()
|
||||
if (ismob(src.loc))
|
||||
if(ismob(src.loc))
|
||||
var/mob/M = src.loc
|
||||
M.update_inv_wear_id()
|
||||
|
||||
@@ -375,15 +355,15 @@ var/const/NO_EMAG_ACT = -50
|
||||
overlay_state = "gold"
|
||||
|
||||
/obj/item/card/id/syndicate/command
|
||||
name = "syndicate ID card"
|
||||
desc = "An ID straight from the Syndicate."
|
||||
name = "illicit identification card"
|
||||
desc = "An identification card."
|
||||
icon_state = "dark"
|
||||
registered_name = "Syndicate"
|
||||
assignment = "Syndicate Overlord"
|
||||
access = list(access_syndicate, access_external_airlocks)
|
||||
|
||||
/obj/item/card/id/syndicate/ert
|
||||
name = "\improper Syndicate Commando ID"
|
||||
name = "illicit commando identification card"
|
||||
assignment = "Commando"
|
||||
icon_state = "centcom"
|
||||
|
||||
@@ -396,7 +376,7 @@ var/const/NO_EMAG_ACT = -50
|
||||
assignment = "Visitor"
|
||||
|
||||
/obj/item/card/id/highlander
|
||||
name = "\improper Highlander ID"
|
||||
name = "highlander identification card"
|
||||
assignment = "Highlander"
|
||||
icon_state = "centcom"
|
||||
|
||||
@@ -405,8 +385,8 @@ var/const/NO_EMAG_ACT = -50
|
||||
..()
|
||||
|
||||
/obj/item/card/id/captains_spare
|
||||
name = "captain's spare ID"
|
||||
desc = "The spare ID of the High Lord himself."
|
||||
name = "captain's spare identification card"
|
||||
desc = "A captain's spare identification card."
|
||||
icon_state = "gold"
|
||||
item_state = "gold_id"
|
||||
overlay_state = "gold"
|
||||
@@ -418,14 +398,14 @@ var/const/NO_EMAG_ACT = -50
|
||||
..()
|
||||
|
||||
/obj/item/card/id/merchant
|
||||
name = "merchant pass"
|
||||
name = "merchant identification card"
|
||||
desc = "An identification card issued to SCC-sanctioned merchants, indicating their right to sell and buy goods."
|
||||
icon_state = "centcom"
|
||||
overlay_state = "centcom"
|
||||
desc = "An identification card issued to NanoTrasen sanctioned merchants, indicating their right to sell and buy goods."
|
||||
access = list(access_merchant)
|
||||
|
||||
/obj/item/card/id/synthetic
|
||||
name = "\improper Equipment ID"
|
||||
name = "\improper SCC equipment identification card"
|
||||
desc = "Access module for SCC equipment."
|
||||
icon_state = "id-robot"
|
||||
item_state = "tdgreen"
|
||||
@@ -436,7 +416,7 @@ var/const/NO_EMAG_ACT = -50
|
||||
..()
|
||||
|
||||
/obj/item/card/id/synthetic/cyborg
|
||||
name = "\improper Equipment ID"
|
||||
name = "\improper SCC equipment identification card"
|
||||
desc = "Access module for SCC equipment."
|
||||
icon_state = "id-robot"
|
||||
item_state = "tdgreen"
|
||||
@@ -447,8 +427,8 @@ var/const/NO_EMAG_ACT = -50
|
||||
access = list(access_equipment, access_ai_upload, access_external_airlocks) // barebones cyborg access. Job special added in different place
|
||||
|
||||
/obj/item/card/id/minedrone
|
||||
name = "\improper Minedrone ID"
|
||||
desc = "Access module for NanoTrasen Minedrones"
|
||||
name = "mine drone identification card"
|
||||
desc = "Access module for mine drones."
|
||||
icon_state = "id-robot"
|
||||
item_state = "tdgreen"
|
||||
assignment = "Minedrone"
|
||||
@@ -458,7 +438,7 @@ var/const/NO_EMAG_ACT = -50
|
||||
..()
|
||||
|
||||
/obj/item/card/id/centcom
|
||||
name = "\improper CentCom. ID"
|
||||
name = "\improper CentCom identification card"
|
||||
desc = "An ID straight from CentCom."
|
||||
icon_state = "centcom"
|
||||
overlay_state = "centcom"
|
||||
@@ -470,7 +450,7 @@ var/const/NO_EMAG_ACT = -50
|
||||
..()
|
||||
|
||||
/obj/item/card/id/ccia
|
||||
name = "\improper CentCom. Internal Affairs ID"
|
||||
name = "\improper CentCom. Internal Affairs identification card"
|
||||
desc = "An ID straight from CentCom. Internal Affairs."
|
||||
icon_state = "ccia"
|
||||
overlay_state = "ccia"
|
||||
@@ -483,12 +463,12 @@ var/const/NO_EMAG_ACT = -50
|
||||
return ..(user, add_text, blind_add_text)
|
||||
|
||||
/obj/item/card/id/ccia/fib
|
||||
name = "\improper Federal Investigations Bureau ID"
|
||||
name = "\improper Federal Investigations Bureau identification card"
|
||||
desc = "An ID straight from the Federal Investigations Bureau."
|
||||
icon_state = "fib"
|
||||
|
||||
/obj/item/card/id/ert
|
||||
name = "\improper NanoTrasen Emergency Response Team ID"
|
||||
name = "\improper NanoTrasen Emergency Response Team identification card"
|
||||
icon_state = "centcom"
|
||||
overlay_state = "centcom"
|
||||
assignment = "Emergency Response Team"
|
||||
@@ -498,7 +478,7 @@ var/const/NO_EMAG_ACT = -50
|
||||
..()
|
||||
|
||||
/obj/item/card/id/asset_protection
|
||||
name = "\improper NanoTrasen Asset Protection ID"
|
||||
name = "\improper NanoTrasen Asset Protection identification card"
|
||||
icon_state = "centcom"
|
||||
overlay_state = "centcom"
|
||||
assignment = "Asset Protection"
|
||||
@@ -508,7 +488,7 @@ var/const/NO_EMAG_ACT = -50
|
||||
..()
|
||||
|
||||
/obj/item/card/id/distress
|
||||
name = "\improper Freelancer Mercenary ID"
|
||||
name = "\improper Freelancer Mercenary identification card"
|
||||
icon_state = "centcom"
|
||||
assignment = "Freelancer Mercenary"
|
||||
|
||||
@@ -517,17 +497,17 @@ var/const/NO_EMAG_ACT = -50
|
||||
..()
|
||||
|
||||
/obj/item/card/id/distress/fsf
|
||||
name = "\improper Free Solarian Fleets ID"
|
||||
name = "\improper Free Solarian Fleets identification card"
|
||||
icon_state = "centcom"
|
||||
assignment = "Free Solarian Fleets Marine ID"
|
||||
assignment = "Free Solarian Fleets Marine"
|
||||
|
||||
/obj/item/card/id/distress/kataphract
|
||||
name = "\improper Kataphract ID"
|
||||
name = "\improper Kataphract identification card"
|
||||
icon_state = "centcom"
|
||||
assignment = "Kataphract"
|
||||
|
||||
/obj/item/card/id/distress/legion
|
||||
name = "\improper Tau Ceti Foreign Legion ID"
|
||||
name = "\improper Tau Ceti Foreign Legion identification card"
|
||||
assignment = "Tau Ceti Foreign Legion Volunteer"
|
||||
icon_state = "legion"
|
||||
|
||||
@@ -536,7 +516,7 @@ var/const/NO_EMAG_ACT = -50
|
||||
..()
|
||||
|
||||
/obj/item/card/id/distress/ap_eridani
|
||||
name = "\improper Eridani Private Military Contractor ID"
|
||||
name = "\improper Eridani Private Military Contractor identification card"
|
||||
desc = "A high-tech holobadge, identifying the owner as a contractor from one of the many PMCs from the Eridani Corporate Federation."
|
||||
assignment = "EPMC Asset Protection"
|
||||
icon_state = "pmc_card"
|
||||
@@ -547,7 +527,7 @@ var/const/NO_EMAG_ACT = -50
|
||||
..()
|
||||
|
||||
/obj/item/card/id/distress/iac
|
||||
name = "\improper Interstellar Aid Corps ID"
|
||||
name = "\improper Interstellar Aid Corps identification card"
|
||||
assignment = "Interstellar Aid Corps Responder"
|
||||
icon_state = "centcom"
|
||||
|
||||
@@ -556,8 +536,8 @@ var/const/NO_EMAG_ACT = -50
|
||||
..()
|
||||
|
||||
/obj/item/card/id/all_access
|
||||
name = "\improper Administrator's spare ID"
|
||||
desc = "The spare ID of the Lord of Lords himself."
|
||||
name = "\improper Administrator's spare identification card"
|
||||
desc = "An administrator's spare identification card."
|
||||
icon_state = "data"
|
||||
item_state = "tdgreen"
|
||||
overlay_state = "data"
|
||||
@@ -630,7 +610,7 @@ var/const/NO_EMAG_ACT = -50
|
||||
|
||||
/obj/item/card/id/bluespace
|
||||
name = "bluespace identification card"
|
||||
desc = "A bizarre imitation of NanoTrasen identification cards. It seems to function normally as well."
|
||||
desc = "A bizarre imitation of an ID card; shifting and moving."
|
||||
desc_antag = "Access can be copied from other ID cards by clicking on them."
|
||||
icon_state = "crystalid"
|
||||
iff_faction = IFF_BLUESPACE
|
||||
@@ -652,3 +632,5 @@ var/const/NO_EMAG_ACT = -50
|
||||
|
||||
/obj/item/card/id/away_site
|
||||
access = list(access_generic_away_site, access_external_airlocks)
|
||||
|
||||
#undef ID_CARD_UNSET
|
||||
@@ -66,7 +66,6 @@
|
||||
entries[++entries.len] = list("name" = "Photo", "value" = "Update")
|
||||
entries[++entries.len] = list("name" = "Sex", "value" = sex)
|
||||
entries[++entries.len] = list("name" = "Citizenship", "value" = citizenship)
|
||||
entries[++entries.len] = list("name" = "Religion", "value" = religion)
|
||||
entries[++entries.len] = list("name" = "Faction", "value" = employer_faction)
|
||||
entries[++entries.len] = list("name" = "Factory Reset", "value" = "Use With Care")
|
||||
data["electronic_warfare"] = electronic_warfare
|
||||
@@ -224,12 +223,6 @@
|
||||
src.citizenship = new_citizenship
|
||||
to_chat(user, SPAN_NOTICE("Citizenship changed to '[new_citizenship]'."))
|
||||
. = 1
|
||||
if("Religion")
|
||||
var/new_religion = sanitize(input(user,"What religion would you like to put on this card?","Agent Card Religion", religion) as null|text)
|
||||
if(!isnull(new_religion) && CanUseTopic(user,state))
|
||||
src.religion = new_religion
|
||||
to_chat(user, SPAN_NOTICE("Religion changed to '[new_religion]'."))
|
||||
. = 1
|
||||
if("Faction")
|
||||
var/new_faction = sanitize(input(user,"Which faction would you like to put on this card?","Agent Card Faction", employer_faction) as null|text)
|
||||
if(!isnull(new_faction) && CanUseTopic(user,state))
|
||||
@@ -250,7 +243,6 @@
|
||||
name = initial(name)
|
||||
registered_name = initial(registered_name)
|
||||
unset_registered_user()
|
||||
religion = initial(religion)
|
||||
sex = initial(sex)
|
||||
employer_faction = initial(employer_faction)
|
||||
to_chat(user, "<span class='notice'>All information has been deleted from \the [src].</span>")
|
||||
@@ -277,4 +269,4 @@
|
||||
/datum/card_state
|
||||
var/name
|
||||
var/icon_state
|
||||
var/item_state
|
||||
var/item_state
|
||||
@@ -304,7 +304,7 @@ INITIALIZE_IMMEDIATE(/mob/abstract/new_player)
|
||||
if(character.mind.role_alt_title)
|
||||
rank = character.mind.role_alt_title
|
||||
// can't use their name here, since cyborg namepicking is done post-spawn, so we'll just say "A new Cyborg has arrived"/"A new Android has arrived"/etc.
|
||||
global_announcer.autosay("A new[rank ? " [rank]" : " visitor" ] [join_message ? join_message : "has arrived on the station"].", "Arrivals Announcement Computer")
|
||||
global_announcer.autosay("A new[rank ? " [rank]" : " visitor" ] [join_message ? join_message : "has arrived on the [current_map.station_type]"].", "Arrivals Announcer")
|
||||
|
||||
/mob/abstract/new_player/proc/LateChoices()
|
||||
if(!istype(late_choices_ui))
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
/datum/ntnet_user/proc/generateUsernameIdCard(var/obj/item/card/id/card)
|
||||
if(!card)
|
||||
return "Unknown"
|
||||
return "[card.registered_name] ([card.assignment])"
|
||||
return "[card.registered_name], [card.assignment]"
|
||||
|
||||
/datum/ntnet_user/proc/generateUsernameSilicon(var/mob/living/silicon/silicon)
|
||||
return silicon.name
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
/obj/item/modular_computer/handheld/pda
|
||||
name = "PDA"
|
||||
name = "\improper PDA"
|
||||
lexical_name = "tablet"
|
||||
desc = "The latest in portable microcomputer solutions from Thinktronic Systems, LTD."
|
||||
desc = "A personal data assistant. The latest in portable microcomputer solutions from Thinktronic Systems LTD."
|
||||
icon = 'icons/obj/pda.dmi'
|
||||
item_icons = list(
|
||||
slot_l_hand_str = 'icons/mob/items/device/lefthand_device.dmi',
|
||||
slot_r_hand_str = 'icons/mob/items/device/righthand_device.dmi',
|
||||
)
|
||||
)
|
||||
icon_state = "pda"
|
||||
item_state = "electronic"
|
||||
icon_state_screensaver = "off"
|
||||
@@ -30,4 +30,4 @@
|
||||
icon = 'icons/obj/pda_slate.dmi'
|
||||
|
||||
/obj/item/modular_computer/handheld/pda/smart
|
||||
icon = 'icons/obj/pda_smart.dmi'
|
||||
icon = 'icons/obj/pda_smart.dmi'
|
||||
@@ -1,7 +1,7 @@
|
||||
/obj/item/computer_hardware/card_slot
|
||||
name = "RFID card slot"
|
||||
desc = "Slot that allows this computer to write data on RFID cards. Necessary for some programs to run properly."
|
||||
power_usage = 10 //W
|
||||
power_usage = 10 // W
|
||||
critical = FALSE
|
||||
icon_state = "cardreader"
|
||||
hardware_size = 1
|
||||
@@ -9,13 +9,14 @@
|
||||
|
||||
var/obj/item/card/id/stored_card
|
||||
|
||||
// Storing items (We PDAs now boys)
|
||||
var/list/allowed_items = list(/obj/item/pen,
|
||||
/obj/item/lipstick,
|
||||
/obj/item/device/flashlight/pen,
|
||||
/obj/item/clothing/mask/smokable/cigarette
|
||||
)
|
||||
var/obj/item/stored_item //Used for pen, crayon, and lipstick insertion/removal
|
||||
// Storing Items
|
||||
var/list/allowed_items = list(
|
||||
/obj/item/pen,
|
||||
/obj/item/lipstick,
|
||||
/obj/item/device/flashlight/pen,
|
||||
/obj/item/clothing/mask/smokable/cigarette
|
||||
)
|
||||
var/obj/item/stored_item // Used for pen insertion and removal.
|
||||
|
||||
/obj/item/computer_hardware/card_slot/Destroy()
|
||||
if(parent_computer?.card_slot == src)
|
||||
@@ -35,7 +36,7 @@
|
||||
if(parent_computer)
|
||||
parent_computer.verbs += /obj/item/modular_computer/proc/eject_id
|
||||
parent_computer.initial_name = parent_computer.name
|
||||
parent_computer.name = "[parent_computer.name] ([id.registered_name] ([id.assignment]))"
|
||||
parent_computer.name = "[parent_computer.name] - [id.registered_name], [id.assignment]"
|
||||
|
||||
/obj/item/computer_hardware/card_slot/proc/eject_id(mob/user)
|
||||
if(!stored_card)
|
||||
@@ -48,4 +49,4 @@
|
||||
|
||||
if(parent_computer)
|
||||
parent_computer.verbs -= /obj/item/modular_computer/proc/eject_id
|
||||
parent_computer.name = parent_computer.initial_name
|
||||
parent_computer.name = parent_computer.initial_name
|
||||
@@ -141,7 +141,7 @@
|
||||
return
|
||||
|
||||
access = ID.access
|
||||
auth_name = "[ID.registered_name] ([ID.assignment])"
|
||||
auth_name = "[ID.registered_name], [ID.assignment]"
|
||||
dna_hash = ID.dna_hash
|
||||
|
||||
if (!access || !istype(access))
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
author: SleepyGemmy
|
||||
|
||||
delete-after: True
|
||||
|
||||
changes:
|
||||
- tweak: "Makes identification card's names flow better when read."
|
||||
- tweak: "Cleans up and improves the guest pass terminal's code."
|
||||
- bugfix: "Makes the arrivals announcer announce the map type instead of just \"station\"."
|
||||
Reference in New Issue
Block a user