mse version: 2.1.2 game: magic short name: Attractions full name: Unfinity Attractions icon: card_sample.png position hint: 099 version: 2024-05-20 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 Card Conjurer and GenevensiS ### code by GenevensiS ############################################################## Extra scripts init script: swap_fonts_pt_default := [ name: {"Beleren Bold"}, size: {28.0}, color: {"black"}, vertical: {0}, italic: {"Beleren Bold"} ] swap_fonts_body_default := [ name: {"MPlantin"}, size: {24.0}, color: {"black"}, vertical: {0}, italic: {"MPlantin-Italic"} ] swap_fonts_type_default := [ name: {"Beleren Bold"}, size: {26.0}, color: {"white"}, vertical: {0}, italic: {"Beleren Bold"} ] casting_cost_offset_top_1 := { 3 } casting_cost_offset_left_1 := { -55 } swap_fonts_name_default := [ name: {"Beleren Bold"}, size: {29.0}, color: {"white"}, vertical: {0}, italic: {"Beleren Bold"} ] information_secondary_offset_pt_left_1 := { -8 } card_shape := { if styling.count_as == "normal card" then "normal" else styling.count_as } template_prefix := [ identity: "/magic-modules.mse-include/indicators/" ] template_suffix := [ 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] } is_promo := { styling.promo } is_unsorted := { styling.remove_from_autocount } is_crowned := { styling.legend_crown == "yes" or (styling.legend_crown == "if legendary" and lang_setting("is_legendary")(card.super_type)) } chop_top := { split := split_comma(styling.chop_text_box); if length(split) > 0 and split.0 != "" then clamp(split.0, maximum: 1500, minimum: -1500) else 0 } chop_bot := { split := split_comma(styling.chop_text_box); if length(split) > 1 and split.1 != "" then clamp(split.1, maximum: 1500, minimum: -1500) else 0 } popout_left := { split := split_comma(styling.popout_image_coordinates); if length(split) > 3 and split.0 != "" then clamp(split.0, maximum: 1500, minimum: -500) else 0 } popout_top := { split := split_comma(styling.popout_image_coordinates); if length(split) > 3 and split.1 != "" then clamp(split.1, maximum: 2000, minimum: -500) else 0 } popout_width := { split := split_comma(styling.popout_image_coordinates); if length(split) > 3 and split.2 != "" then clamp(split.2, maximum: 1500, minimum: 0) else 0 } popout_height := { split := split_comma(styling.popout_image_coordinates); if length(split) > 3 and split.3 != "" then clamp(split.3, maximum: 2000, minimum: 0) else 0 } left_type_margin := { if has_identity() then 100 else 63 } right_type_margin := { 744 - (if set.shorten_types_for_rarity then clamp(rarity_left_1()-5, minimum: 375, maximum: 682) else 682) } center_text := { ( styling.center_text == "short text only" and not contains(match:"\n", card.rule_text) and remove_tags(card.flavor_text) == "" and card_style.text.content_lines <= 2 ) or styling.center_text == "always" } ############################################################## 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: text name: nameline opacity percentage description: Set the opacity percentage for the nameline. Opaque is 100, transparent is 0, default is 70. styling field: type: boolean name: center name description: Center the name text on the card? initial: yes styling field: type: text name: typeline opacity percentage description: Set the opacity percentage for the typeline. Opaque is 100, transparent is 0, default is 70. styling field: type: boolean name: center type description: Center the type text on the card? initial: no include file: /magic-modules.mse-include/texts/styling_fields 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: normal card 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: only copyright include file: /magic-modules.mse-include/information/styling_fields include file: /magic-modules.mse-include/symbol-fonts/styling_fields include file: /magic-modules.mse-include/fonts/styling_fields ############################################################## Card fields include file: /magic-modules.mse-include/casting-costs/card_fields include file: /magic-modules.mse-include/rarities/card_fields include file: /magic-modules.mse-include/indicators/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 include file: /magic-modules.mse-include/separators/card_fields card style: ############################# Background stuff border color: left: 0 top: 0 width: { stylesheet.card_width } height: { stylesheet.card_height } z index: 100 visible: { styling.border != "no" } mask: { "border" + (if styling.border == "only copyright" then "_borderless" else "") + "_mask.png" } ############################# Name line name: left: { 110 + (if styling.center_name and card_style.casting_cost.content_width != 0 then card_style.casting_cost.content_width + 7 else 0) } top: { 56 + name_font_vertical() } right: { 634 - (if card_style.casting_cost.content_width == 0 then 0 else card_style.casting_cost.content_width + 7) } 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: 8 color: { name_font_color() } ############################# Image image: left: { if styling.stretch_image_to_whole_card or styling.border != "yes" then 0 else 30 } top: { if styling.stretch_image_to_whole_card or styling.border != "yes" then 0 else 30 } width: { if styling.stretch_image_to_whole_card or styling.border != "yes" then stylesheet.card_width else 684 } height: { if styling.stretch_image_to_whole_card or styling.border == "no" then stylesheet.card_width else 917 } z index: 0 mainframe image: left: { popout_left() } top: { popout_top() } width: { popout_width() } height: { popout_height() } z index: 1010 ############################# Card type type: left: { (if styling.center_type then max(left_type_margin(), right_type_margin()) else left_type_margin()) } top: { 587 + type_font_vertical() } right: { 744 - (if styling.center_type then max(left_type_margin(), right_type_margin()) else right_type_margin()) } height: 54 z index: 900 alignment: { if styling.center_type then "middle center shrink-overflow" else "middle left shrink-overflow" } font: name: { type_font() } italic name: { type_font_italic() } size: { type_font_size() } scale down to: 8 color: { type_font_color() } separator color: red ############################# Text box text: left: { if center_text() then 85 else 68 } top: { 660 + chop_top() + body_font_vertical() } right: 659 bottom: { 948 - (if is_stamped() then 8 else 0) - chop_bot() } z index: 900 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 alignment: { if center_text() 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 ############################# PT pt: left: 557 top: { 932 + pt_font_vertical() } width: 91 height: 46 z index: 900 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: card stamp rim editable: false save value: false show statistics: false choice: card stamp rim 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: card image script: card.border_color editable: false save value: false show statistics: false extra card field: type: choice name: light 1 show statistics: false choice: lit choice: unlit initial: unlit extra card field: type: choice name: light 2 show statistics: false choice: lit choice: unlit initial: unlit extra card field: type: choice name: light 3 show statistics: false choice: lit choice: unlit initial: unlit extra card field: type: choice name: light 4 show statistics: false choice: lit choice: unlit initial: unlit extra card field: type: choice name: light 5 show statistics: false choice: lit choice: unlit initial: unlit extra card field: type: choice name: light 6 show statistics: false choice: lit choice: unlit initial: lit extra card field: type: choice name: nameline editable: false save value: false show statistics: false choice: nameline extra card field: type: choice name: typeline editable: false save value: false show statistics: false choice: typeline extra card field: type: choice name: foil layer editable: false save value: false show statistics: false choice: foil layer extra card style: pt box: left: 0 top: 0 width: { stylesheet.card_width } height: { stylesheet.card_height } z index: 810 visible: { card.pt != "" } render style: image image: pt.png card stamp rim: left: 0 top: 0 width: { stylesheet.card_width } height: { stylesheet.card_height } z index: 610 render style: image image: { if is_stamped() then "stamp_rim.png" else "non_stamp_rim.png" } card stamp border: left: 0 top: 0 width: { stylesheet.card_width } height: { stylesheet.card_height } z index: 600 visible: { is_stamped() and styling.border != "no" } mask: border_stamp_mask.png card image: left: 0 top: 0 width: { stylesheet.card_width } height: { stylesheet.card_height } z index: 110 render style: image image: card.png light 1: left: 0 top: 0 width: { stylesheet.card_width } height: { stylesheet.card_height } z index: 720 popup style: in place render style: image choice images: lit: { "light_1.png" } unlit: { "" } mask: light_1_mask.png light 2: left: 0 top: 0 width: { stylesheet.card_width } height: { stylesheet.card_height } z index: 720 popup style: in place render style: image choice images: lit: { "light_2.png" } unlit: { "" } mask: light_2_mask.png light 3: left: 0 top: 0 width: { stylesheet.card_width } height: { stylesheet.card_height } z index: 720 popup style: in place render style: image choice images: lit: { "light_3.png" } unlit: { "" } mask: light_3_mask.png light 4: left: 0 top: 0 width: { stylesheet.card_width } height: { stylesheet.card_height } z index: 720 popup style: in place render style: image choice images: lit: { "light_4.png" } unlit: { "" } mask: light_4_mask.png light 5: left: 0 top: 0 width: { stylesheet.card_width } height: { stylesheet.card_height } z index: 720 popup style: in place render style: image choice images: lit: { "light_5.png" } unlit: { "" } mask: light_5_mask.png light 6: left: 0 top: 0 width: { stylesheet.card_width } height: { stylesheet.card_height } z index: 720 popup style: in place render style: image choice images: lit: { "light_6.png" } unlit: { "" } mask: light_6_mask.png nameline: left: 0 top: 0 width: { stylesheet.card_width } height: { stylesheet.card_height } z index: 120 render style: image image: { set_alpha("nameline.png", alpha: get_alpha_percentage(styling.nameline_opacity_percentage, default: 70)) } typeline: left: 0 top: 0 width: { stylesheet.card_width } height: { stylesheet.card_height } z index: 120 render style: image image: { set_alpha("typeline.png", alpha: get_alpha_percentage(styling.typeline_opacity_percentage, default: 70)) } 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" }