public virtual void Shoot(double rotation, int fromX, int fromY, MapBase map, double aimX, double aimY)
 {
     if (Content != null && this.Bullets != null && ammo > 0)
     {
         //TODO: Ray Trace & Muzzle Flash Goes Here
         int hitEnemies = 0;
         Ray2D ray = new Ray2D(new Vector2(fromX, fromY), new Vector2(float.Parse(aimX.ToString()), float.Parse(aimY.ToString())));
         ObjectBase o = ray.FirstIntersect(map.Objects);
         if (o != null)
         {
             o.OnHit(this, new Vector2(fromX, fromY));
             hitEnemies++;
             ObjectBase o2 = ray.IndexIntersect(map.Objects, 2);
             if (o2 != null)
             {
                 o2.OnHit(this, new Vector2(fromX, fromY));
                 float oDist = Vector2.Distance(new Vector2(fromX, fromY), o.Position);
                 float o2Dist = Vector2.Distance(new Vector2(fromX, fromY), o2.Position);
             }
         }
         ammo--;
     }
 }