private static Bitmap CreateBitmap(ImageOrientation orientation) { switch (orientation) { case ImageOrientation.Landscape: return(GraphicsUtilities.CreateBitmap(cardLongSideInPixelsWithBleed, cardShortSideInPixelsWithBleed)); case ImageOrientation.Portrait: return(GraphicsUtilities.CreateBitmap(cardShortSideInPixelsWithBleed, cardLongSideInPixelsWithBleed)); } return(null); }
public static void PrintCardBackString(CardImage cardImage, string text, int textSize) { var graphics = cardImage.Graphics; var usableRectangleWithPadding = cardImage.UsableRectangWithPadding; GraphicsUtilities.DrawString( graphics, text, new Font(cardBackFontFamily, textSize, FontStyle.Bold, GraphicsUnit.Pixel), new SolidBrush(Color.Black), usableRectangleWithPadding, GraphicsUtilities.FullCenterAlignment); }
private void PrintImageMapping(Graphics graphics, Image image1, string label1, Image image2, string label2, int x, int y, int imageSize) { var imageMappingFont = new Font(bodyFontFamily, bodyFontSize, GraphicsUnit.Pixel); var mappingTextWidth = imageSize + 2 * (arrowImageSize + 2 * ArrowPadding); var label1Rectangle = new RectangleF(x - (arrowImageSize + 2 * ArrowPadding), y + imageSize, mappingTextWidth, imageMappingFont.Height); var label2Rectangle = new RectangleF(x + imageSize + 2 * ArrowPadding + arrowImageSize - (arrowImageSize + 2 * ArrowPadding), y + imageSize, mappingTextWidth, imageMappingFont.Height); GraphicsUtilities.PrintScaledImage(graphics, image1, x, y, imageSize, imageSize); GraphicsUtilities.DrawString(graphics, label1, imageMappingFont, GraphicsUtilities.BlackBrush, label1Rectangle, GraphicsUtilities.HorizontalCenterAlignment); GraphicsUtilities.PrintScaledPng(graphics, "arrow", x + imageSize + ArrowPadding, y + (imageSize / 2), arrowImageSize, arrowImageSize); GraphicsUtilities.PrintScaledImage(graphics, image2, x + imageSize + ArrowPadding + arrowImageSize + ArrowPadding, y, imageSize, imageSize); GraphicsUtilities.DrawString(graphics, label2, imageMappingFont, GraphicsUtilities.BlackBrush, label2Rectangle, GraphicsUtilities.HorizontalCenterAlignment); }
private void PrintToolImage(NewToolCard newCard, CardImage cardImage) { var graphics = cardImage.Graphics; var usableRectangWithPadding = cardImage.UsableRectangWithPadding; var cardFrontLargeImageSize = usableRectangWithPadding.Width - (2 * cardFrontSmallImageSize); GraphicsUtilities.PrintScaledPng( graphics, newCard.Tool, usableRectangWithPadding.X + usableRectangWithPadding.Width / 2 - cardFrontLargeImageSize / 2, usableRectangWithPadding.Y + usableRectangWithPadding.Height / 2 - (cardFrontLargeImageSize / 2), cardFrontLargeImageSize, cardFrontLargeImageSize); }
private void PrintCardName(NewToolCard newCard, CardImage cardImage) { var graphics = cardImage.Graphics; var usableRectangWithPadding = cardImage.UsableRectangWithPadding; var cardNameFont = new Font(headerFontFamily, toolHeaderFontSize, GraphicsUnit.Pixel); var topRectangle = new RectangleF(usableRectangWithPadding.X, usableRectangWithPadding.Y + cardFrontSmallImageSize, usableRectangWithPadding.Width, cardNameFont.Height); var bottomRectangle = new RectangleF(usableRectangWithPadding.X, usableRectangWithPadding.Y + cardFrontSmallImageSize + cardNameFont.Height, usableRectangWithPadding.Width, cardNameFont.Height); var nameParts = newCard.Name.Split(' '); var firstNamePart = nameParts.Take(nameParts.Length - 2).ToList(); var lastNamePart = nameParts.Skip(firstNamePart.Count).ToList(); GraphicsUtilities.DrawString(graphics, string.Join(" ", firstNamePart), cardNameFont, GraphicsUtilities.BlackBrush, topRectangle, GraphicsUtilities.FullCenterAlignment); GraphicsUtilities.DrawString(graphics, string.Join(" ", lastNamePart), cardNameFont, GraphicsUtilities.BlackBrush, bottomRectangle, GraphicsUtilities.FullCenterAlignment); }
private void PrintResourceProduced(NewToolCard newCard, Graphics graphics, int x, int y) { var font = new Font(bodyFontFamily, imageLabelFontSize); GraphicsUtilities.PrintImageWithText( graphics, newCard.ResourceProduced, x, y, cardFrontSmallImageSize, cardFrontSmallImageSize, "+", 0, (int)(cardFrontSmallImageSize * (2.0 / 5)), font); }
private void PrintLimitsReminder(CardImage cardImage) { var graphics = cardImage.Graphics; var usableRectangleWithPadding = cardImage.UsableRectangWithPadding; var handLimitString = "Hand limit - 3"; var resourceLimitString = "Resource limit - 10"; var limitsReminderFont = new Font(bodyFontFamily, limitsFontSize, GraphicsUnit.Pixel); var textRectangle = new RectangleF( usableRectangleWithPadding.X, usableRectangleWithPadding.Bottom - limitsReminderFont.Height, usableRectangleWithPadding.Width, limitsReminderFont.Height); GraphicsUtilities.DrawString(graphics, handLimitString, limitsReminderFont, GraphicsUtilities.BlackBrush, textRectangle, GraphicsUtilities.HorizontalNearAlignment); GraphicsUtilities.DrawString(graphics, resourceLimitString, limitsReminderFont, GraphicsUtilities.BlackBrush, textRectangle, GraphicsUtilities.HorizontalFarAlignment); }
private void PrintCostsForQuest(Graphics graphics, Quest quest, int initialX, int initialY) { var font = new Font(bodyFontFamily, imageLabelFontSize); for (var toolIndex = 0; toolIndex < quest.ToolRequirements.Count; toolIndex++) { GraphicsUtilities.PrintImageWithText( graphics, $"{quest.ToolRequirements[toolIndex]} BW", initialX + (questCostImageSize / 4) + toolIndex * (questCostImageSize + (questCostImageSize / 8) + questCostImageSize / 4), initialY, questCostImageSize, questCostImageSize, quest.ToolCountRequired.ToString(), (int)-(questCostImageSize / 2.6f), 0, font); } }
private void PrintGameTitle(CardImage cardImage) { var graphics = cardImage.Graphics; var usableRectangleWithPadding = cardImage.UsableRectangWithPadding; var titleFont = new Font(cardBackFontFamily, gameTitleFontSize, GraphicsUnit.Pixel); GraphicsUtilities.DrawString( graphics, "Splendor", titleFont, GraphicsUtilities.BlackBrush, new RectangleF(usableRectangleWithPadding.X, usableRectangleWithPadding.Y, usableRectangleWithPadding.Width, titleFont.Height), GraphicsUtilities.HorizontalCenterAlignment); GraphicsUtilities.DrawString( graphics, "Forge", titleFont, GraphicsUtilities.BlackBrush, new RectangleF(usableRectangleWithPadding.X, usableRectangleWithPadding.Bottom - titleFont.Height, usableRectangleWithPadding.Width, titleFont.Height), GraphicsUtilities.HorizontalCenterAlignment); }
private void PrintCostsForTool(NewToolCard newCard, CardImage cardImage) { var font = new Font(bodyFontFamily, imageLabelFontSize); var graphics = cardImage.Graphics; var usableRectangWithPadding = cardImage.UsableRectangWithPadding; var costList = newCard.Costs.ToList(); for (var costIndex = 0; costIndex < costList.Count; costIndex++) { GraphicsUtilities.PrintImageWithText( graphics, costList[costIndex].Key, usableRectangWithPadding.X, usableRectangWithPadding.Bottom - ((costIndex + 1) * cardFrontSmallImageSize), cardFrontSmallImageSize, cardFrontSmallImageSize, costList[costIndex].Value.ToString(), 0, (int)(cardFrontSmallImageSize * (2.0 / 5)), font); } }
public CardImage CreatePlayerAidFront() { var cardImage = new CardImage("Player Aid Front", ImageOrientation.Landscape); var graphics = cardImage.Graphics; cardImage.PrintCardBorderAndBackground(null, standardCardBackgroundColor); var playerAidString = "Each day, you may take one of the following actions:" + "\r\n\u2022 Scavenge for Resources: gather 3 different resources" + "\r\n\u2022 Hunt for Resources: gather 2 of the same resource [as long as there is an abundance (4+)]" + "\r\n\u2022 Find Blueprint: Reserve a Tool from the display into your hand and take 1 gold [if available]" + "\r\n\u2022 Craft: Take a Tool from the display, place in front of you and return the depicted resources to the supply" + "\r\n\r\nAfter your action, check if you have the tools to complete any quests."; GraphicsUtilities.DrawString( graphics, playerAidString, new Font(bodyFontFamily, bodyFontSize, GraphicsUnit.Pixel), GraphicsUtilities.BlackBrush, cardImage.UsableRectangWithPadding); PrintLimitsReminder(cardImage); return(cardImage); }
private void PrintPoints(Graphics graphics, int points, int x, int y) { var font = new Font(bodyFontFamily, imageLabelFontSize); GraphicsUtilities.PrintImageWithTextCentered(graphics, "Wreath", x, y, wreathImageWidth, cardFrontSmallImageSize, points.ToString(), font); }
private void PrintToolIcon(NewToolCard newCard, Graphics graphics, int x, int y) { GraphicsUtilities.PrintScaledPng(graphics, $"{newCard.Tool} BW", x, y, cardFrontSmallImageSize, cardFrontSmallImageSize); }