anchor.diff:        pos = world_to_img r.x, r.y
         $.extend(rune_data[0], {'rune_type': r.rune_type}, pos)
   
  +    # TODO: optimization: have a queue of all building hp changes (sorted by time) and only
  +    #   make the bldg_data structure if the position (current time) in the queue changes?
       # building data
       bldg_data = []
  +    bldg_destroyed = []
       for name,threshtimes of bldg_hp
  -      # if the building isn't destroyed
  -      if threshtimes.length is 0 or (threshtimes[threshtimes.length - 1].hp is 0 and threshtimes[threshtimes.length - 1].time > time)
  +      # if the building is destroyed then mark it, else get the info to draw it and its hp bar
  +      if threshtimes.length > 0 and threshtimes[threshtimes.length - 1].hp is 0 and threshtimes[threshtimes.length - 1].time < time
  +        bldg_destroyed.push name
  +      else
           for threshold,idx in threshtimes
             if threshold.time > time
               break
  
positive.code:     bldg_data.sort((a,b) -> if a.y < b.y then -1 else (if a.y > b.y then 1 else 0))
  
      # filter bldg_data to a diff list for bldg_hpbars
  
  
      # DATA JOIN
  
negative.code:     bldg_icons = bldg_container.selectAll("image")
        .data(bldg_data, (d) -> d.name)
      bldg_hpbars = bldg_container.selectAll("rect")
        .data(bldg_hpdata, (d) -> d.name)
  
      # UPDATE
      hero_icons.transition().duration(time_interval).ease(d3.ease('linear'))
  