Files
GenevensiS 6c4c5315c0 Added Rules Tip Card (#109)
* Added Rules Tip Card
2025-02-01 23:56:13 -06:00

655 lines
21 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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") }