/// <summary>
 /// Shows the page selector.(Pages in shop)
 /// </summary>
 /// <param name="graphObject">Graphic render object</param>
 private void ShowPageSelector(IGraphic graphObject)
 {
   if (_towerIcons.Count > Settings.LinesInOnePage * Settings.MaxTowersInLine)
   {
     ShopPageSelectorAction((int i, int dy, int xMouse, int yMouse) =>
     {
       //String
       graphObject.DrawString("Page " + (i + 1).ToString(CultureInfo.InvariantCulture), new Font("Arial", 14 * Scaling), new SolidBrush(Color.Black),
         new Point(
           Convert.ToInt32((_paginatorPos.X + (i % ElementsDelta) * ("Page " + (i + 1).ToString(CultureInfo.InvariantCulture)).Length * Settings.PixelsForOneSymbol) * Scaling),
           Convert.ToInt32((_paginatorPos.Y + PaginatorElementHeight * dy) * Scaling)));
       //Border line
       Color penColor = ((i + 1) == CurrentShopPage) ? Color.Red : Color.White;
       graphObject.DrawRectangle(new Pen(penColor, Settings.PenWidth * Scaling), BuildRectPageSelector(i, dy));
       return false;
     });
   }
 }
 /// <summary>
 /// Shows the tower.
 /// </summary>
 /// <param name="canva">The canva.</param>
 /// <param name="visibleStart">The visible start.</param>
 /// <param name="visibleFinish">The visible finish.</param>
 internal void ShowTower(IGraphic canva, Point visibleStart, Point visibleFinish)
 {
   //Checking, is tower visible map area or not
   bool flag = (((ArrayPos.X + 1) * Settings.ElemSize/* - CurrentTowerParams.AttackRadius */< visibleFinish.X * Settings.ElemSize) ||
                ((ArrayPos.Y + 1) * Settings.ElemSize/* - CurrentTowerParams.AttackRadius */< visibleFinish.Y * Settings.ElemSize));
   //if ((ArrayPos.Y >= VisibleFinish.Y) || (ArrayPos.X >= VisibleFinish.X))
   //if ((Flag)&&((ArrayPos.X < (VisibleStart.X-1)) || (ArrayPos.Y < (VisibleStart.Y-1))))
   if ((flag) && (!(((ArrayPos.X + 1) * Settings.ElemSize/* + CurrentTowerParams.AttackRadius */> visibleStart.X * Settings.ElemSize) ||
     ((ArrayPos.Y + 1) * Settings.ElemSize/* + CurrentTowerParams.AttackRadius */> visibleStart.Y * Settings.ElemSize))))
     flag = false;
   if (!flag) return;
   canva.DrawImage(CurrentTowerParams.Picture,
     Convert.ToInt32((-(CurrentTowerParams.Picture.Width / 2) + (ArrayPos.X + 1 - visibleStart.X) * Settings.ElemSize) * Scaling + Settings.DeltaX),
     Convert.ToInt32((-(CurrentTowerParams.Picture.Height / 2) + (ArrayPos.Y + 1 - visibleStart.Y) * Settings.ElemSize) * Scaling + Settings.DeltaY),
     Convert.ToInt32(CurrentTowerParams.Picture.Width * Scaling), Convert.ToInt32(CurrentTowerParams.Picture.Height * Scaling));
   if (_wasCrit == 0) return;
   _wasCrit--;
   //Critical strike notification
   canva.DrawString(
     string.Format("{0}!", CurrentTowerParams.Damage * CurrentTowerParams.CritMultiple),
       new Font("Arial", 20), new SolidBrush(Color.Red),
       new PointF(
         (-(CurrentTowerParams.Picture.Width / 2) + (ArrayPos.X + 1 - visibleStart.X) * Settings.ElemSize) * Scaling + Settings.DeltaX,
         (-(CurrentTowerParams.Picture.Height / 2) + (ArrayPos.Y + 1 - visibleStart.Y) * Settings.ElemSize) * Scaling + Settings.DeltaY));
 }