anchor.diff:  /datum/controller/subsystem/timer/fire(resumed = FALSE)
   	var/lit = last_invoke_tick
   	var/last_check = world.time - TIMER_NO_INVOKE_WARNING
  -
  +	var/list/bucket_list = src.bucket_list
   	if(!bucket_count)
   		last_invoke_tick = world.time
   
  
positive.code: 	var/static/datum/timedevent/timer
  	var/static/datum/timedevent/head
  
  	if (practical_offset > BUCKET_LEN || (!resumed  && length(src.bucket_list) != BUCKET_LEN || world.tick_lag != bucket_resolution))
  		shift_buckets()
  		resumed = FALSE
  
  
  	if (!resumed)
  		timer = null
  		head = null
  
  	var/list/bucket_list = src.bucket_list
  
  	while (practical_offset <= BUCKET_LEN && head_offset + (practical_offset*world.tick_lag) <= world.time && !MC_TICK_CHECK)
  		if (!timer || !head || timer == head)
  
negative.code: 
  	spent.len = 0
  
  //formated this way to be runtime resistant
  /datum/controller/subsystem/timer/proc/get_timer_debug_string(datum/timedevent/TE)
  	. = "Timer: [TE]"
  	. += "Prev: [TE.prev ? TE.prev : "NULL"], Next: [TE.next ? TE.next : "NULL"]"
  	if(TE.spent)
  		. += ", SPENT"
  	if(QDELETED(TE))
  		. += ", QDELETED"
  
  /datum/controller/subsystem/timer/proc/shift_buckets()
  	var/list/bucket_list = src.bucket_list
  