diff --git a/doc/function/get_card_styling.txt b/doc/function/get_card_styling.txt new file mode 100644 index 000000000..3237e883e --- /dev/null +++ b/doc/function/get_card_styling.txt @@ -0,0 +1,17 @@ +Function: get_card_styling + +--Usage-- +> get_card_styling(card, set: set) + +Get the styling data of a [[type:card]]. + +This is for use in exporter scripts. In card scripts, use the "styling" predefined variable instead. + +--Parameters-- +! Parameter Type Description +| @input@ [[type:card]] The card you want to retrieve the styling data from. +| @set@ [[type:set]] The set the card belongs to. In an exporter script, this can be ommited since "set" is a predefined variable. + +--Examples-- +> # Retrieve the value "is foil" from the card's styling options +> card_is_foil := get_card_styling(card)["is_foil"] or else false diff --git a/doc/function/index.txt b/doc/function/index.txt index 700fdf7d7..f0bfa889f 100644 --- a/doc/function/index.txt +++ b/doc/function/index.txt @@ -97,6 +97,7 @@ These functions are built into the program, other [[type:function]]s can be defi ! Cards <<< | [[fun:new_card]] Construct a new [[type:card]] object. +| [[fun:get_card_styling]] Get the styling data of a [[type:card]]. ! HTML export <<< | [[fun:to_html]] Convert [[type:tagged text]] to html. diff --git a/src/script/functions/basic.cpp b/src/script/functions/basic.cpp index c898f5922..ba5c02076 100644 --- a/src/script/functions/basic.cpp +++ b/src/script/functions/basic.cpp @@ -655,6 +655,17 @@ SCRIPT_FUNCTION(random_select_many) { return ret; } +SCRIPT_FUNCTION(get_card_styling) { + SCRIPT_PARAM_C(ScriptValueP, input); + SCRIPT_PARAM_C(ScriptValueP, set); + ScriptObject* c = dynamic_cast*>(input.get()); + ScriptObject* s = dynamic_cast*>(set.get()); + if (s && c) { + return to_script(&s->getValue()->stylingDataFor(c->getValue())); + } + throw ScriptError(_("invalid set or card argument")); +} + // ----------------------------------------------------------------------------- : Keywords @@ -741,6 +752,7 @@ void init_script_basic_functions(Context& ctx) { ctx.setVariable(_("to_date"), script_to_date); ctx.setVariable(_("to_code"), script_to_code); ctx.setVariable(_("type_name"), script_type_name); + ctx.setVariable(_("get_card_styling"), script_get_card_styling); // math ctx.setVariable(_("abs"), script_abs); ctx.setVariable(_("random_real"), script_random_real); diff --git a/tools/website/drupal/mse-drupal-modules/highlight.inc b/tools/website/drupal/mse-drupal-modules/highlight.inc index c34c41c41..497633487 100644 --- a/tools/website/drupal/mse-drupal-modules/highlight.inc +++ b/tools/website/drupal/mse-drupal-modules/highlight.inc @@ -49,6 +49,7 @@ $built_in_functions = array( 'random_shuffle' =>'', 'random_select' =>'', 'random_select_many' =>'', + 'get_card_styling' =>'', // keywords 'expand_keywords' =>'', 'expand_keywords_rule'=>'expand_keywords', 'keyword_usage' =>'',