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))); }