New source found from dndbeyond.com
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import { AbilityAccessors } from '../Ability';
|
||||
import { FormatUtils } from '../Format';
|
||||
import { getEntityId, getFriendlySubtypeName, getPrerequisites, getSubType, getType, getValue } from './accessors';
|
||||
import { getEntityId, getFriendlySubtypeName, getPrerequisites, getSubType, getType, getValue, getShouldExclude, } from './accessors';
|
||||
import { PrerequisiteSubTypeEnum, PrerequisiteTypeEnum } from './constants';
|
||||
import { validatePrerequisite } from './validators';
|
||||
/**
|
||||
@@ -13,19 +13,19 @@ export function getPrerequisiteFailure(prerequisite, prerequisiteData) {
|
||||
case PrerequisiteTypeEnum.ABILITY_SCORE:
|
||||
return getPrerequisiteFailureAbilityScore(prerequisite, prerequisiteData);
|
||||
case PrerequisiteTypeEnum.PROFICIENCY:
|
||||
return getPrerequisiteFailureProficiency(prerequisite, prerequisiteData);
|
||||
return getPrerequisiteFailureProficiency(prerequisite);
|
||||
case PrerequisiteTypeEnum.SPECIES:
|
||||
return getPrerequisiteFailureRace(prerequisite, prerequisiteData);
|
||||
return getPrerequisiteFailureRace(prerequisite);
|
||||
case PrerequisiteTypeEnum.SIZE:
|
||||
return getPrerequisiteFailureSize(prerequisite, prerequisiteData);
|
||||
return getPrerequisiteFailureSize(prerequisite);
|
||||
case PrerequisiteTypeEnum.SPECIES_OPTION:
|
||||
return getPrerequisiteFailureSubrace(prerequisite, prerequisiteData);
|
||||
return getPrerequisiteFailureSubrace(prerequisite);
|
||||
case PrerequisiteTypeEnum.LEVEL:
|
||||
return getPrerequisiteFailureLevel(prerequisite, prerequisiteData);
|
||||
return getPrerequisiteFailureLevel(prerequisite);
|
||||
case PrerequisiteTypeEnum.CLASS:
|
||||
return getPrerequisiteFailureClass(prerequisite, prerequisiteData);
|
||||
return getPrerequisiteFailureClass(prerequisite);
|
||||
case PrerequisiteTypeEnum.FEAT:
|
||||
return getPrerequisiteFailureFeat(prerequisite, prerequisiteData);
|
||||
return getPrerequisiteFailureFeat(prerequisite);
|
||||
case PrerequisiteTypeEnum.CLASS_FEATURE:
|
||||
return getPrerequisiteFailureClassFeature(prerequisite);
|
||||
case PrerequisiteTypeEnum.CUSTOM_VALUE:
|
||||
@@ -39,7 +39,7 @@ export function getPrerequisiteFailure(prerequisite, prerequisiteData) {
|
||||
* @param prerequisite
|
||||
* @param prerequisiteData
|
||||
*/
|
||||
export function getPrerequisiteFailureLevel(prerequisite, prerequisiteData) {
|
||||
export function getPrerequisiteFailureLevel(prerequisite) {
|
||||
let requiredDescription = '';
|
||||
switch (getSubType(prerequisite)) {
|
||||
case PrerequisiteSubTypeEnum.CHARACTER_LEVEL:
|
||||
@@ -56,6 +56,7 @@ export function getPrerequisiteFailureLevel(prerequisite, prerequisiteData) {
|
||||
requiredChoice: getFriendlySubtypeName(prerequisite),
|
||||
requiredDescription,
|
||||
},
|
||||
shouldExclude: !!getShouldExclude(prerequisite),
|
||||
};
|
||||
}
|
||||
/**
|
||||
@@ -81,6 +82,7 @@ export function getPrerequisiteFailureAbilityScore(prerequisite, prerequisiteDat
|
||||
requiredChoice: getFriendlySubtypeName(prerequisite),
|
||||
requiredDescription: `${getFriendlySubtypeName(prerequisite)} ${getValue(prerequisite)}+`,
|
||||
},
|
||||
shouldExclude: !!getShouldExclude(prerequisite),
|
||||
};
|
||||
}
|
||||
/**
|
||||
@@ -88,13 +90,14 @@ export function getPrerequisiteFailureAbilityScore(prerequisite, prerequisiteDat
|
||||
* @param prerequisite
|
||||
* @param prerequisiteData
|
||||
*/
|
||||
export function getPrerequisiteFailureProficiency(prerequisite, prerequisiteData) {
|
||||
export function getPrerequisiteFailureProficiency(prerequisite) {
|
||||
return {
|
||||
type: PrerequisiteTypeEnum.PROFICIENCY,
|
||||
data: {
|
||||
requiredChoice: getFriendlySubtypeName(prerequisite),
|
||||
requiredDescription: `${getFriendlySubtypeName(prerequisite)} Proficiency`,
|
||||
},
|
||||
shouldExclude: !!getShouldExclude(prerequisite),
|
||||
};
|
||||
}
|
||||
/**
|
||||
@@ -102,13 +105,14 @@ export function getPrerequisiteFailureProficiency(prerequisite, prerequisiteData
|
||||
* @param prerequisite
|
||||
* @param prerequisiteData
|
||||
*/
|
||||
export function getPrerequisiteFailureRace(prerequisite, prerequisiteData) {
|
||||
export function getPrerequisiteFailureRace(prerequisite) {
|
||||
return {
|
||||
type: PrerequisiteTypeEnum.SPECIES,
|
||||
data: {
|
||||
requiredChoice: getFriendlySubtypeName(prerequisite),
|
||||
requiredDescription: getFriendlySubtypeName(prerequisite),
|
||||
},
|
||||
shouldExclude: !!getShouldExclude(prerequisite),
|
||||
};
|
||||
}
|
||||
/**
|
||||
@@ -116,13 +120,14 @@ export function getPrerequisiteFailureRace(prerequisite, prerequisiteData) {
|
||||
* @param prerequisite
|
||||
* @param prerequisiteData
|
||||
*/
|
||||
export function getPrerequisiteFailureSubrace(prerequisite, prerequisiteData) {
|
||||
export function getPrerequisiteFailureSubrace(prerequisite) {
|
||||
return {
|
||||
type: PrerequisiteTypeEnum.SPECIES_OPTION,
|
||||
data: {
|
||||
requiredChoice: getFriendlySubtypeName(prerequisite),
|
||||
requiredDescription: getFriendlySubtypeName(prerequisite),
|
||||
},
|
||||
shouldExclude: !!getShouldExclude(prerequisite),
|
||||
};
|
||||
}
|
||||
/**
|
||||
@@ -130,13 +135,14 @@ export function getPrerequisiteFailureSubrace(prerequisite, prerequisiteData) {
|
||||
* @param prerequisite
|
||||
* @param prerequisiteData
|
||||
*/
|
||||
export function getPrerequisiteFailureSize(prerequisite, prerequisiteData) {
|
||||
export function getPrerequisiteFailureSize(prerequisite) {
|
||||
return {
|
||||
type: PrerequisiteTypeEnum.SIZE,
|
||||
data: {
|
||||
requiredChoice: getFriendlySubtypeName(prerequisite),
|
||||
requiredDescription: `${getFriendlySubtypeName(prerequisite)} Size`,
|
||||
},
|
||||
shouldExclude: !!getShouldExclude(prerequisite),
|
||||
};
|
||||
}
|
||||
/**
|
||||
@@ -144,13 +150,14 @@ export function getPrerequisiteFailureSize(prerequisite, prerequisiteData) {
|
||||
* @param prerequisite
|
||||
* @param prerequisiteData
|
||||
*/
|
||||
export function getPrerequisiteFailureClass(prerequisite, prerequisiteData) {
|
||||
export function getPrerequisiteFailureClass(prerequisite) {
|
||||
return {
|
||||
type: PrerequisiteTypeEnum.CLASS,
|
||||
data: {
|
||||
requiredChoice: getFriendlySubtypeName(prerequisite),
|
||||
requiredDescription: `${getFriendlySubtypeName(prerequisite)}`,
|
||||
},
|
||||
shouldExclude: !!getShouldExclude(prerequisite),
|
||||
};
|
||||
}
|
||||
export const getPrerequisiteFailureClassFeature = (prerequisite) => ({
|
||||
@@ -159,19 +166,21 @@ export const getPrerequisiteFailureClassFeature = (prerequisite) => ({
|
||||
requiredChoice: prerequisite.friendlySubTypeName,
|
||||
requiredDescription: prerequisite.friendlySubTypeName,
|
||||
},
|
||||
shouldExclude: !!getShouldExclude(prerequisite),
|
||||
});
|
||||
/**
|
||||
*
|
||||
* @param prerequisite
|
||||
* @param prerequisiteData
|
||||
*/
|
||||
export function getPrerequisiteFailureFeat(prerequisite, prerequisiteData) {
|
||||
export function getPrerequisiteFailureFeat(prerequisite) {
|
||||
return {
|
||||
type: PrerequisiteTypeEnum.FEAT,
|
||||
data: {
|
||||
requiredChoice: getFriendlySubtypeName(prerequisite),
|
||||
requiredDescription: `${getFriendlySubtypeName(prerequisite)}`,
|
||||
},
|
||||
shouldExclude: !!getShouldExclude(prerequisite),
|
||||
};
|
||||
}
|
||||
/**
|
||||
@@ -198,14 +207,3 @@ export function getPrerequisiteGroupingFailures(prerequisiteGrouping, prerequisi
|
||||
}
|
||||
return groupingFailures.filter((group) => group.length);
|
||||
}
|
||||
/**
|
||||
* Get all prerequisites of a specific type
|
||||
* @param type
|
||||
* @param prereqGroups
|
||||
*/
|
||||
export function getPrereqsByType(type, prereqGroups) {
|
||||
return prereqGroups.reduce((acc, prereq) => {
|
||||
const featMappings = getPrerequisites(prereq).filter((mapping) => getType(mapping) === type);
|
||||
return acc.concat(featMappings);
|
||||
}, []);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user