sync with Full and prune

update templates to sync up with Full Pack
remove depreciated and full-pack exclusive templates
This commit is contained in:
cajun
2024-01-05 18:54:40 -06:00
parent a2e9c76161
commit 8e6d6c7198
16551 changed files with 777665 additions and 210108 deletions

View File

@@ -1,7 +1,6 @@
############################################################## Card fields
############################# Automatic fields
# The 'shape' of the card (flip, split, etc.)
card field:
type: choice
@@ -26,7 +25,7 @@ card field:
choice: checklist
choice: emblem
choice: masterpiece
choice: nightbreak
choice: nightbreak
choice: plane card
choice: saga
script:
@@ -130,15 +129,19 @@ card field:
card list alignment: right
card list width: 50
card list name: CC
show statistics: false
description: The casting cost of the card
card field:
type: choice
name: card symbol
position hint: 10
icon: stats/card_symbol.png
icon: stats/symbol.png
choice: none
choice: tombstone
description: Symbol for this card (tombstone)
choice: alchemy
choice: alchemy old
show statistics: false
description: Symbol for this card
card field:
type: choice
name: type symbol
@@ -218,15 +221,16 @@ card field:
card field:
type: text
name: super type
icon: stats/card_type.png
icon: stats/type.png
position hint: 30
script: super_type_filter(value)
show statistics: false
card field:
type: text
name: sub type
icon: stats/creature_type.png
icon: stats/type.png
position hint: 31
show statistics: false
script: sub_type_filter(value, type:card.super_type)
card field:
type: text
@@ -307,6 +311,7 @@ card field:
icon: stats/watermark.png
position hint: 200
include file: /magic-watermarks.mse-include/watermark-names
show statistics: false
description: A watermark for below the textbox, this can be a big mana symbol used on basic lands, or a guild symbol
###############################Leveler textboxes
card field:
@@ -409,8 +414,9 @@ card field:
card field:
type: text
name: loyalty
icon: stats/toughness.png
icon: stats/loyalty.png
position hint: 59
show statistics: false
description: The initial loyalty of a planeswalker
card field:
type: text
@@ -499,7 +505,7 @@ card field:
name: set code
editable: false
save value: false
script: (if is_masterpiece() then set.masterpiece_set_code else set.set_code) + " • " + set.set_language
script: (if is_masterpiece() then set.masterpiece_set_code else set.set_code) + (if set.set_language != "" then " • " + set.set_language else "")
show statistics: false
card field:
type: text
@@ -541,14 +547,16 @@ card field:
description: Copyright of this card and cardnumber, the default value can be changed on the 'set info' tab
card field:
type: choice
name: stamp
name: card stamp
choice: standard
choice: none
choice: acorn
choice: universes beyond
choice: alchemy
choice: alchemy old
choice: custom
choice: custom color
default: set.default_stamp
show statistics: false
description: The stamp style for this card.
############################################################## Duplicate fields (split/flip cards)
# Based on flip templates by Wolfwood
@@ -558,7 +566,7 @@ card field:
card field:
type: multiple choice
name: card color 2
icon: stats/card_color.png
icon: stats/color.png
empty choice: colorless
choice: white
choice: blue
@@ -640,11 +648,13 @@ card field:
card field:
type: choice
name: card symbol 2
icon: stats/card_symbol.png
icon: stats/symbol.png
choice: none
choice: tombstone
choice: alchemy
choice: alchemy old
show statistics: false
description: The card symbol of the card (Tombstone)
description: The card symbol of the card
card field:
type: choice
name: type symbol 2
@@ -703,13 +713,13 @@ card field:
card field:
type: text
name: super type 2
icon: stats/creature_type.png
icon: stats/type.png
show statistics: false
script: super_type_filter(value)
card field:
type: text
name: sub type 2
icon: stats/creature_type.png
icon: stats/type.png
show statistics: false
script: sub_type_filter(value, type:card.super_type_2)
card field:
@@ -729,13 +739,13 @@ card field:
card field:
type: text
name: super type 3
icon: stats/creature_type.png
icon: stats/type.png
show statistics: false
script: super_type_filter(value)
card field:
type: text
name: sub type 3
icon: stats/creature_type.png
icon: stats/type.png
show statistics: false
script: sub_type_filter(value, type:card.super_type_3)
card field:
@@ -897,7 +907,7 @@ card field:
card field:
type: text
name: loyalty 2
icon: stats/toughness.png
icon: stats/loyalty.png
show statistics: false
description: The initial loyalty of a planeswalker
card field:
@@ -1009,7 +1019,7 @@ card field:
name: set code 2
editable: false
save value: false
script: (if is_masterpiece() then set.masterpiece_set_code else set.set_code) + " • " + set.set_language
script: (if is_masterpiece() then set.masterpiece_set_code else set.set_code) + (if set.set_language != "" then " • " + set.set_language else "")
show statistics: false
card field:
type: text
@@ -1354,3 +1364,16 @@ card field:
script: text_filter(input: value, card_name: if set.alias_as_cardname and card.alias_2 != "" then card.alias_2 else card.name_2, margin_code:"unknown")
default: if not b_saga() then "" else "<i-auto>(" + saga_reminderb() + ")</i-auto>"
description: The saga reminder text
card field:
type: choice
name: card stamp 2
choice: standard
choice: none
choice: acorn
choice: universes beyond
choice: alchemy
choice: alchemy old
choice: custom
default: set.default_stamp
show statistics: false
description: The stamp style for this card.

View File

@@ -0,0 +1,259 @@
Attraction
Urzas
Arkan
Archon
Äthergeborener
Atog
Azra
Bobbel
Bold
Buboh
Camarid
Cocatrisk
Cyberman
Dalek
Dauthi
Dryade
Eldrazi
Feenwesen
Fraktalwesen
Gargoyle
Gestaltwandler
Gith
Gnoll
Goblin
Gorgo
Gremlin
Halbling
Hippogryph
Homarid
Ifrit
Juggernaut
Kavu
Kirin
Kithkin
Kor
Lamia
Lammasu
Lhurgoyf
Mantikor
Mastikor
Meervolk
Metathran
Modulon
Mungo
Myr
Nachtmahr
Nachtschrat
Nephilim
Noggle
Oger
Ophis
Orgg
Ork
Pentavit
Phyrexianer
Remasuri
Saproling
Sceada
Servo
Slith
Soltari
Specter
Surrakar
Tetravit
Thalakos
Thopter
Thrull
Tiefling
Trilobit
Triskelavit
Vedalken
Viashino
Wraith
Zephalid
Zubera
Doctor
Ninja
Spruchwandler
Uberlebender
Ajani
Aminatou
Angrath
Arlinn
Ashiok
Bahamut
Basri
Bolas
Calix
Chandra
Comet
Dack
Dakkon
Daretti
Davriel
Dihada
Domri
Dovin
Ellywick
Elminster
Elspeth
Estrid
Freyalise
Garruk
Gideon
Grist
Guff
Huatli
Jace
Jared
Jaya
Jeska
Kaito
Karn
Kasmina
Kaya
Kiora
Koth
Liliana
Lolth
Lukka
Minsc
Mordenkainen
Nahiri
Narset
Niko
Nissa
Nixilis
Oko
Quintorius
Ral
Rowan
Saheeli
Samut
Sarkhan
Serra
Sivitri
Sorin
Szat
Tamiyo
Tasha
Teferi
Teyo
Tezzeret
Thibalt
Tyvar
Ugin
Urza
Venser
Vivien
Vraska
Vronos
Will
Windgrace
Wrenn
Xenagos
Yanggu
Yanling
Zariel
Alara
Amonkhet
Arcavios
Bloomburrow
Capenna
Dominaria
Duskmourn
Eldraine
Faerûn
Ikoria
Innistrad
Ixalan
Kaladesh
Kaldheim
Kamigawa
Lorwyn
Merkadia
Mirrodin
Rath
Ravnica
Schattenmoor
Tarkir
Theros
Thunder
Junction
Ulgrotha
Zendikar
Antausia
Arkhos
Azgol
Belenon
Bolas' Meditationsreich
Cridhe
Abyssus
Echoir
Equilor
Ergamon
Fabacin
Fiora
Gargantikar
Gobakhan
Iquatana
Ir
Karsus
Kephalai
Kinshala
Kolbahan
Kylem
Kyneth
Luvion
Moag
Mongseng
Muraganda
Phyrexia
Pyrulea
Rabiah
Regatha
Segovia
Serras
Shandalar
Shenmeng
Valla
Vryn
Wildfeuer
Xerex
Zhalfir
Alkabah
Aranzhur
Diraden
Kodisha
Metal
Island
Skalla
Tavelia
Tolvada
Azoria
Cabralin
Celesta
Gastal
Ilcae
Mirrankkar
Nether
Void
Obsidias
Torwynn
Vatraquaz
Alfava
Metraxis
Androzani
Minor
Apalapucia
Dalek-Asylum
Darillium
Die Bibliothek
Gallifrey
Kandoka
Necros
Skaro
Trenzalore
Mana
Manavorrat

View File

@@ -57,26 +57,14 @@ planeswalkers
Merfolk
deathtouch
noncombat
Urza
Karn
Ajani
Goldmane
Jace
Beleren
Liliana
Vess
Chandra
Nalaar
Garruk
Wildspeaker
Tezzeret
Elspeth
Tirel
Nicol
Bolas
Sarkhan
Vol
Nissa
Revane
Baltrice
Crucius
@@ -90,7 +78,6 @@ Tolaria
Weatherlight
Ertai
Barrin
Dominaria
Benalish
Benalia
Sisay
@@ -173,4 +160,238 @@ hedron
thrull
arcun
merfolk
ziziziz
Powerstone
Ajani
Aminatou
Angrath
Arlinn
Ashiok
Bahamut
Basri
Bolas
Calix
Chandra
Comet
Dack
Dakkon
Daretti
Davriel
Dihada
Domri
Dovin
Ellywick
Elminster
Elspeth
Estrid
Freyalise
Garruk
Gideon
Grist
Guff
Huatli
Jace
Jared
Jaya
Jeska
Kaito
Karn
Kasmina
Kaya
Kiora
Koth
Liliana
Lolth
Lukka
Minsc
Mordenkainen
Nahiri
Narset
Niko
Nissa
Nixilis
Oko
Quintorius
Ral
Rowan
Saheeli
Samut
Sarkhan
Serra
Sivitri
Sorin
Szat
Tamiyo
Tasha
Teferi
Teyo
Tezzeret
Tibalt
Tyvar
Ugin
Urza
Venser
Vivien
Vraska
Vronos
Will
Windgrace
Wrenn
Xenagos
Yanggu
Yanling
Zariel
Aetherborn
Archon
Astartes
Aurochs
Azra
Beeble
Blinkmoth
Brushwagg
Camarid
Cephalid
Custodes
Cyberman
Dalek
Dauthi
Efreet
Eldrazi
Graveborn
Gith
Gnoll
Halfling
Homarid
Hippogriff
Homunculus
Kavu
Kirin
Kithkin
Kobold
Kor
Lamia
Lammasu
Lhurgoyf
Licid
Manticore
Masticore
Metathran
Moonfolk
Myr
Necron
Nephilim
Nightstalker
Noggle
Orgg
Ouphe
Pangolin
Pentavite
Phelddagrif
Pincher
Shapeshifter
Slith
Surrakar
Tetravite
Thalakos
Tiefling
Treefolk
Triskelavite
Tyranid
Vedalken
Viashino
Volver
Zubera
Berserker
Flagbearer
Primarch
Spellshaper
Alara
Amonkhet
Arcavios
Bloomburrow
Capenna
Dominaria
Duskmourn
Eldraine
Faerûn
Ikoria
Innistrad
Ixalan
Kaladesh
Kaldheim
Kamigawa
Lorwyn
Mercadia
Mirrodin
Phyrexia
Rath
Ravnica
Shadowmoor
Tarkir
Theros
Ulgrotha
Zendikar
Antausia
Arkhos
Azgol
Belenon
Bolas's
Cridhe
Echoir
Equilor
Ergamon
Fabacin
Fiora
Gargantikar
Gobakhan
Iquatana
Ir
Karsus
Kephalai
Kinshala
Kolbahan
Kylem
Kyneth
Luvion
Moag
Mongseng
Muraganda
Pyrulea
Rabiah
Regatha
Segovia
Serra's
Shandalar
Shenmeng
Valla
Vryn
Wildfire
Xerex
Zhalfir
Alkabah
Aranzhur
Diraden
Kodisha
Skalla
Tavelia
Tolvada
Azoria
Cabralin
Celesta
Gastal
Ilcae
Mirrankkar
Obsidias
Torwynn
Vatraquaz
Alfava Metraxis
Androzani Minor
Apalapucia
Darillium
Earth
Gallifrey
Horsehead Nebula
Kandoka
Necros
Mutter's
Spacecraft
Trenzalore

View File

@@ -173,4 +173,238 @@ hedron
thrull
arcun
merfolk
ziziziz
Powerstone
Ajani
Aminatou
Angrath
Arlinn
Ashiok
Bahamut
Basri
Bolas
Calix
Chandra
Comet
Dack
Dakkon
Daretti
Davriel
Dihada
Domri
Dovin
Ellywick
Elminster
Elspeth
Estrid
Freyalise
Garruk
Gideon
Grist
Guff
Huatli
Jace
Jared
Jaya
Jeska
Kaito
Karn
Kasmina
Kaya
Kiora
Koth
Liliana
Lolth
Lukka
Minsc
Mordenkainen
Nahiri
Narset
Niko
Nissa
Nixilis
Oko
Quintorius
Ral
Rowan
Saheeli
Samut
Sarkhan
Serra
Sivitri
Sorin
Szat
Tamiyo
Tasha
Teferi
Teyo
Tezzeret
Tibalt
Tyvar
Ugin
Urza
Venser
Vivien
Vraska
Vronos
Will
Windgrace
Wrenn
Xenagos
Yanggu
Yanling
Zariel
Aetherborn
Archon
Astartes
Aurochs
Azra
Beeble
Blinkmoth
Brushwagg
Camarid
Cephalid
Custodes
Cyberman
Dalek
Dauthi
Efreet
Eldrazi
Graveborn
Gith
Gnoll
Halfling
Homarid
Hippogriff
Homunculus
Kavu
Kirin
Kithkin
Kobold
Kor
Lamia
Lammasu
Lhurgoyf
Licid
Manticore
Masticore
Metathran
Moonfolk
Myr
Necron
Nephilim
Nightstalker
Noggle
Orgg
Ouphe
Pangolin
Pentavite
Phelddagrif
Pincher
Shapeshifter
Slith
Surrakar
Tetravite
Thalakos
Tiefling
Treefolk
Triskelavite
Tyranid
Vedalken
Viashino
Volver
Zubera
Berserker
Flagbearer
Primarch
Spellshaper
Alara
Amonkhet
Arcavios
Bloomburrow
Capenna
Dominaria
Duskmourn
Eldraine
Faerûn
Ikoria
Innistrad
Ixalan
Kaladesh
Kaldheim
Kamigawa
Lorwyn
Mercadia
Mirrodin
Phyrexia
Rath
Ravnica
Shadowmoor
Tarkir
Theros
Ulgrotha
Zendikar
Antausia
Arkhos
Azgol
Belenon
Bolas's
Cridhe
Echoir
Equilor
Ergamon
Fabacin
Fiora
Gargantikar
Gobakhan
Iquatana
Ir
Karsus
Kephalai
Kinshala
Kolbahan
Kylem
Kyneth
Luvion
Moag
Mongseng
Muraganda
Pyrulea
Rabiah
Regatha
Segovia
Serra's
Shandalar
Shenmeng
Valla
Vryn
Wildfire
Xerex
Zhalfir
Alkabah
Aranzhur
Diraden
Kodisha
Skalla
Tavelia
Tolvada
Azoria
Cabralin
Celesta
Gastal
Ilcae
Mirrankkar
Obsidias
Torwynn
Vatraquaz
Alfava Metraxis
Androzani Minor
Apalapucia
Darillium
Earth
Gallifrey
Horsehead Nebula
Kandoka
Necros
Mutter's
Spacecraft
Trenzalore

View File

@@ -173,4 +173,240 @@ hedron
thrull
arcun
merfolk
ziziziz
monocolored
Powerstone
Cartouche
Ajani
Aminatou
Angrath
Arlinn
Ashiok
Bahamut
Basri
Bolas
Calix
Chandra
Comet
Dack
Dakkon
Daretti
Davriel
Dihada
Domri
Dovin
Ellywick
Elminster
Elspeth
Estrid
Freyalise
Garruk
Gideon
Grist
Guff
Huatli
Jace
Jared
Jaya
Jeska
Kaito
Karn
Kasmina
Kaya
Kiora
Koth
Liliana
Lolth
Lukka
Minsc
Mordenkainen
Nahiri
Narset
Niko
Nissa
Nixilis
Oko
Quintorius
Ral
Rowan
Saheeli
Samut
Sarkhan
Serra
Sivitri
Sorin
Szat
Tamiyo
Tasha
Teferi
Teyo
Tezzeret
Tibalt
Tyvar
Ugin
Urza
Venser
Vivien
Vraska
Vronos
Will
Windgrace
Wrenn
Xenagos
Yanggu
Yanling
Zariel
Aetherborn
Archon
Astartes
Aurochs
Azra
Beeble
Blinkmoth
Brushwagg
Camarid
Cephalid
Custodes
Cyberman
Dalek
Dauthi
Efreet
Eldrazi
Graveborn
Gith
Gnoll
Halfling
Homarid
Hippogriff
Homunculus
Kavu
Kirin
Kithkin
Kobold
Kor
Lamia
Lammasu
Lhurgoyf
Licid
Manticore
Masticore
Metathran
Moonfolk
Myr
Necron
Nephilim
Nightstalker
Noggle
Orgg
Ouphe
Pangolin
Pentavite
Phelddagrif
Pincher
Shapeshifter
Slith
Surrakar
Tetravite
Thalakos
Tiefling
Treefolk
Triskelavite
Tyranid
Vedalken
Viashino
Volver
Zubera
Berserker
Flagbearer
Primarch
Spellshaper
Alara
Amonkhet
Arcavios
Bloomburrow
Capenna
Dominaria
Duskmourn
Eldraine
Faerûn
Ikoria
Innistrad
Ixalan
Kaladesh
Kaldheim
Kamigawa
Lorwyn
Mercadia
Mirrodin
Phyrexia
Rath
Ravnica
Shadowmoor
Tarkir
Theros
Ulgrotha
Zendikar
Antausia
Arkhos
Azgol
Belenon
Bolas's
Cridhe
Echoir
Equilor
Ergamon
Fabacin
Fiora
Gargantikar
Gobakhan
Iquatana
Ir
Karsus
Kephalai
Kinshala
Kolbahan
Kylem
Kyneth
Luvion
Moag
Mongseng
Muraganda
Pyrulea
Rabiah
Regatha
Segovia
Serra's
Shandalar
Shenmeng
Valla
Vryn
Wildfire
Xerex
Zhalfir
Alkabah
Aranzhur
Diraden
Kodisha
Skalla
Tavelia
Tolvada
Azoria
Cabralin
Celesta
Gastal
Ilcae
Mirrankkar
Obsidias
Torwynn
Vatraquaz
Alfava Metraxis
Androzani Minor
Apalapucia
Darillium
Earth
Gallifrey
Horsehead Nebula
Kandoka
Necros
Mutter's
Spacecraft
Trenzalore

View File

@@ -0,0 +1,255 @@
Attraction
Subciudad
urza
Ajani
Aminatou
Angrath
Arlinn
Ashiok
Bahamut
Basri
Bolas
Cálix
Chandra
Comet
Dack
Dakkon
Daretti
Davriel
Dihada
Domri
Dovin
Ellywick
Elminster
Elspeth
Estrid
Freyalise
Garruk
Gideon
Grist
Guff
Huatli
Jace
Jared
Jaya
Jeska
Kaito
Karn
Kasmina
Kaya
Kiora
Koth
Liliana
Lolth
Lukka
Minsc
Mordenkainen
Nahiri
Narset
Niko
Nissa
Nixilis
Oko
Quintorius
Ral
Rowan
Saheeli
Samut
Sarkhan
Serra
Sivitri
Sorin
Szat
Tamiyo
Tasha
Teferi
Teyo
Tezzeret
Tibalt
Tyvar
Ugin
Urza
Venser
Vivien
Vraska
Vronos
Will
Windgrace
Wrenn
Xenagos
Yanggu
Yanling
Zariel
Atog
Azra
Camárido
Capibara
Caribú
Cefálido
Cocatriz
Constructo
Dauti
Djinn
Draco
Efrit
Eldrazi
Etergénito
Gnoll
Gith
Gólem
Gremlin
Homárido
Homúnculo
Kavu
Kirin
Kóbold
Kraken
Lammasu
Lhurgoyf
Licántropo
Manticora
Masticore
Metamorfo
Metathrán
Minotauro
Myr
Nefilim
Noggle
Orgg
Oufé
Pangolín
Pegaso
Pentavita
Pirexiano
titilante
Saprolín
Slit
Soltari
Surrakar
Talako
Tetravita
Thrull
Tiefling
Tintícola
Tóptero
Trisquelavita
Uómbat
Vedalken
Viashino
Yerbamala
Yeti
Zombie
Berserker
Metabolizador
Alara
Amonkhet
Arcavios
Bloomburrow
Capenna
Dominaria
Duskmourn
Eldraine
Faerûn
Ikoria
Innistrad
Ixalan
Kaladesh
Kaldheim
Kamigawa
Lorwyn
Mercadia
Mirrodín
Rath
Rávnica
Tarkir
Theros
Thunder
Junction
Ulgrotha
Zendikar
Antausia
Arkhos
Azgol
Bélenon
Cridhe
Echoir
Equilor
Ergamon
Fábacin
Fiora
Gargantikar
Gobakhan
Iquatana
Ir
Karsus
Kephalai
Kinshala
Kólbahan
Kylem
Kyneth
Luvion
Moag
Mongseng
Muraganda
Phyrexia
Pyrulea
Rabiah
Regatha
Nicol
Serra
Segovia
Shandalar
Shenmeng
Valla
Vryn
Xerex
Zhalfir
Alkabah
Aranzhur
Diraden
Kodisha
Metal
Island
Skalla
Tavelia
Tolvada
Azoria
Cabralin
Celesta
Gastal
Ilcae
Mirrankkar
Nether
Void
Obsidias
Torwynn
Vatraquaz
Alfava
Metraxis
Androzani
Minor
Apalapucia
Darillium
Earth
Gallifrey
Horsehead
Nebula
Kandoka
Mars
Moon
Necros
New Earth
Outside
Mutter's
Spiral
Skaro
Spacecraft
The
Dalek
Asylum
Library
Time
Trenzalore
Unknown
Planet

View File

@@ -172,4 +172,243 @@ earthen
hedron
thrull
arcun
merfolk
merfolk
lithoforce
citerraine
dUrza
atog
bosquérisson
cabybara
camaride
céphalide
changeforme
cocatrix
cyberman
dalek
dauthi
désencavé
djaggernaut
eldrazi
élémental
encrelin
épix
éthérien
évolien
gith
gorgonoïde
gremlin
halfelin
homaride
kavru
kirin
lamassu
lhurgoyf
lunaréen
masticore
mécanoptère
métathran
myr
nephilim
neugle
orgg
orphe
pentavite
phyrexian
sangami
saprobionte
scintimite
servo
slith
slivoïde
soltari
srâne
surrakar
sylvin
tetravite
thalakos
tieffelin
time
triskelavite
tyrannœil
vedalken
viashino
zubera
berserker
mécanoptère
praetor
psychagogue
sortisan
Ajani
Aminatou
Angrath
Arlinn
Ashiok
Bahamut
Basri
Bolas
Calembredaine
Calix
Chandra
Comet
Dack
Dakkon
Daretti
Davriel
Dihada
Domri
Dovin
Ellywick
Elminster
Elspeth
Estrid
Freyalise
Garruk
Gideon
Grist
Huatli
Jace
Jared
Jaya
Jeska
Kaito
Karn
Kasmina
Kaya
Kiora
Koth
Liliana
Lolth
Lukka
Minsc
Mordenkainen
Nahiri
Narset
Niko
Nissa
Nixilis
Oko
Quintorius
Ral
Rowan
Saheeli
Samut
Sarkhan
Serra
Sivitri
Sorin
Szat
Tamiyo
Tasha
Téfeiri
Teyo
Tezzeret
Tibalt
Tyvar
Ugin
Urza
Venser
Vivien
Vraska
Vronos
Will
Wrenn
Xénagos
Yanggu
Yanling
Zariel
Alara
Amonkhet
Arcavios
Bloomburrow
Capenna
Dominaria
Duskmourn
Eldraine
Faerûn
Ikoria
Innistrad
Ixalan
Kaladesh
Kaldheim
Kamigawa
Lorwyn
Mercadia
Mirrodin
Rajh
Ravnica
Sombrelande
Tarkir
Theros
Thunder
Junction
Ulgrotha
Zendikar
Antausia
Arkhos
Azgol
Belenon
Cridhe
Echoir
Équilor
Ergamon
Fabacin
Fiora
Gargantikar
Gobakhan
Grégefeu
Iquatana
Ir
Karsus
Kephalai
Kinshala
Kolbahan
Kylem
Kyneth
L'Abysse
Luvion
Moag
Mongseng
Muraganda
Phyrexia
Pyrulée
Rabiah
Regatha
Ségovie
Shandalar
Shenmeng
Valla
Vryn
Xerex
Zhalfir
Alkabah
Aranzhur
Diraden
Kodisha
Metal
Island
Skalla
Tavelia
Tolvada
Azoria
Cabralin
Celesta
Gastal
Ilcae
Mirrankkar
Nether
Void
Obsidias
Torwynn
Vatraquaz
Alfava
Metraxis
Androzani
Minor
Apalapucia
Darillium
Gallifrey
Kandoka
Daleks
Necros
Skaro
Trenzalore

View File

@@ -172,4 +172,254 @@ earthen
hedron
thrull
arcun
merfolk
merfolk
Attraction
Atog
Avatar
Azra
Beholder
Burlarbusto
Camarid
Cefalide
Coccatrice
Dauthi
Draghetto
Efreet
Eldrazi
Elementale
Eteride
Fungus
Gargoyle
Gith
Gnoll
Gremlin
Halfling
Homarid
Imp
Juggernaut
Kavu
Kirin
Kithkin
Kor
Lammasu
Lampidottero
Lhurgoyf
Lunantropo
Manticora
Masticora
Metathran
Myr
Necrospettro
Nephilim
Noggle
Ogre
Orgg
Ouphe
Pentavite
Phyrexiano
Pungitore
Saprolingio
Silvantropo
Slith
Surrakar
Tetravite
Thalakos
Tiefling
Tottero
Triskelavite
Vedalken
Viashino
Volvero
Zubera
Berserker
Metabolizzatore
Mutamagia
Warlock
Ajani
Aminatou
Angrath
Arlinn
Ashiok
Bahamut
Basri
Bolas
Calix
Chandra
Comet
Dack
Dakkon
Daretti
Davriel
Dihada
Domri
Dovin
Ellywick
Elminster
Elspeth
Estrid
Freyalise
Garruk
Gideon
Grist
Guff
Huatli
Jace
Jared
Jaya
Jeska
Kaito
Karn
Kasmina
Kaya
Kiora
Koth
Liliana
Lolth
Lukka
Minsc
Mordenkainen
Nahiri
Narset
Niko
Nissa
Nixilis
Oko
Quintorius
Ral
Rowan
Saheeli
Samut
Sarkhan
Serra
Sivitri
Sorin
Szat
Tamiyo
Tasha
Teferi
Teyo
Tezzeret
Tibalt
Tyvar
Ugin
Urza
Venser
Vivien
Vraska
Vronos
Will
Windgrace
Wrenn
Xenagos
Yanggu
Yanling
Zariel
Alara
Amonkhet
Arcavios
Bloomburrow
Capenna
Dominaria
Duskmourn
Eldraine
Faerûn
Ikoria
Innistrad
Ixalan
Kaladesh
Kaldheim
Kamigawa
Lorwyn
Mercadia
Mirrodin
Rath
Ravnica
Tarkir
Theros
Thunder
Junction
Ulgrotha
Zendikar
Antausia
Arkhos
Azgol
Belenon
Cridhe
Echoir
Equilor
Ergamon
Fabacin
Fiora
Gargantikar
Gobakhan
Iquatana
Ir
Karsus
Kephalai
Kinshala
Kolbahan
Kylem
Kyneth
L'Abisso
Luvion
Moag
Mongseng
Muraganda
Phyrexia
Pyrulea
Rabiah
Regatha
Segovia
Shandalar
Shenmeng
Valla
Vryn
Xerex
Zhalfir
Alkabah
Aranzhur
Diraden
Kodisha
Metal
Island
Skalla
Tavelia
Tolvada
Azoria
Cabralin
Celesta
Gastal
Ilcae
Mirrankkar
Nether Void
Obsidias
Torwynn
Vatraquaz
Alfava
Metraxis
Androzani
Minor
Apalapucia
Darillium
Earth
Gallifrey
Horsehead
Nebula
Kandoka
Mars
Moon
Necros
New Earth
Outside
Mutter's
Spiral
Skaro
Spacecraft
The
Dalek
Asylum
Library
Time
Trenzalore
Unknown
Planet

View File

@@ -0,0 +1,208 @@
마법석
부란기
신안
탑승물
우르자의
마법진
카르투슈
아케인
가고일
고블린
공성차
그렘린
그리핀
기스
나무인간
나이트메어
날틀
늑대인간
님프
다우티
드라이어드
드론
드워프
라마수
라미아
루고이프
리바이어던
마스티코어
만티코어
미르
바다코끼리
바실리스크
반신
베달켄
변신괴물
비아시노
비홀더
사티로스
삼엽충
새끼용
샐러맨더
서보
세팔리드
솔타리
스럴
스펙터
슬리버
오록스
오우거
울버린
웜뱃
위어드
이프리트
임프
잉클링
자칼
점액괴물
조립공
좀비
진균
집정관
천산갑
카부
카피바라
켄타우로스
코르
코볼드
코카트리스
크라켄
키클롭스
탈라코스
테트라바이트
트리스케라바이트
티플링
페가수스
페어리
펜타바이트
프랙탈
피렉시아
하플링
하피
헬리온
현신
호러
호마리드
호문쿨루스
히포그리프
공성차
광전사
궁수
날틀
늑대인간
닌자
드론
드루이드
레인저
리바이어던
마도사
정찰병
좀비
집정관
현신
호러
흑마법사
개럭
그리스트
기디온
나르셋
나히리
니사
니코
닉실리스
다브리엘
다콘
도빈
돔리
디하다
로완
롤스
루카
릴리아나
모덴카이넨
민스크
바스리
바하무트
볼라스
브라스카
비비안
사르칸
사무트
사힐리
아를린
아시오크
아자니
앙그라스
얀링
양구
엘리윅
엘민스터
엘스페스
오코
우르자의
자리엘
제나고스
제이스
찬드라
카른
카스미나
카야
카이토
칼릭스
키오라
타미요
타샤
타이바르
테제렛
테페리
티볼트
화틀리
아바타
아우프
아즈라
아토그
야마
에테르붙이
엘드라지
엘크
엘프
피렉시아
도미나리아
라브니카
로윈
메르카디아
미로딘
아르카비오스
아몬케트
엘드레인
울그로사
이니스트라드
이코리아
익살란
젠디카르
카미가와
카펜나
칼드하임
칼라데시
타르커
테로스
페이룬
고바칸
레가타
모아그
무라간다
벨레논
브린
샨달라르
세고비아
아즈골
에르가몬
제렉스
카르서스
카일렘
파이룰리아
피렉시아
피오라
톨바다

View File

@@ -172,4 +172,248 @@ earthen
hedron
thrull
arcun
merfolk
merfolk
Attraction
Atogue
Azra
Camárida
Cocatriz
Dauthi
Efrite
Eldrazi
Ent
Etergênito
Fractius
Gith
Gnoll
Goblin
Gremlin
Juggernaut
Kavu
Kirin
Kithkin
Kobold
Kor
Lammasu
Lhurgoyf
Mastícora
Metamorfo
Metathran
Myr
Nanquíneo
Necronato
Nefilim
Noggle
Orc
Orgg
Pentavite
Phyrexiano
Slith
Soltariano
Servus
Surrakar
Tetravite
Thalakos
Thrul
Tiferino
Tóptero
Triscelavite
Vedalkeano
Viashino
Vorme
Wombat
Yeti
Zubera
Amoque
Magimodelador
Ajani
Aminatou
Angrath
Arlinn
Ashiok
Bahamut
Basri
Calix
Chandra
Comet
Dack
Dakkon
Daretti
Davriel
Dihada
Domri
Dovin
Ellywick
Elminster
Elspeth
Estrid
Freyalise
Garruk
Gideon
Grist
Guff
Huatli
Jace
Jared
Jaya
Jeska
Kaito
Karn
Kasmina
Kaya
Kiora
Koth
Liliana
Lolth
Lukka
Minsc
Mordenkainen
Nahiri
Narset
Nicol
Niko
Nissa
Nixilis
Oko
Quintorius
Ral
Rowan
Saheeli
Samut
Sarkhan
Serra
Sivitri
Sorin
Szat
Tamiyo
Tasha
Teferi
Teyo
Tezzeret
Tibalt
Tyvar
Ugin
Urza
Venser
Vivien
Vraska
Vronos
Will
Windgrace
Wrenn
Xenagos
Yanggu
Yanling
Zariel
Alara
Amonkhet
Arcávios
Bloomburrow
Capenna
Dominária
Duskmourn
Eldraine
Faerûn
Ikoria
Innistrad
Ixalan
Kaladesh
Kaldheim
Kamigawa
Lorwyn
Mercádia
Mirrodin
Rath
Ravnica
Tarkir
Theros
Thunder
Junction
Ulgrotha
Zendikar
Antausia
Arkhos
Azgol
Belenon
Cridhe
Echoir
Dominio
Equilor
Ergamon
Fabacin
Fiora
Gargantikar
Gobakhan
Iquatana
Ir
Karsus
Kephalai
Kinshala
Kolbahan
Kylem
Kyneth
Luvion
Moag
Mongseng
Muraganda
O Abisano
Phyrexia
Pyrulea
Rabiah
Regatha
Segóvia
Shandalar
Shenmeng
Valla
Vryn
Xerex
Zhalfir
Alkabah
Aranzhur
Diraden
Kodisha
Metal
Island
Skalla
Tavelia
Tolvada
Azoria
Cabralin
Celesta
Gastal
Ilcae
Mirrankkar
Nether
Void
Obsidias
Torwynn
Vatraquaz
Alfava
Metraxis
Androzani
Minor
Apalapucia
Darillium
Earth
Gallifrey
Horsehead
Nebula
Kandoka
Mars
Moon
Necros
New
Earth
Outside
Mutter's
Spiral
Skaro
Spacecraft
The
Dalek
Asylum
Library
Time
Trenzalore
Unknown
Planet

View File

@@ -172,4 +172,5 @@ earthen
hedron
thrull
arcun
merfolk
merfolk
Attraction

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

After

Width:  |  Height:  |  Size: 631 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 584 B

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

View File

@@ -69,7 +69,7 @@ keyword parameter type:
keyword parameter type:
name: number
match: [XYZ0-9]+
match: [XYZ0-9%]+
refer script:
name: normal
description: (1,2,3)
@@ -756,10 +756,15 @@ keyword:
mode: expert
reminder: If you cast this spell from your hand, exile it as it resolves. At the beginning of your next upkeep, you may cast this card from exile without paying its mana cost.
keyword:
keyword: Totem armor
keyword: Umbra armor
match: Totem armor
mode: expert
reminder: If enchanted {if contains(card.text, match:"Enchant <param-name>creature</param-name>") then "creature" else "permanent"} would be destroyed, instead remove all damage from it and destroy this Aura.
keyword:
keyword: Umbra armor
match: Umbra armor
mode: expert
reminder: If enchanted {if contains(card.text, match:"Enchant <param-name>creature</param-name>") then "creature" else "permanent"} would be destroyed, instead remove all damage from it and destroy this Aura.
keyword:
keyword: Level up
match: Level up <atom-param>cost</atom-param>
@@ -1376,9 +1381,9 @@ keyword:
#War of the Spark
keyword:
keyword: Amass
match: Amass <atom-param>number</atom-param>
match: Amass <atom-param>name</atom-param> <atom-param>number</atom-param>
mode: action
reminder: Put {english_number_a(param1)} +1/+1 counter(s) on an Army you control. If you don't control one, create a 0/0 black Zombie Army creature token first.
reminder: Put {english_number_a(param2)} +1/+1 counter(s) on an Army you control. It's also a {if param1.value == "Zombies" then "Zombie" else english_singular(param1)}. If you don't control one, create a 0/0 black {if param1.value == "Zombies" then "Zombie" else english_singular(param1)} Army creature token first.
#Throne of Eldraine
keyword:
keyword: Adamant
@@ -1584,6 +1589,11 @@ keyword:
match: shield counter
mode: action
reminder: If it would be dealt damage or destroyed, remove a shield counter from it instead.
keyword:
keyword: Shield counter
match: shield counters
mode: action
reminder: If a permanent with a shield counter on it would be dealt damage or destroyed, remove a shield counter from it instead.
keyword:
keyword: Alliance
match: Alliance
@@ -1601,9 +1611,193 @@ keyword:
match: Choose a Background
mode: expert
reminder: You can have a Background as a second commander.
keyword:
keyword: Double team
match: Double team
mode: expert
reminder: When this creature attacks, if it's not a token, conjure a duplicate of it into your hand. Then both cards perpetually lose double team.
# Warhammer 40k
keyword:
keyword: Squad
match: Squad <atom-param>cost</atom-param>
mode: expert
reminder: As an additional cost to cast this spell, you may pay {param1} any number of times. When this creature enters the battlefield, create that many tokens that are copies of it.
reminder: As an additional cost to cast this spell, you may pay {param1} any number of times. When this creature enters the battlefield, create that many tokens that are copies of it.
keyword:
keyword: Ravenous
match: Ravenous
mode: expert
reminder: This creature enters the battlefield with X +1/+1 counters on it. If X is 5 or more, draw a card when it enters.
# Dominaria United
keyword:
keyword: Read ahead
match: Read ahead
mode: expert
reminder: Choose a chapter and start with that many lore counters. Add one after your draw step. Skipped chapters don't trigger. Sacrifice after III.
keyword:
keyword: Enlist
match: Enlist
mode: expert
reminder: As this creature attacks, you may tap a nonattacking creature you control without summoning sickness. When you do, add its power to this creature's until end of turn.
keyword:
keyword: Stun counters
match: stun counte<atom-param>*s</atom-param>
mode: core
reminder: If a permanent with a stun counter would become untapped, remove one from it instead.
keyword:
keyword: Powerstone token
match: Powerstone toke<atom-param>*s</atom-param>
mode: expert
reminder: {if param1.value == "ns" then "Theyre artifacts" else "Its an artifact"} with "[T]: Add [C]. This mana can't be spent to cast a nonartifact spell."
# Brother's War
keyword:
keyword: Prototype
match: Prototype
mode: expert
reminder: You may cast this spell with different mana cost, color, and size. It keeps its abilities and types.
keyword:
keyword: More Than Meets the Eye
match: More Than Meets the Eye <atom-param>cost</atom-param>
mode: expert
reminder: You may cast this card converted for {param1}.
# Phrexia: All Will Be One
keyword:
keyword: Corrupted
match: Corrupted
mode: pseudo
rules: Corrupted — If an opponent has three or more poison counters, [effect].
keyword:
keyword: For Mirrodin!
match: For Mirrodin!
mode: expert
reminder: When this Equipment enters the battlefield, create a 2/2 red Rebel creature token, then attach this to it.
keyword:
keyword: Toxic
mode: expert
match: Toxic <atom-param>number</atom-param>
reminder: Players dealt combat damage by this creature also get {english_number_a(param1)} poison counter(s).
# March of the Machine
keyword:
keyword: Backup
match: Backup <atom-param>number</atom-param>
mode: expert
reminder: When this creature enters the battlefield, put {english_number_a(param1)} +1/+1 counter(s) on target creature. If that's another creature, it gains the following abilities until end of turn.
keyword:
keyword: Incubate
match: Incubate <atom-param>number</atom-param>
mode: action
reminder: Create an Incubator token with {english_number_a(param1)} +1/+1 counter(s) on it and "[2]: Transform this artifact." It transforms into a 0/0 Phyrexian artifact creature.
# Wilds of Eldraine
keyword:
keyword: Bargain
match: Bargain
mode: expert
reminder: You may sacrifice an artifact, enchantment, or token as you cast this spell.
keyword:
keyword: Celebration
match: Celebration
mode: pseudo
rules: Celebration — If two or more nonland permanents entered the battlefield under your control this turn, [effect].
keyword:
keyword: Cursed Role
match: Cursed Role token
mode: expert
reminder: face_if_type_contains_Adventure_then__else_If you control another Role on it, put that one into the graveyard. _endEnchanted creature is 1/1.
keyword:
keyword: Monster Role
match: Monster Role token
mode: expert
reminder: face_if_type_contains_Adventure_then__else_If you control another Role on it, put that one into the graveyard. _endEnchanted creature gets +1/+1 and has trample.
keyword:
keyword: Royal Role
match: Royal Role token
mode: expert
reminder: face_if_type_contains_Adventure_then__else_If you control another Role on it, put that one into the graveyard. _endEnchanted creature gets +1/+1 and has ward [1].
keyword:
keyword: Sorcerer Role
match: Sorcerer Role token
mode: expert
reminder: face_if_type_contains_Adventure_then__else_If you control another Role on it, put that one into the graveyard. _endEnchanted creature gets +1/+1 and has "Whenever this creature attacks, scry 1."
keyword:
keyword: Virtuous Role
match: Virtuous Role token
mode: expert
reminder: face_if_type_contains_Adventure_then__else_If you control another Role on it, put that one into the graveyard. _endEnchanted creature gets +1/+1 for each enchantment you control.
keyword:
keyword: Wicked Role
match: Wicked Role token
mode: expert
reminder: face_if_type_contains_Adventure_then__else_If you control another Role on it, put that one into the graveyard. _endEnchanted creature gets +1/+1. When this Aura is put into a graveyard, each opponent loses 1 life.
keyword:
keyword: Young Hero Role
match: Young Hero Role token
mode: expert
reminder: face_if_type_contains_Adventure_then__else_If you control another Role on it, put that one into the graveyard. _endEnchanted creature has "Whenever this creature attacks, if its toughness is 3 or less, put a +1/+1 counter on it."
# Ponies the Galloping
keyword:
keyword: Coolness
match: <atom-param>number</atom-param> cooler
mode: expert
reminder: You start at 0% coolness.
keyword:
keyword: Stare down
match: Stare down
mode: expert
reminder: It can't attack or block as long as you're looking directly at it.
# Dr Who
keyword:
keyword: Doctors companion
match: Doctors companion
mode: expert
reminder: You can have two commanders if the other is the Doctor.
keyword:
keyword: Paradox
match: Paradox
mode: pseudo
rules: Paradox — Whenever you cast a spell from anywhere but your hand, [effect].
keyword:
keyword: Time travel
match: Time travel
mode: action
reminder: For each suspended card you own and each permanent you control with a time counter on it, you may add or remove a time counter.
# Lost Caverns of Ixalan
keyword:
keyword: Map token
match: Map toke<atom-param>*s</atom-param>
mode: expert
reminder: {if param1.value == "ns" then "Theyre artifacts" else "Its an artifact"} with "1, T, Sacrifice this artifact: Target creature you control explores. Activate only as a sorcery."
keyword:
keyword: Craft
match: Craft with <atom-param>name</atom-param> <atom-param>cost</atom-param>
mode: expert
reminder: {craft_code(param1:param1, param2:param2)}
keyword:
keyword: Descend
match: Descend <atom-param>number</atom-param>
mode: pseudo
rules: Descend N - If there are N or more permanent cards in your graveyard, [effect].
keyword:
keyword: Fathomless descent
match: Fathomless descend
mode: pseudo
rules: Fathomless descent - [effect], where X is the number of permanent cards in your graveyard.
keyword:
keyword: Descended
match: descended
mode: expert
reminder: You descended if a permanent card was put into your graveyard from anywhere this turn.
keyword:
keyword: Discover
match: Discover <atom-param>number</atom-param>
mode: action
reminder: Exile cards from the top of your library until you exile a nonland card with mana value {param1} or less. Cast it without paying its mana cost or put it into your hand. Put the rest on the bottom in a random order.
keyword:
keyword: Finality counters
match: finality counter
mode: core
reminder: If a creature with a finality counter would die, exile it instead.
# Fallout
keyword:
keyword: Junk token
match: Junk toke<atom-param>*s</atom-param>
mode: expert
reminder: {if param1.value == "ns" then "Theyre artifacts" else "Its an artifact"} with "T, Sacrifice this artifact: Exile the top card of your library. You may play that card this turn. Activate only as a sorcery."

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,175 @@
148
mana
untap/MSDRJZG
unblockable
planeswalker
noncreature
nonland
nonenchantment
nonartifact
nonwhite
nonblue
nonblack
nonred
nongreen
unblock/USDG
precombat
postcombat
scry
plainswalk
islandwalk
swampwalk
mountainwalk
forestwalk
landwalk
desertwalk
plainshome
islandhome
swamphome
mountainhome
foresthome
landhome
soulshift
ninjitsu
bushido
lifelink
gravestorm
fateseal
bloodthirst
djinn
unattach
face-down
face-up
spell's
guerrilas
mages
exit-the-battlefield
enter-the-battlefield
havok
spectre
gargadon
gargadons
Crovax
evincar
and/or
20/20
planeswalkers
Merfolk
deathtouch
noncombat
Urza
Karn
Ajani
Goldmane
Jace
Beleren
Liliana
Vess
Chandra
Nalaar
Garruk
Wildspeaker
Tezzeret
Elspeth
Tirel
Nicol
Bolas
Sarkhan
Vol
Nissa
Revane
Baltrice
Crucius
scryers
+1
etherium
-1
Kothophed
wurm
Tolaria
Weatherlight
Ertai
Barrin
Dominaria
Benalish
Benalia
Sisay
golem
Keld
Maraxus
Volrath
Mirri
Multani
maro-sorcerer
Squee
Tahngarth
Crovax
Selenia
Greven
il-Vec
Argive
Samite
Orim
Argivian
Rath
Starke
Sidar
Kondo
evincar
multiverse
Eladamri
Skyshroud
guerilla
Soltari
Lyna
Rofellos
spellcasting
Korvecdal
Vuel
Takara
self-interest
Ashnod
Mishra
Fallaji
Gix
Phyrexia
Phyrexian
supremacy
Tawnos
Argoth
Xantcha
Saproling
nontoken
mage
Ashling
Jaya
Maralen
Mornsong
non-Sliver
non-Shapeshifter
Thopter
Kraken
and/or
primordial
non-Dragon
nonpermanent
noninstant
nonplaneswalker
nonenchantment
nonsorcery
nonartifact
non-Human
Hellkite
hexproof
draughts
dwarves
sigil
dwarven
axe
earthen
hedron
thrull
arcun
merfolk

View File

@@ -0,0 +1,175 @@
148
mana
untap/MSDRJZG
unblockable
planeswalker
noncreature
nonland
nonenchantment
nonartifact
nonwhite
nonblue
nonblack
nonred
nongreen
unblock/USDG
precombat
postcombat
scry
plainswalk
islandwalk
swampwalk
mountainwalk
forestwalk
landwalk
desertwalk
plainshome
islandhome
swamphome
mountainhome
foresthome
landhome
soulshift
ninjitsu
bushido
lifelink
gravestorm
fateseal
bloodthirst
djinn
unattach
face-down
face-up
spell's
guerrilas
mages
exit-the-battlefield
enter-the-battlefield
havok
spectre
gargadon
gargadons
Crovax
evincar
and/or
20/20
planeswalkers
Merfolk
deathtouch
noncombat
Urza
Karn
Ajani
Goldmane
Jace
Beleren
Liliana
Vess
Chandra
Nalaar
Garruk
Wildspeaker
Tezzeret
Elspeth
Tirel
Nicol
Bolas
Sarkhan
Vol
Nissa
Revane
Baltrice
Crucius
scryers
+1
etherium
-1
Kothophed
wurm
Tolaria
Weatherlight
Ertai
Barrin
Dominaria
Benalish
Benalia
Sisay
golem
Keld
Maraxus
Volrath
Mirri
Multani
maro-sorcerer
Squee
Tahngarth
Crovax
Selenia
Greven
il-Vec
Argive
Samite
Orim
Argivian
Rath
Starke
Sidar
Kondo
evincar
multiverse
Eladamri
Skyshroud
guerilla
Soltari
Lyna
Rofellos
spellcasting
Korvecdal
Vuel
Takara
self-interest
Ashnod
Mishra
Fallaji
Gix
Phyrexia
Phyrexian
supremacy
Tawnos
Argoth
Xantcha
Saproling
nontoken
mage
Ashling
Jaya
Maralen
Mornsong
non-Sliver
non-Shapeshifter
Thopter
Kraken
and/or
primordial
non-Dragon
nonpermanent
noninstant
nonplaneswalker
nonenchantment
nonsorcery
nonartifact
non-Human
Hellkite
hexproof
draughts
dwarves
sigil
dwarven
axe
earthen
hedron
thrull
arcun
merfolk

View File

@@ -0,0 +1,175 @@
148
mana
untap/MSDRJZG
unblockable
planeswalker
noncreature
nonland
nonenchantment
nonartifact
nonwhite
nonblue
nonblack
nonred
nongreen
unblock/USDG
precombat
postcombat
scry
plainswalk
islandwalk
swampwalk
mountainwalk
forestwalk
landwalk
desertwalk
plainshome
islandhome
swamphome
mountainhome
foresthome
landhome
soulshift
ninjitsu
bushido
lifelink
gravestorm
fateseal
bloodthirst
djinn
unattach
face-down
face-up
spell's
guerrilas
mages
exit-the-battlefield
enter-the-battlefield
havok
spectre
gargadon
gargadons
Crovax
evincar
and/or
20/20
planeswalkers
Merfolk
deathtouch
noncombat
Urza
Karn
Ajani
Goldmane
Jace
Beleren
Liliana
Vess
Chandra
Nalaar
Garruk
Wildspeaker
Tezzeret
Elspeth
Tirel
Nicol
Bolas
Sarkhan
Vol
Nissa
Revane
Baltrice
Crucius
scryers
+1
etherium
-1
Kothophed
wurm
Tolaria
Weatherlight
Ertai
Barrin
Dominaria
Benalish
Benalia
Sisay
golem
Keld
Maraxus
Volrath
Mirri
Multani
maro-sorcerer
Squee
Tahngarth
Crovax
Selenia
Greven
il-Vec
Argive
Samite
Orim
Argivian
Rath
Starke
Sidar
Kondo
evincar
multiverse
Eladamri
Skyshroud
guerilla
Soltari
Lyna
Rofellos
spellcasting
Korvecdal
Vuel
Takara
self-interest
Ashnod
Mishra
Fallaji
Gix
Phyrexia
Phyrexian
supremacy
Tawnos
Argoth
Xantcha
Saproling
nontoken
mage
Ashling
Jaya
Maralen
Mornsong
non-Sliver
non-Shapeshifter
Thopter
Kraken
and/or
primordial
non-Dragon
nonpermanent
noninstant
nonplaneswalker
nonenchantment
nonsorcery
nonartifact
non-Human
Hellkite
hexproof
draughts
dwarves
sigil
dwarven
axe
earthen
hedron
thrull
arcun
merfolk

View File

@@ -0,0 +1,175 @@
148
mana
untap/MSDRJZG
unblockable
planeswalker
noncreature
nonland
nonenchantment
nonartifact
nonwhite
nonblue
nonblack
nonred
nongreen
unblock/USDG
precombat
postcombat
scry
plainswalk
islandwalk
swampwalk
mountainwalk
forestwalk
landwalk
desertwalk
plainshome
islandhome
swamphome
mountainhome
foresthome
landhome
soulshift
ninjitsu
bushido
lifelink
gravestorm
fateseal
bloodthirst
djinn
unattach
face-down
face-up
spell's
guerrilas
mages
exit-the-battlefield
enter-the-battlefield
havok
spectre
gargadon
gargadons
Crovax
evincar
and/or
20/20
planeswalkers
Merfolk
deathtouch
noncombat
Urza
Karn
Ajani
Goldmane
Jace
Beleren
Liliana
Vess
Chandra
Nalaar
Garruk
Wildspeaker
Tezzeret
Elspeth
Tirel
Nicol
Bolas
Sarkhan
Vol
Nissa
Revane
Baltrice
Crucius
scryers
+1
etherium
-1
Kothophed
wurm
Tolaria
Weatherlight
Ertai
Barrin
Dominaria
Benalish
Benalia
Sisay
golem
Keld
Maraxus
Volrath
Mirri
Multani
maro-sorcerer
Squee
Tahngarth
Crovax
Selenia
Greven
il-Vec
Argive
Samite
Orim
Argivian
Rath
Starke
Sidar
Kondo
evincar
multiverse
Eladamri
Skyshroud
guerilla
Soltari
Lyna
Rofellos
spellcasting
Korvecdal
Vuel
Takara
self-interest
Ashnod
Mishra
Fallaji
Gix
Phyrexia
Phyrexian
supremacy
Tawnos
Argoth
Xantcha
Saproling
nontoken
mage
Ashling
Jaya
Maralen
Mornsong
non-Sliver
non-Shapeshifter
Thopter
Kraken
and/or
primordial
non-Dragon
nonpermanent
noninstant
nonplaneswalker
nonenchantment
nonsorcery
nonartifact
non-Human
Hellkite
hexproof
draughts
dwarves
sigil
dwarven
axe
earthen
hedron
thrull
arcun
merfolk

View File

@@ -0,0 +1,175 @@
148
mana
untap/MSDRJZG
unblockable
planeswalker
noncreature
nonland
nonenchantment
nonartifact
nonwhite
nonblue
nonblack
nonred
nongreen
unblock/USDG
precombat
postcombat
scry
plainswalk
islandwalk
swampwalk
mountainwalk
forestwalk
landwalk
desertwalk
plainshome
islandhome
swamphome
mountainhome
foresthome
landhome
soulshift
ninjitsu
bushido
lifelink
gravestorm
fateseal
bloodthirst
djinn
unattach
face-down
face-up
spell's
guerrilas
mages
exit-the-battlefield
enter-the-battlefield
havok
spectre
gargadon
gargadons
Crovax
evincar
and/or
20/20
planeswalkers
Merfolk
deathtouch
noncombat
Urza
Karn
Ajani
Goldmane
Jace
Beleren
Liliana
Vess
Chandra
Nalaar
Garruk
Wildspeaker
Tezzeret
Elspeth
Tirel
Nicol
Bolas
Sarkhan
Vol
Nissa
Revane
Baltrice
Crucius
scryers
+1
etherium
-1
Kothophed
wurm
Tolaria
Weatherlight
Ertai
Barrin
Dominaria
Benalish
Benalia
Sisay
golem
Keld
Maraxus
Volrath
Mirri
Multani
maro-sorcerer
Squee
Tahngarth
Crovax
Selenia
Greven
il-Vec
Argive
Samite
Orim
Argivian
Rath
Starke
Sidar
Kondo
evincar
multiverse
Eladamri
Skyshroud
guerilla
Soltari
Lyna
Rofellos
spellcasting
Korvecdal
Vuel
Takara
self-interest
Ashnod
Mishra
Fallaji
Gix
Phyrexia
Phyrexian
supremacy
Tawnos
Argoth
Xantcha
Saproling
nontoken
mage
Ashling
Jaya
Maralen
Mornsong
non-Sliver
non-Shapeshifter
Thopter
Kraken
and/or
primordial
non-Dragon
nonpermanent
noninstant
nonplaneswalker
nonenchantment
nonsorcery
nonartifact
non-Human
Hellkite
hexproof
draughts
dwarves
sigil
dwarven
axe
earthen
hedron
thrull
arcun
merfolk

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 768 KiB

View File

@@ -1,20 +1,22 @@
############################################################## Localization
include file: language
# needed by all style files anyway
include file: /magic-blends.mse-include/new-blends
include file: statistics_script
############################################################## version check
version_date := {"2022-06-07"}
version_date := {"2023-02-21"}
############################################################## Sorting mana symbols
# correctly sort a mana symbol (no guild mana)
mana_sort := sort_text@(order: "\\?XYZI[0123456789]VLHSCAIE(WUBRG)")
mana_sort := sort_text@(order: "\\?XYZI[0123456789]VLHSFCAIE(WUBRG)")
# correctly sort wedge mana
mana_sort_wedge := sort_text@(order: "\\?XYZI[0123456789]VLHSCAIE(WBGUR)")
mana_sort_wedge := sort_text@(order: "\\?XYZI[0123456789]VLHSFCAIE(WBGUR)")
mana_unsort := sort_text@(order:"[/\\?XYZI0123456789VLHSCAIEWUBRG]")
# correctly sort guild mana
mana_sort_guild := sort_text@(order: "[\\?XYZI01234567890VLHSCAIEWUBRG/|]") +
mana_sort_guild := sort_text@(order: "[\\?XYZI01234567890VLHSFCAIEWUBRG/|]") +
replace@(
# No lookbehind :(
#match: "(?<!/)(./.|././.|./././.|.[|])(?!/)",
@@ -61,7 +63,6 @@ mana_filter_t := replace@( # Remove [] used for forcing mana symbo
replace: ""
) + { tap_reduction(tap_filter()) + mana_filter() }
############################################################## Determine card color
# Names of colors
@@ -232,9 +233,9 @@ card_color_filter := {
############################################################## Card number
# exportname
exporter_name_filter := filter_text@(match:"!exporte?r?name [^\n!]+")
exporter_name_grabber := replace@(match:"!exporte?r?name ", replace:"")
export_name := { exporter_name_grabber(exporter_name_filter(card.notes))}
exporter_name_filter := filter_text@(match:"!exporte?r?name [^\n!]+")
exporter_name_grabber := replace@(match:"!exporte?r?name ", replace:"")
export_name := { exporter_name_grabber(exporter_name_filter(card.notes))}
# Index for sorting, white cards are first, so white->A, blue->B, .. ,
# The code consists of 3 parts:
@@ -344,6 +345,15 @@ rarity_sort := {
else if set.sort_special_rarity == "with the rest" or card.rarity != "special" then " "
else "S"
}
card_partition := {"A"}
over_partition := {
my_pos := number_partition()
mn_pos := if set.last_main_partition == "" then "M" else to_upper(substring(set.last_main_partition, end:1))
posis := [my_pos, mn_pos]
higher := sort_list(posis).0
my_pos != higher
}
number_partition := { to_upper(substring(card_partition(), end:1)) }
set_filter := {
# TODO: what about rulestips?
if is_unsorted() then
@@ -359,11 +369,11 @@ set_filter := {
else if is_masterpiece() and card.shape != "token" and card.shape != "emblem" then
{ is_masterpiece() and card.shape != "token" and card.shape != "emblem" }
else if set.sort_special_rarity != "separate numbering" then
{ not is_unsorted() and card.shape != "token" and not is_masterpiece() and card.shape != "emblem" and card.shape != "rulestip" and card.shape != "counter" and card.shape != "checklist"}
{ not over_partition() and not is_unsorted() and card.shape != "token" and not is_masterpiece() and card.shape != "emblem" and card.shape != "rulestip" and card.shape != "counter" and card.shape != "checklist"}
else if card.rarity == "special" then
{ not is_unsorted() and card.shape != "token" and not is_masterpiece() and card.shape != "emblem" and card.shape != "rulestip" and card.shape != "counter" and card.shape != "checklist" and card.rarity == "special" }
{ not over_partition() and not is_unsorted() and card.shape != "token" and not is_masterpiece() and card.shape != "emblem" and card.shape != "rulestip" and card.shape != "counter" and card.shape != "checklist" and card.rarity == "special" }
else
{ not is_unsorted() and card.shape != "token" and not is_masterpiece() and card.shape != "emblem" and card.shape != "rulestip" and card.shape != "counter" and card.shape != "checklist" and card.rarity != "special" }
{ not over_partition() and not is_unsorted() and card.shape != "token" and not is_masterpiece() and card.shape != "emblem" and card.shape != "rulestip" and card.shape != "counter" and card.shape != "checklist" and card.rarity != "special" }
}
card_number_offset := {pull_comma_array(set.card_number_offsets, cell:0, end:false, default:0)}
set_number_offset := {pull_comma_array(set.card_number_offsets, cell:1, end:false, default:0)}
@@ -371,7 +381,7 @@ card_number := {
position (
of: card
in: set
order_by: { rarity_sort() + sort_index() + sort_name(card.name) + sort_name(export_name())}
order_by: { number_partition() + rarity_sort() + sort_index() + sort_name(card.name) + sort_name(export_name())}
filter: set_filter()
) + 1 + to_number(card_number_offset())
}
@@ -382,6 +392,23 @@ card_count := {
#Starting with M15, zero digits in card numbers should be shown up to three.
card_number_m15 := { (if card_number() < 100 then "0" else "") + (if card_number() < 10 then "0" else "") + card_number() }
card_count_m15 := { (if card_count() < 100 then "0" else "") + (if card_count() < 10 then "0" else "") + card_count() }
#Starting with MOM, zero digits in card numbers should be shown up to four
card_number_mom := { (if card_number() < 1000 then "0" else "") + (if card_number() < 100 then "0" else "") + (if card_number() < 10 then "0" else "") + card_number() }
card_number_script_core := {
if is_unsorted() or not set.automatic_card_numbers then
combined_editor(field1: card.custom_card_number, separator: " " + rarity_code() + " ", field2: 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() 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() then "" else "/" + card_count()) + " " + rarity_code() + " ", field: card.card_code_text)
else
forward_editor(prefix: card_number() + " " + rarity_code() + " ", field: card.card_code_text)
}
# used by pack scripts
is_token_card := { card.shape == "token" or card.shape == "rulestip" or card.shape == "counter" or card.shape == "checklist" or card.shape == "emblem"}
@@ -471,6 +498,143 @@ protection_code := {
output
}
self_pro_check := match@(match:"You ha(ve|s) <kw-A><nospellcheck>protection")
craft_code := {
[
"en": {
## beginning
rem := param2.value + ", Exile this artifact, Exile ";
## check if a number is given
count := filter_text(param1.value, match:"^(one|two|three|four|five|six|seven|eight|nine|ten|eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen|twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|[0-9]+)(-(one|two|three|four|five|six|seven|eight|nine))? (or more)?");
## replace trailing space
count := trim(count)
## check how many commas are given
commas := filter_text(param1.value, match:",");
## check if this starts with a vowel
vowel := match(param1.value, match:"^[aeiouAEIOU]");
## if we have a comma separated list, use the number of elements as the count
## this doesn't support like, Craft with two Islands and two Mountains
## you've done that to yourself
if commas != "" then count := english_number(length(commas)+1);
## unused style (craft with three)
#### param1 == "three" count == "three"
## counting style (craft with one or more); (craft with six artifacts)
#### param1 == "one or more" count == "one"; param1 == "six artifacts" count == "six"
## singular style (craft with creature)
#### param1 == "creature" count == ""
if count == param1.value then
(
## Exile three other...
rem := rem
+ param1.value
+ " other permanents you control and/or cards from your graveyard: "
)
else if count != "" then
(
## Exile one or more from among...
## Exile the six from among...
rem := rem
+ (if count == "one or more" then param1.value else "the " + count)
+ " from among other permanents you control and/or cards in your graveyard: "
)
else
(
## Exile another creature you control or...
rem := rem
+ "another " + param1.value + " you control or "
+ (if vowel then "an " else "a ") + param1.value + " card from your graveyard: "
)
## ending and return
rem := rem + "Return this card transformed under its owner's control. Craft only as a sorcery."
rem
},
"de": {
## beginning
rem := param2.value + ", schnicke dieses Artefakt ins Exil, schicke ";
## check if a number is given
count := filter_text(param1.value, match:"^(zwanzig|dreiβig|vierzig|fünfzig|sechzig|siebzig|achtzig|neunzig|eine[mr]|eins?|zwei|drei|vier|fünf|sechs?|sieben|sieb|acht|neun|zehn|elf|zwölf|[0-9]+)(und)?(zehn|zwanzig|dreiβig|vierzig|fünfzig|sechzig|siebzig|achtzig|neunzig)?( oder mehr(eren)?)? ?");
## save the thing we're exiling
target := trim(replace(param1.value, match:count, replace:""))
alt_target := if length(target) > 15 then "Permanente" else target
## format count
count := replace(count, match:"eine[mr]", replace:"eins")
count := trim(count)
## check how many commas are given
commas := filter_text(param1.value, match:",");
## check if this starts with a vowel
vowel := match(target, match:"^[aäeiouüAÄEIOUÜ]");
## if we have a comma separated list, use the number of elements as the count
## this doesn't support eg Craft with two Islands and two Mountains
## you've done that to yourself
if commas != "" then (
count := german_number(length(commas)+2);
alt_target := "Permanente"
)
## unused style (craft with three)
#### param1 == "three" count == "three"
## counting style (craft with one or more); (craft with six artifacts)
#### param1 == "one or more" count == "one"; param1 == "six artifacts" count == "six"
## singular style (craft with creature)
#### param1 == "creature" count == ""
if count == param1.value then
(
## Exile three other...
rem := rem
+ param1.value
+ " weiteren Permanente, die du kontrollierst und/oder Karten aus deinem Friedhof ins Exil: "
)
else if count != "eins" then
(
## with one or more...
## with four or more
## with two+...
rem := rem
+ (
if count == "eins oder mehreren" then "ein oder mehrere weitere "
else if contains(count, match:"oder") then "die " + count + " weireren "
else "die " + count + " oder mehr weiteren "
## todo this should list the denumbered param1.value instead
)
+ alt_target
+ (if vowel then ", das du" else ", die du")
+ " kontrollierst und/oder Karten aus deinem Friedhof ins Exil: "
)
else
(
## with einem Artefakt
## with einem Kreatur
rem := rem
+ (if target == "Artefakt" then "ein weiteres " else "ein ")
+ target
+ ", "
+ (if vowel then "das du" else "die du")
+ " kontrollierst, oder "
+ (if vowel then "eines " else "eine ") + target
+ (if target == "Kreatur" then "en-karte" else "-karte")
+" aus deinem Friedhof ins Exile: "
)
## ending and return
rem := rem + "Bringe diese Karte transformiert unter der Kontrolle ihres Besitzers ins Spiel zurück. Spiele Anfertigung wie eine Herexi."
rem
}
][lang_setting("code") or else "en"]()
}
long_dash := replace@(match:"-", replace:"—")
# Utilities for keywords
@@ -491,61 +655,62 @@ color_to_mana := replace@(match: "white", replace: "[W]")+
replace@(match: "red", replace: "[R]")+
replace@(match: "green", replace: "[G]")
digital_map := [
"zero": 0,
"one": 1,
"once": 1,
"a": 1,
"an": 1,
"two": 2,
"twice": 2,
"three": 3,
"thrice": 3,
"four": 4,
"five": 5,
"six": 6,
"seven": 7,
"eight": 8,
"nine": 9,
"ten": 10,
"eleven": 11,
"twelve": 12,
"thirteen": 13,
"fourteen": 14,
"fifteen": 15,
"sixteen": 16,
"seventeen": 17,
"eighteen": 18,
"nineteen": 19,
"twenty": 20,
"thirty": 30,
"forty": 40,
"fifty": 50,
"sixty": 60,
"seventy": 70,
"eighty": 80,
"ninety": 90
]
iterate_fix := remove_tags
+replace@(match: "^\\.", replace:"")
+replace@(match: "^,", replace:"")
+replace@(match: "^[ ]$", replace:"")
iterate_trim := replace@(match:" times", replace:"");
+replace@(match: "^[ ]", replace:"")
+replace@(match:" times", replace:"")
iterate_digits := {
if iterate_trim(iterate_fix(input)) == "" then "1"
else if iterate_trim(iterate_fix(input)) == " one" then "1"
else if iterate_trim(iterate_fix(input)) == " once" then "1"
else if iterate_trim(iterate_fix(input)) == " two" then "2"
else if iterate_trim(iterate_fix(input)) == " twice" then "2"
else if iterate_trim(iterate_fix(input)) == " three" then "3"
else if iterate_trim(iterate_fix(input)) == " four" then "4"
else if iterate_trim(iterate_fix(input)) == " five" then "5"
else if iterate_trim(iterate_fix(input)) == " six" then "6"
else if iterate_trim(iterate_fix(input)) == " seven" then "7"
else if iterate_trim(iterate_fix(input)) == " eight" then "8"
else if iterate_trim(iterate_fix(input)) == " nine" then "9"
else if iterate_trim(iterate_fix(input)) == " ten" then "10"
else if iterate_trim(iterate_fix(input)) == " eleven" then "11"
else if iterate_trim(iterate_fix(input)) == " twelve" then "12"
else if iterate_trim(iterate_fix(input)) == " thirteen" then "13"
else if iterate_trim(iterate_fix(input)) == " fourteen" then "14"
else if iterate_trim(iterate_fix(input)) == " fifteen" then "15"
else if iterate_trim(iterate_fix(input)) == " sixteen" then "16"
else if iterate_trim(iterate_fix(input)) == " seventeen" then "17"
else if iterate_trim(iterate_fix(input)) == " eighteen" then "18"
else if iterate_trim(iterate_fix(input)) == " nineteen" then "19"
else if iterate_trim(iterate_fix(input)) == " twenty" then "20"
else iterate_trim(iterate_fix(input))
trimmed := iterate_fix(input)
if trimmed == "" then 1 else digital_map[trimmed] or else trimmed
}
digital_number := {
input := replace(input, match:"up to ", replace:"")
if input == "zero" then 0
else if input == "one" or input == "a" or input == "an" then 1
else if input == "two" then 2
else if input == "three" then 3
else if input == "four" then 4
else if input == "five" then 5
else if input == "six" then 6
else if input == "seven" then 7
else if input == "eight" then 8
else if input == "nine" then 9
else if input == "ten" then 10
else if input == "eleven" then 11
else if input == "twelve" then 12
else if input == "thirteen" then 13
else if input == "fourteen" then 14
else if input == "fifteen" then 15
else if input == "sixteen" then 16
else if input == "seventeen" then 17
else if input == "eighteen" then 18
else if input == "nineteen" then 19
else if input == "twenty" then 20
else input
result := input
two_part := filter_text(input, match:"(twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety)")
one_part := filter_text(input, match:"(zero|a|an|one|two|three|four|five|six|seven|eight|nine|ten|eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)\\b")
if two_part != "" and one_part != "" then
result := (digital_map[two_part] + digital_map[one_part]) or else input
else if two_part != "" then
result := digital_map[two_part] or else input
else if one_part != "" then
result := digital_map[input] or else input
result
}
reverse_elements := {for element from 1 to length(input) do input[length(input) - element] + " "}
######################## Level Margins
@@ -601,7 +766,6 @@ inserts_values := {
split_text(set.inserts+";;;;;;;;;", match:";")
}
############################################################## The text box
# Filters for the text box
# context in which mana symbols are found
mana_context :=
@@ -633,6 +797,9 @@ mana_un_context := "(converted mana costs? <match>|<match> life)"
# truncates the name of legends
legend_filter := replace@(match:"(, | of | the | \"| “).*", replace: "" )
# does this frame support Alchemy Rebalanced name symbol?
alch_compatible := {false}
# these are considered a correct 'word' for spellchecking in the text box:
additional_text_words := match@(match:
"(?ix)^(?: # match whole word
@@ -650,7 +817,7 @@ this_or_that := {
this := "this"
that := "that"
type := input
if input == "type" then type := main_type(card.type)
if input == "type" then type := to_lower(main_type(card.type))
else if is_creaturish(card.type) then type := "creature"
if type == "" then type := "permanent"
if upper then (
@@ -679,8 +846,26 @@ auto_correct :=
replace: { _1 + _2 + to_lower(_3)})
auto_errata :=
replace@(match:"converted mana cost", replace:"mana value")
+replace@(match:"(?i)(Totem armor|Totembeistand|Armadura tótem|totémique|Armatura totem|Armadura de totem|族霊鎧|替身甲)", replace:{errata_map[_1]})
+replace@(match:"hen shuffle your library", replace:"hen shuffle")
+replace@(match:"this (?:ability )?(?:only )?(?:any ?time you could cast|as) a", in_context: "(Activate|Play) <match>n? (instant|sorcery)", replace:"only as a")
errata_map := [
"Totem armor": "Umbra armor",
"totem armor": "umbra armor",
"Totembeistand": "Schattenbeistand",
"totembeistand": "schattenbeistand",
"Armadura tótem": "Armadura umbra",
"armadura tótem": "armadura umbra",
"Armure totémique": "Armure dombre",
"armure totémique": "armure dombre",
"Armatura totem": "Armatura essenza",
"armatura totem": "armatura essenza",
"族霊鎧": "陰影鎧",
"替身甲": "本影甲",
"Armadura de totem": "Armadura de sombra",
"armadura de totem": "armadura de sombra"
]
ex_test := {
expand_keywords(
input,
@@ -877,7 +1062,9 @@ text_filter :=
if set.auto_errata then
auto_errata(input)
else input } +
{ if set.mark_errors then
{
if language().code == "ja" or language().code == "zht" or language().code == "zhs" then input
else if set.mark_errors then
check_spelling(
language: language().spellcheck_code,
extra_dictionary: "/magic.mse-game/dictionary/magic-words",
@@ -911,31 +1098,32 @@ flavor_text_filter :=
# Move the cursor past the separator in the p/t and type boxes
type_over_pt := replace@(match:"/$", replace:"")
type_over_type := replace@(match:" ?[-:]$", replace:"")
super_type_filter := {
input := remove_tag(tag: "<word-list-")
input := type_over_type()
tag := "word-list-type" # TODO: localize
tag := "word-list-type-" + lang_setting("code")
"<{tag}>{input}</{tag}>"
}
break_subtypes := split_text@(match: " +|<atom-sep>[^<]*</atom-sep>", include_empty:false)
break_supertypes := split_text@(match: "<atom-sep>[^<]*</atom-sep>", include_empty:false)
sub_type_filter := {
input := remove_tag(tag: "<word-list-")
input := remove_tag(tag: "<soft")
lang := language()
# What word list to use?
list_type_rest := if lang.is_creature(type) then "class"
else if lang.is_land(type) then "land"
else if lang.is_artifact(type) then "artifact"
else if lang.is_enchantment(type) then "enchantment"
else if lang.is_spell(type) then "spell"
else if lang.is_planeswalker(type) then "planeswalker"
else if lang.is_plane(type) then "plane"
list_type_rest := if lang_setting("is_creature")(type) or lang_setting("is_kindred")(type) then "class-"+lang_setting("code")
else if lang_setting("is_land")(type) then "land"
else if lang_setting("is_artifact")(type) then "artifact"
else if lang_setting("is_enchantment")(type) then "enchantment"
else if lang_setting("is_spell")(type) then "spell"
else if lang_setting("is_planeswalker")(type) or lang_setting("is_emblem")(type) then "planeswalker"
else if lang_setting("is_plane")(type) then "plane-"+lang_setting("code")
else if lang_setting("is_battle")(type) then "battle"
else if lang_setting("is_dungeon")(type) then "dungeon"
else nil
if list_type_rest != nil then (
if lang.is_creature(type) or lang.is_tribal(type) then (
list_type_first := "race"
if lang_setting("is_creature")(type) or lang_setting("is_kindred")(type) then (
list_type_first := "race-"+lang_setting("code")
) else (
list_type_first := list_type_rest
);
@@ -945,11 +1133,11 @@ sub_type_filter := {
if i == 0 then
"<word-list-{list_type_first}>{part}</word-list-{list_type_first}>"
else
lang.subtype_separator + "<word-list-{list_type_rest}>{part}</word-list-{list_type_rest}>"
languages[lang_name()].subtype_separator + "<word-list-{list_type_rest}>{part}</word-list-{list_type_rest}>"
) +
(if length(parts) > 0 then
# Add a new box at the end
"<soft>{lang.subtype_separator}</soft><word-list-{list_type_rest}></word-list-{list_type_rest}>"
"<soft>{languages[lang_name()].subtype_separator}</soft><word-list-{list_type_rest}></word-list-{list_type_rest}>"
else
"<word-list-{list_type_first}></word-list-{list_type_first}>"
)
@@ -962,17 +1150,17 @@ only_first := replace@(match:" .*", replace:"")
only_next := replace@(match:"^[^ ]* ?", replace:"")
all_sub_types := {
for each card in set do
if contains(card.super_type) then "," + space_to_comma(to_text(card.sub_type)) else ""
if lang_setting(setting)(card.super_type) then "," + space_to_comma(to_text(card.sub_type)) else ""
}
all_races := {
for each card in set do
if is_creature(card.super_type) or is_tribal(card.super_type) then
if lang_setting("is_creature")(card.super_type) or lang_setting("is_kindred")(card.super_type) then
"," + only_first(to_text(card.sub_type))
else ""
}
all_classes := {
for each card in set do
if contains(card.super_type, match:"Creature") then
if lang_setting("is_creature")(card.super_type) then
"," + space_to_comma(only_next(to_text(card.sub_type)))
else ""
}
@@ -1174,9 +1362,23 @@ ancestral_mana := { card.pt != "" and card.pt == "" }
is_unsorted := {"false"}
special_text := { "" }
special_text2 := { "" }
exporter_name_filter := filter_text@(match:"!exporte?r?name [^\n!]+")
exporter_name_filter := filter_text@(match:"!exporte?r?name [^\n!(]+")
exporter_name_grabber := replace@(match:"!exporte?r?name ", replace:"")
card_name := { replace(if exporter_name_grabber(exporter_name_filter(card.notes)) != "" then exporter_name_grabber(exporter_name_filter(card.notes)) else card.name, match:" $", replace:"") }
clean_name := remove_tags +
replace@(match:"(\n| +$|^ +)", replace:"") +
replace@(match:"", replace:"'")
card_name := {
test_name := exporter_name_grabber(exporter_name_filter(card.notes))
if test_name == "" then test_name := card.name
clean_name(test_name)
}
dfc_splitter_name := {
back_name := card.name_2
full_name := card_name()
if back_name != "" then full_name := full_name + "_" + clean_name(back_name)
full_name
}
exporter_num_filter := filter_text@(match:"!num [^\n!]+")
exporter_num_grabber := replace@(match:"!num ", replace:"")
trim_zeroes := replace@(match: "^00?", replace: "")+
@@ -1191,7 +1393,7 @@ to_sentence := replace@(match:"(^|\n)([A-z])([^\n]*)", replace:{_1+ to_upper(_2)
join_arrays := {
a1 + for x from 0 to length(a2)-1 do [a2[x]]
}
join := {
join_list := {
string := ""
if length(input) == 2 then spacer := " "
if length(input) == 1 then closing := ""
@@ -1199,11 +1401,20 @@ join := {
string := string + (if x == length(input)-1 then closing else "") + input[x] + (if x == length(input)-1 then "" else spacer)
string
}@(spacer:", ", closing:"and ")
join := {
if i >= length(input) then ""
else if i == length(input)-1 then input[i]
else input[i]+sep+join(input, i: i+1, sep: sep)
}@(i: 0, sep:"")
# workaround cause position() is broken for text arrays
contains_element := {
if input == [] then false else length(filter_list(input, filter:{input == element})) > 0
}
ar_position := {
pos := -1
dummy := for x from 0 to length(in)-1 do (
if in[x] == of then pos := x
"filler"
for x from 0 to length(in)-1 do (
if in[x] == of then pos := x;
)
pos
}
@@ -1444,6 +1655,7 @@ v_mana_name := {if not use_v_mana() then "" else replace(set.custom_mana_symbol_
v_mana_loc := {if not use_v_mana() then "" else replace(set.custom_mana_symbol_name, match:"{v_mana_name()}\\.png", replace:"")}
v_mana_num := {max(to_number(set.number_hybrid_variants),0) or else -1}
ub_stamp := { card.card_stamp == "universes beyond" }
use_custom_stamp := {contains(set.custom_stamp_name, match:".png")}
c_stamp_name := {
if not use_custom_stamp() then ""
@@ -1807,12 +2019,19 @@ saga_ch_placement := {
}
card_face := {
trace(margin_code)
front := card[input]
back := if card[input+"_2"] or else "" != "" then card[input+"_2"] else card[input]
if match(margin_code, match:"(text[2456]|lv[5678])") then back else front
}
strip_card_codes := replace@(match:"^[CURMSL][WUBRGMZACL][0-9]+ ?[-—]? ?", replace:"")
cc_filter := replace@(match:"^[CURMSL][WUBRGMZACL][0-9]+ ?[-—]? ?", replace:"")
strip_card_codes := {
save := input
input := cc_filter(input)
input := if input == "" or input == " " then save else input
if alch_compatible() and card.card_symbol == "alchemy"
then "<sym>A-</sym>" + input
else input
}
name_checker := {if not set.remove_card_codes then input else strip_card_codes(input)}
face_code := {
@@ -1821,6 +2040,9 @@ face_code := {
output := face_scripts[input](face) or else if_parse(input, face:face) or else input
output
}
flip_face := {
if input == "_2" then "" else "_2"
}
face_scripts := [
iscreature: {is_creature(card["type"+face])},
iscreaturish: {is_creaturish(card["type"+face])},
@@ -1834,6 +2056,10 @@ face_scripts := [
contains(card[field+face], match:query)
},
notcontains: {not contains(card[field+face], match:query)},
name: {card["name"+face]},
cost: {card["casting_cost"+face]},
altname: {card["name"+flip_face(face)]},
altcost: {card["casting_cost"+flip_face(face)]},
]
expand_facecodes := [
subtype: "sub_type",
@@ -1871,3 +2097,174 @@ phy_reminder := {
reminder_text := ""
reminder_text
}
###### Print Fix
rare_width := {
cw := card_style.rarity.content_width
cw := if cw > 44 then (if set.print_fix != "" then set.print_fix else 22) else if cw < 22 then 22 else cw
if card_style.rarity.width == 0 then 0 else cw
}
### Customize fonts
swap_font := {false} ##{styling.apply_custom_fonts}
split_font := split_text@(match:";")
pop_font_name := {split_font(input).0 or else ""}
pop_font_size := {split_font(input).1 or else ""}
pop_font_color := {split_font(input).2 or else ""}
pop_font_vertical := {split_font(input).3 or else ""}
pop_font_italic := {split_font(input).4 or else ""}
swap_font_name := {
if swap_font() then (
test := pop_font_name(src)
if test != "" then font_name := test
)
font_name
}@(font_name:"", src:"")
swap_font_size := {
if swap_font() then (
test := pop_font_size(src)
if test != "" then font_size := test
)
font_size
}@(font_size:16, src:"")
swap_font_color := {
if swap_font() then (
test := pop_font_color(src)
nums := split_text(test, match:",")
test_color := nil
if length(nums) >= 4 then test_color := rgba(nums.0, nums.1, nums.2, nums.3) or else nil
if test_color == nil and length(nums) >= 3 then test_color := rgb(nums.0, nums.1, nums.2) or else nil
if test_color == nil and test != "" then test_color := to_color(test) or else nil
if test_color != nil then font_color := test_color
) else ""
font_color
}@(font_color:"", src:"")
swap_font_vertical := {
if swap_font() then (
test := pop_font_vertical(src)
if test != "" then vertical := to_number(test)
)
vertical
}@(vertical:0, src:"")
swap_font_italic := {
font_name := "MPlantin-Italic"
if swap_font() then (
test := pop_font_italic(styling.custom_body_font)
test2 := pop_font_name(styling.custom_body_font)
if test != "" then font_name := test
else if test2 != "" then font_name := ""
)
font_name
}@(font_name:"", src:"")
#### Customize rarity symbol
alt_rarity := {""} ##{styling.alt_rarity_color}
use_alt_rarity := {alt_rarity() != ""}
alt_rarity_color := {
string := "83,67,53:177,150,131:0,0,0:0,0,0:0.07:"
src := alt_rarity()
if match(src, match:":$") then string := src
colons := length(filter_text(string, match:":"))
output := split_text(string, match:",|:")
splits := split_text(string, match:":")
final_num := to_real(splits[length(splits)-2]) or else 0
final_border := final_num > 0 and final_num < 1
final_num := if not final_border then "0.07" else to_string(final_num);
if final_border then (
colons := colons - 1;
string := replace(string, match:"{final_num}:", replace:"")
)
if colons == 4
then output := split_text(string+final_num+":", match:",|:")
if colons == 3
then output := split_text(string+splits[2]+":"+final_num+":", match:",|:")
else if colons == 2
then output := split_text(string+"0,0,0:0,0,0:"+final_num+":", match:",|:")
else if colons == 1
then output := split_text(string+splits[0]+":0,0,0:0,0,0:"+final_num+":", match:",|:")
output
}
alt_symbol := {
alt_array := alt_rarity_color()
symbol_variation(
symbol:set.symbol,
border_radius: alt_array.12,
fill_type: "linear gradient",
fill_color_1: rgb(alt_array.0, alt_array.1, alt_array.2),
fill_color_2: rgb(alt_array.3, alt_array.4, alt_array.5),
border_color_1: rgb(alt_array.6, alt_array.7, alt_array.8),
border_color_2: rgb(alt_array.9, alt_array.10, alt_array.11),
center_x:0.5, center_y:0.5, end_x:1, end_y:1
)
}
# rough type_of script
# fine for nil, boolean, color, date, string, number, and array
# map and image are trickier
# if you don't care about the difference use as normal, will return "map or image"
# if you do, include key:"" parameter that's a key of the potential map
# ex if you want to know if some_object is an image or [x:1]
# use type_of(some_object, key:"x")
type_of := {
test := to_string(input) or else nil
type := "idk"
if test == "" and input == nil then type := "nil"
else if test != nil and (input == true or input == false) then type := "boolean"
else if (test != nil and test + 0 == input + 0) then (
if to_color(test) or else nil == input
then type := "color"
else if to_date(test) or else nil == input
then type := "date"
else type := "string"
)
else if test != nil then type := "number"
else if input[0] or else nil != nil then type := "array"
else if key == "" then type := "map or image"
else if input[key] or else nil == nil then type := "image"
else type := "map"
type
}@(key:"")
is_string := {
test := to_string(input) or else nil
if test == "" and input == nil then false
else if test == nil then false
else test == input
}
# mapping := ["up":"test/up.png" "down":"test/down.png" "left":"test/left.png" "right":"test/right.png"]
multi_choice_image := {
## input = option string
##img_map = map of image links
coll := split_text(input, match:", ?")
imgs := for each x in coll do if img_map[x] or else false != false then [img_map[x]]
len := length(imgs)
if len == 0 then
""
else if len == 1 then
imgs[0]
else if len == 2 then
combine_blend(image1:imgs[0] image2:imgs[1], combine:combine)
else mass_combine(imgs:imgs, combine:combine)
}@(combine:"and")
mass_combine := {
base := combine_blend(image1:imgs[0] image2:imgs[1], combine:combine)
for x from 2 to length(imgs)-1 do (
base := combine_blend(image1:base image2:imgs[x] combine:combine)
"" # this is junk output so it doesn't try to add the images as strings
)
base
}@(combine:"and")
zwsp := ""

View File

@@ -1,4 +1,4 @@
############################################################## Set fields
set field:
@@ -134,6 +134,15 @@ set field:
type: boolean
name: automatic card numbers
description: Should card numbers be shown on the cards?
set field:
type: choice
name: card number style
description: What style of automatic card numbers should be used?
choice: 0001
choice: 001/099
choice: 001
choice: 1/99
choice: 1
set field:
type: text
name: card number offsets
@@ -146,10 +155,6 @@ set field:
type: boolean
name: rarity codes
description: Show rarity codes on M15 frames?
set field:
type: boolean
name: trim statistics
description: Removes tokens, special rarity, and masterpiece rarity from most statistics.
set field:
type: boolean
name: curly quotes
@@ -189,10 +194,16 @@ set field:
choice: English
choice: English (British)
choice: English (Canadian)
choice: Español
choice: Français
choice: Deutsch
choice: Italiano
choice: Português do Brasil
choice: Russian
choice: Русский
choice: 日本語
choice: 한국어
choice: 汉语
choice: 漢語
initial: English
set field:
type: boolean
@@ -229,6 +240,53 @@ set field:
name: wedge mana costs
description: Depreciated. Should three color mana costs sort in wedge order like in Khans block?
initial: no
set field:
type: info
name: Statistics
set field:
type: boolean
name: trim statistics
description: Removes special and masterpiece rarity cards from the statistics, as well as tokens, emblems, dungeons, heroes, conspiracies, vanguards, schemes, planes and phenomenons. Type statistics_info() in the console for detailed help.
initial: no
set field:
type: text
name: filter statistics
description: Filter cards from the statistics. Syntax is: field_name_1=="value_1", field_name_2=="value_2", etc. Use == for strict equality, != for not equal, =: for contains, !: for not contains, <= and >= for numeric comparisons. Example: color=="RG", mana_value<="4", rule_text=:"deathtouch", sub_type!:"goblin"
set field:
type: multiple choice
name: count secondary faces
description: Count the back side or secondary faces of the cards in the statistics? Type statistics_info() in the console for detailed help.
choice: MDFC
choice: TDFC
choice: Adventure
choice: Split
choice: Aftermath
choice: Flip
initial: MDFC, Adventure, Split
set field:
type: text
name: custom super types
description: Custom supertypes for the stats page, separated by commas. Do not write custom types or subtypes. Type statistics_info() in the console for detailed help.
set field:
type: text
name: custom creature races
description: Custom races for the stats page, separated by commas, or type "detect" for MSE to grab them. Type statistics_info() in the console for detailed help.
default: "detect"
script:
if value == "detect" then detect_custom_creature_subtypes_statistic() else value
set field:
type: text
name: custom creature classes
description: Custom classes for the stats page, separated by commas. Type statistics_info() in the console for detailed help.
set field:
type: text
name: card notes clauses split
description: Regex used to split the card notes in the Card Notes Clauses statistics category. Default is " *(\.|\n|;|,|(?=!)) *" which splits at each semicolon, each dot, each exclamation mark and each comma.
default: " *(\\.|\\n|;|,|(?=!)) *"
set field:
type: text
name: global_variable_average_opening_hand
script: global_variable_average_opening_hand_statistic()
set field:
type: info
name: Mainframe Template Options
@@ -240,6 +298,10 @@ set field:
type: boolean
name: use flavor bar
description: Enables the flavor bar on Mainframe templates.
set field:
type: text
name: last main partition
description: Card Number Partitions after this one aren't counted as the main part of the set, ex "301" rather than "301/300" or "301/900". Default is M.
set field:
type: choice
name: default stamp
@@ -247,8 +309,9 @@ set field:
choice: none
choice: acorn
choice: universes beyond
choice: alchemy
choice: alchemy old
choice: custom
choice: custom color
description: The default stamp setup to use. Only works on new cards, not supported on all frames.
set field:
type: text
@@ -295,9 +358,15 @@ set field:
choice: Your mana symbol will now be keyed to V (and V/W, V/U, etc. for colored/hybrid symbols).
choice: You can change number hybrids (2/V etc) to different mana symbols for even more custom symbols.
choice: Put the highest number to change (from 0 to 11) in "number hybrid variants" and save as NAME_0.png etc.
set field:
type: text
name: print fix
description: An override fix for printing typeline issues. Enter card_style.rarity.content_width in the console tab, then put the number it puts here.
############################# Default style
default set style:
global_variable_average_opening_hand:
visible: false
title:
padding left: 2
font:
@@ -342,6 +411,12 @@ default set style:
fill color 2: rgb(58,7,80)
border color 1: rgb(255, 255, 255)
border color 2: rgb(255, 255, 255)
variation:
name: invertedcommon
border radius: 0.10
fill type: solid
fill color: rgb(255,255,255)
border color: rgb(0,0,0)
##purple
##fill color 1: rgb(224,170,247)
##fill color 2: rgb(58,7,80)
@@ -408,6 +483,9 @@ default set style:
automatic reminder text:
render style: checklist
direction: vertical
count secondary faces:
render style: checklist
direction: vertical
sort special rarity:
render style: both
choice images:
@@ -425,10 +503,25 @@ default set style:
English: /magic.mse-game/icons/language-en.png
English_(British): /magic.mse-game/icons/language-en-gb.png
English_(Canadian): /magic.mse-game/icons/language-en-ca.png
Español: /magic.mse-game/icons/language-es.png
Français: /magic.mse-game/icons/language-fr.png
Deutsch: /magic.mse-game/icons/language-de.png
Italiano: /magic.mse-game/icons/language-it.png
Português_do_Brasil: /magic.mse-game/icons/language-br.png
Russian: /magic.mse-game/icons/language-ru.png
Русский: /magic.mse-game/icons/language-ru.png
日本語: /magic.mse-game/icons/language-ja.png
한국어: /magic.mse-game/icons/language-ko.png
汉语: /magic.mse-game/icons/language-zh.png
漢語: /magic.mse-game/icons/language-zh.png
mana symbol options:
render style: checklist
direction: vertical
default stamp:
render style: both
choice images:
standard: /magic.mse-game/stamps/foil.png
acorn: /magic.mse-game/stamps/acorn.png
universes beyond: /magic.mse-game/stamps/ub.png
alchemy: /magic.mse-game/stamps/alchemy.png
alchemy old: /magic.mse-game/stamps/alchemy_old.png
custom: {if contains(set.custom_stamp_name, match:".png") then "/magic-mainframe-extras.mse-include/"+set.custom_stamp_name else ""}

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 877 B

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 876 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 416 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 802 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 905 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 394 B

After

Width:  |  Height:  |  Size: 931 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 674 B

After

Width:  |  Height:  |  Size: 812 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 576 B

After

Width:  |  Height:  |  Size: 958 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 860 B

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 590 B

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 702 B

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 400 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1016 B

After

Width:  |  Height:  |  Size: 1.4 KiB

File diff suppressed because it is too large Load Diff