Esempio n. 1
0
        protected override void OnMouseDown(MouseEventArgs e)
        {
            base.OnMouseDown(e);

            RoboField field = CalcFieldHit(CalcPointHit(e.Location));

            if (field == null)
            {
                return;
            }

            if (e.Clicks > 1)
            {
                field.Rotate();
                if (e.Button == MouseButtons.Right)
                {
                    field.Rotate();
                    field.Rotate();
                }
            }
            else
            {
                DoDragDrop(field, e.Button == MouseButtons.Left ? DragDropEffects.Copy : DragDropEffects.Move);
            }
        }
Esempio n. 2
0
 static FieldToolbox()
 {
     _fieldRepository = new List <RoboField>();
     foreach (char encoded in BoardControl.IMAGENAMES.Keys.Where(elem => elem != 'X' && elem != 'B' && elem != 'a'))
     {
         _fieldRepository.Add(RoboField.DecodeField(encoded));
     }
 }
Esempio n. 3
0
        public virtual void DoPaint(RoboField roboField, Graphics g, RectangleF bounds)
        {
            if (BoardControl.IMAGES == null)
            {
                return;
            }

            Image image = BoardControl.IMAGES[roboField.EncodedField];

            g.DrawImage(image, bounds);
        }
Esempio n. 4
0
        protected override void OnMouseDown(MouseEventArgs e)
        {
            base.OnMouseDown(e);

            Point     location = CalcPointHit(e.Location);
            RoboField field    = CalcFieldHit(location);

            SelectedField = location;

            Refresh();

            if (field == null)
            {
                return;
            }

            DoDragDrop(field, DragDropEffects.Copy);
        }
Esempio n. 5
0
        private void HandleDropRoboField(DragEventArgs drgevent, RoboField field)
        {
            Point target = CalcPointHit(this.PointToClient(new Point(drgevent.X, drgevent.Y)));

            if (target == GUIHelper.NULLPOINT)
            {
                return;
            }

            switch (drgevent.Effect)
            {
            case DragDropEffects.Copy:
                Board.SetField(RoboField.CreateField(field.FieldType), target.X + 1, target.Y + 1);
                break;

            case DragDropEffects.Move:
                Board.SetField(RoboField.CreateField(FieldType.Empty), field.X, field.Y);
                Board.SetField(field, target.X + 1, target.Y + 1);
                break;
            }
        }
Esempio n. 6
0
        protected RoboBoard GetBlockingBoard(RoboPosition ownPosition, IEnumerable <RoboPosition> allPlayers)
        {
            RoboBoard board = Board.CopyBoard();

            if ((PluginSettings as RoboPlayerPluginSettings).PlayerCollision)
            {
                foreach (RoboPosition otherPosition in allPlayers)
                {
                    if (ownPosition.Equals(otherPosition) ||
                        board.GetField(otherPosition).IsDestination ||
                        otherPosition.IsDead)
                    {
                        continue;
                    }

                    board.Fields[otherPosition.X, otherPosition.Y] =
                        RoboField.CreateField(FieldType.WallDown | FieldType.WallUp | FieldType.WallLeft | FieldType.WallRight);
                }
            }

            return(board);
        }
Esempio n. 7
0
 public virtual void DoPaint(RoboField roboField, Graphics g)
 {
     DoPaint(roboField, g, g.ClipBounds);
 }