From 5754ba204f26693d9192f414d1c84f9741b64e13 Mon Sep 17 00:00:00 2001 From: Chinsky Date: Wed, 18 Dec 2013 11:09:12 +0400 Subject: [PATCH 1/3] Adds guest passes. They act like IDs, but have limited duration (up to 30 minutes). When time is up, all access is erased from them. Adds guest pass terminal, which issues these. Anyone can issue them, but only to areas their ID has access to. All issued passes are logged in terminals. --- baystation12.dme | 1 + code/WorkInProgress/Chinsky/guestpass.dm | 181 +++++++++++++++++++++++ icons/obj/card.dmi | Bin 4696 -> 5200 bytes icons/obj/computer.dmi | Bin 72567 -> 73753 bytes 4 files changed, 182 insertions(+) create mode 100644 code/WorkInProgress/Chinsky/guestpass.dm diff --git a/baystation12.dme b/baystation12.dme index 0695839aea..f57f8df08b 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1299,6 +1299,7 @@ #include "code\WorkInProgress\Cael_Aislinn\Supermatter\LaserComputer.dm" #include "code\WorkInProgress\Cael_Aislinn\Supermatter\ZeroPointLaser.dm" #include "code\WorkInProgress\Chinsky\ashtray.dm" +#include "code\WorkInProgress\Chinsky\guestpass.dm" #include "code\WorkInProgress\Cib\MedicalSideEffects.dm" #include "code\WorkInProgress\kilakk\fax.dm" #include "code\WorkInProgress\Mini\atmos_control.dm" diff --git a/code/WorkInProgress/Chinsky/guestpass.dm b/code/WorkInProgress/Chinsky/guestpass.dm new file mode 100644 index 0000000000..9c30dd7359 --- /dev/null +++ b/code/WorkInProgress/Chinsky/guestpass.dm @@ -0,0 +1,181 @@ +/obj/item/weapon/card/id/guest + name = "guest pass" + desc = "Allows temporary access to station areas." + icon_state = "guest" + + var/expiration_time = 0 + var/reason = "NOT SPECIFIED" + +/obj/item/weapon/card/id/guest/New() + processing_objects.Add(src) + +/obj/item/weapon/card/id/guest/Del() + processing_objects.Remove(src) + ..() + +/obj/item/weapon/card/id/guest/process() + if (world.time > expiration_time) + access = null + icon_state = "guest_invalid" + processing_objects.Remove(src) + +/obj/item/weapon/card/id/guest/examine() + ..() + if (world.time < expiration_time) + usr << "\blue This pass expires at [worldtime2text(expiration_time)]." + else + usr << "\red It expired at [worldtime2text(expiration_time)]." + +/obj/item/weapon/card/id/guest/read() + if (world.time > expiration_time) + usr << "This pass expired at [worldtime2text(expiration_time)]." + else + usr << "This pass expires at [worldtime2text(expiration_time)]." + usr << "It grants access to following areas:" + for (var/A in access) + usr << "[get_access_desc(A)]." + usr << "Issuing reason: [reason]." + return + + +/obj/machinery/computer/guestpass + name = "guest pass terminal" + icon_state = "guest" + density = 0 + + + var/obj/item/weapon/card/id/giver + var/list/accesses = list() + var/giv_name = "NOT SPECIFIED" + var/reason = "NOT SPECIFIED" + var/duration = 0 + + var/list/internal_log = list() + var/mode = 0 // 0 - making pass, 1 - viewing logs + +/obj/machinery/computer/guestpass/attackby(obj/O, mob/user) + if(istype(O, /obj/item/weapon/card/id)) + user.drop_item() + O.loc = src + giver = O + updateUsrDialog() + +/obj/machinery/computer/guestpass/attack_ai(var/mob/user as mob) + return attack_hand(user) + +/obj/machinery/computer/guestpass/attack_paw(var/mob/user as mob) + return attack_hand(user) + +/obj/machinery/computer/guestpass/attack_hand(var/mob/user as mob) + if(..()) + return + + user.set_machine(src) + var/dat + + if (mode == 1) //Logs + dat += "

Activity log


" + for (var/entry in internal_log) + dat += "[entry]

" + dat += "Print
" + dat += "Back
" + else + dat += "

Guest pass terminal #[uid]


" + dat += "View activity log

" + dat += "Issuing ID: [giver]
" + dat += "Issued to: [giv_name]
" + dat += "Reason: [reason]
" + dat += "Duration (minutes): [duration] m
" + dat += "Access to areas:
" + if (giver && giver.access) + for (var/A in giver.access) + var/area = get_access_desc(A) + if (A in accesses) + area = "[area]" + dat += "[area]
" + dat += "
Issue pass
" + + user << browse(dat, "window=guestpass;size=400x520") + onclose(user, "guestpass") + + +/obj/machinery/computer/guestpass/Topic(href, href_list) + if(..()) + return + usr.set_machine(src) + if (href_list["mode"]) + mode = text2num(href_list["mode"]) + + if (href_list["choice"]) + switch(href_list["choice"]) + if ("giv_name") + var/nam = input("Person pass is issued to", "Name", name) + if (nam) + giv_name = nam + if ("reason") + var/reas = input("Reason why pass is issued", "Reason", reason) + reason = reas + if ("duration") + var/dur = input("Duration (in minutes) during which pass is valid.", "Duration") as num + if (dur > 0 && dur < 30) + duration = dur + else + usr << "\red 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"]) + switch(href_list["action"]) + if ("id") + if (giver) + if(ishuman(usr)) + giver.loc = usr.loc + if(!usr.get_active_hand()) + usr.put_in_hands(giver) + giver = null + else + giver.loc = src.loc + giver = null + else + var/obj/item/I = usr.get_active_hand() + if (istype(I, /obj/item/weapon/card/id)) + usr.drop_item() + I.loc = src + giver = I + updateUsrDialog() + + if ("print") + var/dat = "

Activity log of guest pass terminal #[uid]


" + for (var/entry in internal_log) + dat += "[entry]

" + //usr << "Printing the log, standby..." + //sleep(50) + var/obj/item/weapon/paper/P = new/obj/item/weapon/paper( loc ) + P.name = "activity log" + P.info = dat + + if ("issue") + if (giver) + 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: " + for (var/i=1 to accesses.len) + var/A = accesses[i] + if (A) + var/area = get_access_desc(A) + entry += "[i > 1 ? ", [area]" : "[area]"]" + entry += ". Expires at [worldtime2text(world.time + duration*10*60)]." + internal_log.Add(entry) + + var/obj/item/weapon/card/id/guest/pass = new(src.loc) + pass.access = accesses.Copy() + pass.registered_name = giv_name + pass.expiration_time = world.time + duration*10*60 + pass.reason = reason + pass.name = "guest pass #[number]" + else + usr << "\red Cannot issue pass without issuing ID." + updateUsrDialog() + return \ No newline at end of file diff --git a/icons/obj/card.dmi b/icons/obj/card.dmi index 02f432f3dd683e191add7cf64553e03c5f17ff38..4a8c1d3b4622933911b2dacb7b2a6152ed10f950 100644 GIT binary patch literal 5200 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

P$0}Wn}(Sx_MbP^Pl^3^-HL_a4jKT*B= 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 HfsFbe#oYUi diff --git a/icons/obj/computer.dmi b/icons/obj/computer.dmi index 632aee5f3bbe375211cdf3a70369dc148cf66778..de9a335a701ac3937e8657985694fdd6161a6db1 100644 GIT binary patch delta 28031 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 Date: Sun, 22 Dec 2013 07:53:17 +0400 Subject: [PATCH 2/3] Guest pass does not require to be processed anymore. Also agent IDs cannot copy access off them now (I think it would make them too powerful) --- code/WorkInProgress/Chinsky/guestpass.dm | 33 ++++++++++++------------ 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/code/WorkInProgress/Chinsky/guestpass.dm b/code/WorkInProgress/Chinsky/guestpass.dm index 9c30dd7359..1e2f3b8a95 100644 --- a/code/WorkInProgress/Chinsky/guestpass.dm +++ b/code/WorkInProgress/Chinsky/guestpass.dm @@ -1,23 +1,20 @@ +///////////////////////////////////////////// +//Guest pass //////////////////////////////// +///////////////////////////////////////////// /obj/item/weapon/card/id/guest name = "guest pass" desc = "Allows temporary access to station areas." icon_state = "guest" + var/temp_access = list() //to prevent agent cards stealing access as permanent var/expiration_time = 0 var/reason = "NOT SPECIFIED" -/obj/item/weapon/card/id/guest/New() - processing_objects.Add(src) - -/obj/item/weapon/card/id/guest/Del() - processing_objects.Remove(src) - ..() - -/obj/item/weapon/card/id/guest/process() +/obj/item/weapon/card/id/guest/GetAccess() if (world.time > expiration_time) - access = null - icon_state = "guest_invalid" - processing_objects.Remove(src) + return access + else + return temp_access /obj/item/weapon/card/id/guest/examine() ..() @@ -31,12 +28,16 @@ usr << "This pass expired at [worldtime2text(expiration_time)]." else usr << "This pass expires at [worldtime2text(expiration_time)]." - usr << "It grants access to following areas:" - for (var/A in access) - usr << "[get_access_desc(A)]." - usr << "Issuing reason: [reason]." + + usr << "It grants access to following areas:" + for (var/A in temp_access) + usr << "[get_access_desc(A)]." + usr << "Issuing reason: [reason]." return +///////////////////////////////////////////// +//Guest pass terminal//////////////////////// +///////////////////////////////////////////// /obj/machinery/computer/guestpass name = "guest pass terminal" @@ -170,7 +171,7 @@ internal_log.Add(entry) var/obj/item/weapon/card/id/guest/pass = new(src.loc) - pass.access = accesses.Copy() + pass.temp_access = accesses.Copy() pass.registered_name = giv_name pass.expiration_time = world.time + duration*10*60 pass.reason = reason From 4c4ee3eae5cc62538a1a1b238bcea1979c2fe069 Mon Sep 17 00:00:00 2001 From: Chinsky Date: Sun, 22 Dec 2013 23:14:23 +0400 Subject: [PATCH 3/3] Counting on machine controller to set uid was foolish of me. --- code/WorkInProgress/Chinsky/guestpass.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/WorkInProgress/Chinsky/guestpass.dm b/code/WorkInProgress/Chinsky/guestpass.dm index 1e2f3b8a95..8a959c5b76 100644 --- a/code/WorkInProgress/Chinsky/guestpass.dm +++ b/code/WorkInProgress/Chinsky/guestpass.dm @@ -54,6 +54,10 @@ var/list/internal_log = list() var/mode = 0 // 0 - making pass, 1 - viewing logs +/obj/machinery/computer/guestpass/New() + ..() + uid = "[rand(100,999)]-G[rand(10,99)]" + /obj/machinery/computer/guestpass/attackby(obj/O, mob/user) if(istype(O, /obj/item/weapon/card/id)) user.drop_item()