diff --git a/data/ch-s.mse-locale/locale b/data/ch-s.mse-locale/locale
index f8ff7133e..ff1844e38 100644
--- a/data/ch-s.mse-locale/locale
+++ b/data/ch-s.mse-locale/locale
@@ -241,11 +241,13 @@ help:
number of packs: 要生成的 %ss 数量
# Preferences
- app language:
- 注意: 你必须重新启动MSE才能使语言修改生效
- zoom export:
- (当关闭该项的时候,卡牌会按照以下规则导出:
- 100%大小,不旋转)
+ app language:
+ 注意: 你必须重新启动MSE
+ 才能使语言修改生效
+ zoom export:
+ (当关闭该项的时候,
+ 卡牌会按照以下规则导出:
+ 100%大小,不旋转)
# apprentice export
set code: 套牌代码是一个双字节代码,它能被Apprentice识别成一幅套牌
diff --git a/data/ch-t.mse-locale/locale b/data/ch-t.mse-locale/locale
index 5be1fb3e7..3133c6be4 100644
--- a/data/ch-t.mse-locale/locale
+++ b/data/ch-t.mse-locale/locale
@@ -239,11 +239,13 @@ help:
number of packs: 要產生的 %ss 數量
# Preferences
- app language:
- 注意: 你必須重新啟動MSE才能使語言修改生效
- zoom export:
- (當關閉該項的時候,卡牌會按照以下規則導出:
- 100%大小,不旋轉)
+ app language:
+ 注意: 你必須重新啟動MSE
+ 才能使語言修改生效
+ zoom export:
+ (當關閉該項的時候,
+ 卡牌會按照以下規則導出:
+ 100%大小,不旋轉)
# apprentice export
set code: 套牌代碼是一個雙位元組代碼,它能被Apprentice識別成一幅套牌
diff --git a/data/da.mse-locale/locale b/data/da.mse-locale/locale
index 73c7a7d9b..207ab6e6f 100644
--- a/data/da.mse-locale/locale
+++ b/data/da.mse-locale/locale
@@ -239,11 +239,14 @@ help:
number of packs: Antallet af %ss genereret
# Preferences
- app language:
- Note: Du skal genstarte MSE for at ændringerne skal træde i kraft
- zoom export:
- (Når slukket er kortene eksporteret
- og kopieret i 100% størrelse og uden rotation)
+ app language:
+ Note: Du skal genstarte
+ MSE for at ændringerne
+ skal træde i kraft
+ zoom export:
+ (Når slukket er kortene
+ eksporteret og kopieret i 100%
+ størrelse og uden rotation)
# apprentice export
set code: En sætkode er to bogstaver, som Apprentice bruger til at skelne imellem sættene
@@ -626,7 +629,9 @@ button:
high quality: &Opløsning i høj kvalitet
show lines: Vis &linier omkring felter
show editing hints: Vis bokse og hints for &redigering
- zoom export: Brug zoom og rotationsfunktioner under e&ksport
+ zoom export:
+ Brug zoom og rotationsfunktioner
+ under e&ksport
spellcheck enabled: Vis stavefejl på kort
check now: Tjek &Nu!
always: Altid
diff --git a/data/de.mse-locale/locale b/data/de.mse-locale/locale
index 949360947..53938e32b 100644
--- a/data/de.mse-locale/locale
+++ b/data/de.mse-locale/locale
@@ -239,11 +239,12 @@ help:
number of packs: Die Anzahl der zu generierenden %ss
# Preferences
- app language:
- Bitte starten Sie MSE neu, damit die Änderungen wirksam werden.
- zoom export:
+ app language:
+ Bitte starten Sie MSE neu,
+ damit die Änderungen wirksam werden.
+ zoom export:
(Wenn ausgeschaltet, werden die
- Karten normal exportiert)
+ Karten normal exportiert)
# apprentice export
set code: Der zweiteilige Code wird vom Rohling genutzt, um auf eine Edition zu verweisen.
@@ -626,7 +627,9 @@ button:
high quality: &High-quality-Rendern
show lines: Hilfslinien anzeigen
show editing hints: Zeigt Hilfen beim B&earbeiten an
- zoom export: Zoom- und Dreheinstellungen beim Export verwenden
+ zoom export:
+ Zoom- und Dreheinstellungen
+ beim Export verwenden
spellcheck enabled: Rechtschreibfehler auf Karten anzeigen
check now: &Jetzt überprüfen
always: Immer (empfohlen)
diff --git a/data/en.mse-locale/locale b/data/en.mse-locale/locale
index 1e2c6b0cf..b2f5f0e0c 100644
--- a/data/en.mse-locale/locale
+++ b/data/en.mse-locale/locale
@@ -239,11 +239,13 @@ help:
number of packs: The number of %ss to generate
# Preferences
- app language:
- Note: You must restart MSE for the changes to take effect.
- zoom export:
- (When off, the cards are exported
- and copied at 100% size and normal rotation)
+ app language:
+ Note: You must restart MSE
+ for the changes to take effect.
+ zoom export:
+ (When off, the cards are
+ exported and copied at 100%
+ size and normal rotation)
# apprentice export
set code: A set code is a two character code that is used by Apprentice to refer to a set.
@@ -626,7 +628,9 @@ button:
high quality: &High quality rendering
show lines: Show &lines around fields
show editing hints: Show boxes and hints for &editing
- zoom export: Use Viewer zoom and rotation settings when e&xporting
+ zoom export:
+ Use Viewer zoom and rotation
+ settings when e&xporting
spellcheck enabled: Show &spelling errors on cards
check now: Check &Now
always: Always
diff --git a/data/es.mse-locale/locale b/data/es.mse-locale/locale
index 1a1445d42..edbb5dfc0 100644
--- a/data/es.mse-locale/locale
+++ b/data/es.mse-locale/locale
@@ -239,10 +239,13 @@ help:
number of packs: Número de %ss a generar
# Preferences
- app language:
- Note: Debes reiniciar MSE para que los cambios hagan efecto.
- zoom export:
- (Cuando está desactivado, las cartas se exportan en una orientación normal)
+ app language:
+ Note: Debes reiniciar MSE
+ para que los cambios hagan efecto.
+ zoom export:
+ (Cuando está desactivado,
+ las cartas se exportan en
+ una orientación normal)
# apprentice export
set code: Un código de Set es un código de dos caracteres que usa el Apprentice para referirse a un Set.
@@ -627,7 +630,9 @@ button:
high quality: &Renderización de alta calidad
show lines: Mostrar &líneas alrededor de los campos
show editing hints: Mostrar cajas y pistas para &editar
- zoom export: Usar las configuraciones rotación cuando se e&xporte
+ zoom export:
+ Usar las configuraciones
+ rotación cuando se e&xporte
spellcheck enabled: Mostrar errores de &ortografía en las cartas
check now: Buscar &ahora
always: Siempre
diff --git a/data/fr.mse-locale/locale b/data/fr.mse-locale/locale
index 864d28d25..a81aa99a8 100644
--- a/data/fr.mse-locale/locale
+++ b/data/fr.mse-locale/locale
@@ -239,11 +239,13 @@ help:
number of packs: Le nombre de %ss à générer
# Preferences
- app language:
- Note: Vous devez redémarrer MSE pour que le changement prenne effet.
- zoom export:
- (Quand l'option est décochée, les cartes sont exportées
- à 100% de leur taille et dans leur rotation normale.)
+ app language:
+ Note: Vous devez redémarrer MSE
+ pour que le changement prenne effet.
+ zoom export:
+ (Quand l'option est décochée, les
+ cartes sont exportées à 100% de leur
+ taille et dans leur rotation normale.)
# apprentice export
set code: Un Set Code est un code à 2 caractères utilisé par le logiciel pour référencer le Set
@@ -627,7 +629,9 @@ button:
high quality: Rendu haute qualité
show lines: Afficher les lignes autour des champs
show editing hints: Afficher les étiquettes et les conseils pour l'edition
- zoom export: Utiliser les paramètres de zoom et de rotation lors de l'exportation
+ zoom export:
+ Utiliser les paramètres de zoom et
+ de rotation lors de l'exportation
spellcheck enabled: Afficher les fautes d'orthographe sur les cartes
check now: &Vérifier maintenant
always: Toujours
diff --git a/data/it.mse-locale/locale b/data/it.mse-locale/locale
index 1a605a005..8342070b8 100644
--- a/data/it.mse-locale/locale
+++ b/data/it.mse-locale/locale
@@ -239,11 +239,13 @@ help:
number of packs: Il numero di %ss per generare
# Preferences
- app language:
- Nota: Devi riavviare MSE perchè le modifiche abbiano effetto.
- zoom export:
- (Se disattivato, le carte sono esportate e copiate
- al 100% della grandezza e con orientamento normale)
+ app language:
+ Nota: Devi riavviare MSE perchè
+ le modifiche abbiano effetto.
+ zoom export:
+ (Se disattivato, le carte sono
+ esportate e copiate al 100% della
+ grandezza e con orientamento normale)
# apprentice export
set code: Un set code è un codice di due caratteri usato da Apprentice come riferimento ad un set.
@@ -626,7 +628,9 @@ button:
high quality: Rendering ad alta qualità (&H)
show lines: Mostra &linee attorno ai campi
show editing hints: Mostra suggerimenti per le &modifiche
- zoom export: usa le impostazioni di zoom e rotazione quando e&sporti
+ zoom export:
+ usa le impostazioni di zoom
+ e rotazione quando e&sporti
spellcheck enabled: Mostra gli errori di ortografia sulle carte
check now: Controlla ora (&N)
always: Sempre
diff --git a/data/jp.mse-locale/locale b/data/jp.mse-locale/locale
index eb2a7f098..8b4bdec62 100644
--- a/data/jp.mse-locale/locale
+++ b/data/jp.mse-locale/locale
@@ -239,9 +239,10 @@ help:
number of packs: 生成する %ss の数
# Preferences
- app language:
- 注: 変更を適用するためにはMagic Set Editorを再起動する必要があります。
- zoom export:
+ app language:
+ 注: 変更を適用するためにはMagic Set Editor
+ を再起動する必要があります。
+ zoom export:
(このチェック・ボックスがオフの場合、
エクスポートされる画像に回転やズームは適用されません)
diff --git a/data/ko.mse-locale/locale b/data/ko.mse-locale/locale
index 46b96c659..0c46f1cff 100644
--- a/data/ko.mse-locale/locale
+++ b/data/ko.mse-locale/locale
@@ -241,10 +241,12 @@ help:
number of packs: The number of %ss to generate
# Preferences
- app language:
- 참고: 변경 사항을 적용하려면 MSE를 다시 시작해야 합니다.
- zoom export:
- 끄면 카드가 100% 크기 및 일반 회전으로 내보내지고 복사됩니다.
+ app language:
+ 참고: 변경 사항을 적용하려면
+ MSE를 다시 시작해야 합니다.
+ zoom export:
+ 끄면 카드가 100% 크기 및 일반
+ 회전으로 내보내지고 복사됩니다.
# apprentice export
set code: 세트 코드는 Apprentice이 세트를 참조하는 데 사용하는 두 문자 코드입니다.
@@ -627,7 +629,9 @@ button:
high quality: 고품질 렌더링
show lines: 필드 주위에 선 표시
show editing hints: 편집에 대한 힌트 표시
- zoom export: 이미지를 내보낼 때 확대/축소 및 회전 옵션 사용
+ zoom export:
+ 이미지를 내보낼 때 확대/축소
+ 및 회전 옵션 사용
spellcheck enabled: 철자 오류 표시
check now: 지금 확인하세요
always: 언제나
diff --git a/data/magic.mse-game/language_map b/data/magic.mse-game/language_map
index 92aba6431..67d9b90fd 100644
--- a/data/magic.mse-game/language_map
+++ b/data/magic.mse-game/language_map
@@ -725,7 +725,7 @@ languages := [
pt_separator : "/"
supertype_separator : " "
type_separator : " — "
- subtype_separator : " "
+ subtype_separator : " "
keyword_types : ["old","core","expert","pseudo","action","custom"]
is_artifact : match@(match: "(?i)Artifact")
@@ -1461,7 +1461,7 @@ languages := [
supertype_separator : " "
type_separator : " — "
super_spacer : true
- subtype_separator : " "
+ subtype_separator : " "
keyword_types : ["viejo","núcleo","experto","seudo","acción","personalizado"]
is_artifact : match@(match: "(?i)Artefacto")
@@ -2874,7 +2874,7 @@ languages := [
supertype_separator : " "
type_separator : " — "
super_spacer : true
- subtype_separator : " "
+ subtype_separator : " "
keyword_types : ["vecchio","nucleo","esperto","pseudo","azione","personalizzato"]
is_artifact : match@(match: "(?i)Artefatto")
@@ -3579,7 +3579,7 @@ languages := [
pt_separator : "/"
supertype_separator : ""
type_separator : " — "
- subtype_separator : "・"
+ subtype_separator : "・"
keyword_types : ["古い","中核","習熟","疑似","アクション","パーソナライズされた"]
is_artifact : match@(match: "(?i)アーティファクト")
@@ -4356,7 +4356,7 @@ languages := [
supertype_separator : " "
type_separator : " — "
super_spacer : true
- subtype_separator : " "
+ subtype_separator : " "
keyword_types : ["늙은","핵심","숙련된","가짜","행동","맞춤형"]
is_artifact : match@(match: "(?i)마법물체")
@@ -5026,7 +5026,7 @@ languages := [
supertype_separator : " "
type_separator : " — "
super_spacer : true
- subtype_separator : " "
+ subtype_separator : " "
keyword_types : ["velho","núcleo","perito","pseudo","ação","personalizado"]
is_artifact : match@(match: "(?i)Artefato")
@@ -5735,7 +5735,7 @@ languages := [
supertype_separator : " "
type_separator : " — "
super_spacer : true
- subtype_separator : " "
+ subtype_separator : " "
keyword_types : ["старый","ядро","экспертный","псевдо","действие","персонализированный"]
is_artifact : match@(match: "(?i)Артефакт")
@@ -7805,7 +7805,7 @@ languages := [
pt_separator : "/"
supertype_separator : " "
type_separator : " — "
- subtype_separator : " "
+ subtype_separator : " "
keyword_types : ["old","core","expert","pseudo","action","custom"]
],
"English (Canadian)": [
@@ -7814,7 +7814,7 @@ languages := [
pt_separator : "/"
supertype_separator : " "
type_separator : " — "
- subtype_separator : " "
+ subtype_separator : " "
keyword_types : ["old","core","expert","pseudo","action","custom"]
]
]
diff --git a/data/magic.mse-game/script b/data/magic.mse-game/script
index a5b24120a..5c85007bc 100644
--- a/data/magic.mse-game/script
+++ b/data/magic.mse-game/script
@@ -1106,10 +1106,9 @@ super_type_filter := {
"<{tag}>{input}{tag}>"
}
-break_subtypes := split_text@(match: " +|[^<]*", include_empty:false)
+break_subtypes := split_text@(match: "[^<]*|?word-list-[^>]*>", include_empty:false) # splitting at word-list tags is for backwards compatibility, when atom-sep was not yet inserted everywhere.
break_supertypes := split_text@(match: "[^<]*", include_empty:false)
sub_type_filter := {
- input := remove_tag(tag: "{part}"
+ checked_first := false
+ (for each part in parts do
+ if trim(part) == "" then ""
+ else if not checked_first then
+ (checked_first := true; "{part}")
else
languages[lang_name()].subtype_separator + "{part}"
) +
diff --git a/data/magic.mse-game/statistics_script b/data/magic.mse-game/statistics_script
index 3e1866806..1ef204eca 100644
--- a/data/magic.mse-game/statistics_script
+++ b/data/magic.mse-game/statistics_script
@@ -238,7 +238,7 @@ face_color_category_statistic :=
else if black then all_en_space_statistic(lang_setting("black"))
else if red then all_en_space_statistic(lang_setting("red"))
else if green then all_en_space_statistic(lang_setting("green"))
- else input
+ else all_en_space_statistic(lang_setting("colorless"))
}
# Omniverse colors
@@ -597,13 +597,9 @@ average_opening_hand_statistic :=
}
global_variable_average_opening_hand_statistic :=
{
- set_count := length(set.cards)-1
- if set_count < 0 then "" else (
- cards := for x from 0 to set_count do (if trim_from_draw_statistic(card: set.cards[x]) then [] else [set.cards[x]])
- card_count := length(cards)-1
- card_count_real := to_number(card_count+1)
- if card_count < 6 then lang_setting("message_drops_no_cards") else (
+ if length(set.cards) < 1 then "" else (
+ card_count := 0
lands := 0
manaartifacts := 0
nonmanaartifacts := 0
@@ -614,19 +610,36 @@ global_variable_average_opening_hand_statistic :=
sorceries := 0
instants := 0
- for x from 0 to card_count do
+ is_land := lang_setting("is_land")
+ is_artifact := lang_setting("is_artifact")
+ is_enchantment := lang_setting("is_enchantment")
+ is_planeswalker := lang_setting("is_planeswalker")
+ is_battle := lang_setting("is_battle")
+ is_creature := lang_setting("is_creature")
+ is_sorcery := lang_setting("is_sorcery")
+ is_instant := lang_setting("is_instant")
+
+ for each c in set.cards do
(
- c := cards[x]
- if has_type_statistic(card:c, "land") then lands := lands + 1
- if has_type_statistic(card:c, "artifact") then (if mana_production_list_statistic(card: c, check_type: "nonland") == "" then (nonmanaartifacts := nonmanaartifacts + 1) else (manaartifacts := manaartifacts + 1))
- if has_type_statistic(card:c, "enchantment") then enchantments := enchantments + 1
- if has_type_statistic(card:c, "planeswalker") then planeswalkers := planeswalkers + 1
- if has_type_statistic(card:c, "battle") then battles := battles + 1
- if has_type_statistic(card:c, "creature") then creatures := creatures + 1
- if has_type_statistic(card:c, "sorcery") then sorceries := sorceries + 1
- if has_type_statistic(card:c, "instant") then instants := instants + 1
+ if not trim_from_draw_statistic(card:c) then
+ (
+ type := c.type + (if check_2_statistic(card:c) then " " + c.type_2 else "")
+ card_count := card_count + 1
+ if is_land(type) then lands := lands + 1
+ if is_artifact(type) then (if mana_production_list_statistic(card: c, check_type: "nonland") == "" then (nonmanaartifacts := nonmanaartifacts + 1) else (manaartifacts := manaartifacts + 1))
+ if is_enchantment(type) then enchantments := enchantments + 1
+ if is_planeswalker(type) then planeswalkers := planeswalkers + 1
+ if is_battle(type) then battles := battles + 1
+ if is_creature(type) then creatures := creatures + 1
+ if is_sorcery(type) then sorceries := sorceries + 1
+ if is_instant(type) then instants := instants + 1
+ )
+ ""
)
+ if card_count < 6 then lang_setting("message_drops_no_cards") else (
+
+ card_count_real := to_number(card_count)
lands_average := format_average_statistic(7.0 * to_number(lands) / card_count_real)
manaartifacts_average := format_average_statistic(7.0 * to_number(manaartifacts) / card_count_real)
nonmanaartifacts_average := format_average_statistic(7.0 * to_number(nonmanaartifacts) / card_count_real)
@@ -659,10 +672,20 @@ format_average_statistic :=
# Rarities.
rarity_statistic :=
{
- if card.shape == "Token" or card.shape == "token" or lang_setting("is_token")(card.super_type) then all_en_space_statistic(lang_setting("token"))
+ if is_tokenish_statistics(card.shape) or lang_setting("is_token")(card.super_type) then all_en_space_statistic(lang_setting("token"))
else if lang_setting("is_land")(card.super_type) and lang_setting("is_basic")(card.super_type) then all_en_space_statistic(lang_setting("basic_land"))
else all_en_space_statistic(lang_setting(replace_space_statistic(card.rarity)))
}
+is_tokenish_statistics :=
+{
+ input := to_lower(input)
+ contains(input, match: "token")
+ or contains(input, match: "emblem")
+ or contains(input, match: "designation")
+ or contains(input, match: "rulestip")
+ or contains(input, match: "counter")
+ or contains(input, match: "checklist")
+}
# Watermarks
watermark_statistic :=
@@ -1078,7 +1101,7 @@ en_space_statistic := replace@(match: " ", replace: " ", in_context:"[^>]