feat: add extra_data() function to expose extra card fields

This commit is contained in:
Brendan Hagan
2022-06-21 22:28:49 -04:00
parent d3bd691578
commit 6e077b0899
+18 -1
View File
@@ -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);
}