2025-05-28 15:36:51 -07:00

19 lines
896 B
JavaScript

import { difference } from 'lodash';
import { getLevel, getOptionalClassFeatures, getSpellListIds } from './accessors';
import { deriveConsolidatedClassFeatures, deriveSpellListIds } from './derivers';
/**
*
* @param classes
* @param newEnableOptionalClassFeatures
*/
export function getUpdateEnableOptionalClassFeaturesSpellListIdsToRemove(classes, newEnableOptionalClassFeatures) {
const spellListIdsToRemove = [];
classes.forEach((charClass) => {
const existingSpellListIds = getSpellListIds(charClass);
const newClassFeatures = deriveConsolidatedClassFeatures(charClass, getOptionalClassFeatures(charClass), newEnableOptionalClassFeatures);
const newSpellListIds = deriveSpellListIds(newClassFeatures, getLevel(charClass));
spellListIdsToRemove.push(...difference(existingSpellListIds, newSpellListIds));
});
return spellListIdsToRemove;
}