Grabbed dndbeyond's source code
``` ~/go/bin/sourcemapper -output ddb -jsurl https://media.dndbeyond.com/character-app/static/js/main.90aa78c5.js ```
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
import { getModifierData, getModifierDataType, getModifierGroupId, getType } from './accessors';
|
||||
import { InfusionModifierDataTypeEnum, InfusionTypeEnum } from './constants';
|
||||
/**
|
||||
* TODO this needs to consider item information for knownInfusions to be true.
|
||||
* see hack__requiresItemChoice() for more info
|
||||
*
|
||||
* @param infusion
|
||||
*/
|
||||
export function deriveRequiresItemChoice(infusion) {
|
||||
return getType(infusion) !== InfusionTypeEnum.REPLICATE;
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param infusion
|
||||
*/
|
||||
export function deriveRequiresModifierDataChoice(infusion) {
|
||||
const modifierDataType = getModifierDataType(infusion);
|
||||
if (modifierDataType === null || modifierDataType === InfusionModifierDataTypeEnum.GRANTED) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param infusion
|
||||
*/
|
||||
export function deriveSelectedModifierData(infusion) {
|
||||
const modifierGroupId = getModifierGroupId(infusion);
|
||||
const modifierData = getModifierData(infusion);
|
||||
const modifierDataType = getModifierDataType(infusion);
|
||||
switch (modifierDataType) {
|
||||
case InfusionModifierDataTypeEnum.GRANTED:
|
||||
return modifierData[0];
|
||||
case InfusionModifierDataTypeEnum.CLASS_LEVEL:
|
||||
case InfusionModifierDataTypeEnum.DAMAGE_TYPE_CHOICE:
|
||||
const foundModifierGroup = modifierData.find((dataItem) => dataItem.id === modifierGroupId);
|
||||
return foundModifierGroup ? foundModifierGroup : null;
|
||||
default:
|
||||
// not implemented
|
||||
}
|
||||
return null;
|
||||
}
|
||||
Reference in New Issue
Block a user