1
0

Cards are almost complete now!

This commit is contained in:
Ninjananas
2024-09-04 14:28:55 +02:00
parent 18ad380529
commit 2f641feeb0
16 changed files with 304 additions and 121 deletions

View File

@@ -1,121 +0,0 @@
from typing import *
# Card size info
TOTAL_HEIGHT = 1125
TOTAL_WIDTH = 825
BLEED_MARGIN = 37.5
SAFE_MARGIN = 75
MAX_SAFE_X = TOTAL_WIDTH - SAFE_MARGIN
MAX_SAFE_Y = TOTAL_HEIGHT - SAFE_MARGIN
# Icon info
ICON_SIZE = 125
ICON_MARGIN_LEFT = 0
ICON_MARGIN_TOP = 0
ICON_X = ICON_MARGIN_LEFT + SAFE_MARGIN
ICON_Y = ICON_MARGIN_TOP + SAFE_MARGIN
# Banner info
BANNER_WIDTH = 75
BANNER_HEIGHT = 225
BANNER_X = ICON_X + ICON_SIZE + 10
BANNER_Y = 0
BANNER_TEXT_FONT = "\"ethnocentric 12\""
BANNER_TEXT_X = BANNER_X - 10
BANNER_TEXT_Y = BANNER_HEIGHT // 3
BANNER_TEXT_WIDTH = BANNER_WIDTH + 20
# Name info
NAME_X = ICON_X + ICON_SIZE
NAME_Y = SAFE_MARGIN + 10
NAME_WIDTH = MAX_SAFE_X - NAME_X
NAME_HEIGHT = 125
NAME_FONT = "\"ethnocentric 11\""
NAME_WITH_BANNER_X = BANNER_X + BANNER_WIDTH
NAME_WITH_BANNER_WIDTH = NAME_WIDTH - (NAME_WITH_BANNER_X - NAME_X)
def central_sym(x: int, y: int) -> Tuple[int, int]:
return TOTAL_WIDTH - x, TOTAL_HEIGHT - y
# Alternative objects
ALT_ICON_X, ALT_ICON_Y = central_sym(ICON_X, ICON_Y)
ALT_BANNER_X, ALT_BANNER_Y = central_sym(BANNER_X, BANNER_Y)
ALT_BANNER_TEXT_X, ALT_BANNER_TEXT_Y = central_sym(BANNER_TEXT_X, BANNER_TEXT_Y)
LAYOUT: str = f"""
icon:
x: {ICON_X}
y: {ICON_Y}
width: {ICON_SIZE}
height: {ICON_SIZE}
alt_icon:
extends: icon
x: {ALT_ICON_X}
y: {ALT_ICON_Y}
angle: 3.14159
banner:
x: {BANNER_X}
y: {BANNER_Y}
width: {BANNER_WIDTH}
height: {BANNER_HEIGHT}
banner_text:
x: {BANNER_TEXT_X}
y: {BANNER_TEXT_Y}
width: {BANNER_TEXT_WIDTH}
height: 2c
font: {BANNER_TEXT_FONT}
align: center
# hint: blue
alt_banner:
extends: banner
x: {ALT_BANNER_X}
y: {ALT_BANNER_Y}
angle: 3.14159
alt_banner_text:
extends: banner_text
angle: 3.14159
x: {ALT_BANNER_TEXT_X}
y: {ALT_BANNER_TEXT_Y}
name:
x: {NAME_X}
y: {NAME_Y}
width: {NAME_WIDTH}
height: {NAME_HEIGHT}
align: center
valign: middle
font: {NAME_FONT}
# hint: red
name_with_banner:
extends: name
x: {NAME_WITH_BANNER_X}
width: {NAME_WITH_BANNER_WIDTH}
cut:
x: {BLEED_MARGIN}
y: {BLEED_MARGIN}
width: {TOTAL_WIDTH - (2 * BLEED_MARGIN)}
height: {TOTAL_HEIGHT - (2 * BLEED_MARGIN)}
stroke_color: gray
stroke_width: 2
safe:
x: {SAFE_MARGIN}
y: {SAFE_MARGIN}
width: {TOTAL_WIDTH - (2 * SAFE_MARGIN)}
height: {TOTAL_HEIGHT - (2 * SAFE_MARGIN)}
radius: 0.5c
dash: 3mm 3mm
"""
if __name__ == "__main__":
open("layout.yml", "w").write(LAYOUT)

View File

@@ -10,6 +10,8 @@ BLEED_MARGIN = 1
SAFE_MARGIN = 2
MAX_SAFE_X = TOTAL_WIDTH - SAFE_MARGIN
MAX_SAFE_Y = TOTAL_HEIGHT - SAFE_MARGIN
SAFE_WIDTH = TOTAL_WIDTH - 2 * SAFE_MARGIN
SAFE_HEIGHT = TOTAL_HEIGHT - 2 * SAFE_MARGIN
# Icon info
ICON_SIZE = 3.7
@@ -46,7 +48,27 @@ ALT_ICON_X, ALT_ICON_Y = central_sym(ICON_X, ICON_Y)
ALT_BANNER_X, ALT_BANNER_Y = central_sym(BANNER_X, BANNER_Y)
ALT_BANNER_TEXT_X, ALT_BANNER_TEXT_Y = central_sym(BANNER_TEXT_X, BANNER_TEXT_Y)
# Effects
EFFECT_FRAME_WIDTH = SAFE_WIDTH - 2
EFFECT_FRAME_HEIGHT = 6
EFFECT_FRAME_RADIUS = 0.2
EFFECT_FRAME_MARGIN_BOTTOM = 2
EFFECT_FRAME_X = (TOTAL_WIDTH - EFFECT_FRAME_WIDTH) / 2.
EFFECT_FRAME_Y = MAX_SAFE_Y - EFFECT_FRAME_MARGIN_BOTTOM - EFFECT_FRAME_HEIGHT
EFFECT_TEXT_MARGIN = 1
EFFECT_TEXT_X = EFFECT_FRAME_X + EFFECT_TEXT_MARGIN
EFFECT_TEXT_Y = EFFECT_FRAME_Y + EFFECT_TEXT_MARGIN
EFFECT_TEXT_WIDTH = EFFECT_FRAME_WIDTH - 2 * EFFECT_TEXT_MARGIN
EFFECT_TEXT_HEIGHT = EFFECT_FRAME_HEIGHT - 2 * EFFECT_TEXT_MARGIN
POKER_LAYOUT: str = f"""
background:
x: 0
y: 0
width: {TOTAL_WIDTH}c
height: {TOTAL_HEIGHT}c
icon:
x: {ICON_X}c
y: {ICON_Y}c
@@ -102,6 +124,26 @@ name_with_banner:
x: {NAME_WITH_BANNER_X}c
width: {NAME_WITH_BANNER_WIDTH}c
effect_frame:
x: {EFFECT_FRAME_X}c
y: {EFFECT_FRAME_Y}c
width: {EFFECT_FRAME_WIDTH}c
height: {EFFECT_FRAME_HEIGHT}c
radius: {EFFECT_FRAME_RADIUS}c
stroke_width: 0.3mm
effect_text:
x: {EFFECT_TEXT_X}c
y: {EFFECT_TEXT_Y}c
width: {EFFECT_TEXT_WIDTH}c
height: {EFFECT_TEXT_HEIGHT}c
font_size: 9
spacing: 5
align: center
valign: middle
markup: true
border:
x: 0
y: 0