From 6e077b0899505f6cbc7713a9d564342faaf6348c Mon Sep 17 00:00:00 2001 From: Brendan Hagan Date: Tue, 21 Jun 2022 22:28:49 -0400 Subject: [PATCH] feat: add extra_data() function to expose extra card fields --- src/script/functions/editor.cpp | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/script/functions/editor.cpp b/src/script/functions/editor.cpp index 0c9ad735..6deaa3b9 100644 --- a/src/script/functions/editor.cpp +++ b/src/script/functions/editor.cpp @@ -382,6 +382,22 @@ SCRIPT_FUNCTION(count_chosen) { SCRIPT_RETURN(count); } } +} + +// ----------------------------------------------------------------------------- : Extra Card Fields + +SCRIPT_FUNCTION(extra_data) { + SCRIPT_PARAM_C(String, input); + SCRIPT_PARAM_C(CardP, card); + SCRIPT_PARAM_C(StyleSheetP, stylesheet); + + FOR_EACH(valueP, card->extraDataFor(*stylesheet)) { + if (valueP->fieldP->name == input) { + SCRIPT_RETURN(valueP); + } + } + + return delay_error(ScriptErrorNoMember("extra_data()", input)); } // ----------------------------------------------------------------------------- : Init @@ -395,5 +411,6 @@ void init_script_editor_functions(Context& ctx) { ctx.setVariable(_("require_choice"), script_require_choice); ctx.setVariable(_("exclusive_choice"), script_exclusive_choice); ctx.setVariable(_("require_exclusive_choice"), script_require_exclusive_choice); - ctx.setVariable(_("remove_choice"), script_remove_choice); + ctx.setVariable(_("remove_choice"), script_remove_choice); + ctx.setVariable(_("extra_data"), script_extra_data); }