diff --git a/changelog.txt b/changelog.txt
index a30362200..4f1a847c5 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -12,14 +12,26 @@ __Mainframe Battles (Single-face)__
__More New Templates__
Thanks to GenevensiS for their continued work on keeping up with the Showcases!
• Add the Aetherdrift First Place, First Place Planeswalker, and First Place Full Art land frames. Without access to the Space Cadet font, we don't plan to make the Rude Riders variant.
+• Added the Tarkir Draconic and Draconic Adventure frames
• Added the MKM Magnified Showcase frame
• Added the UNF, ONE, LCI Full Art land frames. Those and NEO have code to detect or manually select up to two basic types.
• Added the Mechanic Reminder frame, for things like Start your engines!
+__Other Updates__
+• Updated types and keywords to Tarkir Dragonstorm
+• Added word_lists_linux as a workaround for Linux users having issues with generated word_lists.
+• Added a Style option to change Casting Cost Mana Symbols to Mainframe, Adventures, Battles, Planeswalkers, and Sagas.
+• Added custom fonts module to Full Art Basic Lands.
+• Added old tap symbol support to GenevensiS frames.
+
__Template Code Updates__
• color_background() now accepts three new parameters, artifact_blend, hybrid_blend, and multicolor_blend, which default to "mask", which behaves the same as before. Setting these to "black" will have them blend as only their respective base frame; artifact, colorless, or multicolor; without the color gradient. Setting these as "white" does the reverse, using the gradient alone and not the base cards.
+• Added "isfront" and "isback" support to face code.
__Bug Fixes__
+• Fixed a bug where UB Sagas were too dark.
• Fixed a bug where hybrid Adventure pages were blending incorrectly.
• Fixed a bug where the Set tab Inverted Common Symbol wasn't working on most frames.
-• Fixed a bug in Full Art Lands w/Basic Land Symbol where the textbox effect wasn't displaying.
\ No newline at end of file
+• Fixed some bugs with automated custom border with multicolor and overlapping effects.
+• Fixed a bug in Full Art Lands w/Basic Land Symbol where the textbox effect wasn't displaying.
+• Fixed a bug rounding negative numbers.
\ No newline at end of file
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/border_mask.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/border_mask.png
new file mode 100644
index 000000000..8995e2eb5
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/border_mask.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/card/acard.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/card/acard.png
new file mode 100644
index 000000000..32edf52d4
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/card/acard.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/card/bcard.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/card/bcard.png
new file mode 100644
index 000000000..41c8cbc83
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/card/bcard.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/card/ccard.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/card/ccard.png
new file mode 100644
index 000000000..4094ab3a6
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/card/ccard.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/card/gcard.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/card/gcard.png
new file mode 100644
index 000000000..4ff949144
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/card/gcard.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/card/mcard.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/card/mcard.png
new file mode 100644
index 000000000..61468226b
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/card/mcard.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/card/rcard.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/card/rcard.png
new file mode 100644
index 000000000..47eca2a30
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/card/rcard.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/card/ucard.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/card/ucard.png
new file mode 100644
index 000000000..45057b6de
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/card/ucard.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/card/wcard.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/card/wcard.png
new file mode 100644
index 000000000..63b6e6330
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/card/wcard.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/card_mask.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/card_mask.png
new file mode 100644
index 000000000..4f94dd45d
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/card_mask.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/card_sample.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/card_sample.png
new file mode 100644
index 000000000..af362d74b
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/card_sample.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/crown/acrown.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/crown/acrown.png
new file mode 100644
index 000000000..976fc62ef
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/crown/acrown.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/crown/bcrown.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/crown/bcrown.png
new file mode 100644
index 000000000..8f2fb6246
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/crown/bcrown.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/crown/ccrown.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/crown/ccrown.png
new file mode 100644
index 000000000..c9eb7870f
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/crown/ccrown.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/crown/gcrown.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/crown/gcrown.png
new file mode 100644
index 000000000..2b74c7d63
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/crown/gcrown.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/crown/mcrown.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/crown/mcrown.png
new file mode 100644
index 000000000..be96386a7
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/crown/mcrown.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/crown/rcrown.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/crown/rcrown.png
new file mode 100644
index 000000000..9ad415c42
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/crown/rcrown.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/crown/ucrown.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/crown/ucrown.png
new file mode 100644
index 000000000..7af271f8b
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/crown/ucrown.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/crown/wcrown.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/crown/wcrown.png
new file mode 100644
index 000000000..c9fd99703
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/crown/wcrown.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/foil_mask.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/foil_mask.png
new file mode 100644
index 000000000..65541c912
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/foil_mask.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/image_mask.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/image_mask.png
new file mode 100644
index 000000000..4afcddf1f
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/image_mask.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/page/apage.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/page/apage.png
new file mode 100644
index 000000000..42850c852
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/page/apage.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/page/bpage.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/page/bpage.png
new file mode 100644
index 000000000..3b0cd09c3
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/page/bpage.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/page/cpage.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/page/cpage.png
new file mode 100644
index 000000000..7444c821a
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/page/cpage.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/page/gpage.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/page/gpage.png
new file mode 100644
index 000000000..5df8a1346
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/page/gpage.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/page/mpage.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/page/mpage.png
new file mode 100644
index 000000000..4d75f3e37
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/page/mpage.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/page/rpage.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/page/rpage.png
new file mode 100644
index 000000000..6644971bf
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/page/rpage.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/page/upage.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/page/upage.png
new file mode 100644
index 000000000..49b220356
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/page/upage.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/page/wpage.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/page/wpage.png
new file mode 100644
index 000000000..2d44dcee2
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/page/wpage.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/page_mask.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/page_mask.png
new file mode 100644
index 000000000..07ff4fe89
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/page_mask.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/pt/apt.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/pt/apt.png
new file mode 100644
index 000000000..127d81c74
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/pt/apt.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/pt/bpt.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/pt/bpt.png
new file mode 100644
index 000000000..9a60b1a83
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/pt/bpt.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/pt/cpt.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/pt/cpt.png
new file mode 100644
index 000000000..9b0c0dc5c
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/pt/cpt.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/pt/gpt.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/pt/gpt.png
new file mode 100644
index 000000000..466e263bb
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/pt/gpt.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/pt/mpt.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/pt/mpt.png
new file mode 100644
index 000000000..e9cc16990
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/pt/mpt.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/pt/rpt.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/pt/rpt.png
new file mode 100644
index 000000000..70d829ee6
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/pt/rpt.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/pt/upt.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/pt/upt.png
new file mode 100644
index 000000000..0775e0b5b
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/pt/upt.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/pt/wpt.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/pt/wpt.png
new file mode 100644
index 000000000..85ced4dd5
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/pt/wpt.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/special_blend_card.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/special_blend_card.png
new file mode 100644
index 000000000..f363328fb
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/special_blend_card.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/special_blend_pt.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/special_blend_pt.png
new file mode 100644
index 000000000..210b9b86e
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/special_blend_pt.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/stamp/astamp.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/stamp/astamp.png
new file mode 100644
index 000000000..6c04563ce
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/stamp/astamp.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/stamp/bstamp.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/stamp/bstamp.png
new file mode 100644
index 000000000..52282b033
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/stamp/bstamp.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/stamp/cstamp.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/stamp/cstamp.png
new file mode 100644
index 000000000..3efacdd9b
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/stamp/cstamp.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/stamp/gstamp.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/stamp/gstamp.png
new file mode 100644
index 000000000..25eda988e
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/stamp/gstamp.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/stamp/mstamp.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/stamp/mstamp.png
new file mode 100644
index 000000000..21633e46d
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/stamp/mstamp.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/stamp/rstamp.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/stamp/rstamp.png
new file mode 100644
index 000000000..3f82ad23f
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/stamp/rstamp.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/stamp/ustamp.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/stamp/ustamp.png
new file mode 100644
index 000000000..9d8f678f6
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/stamp/ustamp.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/stamp/wstamp.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/stamp/wstamp.png
new file mode 100644
index 000000000..d8806b601
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/stamp/wstamp.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/stamp_border_mask.png b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/stamp_border_mask.png
new file mode 100644
index 000000000..ec07e89f5
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/stamp_border_mask.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/style b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/style
new file mode 100644
index 000000000..b85280b16
--- /dev/null
+++ b/data/magic-m15-showcase-tarkir-draconic-adventure.mse-style/style
@@ -0,0 +1,533 @@
+mse version: 2.1.2
+game: magic
+short name: Draconic Adventure
+full name: Tarkir Showcase
+icon: card_sample.png
+position hint: 095
+
+version: 2024-10-01
+depends on:
+ package: magic.mse-game
+ version: 2014-06-25
+depends on:
+ package: magic-mana-large.mse-symbol-font
+ version: 2007-09-23
+depends on:
+ package: magic-mana-small.mse-symbol-font
+ version: 2007-09-23
+depends on:
+ package: magic-modules.mse-include
+ version: 2024-10-01
+depends on:
+ package: magic-mainframe-extras.mse-include
+ version: 2007-09-23
+
+card width: 646
+card height: 902
+card dpi: 258.5
+
+### blanks by GenevensiS
+### code by GenevensiS
+
+############################################################## Extra scripts
+
+init script:
+ card_shape := { "adventure" }
+ faces_coordinates :=
+ {
+ [
+ [
+ left: 0,
+ top: 0,
+ width: stylesheet.card_width,
+ height: stylesheet.card_height
+ ],
+ [
+ left: 29,
+ top: 541,
+ width: 302
+ height: 292
+ ],
+ ]
+ }
+ swap_fonts_pt_default :=
+ [
+ name: {"Beleren Bold"},
+ size: {26.0},
+ color: {"black"},
+ vertical: {0},
+ italic: {"Beleren Bold"}
+ ]
+
+ swap_fonts_body_default :=
+ [
+ name: {"MPlantin"},
+ size: {24.0},
+ color: {"black"},
+ vertical: {0},
+ italic: {"MPlantin-Italic"}
+ ]
+
+ typeline_offset_width_1 := { -4 }
+ typeline_offset_left_1 := { 2 }
+ typeline_offset_top_1 := { 1 }
+ indicator_offset_top_1 := { -1 }
+ swap_fonts_type_default :=
+ [
+ name: {"Beleren Bold"},
+ size: {22.5},
+ color: {"black"},
+ vertical: {0},
+ italic: {""}
+ ]
+
+ transform_symbol_disabled_1 := { true }
+ nameline_offset_width_1 := { 2 }
+ nameline_offset_left_1 := { -1 }
+ swap_fonts_name_default :=
+ [
+ name: {"Beleren Bold"},
+ size: {26.0},
+ color: {"black"},
+ vertical: {0},
+ italic: {""}
+ ]
+
+ swap_fonts_body2_src := { styling.custom_adventure_body_font }
+ swap_fonts_body2_default :=
+ [
+ name: {"MPlantin"},
+ size: {24.0},
+ color: {"black"},
+ vertical: {0},
+ italic: {"MPlantin-Italic"}
+ ]
+
+ rarity_disabled_2 := { true }
+ typeline_offset_left_2 := { -13 }
+ typeline_offset_width_2 := { 26 }
+ typeline_offset_top_2 := { -94 }
+ typeline_offset_height_2 := { 12 }
+ indicator_offset_top_2 := { -1 }
+ swap_fonts_type2_src := { styling.custom_adventure_type_font }
+ swap_fonts_type2_default :=
+ [
+ name: {"Beleren Bold"},
+ size: {20.0},
+ color: {"black"},
+ vertical: {0},
+ italic: {""}
+ ]
+
+ transform_symbol_disabled_2 := { true }
+ nameline_offset_top_2 := { 15 }
+ nameline_offset_height_2 := { 14 }
+ nameline_offset_left_2 := { -14 }
+ nameline_offset_width_2 := { 15 }
+ swap_fonts_name2_src := { styling.custom_adventure_name_font }
+ swap_fonts_name2_default :=
+ [
+ name: {"Beleren Bold"},
+ size: {21.0},
+ color: {"black"},
+ vertical: {0},
+ italic: {""}
+ ]
+
+ card_stamp_offset_top_1 := { if stamp_shape() == "triangle" then 6 else 0 }
+
+ old_card_hybrid_2 := card_hybrid_2
+ card_hybrid_2 :=
+ {
+ if type == "page" then old_card_hybrid_2()
+ else masked_blend(mask: "special_blend_card.png", dark: template(colors.0), light: template(colors.1))
+ }
+ horizontal_card_hybrid :=
+ [
+ 0: horizontal_card_hybrid[0]
+ 1: horizontal_card_hybrid[1]
+ 2: card_hybrid_2
+ 3: horizontal_card_hybrid[3]
+ 4: horizontal_card_hybrid[4]
+ 5: horizontal_card_hybrid[5]
+ 6: horizontal_card_hybrid[6]
+ 7: horizontal_card_hybrid[7]
+ ]
+ card_hybrid :=
+ [
+ radial: card_hybrid["radial"]
+ horizontal: horizontal_card_hybrid
+ overlay: card_hybrid["overlay"]
+ vertical: card_hybrid["vertical"]
+ ]
+
+ template_prefix :=
+ [
+ border: "border/",
+ card: "card/",
+ pt: "pt/",
+ crown: "crown/",
+ alias: "alias/",
+ page: "page/",
+ stamp: "stamp/",
+ nonstamp: "nonstamp/"
+ identity: "/magic-modules.mse-include/indicators/",
+ identity2: "/magic-modules.mse-include/indicators/",
+ ]
+ template_suffix :=
+ [
+ border: "border.png",
+ card: "card.png",
+ pt: "pt.png",
+ crown: "crown.png",
+ alias: "alias.png",
+ page: "page.png",
+ stamp: "stamp.png",
+ nonstamp: "nonstamp.png"
+ identity: "identity.png",
+ identity2: "identity.png",
+ ]
+ template := { template_prefix[type] + input + template_suffix[type] }
+ land_template := { template_prefix[type] + (if input == "a" then "c" else input) + template_suffix[type] }
+
+ card_border := { color_background(input: card.card_color, type: "border", base_hybrid: card_hybrid, multicolor_blend: "black", hybrid_blend: "white", artifact_blend: "white") }
+ card_background := { color_background(input: card.card_color, type: "card", base_hybrid: card_hybrid, multicolor_blend: "black", hybrid_blend: "white", artifact_blend: "white") }
+ card_background_2 := { color_background(input: card.card_color_2, type: "page", base_hybrid: card_hybrid, multicolor_blend: "black", hybrid_blend: "white", artifact_blend: "white") }
+ card_ptbox := { color_background(input: card.card_color, type: "pt", base_hybrid: card_hybrid, multicolor_blend: "black", hybrid_blend: "white", artifact_blend: "white") }
+ card_crown := { color_background(input: card.card_color, type: "crown", base_hybrid: card_hybrid, multicolor_blend: "black", hybrid_blend: "white", artifact_blend: "white") }
+ card_alias := { color_background(input: card.card_color, type: "alias", base_hybrid: card_hybrid, multicolor_blend: "black", hybrid_blend: "white", artifact_blend: "white") }
+ card_stamp := { color_background(input: card.card_color, type: "stamp", base_hybrid: card_hybrid, multicolor_blend: "black", hybrid_blend: "white", artifact_blend: "white") }
+ card_nonstamp := { color_background(input: card.card_color, type: "nonstamp", base_hybrid: card_hybrid, multicolor_blend: "black", hybrid_blend: "white", artifact_blend: "white") }
+
+ pure_colors :=
+ {
+ sort_text(
+ order: if card_is_wedge(input) then "(wbgur)" else "(wubrg)",
+ (if chosen(card.card_color, choice:"white") then "w") +
+ (if chosen(card.card_color, choice:"blue") then "u") +
+ (if chosen(card.card_color, choice:"black") then "b") +
+ (if chosen(card.card_color, choice:"red") then "r") +
+ (if chosen(card.card_color, choice:"green") then "g")
+ )
+ }
+ pt_colors := { if styling.PT_color_scheme == "canon" then pt_colors_canon() else styling.PT_color_scheme }
+ pt_colors_canon := { if is_hybrid_cost() then "land" else "gold" }
+
+ is_promo := { styling.promo }
+
+ is_unsorted := { styling.remove_from_autocount }
+
+ is_crowned := { styling.legend_crown == "yes" or (styling.legend_crown == "if legendary" and lang_setting("is_legendary")(card.super_type)) }
+
+ foil_mask_added_sections := { [] }
+ foil_mask_removed_sections := { [] }
+
+ chop_top := { split := split_comma(styling.chop_text_box); if length(split) > 0 and split[0] != "" and split[0] != "-" then clamp(split[0], maximum:500, minimum:-500) else 0 }
+ chop_bottom := { split := split_comma(styling.chop_text_box); if length(split) > 1 and split[1] != "" and split[1] != "-" then clamp(split[1], maximum:500, minimum:-500) else 0 }
+ chop_right := { split := split_comma(styling.chop_text_box); if length(split) > 2 and split[2] != "" and split[2] != "-" then clamp(split[2], maximum:500, minimum:-500) else 0 }
+
+ chop_top_2 := { split := split_comma(styling.chop_adventure_text_box); if length(split) > 0 and split[0] != "" and split[0] != "-" then clamp(split[0], maximum:500, minimum:-500) else 0 }
+ chop_bottom_2 := { split := split_comma(styling.chop_adventure_text_box); if length(split) > 1 and split[1] != "" and split[1] != "-" then clamp(split[1], maximum:500, minimum:-500) else 0 }
+ chop_right_2 := { split := split_comma(styling.chop_adventure_text_box); if length(split) > 2 and split[2] != "" and split[2] != "-" then clamp(split[2], maximum:500, minimum:-500) else 0 }
+
+ popout_left := { split := split_comma(styling.popout_art_coordinates); if length(split) > 3 and split.0 != "" then clamp(split.0, maximum: 1500, minimum: -500) else 0 }
+ popout_top := { split := split_comma(styling.popout_art_coordinates); if length(split) > 3 and split.1 != "" then clamp(split.1, maximum: 2000, minimum: -500) else 0 }
+ popout_width := { split := split_comma(styling.popout_art_coordinates); if length(split) > 3 and split.2 != "" then clamp(split.2, maximum: 1500, minimum: 0) else 0 }
+ popout_height := { split := split_comma(styling.popout_art_coordinates); if length(split) > 3 and split.3 != "" then clamp(split.3, maximum: 2000, minimum: 0) else 0 }
+
+ art_left := { if styling.stretch_art_to_whole_card then 0 else 27 }
+ art_top := { if styling.stretch_art_to_whole_card then 0 else 103 }
+ art_width := { if styling.stretch_art_to_whole_card then stylesheet.card_width else 598 }
+ art_height := { if styling.stretch_art_to_whole_card then stylesheet.card_height else 404 }
+
+ art_mask := { crop("image_mask.png", offset_x: art_left(), offset_y: art_top(), width: art_width(), height: art_height()) }
+
+############################################################## Extra style options
+
+styling field:
+ type: text
+ name: popout art coordinates
+ description: The coordinates for the popout image field, formatted as "left,top,width,height". Used to make the illustration jump in front of the frame.
+styling field:
+ type: boolean
+ name: stretch art to whole card
+ description: Make the image span the whole card instead of just the visible part. Use this to help make popout effects.
+ initial: no
+
+include file: /magic-modules.mse-include/texts/styling_fields
+
+styling field:
+ type: text
+ name: chop adventure text box
+ description: Formatted as "X,Y,Z". Shrinks the rule textbox X pixels from the top, Y from the bottom and Z from the right.
+styling field:
+ type: choice
+ name: center adventure text
+ description: Center all rule text on the adventure.
+ choice: always
+ choice: short text only
+ choice: never
+ initial: short text only
+styling style:
+ center adventure text:
+ render style: both
+ choice images:
+ always: /magic.mse-game/icons/center-all-text.png
+ short text only: /magic.mse-game/icons/center-short-text.png
+ never: /magic.mse-game/icons/center-no-text.png
+
+styling field:
+ type: choice
+ name: PT color scheme
+ description: Use the selected color scheme for the PT box on two color cards. Canon is "land" on hybrid cards, "gold" otherwise.
+ choice: canon
+ choice: gold
+ choice: hybrid
+ choice: colored
+ choice: land
+ initial: canon
+styling field:
+ type: choice
+ name: legend crown
+ description: Use the legend crown?
+ choice: yes
+ choice: if legendary
+ choice: no
+ initial: yes
+
+include file: /magic-modules.mse-include/rarities/styling_fields
+
+include file: /magic-modules.mse-include/watermarks/styling_fields
+
+include file: /magic-modules.mse-include/foils/styling_fields
+
+include file: /magic-modules.mse-include/information/styling_fields
+
+include file: /magic-modules.mse-include/symbol-fonts/styling_fields
+
+include file: /magic-modules.mse-include/fonts/styling_fields
+
+styling field:
+ type: text
+ name: custom adventure name font
+ description: Formatted as "font name;font size;font color;vertical offset;italic font name" last 4 are optional. color can be a name or R,G,B,A numbers.
+styling field:
+ type: text
+ name: custom adventure type font
+ description: Formatted as "font name;font size;font color;vertical offset;italic font name" last 4 are optional. color can be a name or R,G,B,A numbers.
+styling field:
+ type: text
+ name: custom adventure body font
+ description: Formatted as "font name;font size;font color;vertical offset;italic font name" last 4 are optional. color can be a name or R,G,B,A numbers.
+
+############################################################## Card fields
+
+include file: /magic-modules.mse-include/information/card_fields
+
+include file: /magic-modules.mse-include/stamps/card_fields
+
+include file: /magic-modules.mse-include/corners/card_fields
+
+include file: /magic-modules.mse-include/watermarks/card_fields_dfc
+
+include file: /magic-modules.mse-include/separators/card_fields_dfc
+
+include file: /magic-modules.mse-include/namelines/card_fields_dfc
+
+include file: /magic-modules.mse-include/typelines/card_fields_dfc
+
+include file: /magic-modules.mse-include/foils/card_fields
+
+card style:
+ ############################# Background stuff
+ border color:
+ left: 0
+ top: 0
+ width: { stylesheet.card_width }
+ height: { stylesheet.card_height }
+ z index: 190
+ mask: border_mask.png
+ card color:
+ left: 0
+ top: 0
+ width: { stylesheet.card_width }
+ height: { stylesheet.card_height }
+ z index: 200
+ popup style: in place
+ render style: image
+ image: { card_background() }
+ mask: card_mask.png
+ card color 2:
+ left: { face_coordinates_map(2).left }
+ top: { face_coordinates_map(2).top }
+ width: { face_coordinates_map(2).width }
+ height: { face_coordinates_map(2).height }
+ z index: 201
+ popup style: in place
+ render style: image
+ image: { card_background_2() }
+ mask: page_mask.png
+ ############################# Image
+ image:
+ left: { art_left() }
+ top: { art_top() }
+ width: { art_width() }
+ height: { art_height() }
+ z index: 100
+ mask: { art_mask() }
+ mainframe image:
+ left: { popout_left() }
+ top: { popout_top() }
+ width: { popout_width() }
+ height: { popout_height() }
+ z index: 1000
+ ############################# Text box
+ text:
+ left: 331
+ top: { 573 + chop_top() + (if is_stamped() then 3 else 0) + body_font_vertical() }
+ right: { 589 - chop_right() }
+ bottom: { 826 - chop_bottom() - if is_stamped() then 5 else 0 }
+ z index: 900
+ line height hard: { if is_modal(card.rule_text) then 0.9 else 1.2 }
+ line height line: 1.5
+ line height soft: 0.9
+ line height hard max: { if is_modal(card.rule_text) then 1.0 else 1.3 }
+ line height line max: 1.6
+ alignment:
+ script:
+ if (styling.center_text == "short text only" and
+ not contains(match:"\n", card.rule_text) and
+ card.flavor_text == "" and
+ card_style.text.content_lines <= 2) or
+ styling.center_text == "always"
+ then "middle center"
+ else "middle left"
+ font:
+ name: { body_font() }
+ italic name: { body_font_italic() }
+ size: { body_font_size() }
+ scale down to: 7
+ color: { body_font_color() }
+ symbol font:
+ name: { styling.text_box_mana_symbols }
+ size: { body_font_size() }
+ scale down to: 7
+ text 2:
+ left: 55
+ top: { 667 + chop_top_2() + (if is_stamped() then 1 else 0) + body_font_vertical() }
+ right: { 314 - chop_right_2() }
+ bottom: { 826 - chop_bottom_2() - if is_stamped() then 5 else 0 }
+ z index: 900
+ line height hard: { if is_modal(card.rule_text) then 0.9 else 1.2 }
+ line height line: 1.5
+ line height soft: 0.9
+ line height hard max: { if is_modal(card.rule_text) then 1.0 else 1.3 }
+ line height line max: 1.6
+ alignment:
+ script:
+ if (styling.center_adventure_text == "short text only" and
+ not contains(match:"\n", card.rule_text_2) and
+ card.flavor_text_2 == "" and
+ card_style.text_2.content_lines <= 2) or
+ styling.center_adventure_text == "always"
+ then "middle center"
+ else "middle left"
+ font:
+ name: { body2_font() }
+ italic name: { body2_font_italic() }
+ size: { body2_font_size() }
+ scale down to: 7
+ color: { body2_font_color() }
+ symbol font:
+ name: { styling.text_box_mana_symbols }
+ size: { body2_font_size() }
+ scale down to: 7
+ ############################# PT
+ pt:
+ left: 516
+ top: { 811 + pt_font_vertical() }
+ width: 82
+ height: 34
+ z index: 900
+ alignment: center middle shrink-overflow
+ font:
+ name: { pt_font() }
+ size: { pt_font_size() }
+ color: { pt_font_color() }
+ separator color: red
+
+############################################################## Extra card fields
+
+extra card field:
+ type: choice
+ name: crown
+ editable: false
+ save value: false
+ show statistics: false
+ choice: crown
+extra card field:
+ type: choice
+ name: pt box
+ editable: false
+ save value: false
+ show statistics: false
+ choice: pt box
+extra card field:
+ type: choice
+ name: card stamp rim
+ editable: false
+ save value: false
+ show statistics: false
+ choice: card stamp rim
+extra card field:
+ type: color
+ name: card stamp border
+ script: card.border_color
+ editable: false
+ save value: false
+ show statistics: false
+
+extra card style:
+ pt box:
+ left: 0
+ top: 0
+ width: { stylesheet.card_width }
+ height: { stylesheet.card_height }
+ z index: 800
+ visible: { card.pt != "" }
+ render style: image
+ image:
+ script:
+ pure := pure_colors()
+ count := length(pure)
+ color := pt_colors()
+ if color == "gold" and count > 1 then template("m", type: "pt")
+ else if color == "land" and count > 1 then template("c", type: "pt")
+ else if color == "hybrid" and count == 2 then masked_blend(mask: "special_blend_pt.png", dark: template(pure.0, type: "pt"), light: template(pure.1, type: "pt"))
+ else card_ptbox()
+ crown:
+ left: 0
+ top: 0
+ width: { stylesheet.card_width }
+ height: { stylesheet.card_height }
+ z index: 800
+ visible: { is_crowned() }
+ render style: image
+ image: { card_crown() }
+ card stamp border:
+ left: 0
+ top: 0
+ width: { stylesheet.card_width }
+ height: { stylesheet.card_height }
+ z index: 210
+ visible: { is_stamped() }
+ mask: stamp_border_mask.png
+ card stamp rim:
+ left: 0
+ top: 0
+ width: { stylesheet.card_width }
+ height: { stylesheet.card_height }
+ z index: 220
+ visible: { is_stamped() }
+ render style: image
+ image: { card_stamp() }
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/border_mask.png b/data/magic-m15-showcase-tarkir-draconic.mse-style/border_mask.png
new file mode 100644
index 000000000..8995e2eb5
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic.mse-style/border_mask.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/card/acard.png b/data/magic-m15-showcase-tarkir-draconic.mse-style/card/acard.png
new file mode 100644
index 000000000..32edf52d4
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic.mse-style/card/acard.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/card/bcard.png b/data/magic-m15-showcase-tarkir-draconic.mse-style/card/bcard.png
new file mode 100644
index 000000000..41c8cbc83
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic.mse-style/card/bcard.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/card/ccard.png b/data/magic-m15-showcase-tarkir-draconic.mse-style/card/ccard.png
new file mode 100644
index 000000000..4094ab3a6
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic.mse-style/card/ccard.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/card/gcard.png b/data/magic-m15-showcase-tarkir-draconic.mse-style/card/gcard.png
new file mode 100644
index 000000000..4ff949144
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic.mse-style/card/gcard.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/card/mcard.png b/data/magic-m15-showcase-tarkir-draconic.mse-style/card/mcard.png
new file mode 100644
index 000000000..61468226b
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic.mse-style/card/mcard.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/card/rcard.png b/data/magic-m15-showcase-tarkir-draconic.mse-style/card/rcard.png
new file mode 100644
index 000000000..47eca2a30
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic.mse-style/card/rcard.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/card/ucard.png b/data/magic-m15-showcase-tarkir-draconic.mse-style/card/ucard.png
new file mode 100644
index 000000000..45057b6de
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic.mse-style/card/ucard.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/card/wcard.png b/data/magic-m15-showcase-tarkir-draconic.mse-style/card/wcard.png
new file mode 100644
index 000000000..63b6e6330
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic.mse-style/card/wcard.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/card_mask.png b/data/magic-m15-showcase-tarkir-draconic.mse-style/card_mask.png
new file mode 100644
index 000000000..4f94dd45d
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic.mse-style/card_mask.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/card_sample.png b/data/magic-m15-showcase-tarkir-draconic.mse-style/card_sample.png
new file mode 100644
index 000000000..fee015e45
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic.mse-style/card_sample.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/crown/acrown.png b/data/magic-m15-showcase-tarkir-draconic.mse-style/crown/acrown.png
new file mode 100644
index 000000000..976fc62ef
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic.mse-style/crown/acrown.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/crown/bcrown.png b/data/magic-m15-showcase-tarkir-draconic.mse-style/crown/bcrown.png
new file mode 100644
index 000000000..8f2fb6246
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic.mse-style/crown/bcrown.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/crown/ccrown.png b/data/magic-m15-showcase-tarkir-draconic.mse-style/crown/ccrown.png
new file mode 100644
index 000000000..c9eb7870f
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic.mse-style/crown/ccrown.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/crown/gcrown.png b/data/magic-m15-showcase-tarkir-draconic.mse-style/crown/gcrown.png
new file mode 100644
index 000000000..2b74c7d63
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic.mse-style/crown/gcrown.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/crown/mcrown.png b/data/magic-m15-showcase-tarkir-draconic.mse-style/crown/mcrown.png
new file mode 100644
index 000000000..be96386a7
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic.mse-style/crown/mcrown.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/crown/rcrown.png b/data/magic-m15-showcase-tarkir-draconic.mse-style/crown/rcrown.png
new file mode 100644
index 000000000..9ad415c42
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic.mse-style/crown/rcrown.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/crown/ucrown.png b/data/magic-m15-showcase-tarkir-draconic.mse-style/crown/ucrown.png
new file mode 100644
index 000000000..7af271f8b
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic.mse-style/crown/ucrown.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/crown/wcrown.png b/data/magic-m15-showcase-tarkir-draconic.mse-style/crown/wcrown.png
new file mode 100644
index 000000000..c9fd99703
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic.mse-style/crown/wcrown.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/foil_mask.png b/data/magic-m15-showcase-tarkir-draconic.mse-style/foil_mask.png
new file mode 100644
index 000000000..65541c912
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic.mse-style/foil_mask.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/image_mask.png b/data/magic-m15-showcase-tarkir-draconic.mse-style/image_mask.png
new file mode 100644
index 000000000..4afcddf1f
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic.mse-style/image_mask.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/pt/apt.png b/data/magic-m15-showcase-tarkir-draconic.mse-style/pt/apt.png
new file mode 100644
index 000000000..127d81c74
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic.mse-style/pt/apt.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/pt/bpt.png b/data/magic-m15-showcase-tarkir-draconic.mse-style/pt/bpt.png
new file mode 100644
index 000000000..9a60b1a83
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic.mse-style/pt/bpt.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/pt/cpt.png b/data/magic-m15-showcase-tarkir-draconic.mse-style/pt/cpt.png
new file mode 100644
index 000000000..9b0c0dc5c
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic.mse-style/pt/cpt.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/pt/gpt.png b/data/magic-m15-showcase-tarkir-draconic.mse-style/pt/gpt.png
new file mode 100644
index 000000000..466e263bb
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic.mse-style/pt/gpt.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/pt/mpt.png b/data/magic-m15-showcase-tarkir-draconic.mse-style/pt/mpt.png
new file mode 100644
index 000000000..e9cc16990
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic.mse-style/pt/mpt.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/pt/rpt.png b/data/magic-m15-showcase-tarkir-draconic.mse-style/pt/rpt.png
new file mode 100644
index 000000000..70d829ee6
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic.mse-style/pt/rpt.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/pt/upt.png b/data/magic-m15-showcase-tarkir-draconic.mse-style/pt/upt.png
new file mode 100644
index 000000000..0775e0b5b
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic.mse-style/pt/upt.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/pt/wpt.png b/data/magic-m15-showcase-tarkir-draconic.mse-style/pt/wpt.png
new file mode 100644
index 000000000..85ced4dd5
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic.mse-style/pt/wpt.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/special_blend_card.png b/data/magic-m15-showcase-tarkir-draconic.mse-style/special_blend_card.png
new file mode 100644
index 000000000..f363328fb
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic.mse-style/special_blend_card.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/special_blend_pt.png b/data/magic-m15-showcase-tarkir-draconic.mse-style/special_blend_pt.png
new file mode 100644
index 000000000..210b9b86e
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic.mse-style/special_blend_pt.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/stamp/astamp.png b/data/magic-m15-showcase-tarkir-draconic.mse-style/stamp/astamp.png
new file mode 100644
index 000000000..6c04563ce
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic.mse-style/stamp/astamp.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/stamp/bstamp.png b/data/magic-m15-showcase-tarkir-draconic.mse-style/stamp/bstamp.png
new file mode 100644
index 000000000..52282b033
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic.mse-style/stamp/bstamp.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/stamp/cstamp.png b/data/magic-m15-showcase-tarkir-draconic.mse-style/stamp/cstamp.png
new file mode 100644
index 000000000..3efacdd9b
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic.mse-style/stamp/cstamp.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/stamp/gstamp.png b/data/magic-m15-showcase-tarkir-draconic.mse-style/stamp/gstamp.png
new file mode 100644
index 000000000..25eda988e
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic.mse-style/stamp/gstamp.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/stamp/mstamp.png b/data/magic-m15-showcase-tarkir-draconic.mse-style/stamp/mstamp.png
new file mode 100644
index 000000000..21633e46d
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic.mse-style/stamp/mstamp.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/stamp/rstamp.png b/data/magic-m15-showcase-tarkir-draconic.mse-style/stamp/rstamp.png
new file mode 100644
index 000000000..3f82ad23f
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic.mse-style/stamp/rstamp.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/stamp/ustamp.png b/data/magic-m15-showcase-tarkir-draconic.mse-style/stamp/ustamp.png
new file mode 100644
index 000000000..9d8f678f6
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic.mse-style/stamp/ustamp.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/stamp/wstamp.png b/data/magic-m15-showcase-tarkir-draconic.mse-style/stamp/wstamp.png
new file mode 100644
index 000000000..d8806b601
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic.mse-style/stamp/wstamp.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/stamp_border_mask.png b/data/magic-m15-showcase-tarkir-draconic.mse-style/stamp_border_mask.png
new file mode 100644
index 000000000..ec07e89f5
Binary files /dev/null and b/data/magic-m15-showcase-tarkir-draconic.mse-style/stamp_border_mask.png differ
diff --git a/data/magic-m15-showcase-tarkir-draconic.mse-style/style b/data/magic-m15-showcase-tarkir-draconic.mse-style/style
new file mode 100644
index 000000000..756732be8
--- /dev/null
+++ b/data/magic-m15-showcase-tarkir-draconic.mse-style/style
@@ -0,0 +1,392 @@
+mse version: 2.1.2
+game: magic
+short name: Draconic
+full name: Tarkir Showcase
+icon: card_sample.png
+position hint: 095
+
+version: 2024-10-01
+depends on:
+ package: magic.mse-game
+ version: 2014-06-25
+depends on:
+ package: magic-mana-large.mse-symbol-font
+ version: 2007-09-23
+depends on:
+ package: magic-mana-small.mse-symbol-font
+ version: 2007-09-23
+depends on:
+ package: magic-modules.mse-include
+ version: 2024-10-01
+depends on:
+ package: magic-mainframe-extras.mse-include
+ version: 2007-09-23
+
+card width: 646
+card height: 902
+card dpi: 258.5
+
+### blanks by GenevensiS
+### code by GenevensiS
+
+############################################################## Extra scripts
+
+init script:
+ swap_fonts_pt_default :=
+ [
+ name: {"Beleren Bold"},
+ size: {26.0},
+ color: {"black"},
+ vertical: {0},
+ italic: {"Beleren Bold"}
+ ]
+
+ swap_fonts_body_default :=
+ [
+ name: {"MPlantin"},
+ size: {24.0},
+ color: {"black"},
+ vertical: {0},
+ italic: {"MPlantin-Italic"}
+ ]
+
+ typeline_offset_width_1 := { -4 }
+ typeline_offset_left_1 := { 2 }
+ typeline_offset_top_1 := { 1 }
+ indicator_offset_top_1 := { -1 }
+ swap_fonts_type_default :=
+ [
+ name: {"Beleren Bold"},
+ size: {22.5},
+ color: {"black"},
+ vertical: {0},
+ italic: {""}
+ ]
+
+ transform_symbol_disabled_1 := { true }
+ nameline_offset_width_1 := { 2 }
+ nameline_offset_left_1 := { -1 }
+ swap_fonts_name_default :=
+ [
+ name: {"Beleren Bold"},
+ size: {26.0},
+ color: {"black"},
+ vertical: {0},
+ italic: {""}
+ ]
+
+ card_stamp_offset_top_1 := { if stamp_shape() == "triangle" then 6 else 0 }
+
+ card_hybrid_2 :=
+ {
+ masked_blend(mask: "special_blend_card.png", dark: template(colors.0), light: template(colors.1))
+ }
+ horizontal_card_hybrid :=
+ [
+ 0: horizontal_card_hybrid[0]
+ 1: horizontal_card_hybrid[1]
+ 2: card_hybrid_2
+ 3: horizontal_card_hybrid[3]
+ 4: horizontal_card_hybrid[4]
+ 5: horizontal_card_hybrid[5]
+ 6: horizontal_card_hybrid[6]
+ 7: horizontal_card_hybrid[7]
+ ]
+ card_hybrid :=
+ [
+ radial: card_hybrid["radial"]
+ horizontal: horizontal_card_hybrid
+ overlay: card_hybrid["overlay"]
+ vertical: card_hybrid["vertical"]
+ ]
+
+ template_prefix :=
+ [
+ border: "border/",
+ card: "card/",
+ pt: "pt/",
+ crown: "crown/",
+ alias: "alias/",
+ stamp: "stamp/",
+ nonstamp: "nonstamp/"
+ identity: "/magic-modules.mse-include/indicators/",
+ identity2: "/magic-modules.mse-include/indicators/",
+ ]
+ template_suffix :=
+ [
+ border: "border.png",
+ card: "card.png",
+ pt: "pt.png",
+ crown: "crown.png",
+ alias: "alias.png",
+ stamp: "stamp.png",
+ nonstamp: "nonstamp.png"
+ identity: "identity.png",
+ identity2: "identity.png",
+ ]
+ template := { template_prefix[type] + input + template_suffix[type] }
+ land_template := { template_prefix[type] + (if input == "a" then "c" else input) + template_suffix[type] }
+
+ card_border := { color_background(input: card.card_color, type: "border", base_hybrid: card_hybrid, multicolor_blend: "black", hybrid_blend: "white", artifact_blend: "white") }
+ card_background := { color_background(input: card.card_color, type: "card", base_hybrid: card_hybrid, multicolor_blend: "black", hybrid_blend: "white", artifact_blend: "white") }
+ card_ptbox := { color_background(input: card.card_color, type: "pt", base_hybrid: card_hybrid, multicolor_blend: "black", hybrid_blend: "white", artifact_blend: "white") }
+ card_crown := { color_background(input: card.card_color, type: "crown", base_hybrid: card_hybrid, multicolor_blend: "black", hybrid_blend: "white", artifact_blend: "white") }
+ card_alias := { color_background(input: card.card_color, type: "alias", base_hybrid: card_hybrid, multicolor_blend: "black", hybrid_blend: "white", artifact_blend: "white") }
+ card_stamp := { color_background(input: card.card_color, type: "stamp", base_hybrid: card_hybrid, multicolor_blend: "black", hybrid_blend: "white", artifact_blend: "white") }
+ card_nonstamp := { color_background(input: card.card_color, type: "nonstamp", base_hybrid: card_hybrid, multicolor_blend: "black", hybrid_blend: "white", artifact_blend: "white") }
+
+ pure_colors :=
+ {
+ sort_text(
+ order: if card_is_wedge(input) then "(wbgur)" else "(wubrg)",
+ (if chosen(card.card_color, choice:"white") then "w") +
+ (if chosen(card.card_color, choice:"blue") then "u") +
+ (if chosen(card.card_color, choice:"black") then "b") +
+ (if chosen(card.card_color, choice:"red") then "r") +
+ (if chosen(card.card_color, choice:"green") then "g")
+ )
+ }
+ pt_colors := { if styling.PT_color_scheme == "canon" then pt_colors_canon() else styling.PT_color_scheme }
+ pt_colors_canon := { if is_hybrid_cost() then "land" else "gold" }
+
+ is_promo := { styling.promo }
+
+ is_unsorted := { styling.remove_from_autocount }
+
+ is_crowned := { styling.legend_crown == "yes" or (styling.legend_crown == "if legendary" and lang_setting("is_legendary")(card.super_type)) }
+
+ foil_mask_added_sections := { [] }
+ foil_mask_removed_sections := { [] }
+
+ chop_top := { split := split_comma(styling.chop_text_box); if length(split) > 0 and split[0] != "" and split[0] != "-" then clamp(split[0], maximum:500, minimum:-500) else 0 }
+ chop_bottom := { split := split_comma(styling.chop_text_box); if length(split) > 1 and split[1] != "" and split[1] != "-" then clamp(split[1], maximum:500, minimum:-500) else 0 }
+ chop_right := { split := split_comma(styling.chop_text_box); if length(split) > 2 and split[2] != "" and split[2] != "-" then clamp(split[2], maximum:500, minimum:-500) else 0 }
+
+ popout_left := { split := split_comma(styling.popout_art_coordinates); if length(split) > 3 and split.0 != "" then clamp(split.0, maximum: 1500, minimum: -500) else 0 }
+ popout_top := { split := split_comma(styling.popout_art_coordinates); if length(split) > 3 and split.1 != "" then clamp(split.1, maximum: 2000, minimum: -500) else 0 }
+ popout_width := { split := split_comma(styling.popout_art_coordinates); if length(split) > 3 and split.2 != "" then clamp(split.2, maximum: 1500, minimum: 0) else 0 }
+ popout_height := { split := split_comma(styling.popout_art_coordinates); if length(split) > 3 and split.3 != "" then clamp(split.3, maximum: 2000, minimum: 0) else 0 }
+
+ art_left := { if styling.stretch_art_to_whole_card then 0 else 27 }
+ art_top := { if styling.stretch_art_to_whole_card then 0 else 103 }
+ art_width := { if styling.stretch_art_to_whole_card then stylesheet.card_width else 598 }
+ art_height := { if styling.stretch_art_to_whole_card then stylesheet.card_height else 404 }
+
+ art_mask := { crop("image_mask.png", offset_x: art_left(), offset_y: art_top(), width: art_width(), height: art_height()) }
+
+############################################################## Extra style options
+
+styling field:
+ type: text
+ name: popout art coordinates
+ description: The coordinates for the popout image field, formatted as "left,top,width,height". Used to make the illustration jump in front of the frame.
+styling field:
+ type: boolean
+ name: stretch art to whole card
+ description: Make the image span the whole card instead of just the visible part. Use this to help make popout effects.
+ initial: no
+
+include file: /magic-modules.mse-include/texts/styling_fields
+
+styling field:
+ type: choice
+ name: PT color scheme
+ description: Use the selected color scheme for the PT box on two color cards. Canon is "land" on hybrid cards, "gold" otherwise.
+ choice: canon
+ choice: gold
+ choice: hybrid
+ choice: colored
+ choice: land
+ initial: canon
+styling field:
+ type: choice
+ name: legend crown
+ description: Use the legend crown?
+ choice: yes
+ choice: if legendary
+ choice: no
+ initial: yes
+
+include file: /magic-modules.mse-include/rarities/styling_fields
+
+include file: /magic-modules.mse-include/watermarks/styling_fields
+
+include file: /magic-modules.mse-include/foils/styling_fields
+
+include file: /magic-modules.mse-include/information/styling_fields
+
+include file: /magic-modules.mse-include/symbol-fonts/styling_fields
+
+include file: /magic-modules.mse-include/fonts/styling_fields
+
+############################################################## Card fields
+
+include file: /magic-modules.mse-include/information/card_fields
+
+include file: /magic-modules.mse-include/stamps/card_fields
+
+include file: /magic-modules.mse-include/corners/card_fields
+
+include file: /magic-modules.mse-include/watermarks/card_fields
+
+include file: /magic-modules.mse-include/separators/card_fields
+
+include file: /magic-modules.mse-include/namelines/card_fields
+
+include file: /magic-modules.mse-include/typelines/card_fields
+
+include file: /magic-modules.mse-include/foils/card_fields
+
+card style:
+ ############################# Background stuff
+ border color:
+ left: 0
+ top: 0
+ width: { stylesheet.card_width }
+ height: { stylesheet.card_height }
+ z index: 190
+ mask: border_mask.png
+ card color:
+ left: 0
+ top: 0
+ width: { stylesheet.card_width }
+ height: { stylesheet.card_height }
+ z index: 200
+ popup style: in place
+ render style: image
+ image: { card_background() }
+ mask: card_mask.png
+ ############################# Image
+ image:
+ left: { art_left() }
+ top: { art_top() }
+ width: { art_width() }
+ height: { art_height() }
+ z index: 100
+ mask: { art_mask() }
+ mainframe image:
+ left: { popout_left() }
+ top: { popout_top() }
+ width: { popout_width() }
+ height: { popout_height() }
+ z index: 1000
+ ############################# Text box
+ text:
+ left: 57
+ top: { 573 + chop_top() + (if is_stamped() then 3 else 0) + body_font_vertical() }
+ right: { 589 - chop_right() }
+ bottom: { 826 - chop_bottom() - if is_stamped() then 5 else 0 }
+ z index: 900
+ line height hard: { if is_modal(card.rule_text) then 0.9 else 1.2 }
+ line height line: 1.5
+ line height soft: 0.9
+ line height hard max: { if is_modal(card.rule_text) then 1.0 else 1.3 }
+ line height line max: 1.6
+ alignment:
+ script:
+ if (styling.center_text == "short text only" and
+ not contains(match:"\n", card.rule_text) and
+ card.flavor_text == "" and
+ card_style.text.content_lines <= 2) or
+ styling.center_text == "always"
+ then "middle center"
+ else "middle left"
+ font:
+ name: { body_font() }
+ italic name: { body_font_italic() }
+ size: { body_font_size() }
+ scale down to: 7
+ color: { body_font_color() }
+ symbol font:
+ name: { styling.text_box_mana_symbols }
+ size: { body_font_size() }
+ scale down to: 7
+ ############################# PT
+ pt:
+ left: 516
+ top: { 811 + pt_font_vertical() }
+ width: 82
+ height: 34
+ z index: 900
+ alignment: center middle shrink-overflow
+ font:
+ name: { pt_font() }
+ size: { pt_font_size() }
+ color: { pt_font_color() }
+ separator color: red
+
+############################################################## Extra card fields
+
+extra card field:
+ type: choice
+ name: crown
+ editable: false
+ save value: false
+ show statistics: false
+ choice: crown
+extra card field:
+ type: choice
+ name: pt box
+ editable: false
+ save value: false
+ show statistics: false
+ choice: pt box
+extra card field:
+ type: choice
+ name: card stamp rim
+ editable: false
+ save value: false
+ show statistics: false
+ choice: card stamp rim
+extra card field:
+ type: color
+ name: card stamp border
+ script: card.border_color
+ editable: false
+ save value: false
+ show statistics: false
+
+extra card style:
+ pt box:
+ left: 0
+ top: 0
+ width: { stylesheet.card_width }
+ height: { stylesheet.card_height }
+ z index: 800
+ visible: { card.pt != "" }
+ render style: image
+ image:
+ script:
+ pure := pure_colors()
+ count := length(pure)
+ color := pt_colors()
+ if color == "gold" and count > 1 then template("m", type: "pt")
+ else if color == "land" and count > 1 then template("c", type: "pt")
+ else if color == "hybrid" and count == 2 then masked_blend(mask: "special_blend_pt.png", dark: template(pure.0, type: "pt"), light: template(pure.1, type: "pt"))
+ else card_ptbox()
+ crown:
+ left: 0
+ top: 0
+ width: { stylesheet.card_width }
+ height: { stylesheet.card_height }
+ z index: 800
+ visible: { is_crowned() }
+ render style: image
+ image: { card_crown() }
+ card stamp border:
+ left: 0
+ top: 0
+ width: { stylesheet.card_width }
+ height: { stylesheet.card_height }
+ z index: 210
+ visible: { is_stamped() }
+ mask: stamp_border_mask.png
+ card stamp rim:
+ left: 0
+ top: 0
+ width: { stylesheet.card_width }
+ height: { stylesheet.card_height }
+ z index: 220
+ visible: { is_stamped() }
+ render style: image
+ image: { card_stamp() }
diff --git a/data/magic-modules.mse-include/indicators/card_fields_dfc b/data/magic-modules.mse-include/indicators/card_fields_dfc
index cb53a034b..b3f3e479e 100644
--- a/data/magic-modules.mse-include/indicators/card_fields_dfc
+++ b/data/magic-modules.mse-include/indicators/card_fields_dfc
@@ -1,4 +1,4 @@
-include file: card_fields
+include file: /magic-modules.mse-include/indicators/card_fields
card style:
indicator 2:
left: { indicator_left_2() + typeline_offset_left_2() }
diff --git a/data/magic-modules.mse-include/indicators/card_fields_tfc b/data/magic-modules.mse-include/indicators/card_fields_tfc
index 0c7b987bc..1b2e1d863 100644
--- a/data/magic-modules.mse-include/indicators/card_fields_tfc
+++ b/data/magic-modules.mse-include/indicators/card_fields_tfc
@@ -1,4 +1,4 @@
-include file: card_fields_dfc
+include file: /magic-modules.mse-include/indicators/card_fields_dfc
card style:
indicator 3:
left: { indicator_left_3() + typeline_offset_left_3() }
diff --git a/data/magic-modules.mse-include/types/card_fields_dfc b/data/magic-modules.mse-include/types/card_fields_dfc
index 94e53d867..f34c0cf3e 100644
--- a/data/magic-modules.mse-include/types/card_fields_dfc
+++ b/data/magic-modules.mse-include/types/card_fields_dfc
@@ -1,4 +1,4 @@
-include file: /magic-modules.mse-include/types/card_fields
+include file: /magic-modules.mse-include/types/card_fields
card style:
type 2:
left: { indicator_left_2() + type_indicator_shift_2() + type_offset_left_2() + typeline_offset_left_2() }