31 lines
856 B
JavaScript
31 lines
856 B
JavaScript
const _ = require("lodash");
|
|
const resolvePointer = require('./resolvePointer.cjs');
|
|
|
|
module.exports = (ajv) =>
|
|
ajv.addKeyword({
|
|
keyword: "maxSpells",
|
|
validate: function validate(
|
|
schema,
|
|
data,
|
|
_parent,
|
|
{ rootData, instancePath }
|
|
) {
|
|
if (schema.class.$data) {
|
|
schema.class = resolvePointer(rootData, instancePath, schema.class.$data);
|
|
}
|
|
|
|
if( schema.class !== 'magician' && schema.class?.generic !== 'magician' && data.length ) {
|
|
validate.errors = [
|
|
{
|
|
message: "non-magician can't have spells",
|
|
},
|
|
];
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
},
|
|
$data: true,
|
|
errors: true,
|
|
});
|