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

27 lines
1.1 KiB
JavaScript

import { CreatureSizeEnum, CreatureSizeNameEnum, DB_STRING_VERDAN, INITIAL_ASI_TAG_NAME, } from '../Core';
import { RacialTraitAccessors } from '../RacialTrait';
import { getSize, getSizeId } from './accessors';
//temp hack handles specific race size for granted level size changes - need to set up logic for that
/**
*
* @param race
* @param experienceInfo
*/
export function hack__deriveRaceSize(race, experienceInfo) {
let sizeId = getSizeId(race);
let size = getSize(race);
if (race.baseName === DB_STRING_VERDAN && experienceInfo.currentLevel >= 5 && !race.isHomebrew) {
sizeId = CreatureSizeEnum.MEDIUM;
size = CreatureSizeNameEnum.MEDIUM;
}
return [sizeId, size];
}
export function hack__filterOutAsi(traits, isInitialAsiFromFeat) {
if (!isInitialAsiFromFeat) {
// no changes needed if the initial ASI isn't coming from a Background Feat
return traits;
}
// Keep traits that aren't the initial ASI
return traits.filter((trait) => !RacialTraitAccessors.getCategories(trait).some((cat) => cat.tagName === INITIAL_ASI_TAG_NAME));
}