Got rid of IObstacle since it wasn't really adding much.  Renamed and refactored MaxDistance to MaxRange in Projectile.
Obstacle is now abstract with an IsDestructable property that is implemented by Crater and Rock.
Projectile now makes use of Obstacle.IsDestructable to deside if it should destroy the obstacle.