mirror of
https://github.com/amyinspace/MagicSetEditor2.git
synced 2026-06-10 04:57:00 -04:00
Changes to Magic:
Big keyword update. Update to allow new flip card technology. Update to allow 4-ability planeswalkers, textless lands, and levelers. More statistics that are related to card type. Custom subtype tracking for all card types. Planeswalker types included. Creature type updates. New symbol variation for set symbol watermarks; more like what appears on real cards. Updated card sorting. git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@1494 0fc631ac-6414-0410-93d0-97cfa31319b6
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
mse version: 0.3.8
|
||||
full name: Magic The Gathering, card blend utilities
|
||||
version: 2009-04-09
|
||||
version: 2010-04-07
|
||||
|
||||
# This file doesn't do anything, other files in this directory can be included
|
||||
# in game/style files:
|
||||
@@ -9,4 +9,4 @@ version: 2009-04-09
|
||||
# blend-scripts Defines card_hybrid, family of functions
|
||||
# Use in init script of style
|
||||
# card-backgrounds Uses the blend scripts to make choice images for card backgrounds
|
||||
# Template names can be redefined
|
||||
# Template names can be redefined
|
||||
|
||||
@@ -404,6 +404,128 @@ flip_pt_hybrid2 := [
|
||||
overlay: overlay_hybrid
|
||||
]
|
||||
|
||||
|
||||
########################################################################
|
||||
# P/T boxes for leveler cards
|
||||
########################################################################
|
||||
|
||||
leveler_pt_hybrid := [
|
||||
radial: [
|
||||
0: { template("c") }
|
||||
1: { template(colors[0]) }
|
||||
2: { template(colors[1]) }
|
||||
3: { linear_blend(
|
||||
image1: template(colors[1])
|
||||
image2: template(colors[2])
|
||||
x1: 0, y1: 0
|
||||
x2: 0, y2: 1
|
||||
)}
|
||||
4: { template(colors[2]) }
|
||||
5: { template(colors[2]) }
|
||||
6: { template(colors[2]) }
|
||||
7: { template(colors[4]) }
|
||||
]
|
||||
horizontal: horizontal_pt_hybrid
|
||||
vertical: [
|
||||
1: { template(colors[0]) }
|
||||
2: { template(colors[1]) }
|
||||
3: { linear_blend(
|
||||
image1: template(colors[1])
|
||||
image2: template(colors[2])
|
||||
x1: 0, y1: 0
|
||||
x2: 0, y2: 1
|
||||
)}
|
||||
4: { template(colors[2]) }
|
||||
5: { template(colors[3]) }
|
||||
6: { linear_blend(
|
||||
image1: template(colors[3])
|
||||
image2: template(colors[4])
|
||||
x1: 0, y1: 0
|
||||
x2: 0, y2: 0.25
|
||||
)}
|
||||
7: { template(colors[5]) }
|
||||
]
|
||||
overlay: overlay_hybrid
|
||||
]
|
||||
|
||||
leveler_pt_hybrid2 := [
|
||||
radial: [
|
||||
0: { template("c") }
|
||||
1: { template(colors[0]) }
|
||||
2: { template(colors[1]) }
|
||||
3: { template(colors[2]) }
|
||||
4: { template(colors[2]) }
|
||||
5: { template(colors[2]) }
|
||||
6: { template(colors[2]) }
|
||||
7: { template(colors[4]) }
|
||||
]
|
||||
horizontal: horizontal_pt_hybrid
|
||||
vertical: [
|
||||
1: { template(colors[0]) }
|
||||
2: { template(colors[1]) }
|
||||
3: { template(colors[2]) }
|
||||
4: { linear_blend(
|
||||
image1: template(colors[2])
|
||||
image2: template(colors[3])
|
||||
x1: 0, y1: 0
|
||||
x2: 0, y2: 1
|
||||
)}
|
||||
5: { linear_blend(
|
||||
image1: template(colors[3])
|
||||
image2: template(colors[4])
|
||||
x1: 0, y1: 0
|
||||
x2: 0, y2: 0.75
|
||||
)}
|
||||
6: { template(colors[4]) }
|
||||
7: { template(colors[5]) }
|
||||
]
|
||||
overlay: overlay_hybrid
|
||||
]
|
||||
|
||||
leveler_pt_hybrid3 := [
|
||||
radial: [
|
||||
0: { template("c") }
|
||||
1: { template(colors[0]) }
|
||||
2: { template(colors[1]) }
|
||||
3: { template(colors[2]) }
|
||||
4: { template(colors[2]) }
|
||||
5: { linear_blend(
|
||||
image1: template(colors[2])
|
||||
image2: template(colors[3])
|
||||
x1: 0, y1: 0
|
||||
x2: 0, y2: 1
|
||||
)}
|
||||
6: { linear_blend(
|
||||
image1: template(colors[2])
|
||||
image2: template(colors[3])
|
||||
x1: 0, y1: 0
|
||||
x2: 0, y2: 1
|
||||
)}
|
||||
7: { template(colors[4]) }
|
||||
]
|
||||
horizontal: horizontal_pt_hybrid
|
||||
vertical: [
|
||||
1: { template(colors[0]) }
|
||||
2: { template(colors[1]) }
|
||||
3: { template(colors[2]) }
|
||||
4: { template(colors[3]) }
|
||||
5: { linear_blend(
|
||||
image1: template(colors[3])
|
||||
image2: template(colors[4])
|
||||
x1: 0, y1: 0
|
||||
x2: 0, y2: 0.5
|
||||
)}
|
||||
6: { linear_blend(
|
||||
image1: template(colors[4])
|
||||
image2: template(colors[5])
|
||||
x1: 0, y1: 0
|
||||
x2: 0, y2: 0.5
|
||||
)}
|
||||
7: { template(colors[5]) }
|
||||
]
|
||||
overlay: overlay_hybrid
|
||||
]
|
||||
|
||||
########################################################################
|
||||
# Textbox and typeline for FPM templates and Futureshifts
|
||||
########################################################################
|
||||
@@ -554,9 +676,21 @@ card_background := { color_background(type:"card", base_hybrid:card_hybrid)
|
||||
card_ptbox := { color_background(type:"pt", base_hybrid:pt_hybrid) }
|
||||
flip_ptbox := { color_background(type:"pt", base_hybrid:flip_pt_hybrid) }
|
||||
flip_ptbox2 := { color_background(type:"pt2", base_hybrid:flip_pt_hybrid2) }
|
||||
leveler_ptbox := { color_background(type:"pt", base_hybrid:leveler_pt_hybrid) }
|
||||
leveler_ptbox2 := { color_background(type:"pt", base_hybrid:leveler_pt_hybrid2) }
|
||||
leveler_ptbox3 := { color_background(type:"pt", base_hybrid:leveler_pt_hybrid3) }
|
||||
card_textbox := { color_background(type:"textbox", base_hybrid:textbox_hybrid) }
|
||||
card_typeline := { color_background(type:"typeline", base_hybrid:typeline_hybrid) }
|
||||
|
||||
flip_background := {
|
||||
linear_blend(
|
||||
image1: card_background(top)
|
||||
image2: card_background(bottom)
|
||||
x1: 0, y1: 0.4
|
||||
x2: 0, y2: 0.6
|
||||
)
|
||||
}
|
||||
|
||||
########################################################################
|
||||
# Font colors
|
||||
########################################################################
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
mse version: 0.3.6
|
||||
mse version: 0.3.8
|
||||
full name: Magic The Gathering, textbox watermarks
|
||||
version: 2008-05-21
|
||||
version: 2009-08-28
|
||||
|
||||
# This file doesn't do anything, other files in this directory can be included
|
||||
# in game/style files:
|
||||
# watermarks Includes references to the watermark images, to be used in a style file
|
||||
# watermarks Includes references to the watermark images, to be used in a style file
|
||||
|
||||
@@ -63,7 +63,7 @@ choice images:
|
||||
#symbol_variation(symbol: set.symbol, variation: "common")
|
||||
drop_shadow(offset_x: -0.01, offset_y: 0.03, blur_radius: 0.02, alpha: 1, color: rgb(0,0,0),
|
||||
enlarge(border_size: 0.03,
|
||||
symbol_variation(symbol: set.symbol, border_radius: 0, fill_color:rgb(255,255,255), border_color:rgb(0,0,0))
|
||||
symbol_variation(symbol: set.symbol, variation: "watermark")
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -63,7 +63,7 @@ choice images:
|
||||
#symbol_variation(symbol: set.symbol, variation: "common")
|
||||
drop_shadow(offset_x: -0.01, offset_y: 0.03, blur_radius: 0.02, alpha: 1, color: rgb(0,0,0),
|
||||
enlarge(border_size: 0.03,
|
||||
symbol_variation(symbol: set.symbol, border_radius: 0, fill_color:rgb(255,255,255), border_color:rgb(0,0,0))
|
||||
symbol_variation(symbol: set.symbol, variation: "watermark")
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
|
||||
############################################################## Card fields
|
||||
############################################################## Card fields
|
||||
|
||||
############################# Automatic fields
|
||||
|
||||
@@ -17,6 +16,7 @@ card field:
|
||||
choice: planeswalker
|
||||
choice: shifted
|
||||
choice: rulestip
|
||||
choice: leveler
|
||||
script:
|
||||
stylesheet # indicate that this value should be updated when the stylesheet changes
|
||||
card_shape() # determined by the style
|
||||
@@ -32,7 +32,6 @@ card field:
|
||||
card list width: 150
|
||||
description: The name of the card
|
||||
script: if contains(card.shape, match:"split") then card.name + " // " + card.name_2 else card.name
|
||||
|
||||
############################# Background stuff
|
||||
card field:
|
||||
type: color
|
||||
@@ -90,7 +89,7 @@ card field:
|
||||
name: reversed
|
||||
enabled: { card_color_color_count(card.card_color) >= 2 and not chosen(choice:"overlay",card.card_color) }
|
||||
script: card_color_filter(value)
|
||||
default: card_color(casting_cost: card.casting_cost, rules_text: card.rule_text, type: card.super_type, watermark: card.watermark, card_name: card.name)
|
||||
default: card_color(casting_cost: card.casting_cost, rules_text: card.rule_text, type: card.super_type, watermark: card.watermark, card_name: card.name, default: "colorless")
|
||||
show statistics: false
|
||||
description: The frame of the card, used to indicate card color.
|
||||
|
||||
@@ -153,6 +152,7 @@ card field:
|
||||
icon: stats/card_type.png
|
||||
position hint: 30
|
||||
script: super_type_filter(value)
|
||||
show statistics: false
|
||||
card field:
|
||||
type: text
|
||||
name: sub type
|
||||
@@ -265,6 +265,17 @@ card field:
|
||||
show statistics: false
|
||||
description: The loyalty cost for the fifth ability of a planeswalker
|
||||
default: card.toughness_2 #For back compatibility with past templates. Take out a couple versions after 0.3.8
|
||||
############################# Levels
|
||||
card field:
|
||||
type: text
|
||||
name: level 1
|
||||
description: The first level of a creature
|
||||
show statistics: false
|
||||
card field:
|
||||
type: text
|
||||
name: level 2
|
||||
description: The second level of a creature
|
||||
show statistics: false
|
||||
############################# PT
|
||||
card field:
|
||||
type: text
|
||||
@@ -382,7 +393,7 @@ card field:
|
||||
name: reversed
|
||||
enabled: { card_color_color_count(card.card_color) >= 2 and not chosen(choice:"overlay",card.card_color_2) }
|
||||
script: card_color_filter(value)
|
||||
default: card_color(casting_cost: card.casting_cost_2, type: card.super_type_2, rules_text: card.rule_text_2, watermark: card.watermark_2, card_name: card.name_2)
|
||||
default: card_color(casting_cost: card.casting_cost_2, type: card.super_type_2, rules_text: card.rule_text_2, watermark: card.watermark_2, card_name: card.name_2, default: card.card_color)
|
||||
show statistics: false
|
||||
description: The frame of a card
|
||||
card field:
|
||||
@@ -462,6 +473,13 @@ card field:
|
||||
show statistics: false
|
||||
multi line: true
|
||||
description: The rules text of the card
|
||||
card field:
|
||||
type: text
|
||||
name: rule text 3
|
||||
script: text_filter(input: value, card_name: card.name)
|
||||
show statistics: false
|
||||
multi line: true
|
||||
description: The rules text of the card
|
||||
card field:
|
||||
type: text
|
||||
name: flavor text 2
|
||||
@@ -519,6 +537,35 @@ card field:
|
||||
card list name: P/T2
|
||||
show statistics: false
|
||||
description: Power/Toughness of a creature
|
||||
card field:
|
||||
type: text
|
||||
name: power 3
|
||||
icon: stats/power.png
|
||||
show statistics: false
|
||||
script: type_over_pt(value)
|
||||
description: The power of a creature
|
||||
card field:
|
||||
type: text
|
||||
name: toughness 3
|
||||
icon: stats/toughness.png
|
||||
show statistics: false
|
||||
description: The toughness of a creature
|
||||
card field:
|
||||
type: text
|
||||
name: pt 3
|
||||
save value: false
|
||||
script:
|
||||
combined_editor(
|
||||
field1: card.power_3,
|
||||
separator: language().pt_separator,
|
||||
field2: card.toughness_3,
|
||||
soft_before_empty: true,
|
||||
hide_when_empty: true
|
||||
)
|
||||
card list width: 50
|
||||
card list name: P/T3
|
||||
show statistics: false
|
||||
description: Power/Toughness of a creature
|
||||
card field:
|
||||
type: text
|
||||
name: illustrator 2
|
||||
|
||||
@@ -5,8 +5,8 @@ installer group: magic/game files
|
||||
icon: card-back.png
|
||||
position hint: 01
|
||||
|
||||
version: 2009-08-10
|
||||
depends on: magic-blends.mse-include 2007-09-23
|
||||
version: 2010-06-11
|
||||
depends on: magic-blends.mse-include 2010-04-07
|
||||
depends on: magic-watermarks.mse-include 2007-09-23
|
||||
|
||||
############################################################## The script
|
||||
@@ -15,6 +15,8 @@ init script: include file: script
|
||||
|
||||
############################################################## Lots of lists
|
||||
|
||||
################## There be dragons here. -Liosan ##########################
|
||||
|
||||
include file: card_fields
|
||||
include file: set_fields
|
||||
include file: statistics
|
||||
|
||||
@@ -127,7 +127,7 @@ keyword parameter type:
|
||||
|
||||
keyword parameter type:
|
||||
name: a
|
||||
match: [ ]*|[ ][an?]*
|
||||
match: [an?]*
|
||||
|
||||
############################# All Magic keywords
|
||||
# By JrEye and Neko_Asakami, Updated by Pichoro and Buttock1234
|
||||
@@ -266,7 +266,7 @@ keyword:
|
||||
keyword: Amplify
|
||||
match: Amplify <atom-param>number</atom-param>
|
||||
mode: expert
|
||||
reminder: As this card enters the battlefield, put {english_number_a(param1)} +1/+1 counter(s) on it for each {separate_words(spacer: " and/or ", card.sub_type)} card you reveal in your hand.
|
||||
reminder: As this creature enters the battlefield, put {english_number_a(param1)} +1/+1 counter(s) on it for each {separate_words(spacer: " and/or ", card.sub_type)} card you reveal in your hand.
|
||||
keyword:
|
||||
keyword: Double strike
|
||||
match: Double strike
|
||||
@@ -380,7 +380,7 @@ keyword:
|
||||
keyword: Ninjutsu
|
||||
match: Ninjutsu <atom-param>cost</atom-param>
|
||||
mode: expert
|
||||
reminder: {param1}, Return an unblocked attacker you control to hand: This card enters the battlefield from your hand tapped and attacking.
|
||||
reminder: {param1}, Return an unblocked attacker you control to hand: Put this card onto the battlefield from your hand tapped and attacking.
|
||||
keyword:
|
||||
keyword: Epic
|
||||
match: Epic
|
||||
@@ -405,7 +405,7 @@ keyword:
|
||||
keyword: Transmute
|
||||
match: Transmute <atom-param>cost</atom-param>
|
||||
mode: expert
|
||||
reminder: {param1}, Discard this card: Search your library for a card with the same converted mana cost as this card, reveal it, and put it into your hand. Then shuffle your library. Activate only as a sorcery.
|
||||
reminder: {param1}, Discard this card: Search your library for a card with the same converted mana cost as this card, reveal it, and put it into your hand. Then shuffle your library. Transmute only as a sorcery.
|
||||
keyword:
|
||||
keyword: Dredge
|
||||
match: Dredge <atom-param>number</atom-param>
|
||||
@@ -480,7 +480,7 @@ keyword:
|
||||
keyword: Deathtouch
|
||||
match: Deathtouch
|
||||
mode: core
|
||||
reminder: Creatures dealt damage by this creature are destroyed. You can divide this creature’s combat damage among any of the creatures blocking or blocked by it.
|
||||
reminder: Any amount of damage this deals to a creature is enough to destroy it.
|
||||
keyword:
|
||||
keyword: Reach
|
||||
match: Reach
|
||||
@@ -506,7 +506,7 @@ keyword:
|
||||
match: Fateseal <atom-param>number</atom-param>
|
||||
mode: action
|
||||
reminder:
|
||||
Look at the top {
|
||||
To fateseal {param1}, look at the top {
|
||||
if param1.value==1 then "card of an opponent’s library, then you may put it on the bottom of that player’s library."
|
||||
else "{english_number(param1)} cards of an opponent’s library, then put any number of them on the bottom of that player’s library and the rest on top in any order."
|
||||
}
|
||||
@@ -514,7 +514,7 @@ keyword:
|
||||
keyword: Transfigure
|
||||
match: Transfigure <atom-param>cost</atom-param>
|
||||
mode: expert
|
||||
reminder: {param1}, Sacrifice this creature: Search your library for a creature card with the same converted mana cost as this creature and have that card enter the battlefield. Then shuffle your library. Activate only as a sorcery.
|
||||
reminder: {param1}, Sacrifice this creature: Search your library for a creature card with the same converted mana cost as this creature and put that card onto the battlefield. Then shuffle your library. Transfigure only as a sorcery.
|
||||
keyword:
|
||||
keyword: Aura swap
|
||||
match: Aura swap <atom-param>cost</atom-param>
|
||||
@@ -544,7 +544,7 @@ keyword:
|
||||
keyword: Fortify
|
||||
match: Fortify <atom-param>cost</atom-param>
|
||||
mode: expert
|
||||
reminder: {param1}: Attach to target land you control. Fortify only as a sorcery. This card enters the battlefield unattached and stays in the battlefield if the land exits the battlefield.
|
||||
reminder: {param1}: Attach to target land you control. Fortify only as a sorcery. This card enters the battlefield unattached and stays on the battlefield if the land leaves.
|
||||
keyword:
|
||||
keyword: Grandeur
|
||||
match: Grandeur
|
||||
@@ -557,9 +557,9 @@ keyword:
|
||||
reminder: You may cast this spell for its evoke cost. If you do, it’s sacrificed when it enters the battlefield.
|
||||
keyword:
|
||||
keyword: Champion
|
||||
match: Champion<atom-param>a</atom-param><atom-param>name</atom-param>
|
||||
match: Champion <atom-param>a</atom-param> <atom-param>name</atom-param>
|
||||
mode: expert
|
||||
reminder: When this enters the battlefield, sacrifice it unless you exile another{param2} you control. When this exits the battlefield, return that card to the battlefield.
|
||||
reminder: When this enters the battlefield, sacrifice it unless you exile another {param2} you control. When this leaves the battlefield, return that card to the battlefield.
|
||||
keyword:
|
||||
keyword: Clash
|
||||
match: Clash
|
||||
@@ -619,7 +619,7 @@ keyword:
|
||||
keyword: Unearth
|
||||
match: Unearth <atom-param>cost</atom-param>
|
||||
mode: expert
|
||||
reminder: {param1}: Return this card from your graveyard to the battlefield. {if has_pt() then "It gains haste. " else "" }Exile it at the beginning of the end step or if it would exit the battlefield. Unearth only as a sorcery.
|
||||
reminder: {param1}: Return this card from your graveyard to the battlefield. {if has_pt() then "It gains haste. " else "" }Exile it at the beginning of the end step or if it would leave the battlefield. Unearth only as a sorcery.
|
||||
keyword:
|
||||
keyword: Devour
|
||||
match: Devour <atom-param>number</atom-param>
|
||||
@@ -645,3 +645,33 @@ keyword:
|
||||
match: Intimidate
|
||||
mode: core
|
||||
reminder: This creature can’t be blocked except by artifact creatures and/or creatures that share a color with it.
|
||||
keyword:
|
||||
keyword: Landfall
|
||||
match: Landfall
|
||||
mode: pseudo
|
||||
rules: Landfall — Whenever a land enters the battlefield under your control, [effect].
|
||||
keyword:
|
||||
keyword: Multikicker
|
||||
match: Multikicker <atom-param>cost</atom-param>
|
||||
mode: expert
|
||||
reminder: You may {for_mana_costs(add:"pay an additional ", param1)} any number of times as you cast this spell.
|
||||
keyword:
|
||||
keyword: Annihilator
|
||||
match: Annihilator <atom-param>number</atom-param>
|
||||
mode: expert
|
||||
reminder: Whenever this creature attacks, defending player sacrifices {english_number_a(param1)} permanent(s).
|
||||
keyword:
|
||||
keyword: Rebound
|
||||
match: Rebound
|
||||
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
|
||||
match: Totem armor
|
||||
mode: expert
|
||||
reminder: If enchanted creature 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>
|
||||
mode: expert
|
||||
reminder: {param1}: Put a level counter on this. Level up only as a sorcery.
|
||||
|
||||
@@ -14,6 +14,7 @@ languages := [
|
||||
is_land : match@(match: "(?i)Land")
|
||||
is_enchantment : match@(match: "(?i)Enchantment")
|
||||
is_spell : match@(match: "(?i)Instant|Sorcery")
|
||||
is_planeswalker : match@(match: "(?i)Planeswalker")
|
||||
],
|
||||
|
||||
Français: [
|
||||
@@ -28,6 +29,7 @@ languages := [
|
||||
is_land : match@(match: "(?i)Land")
|
||||
is_enchantment : match@(match: "(?i)Enchantment")
|
||||
is_spell : match@(match: "(?i)Instant|Sorcery")
|
||||
is_planeswalker : match@(match: "(?i)Planeswalker")
|
||||
]
|
||||
]
|
||||
|
||||
|
||||
+62
-50
@@ -1,5 +1,4 @@
|
||||
|
||||
############################################################## Localization
|
||||
############################################################## Localization
|
||||
|
||||
include file: language
|
||||
|
||||
@@ -153,6 +152,7 @@ card_color := {
|
||||
mana_color := mana_to_color(colors: color_filter(casting_cost), hybrid: color_filterH(casting_cost))
|
||||
if mana_color == "colorless" and is_land (type) then land_to_color(watermark)
|
||||
else if mana_color == "colorless" and is_artifact(type) then "artifact"
|
||||
else if mana_color == "colorless" and contains(card.shape, match:"flip") then default
|
||||
else mana_color
|
||||
)
|
||||
else text_color
|
||||
@@ -206,72 +206,75 @@ is_multicolor := { chosen(choice: "multicolor") and input != "artifact, multicol
|
||||
is_null_cost := { input == "" or input == "0" }
|
||||
is_hybrid_cost := { contains(card.casting_cost, match: "W/") or contains(card.casting_cost, match: "U/") or contains(card.casting_cost, match: "B/") or contains(card.casting_cost, match: "R/") or contains(card.casting_cost, match: "G/") }
|
||||
basic_land_sort := {
|
||||
if contains(card.name, match:"Plains") then "LB" # Plains
|
||||
else if contains(card.name, match:"Island") then "LC" # Islands
|
||||
else if contains(card.name, match:"Swamp") then "LD" # Swamps
|
||||
else if contains(card.name, match:"Mountain") then "LE" # Mountains
|
||||
else if contains(card.name, match:"Forest") then "LF" # Forests
|
||||
else "LA" # other basic lands
|
||||
if contains(card.name, match:"Plains") then "MB" # Plains
|
||||
else if contains(card.name, match:"Island") then "MC" # Islands
|
||||
else if contains(card.name, match:"Swamp") then "MD" # Swamps
|
||||
else if contains(card.name, match:"Mountain") then "ME" # Mountains
|
||||
else if contains(card.name, match:"Forest") then "MF" # Forests
|
||||
else "MA" # other basic lands
|
||||
}
|
||||
hybrid_color_pair_sort := {
|
||||
colors := sort_text(casting_cost, order: "<WUBRG>")
|
||||
if colors = "WU" then "HA"
|
||||
else if colors = "UB" then "HB"
|
||||
else if colors = "BR" then "HC"
|
||||
else if colors = "RG" then "HD"
|
||||
else if colors = "WG" then "HE"
|
||||
else if colors = "WB" then "HF"
|
||||
else if colors = "UR" then "HG"
|
||||
else if colors = "BG" then "HH"
|
||||
else if colors = "WR" then "HI"
|
||||
else if colors = "UG" then "HJ"
|
||||
else "HK"
|
||||
}
|
||||
multi_color_pair_sort := {
|
||||
colors := sort_text(casting_cost, order: "<WUBRG>")
|
||||
if colors = "WU" then "GA"
|
||||
else if colors = "UB" then "GB"
|
||||
else if colors = "BR" then "GC"
|
||||
else if colors = "RG" then "GD"
|
||||
else if colors = "GW" then "GE"
|
||||
else if colors = "WG" then "GE"
|
||||
else if colors = "WB" then "GF"
|
||||
else if colors = "UR" then "GG"
|
||||
else if colors = "BG" then "GH"
|
||||
else if colors = "RW" then "GI"
|
||||
else if colors = "GU" then "GJ"
|
||||
else if colors = "WR" then "GI"
|
||||
else if colors = "UG" then "GJ"
|
||||
else if contains(card.casting_cost, match:"/") then "GL"
|
||||
else "GK"
|
||||
}
|
||||
multi_color_pair_sort := {
|
||||
colors := sort_text(casting_cost, order: "<WUBRG>")
|
||||
if colors = "WU" then "FA"
|
||||
else if colors = "UB" then "FB"
|
||||
else if colors = "BR" then "FC"
|
||||
else if colors = "RG" then "FD"
|
||||
else if colors = "GW" then "FE"
|
||||
else if colors = "WB" then "FF"
|
||||
else if colors = "UR" then "FG"
|
||||
else if colors = "BG" then "FH"
|
||||
else if colors = "RW" then "FI"
|
||||
else if colors = "GU" then "FJ"
|
||||
else if contains(card.casting_cost, match:"/") then "FL"
|
||||
else "FK"
|
||||
}
|
||||
# A code for the color of the card
|
||||
color_of_card := {
|
||||
card_color := card.card_color
|
||||
casting_cost := card.casting_cost
|
||||
type := card.super_type
|
||||
if card.shape == "split" and
|
||||
card_color != card.card_color_2 then "H" # Diff Color Splits
|
||||
else if chosen(choice: "land", card_color) then (
|
||||
if card.rarity != "basic land" then "K" # Nonbasic Land
|
||||
else basic_land_sort()
|
||||
) else if is_null_cost(casting_cost) then (
|
||||
if chosen(choice: "hybrid", card_color) then "GK" # Hybrids
|
||||
else if is_multicolor(card_color) then "F" # Multicolor
|
||||
else if chosen(choice:"white", card_color) then "A" # White
|
||||
else if chosen(choice:"blue", card_color) then "B" # Blue
|
||||
else if chosen(choice:"black", card_color) then "C" # Black
|
||||
else if chosen(choice:"red", card_color) then "D" # Red
|
||||
else if chosen(choice:"green", card_color) then "E" # Green
|
||||
else "I" # Colorless / Artifact
|
||||
card_color != card.card_color_2 then "I" # Diff Color Splits
|
||||
else if chosen(choice: "land", card_color) then ( # Lands
|
||||
if card.rarity != "basic land" then "L" # Nonbasic Land
|
||||
else basic_land_sort() # Basic Land
|
||||
) else if is_null_cost(casting_cost) then ( # Non-Land Cards with no or zero costs.
|
||||
if chosen(choice: "colorless", card_color) then "A" # Clear Colorless
|
||||
else if chosen(choice: "hybrid", card_color) then "HK" # Hybrids
|
||||
else if is_multicolor(card_color) then "GK" # Multicolor
|
||||
else if chosen(choice:"white", card_color) then "B" # White
|
||||
else if chosen(choice:"blue", card_color) then "C" # Blue
|
||||
else if chosen(choice:"black", card_color) then "D" # Black
|
||||
else if chosen(choice:"red", card_color) then "E" # Red
|
||||
else if chosen(choice:"green", card_color) then "F" # Green
|
||||
else "J" # Artifact
|
||||
) else (
|
||||
# use the casting cost
|
||||
# Cards with costs.
|
||||
colors := sort_text(casting_cost, order: "<WUBRG>")
|
||||
if colors == "" then "I" # Colorless / Artifact
|
||||
else if colors == "W" then "A" # White
|
||||
else if colors == "U" then "B" # Blue
|
||||
else if colors == "B" then "C" # Black
|
||||
else if colors == "R" then "D" # Red
|
||||
else if colors == "G" then "E" # Green
|
||||
else if is_hybrid_cost() then hybrid_color_pair_sort() #Hybrid (by pairs)
|
||||
else if contains(casting_cost, match:"/") and contains(card_color, match:"artifact") then "I" # Colorless/Artifact
|
||||
else multi_color_pair_sort() # Multicolor (by pairs)
|
||||
if colors == "" and contains(type, match:"Artifact") then "J" # Artifact
|
||||
else if colors == "" then "A" # Clear Colorless
|
||||
else if colors == "W" then "B" # White
|
||||
else if colors == "U" then "C" # Blue
|
||||
else if colors == "B" then "D" # Black
|
||||
else if colors == "R" then "E" # Red
|
||||
else if colors == "G" then "F" # Green
|
||||
else if is_hybrid_cost() then hybrid_color_pair_sort() # Hybrid (by pairs)
|
||||
else if contains(casting_cost, match:"/") and contains(type, match:"Artifact") then "I" # Hybrid Artifacts
|
||||
else multi_color_pair_sort() # Multicolor (by pairs)
|
||||
)
|
||||
}
|
||||
|
||||
@@ -455,7 +458,7 @@ text_filter :=
|
||||
replace: {"<sym>" + mana_filter_t() + "</sym>"} ) +
|
||||
# step 6 : curly quotes
|
||||
curly_quotes +
|
||||
# step 7 : ???
|
||||
# step 7 : italicize text in parenthesis
|
||||
replace@(
|
||||
match: "[(]([^)\n]|[(][^)\n]*[)])*[)]?",
|
||||
in_context: "(^|[[:space:]])<match>|<atom-keyword><match></",
|
||||
@@ -516,6 +519,7 @@ sub_type_filter := {
|
||||
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"
|
||||
if list_type_rest != "" then (
|
||||
if lang.is_creature(type) or lang.is_tribal(type) then (
|
||||
list_type_first := "race"
|
||||
@@ -618,3 +622,11 @@ primary_card_color := {
|
||||
|
||||
word_count := break_text@(match:"[^[:space:]]+") + length
|
||||
line_count := split_text@(match:"\n+",include_empty:false) + length
|
||||
|
||||
#Remove supertypes or types to look at parts of the super_type field by themselves.
|
||||
remove_supertype := replace@(match: "(Legendary|Basic|Snow|World|Tribal|Token)", replace: "")+
|
||||
replace@(match: "^[ ]", replace: "")+
|
||||
replace@(match: "[ ]$", replace: "")
|
||||
remove_type := replace@(match: "(Artifact|Creature|Enchantment|Instant|Land|Planeswalker|Sorcery)", replace: "")+
|
||||
replace@(match: "^[ ]", replace: "")+
|
||||
replace@(match: "[ ]$", replace: "")
|
||||
|
||||
@@ -137,6 +137,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: watermark
|
||||
border radius: 0.10
|
||||
fill type: solid
|
||||
fill color: rgb(255,255,255)
|
||||
border color: rgba(0,0,0,0)
|
||||
automatic reminder text:
|
||||
render style: checklist
|
||||
direction: vertical
|
||||
|
||||
@@ -43,47 +43,36 @@ statistics dimension:
|
||||
icon: stats/colored_casting_cost.png
|
||||
|
||||
statistics dimension:
|
||||
position hint: 50
|
||||
name: power
|
||||
script: card.power
|
||||
numeric: true
|
||||
icon: stats/power.png
|
||||
name: supertype
|
||||
position hint: 27
|
||||
icon: stats/card_type.png
|
||||
description: The card's supertype, not including types
|
||||
script: remove_type(card.super_type)
|
||||
|
||||
statistics dimension:
|
||||
position hint: 51
|
||||
name: toughness
|
||||
script: card.toughness
|
||||
numeric: true
|
||||
icon: stats/toughness.png
|
||||
name: type
|
||||
position hint: 28
|
||||
icon: stats/card_type.png
|
||||
description: The card's type, not including supertypes
|
||||
script: remove_supertype(card.super_type)
|
||||
|
||||
statistics dimension:
|
||||
name: keywords
|
||||
position hint: 1000
|
||||
script: keyword_usage(unique:true)
|
||||
show empty: false
|
||||
split list: true
|
||||
icon: stats/keywords.png
|
||||
name: combined type
|
||||
position hint: 29
|
||||
icon: stats/card_type.png
|
||||
description: The traditional supertype statistic, with no filtering
|
||||
script: card.super_type
|
||||
|
||||
statistics dimension:
|
||||
name: style
|
||||
position hint: 1001
|
||||
script: stylesheet.short_name
|
||||
icon: stats/stylesheet.png
|
||||
|
||||
statistics dimension:
|
||||
name: text length (words)
|
||||
position hint: 100
|
||||
script: word_count(to_text(card.rule_text))
|
||||
numeric: true
|
||||
bin size: 5
|
||||
icon: stats/text_length.png
|
||||
|
||||
statistics dimension:
|
||||
name: text length (lines)
|
||||
position hint: 101
|
||||
script: line_count(to_text(card.rule_text))
|
||||
numeric: true
|
||||
icon: stats/text_length.png
|
||||
name: perm/non-perm
|
||||
position hint: 30
|
||||
icon: stats/card_type.png
|
||||
description: Is the card a creature, non-creature permanent, or nonpermanent?
|
||||
script:
|
||||
if is_creature(card.super_type) then "creature"
|
||||
else if is_spell(card.super_type) then "nonpermanent"
|
||||
else if is_artifact(card.super_type) or is_enchantment(card.super_type) or is_land(card.super_type) or contains(card.super_type, match:"Planeswalker") then "permanent"
|
||||
else "unknown"
|
||||
|
||||
statistics dimension:
|
||||
name: race
|
||||
@@ -106,6 +95,49 @@ statistics dimension:
|
||||
show empty: false
|
||||
split list: true
|
||||
|
||||
statistics dimension:
|
||||
position hint: 50
|
||||
name: power
|
||||
script: card.power
|
||||
numeric: true
|
||||
icon: stats/power.png
|
||||
|
||||
statistics dimension:
|
||||
position hint: 51
|
||||
name: toughness
|
||||
script: card.toughness
|
||||
numeric: true
|
||||
icon: stats/toughness.png
|
||||
|
||||
statistics dimension:
|
||||
name: text length (words)
|
||||
position hint: 100
|
||||
script: word_count(to_text(card.rule_text))
|
||||
numeric: true
|
||||
bin size: 5
|
||||
icon: stats/text_length.png
|
||||
|
||||
statistics dimension:
|
||||
name: text length (lines)
|
||||
position hint: 101
|
||||
script: line_count(to_text(card.rule_text))
|
||||
numeric: true
|
||||
icon: stats/text_length.png
|
||||
|
||||
statistics dimension:
|
||||
name: keywords
|
||||
position hint: 1000
|
||||
script: keyword_usage(unique:true)
|
||||
show empty: false
|
||||
split list: true
|
||||
icon: stats/keywords.png
|
||||
|
||||
statistics dimension:
|
||||
name: style
|
||||
position hint: 1001
|
||||
script: stylesheet.short_name
|
||||
icon: stats/stylesheet.png
|
||||
|
||||
############################################################## Statistics categories (OLD)
|
||||
|
||||
statistics category:
|
||||
|
||||
@@ -35,21 +35,16 @@ word list:
|
||||
line below: true
|
||||
word: Angel
|
||||
word: Beast
|
||||
word: Bird
|
||||
word: Construct
|
||||
word: Demon
|
||||
word: Dragon
|
||||
word: Drake
|
||||
word: Elemental
|
||||
word: Elf
|
||||
word: Faerie
|
||||
word: Giant
|
||||
word: Goblin
|
||||
word: Golem
|
||||
word: Human
|
||||
word: Illusion
|
||||
word: Merfolk
|
||||
word: Treefolk
|
||||
word: Zombie
|
||||
word:
|
||||
name: All Races
|
||||
@@ -106,6 +101,7 @@ word list:
|
||||
name: E
|
||||
word: Efreet
|
||||
word: Egg
|
||||
word: Eldrazi
|
||||
word: Elemental
|
||||
word: Elephant
|
||||
word: Elf
|
||||
@@ -229,6 +225,7 @@ word list:
|
||||
word: Shade
|
||||
word: Shapeshifter
|
||||
word: Sheep
|
||||
word: Siren
|
||||
word: Skeleton
|
||||
word: Slith
|
||||
word: Sliver
|
||||
@@ -248,6 +245,7 @@ word list:
|
||||
word: Squid
|
||||
word: Squirrel
|
||||
word: Starfish
|
||||
word: Surrakar
|
||||
word:
|
||||
name: T
|
||||
word: Tetravite
|
||||
@@ -291,17 +289,11 @@ word list:
|
||||
word:
|
||||
script: all_classes()
|
||||
line below: true
|
||||
word: Advisor
|
||||
word: Archer
|
||||
word: Artificer
|
||||
word: Assassin
|
||||
word: Beast
|
||||
word: Cleric
|
||||
word: Druid
|
||||
word: Knight
|
||||
word: Mutant
|
||||
word: Rogue
|
||||
word: Scout
|
||||
word: Shaman
|
||||
word: Soldier
|
||||
word: Warrior
|
||||
@@ -312,6 +304,7 @@ word list:
|
||||
word:
|
||||
name: A-C
|
||||
word: Advisor
|
||||
word: Ally
|
||||
word: Archer
|
||||
word: Archon
|
||||
word: Artificer
|
||||
@@ -361,6 +354,7 @@ word list:
|
||||
word: Skeleton
|
||||
word: Soldier
|
||||
word: Spellshaper
|
||||
word: Spirit
|
||||
word: Survivor
|
||||
word:
|
||||
name: T-Z
|
||||
@@ -373,7 +367,7 @@ word list:
|
||||
word list:
|
||||
name: artifact
|
||||
word:
|
||||
name:
|
||||
script: all_sub_types(match: "Artifact")
|
||||
line below: true
|
||||
word: Contraption
|
||||
word: Equipment
|
||||
@@ -400,7 +394,7 @@ word list:
|
||||
word list:
|
||||
name: enchantment
|
||||
word:
|
||||
name:
|
||||
script: all_sub_types(match: "Enchantment")
|
||||
line below: true
|
||||
word: Aura
|
||||
word: Shrine
|
||||
@@ -408,6 +402,26 @@ word list:
|
||||
word list:
|
||||
name: spell
|
||||
word:
|
||||
name:
|
||||
script: all_sub_types(match: "Instant") + "," + all_sub_types(match: "Sorcery")
|
||||
line below: true
|
||||
word: Arcane
|
||||
word: Trap
|
||||
|
||||
word list:
|
||||
name: planeswalker
|
||||
word:
|
||||
script: all_sub_types(match: "Planeswalker")
|
||||
line below: true
|
||||
word: Ajani
|
||||
word: Bolas
|
||||
word: Chandra
|
||||
word: Elspeth
|
||||
word: Garruk
|
||||
word: Gideon
|
||||
word: Jace
|
||||
word: Koth
|
||||
word: Liliana
|
||||
word: Nissa
|
||||
word: Sarkhan
|
||||
word: Sorin
|
||||
word: Tezzeret
|
||||
|
||||
Reference in New Issue
Block a user