Files
magic-set-editor-fork/data/magic-m15-showcase-strixhaven-jp.mse-style/style
GenevensiS fd4b8e4c89 card_fields rewrite and magic-modules.mse-include (#21)
Overhauls the card_fields file to allow for template designers more freedom in manipulating data.

Adds magic-modules.mse-include, a large scale include file for building templates in a standardized way. Applying this to existing frames will be coming in future updates.
2024-05-24 17:57:47 -05:00

960 lines
29 KiB
Plaintext

mse version: 2.0.0
game: magic
short name: JP Showcase
full name: Strixhaven Showcase
icon: card-sample.png
position hint: 095
version: 2021-06-01
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-watermarks.mse-include
version: 2007-09-23
depends on:
package: magic-identity-new.mse-include
version: 2012-01-22
depends on:
package: magic-mana-large.mse-symbol-font
version: 2007-09-23
depends on:
package: magic-mana-small.mse-symbol-font
version: 2007-09-23
depends on:
package: magic-mainframe-extras.mse-include
version: 2007-09-23
card width: 375
card height: 523
card dpi: 150
####### card images from silverback_ape
############################################################## Extra scripts
init script:
# Load scripts for image box
include file: /magic-default-image.mse-include/scripts
template_prefix := [card: "card/", name1: "name/", name2: "name/", name3: "name/", type1: "type/", type2: "type/", type3: "type/", pt: "pt/", nonpt: "nonpt/", textbox: "textbox/", stamp: "stamp/", nonstamp: "nonstamp/", identity: "/magic-identity-new.mse-include/"]
template_suffix := [card: "card.png", name1: "cap.png", name2: "name.png", name3: "cap.png", type1: "cap.png", type2: "type.png", type3: "cap.png", pt: "pt.png", nonpt: "nonpt.png", textbox: "textbox.png", stamp: "stamp.png", nonstamp: "nonstamp.png", identity: "identity.png"]
template := { template_prefix[type] + input + template_suffix[type] }
land_template := { template_prefix[type] + (if input == "a" then "c" else input) + template_suffix[type] }
# Use land templates for previews because they show more contrast
hybrid_previews := "land,hybrid"
card_hybrid_2_wide :=
{
linear_blend(
image1: template(colors[0]),
image2: template(colors[1]),
x1: 0.15, y1: 0
x2: 0.85, y2: 0
)
}
name_hybrid := [
radial: card_hybrid["radial"]
vertical: card_hybrid["vertical"]
horizontal: [
1: card_hybrid["horizontal"][1]
2: card_hybrid_2_wide
3: card_hybrid["horizontal"][3]
4: card_hybrid["horizontal"][4]
5: card_hybrid["horizontal"][5]
6: card_hybrid["horizontal"][6]
7: card_hybrid["horizontal"][7]
]
overlay: card_hybrid["overlay"]
]
textbox_hybrid_2 :=
{
linear_blend(
image1: shorten_textbox_image(template( colors[0])),
image2: shorten_textbox_image(template( colors[1])),
x1: 0.4, y1: 0
x2: 0.6, y2: 0
)
}
radial_textbox_hybrid := [
0: { shorten_textbox_image(template( "c"))
}
1: { shorten_textbox_image(template( colors[0]))
}
2: textbox_hybrid_2
3: { linear_blend(
image1: textbox_hybrid_2( colors: colors[(to_int(offset) + 0 ) mod 3] + colors[(to_int(offset) + 1 ) mod 3] ),
x1: 0, y1: 0.55
x2: 0, y2: 0.77
image2: shorten_textbox_image(template( colors[(to_int(offset) + 2 ) mod 3] ))
)}
4: { linear_blend(
image1: textbox_hybrid_2( colors: colors[(to_int(offset) + 0 ) mod 4] + colors[(to_int(offset) + 1 ) mod 4] ),
image2: textbox_hybrid_2( colors: colors[(to_int(offset) + 3 ) mod 4] + colors[(to_int(offset) + 2 ) mod 4] ),
x1: 0, y1: 0.4
x2: 0, y2: 0.62
)}
5: { linear_blend(
image1: linear_blend(
image1: textbox_hybrid_2( colors: colors[(to_int(offset) + 0 ) mod 5] + colors[(to_int(offset) + 1 ) mod 5] ),
image2: textbox_hybrid_2( colors: colors[(to_int(offset) + 4 ) mod 5] + colors[(to_int(offset) + 2 ) mod 5] ),
x1: 0, y1: 0.19
x2: 0, y2: 0.35),
image2: shorten_textbox_image(template( colors[(to_int(offset) + 3 ) mod 5] )),
x1: 0, y1: 0.777
x2: 0, y2: 0.937
)}
]
horizontal_textbox_hybrid := [
1: { shorten_textbox_image(template( colors[0]))
}
2: textbox_hybrid_2
3: { linear_blend(
image1: shorten_textbox_image(template( colors[(to_int(offset) + 0 ) mod 3] )),
x1: 0.22, y1: 0
x2: 0.4, y2: 0
image2: linear_blend(
image1: shorten_textbox_image(template( colors[(to_int(offset) + 1 ) mod 3] )),
image2: shorten_textbox_image(template( colors[(to_int(offset) + 2 ) mod 3] )),
x1: 0.6, y1: 0
x2: 0.78, y2: 0
))}
4: { linear_blend(
image1: shorten_textbox_image(template( colors[(to_int(offset) + 0 ) mod 4] )),
x1: 0.15, y1: 0
x2: 0.31, y2: 0
image2: linear_blend(
image1: shorten_textbox_image(template( colors[(to_int(offset) + 1 ) mod 4] )),
x1: 0.42, y1: 0
x2: 0.58, y2: 0
image2: linear_blend(
image1: shorten_textbox_image(template( colors[(to_int(offset) + 2 ) mod 4] )),
image2: shorten_textbox_image(template( colors[(to_int(offset) + 3 ) mod 4] )),
x1: 0.69, y1: 0
x2: 0.85, y2: 0
)))}
5: { linear_blend(
image1: shorten_textbox_image(template( colors[(to_int(offset) + 0 ) mod 5] )),
x1: 2.0 / 15, y1: 0
x2: 4.0 / 15, y2: 0
image2: linear_blend(
image1: shorten_textbox_image(template( colors[(to_int(offset) + 1 ) mod 5] )),
x1: 5.0 / 15, y1: 0
x2: 7.0 / 15, y2: 0
image2: linear_blend(
image1: shorten_textbox_image(template( colors[(to_int(offset) + 2 ) mod 5] )),
x1: 8.0 / 15, y1: 0
x2: 10.0 / 15, y2: 0
image2: linear_blend(
image1: shorten_textbox_image(template( colors[(to_int(offset) + 3 ) mod 5] )),
image2: shorten_textbox_image(template( colors[(to_int(offset) + 4 ) mod 5] )),
x1: 11.0 / 15, y1: 0
x2: 13.0 / 15, y2: 0
))))}
]
vertical_textbox_hybrid :=
{
old_linear_blend := linear_blend
linear_blend := { old_linear_blend(x1: y1, x2: y2, y1: x1, y2: x2) }
horizontal_textbox_hybrid[color_count]()
}
overlay_textbox__hybrid := [
1: { shorten_textbox_image(template(colors[0])) }
2: { combine_blend(
image1: shorten_textbox_image(template(colors[0])),
image2: shorten_textbox_image(template(colors[1])),
combine: "symmetric overlay"
)}
]
textbox_hybrid := [
radial: radial_textbox_hybrid
horizontal: horizontal_textbox_hybrid
vertical: [
1: vertical_textbox_hybrid
2: vertical_textbox_hybrid
3: vertical_textbox_hybrid
4: vertical_textbox_hybrid
5: vertical_textbox_hybrid
6: vertical_textbox_hybrid
7: vertical_textbox_hybrid
]
overlay: overlay_textbox__hybrid
]
c1_hybrid := [
radial: [
0: { template("c") }
1: { template(colors[0]) }
2: { template(colors[0]) }
3: { card_hybrid.vertical[2]( colors: colors[0] + colors[2] ) }
4: { card_hybrid.vertical[2]( colors: colors[0] + colors[3] ) }
5: { card_hybrid.vertical[3]( colors: colors[0] + colors[4] + colors[3], color_count: 3 ) }
6: { template(colors[0]) }
7: { template(colors[0]) }
]
horizontal: [
1: { template(colors[0]) }
2: { template(colors[0]) }
3: { template(colors[0]) }
4: { template(colors[0]) }
5: { template(colors[0]) }
6: { template(colors[0]) }
7: { template(colors[0]) }
]
vertical: card_hybrid.vertical
overlay: card_hybrid.overlay
]
c2_hybrid := [
radial: [
0: { template("c") }
1: { template(colors[0]) }
2: { template(colors[1]) }
3: { card_hybrid.vertical[2]( colors: colors[1] + colors[2] ) }
4: { card_hybrid.vertical[2]( colors: colors[1] + colors[2] ) }
5: { card_hybrid.vertical[3]( colors: colors[1] + colors[2] + colors[3], color_count: 3 ) }
6: { template(colors[5]) }
7: { template(colors[6]) }
]
horizontal: [
1: { template(colors[0]) }
2: { template(colors[1]) }
3: { template(colors[2]) }
4: { template(colors[3]) }
5: { template(colors[4]) }
6: { template(colors[5]) }
7: { template(colors[6]) }
]
vertical: card_hybrid.vertical
overlay: card_hybrid.overlay
]
card_background := { color_background(type: "card", base_hybrid: card_hybrid) }@(offset:0 )
name1_background := { color_background(type: "name1", base_hybrid: c1_hybrid) }@(offset:0 )
name2_background := { color_background(type: "name2", base_hybrid: name_hybrid) }@(offset:0 )
name3_background := { color_background(type: "name3", base_hybrid: c2_hybrid) }@(offset:0 )
type1_background := { color_background(type: "type1", base_hybrid: c1_hybrid) }@(offset:0 )
type2_background := { color_background(type: "type2", base_hybrid: card_hybrid) }@(offset:0 )
type3_background := { color_background(type: "type3", base_hybrid: c2_hybrid) }@(offset:0 )
card_ptbox := { color_background(type: "pt", base_hybrid: card_hybrid) }@(offset:0 )
card_nonptbox := { color_background(type: "nonpt", base_hybrid: card_hybrid) }@(offset:0 )
card_stamp := { color_background(type: "stamp", base_hybrid: card_hybrid) }@(offset:0 )
card_nonstamp := { color_background(type: "nonstamp", base_hybrid: card_hybrid) }@(offset:0 )
card_textbox := { color_background(type: "textbox", base_hybrid: textbox_hybrid) }@(offset:0 )
# 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 the card a promo card?
is_promo := { styling.promo }
is_legend := {set.auto_legends and contains(card.super_type, match:"Legendary") }
mana_sort := {
if styling.unsorted_casting_cost then
input
else
sort_text@(order: "XYZI[0123456789]HSCA(WUBRG)")()
}
ancestral_mana := { styling.ancestral_mana_symbols }
has_identity := { styling.color_indicator_dot }
is_unsorted := {styling.remove_from_autocount}
chop_top := {to_number(pull_comma_array(styling.text_chops, cell:0, end:false))}
chop_bot := {to_number(pull_comma_array(styling.text_chops, cell:1, end:false))}
chop_correction := { chop_bot() }
shrink_type := {if styling.shrink_typeline_text != "" then to_number(styling.shrink_typeline_text) else 0}
shrink_name := {if styling.shrink_name_text != "" then to_number(styling.shrink_name_text) else 0}
use_main_rarity := { contains(set.mainframe_rarity_name, match: ".png")}
un_png := replace@(match:".png", replace: "")
jp_name_length := {card_style.name.content_height * length(card.name)}
shown_cr := {if set.automatic_copyright then set.copyright != "" else card.copyright != ""}
enlarge_in_pixels :=
{
widthf := to_number(current_width)
heightf := to_number(current_height)
leftf := to_number(left)
rightf := to_number(right)
topf := to_number(top)
bottomf := to_number(bottom)
h_factor := max(leftf, rightf)/widthf
v_factor := max(topf, bottomf)/heightf
factor := max(h_factor, v_factor)
enlarged_image := enlarge(input, border_size: factor)
width_increase := factor*widthf
height_increase := factor*heightf
left_excess := width_increase - leftf
right_excess := width_increase - rightf
top_excess := height_increase - topf
bottom_excess := height_increase - bottomf
new_width := widthf + leftf + rightf
new_height := heightf + topf + bottomf
crop(enlarged_image, offset_x: left_excess, offset_y: top_excess, width: new_width, height: new_height)
}
shorten_textbox_amount :=
{
amount := if styling.shorten_textbox == "-" then 0 else to_int(styling.shorten_textbox)
if amount < 0 then amount := 0
if amount > 120 then amount := 120
amount
}
shorten_textbox_image:=
{
shorten := shorten_textbox_amount()
height := 139 - shorten
top := 320 + shorten
cropped := crop(input, width: 375, height: height, offset_x: 0, offset_y: 320)
enlarge_in_pixels(cropped, current_width: 375, current_height: height, left: 0, right: 0, top: top, bottom: 64)
}
############################################################## 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 options
styling field:
type: choice
name: language
choice: English
choice: Japanese
styling field:
type: text
name: text chops
description: Format as "X,Y". Shrinks textbox X pixels from the top and Y from bottom.
styling field:
type: text
name: shorten textbox
description: Shrinks textbox frame X pixels from the top.
styling field:
type: text
name: shrink name text
description: Shrinks name X pixels
styling field:
type: text
name: shrink typeline text
description: Shrinks type X pixels
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: use holofoil stamps
description: Change to no to disable rare holofoil stamps
styling field:
type: boolean
name: color indicator dot
description: Use the color indicator dot
initial: no
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: boolean
name: unsorted casting cost
description: Disables automatic mana symbol sorting.
initial: no
styling field:
type: boolean
name: ancestral mana symbols
description: Enables ancestral's modified generic mana.
initial: no
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: 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: 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: center text
description: When to center text (short text only means only on one-line cards with no flavor text)
choice: always
choice: short text only
choice: never
initial: never
styling field:
type: boolean
name: promo
description: Is this card a promo card, with the "P" rarity?
initial: no
styling field:
type: boolean
name: masterpiece
description: Is this card a Masterpiece?
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: color
name: copyright text color
description: Color of the copyright, illustrator, and set code text.
choice: white
choice: black
initial: white
allow custom: true
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-large.mse-symbol-font/mana_t.png
old: /magic-mana-large.mse-symbol-font/mana_t_old.png
diagonal T: /magic-mana-large.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") }
############################################################## Card fields
card style:
############################# Background stuff
border color:
left: 0
top : 0
width: 375
height: 523
z index: -1
mask: { "border_mask" + (if card.pt != "" then "_pt" else "") + ".png" }
card color:
left: 0
top: 0
width: 375
height: 523
z index: 0
render style: image
popup style: in place
image: { card_background() }
mask: frame_mask.png
############################# Name line
name:
left: 49
top: {if styling.language == "Japanese" then 550 else 42}
width: {max(37, card_style.name.content_width+10)}
height: 22
alignment: top shrink-overflow
padding bottom: 0
z index: 2
font:
name: Beleren Bold
size: {13 - shrink_name()}
color: white
line height hard: {if is_modal(card.rule_text) then 0.9 else 1.2 }
line height line: 1.5
line height soft: 0.9
line height hard max: {if is_modal(card.rule_text) then 1.0 else 1.3 }
line height line max: 1.6
casting cost:
right: 346
top: 29
width: { max(30, card_style.casting_cost.content_width) + 5 }
height: 23
alignment: middle right
font:
name: MPlantin
size: 15
symbol font:
name: magic-mana-small-strixhaven-jp
size: 15
alignment: middle right
always symbol: true
z index: 2
padding top: 0
############################# Image
image:
left: 0
top: 0
width: 375
height: 494
z index: -2
default: {default_image(card.card_color)}
mask: image_mask.png
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: 1000
############################# Card type
indicator:
left: 30
top: { 296 + shorten_textbox_amount() }
width: 17
height: 17
z index: 2
render style: image
visible: { has_identity() }
image: { card_identity() }
type:
left: { if styling.color_indicator_dot then 51 else 32 }
top: { 292 + shrink_type() + shorten_textbox_amount() }
width: { min(263-if styling.color_indicator_dot then 19 else 0,max(105, card_style.type.content_width)) }
height: { 19 - shrink_type() }
alignment: top center shrink-overflow
z index: 3
padding top: 2
font:
name: Beleren Bold
size: {12 - shrink_type()}
color: black
separator color: red
rarity:
right: 344
top: { 298 + shorten_textbox_amount() }
width: 44
height: 22
z index: 2
render style: image
alignment: middle right
choice images:
# Images based on the set symbol
basic land:
script:
if use_main_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "c.png"
else if styling.inverted_common_symbol then symbol_variation(symbol: set.symbol, variation: "invertedcommon")
else symbol_variation(symbol: set.symbol, variation: "common")
common:
script:
if use_main_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "c.png"
else if styling.inverted_common_symbol then symbol_variation(symbol: set.symbol, variation: "invertedcommon")
else symbol_variation(symbol: set.symbol, variation: "common")
uncommon:
script:
if use_main_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "u.png"
else symbol_variation(symbol: set.symbol, variation: "uncommon")
rare:
script:
if use_main_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "r.png"
else symbol_variation(symbol: set.symbol, variation: "rare")
mythic rare:
script:
if use_main_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "m.png"
else symbol_variation(symbol: set.symbol, variation: "mythic rare")
special:
script:
if use_main_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "s.png"
else symbol_variation(symbol: set.symbol, variation: "special")
masterpiece:
script:
if use_main_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "mp.png"
else symbol_variation(symbol: set.masterpiece_symbol, variation: "mythic rare")
############################# Text box
text:
left: 32
top: { 324 - (-chop_top()) + shorten_textbox_amount() }
width: 314
bottom: { 478 - chop_bot() }
font:
name: MPlantin
italic name: MPlantin-Italic
size: 12
scale down to: 6
color: black
symbol font:
name: { styling.text_box_mana_symbols }
size: 12
scale down to: 6
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: 2
padding left: 6
padding right: 4
line height hard: {if is_modal(card.rule_text) then 0.9 else 1.2 }
line height line: 1.5
line height soft: 0.9
line height hard max: {if is_modal(card.rule_text) then 1.0 else 1.3 }
line height line max: 1.6
watermark:
left: 15
top: { 338 + shorten_textbox_amount() }
width: 344
height: { 139 - shorten_textbox_amount() }
z index: 1
render style: image
popup style: in place
alignment: middle center
include file: /magic-watermarks.mse-include/watermarks
############################# PT
pt:
z index: 2
left: 302
top: 467
width: 41
height: 29
alignment: center middle shrink-overflow
font:
name: Beleren Bold
size: 15
color: black
separator color: red
############################# Card sorting / numbering
set code:
left: 24
top: 498
width: 40
height: 10
z index: 1
font:
name: Relay-Medium
size: 7
color: { styling.copyright_text_color }
weight: bold
############################# Copyright stuff
illustrator:
left: { 44 + card_style.set_code.content_width }
top: 497.5
width: 200
height: 10
z index: 1
font:
name: Beleren Small Caps Bold
size: 7.25
color: { styling.copyright_text_color }
copyright:
right: 350
top: { if card.pt != "" then 500 else 493 }
width: 140
height: 10
z index: 2
visible: {not set.automatic_copyright}
alignment: middle right shrink-overflow
font:
name: Matrix
size: 7
color: { styling.copyright_text_color }
weight: bold
############################################################## Extra card fields
extra card field:
type: text
name: card code
save value: false
script:
if set.automatic_card_numbers and not styling.remove_from_autocount then
forward_editor(prefix: card_number_m15() + "/" + card_count_m15() + " " + rarity_code() + " ", field: card.card_code_text)
else
combined_editor(field1: card.custom_card_number, separator: " " + rarity_code() + " ", field2: card.card_code_text)
extra card field:
type: choice
name: artist arrow
editable: false
save value: false
choice: white
extra card field:
type: choice
name: pt box
script: card.card_color
editable: false
save value: false
extra card field:
type: choice
name: text box
script: card.card_color
editable: false
save value: false
extra card field:
type: choice
name: name bar 1
script: card.card_color
editable: false
save value: false
extra card field:
type: choice
name: name bar 2
script: card.card_color
editable: false
save value: false
extra card field:
type: choice
name: name bar 3
script: card.card_color
editable: false
save value: false
extra card field:
type: choice
name: type bar 1
script: card.card_color
editable: false
save value: false
extra card field:
type: choice
name: type bar 2
script: card.card_color
editable: false
save value: false
extra card field:
type: choice
name: type bar 3
script: card.card_color
editable: false
save value: false
extra card field:
type: choice
name: foil layer
choice: foil
save value: false
editable: false
extra card field:
type: color
name: stamp border
script: card.border_color
editable: false
show statistics: false
extra card field:
type: choice
name: stamp
script: card.card_color
editable: false
show statistics: false
extra card field:
type: text
name: auto copyright
script: set.copyright
save value: false
editable: false
show statistics: false
extra card field:
type: choice
name: flavor bar
choice: bar
editable: false
save value: false
show statistics: false
extra card field:
type: text
name: jp name
script: forward_editor(field: card.name)
extra card field:
type: text
name: vorthos box
save value: true
editable: true
description: Where they put mtgstory.com on story spotlights.
extra card style:
card code:
left: 24
top: 488
width: 120
height: 10
z index: 1
font:
name: Relay-Medium
size: 7
color: { styling.copyright_text_color }
weight: bold
artist arrow:
left: { 28 + card_style.set_code.content_width }
top: 500
width: 12
height: 7
z index: 1
render style: image
image: { recolor_image("artist_arrow.png", color: styling.copyright_text_color) }
pt box:
left: 0
top: 0
width: 375
height: 523
z index: 1
render style: image
image: { if card.pt != "" then card_ptbox() else card_nonptbox() }
text box:
#left: 27
#top: { 320 + shorten_textbox_amount() }
#width: 321
#height: { 139 - shorten_textbox_amount() }
left: 0
top: 0
width: 375
height: 523
z index: 1
render style: image
image:{ card_textbox() }
name bar 1:
left: {if styling.language == "Japanese" then 83 else 28}
top: 24
width: 22
height: 56
z index: 1
render style: image
image: {name1_background()}
angle: {if styling.language == "Japanese" then -90 else 0}
name bar 2:
left: {if styling.language == "Japanese" then 83 else 50}
top: {if styling.language == "Japanese" then 46 else 24}
width: {if styling.language == "Japanese" then max(34, jp_name_length()-20) else card_style.name.content_width}
height: 56
z index: 1
render style: image
image: {name2_background()}
angle: {if styling.language == "Japanese" then -90 else 0}
name bar 3:
left: {if styling.language == "Japanese" then 83 else 50+card_style.name.content_width-0.4}
top: {if styling.language == "Japanese" then 46 + max(34, jp_name_length()-20)-0.5 else 24}
width: 22
height: 56
z index: 1
render style: image
image: {flip_horizontal(name3_background())}
angle: {if styling.language == "Japanese" then -90 else 0}
type bar 1:
left: 22
top: { 289 + shorten_textbox_amount() }
width: 15
height: 30
z index: 1
render style: image
image: {type1_background()}
type bar 2:
left: 37
top: { 289 + shorten_textbox_amount() }
width: {min(254,max(96, card_style.type.content_width+(if styling.color_indicator_dot then 19 else 0)))}
height: 30
z index: 1
render style: image
image: {type2_background()}
type bar 3:
left: {37+min(254,max(96, card_style.type.content_width+(if styling.color_indicator_dot then 19 else 0)))-0.4}
top: { 289 + shorten_textbox_amount() }
width: 15
height: 30
z index: 1
render style: image
image: {flip_horizontal(type3_background())}
foil layer:
left: 0
top : 0
width: 375
height: 523
z index: 3
render style: image
image: {if styling.overlay == "" then nil else styling.overlay + "/overlay.png"}
mask: { "foil_mask" + (if card.pt != "" then "_pt" else "") + (if is_rare() and styling.use_holofoil_stamps then "_rare" else "") + ".png" }
stamp border:
left: 0
top: 0
width: 375
height: 523
z index: 1
visible: { is_rare() and styling.use_holofoil_stamps }
mask: stamp_mask.png
stamp:
left: 0
top: 0
width: 375
height: 523
z index: 1
render style: image
image: { if is_rare() and styling.use_holofoil_stamps then card_stamp() else card_nonstamp() }
auto copyright:
right: 350
top: { if card.pt != "" then 500 else 493 }
width: 140
height: 10
z index: 2
alignment: middle right shrink-overflow
visible: {set.automatic_copyright}
font:
name: Matrix
size: 7
color: { styling.copyright_text_color }
weight: bold
flavor bar:
left: 0
top: { bar_equation() }
width: 375
height: 1
z index: 1
render style: image
image: bar.png
visible: { card.rule_text != "" and remove_tags(card.flavor_text) != "" and set.use_flavor_bar }
jp name:
left: 37
top: 40
width: {if styling.language == "Japanese" then 37 else 0}
height: {max(50, jp_name_length())}
direction: vertical
alignment: top center shrink-overflow
padding bottom: 0
z index: 2
font:
name: Beleren Bold
size: {13 - shrink_name()}
color: white
line height hard: {if is_modal(card.rule_text) then 0.9 else 1.2 }
line height line: 1.5
line height soft: 0.9
line height hard max: {if is_modal(card.rule_text) then 1.0 else 1.3 }
line height line max: 1.6
vorthos box:
right: { if card.pt != "" then 275 else 350 }
top: {if card.pt == "" and shown_cr() then 502 else 488}
width: { 70 }
height: 10
z index: 3
alignment: middle right
font:
name: Relay-Medium
size: 7
color: { styling.copyright_text_color }
weight: bold