mse version: 2.0.0 game: magic short name: Punk Show full name: Cover Style icon: card-sample.png position hint: 095 installer group: magic/new style/normal cards version: 2024-09-28 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-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 background: white card width: 375 card height: 523 card dpi: 150 ############################################################## Extra scripts init script: # Load scripts for image box include file: /magic-default-image.mse-include/scripts # Should hybrids have a grey name? mask_hybrid_with_land := { false } #Should multicolor lands with basic land types have a colored name? mask_multi_land_with_color := { styling.colored_multicolor_land_name } # Which artifact template should be used? Which multicolor template should be used? alternate_template := { if input == "a" then ( if styling.artifact_style == "light" then "oa" else if styling.artifact_style == "brown" then "ba" else "a" ) else input } 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] + input + template_suffix[type] } # Use land templates for previews because they show more contrast hybrid_previews := "land,hybrid" # 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 } ancestral_mana := { styling.ancestral_mana_symbols } 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} break_name := { words := split_text(card.name, match:" ") lead := "" end := "" i := 0 for each w in words do ( i := i + length(w) + 1 if i == 0 then lead := w else if i < 13 then lead := lead + " " + w else if end == "" then end := w else end := end + " " + w ) [lead, end] } name_1 := { if length(card.name) < 19 then card.name else break_name().0} name_2 := { if length(card.name) < 19 then "" else break_name().1} is_d20 := {styling.d20_dividers != "off"} is_all_break := {contains(styling.d20_dividers, match:"all breaks")} d20string := "^()?((()?[-0-9 ,+>\<]()?)+|[Ee]lse|[Oo]ther) ?()?[|]" d20_array := filter_text@(match:"(\n|"+d20string+")") +split_text@(match:d20string) number_of_rolls := {if is_all_break() then 1+length(filter_text(card.rule_text, match:"\n"))-rolls_start(card.text) else length(d20_array(input))-1} rolls_start := { if styling.d20_dividers == "all breaks +3" then 4 else if styling.d20_dividers == "all breaks +2" then 3 else if styling.d20_dividers == "all breaks +1" then 2 else if styling.d20_dividers == "all breaks" then 0 else if is_d20() then length(d20_array(input).0) else 0 } d20_filter := replace@(match:"^([Ee]lse ?|[Oo]ther ?|(()?[-0-9 ,+>\<]()?)+)[|]", replace:"\\1|") top_of_para := { input := input + no_roll(card.text) if card_style.text.layout.paragraphs[input].top or else 0 > 0 then card_style.text.top + card_style.text.layout.paragraphs[input].top - 0.5*(card_style.text.layout.paragraphs[input].top-card_style.text.layout.paragraphs[input-1].bottom) else 0 } height_of_para := { input := input + no_roll(card.text) if card_style.text.layout.paragraphs[input].bottom or else 0 > 0 then card_style.text.layout.paragraphs[input].bottom + 1.3*(card_style.text.layout.paragraphs[input].top-card_style.text.layout.paragraphs[input-1].bottom) - card_style.text.layout.paragraphs[input].top else 0 } no_roll := {if styling.d20_dividers == "all breaks" then 1 else if rolls_start(input) == 0 then 1 else 0} text_filter := text_filter + d20_filter name_color := { if card.card_color=="black" or contains(card.card_color, match:"land") then rgb(89,49,120) else if contains(card.card_color, match:"white") then rgb(201,195,155) else if contains(card.card_color, match:"blue") then rgb(88,131,182) else if contains(card.card_color, match:"green") then rgb(53,110,55) else if contains(card.card_color, match:"red") then rgb(172,37,31) else "black" } card_stamp_offset_top_1 := { 3 } ############################################################## Extra style options 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: choice name: d20 dividers choice: d20 mode choice: off choice: all breaks choice: all breaks +1 choice: all breaks +2 choice: all breaks +3 description: Do dice levels normally, off, on all linebreaks, on all but the first linebreak, etc. 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: colored multicolor land name description: Use a colored background for the name and type on multicolor land cards with a basic land type. 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: 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: 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 include file: /magic-modules.mse-include/information/card_fields include file: /magic-modules.mse-include/corners/card_fields include file: /magic-modules.mse-include/stamps/card_fields card style: ############################# Background stuff card color: left: 0 top: 0 width: 375 height: 523 z index: -2 render style: image popup style: in place image: card.jpg ############################# Name line name: left: 57 top: 32 width: 251 height: 30 alignment: center shrink-overflow padding bottom: 0 z index: 1 font: name: Fugaz One size: 20 weight: bold color: rgba(0,0,0,0) casting cost: right: 360 top: 7 left: 309 height: 23 alignment: middle right font: name: MPlantin size: 15 symbol font: name: magic-mana-large size: 15 alignment: middle right always symbol: true z index: 4 padding top: 0 ############################# Image image: left: 18 top: 99 width: 342 height: 212 z index: 1 ############################# Card type type: left: 33 top : 313 width: { 291 - max(23,card_style.rarity.content_width) } height: 19 alignment: top shrink-overflow z index: 1 padding top: 2 font: name: Tahoma weight: bold size: 13 color: black separator color: rgb(128,128,128) rarity: right: 344 top: 317 width: 44 height: 22 z index: 2 render style: image alignment: middle right include file: /magic-modules.mse-include/rarities/choice_images ############################# Text box text: left: 28 top : {348-(-chop_top())} width: 311 bottom: {483-chop_bot()-(if is_stamped() then 3 else 0)} font: name: Tahoma size: 14 scale down to: 12 color: black scale down to: 6 symbol font: name: { styling.text_box_mana_symbols } size: 14 scale down to: 6 alignment: script: if card.rule_text == "" then "middle " else "top " + (if (styling.center_text == "short text only" and not contains(match:"\n", card.rule_text) and card.flavor_text == "" and card_style.text.content_lines <= 2) or styling.center_text == "always" then "center" else "left") z index: 3 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.85 line height hard max: {if is_modal(card.rule_text) then 1.0 else 1.3 } line height line max: 1.6 ############################# PT pt: z index: 4 left: 320 top: 420 width: 55 height: 28 alignment: center middle shrink-overflow font: name: Tahoma weight: bold size: 15 color: black separator color: red ############################################################## Extra card fields extra card field: type: text name: module title editable: true save value: true default: "Band Name" extra card field: type: text name: adventure label editable: true save value: true default: "SIDE A / SIDE B" extra card field: type: text name: dnd label multi line: true default: "$2.00" editable: true save value: true extra card field: type: text name: name mirror script: to_upper(name_1()) editable: false save value: false extra card field: type: text name: name mirror 2 script: to_upper(name_2()) editable: false save value: false extra card field: type: choice name: level 2 overlay choice: mask editable: false show statistics: false extra card field: type: choice name: level 3 overlay choice: mask editable: false show statistics: false extra card field: type: choice name: level 4 overlay choice: mask editable: false show statistics: false extra card field: type: choice name: stamp backing choice: stamp save value: false editable: false extra card style: module title: left: 100 top: 7 width: 176 height: 20 alignment: center shrink-overflow padding bottom: 0 z index: 1 font: name: Tahoma weight: bold size: 12 color: black stamp backing: left: 165 top: 475 width: 46 height: 26 z index: 850 visible: { card.card_stamp != "none" } render style: image image: { "/magic-modules.mse-include/stamps/backs/" + (if stamp_shape(field:1) == "triangle" then "triangle_stamp.png" else "stamp.png") } adventure label: left: 18 top: 76 width: 339 height: 15 alignment: center shrink-overflow padding bottom: 0 z index: 1 font: name: Gotham Pro Black size: 10 color: { if card.card_color=="black" or contains(card.card_color, match:"land") then rgb(89,49,120) else if contains(card.card_color, match:"white") then rgb(201,195,155) else if contains(card.card_color, match:"blue") then rgb(88,131,182) else if contains(card.card_color, match:"green") then rgb(53,110,55) else if contains(card.card_color, match:"red") then rgb(172,37,31) else "black"} dnd label: left: 0 top: 54 width: 80 height: 30 angle: 45 alignment: center shrink-overflow padding bottom: 0 z index: 1 font: name: ITC Souvenir Bold size: 15 color: black name mirror: left: 72 top: {if length(card.name) > 18 then 20 else 32} width: 221 height: 38 alignment: middle center shrink-overflow padding bottom: 0 z index: 1 font: name: Fugaz One size: 18 scale down to: 6 weight: bold color: {name_color()} name mirror 2: left: 72 top: 43 width: {if length(card.name) > 18 then 221 else 0} height: 38 alignment: middle center shrink-overflow padding bottom: 0 z index: 1 font: name: Fugaz One size: 18 scale down to: 6 weight: bold color: {name_color()} level 2 overlay: left: 29 top: { top_of_para(rolls_start(card.text))} height: { height_of_para(rolls_start(card.text))} width: 314 z index: 2 render style: image image: d20slice.png visible: {is_d20() and number_of_rolls(card.text) > 0} level 3 overlay: left: 29 top: { top_of_para(rolls_start(card.text)+2)} height: { height_of_para(rolls_start(card.text)+2)} width: 314 z index: 2 render style: image image: d20slice.png visible: {is_d20() and number_of_rolls(card.text) > 2} level 4 overlay: left: 29 top: { top_of_para(rolls_start(card.text)+4)} height: { height_of_para(rolls_start(card.text)+4)} width: 314 z index: 2 render style: image image: d20slice.png visible: {is_d20() and number_of_rolls(card.text) > 4}