From c47cc200d550c33fa947dad688dcf5e21099a5bb Mon Sep 17 00:00:00 2001 From: MisterLayne Date: Thu, 28 Sep 2017 17:49:16 -0400 Subject: [PATCH] Makes guest passes great again! --- code/game/machinery/computer/guestpass.dm | 33 +++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/code/game/machinery/computer/guestpass.dm b/code/game/machinery/computer/guestpass.dm index b01b03f9b35..501bf910719 100644 --- a/code/game/machinery/computer/guestpass.dm +++ b/code/game/machinery/computer/guestpass.dm @@ -9,6 +9,7 @@ var/temp_access = list() //to prevent agent cards stealing access as permanent var/expiration_time = 0 + var/expired = 0 var/reason = "NOT SPECIFIED" /obj/item/weapon/card/id/guest/GetAccess() @@ -38,6 +39,38 @@ usr << "Issuing reason: [reason]." return +/obj/item/weapon/card/id/guest/attack_self(mob/living/user as mob) + if(user.a_intent == I_HURT) + if(icon_state == "guest_invalid") + to_chat(user, "This guest pass is already deactivated!") + return + + var/confirm = alert("Do you really want to deactivate this guest pass? (you can't reactivate it)", "Confirm Deactivation", "Yes", "No") + if(confirm == "Yes") + //rip guest pass \The [user] deactivates \the [src].") + icon_state = "guest_invalid" + expiration_time = world.time + expired = 1 + return ..() + +/obj/item/weapon/card/id/guest/New() + ..() + processing_objects.Add(src) + update_icon() + +/obj/item/weapon/card/id/guest/Destroy() + processing_objects.Remove(src) + return ..() + +/obj/item/weapon/card/id/guest/process() + if(expired == 0 && world.time >= expiration_time) + visible_message("\The [src] flashes a few times before turning red.") + icon_state = "guest_invalid" + expired = 1 + world.time = expiration_time + return + ///////////////////////////////////////////// //Guest pass terminal//////////////////////// /////////////////////////////////////////////