public PolygonObstacleBaseEventArgs(BCBlockGameState pgstate, cBall pBall, PolygonObstacle pObstacle)
 {
     _gameState = pgstate;
     _Ball = pBall;
     _Obstacle = pObstacle;
 }
 public PolygonObstacleHitEventArgs(BCBlockGameState pgstate, cBall pBall, PolygonObstacle pObstacle)
     : base(pgstate, pBall, pObstacle)
 {
 }
        protected bool InvokeObstacleHit(BCBlockGameState gstate,cBall Source,PolygonObstacle obstacle)
        {
            var copied = ObstacleHit;
            if (copied != null)
            {
                var created = new PolygonObstacleHitEventArgs(gstate, Source, obstacle);
                copied(this, created);
                return created.Cancel;
            }

            return false;
        }