diff --git a/changelog.txt b/changelog.txt index cde43a7e64..650c7d36cb 100644 --- a/changelog.txt +++ b/changelog.txt @@ -151,6 +151,9 @@ __Other Updates I Couldn't Fit Anywhere Else__ • 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 and Dungeons. • Added popunder art support to M15 Mainframe. +• Added spree support to M15 Mainframe, it can be enabled by clicking near the mana cost. +• M15 Mainframe's Clear and Devoid frames have been redesigned and can now stack with Borderless and Fullart. +• Fixed frame conflicts with Conspiracy scrolls on M15 Mainframe. • Added old tap symbol and pawprint support to GenevensiS frames. • Updated the Checklist frame to use magic-modules. • The Information Module now supports Vorthos Box diff --git a/data/magic-blends.mse-include/new-blends b/data/magic-blends.mse-include/new-blends index 3d0946a7fa..1cd1b30cd6 100644 --- a/data/magic-blends.mse-include/new-blends +++ b/data/magic-blends.mse-include/new-blends @@ -1261,6 +1261,7 @@ watermark_blend := glow_alpha := 0.3 backup := if custom then set.blend_with_colors else set.use_blended_watermarks option := styling.watermark_render or else backup + if option == "default" then option := backup dark_textbox := (face == 1 and invert_watermark_1()) or (face == 2 and invert_watermark_2()) or (face == 3 and invert_watermark_3()) diff --git a/data/magic-m15-altered.mse-style/artifact_blend_curtain.png b/data/magic-m15-altered.mse-style/artifact_blend_curtain.png deleted file mode 100644 index c869dd687f..0000000000 Binary files a/data/magic-m15-altered.mse-style/artifact_blend_curtain.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/artifact_blend_custom_border.png b/data/magic-m15-altered.mse-style/artifact_blend_custom_border.png deleted file mode 100644 index cf47e2a74c..0000000000 Binary files a/data/magic-m15-altered.mse-style/artifact_blend_custom_border.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/artifact_blend_puma.png b/data/magic-m15-altered.mse-style/artifact_blend_puma.png deleted file mode 100644 index 9648aa5243..0000000000 Binary files a/data/magic-m15-altered.mse-style/artifact_blend_puma.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/artifact_blend_season.png b/data/magic-m15-altered.mse-style/artifact_blend_season.png deleted file mode 100644 index c869dd687f..0000000000 Binary files a/data/magic-m15-altered.mse-style/artifact_blend_season.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/border_masks/border_mask.png b/data/magic-m15-altered.mse-style/border_masks/border_mask.png index 35d117bdf3..8a8f3e7d4d 100644 Binary files a/data/magic-m15-altered.mse-style/border_masks/border_mask.png and b/data/magic-m15-altered.mse-style/border_masks/border_mask.png differ diff --git a/data/magic-m15-altered.mse-style/border_masks/border_mask_silver.png b/data/magic-m15-altered.mse-style/border_masks/border_mask_silver.png index 7ad9838fb6..e7ab2d00f1 100644 Binary files a/data/magic-m15-altered.mse-style/border_masks/border_mask_silver.png and b/data/magic-m15-altered.mse-style/border_masks/border_mask_silver.png differ diff --git a/data/magic-m15-altered.mse-style/border_masks/crown_border.png b/data/magic-m15-altered.mse-style/border_masks/crown_border.png index 841c6efa69..5bd0caec0a 100644 Binary files a/data/magic-m15-altered.mse-style/border_masks/crown_border.png and b/data/magic-m15-altered.mse-style/border_masks/crown_border.png differ diff --git a/data/magic-m15-altered.mse-style/border_masks/crown_border_silver.png b/data/magic-m15-altered.mse-style/border_masks/crown_border_silver.png index 7b51cc6ca8..09497f16d1 100644 Binary files a/data/magic-m15-altered.mse-style/border_masks/crown_border_silver.png and b/data/magic-m15-altered.mse-style/border_masks/crown_border_silver.png differ diff --git a/data/magic-m15-altered.mse-style/border_masks/puma_border_mask.png b/data/magic-m15-altered.mse-style/border_masks/puma_border_mask.png index 3f31e32804..aa11159410 100644 Binary files a/data/magic-m15-altered.mse-style/border_masks/puma_border_mask.png and b/data/magic-m15-altered.mse-style/border_masks/puma_border_mask.png differ diff --git a/data/magic-m15-altered.mse-style/border_masks/puma_border_mask_silver.png b/data/magic-m15-altered.mse-style/border_masks/puma_border_mask_silver.png index 0d438e880e..73c4fc3fe3 100644 Binary files a/data/magic-m15-altered.mse-style/border_masks/puma_border_mask_silver.png and b/data/magic-m15-altered.mse-style/border_masks/puma_border_mask_silver.png differ diff --git a/data/magic-m15-altered.mse-style/border_masks/puma_crown_border.png b/data/magic-m15-altered.mse-style/border_masks/puma_crown_border.png index 8ca2bf10c0..ce4538a616 100644 Binary files a/data/magic-m15-altered.mse-style/border_masks/puma_crown_border.png and b/data/magic-m15-altered.mse-style/border_masks/puma_crown_border.png differ diff --git a/data/magic-m15-altered.mse-style/border_masks/puma_crown_border_silver.png b/data/magic-m15-altered.mse-style/border_masks/puma_crown_border_silver.png index 6fb2af7dcd..61eeb03612 100644 Binary files a/data/magic-m15-altered.mse-style/border_masks/puma_crown_border_silver.png and b/data/magic-m15-altered.mse-style/border_masks/puma_crown_border_silver.png differ diff --git a/data/magic-m15-altered.mse-style/devoid/acard.png b/data/magic-m15-altered.mse-style/devoid/acard.png deleted file mode 100644 index fcaf683464..0000000000 Binary files a/data/magic-m15-altered.mse-style/devoid/acard.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/devoid/bcard.png b/data/magic-m15-altered.mse-style/devoid/bcard.png deleted file mode 100644 index 89b8077fec..0000000000 Binary files a/data/magic-m15-altered.mse-style/devoid/bcard.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/devoid/ccard.png b/data/magic-m15-altered.mse-style/devoid/ccard.png deleted file mode 100644 index 3aac4e4509..0000000000 Binary files a/data/magic-m15-altered.mse-style/devoid/ccard.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/devoid/gcard.png b/data/magic-m15-altered.mse-style/devoid/gcard.png deleted file mode 100644 index 942f541201..0000000000 Binary files a/data/magic-m15-altered.mse-style/devoid/gcard.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/devoid/mcard.png b/data/magic-m15-altered.mse-style/devoid/mcard.png deleted file mode 100644 index 5e7768c474..0000000000 Binary files a/data/magic-m15-altered.mse-style/devoid/mcard.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/devoid/rcard.png b/data/magic-m15-altered.mse-style/devoid/rcard.png deleted file mode 100644 index 0d5817a996..0000000000 Binary files a/data/magic-m15-altered.mse-style/devoid/rcard.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/devoid/stamp.png b/data/magic-m15-altered.mse-style/devoid/stamp.png deleted file mode 100644 index bb858f08bf..0000000000 Binary files a/data/magic-m15-altered.mse-style/devoid/stamp.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/devoid/trim_mask.png b/data/magic-m15-altered.mse-style/devoid/trim_mask.png deleted file mode 100644 index 841a66554a..0000000000 Binary files a/data/magic-m15-altered.mse-style/devoid/trim_mask.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/devoid/ucard.png b/data/magic-m15-altered.mse-style/devoid/ucard.png deleted file mode 100644 index 15ba6d2439..0000000000 Binary files a/data/magic-m15-altered.mse-style/devoid/ucard.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/devoid/wcard.png b/data/magic-m15-altered.mse-style/devoid/wcard.png deleted file mode 100644 index 5ace9a763e..0000000000 Binary files a/data/magic-m15-altered.mse-style/devoid/wcard.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/frame_masks/border_mask_inv.png b/data/magic-m15-altered.mse-style/frame_masks/border_mask_inv.png new file mode 100644 index 0000000000..86bc979241 Binary files /dev/null and b/data/magic-m15-altered.mse-style/frame_masks/border_mask_inv.png differ diff --git a/data/magic-m15-altered.mse-style/frame_masks/borderless.png b/data/magic-m15-altered.mse-style/frame_masks/borderless.png index f453dd36a6..34d1d196d2 100644 Binary files a/data/magic-m15-altered.mse-style/frame_masks/borderless.png and b/data/magic-m15-altered.mse-style/frame_masks/borderless.png differ diff --git a/data/magic-m15-altered.mse-style/frame_masks/borderless_dka.png b/data/magic-m15-altered.mse-style/frame_masks/borderless_dka.png index f5ecd0b634..a643b04ef6 100644 Binary files a/data/magic-m15-altered.mse-style/frame_masks/borderless_dka.png and b/data/magic-m15-altered.mse-style/frame_masks/borderless_dka.png differ diff --git a/data/magic-m15-altered.mse-style/frame_masks/borderless_frameless.png b/data/magic-m15-altered.mse-style/frame_masks/borderless_frameless.png deleted file mode 100644 index 99037a9145..0000000000 Binary files a/data/magic-m15-altered.mse-style/frame_masks/borderless_frameless.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/frame_masks/borderless_frameless_miracle.png b/data/magic-m15-altered.mse-style/frame_masks/borderless_frameless_miracle.png deleted file mode 100644 index 1587449f19..0000000000 Binary files a/data/magic-m15-altered.mse-style/frame_masks/borderless_frameless_miracle.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/frame_masks/borderless_transparent.png b/data/magic-m15-altered.mse-style/frame_masks/borderless_transparent.png deleted file mode 100644 index 1be6902274..0000000000 Binary files a/data/magic-m15-altered.mse-style/frame_masks/borderless_transparent.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/frame_masks/clear_frame_mask.png b/data/magic-m15-altered.mse-style/frame_masks/clear_frame_mask.png deleted file mode 100644 index 15b200c28a..0000000000 Binary files a/data/magic-m15-altered.mse-style/frame_masks/clear_frame_mask.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/frame_masks/clear_tops_dka_mask.png b/data/magic-m15-altered.mse-style/frame_masks/clear_tops_dka_mask.png deleted file mode 100644 index 9c84651dc2..0000000000 Binary files a/data/magic-m15-altered.mse-style/frame_masks/clear_tops_dka_mask.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/frame_masks/clear_tops_dka_mask2.png b/data/magic-m15-altered.mse-style/frame_masks/clear_tops_dka_mask2.png deleted file mode 100644 index e010e8287b..0000000000 Binary files a/data/magic-m15-altered.mse-style/frame_masks/clear_tops_dka_mask2.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/frame_masks/clear_tops_mask.png b/data/magic-m15-altered.mse-style/frame_masks/clear_tops_mask.png index 4ff76acea0..8a837954fb 100644 Binary files a/data/magic-m15-altered.mse-style/frame_masks/clear_tops_mask.png and b/data/magic-m15-altered.mse-style/frame_masks/clear_tops_mask.png differ diff --git a/data/magic-m15-altered.mse-style/frame_masks/clear_tops_mask_inv.png b/data/magic-m15-altered.mse-style/frame_masks/clear_tops_mask_inv.png new file mode 100644 index 0000000000..67fdbd52b2 Binary files /dev/null and b/data/magic-m15-altered.mse-style/frame_masks/clear_tops_mask_inv.png differ diff --git a/data/magic-m15-altered.mse-style/frame_masks/click_mask.png b/data/magic-m15-altered.mse-style/frame_masks/click_mask.png new file mode 100644 index 0000000000..0b3b175d09 Binary files /dev/null and b/data/magic-m15-altered.mse-style/frame_masks/click_mask.png differ diff --git a/data/magic-m15-altered.mse-style/frame_masks/click_mask_dka.png b/data/magic-m15-altered.mse-style/frame_masks/click_mask_dka.png new file mode 100644 index 0000000000..6d77f0a7c5 Binary files /dev/null and b/data/magic-m15-altered.mse-style/frame_masks/click_mask_dka.png differ diff --git a/data/magic-m15-altered.mse-style/frame_masks/click_mask_energy.png b/data/magic-m15-altered.mse-style/frame_masks/click_mask_energy.png new file mode 100644 index 0000000000..0619a990b4 Binary files /dev/null and b/data/magic-m15-altered.mse-style/frame_masks/click_mask_energy.png differ diff --git a/data/magic-m15-altered.mse-style/frame_masks/click_mask_spree.png b/data/magic-m15-altered.mse-style/frame_masks/click_mask_spree.png new file mode 100644 index 0000000000..82e62d5c10 Binary files /dev/null and b/data/magic-m15-altered.mse-style/frame_masks/click_mask_spree.png differ diff --git a/data/magic-m15-altered.mse-style/frame_masks/crown_miracle_borderless.png b/data/magic-m15-altered.mse-style/frame_masks/crown_miracle_borderless.png deleted file mode 100644 index aaa576775f..0000000000 Binary files a/data/magic-m15-altered.mse-style/frame_masks/crown_miracle_borderless.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/frame_masks/dka.png b/data/magic-m15-altered.mse-style/frame_masks/dka.png index 2b08a01ef5..46d2e31040 100644 Binary files a/data/magic-m15-altered.mse-style/frame_masks/dka.png and b/data/magic-m15-altered.mse-style/frame_masks/dka.png differ diff --git a/data/magic-m15-altered.mse-style/frame_masks/dka_notched.png b/data/magic-m15-altered.mse-style/frame_masks/dka_notched.png new file mode 100644 index 0000000000..c705332d2e Binary files /dev/null and b/data/magic-m15-altered.mse-style/frame_masks/dka_notched.png differ diff --git a/data/magic-m15-altered.mse-style/frame_masks/energy.png b/data/magic-m15-altered.mse-style/frame_masks/energy.png deleted file mode 100644 index 4435e9f778..0000000000 Binary files a/data/magic-m15-altered.mse-style/frame_masks/energy.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/frame_masks/frame_mask.png b/data/magic-m15-altered.mse-style/frame_masks/frame_mask.png deleted file mode 100644 index 16e9fd3cb2..0000000000 Binary files a/data/magic-m15-altered.mse-style/frame_masks/frame_mask.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/frame_masks/frame_mask_mutate.png b/data/magic-m15-altered.mse-style/frame_masks/frame_mask_mutate.png deleted file mode 100644 index 3c9031753a..0000000000 Binary files a/data/magic-m15-altered.mse-style/frame_masks/frame_mask_mutate.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/frame_masks/frame_mask_puma_mutate.png b/data/magic-m15-altered.mse-style/frame_masks/frame_mask_puma_mutate.png deleted file mode 100644 index 3ea908566e..0000000000 Binary files a/data/magic-m15-altered.mse-style/frame_masks/frame_mask_puma_mutate.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/frame_masks/map_mask.png b/data/magic-m15-altered.mse-style/frame_masks/map_mask.png deleted file mode 100644 index 3abe705c96..0000000000 Binary files a/data/magic-m15-altered.mse-style/frame_masks/map_mask.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/frame_masks/miracle_borderless.png b/data/magic-m15-altered.mse-style/frame_masks/miracle_borderless.png deleted file mode 100644 index b55a666c59..0000000000 Binary files a/data/magic-m15-altered.mse-style/frame_masks/miracle_borderless.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/frame_masks/miracle_borderless_crown.png b/data/magic-m15-altered.mse-style/frame_masks/miracle_borderless_crown.png deleted file mode 100644 index 29a9c9e44f..0000000000 Binary files a/data/magic-m15-altered.mse-style/frame_masks/miracle_borderless_crown.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/frame_masks/miracle_semitrans.png b/data/magic-m15-altered.mse-style/frame_masks/miracle_semitrans.png new file mode 100644 index 0000000000..1ce611abda Binary files /dev/null and b/data/magic-m15-altered.mse-style/frame_masks/miracle_semitrans.png differ diff --git a/data/magic-m15-altered.mse-style/frame_masks/mutate.png b/data/magic-m15-altered.mse-style/frame_masks/mutate.png new file mode 100644 index 0000000000..bde89d6253 Binary files /dev/null and b/data/magic-m15-altered.mse-style/frame_masks/mutate.png differ diff --git a/data/magic-m15-altered.mse-style/frame_masks/frame_mask_puma.png b/data/magic-m15-altered.mse-style/frame_masks/puma.png similarity index 100% rename from data/magic-m15-altered.mse-style/frame_masks/frame_mask_puma.png rename to data/magic-m15-altered.mse-style/frame_masks/puma.png diff --git a/data/magic-m15-altered.mse-style/frame_masks/secret_lair.png b/data/magic-m15-altered.mse-style/frame_masks/secret_lair.png new file mode 100644 index 0000000000..bb1239e452 Binary files /dev/null and b/data/magic-m15-altered.mse-style/frame_masks/secret_lair.png differ diff --git a/data/magic-m15-altered.mse-style/frame_masks/secret_lair_notched.png b/data/magic-m15-altered.mse-style/frame_masks/secret_lair_notched.png new file mode 100644 index 0000000000..b5d2a60795 Binary files /dev/null and b/data/magic-m15-altered.mse-style/frame_masks/secret_lair_notched.png differ diff --git a/data/magic-m15-altered.mse-style/frame_masks/semitrans.png b/data/magic-m15-altered.mse-style/frame_masks/semitrans.png new file mode 100644 index 0000000000..9d96d2e37e Binary files /dev/null and b/data/magic-m15-altered.mse-style/frame_masks/semitrans.png differ diff --git a/data/magic-m15-altered.mse-style/frame_masks/semitrans_notched.png b/data/magic-m15-altered.mse-style/frame_masks/semitrans_notched.png new file mode 100644 index 0000000000..71f2eb8be1 Binary files /dev/null and b/data/magic-m15-altered.mse-style/frame_masks/semitrans_notched.png differ diff --git a/data/magic-m15-altered.mse-style/frame_masks/spacecraft.png b/data/magic-m15-altered.mse-style/frame_masks/spacecraft.png index f530ccdb06..519ed1de3e 100644 Binary files a/data/magic-m15-altered.mse-style/frame_masks/spacecraft.png and b/data/magic-m15-altered.mse-style/frame_masks/spacecraft.png differ diff --git a/data/magic-m15-altered.mse-style/frame_masks/spacecraft_borderless.png b/data/magic-m15-altered.mse-style/frame_masks/spacecraft_borderless.png index bf1e386f95..11204e68c8 100644 Binary files a/data/magic-m15-altered.mse-style/frame_masks/spacecraft_borderless.png and b/data/magic-m15-altered.mse-style/frame_masks/spacecraft_borderless.png differ diff --git a/data/magic-m15-altered.mse-style/frame_masks/spacecraft_clear.png b/data/magic-m15-altered.mse-style/frame_masks/spacecraft_clear.png deleted file mode 100644 index 5df0bf6c33..0000000000 Binary files a/data/magic-m15-altered.mse-style/frame_masks/spacecraft_clear.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/frame_masks/spacecraft_text.png b/data/magic-m15-altered.mse-style/frame_masks/spacecraft_text.png new file mode 100644 index 0000000000..351f79d27d Binary files /dev/null and b/data/magic-m15-altered.mse-style/frame_masks/spacecraft_text.png differ diff --git a/data/magic-m15-altered.mse-style/frame_masks/spacecraft_text_notched.png b/data/magic-m15-altered.mse-style/frame_masks/spacecraft_text_notched.png new file mode 100644 index 0000000000..892512f171 Binary files /dev/null and b/data/magic-m15-altered.mse-style/frame_masks/spacecraft_text_notched.png differ diff --git a/data/magic-m15-altered.mse-style/hybrid_blend_curtain.png b/data/magic-m15-altered.mse-style/hybrid_blend_curtain.png deleted file mode 100644 index c869dd687f..0000000000 Binary files a/data/magic-m15-altered.mse-style/hybrid_blend_curtain.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/hybrid_blend_custom_border.png b/data/magic-m15-altered.mse-style/hybrid_blend_custom_border.png deleted file mode 100644 index c869dd687f..0000000000 Binary files a/data/magic-m15-altered.mse-style/hybrid_blend_custom_border.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/hybrid_blend_puma.png b/data/magic-m15-altered.mse-style/hybrid_blend_puma.png deleted file mode 100644 index 77ce63e20f..0000000000 Binary files a/data/magic-m15-altered.mse-style/hybrid_blend_puma.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/hybrid_blend_season.png b/data/magic-m15-altered.mse-style/hybrid_blend_season.png deleted file mode 100644 index c869dd687f..0000000000 Binary files a/data/magic-m15-altered.mse-style/hybrid_blend_season.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/image_masks/clear.png b/data/magic-m15-altered.mse-style/image_masks/clear.png index 718ef6796d..04e7d4d6d4 100644 Binary files a/data/magic-m15-altered.mse-style/image_masks/clear.png and b/data/magic-m15-altered.mse-style/image_masks/clear.png differ diff --git a/data/magic-m15-altered.mse-style/image_masks/clear_dka.png b/data/magic-m15-altered.mse-style/image_masks/clear_dka.png new file mode 100644 index 0000000000..48f962af1f Binary files /dev/null and b/data/magic-m15-altered.mse-style/image_masks/clear_dka.png differ diff --git a/data/magic-m15-altered.mse-style/image_masks/devoid.png b/data/magic-m15-altered.mse-style/image_masks/devoid.png deleted file mode 100644 index f410a7d95d..0000000000 Binary files a/data/magic-m15-altered.mse-style/image_masks/devoid.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/image_masks/energy.png b/data/magic-m15-altered.mse-style/image_masks/energy.png index 8479656c1a..7016176674 100644 Binary files a/data/magic-m15-altered.mse-style/image_masks/energy.png and b/data/magic-m15-altered.mse-style/image_masks/energy.png differ diff --git a/data/magic-m15-altered.mse-style/image_masks/guide_borderless.png b/data/magic-m15-altered.mse-style/image_masks/guide_borderless.png index 240256c50d..a0b481ffe7 100644 Binary files a/data/magic-m15-altered.mse-style/image_masks/guide_borderless.png and b/data/magic-m15-altered.mse-style/image_masks/guide_borderless.png differ diff --git a/data/magic-m15-altered.mse-style/image_masks/guide_borderless_dka.png b/data/magic-m15-altered.mse-style/image_masks/guide_borderless_dka.png index f0366164dd..cc6973dca4 100644 Binary files a/data/magic-m15-altered.mse-style/image_masks/guide_borderless_dka.png and b/data/magic-m15-altered.mse-style/image_masks/guide_borderless_dka.png differ diff --git a/data/magic-m15-altered.mse-style/image_masks/guide_dka.png b/data/magic-m15-altered.mse-style/image_masks/guide_dka.png new file mode 100644 index 0000000000..7335d58d81 Binary files /dev/null and b/data/magic-m15-altered.mse-style/image_masks/guide_dka.png differ diff --git a/data/magic-m15-altered.mse-style/masks/dka_add.png b/data/magic-m15-altered.mse-style/masks/dka_add.png new file mode 100644 index 0000000000..d439765215 Binary files /dev/null and b/data/magic-m15-altered.mse-style/masks/dka_add.png differ diff --git a/data/magic-m15-altered.mse-style/masks/dka_remove.png b/data/magic-m15-altered.mse-style/masks/dka_remove.png new file mode 100644 index 0000000000..d89760f4ff Binary files /dev/null and b/data/magic-m15-altered.mse-style/masks/dka_remove.png differ diff --git a/data/magic-m15-altered.mse-style/meldbar.png b/data/magic-m15-altered.mse-style/meldbar.png new file mode 100644 index 0000000000..5af5ae4c39 Binary files /dev/null and b/data/magic-m15-altered.mse-style/meldbar.png differ diff --git a/data/magic-m15-altered.mse-style/multicolor_blend_curtain.png b/data/magic-m15-altered.mse-style/multicolor_blend_curtain.png deleted file mode 100644 index c869dd687f..0000000000 Binary files a/data/magic-m15-altered.mse-style/multicolor_blend_curtain.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/multicolor_blend_custom_border.png b/data/magic-m15-altered.mse-style/multicolor_blend_custom_border.png deleted file mode 100644 index cf47e2a74c..0000000000 Binary files a/data/magic-m15-altered.mse-style/multicolor_blend_custom_border.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/multicolor_blend_puma.png b/data/magic-m15-altered.mse-style/multicolor_blend_puma.png deleted file mode 100644 index 726d935fbf..0000000000 Binary files a/data/magic-m15-altered.mse-style/multicolor_blend_puma.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/multicolor_blend_season.png b/data/magic-m15-altered.mse-style/multicolor_blend_season.png deleted file mode 100644 index cf47e2a74c..0000000000 Binary files a/data/magic-m15-altered.mse-style/multicolor_blend_season.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/multiply_mask_canvas.png b/data/magic-m15-altered.mse-style/multiply_mask_canvas.png new file mode 100644 index 0000000000..cfd136a84a Binary files /dev/null and b/data/magic-m15-altered.mse-style/multiply_mask_canvas.png differ diff --git a/data/magic-m15-altered.mse-style/multiply_mask_levels.png b/data/magic-m15-altered.mse-style/multiply_mask_levels.png new file mode 100644 index 0000000000..8f4a1bc484 Binary files /dev/null and b/data/magic-m15-altered.mse-style/multiply_mask_levels.png differ diff --git a/data/magic-m15-altered.mse-style/nodes/anode.png b/data/magic-m15-altered.mse-style/nodes/anode.png deleted file mode 100644 index 3a7b7374bc..0000000000 Binary files a/data/magic-m15-altered.mse-style/nodes/anode.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/nodes/artifact_blend_node.png b/data/magic-m15-altered.mse-style/nodes/artifact_blend_node.png deleted file mode 100644 index 283a0a7704..0000000000 Binary files a/data/magic-m15-altered.mse-style/nodes/artifact_blend_node.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/nodes/bnode.png b/data/magic-m15-altered.mse-style/nodes/bnode.png deleted file mode 100644 index 2aadbcd8ff..0000000000 Binary files a/data/magic-m15-altered.mse-style/nodes/bnode.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/nodes/cnode.png b/data/magic-m15-altered.mse-style/nodes/cnode.png deleted file mode 100644 index 4bc5386e89..0000000000 Binary files a/data/magic-m15-altered.mse-style/nodes/cnode.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/nodes/devoidnode.png b/data/magic-m15-altered.mse-style/nodes/devoidnode.png deleted file mode 100644 index f50b763de4..0000000000 Binary files a/data/magic-m15-altered.mse-style/nodes/devoidnode.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/nodes/gnode.png b/data/magic-m15-altered.mse-style/nodes/gnode.png deleted file mode 100644 index 923352367e..0000000000 Binary files a/data/magic-m15-altered.mse-style/nodes/gnode.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/nodes/hybrid_blend_node.png b/data/magic-m15-altered.mse-style/nodes/hybrid_blend_node.png deleted file mode 100644 index 283a0a7704..0000000000 Binary files a/data/magic-m15-altered.mse-style/nodes/hybrid_blend_node.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/nodes/mask.png b/data/magic-m15-altered.mse-style/nodes/mask.png deleted file mode 100644 index bf43acf3e9..0000000000 Binary files a/data/magic-m15-altered.mse-style/nodes/mask.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/nodes/mnode.png b/data/magic-m15-altered.mse-style/nodes/mnode.png deleted file mode 100644 index 4c2ac25873..0000000000 Binary files a/data/magic-m15-altered.mse-style/nodes/mnode.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/nodes/multicolor_blend_node.png b/data/magic-m15-altered.mse-style/nodes/multicolor_blend_node.png deleted file mode 100644 index 283a0a7704..0000000000 Binary files a/data/magic-m15-altered.mse-style/nodes/multicolor_blend_node.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/nodes/rnode.png b/data/magic-m15-altered.mse-style/nodes/rnode.png deleted file mode 100644 index e6468e21ae..0000000000 Binary files a/data/magic-m15-altered.mse-style/nodes/rnode.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/nodes/shifted/anode.png b/data/magic-m15-altered.mse-style/nodes/shifted/anode.png deleted file mode 100644 index cea90e6ed2..0000000000 Binary files a/data/magic-m15-altered.mse-style/nodes/shifted/anode.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/nodes/shifted/apuma.png b/data/magic-m15-altered.mse-style/nodes/shifted/apuma.png deleted file mode 100644 index 115b82f8f6..0000000000 Binary files a/data/magic-m15-altered.mse-style/nodes/shifted/apuma.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/nodes/shifted/bnode.png b/data/magic-m15-altered.mse-style/nodes/shifted/bnode.png deleted file mode 100644 index 2aadbcd8ff..0000000000 Binary files a/data/magic-m15-altered.mse-style/nodes/shifted/bnode.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/nodes/shifted/cnode.png b/data/magic-m15-altered.mse-style/nodes/shifted/cnode.png deleted file mode 100644 index 4bc5386e89..0000000000 Binary files a/data/magic-m15-altered.mse-style/nodes/shifted/cnode.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/nodes/shifted/gnode.png b/data/magic-m15-altered.mse-style/nodes/shifted/gnode.png deleted file mode 100644 index 923352367e..0000000000 Binary files a/data/magic-m15-altered.mse-style/nodes/shifted/gnode.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/nodes/shifted/mnode.png b/data/magic-m15-altered.mse-style/nodes/shifted/mnode.png deleted file mode 100644 index 4c2ac25873..0000000000 Binary files a/data/magic-m15-altered.mse-style/nodes/shifted/mnode.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/nodes/shifted/rnode.png b/data/magic-m15-altered.mse-style/nodes/shifted/rnode.png deleted file mode 100644 index 4e709e5eff..0000000000 Binary files a/data/magic-m15-altered.mse-style/nodes/shifted/rnode.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/nodes/shifted/unode.png b/data/magic-m15-altered.mse-style/nodes/shifted/unode.png deleted file mode 100644 index 982d13440a..0000000000 Binary files a/data/magic-m15-altered.mse-style/nodes/shifted/unode.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/nodes/shifted/wnode.png b/data/magic-m15-altered.mse-style/nodes/shifted/wnode.png deleted file mode 100644 index 319e237ac2..0000000000 Binary files a/data/magic-m15-altered.mse-style/nodes/shifted/wnode.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/nodes/unode.png b/data/magic-m15-altered.mse-style/nodes/unode.png deleted file mode 100644 index 982d13440a..0000000000 Binary files a/data/magic-m15-altered.mse-style/nodes/unode.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/nodes/wnode.png b/data/magic-m15-altered.mse-style/nodes/wnode.png deleted file mode 100644 index 319e237ac2..0000000000 Binary files a/data/magic-m15-altered.mse-style/nodes/wnode.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/notches/a.png b/data/magic-m15-altered.mse-style/notches/a.png new file mode 100644 index 0000000000..745005473d Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/a.png differ diff --git a/data/magic-m15-altered.mse-style/notches/b.png b/data/magic-m15-altered.mse-style/notches/b.png new file mode 100644 index 0000000000..91558e6cb5 Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/b.png differ diff --git a/data/magic-m15-altered.mse-style/notches/beyond/a.png b/data/magic-m15-altered.mse-style/notches/beyond/a.png new file mode 100644 index 0000000000..e9167d2302 Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/beyond/a.png differ diff --git a/data/magic-m15-altered.mse-style/notches/beyond/b.png b/data/magic-m15-altered.mse-style/notches/beyond/b.png new file mode 100644 index 0000000000..8510845a8c Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/beyond/b.png differ diff --git a/data/magic-m15-altered.mse-style/notches/beyond/c.png b/data/magic-m15-altered.mse-style/notches/beyond/c.png new file mode 100644 index 0000000000..5f89a28932 Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/beyond/c.png differ diff --git a/data/magic-m15-altered.mse-style/notches/beyond/g.png b/data/magic-m15-altered.mse-style/notches/beyond/g.png new file mode 100644 index 0000000000..0563d34a4c Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/beyond/g.png differ diff --git a/data/magic-m15-altered.mse-style/notches/beyond/m.png b/data/magic-m15-altered.mse-style/notches/beyond/m.png new file mode 100644 index 0000000000..1cf78745d8 Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/beyond/m.png differ diff --git a/data/magic-m15-altered.mse-style/notches/beyond/r.png b/data/magic-m15-altered.mse-style/notches/beyond/r.png new file mode 100644 index 0000000000..021e48735a Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/beyond/r.png differ diff --git a/data/magic-m15-altered.mse-style/notches/beyond/u.png b/data/magic-m15-altered.mse-style/notches/beyond/u.png new file mode 100644 index 0000000000..28152aa065 Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/beyond/u.png differ diff --git a/data/magic-m15-altered.mse-style/notches/beyond/w.png b/data/magic-m15-altered.mse-style/notches/beyond/w.png new file mode 100644 index 0000000000..d2a559cfdb Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/beyond/w.png differ diff --git a/data/magic-m15-altered.mse-style/notches/c.png b/data/magic-m15-altered.mse-style/notches/c.png new file mode 100644 index 0000000000..4eebb11970 Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/c.png differ diff --git a/data/magic-m15-altered.mse-style/notches/dka/a.png b/data/magic-m15-altered.mse-style/notches/dka/a.png new file mode 100644 index 0000000000..15c98aad52 Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/dka/a.png differ diff --git a/data/magic-m15-altered.mse-style/notches/dka/b.png b/data/magic-m15-altered.mse-style/notches/dka/b.png new file mode 100644 index 0000000000..e6a803b06d Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/dka/b.png differ diff --git a/data/magic-m15-altered.mse-style/notches/dka/c.png b/data/magic-m15-altered.mse-style/notches/dka/c.png new file mode 100644 index 0000000000..2eac29609d Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/dka/c.png differ diff --git a/data/magic-m15-altered.mse-style/notches/dka/g.png b/data/magic-m15-altered.mse-style/notches/dka/g.png new file mode 100644 index 0000000000..9d1598d5fc Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/dka/g.png differ diff --git a/data/magic-m15-altered.mse-style/notches/dka/m.png b/data/magic-m15-altered.mse-style/notches/dka/m.png new file mode 100644 index 0000000000..0ccac41efe Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/dka/m.png differ diff --git a/data/magic-m15-altered.mse-style/notches/dka/r.png b/data/magic-m15-altered.mse-style/notches/dka/r.png new file mode 100644 index 0000000000..8dfea9a733 Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/dka/r.png differ diff --git a/data/magic-m15-altered.mse-style/notches/dka/u.png b/data/magic-m15-altered.mse-style/notches/dka/u.png new file mode 100644 index 0000000000..74c4a07807 Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/dka/u.png differ diff --git a/data/magic-m15-altered.mse-style/notches/dka/w.png b/data/magic-m15-altered.mse-style/notches/dka/w.png new file mode 100644 index 0000000000..76b602e9ae Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/dka/w.png differ diff --git a/data/magic-m15-altered.mse-style/notches/fnm/a.png b/data/magic-m15-altered.mse-style/notches/fnm/a.png new file mode 100644 index 0000000000..2ca7c93b01 Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/fnm/a.png differ diff --git a/data/magic-m15-altered.mse-style/notches/fnm/b.png b/data/magic-m15-altered.mse-style/notches/fnm/b.png new file mode 100644 index 0000000000..4f2884ae71 Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/fnm/b.png differ diff --git a/data/magic-m15-altered.mse-style/notches/fnm/c.png b/data/magic-m15-altered.mse-style/notches/fnm/c.png new file mode 100644 index 0000000000..dac48a7694 Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/fnm/c.png differ diff --git a/data/magic-m15-altered.mse-style/notches/fnm/g.png b/data/magic-m15-altered.mse-style/notches/fnm/g.png new file mode 100644 index 0000000000..4b368f5cee Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/fnm/g.png differ diff --git a/data/magic-m15-altered.mse-style/notches/fnm/m.png b/data/magic-m15-altered.mse-style/notches/fnm/m.png new file mode 100644 index 0000000000..70c5e6c3d6 Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/fnm/m.png differ diff --git a/data/magic-m15-altered.mse-style/notches/fnm/r.png b/data/magic-m15-altered.mse-style/notches/fnm/r.png new file mode 100644 index 0000000000..6b62f8d221 Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/fnm/r.png differ diff --git a/data/magic-m15-altered.mse-style/notches/fnm/u.png b/data/magic-m15-altered.mse-style/notches/fnm/u.png new file mode 100644 index 0000000000..e66eafa1e8 Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/fnm/u.png differ diff --git a/data/magic-m15-altered.mse-style/notches/fnm/w.png b/data/magic-m15-altered.mse-style/notches/fnm/w.png new file mode 100644 index 0000000000..ddc5398854 Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/fnm/w.png differ diff --git a/data/magic-m15-altered.mse-style/notches/g.png b/data/magic-m15-altered.mse-style/notches/g.png new file mode 100644 index 0000000000..ea8fa4442c Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/g.png differ diff --git a/data/magic-m15-altered.mse-style/notches/inverted/a.png b/data/magic-m15-altered.mse-style/notches/inverted/a.png new file mode 100644 index 0000000000..cbb5213888 Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/inverted/a.png differ diff --git a/data/magic-m15-altered.mse-style/notches/inverted/b.png b/data/magic-m15-altered.mse-style/notches/inverted/b.png new file mode 100644 index 0000000000..e629ceb05e Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/inverted/b.png differ diff --git a/data/magic-m15-altered.mse-style/notches/inverted/c.png b/data/magic-m15-altered.mse-style/notches/inverted/c.png new file mode 100644 index 0000000000..da11ef3fed Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/inverted/c.png differ diff --git a/data/magic-m15-altered.mse-style/notches/inverted/g.png b/data/magic-m15-altered.mse-style/notches/inverted/g.png new file mode 100644 index 0000000000..516a724530 Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/inverted/g.png differ diff --git a/data/magic-m15-altered.mse-style/notches/inverted/m.png b/data/magic-m15-altered.mse-style/notches/inverted/m.png new file mode 100644 index 0000000000..ece96a8cb3 Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/inverted/m.png differ diff --git a/data/magic-m15-altered.mse-style/notches/inverted/r.png b/data/magic-m15-altered.mse-style/notches/inverted/r.png new file mode 100644 index 0000000000..79e781c3ce Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/inverted/r.png differ diff --git a/data/magic-m15-altered.mse-style/notches/inverted/u.png b/data/magic-m15-altered.mse-style/notches/inverted/u.png new file mode 100644 index 0000000000..2d1e3518bc Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/inverted/u.png differ diff --git a/data/magic-m15-altered.mse-style/notches/inverted/w.png b/data/magic-m15-altered.mse-style/notches/inverted/w.png new file mode 100644 index 0000000000..97b8597e54 Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/inverted/w.png differ diff --git a/data/magic-m15-altered.mse-style/notches/m.png b/data/magic-m15-altered.mse-style/notches/m.png new file mode 100644 index 0000000000..059d8fcfe9 Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/m.png differ diff --git a/data/magic-m15-altered.mse-style/notches/r.png b/data/magic-m15-altered.mse-style/notches/r.png new file mode 100644 index 0000000000..56233ae13e Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/r.png differ diff --git a/data/magic-m15-altered.mse-style/notches/shifted/a.png b/data/magic-m15-altered.mse-style/notches/shifted/a.png new file mode 100644 index 0000000000..c454d359e8 Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/shifted/a.png differ diff --git a/data/magic-m15-altered.mse-style/notches/shifted/b.png b/data/magic-m15-altered.mse-style/notches/shifted/b.png new file mode 100644 index 0000000000..5168cdf2c9 Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/shifted/b.png differ diff --git a/data/magic-m15-altered.mse-style/notches/shifted/c.png b/data/magic-m15-altered.mse-style/notches/shifted/c.png new file mode 100644 index 0000000000..4b644b22e4 Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/shifted/c.png differ diff --git a/data/magic-m15-altered.mse-style/notches/shifted/g.png b/data/magic-m15-altered.mse-style/notches/shifted/g.png new file mode 100644 index 0000000000..b2ee190e01 Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/shifted/g.png differ diff --git a/data/magic-m15-altered.mse-style/notches/shifted/m.png b/data/magic-m15-altered.mse-style/notches/shifted/m.png new file mode 100644 index 0000000000..09c909b6f8 Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/shifted/m.png differ diff --git a/data/magic-m15-altered.mse-style/notches/shifted/r.png b/data/magic-m15-altered.mse-style/notches/shifted/r.png new file mode 100644 index 0000000000..3334d62b66 Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/shifted/r.png differ diff --git a/data/magic-m15-altered.mse-style/notches/shifted/u.png b/data/magic-m15-altered.mse-style/notches/shifted/u.png new file mode 100644 index 0000000000..9b47fcfe41 Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/shifted/u.png differ diff --git a/data/magic-m15-altered.mse-style/notches/shifted/w.png b/data/magic-m15-altered.mse-style/notches/shifted/w.png new file mode 100644 index 0000000000..3c0e201ad7 Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/shifted/w.png differ diff --git a/data/magic-m15-altered.mse-style/notches/u.png b/data/magic-m15-altered.mse-style/notches/u.png new file mode 100644 index 0000000000..321b833649 Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/u.png differ diff --git a/data/magic-m15-altered.mse-style/notches/w.png b/data/magic-m15-altered.mse-style/notches/w.png new file mode 100644 index 0000000000..d5d25fed51 Binary files /dev/null and b/data/magic-m15-altered.mse-style/notches/w.png differ diff --git a/data/magic-m15-altered.mse-style/puma/artifact_blend_puma.png b/data/magic-m15-altered.mse-style/puma/artifact_blend_puma.png deleted file mode 100644 index c869dd687f..0000000000 Binary files a/data/magic-m15-altered.mse-style/puma/artifact_blend_puma.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/puma/hybrid_blend_puma.png b/data/magic-m15-altered.mse-style/puma/hybrid_blend_puma.png deleted file mode 100644 index c869dd687f..0000000000 Binary files a/data/magic-m15-altered.mse-style/puma/hybrid_blend_puma.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/puma/multicolor_blend_puma.png b/data/magic-m15-altered.mse-style/puma/multicolor_blend_puma.png deleted file mode 100644 index cf47e2a74c..0000000000 Binary files a/data/magic-m15-altered.mse-style/puma/multicolor_blend_puma.png and /dev/null differ diff --git a/data/magic-m15-altered.mse-style/spree.png b/data/magic-m15-altered.mse-style/spree.png new file mode 100644 index 0000000000..888600fecd Binary files /dev/null and b/data/magic-m15-altered.mse-style/spree.png differ diff --git a/data/magic-m15-altered.mse-style/style b/data/magic-m15-altered.mse-style/style index 0d387d3a78..741b1d035f 100644 --- a/data/magic-m15-altered.mse-style/style +++ b/data/magic-m15-altered.mse-style/style @@ -44,6 +44,7 @@ init script: #### Load scripts include file: /magic-default-image.mse-include/scripts include file: /magic-pride.mse-include/scripts + include file: /magic-modules.mse-include/extras/evobar/script #### Blend settings # Should hybrids have a grey name? @@ -68,10 +69,50 @@ init script: # Use guild mana symbols? guild_mana := { styling.use_guild_mana_symbols } + #### Module offsets + #### levelers don't shift secondary with pt + information_secondary_shift_with_pt_1 := { + if is_leveler() and not (lone_pt() or starting_loyalty()) + then false + else true + } + #### transform symbol + transform_symbol_image_folder := { "/magic-modules.mse-include/cards/375 nodes/" } + transform_symbol_offset_top_1 := { -1 } + #### modal dfc flags + reminder_disabled := { not is_linked_dfc() } + #### alias recolor + old_alias_colors := alias_colors + shifted_alias_colors := { + [ + w: rgb(249, 247, 232), + u: rgb(6, 115, 184), + b: rgb(39, 38, 36), + r: rgb(233, 107, 48), + g: rgb(6, 120, 69), + a: rgb(176, 150, 133), + m: rgb(229, 203, 106), + c: rgb(173, 151, 137) + ][input] + } + alias_colors := { + if is_devoid() or is_clear() or clear_tops() + then rgb(232, 231, 231) + else if is_planeshifted() + then shifted_alias_colors(input) + else old_alias_colors(input) + } + #### template images #### base template template_prefix := [ card: "/magic-modules.mse-include/cards/375 m15 simple/", + notch_card: "notches/", + notch_fnm: "notches/fnm/", + notch_inv: "notches/inverted/", + notch_dka: "notches/dka/", + notch_ub: "notches/beyond/", + notch_shifted: "notches/shifted/", pt: "/magic-modules.mse-include/pts/375 m15/", fnm_pt: "/magic-modules.mse-include/pts/375 m15/paradox/", inv_pt: "/magic-modules.mse-include/pts/375 m15/inverted/", @@ -90,8 +131,6 @@ init script: star: "/magic-modules.mse-include/trims/star/", arrow: "/magic-modules.mse-include/levels/arrows/1/" - arrow2: "/magic-modules.mse-include/levels/arrows/2/" - arrow3: "/magic-modules.mse-include/levels/arrows/3/" slide0: "/magic-modules.mse-include/levels/slides/0/" slide: "/magic-modules.mse-include/levels/slides/1/" slide2: "/magic-modules.mse-include/levels/slides/2/" @@ -101,9 +140,7 @@ init script: slide3_shifted: "/magic-modules.mse-include/levels/slides/3/shifted/" circle: "/magic-modules.mse-include/levels/circles/station/" - devoid: "devoid/" - map: "/magic-modules.mse-include/cards/746 maps/" - mappt: "/magic-modules.mse-include/pts/746 maps/" + devoid: "/magic-modules.mse-include/cards/35 m15 simple/devoid/" miracle: "/magic-modules.mse-include/trims/miracle/" miracle_shifted: "/magic-modules.mse-include/trims/miracle/shifted/" miracle_inv: "/magic-modules.mse-include/trims/miracle/inverted/" @@ -112,8 +149,7 @@ init script: miracle_snow: "/magic-modules.mse-include/trims/miracle/snow/" beyond: "/magic-modules.mse-include/trims/beyond/" draft: "/magic-modules.mse-include/trims/draft/" - node: "nodes/" - node_shifted: "nodes/shifted/" + node: "/magic-modules.mse-include/cards/375 nodes/" puma: "puma/" puma_shift: "puma/shifted/" curtains: "curtains/" @@ -121,10 +157,16 @@ init script: proto_box: "/magic-modules.mse-include/protoboxes/box/", proto_cost: "/magic-modules.mse-include/protoboxes/cost/", - proto_pt: "/magic-modules.mse-include/protoboxes/pt/" + proto_pt: "/magic-modules.mse-include/protoboxes/pt/", ] template_suffix := [ card: "card.jpg", + notch_card: ".png", + notch_fnm: ".png", + notch_inv: ".png", + notch_dka: ".png", + notch_ub: ".png", + notch_shifted: ".png", pt: "pt.png", fnm_pt: "pt.png", inv_pt: "pt.png", @@ -142,16 +184,13 @@ init script: star: "star.png", devoid: "card.png" - map: "card.png" - mappt: "pt.png" miracle: "miracle.png" miracle_shifted: "miracle.png" miracle_inv: "miracle.png" miracle_fnm: "miracle.png" miracle_snow: "miracle.png" miracle_beyond: "miracle.png" - node: "node.png" - node_shifted: "node.png" + node: ".png" curtains: "card.png" beyond:"beyond.png" @@ -163,8 +202,6 @@ init script: slide2_shifted: "slide.png" slide3_shifted: "slide.png" arrow: "arrow.png" - arrow2: "arrow.png" - arrow3: "arrow.png" circle: "circle.png" spacept: "pt.png" @@ -210,20 +247,20 @@ init script: season: true, conspiracy: true, arrow: true, - arrow2: true, - arrow3: true, crown: true, draft: true, curtains: true, spacept: true, - circle: true + circle: true, + notch_card: true, + notch_fnm: true, + notch_inv: true, + notch_ub: true, + notch_shifted: true, + notch_dka: true ] - #### Map is a very different frame that usurps basically everything - is_map := { - chosen(styling.frames, choice:"map") - } - #### Devoid and Clear using floating frames but still use trims + #### Devoid and Clear are translucent and muck with a couple things is_devoid := { chosen(styling.frames, choice:"devoid") } @@ -233,13 +270,14 @@ init script: uses_clear_frame := { is_clear() or is_devoid() } - #### Frameless/Borderless apply a mask to the normal frame + #### Borderless/Frameless apply a mask to the base frame is_borderless := { chosen(styling.frames, choice:"borderless art") } is_frameless := { chosen(styling.frames, choice:"frameless art") } + #### Station Frame is a variant of Frameless auto_station := { not is_prototype() and ( @@ -250,23 +288,34 @@ init script: mini_arts := { chosen(styling.other_options, choice:"de-fullart special frames") } + #### uses the full card size for art uses_expanded_art := { is_borderless() or is_frameless() or (auto_station() and not mini_arts()) } - #### except THBLand is a special kind of frameless + #### THBLand is a special variant of Frameless is_thbland := { - is_frameless() - and not is_inverted() - and not is_leveler() - and remove_tags(card.text) == "\n" + remove_tags(card.text) == "\n" ## Only for textless plus frameless + and is_frameless() + and not is_inverted() ## conflict with the Secret Lair insert + and not is_leveler() ## text isn't in card.text + and not is_dka() ## conflict with frame masking + and not is_puma() ## conflict with name font color + and not is_scrolls() ## no scroll overlay of this size } + + #### DKA(Fullart) is pretty disruptive so goes up higher is_dka := { - chosen(styling.frames, choice:"fullart") and not is_map() and not uses_clear_frame() + chosen(styling.frames, choice:"fullart") } - #### PUMA, Mutate, Prototype add things on top + + #### PUMA, Mutate, Prototype add things on top of the base card + #### PUMA's borderless is incompatible with Expanded Art and DKA is_puma := { - chosen(styling.frames, choice:"puma") and not is_map() and not uses_expanded_art() and not uses_clear_frame() and not is_dka() + ## todo image masks for clear+puma + chosen(styling.frames, choice:"puma") and not is_clear() and not uses_expanded_art() and not is_dka() } + + #### Prototype fully overrides Mutate and Leveler is_prototype := { chosen(styling.frames, choice:"prototype") } @@ -274,12 +323,13 @@ init script: is_snap_prototype := { is_prototype() } ## using the pt box and not the typebar prototype_pt := { styling.prototype_secondary == "pt" and is_prototype() } + + ## Use the Mutate second textbox and separator + ## Mutate can stack with leveler is_mutate := { - chosen(styling.frames, choice:"mutate") and not is_map() and not is_prototype() - } - mutate_image := { - is_mutate() and not uses_expanded_art() and not is_dka() and not uses_clear_frame() and not clear_tops() + chosen(styling.frames, choice:"mutate") and not is_prototype() } + #### Alternate card bases is_fnm := { chosen(styling.frames, choice:"fnm promo") @@ -287,6 +337,7 @@ init script: is_inverted := { chosen(styling.frames, choice:"inverted") } + ## variant to look more like the Secret Lair frame is_transparent_borderless := { is_borderless() and is_frameless() and is_inverted() } @@ -297,13 +348,23 @@ init script: chosen(styling.frames, choice:"snow") or (lang_setting("is_snow")(card.super_type) and chosen(styling.other_options, choice:"auto snow")) } + #### Pieces + is_legend := { + chosen(styling.frames, choice:"legend") + or (lang_setting("is_legendary")(card.super_type) and set.auto_legends) + } + is_curtains := { + contains(card.notes, match:"!curtain") + } is_season := { - chosen(styling.frames, choice:"season") and not is_map() + chosen(styling.frames, choice:"season") } is_scrolls := { chosen(styling.frames, choice:"conspiracy") + and not is_puma() ## PUMA overrides, defined here for font conflicts } + #### trims is_draft := { chosen(styling.frames, choice:"conspiracy") @@ -316,35 +377,32 @@ init script: is_miracle := { chosen(styling.frames, choice:"miracle") } - is_vehicle := { - chosen(styling.frames, choice:"vehicle") - or (chosen(styling.other_options, choice:"auto vehicles") and lang_setting("is_vehicle")(card.sub_type)) - } is_nyx := { chosen(styling.frames, choice:"nyx") or (lang_setting("is_enchantment")(card.super_type) and set.auto_nyx and not auto_custom_border()) } - is_leveler := { - not is_prototype() and (chosen(styling.frames, choice:"leveler") or auto_station()) + is_vehicle := { + chosen(styling.frames, choice:"vehicle") + or (chosen(styling.other_options, choice:"auto vehicles") and lang_setting("is_vehicle")(card.sub_type)) } - is_custom_border := { if chosen(styling.frames, choice:"custom border") then has_png(styling.custom_border_source) else auto_custom_border() } - is_legend := { - chosen(styling.frames, choice:"legend") - or (lang_setting("is_legendary")(card.super_type) and set.auto_legends) + + is_leveler := { + not is_prototype() + and (chosen(styling.frames, choice:"leveler") or auto_station()) } - is_curtains := {contains(card.notes, match:"!curtain")} - is_pinned := {chosen(styling.other_options, choice:"pride pinlines")} - clear_tops := {chosen(styling.other_options, choice:"clear tops") and not is_puma() and not uses_expanded_art()} + + is_pinned := {chosen(styling.other_options, choice:"pride pinlines")} + clear_tops := {chosen(styling.other_options, choice:"clear tops") } mask_trims_for_devoid := {chosen(styling.other_options, choice:"avoid covering devoid")} + + ## What are we using for the base frame base_card := { - if is_map() - then "map" - else if is_devoid() + if is_devoid() then "devoid" else if is_clear() then "clear" @@ -364,9 +422,16 @@ init script: then "snow" else "standard" } + clear_image_path := { + "/magic-modules.mse-include/cards/375 m15 simple/xcard" + + (if is_notched() then "_notched" else "") + + ".png" + } + - #### trims - curtain_plate := { color_background(type:"curtains", base_hybrid: card_hybrid) } + #### color_background scripts + #### Trims + curtain_plate := { color_background(type:"curtains", base_hybrid: card_hybrid, artifact_blend:"white", hybrid_blend:"white", multicolor_blend:"white") } ub_background := { color_background(type:"beyond", base_hybrid: card_hybrid, folder:template_prefix["ub"]) } draft_trim := { color_background(type:"draft", base_hybrid: card_hybrid, folder:template_prefix["draft"])} module_nyx := { @@ -385,12 +450,12 @@ init script: ) } - miracle_plate_base := { color_background(type:"miracle", base_hybrid:card_hybrid, folder:template_prefix["miracle"])} - miracle_plate_snow := { color_background(type:"miracle_snow", base_hybrid:card_hybrid, folder:template_prefix["miracle"], blend_type:"miracle")} - miracle_plate_shift := { color_background(type:"miracle_shifted", base_hybrid:card_hybrid, folder:template_prefix["miracle"], blend_type:"miracle")} - miracle_plate_invert := { color_background(type:"miracle_inv", base_hybrid:card_hybrid, folder:template_prefix["miracle"], blend_type:"miracle")} - miracle_plate_fnm := { color_background(type:"miracle_fnm", base_hybrid:card_hybrid, folder:template_prefix["miracle"], blend_type:"miracle")} - miracle_plate_beyond := { color_background(type:"miracle_beyond", base_hybrid:card_hybrid, folder:template_prefix["miracle"], blend_type:"miracle")} + miracle_plate_base := { color_background(type:"miracle", base_hybrid:card_hybrid, folder:template_prefix["miracle"])} + miracle_plate_snow := { color_background(type:"miracle_snow", base_hybrid:card_hybrid, folder:template_prefix["miracle"], blend_type:"miracle")} + miracle_plate_shift := { color_background(type:"miracle_shifted", base_hybrid:card_hybrid, folder:template_prefix["miracle"], blend_type:"miracle")} + miracle_plate_invert := { color_background(type:"miracle_inv", base_hybrid:card_hybrid, folder:template_prefix["miracle"], blend_type:"miracle")} + miracle_plate_fnm := { color_background(type:"miracle_fnm", base_hybrid:card_hybrid, folder:template_prefix["miracle"], blend_type:"miracle")} + miracle_plate_beyond := { color_background(type:"miracle_beyond", base_hybrid:card_hybrid, folder:template_prefix["miracle"], blend_type:"miracle")} miracle_plate := { type := if is_fnm() then "miracle_fnm" @@ -412,35 +477,49 @@ init script: base_hybrid: card_hybrid, folder: template_prefix["miracle"] ) - if is_scrolls() then set_mask(image:img, mask: template_prefix["miracle"] + "mask_point.png") else img + if is_multiplied() then img := color_multiply(image:img, multiply_mask: template_prefix["miracle"] + "mask_point.png", width:375, height:523) + if is_scrolls() then img := set_mask(image:img, mask: template_prefix["miracle"] + "mask_point.png") + if is_borderless() and is_frameless() then set_mask(image:img, mask:"frame_masks/miracle_semitrans.png") + img ) } - custom_border_blend := { color_background(type:"custom_border", base_hybrid:card_hybrid) } - #### other pieces - node_base := { color_background(type:"node", base_hybrid:card_hybrid, folder:"nodes/") } - node_shift := { color_background(type:"node_shifted", base_hybrid:card_hybrid, folder:"nodes/", blend_type:"node") } - node_img := { - if is_devoid() and not is_legend() then "nodes/devoidnode.png" - else if is_planeshifted() then node_shift() - else node_base() + custom_border_blend := { color_background(type:"custom_border", base_hybrid:card_hybrid, artifact_blend:"black", multicolor_blend:"black", hybrid_blend:"white") } + + #### Transform notches + notch_image := { color_background(type:"notch_card", base_hybrid:card_hybrid, artifact_blend:"white", multicolor_blend:"white", hybrid_blend:"white") } + notch_image_fnm := { color_background(type:"notch_fnm", base_hybrid:card_hybrid, artifact_blend:"white", multicolor_blend:"white", hybrid_blend:"white") } + notch_image_inv := { color_background(type:"notch_inv", base_hybrid:card_hybrid, artifact_blend:"white", multicolor_blend:"white", hybrid_blend:"white") } + notch_image_dka := { color_background(type:"notch_dka", base_hybrid:card_hybrid, artifact_blend:"white", multicolor_blend:"white", hybrid_blend:"white") } + notch_image_ub := { color_background(type:"notch_ub", base_hybrid:card_hybrid, artifact_blend:"white", multicolor_blend:"white", hybrid_blend:"white") } + notch_image_shifted := { color_background(type:"notch_shifted", base_hybrid:card_hybrid, artifact_blend:"white", multicolor_blend:"white", hybrid_blend:"white") } + + #### Transform nodes + node_img := { color_background(type:"node", base_hybrid:card_hybrid, artifact_blend:"white", hybrid_blend:"white", multicolor_blend:"white") } + node_mask := { + base := template_prefix["node"]+"mask.png" + if transform_symbol_active_right(card.transformation) then flip_image(base, horizontal:true) else base } - puma_base := { color_background(type:"puma", base_hybrid:card_hybrid, folder:"puma/") } - puma_shift := { color_background(type:"puma_shift", base_hybrid:card_hybrid, folder:"puma/", blend_type:"puma") } + #### Puma typebar + puma_base := { color_background(type:"puma", base_hybrid:card_hybrid, artifact_blend:"white", hybrid_blend:"white", multicolor_blend:"black") } + puma_shift := { color_background(type:"puma_shift", base_hybrid:card_hybrid, artifact_blend:"white", hybrid_blend:"white", multicolor_blend:"black") } puma_img := { if is_planeshifted() then puma_shift() else puma_base() } - mappt_background := { color_background(type:"mappt", base_hybrid:pt_hybrid, folder:"/magic-modules.mse-include/pts/746 maps/", blend_type:"pt") } season_background := { - img := color_background(type:"season", base_hybrid:card_hybrid) + img := color_background(type:"season", base_hybrid:card_hybrid, artifact_blend:"white", hybrid_blend:"white", multicolor_blend:"black") if uses_expanded_art() then set_mask(image: img, mask: "season/full_mask.png") else img } - arrow_img_1 := { color_background(type:"arrow", base_hybrid:card_hybrid, folder:"/magic-modules.mse-include/levels/arrows/") } - arrow_img_2 := { color_background(type:"arrow2", base_hybrid:card_hybrid, folder:"/magic-modules.mse-include/levels/arrows/", blend_type:"arrow") } - arrow_img_3 := { color_background(type:"arrow3", base_hybrid:card_hybrid, folder:"/magic-modules.mse-include/levels/arrows/", blend_type:"arrow") } + #### Leveler arrow + arrow_img := { + image := color_background(type:"arrow", base_hybrid:card_hybrid, artifact_blend:"white", hybrid_blend:"black", multicolor_blend:"black") + if multiply > 0 then image := color_multiply(width: 112, height: 80, iterate:multiply) + image + }@(multiply:0) + level_img_1 := { color_background(type:"slide", base_hybrid:card_hybrid, folder:"/magic-modules.mse-include/levels/slides/") } level_img_2 := { color_background(type:"slide2", base_hybrid:card_hybrid, folder:"/magic-modules.mse-include/levels/slides/", blend_type:"slide") } level_img_3 := { color_background(type:"slide3", base_hybrid:card_hybrid, folder:"/magic-modules.mse-include/levels/slides/", blend_type:"slide") } @@ -461,16 +540,14 @@ init script: if is_planeshifted() then level_img_3_s() else level_img_3() } - + #### Leveler circle circle_background := { color_background(type: "circle", base_hybrid: flip_pt_hybrid2, folder: template_prefix["circle"], artifact_blend:"white", hybrid_blend:"white", multicolor_blend:"white") } #### ptbox choose_ptbox := { - ### Map overrules everything - if is_map() - then mappt_background() ### Station overrules Vehicle - else if auto_station() + spacecraft := auto_station() + image := if spacecraft then color_background(type:"spacept", base_hybrid:pt_hybrid, folder:template_prefix["spacept"], blend_type:"pt", artifact_blend:"white", hybrid_blend:"white", multicolor_blend:"white") ### Vehicle overrules clear else if is_vehicle() @@ -486,48 +563,255 @@ init script: else if is_planeshifted() then color_background(type:"shifted_pt", base_hybrid:pt_hybrid, folder:template_prefix["shifted_pt"], blend_type:"pt") else module_ptbox() - } + if is_multiplied() then multiply := multiply + 1 + if multiply > 0 and not spacecraft then image := color_multiply(iterate:multiply, width:135, height:76, multiply_mask:template_prefix["pt"] + "multiply_mask.png") + image + }@(multiply:0) - #### crown handling - crowns_folder := { - "/magic-modules.mse-include/crowns/375/" + (if is_planeshifted() then "shifted/" else "") - } - module_brawl_crown_template := { "/magic-modules.mse-include/crowns/375/brawl/" + (if input == "a" then "c" else input) + "crown.png" } + #### Legend Crown + ## base image crown_main := { - if is_clear() or clear_tops() + if is_clear() or clear_tops() or is_devoid() then template_prefix["crown"] + "xcrown.png" else module_crown() } - module_crown_template_patch := { - module_crown_template(override: if is_devoid() or is_borderless() or is_frameless() or is_puma() then "borderless" else if is_nyx() and chosen(styling.other_options, choice:"auto nyx crowns") then "nyx" else "") - } + ## mask for transform, borderless, devoid crown_img := { img := crown_main() if not transform_symbol_is_empty(card.transformation) then - img := set_mask(image:img, mask:"nodes/mask.png") + img := set_mask(image:img, mask:node_mask()) if is_borderless() and is_frameless() and is_miracle() then - img := set_mask(image:img, mask:"frame_masks/crown_miracle_borderless.png") + img := set_mask(image:img, mask:template_prefix["miracle"] + "mask_point.png") if (is_devoid() or uses_expanded_art() or is_puma()) and is_skinned() then img := set_mask(image:img, mask:"frame_masks/bl_alias_crown_mask.png") img } + #### Stamps + tri_stamp := { + if is_thbland() + then template_prefix["ubstamp"] + "_stamp.png" + else if uses_clear_frame() + then template_prefix["ubstamp"] + "xstamp.png" + else module_ubstamp() + } + round_stamp := { + if is_thbland() + then template_prefix["stamp"] + "_stamp.png" + else if uses_clear_frame() + then template_prefix["stamp"] + "xstamp.png" + else module_stamp() + } + stamp_top := { + if is_thbland() + then 472 + else 471 + } + #### Spree + spree_custom_template := { + new_color := alias_colors(input, land:land) + recolor_image("spree.png", color:new_color) + } + spree_image := { + template := spree_custom_template + land_template := spree_custom_template + color_background( + type:"spree", + base_hybrid: card_hybrid, + artifact_blend: "white", + hybrid_blend: "white", + multicolor_blend: "white" + ) + } + #### The Card, including Borderless masking, Notch, and DFC Multiply card_background := { - bc := base_card() - if bc == "clear" - then "/magic-modules.mse-include/cards/375 m15 simple/xcard.png" - else color_background( - type:"card", - base_hybrid:card_hybrid, - folder: if is_map() then "/magic-modules.mse-include/cards/746 maps/" else if is_thbland() then "energies/" else if is_dka() then "dka/" else template_prefix["card"] + ### base + ### borderless/frameless mask + ### translucent miracle + ### notch + ### DKA/Mutate/Borderless Resize + ### PUMA + ### Lair + ### Multiply + ### Clear Tops + + notched := is_notched() + semi_trans := is_clear() or is_devoid() + bl := is_borderless() + fl := is_frameless() + thb := is_thbland() + lair := is_transparent_borderless() + dka := is_dka() + spacecraft := auto_station() and not mini_arts() + if thb then fl := false + if semi_trans then ( + bl := false; + fl := false; + notched := false + ) + + ### the base blended frame + base := color_background( + type:"card", + base_hybrid:card_hybrid, + folder: if is_thbland() then "energies/" else if is_dka() then "dka/" else template_prefix["card"] + ) + + ### apply borderless variants + # thbland + # dka + # spacecraft + # other borderless/frameless + # puma + + borderless_mask := if thb + then (if bl then "border_mask_inv" else "") + else if dka + then (if bl or fl then "borderless_dka" else "") + else if spacecraft + then if semi_trans then "" else ("spacecraft" + (if bl then "_borderless" else "")) + else if bl or fl + then "borderless" + else if is_puma() + then "puma" + else "" + + if borderless_mask != "" then base := set_mask(image:base, mask:"frame_masks/{borderless_mask}.png") + + ### special handling for borderless-frameless-miracle + if bl and fl and is_miracle() then base := set_mask(image:base, mask:template_prefix["miracle"] + "mask_point.png") + + ### apply the notch + if notched then ( + mask_base := "" + mask_notch := "" + notch_img := if dka + then notch_image_dka() + else if is_fnm() + then notch_image_fnm() + else if is_inverted() + then notch_image_inv() + else if is_beyond() + then notch_image_ub() + else if is_planeshifted() + then notch_image_shifted() + else notch_image() + + if mask_base != "" then base := set_mask(image:base, mask:mask_base) + if mask_notch != "" then notch_img := set_mask(image:notch_img, mask:mask_notch) + + base := insert_image( + base_image: base, + inserted_image: notch_img, + offset_x: 0, + offset_y: 0 + ) + ) + + ### translucent textbox handling (DKA, Spacecraft, Mutate, Lair, BorderlessFrameless) + if dka + then ( + ## clear/devoid mask themselves for bigger image window + if semi_trans + then base := dka_scripted_frame(base:base) + ## others make the textbox semi-transparent + else base := set_mask(image:base, mask:"frame_masks/dka" + (if notched then "_notched" else "") + ".png") + ) + else if spacecraft and not semi_trans + then ( + base := set_mask(image:base, mask:"frame_masks/spacecraft_text" + (if notched then "_notched" else "") + ".png") + ) + else if is_mutate() and not semi_trans and not lair + then base := set_mask(image:base, mask:"frame_masks/mutate.png") + + if lair + then base := insert_image( + base_image: set_mask(image:base, mask:"frame_masks/secret_lair" + (if notched then "_notched" else "") + ".png") + inserted_image: "transparent_borderless" + (if notched then "_notched" else "") + ".png", + offset_x: 0, + offset_y: 0 + ) + else if bl and fl + then ( + base := set_mask( + image:base, + mask: "frame_masks/semitrans" + (if notched then "_notched" else "") + ".png" + ) + ) + + ### multiply back face + if is_multiplied() then base := color_multiply( + image:base, width: 375, height: 523, + multiply_mask: (if is_thbland() then "energies/" else if is_dka() then "dka/" else template_prefix["card"]) + "hybrid_blend_card.png" + ) + + ### multiply levels + if is_leveler() then base := color_multiply( + image: base, width: 375, height: 523, + multiply_mask: multiply_levels() + ) + + ### fade the top for clear tops + if clear_tops() then base := set_mask( + image: base, + mask: "frame_masks/clear_tops_mask.png" + ) + + ### click masks are applied as the field mask + base + } + multiply_levels := { + crop_width := if is_notched() then 375 else 346 + level_map := [ + [], + [coord:lv_2_coordinate(), height:lv_2_height()], + [coord:lv_3_coordinate(), height:lv_3_height()], + [coord:lv_4_coordinate(), height:lv_4_height()] + ] + mask := "multiply_mask_canvas.png" + for x from 1 to 3 do ( + lv_info := level_map[x] + if lv_info.height <= 0 then "" else ( + lv_top := 329 + lv_info.coord + + cropped := crop_image( + "multiply_mask_levels.png", + height: lv_info.height, + width: crop_width, + offset_x: 0, + offset_y: lv_top + ) + mask := insert_image( + base_image: mask, + inserted_image: set_alpha(cropped, alpha:multi_scale[x]), + offset_x: 0, + offset_y: lv_top + ) + "dummy return" + ) + ) + mask + } + #### mask clear into a DKA shape + dka_scripted_frame := { + clipped := set_mask(image:base, mask:"masks/dka_remove.png") + typeline := set_mask(image:base, mask:"masks/dka_add.png") + typeline := crop_image(typeline, height:100, width:375, offset_x:0, offset_y:238) + insert_image( + base_image:clipped, + inserted_image: typeline, + offset_x: 0, + offset_y: 270 ) } + + #### Complex Template hooks + #### Card Base mainframe_card_base := { [ - map: "/magic-modules.mse-include/cards/746 maps/" + input + (if land then "l" else "") + "card.png", - devoid: "devoid/" + input + "card.png", - clear: "/magic-modules.mse-include/cards/375 m15 simple/xcard.png", + devoid: "/magic-modules.mse-include/cards/375 m15 simple/devoid/" + input + "card.png", + clear: clear_image_path(), energy: "energies/" + input + "card.png", fullart: "dka/" + input + (if land then "l" else "") + "card.jpg" fnm: "fnm/" + input + "card.png" @@ -538,12 +822,29 @@ init script: standard: "/magic-modules.mse-include/cards/375 m15 simple/" + (if land and input == "a" then "cl" else if land then input + "l" else input) + "card.jpg" ][base_card()] } - # this goes at the very end + #### Transform Node mirroring + node_template := { + right_hand := transform_symbol_is_right(card.transformation) + if uses_clear_frame() then input := "x" + base := template_prefix["node"] + (if is_planeshifted() then "shifted/" else "") + input + ".png" + if right_hand then flip_image(base, horizontal: true) else base + } + #### Crown + module_crown_template_patch := { + module_crown_template(override: if is_borderless() or is_frameless() or is_puma() then "borderless" else if is_nyx() and chosen(styling.other_options, choice:"auto nyx crowns") then "nyx" else "") + } + crowns_folder := { + "/magic-modules.mse-include/crowns/375/" + (if is_planeshifted() then "shifted/" else "") + } + module_brawl_crown_template := { "/magic-modules.mse-include/crowns/375/brawl/" + (if input == "a" then "c" else input) + "crown.png" } + + # add them to the list harder_script := [ crown: module_crown_template_patch, card: mainframe_card_base custom_border: custom_border_image, alt_nyx: alt_nyx_template + node: node_template ] #### mask scripts @@ -551,58 +852,35 @@ init script: if is_borderless() then "" else "border_masks/" + (if is_puma() then "puma_" else "") - + (if is_legend() and not is_map() then "crown_border" else "border_mask") + + (if is_legend() then "crown_border" else "border_mask") + (if card.border_color == rgb(200,200,200) then "_silver" else "") + ".png" } - frame_mask_script := { - if is_map() - then "frame_masks/map_mask.png" - else if auto_station() and not mini_arts() - then "frame_masks/spacecraft" + (if uses_clear_frame() then "_clear" else if is_borderless() then "_borderless" else "") + ".png" - else if is_clear() or is_devoid() - then "frame_masks/clear_frame_mask.png" - else if is_thbland() - then "frame_masks/energy.png" - else if uses_expanded_art() and is_dka() - then "frame_masks/borderless_dka.png" - else if is_transparent_borderless() - then "frame_masks/borderless_transparent.png" - else if is_borderless() and is_frameless() - then "frame_masks/borderless_frameless" + (if is_miracle() then "_miracle" else "") + ".png" - else if uses_expanded_art() - then "frame_masks/borderless.png" - else if clear_tops() - then "frame_masks/clear_tops" + (if is_dka() then "_dka" else "") + "_mask.png" - else if is_dka() - then "frame_masks/dka.png" - else "frame_masks/frame_mask" + (if is_puma() then "_puma" else "") + (if is_mutate() then "_mutate" else "") + ".png" - } image_mask_script := { - if is_map() then "" - else if is_devoid() then "image_masks/devoid.png" - else if is_clear() then "image_masks/clear.png" + if uses_clear_frame() then "image_masks/clear" + (if is_dka() then "_dka" else "") + ".png" else if is_thbland() then "image_masks/energy.png" else if uses_expanded_art() then "image_masks/guide_borderless" + (if is_dka() then "_dka" else "") + ".png" - else if mutate_image() then + else if is_dka() then "image_masks/guide_dka.png" + else if clear_tops() then "" + else if is_mutate() then "image_masks/" + (if is_puma() then "puma_" else "") + "mutate.png" else "" } miracle_mask := { if is_borderless() and is_frameless() and not is_thbland() - then "frame_masks/miracle_borderless" + (if is_legend() then "_crown" else "") + ".png" + then template_prefix["miracle"] + "mask_" + (if is_legend() then "onlypoint" else "rays") + ".png" else if is_legend() and uses_expanded_art() then template_prefix["miracle"] + "mask_onlypoint.png" else if is_legend() and is_puma() then template_prefix["miracle"] + "mask_onlypoint.png" else if uses_expanded_art() or is_puma() then template_prefix["miracle"] + "mask_rays.png" - else if is_devoid() and mask_trims_for_devoid() - then template_prefix["miracle"] + "mask_backplate.png" - else if is_legend() and is_clear() - then template_prefix["miracle"] + "mask_fullcrown.png" + else if is_legend() and (is_clear() or clear_tops()) + then template_prefix["miracle"] + "mask_top.png" else if is_legend() then template_prefix["miracle"] + "mask_pointcrown.png" + else if is_devoid() and mask_trims_for_devoid() + then template_prefix["miracle"] + "mask_backplate.png" else "" } main_trim_mask := { @@ -612,6 +890,7 @@ init script: "/magic-modules.mse-include/trims/375x523 doubletrim mask" + (if is_dka() then " fullart.png" else if is_puma() then " puma.png" else ".png") } devoid_mask := { + if is_notched() then input := set_mask(image:input, mask:"/magic-modules.mse-include/trims/375x523 notch mask.png") if is_devoid() and mask_trims_for_devoid() then set_mask(image:input, mask:"devoid/trim_mask.png") else input @@ -636,39 +915,108 @@ init script: chop_top := { if styling.chop_top == "" then 0 - else if comma_count(styling.chop_top) == "," or comma_count(styling.chop_top) == ",," - then to_number(split_text(match:",", styling.chop_top).0) or else 0 - else to_number(styling.chop_top) or else 0 + else if length(comma_count(styling.chop_top)) > 0 + then to_number_lax(split_comma(styling.chop_top).0) or else 0 + else to_number_lax(styling.chop_top) or else 0 } chop_bot := { - if comma_count(styling.chop_top) == ",," - then to_number(split_text(match:",", styling.chop_top).1) or else 0 + if length(comma_count(styling.chop_top)) > 0 + then to_number_lax(split_comma(styling.chop_top).1) or else 0 else if styling.chop_bottom == "" then 0 - else to_number(styling.chop_bottom) or else 0 + else to_number_lax(styling.chop_bottom) or else 0 + } + chop_right := { + if length(comma_count(styling.chop_top)) > 1 + then to_number_lax(split_comma(styling.chop_top).2) or else 0 + else if length(comma_count(styling.chop_bottom)) > 0 + then to_number_lax(split_comma(styling.chop_bottom).1) or else 0 + else 0 } top_of_textbox := { ( if is_snap_prototype() then (if is_dka() then 359 else 329) + 8 + prototype_height() - else if is_map() then 340 else if is_mutate() then 395 else if is_dka() then 359 else 327 ) - (-chop_top()) + body_font_vertical() } bottom_of_textbox := { - (if is_map() then 475 else 481) - chop_bot() + 481 - chop_bot() - (if reminder_box_is_visible() then 18 else 0) } - + ### Customize fonts + swap_fonts_name_default := [ + name: {"Beleren Bold"}, + size: {16}, + color: {if is_scrolls() then "black" else if is_multiplied() then "white" else if uses_clear_frame() then "black" else if is_planeshifted() or is_fnm() or (is_inverted() and not is_dka()) then "white" else "black"}, + vertical: {0}, + italic: {""} + ] + swap_fonts_type_default := [ + name: {"Beleren Bold"}, + size: {13}, + color: {if is_scrolls() then "black" else if is_multiplied() then "white" else if uses_clear_frame() then "black" else if is_dka() or is_planeshifted() or is_fnm() or is_inverted() then "white" else "black"}, + vertical: {0}, + italic: {""} + ] + swap_fonts_body_default := [ + name: {"MPlantin"}, + size: {if styling.font_cap != "" then to_number(styling.font_cap) else if is_snap_prototype() then 11.5 else if is_mutate() then 12 else 14}, + color: {if is_dka() or is_fnm() or is_inverted() then "white" else "black"}, + vertical: {0}, + italic: {"MPlantin-Italic"} + ] + swap_fonts_body2_default := [ + name: {"MPlantin"}, + size: {if styling.font_cap != "" then to_number(styling.font_cap) else if is_snap_prototype() then 11.5 else if is_mutate() then 12 else 14}, + color: {if is_prototype() then "black" else if is_dka() or is_fnm() or is_inverted() then "white" else "black"}, + vertical: {0}, + italic: {"MPlantin-Italic"} + ] + swap_fonts_pt_default := [ + name: {"Beleren Bold"}, + size: {if auto_station() then 13 else 15}, + color: { + if is_planeshifted() or is_fnm() or is_inverted() or is_multiplied() then "white" + else if is_vehicle() or auto_station() then "white" + else "black" + }, + vertical: {0}, + italic: {""} + ] + swap_fonts_pt2_default := [ + name: {"Beleren Bold"}, + size: {if is_prototype() then 15 else if auto_station() then 13 else 15}, + color: { + if is_prototype() then "white" + else if is_planeshifted() or is_fnm() or is_inverted() or is_multiplied() then "white" + else if is_vehicle() or auto_station() then "white" + else "black" + }, + vertical: {0}, + italic: {""} + ] + loyalty_font_size := { + swap_font_size( + src:styling.custom_pt_font, + font_size: 14 + ) + } + loyalty_font_color := { + swap_font_color( + src: styling.custom_pt_font, + font_color: "white" + ) + } + #### other settings use_flash_dot := { styling.use_flash_dot and (lang_setting("is_instant")(card.super_type) or contains(card.type, match:"Flash"))} is_promo := { styling.promo } is_unsorted := {styling.remove_from_autocount} - is_skinned := {chosen(styling.other_options, choice:"godzilla style alias")} + is_skinned := { card.alias != "" and not use_evobar() } use_vorthos := {((not is_leveler() or lone_pt()) and card.pt != "") or chosen(styling.other_options, choice:"vorthos box")} is_tarot := {chosen(styling.other_options, choice:"text watermarks")} use_evobar := {chosen(styling.other_options, choice:"pokemon evobar")} - center_map := {is_map() and (card.casting_cost == "" or chosen(styling.other_options, choice:"always center map names"))} #### bools shown_cr := { @@ -746,6 +1094,7 @@ init script: } no_roll := {if styling.d20_dividers == "all breaks" then 1 else if rolls_start(input) == 0 then 1 else 0} invert_rolls := {if chosen(styling.other_options, choice:"inverted d20") then 1 else 0} + #### levelers box_leveler := { styling.level_containers == "pt boxes" } loy_leveler := { styling.level_containers == "loyalty boxes" } @@ -758,7 +1107,7 @@ init script: if cir_leveler() then 12 else if box_leveler() then -3 else if loy_leveler() then 10 - else 18 + else 15 } arrow_width := { if cir_leveler() then 30 @@ -775,16 +1124,16 @@ init script: } leveler_ptbox_height := { - if auto_station() then 32 else 42 + if auto_station() then 32 else if is_leveler() then 38 else 39 } leveler_ptbox_width := { - if auto_station() then 62 else if is_leveler() then 70 else 81 + if auto_station() then 62 else 70 } leveler_ptbox_left := { - if auto_station() then 294 else 278 + if auto_station() then 294 else 285 } leveler_ptbox_top_offset := { - if auto_station() then 6 else 0 + if auto_station() then 6 else 2 } leveler_pt_height := { @@ -794,10 +1143,10 @@ init script: if auto_station() then 52 else 60 } leveler_pt_left := { - if auto_station() then 301 else 286 + if auto_station() then 301 else 293 } leveler_pt_top_offset := { - if auto_station() then 4 else 0 + if auto_station() then 4 else 1 } arrow_offset := { @@ -839,7 +1188,21 @@ init script: l2_center := {327 + lv_2_coordinate() + 0.5*lv_2_height()} l3_center := {327 + lv_3_coordinate() + 0.5*lv_3_height()} l4_center := {327 + lv_4_coordinate() + 0.5*lv_4_height()} + + multi_scale := [0, 0.35, 0.7, 0.9, 1.0, 1.2, 1.5, 1.8] + level_container := { + multiply := multi_scale[level] + if is_multiplied() then multiply := multi_scale[level+4] + if loy_leveler() + then loyalty_image(card["level_{level}"]) + else if box_leveler() + then choose_ptbox(multiply:multiply) + else if cir_leveler() + then circle_background() + else arrow_img(multiply:multiply) + } + d20_overlay := "/magic-modules.mse-include/levels/d20slice.png" overlay_main := { if is_d20() @@ -903,107 +1266,7 @@ init script: else if input == "four" then lv_4_height() else 0 } - ### Customize fonts - ## redefine these since Maps make them annoying - swap_fonts_name_default := [ - name: {if is_map() then "Beleren Small Caps" else "Beleren Bold"}, - size: {if is_map() then 14.8 else 16}, - color: {if is_map() or uses_clear_frame() then "black" else if is_planeshifted() or is_fnm() or (is_inverted() and not is_dka()) then "white" else "black"}, - vertical: {0}, - italic: {""} - ] - swap_fonts_type_default := [ - name: {"Beleren Bold"}, - size: {if is_map() then 12 else 13}, - color: {if is_map() or uses_clear_frame() then "black" else if is_dka() or is_puma() or is_planeshifted() or is_fnm() or is_inverted() then "white" else "black"}, - vertical: {0}, - italic: {""} - ] - swap_fonts_body_default := [ - name: {"MPlantin"}, - size: {if styling.font_cap != "" then to_number(styling.font_cap) else if is_snap_prototype() then 11.5 else if is_mutate() then 12 else 14}, - color: {if is_map() then "black" else if is_dka() or is_fnm() or is_inverted() then "white" else "black"}, - vertical: {0}, - italic: {"MPlantin-Italic"} - ] - swap_fonts_body2_default := [ - name: {"MPlantin"}, - size: {if styling.font_cap != "" then to_number(styling.font_cap) else if is_snap_prototype() then 11.5 else if is_mutate() then 12 else 14}, - color: {if is_map() or is_prototype() then "black" else if is_dka() or is_fnm() or is_inverted() then "white" else "black"}, - vertical: {0}, - italic: {"MPlantin-Italic"} - ] - swap_fonts_pt_default := [ - name: {"Beleren Bold"}, - size: {if is_map() then 14 else if auto_station() then 13 else 16}, - color: { - if is_map() then "black" - else if is_planeshifted() or is_fnm() or is_inverted() then "white" - else if is_vehicle() or auto_station() then "white" - else "black" - }, - vertical: {0}, - italic: {""} - ] - swap_fonts_pt2_default := [ - name: {"Beleren Bold"}, - size: {if is_prototype() then 15 else if is_map() then 14 else if auto_station() then 13 else 16}, - color: { - if is_prototype() then "white" - else if is_map() then "black" - else if is_planeshifted() or is_fnm() or is_inverted() then "white" - else if is_vehicle() or auto_station() then "white" - else "black" - }, - vertical: {0}, - italic: {""} - ] - loyalty_font_size := { - swap_font_size( - src:styling.custom_pt_font, - font_size: 14 - ) - } - loyalty_font_color := { - swap_font_color( - src: styling.custom_pt_font, - font_color: "white" - ) - } - - tri_stamp := { - if is_map() or is_clear() or is_thbland() - then template_prefix["ubstamp"] + "_stamp.png" - else if is_devoid() - then template_prefix["ubstamp"] + "devoid.png" - else module_ubstamp() - } - round_stamp := { - if is_map() or is_clear() or is_thbland() - then template_prefix["stamp"] + "_stamp.png" - else if is_devoid() - then template_prefix["stamp"] + "devoid.png" - else module_stamp() - } - stamp_top := { - sh := stamp_shape() - if is_map() and sh == "triangle" - then 472 - else if is_clear() - then (if sh == "triangle" then 472 else 473) - else if is_thbland() - then 472 - else 471 - } - #### Module offsets - information_secondary_shift_with_pt_1 := { - if is_leveler() and not (lone_pt() or starting_loyalty()) - then false - else true - } - card_symbol_offset_top_1 := { if is_clear() then 1 else 0 } - override_clear := replace@(match:"()?", replace: "")+ replace@(match:"()?", replace: "") override_filter := replace@(match:"\\[([^\\]]+)]", replace: "[\\1]") @@ -1084,6 +1347,32 @@ init script: else combined_editor(field1: card.rule_text, separator: "\n", field2: card.flavor_text) } + + #### DFC support + force_notched := { chosen(styling.other_options, choice:"transform notch") } + has_modal := match@(match:"modal") + notched_front_face := { + get_back_face(card) != nil and not has_modal(card.transformation) + } + is_notched := { + (force_notched() or notched_front_face()) and not is_thbland() + } + is_multiplied := { + get_front_face(card) != nil and not has_modal(card.transformation) + } + + use_meld_bar := { + styling.meld_bar == "yes" + or (styling.meld_bar == "for melds" and length(get_cards_from_link(card, linked_relation:"Meld Base")) > 0) + } + back_face_hint := { + back := get_back_face(card) or else nil + if back == nil or styling.back_face_hint == "none" then "" + else if styling.back_face_hint == "PT, Loyalty, Defense" and back.loyalty != "" + then back.loyalty + else back.pt + } + ############################################################## Set info fields set info style: symbol: @@ -1112,17 +1401,12 @@ styling field: description: Shrinks the textbox X pixels from the bottom. styling field: type: text - name: shrink name text - description: Reduces the name text N points. -styling field: - type: text - name: shrink typeline text - description: Reduces the typeline text N points. + name: popout image style + description: The styling instructions for the popout image field, formatted as "left,top,width,height,". The text MUST end with a comma. styling field: type: multiple choice name: frames description: Use these frames. Higher level frames may override lower levels. - choice: map choice: devoid choice: clear choice: borderless art @@ -1145,24 +1429,14 @@ styling field: choice: leveler choice: snow choice: custom border -styling field: - type: text - name: custom border source - description: Use this file from magic-mainframe-extras as a custom vehicle-like frame. if colored, name images like "wborder.png" and put "-color-border.png" here. -styling field: - type: text - name: popout image style - description: The styling instructions for the popout image field, formatted as "left,top,width,height,". The text MUST end with a comma. styling field: type: multiple choice name: other options description: Other frame options choice: prerelease stamp - choice: godzilla style alias choice: pokemon evobar choice: ancestral generic mana choice: override-style text - choice: always center map names choice: avoid covering devoid choice: use starting loyalty choice: regular pt on levelers @@ -1178,33 +1452,26 @@ styling field: choice: inverted d20 choice: de-fullart special frames choice: popunder art + choice: transform notch initial: avoid covering devoid, auto vehicles, auto snow, auto nyx crowns, auto ub, auto spacecraft styling field: type: text - name: custom symbol - description: Uses a custom Lesson symbol from data/magic-mainframe-extras.mse-include - script: verify_symbol_image(value, can_import:false) + name: shrink name text + description: Reduces the name text N points. styling field: type: text - name: card watermark - description: Filename in magic-mainframe-extras to use for standalone card watermark - script: verify_watermark_image(value, can_import:false) -include file: /magic-modules.mse-include/crowns/styling_fields + name: shrink typeline text + description: Reduces the typeline text N points. styling field: type: boolean name: remove from autocount description: Removes the automatic card number for specific cards, to allow for overcounted cards like in Planeswalker Decks. initial: no +include file: /magic-modules.mse-include/rarities/styling_fields +include file: /magic-modules.mse-include/fonts/styling_fields styling field: - type: choice - name: d20 dividers - choice: d20 mode - choice: off - choice: all breaks - choice: all breaks +1 - choice: all breaks +2 - choice: all breaks +3 - description: Do dice levels normally, off, on all linebreaks, on all but the first linebreak, etc. + type: info + name: Leveler Options styling field: type: choice name: level containers @@ -1213,14 +1480,11 @@ styling field: choice: pt boxes choice: loyalty boxes choice: circles + description: What should be used to hold the "LEVEL X" text? styling field: type: text name: level label description: Change the level label. default is "LEVEL". Secondary lables can be added after a comma, "1,2,3," -styling field: - type: text - name: font cap - description: Caps the font size of all text boxes to allow consistent sizes. Default is 14. styling field: type: text name: arrow or bullet offsets @@ -1228,14 +1492,66 @@ styling field: styling field: type: text name: level offset - description: Formatted as 1,2,3,. Move the level boxes down X pixels. Use negative to move up. For 4 equal levels, use -14,-25,-38, + description: Formatted as 1,2,3,. Move the level boundaries down X pixels. Use negative to move up. For 4 equal levels, use -14,-25,-38, +styling field: + type: text + name: font cap + description: Caps the font size of all text boxes to allow consistent sizes. Default is 14. +styling field: + type: choice + name: d20 dividers + choice: d20 mode + choice: off + choice: all breaks + choice: all breaks +1 + choice: all breaks +2 + choice: all breaks +3 + description: Do dice levels normally, off, on all linebreaks, on all but the first linebreak, etc. +styling field: + type: info + name: Prototype Options styling field: type: choice name: prototype secondary choice: pt choice: type -include file: /magic-modules.mse-include/rarities/styling_fields -include file: /magic-modules.mse-include/fonts/styling_fields + description: Use a PT Box or a Type Bar for Prototypes? +styling field: + type: info + name: DFC Options +styling field: + type: boolean + name: hide back face rarity + description: Hide the rarity symbol on the back face, as began in NEO. +styling field: + type: choice + name: back face hint + choice: PTs only + choice: PT, Loyalty, Defense + choice: none + description: What should be displayed in the transform notch hint? +styling field: + type: choice + name: meld bar + choice: for melds + choice: yes + choice: no + description: Use the divider for Meld back faces? +styling field: + type: info + name: Custom icons, card-level +styling field: + type: text + name: custom border source + description: Use this file from magic-mainframe-extras as a custom vehicle-like frame. if colored, name images like "wborder.png" and put "-color-border.png" here. +styling field: + type: text + name: custom symbol + description: Uses a custom Lesson symbol from data/magic-mainframe-extras.mse-include + script: verify_symbol_image(value, can_import:false) +include file: /magic-modules.mse-include/watermarks/styling_fields +include file: /magic-modules.mse-include/crowns/styling_fields + styling field: type: choice name: hybrid name @@ -1344,6 +1660,7 @@ include file: /magic-modules.mse-include/separators/card_fields include file: /magic-modules.mse-include/corners/card_fields include file: /magic-modules.mse-include/stamps/card_fields include file: /magic-modules.mse-include/symbols/card_fields +include file: /magic-modules.mse-include/reminders/card_fields card style: ############################# Background stuff border color: @@ -1366,34 +1683,22 @@ card style: render style: image popup style: in place image: { card_background() } - mask: { frame_mask_script() } + mask: { "frame_masks/click_mask" + (if is_thbland() then "_energy" else if is_dka() then "_dka" else "") + ".png" } ############################# Name line name: left: script: - if center_map() - then 55 - else if is_map() and not transform_symbol_is_empty(card.transformation) - then 65 - else if is_map() - then 60 - else if card.card_symbol != "none" and not transform_symbol_is_empty(card.transformation) + if card.card_symbol != "none" and transform_symbol_active_left(card.transformation) then 78 - else if not transform_symbol_is_empty(card.transformation) + else if transform_symbol_active_left(card.transformation) then 58 else if card.card_symbol != "none" then 50 else 32 - top: - script: - ( - if is_map() then 27 - else if is_clear() or clear_tops() then 31 - else 30 - ) + name_font_vertical() - right: { if center_map() then 320 else (if is_map() then 320 else 341) - card_style.casting_cost.content_width } + top: { 30 + name_font_vertical() } + right: { 341 - card_style.casting_cost.content_width - (if transform_symbol_active_right(card.transformation) then 26 else 0) } height: { 23 - (0.5 * shrink_name()) } - alignment: {if center_map() then "center bottom shrink-overflow" else "left bottom shrink-overflow" } + alignment: left bottom shrink-overflow padding bottom: 0 z index: 900 font: @@ -1401,15 +1706,15 @@ card style: italic name: { name_font_italic() } size: { name_font_size() } color: { name_font_color() } - shadow color: {if is_map() then rgba(0,0,0,0) else if is_planeshifted() or is_fnm() then rgb(0,0,0) else rgba(0,0,0,0)} + shadow color: {if not is_scrolls() and (is_planeshifted() or is_fnm()) then rgb(0,0,0) else rgba(0,0,0,0)} shadow displacement x: -1 shadow displacement y: 1 alias: - left: {if is_skinned() then 45 else if is_map() then 15 else 33} - top: {if is_map() then 58 else 53} - width: {if is_skinned() then 285 else if use_evobar() then max(100, card_style.alias.content_width) else 0} + left: { if use_evobar() then 33 else 38.5 } + top: {if use_evobar() then 57 else 55} + width: {if use_evobar() then max(100, card_style.alias.content_width) else 298 } height: 20 - alignment: { (if is_skinned() then "center" else "") + "bottom shrink-overflow"} + alignment: { (if use_evobar() then "" else "center") + "middle shrink-overflow"} padding bottom: 0 z index: 900 font: @@ -1419,17 +1724,17 @@ card style: weight: {if use_evobar() then "italic" else "bold"} color: {if use_evobar() then "black" else "white"} casting cost: - right: { if is_map() then 327 else 346} - top: { if is_map() then 27 else 29} + right: { 346 - (if transform_symbol_active_right(card.transformation) then 28 else 0) } + top: 29 width: { max(30, card_style.casting_cost.content_width) + 5 } height: 23 alignment: middle right font: name: MPlantin - size: { if is_map() then 14 else 15} + size: 15 symbol font: name: {styling.casting_cost_mana_symbols} - size: { if is_map() then 14 else 15} + size: 15 alignment: middle right always symbol: true z index: 920 @@ -1466,46 +1771,43 @@ card style: image: left: script: - if is_map() or uses_clear_frame() or uses_expanded_art() or is_puma() + if uses_clear_frame() or uses_expanded_art() or is_puma() then 0 else if clear_tops() then 15 else if is_dka() then 23 - else if mutate_image() + else if is_mutate() then 22 else 29 top: script: - if is_map() - then 57 - else if uses_clear_frame() or clear_tops() or uses_expanded_art() + if uses_clear_frame() or clear_tops() or uses_expanded_art() then 0 else 59 width: script: - if is_map() or uses_clear_frame() or uses_expanded_art() or is_puma() + if uses_clear_frame() or uses_expanded_art() or is_puma() then 375 else if clear_tops() then 345 else if is_dka() - then 328 - else if mutate_image() + then 328 + (if is_notched() then 3 else 0) + else if is_mutate() then 330 else 316 height: script: - if is_map() - then 241 - else if uses_clear_frame() or uses_expanded_art() + if uses_clear_frame() or uses_expanded_art() then 523 - else if clear_tops() and is_dka() - then 483 - else if clear_tops() - then 291 + else if clear_tops() then ( + if is_dka() then 483 + else if is_mutate() then 394 + else 291 + ) else if is_dka() then 423 - else if mutate_image() + else if is_mutate() then 334 else if is_puma() then 265 @@ -1527,8 +1829,8 @@ card style: z index: 899 ############################# Card type indicator: - left: { if is_map() then 18 else 31 + (if is_season() then 12 else 0) + (if is_clear() then 2 else 0) + (if use_flash_dot() then 3 else 0) } - top: { if is_map() or is_clear() then 298 else if is_thbland() then 449 else if is_dka() then 332 else 300 } + left: { 31 + (if is_season() then 12 else 0) + (if use_flash_dot() then 3 else 0) } + top: { if is_thbland() then 449 else if is_dka() then 332 else 300 } width: 17 height: 17 z index: 800 @@ -1536,26 +1838,31 @@ card style: visible: { has_identity() } image: { module_identity() } type: - left: { if is_map() then 85 else 32 + (if is_season() then 12 else 0) + (if has_identity() then 20 else 0) + (if is_clear() then 4 else 0) + (if use_flash_dot() then 3 else 0) } - top: { (if is_map() then 297.5 else if is_devoid() then 295 else if is_clear() then 294 else if is_thbland() then 444 else if is_dka() then 329 else 296) + shrink_type() + type_font_vertical() } - width: { if is_map() then 205 else (if has_identity() then 290 else 310) - rare_width() - (if is_season() then 12 else 0) } - height: { (if is_map() then 18 else 20) - shrink_type() } - alignment: { if is_map() then "center top shrink-overflow" else "top shrink-overflow" } - z index: 900 + left: { 32 + (if is_season() then 12 else 0) + (if has_identity() then 20 else 0) + (if use_flash_dot() then 3 else 0) } + top: { (if is_thbland() then 444 else if is_dka() then 329 else 296) + shrink_type() + type_font_vertical() } + width: { (if has_identity() then 290 else 310) - rare_width() - (if is_season() then 12 else 0) } + height: { 20 - shrink_type() } + alignment: top shrink-overflow + z index: 920 padding top: 2 font: name: { type_font() } italic name: { type_font_italic() } size: { type_font_size() } color: { type_font_color() } - shadow color: {if is_map() then rgba(0,0,0,0) else if is_dka() or is_puma() or is_planeshifted() or is_fnm() then "black" else rgba(0,0,0,0)} + shadow color: {if is_puma() then "black" else if is_scrolls() then rgba(0,0,0,0) else if is_dka() or is_planeshifted() or is_fnm() then "black" else rgba(0,0,0,0)} shadow displacement x: -1 shadow displacement y: 1 separator color: red rarity: - right: { (if is_map() then 199 else if is_scrolls() then 334 else 344) + rarity_user_offset_left(styling.rarity_offsets or else "") } - top: { (if is_map() then 53 else if is_devoid() then 296 else if is_clear() then 295 else if is_thbland() then 445 else if is_dka() then 329 else 297) + rarity_user_offset_top(styling.rarity_offsets or else "") } - width: { if set.shorten_types_for_rarity then 44 + rarity_user_offset_width(styling.rarity_offsets or else "") else 0 } + right: { (if is_scrolls() then 334 else 344) + rarity_user_offset_left(styling.rarity_offsets or else "") } + top: { (if is_thbland() then 445 else if is_dka() then 329 else 297) + rarity_user_offset_top(styling.rarity_offsets or else "") } + width: + script: + if (not set.shorten_types_for_rarity) + or (styling.hide_back_face_rarity and get_front_face(card) != nil) + then 0 + else 44 + rarity_user_offset_width(styling.rarity_offsets or else "") height: {22 + rarity_user_offset_height(styling.rarity_offsets or else "")} z index: 950 render style: image @@ -1563,17 +1870,17 @@ card style: include file: /magic-modules.mse-include/rarities/choice_images ############################# Text boxs text: - left: { if (card.level_0 != "" or card.level_1 != "" or card.level_2 != "") then 75 else if is_map() then 40 else 29 } + left: { if (card.level_0 != "" or card.level_1 != "" or card.level_2 != "") then 75 else 29 } top: { top_of_textbox() } bottom: { bottom_of_textbox() } - width: { if is_leveler() then 0 else (if is_map() then 287 else 314) + (if (card.level_0 != "" or card.level_1 != "" or card.level_2 != "") then -46 else 0) } + width: { if is_leveler() then 0 else 314 + (if (card.level_0 != "" or card.level_1 != "" or card.level_2 != "") then -46 else 0) - chop_right() } font: name: { body_font() } italic name: { body_font_italic() } size: { body_font_size() } scale down to: 6 color: { body_font_color() } - shadow color: {if is_map() then rgba(0,0,0,0) else if is_dka() or is_fnm() then "black" else rgba(0,0,0,0)} + shadow color: {if is_dka() or is_fnm() then "black" else rgba(0,0,0,0)} shadow displacement x: -1 shadow displacement y: 1 symbol font: @@ -1600,9 +1907,9 @@ card style: line height line max: 1.6 ############################# leveler level 1 text: - left: { if is_leveler() and card.level_0 != "" then (if loy_leveler() then 57 else if cir_leveler() then 43 else if box_leveler() then 78 else 75) else if is_map() then 40 else 29} + left: { if is_leveler() and card.level_0 != "" then (if loy_leveler() then 57 else if cir_leveler() then 43 else if box_leveler() then 78 else 75) else 29} top: { if is_mutate() or is_snap_prototype() then (if is_dka() then 359 else 329) else top_of_textbox() } - right: { if is_leveler() then (if lone_pt() or card.pt == "" then 342 else (if cir_leveler() then 291 else 287)) else if is_snap_prototype() then 290 else if is_mutate() then 342 else if is_map() then 40 else 29} + right: { if is_leveler() then (if lone_pt() or card.pt == "" then 342 else (if cir_leveler() then 291 else 287)) else if is_snap_prototype() then 290 else if is_mutate() then 342 else 29} bottom: { if is_snap_prototype() then (if is_dka() then 359+prototype_height() else 329+prototype_height()) else if is_mutate() then 392 else if is_leveler() then (327+lv_1_height()) else bottom_of_textbox() } font: font: @@ -1611,7 +1918,7 @@ card style: size: { body2_font_size() } scale down to: 6 color: { body2_font_color() } - shadow color: {if is_map() or is_prototype() then rgba(0,0,0,0) else if is_dka() or is_fnm() then "black" else rgba(0,0,0,0)} + shadow color: {if is_prototype() then rgba(0,0,0,0) else if is_dka() or is_fnm() then "black" else rgba(0,0,0,0)} shadow displacement x: -1 shadow displacement y: 1 symbol font: @@ -1634,7 +1941,7 @@ card style: line height hard max: 1.3 line height line max: 1.6 level 2 text: - left: { if is_leveler() then (if card.level_1 != "" then (if loy_leveler() then 57 else if cir_leveler() then 43 else if box_leveler() then 78 else 75) else if is_map() then 40 else 29) else 0} + left: { if is_leveler() then (if card.level_1 != "" then (if loy_leveler() then 57 else if cir_leveler() then 43 else if box_leveler() then 78 else 75) else 29) else 0} top: { if is_leveler() then (329 + lv_2_coordinate()) else 0 } right: { if is_leveler() then (if card.pt_2 != "" then (if cir_leveler() then 291 else 287) else 342) else 0 } bottom: { if is_leveler() then (329 + lv_2_coordinate()) + lv_2_height()-2 else 0 } @@ -1644,7 +1951,7 @@ card style: size: { body_font_size() } scale down to: 6 color: { body_font_color() } - shadow color: {if is_map() then rgba(0,0,0,0) else if is_dka() or is_fnm() then "black" else rgba(0,0,0,0)} + shadow color: {if is_dka() or is_fnm() then "black" else rgba(0,0,0,0)} shadow displacement x: -1 shadow displacement y: 1 symbol font: @@ -1667,7 +1974,7 @@ card style: line height hard max: 1.3 line height line max: 1.6 level 3 text: - left: {if card.level_2 != "" then (if loy_leveler() then 57 else if cir_leveler() then 43 else if box_leveler() then 78 else 75) else if is_map() then 40 else 29} + left: {if card.level_2 != "" then (if loy_leveler() then 57 else if cir_leveler() then 43 else if box_leveler() then 78 else 75) else 29} top: {331 + lv_3_coordinate()} right: {if card.pt_3 != "" then (if cir_leveler() then 291 else 287) else 342} height: {if not is_leveler()then 0 else lv_3_height()-2} @@ -1677,7 +1984,7 @@ card style: size: { body_font_size() } scale down to: 6 color: { body_font_color() } - shadow color: {if is_map() then rgba(0,0,0,0) else if is_dka() or is_fnm() then "black" else rgba(0,0,0,0)} + shadow color: {if is_dka() or is_fnm() then "black" else rgba(0,0,0,0)} shadow displacement x: -1 shadow displacement y: 1 symbol font: @@ -1700,7 +2007,7 @@ card style: line height hard max: 1.3 line height line max: 1.6 level 4 text: - left: {if card.level_3 != "" then (if loy_leveler() then 57 else if cir_leveler() then 43 else if box_leveler() then 78 else 75) else if is_map() then 40 else 29} + left: {if card.level_3 != "" then (if loy_leveler() then 57 else if cir_leveler() then 43 else if box_leveler() then 78 else 75) else 29} top: {331 + lv_4_coordinate()} right: {if card.pt_7 != "" then (if cir_leveler() then 291 else 287) else 342} height: {if not is_leveler() then 0 else lv_4_height()-2} @@ -1710,7 +2017,7 @@ card style: size: { body_font_size() } scale down to: 6 color: { body_font_color() } - shadow color: {if is_map() then rgba(0,0,0,0) else if is_dka() or is_fnm() then "black" else rgba(0,0,0,0)} + shadow color: {if is_dka() or is_fnm() then "black" else rgba(0,0,0,0)} shadow displacement x: -1 shadow displacement y: 1 symbol font: @@ -1733,10 +2040,10 @@ card style: line height hard max: 1.3 line height line max: 1.6 watermark: - left: { if is_map() then 40 else 19 } - top: { if is_map() then 330 else if is_dka() then 359 else 330 } - width: { if is_tarot() then 0 else if is_map() then 287 else 334 } - height: { if is_map() then 154 else if is_dka() then 120 else 152 } + left: { 19 } + top: { if is_dka() then 359 else 330 } + width: { if is_tarot() then 0 else 334 } + height: { if is_dka() then 120 else 152 } z index: 720 render style: image popup style: in place @@ -1755,7 +2062,7 @@ card style: name: Beleren Bold size: {if loy_leveler() or cir_leveler() then 11 else 12 + if center_label(0) then 2 else 0} weight: bold - color: {if loy_leveler() or cir_leveler() then "white" else "black"} + color: {if loy_leveler() or cir_leveler() or is_multiplied() then "white" else "black"} shadow color: { if loy_leveler() or cir_leveler() then rgba(0,0,0,0) else "white"} shadow blur: 2 symbol font: @@ -1772,7 +2079,7 @@ card style: name: Beleren Bold size: {if loy_leveler() or cir_leveler() then 11 else 12 + if center_label(0) then 2 else 0} weight: bold - color: {if loy_leveler() or cir_leveler() then "white" else "black"} + color: {if loy_leveler() or cir_leveler() or is_multiplied() then "white" else "black"} shadow color: { if loy_leveler() or cir_leveler() then rgba(0,0,0,0) else "white"} shadow blur: 2 symbol font: @@ -1789,7 +2096,7 @@ card style: name: Beleren Bold size: {if loy_leveler() or cir_leveler() then 11 else 12 + if center_label(0) then 2 else 0} weight: bold - color: {if loy_leveler() or cir_leveler() then "white" else "black"} + color: {if loy_leveler() or cir_leveler() or is_multiplied() then "white" else "black"} shadow color: { if loy_leveler() or cir_leveler() then rgba(0,0,0,0) else "white"} shadow blur: 2 symbol font: @@ -1806,7 +2113,7 @@ card style: name: Beleren Bold size: {if loy_leveler() or cir_leveler() then 11 else 12 + if center_label(0) then 2 else 0} weight: bold - color: {if loy_leveler() or cir_leveler() then "white" else "black"} + color: {if loy_leveler() or cir_leveler() or is_multiplied() then "white" else "black"} shadow color: { if loy_leveler() or cir_leveler() then rgba(0,0,0,0) else "white"} shadow blur: 2 symbol font: @@ -1815,8 +2122,8 @@ card style: ############################# PT pt: z index: 900 - left: {if is_leveler() and not lone_pt() then leveler_pt_left() else 286} - top: { (if is_leveler() and not lone_pt() then (l1_center() - 14 + leveler_pt_top_offset()) else if is_map() then 467 else 469)+(pt_font_vertical())} + left: {if is_leveler() and not lone_pt() then leveler_pt_left() else 293} + top: { (if is_leveler() and not lone_pt() then (l1_center() - 14 + leveler_pt_top_offset()) else 467)+(pt_font_vertical())} width: {if starting_loyalty() and not is_leveler() then 0 else if is_leveler() then leveler_pt_width() else 60} height: {leveler_pt_height()} alignment: center middle shrink-overflow @@ -1826,13 +2133,13 @@ card style: size: {pt_font_size()} color: {pt_font_color()} separator color: red - shadow color: {if is_map() then rgba(0,0,0,0) else if is_planeshifted() or is_fnm() then rgb(0,0,0) else rgba(0,0,0,0)} + shadow color: {if is_planeshifted() or is_fnm() then rgb(0,0,0) else rgba(0,0,0,0)} shadow displacement x: -1 shadow displacement y: 1 pt 2: z index: 900 left: {if prototype_pt() then 300 else leveler_pt_left()} - top: {if prototype_pt() then 307+prototype_height() else (l2_center() - 12 + leveler_pt_top_offset())+(if is_map() then -1 else 0)+(pt_font_vertical())} + top: {if prototype_pt() then 307+prototype_height() else (l2_center() - 12 + leveler_pt_top_offset())+(pt_font_vertical())} width: {if prototype_pt() then 45 else if is_leveler() and (not lone_pt() or card.pt_2 != "") then leveler_pt_width() else 0} height: {if prototype_pt() then 21 else leveler_pt_height()} alignment: center middle shrink-overflow @@ -1842,39 +2149,39 @@ card style: size: {pt2_font_size()} color: {pt2_font_color()} separator color: red - shadow color: {if is_map() then rgba(0,0,0,0) else if is_planeshifted() or is_fnm() then rgb(0,0,0) else rgba(0,0,0,0)} + shadow color: {if is_planeshifted() or is_fnm() then rgb(0,0,0) else rgba(0,0,0,0)} shadow displacement x: -1 shadow displacement y: 1 pt 3: z index: 900 left: {leveler_pt_left()} - top: {(l3_center() - 12 + leveler_pt_top_offset())+(if is_map() then -1 else 0)+(pt_font_vertical())} + top: {(l3_center() - 12 + leveler_pt_top_offset())+(pt_font_vertical())} width: {if is_leveler() and not lone_pt() or card.pt_3 != "" then leveler_pt_width() else 0} height: {leveler_pt_height()} alignment: center middle shrink-overflow font: - name: {pt_font()} - italic name: {pt_font_italic()} - size: {pt_font_size()} - color: {pt_font_color()} + name: {pt2_font()} + italic name: {pt2_font_italic()} + size: {pt2_font_size()} + color: {pt2_font_color()} separator color: red - shadow color: {if is_map() then rgba(0,0,0,0) else if is_planeshifted() or is_fnm() then rgb(0,0,0) else rgba(0,0,0,0)} + shadow color: {if is_planeshifted() or is_fnm() then rgb(0,0,0) else rgba(0,0,0,0)} shadow displacement x: -1 shadow displacement y: 1 pt 7: z index: 900 left: {leveler_pt_left()} - top: {(l4_center() - 12 + leveler_pt_top_offset())+(if is_map() then -1 else 0)+(pt_font_vertical())} + top: {(l4_center() - 12 + leveler_pt_top_offset())+(pt_font_vertical())} width: {if is_leveler() and not lone_pt() or card.pt_7 != "" then leveler_pt_width() else 0} height: {if card_style.level_4_text.height < 10 and card.pt_7 == "" then 0 else leveler_pt_height()} alignment: center middle shrink-overflow font: - name: {pt_font()} - italic name: {pt_font_italic()} - size: {pt_font_size()} - color: {pt_font_color()} + name: {pt2_font()} + italic name: {pt2_font_italic()} + size: {pt2_font_size()} + color: {pt2_font_color()} separator color: red - shadow color: {if is_map() then rgba(0,0,0,0) else if is_planeshifted() or is_fnm() then rgb(0,0,0) else rgba(0,0,0,0)} + shadow color: {if is_planeshifted() or is_fnm() then rgb(0,0,0) else rgba(0,0,0,0)} shadow displacement x: -1 shadow displacement y: 1 loyalty: @@ -1948,12 +2255,6 @@ extra card field: choice: evo save value: false editable: false -extra card field: - type: choice - name: evobar tip - choice: evo - save value: false - editable: false extra card field: type: choice name: evobar start @@ -2058,21 +2359,21 @@ extra card field: script: if loy_leveler() then ":" else level_label(2) extra card field: type: choice - name: level 2 overlay + name: d20 overlay 1 script: card.card_color choice: mask editable: false show statistics: false extra card field: type: choice - name: level 3 overlay + name: d20 overlay 2 script: card.card_color choice: mask editable: false show statistics: false extra card field: type: choice - name: level 4 overlay + name: d20 overlay 3 script: card.card_color choice: mask editable: false @@ -2195,48 +2496,67 @@ extra card field: editable: false extra card field: type: choice - name: transparent borderless overlay + name: notch script: card.card_color save value: false editable: false +extra card field: + type: choice + name: meld bar + choice: meld + editable: false + save value: false +extra card field: + type: text + name: back face hint + script: back_face_hint() + editable: false + save value: false +extra card field: + type: choice + name: spree + choice: none + choice: spree + editable: true + save value: true extra card style: pt box: - left: { if is_leveler() and not lone_pt() then leveler_ptbox_left() else if is_map() then 270 else 273 } - top: { if is_leveler() and not lone_pt() then (l1_center() - (if is_map() then 26 else 18)) + leveler_ptbox_top_offset() else if is_map() then 453 else 466} - width: { if starting_loyalty() and not is_leveler() then 0 else if is_map() then 90 else leveler_ptbox_width()} - height: { if is_map() then 54 else leveler_ptbox_height()} + left: { if is_leveler() and not lone_pt() then leveler_ptbox_left() else 285 } + top: { if is_leveler() and not lone_pt() then (l1_center() - 18) + leveler_ptbox_top_offset() else 464 } + width: { if starting_loyalty() and not is_leveler() then 0 else leveler_ptbox_width() } + height: { leveler_ptbox_height() } z index: 840 visible: { card.pt != "" } render style: image image: { choose_ptbox() } pt box 2: left: { leveler_ptbox_left()} - top: { l2_center() - (if is_map() then 26 else 15) + leveler_ptbox_top_offset()} - width: { if (is_leveler() and not lone_pt()) or card.pt_2 != "" then (if is_map() then 90 else leveler_ptbox_width()) else 0} - height: { if (is_leveler() and not lone_pt()) or card.pt_2 != "" then (if is_map() then 54 else leveler_ptbox_height()) else 0} + top: { l2_center() - 15 + leveler_ptbox_top_offset()} + width: { if (is_leveler() and not lone_pt()) or card.pt_2 != "" then leveler_ptbox_width() else 0} + height: { if (is_leveler() and not lone_pt()) or card.pt_2 != "" then leveler_ptbox_height() else 0} z index: 840 visible: { card.pt_2 != "" and not is_prototype() } render style: image - image: { if is_map() then mappt_background() else combine_blend(image1: choose_ptbox(), image2: template_prefix["pt"]+"ptbox_multiply_1.png", combine: "multiply")} + image: { choose_ptbox(multiply:multi_scale.1) } pt box 3: left: {leveler_ptbox_left()} - top: { l3_center() - (if is_map() then 26 else 15) + leveler_ptbox_top_offset()} - width: { if (is_leveler() and not lone_pt()) or card.pt_3 != "" then (if is_map() then 90 else leveler_ptbox_width()) else 0} - height: { if (is_leveler() and not lone_pt()) or card.pt_3 != "" then (if is_map() then 54 else leveler_ptbox_height()) else 0} + top: { l3_center() - 15 + leveler_ptbox_top_offset()} + width: { if (is_leveler() and not lone_pt()) or card.pt_3 != "" then leveler_ptbox_width() else 0} + height: { if (is_leveler() and not lone_pt()) or card.pt_3 != "" then leveler_ptbox_height() else 0} z index: 840 visible: { card.pt_3 != "" } render style: image - image: {if is_map() then mappt_background() else combine_blend(image1: choose_ptbox(), image2: template_prefix["pt"]+"ptbox_multiply_2.png", combine: "multiply")} + image: { choose_ptbox(multiply:multi_scale.2) } pt box 4: left: {leveler_ptbox_left()} - top: { l4_center() - (if is_map() then 26 else 15) + leveler_ptbox_top_offset()} - width: { if (is_leveler() and not lone_pt()) or card.pt_3 != "" then (if is_map() then 90 else leveler_ptbox_width()) else 0} - height: { if (is_leveler() and not lone_pt()) or card.pt_3 != "" then (if is_map() then 54 else leveler_ptbox_height()) else 0} + top: { l4_center() - 15 + leveler_ptbox_top_offset()} + width: { if (is_leveler() and not lone_pt()) or card.pt_3 != "" then leveler_ptbox_width() else 0} + height: { if (is_leveler() and not lone_pt()) or card.pt_3 != "" then leveler_ptbox_height() else 0} z index: 840 visible: { card.pt_7 != "" } render style: image - image: {if is_map() then mappt_background() else combine_blend(image1: choose_ptbox(), image2: template_prefix["pt"]+"ptbox_multiply_3.png", combine: "multiply")} + image: { choose_ptbox(multiply:multi_scale.3) } loyalty box: right: 362 top: 466 @@ -2269,10 +2589,10 @@ extra card style: size: 14 color: rgb(223,169,41) tarot watermark: - left: { if is_map() then 40 else 19 } + left: 19 top: { if is_dka() then 359 else 330 } - width: { if not is_tarot() then 0 else if is_map() then 287 else 334 } - height: { if is_map() then 154 else if is_dka() then 120 else 152 } + width: { if not is_tarot() then 0 else 334 } + height: { if is_dka() then 120 else 152 } z index: 720 alignment: middle center font: @@ -2280,44 +2600,25 @@ extra card style: size: 90 color: {rgba(0,0,0,40)} - clear top frame: - left: 0 - top: 0 - width: {if clear_tops() then 375 else 0} - height: 523 - z index: 199 - render style: image - popup style: in place - image: /magic-modules.mse-include/cards/375 m15 simple/xcard.png - mask: { if is_dka() then "frame_masks/clear_tops_dka_mask2.png" } evobar: - left: {if is_map() then 15 else 27} - top: {if is_map() then 62 else 57} - width: {card_style.alias.content_width} - height: 27 - z index: 870 - render style: image - image: /magic-modules.mse-include/extras/evobar/evobar.png - visible: {use_evobar()} - evobar tip: - left: {(if is_map() then 14.6 else 26.6) + card_style.alias.content_width} - top: {if is_map() then 62 else 57} - width: 36 + left: 29 + top: 59 + width: { evobar_image_width(card_style.alias.content_width) } height: 27 z index: 870 render style: image - image: /magic-modules.mse-include/extras/evobar/evobar_tip.png + image: { evobar_image(card_style.alias.content_width) } visible: {use_evobar()} alias bar: - left: 38 - top: { if uses_clear_frame() or clear_tops() then 59 else 57} + left: 38.5 + top: 57 width: 298 - height: 21 + height: 20 z index: 880 render style: image - image: {if is_devoid() and not is_legend() then template_prefix["alias"]+"devoidalias.png" else if is_clear() or clear_tops() then template_prefix["alias"]+"xalias.png" else module_alias()} - visible: {is_skinned() and not use_evobar()} - mask: { if is_legend() and (is_devoid() or uses_expanded_art() or is_puma()) then "frame_masks/bl_alias_mask.png" else "" } + image: { module_alias() } + visible: {is_skinned()} + mask: { if is_legend() and (uses_expanded_art() or is_puma()) then "frame_masks/bl_alias_mask.png" else "" } scrolls: left: 0 top: 0 @@ -2326,7 +2627,7 @@ extra card style: render style: image image: {if is_puma() then puma_img() else "scrolls" + (if is_dka() then "_full" else "") + (if is_miracle() and not is_legend() then "_miracle" else "") + ".png"} z index: 600 - visible: {not is_map() and (is_scrolls() or is_puma())} + visible: {is_scrolls() or is_puma()} curtain: left: 0 top: 0 @@ -2335,17 +2636,17 @@ extra card style: render style: image image: {curtain_plate()} z index: 610 - visible: {not is_map() and not uses_expanded_art() and is_curtains()} + visible: {is_curtains() and not uses_expanded_art()} mask: {if is_legend() then "curtains/legend_mask.png"} miracle overlay: left: 0 - top: { if is_devoid() and is_legend() then 1 else 0 } + top: 0 width: 375 height: 523 render style: image image: { miracle_plate() } z index: 810 - visible: {not is_map() and is_miracle()} + visible: {is_miracle()} mask: { miracle_mask() } nyx overlay: left: 0 @@ -2355,7 +2656,7 @@ extra card style: render style: image image: { devoid_mask(module_nyx()) } z index: 330 - visible: { not is_map() and not uses_expanded_art() and is_nyx() } + visible: { not uses_expanded_art() and is_nyx() } mask: { if is_snow() or is_custom_border() or is_draft() or is_vehicle() then twin_trim_mask() else main_trim_mask() } snow overlay: left: 0 @@ -2365,7 +2666,7 @@ extra card style: render style: image image: { devoid_mask(module_snow()) } z index: 320 - visible: { not is_map() and not uses_expanded_art() and is_snow() and base_card() != "snow" } + visible: { not uses_expanded_art() and is_snow() and base_card() != "snow" } mask: { if is_custom_border() or is_draft() or is_vehicle() then twin_trim_mask() else main_trim_mask() } custom overlay: left: 0 @@ -2375,7 +2676,7 @@ extra card style: render style: image image: { devoid_mask(custom_border_blend()) } z index: 317 - visible: { not is_map() and not uses_expanded_art() and is_custom_border() } + visible: { not uses_expanded_art() and is_custom_border() } mask: { if is_vehicle() or is_draft() then twin_trim_mask() else main_trim_mask() } draft overlay: left: 0 @@ -2385,7 +2686,7 @@ extra card style: z index: 315 render style: image image: { devoid_mask(draft_trim()) } - visible: {not is_map() and not uses_expanded_art() and is_draft()} + visible: {not uses_expanded_art() and is_draft()} mask: { if is_vehicle() then twin_trim_mask() else main_trim_mask() } vehicle overlay: left: 0 @@ -2395,7 +2696,7 @@ extra card style: render style: image image: {if is_beyond() then devoid_mask("/magic-modules.mse-include/trims/beyond/vbeyond.png") else devoid_mask("/magic-modules.mse-include/trims/vehicle.png")} z index: 310 - visible: { not is_map() and not uses_expanded_art() and is_vehicle() } + visible: { not uses_expanded_art() and is_vehicle() } mask: { main_trim_mask() } lvl label 0: @@ -2408,7 +2709,7 @@ extra card style: font: name: {if loy_leveler() then "MPlantin" else "Beleren Small Caps"} size: {if loy_leveler() then 15 else if length(level_label(0)) < 8 or box_leveler() then 7 else 6} - color: black + color: { if is_multiplied() then "white" else "black" } weight: {if loy_leveler() then "" else "bold"} visible: {card.level_0 != "" and not cir_leveler()} lvl label 1: @@ -2421,7 +2722,7 @@ extra card style: font: name: {if loy_leveler() then "MPlantin" else "Beleren Small Caps"} size: {if loy_leveler() then 15 else if length(level_label(1)) < 8 or box_leveler() then 7 else 6} - color: black + color: { if is_multiplied() then "white" else "black" } weight: {if loy_leveler() then "" else "bold"} visible: {card.level_1 != "" and not cir_leveler()} lvl label 2: @@ -2434,7 +2735,7 @@ extra card style: font: name: {if loy_leveler() then "MPlantin" else "Beleren Small Caps"} size: {if loy_leveler() then 15 else if length(level_label(2)) < 8 or box_leveler() then 7 else 6} - color: black + color: { if is_multiplied() then "white" else "black" } weight: {if loy_leveler() then "" else "bold"} visible: {card.level_2 != "" and not cir_leveler()} lvl label 3: @@ -2447,36 +2748,36 @@ extra card style: font: name: {if loy_leveler() then "MPlantin" else "Beleren Small Caps"} size: {if loy_leveler() then 15 else if length(level_label(2)) < 8 or box_leveler() then 7 else 6} - color: black + color: { if is_multiplied() then "white" else "black" } weight: {if loy_leveler() then "" else "bold"} visible: {card.level_3 != "" and not cir_leveler()} - level 2 overlay: + d20 overlay 1: left: 29 - top: { if is_d20() then top_of_para(rolls_start(card.text)-invert_rolls()) else 329 + lv_2_coordinate()} - height: { if is_d20() then height_of_para(rolls_start(card.text)) else lv_2_height()} + top: { top_of_para(rolls_start(card.text)-invert_rolls()) } + height: { height_of_para(rolls_start(card.text)) } width: 314 z index: 640 render style: image - image: {overlay1()} - visible: {(is_d20() and number_of_rolls(card.text) > 0) or (is_leveler() and not is_dka() and not is_map() and not is_fnm() and not is_inverted())} - level 3 overlay: + image: { d20_overlay } + visible: {is_d20() and number_of_rolls(card.text) > 0} + d20 overlay 2: left: 29 - top: { if is_d20() then top_of_para(rolls_start(card.text)+2-invert_rolls()) else 329 + lv_3_coordinate()} - height: { if is_d20() then height_of_para(rolls_start(card.text)+2-invert_rolls()) else lv_3_height()} + top: { top_of_para(rolls_start(card.text)+2-invert_rolls()) } + height: { height_of_para(rolls_start(card.text)+2-invert_rolls()) } width: 314 z index: 640 render style: image - image: {overlay2()} - visible: {(is_d20() and number_of_rolls(card.text)-no_roll(card.text) > 2) or (is_leveler() and not is_dka() and not is_map() and not is_fnm() and not is_inverted())} - level 4 overlay: + image: { d20_overlay } + visible: { is_d20() and number_of_rolls(card.text)-no_roll(card.text) > 2 } + d20 overlay 3: left: 29 - top: { if is_d20() then top_of_para(rolls_start(card.text)+4-invert_rolls()) else 329 + lv_4_coordinate()} - height: { if is_d20() then height_of_para(rolls_start(card.text)+4-invert_rolls()) else lv_4_height()} + top: { top_of_para(rolls_start(card.text)+4-invert_rolls()) } + height: { height_of_para(rolls_start(card.text)+4-invert_rolls()) } width: 314 z index: 640 render style: image - image: {overlay3()} - visible: {(is_d20() and number_of_rolls(card.text)-no_roll(card.text) > 4) or (is_leveler() and not is_dka() and not is_map() and not is_fnm() and not is_inverted())} + image: { d20_overlay } + visible: { is_d20() and number_of_rolls(card.text)-no_roll(card.text) > 4 } arrow 1: z index: 840 @@ -2485,7 +2786,7 @@ extra card style: width: {if card.level_0 != "" then arrow_width() else 0} height: {arrow_height(0)} render style: image - image: {if loy_leveler() then loyalty_image(card.level_0) else if box_leveler() then choose_ptbox() else if cir_leveler() then circle_background() else arrow_img_1()} + image: { level_container(level:0) } arrow 2: z index: 840 left: {arrow_left()} @@ -2493,7 +2794,7 @@ extra card style: width: {if card.level_1 != "" then arrow_width() else 0} height: {arrow_height(1)} render style: image - image: {if loy_leveler() then loyalty_image(card.level_1) else if box_leveler() then choose_ptbox() else if cir_leveler() then circle_background() else arrow_img_1()} + image: { level_container(level:1) } arrow 3: z index: 840 left: {arrow_left()} @@ -2501,7 +2802,7 @@ extra card style: width: {if card.level_2 != "" then arrow_width() else 0} height: {arrow_height(2)} render style: image - image: {if loy_leveler() then loyalty_image(card.level_2) else if box_leveler() then choose_ptbox() else if cir_leveler() then circle_background() else arrow_img_2()} + image: { level_container(level:2) } arrow 4: z index: 840 left: {arrow_left()} @@ -2509,7 +2810,7 @@ extra card style: width: {if card.level_3 != "" then arrow_width() else 0} height: {arrow_height(3)} render style: image - image: {if loy_leveler() then loyalty_image(card.level_3) else if box_leveler() then choose_ptbox() else if cir_leveler() then circle_background() else arrow_img_3()} + image: { level_container(level:3) } ascend: left: 37 @@ -2539,7 +2840,7 @@ extra card style: render style: image image: { season_background() } visible: { is_season() } - mask: { if not transform_symbol_is_empty(card.transformation) then "nodes/mask.png" else "" } + mask: { if not transform_symbol_is_empty(card.transformation) then node_mask() else "" } mutbar: z index: 730 left: 28 @@ -2559,21 +2860,21 @@ extra card style: node: left: 0 top: 0 - height: 63 + height: 523 width: 375 z index: 610 render style: image image: { node_img() } - visible: {not is_map() and not is_clear() and not transform_symbol_is_empty(card.transformation)} + visible: {not transform_symbol_is_empty(card.transformation)} crown: left: 0 - top: {if is_devoid() then 1 else 0} + top: 0 width: 375 height: 523 render style: image image: { crown_img() } z index: 800 - visible: {is_legend() and not is_map()} + visible: {is_legend()} mask: { if is_fnm() and is_season() then "fnm/crown_season_mask.png" else if is_fnm() then "fnm/crown_mask.png" else if is_season() then "season/crown_mask.png" else ""} pride pin: @@ -2652,12 +2953,47 @@ extra card style: z index: 720 image: { prototype_pt_image() } visible: { is_prototype() and styling.prototype_secondary == "pt" and card.pt_2 != "" } - transparent borderless overlay: + clear top frame: left: 0 top: 0 width: 375 height: 523 + image: { clear_image_path() } + mask: frame_masks/clear_tops_mask_inv.png + visible: { clear_tops() } + z index: 199 render style: image - z index: 600 - image: transparent_borderless.png - visible: { is_transparent_borderless() } \ No newline at end of file + meld bar: + left: 0 + top: 0 + width: 375 + height: 523 + render style: image + image: meldbar.png + visible: {use_meld_bar()} + z index: 1100 + back face hint: + z index: 650 + right: 347 + top: 446 + width: 30 + height: 12 + alignment: bottom right + visible: { is_notched() } + font: + name: ModMatrix + size: 12 + weight: bold + color: {rgb(45,45,45)} + separator color: red + spree: + z index: 810 + left: 0 + top: 0 + width: { if transform_symbol_active_right(card.transformation) then 0 else 375 } + height: 523 + render style: image + popup style: in place + choice images: + spree: { spree_image(card.card_color) } + mask: frame_masks/click_mask_spree.png diff --git a/data/magic-m15-altered.mse-style/transparent_borderless_notched.png b/data/magic-m15-altered.mse-style/transparent_borderless_notched.png new file mode 100644 index 0000000000..884d9700e5 Binary files /dev/null and b/data/magic-m15-altered.mse-style/transparent_borderless_notched.png differ diff --git a/data/magic-modules.mse-include/cards/375 m15 simple/devoid/acard.png b/data/magic-modules.mse-include/cards/375 m15 simple/devoid/acard.png new file mode 100644 index 0000000000..105ada9b4b Binary files /dev/null and b/data/magic-modules.mse-include/cards/375 m15 simple/devoid/acard.png differ diff --git a/data/magic-modules.mse-include/cards/375 m15 simple/devoid/bcard.png b/data/magic-modules.mse-include/cards/375 m15 simple/devoid/bcard.png new file mode 100644 index 0000000000..845d84d89e Binary files /dev/null and b/data/magic-modules.mse-include/cards/375 m15 simple/devoid/bcard.png differ diff --git a/data/magic-modules.mse-include/cards/375 m15 simple/devoid/ccard.png b/data/magic-modules.mse-include/cards/375 m15 simple/devoid/ccard.png new file mode 100644 index 0000000000..cadc2bc457 Binary files /dev/null and b/data/magic-modules.mse-include/cards/375 m15 simple/devoid/ccard.png differ diff --git a/data/magic-modules.mse-include/cards/375 m15 simple/devoid/gcard.png b/data/magic-modules.mse-include/cards/375 m15 simple/devoid/gcard.png new file mode 100644 index 0000000000..d4ca492004 Binary files /dev/null and b/data/magic-modules.mse-include/cards/375 m15 simple/devoid/gcard.png differ diff --git a/data/magic-modules.mse-include/cards/375 m15 simple/devoid/mcard.png b/data/magic-modules.mse-include/cards/375 m15 simple/devoid/mcard.png new file mode 100644 index 0000000000..05c443c53d Binary files /dev/null and b/data/magic-modules.mse-include/cards/375 m15 simple/devoid/mcard.png differ diff --git a/data/magic-modules.mse-include/cards/375 m15 simple/devoid/rcard.png b/data/magic-modules.mse-include/cards/375 m15 simple/devoid/rcard.png new file mode 100644 index 0000000000..40c76bc85d Binary files /dev/null and b/data/magic-modules.mse-include/cards/375 m15 simple/devoid/rcard.png differ diff --git a/data/magic-modules.mse-include/cards/375 m15 simple/devoid/ucard.png b/data/magic-modules.mse-include/cards/375 m15 simple/devoid/ucard.png new file mode 100644 index 0000000000..c28afaaace Binary files /dev/null and b/data/magic-modules.mse-include/cards/375 m15 simple/devoid/ucard.png differ diff --git a/data/magic-modules.mse-include/cards/375 m15 simple/devoid/wcard.png b/data/magic-modules.mse-include/cards/375 m15 simple/devoid/wcard.png new file mode 100644 index 0000000000..2da8aac9ec Binary files /dev/null and b/data/magic-modules.mse-include/cards/375 m15 simple/devoid/wcard.png differ diff --git a/data/magic-modules.mse-include/cards/375 m15 simple/xcard.png b/data/magic-modules.mse-include/cards/375 m15 simple/xcard.png index 6f593e4639..03254b4179 100644 Binary files a/data/magic-modules.mse-include/cards/375 m15 simple/xcard.png and b/data/magic-modules.mse-include/cards/375 m15 simple/xcard.png differ diff --git a/data/magic-modules.mse-include/cards/375 m15 simple/xcard_notched.png b/data/magic-modules.mse-include/cards/375 m15 simple/xcard_notched.png new file mode 100644 index 0000000000..8eefd8df41 Binary files /dev/null and b/data/magic-modules.mse-include/cards/375 m15 simple/xcard_notched.png differ diff --git a/data/magic-modules.mse-include/cards/375 nodes/a.png b/data/magic-modules.mse-include/cards/375 nodes/a.png new file mode 100644 index 0000000000..1ca46bc871 Binary files /dev/null and b/data/magic-modules.mse-include/cards/375 nodes/a.png differ diff --git a/data/magic-modules.mse-include/cards/375 nodes/b.png b/data/magic-modules.mse-include/cards/375 nodes/b.png new file mode 100644 index 0000000000..be44b51f4b Binary files /dev/null and b/data/magic-modules.mse-include/cards/375 nodes/b.png differ diff --git a/data/magic-modules.mse-include/cards/375 nodes/c.png b/data/magic-modules.mse-include/cards/375 nodes/c.png new file mode 100644 index 0000000000..f69ac8b24e Binary files /dev/null and b/data/magic-modules.mse-include/cards/375 nodes/c.png differ diff --git a/data/magic-modules.mse-include/cards/375 nodes/g.png b/data/magic-modules.mse-include/cards/375 nodes/g.png new file mode 100644 index 0000000000..ca96888436 Binary files /dev/null and b/data/magic-modules.mse-include/cards/375 nodes/g.png differ diff --git a/data/magic-modules.mse-include/cards/375 nodes/m.png b/data/magic-modules.mse-include/cards/375 nodes/m.png new file mode 100644 index 0000000000..f397ea84b4 Binary files /dev/null and b/data/magic-modules.mse-include/cards/375 nodes/m.png differ diff --git a/data/magic-modules.mse-include/cards/375 nodes/mask.png b/data/magic-modules.mse-include/cards/375 nodes/mask.png new file mode 100644 index 0000000000..8147bcaeb4 Binary files /dev/null and b/data/magic-modules.mse-include/cards/375 nodes/mask.png differ diff --git a/data/magic-modules.mse-include/cards/375 nodes/r.png b/data/magic-modules.mse-include/cards/375 nodes/r.png new file mode 100644 index 0000000000..b46c0853b7 Binary files /dev/null and b/data/magic-modules.mse-include/cards/375 nodes/r.png differ diff --git a/data/magic-modules.mse-include/cards/375 nodes/shifted/a.png b/data/magic-modules.mse-include/cards/375 nodes/shifted/a.png new file mode 100644 index 0000000000..38e4e1f0ee Binary files /dev/null and b/data/magic-modules.mse-include/cards/375 nodes/shifted/a.png differ diff --git a/data/magic-modules.mse-include/cards/375 nodes/shifted/b.png b/data/magic-modules.mse-include/cards/375 nodes/shifted/b.png new file mode 100644 index 0000000000..be44b51f4b Binary files /dev/null and b/data/magic-modules.mse-include/cards/375 nodes/shifted/b.png differ diff --git a/data/magic-modules.mse-include/cards/375 nodes/shifted/c.png b/data/magic-modules.mse-include/cards/375 nodes/shifted/c.png new file mode 100644 index 0000000000..f69ac8b24e Binary files /dev/null and b/data/magic-modules.mse-include/cards/375 nodes/shifted/c.png differ diff --git a/data/magic-modules.mse-include/cards/375 nodes/shifted/g.png b/data/magic-modules.mse-include/cards/375 nodes/shifted/g.png new file mode 100644 index 0000000000..d1bc34fc8f Binary files /dev/null and b/data/magic-modules.mse-include/cards/375 nodes/shifted/g.png differ diff --git a/data/magic-modules.mse-include/cards/375 nodes/shifted/m.png b/data/magic-modules.mse-include/cards/375 nodes/shifted/m.png new file mode 100644 index 0000000000..f397ea84b4 Binary files /dev/null and b/data/magic-modules.mse-include/cards/375 nodes/shifted/m.png differ diff --git a/data/magic-modules.mse-include/cards/375 nodes/shifted/r.png b/data/magic-modules.mse-include/cards/375 nodes/shifted/r.png new file mode 100644 index 0000000000..ba872fb025 Binary files /dev/null and b/data/magic-modules.mse-include/cards/375 nodes/shifted/r.png differ diff --git a/data/magic-modules.mse-include/cards/375 nodes/shifted/u.png b/data/magic-modules.mse-include/cards/375 nodes/shifted/u.png new file mode 100644 index 0000000000..f5f348ece5 Binary files /dev/null and b/data/magic-modules.mse-include/cards/375 nodes/shifted/u.png differ diff --git a/data/magic-modules.mse-include/cards/375 nodes/shifted/w.png b/data/magic-modules.mse-include/cards/375 nodes/shifted/w.png new file mode 100644 index 0000000000..ccf02df5fa Binary files /dev/null and b/data/magic-modules.mse-include/cards/375 nodes/shifted/w.png differ diff --git a/data/magic-modules.mse-include/cards/375 nodes/u.png b/data/magic-modules.mse-include/cards/375 nodes/u.png new file mode 100644 index 0000000000..f5f348ece5 Binary files /dev/null and b/data/magic-modules.mse-include/cards/375 nodes/u.png differ diff --git a/data/magic-modules.mse-include/cards/375 nodes/w.png b/data/magic-modules.mse-include/cards/375 nodes/w.png new file mode 100644 index 0000000000..ccf02df5fa Binary files /dev/null and b/data/magic-modules.mse-include/cards/375 nodes/w.png differ diff --git a/data/magic-modules.mse-include/cards/375 nodes/x.png b/data/magic-modules.mse-include/cards/375 nodes/x.png new file mode 100644 index 0000000000..a13544dfa6 Binary files /dev/null and b/data/magic-modules.mse-include/cards/375 nodes/x.png differ diff --git a/data/magic-modules.mse-include/crowns/375/xcrown.png b/data/magic-modules.mse-include/crowns/375/xcrown.png index 4533a54595..f9e410ae1b 100644 Binary files a/data/magic-modules.mse-include/crowns/375/xcrown.png and b/data/magic-modules.mse-include/crowns/375/xcrown.png differ diff --git a/data/magic-modules.mse-include/extras/evobar/evobar_left.png b/data/magic-modules.mse-include/extras/evobar/evobar_left.png new file mode 100644 index 0000000000..276a6b2846 Binary files /dev/null and b/data/magic-modules.mse-include/extras/evobar/evobar_left.png differ diff --git a/data/magic-modules.mse-include/extras/evobar/script b/data/magic-modules.mse-include/extras/evobar/script new file mode 100644 index 0000000000..2f94aea994 --- /dev/null +++ b/data/magic-modules.mse-include/extras/evobar/script @@ -0,0 +1,18 @@ +evobar_image := { + ## nine_slice_image(input: image, height: height_of_new_image, width: width_of_new_image, left: left_margin, right: right_margin, top: top_margin, bottom: bottom_margin) + src := "/magic-modules.mse-include/extras/evobar/evobar_" + (if right == true then "right" else "left") + ".png" + + nine_slice_image( + src, + height: 27, + width: evobar_image_width(input), + left: 17, + right: 36, + top: 4, + bottom: 17 + ) +}@(right:false) + +evobar_image_width := { max(evobar_min_width, input + evobar_tip_width) } +evobar_tip_width := 36 +evobar_min_width := 54 \ No newline at end of file diff --git a/data/magic-modules.mse-include/levels/arrows/1/aarrow.png b/data/magic-modules.mse-include/levels/arrows/1/aarrow.png index 628becf370..a79078f7d4 100644 Binary files a/data/magic-modules.mse-include/levels/arrows/1/aarrow.png and b/data/magic-modules.mse-include/levels/arrows/1/aarrow.png differ diff --git a/data/magic-modules.mse-include/levels/arrows/1/barrow.png b/data/magic-modules.mse-include/levels/arrows/1/barrow.png index fbf464afa0..28a3d31ba9 100644 Binary files a/data/magic-modules.mse-include/levels/arrows/1/barrow.png and b/data/magic-modules.mse-include/levels/arrows/1/barrow.png differ diff --git a/data/magic-modules.mse-include/levels/arrows/1/carrow.png b/data/magic-modules.mse-include/levels/arrows/1/carrow.png index cc6825a287..f90c6755b2 100644 Binary files a/data/magic-modules.mse-include/levels/arrows/1/carrow.png and b/data/magic-modules.mse-include/levels/arrows/1/carrow.png differ diff --git a/data/magic-modules.mse-include/levels/arrows/1/garrow.png b/data/magic-modules.mse-include/levels/arrows/1/garrow.png index ee1c49c0e5..706c33791f 100644 Binary files a/data/magic-modules.mse-include/levels/arrows/1/garrow.png and b/data/magic-modules.mse-include/levels/arrows/1/garrow.png differ diff --git a/data/magic-modules.mse-include/levels/arrows/1/marrow.png b/data/magic-modules.mse-include/levels/arrows/1/marrow.png index 7e4f4310fa..399ced4934 100644 Binary files a/data/magic-modules.mse-include/levels/arrows/1/marrow.png and b/data/magic-modules.mse-include/levels/arrows/1/marrow.png differ diff --git a/data/magic-modules.mse-include/levels/arrows/1/rarrow.png b/data/magic-modules.mse-include/levels/arrows/1/rarrow.png index 11f7ba0e90..45d62a56fa 100644 Binary files a/data/magic-modules.mse-include/levels/arrows/1/rarrow.png and b/data/magic-modules.mse-include/levels/arrows/1/rarrow.png differ diff --git a/data/magic-modules.mse-include/levels/arrows/1/uarrow.png b/data/magic-modules.mse-include/levels/arrows/1/uarrow.png index 8c7b480361..65e59bc92c 100644 Binary files a/data/magic-modules.mse-include/levels/arrows/1/uarrow.png and b/data/magic-modules.mse-include/levels/arrows/1/uarrow.png differ diff --git a/data/magic-modules.mse-include/levels/arrows/1/varrow.png b/data/magic-modules.mse-include/levels/arrows/1/varrow.png new file mode 100644 index 0000000000..711e753bf9 Binary files /dev/null and b/data/magic-modules.mse-include/levels/arrows/1/varrow.png differ diff --git a/data/magic-modules.mse-include/levels/arrows/1/warrow.png b/data/magic-modules.mse-include/levels/arrows/1/warrow.png index 0f48932f0d..9aee592440 100644 Binary files a/data/magic-modules.mse-include/levels/arrows/1/warrow.png and b/data/magic-modules.mse-include/levels/arrows/1/warrow.png differ diff --git a/data/magic-modules.mse-include/multiply/a.png b/data/magic-modules.mse-include/multiply/a.png new file mode 100644 index 0000000000..e1cd2bebbc Binary files /dev/null and b/data/magic-modules.mse-include/multiply/a.png differ diff --git a/data/magic-modules.mse-include/multiply/b.png b/data/magic-modules.mse-include/multiply/b.png new file mode 100644 index 0000000000..3a75a8156a Binary files /dev/null and b/data/magic-modules.mse-include/multiply/b.png differ diff --git a/data/magic-modules.mse-include/multiply/c.png b/data/magic-modules.mse-include/multiply/c.png new file mode 100644 index 0000000000..d4de99a6b1 Binary files /dev/null and b/data/magic-modules.mse-include/multiply/c.png differ diff --git a/data/magic-modules.mse-include/multiply/g.png b/data/magic-modules.mse-include/multiply/g.png new file mode 100644 index 0000000000..160431fc7d Binary files /dev/null and b/data/magic-modules.mse-include/multiply/g.png differ diff --git a/data/magic-modules.mse-include/multiply/m.png b/data/magic-modules.mse-include/multiply/m.png new file mode 100644 index 0000000000..4eba4f3c66 Binary files /dev/null and b/data/magic-modules.mse-include/multiply/m.png differ diff --git a/data/magic-modules.mse-include/multiply/r.png b/data/magic-modules.mse-include/multiply/r.png new file mode 100644 index 0000000000..24dbb4700c Binary files /dev/null and b/data/magic-modules.mse-include/multiply/r.png differ diff --git a/data/magic-modules.mse-include/multiply/readme.txt b/data/magic-modules.mse-include/multiply/readme.txt new file mode 100644 index 0000000000..dfaf1a871f --- /dev/null +++ b/data/magic-modules.mse-include/multiply/readme.txt @@ -0,0 +1,23 @@ +#### To use this include in a template, add the following in the template headers: +depends on: + package: magic-modules.mse-include + version: 2024-10-01 + +#### This contains color values to Multiply an image, to darken elements for back faces, levelers, etc. +#### It has two scripts defined in the base game, so nothing needs added to the style file. +color_multiply( + input, ## card color, or color letter + image, ## image to multiply + height, ## height of that image + width, ## width of that image + multiply_mask, ## optional mask, only the white sections will be multiplied + iterate, ## optional number of times to multiply, accepts decimals +) + +#### Customization +#### The color swatch to use is defined by the function +blend_multiply_template := { + resize_image("/magic-modules.mse-include/multiply/{input}.png", width:width, height:height) +} +#### You can choose different colors by redefining this to point to a different folder. +#### It needs to contain new images for wubrgacm, and a white pixel named "white" \ No newline at end of file diff --git a/data/magic-modules.mse-include/multiply/u.png b/data/magic-modules.mse-include/multiply/u.png new file mode 100644 index 0000000000..d35b730cef Binary files /dev/null and b/data/magic-modules.mse-include/multiply/u.png differ diff --git a/data/magic-modules.mse-include/multiply/w.png b/data/magic-modules.mse-include/multiply/w.png new file mode 100644 index 0000000000..b954efdac8 Binary files /dev/null and b/data/magic-modules.mse-include/multiply/w.png differ diff --git a/data/magic-modules.mse-include/multiply/white.png b/data/magic-modules.mse-include/multiply/white.png new file mode 100644 index 0000000000..6cb205368c Binary files /dev/null and b/data/magic-modules.mse-include/multiply/white.png differ diff --git a/data/magic-modules.mse-include/pts/375 m15/multiply_mask.png b/data/magic-modules.mse-include/pts/375 m15/multiply_mask.png new file mode 100644 index 0000000000..d704a09c06 Binary files /dev/null and b/data/magic-modules.mse-include/pts/375 m15/multiply_mask.png differ diff --git a/data/magic-modules.mse-include/stamps/backs/375 round/xstamp.png b/data/magic-modules.mse-include/stamps/backs/375 round/xstamp.png index a27a45021f..d1de38b28c 100644 Binary files a/data/magic-modules.mse-include/stamps/backs/375 round/xstamp.png and b/data/magic-modules.mse-include/stamps/backs/375 round/xstamp.png differ diff --git a/data/magic-modules.mse-include/stamps/backs/375 ub/xstamp.png b/data/magic-modules.mse-include/stamps/backs/375 ub/xstamp.png index 74510355f6..cec6f1669d 100644 Binary files a/data/magic-modules.mse-include/stamps/backs/375 ub/xstamp.png and b/data/magic-modules.mse-include/stamps/backs/375 ub/xstamp.png differ diff --git a/data/magic-modules.mse-include/symbols/readme.txt b/data/magic-modules.mse-include/symbols/readme.txt index 01534e60a4..9f32cfc0fd 100644 --- a/data/magic-modules.mse-include/symbols/readme.txt +++ b/data/magic-modules.mse-include/symbols/readme.txt @@ -47,6 +47,10 @@ transform_symbol_icon_has_shadow() #### Is the symbol on the right of the card (true or false) transform_symbol_is_right() +#### Is the symbol non-empty and on a particular side (true or false) +transform_symbol_active_left() +transform_symbol_active_right() + #### Each part of the symbol has default values. #### The icon shape defaults to "front triangle" if it's a front face (that is, when it is linked to a back face), #### "back triangle" if it's a back face, and "none" otherwise. To override this behavior, redefine this function: diff --git a/data/magic-modules.mse-include/trims/devoid/a.png b/data/magic-modules.mse-include/trims/devoid/a.png new file mode 100644 index 0000000000..996785f246 Binary files /dev/null and b/data/magic-modules.mse-include/trims/devoid/a.png differ diff --git a/data/magic-modules.mse-include/trims/devoid/b.png b/data/magic-modules.mse-include/trims/devoid/b.png new file mode 100644 index 0000000000..eb25eae06a Binary files /dev/null and b/data/magic-modules.mse-include/trims/devoid/b.png differ diff --git a/data/magic-modules.mse-include/trims/devoid/c.png b/data/magic-modules.mse-include/trims/devoid/c.png new file mode 100644 index 0000000000..822479e0b9 Binary files /dev/null and b/data/magic-modules.mse-include/trims/devoid/c.png differ diff --git a/data/magic-modules.mse-include/trims/devoid/g.png b/data/magic-modules.mse-include/trims/devoid/g.png new file mode 100644 index 0000000000..d32dc27356 Binary files /dev/null and b/data/magic-modules.mse-include/trims/devoid/g.png differ diff --git a/data/magic-modules.mse-include/trims/devoid/m.png b/data/magic-modules.mse-include/trims/devoid/m.png new file mode 100644 index 0000000000..3881b744f6 Binary files /dev/null and b/data/magic-modules.mse-include/trims/devoid/m.png differ diff --git a/data/magic-modules.mse-include/trims/devoid/r.png b/data/magic-modules.mse-include/trims/devoid/r.png new file mode 100644 index 0000000000..81d5cb62d4 Binary files /dev/null and b/data/magic-modules.mse-include/trims/devoid/r.png differ diff --git a/data/magic-modules.mse-include/trims/devoid/u.png b/data/magic-modules.mse-include/trims/devoid/u.png new file mode 100644 index 0000000000..d04cc46616 Binary files /dev/null and b/data/magic-modules.mse-include/trims/devoid/u.png differ diff --git a/data/magic-modules.mse-include/trims/devoid/w.png b/data/magic-modules.mse-include/trims/devoid/w.png new file mode 100644 index 0000000000..6068f47470 Binary files /dev/null and b/data/magic-modules.mse-include/trims/devoid/w.png differ diff --git a/data/magic-modules.mse-include/watermarks/choices b/data/magic-modules.mse-include/watermarks/choices index 5809bd38ff..f682848220 100644 --- a/data/magic-modules.mse-include/watermarks/choices +++ b/data/magic-modules.mse-include/watermarks/choices @@ -194,6 +194,7 @@ choice: choice: chaos symbol choice: color pie choice: conspiracy stamp + choice: echoverse choice: jace consortium choice: shooting star choice: phyrexia diff --git a/data/magic-modules.mse-include/watermarks/other/echoverse.png b/data/magic-modules.mse-include/watermarks/other/echoverse.png new file mode 100644 index 0000000000..8e11fa333d Binary files /dev/null and b/data/magic-modules.mse-include/watermarks/other/echoverse.png differ diff --git a/data/magic-modules.mse-include/watermarks/styling_fields b/data/magic-modules.mse-include/watermarks/styling_fields index 2b545efcfa..542050953e 100644 --- a/data/magic-modules.mse-include/watermarks/styling_fields +++ b/data/magic-modules.mse-include/watermarks/styling_fields @@ -1,6 +1,7 @@ styling field: type: choice name: watermark render + choice: default choice: normal choice: inverted choice: blend with colors diff --git a/data/magic.mse-game/add_cards_scripts b/data/magic.mse-game/add_cards_scripts index 4ef298ee92..088639ce19 100644 --- a/data/magic.mse-game/add_cards_scripts +++ b/data/magic.mse-game/add_cards_scripts @@ -1,4 +1,14 @@ - +add cards script: + name: &Meld Card + description: Adds and links a meld trio + script: + meld_catalyst := new_card([]) + meld_base := new_card([rule_text:"\n(Melds with LINKNAME.)"]) + meld_result := new_card([]) + add_link(meld_catalyst, selected_relation: "Meld Component", linked_card:meld_base, linked_relation: "Meld Component") + add_link(meld_catalyst, selected_relation: "Meld Catalyst", linked_card:meld_result, linked_relation: "Meld Result") + add_link(meld_base, selected_relation: "Meld Base", linked_card:meld_result, linked_relation: "Meld Result") + [ meld_catalyst, meld_base, meld_result ] add cards script: name: &Basic Lands description: Adds 5 basic lands to the set (Plains, Island, Swamp, Mountain, Forest) diff --git a/data/magic.mse-game/script b/data/magic.mse-game/script index 99f421d766..f60145d293 100644 --- a/data/magic.mse-game/script +++ b/data/magic.mse-game/script @@ -235,6 +235,66 @@ internal_crop := { ) else img }@(distance:0, distance2:0, left:nil, right:nil, top:nil, bottom:nil) +#### add a color multiply to an image +## input - color to multiply with +## image - image to multiply +## height - height of image +## width - width of image +## multiply mask - optional mask, only multiply black areas +## iterate - optional number of times to multiply +## this multiplies "backwards" so we can get gradients +color_multiply := { + resized_color := if length(input) == 1 then blend_multiply_template(input) else color_background( + input, + type: "multiply", + base_hybrid: card_hybrid, + template: blend_multiply_template, + land_template: blend_multiply_template, + artifact_blend: artifact_blend, + hybrid_blend: hybrid_blend, + multicolor_blend: multicolor_blend + ) + steps := to_int(iterate) + alpha := iterate - steps + if alpha >= 0.01 then ( + steps := steps + 1 + ) else ( + alpha := 0 + ) + masked := type_of(multiply_mask) == "image" or multiply_mask != "" + if masked or alpha > 0 then + resized_white := blend_multiply_template("white") + + if masked then ( + resized_color := masked_blend( + mask: multiply_mask, + light: resized_white, + dark: resized_color + ) + ) + + if alpha > 0 then ( + resized_alpha := insert_image( + base_image: resized_white, + inserted_image: set_alpha(resized_color), + offset_x: 0, + offset_y: 0 + ) + ) + + for x from 1 to steps do ( + image := combine_blend( + combine: "multiply", + image1: (if alpha > 0 and x == steps then resized_alpha else resized_color) + image2: image, + ) + "dummy return" + ) + image +}@(multiply_mask:"", iterate:1, artifact_blend:"black", hybrid_blend:"black", multicolor_blend:"black") +blend_multiply_template := { + resize_image("/magic-modules.mse-include/multiply/{input}.png", width:width, height:height) +} #### pad a string from the front or back or both idk i'm not your dad fill_len := { output := to_string(input) @@ -329,6 +389,45 @@ has_required_stylesheets := ) missing == 0 } + +##### Card Link Utility +### is this the front/back of a DFC? +is_linked_dfc := +{ + get_front_face(card) != nil or get_back_face(card) != nil +} +### is this the catalyst/base/result of a Meld? +is_linked_meld := +{ + length(get_cards_from_link(card, linked_relation:"Meld Result")) > 0 + or length(get_cards_from_link(card, linked_relation:"Meld Base")) > 0 +} +### does this take the card number from its front face instead of a new one? +is_linked_back_face := +{ + if get_front_face(card) != nil then true ## basic back face + else ( + meld_base := get_cards_from_link(card, linked_relation:"Meld Base").0 or else nil + if meld_base != nil and length(get_cards_from_link(meld_base, linked_relation:"Meld Base")) == 0 + then true ## safe meld + else false ## normal card or base/base meld, each face numbered individually + ) +} +### get the front face or meld base for this card for card numbering. fallback returns itself +get_linked_numbering_card := +{ + front := get_front_face(card) + linked := if front != nil then front + else get_cards_from_link(card, linked_relation:"Meld Base").0 or else card + linked +} +### given a number, get the name of the card at that link +get_linked_card_name := +{ + name := get_card_from_uid(card["linked_card_{input}"] or else "").name or else "" + if name == "" then "LINK{input}NAME" else name +} + ############################################################## For the user #### Remove card codes cc_filter := replace@(match:"^[CURMSL][WUBRGMZACL][0-9]+ ?[-—]? ?", replace:"") @@ -960,6 +1059,8 @@ sort_name := set_filter := { if is_unsorted() then { is_unsorted() } + else if is_linked_back_face() then + { is_linked_back_face() } else if card.shape == "token" or card.shape == "emblem" then { card.shape == "token" or card.shape == "emblem" } else if card.shape == "rulestip" then @@ -971,9 +1072,9 @@ set_filter := { else if is_masterpiece() and not token_shape(card.shape) then { is_masterpiece() and not token_shape(card.shape) } else if set.sort_special_rarity != "separate numbering" then - { not is_unsorted() and not token_shape(card.shape) and not is_masterpiece() } + { not is_unsorted() and not is_linked_back_face() and not token_shape(card.shape) and not is_masterpiece() } else if card.rarity == "special" then - { not is_unsorted() and not token_shape(card.shape) and card.rarity == "special" and not is_masterpiece() } + { not is_unsorted() and not is_linked_back_face() and not token_shape(card.shape) and card.rarity == "special" and not is_masterpiece() } else { not is_unsorted() and not token_shape(card.shape) and card.rarity != "special" and not is_masterpiece() } } @@ -983,6 +1084,8 @@ set_filter := { set_filter_under_partition := { if is_unsorted() then { is_unsorted() } + else if is_linked_back_face() then + { is_linked_back_face() } else if card.shape == "token" or card.shape == "emblem" then { card.shape == "token" or card.shape == "emblem" and not over_partition() } else if card.shape == "rulestip" then @@ -994,9 +1097,9 @@ set_filter_under_partition := { else if is_masterpiece() and not token_shape(card.shape) then { is_masterpiece() and not token_shape(card.shape) and not over_partition() } else if set.sort_special_rarity != "separate numbering" then - { not is_unsorted() and not token_shape(card.shape) and not over_partition() and not is_masterpiece() } + { not is_unsorted() and not is_linked_back_face() and not token_shape(card.shape) and not over_partition() and not is_masterpiece() } else if card.rarity == "special" then - { not is_unsorted() and not token_shape(card.shape) and card.rarity == "special" and not over_partition() and not is_masterpiece() } + { not is_unsorted() and not is_linked_back_face() and not token_shape(card.shape) and card.rarity == "special" and not over_partition() and not is_masterpiece() } else { not is_unsorted() and not token_shape(card.shape) and card.rarity != "special" and not over_partition() and not is_masterpiece() } } @@ -1006,12 +1109,16 @@ card_number_offset := {pull_comma_array(set.card_number_offsets, cell:0, end:fal set_number_offset := {pull_comma_array(set.card_number_offsets, cell:1, end:false, default:0)} #### the raw numbers, these aren't typically used directly card_number := { + base := if is_linked_back_face() then card_index(card:get_linked_numbering_card()) else card_index() + base + 1 + to_number(card_number_offset()) +} +card_index := { position ( of: card in: set order_by: { partition_index() + rarity_sort() + sort_index() + sort_name(card.name) + sort_name(export_name())} filter: set_filter() - ) + 1 + to_number(card_number_offset()) + ) } card_count := { number_of_items(in: set, filter: set_filter_under_partition()) + to_number(set_number_offset()) @@ -1828,19 +1935,35 @@ text_filter := in_context: "(^|[[:space:]]|\\(|,|\\.|:|“|\"|'|‘|-|—|/|​)", #### TODO: Allow any punctuation before replace: "" ) + - #### step 3b : expand shortcut word LEGENDNAME + #### step 3c : expand shortcut word LEGENDNAME replace@( match: "LEGENDNAME>?", in_context: "(^|[[:space:]]|\\(|,|\\.|:|“|\"|'|‘|/|​)", #### TODO: Allow any punctuation before replace: "" ) + - #### step 3b : expand shortcut word AUTOREM + #### step 3d : expand shortcut word AUTOREM replace@( match: "AUTOREM>?", in_context: "(^|[[:space:]]|\\(|,|\\.|:|“|\"|'|‘|/|​)", #### TODO: Allow any punctuation before replace: "" ) + - #### step 3bb : debug atom fields + #### step 3d : expand shortcut word LINK#NAME + replace@( + match: "LINK([1-4])NAME>?", + in_context: "(^|[[:space:]]|\\(|,|\\.|:|“|\"|'|‘|/|​)", #### TODO: Allow any punctuation before + replace: "" + ) + + replace@( + match: "LINKNAME>?", + in_context: "(^|[[:space:]]|\\(|,|\\.|:|“|\"|'|‘|/|​)", #### TODO: Allow any punctuation before + replace: "" + ) + + replace@( + match: "MELDNAME>?", + in_context: "(^|[[:space:]]|\\(|,|\\.|:|“|\"|'|‘|/|​)", #### TODO: Allow any punctuation before + replace: "" + ) + + #### step 3f : debug atom fields replace@( match: "([^<]+)\\1", replace: "" ) + - #### step 3c : fill in atom fields + #### step 3g : fill in atom fields tag_contents@( tag: "", contents: { "" + (if card_name=="" then "CARDNAME" else strip_card_codes(card_name, atom:true)) + "" } @@ -1887,6 +2010,12 @@ text_filter := tag: "", contents: { "" + (if inserts_values()[x-1] == "" then "INS"+x else inserts_values()[x-1]) + "" } ) + + for x from 1 to 4 do + out := tag_contents(out, + tag: "", + contents: { "" + get_linked_card_name(x) + "" } + ) out } + #### step 4 : explict non mana symbols @@ -2965,6 +3094,7 @@ watermark_scripts := "other magic symbols color pie": { watermark_blend(h:500, l:500, wm_directory + "other/colorpie.png", face:face) } "other magic symbols judge academy": { watermark_blend(h:500, l:500, wm_directory + "promo/judge_academy.png", face:face) } "other magic symbols foretell": { watermark_blend(h:460, l:500, wm_directory + "other/foretell.png", face:face) } + "other magic symbols echoverse": { watermark_blend(h:500, l:500, wm_directory + "other/echoverse.png", face:face) } "other magic symbols jace consortium": { watermark_blend(h:500, l:500, wm_directory + "other/jace-consortium.png", face:face) } "other magic symbols seekers of carmot": { watermark_blend(h:500, l:500, wm_directory + "other/seekersofcarmot.png", face:face) } "other magic symbols desparked": { watermark_blend(h:500, l:500, wm_directory + "other/desparked.png", face:face) } @@ -3543,10 +3673,45 @@ typesymbol_type := { typesymbol_for(type) } ############ Default behavior (input is the value of the field) transform_symbol_default := { - if get_back_face(card) != nil then "front triangle" - else if get_front_face(card) != nil then "back triangle" - else "none" + front_face := get_front_face(card) + if front_face != nil + then transform_symbol_counterpart(front_face, fallback:"back triangle") + else if get_back_face(card) != nil + then "front triangle" + else "none" } +transform_symbol_counterpart := +{ + front := [ + "front triangle", + "day", + "moon", + "closed fan", + "sparker", + "modal front", + "comedy", + "custom symbol one", + "custom symbol three" + ] + back := [ + "back triangle", + "night", + "eldrazi", + "open fan", + "aetherprint", + "modal back", + "tragedy", + "custom symbol two", + "custom symbol four" + ] + shape := transform_symbol_shape(input.transformation) + front_pos := position(of:shape, in:front) + back_pos := position(of:shape, in:back) + if front_pos >= 0 then back[front_pos] + else if back_pos >= 0 then front[back_pos] + else if fallback != "" then fallback + else shape +}@(fallback:"") transform_symbol_default_position := { if get_front_face(card) != nil @@ -3723,6 +3888,14 @@ transform_symbol_is_right := and transform_symbol_default_position(input) == "right" ) } +transform_symbol_active_left := +{ + input != "" and not transform_symbol_is_empty(input) and not transform_symbol_is_right(input) +} +transform_symbol_active_right := +{ + input != "" and not transform_symbol_is_empty(input) and transform_symbol_is_right(input) +} transform_symbol_rim_has_bevel := { chosen(input, choice: "rim bevel") diff --git a/data/magic.mse-game/watermarks/echoverse.png b/data/magic.mse-game/watermarks/echoverse.png new file mode 100644 index 0000000000..441ed8842e Binary files /dev/null and b/data/magic.mse-game/watermarks/echoverse.png differ diff --git a/data/magic.mse-game/watermarks/echoverse_dark.png b/data/magic.mse-game/watermarks/echoverse_dark.png new file mode 100644 index 0000000000..b3fa4ba668 Binary files /dev/null and b/data/magic.mse-game/watermarks/echoverse_dark.png differ diff --git a/data/magic.mse-game/watermarks/menu_choice_images b/data/magic.mse-game/watermarks/menu_choice_images index e67b4af679..e6363d8ba8 100644 --- a/data/magic.mse-game/watermarks/menu_choice_images +++ b/data/magic.mse-game/watermarks/menu_choice_images @@ -170,7 +170,8 @@ choice images: other magic symbols jace consortium: /magic.mse-game/watermarks/jace-consortium.png other magic symbols seekers of carmot: /magic.mse-game/watermarks/seekersofcarmot.png other magic symbols conspiracy stamp: /magic.mse-game/watermarks/conspiracy_stamp.png - + other magic symbols echoverse: /magic.mse-game/watermarks/echoverse.png + other magic symbols innistrad provinces stensia: /magic.mse-game/watermarks/stensia.png other magic symbols innistrad provinces kessig: /magic.mse-game/watermarks/kessig.png other magic symbols innistrad provinces gavony: /magic.mse-game/watermarks/gavony.png diff --git a/data/magic.mse-game/watermarks/menu_choice_images_dark b/data/magic.mse-game/watermarks/menu_choice_images_dark index 4c8a20212d..880f742dff 100644 --- a/data/magic.mse-game/watermarks/menu_choice_images_dark +++ b/data/magic.mse-game/watermarks/menu_choice_images_dark @@ -170,7 +170,8 @@ choice images: other magic symbols jace consortium: /magic.mse-game/watermarks/jace-consortium_dark.png other magic symbols seekers of carmot: /magic.mse-game/watermarks/seekersofcarmot_dark.png other magic symbols conspiracy stamp: /magic.mse-game/watermarks/conspiracy_stamp.png - + other magic symbols echoverse: /magic.mse-game/watermarks/echoverse_dark.png + other magic symbols innistrad provinces stensia: /magic.mse-game/watermarks/stensia_dark.png other magic symbols innistrad provinces kessig: /magic.mse-game/watermarks/kessig_dark.png other magic symbols innistrad provinces gavony: /magic.mse-game/watermarks/gavony_dark.png