anchor.diff:            throw 'not supported';
         }
   
  -      _animationLayer.add(new TextAniRequest(texturePrefix, frameCount, squareOffset, delay));
  -    }
  +      _popAnimationLayer.add(new TextAniRequest(texturePrefix, frameCount, squareOffset, delay));
  +    }
  +  }
  +
  +  void _addDartAnimation(dartlib.Coordinate point) {
  +    final squareOffset = _dartAnimationOffset +
  +        new dartlib.Vector(SquareElement._size * point.x, SquareElement._size * point.y);
  +
  +    _dartAnimationLayer.add(new TextAniRequest('dart_fly_shadow', 56, squareOffset));
  +    _dartAnimationLayer.add(new TextAniRequest('dart_fly', 56, squareOffset));
     }
   
     void _squareClicked(ElementMouseEventArgs args) {
  
positive.code:   dartlib.Array2d<SquareElement> _elements;
  
    GameElement(this._targetMode) :
      _animationLayer = new TextureAnimationElement(0, 0),
      _targetChanged = new dartlib.EventHandle(),
      super(100, 100) {
      _animationLayer.registerParent(this);
      _animationLayerTx = _animationLayer.addTransform();
    }
  
    Game get game => _game;
  
negative.code:   static const _backgroundHoleSize = 16 * SquareElement._size + 2 * _edgeOffset;
    static const _boardOffset = const dartlib.Vector(352, 96);
    static const _popExplodeAnimationOffset = const dartlib.Vector(-88, -88);
    static const _popAnimationHitFrame = 12;
  
    static const _dartAnimationOffset =
        const dartlib.Vector(-1065 + SquareElement._size ~/ 2,
            -815 + SquareElement._size ~/ 2);
  
  
    final TextureAnimationElement _popAnimationLayer, _dartAnimationLayer;
    final bool _targetMode;
    final dartlib.EventHandle _targetChanged;
  
    dartlib.AffineTransform _popLayerTx, _dartLayerTx;
    int _targetX, _targetY;
    double _scale;
    dartlib.Vector _scaledBoardOffset;
  