# File lib/rbot/timer.rb, line 118 def tick if(@lasttime == 0) # don't do anything on the first tick @lasttime = Time.now return end @next_action_time = 0 diff = (Time.now - @lasttime).to_f @lasttime = Time.now @timers.each { |key,timer| timer.tick next if timer.blocked if(timer.due?) if(timer.run) # run once @timers.delete(key) end end if @next_action_time == 0 || timer.in < @next_action_time @next_action_time = timer.in end } #debug "ticked. now #{@timers.length} timers remain" #debug "next timer due at #{@next_action_time}" end