diff --git a/data/magic-crystal-cave.mse-style/card/a.png b/data/magic-crystal-cave.mse-style/card/a.png new file mode 100644 index 000000000..940a820b7 Binary files /dev/null and b/data/magic-crystal-cave.mse-style/card/a.png differ diff --git a/data/magic-crystal-cave.mse-style/card/b.png b/data/magic-crystal-cave.mse-style/card/b.png new file mode 100644 index 000000000..bac554164 Binary files /dev/null and b/data/magic-crystal-cave.mse-style/card/b.png differ diff --git a/data/magic-crystal-cave.mse-style/card/c.png b/data/magic-crystal-cave.mse-style/card/c.png new file mode 100644 index 000000000..1a4bcee75 Binary files /dev/null and b/data/magic-crystal-cave.mse-style/card/c.png differ diff --git a/data/magic-crystal-cave.mse-style/card/g.png b/data/magic-crystal-cave.mse-style/card/g.png new file mode 100644 index 000000000..2cbdf5932 Binary files /dev/null and b/data/magic-crystal-cave.mse-style/card/g.png differ diff --git a/data/magic-crystal-cave.mse-style/card/m.png b/data/magic-crystal-cave.mse-style/card/m.png new file mode 100644 index 000000000..ea9ea19f5 Binary files /dev/null and b/data/magic-crystal-cave.mse-style/card/m.png differ diff --git a/data/magic-crystal-cave.mse-style/card/r.png b/data/magic-crystal-cave.mse-style/card/r.png new file mode 100644 index 000000000..b6bb88d65 Binary files /dev/null and b/data/magic-crystal-cave.mse-style/card/r.png differ diff --git a/data/magic-crystal-cave.mse-style/card/u.png b/data/magic-crystal-cave.mse-style/card/u.png new file mode 100644 index 000000000..727176197 Binary files /dev/null and b/data/magic-crystal-cave.mse-style/card/u.png differ diff --git a/data/magic-crystal-cave.mse-style/card/w.png b/data/magic-crystal-cave.mse-style/card/w.png new file mode 100644 index 000000000..984af16cc Binary files /dev/null and b/data/magic-crystal-cave.mse-style/card/w.png differ diff --git a/data/magic-crystal-cave.mse-style/card_mask.png b/data/magic-crystal-cave.mse-style/card_mask.png new file mode 100644 index 000000000..37a0c889c Binary files /dev/null and b/data/magic-crystal-cave.mse-style/card_mask.png differ diff --git a/data/magic-crystal-cave.mse-style/card_sample.png b/data/magic-crystal-cave.mse-style/card_sample.png new file mode 100644 index 000000000..d80759167 Binary files /dev/null and b/data/magic-crystal-cave.mse-style/card_sample.png differ diff --git a/data/magic-crystal-cave.mse-style/crown/a.png b/data/magic-crystal-cave.mse-style/crown/a.png new file mode 100644 index 000000000..1f90fb666 Binary files /dev/null and b/data/magic-crystal-cave.mse-style/crown/a.png differ diff --git a/data/magic-crystal-cave.mse-style/crown/b.png b/data/magic-crystal-cave.mse-style/crown/b.png new file mode 100644 index 000000000..d61f397c1 Binary files /dev/null and b/data/magic-crystal-cave.mse-style/crown/b.png differ diff --git a/data/magic-crystal-cave.mse-style/crown/c.png b/data/magic-crystal-cave.mse-style/crown/c.png new file mode 100644 index 000000000..6cbcb044b Binary files /dev/null and b/data/magic-crystal-cave.mse-style/crown/c.png differ diff --git a/data/magic-crystal-cave.mse-style/crown/g.png b/data/magic-crystal-cave.mse-style/crown/g.png new file mode 100644 index 000000000..9a19a8671 Binary files /dev/null and b/data/magic-crystal-cave.mse-style/crown/g.png differ diff --git a/data/magic-crystal-cave.mse-style/crown/m.png b/data/magic-crystal-cave.mse-style/crown/m.png new file mode 100644 index 000000000..1beec354a Binary files /dev/null and b/data/magic-crystal-cave.mse-style/crown/m.png differ diff --git a/data/magic-crystal-cave.mse-style/crown/r.png b/data/magic-crystal-cave.mse-style/crown/r.png new file mode 100644 index 000000000..c1bf711fa Binary files /dev/null and b/data/magic-crystal-cave.mse-style/crown/r.png differ diff --git a/data/magic-crystal-cave.mse-style/crown/u.png b/data/magic-crystal-cave.mse-style/crown/u.png new file mode 100644 index 000000000..c38a985ac Binary files /dev/null and b/data/magic-crystal-cave.mse-style/crown/u.png differ diff --git a/data/magic-crystal-cave.mse-style/crown/w.png b/data/magic-crystal-cave.mse-style/crown/w.png new file mode 100644 index 000000000..9645692e1 Binary files /dev/null and b/data/magic-crystal-cave.mse-style/crown/w.png differ diff --git a/data/magic-crystal-cave.mse-style/foil_mask.png b/data/magic-crystal-cave.mse-style/foil_mask.png new file mode 100644 index 000000000..e9edb9cfc Binary files /dev/null and b/data/magic-crystal-cave.mse-style/foil_mask.png differ diff --git a/data/magic-crystal-cave.mse-style/image_mask.png b/data/magic-crystal-cave.mse-style/image_mask.png new file mode 100644 index 000000000..0a02f4f2d Binary files /dev/null and b/data/magic-crystal-cave.mse-style/image_mask.png differ diff --git a/data/magic-crystal-cave.mse-style/pt/a.png b/data/magic-crystal-cave.mse-style/pt/a.png new file mode 100644 index 000000000..dee5ba3de Binary files /dev/null and b/data/magic-crystal-cave.mse-style/pt/a.png differ diff --git a/data/magic-crystal-cave.mse-style/pt/b.png b/data/magic-crystal-cave.mse-style/pt/b.png new file mode 100644 index 000000000..080b9ef4a Binary files /dev/null and b/data/magic-crystal-cave.mse-style/pt/b.png differ diff --git a/data/magic-crystal-cave.mse-style/pt/c.png b/data/magic-crystal-cave.mse-style/pt/c.png new file mode 100644 index 000000000..7713e0c4f Binary files /dev/null and b/data/magic-crystal-cave.mse-style/pt/c.png differ diff --git a/data/magic-crystal-cave.mse-style/pt/g.png b/data/magic-crystal-cave.mse-style/pt/g.png new file mode 100644 index 000000000..a325e0a9f Binary files /dev/null and b/data/magic-crystal-cave.mse-style/pt/g.png differ diff --git a/data/magic-crystal-cave.mse-style/pt/m.png b/data/magic-crystal-cave.mse-style/pt/m.png new file mode 100644 index 000000000..77b9dca6d Binary files /dev/null and b/data/magic-crystal-cave.mse-style/pt/m.png differ diff --git a/data/magic-crystal-cave.mse-style/pt/r.png b/data/magic-crystal-cave.mse-style/pt/r.png new file mode 100644 index 000000000..23a1c3173 Binary files /dev/null and b/data/magic-crystal-cave.mse-style/pt/r.png differ diff --git a/data/magic-crystal-cave.mse-style/pt/u.png b/data/magic-crystal-cave.mse-style/pt/u.png new file mode 100644 index 000000000..06d63b712 Binary files /dev/null and b/data/magic-crystal-cave.mse-style/pt/u.png differ diff --git a/data/magic-crystal-cave.mse-style/pt/w.png b/data/magic-crystal-cave.mse-style/pt/w.png new file mode 100644 index 000000000..d08ce3b55 Binary files /dev/null and b/data/magic-crystal-cave.mse-style/pt/w.png differ diff --git a/data/magic-crystal-cave.mse-style/special_blend_pt.png b/data/magic-crystal-cave.mse-style/special_blend_pt.png new file mode 100644 index 000000000..7ab7b0255 Binary files /dev/null and b/data/magic-crystal-cave.mse-style/special_blend_pt.png differ diff --git a/data/magic-crystal-cave.mse-style/stamp_border_mask.png b/data/magic-crystal-cave.mse-style/stamp_border_mask.png new file mode 100644 index 000000000..f985bfc89 Binary files /dev/null and b/data/magic-crystal-cave.mse-style/stamp_border_mask.png differ diff --git a/data/magic-crystal-cave.mse-style/style b/data/magic-crystal-cave.mse-style/style new file mode 100644 index 000000000..3be2c6010 --- /dev/null +++ b/data/magic-crystal-cave.mse-style/style @@ -0,0 +1,351 @@ +mse version: 2.5.6 +game: magic +short name: Crystal Caves +full name: by Kermit7331 +icon: card_sample.png +position hint: 083 + +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: 750 +card height: 1046 +card dpi: 300 + +### blanks by Kermit7331, TorskeRavn, GenevensiS and ChatGPT +### code by GenevensiS + +############################################################## Extra scripts + +init script: + swap_fonts_pt_default := + [ + name: {"Beleren Bold"}, + size: {32.0}, + color: {"white"}, + vertical: {0}, + italic: {""} + ] + + swap_fonts_body_default := + [ + name: {"MPlantin"}, + size: {27.0}, + color: {"white"}, + vertical: {0}, + italic: {"MPlantin-Italic"} + ] + + typeline_offset_top_1 := { 8 } + typeline_offset_left_1 := { 12 } + typeline_offset_width_1 := { -21 } + rarity_offset_top_1 := { 1 } + indicator_offset_top_1 := { -2 } + swap_fonts_type_default := + [ + name: {"Beleren Bold"}, + size: {26.0}, + color: {"black"}, + vertical: {0}, + italic: {""} + ] + + transform_symbol_disabled_1 := { true } + nameline_offset_top_1 := { 18 } + nameline_offset_left_1 := { 15 } + nameline_offset_width_1 := { -33 } + casting_cost_offset_top_1 := { 1 } + swap_fonts_name_default := + [ + name: {"Beleren Bold"}, + size: {28.0}, + color: {"black"}, + vertical: {0}, + italic: {""} + ] + + card_stamp_offset_top_1 := { if stamp_shape() == "triangle" then 6 else 0 } + + invert_watermark_1 := { true } + + template_prefix := + [ + border: "border/", + card: "card/", + pt: "pt/", + crown: "crown/", + alias: "alias/", + stamp: "stamp/", + nonstamp: "nonstamp/" + identity: "/magic-modules.mse-include/indicators/", + identity2: "/magic-modules.mse-include/indicators/", + ] + template_suffix := + [ + border: ".png", + card: ".png", + pt: ".png", + crown: ".png", + alias: ".png", + stamp: ".png", + nonstamp: ".png" + identity: "identity.png", + identity2: "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] } + + card_border := { color_background(input: card.card_color, type: "border", base_hybrid: card_hybrid, multicolor_blend: "white", hybrid_blend: "white", artifact_blend: "white") } + card_background := { color_background(input: card.card_color, type: "card", base_hybrid: card_hybrid, multicolor_blend: "white", hybrid_blend: "white", artifact_blend: "white") } + card_ptbox := { color_background(input: card.card_color, type: "pt", base_hybrid: card_hybrid, multicolor_blend: "white", hybrid_blend: "white", artifact_blend: "white") } + card_crown := { color_background(input: card.card_color, type: "crown", base_hybrid: card_hybrid, multicolor_blend: "white", hybrid_blend: "white", artifact_blend: "white") } + card_alias := { color_background(input: card.card_color, type: "alias", base_hybrid: card_hybrid, multicolor_blend: "white", hybrid_blend: "white", artifact_blend: "white") } + card_stamp := { color_background(input: card.card_color, type: "stamp", base_hybrid: card_hybrid, multicolor_blend: "white", hybrid_blend: "white", artifact_blend: "white") } + card_nonstamp := { color_background(input: card.card_color, type: "nonstamp", base_hybrid: card_hybrid, multicolor_blend: "white", hybrid_blend: "white", artifact_blend: "white") } + + pure_colors := + { + sort_text( + order: if card_is_wedge(input) then "(wbgur)" else "(wubrg)", + (if chosen(card.card_color, choice:"white") then "w") + + (if chosen(card.card_color, choice:"blue") then "u") + + (if chosen(card.card_color, choice:"black") then "b") + + (if chosen(card.card_color, choice:"red") then "r") + + (if chosen(card.card_color, choice:"green") then "g") + ) + } + pt_colors := { if styling.PT_color_scheme == "canon" then pt_colors_canon() else styling.PT_color_scheme } + pt_colors_canon := { if contains(card.card_color, match: "hybrid") then "land" else "gold" } + + 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)) } + + foil_mask_added_sections := { [] } + foil_mask_removed_sections := { [] } + + chop_top := { split := split_comma(styling.chop_text_box); if length(split) > 0 and split[0] != "" and split[0] != "-" then clamp(split[0], maximum:500, minimum:-500) else 0 } + chop_bottom := { split := split_comma(styling.chop_text_box); if length(split) > 1 and split[1] != "" and split[1] != "-" then clamp(split[1], maximum:500, minimum:-500) else 0 } + chop_right := { split := split_comma(styling.chop_text_box); if length(split) > 2 and split[2] != "" and split[2] != "-" then clamp(split[2], maximum:500, minimum:-500) else 0 } + + popout_left := { split := split_comma(styling.popout_art_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_art_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_art_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_art_coordinates); if length(split) > 3 and split.3 != "" then clamp(split.3, maximum: 2000, minimum: 0) else 0 } + + art_left := { if styling.stretch_art_to_whole_card then 0 else 70 } + art_top := { if styling.stretch_art_to_whole_card then 0 else 137 } + art_width := { if styling.stretch_art_to_whole_card then stylesheet.card_width else 610 } + art_height := { if styling.stretch_art_to_whole_card then stylesheet.card_height else 449 } + + art_mask := { crop("image_mask.png", offset_x: art_left(), offset_y: art_top(), width: art_width(), height: art_height()) } + +############################################################## Extra style options + +styling field: + type: text + name: popout art 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 art 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 + +include file: /magic-modules.mse-include/texts/styling_fields + +styling field: + type: choice + name: PT color scheme + description: Use the selected color scheme for the PT box on two color cards. Canon is "land" on hybrid cards, "gold" otherwise. + choice: canon + choice: gold + choice: hybrid + choice: colored + choice: land + initial: canon +styling field: + type: choice + name: legend crown + description: Use the legend crown? + choice: yes + choice: if legendary + choice: no + initial: if legendary + +include file: /magic-modules.mse-include/rarities/styling_fields + +include file: /magic-modules.mse-include/watermarks/styling_fields + +include file: /magic-modules.mse-include/foils/styling_fields + +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/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 + +include file: /magic-modules.mse-include/namelines/card_fields + +include file: /magic-modules.mse-include/typelines/card_fields + +include file: /magic-modules.mse-include/foils/card_fields + +card style: + ############################# Background stuff + card color: + left: 0 + top: 0 + width: { stylesheet.card_width } + height: { stylesheet.card_height } + z index: 200 + popup style: in place + render style: image + image: { card_background() } + mask: card_mask.png + ############################# Image + image: + left: { art_left() } + top: { art_top() } + width: { art_width() } + height: { art_height() } + z index: 100 + mask: { art_mask() } + mainframe image: + left: { popout_left() } + top: { popout_top() } + width: { popout_width() } + height: { popout_height() } + z index: 1000 + ############################# Text box + text: + left: 84 + top: { 674 + chop_top() + body_font_vertical() } + right: { 666 - chop_right() } + bottom: { 940 - chop_bottom() } + 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: + script: + 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 "middle center" + else "middle left" + font: + name: { body_font() } + italic name: { body_font_italic() } + size: { body_font_size() } + scale down to: 7 + color: { body_font_color() } + symbol font: + name: { styling.text_box_mana_symbols } + size: { body_font_size() } + scale down to: 7 + ############################# PT + pt: + left: 580 + top: { 924 + pt_font_vertical() } + width: 98 + height: 49 + 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: crown + script: card.card_color + editable: false + save value: false + show statistics: false +extra card field: + type: color + name: card stamp border + script: rgb(0,0,0) + editable: false + save value: false + show statistics: false + +extra card style: + pt box: + left: 0 + top: 0 + width: { stylesheet.card_width } + height: { stylesheet.card_height } + z index: 800 + visible: { card.pt != "" } + render style: image + image: + script: + pure := pure_colors() + count := length(pure) + color := pt_colors() + if color == "gold" and count > 1 then template("m", type: "pt") + else if color == "land" and count > 1 then template("c", type: "pt") + else if color == "hybrid" and count == 2 then masked_blend(mask: "special_blend_pt.png", dark: template(pure.0, type: "pt"), light: template(pure.1, type: "pt")) + else card_ptbox() + crown: + left: 0 + top: 0 + width: { stylesheet.card_width } + height: { stylesheet.card_height } + z index: 310 + visible: { is_crowned() } + render style: image + image: { card_crown() } + card stamp border: + left: 0 + top: 0 + width: { stylesheet.card_width } + height: { stylesheet.card_height } + z index: 210 + visible: { is_stamped() } + mask: stamp_border_mask.png