mirror of
https://github.com/amyinspace/MagicSetEditor2.git
synced 2026-06-10 04:57:00 -04:00
fe81a40617
git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@1419 0fc631ac-6414-0410-93d0-97cfa31319b6
188 lines
6.5 KiB
Plaintext
188 lines
6.5 KiB
Plaintext
# the rule text filter
|
|
# - adds continuous symbols
|
|
# - adds counter symbols
|
|
# - adds equipment symbols
|
|
# - adds field symbols
|
|
# - adds quickplay symbols
|
|
# - adds ritual symbols
|
|
# - adds level symbols
|
|
# - adds infinity symbols
|
|
# - makes text in parentheses italic
|
|
text_filter :=
|
|
# step 1 : remove all automatic tags
|
|
tag_remove_rule(tag: "<sym-auto>") +
|
|
# step 2 : expand shortcut words ~ and CARDNAME
|
|
replace_rule(
|
|
match: "~|~THIS~|CARDNAME",
|
|
in_context: "(^|[[:space:]]|\\()<match>", # TODO: Allow any punctuation before
|
|
replace: "<atom-cardname></atom-cardname>"
|
|
) +
|
|
# step 3 : fill in the cardname atom field
|
|
tag_contents_rule(
|
|
tag: "<atom-cardname>",
|
|
contents: { if card.name=="" then "CARDNAME" else card.name }
|
|
) +
|
|
# step 4 : symbols
|
|
replace_rule(
|
|
match: "[|@|*|?|]",
|
|
replace: "<sym-auto>&</sym-auto>" );
|
|
level_filter :=
|
|
# step 1 : remove all automatic tags
|
|
tag_remove_rule(tag: "<sym-auto>") +
|
|
# step 2 : symbols
|
|
replace_rule(
|
|
match: "[|%|!|+|&|$|#|*|^|]",
|
|
replace: "<sym-auto>&</sym-auto>" );
|
|
a_and_d_filter :=
|
|
# step 1 : remove all automatic tags
|
|
tag_remove_rule(tag: "<sym-auto>") +
|
|
# step 2 : infinity
|
|
replace_rule(
|
|
match: "@",
|
|
replace: "<sym-auto>&</sym-auto>" ) +
|
|
# step 3 : question mark
|
|
replace_rule(
|
|
match: "\\?",
|
|
replace: "<sym-auto>&</sym-auto>" );
|
|
copyright_filter :=
|
|
# step 1 : trademark symbol
|
|
replace_rule(
|
|
match: "TM",
|
|
replace: "™") +
|
|
# step 2 : copyright symbol
|
|
replace_rule(
|
|
match: "CR|\\(C\\)",
|
|
replace: "©")
|
|
|
|
# the flavor text filter
|
|
flavor_text_filter :=
|
|
# step 1 : remove italic tags
|
|
tag_remove_rule(tag: "<i-flavor>") +
|
|
# step 2 : surround by <i> tags
|
|
{ "<i-flavor>" + input + "</i-flavor>" };
|
|
|
|
type_over_list := replace_rule(match:" ?-$", replace:"")
|
|
|
|
monster_type_filter :=
|
|
tag_remove_rule(tag: "<word-list-") +
|
|
type_over_list +
|
|
{ "<word-list-monster>{input}</word-list-monster>" }
|
|
|
|
space_to_wltags := replace_rule(match:"( +|<soft> </soft>)",
|
|
replace:{"</word-list-{list_type}>{_1}<word-list-{list_type}>"})
|
|
|
|
card_class_filter :=
|
|
tag_remove_rule(tag: "<word-list-") +
|
|
type_over_list +
|
|
{ "<word-list-card>{input}</word-list-card>" }
|
|
|
|
# Determine type of card
|
|
card_type := {
|
|
if card.attribute == "spell" then "spell card"
|
|
else if contains(card.level, match:"Spell Card") then "spell card"
|
|
else if card.attribute == "trap" then "trap card"
|
|
else if contains(card.level, match:"Trap Card") then "trap card"
|
|
else if card.type1 == "<word-list-monster>Divine-Beast</word-list-monster>" then "obelisk"
|
|
else if card.type1 == "<word-list-monster>Legendary Dragon</word-list-monster>" then "legendary dragons"
|
|
else if contains(card.type2, match:"Fusion") then "fusion monster"
|
|
else if contains(card.type2, match:"Ritual") then "ritual monster"
|
|
else if contains(card.type2, match:"Dark Synchro") then "dark synchro monster"
|
|
else if contains(card.type2, match:"Dark Tuner") then "effect monster"
|
|
else if contains(card.type2, match:"Synchro") then "synchro monster"
|
|
else if contains(card.type2, match:"Effect") then "effect monster"
|
|
else if contains(card.type2, match:"Spirit") then "effect monster"
|
|
else if contains(card.type2, match:"Toon") then "effect monster"
|
|
else if contains(card.type2, match:"Tuner") then "effect monster"
|
|
else if contains(card.type2, match:"Union") then "effect monster"
|
|
else "normal monster"
|
|
}
|
|
# Default 'attribute' of card
|
|
attribute := {
|
|
if is_spell_card() then "Spell"
|
|
else if is_trap_card() then "Trap"
|
|
else "none"
|
|
}
|
|
# Default foil for a card
|
|
foil := {
|
|
if card.rarity == "super rare" then "holo image"
|
|
else if card.rarity == "ultra rare" then "holo image"
|
|
else if card.rarity == "secret rare" then "secret holo image"
|
|
else if card.rarity == "ultimate rare" then "holo image"
|
|
else if card.rarity == "parallel rare" then "parallel holo image"
|
|
else if card.rarity == "gold tech" then "gold tech holo image"
|
|
else if card.rarity == "promo" then "secret holo image"
|
|
else "none"
|
|
}
|
|
|
|
############### Type of card
|
|
|
|
nm_ext_querry := {
|
|
if set.gods_have_effects == "no" then is_normal_monster_extended(value)
|
|
else is_normal_monster(value)
|
|
}
|
|
is_nmonster := {
|
|
card.card_type == "spell card" or
|
|
card.card_type == "trap card"
|
|
}
|
|
is_monster := {
|
|
card.card_type == "normal monster" or
|
|
card.card_type == "effect monster" or
|
|
card.card_type == "ritual monster" or
|
|
card.card_type == "dark synchro monster" or
|
|
card.card_type == "synchro monster" or
|
|
card.card_type == "fusion monster" or
|
|
card.card_type == "token monster" or
|
|
card.card_type == "obelisk" or
|
|
card.card_type == "slifer" or
|
|
card.card_type == "ra" or
|
|
card.card_type == "legendary dragons"
|
|
}
|
|
is_normal_monster_extended := {
|
|
card.card_type == "normal monster" or
|
|
card.card_type == "obelisk" or
|
|
card.card_type == "slifer" or
|
|
card.card_type == "ra" or
|
|
card.card_type == "legendary dragons"
|
|
}
|
|
is_normal_monster := {
|
|
card.card_type == "normal monster"
|
|
}
|
|
is_spell_card := {
|
|
card.card_type == "spell card" or
|
|
card.attribute == "spell" or
|
|
card.level == "Spell"
|
|
}
|
|
is_trap_card := {
|
|
card.card_type == "trap card" or
|
|
card.attribute == "trap" or
|
|
card.level == "Trap"
|
|
}
|
|
############### Determine Card Position
|
|
|
|
type_sort := {
|
|
type := card.card_type
|
|
if chosen(choice:"normal monster", type) then "A"
|
|
else if chosen(choice:"ra", type) then "B"
|
|
else if chosen(choice:"effect monster", type) then "C"
|
|
else if chosen(choice:"slifer", type) then "D"
|
|
else if chosen(choice:"ritual monster", type) then "E"
|
|
else if chosen(choice:"obelisk", type) then "F"
|
|
else if chosen(choice:"fusion monster", type) then "G"
|
|
else if chosen(choice:"synchro monster", type) then "H"
|
|
else if chosen(choice:"dark synchro monster", type) then "I"
|
|
else if chosen(choice:"token monster", type) then "J"
|
|
else if chosen(choice:"legendary dragons", type) then "K"
|
|
else if chosen(choice:"spell card", type) then "L"
|
|
else if chosen(choice:"trap card", type) then "M"
|
|
else "N"
|
|
}
|
|
|
|
pos_of_card := {
|
|
position(
|
|
of: card
|
|
in: set
|
|
order_by: {
|
|
type_sort() + card.monster_type + card.name + card.attribute
|
|
}) + 1
|
|
}
|