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