private void IsoDrawRouter(INetworkController router, DrawingContext drawingContext)
        {
            Size  size = new Size(this.vh.IsoLenght(), (double)this.vh.IsoLenght() * ServerDrawInfo.RouterHeightsPropotion);
            Point p    = this.vh.DrawPosition(new Point(router.X, router.Y));

            p = new Point(p.X - size.Width + 1, p.Y - size.Height + 1);

            Rect position = new Rect(p, size);

            if (router.IsEnable)
            {
                ServerDrawInfo sDITemp     = this.sdi[router.Owner.Type] as ServerDrawInfo;
                ImageBrush     routerImage = sDITemp.Router;
                drawingContext.DrawRectangle(routerImage, null, position);
                this.LifeTextDrawTransform(router.Life.ToString(), drawingContext, Brushes.Black, p);
            }
            else
            {
                ImageBrush routerImage = (this.sdi[PlayerType.Nobody] as ServerDrawInfo).Router;
                drawingContext.DrawRectangle(routerImage, null, position);
                IInactiveNetworkController iNCTemp = router as IInactiveNetworkController;
                this.LifeTextDrawTransform($"{iNCTemp.CapturePoint}/{iNCTemp.CaptureLimit}", drawingContext, router.Owner != null ? (this.sdi[router.Owner.Type] as ServerDrawInfo).SolidColor : Brushes.Black, p);
            }

            DrawedNetworkControllers.Add(router, position);
        }
        /// <summary>
        /// Renders the map and the objects
        /// </summary>
        /// <param name="drawingContext">Gets drawing contexts</param>
        protected override void OnRender(DrawingContext drawingContext)
        {
            if (this.gm != null)
            {
                this.DrawBackgroundImage(drawingContext);

                DrawedNetworkControllers.Clear();
                this.IsoDrawMap(drawingContext);
                foreach (var item in this.gm.GameObjects)
                {
                    if (item is INetworkController nCTemp)
                    {
                        this.IsoDrawCabel(nCTemp, drawingContext);
                    }
                }

                foreach (var item in this.gm.GameObjects)
                {
                    IFireWall fWTemp = item as IFireWall;
                    IInactiveNetworkController iNCTemp = item as IInactiveNetworkController;

                    if (item is IServerNetworkController sNCTemp)
                    {
                        this.IsoDrawNetworkControl(sNCTemp, drawingContext);
                    }
                    else if (fWTemp != null)
                    {
                        this.IsoDrawFirewall(fWTemp, drawingContext);
                    }
                    else if (iNCTemp != null)
                    {
                        this.IsoDrawRouter(iNCTemp, drawingContext);
                    }
                }

                this.DrawTimeScore(drawingContext);
            }
        }
        private void IsoDrawNetworkControl(INetworkController networkControlObject, DrawingContext drawingContext)
        {
            // double arány = ServerDrawInfo.HeightsPropotion[(networkControlObject as IServerNetworkController).Level];
            IServerNetworkController sNCTemp = networkControlObject as IServerNetworkController;
            Size size = new Size(this.vh.IsoLenght(), (double)this.vh.IsoLenght() * ServerDrawInfo.HeightsPropotion[sNCTemp.Level]);

            // ServerDrawInfo.PicSizes[(networkControlObject as IServerNetworkController).Level];
            Point p = this.vh.DrawPosition(new Point(networkControlObject.X, networkControlObject.Y));

            p = new Point(p.X - size.Width + 1, p.Y - size.Height + 1);
            Rect position = new Rect(p, size);

            if (networkControlObject.IsEnable)
            {
                ServerDrawInfo sDITemp     = this.sdi[networkControlObject.Owner.Type] as ServerDrawInfo;
                ImageBrush     serverImage = sDITemp.ServerImages[sNCTemp.Level];
                drawingContext.DrawRectangle(serverImage, null, position);
                this.LifeTextDrawTransform(networkControlObject.Life.ToString(), drawingContext, Brushes.Black, p);
            }
            else
            {
                ImageBrush serverImage = (this.sdi[PlayerType.Nobody] as ServerDrawInfo).ServerImages[sNCTemp.Level];
                drawingContext.DrawRectangle(serverImage, null, position);
                IInactiveNetworkController iNCTemp = networkControlObject as IInactiveNetworkController;
                this.LifeTextDrawTransform(
                    $"{iNCTemp.CapturePoint}/{iNCTemp.CaptureLimit}\n",
                    drawingContext,
                    networkControlObject.Owner != null ? (this.sdi[networkControlObject.Owner.Type] as ServerDrawInfo).SolidColor : Brushes.Black,
                    p);
            }

            DrawedNetworkControllers.Add(networkControlObject, position);

            // Original Drawtext
            // drawingContext.DrawText(
            //    formattedText,
            //    VectorHandler.VH.IsoPosition(new Point(networkControlObject.X, networkControlObject.Y - 50)));
        }