Mainframe Battles (#111)

This commit is contained in:
cajun
2025-02-01 23:19:14 -06:00
committed by GitHub
parent 92a8b67075
commit 8b9475dc65
91 changed files with 721 additions and 186 deletions

View File

@@ -1,176 +1,20 @@
MSE Template Packs 3.0.0 Showcase Catchup (PRERELEASE) MSE Template Packs 3.1.0 Mainframe Battles (PRERELEASE)
HOUSEKEEPING __Mainframe Battles (Single-face)__
Please make backup copies of your sets before updating. This is one of the biggest updates the template packs has ever seen, and there will almost certainly be bizarre bugs we missed. Better safe than sorry. Added the Mainframe Battles template, for single face battles.
Custom Watermarks will need to be moved to magic-mainframe-extras from magic-watermarks! Your cards will use the fallback image until you move them. In addition to the standard layout from March of the Machine, I have added a "Boxed" style, which has a frame border and boxed in art like a normal card, a "Spillover" style which is that but has the art continue over the frame to the border, and a "Borderless" style which covers the entire card save the copyright area.
Some templates have changed more than MSE can gracefully handle, so I have created https://mse-editor.neocities.org/, where you can upload MSE files to in order to patch their data. The most important templates for this are **M15 Mainframe w/Lesson**, **Mainframe DFC**, and the **Hi-Res Showcase Frames**. It will also fix a lot of harmless warnings that will otherwise flood your console the first time you open your sets. The Defense symbol is not baked into the frame, and can be changed to a loyalty symbol or a PT box from the Style tab
IF YOU AREN'T ABLE TO OPEN A SET run it through this website first. If it still won't open, run it with "Generate list of used templates", and post the list and we'll help you figure out what's missing. You can add a Lesson/Transform node by clicking to the left of the name. You can have this switch to the opposite side with an option in the Style tab.
• There is also a Style option to add a Transform arrow and ghost PT, as a temporary measure until we get Battles into Mainframe DFC.
• The template supports the Universes Beyond texture and stamps
• The template supports Nyx, Snow, Vehicle, and Custom border on the Boxed and Spillover styles.
MSE 2.5 __More New Templates__
Genevensis and Hagan have been doing excellent work at getting MSE compiled and edited lately, and so this update also has us upgrading from MSE 2.1.2 all the way to MSE 2.5.6! What does that mean for you? Thanks to GenevensiS for their continued work on keeping up with the Showcases!
UI Updates: • Add the Aetherdrift First Place, First Place Planeswalker, and First Place Full Art land frames. Without access to the Space Cadet font, we don't plan to make the Rude Riders variant.
When selecting Games or Templates, there is now a search bar that allows you to filter templates. Added the MKM Magnified Showcase frame
• Added the ability to underline text via Ctrl+U or the [u]U[/u] buttom on the top panel. • Added the ONE and LCI Full Art land frames
The template canvas now takes DPI into account, so high res templates will no longer be massively larger than other templates. They will still export at full size. Added the Mechanic Reminder frame, for things like Start your engines!
• Symbol files will no longer complain about dependencies.
Image Updates:
• The Image Importer now has buttons to vertically and/or horizontally center input art.
• In Edit -> Preferences -> Internal, you can now set a scale at which new images are imported into MSE. This lets you save images at double size, so they don't turn into pixely messes when you zoom out. In this same tab there is also an option to store images with their file extension, to make external editing of MSE files easier.
• The Export and View zooms are now seperate options.
• MSE can now find ".jpeg" and ".tiff" images.
Template Development Updates:
• Extra card data is now available for template development under `extra_card.field_name` and `extra_card_style.field_name.style_name`!
• The built-in functions `width_of(image)` and `height_of(image)` have been added.
• The built-in function `exists_in_package("/package-name.package-extension/file-name.file-extension")` has been added to check if a file exists.
• Stylesheets can now define `card regions`, with properties `name:, x:, y:, width:, height:`. These can be accessed in the array stylesheet.card_regions to help the script decide how to split images with multiple regions.
• The "info" field type is now supported in the style tab.
• Setting an "image" field as "editable: false" will remove the "double click to load" text as well as the checkerboard pattern. To link an image with it, use the "default" property.
• The built-in function `to_date` now accepts "now" as a parameter.
• Added combine modes "greater than N" and "smaller than N", where N is multiples of 5 between 0 and 255. These apply to pixels which have all their RGB values greater/smaller than N. The main use case for this is applying textures to text; An example texture `set_combine("texture.png", combine:"greater than 160")` layered over text will be masked to only appear over white and light gray pixels. This works best when the text is on a high contrast background, otherwise the texture may be applied to the background.
• Right margin now works, with the same 10x divisor than left margin has.
• The `linear_blend` and `masked_blend` functions now also blend alpha channels
Export templates
• Fixed a bug where Export Templates with many options didn't have a scrollbar.
• Multi-selecting cards in the Export list now lets you check/uncheck all selected cards.
• Export templates can now write to subdirectories.
• The built-in function `get_card_styling(card)` has been added, which returns the card.styling object which was not properly accessible in export templates.
• The built-in function `to_card_image(card[, zoom:100, angle:0])` has been added, so Export templates can now edit card images, to do things like split DFC images.
SHOWCASE FRAMES __Template Code Updates__
The main focus of this update was catching up on all the Showcase frames that Genevensis had been working on. As you'll see, it grew past that a bit, but the Full and M15 Packs now contain... • color_background() now accepts three new parameters, artifact_blend, hybrid_blend, and multicolor_blend, which default to "mask", which behaves the same as before. Setting these to "black" will have them blend as only their respective base frame; artifact, colorless, or multicolor; without the color gradient. Setting these as "white" does the reverse, using the gradient alone and not the base cards.
• (New) Assassin's Creed Memory Corridor
• (New) Bloomburrow Borderless Anime
• (New) Bloomburrow Woodland
• (New) Duskmourn Paranormal
• (New) Kamigawa Neon
• (New) Kamigawa Ninja
• (New) Kamigawa Samurai
• (New) Innistad Fang (Crimson Vow)
• (New) Theros Constellation
• (New) Compleated Planeswalkers
• (New) Cajun's Youtube
• (New) Kasu_mtg's Elder Scrolls
• (New) Kasu_mtg's Eldrazi
Updated: These frames were previously released outside the template pack, but have gotten some updates, including combining the HD frames and 375x523 frames thanks to MSE 2.5. If you used the HD frames, use the neocities link to convert your set files so they will use the proper template.
• Capenna Art Deco & Art Deco Walker
• Capenna Golden Age
• Capenna Skyscraper
• Doctor Who TARDIS
• Dominaria Stained Glass
• Eldraine Enchanting Tales
• Fallout PipBoy
• Ikoria Crystal
• Innistrad Double Feature & Double Feature Walker
• Innistrad Equinox (Midnight Vow)
• Ixalan Treasures
• Ixalan Legends
• Ixalan Caverns
• Lord of the Rings Ring
• Lord of the Rings Scroll & Scroll Saga
• Lord of the Rings Rules Reminder
• Ravnica City Mural
• Ravnica Dossier
• Tarkir Dragon Wing
• Thunder Junction Breaking News
• Thunder Junction Vault
• Thunder Junction Wanted Poster
• Unfinity Showcase of Tomorrow
• Unfinity Attractions
• Secret Lair Baseball Cards
• Punch-out Counter Sheet
• Kamigawa Full Art Basics
• Amonkhet Invocations now has a setting for "revamped mode" to use the modified layout used in March of the Machine.
• Fallout PipBoy can now select different sections on the HUD.
• Thunder Junction Breaking News now supports the Cruel Ultimatum frame for all colors.
MAGIC MODULES
Genevensis has figured out a powerful tool for template building: magic-modules.mse-include. magic-modules will allow frames to access complicated field definitions, which can be updated across all frames at once. Some exciting things magic-modules has allowed us to add already:
• M15 frames can now use Standard, Acorn, Universes Beyond, Heart, Alchemy, and even Custom stamps! Set fields have been added to define a set's default stamp shape, and the stamping logic (such as Universes Beyond having all cards stamped, but using a non-holo stamp for non rare cards). This also lets you disable stamps, so the "use holofoil stamps" option has been removed from nearly all templates. Some templates will also have a copy of these options in their Styling options, so you can have a normally stamped set that uses Universes Beyond stamping only on the PipBoy Frame, for example.
• M15 frames can use the expanded credit suite, which allows up to 4 spots around the art credit to add additional symbols for Mechanics, Flavor Text, Frame, and additional Artists.
• M15 frames now use the updated OCR fields, which have UB Copyright, The List icon, and the new card numbering code (see Parititons below).
• All frames can also add the Alchemy name symbols, which also appear in the CARDNAME atom!
• All frames can now use Genevensis's Corners tech for square, diagonal, aliased, or pixel curve corners.
• Frames can now easily add styling options to change their casting cost mana symbols, apply custom fonts, or use the rarity recolor and offset options.
• Frames can use the loyalty module to painlessly make Planeswalker versions of frames.
• Frames can use the symbols module to include transform symbols, which now lets you to select Modal DFC icons.
• The watermarks module now simplifies watermarks to one script instead of three include files. REMINDER: If you have custom watermarks, you will now need to move these to the magic-mainframe-extras folder rather than magic-watermarks!
• You can run your set on the neocities tool to clean up warnings due to code changes: Most of them are completely harmless and will stop showing up once you save. The main data that could be lost is Lesson/Transform symbols on M15 Mainframe and Mainframe DFC.
PARTITIONS
Card number partitioning is a script I've been kicking around for months, and we've finally got all the knots sorted out!
• Cards can now be put into partitions 0-9 and A-Z, which will change how the automatic sorter sorts them. This allows MSE to handle things like overcounted cards, and face commanders being listed before everything else.
• Cards are in Partition A by default. Paritions 0-9 sort before these cards, Partitions B-Z sort after them. Cards within the same partition sort under the normal logic (color then alphabetical).
• Partitions N-Z by default are "over-partition", and their cards won't be counted in the set's total. There is a set option for displaying these cards in the "301/300" or "301" format. There is also a set option for changing the "last main partition" that does not have this effect, default "M".
• The selector for this is put over the automated card number. You can click there to select a new parition for a card.
• Additionally, there is a set option for defining the card number style, "0001", "0001/0099", "001", "001/099", "1", and "1/99"
ADVENTURE OVERHAUL
• Adventures can now customize both halves of the textbox, allowing for two pages.
• Added support for flat pages and pages with only a nameline and no typeline.
• Added "page decorations," images that layer over pages that can be added to magic-mainframe-extras.
ROOM FRAME
• Mainframe Splits now supports the Room frame.
• By default, there will be one image box that stretches across the entire card.
• You can change the Room Images option to "Two images", which will have a gradient between the two images, and "Three images", which adds a thin third image in the overlap area.
• The Borderless Room frame is also supported, and can also be applied to normal split and fuse cards.
• Added the ability to use just the Fuse arrows without the fuse bar (the reverse already existed.)
• Mainframe Splits now supports the Nyx and Universes Beyond frames, which default to being automated on the Enchantment type and the triangle stamp respectively.
• Mainframe Splits now supports Clear frame for Splits, Fuses, and Rooms.
MAINFRAME SUITE UPDATES
• Mainframe templates now have "Custom Border", which allows you to use a trim frame akin to Vehicle or Nyx with images from magic-mainframe-extras. This can be either a single image, which will use the form "image.png", or use color blending, which will take the form "-color-image.png" and use images wimage.png, uimage.png, etc.
• Mainframe templates now automatically apply the Nyx frame to enchantments. This is controlled by the new Set option "auto nyx".
• Mainframe templates can now provide an alternate image source to use for Nyx via the "alternate nyx" Set option. This can be from magic-mainframe-extras (with "folder/image.png" using "folder/wimage.png", "folder/uimage.png" etc), or use "star", a built in alternate from TVP's Altered Plus. More built-in will likely be added in future.
• M15 Mainframe, Mainframe Splits, M15 Adventures, and M15 Sagas now support Universes Beyond, which default to automated on cards with triangle stamps.
• M15 Sagas and Mainframe DFC now support Cases.
• M15 Sagas and Mainframe DFC now allow for customization of Class Level Bars, adding bars without arrows, the Case line, and the ability to provide a custom image from magic-mainframe-extras.
• Mainframe DFC now supports planeswalkers with 5 and 6 abilities.
• Mainframe DFC now has an option to remove the backface rarity.
• Mainframe DFC now has "front chop" and "back chop" options that work like the other frame's chops. Level chops remain as a fallback (so you don't need to update anything), but are now moved to the Leveler/Saga editing section.
• Mainframe DFC's Saga and Clear frames now have proper circles around their transform icon.
• "Snap chapter to box" options now update automatically, without needing a closing comma.
• M15 Mainframe's Lesson frame is now accessed by clicking the big square to the left of the name, with the empty tombstone/alchemy box moving further left. Note you will need to re-assign Lesson symbols, either with the neocities patcher or doing it by hand.
• M15 Mainframe now has Miracle support for Legendary, FNM, Inverted, Conspiracy, and Universes Beyond frames.
• M15 Mainframe now has an option to prevent trim frames like Snow and Nyx from covering the Devoid texture.
• Mainframe Planeswalkers now has a setting to change its popout art to "popunder" art, which layers underneath the text, casting cost, and rarity symbol, but over the other frame elements.
• Mainframe Planes has been updated to the version of the frame from MOM. The old frame is retained behind a style option. The code has been updated so the two textboxes are connected, and it now automates the divider.
OTHER UPDATES
• The Set tab has been reorganized into something hopefully easier to navigate.
• "Alias as CARDNAME" has been replaced with "CARDNAME replacement", which will let you choose between CARDNAME taking the card's name, the card's alias, or the card's types (as seen in Foundations cards).
• Keywords and types have been updated through Duskmourn.
• Added the keyword utility handle_action_rt(to:"name", "Action"). This can be used to add "To {name}," before the reminder text when it isn't right next to the keyword, such as handle_action_rt(to:"forage", "Exile"). Capitalization matters here.
• Added the keyword utility handle_merged_rt("Normal", moved:"Alternate"). This can be used to add clarifying text when reminder text is merged, like in [card]Cache Grab[/card]. Unlike the previous, this only changes during reminder text merges, not just any distance from the keyword.
• Bloomburrow's Pawprint symbol has been added as [J].
• Added Capenna, DND, Desparked, Judge Academy, MLP, Shooting Star, Transformers, and hi-res mana symbol watermarks.
• Custom Watermarks can now have a maximum size of 1024x1024, and no longer need to define their height and width.
• The "blend with colors" watermark option has been split into one that applies to custom watermarks and one that applies to default watermarks.
• Transform icons now include and default to the Up and Down triangles. Modal DFC icons are now selectable, and on DFCs will attempt to make the card a modal DFC when you do so.
• Added an option to Unstable Basics to remove the colored name banner.
• Added eighth level support to M15 Dungeons.
• Added omni and polyamory flags to Pride Pinlines.
• The name checker exporter has been updated, and now does more filtering for Near Name Matches (for example, Dreameater will now be caught due to Dream Eater).
BUG FIXES
• Fixed a bug where the 8th Edition Tokens name spacing would go beserk.
• Fixed a bug that was eating spaces in the typeline.
• Fixed some cases where +1/+1 was getting converted to loyalty symbols.
• Fixed many template warnings across the template packs.
• Fixed a bug with custom italic font using the wrong font.
• Fixed a bug with tokens using the wrong custom fonts.
• Fixed a bug where some Unicode, such as Kanji and Cryllic characters, were unable to be typed.
• Fixed a bug where the Add Multiple Cards scripts didn't load until you switched to another tab first.
• Fixed a bug where long typelines would get squished during printing.
• Fixed several bugs that caused typing in the name and type to lag on larger set files.
TEMPLATE CLEANUP
• magic-mainframe-extras examples have been cleaned up and moved into one folder. The repo now has a .gitignore for this so it's easier to run MSE off the repo.
• Take the Crown Draft Matters frame now includes the Conspiracy frame.
• M15 Leveler now has TriLeveler support.
• The following frames have been removed from the Full Pack. There is an Outdated Templates pack available as a backup, but these templates are now redundant and are no longer being supported.
• Redudant with M15 Mainframe: M15 Clear, M15 Custom, M15 Metropolis, Mined & Mined Planeshifted, M15 Miracle, M15 Nyx, M15 Planeshifted & Planeshifted Leveler, M15 Vehicles, Vehicles
• Redundant with CN2 Styles and M15 Mainframe: TTK Conspiracy
• Again, there is a tool at https://mse-editor.neocities.org/ to help convert these frames to their current ones.

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -0,0 +1,701 @@
mse version: 2.0.0
game: magic
short name: Mainframe Battles
full name: Battles
icon: card-sample.png
installer group: magic/m15 style
position hint: 007
version: 2025-01-21
depends on:
package: magic.mse-game
version: 2014-06-25
depends on:
package: magic-default-image.mse-include
version: 2007-09-23
depends on:
package: magic-modules.mse-include
version: 2024-10-01
depends on:
package: magic-mana-small.mse-symbol-font
version: 2007-09-23
depends on:
package: magic-mainframe-extras.mse-include
version: 2018-01-01
card width: 523
card height: 375
card dpi: 150
############################################################## Extra scripts
init script:
# Should hybrids have a grey name?
mask_hybrid_with_land := { styling.grey_hybrid_typeline }
# Load scripts for image box
include file: /magic-default-image.mse-include/scripts
template_prefix := [
card: "/magic-modules.mse-include/cards/375 m15 battle/"
namebar: "/magic-modules.mse-include/cards/375 m15 battle/namebar/"
notch: "/magic-modules.mse-include/cards/375 m15 battle/notch/"
texture: "/magic-modules.mse-include/cards/375 m15 battle/texture/"
snow: "/magic-modules.mse-include/trims/snow/"
nyx: "/magic-modules.mse-include/trims/nyx/"
pt:"/magic-modules.mse-include/pts/375 m15/"
stamp:"stamps/round/"
ubstamp:"stamps/ub/"
star: "/magic-modules.mse-include/trims/star/",
]
template_suffix := [
card: "card.png",
namebar: "card.png",
notch: "card.png",
texture: "card.png",
snow: "snow.png"
nyx: "nyx.png"
pt: "pt.png"
stamp: "stamp.png"
ubstamp: "stamp.png",
snowbox: "card.jpg"
star: "star.png",
]
template := {
if type_name(harder_script[type] or else nil) != type_name(nil)
then harder_script[type](input, land:false)
else template_prefix[type]
+ (if is_beyond() and uses_ub(type) then "beyond/" else "")
+ input
+ template_suffix[type]
}
land_template := {
if type_name(harder_script[type] or else nil) != type_name(nil)
then harder_script[type](input, land:true)
else template_prefix[type]
+ (if is_beyond() and uses_ub(type) then "beyond/" else "")
+ input
+ template_suffix[type]
}
uses_ub := { ub_array[input] or else false }
ub_array := [
"card": true,
"notch": true,
"texture": true,
"namebar": true
]
landless := { true }
# Use the normal tap symbol
mana_t := {
if styling.tap_symbol == "old" then "old"
else if styling.tap_symbol == "diagonal T" then "older"
else "new"
}
# Use guild mana symbols?
guild_mana := { styling.use_guild_mana_symbols }
is_promo := { styling.promo }
########## Frame styling
card_shape := { "battle" }
is_unsorted := {styling.remove_from_autocount}
is_vehicle := { (auto_vehicle() or contains(styling.frames, match:"vehicle")) }
is_nyx := { (auto_nyx() or contains(styling.frames, match:"nyx")) }
is_snow := { (auto_snow() or contains(styling.frames, match:"snow")) }
is_beyond := { (auto_ub() or contains(styling.frames, match:"universes beyond")) }
auto_vehicle := { contains(styling.auto_frames, match:"vehicle") and lang_setting("is_vehicle")(card.sub_type) }
auto_nyx := { contains(styling.auto_frames, match:"nyx") and lang_setting("is_enchantment")(card.super_type) }
auto_snow := { contains(styling.auto_frames, match:"snow") and lang_setting("is_snow")(card.super_type) }
auto_ub := { contains(styling.auto_frames, match:"universes beyond") and (card.card_stamp == "universes beyond" or card.card_stamp == "flatstamped universes beyond") }
is_custom_border := {
if chosen(styling.frames, choice:"custom border")
then has_png(styling.custom_border_source)
else auto_custom_border()
}
custom_border_blend := { color_background(type:"custom_border", base_hybrid:card_hybrid) }
namebar_background := { color_background(type:"namebar", base_hybrid:card_hybrid, folder:template_prefix["namebar"], blend_type:"card", artifact_blend:"white") }
notch_background := { color_background(type:"notch", base_hybrid:card_hybrid, folder:template_prefix["namebar"], blend_type:"card", artifact_blend:"white", multicolor_blend:"white", hybrid_blend:"white") }
texture_background := { color_background(type:"texture", base_hybrid:card_hybrid, folder:template_prefix["texture"], blend_type:"card") }
stamp_img := {
sh := stamp_shape()
"/magic-modules.mse-include/stamps/backs/" + (if sh == "triangle" then "triangle_stamp.png" else "stamp.png")
}
watermark_include := "/magic-modules.mse-include/watermarks"
is_borderless := { styling.image_style == "borderless" }
is_boxed := { styling.image_style == "boxed" }
is_spillover := { styling.image_style == "spillover" }
has_left_symbol := {
styling.transform_symbol_side == "left" and card.transformation != "none"
}
has_right_symbol := {
styling.transform_symbol_side == "right" and card.transformation != "none"
}
transform_symbol_offset_left_1 := {
if styling.transform_symbol_side == "right" then 401
else 0
}
swap_fonts_name_default := [
name: {"Beleren Bold"},
size: {15},
color: {"black"},
vertical: {0},
italic: {""}
]
swap_fonts_pt_default := [
name: {"Beleren Bold"},
size: {15},
color: {if styling.defense_style == "pt" then "black" else "white"},
vertical: {0},
italic: {""}
]
############################################################## Set info fields
set info style:
symbol:
variation:
name: invertedcommon
border radius: 0.10
fill type: solid
fill color: rgb(255,255,255)
border color: rgb(0,0,0)
############################################################## Extra style
styling field:
type: choice
name: image style
choice: fullart
choice: borderless
choice: boxed
choice: spillover
description: The type of image box to use
styling field:
type: choice
name: defense style
choice: defense
choice: loyalty
choice: pt
description: Use an alternate symbol for the defense?
styling field:
type: choice
name: transform symbol side
choice: left
choice: right
description: Should the Lesson/Transform symbol be on the left or right?
styling field:
type: boolean
name: show transform notch
initial: no
description: Show the transform notch above defense?
styling field:
type: multiple choice
name: frames
choice: nyx
choice: snow
choice: vehicle
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: multiple choice
name: auto frames
description: Automatically applies frames for multi-typed enchantments, snow, or Vehicles.
choice: nyx
choice: snow
choice: vehicle
choice: universes beyond
initial: nyx, vehicle, universes beyond
styling field:
type: boolean
name: maintain black copyright area
initial: no
styling field:
type: boolean
name: use ancestral mana symbols
initial: no
include file: /magic-modules.mse-include/texts/styling_fields
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
styling field:
type: text
name: alt rarity color
description: Use a custom color for the rarity symbol. Formatted as "R1,G1,B1:R2,G2,B2:...:X:" 1 and 2 are fill color, 3 and 4 border color, X is border thickness. For example, rare is 214,196,94:95,84,40:0,0,0:0,0,0:0.07
include file: /magic-modules.mse-include/fonts/styling_fields
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: boolean
name: grey hybrid typeline
description: Use a grey background for the type line on hybrid cards. This is done on real cards.
styling field:
type: boolean
name: use guild mana symbols
description: Use the Ravnica guild symbols instead of the official half/half circles for hybrid mana.
initial: no
styling field:
type: package choice
name: text box mana symbols
match: magic-mana-*.mse-symbol-font
initial: magic-mana-small.mse-symbol-font
styling field:
type: choice
name: tap symbol
description: What tap and untap symbols should be used on cards?
initial: modern
choice: modern
choice: old
choice: diagonal T
styling field:
type: boolean
name: promo
description: Is this card a promo card, with the "P" rarity?
initial: no
styling field:
type: boolean
name: inverted common symbol
description: Should the common rarity symbol be inverted, like in Coldsnap?
initial: no
styling field:
type: package choice
name: overlay
description: Should there be an overlay applied, such as foil?
match: magic-overlay-*.mse-include
required: false
styling style:
use guild mana symbols:
choice images:
yes: /magic-mana-small.mse-symbol-font/mana_guild_rg.png
no: /magic-mana-small.mse-symbol-font/mana_rg.png
tap symbol:
render style: both
choice images:
modern: /magic-mana-small.mse-symbol-font/mana_t.png
old: /magic-mana-small.mse-symbol-font/mana_t_old.png
diagonal T: /magic-mana-small.mse-symbol-font/mana_t_older.png
center text:
render style: both
choice images:
always: /magic.mse-game/icons/center-all-text.png
short text only: /magic.mse-game/icons/center-short-text.png
never: /magic.mse-game/icons/center-no-text.png
inverted common symbol:
choice images:
no: { symbol_variation(symbol: set.symbol, variation: "common") }
yes: { symbol_variation(symbol: set.symbol, variation: "invertedcommon") }
frames:
render style: checklist
direction: vertical
auto frames:
render style: checklist
direction: vertical
############################################################## Card fields
include file: /magic-modules.mse-include/corners/card_fields
include file: /magic-modules.mse-include/information/card_fields
include file: /magic-modules.mse-include/separators/card_fields
include file: /magic-modules.mse-include/stamps/card_fields
include file: /magic-modules.mse-include/watermarks/card_fields
include file: /magic-modules.mse-include/symbols/card_fields
card style:
############################# Background stuff
border color:
left: 0
top : 0
width: 523
height: 375
left width: 17
right width: 17
top width: 17
bottom width: 18
z index: 170
mask: { if is_borderless() then "borderless_mask.png" else "border_mask.png" }
card color:
left: 0
top: 0
width: 523
height: 375
z index: 200
render style: image
popup style: in place
image: { module_card() }
mask: frame_mask.png
############################# Name line
name:
left: { if has_left_symbol() then 97 else 67 }
top: { 21 + name_font_vertical()}
width: { 410 - max(15,card_style.casting_cost.content_width) - (if card.transformation != "none" then 35 else 0) }
height: 22
alignment: bottom shrink-overflow
padding bottom: -2
padding top: 2
z index: 900
font:
name: { name_font() }
italic name: { name_font_italic() }
size: { name_font_size() }
color: { name_font_color() }
casting cost:
right: { if has_right_symbol() then 449 else 484 }
top: 20
width: { max(20, card_style.casting_cost.content_width) + 10 }
height: 23
alignment: middle right
font:
name: MPlantin
size: { name_font_size() }
symbol font:
name: magic-mana-large
size: { name_font_size() }
alignment: middle right
always symbol: true
z index: 920
padding top: 0
############################# Image
image:
left: { if is_boxed() then 63 else 41 }
top: { if is_borderless() then 0 else if is_boxed() then 51 else if is_spillover() then 30 else 15 }
width: { if is_borderless() then 482 else if is_boxed() then 422 else 467 }
height: { if is_borderless() then 375 else if is_boxed() then 162 else if is_spillover() then 210 else 345 }
z index: 100
default: { default_image(card.card_color)}
mask: { if is_spillover() then "image_mask.png" else "" }
mainframe image:
left: {if comma_count(styling.popout_image_style) == ",,,," then split_text(match:",", styling.popout_image_style).0 else "0"}
top: {if comma_count(styling.popout_image_style) == ",,,," then split_text(match:",", styling.popout_image_style).1 else "0"}
width: {if comma_count(styling.popout_image_style) == ",,,," then split_text(match:",", styling.popout_image_style).2 else "0"}
height: {if comma_count(styling.popout_image_style) == ",,,," then split_text(match:",", styling.popout_image_style).3 else "0"}
z index: 1010
############################# Card type
type:
left: 67
top: { 219 + type_font_vertical() }
width: { 400 - rare_width() }
height: 22
alignment: top shrink-overflow
z index: 900
padding top: 2
padding bottom: 4
padding right: 2
font:
name: { type_font() }
italic name: { type_font_italic() }
size: { type_font_size() }
color: { type_font_color() }
separator color: red
rarity:
right: 485
top: 220
width: 44
height: 22
z index: 950
alignment: middle right
render style: image
include file: /magic-modules.mse-include/rarities/choice_images
############################# Text box
text:
left: 63
top: { 252 + body_font_vertical() + chop_top() }
width: { (if styling.show_transform_notch and card.pt_2 != "" then 400 else 410) - chop_right() }
bottom: { 356 - chop_bottom() }
font:
name: { body_font() }
italic name: { body_font_italic() }
size: { body_font_size() }
scale down to: 6
color: { body_font_color() }
symbol font:
name: { styling.text_box_mana_symbols }
size: { body_font_size() }
alignment:
script:
if (styling.center_text == "short text only" and
not contains(match:"\n", card.rule_text) and
card.flavor_text == "<i-flavor></i-flavor>" and
card_style.text.content_lines <= 2) or
styling.center_text == "always"
then "middle center"
else "middle left"
z index: 900
padding left: 6
padding top: 2
padding right: 4
padding bottom: 2
line height hard: 1.2
line height line: 1.5
line height soft: 0.9
############################# PT
loyalty:
z index: 910
left: 480
top: 336
width: { if styling.defense_style == "pt" then 0 else 22 }
height: 24
alignment: center middle shrink-overflow
font:
name: {pt_font()}
italic name: {pt_font_italic()}
size: {pt_font_size()}
color: {pt_font_color()}
separator color: red
pt:
z index: 910
left: 452
top: 336
width: { if styling.defense_style == "pt" then 60 else 0 }
height: 24
alignment: center middle shrink-overflow
font:
name: {pt_font()}
italic name: {pt_font_italic()}
size: {pt_font_size()}
color: {pt_font_color()}
separator color: red
pt 2:
z index: 910
right: 485
top: 309
width: 30
height: 12
alignment: bottom right
visible: { styling.show_transform_notch }
font:
name: Beleren Bold
size: 11
weight: bold
color: {rgb(45,45,45)}
separator color: red
############################################################## Extra card fields
extra card field:
type: choice
name: pt box
script: card.card_color
editable: false
save value: false
extra card field:
type: choice
name: defense box
choice: defense
editable: false
save value: false
extra card field:
type: choice
name: loyalty box
choice: defense
editable: false
save value: false
extra card field:
type: choice
name: foil layer
choice: foil
save value: false
editable: false
extra card field:
type: choice
name: namebar
script: card.card_color
save value: false
editable: false
extra card field:
type: choice
name: notch
script: card.card_color
save value: false
editable: false
extra card field:
type: choice
name: texture
script: card.card_color
save value: false
editable: false
extra card field:
type: choice
name: land overlay
script: card.card_color
save value: false
editable: false
extra card field:
type: choice
name: nyx overlay
script: card.card_color
save value: false
editable: false
extra card field:
type: choice
name: snow overlay
script: card.card_color
save value: false
editable: false
extra card field:
type: choice
name: vehicle overlay
choice: plate
save value: false
editable: false
extra card field:
type: choice
name: custom overlay
choice: plate
save value: false
editable: false
extra card field:
type: choice
name: stamp backing
choice: stamp
editable: false
save value: false
script: card.card_color
extra card field:
type: color
name: art outline
script: rgb(0,0,0)
extra card field:
type: color
name: backup border
script: rgb(0,0,0)
extra card style:
defense box:
left: 459
top: 322
height: 52
width: 64
render style: image
z index: 720
image: /magic-modules.mse-include/loyalty/defense.png
visible: {card.loyalty != "" and styling.defense_style == "defense" }
loyalty box:
left: 459
top: 322
height: 52
width: 64
render style: image
z index: 720
image: /magic-modules.mse-include/loyalty/loyalty.png
visible: {card.loyalty != "" and styling.defense_style == "loyalty" }
pt box:
left: 438
top: 330
width: 81
height: 42
z index: 720
visible: { card.pt != "" and styling.defense_style == "pt" }
render style: image
image: { module_ptbox(vehicle:is_vehicle()) }
foil layer:
left: 0
top : 0
width: 375
height: 523
z index: 1050
render style: image
image: {if styling.overlay == "" then nil else styling.overlay + "/overlay.png"}
namebar:
left: 0
top: 0
width: 523
height: 375
z index: 210
render style: image
image: { namebar_background() }
mask: { if card.transformation == "none" then "" else template_prefix["namebar"] + styling.transform_symbol_side + "_symbol.png" }
notch:
left: 0
top: 0
width: 523
height: 375
z index: 210
render style: image
image: { notch_background() }
visible: { styling.show_transform_notch }
texture:
left: 0
top: 0
width: 523
height: 375
z index: 80
render style: image
image: { texture_background() }
land overlay:
left: 0
top: 0
width: 523
height: 375
z index: 81
render style: image
image: { template_prefix["texture"] + (if is_beyond() and uses_ub(type) then "beyond/" else "") + "lcard.png" }
visible: { contains(card.card_color, match:"land") }
stamp backing:
left: 52
top: 159
width: 56
height: 26
z index: 850
angle: 270
visible: { card.card_stamp != "none" }
render style: image
image: { stamp_img() }
art outline:
left: 62
top: 50
width: 424
height: 164
z index: 90
custom overlay:
left: 523
top: 0
width: 375
height: 523
angle: 270
render style: image
image: { custom_border_blend() }
mask: trim_mask.png
z index: 95
visible: {is_custom_border()}
nyx overlay:
left: 523
top: 0
width: 375
height: 523
angle: 270
render style: image
image: { module_nyx() }
mask: trim_mask.png
z index: 93
visible: { is_nyx() }
snow overlay:
left: 523
top: 0
width: 375
height: 523
angle: 270
render style: image
image: { module_snow() }
mask: trim_mask.png
visible: { is_snow() }
z index: 92
vehicle overlay:
left: 0
top: 0
width: 523
height: 375
render style: image
image: vehicle.png
z index: 91
visible: { is_vehicle() }
backup border:
left: 0
top : 0
width: 523
height: 375
left width: 17
right width: 17
top width: 17
bottom width: 18
z index: 171
mask: borderless_mask.png
visible: { styling.maintain_black_copyright_area }

Binary file not shown.

After

Width:  |  Height:  |  Size: 285 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 179 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 199 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

View File

@@ -33,7 +33,7 @@ include file: language
include file: statistics_script include file: statistics_script
include file: /magic-blends.mse-include/new-blends include file: /magic-blends.mse-include/new-blends
############################################################## Versioning ############################################################## Versioning
version_date := {"2024-10-01 Template Pack 3.0.5: Magic Modules & Showcase Catchup - DFC & Exporter Fixes"} version_date := {"2025-02-01 Template Pack 3.1.a: Mainframe Battles"}
version := version_date version := version_date
############################################################## Common filters ############################################################## Common filters
############################################################## Utility ############################################################## Utility
@@ -4486,8 +4486,8 @@ popout_height_2 := { popout_coord(3, field:styling.popout_art_2_coordinates or e
popout_angle_2 := { popout_coord(4, field:styling.popout_art_2_coordinates or else "", lim:4) } popout_angle_2 := { popout_coord(4, field:styling.popout_art_2_coordinates or else "", lim:4) }
module_chop := { module_chop := {
split := split_comma(styling.chop_text_box) split := split_comma(styling.chop_text_box or else "")
if length(styling.chop_text_box or else "") > input if length(split) > input
then to_number_lax(split[input]) then to_number_lax(split[input])
else 0 else 0
} }
@@ -4550,16 +4550,6 @@ popout_width_2 := { popout_coord(2, field:styling.popout_art_2_coordinates or e
popout_height_2 := { popout_coord(3, field:styling.popout_art_2_coordinates or else "") } popout_height_2 := { popout_coord(3, field:styling.popout_art_2_coordinates or else "") }
popout_angle_2 := { popout_coord(4, field:styling.popout_art_2_coordinates or else "", lim:4) } popout_angle_2 := { popout_coord(4, field:styling.popout_art_2_coordinates or else "", lim:4) }
module_chop := {
split := split_comma(styling.chop_text_box)
if length(styling.chop_text_box or else "") > input
then to_number_lax(split[input])
else 0
}
chop_top := { module_chop(0) }
chop_bottom := { module_chop(1) }
chop_right := { module_chop(2) }
############################################################## Custom corner symbols ############################################################## Custom corner symbols
verify_symbol_image := { verify_symbol_image := {
array := split_comma(input) array := split_comma(input)