diff --git a/data/magic-field-test.mse-export-template/export-template b/data/magic-field-test.mse-export-template/export-template index afd35a9bb..255f7cdfb 100644 --- a/data/magic-field-test.mse-export-template/export-template +++ b/data/magic-field-test.mse-export-template/export-template @@ -1,6 +1,6 @@ mse version: 2.0.0 short name: Field Test -full name: version 0.4 +full name: version 0.5 position hint: 120 icon: icon.png version: 2018-02-09 @@ -29,6 +29,25 @@ script: fixed_set_code := { trim(fix_tm(if options.set_code != "" then options.set_code else set.set_code)) } + ## clean up strays that will mess up the json + escape_backslash := replace@(match:"\\\\", replace:"\\\\\\\\") + escape_quotes := replace@(match:"\"", replace:"\\\\\"") + escape_breaks := replace@(match:"\n", replace:"\\\\n") + apos_fix := replace@(match:"’", replace:"'") + remove_tabs := replace@(match:"\t", replace:"") + + replace@(match:" ", replace:"") + + replace@(match:" +", replace:" ") + remove_controls := replace@(match:"\r", replace:"") + + sanitize := to_text + + escape_backslash + + escape_breaks + + escape_quotes + + remove_controls + + remove_tabs + + apos_fix + + trim + v_rep := { if input != "V" then input @@ -93,7 +112,7 @@ script: notes_grabber := replace@(match:"!notes? ", replace:"") +replace@(match:"([^,]+)", replace:{"\"" + _1 + "\""}) +replace@(match:"italics", replace:"italic") - card_note_array := { "[" + (if notes_grabber(notes_filter(card.notes)) != "" then notes_grabber(notes_filter(card.notes)) else "") + "]" } + card_note_array := { "[" + (if notes_grabber(notes_filter(card.notes)) != "" then sanitize(notes_grabber(notes_filter(card.notes))) else "") + "]" } # process text for LackeyBot lackey_bot_rule_filter := replace@(match:"’", replace:"'")+ @@ -222,13 +241,13 @@ script: write_normal:= { " \{" - + "\"fullName\": \"" + break_cleaner(apos_fix(database_name())) + "\", " - + "\"cardName\": \"" + break_cleaner(remove_tags(card.name)) + "\", " + + "\"fullName\": \"" + sanitize(apos_fix(database_name())) + "\", " + + "\"cardName\": \"" + sanitize(remove_tags(card.name)) + "\", " + "\"manaCost\": \"" + mana_script(card.casting_cost) + "\", " - + "\"typeLine\": \"" + break_cleaner(card.type) + "\", " + + "\"typeLine\": \"" + sanitize(card.type) + "\", " + "\"rarityLine\": \"" + lb_rarity_code() + "\", " - + "\"rulesText\": \"" + (if card.special_text != "" then lackey_bot_rule_filter(text_script(lackey_bot_mana_filter(card.special_text))) else if card.shape == "leveler" then lackey_bot_mana_filter(lackey_bot_rule_filter(leveler_text())) else if card.loyalty != "" then walker_text() else lackey_bot_rule_filter(text_script(lackey_bot_mana_filter(card.rule_text)))) + "\", " - + "\"flavorText\": \"" + flavor_script(card.flavor_text) + "\", " + + "\"rulesText\": \"" + sanitize(if card.special_text != "" then lackey_bot_rule_filter(text_script(lackey_bot_mana_filter(card.special_text))) else if card.shape == "leveler" then lackey_bot_mana_filter(lackey_bot_rule_filter(leveler_text())) else if card.loyalty != "" then walker_text() else lackey_bot_rule_filter(text_script(lackey_bot_mana_filter(card.rule_text)))) + "\", " + + "\"flavorText\": \"" + sanitize(flavor_script(card.flavor_text)) + "\", " + "\"power\": " + (if card.power == "*" then "\"★\"" else if card.power == "" then "\"\"" else if (to_number(card.power) or else false != card.power) then "\"" + card.power + "\"" else card.power) + ", " + "\"toughness\": " + (if card.toughness == "*" then "\"★\"" else if card.toughness == "" then "\"\"" else if (to_number(card.toughness) or else false != card.toughness) then "\"" + card.toughness + "\"" else card.toughness) + ", " + "\"loyalty\": " + (if (to_number(card.loyalty) or else false != card.loyalty) then "\"" + card.loyalty + "\"" else card.loyalty) + ", " @@ -243,23 +262,23 @@ script: + (if token_export() then "\"parentSet\": \"" + fixed_set_code() + "\", " else "") + "\"notes\": " + card_note_array() + ", " + token_scripts() - + "\"artist\": \"" + break_cleaner(quote_replace(card.illustrator)) + + "\"artist\": \"" + sanitize(card.illustrator) + (if contains(card.shape, match: "split") or contains(card.shape, match:"double") and card.illustrator != card.illustrator_2 and card.illustrator_2 != "" then - "\", \"artist2\": \"" + quote_replace(break_cleaner(card.illustrator_2))) + "\", \"artist2\": \"" + sanitize(card.illustrator_2)) + "\"\},\n" } secondCard := { ( if card.alias_2 != "" then - "\"cardName2\": \"" + break_cleaner(card.alias_2) + "\", " - + "\"alias2\": \"" + break_cleaner(remove_tags(card.name_2)) + "\", " - else "\"cardName2\": \"" + break_cleaner(remove_tags(card.name_2)) + "\", " + "\"cardName2\": \"" + sanitize(card.alias_2) + "\", " + + "\"alias2\": \"" + sanitize(remove_tags(card.name_2)) + "\", " + else "\"cardName2\": \"" + sanitize(remove_tags(card.name_2)) + "\", " ) + "\"manaCost2\": \"" + mana_script(card.casting_cost_2) + "\", " - + "\"typeLine2\": \"" + break_cleaner(card.type_2) + "\", " + + "\"typeLine2\": \"" + sanitize(card.type_2) + "\", " + "\"rarityLine2\": \"" + lb_rarity_code() + "\", " - + "\"rulesText2\": \"" + (if card.special_text_2 != "" then lackey_bot_rule_filter(text_script(lackey_bot_mana_filter(card.special_text_2))) else if card.loyalty_2 != "" then walker_text_2() else lackey_bot_rule_filter(text_script(lackey_bot_mana_filter(card.rule_text_2)))) + "\", " - + "\"flavorText2\": \"" + flavor_script(card.flavor_text_2) + "\", " + + "\"rulesText2\": \"" + sanitize(if card.special_text_2 != "" then lackey_bot_rule_filter(text_script(lackey_bot_mana_filter(card.special_text_2))) else if card.loyalty_2 != "" then walker_text_2() else lackey_bot_rule_filter(text_script(lackey_bot_mana_filter(card.rule_text_2)))) + "\", " + + "\"flavorText2\": \"" + sanitize(flavor_script(card.flavor_text_2)) + "\", " + "\"power2\": " + (if card.power_2 == "*" then "\"★\"" else if card.power_2 == "" then "\"\"" else if (to_number(card.power_2) or else false != card.power_2) then "\"" + card.power_2 + "\"" else card.power_2) + ", " + "\"toughness2\": " + (if card.toughness_2 == "*" then "\"★\"" else if card.toughness_2 == "" then "\"\"" else if (to_number(card.toughness_2) or else false != card.toughness_2) then "\"" + card.toughness_2 + "\"" else card.toughness_2) + ", " + "\"loyalty2\": " + (if (to_number(card.loyalty_2) or else false != card.loyalty_2) then "\"" + card.loyalty_2 + "\"" else card.loyalty_2) + ", " diff --git a/data/magic-old-saga.mse-style/card-sample.png b/data/magic-old-saga.mse-style/card-sample.png new file mode 100644 index 000000000..301fa096c Binary files /dev/null and b/data/magic-old-saga.mse-style/card-sample.png differ diff --git a/data/magic-old-saga.mse-style/card/acard.jpg b/data/magic-old-saga.mse-style/card/acard.jpg new file mode 100644 index 000000000..1de1fa258 Binary files /dev/null and b/data/magic-old-saga.mse-style/card/acard.jpg differ diff --git a/data/magic-old-saga.mse-style/card/bcard.jpg b/data/magic-old-saga.mse-style/card/bcard.jpg new file mode 100644 index 000000000..6b33ac728 Binary files /dev/null and b/data/magic-old-saga.mse-style/card/bcard.jpg differ diff --git a/data/magic-old-saga.mse-style/card/ccard.jpg b/data/magic-old-saga.mse-style/card/ccard.jpg new file mode 100644 index 000000000..e0ffa31ac Binary files /dev/null and b/data/magic-old-saga.mse-style/card/ccard.jpg differ diff --git a/data/magic-old-saga.mse-style/card/gcard.jpg b/data/magic-old-saga.mse-style/card/gcard.jpg new file mode 100644 index 000000000..ffba348e0 Binary files /dev/null and b/data/magic-old-saga.mse-style/card/gcard.jpg differ diff --git a/data/magic-old-saga.mse-style/card/lcard.jpg b/data/magic-old-saga.mse-style/card/lcard.jpg new file mode 100644 index 000000000..edbc692dc Binary files /dev/null and b/data/magic-old-saga.mse-style/card/lcard.jpg differ diff --git a/data/magic-old-saga.mse-style/card/mcard.jpg b/data/magic-old-saga.mse-style/card/mcard.jpg new file mode 100644 index 000000000..642937ce4 Binary files /dev/null and b/data/magic-old-saga.mse-style/card/mcard.jpg differ diff --git a/data/magic-old-saga.mse-style/card/rcard.jpg b/data/magic-old-saga.mse-style/card/rcard.jpg new file mode 100644 index 000000000..9e3e9aab4 Binary files /dev/null and b/data/magic-old-saga.mse-style/card/rcard.jpg differ diff --git a/data/magic-old-saga.mse-style/card/ucard.jpg b/data/magic-old-saga.mse-style/card/ucard.jpg new file mode 100644 index 000000000..32fc7f4cc Binary files /dev/null and b/data/magic-old-saga.mse-style/card/ucard.jpg differ diff --git a/data/magic-old-saga.mse-style/card/wcard.jpg b/data/magic-old-saga.mse-style/card/wcard.jpg new file mode 100644 index 000000000..4aab58498 Binary files /dev/null and b/data/magic-old-saga.mse-style/card/wcard.jpg differ diff --git a/data/magic-old-saga.mse-style/divide.png b/data/magic-old-saga.mse-style/divide.png new file mode 100644 index 000000000..70982e1b1 Binary files /dev/null and b/data/magic-old-saga.mse-style/divide.png differ diff --git a/data/magic-old-saga.mse-style/style b/data/magic-old-saga.mse-style/style new file mode 100644 index 000000000..944dd0cd2 --- /dev/null +++ b/data/magic-old-saga.mse-style/style @@ -0,0 +1,539 @@ +mse version: 2.0.0 +game: magic +short name: Old style saga +full name: Sagas (Before 8th edition) +installer group: magic/old style/normal cards +icon: card-sample.png +position hint: 310 + +version: 2025-05-12 +depends on: + package: magic.mse-game + version: 2020-04-25 +depends on: + package: magic-mana-small.mse-symbol-font + version: 2007-09-23 +depends on: + package: magic-mainframe-extras.mse-include + version: 2018-01-01 +depends on: + package: magic-modules.mse-include + version: 2024-10-01 + +card width: 375 +card height: 523 +card dpi: 150 +#### Images by Grapple +############################################################## Extra scripts +init script: + # 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 } + + + template_prefix := [ + card: "card/" + ] + template_suffix := [ + card: "card.jpg" + ] + template := { template_prefix[type] + input + template_suffix[type] } + land_template := { template_prefix[type] + "l" + template_suffix[type] } + + # Only white cards use a black font + #font_colors_white := { input != "w" } + b_text := {styling.black_text_on_white_cards} + + replace_symbols_testing := { + vairable := replace(match:"([A-Za-z])", replace:{"\{"+_1+"\}"}) + } + + # Check to decide if the card is a basic land. + + #chop/shrink functions + chop_top := {if styling.chop_top == "" then 0 else if comma_count(styling.chop_top) == "," or comma_count(styling.chop_top) == ",," then split_text(match:",", styling.chop_top).0 else styling.chop_top} + chop_bot := {if comma_count(styling.chop_top) == ",," then split_text(match:",", styling.chop_top).1 else if styling.chop_bottom == "" then 0 else styling.chop_bottom} + top_of_textbox := {318 + chop_top() } + bottom_of_textbox := {461 - chop_bot() } + shrink_type := {if styling.shrink_typeline_text != "" then to_int(styling.shrink_typeline_text) else if length(remove_tags(card.type)) > 41 then 2 else if length(remove_tags(card.type)) > 38 then 1 else 0 } + shrink_name := {if styling.shrink_name_text != "" then to_int(styling.shrink_name_text) else 0 } + + custom_watermark_a := {if styling.card_watermark == "" or not contains(styling.card_watermark, match:".png") then "/magic-watermarks.mse-include/planeswalker.png" else "/magic-watermarks.mse-include/" + styling.card_watermark} + + watermark_include := "/magic-modules.mse-include/watermarks" + information_codes_offset_left_1 := {4} + information_offset_top_1 := {-1} + + alt_text := { true } + alt_text_script := { + combined_editor( + field1: card.chapter_text, + separator1: "\n", + field2: card.level_1_text, + separator2: "\n", + field3: card.level_2_text, + separator3: "\n", + field4: card.level_3_text + separator4: "\n", + field5: card.level_4_text + ) + } + + swap_fonts_name_default := [ + name: {"MagicMedieval"}, + size: {15.5}, + color: { if card.card_color == "white" and b_text() then rgb(0,0,0) else rgb(255,255,255) }, + vertical: {0}, + italic: {""} + ] + swap_fonts_type_default := [ + name: {"MPlantin"}, + size: {12}, + color: { if card.card_color == "white" and b_text() then rgb(0,0,0) else rgb(255,255,255) }, + vertical: {0}, + italic: {""} + ] + swap_fonts_body_default := [ + name: {"MPlantin"}, + size: {14}, + color: {"black"}, + vertical: {0}, + italic: {"MPlantin-Italic"} + ] + swap_fonts_pt_default := [ + name: {styling.pt_font}, + size: {17}, + color: { if card.card_color == "white" and b_text() then rgb(0,0,0) else rgb(255,255,255) }, + vertical: {0}, + italic: {""} + ] + + divider_position := { + if card_style.text.layout.blocks[1].bottom or else 0 <= 0 + then 0 + else ( + boxes := [card.chapter_text, card.level_1_text, card.level_2_text, card.level_3_text, card.level_4_text] + top_box := boxes[input] + bot_box := boxes[input+1] + if top_box != "" and bot_box != "" + then card_style.text.top + card_style.text.layout.separators[input] + else 0 + ) + } + +############################################################## Set info fields +set info style: + symbol: + variation: + name: olduncommon + border radius: 0.10 + fill type: linear gradient + fill color 1: rgb(224,224,224) + fill color 2: rgb(84, 84, 84) + border color 1: rgb(255,255,255) + border color 2: rgb(255,255,255) + variation: + name: oldrare + border radius: 0.10 + fill type: linear gradient + fill color 1: rgb(214,196,94) + fill color 2: rgb(95, 84, 40) + border color 1: rgb(255,255,255) + border color 2: rgb(255,255,255) + variation: + name: oldmythic + border radius: 0.10 + fill type: linear gradient + fill color 1: rgb(247,151,29) + fill color 2: rgb(187,44,38) + border color 1: rgb(255,255,255) + border color 2: rgb(255,255,255) +############################################################## Extra style options +styling field: + type: text + name: chop top + description: Shrinks the textbox X pixels from the top OR shrinks "top,bottom," +styling field: + type: text + name: chop bottom + description: Shrinks the textbox X pixels from the bottom. +styling field: + type: text + name: shrink name text + description: Reduces the name text N points. +styling field: + type: text + name: shrink typeline text + description: Reduces the typeline text N points. +styling field: + type: boolean + name: black text on white cards + description: Use black text on white cards. + initial: no +styling field: + type: text + name: card watermark + description: Filename in magic-watermarks to use for standalone card watermark +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: package choice + name: text box mana symbols + match: magic-mana-*.mse-symbol-font + initial: magic-mana-small.mse-symbol-font +styling field: + type: package choice + name: casting cost mana symbols + match: magic-mana-*.mse-symbol-font + initial: magic-mana-small.mse-symbol-font +styling field: + type: choice + name: tap symbol + description: What tap and untap symbols should be used on cards? + initial: old + choice: modern + choice: old + choice: diagonal T +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: colored rarities + description: Should rarity symbols be different colors, such as gold, silver, and purple? + initial: yes +styling field: + type: boolean + name: left align artist + description: Should the artist and copyright lines be left aligned, as seen in Tempest? + 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 field: + type: choice + name: pt font + description: Should the font used for p/t be MPlantin or MPlantin-Bold? MPlantin was used until Mirage. + initial: MPlantin-Bold + choice: MPlantin + choice: MPlantin-Bold +styling field: + type: multiple choice + name: colored nonbasic land trim + description: Which parts of the frame should be colored on nonbasic lands? (Real cards have both colored trim and colored textboxes.) + initial: trim, textbox + choice: trim + choice: textbox +styling field: + type: color + name: copyright font + description: What color should the copyright line be? + choice: + name: white + color: rgb(255,255,255) + choice: + name: black + color: rgb(0,0,0) +include file: /magic-modules.mse-include/fonts/styling_fields +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-small.mse-symbol-font/mana_t.png + old: /magic-mana-small.mse-symbol-font/mana_t_old.png + diagonal T: /magic-mana-small.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 + colored rarities: + choice images: + no: { symbol_variation(symbol: set.symbol, variation: "common") } + yes: { symbol_variation(symbol: set.symbol, variation: "rare") } +############################################################## Card fields +include file: /magic-modules.mse-include/corners/card_fields +include file: /magic-modules.mse-include/information/the_list_old +card style: + ############################# Background stuff + border color: + left: 0 + top : 0 + width: 375 + height: 523 + radius: 18 + left width: 19 + right width: 19 + top width: 19 + bottom width: 19 + z index: 500 + card color: + left: 0 + top: 0 + width: 375 + height: 523 + z index: 200 + render style: image + popup style: in place + image: { color_background(type:"card", base_hybrid:card_hybrid, multicolor_blend:"black", hybrid_blend:"white", artifact_blend:"white") } + ############################# Name line + name: + left: 42 + top: { 24 + name_font_vertical() } + right: { 341 - card_style.casting_cost.content_width } + height: { 23 - (0.5 * shrink_name()) } + alignment: bottom shrink-overflow + padding bottom: 0 + z index: 900 + font: + name: { name_font() } + italic name: { name_font_italic() } + size: { name_font_size() } + color: {name_font_color() } + shadow color: { if name_font_color() == to_color("black") then rgb(255,255,255) else rgb(0,0,0) } + shadow displacement x: 1 + shadow displacement y: 1 + casting cost: + right: 341 + top : 22 + width: { max(30, card_style.casting_cost.content_width) + 5 } + height: 24 + alignment: middle right + symbol font: + name: {styling.casting_cost_mana_symbols} + size: 15 + alignment: middle right + always symbol: true + z index: 910 + padding top: 0 + card symbol: + left: 24 + top : 24 + height: 20 + width: 14 + z index: 700 + render style: image + image: { card_symbol_image(face: 1) } + ############################# Image + image: + left: 200 + top: 51 + width: 130 + height: 388 + z index: 400 + ############################# Card type + type: + left: 39 + top : 445 + width: { 298 - max(22,card_style.rarity.content_width) } + height: {20 - (0.5 * shrink_type())} + alignment: middle shrink-overflow + z index: 900 + padding top: 2 + font: + name: { type_font() } + italic name: { type_font_italic() } + size: { type_font_size() } + color: { type_font_color() } + shadow color: { if type_font_color() == to_color("black") then rgb(255,255,255) else rgb(0,0,0) } + shadow displacement x: 1 + shadow displacement y: 1 + separator color: rgb(128,128,128) + rarity: + left: 293 + top : 445 + width: 44 + height: 22 + z index: 920 + alignment: middle right + render style: image + include file: /magic-modules.mse-include/rarities/choice_images_old + ############################# Text box + text: + left: 43 + top : {(50 - (-chop_top()))} + width: 141 + bottom: {(436 - chop_bot())} + font: + name: { body_font() } + italic name: { body_font_italic() } + size: { body_font_size() } + scale down to: 6 + color: { body_font_color() } + symbol font: + name: { styling.text_box_mana_symbols } + size: { body_font_size() } + 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" + z index: 900 + padding left: 6 + padding top: 4 + padding right: 4 + padding bottom: 4 + line height hard: 1.2 + line height line: 1.5 + line height soft: 0.9 + line height line max: 2.5 + watermark: + left: 120 + top : 313 + width: 138 + height: 150 + z index: 1 + render style: image + alignment: middle center + image: { watermark_image_1() } + ############################# PT + pt: + z index: 910 + left: 295 + top: 470 + width: 47 + height: 27 + alignment: right middle + font: + name: { pt_font() } + italic name: { pt_font_italic() } + size: { pt_font_size() } + color: { pt_font_color() } + shadow color: { if pt_font_color() == to_color("black") then rgb(255,255,255) else rgb(0,0,0) } + shadow displacement x: 1 + shadow displacement y: 1 + separator color: rgb(200,0,0) + ############################# Card sorting / numbering + ############################# Copyright stuff + illustrator: + left: 40 + top : 470 + width: 297 + height: 16 + z index: 900 + alignment: { if styling.left_align_artist then "middle left" else "middle center" } + font: + name: MPlantin + size: 10 + color: {if card.card_color == "white" and b_text() then rgb(0,0,0) else rgb(255,255,255)} + shadow color: {if card.card_color == "white" and b_text() then rgb(255,255,255) else rgb(0,0,0)} + shadow displacement x: 1 + shadow displacement y: 1 + copyright line: + left: 40 + top : 486 + width: 297 + height: 12 + z index: 900 + alignment: { if styling.left_align_artist then "middle left" else "middle center" } + font: + name: MPlantin + size: 6.5 + color: {if card.card_color == "white" and b_text() then rgb(0,0,0) else rgb(255,255,255)} + shadow color: {if card.card_color == "white" and b_text() then rgb(255,255,255) else rgb(0,0,0)} + shadow displacement x: 1 + shadow displacement y: 1 +############################################################## Extra card fields +extra card field: + type: choice + name: foil layer + choice: foil + save value: false + editable: false +extra card field: + type: choice + name: land color overlay + choice: yes + save value: false + editable: false + script: card.card_color +extra card field: + type: choice + name: divider 0 + choice: divider + editable: false + save value: false +extra card field: + type: choice + name: divider 1 + choice: divider + editable: false + save value: false +extra card field: + type: choice + name: divider 2 + choice: divider + editable: false + save value: false +extra card field: + type: choice + name: divider 3 + choice: divider + editable: false + save value: false +extra card style: + foil layer: + left: 0 + top : 0 + width: 375 + height: 523 + z index: 1010 + render style: image + image: {if styling.overlay == "" then nil else styling.overlay + "/overlay.png"} + divider 0: + left: 50 + top: { divider_position(0) - 4 } + width: 135 + height: 8 + render style: image + image: divide.png + z index: 600 + divider 1: + left: 50 + top: { divider_position(1) - 4 } + width: 135 + height: 8 + render style: image + image: divide.png + z index: 600 + divider 2: + left: 50 + top: { divider_position(2) - 4 } + width: 135 + height: 8 + render style: image + image: divide.png + z index: 600 + divider 3: + left: 50 + top: { divider_position(3) - 4 } + width: 135 + height: 8 + render style: image + image: divide.png + z index: 600