diff --git a/code/modules/paperwork/ticketmachine.dm b/code/modules/paperwork/ticketmachine.dm
index ab6e8da01d4..9a4c306d85f 100644
--- a/code/modules/paperwork/ticketmachine.dm
+++ b/code/modules/paperwork/ticketmachine.dm
@@ -18,19 +18,23 @@
var/cooldown = 50
var/ready = TRUE
var/list/ticket_holders = list()
- var/list/obj/item/ticket_machine_ticket/tickets = list()
+ var/list/tickets = list()
var/id = 1
+/obj/machinery/ticket_machine/Destroy()
+ ticket_holders.Cut()
+ ..()
+
/obj/machinery/ticket_machine/emag_act(mob/user) //Emag the ticket machine to dispense burning tickets, as well as randomize its number to destroy the HoP's mind.
if(emagged)
return
to_chat(user, "You overload [src]'s bureaucratic logic circuitry to its MAXIMUM setting.")
- ticket_number = rand(0,max_number)
+ ticket_number = rand(0, max_number)
current_number = ticket_number
emagged = TRUE
- if(tickets.len)
+ if(length(tickets))
for(var/obj/item/ticket_machine_ticket/ticket in tickets)
- ticket.audible_message("\the [ticket] disperses!")
+ ticket.visible_message("\the [ticket] disperses!")
qdel(ticket)
tickets.Cut()
update_icon()
@@ -43,14 +47,16 @@
if(current_number > ticket_number)
return
if(current_number && !(emagged) && tickets[current_number])
- tickets[current_number].audible_message("\the [tickets[current_number]] disperses!")
+ var/obj/item/ticket_machine_ticket/ticket = tickets[current_number]
+ ticket.audible_message("\the [tickets[current_number]] vibrates!")
qdel(tickets[current_number])
if(current_number < ticket_number)
current_number ++ //Increment the one we're serving.
playsound(src, 'sound/misc/announce_dig.ogg', 50, FALSE)
atom_say("Now serving ticket #[current_number]!")
if(!(emagged) && tickets[current_number])
- tickets[current_number].audible_message("\the [tickets[current_number]] vibrates!")
+ var/obj/item/ticket_machine_ticket/ticket = tickets[current_number]
+ ticket.audible_message("\the [tickets[current_number]] vibrates!")
update_icon() //Update our icon here rather than when they take a ticket to show the current ticket number being served
/obj/machinery/ticket_machine_button
@@ -68,7 +74,7 @@
/obj/machinery/ticket_machine_button/attack_hand(mob/user)
if(allowed(usr) || user.can_advanced_admin_interact())
- for(var/obj/machinery/ticket_machine/M in world)
+ for(var/obj/machinery/ticket_machine/M in GLOB.machines)
if(M.id == id)
if(cooldown)
return
@@ -107,12 +113,13 @@
to_chat(user, "You start to refill [src]'s ticket holder (doing this will reset its ticket count!).")
if(do_after(user, 30, target = src))
to_chat(user, "You insert [I] into [src] as it whirs nondescriptly.")
+ user.drop_item()
qdel(I)
ticket_number = 0
current_number = 0
- if(tickets.len)
+ if(length(tickets))
for(var/obj/item/ticket_machine_ticket/ticket in tickets)
- ticket.audible_message("\the [ticket] disperses!")
+ ticket.visible_message("\the [ticket] disperses!")
qdel(ticket)
tickets.Cut()
max_number = initial(max_number)