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:
2025-05-28 11:50:03 -07:00
commit 8df9031d27
3592 changed files with 319051 additions and 0 deletions
@@ -0,0 +1,52 @@
import { orderBy } from 'lodash';
import { ClassAccessors } from '../Class';
import { DataOriginTypeEnum } from '../DataOrigin';
import { InfusionAccessors, InfusionModifierDataTypeEnum, InfusionTypeEnum } from '../Infusion';
import { KnownInfusionAccessors } from '../KnownInfusion';
import { getKnownInfusion, getDataOrigin, getDataOriginType } from './accessors';
/**
*
* @param infusionChoice
*/
export function deriveForcedModifierData(infusionChoice) {
const knownInfusion = getKnownInfusion(infusionChoice);
if (knownInfusion === null) {
return null;
}
const simulatedInfusion = KnownInfusionAccessors.getSimulatedInfusion(knownInfusion);
if (simulatedInfusion === null) {
return null;
}
const modifierData = InfusionAccessors.getModifierData(simulatedInfusion);
const modifierDataType = InfusionAccessors.getModifierDataType(simulatedInfusion);
const dataOriginType = getDataOriginType(infusionChoice);
if (dataOriginType === DataOriginTypeEnum.CLASS_FEATURE &&
modifierDataType === InfusionModifierDataTypeEnum.CLASS_LEVEL) {
const dataOrigin = getDataOrigin(infusionChoice);
const charClass = dataOrigin.parent;
const classLevel = ClassAccessors.getLevel(charClass);
const orderedModifierData = orderBy(modifierData, (data) => data.value, 'desc');
const foundModifierData = orderedModifierData.find((data) => data.value !== null && classLevel >= data.value);
return foundModifierData ? foundModifierData : null;
}
return null;
}
/**
*
* @param infusionChoice
*/
export function deriveCanInfuse(infusionChoice) {
const knownInfusion = getKnownInfusion(infusionChoice);
if (knownInfusion === null) {
return false;
}
const simulatedInfusion = KnownInfusionAccessors.getSimulatedInfusion(knownInfusion);
if (simulatedInfusion === null) {
return false;
}
if (InfusionAccessors.getType(simulatedInfusion) === InfusionTypeEnum.REPLICATE) {
const itemId = KnownInfusionAccessors.getItemId(knownInfusion);
return itemId !== null;
}
return true;
}