Example #1
0
        internal void Draw(Graphics graphics, float tileWidth, float tileHeight)
        {
            if (State.HasFlag(TileState.Latest))
            {
                graphics.FillRectangle(new SolidBrush(System.Drawing.Color.FromArgb(247, 180, 86)),
                                       new RectangleF(X * tileWidth, Y * tileHeight, tileWidth, tileHeight));
            }
            else if (State.HasFlag(TileState.Selected))
            {
                graphics.FillRectangle(new SolidBrush(System.Drawing.Color.FromArgb(247, 97, 86)),
                                       new RectangleF(X * tileWidth, Y * tileHeight, tileWidth, tileHeight));
            }
            else if (State.HasFlag(TileState.Normal))
            {
                graphics.FillRectangle(new SolidBrush(GetColor()), new RectangleF(X * tileWidth, Y * tileHeight, tileWidth, tileHeight));
            }

            DrawIdentifier(graphics, tileWidth, tileHeight);

            OccupyingPiece?.Draw(graphics, X, Y, tileWidth, tileHeight);

            float marginw = tileWidth / 3;
            float marginh = tileHeight / 3;

            if (State.HasFlag(TileState.Targeted))
            {
                int padding = 3;
                graphics.FillEllipse(new SolidBrush(System.Drawing.Color.FromArgb(200, 50, 50, 50)),
                                     X * tileWidth + marginw,
                                     Y * tileHeight + marginh,
                                     tileWidth - marginw * 2,
                                     tileHeight - marginh * 2);

                graphics.FillEllipse(new SolidBrush(System.Drawing.Color.FromArgb(247, 97, 86)),
                                     X * tileWidth + marginw + padding,
                                     Y * tileHeight + marginh + padding,
                                     tileWidth - (marginw + padding) * 2,
                                     tileHeight - (marginh + padding) * 2);
            }
        }