diff --git a/data/yugioh-standard.mse-style/bar.png b/data/yugioh-standard.mse-style/bar.png new file mode 100644 index 00000000..3ac59e97 Binary files /dev/null and b/data/yugioh-standard.mse-style/bar.png differ diff --git a/data/yugioh-standard.mse-style/card-dragons.jpg b/data/yugioh-standard.mse-style/card-dragons.jpg index da60f8cf..9182b857 100644 Binary files a/data/yugioh-standard.mse-style/card-dragons.jpg and b/data/yugioh-standard.mse-style/card-dragons.jpg differ diff --git a/data/yugioh-standard.mse-style/card-effect.jpg b/data/yugioh-standard.mse-style/card-effect.jpg index aa481905..1ffb8f18 100644 Binary files a/data/yugioh-standard.mse-style/card-effect.jpg and b/data/yugioh-standard.mse-style/card-effect.jpg differ diff --git a/data/yugioh-standard.mse-style/card-fusion.jpg b/data/yugioh-standard.mse-style/card-fusion.jpg index 810c96a9..3708d880 100644 Binary files a/data/yugioh-standard.mse-style/card-fusion.jpg and b/data/yugioh-standard.mse-style/card-fusion.jpg differ diff --git a/data/yugioh-standard.mse-style/card-normal.jpg b/data/yugioh-standard.mse-style/card-normal.jpg index 7463a7bd..7050b829 100644 Binary files a/data/yugioh-standard.mse-style/card-normal.jpg and b/data/yugioh-standard.mse-style/card-normal.jpg differ diff --git a/data/yugioh-standard.mse-style/card-obelisk.jpg b/data/yugioh-standard.mse-style/card-obelisk.jpg index a8e02577..c9cfb7a0 100644 Binary files a/data/yugioh-standard.mse-style/card-obelisk.jpg and b/data/yugioh-standard.mse-style/card-obelisk.jpg differ diff --git a/data/yugioh-standard.mse-style/card-ra.jpg b/data/yugioh-standard.mse-style/card-ra.jpg index b858ecba..20b11e30 100644 Binary files a/data/yugioh-standard.mse-style/card-ra.jpg and b/data/yugioh-standard.mse-style/card-ra.jpg differ diff --git a/data/yugioh-standard.mse-style/card-ritual.jpg b/data/yugioh-standard.mse-style/card-ritual.jpg index 140ac7d3..9dd296e3 100644 Binary files a/data/yugioh-standard.mse-style/card-ritual.jpg and b/data/yugioh-standard.mse-style/card-ritual.jpg differ diff --git a/data/yugioh-standard.mse-style/card-slifer.jpg b/data/yugioh-standard.mse-style/card-slifer.jpg index ab0db7ad..4effa473 100644 Binary files a/data/yugioh-standard.mse-style/card-slifer.jpg and b/data/yugioh-standard.mse-style/card-slifer.jpg differ diff --git a/data/yugioh-standard.mse-style/card-synchro.jpg b/data/yugioh-standard.mse-style/card-synchro.jpg index 21289643..ffd4c537 100644 Binary files a/data/yugioh-standard.mse-style/card-synchro.jpg and b/data/yugioh-standard.mse-style/card-synchro.jpg differ diff --git a/data/yugioh-standard.mse-style/card-token.jpg b/data/yugioh-standard.mse-style/card-token.jpg index c4f8c21d..9b86ead0 100644 Binary files a/data/yugioh-standard.mse-style/card-token.jpg and b/data/yugioh-standard.mse-style/card-token.jpg differ diff --git a/data/yugioh-standard.mse-style/cornerfirst.png b/data/yugioh-standard.mse-style/cornerfirst.png new file mode 100644 index 00000000..f0b5f763 Binary files /dev/null and b/data/yugioh-standard.mse-style/cornerfirst.png differ diff --git a/data/yugioh-standard.mse-style/cornerunlimited.png b/data/yugioh-standard.mse-style/cornerunlimited.png new file mode 100644 index 00000000..1d447290 Binary files /dev/null and b/data/yugioh-standard.mse-style/cornerunlimited.png differ diff --git a/data/yugioh-standard.mse-style/style b/data/yugioh-standard.mse-style/style index dfde604c..5717c7a2 100644 --- a/data/yugioh-standard.mse-style/style +++ b/data/yugioh-standard.mse-style/style @@ -40,6 +40,18 @@ styling field: choice: normal choice: silver choice: gold +styling field: + type: boolean + name: corner stamp + description: Should there be a foil stamp in the lower right corner? + initial: yes +styling field: + type: choice + name: rules alignment + description: Should the rules text be justified? WARNING: Justification is not perfect. + initial: not justified + choice: not justified + choice: justified styling style: foil image: render style: text @@ -120,7 +132,7 @@ card style: left: 40 top : 74 height: 28 - width: 280 + width: {if is_nmonster() then 275 else 280 } z index: 2 alignment: middle right font: @@ -142,9 +154,9 @@ card style: z index: 1 ############################# Card type monster type: - left: 35 + left: 39 top : 401 - width: 193 + width: { card_style.monster_type.content_width + 6 } height: 14 alignment: middle left z index: 2 @@ -160,7 +172,7 @@ card style: visible: script: if is_nmonster() then false else true ############################# Edition and Card ID number: - left: 200 + left: 203 top : 380 width: 115 height: 15 @@ -171,7 +183,7 @@ card style: size: 8 color: rgb(0,0,0) edition: - left: 44 + left: 43 top: 380 width: 115 height: 15 @@ -182,7 +194,7 @@ card style: color: rgb(0,0,0) ############################# Text box rule text: - left: 34 + left: 35 top : script: if is_nmonster() then 397 else 412 width: 289 @@ -197,7 +209,7 @@ card style: name: yugioh-text-replacements alignment: middle center size: 3.5 - alignment: top left + alignment: { if styling.rules_alignment=="justified" then "top left justify" else "top left" } z index: 3 padding left: 1 padding top: 2 @@ -210,7 +222,7 @@ card style: line height line max: 1.1 ############################# Attack/Defense attack: - left: 202 + left: 204 top: 475 width: 48 height: 18 @@ -228,7 +240,7 @@ card style: visible: script: if is_nmonster() then false else true defense: z index: 4 - left: 276 + left: 278 top: 475 width: 48 height: 18 @@ -258,13 +270,111 @@ card style: size: 7 color: rgb(0,0,0) copyright: - left: 180 + left: { if styling.corner_stamp=="no" then 202 else 180 } top : 495 width: 145 height: 18 - z index: 2 + z index: 4 alignment: middle right font: name: Palatino Linotype size: 7 color: rgb(0,0,0) +############################################extra card field: +extra card field: + type: choice + name: bar + choice: bar + editable: false +extra card field: + type: choice + name: leftbracket + choice: lbracket + editable: false +extra card field: + type: choice + name: rightbracket + choice: rbracket + editable: false +extra card field: + type: text + name: atkoverlay + default: "ATK/" + editable: false +extra card field: + type: text + name: defoverlay + default: "DEF/" + editable: false +extra card field: + type: choice + name: corner foil + choice: 1st + choice: 2nd + editable: true +extra card style: + bar: + left: 37 + top : 474 + height: 1 + width: 288 + z index: 4 + render style: image list + choice images: + bar: bar.png + visible: script: if is_nmonster() then false else true + leftbracket: + left: { if is_nmonster() then (309 - card_style.level.content_width) else 35 } + top : { if is_nmonster() then 79 else 400 } + height: { if is_nmonster() then 17 else 14 } + width: { if is_nmonster() then 5 else 4 } + z index: 2 + render style: image list + choice images: + lbracket: /yugioh-standard-levels.mse-symbol-font/leftbracket.png + rightbracket: + left: { if is_nmonster() then 315 else (card_style.monster_type.content_width + 40) } + top : { if is_nmonster() then 79 else 400 } + height: { if is_nmonster() then 17 else 14 } + width: { if is_nmonster() then 5 else 4 } + z index: 4 + render style: image list + choice images: + rbracket: /yugioh-standard-levels.mse-symbol-font/rightbracket.png + atkoverlay: + left: 170 + top: 475 + width: 48 + height: 18 + z index: 1 + alignment: right middle + font: + name: MatrixBoldSmallCaps + italic name: Matrix-Bold + size: 12 + color: rgb(0,0,0) + visible: script: if is_nmonster() then false else true + defoverlay: + left: 244 + top: 475 + width: 48 + height: 18 + z index: 1 + alignment: right middle + font: + name: MatrixBoldSmallCaps + italic name: Matrix-Bold + size: 12 + color: rgb(0,0,0) + visible: script: if is_nmonster() then false else true + corner foil: + left: 332 + top : 492 + height: 20 + width: 20 + z index: 3 + render style: image list + choice images: + 1st: cornerfirst.png + 2nd: cornerunlimited.png + visible: script: if styling.corner_stamp=="no" then false else true diff --git a/data/yugioh.mse-game/game b/data/yugioh.mse-game/game index a2166bfe..f9ed4d51 100644 --- a/data/yugioh.mse-game/game +++ b/data/yugioh.mse-game/game @@ -69,34 +69,37 @@ init script: # step 2 : surround by tags { "" + input + "" }; + type_over_list := replace_rule(match:" ?-$", replace:"") + + monster_type_filter := + tag_remove_rule(tag: "{input}" } + + space_to_wltags := replace_rule(match:"( +| )", + replace:{"{_1}"}) + + card_class_filter := + tag_remove_rule(tag: "{input}" } + # Determine type of card card_type := { - if card.type2 == "Effect]" then "effect monster" - else if card.type2 == "Fusion]" then "fusion monster" - else if card.type2 == "Fusion / Effect]" then "fusion monster" - else if card.type2 == "Fusion/Effect]" then "fusion monster" - else if card.type2 == "Ritual]" then "ritual monster" - else if card.type2 == "Ritual / Effect]" then "ritual monster" - else if card.type2 == "Ritual/Effect]" then "ritual monster" - else if card.type1 == "[Legendary Dragon" then "legendary dragon" - else if card.type1 == "[Divine-Beast" then "obelisk" - else if card.attribute == "spell" then "spell card" - else if card.level == "[Spell Card]" then "spell card" - else if card.level == "[Spell Card%]" then "spell card" - else if card.level == "[Spell Card!]" then "spell card" - else if card.level == "[Spell Card+]" then "spell card" - else if card.level == "[Spell Card&]" then "spell card" - else if card.level == "[Spell Card$]" then "spell card" - else if card.level == "[Spell Card#]" then "spell card" - else if card.attribute == "trap" then "trap card" - else if card.level == "[Trap Card]" then "trap card" - else if card.level == "[Trap Card%]" then "trap card" - else if card.level == "[Trap Card!]" then "trap card" - else if card.level == "[Trap Card+]" then "trap card" - else if card.level == "[Trap Card&]" then "trap card" - else if card.level == "[Trap Card$]" then "trap card" - else if card.level == "[Trap Card#]" then "trap card" - else "normal monster" + if card.attribute == "spell" then "spell card" + else if contains(card.level, match:"Spell Card") then "spell card" + else if card.attribute == "trap" then "trap card" + else if contains(card.level, match:"Trap Card") then "trap card" + else if card.type1 == "Divine-Beast" then "obelisk" + else if card.type1 == "Legendary Dragon" then "legendary dragons" + else if contains(card.type2, match:"Fusion") then "fusion monster" + else if contains(card.type2, match:"Ritual") then "ritual monster" + else if contains(card.type2, match:"Synchro") then "synchro monster" + else if contains(card.type2, match:"Effect") then "effect monster" + else if contains(card.type2, match:"Spirit") then "effect monster" + else if contains(card.type2, match:"Toon") then "effect monster" + else if contains(card.type2, match:"Union") then "effect monster" + else "normal monster" } # Default 'attribute' of card attribute := { @@ -107,6 +110,10 @@ init script: ############### Type of card + nm_ext_querry := { + if set.gods_have_effects == "no" then is_normal_monster_extended(value) + else is_normal_monster(value) + } is_nmonster := { card.card_type == "spell card" or card.card_type == "trap card" @@ -123,13 +130,16 @@ init script: card.card_type == "ra" or card.card_type == "legendary dragons" } - is_normal_monster := { + is_normal_monster_extended := { card.card_type == "normal monster" or card.card_type == "obelisk" or card.card_type == "slifer" or card.card_type == "ra" or card.card_type == "legendary dragons" } + is_normal_monster := { + card.card_type == "normal monster" + } is_spell_card := { card.card_type == "spell card" or card.attribute == "spell" or @@ -197,6 +207,11 @@ set field: type: text name: copyright description: Copyright information. This will not appear on the card. +set field: + type: boolean + name: gods have effects + description: Should god cards have effects? + initial: yes ############################# Default style default set style: title: @@ -281,14 +296,19 @@ card field: card field: type: text name: type1 - script: a_and_d_filter(value) - default: "[" + script: monster_type_filter(value) + default: " " + editable: false +card field: + type: text + name: separator + script: if nm_ext_querry(value) then " " else " / " + show statistics: false editable: false card field: type: text name: type2 - script: a_and_d_filter(value) - default: "]" + script: card_class_filter(value) editable: false card field: type: text @@ -297,10 +317,10 @@ card field: # Either just monster, monster / type1 combined_editor( field1: card.type1, - separator: " / ", + separator: card.separator, field2: card.type2, soft_before_empty: true, - hide_when_empty: true, + hide_when_empty: true, type_over1: " /", type_over2: "/" ) @@ -336,23 +356,16 @@ card field: script: text_filter(value) editable: false show statistics: false -card field: - type: text - name: flavor - script: flavor_text_filter(value) - editable: false - show statistics: false card field: type: text name: rule text multi line: true - save value: false + save value: true show statistics: false script: - if is_normal_monster(value) then - combined_editor(field1: card.rules, separator: "\n", field2: card.flavor) - else - forward_editor(field: card.rules) + if nm_ext_querry(value) then flavor_text_filter(value) + else text_filter(value) + default: card.rules ############################# Attack/Defense card field: type: text @@ -386,34 +399,37 @@ card field: show statistics: false ############################################################## Word lists -# Doesn't do anything yet -#word list: -# name: type -# word: Dragon -# word: Spellcaster -# word: Zombie -# word: Warrior -# word: Beast-Warrior -# word: Beast -# word: Winged Beast -# word: Fiend -# word: Fiary -# word: Insect -# word: Dinosaur -# word: Reptile -# word: Fish -# word: Sea Serpent -# word: Machine -# word: Thunder -# word: Aqua -# word: Pyro -# word: Rock -# word: Plant -# word: Divine-Beast -# word: Toon -# word: Spirit -# word: Union -# word: Effect -# word: Fusion -# word: Ritual -# word: Divine + +word list: + name: monster + word: Aqua + word: Beast + word: Beast-Warrior + word: Dinosaur + word: Divine-Beast + word: Dragon + word: Fairy + word: Fiend + word: Fish + word: Insect + word: Legendary Dragon + word: Machine + word: Plant + word: Pyro + word: Reptile + word: Rock + word: Sea Serpent + word: Spellcaster + word: Thunder + word: Warrior + word: Winged Beast + word: Zombie +word list: + name: card + word: Effect + word: Fusion + word: Ritual + word: Spirit + word: Synchro + word: Toon + word: Union \ No newline at end of file