mse version: 0.3.1
short name: VS System
icon: card-back.png
position hint: 3
############################################################## Functions & filters
## Copied and Pasted from magic-new.mse-style/style, with a few modifications
# General functions
init script:
# add symbols to text
symbol_filter :=
# step 5a : add arrow/diamond/dot symbols
replace_rule(
match: "->|@",
replace: "&" ) +
# step 5b : dot separator
replace_rule(
match: "`|::",
replace: "•")+
# step 5c : longdash for keywords
replace_rule(
match: "--",
replace: "—")
# the rule text filter
# - adds -> symbols
# - adds @ symbols
# - adds :: symbols
# - makes text in parentheses italic
text_filter :=
# step 1 : remove all automatic tags
tag_remove_rule(tag: "") +
tag_remove_rule(tag: "") +
tag_remove_rule(tag: "") +
# step 2 : reminder text for keywords
#keyword_rule(
# expand_reminder_game: { set.automatic_reminder_text == "yes" },
# expand_reminder_set: { set.automatic_reminder_text != "no" },
# before: " (",
# after: ")"
# ) +
# step 3 : expand shortcut words ~ and CARDNAME
replace_rule(
match: "~|~THIS~|CARDNAME",
in_context: "(^|[[:space:]])",
replace: ""
) +
# step 5 : symbols
symbol_filter +
# step 4 : fill in atom fields
tag_contents_rule(
tag: "",
contents: { if card.name=="" then "CARDNAME" else card.name }
) +
# step 7 : italic reminder text
replace_rule(
match: "[(][^)\n]*[)]?",
in_context: "(^|[[:space:]])|",
replace: "&") +
# step 7b : Bold keywords
replace_rule(
match: "]*>[^<]+",
replace: "&")
# Determine type of card
dual_name := filter_rule(match: "•")
card_type := {
if card.team == "Location" then "location"
else if card.team == "Equipment" then "equipment"
else if card.team == "Plot Twist" then "plot twist"
else if card.team_2 != "" then "character dual"
else if dual_name(card.team) != "" then "character dual (new)"
else "character"
}
# Default 'team' name of card
team := {
if is_location() then "Location"
else if is_equipment() then "Equipment"
else if is_plot_twist() then "Plot Twist"
else ""
}
# Only pass numbers
only_numbers := filter_rule(match: "[0-9]")
############### Type of card
is_dual := {
card.card_type == "character dual" or
card.card_type == "concealed dual"
}
is_new_dual := {
card.card_type == "character dual (new)" or
card.card_type == "concealed dual (new)"
}
is_character := {
card.card_type == "character" or
card.card_type == "character dual" or
card.card_type == "character dual (new)" or
card.card_type == "concealed" or
card.card_type == "concealed dual" or
card.card_type == "concealed dual (new)"
}
is_concealed := {
card.card_type == "concealed" or
card.card_type == "concealed dual" or
card.card_type == "concealed dual (new)"
}
is_equipment := {
card.card_type == "equipment"
}
is_location := {
card.card_type == "location"
}
is_plot_twist := {
card.card_type == "plot twist"
}
is_ch_or_pt := {
is_character() or is_plot_twist()
}
############################################################## Set fields
set field:
type: info
name: Set Information
set field:
type: text
name: title
description: This information will not appear on the card.
set field:
type: text
name: code
default: "COD"
description: Recommended only 3 Capital digits. Will appear before card number. ex: MOR-1
set field:
type: text
name: description
multi line: true
description: This information will not appear on the card.
set field:
type: text
name: artist
description: Editting this will set 1 artist for all the cards and will appear in the artist bar below the picture.
set field:
type: text
name: copyright
description: Copytight information. This information will not appear on the card.
set field:
type: info
name: Defaults and Automation
set field:
type: choice
name: automatic reminder text
choice: yes
choice: only for custom keywords
choice: no
initial: no
description: Should reminder text be added to keywords by default? Note: you can enable/disable reminder text by right clicking the keyword.
############################# Default style
default set style:
title:
padding left: 2
font:
size: 16
automatic reminder text:
render style: both
choice images:
yes: script: built_in_image("bool_yes")
no: script: built_in_image("bool_no")
############################################################## Card fields
############################# Background stuff
card field:
type: choice
name: card type
choice: character
choice: character dual
choice: character dual (new)
choice: concealed
choice: concealed dual
choice: concealed dual (new)
choice: equipment
choice: location
choice: plot twist
default: card_type()
show statistics: false
############################# Name line
card field:
type: text
name: name
script: symbol_filter(value)
identifying: true
show statistics: false
card list visible: true
card list column: 1
card list width: 200
description: The name of the card, use @ for a diamond
card field:
type: text
name: cost
icon: stats/cost.png
script: only_numbers(value)
card list visible: true
card list column: 3
card list alignment: right
card list width: 37
card list name: Cost
card field:
type: image
name: card symbol
show statistics: false
description: Double click to load a symbol for the card
############################# Image
card field:
type: image
name: image
show statistics: false
############################# Type Bar
card field:
type: text
name: type text
description: The type of the card
card field:
type: choice
name: type bar
choice: type bar
editable: false
############################# Version
card field:
type: text
name: version
card list visible: true
card list column: 2
script: symbol_filter(value)
############################# Card ID
card field:
type: text
name: number
script:
set.code
+ "-" +
format( format: "%03i"
, position(
of: card
in: set
order_by: {card.name}
))
card list visible: true
card list column: 6
card list width: 65
card list name: #
editable: false
card field:
type: choice
name: rarity
choice: common
choice: uncommon
choice: rare
choice: promo
############################# Affiliation
card field:
type: text
name: team
default: team()
script: symbol_filter(value)
description: The team of the card, use ` for a separator for dual cards
card field:
type: text
name: team 2
script: symbol_filter(value)
description: The second affiliation of the card (for dual cards)
############################# FlightRange
card field:
type: multiple choice
name: symbols
icon: stats/symbols.png
choice: flight
choice: range
choice: ongoing
description: Symbols for this card (flight/range/ongoing), multiple symbols can be selected
############################# Text box
card field:
type: text
name: rule text
script: text_filter(value)
show statistics: false
multi line: true
description: Rule text of the card, use @ for a diamond, -> for an arrow and :: for a dot
card field:
type: text
name: flavor text
show statistics: false
multi line: true
############################# Atack / Defense
card field:
type: text
name: attack
icon: stats/attack.png
save value: true
card list visible: true
card list column: 4
card list width: 33
card list name: ATK
card field:
type: text
name: defence
icon: stats/defence.png
save value: true
card list visible: true
card list column: 5
card list width: 33
card list name: DEF
############################# Copyright stuff
card field:
type: text
name: illustrator
default: set.artist
card field:
type: text
name: copyright
default: set.copyright
multi line: true
############################################################## Word lists
# Doesn't do anything yet
#word list:
# name: affiliation or type
# word: anti-matter
# word: arkham inmates
# word: darkseid's elite
# word: deathstroke
# word: emerald enemies
# word: fearsome five
# word: gotham knights
# word: green lantern
# word: injustice gang
# word: jla
# word: jli
# word: league of assassins
# word: manhunter
# word: new gods
# word: revenge squad
# word: secret society
# word: shadowpact
# word: team superman
# word: teen titans
# word: avengers
# word: brotherhood
# word: crimelords
# word: doom
# word: fantastic four
# word: kang council
# word: marvel knights
# word: masters of evil
# word: negative zone
# word: sentinel
# word: sinister syndicate
# word: skrull
# word: spider-friends
# word: squadron supreme
# word: thunderbolts
# word: underworld
# word: x-men
# word: x-statix
# word: equipment
# word: location
# word: plot twist
############################################################## Keywords
############################# Keyword rules
has keywords: true
keyword parameter type:
name: no parameter
keyword parameter type:
name: number
match: [0-9]+
keyword parameter type:
name: action
match: [^(,\n]+
keyword parameter type:
name: name
match:
[^
(.,]+
############################# All VS System keywords
keyword:
keyword: Concealed—Optional.
match: Concealed—Optional.
reminder: You may have ~THIS~ come into play in the hidden area.
keyword:
keyword: Concealed.
match: Concealed.
reminder: This character comes into play in the hidden area.
keyword:
keyword: Loyalty—Reveal.
match: Loyalty—Reveal.
reminder: If you don’t control a character that shares an affiliation with ~THIS~, then as an additional cost to recruit ~THIS~, reveal a character card from your hand or resource row that shares an affiliation with ~THIS~.
keyword:
keyword: Loyalty.
match: Loyalty.
reminder: As an additional cost to recruit ~THIS~, you must control a character that shares a team affiliation with ~THIS~.
keyword:
keyword: Evasion.
match: Evasion.
reminder: Stun ~THIS~ -> Recover ~THIS~ at the start of the recovery phase this turn.
keyword:
keyword: Invulnerability.
match: Invulnerability.
reminder: Whenever ~THIS~ becomes stunned, you do not take stun damage. Breakthrough is applied normally.
keyword:
keyword: Cosmic:
match: Cosmic:
reminder:
keyword:
keyword: Boost
match: Boost action
reminder:
keyword:
keyword: Willpower
match: Willpower number
reminder:
keyword:
keyword: Leader:
match: Leader:
reminder:
keyword:
keyword: Ally:
match: Ally:
reminder:
keyword:
keyword: Unique.
match: Unique.
reminder:
keyword:
keyword: Ongoing:
match: Ongoing:
reminder:
keyword:
keyword: Reservist.
match: Reservist.
reminder: You may recruit this card from your resource row. If you do, you may put a card from your hand face down into your resource row.
keyword:
keyword: Transferable.
match: Transferable.
reminder: During your recruit step you may unequip ~THIS~ and equip it to another character you control.
keyword:
keyword: Vengeance:
match: Vengeance:
reminder: This ability is activated whenever ~THIS~ is stunned.
keyword:
keyword: Backup:
match: Backup:
reminder: This ability can only be used during the build step.