Пример #1
0
        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);
        }
Пример #2
0
        // 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);
        }
Пример #3
0
        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 !");
            }
        }
Пример #4
0
        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();
                    }
                }
            }
        }
Пример #5
0
        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");
            }
        }
Пример #6
0
        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 !");
            }
        }