655 lines
21 KiB
Plaintext
655 lines
21 KiB
Plaintext
mse version: 2.1.2
|
||
game: magic
|
||
short name: Rules Card
|
||
full name: Mechanics Reminder
|
||
icon: card_sample.png
|
||
position hint: 999
|
||
|
||
version: 2024-10-01
|
||
depends on:
|
||
package: magic.mse-game
|
||
version: 2014-06-25
|
||
depends on:
|
||
package: magic-mana-large.mse-symbol-font
|
||
version: 2007-09-23
|
||
depends on:
|
||
package: magic-mana-small.mse-symbol-font
|
||
version: 2007-09-23
|
||
depends on:
|
||
package: magic-modules.mse-include
|
||
version: 2024-10-01
|
||
depends on:
|
||
package: magic-mainframe-extras.mse-include
|
||
version: 2007-09-23
|
||
|
||
card width: 744
|
||
card height: 1039
|
||
card dpi: 297
|
||
|
||
### blanks by GenevensiS
|
||
### code by GenevensiS
|
||
|
||
############################################################## Extra scripts
|
||
|
||
init script:
|
||
card_shape := { if styling.count_as == "normal card" then "normal" else styling.count_as }
|
||
|
||
swap_fonts_pt_default :=
|
||
[
|
||
name: {"Beleren Bold"},
|
||
size: {28.0},
|
||
color: {"black"},
|
||
vertical: {0},
|
||
italic: {"Beleren Bold"}
|
||
]
|
||
|
||
swap_fonts_body_default :=
|
||
[
|
||
name: {"MPlantin"},
|
||
size: {27.0},
|
||
color: { "white" },
|
||
vertical: {0},
|
||
italic: {"MPlantin-Italic"}
|
||
]
|
||
|
||
swap_fonts_name_default :=
|
||
[
|
||
name: {"Beleren Small Caps Bold"},
|
||
size: {34.0},
|
||
color: {"white"},
|
||
vertical: {0},
|
||
italic: {""}
|
||
]
|
||
|
||
information_secondary_offset_pt_left_1 := { -8 }
|
||
|
||
invert_watermark_1 := { true }
|
||
|
||
is_promo := { styling.promo }
|
||
|
||
is_unsorted := { styling.remove_from_autocount }
|
||
|
||
chop_top := { if styling.chop_text_box == "-" then 0 else clamp(styling.chop_text_box, maximum: 260, minimum: -460) }
|
||
|
||
name_margin :=
|
||
{
|
||
casting_cost_margin := if card_style.casting_cost.content_width == 0 then 0 else card_style.casting_cost.content_width + 7
|
||
rarity_margin := if styling.visible_rarity then rarity_size() else 0
|
||
max(casting_cost_margin, rarity_margin)
|
||
}
|
||
|
||
popout_left := { split := split_comma(styling.popout_image_coordinates); if length(split) > 3 and split.0 != "" then max(min(split.0,1500),-500) else 0 }
|
||
popout_top := { split := split_comma(styling.popout_image_coordinates); if length(split) > 3 and split.1 != "" then max(min(split.1,2000),-500) else 0 }
|
||
popout_width := { split := split_comma(styling.popout_image_coordinates); if length(split) > 3 and split.2 != "" then max(min(split.2,1500),0) else 0 }
|
||
popout_height := { split := split_comma(styling.popout_image_coordinates); if length(split) > 3 and split.3 != "" then max(min(split.3,2000),0) else 0 }
|
||
|
||
active_abilities :=
|
||
{
|
||
(to_int(styling.number_of_textboxes) or else digital_map[styling.number_of_textboxes] or else 7) - 1
|
||
}
|
||
|
||
typebox_bottom :=
|
||
{
|
||
660 + chop_top()
|
||
}
|
||
|
||
textbox_image :=
|
||
{
|
||
alpha_value := if styling.textbox_opacity_percentage == "" then 80 else to_number(styling.textbox_opacity_percentage) or else 80
|
||
alpha_value_clamped := if alpha_value < 0 then 0
|
||
else if alpha_value <= 100 then alpha_value/100
|
||
else 1
|
||
set_alpha(recolor_image("textbox_background.png", color: styling.textbox_color), alpha: alpha_value_clamped)
|
||
}
|
||
|
||
divider_height :=
|
||
{
|
||
count := active_abilities()
|
||
if count == 7 then 16
|
||
else if count == 6 then 18
|
||
else if count == 5 then 20
|
||
else 22
|
||
}
|
||
|
||
alt_text := { true }
|
||
alt_text_script :=
|
||
{
|
||
count := active_abilities()
|
||
if count == 0 then
|
||
forward_editor(field: card.level_1_text)
|
||
else if count == 1 then
|
||
combined_editor(field1: card.level_1_text, separator1: "<line>\n</line>", field2: card.level_2_text)
|
||
else if count == 2 then
|
||
combined_editor(field1: card.level_1_text, separator1: "<line>\n</line>", field2: card.level_2_text, separator2: "<line>\n</line>", field3: card.level_3_text)
|
||
else if count == 3 then
|
||
combined_editor(field1: card.level_1_text, separator1: "<line>\n</line>", field2: card.level_2_text, separator2: "<line>\n</line>", field3: card.level_3_text, separator3: "<line>\n</line>", field4: card.level_4_text)
|
||
else if count == 4 then
|
||
combined_editor(field1: card.level_1_text, separator1: "<line>\n</line>", field2: card.level_2_text, separator2: "<line>\n</line>", field3: card.level_3_text, separator3: "<line>\n</line>", field4: card.level_4_text, separator4: "<line>\n</line>", field5: card.level_5_text)
|
||
else if count == 5 then
|
||
combined_editor(field1: card.level_1_text, separator1: "<line>\n</line>", field2: card.level_2_text, separator2: "<line>\n</line>", field3: card.level_3_text, separator3: "<line>\n</line>", field4: card.level_4_text, separator4: "<line>\n</line>", field5: card.level_5_text, separator5: "<line>\n</line>", field6: card.level_6_text)
|
||
else
|
||
combined_editor(field1: card.level_1_text, separator1: "<line>\n</line>", field2: card.level_2_text, separator2: "<line>\n</line>", field3: card.level_3_text, separator3: "<line>\n</line>", field4: card.level_4_text, separator4: "<line>\n</line>", field5: card.level_5_text, separator5: "<line>\n</line>", field6: card.level_6_text, separator6: "<line>\n</line>", field7: card.level_7_text)
|
||
}
|
||
|
||
text_filter := text_filter + { if input == "" then "" else input }
|
||
|
||
rarity_right := { split := split_comma(styling.rarity_offsets); (if length(split) > 0 and split.0 != "" then clamp(split.0, minimum: -500, maximum: 500) else 0) + 683 }
|
||
rarity_top := { split := split_comma(styling.rarity_offsets); (if length(split) > 1 and split.1 != "" then clamp(split.1, minimum: -500, maximum: 500) else 0) + typebox_bottom() - 69 }
|
||
rarity_size := { split := split_comma(styling.rarity_offsets); (if length(split) > 2 and split.2 != "" then clamp(split.2, minimum: -52, maximum: 100) else 0) + 52 }
|
||
rarity_left := { rarity_right() - rarity_size() }
|
||
|
||
art_left := { if styling.stretch_image_to_whole_card or styling.border != "yes" then 0 else 30 }
|
||
art_top := { if styling.stretch_image_to_whole_card or styling.border != "yes" then 0 else 30 }
|
||
art_width := { if styling.stretch_image_to_whole_card or styling.border != "yes" then stylesheet.card_width else 684 }
|
||
art_height := { if styling.stretch_image_to_whole_card or styling.border == "no" then stylesheet.card_height else if styling.border == "only copyright" then 965 else 935 }
|
||
art_mask :=
|
||
{
|
||
if styling.stretch_image_to_whole_card or styling.border == "no" then "" else
|
||
(
|
||
image := "image_" + (if styling.border == "only copyright" then "borderless_" else "") + "mask.png"
|
||
crop(image, offset_x: art_left(), offset_y: art_top(), width: art_width(), height: art_height())
|
||
)
|
||
}
|
||
|
||
|
||
############################################################## Extra style options
|
||
|
||
styling field:
|
||
type: text
|
||
name: popout image coordinates
|
||
description: The coordinates for the popout image field, formatted as "left,top,width,height". Used to make the illustration jump in front of the frame.
|
||
styling field:
|
||
type: boolean
|
||
name: stretch image to whole card
|
||
description: Make the image span the whole card instead of just the visible part. Use this to help make popout effects.
|
||
initial: no
|
||
styling field:
|
||
type: boolean
|
||
name: center name
|
||
description: Center the name on the card.
|
||
initial: yes
|
||
styling field:
|
||
type: text
|
||
name: namebox opacity percentage
|
||
description: Set the opacity percentage for the namebox background. Opaque is 100, transparent is 0, default is 100.
|
||
|
||
include file: /magic-modules.mse-include/texts/styling_fields
|
||
|
||
styling field:
|
||
type: choice
|
||
name: number of textboxes
|
||
description: How many rules textboxes should there be? MODIFY CONTENTS OF TEXTBOXES IF THIS HAS TROUBLE UPDATING AFTER BEING CHANGED.
|
||
choice: 1
|
||
choice: 2
|
||
choice: 3
|
||
choice: 4
|
||
choice: 5
|
||
choice: 6
|
||
choice: 7
|
||
initial: 1
|
||
styling field:
|
||
type: text
|
||
name: textbox opacity percentage
|
||
description: Set the opacity percentage for the textbox background. Opaque is 100, transparent is 0, default is 80.
|
||
styling field:
|
||
type: color
|
||
name: textbox color
|
||
description: Use the specified color for the textbox background.
|
||
choice:
|
||
name: black
|
||
color: rgb(0,0,0)
|
||
choice:
|
||
name: white
|
||
color: rgb(255,255,255)
|
||
initial: black
|
||
styling field:
|
||
type: boolean
|
||
name: visible rarity
|
||
description: Should the rarity symbol be visible?
|
||
initial: no
|
||
|
||
include file: /magic-modules.mse-include/rarities/styling_fields
|
||
|
||
include file: /magic-modules.mse-include/watermarks/styling_fields
|
||
|
||
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 field:
|
||
type: choice
|
||
name: border
|
||
description: Use a border?
|
||
choice: yes
|
||
choice: only copyright
|
||
choice: no
|
||
initial: yes
|
||
styling field:
|
||
type: choice
|
||
name: count as
|
||
description: What should this card be counted as by the autocount script and stats page?
|
||
choice: normal card
|
||
choice: token
|
||
choice: emblem
|
||
choice: designation
|
||
choice: counter
|
||
choice: rulestip
|
||
choice: checklist
|
||
initial: rulestip
|
||
|
||
include file: /magic-modules.mse-include/information/styling_fields
|
||
|
||
include file: /magic-modules.mse-include/symbol-fonts/styling_fields
|
||
|
||
styling field:
|
||
type: boolean
|
||
name: apply custom fonts
|
||
description: Enable to attempt to use custom fonts given below
|
||
initial: no
|
||
styling field:
|
||
type: text
|
||
name: custom name font
|
||
description: Formatted as "font name;font size;font color;vertical offset;italic font name" last 4 are optional. color can be a name or R,G,B,A numbers.
|
||
styling field:
|
||
type: text
|
||
name: custom body font
|
||
description: Formatted as "font name;font size;font color;vertical offset;italic font name" last 4 are optional. color can be a name or R,G,B,A numbers.
|
||
styling field:
|
||
type: text
|
||
name: custom pt font
|
||
description: Formatted as "font name;font size;font color;vertical offset;italic font name" last 4 are optional. color can be a name or R,G,B,A numbers.
|
||
|
||
############################################################## Card fields
|
||
|
||
include file: /magic-modules.mse-include/information/card_fields
|
||
|
||
include file: /magic-modules.mse-include/stamps/card_fields
|
||
|
||
include file: /magic-modules.mse-include/corners/card_fields
|
||
|
||
include file: /magic-modules.mse-include/watermarks/card_fields
|
||
|
||
card style:
|
||
############################# Background stuff
|
||
border color:
|
||
left: 0
|
||
top: 0
|
||
width: { stylesheet.card_width }
|
||
height: { stylesheet.card_height }
|
||
z index: 850
|
||
visible: { styling.border != "no" }
|
||
mask: { "/magic-modules.mse-include/borders/744x1039/m15/normal/" + (if styling.border == "yes" then "base.png" else "borderless.png") }
|
||
############################# Name line
|
||
name:
|
||
left: { 64 + (if styling.center_name then name_margin() else 0) }
|
||
top: { typebox_bottom() - 70 + name_font_vertical() }
|
||
right: { 681 - name_margin() }
|
||
height: 52
|
||
z index: 900
|
||
alignment: { if styling.center_name then "middle center shrink-overflow" else "middle left shrink-overflow" }
|
||
font:
|
||
name: { name_font() }
|
||
italic name: { name_font_italic() }
|
||
size: { name_font_size() }
|
||
scale down to: 12
|
||
color: { name_font_color() }
|
||
casting cost:
|
||
right: 683
|
||
top: { typebox_bottom() - 70 }
|
||
width: { max(70, card_style.casting_cost.content_width + 12) }
|
||
height: 52
|
||
z index: 910
|
||
alignment: middle right
|
||
always symbol: true
|
||
font:
|
||
name: MPlantin
|
||
size: 34
|
||
color: black
|
||
symbol font:
|
||
name: { styling.casting_cost_mana_symbols }
|
||
size: 31
|
||
rarity:
|
||
right: { rarity_right() }
|
||
top: { rarity_top() }
|
||
width: { if styling.visible_rarity then rarity_size() else 0 }
|
||
height: { rarity_size() }
|
||
z index: 910
|
||
alignment: middle right
|
||
visible: { styling.visible_rarity }
|
||
render style: image
|
||
include file: /magic-modules.mse-include/rarities/choice_images
|
||
############################# Image
|
||
image:
|
||
left: { art_left() }
|
||
top: { art_top() }
|
||
width: { art_width() }
|
||
height: { art_height() }
|
||
z index: 0
|
||
mask: { art_mask() }
|
||
mainframe image:
|
||
left: { popout_left() }
|
||
top: { popout_top() }
|
||
width: { popout_width() }
|
||
height: { popout_height() }
|
||
z index: 1010
|
||
############################# Text box
|
||
text:
|
||
left: 59
|
||
width: 625
|
||
top: { typebox_bottom() - 2 + body_font_vertical() }
|
||
bottom: { if is_stamped() then 932 else 950 }
|
||
z index: 900
|
||
alignment:
|
||
script:
|
||
if (styling.center_text == "short text only" and
|
||
card_style.text.content_lines <= styling.number_of_textboxes)
|
||
or styling.center_text == "always"
|
||
then "middle center"
|
||
else "middle left"
|
||
font:
|
||
name: { body_font() }
|
||
italic name: { body_font_italic() }
|
||
size: { body_font_size() }
|
||
scale down to: 12
|
||
color: { body_font_color() }
|
||
symbol font:
|
||
name: { styling.text_box_mana_symbols }
|
||
size: { body_font_size() }
|
||
scale down to: 12
|
||
padding left: 4
|
||
padding right: 4
|
||
line height hard: 1.2
|
||
line height line: 1.6
|
||
line height soft: 0.9
|
||
line height hard max: 1.3
|
||
line height line max: 2.1
|
||
line height soft max: 0.9
|
||
############################# PT
|
||
pt:
|
||
left: 597
|
||
top: { 932 + pt_font_vertical() }
|
||
width: 91
|
||
height: 46
|
||
z index: 970
|
||
alignment: center middle shrink-overflow
|
||
font:
|
||
name: { pt_font() }
|
||
size: { pt_font_size() }
|
||
color: { pt_font_color() }
|
||
separator color: red
|
||
|
||
############################################################## Extra card fields
|
||
|
||
extra card field:
|
||
type: choice
|
||
name: pt box
|
||
editable: false
|
||
save value: false
|
||
show statistics: false
|
||
choice: pt box
|
||
extra card field:
|
||
type: choice
|
||
name: typeline
|
||
editable: false
|
||
save value: false
|
||
show statistics: false
|
||
choice: typeline
|
||
extra card field:
|
||
type: choice
|
||
name: typeline background
|
||
editable: false
|
||
save value: false
|
||
show statistics: false
|
||
choice: typeline background
|
||
extra card field:
|
||
type: choice
|
||
name: pinlines
|
||
editable: false
|
||
save value: false
|
||
show statistics: false
|
||
choice: pinlines
|
||
extra card field:
|
||
type: choice
|
||
name: stampline
|
||
editable: false
|
||
save value: false
|
||
show statistics: false
|
||
choice: stampline
|
||
extra card field:
|
||
type: choice
|
||
name: card stamp rim
|
||
editable: false
|
||
save value: false
|
||
show statistics: false
|
||
choice: card stamp rim
|
||
extra card field:
|
||
type: choice
|
||
name: card stamp rim shadow
|
||
editable: false
|
||
save value: false
|
||
show statistics: false
|
||
choice: card stamp rim shadow
|
||
extra card field:
|
||
type: choice
|
||
name: foil layer
|
||
editable: false
|
||
save value: false
|
||
show statistics: false
|
||
choice: foil layer
|
||
extra card field:
|
||
type: choice
|
||
name: divider 1
|
||
editable: false
|
||
save value: false
|
||
show statistics: false
|
||
choice: divider 1
|
||
extra card field:
|
||
type: choice
|
||
name: divider 2
|
||
editable: false
|
||
save value: false
|
||
show statistics: false
|
||
choice: divider 2
|
||
extra card field:
|
||
type: choice
|
||
name: divider 3
|
||
editable: false
|
||
save value: false
|
||
show statistics: false
|
||
choice: divider 3
|
||
extra card field:
|
||
type: choice
|
||
name: divider 4
|
||
editable: false
|
||
save value: false
|
||
show statistics: false
|
||
choice: divider 4
|
||
extra card field:
|
||
type: choice
|
||
name: divider 5
|
||
editable: false
|
||
save value: false
|
||
show statistics: false
|
||
choice: divider 5
|
||
extra card field:
|
||
type: choice
|
||
name: divider 6
|
||
editable: false
|
||
save value: false
|
||
show statistics: false
|
||
choice: divider 6
|
||
extra card field:
|
||
type: color
|
||
name: card stamp border
|
||
script: card.border_color
|
||
editable: false
|
||
save value: false
|
||
show statistics: false
|
||
extra card field:
|
||
type: choice
|
||
name: textbox background
|
||
editable: false
|
||
save value: false
|
||
show statistics: false
|
||
choice: textbox background
|
||
extra card field:
|
||
type: choice
|
||
name: textbox background bottom
|
||
editable: false
|
||
save value: false
|
||
show statistics: false
|
||
choice: textbox background bottom
|
||
|
||
extra card style:
|
||
pt box:
|
||
left: 0
|
||
top: 0
|
||
width: { stylesheet.card_width }
|
||
height: { stylesheet.card_height }
|
||
z index: 960
|
||
visible: { card.pt != "" }
|
||
render style: image
|
||
image: pt.png
|
||
foil layer:
|
||
left: 0
|
||
top: 0
|
||
width: { stylesheet.card_width }
|
||
height: { stylesheet.card_height }
|
||
z index: 1050
|
||
visible: { styling.overlay != "none" and styling.overlay != "" }
|
||
render style: image
|
||
image: { if styling.overlay == "" then "" else styling.overlay + "/overlay.png" }
|
||
mask:
|
||
script:
|
||
if styling.border == "no" then ""
|
||
else invert_image("/magic-modules.mse-include/borders/744x1039/m15/normal/" + (if styling.border == "yes" then "base.png" else "borderless.png"))
|
||
card stamp border:
|
||
left: 0
|
||
top: 0
|
||
width: { stylesheet.card_width }
|
||
height: { stylesheet.card_height }
|
||
z index: 830
|
||
visible: { is_stamped() and styling.border != "no" }
|
||
mask: { "stamp_border_mask_" + (if stamp_shape() == "triangle" then "triangle.png" else "round.png") }
|
||
card stamp rim:
|
||
left: 0
|
||
top: 0
|
||
width: { stylesheet.card_width }
|
||
height: { stylesheet.card_height }
|
||
z index: 840
|
||
render style: image
|
||
image: { shape := stamp_shape(); "stamp_" + (if shape == "triangle" then "triangle.png" else if shape == "none" then "none.png" else "round.png") }
|
||
card stamp rim shadow:
|
||
left: 0
|
||
top: 0
|
||
width: { stylesheet.card_width }
|
||
height: { stylesheet.card_height }
|
||
z index: 800
|
||
render style: image
|
||
image: { shape := stamp_shape(); "stamp_shadow_" + (if shape == "triangle" then "triangle.png" else if shape == "none" then "none.png" else "round.png") }
|
||
stampline:
|
||
left: 0
|
||
top: 0
|
||
width: { stylesheet.card_width }
|
||
height: { stylesheet.card_height }
|
||
z index: 800
|
||
render style: image
|
||
image: stampline.png
|
||
typeline:
|
||
left: 0
|
||
bottom: { typebox_bottom() }
|
||
width: { stylesheet.card_width }
|
||
height: 90
|
||
z index: 800
|
||
render style: image
|
||
image: typeline.png
|
||
typeline background:
|
||
left: 0
|
||
bottom: { typebox_bottom() }
|
||
width: { stylesheet.card_width }
|
||
height: 90
|
||
z index: 810
|
||
render style: image
|
||
image: { set_alpha("typeline_inner.png", alpha: get_alpha_percentage(styling.namebox_opacity_percentage, default: 100)) }
|
||
divider 1:
|
||
left: 0
|
||
width: { stylesheet.card_width }
|
||
top: { if length(card_style.text.layout.separators) or else 0 > 0 then card_style.text.top + card_style.text.layout.separators[0] - divider_height()/2 else 1500 }
|
||
height: { divider_height() }
|
||
z index: 840
|
||
visible: { active_abilities() > 0 }
|
||
render style: image
|
||
image: divider.png
|
||
divider 2:
|
||
left: 0
|
||
width: { stylesheet.card_width }
|
||
top: { if length(card_style.text.layout.separators) or else 0 > 1 then card_style.text.top + card_style.text.layout.separators[1] - divider_height()/2 else 1500 }
|
||
height: { divider_height() }
|
||
z index: 840
|
||
visible: { active_abilities() > 1 }
|
||
render style: image
|
||
image: divider.png
|
||
divider 3:
|
||
left: 0
|
||
width: { stylesheet.card_width }
|
||
top: { if length(card_style.text.layout.separators) or else 0 > 2 then card_style.text.top + card_style.text.layout.separators[2] - divider_height()/2 else 1500 }
|
||
height: { divider_height() }
|
||
z index: 840
|
||
visible: { active_abilities() > 2 }
|
||
render style: image
|
||
image: divider.png
|
||
divider 4:
|
||
left: 0
|
||
width: { stylesheet.card_width }
|
||
top: { if length(card_style.text.layout.separators) or else 0 > 3 then card_style.text.top + card_style.text.layout.separators[3] - divider_height()/2 else 1500 }
|
||
height: { divider_height() }
|
||
z index: 840
|
||
visible: { active_abilities() > 3 }
|
||
render style: image
|
||
image: divider.png
|
||
divider 5:
|
||
left: 0
|
||
width: { stylesheet.card_width }
|
||
top: { if length(card_style.text.layout.separators) or else 0 > 4 then card_style.text.top + card_style.text.layout.separators[4] - divider_height()/2 else 1500 }
|
||
height: { divider_height() }
|
||
z index: 840
|
||
visible: { active_abilities() > 4 }
|
||
render style: image
|
||
image: divider.png
|
||
divider 6:
|
||
left: 0
|
||
width: { stylesheet.card_width }
|
||
top: { if length(card_style.text.layout.separators) or else 0 > 5 then card_style.text.top + card_style.text.layout.separators[5] - divider_height()/2 else 1500 }
|
||
height: { divider_height() }
|
||
z index: 840
|
||
visible: { active_abilities() > 5 }
|
||
render style: image
|
||
image: divider.png
|
||
pinlines:
|
||
left: 0
|
||
width: { stylesheet.card_width }
|
||
top: { typebox_bottom() }
|
||
bottom: 949
|
||
z index: 800
|
||
render style: image
|
||
image: pinlines.png
|
||
textbox background:
|
||
left: 55
|
||
width: 634
|
||
top: { typebox_bottom() - 10 }
|
||
bottom: 946
|
||
z index: 600
|
||
render style: image
|
||
image: { textbox_image() }
|
||
textbox background bottom:
|
||
left: 55
|
||
width: 634
|
||
top: 946
|
||
bottom: 959
|
||
z index: 600
|
||
render style: image
|
||
image: { textbox_image() }
|
||
mask: { shape := stamp_shape(); "stamp_textbox_mask_" + (if shape == "triangle" then "triangle.png" else if shape == "none" then "none.png" else "round.png") }
|