public IEnumerable <IFigure> GetPathFigures() { int indexLine = 0; Game.PBPlayer player = this.GetPlayer(ref indexLine); if (player != null) { return(player.GetPathFigure(player, null, indexLine)); } return(null); }
// 09-20-2010 Scott public Game.PBPlayer GetSelectedPlayer() { Game.PBPlayer player = null; IEnumerable <IFigure> fs = GetSelectedFigures(); if (fs.Count() > 0 && fs.Any(f => f is Game.PBPlayer)) { IEnumerable <Game.PBPlayer> players = fs.OfType <Game.PBPlayer>(); if (players.Count() > 0) { player = players.Last(); } } return(player); }
protected override void MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { bool bSuccess = false; offsetFromFigureLeftTopCorner = Coordinates(e); oldCoordinates = offsetFromFigureLeftTopCorner; IFigure found = Drawing.Figures.HitTest(offsetFromFigureLeftTopCorner); if (found != null && found is Game.PBPlayer) { Game.PBPlayer targetPlayer = found as Game.PBPlayer; IEnumerable <IFigure> figures = Drawing.GetSelectedFigures(); if (figures != null && figures.Count() > 0) { IFigure source = figures.ElementAt(0); if (source is Game.PBPlayer) { Game.PBPlayer sourcePlayer = source as Game.PBPlayer; if (sourcePlayer.ScoutType != targetPlayer.ScoutType) { sourcePlayer.Assignment = targetPlayer.Name; Drawing.SetDefaultBehavior(); bSuccess = true; } } } } if (!bSuccess) { MessageBox.Show("You must select a player of opposing team !"); } }
protected override void MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { offsetFromFigureLeftTopCorner = Coordinates(e); oldCoordinates = offsetFromFigureLeftTopCorner; IEnumerable <IFigure> figures = Drawing.GetSelectedFigures(); if (figures != null && figures.Count() > 0) { IFigure source = figures.ElementAt(0); if (source is Game.PBPlayer) { Game.PBPlayer sourcePlayer = source as Game.PBPlayer; IFigure endFigure = sourcePlayer.GetEndFigure(); if (endFigure == null) { endFigure = source; } if (!(endFigure is Game.PBPlayer) && !(endFigure is Game.Zone) && (endFigure is FreePoint)) { if (endFigure.Dependents.Count > 0) { PBLine endline = endFigure.Dependents.ElementAt(0) as PBLine; if (endline != null && endline.CapType == CapType.Arrow) { IFigure underMouse = CreatePointAtCurrentPosition(offsetFromFigureLeftTopCorner, false); PBLine line = new PBLine(); List <IFigure> dependencies = new List <IFigure>(); dependencies.Add(endFigure); dependencies.Add(underMouse); line.Dependencies = dependencies; Drawing.Add(line); if (!Drawing.DrawingMode) { line.CapType = CapType.BlockArea; line.StrokeColor = Webb.Playbook.Data.ColorSetting.Instance.BlockColor; } Drawing.Figures.UpdateVisual(); } } } else if (endFigure == source) { IFigure underMouse = CreatePointAtCurrentPosition(offsetFromFigureLeftTopCorner, false); PBLine line = new PBLine(); List <IFigure> dependencies = new List <IFigure>(); dependencies.Add(endFigure); dependencies.Add(underMouse); line.Dependencies = dependencies; Drawing.Add(line); if (!Drawing.DrawingMode) { line.CapType = CapType.BlockArea; line.StrokeColor = Webb.Playbook.Data.ColorSetting.Instance.BlockColor; } Drawing.Figures.UpdateVisual(); } } } }
private void AddPlayer(Game.PBPlayer player) { if (drawing != null) { // 08-16-2010 Scott int nColor = nFillColor; nColor = player.FillColor.ToRgbInt(); // end int nPenStyle = (int)AdvPenStyle.Solid; Point pt = ToDiagramPoint(player.Coordinates); if (pt.X < 0) { pt.X = DiagramSize.Width / 5; } if (pt.X > DiagramSize.Width) { pt.X = DiagramSize.Width * 4 / 5; } int len = (int)ToDiagramLength(player.Radius); if (player.Dash) { nPenStyle = (int)AdvPenStyle.Dash; } switch (player.Appearance) { case Webb.Playbook.Geometry.Game.PlayerAppearance.Text: break; case Webb.Playbook.Geometry.Game.PlayerAppearance.Square: diagram.AddSquare((int)(pt.X - len / 2), (int)(pt.Y - len / 2), (int)(pt.X + len / 2), (int)(pt.Y + len / 2), nPenStyle, (int)player.StrokeThickness, nPenColor, nColor, 2); break; default: diagram.AddCircle((int)(pt.X - len / 2), (int)(pt.Y - len / 2), (int)(pt.X + len / 2), (int)(pt.Y + len / 2), nPenStyle, (int)player.StrokeThickness, nPenColor, nColor, 2); break; } // 08-16-2010 Scott int nStart = (int)(pt.X - len / 2); // end if (player.TextVisible) { int fontSize = (int)(len * 2 / 3) > 0 ? (int)(len * 2 / 3) : len; int count = player.Text.Length > 1 ? player.Text.Length : 1; if (player.Text.Length == 1) { nStart += 4; } else if (player.Text.Length == 2) { nStart += 2; } diagram.AddText(nStart + System.Math.Max((len - fontSize * count) / 2, 1), (int)(pt.Y - len / 2) + (len - fontSize) / 2, (int)(pt.X + len / 2), (int)(pt.Y + len / 2), 0, 1, player.TextColor.ToRgbInt(), 0, 2, player.Text, "", fontSize); } //diagram.AddCircle(0, 0, 50, 50, 0, 2, nPenColor, nFillColor, 2); //diagram.AddEllipse(50, 50, 200, 100, 0, 3, nPenColor, nFillColor, 2); //diagram.AddLine(0, 0, 650, 400, 0, 1, nPenColor, 0, 0, (int)AdvLineEndType.styleBlock); //diagram.AddRectangle(200, 200, 250, 250, 0, 1, nPenColor, nFillColor, 2); //diagram.AddSquare(200, 400, 400, 600, 0, 3, nPenColor, nFillColor, 2); //diagram.AddText(300, 200, 400, 300, 0, 2, nTextColor, nFillColor, 2, "Scott", "", 30); //diagram.AddBackgroundBitmap(@"D:\untitled2.bmp"); } }
protected override void MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { bool bSuccess = false; offsetFromFigureLeftTopCorner = Coordinates(e); oldCoordinates = offsetFromFigureLeftTopCorner; IFigure found = Drawing.Figures.HitTest(offsetFromFigureLeftTopCorner, typeof(Game.PBPlayer)); if (found != null && found is Game.PBPlayer) { Game.PBPlayer targetPlayer = found as Game.PBPlayer; IEnumerable <IFigure> figures = Drawing.GetSelectedFigures(); if (figures != null && figures.Count() > 0) { IFigure source = figures.ElementAt(0); if (source is Game.PBPlayer) { Game.PBPlayer sourcePlayer = source as Game.PBPlayer; if (sourcePlayer.ScoutType != targetPlayer.ScoutType) { IFigure endfigure = sourcePlayer.GetEndFigure(); if (endfigure == null) { endfigure = source; } if (!(endfigure is Game.PBPlayer) && !(endfigure is Game.Zone) && (endfigure is FreePoint)) { if (endfigure.Dependents.Count > 0) { PBLine endline = endfigure.Dependents.ElementAt(0) as PBLine; if (endline != null /*&& endline.CapType == CapType.Arrow*/) { PBLine line = new PBLine(); List <IFigure> dependencies = new List <IFigure>(); dependencies.Add(endfigure); dependencies.Add(found); line.Dependencies = dependencies; sourcePlayer.ChangeLineType(CapType.Arrow); Drawing.Add(line); if (!Drawing.DrawingMode) { line.CapType = CapType.Block; line.StrokeColor = Webb.Playbook.Data.ColorSetting.Instance.BlockColor; } Drawing.Figures.UpdateVisual(); Drawing.SetDefaultBehavior(); bSuccess = true; } } } else if (endfigure == source) { PBLine line = new PBLine(); List <IFigure> dependencies = new List <IFigure>(); dependencies.Add(endfigure); dependencies.Add(found); line.Dependencies = dependencies; sourcePlayer.ChangeLineType(CapType.Arrow); Drawing.Add(line); if (!Drawing.DrawingMode) { line.CapType = CapType.Block; line.StrokeColor = Webb.Playbook.Data.ColorSetting.Instance.BlockColor; } Drawing.Figures.UpdateVisual(); Drawing.SetDefaultBehavior(); bSuccess = true; } } } } } if (!bSuccess) { MessageBox.Show("You must select a player of opposing team !"); } }