Fix : quotes conflict on fstring
This commit is contained in:
+63
-23
@@ -18,7 +18,7 @@ with open("src/data/heron_skin.json", encoding="utf-8") as f:
|
|||||||
all_skin_data: SkinFile = json.load(f)
|
all_skin_data: SkinFile = json.load(f)
|
||||||
|
|
||||||
cards: list[Card] = []
|
cards: list[Card] = []
|
||||||
for p in Path('src/data/cards').glob('*.json'):
|
for p in Path("src/data/cards").glob("*.json"):
|
||||||
with open(p, encoding="utf-8") as f:
|
with open(p, encoding="utf-8") as f:
|
||||||
temp: list[Card] = json.load(f)["cards"]
|
temp: list[Card] = json.load(f)["cards"]
|
||||||
cards.extend(temp)
|
cards.extend(temp)
|
||||||
@@ -29,7 +29,7 @@ y_height = 417
|
|||||||
border_width_x = 12
|
border_width_x = 12
|
||||||
border_width_y = 17
|
border_width_y = 17
|
||||||
|
|
||||||
x_internal_width = x_width - (border_width_x*2)
|
x_internal_width = x_width - (border_width_x * 2)
|
||||||
|
|
||||||
border_upper_offset = 5
|
border_upper_offset = 5
|
||||||
title_y_offset = 24
|
title_y_offset = 24
|
||||||
@@ -46,15 +46,21 @@ background_colors = {
|
|||||||
"base": "lightgrey",
|
"base": "lightgrey",
|
||||||
}
|
}
|
||||||
|
|
||||||
gradient_colors = {"red": "red", "blue": "blue", "yellow": "yellow", "green": "green", "base":"gray"}
|
gradient_colors = {
|
||||||
|
"red": "red",
|
||||||
|
"blue": "blue",
|
||||||
|
"yellow": "yellow",
|
||||||
|
"green": "green",
|
||||||
|
"base": "gray",
|
||||||
|
}
|
||||||
|
|
||||||
icon_colors = {
|
icon_colors = {
|
||||||
"yellow": ["#ff9935", "#ffe744"],
|
"yellow": ["#ff9935", "#ffe744"],
|
||||||
"blue": ["#ff9935", "#ffe744"],
|
"blue": ["#ff9935", "#ffe744"],
|
||||||
"red": ["#ff9935", "#ffe744"],
|
"red": ["#ff9935", "#ffe744"],
|
||||||
"green": ["#ff9935", "#ffe744"],
|
"green": ["#ff9935", "#ffe744"],
|
||||||
"base": ["#ff9935", "#ffe744"]
|
"base": ["#ff9935", "#ffe744"],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
shadowFilter = dw.Filter(id="drop-shadow")
|
shadowFilter = dw.Filter(id="drop-shadow")
|
||||||
@@ -76,7 +82,9 @@ for card_data in cards:
|
|||||||
try:
|
try:
|
||||||
card_skin_data = all_skin_data["cards"][str(card_data["id"])]
|
card_skin_data = all_skin_data["cards"][str(card_data["id"])]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
print("Missing skin data for card id:", card_data["id"], "using default skin data")
|
print(
|
||||||
|
"Missing skin data for card id:", card_data["id"], "using default skin data"
|
||||||
|
)
|
||||||
card_skin_data = SkinData(
|
card_skin_data = SkinData(
|
||||||
title=card_data["name"],
|
title=card_data["name"],
|
||||||
image_path="../../img/missing.png",
|
image_path="../../img/missing.png",
|
||||||
@@ -85,7 +93,17 @@ for card_data in cards:
|
|||||||
# Create a new SVG drawing
|
# Create a new SVG drawing
|
||||||
output_dir = "output/" + all_skin_data["skin_name"]
|
output_dir = "output/" + all_skin_data["skin_name"]
|
||||||
os.makedirs(output_dir, exist_ok=True)
|
os.makedirs(output_dir, exist_ok=True)
|
||||||
d = Drawing(x_width, y_height, id="card"+str(card_data["id"]), id_prefix=str(card_data.get('id')) + "_", **{'class':'card', 'xmlns:v-bind':"https://vuejs.org/guide/essentials/class-and-style.html",'xmlns:v-on':"https://vuejs.org/guide/essentials/event-handling.html"})
|
d = Drawing(
|
||||||
|
x_width,
|
||||||
|
y_height,
|
||||||
|
id="card" + str(card_data["id"]),
|
||||||
|
id_prefix=str(card_data.get("id")) + "_",
|
||||||
|
**{
|
||||||
|
"class": "card",
|
||||||
|
"xmlns:v-bind": "https://vuejs.org/guide/essentials/class-and-style.html",
|
||||||
|
"xmlns:v-on": "https://vuejs.org/guide/essentials/event-handling.html",
|
||||||
|
},
|
||||||
|
)
|
||||||
d.append(shadowFilter)
|
d.append(shadowFilter)
|
||||||
|
|
||||||
# Define linear colored gradient
|
# Define linear colored gradient
|
||||||
@@ -106,7 +124,19 @@ for card_data in cards:
|
|||||||
|
|
||||||
# Draw card background
|
# Draw card background
|
||||||
background = dw.Group(id="background")
|
background = dw.Group(id="background")
|
||||||
background.append(dw.Rectangle(0, 0, x_width, y_height, rx=15, ry=18, fill="black", stroke="white", stroke_width=1))
|
background.append(
|
||||||
|
dw.Rectangle(
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
x_width,
|
||||||
|
y_height,
|
||||||
|
rx=15,
|
||||||
|
ry=18,
|
||||||
|
fill="black",
|
||||||
|
stroke="white",
|
||||||
|
stroke_width=1,
|
||||||
|
)
|
||||||
|
)
|
||||||
background.append(
|
background.append(
|
||||||
dw.Rectangle(
|
dw.Rectangle(
|
||||||
border_width_x,
|
border_width_x,
|
||||||
@@ -161,41 +191,51 @@ for card_data in cards:
|
|||||||
)
|
)
|
||||||
d.append(title)
|
d.append(title)
|
||||||
|
|
||||||
|
|
||||||
# Draw faction icon
|
# Draw faction icon
|
||||||
d.append(
|
d.append(
|
||||||
dw.Group(children=[faction_icon],transform=f"translate({border_width_x + 23 + 1},{border_width_y - border_upper_offset + 20 + 4 + 1})")
|
dw.Group(
|
||||||
|
children=[faction_icon],
|
||||||
|
transform=f"translate({border_width_x + 23 + 1},{border_width_y - border_upper_offset + 20 + 4 + 1})",
|
||||||
|
)
|
||||||
)
|
)
|
||||||
# Draw card cost
|
# Draw card cost
|
||||||
if card_data.get("cost") is not None:
|
if card_data.get("cost") is not None:
|
||||||
d.append(
|
d.append(
|
||||||
dw.Group(children=[create_gold_icon(cast(int,card_data.get("cost")))],transform=f"translate({x_width - cost_right_offset},{19 + border_width_y})")
|
dw.Group(
|
||||||
|
children=[create_gold_icon(cast(int, card_data.get("cost")))],
|
||||||
|
transform=f"translate({x_width - cost_right_offset},{19 + border_width_y})",
|
||||||
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
d.append(dw.Rectangle(x=0, y=65, width=x_width, height=200))
|
d.append(dw.Rectangle(x=0, y=65, width=x_width, height=200))
|
||||||
d.append(dw.Image(x=0, y=65, width=x_width, height=200,path=card_skin_data["image_path"]))
|
d.append(
|
||||||
|
dw.Image(
|
||||||
|
x=0, y=65, width=x_width, height=200, path=card_skin_data["image_path"]
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
# Draw effects
|
# Draw effects
|
||||||
effects = card_data.get("effects")
|
effects = card_data.get("effects")
|
||||||
if effects is not None:
|
if effects is not None:
|
||||||
effects = create_effects(
|
effects = create_effects(effects=effects, height=135, width=x_internal_width)
|
||||||
effects=effects,
|
d.append(
|
||||||
height=135,
|
dw.Group(
|
||||||
width=x_internal_width
|
|
||||||
)
|
|
||||||
d.append(dw.Group(
|
|
||||||
effects,
|
effects,
|
||||||
transform=f"translate({border_width_x},{265})",
|
transform=f"translate({border_width_x},{265})",
|
||||||
))
|
)
|
||||||
|
)
|
||||||
|
|
||||||
# If champion, draw champion shield with defense
|
# If champion, draw champion shield with defense
|
||||||
if card_data["card_type"] == "champion":
|
if card_data["card_type"] == "champion":
|
||||||
shield = draw_champion_shield(card_data, border_width_x)
|
shield = draw_champion_shield(card_data, border_width_x)
|
||||||
d.append(dw.Group(
|
d.append(
|
||||||
|
dw.Group(
|
||||||
shield,
|
shield,
|
||||||
transform=f"translate({x_width-30},{y_height})",
|
transform=f"translate({x_width-30},{y_height})",
|
||||||
))
|
)
|
||||||
|
)
|
||||||
|
|
||||||
# Save the SVG file
|
# Save the SVG file
|
||||||
d.save_svg(f"output/{all_skin_data['skin_name']}/{str(card_data["id"]).zfill(3)}.svg")
|
d.save_svg(
|
||||||
|
f"output/{all_skin_data['skin_name']}/{str(card_data['id']).zfill(3)}.svg"
|
||||||
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user