[274/274] magic-modules rollout (#51)

Add Magic-Modules support to all frames
This commit is contained in:
cajun
2024-09-10 22:21:23 -05:00
committed by GitHub
parent 65bfc8fcd6
commit 6d617985ce
5491 changed files with 37088 additions and 66467 deletions

View File

@@ -86,22 +86,22 @@ auto replace:
replace: •
auto replace:
match: WETB
replace: When CARDNAME enters the battlefield
replace: When CARDNAME enters
auto replace:
match: CEBT
replace: CARDNAME enters the battlefield tapped.
match: EBT
replace: enters tapped.
auto replace:
match: ETB
replace: enters the battlefield
replace: enters
auto replace:
match: etb
replace: enters the battlefield
replace: enters
auto replace:
match: battlefieldA
replace: enters the battlefield or attacks,
match: entersA
replace: enters or attacks,
auto replace:
match: battlefieldT
replace: battlefield tapped
match: entersT
replace: enters tapped
auto replace:
match: WTD
replace: When CARDNAME dies
@@ -127,10 +127,10 @@ auto replace:
#Abilities
auto replace:
match: CBC
replace: CARDNAME can't be countered.
replace: This spell can't be countered.
auto replace:
match: CBSA
replace: CARDNAME can't be countered by spells or abilities.
replace: This spell can't be countered by spells or abilities.
auto replace:
match: WTT
replace: Whenever CARDNAME becomes the target of a spell
@@ -217,7 +217,7 @@ auto replace:
replace: Destroy target land.
auto replace:
match: CLONE
replace: You may have CARDNAME enter the battlefield as a copy of any creature on the battlefield.
replace: You may have CARDNAME enter as a copy of any creature on the battlefield.
auto replace:
match: MUR
replace: Destroy target creature.
@@ -232,7 +232,7 @@ auto replace:
replace: Destroy target attacking or blocking creature.
auto replace:
match: ORING
replace: When CARDNAME enters the battlefield, exile target creature an opponent controls until CARDNAME leaves the battlefield. (That creature returns under its owner's control.)
replace: When CARDNAME enters, exile target creature an opponent controls until CARDNAME leaves the battlefield. (That creature returns under its owner's control.)
auto replace:
match: WIDE
replace: CARDNAME can block any number of creatures.
@@ -265,7 +265,7 @@ auto replace:
replace: Put target creature card from a graveyard onto the battlefield under your control.
auto replace:
match: UNT
replace: Whenever another creature enters the battlefield, untap CARDNAME.
replace: Whenever another creature enters, untap CARDNAME.
auto replace:
match: XATK
replace: Untap all creatures that attacked this turn. After this main phase, there is an additional combat phase followed by an additional main phase.
@@ -346,7 +346,7 @@ auto replace:
replace: CARDNAME can't be blocked by creatures with power 2 or less.
auto replace:
match: HYDRA
replace: CARDNAME enters the battlefield with X +1/+1 counters on it.
replace: CARDNAME enters with X +1/+1 counters on it.
auto replace:
match: FOG
replace: Prevent all combat damage that would be dealt this turn.
@@ -379,7 +379,7 @@ auto replace:
replace: Target creature attacks this turn if able.
auto replace:
match: MEDDLING
replace: As CARDNAME enters the battlefield, choose a nonland card name. Spells with the chosen name can't be cast.
replace: As CARDNAME enters, choose a nonland card name. Spells with the chosen name can't be cast.
auto replace:
match: SILENCE
replace: Your opponents can't cast spells this turn. (Spells cast before this resolves are unaffected.)
@@ -435,7 +435,7 @@ auto replace:
replace: Threshold — If seven or more cards are in your graveyard, {Effect}
auto replace:
match: IMPRINT
replace: Imprint — When CARDNAME enters the battlefield, you may exile a {something} from {somewhere}.
replace: Imprint — When CARDNAME enters, you may exile a {something} from {somewhere}.
auto replace:
match: CHANNEL
replace: Channel — {Cost}, discard CARDNAME: {Effect}
@@ -465,10 +465,10 @@ auto replace:
replace: Domain — {Effect} for each basic land type among lands you control.
auto replace:
match: LANDFALLP
replace: Landfall — Whenever a land enters the battlefield under your control,
replace: Landfall — Whenever a land you control enters,
auto replace:
match: LANDFALLS
replace: Landfall — If you had a land enter the battlefield under your control this turn, {Effect}.
replace: Landfall — If you had a land enter under your control this turn, {Effect}.
auto replace:
match: METALCRAFTP
replace: Metalcraft — {Effect} as long as you control three or more artifacts.
@@ -504,7 +504,7 @@ auto replace:
replace: Inspired — Whenever CARDNAME becomes untapped,
auto replace:
match: CONSTELLATION
replace: Constellation — Whenever CARDNAME or another enchantment enters the battlefield under your control,
replace: Constellation — Whenever CARDNAME or another enchantment you control enters,
auto replace:
match: STRIVE
replace: Strive — CARDNAME costs {COST} more to cast for each target beyond the first.
@@ -537,7 +537,7 @@ auto replace:
replace: Spell Mastery — As long as there are two or more instant and/or sorcery cards in your graveyard, {Effect}.
auto replace:
match: RALLY
replace: Rally — Whenever CARDNAME or another Ally enters the battlefield under your control, {Effect}.
replace: Rally — Whenever CARDNAME or another Ally you control enters, {Effect}.
auto replace:
match: COHORT
replace: Cohort — [T], Tap an untapped Ally you control: {Effect}.

View File

@@ -999,8 +999,8 @@ card field:
card list name: Chapter Text
card list column: 0760
card list width: 150
default: chapter_text_filter_default(value, card_name: if set.alias_as_cardname and card.alias != "" then card.alias else card.name, margin_code:"chapter_text")
script: text_filter(value, card_name: if set.alias_as_cardname and card.alias != "" then card.alias else card.name, margin_code:"chapter_text")
default: chapter_text_filter_default(value, card_name: card_name_for_face(1), margin_code:"chapter_text")
script: text_filter(value, card_name: card_name_for_face(1), margin_code:"chapter_text")
card field:
type: text
name: chapter text 2
@@ -1010,8 +1010,8 @@ card field:
card list name: Chapter Text 2
card list column: 0761
card list width: 150
default: chapter_text_filter_default(value, card_name: if set.alias_as_cardname and card.alias_2 != "" then card.alias_2 else card.name_2, margin_code:"chapter_text2")
script: text_filter(value, card_name: if set.alias_as_cardname and card.alias_2 != "" then card.alias_2 else card.name_2, margin_code:"chapter_text2")
default: chapter_text_filter_default(value, card_name: card_name_for_face(2), margin_code:"chapter_text2")
script: text_filter(value, card_name: card_name_for_face(2), margin_code:"chapter_text2")
############################################################## Rules text
### The fields usually aren't used, see Combined text
@@ -1024,8 +1024,8 @@ card field:
card list name: Rule Text
card list column: 0700
card list width: 150
default: text_filter_default(value, card_name: if set.alias_as_cardname and card.alias != "" then card.alias else card.name, margin_code:"text")
script: text_filter(value, card_name: if set.alias_as_cardname and card.alias != "" then card.alias else card.name, margin_code:"text")
default: text_filter_default(value, card_name: card_name_for_face(1), margin_code:"text")
script: text_filter(value, card_name: card_name_for_face(1), margin_code:"text")
card field:
type: text
name: rule text 2
@@ -1035,8 +1035,8 @@ card field:
card list name: Rule Text 2
card list column: 0701
card list width: 150
default: text_filter_default(value, card_name: if set.alias_as_cardname and card.alias_2 != "" then card.alias_2 else card.name_2, margin_code:"text2")
script: text_filter(value, card_name: if set.alias_as_cardname and card.alias_2 != "" then card.alias_2 else card.name_2, margin_code:"text2")
default: text_filter_default(value, card_name: card_name_for_face(2), margin_code:"text2")
script: text_filter(value, card_name: card_name_for_face(2), margin_code:"text2")
card field:
type: text
name: rule text 3
@@ -1046,8 +1046,8 @@ card field:
card list name: Rule Text 3
card list column: 0702
card list width: 150
default: text_filter_default(value, card_name: if set.alias_as_cardname and card.alias_3 != "" then card.alias_3 else card.name_3, margin_code:"text3")
script: text_filter(value, card_name: if set.alias_as_cardname and card.alias_3 != "" then card.alias_3 else card.name_3, margin_code:"text3")
default: text_filter_default(value, card_name: card_name_for_face(3), margin_code:"text3")
script: text_filter(value, card_name: card_name_for_face(3), margin_code:"text3")
card field:
type: text
name: rule text 4
@@ -1057,8 +1057,8 @@ card field:
card list name: Rule Text 4
card list column: 0703
card list width: 150
default: text_filter_default(value, card_name: if set.alias_as_cardname and card.alias_4 != "" then card.alias_4 else card.name_4, margin_code:"text4")
script: text_filter(value, card_name: if set.alias_as_cardname and card.alias_4 != "" then card.alias_4 else card.name_4, margin_code:"text4")
default: text_filter_default(value, card_name: card_name_for_face(4), margin_code:"text4")
script: text_filter(value, card_name: card_name_for_face(4), margin_code:"text4")
### 5 and 6 generally aren't used anymore, use level_text instead
card field:
@@ -1070,8 +1070,8 @@ card field:
card list name: Rule Text 5
card list column: 0704
card list width: 150
default: text_filter_default(value, card_name: if set.alias_as_cardname and card.alias != "" then card.alias else card.name, margin_code:"text5")
script: text_filter(value, card_name: if set.alias_as_cardname and card.alias != "" then card.alias else card.name, margin_code:"text5")
default: text_filter_default(value, card_name: card_name_for_face(1), margin_code:"text5")
script: text_filter(value, card_name: card_name_for_face(1), margin_code:"text5")
card field:
type: text
name: rule text 6
@@ -1081,8 +1081,8 @@ card field:
card list name: Rule Text 6
card list column: 0705
card list width: 150
default: text_filter_default(value, card_name: if set.alias_as_cardname and card.alias != "" then card.alias else card.name, margin_code:"text6")
script: text_filter(value, card_name: if set.alias_as_cardname and card.alias_2 != "" then card.alias_2 else card.name_2, margin_code:"text6")
default: text_filter_default(value, card_name: card_name_for_face(1), margin_code:"text6")
script: text_filter(value, card_name: card_name_for_face(2), margin_code:"text6")
############################################################## Flavor text
@@ -2877,13 +2877,7 @@ card field:
card list name: © Line
card list column: 1240
card list width: 150
script:
if set.automatic_card_numbers and set.automatic_copyright then
set.copyright + " " + card.card_number
else if set.automatic_card_numbers then
combined_editor(field1: card.copyright, separator: " ", field2: card.card_number)
else
forward_editor(field: card.copyright)
script: card_number_old_1()
card field:
type: text
name: copyright line 2
@@ -2893,13 +2887,7 @@ card field:
card list name: © Line 2
card list column: 1241
card list width: 150
script:
if set.automatic_card_numbers and set.automatic_copyright then
set.copyright + " " + card.card_number
else if set.automatic_card_numbers then
combined_editor(field1: card.copyright_2, separator: " ", field2: card.card_number)
else
forward_editor(field: card.copyright_2)
script: card_number_old_2()
card field:
type: text
name: copyright line 3
@@ -2909,13 +2897,7 @@ card field:
card list name: © Line 3
card list column: 1242
card list width: 150
script:
if set.automatic_card_numbers and set.automatic_copyright then
set.copyright + " " + card.card_number
else if set.automatic_card_numbers then
combined_editor(field1: card.copyright_3, separator: " ", field2: card.card_number)
else
forward_editor(field: card.copyright_3)
script: card_number_old_3()
############################################################## Mirror fields for sorting
card field:

View File

@@ -1811,6 +1811,11 @@ keyword:
match: Disguise <atom-param>cost</atom-param>
mode: expert
reminder: You may cast this card face down for [3] as a 2/2 creature with ward [2]. Turn it face up any time for its disguise cost.
keyword:
keyword: To solve
match: To solve — <atom-param>name</atom-param>
mode: expert
reminder: If unsolved, solve at the beginning of your end step.
keyword:
keyword: Suspect
match: suspect
@@ -1867,9 +1872,9 @@ keyword:
# Modern Horizons 3
keyword:
keyword: Emerge from
match: Emerge <atom-param>cost</atom-param> from <atom-param>name</atom-param>
match: Emerge from <atom-param>name</atom-param> <atom-param>cost</atom-param>
mode: expert
reminder: You may cast this spell by sacrificing a {param2} and paying the emerge cost reduced by that {param2}'s mana value.
reminder: You may cast this spell by sacrificing a {param1} and paying the emerge cost reduced by that {param1}'s mana value.
# Bloomburrow
keyword:
keyword: expend
@@ -1927,7 +1932,7 @@ keyword:
mode: pseudo
rules: Valiant — Whenever ~ becomes the target of a spell or ability you control for the first time each turn, [effect].
#Duskmourn
keyword:
keyword:
keyword: Impending
match: Impending <atom-param>number</atom-param>—<atom-param>cost</atom-param>
mode: expert

View File

@@ -2414,6 +2414,13 @@ keyword:
reminder: Eine verdächtigte Kreatur hat Bedrohlichkeit und kann nicht blocken.
#example: Reasonable Doubt
keyword:
#english keyword: To solve
keyword: Lösen
match: Lösen — <atom-param>Name</atom-param>
reminder: Falls ungelöst, löse den Fall zu Beginn deines Endsegments.
#example: Case of the Crimson Pulse
# Fallout
keyword:
#english keyword: Junk token
@@ -2485,4 +2492,138 @@ keyword:
match: gesetzlosen
mode: expert
reminder: Assassinen, Hexenmeister, Piraten, Räuber und Söldner sind Gesetzlose.
#example: Caught in the Crossfire
#example: Caught in the Crossfire
# Modern Horizons 3
keyword:
#english keyword: Emerge from
keyword: Auftauchen aus
match: Auftauchen aus <atom-param>Name</atom-param> <atom-param>Kosten</atom-param>
mode: expert
reminder: Du kannst diesen Zauberspruch wirken, indem du ein {param1} opferst und die Auftauchen-Kosten bezahlst, abzüglich des Manabetrags des geopferten {param1}s.
#example: Crabomination
# Bloomburrow
keyword:
#english keyword: expend
keyword: aufbietest
match: du <atom-param>Nummer</atom-param> aufbietest
mode: action
reminder: {param1} aufbieten bedeutet, im selben Zug dein insgesamt {german_number(param1)} Mana für das Wirken von Zaubersprüchen auszugeben.
#example: Teapot Slinger
keyword:
#english keyword: forage
keyword: hamstere
match: hamstere
mode: action
reminder: Um zu hamstern, schicke drei Karten aus deinem Friedhof ins Exil oder opfere eine Speise.
#example: Thornvault Forager
keyword:
#english keyword: foraging
keyword: hamsterst
match: hamsterst
mode: action
reminder: Um zu hamstern, schicke drei Karten aus deinem Friedhof ins Exil oder opfere eine Speise.
#example: Osteomancer Adept
keyword:
#english keyword: Gift a card
keyword: Verschenke eine Karte
match: Verschenke eine Karte
mode: expert
reminder: Du kannst einem Gegner ein Geschenk versprechen, sowie du diesen Zauberspruch wirkst. Falls du dies tust, zieht er{ if lang_setting("is_spell")(card.type) then " vor dessen anderen Effekten" else ", wenn dieses Permanent ins Spiel kommt,"} eine Karte.
#example: Kitnap
keyword:
#english keyword: Gift a tapped Fish
keyword: Verschenke einen getappten Fisch
match: Verschenke einen getappten Fisch
mode: expert
reminder: Du kannst einem Gegner ein Geschenk versprechen, sowie du diesen Zauberspruch wirkst. Falls du dies tust, erzeugt er, { if lang_setting("is_spell")(card.type) then "vor dessen anderen Effekten" else "wenn dieses Permanent ins Spiel kommt,"} einen getappten 1/1 blauen Fisch-Kreaturenspielstein.
#example: Parting Gust
keyword:
#english keyword: Gift a Food
keyword: Verschenke eine Speise
match: Verschenke eine Speise
mode: expert
reminder: Du kannst einem Gegner ein Geschenk versprechen, sowie du diesen Zauberspruch wirkst. Falls du dies tust, erzeugt er { if lang_setting("is_spell")(card.type) then "vor dessen anderen Effekten" else "wenn dieses Permanent ins Spiel kommt,"} einen Speise-Spielstein. Er ist ein Artefakt mit „[2], [T], opfere dieses Artefakt: Du erhältst 3 Lebenspunkte dazu.“
#example: Crumb and Get It
keyword:
#english keyword: Gift a Treasure
keyword: Verschenke einen Schatz
match: Verschenke einen Schatz
mode: expert
reminder: Du kannst einem Gegner ein Geschenk versprechen, sowie du diesen Zauberspruch wirkst. Falls du dies tust, erzeugt er { if lang_setting("is_spell")(card.type) then "vor dessen anderen Effekten" else "wenn dieses Permanent ins Spiel kommt,"} einen Schatz-Spielstein. Er ist ein Artefakt mit „[T], opfere dieses Artefakt: Erzeuge ein Mana einer beliebigen Farbe.“
#example: Blooming Blast
keyword:
#english keyword: Gift an Octopus
keyword: Verschenke einen Oktopus
match: Verschenke einen Oktopus
mode: expert
reminder: Du kannst einem Gegner ein Geschenk versprechen, sowie du diesen Zauberspruch wirkst. Falls du dies tust, erzeugt er, { if lang_setting("is_spell")(card.type) then "vor dessen anderen Effekten" else "wenn dieses Permanent ins Spiel kommt,"} einen 8/8 blauen Oktopus-Kreaturenspielstein.
#example: Octomancer
keyword:
#english keyword: Gift an extra turn
keyword: Verschenke einen zusätzlichen Zug
match: Verschenke einen zusätzlichen Zug
mode: expert
reminder: Du kannst einem Gegner ein Geschenk versprechen, sowie du diesen Zauberspruch wirkst. Falls du dies tust, erhält er nach diesem Zug einen zusätzlichen Zug.
#example: Perch Protection
keyword:
#english keyword: Offspring
keyword: Nachwuchs
match: Nachwuchs <atom-param>Kosten</atom-param>
mode: expert
reminder: Du kannst zusätzlich {param1} bezahlen, sowie du diesen Zauberspruch wirkst. Falls du dies tust, erzeuge, wenn diese Kreatur ins Spiel kommt, eine 1/1-Spielsteinkopie davon.
#example: Flowerfoot Swordmaster
keyword:
#english keyword: Valiant
keyword: Tapfer
match: Tapfer
mode: pseudo
rules: Tapfer — Whenever ~ becomes the target of a spell or ability you control for the first time each turn, [effect].
#example: Flowerfoot Swordmaster
#Duskmourn
keyword:
#english keyword: Impending
keyword: Unheilsdrohend
match: Unheilsdrohend <atom-param>Nummer</atom-param>—<atom-param>Kosten</atom-param>
mode: expert
reminder: Falls du diesen Zauberspruch für seine Unheilsdrohend-Kosten wirkst, kommt er mit {german_number(param1)} Zeitmarken ins Spiel und ist keine Kreatur, bis die letzte entfernt wurde. Entfere zu Beginn deines Endsegments eine Zeitmarken davon.
keyword:
#english keyword: Manifest dread
keyword: Manifestiere das Gauen
match: manifestiere das Gauen
mode: expert
reminder: Schaue dir die obersten zwei Karten deiner Bibliothek an. Lege eine davon auf deinen Friedhof und bringe die andere als eine 2/2 Kreatur verdeckt ins Spiel. Decke sie zu einem beliebigen Zeitpunkt für ihre Manakosten auf, falls es sine Kreaturenkarte ist.
keyword:
#english keyword: Manifests dread
keyword: manifestiert das Grauen
match: manifestiert das Grauen
mode: expert
reminder: Jener Spieler schaut sich die obersten zwei Karten seiner Bibliothek an. Er legt eine davon auf seinen Friedhof und bringt die andere als eine 2/2 Kreatur verdeckt ins Spiel. Falls es eine Kreaturenkarte ist, kann sie jederzeit für ihre Manakosten aufgedeckt werden.
keyword:
#english keyword: Eerie
keyword: Unheimlich
match: Unheimlich
mode: pseudo
rules: Unheimlich — Whenever an enchantment you control enters and whenever you fully unlock a Room, [effect].
keyword:
#english keyword: Survival
keyword: Überlebenskunst
match: Überlebenskunst
mode: pseudo
rules: Überlebenskunst — At the beginning of your second main phase, if ~ is tapped, [effect].

View File

@@ -2433,6 +2433,13 @@ keyword:
reminder: Una criatura sospechosa tiene la habilidad de amenaza y no puede bloquear.
#example: Reasonable Doubt
keyword:
#english keyword: To solve
keyword: Resolver
match: Resolver — <atom-param>nombre</atom-param>
reminder: Si el Caso no está resuelto, resuélvelo al comienzo de tu paso final.
#example: Case of the Crimson Pulse
keyword:
#english keyword: Junk tokens
keyword: fichas de Residuo
@@ -2504,4 +2511,140 @@ keyword:
match: forajidas
mode: expert
reminder: Los Asesinos, Mercenarios, Piratas, Bribones y Brujos son forajidos.
#example: Caught in the Crossfire
#example: Caught in the Crossfire
# Modern Horizons 3
keyword:
#english keyword: Emerge from
keyword: Emerger desde
match: Emerger desde <atom-param>nombre</atom-param> <atom-param>coste</atom-param>
mode: expert
reminder: Puedes lanzar este hechizo sacrificando un {param1} y pagando el coste de emerger menos el valor de maná de ese {param1}.
#example: Crabomination
# Bloomburrow
keyword:
#english keyword: expend
keyword: gastes
match: gastes <atom-param>número</atom-param>
mode: action
reminder: Gastas {param1} en cuanto usas tu {spanish_number(param1)} maná total para lanzar hechizos durante un turno.
#example: Teapot Slinger
keyword:
#english keyword: forage
keyword: rebuscar
match: rebuscar
mode: action
reminder: Para rebuscar, exilia tres cartas de tu cementerio o sacrifica una Comida.
#example: Thornvault Forager
keyword:
#english keyword: foraging
keyword: rebuscando
match: rebuscando
mode: action
reminder: Para rebuscar, exilia tres cartas de tu cementerio o sacrifica una Comida.
#example: Osteomancer Adept
keyword:
#english keyword: Gift a card
keyword: Regala una carta
match: Regala una carta
mode: expert
reminder: Puedes ofrecer un regalo a un oponente al lanzar este hechizo. Si lo haces, {if lang_setting("is_spell")(card.type) then "ese oponente roba una carta antes de los otros efectos." else "cuando entre, ese oponente roba una carta."}
#example: Kitnap
keyword:
#english keyword: Gift a tapped Fish
keyword: Regala un Pez girado
match: Regala un Pez girado
mode: expert
reminder: Puedes ofrecer un regalo a un oponente al lanzar este hechizo. Si lo haces, { if lang_setting("is_spell")(card.type) then "ese oponente crea una ficha de criatura Pez azul 1/1 girada antes de los otros efectos." else "cuando entre, ese oponente crea una ficha de criatura Pez azul 1/1 girada."}
#example: Parting Gust
keyword:
#english keyword: Gift a Food
keyword: Regala una Comida
match: Regala una Comida
mode: expert
reminder: Puedes ofrecer un regalo a un oponente al lanzar este hechizo. Si lo haces, { if lang_setting("is_spell")(card.type) then "ese oponente crea una ficha de Comida antes de los otros efectos." else "cuando entre, ese oponente crea una ficha de Comida."} Es un artefacto con “[2], [T], sacrificar este artefacto: Ganas 3 vidas”.
#example: Crumb and Get It
keyword:
#english keyword: Gift a Treasure
keyword: Regala un Tesoro
match: Regala un Tesoro
mode: expert
reminder: Puedes ofrecer un regalo a un oponente al lanzar este hechizo. Si lo haces, { if lang_setting("is_spell")(card.type) then "ese oponente crea una ficha de Tesoro antes de los otros efectos." else "cuando entre, ese oponente crea una ficha de Tesoro."} Es un artefacto con “[T], sacrificar este artefacto: Agrega un maná de cualquier color”.
#example: Blooming Blast
keyword:
#english keyword: Gift an Octopus
keyword: Verschenke einen Oktopus
match: Verschenke einen Oktopus
mode: expert
reminder: Puedes ofrecer un regalo a un oponente al lanzar este hechizo. Si lo haces, { if lang_setting("is_spell")(card.type) then "ese oponente crea una ficha de criatura Pulpo azul 8/8 girada antes de los otros efectos." else "cuando entre, ese oponente crea una ficha de criatura Pulpo azul 8/8 girada."}
#example: Octomancer
keyword:
#english keyword: Gift an extra turn
keyword: Regala un turno adicional
match: Regala un turno adicional
mode: expert
reminder: Puedes ofrecer un regalo a un oponente al lanzar este hechizo. Si lo haces, ese oponente juega un turno adicional después de este.
#example: Perch Protection
keyword:
#english keyword: Offspring
keyword: Cría
match: Cría <atom-param>coste</atom-param>
mode: expert
reminder: Puedes pagar {param1} adicionales al lanzar este hechizo. Si lo haces, cuando esta criatura entre, crea una ficha 1/1 que es una copia de ella.
#example: Flowerfoot Swordmaster
keyword:
#english keyword: Valiant
keyword: Valentía
match: Valentía
mode: pseudo
rules: Valentía — Whenever ~ becomes the target of a spell or ability you control for the first time each turn, [effect].
#example: Flowerfoot Swordmaster
#Duskmourn
keyword:
#english keyword: Impending
keyword: Inminente
match: Inminente <atom-param>número</atom-param>—<atom-param>coste</atom-param>
mode: expert
reminder: Si lanzas este hechizo por su coste de inminente, entra con {spanish_number(param1)} contadores de tiempo y no es una criatura hasta que se remueva el último. Al comienzo de tu paso final, remueve un contador de tiempo de él.
keyword:
#english keyword: Manifest dread
keyword: Manifiesta miedo
match: manifiesta miedo
mode: expert
reminder: Mira las dos primeras cartas de tu biblioteca. Pon una de ellas en el campo de batalla boca abajo como una criatura 2/2 y la otra en tue cemeenterio. Ponla boca arriba en cualquier momento por su coste de maná si es una carta de criatura.
keyword:
#english keyword: Manifests dread
keyword: manifesta miedo
match: manifesta miedo
mode: expert
reminder: Ese jugador mira las dos primeras cartas de su biblioteca y luego pone una de ellas en el campo de batalla boca abajo como una criatura 2/2 y la otra en su cemeenterio. Si es una carta de criatura, puede ponerse boca arriba en cualquier momento por su coste de maná.
keyword:
#english keyword: Eerie
keyword: Inquietante
match: Inquietante
mode: pseudo
rules: Inquietante — Whenever an enchantment you control enters and whenever you fully unlock a Room, [effect].
keyword:
#english keyword: Survival
keyword: Sobrevivir
match: Sobrevivir
mode: pseudo
rules: Sobrevivir — At the beginning of your second main phase, if ~ is tapped, [effect].

View File

@@ -2532,6 +2532,13 @@ keyword:
reminder: Une créature suspectée a la menace et ne peut pas bloquer.
#example: Reasonable Doubt
keyword:
#english keyword: To solve
keyword: À résoudre
match: À résoudre — <atom-param>Name</atom-param>
reminder: Si l'affaire n'est pas résolue, résolvez-la au début de votre étape de fin.
#example: Case of the Crimson Pulse
keyword:
#english keyword: Junk tokens
keyword: jetons Bric-à-brac
@@ -2597,3 +2604,138 @@ keyword:
mode: expert
reminder: Les assassins, les mercenaires, les pirates, les gredins et les psychagogues sont des hors-la-loi.
#example: Caught in the Crossfire
# Modern Horizons 3
keyword:
#english keyword: Emerge from
keyword: Émergence d'
match: Émergence d'<atom-param>nom</atom-param> <atom-param>coût</atom-param>
mode: expert
reminder: Vous pouvez lancer ce sort en sacrifiant un {param1} et en payant le coût d'émergence, moins la valeur de mana de l'{param1} sacrifié.
#example: Crabomination
# Bloomburrow
keyword:
#english keyword: expend
keyword: déboursez
match: déboursez <atom-param>nombre</atom-param>
mode: action
reminder: Vous déboursez {param1} au moment où vous dépensez votre {french_number(param1)} mana au total pour lancer des sorts pendant un tour.
#example: Teapot Slinger
keyword:
#english keyword: forage
keyword: fourragez
match: fourragez
mode: action
reminder: Pour fourrager, exilez trois cartes de votre cimetière ou sacrifiez une nourriture.
#example: Thornvault Forager
keyword:
#english keyword: foraging
keyword: fourrageant
match: fourrageant
mode: action
reminder: Pour fourrager, exilez trois cartes de votre cimetière ou sacrifiez une nourriture.
#example: Osteomancer Adept
keyword:
#english keyword: Gift a card
keyword: Faites cadeau d'une carte
match: Faites cadeau d'une carte
mode: expert
reminder: Vous pouvez promettre un cadeau à un adversaire au moment où vous lancez ce sort. Si vous faites ainsi, {if lang_setting("is_spell")(card.type) then "il pioche une carte avant ses autres effets." else "quand il arrive, il pioche une carte."}
#example: Kitnap
keyword:
#english keyword: Gift a tapped Fish
keyword: Faites cadeau d'un poisson engagé
match: Faites cadeau d'un poisson engagé
mode: expert
reminder: Vous pouvez promettre un cadeau à un adversaire au moment où vous lancez ce sort. Si vous faites ainsi, {if lang_setting("is_spell")(card.type) then "il crée, engagé, un jeton de créature 1/1 bleue Poisson avant ses autres effets." else "quand il arrive, il crée, engagé, un jeton de créature 1/1 bleue Poisson."}
#example: Parting Gust
keyword:
#english keyword: Gift a Food
keyword: Faites cadeau d'une nourriture
match: Faites cadeau d'une nourriture
mode: expert
reminder: Vous pouvez promettre un cadeau à un adversaire au moment où vous lancez ce sort. Si vous faites ainsi, {if lang_setting("is_spell")(card.type) then "il crée un jeton Nourriture avant ses autres effets." else "quand il arrive, il crée un jeton Nourriture."} C'est un artefact avec « [2], [T], sacrifiez cet artefact : Vous gagnez 3 points de vie. »
#example: Crumb and Get It
keyword:
#english keyword: Gift a Treasure
keyword: Faites cadeau d'un trésor
match: Faites cadeau d'un trésor
mode: expert
reminder: Vous pouvez promettre un cadeau à un adversaire au moment où vous lancez ce sort. Si vous faites ainsi, {if lang_setting("is_spell")(card.type) then "il crée un jeton Trésor avant ses autres effets." else "quand il arrive, il crée un jeton Trésor."} C'est un artefact avec « [T], sacrifiez cet artefact : Ajoutez un mana de la couleur de votre choix. »
#example: Blooming Blast
keyword:
#english keyword: Gift an Octopus
keyword: Faites cadeau d'une pieuvre
match: Faites cadeau d'une pieuvre
mode: expert
reminder: Vous pouvez promettre un cadeau à un adversaire au moment où vous lancez ce sort. Si vous faites ainsi, {if lang_setting("is_spell")(card.type) then "il crée un jeton de créature 8/8 bleue Pieuvre avant ses autres effets." else "quand il arrive, ce joueur crée un jeton de créature 8/8 bleue Pieuvre."}
reminder: Du kannst einem Gegner ein Geschenk versprechen, sowie du diesen Zauberspruch wirkst. Falls du dies tust, erzeugt er, { if lang_setting("is_spell")(card.type) then "vor dessen anderen Effekten" else "wenn dieses Permanent ins Spiel kommt,"} einen 8/8 blauen Oktopus-Kreaturenspielstein.
#example: Octomancer
keyword:
#english keyword: Gift an extra turn
keyword: Faites cadeau d'un tour supplémentaire
match: Faites cadeau d'un tour supplémentaire
mode: expert
reminder: Vous pouvez promettre un cadeau à un adversaire au moment où vous lancez ce sort. Si vous faites ainsi, il joue un tour supplémentaire après celui-ci.
#example: Perch Protection
keyword:
#english keyword: Offspring
keyword: Progéniture
match: Progéniture <atom-param>coût</atom-param>
mode: expert
reminder: vous pouvez payer {param1} supplémentaires au moment où vous lancez ce sort. Si vous faites ainsi, quand cette créature arrive, créez un jeton 1/1 qui en est une copie.
#example: Flowerfoot Swordmaster
keyword:
#english keyword: Valiant
keyword: Vaillant
match: Vaillant
mode: pseudo
rules: Vaillant — Whenever ~ becomes the target of a spell or ability you control for the first time each turn, [effect].
#example: Flowerfoot Swordmaster
#Duskmourn
keyword:
#english keyword: Impending
keyword: Imminence
match: Imminence <atom-param>nombre</atom-param>—<atom-param>coût</atom-param>
mode: expert
reminder: Si vous lancez ce sort pour son coût d'imminence, il arrive avec {quatre} marqueurs « temps » et ce n'est pas une créature avant que le dernier soit retiré. Au début de votre étape de fin, retirez-lui un marqueur « temps ».
keyword:
#english keyword: Manifest dread
keyword: Manifestez l'effroi
match: manifestez l'effroi
mode: expert
reminder: Regardez les deux cartes du dessus de votre bibliothèque. Mettez l'une d'elles sur le champ de bataille face cachée comme une créature 2/2 et l'autre dans votre cimetière. Retournez-la face visible à tout moment pour son coût de mana si c'est une carte de créature.
keyword:
#english keyword: Manifests dread
keyword: manifeste l'effroi
match: manifeste l'effroi
mode: expert
reminder: Ce jouer regarde les deux cartes du dessus de sa bibliothèque, puis met l'une d'elles sur le champ de bataille face cachée comme une créature 2/2 et l'autre dans son cimetière. Si c'est une carte de créature, elle peut être retournée face visible à tout moment pour son coût de mana.
keyword:
#english keyword: Eerie
keyword: Angoisse
match: Angoisse
mode: pseudo
rules: Angoisse — Whenever an enchantment you control enters and whenever you fully unlock a Room, [effect].
keyword:
#english keyword: Survival
keyword: Survie
match: Survie
mode: pseudo
rules: Survie — At the beginning of your second main phase, if ~ is tapped, [effect].

View File

@@ -2542,6 +2542,13 @@ keyword:
reminder: Una creatura sospettata ha minacciare e non può bloccare.
#example: Reasonable Doubt
keyword:
#english keyword: To solve
keyword: Risolvere
match: Risolvere — <atom-param>nome</atom-param>
reminder: Se irrisolto, risolvilo all'inizio della tua sottofase finale.
#example: Case of the Crimson Pulse
keyword:
#english keyword: Junk tokens
keyword: pedine Ferraglia
@@ -2606,3 +2613,137 @@ keyword:
mode: expert
reminder: Assassini, Farabutti, Mercenari, Pirati e Warlock sono fuorilegge.
#example: Caught in the Crossfire
# Modern Horizons 3
keyword:
#english keyword: Emerge from
keyword: Emergere da
match: Emergere da <atom-param>nome</atom-param> <atom-param>costo</atom-param>
mode: expert
reminder: Puoi lanciare questa magia sacrificando un {param1} e pagando il costo di emergere meno il valore di mana di quell'{param1}.
#example: Crabomination
# Bloomburrow
keyword:
#english keyword: expend
keyword: consumi
match: consumi <atom-param>numero</atom-param>
mode: action
reminder: Consumi {param1} quando spendi il tuo {italian_number(param1)} mana totale per lanciare magie in un turno.
#example: Teapot Slinger
keyword:
#english keyword: forage
keyword: Foraggia
match: Foraggia
mode: action
reminder: Per foraggiare, esilia tre carte dal tuo cimitero o sacrifica un Cibo.
#example: Thornvault Forager
keyword:
#english keyword: foraging
keyword: foraggiando
match: foraggiando
mode: action
reminder: Per foraggiare, esilia tre carte dal tuo cimitero o sacrifica un Cibo.
#example: Osteomancer Adept
keyword:
#english keyword: Gift a card
keyword: VDona una carta
match: Dona una carta
mode: expert
reminder: Puoi promettere un dono a un avversario mentre lanci questa magia. Se lo fai, {if lang_setting("is_spell")(card.type) then "quel giocatore pesca una carta prima dei suoi altri effetti." else "quando entra, quel giocatore pesca una carta."}
#example: Kitnap
keyword:
#english keyword: Gift a tapped Fish
keyword: Dona un Pesce TAPpato
match: Dona un Pesce TAPpato
mode: expert
reminder: Puoi promettere un dono a un avversario mentre lanci questa magia. Se lo fai, {if lang_setting("is_spell")(card.type) then "quel giocatore crea una pedina creatura Pesce 1/1 blu TAPpata prima dei suoi altri effetti." else "quando entra, quel giocatore crea una pedina creatura Pesce 1/1 blu TAPpata."}
#example: Parting Gust
keyword:
#english keyword: Gift a Food
keyword: Dona un Cibo
match: Dona un Cibo
mode: expert
reminder: Puoi promettere un dono a un avversario mentre lanci questa magia. Se lo fai, {if lang_setting("is_spell")(card.type) then "quel giocatore crea una pedina Cibo prima dei suoi altri effetti." else "quando entra, quel giocatore crea una pedina Cibo."} È un artefatto con “[2], [T], Sacrifica questo artefatto: Guadagni 3 punti vita”.
#example: Crumb and Get It
keyword:
#english keyword: Gift a Treasure
keyword: Dona un Tesoro
match: Dona un Tesoro
mode: expert
reminder: Puoi promettere un dono a un avversario mentre lanci questa magia. Se lo fai, {if lang_setting("is_spell")(card.type) then "quel giocatore crea una pedina Tesoro prima dei suoi altri effetti." else "quando entra, quel giocatore crea una pedina Tesoro."} È un artefatto con “[T], Sacrifica questo artefatto: Aggiungi un mana di un qualsiasi colore”.
#example: Blooming Blast
keyword:
#english keyword: Gift an Octopus
keyword: Gift an Octopus
match: Gift an Octopus
mode: expert
reminder: You may promise an opponent a gift as you cast this spell. If you do, {if not is_spell(card.super_type) then "when it enters, they" else "they"} create an 8/8 blue Octopus creature token{if is_spell(card.super_type) then " before its other effects." else "."}
#example: Octomancer
keyword:
#english keyword: Gift an extra turn
keyword: Gift an extra turn
match: Gift an extra turn
mode: expert
reminder: You may promise an opponent a gift as you cast this spell. If you do, {if not is_spell(card.super_type) then "when it enters, they" else "they"} take an extra turn after this one.
#example: Perch Protection
keyword:
#english keyword: Offspring
keyword: Prole
match: Prole <atom-param>costo</atom-param>
mode: expert
reminder: Du kannst zusätzlich {param1} bezahlen, sowie du diesen Zauberspruch wirkst. Falls du dies tust, erzeuge, wenn diese Kreatur ins Spiel kommt, eine 1/1-Spielsteinkopie davon.
#example: Flowerfoot Swordmaster
keyword:
#english keyword: Valiant
keyword: Audacia
match: Audacia
mode: pseudo
rules: Audacia — Whenever ~ becomes the target of a spell or ability you control for the first time each turn, [effect].
#example: Flowerfoot Swordmaster
#Duskmourn
keyword:
#english keyword: Impending
keyword: Imminente
match: Imminente <atom-param>numero</atom-param>—<atom-param>costo</atom-param>
mode: expert
reminder: Se lani questa magia per il suo costo di imminente, entra con {param1} segnalini tempo e non è una creatura finché non viene rimosso l'ultimo. All'inizio della tua sottofase finale, rimuovi un segnalino tempo da essa
keyword:
#english keyword: Manifest dread
keyword: Manifesta angoscia
match: manifesta angoscia
mode: expert
reminder: Guarda le prime due carte del tuo grimorio. Mettine una sul campo di battaglia a faccia in giù come una creatura 2/2 e l'altra nel tuo cimitero. Se è una carta creatura, girala a faccia in su in qualsiasi momento pagando il suo costo di mana.
keyword:
#english keyword: Manifests dread
keyword: manifesta angoscia
match: manifesta angoscia
mode: expert
reminder: Quel giocatore guarda le prime due carte del suo grimorio, poi ne mette una sul campo di battaglia a faccia in giù come una creatura 2/2 e l'altra nel suo cimitero. Se è una carta creatura, può essere girata a faccia in su in qualsiasi momento pagando il suo costo di mana.
keyword:
#english keyword: Eerie
keyword: Inquietante
match: Inquietante
mode: pseudo
rules: Inquietante — Whenever an enchantment you control enters and whenever you fully unlock a Room, [effect].
keyword:
#english keyword: Survival
keyword: Sopravvivenza
match: Sopravvivenza
mode: pseudo
rules: Sopravvivenza — At the beginning of your second main phase, if ~ is tapped, [effect].

View File

@@ -2313,6 +2313,13 @@ keyword:
reminder: 容疑クリーチャーは威迫を持ち、それではブロックできない。
#example: Reasonable Doubt
keyword:
#english keyword: To solve
keyword: 解明条件
match: 解明条件 — <atom-param>名前</atom-param>
reminder: 未解明なら、あなたの終了ステップの開始時に解明する。
#example: Case of the Crimson Pulse
keyword:
#english keyword: Junk token
keyword: ジャンク・トークン
@@ -2368,4 +2375,130 @@ keyword:
match: 放題
mode: expert
reminder: 以下から1つ以上の追加コストを選ぶ。
#example: Caught in the Crossfire
#example: Caught in the Crossfire
# Modern Horizons 3
keyword:
#english keyword: Emerge from
keyword: Auftauchen aus
match: <atom-param>名前</atom-param>の現出<atom-param>コスト</atom-param>
mode: expert
reminder: あなたはこの呪文を、{param1}1つを生け贄に捧げてその{param1}のマナ総量だけ減らした現出コストを支払って唱えてもよい。
#example: Crabomination
# Bloomburrow
keyword:
#english keyword: expend
keyword: を達成する
match: 積算<atom-param>番号</atom-param>を達成する
mode: action
reminder: 1ターンの間に呪文を唱えるための{param1}点目のマナを支払うと、積算4を達成する。
#example: Teapot Slinger
keyword:
#english keyword: forage
keyword: 給餌する
match: 給餌する
mode: action
reminder: 給餌するとは、あなたの墓地にあるカード3枚を追放するか食物1つを生け贄に捧げることである。
#example: Thornvault Forager
keyword:
#english keyword: Gift a card
keyword: カード1枚を贈呈する
match: カード1枚を贈呈する
mode: expert
reminder: あなたがこの呪文を唱えるに際し、対戦相手1人に贈呈する約束をしてもよい。そうしたなら、{if lang_setting("is_spell")(card.type) then "これの他の効果が適用される前に、そのプレイヤーはカード1枚を引く。" else "これが戦場に出たとき、そのプレイヤーはカード1枚を引く。"}
#example: Kitnap
keyword:
#english keyword: Gift a tapped Fish
keyword: タップ状態の魚1体を贈呈する
match: タップ状態の魚1体を贈呈する
mode: expert
reminder: あなたがこの呪文を唱えるに際し、対戦相手1人に贈呈する約束をしてもよい。そうしたなら、{if lang_setting("is_spell")(card.type) then "これの他の効果が適用される前に、そのプレイヤーは青の1/1の魚・クリーチャー・トークン1体をタップ状態で生成する。" then "これが戦場に出たとき、そのプレイヤーは青の1/1の魚・クリーチャー・トークン1体をタップ状態で生成する。"}
#example: Parting Gust
keyword:
#english keyword: Gift a Food
keyword: 食物1つを贈呈する
match: 食物1つを贈呈する
mode: expert
reminder: あなたがこの呪文を唱えるに際し、対戦相手1人に贈呈する約束をしてもよい。そうしたなら、これの他の効果が適用される前に、そのプレイヤーは食物・トークン1つを生成する。それは、「[2], [T], このアーティファクトを生け贄に捧げる:3点のライフを得る。」を持つアーティファクトである。
#example: Crumb and Get It
keyword:
#english keyword: Gift a Treasure
keyword: 宝物1つを贈呈する
match: 宝物1つを贈呈する
mode: expert
reminder: あなたがこの呪文を唱えるに際し、対戦相手1人に贈呈する約束をしてもよい。そうしたなら、これの他の効果が適用される前に、そのプレイヤーは宝物・トークン1つを生成する。それは「[T], このアーティファクトを生け贄に捧げる:好きな色1色のマナ1点を加える。」を持つアーティファクトである。
#example: Blooming Blast
keyword:
#english keyword: Gift an Octopus
keyword: タコ1体を贈呈
match: タコ1体を贈呈
mode: expert
reminder: あなたがこの呪文を唱えるに際し、対戦相手1人に贈呈する約束をしてもよい。そうしたなら、これが戦場に出たとき、そのプレイヤーは青の8/8のタコ・クリーチャー・トークン1体を生成する。
#example: Octomancer
keyword:
#english keyword: Gift an extra turn
keyword: 追加の1ターンを贈呈
match: 追加の1ターンを贈呈
mode: expert
reminder: この呪文を唱えるに際し、対戦相手1人に贈呈する約束をしてもよい。そうしたなら、そのプレイヤーはこのターンの直後に追加の1ターンを得る。
#example: Perch Protection
keyword:
#english keyword: Offspring
keyword: 新生
match: 新生 <atom-param>コスト</atom-param>
mode: expert
reminder: Du kannst zusätzlich {param1} bezahlen, sowie du diesen Zauberspruch wirkst. Falls du dies tust, erzeuge, wenn diese Kreatur ins Spiel kommt, eine 1/1-Spielsteinkopie davon.
#example: Flowerfoot Swordmaster
keyword:
#english keyword: Valiant
keyword: 新生
match: 新生
mode: pseudo
rules: 新生 — Whenever ~ becomes the target of a spell or ability you control for the first time each turn, [effect].
#example: Flowerfoot Swordmaster
#Duskmourn
keyword:
#english keyword: Impending
keyword: Unheilsdrohend
match: Unheilsdrohend <atom-param>番号</atom-param>—<atom-param>コスト</atom-param>
mode: expert
reminder: Falls du diesen Zauberspruch für seine Unheilsdrohend-Kosten wirkst, kommt er mit {german_number(param1)} Zeitmarken ins Spiel und ist keine Kreatur, bis die letzte entfernt wurde. Entfere zu Beginn deines Endsegments eine Zeitmarken davon.
keyword:
#english keyword: Manifest dread
keyword: Manifestiere das Gauen
match: manifestiere das Gauen
mode: expert
reminder: Schaue dir die obersten zwei Karten deiner Bibliothek an. Lege eine davon auf deinen Friedhof und bringe die andere als eine 2/2 Kreatur verdeckt ins Spiel. Decke sie zu einem beliebigen Zeitpunkt für ihre Manakosten auf, falls es sine Kreaturenkarte ist.
keyword:
#english keyword: Manifests dread
keyword: manifestiert das Grauen
match: manifestiert das Grauen
mode: expert
reminder: Jener Spieler schaut sich die obersten zwei Karten seiner Bibliothek an. Er legt eine davon auf seinen Friedhof und bringt die andere als eine 2/2 Kreatur verdeckt ins Spiel. Falls es eine Kreaturenkarte ist, kann sie jederzeit für ihre Manakosten aufgedeckt werden.
keyword:
#english keyword: Eerie
keyword: 違和感
match: 違和感
mode: pseudo
rules: 違和感 — Whenever an enchantment you control enters and whenever you fully unlock a Room, [effect].
keyword:
#english keyword: Survival
keyword: 生存
match: 生存
mode: pseudo
rules: 生存 — At the beginning of your second main phase, if ~ is tapped, [effect].

File diff suppressed because it is too large Load Diff

View File

@@ -32,7 +32,7 @@ include file: language
include file: statistics_script
include file: /magic-blends.mse-include/new-blends
############################################################## Versioning
version_date := {"2024-05-27 Mainframe 1.3.e Showcase Catchup: MH3 Keywords"}
version_date := {"2024-05-27 Mainframe 1.3.f Showcase Catchup: Module Rollout"}
version := version_date
############################################################## Common filters
############################################################## Utility
@@ -314,8 +314,21 @@ is_rare :=
rarity := rarity_field(field)
rarity == "rare" or rarity == "mythic rare" or rarity == "masterpiece"
}@(field: 1)
is_walker := { contains(card.super_type, match:"Planeswalker") }
is_legend := { true } #### TODO ???
type_field :=
{
if input <= 1 then card.type else card["type" + input]
}
is_walker :=
{
lang_setting("is_planeswalker")(type_field(face))
}@(face:1)
is_legend :=
{
lang_setting("is_legendary")(type_field(face))
}@(face:1)
############################################################## Identity
#### Indicators never appear if the indicator would be colorless, colorless land, or colorless artifact.
#### Indicators do appear if the chosen frame doesn't match the default.
@@ -327,13 +340,14 @@ blank_indentity := {
"artifact": true,
else: false;
}
cull_directions := replace@(match:", (horizontal|vertical|radial|overlay)", replace:"")
has_identity := {
default := card_color(casting_cost: card.casting_cost, rules_text: card.rule_text, type: card.super_type, watermark: card.watermark, card_name: card.name, default: "colorless")
if blank_indentity(card.indicator)
then false
else if card.indicator != default
else if cull_directions(card.indicator) != default
then true
else if card.card_color != default
else if cull_directions(card.card_color) != default
then true
else false
}
@@ -341,9 +355,9 @@ has_identity_2 := {
default := card_color(casting_cost: card.casting_cost_2, rules_text: card.rule_text_2, type: card.super_type_2, watermark: card.watermark_2, card_name: card.name_2, default: "colorless")
if blank_indentity(card.indicator)
then false
else if card.indicator_2 != default
else if cull_directions(card.indicator_2) != default
then true
else if card.card_color_2 != default
else if cull_directions(card.card_color_2) != default
then true
else false
}
@@ -351,9 +365,9 @@ has_identity_3 := {
default := card_color(casting_cost: card.casting_cost_3, rules_text: card.rule_text_3, type: card.super_type_3, watermark: card.watermark_3, card_name: card.name_3, default: "colorless")
if blank_indentity(card.indicator)
then false
else if card.indicator_3 != default
else if cull_directions(card.indicator_3) != default
then true
else if card.card_color_3 != default
else if cull_directions(card.card_color_3) != default
then true
else false
}
@@ -842,23 +856,73 @@ card_number_mom := { (if card_number() < 1000 then "0" else "") + (if card_numbe
card_count_mom := { (if card_count() < 1000 then "0" else "") + (if card_count() < 100 then "0" else "") + (if card_count() < 10 then "0" else "") + card_count() }
use_auto_numbers := {set.automatic_card_numbers and not is_unsorted()}
get_card_number := {
if set.card_number_style == "0001/0099" or set.card_number_style == "0001"
then card_number_mom()
else if set.card_number_style == "001/099" or set.card_number_style == "001"
then card_number_m15()
else card_number()
}
get_card_count := {
if over_partition() and set.over_partition_display == "100"
then ""
else if set.card_number_style == "0001/0099"
then card_count_mom()
else if set.card_number_style == "001/099"
then card_count_m15()
else if set.card_number_style == "1/99"
then card_count()
else ""
}
get_card_number_count := {
cc := get_card_count()
if cc == "" then get_card_number() + tag
else get_card_number() + tag + "/" + cc
}@(tag:"")
#### Use this in templates so we don't have to update 700 templates the next time they change the ordering
card_number_script_core := {
cn := get_card_number_count(tag:tag)
rc := rarity_code()
if rc != "" then rc := rc + " "
if not use_auto_numbers() then
combined_editor(field1: card.custom_card_number, separator: " " + rarity_code() + " ", field2: card.card_code_text)
else if set.card_number_style == "0001/0099" then
forward_editor(prefix: rarity_code() + " " + card_number_mom() + (if over_partition() and set.over_partition_display == "100" then "" else "/" + card_count_mom()) + " ", field: card.card_code_text)
else if set.card_number_style == "0001" then
forward_editor(prefix: rarity_code() + " " + card_number_mom() + " ", field: card.card_code_text)
else if set.card_number_style == "001/099" then
forward_editor(prefix: card_number_m15() + (if over_partition() and set.over_partition_display == "100" then "" else "/" + card_count_m15()) + " " + rarity_code() + " ", field: card.card_code_text)
else if set.card_number_style == "001" then
forward_editor(prefix: card_number_m15() + " " + rarity_code() + " ", field: card.card_code_text)
else if set.card_number_style == "1/99" then
forward_editor(prefix: card_number() + (if over_partition() and set.over_partition_display == "100" then "" else "/" + card_count()) + " " + rarity_code() + " ", field: card.card_code_text)
combined_editor(field1: card.custom_card_number, separator: " " + rc, field2: card.card_code_text)
else if set.card_number_style == "0001/0099" or set.card_number_style == "0001" then
forward_editor(prefix: rc + cn + " ", field: card.card_code_text)
else
forward_editor(prefix: card_number() + " " + rarity_code() + " ", field: card.card_code_text)
forward_editor(prefix: cn + " " + rc, field: card.card_code_text)
}@(tag:"")
#### i tried to make this one work like above but it kept breaking so here
card_number_old_1 := {
cn := " " + get_card_number_count(tag:card_number_tags().0) + " "
if not use_auto_numbers() and set.automatic_copyright then
combined_editor(field1: card.auto_copyright, separator1:" ", field2: card.custom_card_number, separator2:" ", field3: card.card_code_text)
else if not use_auto_numbers() then
combined_editor(field1: card.copyright, separator1:" ", field2: card.custom_card_number, separator2:" ", field3: card.card_code_text)
else if set.automatic_copyright then
combined_editor(field1: card.auto_copyright, separator:cn, field2: card.card_code_text)
else combined_editor(field1: card.copyright, separator:cn, field2: card.card_code_text)
}
card_number_old_2 := {
cn := " " + get_card_number_count(tag:card_number_tags().1) + " "
if not use_auto_numbers() and set.automatic_copyright then
combined_editor(field1: card.auto_copyright_2, separator1:" ", field2: card.custom_card_number, separator2:" ", field3: card.card_code_text_2)
else if not use_auto_numbers() then
combined_editor(field1: card.copyright_2, separator1:" ", field2: card.custom_card_number, separator2:" ", field3: card.card_code_text_2)
else if set.automatic_copyright then
combined_editor(field1: card.auto_copyright_2, separator:cn, field2: card.card_code_text_2)
else combined_editor(field1: card.copyright_2, separator:cn, field2: card.card_code_text_2)
}
card_number_old_3 := {
cn := " " + get_card_number_count(tag:card_number_tags().2) + " "
if not use_auto_numbers() and set.automatic_copyright then
combined_editor(field1: card.auto_copyright_3, separator1:" ", field2: card.custom_card_number, separator2:" ", field3: card.card_code_text_3)
else if not use_auto_numbers() then
combined_editor(field1: card.copyright_3, separator1:" ", field2: card.custom_card_number, separator2:" ", field3: card.card_code_text_3)
else if set.automatic_copyright then
combined_editor(field1: card.auto_copyright_3, separator:cn, field2: card.card_code_text_3)
else combined_editor(field1: card.copyright_3, separator:cn, field2: card.card_code_text_3)
}
#### Determine a rarity code for M15 styles.
rarity_code := {
@@ -1971,7 +2035,6 @@ sub_type_filter :=
else sub_types + "<soft>" + subtype_separator + "</soft><word-list-{list_type_rest}></word-list-{list_type_rest}>"
) else input #### Do nothing if we don't know the type
}
#### all sub types, for word list
space_to_comma := replace@(match:" ", replace:",")
only_first := replace@(match:" .*", replace:"")
@@ -2189,19 +2252,18 @@ correction_coeff := {
else 0) + (if lbh >= 4 then 0.5*lbh-1)
}
############################################################## Watermarks
card_spotlight := { "/magic-mainframe-watermarks.mse-include/spotlight/" + card_new_color() + "spotlight.png" }
custom_watermark_1 := { if set.custom_watermark_1 != "" then "/magic-watermarks.mse-include/" + set.custom_watermark_1 else "/magic-watermarks.mse-include/planeswalker.png" }
custom_watermark_2 := { if set.custom_watermark_2 != "" then "/magic-watermarks.mse-include/" + set.custom_watermark_2 else "/magic-watermarks.mse-include/planeswalker.png" }
custom_watermark_3 := { if set.custom_watermark_3 != "" then "/magic-watermarks.mse-include/" + set.custom_watermark_3 else "/magic-watermarks.mse-include/planeswalker.png" }
custom_watermark_4 := { if set.custom_watermark_4 != "" then "/magic-watermarks.mse-include/" + set.custom_watermark_4 else "/magic-watermarks.mse-include/planeswalker.png" }
custom_watermark_5 := { if set.custom_watermark_5 != "" then "/magic-watermarks.mse-include/" + set.custom_watermark_5 else "/magic-watermarks.mse-include/planeswalker.png" }
custom_watermark_6 := { if set.custom_watermark_6 != "" then "/magic-watermarks.mse-include/" + set.custom_watermark_6 else "/magic-watermarks.mse-include/planeswalker.png" }
custom_watermark_7 := { if set.custom_watermark_7 != "" then "/magic-watermarks.mse-include/" + set.custom_watermark_7 else "/magic-watermarks.mse-include/planeswalker.png" }
custom_watermark_8 := { if set.custom_watermark_8 != "" then "/magic-watermarks.mse-include/" + set.custom_watermark_8 else "/magic-watermarks.mse-include/planeswalker.png" }
custom_watermark_9 := { if set.custom_watermark_9 != "" then "/magic-watermarks.mse-include/" + set.custom_watermark_9 else "/magic-watermarks.mse-include/planeswalker.png" }
custom_watermark_10 := { if set.custom_watermark_10 != "" then "/magic-watermarks.mse-include/" + set.custom_watermark_10 else "/magic-watermarks.mse-include/planeswalker.png" }
custom_watermark_a := {"/magic-watermarks.mse-include/planeswalker.png"}
custom_watermark_b := {"/magic-watermarks.mse-include/planeswalker.png"}
custom_watermark_1 := { if set.custom_watermark_1 != "" then "/magic-mainframe-extras.mse-include/" + set.custom_watermark_1 else "/magic-modules.mse-include/watermarks/other/planeswalker.png" }
custom_watermark_2 := { if set.custom_watermark_2 != "" then "/magic-mainframe-extras.mse-include/" + set.custom_watermark_2 else "/magic-modules.mse-include/watermarks/other/planeswalker.png" }
custom_watermark_3 := { if set.custom_watermark_3 != "" then "/magic-mainframe-extras.mse-include/" + set.custom_watermark_3 else "/magic-modules.mse-include/watermarks/other/planeswalker.png" }
custom_watermark_4 := { if set.custom_watermark_4 != "" then "/magic-mainframe-extras.mse-include/" + set.custom_watermark_4 else "/magic-modules.mse-include/watermarks/other/planeswalker.png" }
custom_watermark_5 := { if set.custom_watermark_5 != "" then "/magic-mainframe-extras.mse-include/" + set.custom_watermark_5 else "/magic-modules.mse-include/watermarks/other/planeswalker.png" }
custom_watermark_6 := { if set.custom_watermark_6 != "" then "/magic-mainframe-extras.mse-include/" + set.custom_watermark_6 else "/magic-modules.mse-include/watermarks/other/planeswalker.png" }
custom_watermark_7 := { if set.custom_watermark_7 != "" then "/magic-mainframe-extras.mse-include/" + set.custom_watermark_7 else "/magic-modules.mse-include/watermarks/other/planeswalker.png" }
custom_watermark_8 := { if set.custom_watermark_8 != "" then "/magic-mainframe-extras.mse-include/" + set.custom_watermark_8 else "/magic-modules.mse-include/watermarks/other/planeswalker.png" }
custom_watermark_9 := { if set.custom_watermark_9 != "" then "/magic-mainframe-extras.mse-include/" + set.custom_watermark_9 else "/magic-modules.mse-include/watermarks/other/planeswalker.png" }
custom_watermark_10 := { if set.custom_watermark_10 != "" then "/magic-mainframe-extras.mse-include/" + set.custom_watermark_10 else "/magic-modules.mse-include/watermarks/other/planeswalker.png" }
custom_watermark_a := {"/magic-modules.mse-include/watermarks/other/planeswalker.png"}
custom_watermark_b := {"/magic-modules.mse-include/watermarks/other/planeswalker.png"}
invert_watermark := { false }
invert_watermark2 := { false }
invert_watermark3 := { false }
@@ -2243,6 +2305,17 @@ watermark_scripts :=
"mana symbol hi res green": { watermark_blend(colored: true, alpha: 1, dark_alpha: 1, wm_directory + "mana symbols/watermark_g_big.png") }
"mana symbol hi res colorless": { watermark_blend(colored: true, alpha: 1, dark_alpha: 1, wm_directory + "mana symbols/watermark_c_big.png") }
"mana symbol double WU": { watermark_blend(colored: true, alpha: 1, dark_alpha: 1, wm_directory + "mana double/mana_wu.png") }
"mana symbol double UB": { watermark_blend(colored: true, alpha: 1, dark_alpha: 1, wm_directory + "mana double/mana_ub.png") }
"mana symbol double BR": { watermark_blend(colored: true, alpha: 1, dark_alpha: 1, wm_directory + "mana double/mana_br.png") }
"mana symbol double RG": { watermark_blend(colored: true, alpha: 1, dark_alpha: 1, wm_directory + "mana double/mana_rg.png") }
"mana symbol double GW": { watermark_blend(colored: true, alpha: 1, dark_alpha: 1, wm_directory + "mana double/mana_gw.png") }
"mana symbol double WB": { watermark_blend(colored: true, alpha: 1, dark_alpha: 1, wm_directory + "mana double/mana_wb.png") }
"mana symbol double UR": { watermark_blend(colored: true, alpha: 1, dark_alpha: 1, wm_directory + "mana double/mana_ur.png") }
"mana symbol double BG": { watermark_blend(colored: true, alpha: 1, dark_alpha: 1, wm_directory + "mana double/mana_bg.png") }
"mana symbol double RW": { watermark_blend(colored: true, alpha: 1, dark_alpha: 1, wm_directory + "mana double/mana_rw.png") }
"mana symbol double GU": { watermark_blend(colored: true, alpha: 1, dark_alpha: 1, wm_directory + "mana double/mana_gu.png") }
"transparent mana symbol white": { watermark_blend(colored: true, alpha: 0.45, dark_alpha: 0.30, wm_directory + "mana symbols/watermark_w.png") }
"transparent mana symbol blue": { watermark_blend(colored: true, alpha: 0.35, dark_alpha: 0.30, wm_directory + "mana symbols/watermark_u.png") }
"transparent mana symbol black": { watermark_blend(colored: true, alpha: 0.30, dark_alpha: 0.45, wm_directory + "mana symbols/watermark_b.png") }
@@ -2263,6 +2336,17 @@ watermark_scripts :=
"transparent mana symbol hi res green": { watermark_blend(colored: true, alpha: 0.4, dark_alpha: 0.4, wm_directory + "mana symbols/watermark_g_big.png") }
"transparent mana symbol hi res colorless": { watermark_blend(colored: true, alpha: 0.4, dark_alpha: 0.4, wm_directory + "mana symbols/watermark_c_big.png") }
"transparent mana symbol double WU": { watermark_blend(colored: true, alpha: 1, dark_alpha: 1, wm_directory + "mana double/mana_wu_old.png") }
"transparent mana symbol double UB": { watermark_blend(colored: true, alpha: 1, dark_alpha: 1, wm_directory + "mana double/mana_ub_old.png") }
"transparent mana symbol double BR": { watermark_blend(colored: true, alpha: 1, dark_alpha: 1, wm_directory + "mana double/mana_br_old.png") }
"transparent mana symbol double RG": { watermark_blend(colored: true, alpha: 1, dark_alpha: 1, wm_directory + "mana double/mana_rg_old.png") }
"transparent mana symbol double GW": { watermark_blend(colored: true, alpha: 1, dark_alpha: 1, wm_directory + "mana double/mana_gw_old.png") }
"transparent mana symbol double WB": { watermark_blend(colored: true, alpha: 1, dark_alpha: 1, wm_directory + "mana double/mana_wb_old.png") }
"transparent mana symbol double UR": { watermark_blend(colored: true, alpha: 1, dark_alpha: 1, wm_directory + "mana double/mana_ur_old.png") }
"transparent mana symbol double BG": { watermark_blend(colored: true, alpha: 1, dark_alpha: 1, wm_directory + "mana double/mana_bg_old.png") }
"transparent mana symbol double RW": { watermark_blend(colored: true, alpha: 1, dark_alpha: 1, wm_directory + "mana double/mana_rw_old.png") }
"transparent mana symbol double GU": { watermark_blend(colored: true, alpha: 1, dark_alpha: 1, wm_directory + "mana double/mana_gu_old.png") }
"guild symbol The Azorius Senate (W/U)": { watermark_blend(wm_directory + "ravnica/azorius2.png") }
"guild symbol House Dimir (U/B)": { watermark_blend(wm_directory + "ravnica/dimir2.png") }
"guild symbol The Cult of Rakdos (B/R)": { watermark_blend(wm_directory + "ravnica/rakados2.png") }
@@ -2422,7 +2506,9 @@ watermark_scripts :=
"set symbol": { if (styling.watermark_render or else set.blend_with_colors) == "glow" then glow_watermark_blend(symbol_variation(symbol: set.symbol, variation: "watermark")) else shadow_watermark_blend(symbol_variation(symbol: set.symbol, variation: "watermark")) }
]
watermark_image_1 := { watermark_scripts[card.watermark](face:watermark_face_1()) }
watermark_image_2 := { watermark_scripts[card.watermark_2](face:watermark_face_2()) }
watermark_image_3 := { watermark_scripts[card.watermark_3](face:watermark_face_3()) }
############################################################## Other scripted fields
#### Dimensions of card faces, can be changed in style files
faces_coordinates := {
@@ -2460,6 +2546,8 @@ information_copyright_offset_right_1 := { 0 }
information_copyright_offset_pt_top_1 := { 0 }
#### To shift the secondary copyright left/right on creatures/walkers, if the pt/loyalty box is very narrow/wide:
information_secondary_offset_pt_left_1 := { 0 }
#### Disable if the pt/loyalty doesn't affect the secondary copyright
information_secondary_shift_with_pt_1 := { true }
#### For the other faces on DFCs use:
information_offset_top_2 := { 0 }
information_codes_offset_left_2 := { 0 }
@@ -2471,6 +2559,8 @@ information_codes_offset_left_3 := { 0 }
information_copyright_offset_right_3 := { 0 }
information_copyright_offset_pt_top_3 := { 0 }
information_secondary_offset_pt_left_3 := { 0 }
information_secondary_shift_with_pt_2 := { true }
information_secondary_shift_with_pt_3 := { true }
#### These work the same on 90° rotated cards, but you need to imagine the card is upright
#### For DFC or TFC templates, dont forget to override the faces_coordinates function.
#### You can disable the copyright on some of the faces,
@@ -2502,33 +2592,41 @@ card_number_tags := {
then ["a", "b", "b"]
else ["", "", ""]
}
#### Card number section of card code
card_code_number := {
if not use_auto_numbers()
then card.custom_card_number
else if set.card_number_style == "0001/0099" then
card_number_mom() + tag + (if over_partition() and set.over_partition_display == "100" then "" else "/" + card_count_mom())
else if set.card_number_style == "0001" then
card_number_mom() + tag
else if set.card_number_style == "001/099" then
card_number_m15() + tag + (if over_partition() and set.over_partition_display == "100" then "" else "/" + card_count_m15())
else if set.card_number_style == "001" then
card_number_m15() + tag
else if set.card_number_style == "1/99" then
card_number() + tag + (if over_partition() and set.over_partition_display == "100" then "" else "/" + card_count())
else
card_number() + tag
}@(tag: "")
#### General card code handler
card_code_script_core := {
rc := rarity_code()
if rc != "" then rc := rc + " "
if not use_auto_numbers() and set.card_number_style == "0001" then
### R CUSTOM TEXT
combined_editor(prefix: rarity_code() + " ", field1: card.custom_card_number, separator: " ", field2: card_code_text)
combined_editor(prefix: rc, field1: card.custom_card_number, separator: " ", field2: card_code_text)
else if not use_auto_numbers() then
### CUSTOM R TEXT
combined_editor(field1: card.custom_card_number, separator: " " + rarity_code() + " ", field2: card_code_text)
else if set.card_number_style == "0001/0099" then
### R 1000/1000 TEXT
forward_editor(prefix: rarity_code() + " " + card_number_mom() + tag + (if over_partition() and set.over_partition_display == "100" then "" else "/" + card_count_mom()) + " ", field: card_code_text)
else if set.card_number_style == "0001" then
### R 1000 TEXT
forward_editor(prefix: rarity_code() + " " + card_number_mom() + tag + " ", field: card_code_text)
else if set.card_number_style == "001/099" then
### 100/100 R TEXT
forward_editor(prefix: card_number_m15() + tag + (if over_partition() and set.over_partition_display == "100" then "" else "/" + card_count_m15()) + " " + rarity_code() + " ", field: card_code_text)
else if set.card_number_style == "001" then
### 100 R TEXT
forward_editor(prefix: card_number_m15() + tag + " " + rarity_code() + " ", field: card_code_text)
else if set.card_number_style == "1/99" then
### 1/99 R TEXT
forward_editor(prefix: card_number() + tag + (if over_partition() and set.over_partition_display == "100" then "" else "/" + card_count()) + " " + rarity_code() + " ", field: card_code_text)
combined_editor(field1: card.custom_card_number, separator: " " + rc, field2: card_code_text)
else if set.card_number_style == "0001/0099" or set.card_number_style == "0001" then
### R C#### TEXT
forward_editor(prefix: rc + card_code_number(tag:tag) + " ", field: card_code_text)
else
### 1 R TEXT
forward_editor(prefix: card_number() + tag + " " + rarity_code() + " ", field: card_code_text)
### C# R TEXT
forward_editor(prefix: card_code_number(tag:tag) + " " + rc, field: card_code_text)
}@(tag: "")
#### Card code script for individual faces
card_code_script :=
{
@@ -2576,6 +2674,12 @@ the_list_icon_image :=
color := styling.copyright_text_color or else set.copyright_text_color
recolor_image(image, color: color)
}
the_list_dot_image :=
{
shape := the_list_icon_field(field)
if shape == "none" then ""
else recolor_image("/magic-modules.mse-include/information/list_dot.png", color: card.border_color)
}
############################################################## Additional textboxes
text_filter_default :=
@@ -2606,19 +2710,60 @@ level_filter_default := { "" }
level_filter := { input }
#### Correct the CARDNAME atom for levelers
#### This can be overwritten for more complicated levelers
#### Dungeons for example will overwrite with just {if set.alias_as_cardname and card.alias != "" then card.alias else card.name}
card_name_for_level := {
lvl := if input < 5
then ""
else if input < 9
then "_2"
else if input < 13
then "_3"
else if input < 17
then "_4"
else ""
if set.alias_as_cardname and card["alias"+lvl] != "" then card["alias"+lvl] else card["name"+lvl]
tag := name_tag_for_level()
if set.CARDNAME_replacement == "card's type"
then (
ty := to_lower(cardname_type(card["type"+tag]))
if ty == "" then "this"
else "this " + ty
)
else if set.CARDNAME_replacement == "card's alias" and card["alias"+tag] != ""
then card["alias"+tag]
else card["name"+tag]
}
card_name_for_face := {
tag := if input == 1 then "" else "_" + input
if set.CARDNAME_replacement == "card's type"
then (
ty := to_lower(cardname_type(card["type"+tag]))
if ty == "" then "this"
else "this " + ty
)
else if set.CARDNAME_replacement == "card's alias" and card["alias"+tag] != ""
then card["alias"+tag]
else card["name"+tag]
}
cardname_type := {
if lang_setting("is_creature")(input)
then lang_setting("creature")
else if lang_setting("is_land")(input)
then lang_setting("land")
else if lang_setting("is_spell")(input)
then lang_setting("spell")
else if lang_setting("is_artifact")(input)
then lang_setting("artifact")
else if lang_setting("is_planeswalker")(input)
then lang_setting("planeswalker")
else if lang_setting("is_enchantment")(input)
then lang_setting("enchantment")
else if lang_setting("is_battle")(input)
then lang_setting("battle")
else ""
}
#### This can be overwritten for more complicated levelers
#### Dungeons for example will overwrite with just {""}
name_tag_for_level := {
if input < 5
then ""
else if input < 9
then "_2"
else if input < 13
then "_3"
else if input < 17
then "_4"
else ""
}
############################################################## Border
@@ -2641,7 +2786,7 @@ corners_mask :=
dimensions := map.width + "x" + map.height
dimensions := corners_possible_dimensions[dimensions] or else (if map.height > map.width then "1046x750" else "750x1046")
shape := corners_field(field)
shape := if shape == "none" or shape == "invisible" then "rounded" else shape
shape := if shape == "none" or shape == "invisible" or shape == "" then "rounded" else shape
"/magic-modules.mse-include/corners/" + dimensions + " " + shape + ".png"
)
}
@@ -2651,6 +2796,7 @@ corners_possible_dimensions :=
"523x375": "523x375"
"646x902": "646x902"
"902x646": "902x646"
"752x1049": "752x1049"
"744x1039": "744x1039"
"1039x744": "1039x744"
"750x1046": "750x1046"
@@ -2714,6 +2860,7 @@ typesymbol_type := { typesymbol_for(type) }
############################################################## Transform/Lesson symbols
transform_symbol_default :=
{
stylesheet
if margin_code == "transform1" then "none"
else if margin_code == "transform2" then "none"
else "none"
@@ -2911,6 +3058,26 @@ card_symbol_width_3 := { card_symbol_width( face:card_symbol_face_3(), offset:c
card_symbol_height_3 := { card_symbol_height(face:card_symbol_face_3(), offset:card_symbol_offset_height_3()) }
############################################################## Loyalty costs
use_tall_walker_frame_1 :=
{
count := loyalty_abilities_count(instance: 1, active:true)
method := styling.use_tall_frame or else "default"
if method == "default" and count >= 4
then true
else if method == "always"
then true
else false
}
use_tall_walker_frame_2 :=
{
count := loyalty_abilities_count(instance: 2, active:true)
method := styling.use_tall_frame_2 or else "default"
if method == "default" and count >= 4
then true
else if method == "always"
then true
else false
}
loyalty_clean_margin_code := replace@(match: "loy(cost)?", replace: "")
loyalty_cost_field :=
{
@@ -2981,9 +3148,9 @@ loyalty_cost_offset_text_margin_1 := { 0 }
loyalty_textbox_mask_1 :=
{
if is_stamped(field: loyalty_stamp_field_1())
then "/magic-modules.mse-include/loyalty/default_textbox_stamp_mask.png"
else "/magic-modules.mse-include/loyalty/default_textbox_mask.png"
"/magic-modules.mse-include/loyalty/default_textbox"
+ (if use_tall_walker_frame_1() then "_tall" else "")
+ "_mask.png"
}
loyalty_face_2 := { 2 }
@@ -3004,9 +3171,9 @@ loyalty_cost_offset_text_margin_2 := { 0 }
loyalty_textbox_mask_2 :=
{
if is_stamped(field: loyalty_stamp_field_2())
then "/magic-modules.mse-include/loyalty/default_textbox_stamp_mask.png"
else "/magic-modules.mse-include/loyalty/default_textbox_mask.png"
"/magic-modules.mse-include/loyalty/default_textbox"
+ (if use_tall_walker_frame_2() then "_tall" else "")
+ "_mask.png"
}
loyalty_face_3 := { 3 }
@@ -3125,13 +3292,24 @@ loyalty_level_is_active :=
number := to_int(replace(input, match: "lv", replace: "")) or else 999
if number > 24 then false else (
instance := if number < 9 then 1 else if number < 17 then 2 else 3
loyalty_abilities_count() >= (number mod 8))
loyalty_abilities_count(active:true) >= (number mod 8))
}
loyalty_abilities_count :=
{
styling_field := if instance <= 1 then (styling.number_of_textboxes or else "0") else (styling["number_of_textboxes_" + instance] or else "0")
if styling_field == "automatic" then (
counter := 1
for x from 1 to 8 do (
tf := card["level_" + (x*instance) + "_text"]
if tf != "" and tf != zwsp then counter := x;
)
tf := card["level_" + counter + "_text"]
if active then counter := counter - ( if tf == "" or tf == zwsp then 1 else 0)
else counter := counter + 1
styling_field := counter;
)
to_int(styling_field)
}
}@(active:false)
loyalty_ability_left :=
{
@@ -3198,7 +3376,7 @@ loyalty_stripe_mask :=
or mask == "/magic-modules.mse-include/loyalty/default_textbox_mask.png" then
(
top := if input > 1 then loyalty_stripe_separator_top(2*input-2) + loyalty_stripe_separator_height() else a_top()
height := (if loyalty_abilities_count() >= 2*input then loyalty_stripe_separator_top(2*input-1) else a_bottom()) - top
height := (if loyalty_abilities_count(active:true) >= 2*input then loyalty_stripe_separator_top(2*input-1) else a_bottom()) - top
top := to_744_height(top - a_top())
height := to_744_height(height)
crop_safe(
@@ -3214,7 +3392,7 @@ loyalty_stripe_mask :=
else
(
top := if input > 1 then loyalty_stripe_separator_top(2*input-2) + loyalty_stripe_separator_height() else a_top()
height := (if loyalty_abilities_count() >= 2*input then loyalty_stripe_separator_top(2*input-1) else a_bottom()) - top
height := (if loyalty_abilities_count(active:true) >= 2*input then loyalty_stripe_separator_top(2*input-1) else a_bottom()) - top
top := top - a_top()
crop_safe(
mask,
@@ -3705,9 +3883,10 @@ card_stamp_default := {
shape := styling.default_stamp or else set.default_stamp
stamp_behavior := styling.stamp_behavior or else set.stamp_behavior
if stamp_behavior == "default" or stamp_behavior == "flatstamped default" then stamp_behavior := set.stamp_behavior
rare_face := is_rare(field:field)
stamp_behavior_checks[stamp_behavior](rare_face:rare_face, shape:shape)
if field > 1
then "none" #### backface doesn't have it by default
else stamp_behavior_checks[stamp_behavior](rare_face:is_rare(field:field), shape:shape)
}@(field:1)
### Map for easier checks than if/else or case
stamp_behavior_checks := [
@@ -3762,6 +3941,8 @@ card_stamp_image :=
if shape == "default" then shape := set.default_stamp
if shape == "custom" or shape == "flatstamped custom"
then custom_stamp(flat:not is_foil_stamped(field:field))
else if shape == "none"
then ""
else "/magic-modules.mse-include/stamps/" + dimensions + " " + shape + ".png"
)
)
@@ -3823,10 +4004,30 @@ pinline_mask_2 := {""}
pinline_mask_3 := {""}
############################################################## Custom corner symbols
custom_symbol_1 := { if set.custom_symbol_1 != "" then "/magic-modules.mse-include/symbols/" + set.custom_symbol_1 else "/magic-modules.mse-include/symbols/aetherprint.png" }
custom_symbol_2 := { if set.custom_symbol_2 != "" then "/magic-modules.mse-include/symbols/" + set.custom_symbol_2 else "/magic-modules.mse-include/symbols/aetherprint.png" }
custom_symbol_3 := { if set.custom_symbol_3 != "" then "/magic-modules.mse-include/symbols/" + set.custom_symbol_3 else "/magic-modules.mse-include/symbols/aetherprint.png" }
custom_symbol_4 := { if set.custom_symbol_4 != "" then "/magic-modules.mse-include/symbols/" + set.custom_symbol_4 else "/magic-modules.mse-include/symbols/aetherprint.png" }
custom_symbol_1 := {
src := styling.custom_symbol_1 or else styling.custom_symbol_one or else set.custom_symbol_1 or else ""
if has_png(src)
then "/magic-mainframe-extras.mse-include/" + src
else "/magic-modules.mse-include/symbols/aetherprint.png"
}
custom_symbol_2 := {
src := styling.custom_symbol_2 or else styling.custom_symbol_two or else set.custom_symbol_2 or else ""
if has_png(src)
then "/magic-mainframe-extras.mse-include/" + src
else "/magic-modules.mse-include/symbols/aetherprint.png"
}
custom_symbol_3 := {
src := styling.custom_symbol_3 or else styling.custom_symbol_three or else set.custom_symbol_3 or else ""
if has_png(src)
then "/magic-mainframe-extras.mse-include/" + src
else "/magic-modules.mse-include/symbols/aetherprint.png"
}
custom_symbol_4 := {
src := styling.custom_symbol_4 or else styling.custom_symbol_four or else set.custom_symbol_4 or else ""
if has_png(src)
then "/magic-mainframe-extras.mse-include/" + src
else "/magic-modules.mse-include/symbols/aetherprint.png"
}
############################################################## Custom fonts
swap_font := {styling.apply_custom_fonts or else false}
split_font := split_text@(match:";")
@@ -4264,62 +4465,62 @@ pt_font_italic := {
pt2_font := {
swap_font_name(
src: swap_fonts_pt_src(),
font_name: swap_fonts_pt_default.name()
font_name: swap_fonts_pt2_default.name()
)
}
pt2_font_size := {
swap_font_size(
src: swap_fonts_pt_src(),
font_size: swap_fonts_pt_default.size()
font_size: swap_fonts_pt2_default.size()
)
}
pt2_font_color := {
swap_font_color(
src: swap_fonts_pt_src(),
font_color: swap_fonts_pt_default.color()
font_color: swap_fonts_pt2_default.color()
)
}
pt2_font_vertical := {
swap_font_vertical(
src: swap_fonts_pt_src(),
vertical: swap_fonts_pt_default.vertical()
vertical: swap_fonts_pt2_default.vertical()
)
}
pt2_font_italic := {
swap_font_italic(
src: swap_fonts_pt_src(),
font_name: swap_fonts_pt_default.italic()
font_name: swap_fonts_pt2_default.italic()
)
}
pt3_font := {
swap_font_name(
src: swap_fonts_pt_src(),
font_name: swap_fonts_pt_default.name()
font_name: swap_fonts_pt3_default.name()
)
}
pt3_font_size := {
swap_font_size(
src: swap_fonts_pt_src(),
font_size: swap_fonts_pt_default.size()
font_size: swap_fonts_pt3_default.size()
)
}
pt3_font_color := {
swap_font_color(
src: swap_fonts_pt_src(),
font_color: swap_fonts_pt_default.color()
font_color: swap_fonts_pt3_default.color()
)
}
pt3_font_vertical := {
swap_font_vertical(
src: swap_fonts_pt_src(),
vertical: swap_fonts_pt_default.vertical()
vertical: swap_fonts_pt3_default.vertical()
)
}
pt3_font_italic := {
swap_font_italic(
src: swap_fonts_pt_src(),
font_name: swap_fonts_pt_default.italic()
font_name: swap_fonts_pt3_default.italic()
)
}
@@ -4328,8 +4529,13 @@ shrink_type := {0}
shrink_name2 := {0}
shrink_type2 := {0}
############################################################## Custom rarity symbol
use_main_rarity := { contains(set.mainframe_rarity_name, match: ".png") }
mainframe_rarity := {"/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + input + ".png"}
mainframe_rarity_string := {
if styling.mainframe_rarity_name or else "" != ""
then mr := styling.mainframe_rarity_name
else set.mainframe_rarity_name
}
use_main_rarity := { has_png(mainframe_rarity_string()) }
mainframe_rarity := {"/magic-mainframe-extras.mse-include/" + un_png(mainframe_rarity_string()) + input + ".png"}
alt_rarity := { styling.alt_rarity_color or else "" }
use_alt_rarity := { alt_rarity() != "" }
alt_rarity_color := {
@@ -4370,6 +4576,25 @@ alt_symbol := {
center_x:0.5, center_y:0.5, end_x:1, end_y:1
)
}
############################################################## Other customizable stuff
custom_border_image := {
src := styling.custom_border_source or else ""
ps := split_text(src, match:"-color-")
if length(ps) > 1 then
"/magic-mainframe-extras.mse-include/" + ps[0] + input + (if land then "l" else "") + ps[1]
else
"/magic-mainframe-extras.mse-include/" + src
}
alt_nyx_template := {
src := set.alternate_nyx
fs := filter_text(src, match:"[^./]+.png")
dir := filter_text(src, match:"^([^.]+/)+")
"/magic-mainframe-extras.mse-include/" + dir + input + (if land then "l" else "") + fs
}
harder_script := [
alt_nyx: alt_nyx_template,
custom_border: custom_border_image
]
############################################################## Card column sorting
type_sort_script :=
{

View File

@@ -85,6 +85,13 @@ set field:
type: boolean
name: alphabetical type column
description: Sorts the type column alphabetically including supertypes. Disable to sort by card type.
set field:
type: choice
name: CARDNAME replacement
choice: card's name
choice: card's alias
choice: card's type
description: Replaces CARDNAME with something other than the main name.
set field:
@@ -152,10 +159,6 @@ set field:
type: text
name: inserts
description: List of strings, separated by ;, that replaces INS1, INS2, ... INS9. May need to reload MSE for changes to take effect.
set field:
type: boolean
name: alias as cardname
description: Replaces CARDNAME with a card's alias instead of its main name.
set field:
type: choice
name: use gradient multicolor
@@ -416,6 +419,14 @@ set field:
type: boolean
name: auto legends
description: Automatically apply the Legendary frame on Mainframe templates.
set field:
type: boolean
name: auto nyx
description: Automatically apply the Enchantment frame on Mainframe templates.
set field:
type: text
name: alternate nyx
description: Use an alternate nyx source folder from magic-mainframe-extras.mse-include.
set field:
type: text
name: custom index
@@ -633,8 +644,8 @@ default set style:
render style: both
choice images:
All holostamped: /magic.mse-game/stamps/oval.png
Standard, rares holostamped: /magic.mse-game/stamps/nonfoil.png
UB, rares holostamped, others flatstamped: /magic.mse-game/stamps/onlyrare.png
Standard, rares holostamped: /magic.mse-game/stamps/onlyrare.png
UB, rares holostamped, others flatstamped: /magic.mse-game/stamps/nonfoil.png
All flatstamped: /magic.mse-game/stamps/flat_oval.png
All unstamped: /magic.mse-game/stamps/none.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@@ -23,6 +23,17 @@ choice images:
mana symbol hi res green: /magic.mse-game/watermarks/watermark_g_big.png
mana symbol hi res colorless: /magic.mse-game/watermarks/watermark_c_big.png
mana symbol double WU: /magic.mse-game/watermarks/mana_wu.png
mana symbol double UB: /magic.mse-game/watermarks/mana_ub.png
mana symbol double BR: /magic.mse-game/watermarks/mana_br.png
mana symbol double RG: /magic.mse-game/watermarks/mana_rg.png
mana symbol double GW: /magic.mse-game/watermarks/mana_gw.png
mana symbol double WB: /magic.mse-game/watermarks/mana_wb.png
mana symbol double UR: /magic.mse-game/watermarks/mana_ur.png
mana symbol double BG: /magic.mse-game/watermarks/mana_bg.png
mana symbol double RW: /magic.mse-game/watermarks/mana_rw.png
mana symbol double GU: /magic.mse-game/watermarks/mana_gu.png
transparent mana symbol white: /magic.mse-game/watermarks/watermark_w.png
transparent mana symbol blue: /magic.mse-game/watermarks/watermark_u.png
transparent mana symbol black: /magic.mse-game/watermarks/watermark_b.png
@@ -43,6 +54,17 @@ choice images:
transparent mana symbol hi res green: /magic.mse-game/watermarks/watermark_g_big.png
transparent mana symbol hi res colorless: /magic.mse-game/watermarks/watermark_c_big.png
transparent mana symbol double WU: /magic.mse-game/watermarks/mana_wu_old.png
transparent mana symbol double UB: /magic.mse-game/watermarks/mana_ub_old.png
transparent mana symbol double BR: /magic.mse-game/watermarks/mana_br_old.png
transparent mana symbol double RG: /magic.mse-game/watermarks/mana_rg_old.png
transparent mana symbol double GW: /magic.mse-game/watermarks/mana_gw_old.png
transparent mana symbol double WB: /magic.mse-game/watermarks/mana_wb_old.png
transparent mana symbol double UR: /magic.mse-game/watermarks/mana_ur_old.png
transparent mana symbol double BG: /magic.mse-game/watermarks/mana_bg_old.png
transparent mana symbol double RW: /magic.mse-game/watermarks/mana_rw_old.png
transparent mana symbol double GU: /magic.mse-game/watermarks/mana_gu_old.png
guild symbol The Azorius Senate (W/U): /magic.mse-game/watermarks/watermark_azorius2.png
guild symbol House Dimir (U/B): /magic.mse-game/watermarks/watermark_dimir2.png
guild symbol The Cult of Rakdos (B/R): /magic.mse-game/watermarks/watermark_rakados2.png

View File

@@ -349,7 +349,7 @@ word list:
word: Criatura Artefato
word: Encantamento
word: Criatura Encantamento
word: Mágica Instantânea
word: Mágica Istantaneo
word: Feitiço
word: Terreno
word: Planeswalker
@@ -846,15 +846,15 @@ word list:
word:
name: S
word:
name: Sa-Sc
name: Sa-Sa
word:
script: lang_setting("word_lists_race").18
word:
name: Se-Su
name: Sc-Se
word:
script: lang_setting("word_lists_race").19
word:
name: Sy-Sz
name: Si-Sz
word:
script: lang_setting("word_lists_race").20
word:
@@ -891,7 +891,7 @@ word list:
word:
name: Alle Klassen
word:
name: A-B
name: A-C
word:
script: lang_setting("word_lists_class").0
word:
@@ -903,11 +903,11 @@ word list:
word:
script: lang_setting("word_lists_class").2
word:
name: R-U
name: R-T
word:
script: lang_setting("word_lists_class").3
word:
name: V-Z
name: U-Z
word:
script: lang_setting("word_lists_class").4
@@ -1257,11 +1257,11 @@ word list:
word:
script: lang_setting("word_lists_class").2
word:
name: M-R
name: M-P
word:
script: lang_setting("word_lists_class").3
word:
name: S-Z
name: R-Z
word:
script: lang_setting("word_lists_class").4
@@ -1346,63 +1346,67 @@ word list:
word:
script: lang_setting("word_lists_race").9
word:
name: K
name: J
word:
script: lang_setting("word_lists_race").10
word:
name: L
name: K
word:
script: lang_setting("word_lists_race").11
word:
name: M
name: L
word:
script: lang_setting("word_lists_race").12
word:
name: N
name: M
word:
script: lang_setting("word_lists_race").13
word:
name: O
name: N
word:
script: lang_setting("word_lists_race").14
word:
name: P
name: O
word:
script: lang_setting("word_lists_race").15
word:
name: R
name: P
word:
script: lang_setting("word_lists_race").16
word:
name: R
word:
script: lang_setting("word_lists_race").17
word:
name: S
word:
name: Sa-Sl
word:
script: lang_setting("word_lists_race").17
script: lang_setting("word_lists_race").18
word:
name: So-Sz
word:
script: lang_setting("word_lists_race").18
script: lang_setting("word_lists_race").19
word:
name: T
word:
script: lang_setting("word_lists_race").19
script: lang_setting("word_lists_race").20
word:
name: V
word:
script: lang_setting("word_lists_race").20
script: lang_setting("word_lists_race").21
word:
name: W
word:
script: lang_setting("word_lists_race").21
script: lang_setting("word_lists_race").22
word:
name: Y
word:
script: lang_setting("word_lists_race").22
script: lang_setting("word_lists_race").23
word:
name: Z
word:
script: lang_setting("word_lists_race").23
script: lang_setting("word_lists_race").24
word list:
@@ -1417,21 +1421,25 @@ word list:
word:
script: lang_setting("word_lists_class").0
word:
name: C-E
name: C-D
word:
script: lang_setting("word_lists_class").1
word:
name: G-M
name: E-L
word:
script: lang_setting("word_lists_class").2
word:
name: N-R
name: M-O
word:
script: lang_setting("word_lists_class").3
word:
name: S-Z
name: P-R
word:
script: lang_setting("word_lists_class").4
word:
name: S-Z
word:
script: lang_setting("word_lists_class").5
word list:
@@ -1595,19 +1603,19 @@ word list:
word:
name: Tutte le classi
word:
name: A-C
name: A-B
word:
script: lang_setting("word_lists_class").0
word:
name: D-L
name: C-F
word:
script: lang_setting("word_lists_class").1
word:
name: M-O
name: G-M
word:
script: lang_setting("word_lists_class").2
word:
name: P-R
name: N-R
word:
script: lang_setting("word_lists_class").3
word:
@@ -2036,7 +2044,7 @@ word list:
word:
script: lang_setting("word_lists_race").0
word:
name: - ᄀᄒ
name: - ᄀᄒ
word:
script: lang_setting("word_lists_race").1
word:
@@ -2131,11 +2139,11 @@ word list:
word:
script: lang_setting("word_lists_class").1
word:
name: ᄋ-
name: ᄋ-
word:
script: lang_setting("word_lists_class").2
word:
name: ᄒ
name: ᄎ-
word:
script: lang_setting("word_lists_class").3
@@ -2305,11 +2313,11 @@ word list:
word:
script: lang_setting("word_lists_class").2
word:
name: P-T
name: P-S
word:
script: lang_setting("word_lists_class").3
word:
name: V-Z
name: T-Z
word:
script: lang_setting("word_lists_class").4
@@ -2475,11 +2483,11 @@ word list:
word:
script: lang_setting("word_lists_class").0
word:
name: З-О
name: З-Н
word:
script: lang_setting("word_lists_class").1
word:
name: П-Р
name: О-Р
word:
script: lang_setting("word_lists_class").2
word:
@@ -2554,29 +2562,33 @@ word list:
word:
script: lang_setting("word_lists_race").6
word:
name: 猿-
name: 猿-穿
word:
script: lang_setting("word_lists_race").7
word:
name: 精-苏
name: 突-自
word:
script: lang_setting("word_lists_race").8
word:
name: 荷-蠕
name: 臭-蝙
word:
script: lang_setting("word_lists_race").9
word:
name: 袋-阿
name: 蟹-野
word:
script: lang_setting("word_lists_race").10
word:
name: 雕-鬼
name: 钳-骷
word:
script: lang_setting("word_lists_race").11
word:
name: 魔-龟
name: 鬣-墨
word:
script: lang_setting("word_lists_race").12
word:
name: 鼹-龟
word:
script: lang_setting("word_lists_race").13
word list:
@@ -2591,15 +2603,15 @@ word list:
word:
script: lang_setting("word_lists_class").0
word:
name: 奴-
name: 奴-
word:
script: lang_setting("word_lists_class").1
word:
name: 映-祭
name: 无-病
word:
script: lang_setting("word_lists_class").2
word:
name: -魔
name: -魔
word:
script: lang_setting("word_lists_class").3
@@ -2642,59 +2654,59 @@ word list:
word:
name: 所有物種
word:
name: 三-
name: 三-
word:
script: lang_setting("word_lists_race").0
word:
name: 分-四
name: 化-塔
word:
script: lang_setting("word_lists_race").1
word:
name: 地-寇
name: 塞-山
word:
script: lang_setting("word_lists_race").2
word:
name: 寧-惡
name: 巨-振
word:
script: lang_setting("word_lists_race").3
word:
name: 拉-樹
name: 攻-氣
word:
script: lang_setting("word_lists_race").4
word:
name: 欧-火
name: 水-牆
word:
script: lang_setting("word_lists_race").5
word:
name: 烏-獅
name: 牛-玩
word:
script: lang_setting("word_lists_race").6
word:
name: 獨-稻
name: 異-索
word:
script: lang_setting("word_lists_race").7
word:
name: 穿-老
name: 紫-荷
word:
script: lang_setting("word_lists_race").8
word:
name: 聖-蜘
name: 蓋-蠕
word:
script: lang_setting("word_lists_race").9
word:
name: 蜥-豺
name: 袋-郊
word:
script: lang_setting("word_lists_race").10
word:
name: 貓-章
name: 野-驚
word:
script: lang_setting("word_lists_race").11
word:
name: 飛-魔
name: 骆-鳳
word:
script: lang_setting("word_lists_race").12
word:
name: -龜
name: -龜
word:
script: lang_setting("word_lists_race").13
@@ -2711,15 +2723,15 @@ word list:
word:
script: lang_setting("word_lists_class").0
word:
name: 孽-
name: 孽-
word:
script: lang_setting("word_lists_class").1
word:
name: 殭-蛋
name: 武-精
word:
script: lang_setting("word_lists_class").2
word:
name: -魔
name: -魔
word:
script: lang_setting("word_lists_class").3