mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-22 04:30:44 +01:00
* Hard Del Fixes, Ref Tracking Changes
This commit is contained in:
@@ -22,6 +22,16 @@
|
||||
var/list/ticket_holders = list()
|
||||
var/list/obj/item/ticket_machine_ticket/tickets = list()
|
||||
|
||||
/obj/machinery/ticket_machine/Initialize(mapload)
|
||||
. = ..()
|
||||
update_appearance()
|
||||
|
||||
/obj/machinery/ticket_machine/Destroy()
|
||||
for(var/obj/item/ticket_machine_ticket/ticket in tickets)
|
||||
ticket.source = null
|
||||
tickets.Cut()
|
||||
return ..()
|
||||
|
||||
MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/ticket_machine, 32)
|
||||
|
||||
/obj/machinery/ticket_machine/multitool_act(mob/living/user, obj/item/I)
|
||||
@@ -46,10 +56,6 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/ticket_machine, 32)
|
||||
tickets.Cut()
|
||||
update_appearance()
|
||||
|
||||
/obj/machinery/ticket_machine/Initialize(mapload)
|
||||
. = ..()
|
||||
update_appearance()
|
||||
|
||||
/obj/machinery/ticket_machine/proc/increment()
|
||||
if(current_number > ticket_number)
|
||||
return
|
||||
@@ -178,21 +184,21 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/ticket_machine, 32)
|
||||
if(ticket_number >= max_number)
|
||||
to_chat(user,span_warning("Ticket supply depleted, please refill this unit with a hand labeller refill cartridge!"))
|
||||
return
|
||||
if((user in ticket_holders) && !(obj_flags & EMAGGED))
|
||||
var/user_ref = REF(user)
|
||||
if((user_ref in ticket_holders) && !(obj_flags & EMAGGED))
|
||||
to_chat(user, span_warning("You already have a ticket!"))
|
||||
return
|
||||
playsound(src, 'sound/machines/terminal_insert_disc.ogg', 100, FALSE)
|
||||
ticket_number ++
|
||||
ticket_number++
|
||||
to_chat(user, span_notice("You take a ticket from [src], looks like you're ticket number #[ticket_number]..."))
|
||||
var/obj/item/ticket_machine_ticket/theirticket = new /obj/item/ticket_machine_ticket(get_turf(src))
|
||||
theirticket.name = "Ticket #[ticket_number]"
|
||||
theirticket.maptext = MAPTEXT(ticket_number)
|
||||
theirticket.saved_maptext = MAPTEXT(ticket_number)
|
||||
theirticket.ticket_number = ticket_number
|
||||
theirticket.source = src
|
||||
theirticket.owner = user
|
||||
theirticket.owner_ref = user_ref
|
||||
user.put_in_hands(theirticket)
|
||||
ticket_holders += user
|
||||
ticket_holders += user_ref
|
||||
tickets += theirticket
|
||||
if(obj_flags & EMAGGED) //Emag the machine to destroy the HOP's life.
|
||||
ready = FALSE
|
||||
@@ -214,9 +220,8 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/ticket_machine, 32)
|
||||
resistance_flags = FLAMMABLE
|
||||
max_integrity = 50
|
||||
var/saved_maptext = null
|
||||
var/mob/living/carbon/owner
|
||||
var/owner_ref // A ref to our owner. Doesn't need to be weak because mobs have unique refs
|
||||
var/obj/machinery/ticket_machine/source
|
||||
var/ticket_number
|
||||
|
||||
/obj/item/ticket_machine_ticket/attack_hand(mob/user, list/modifiers)
|
||||
. = ..()
|
||||
@@ -233,9 +238,8 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/ticket_machine, 32)
|
||||
update_appearance()
|
||||
|
||||
/obj/item/ticket_machine_ticket/Destroy()
|
||||
if(owner && source)
|
||||
source.ticket_holders -= owner
|
||||
source.tickets[ticket_number] = null
|
||||
owner = null
|
||||
if(source)
|
||||
source.ticket_holders -= owner_ref
|
||||
source.tickets -= src
|
||||
source = null
|
||||
return ..()
|
||||
|
||||
Reference in New Issue
Block a user