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,16 @@
/**
*
* @param activation
*/
export function getTime(activation) {
var _a;
return (_a = activation === null || activation === void 0 ? void 0 : activation.activationTime) !== null && _a !== void 0 ? _a : null;
}
/**
*
* @param activation
*/
export function getType(activation) {
var _a;
return (_a = activation === null || activation === void 0 ? void 0 : activation.activationType) !== null && _a !== void 0 ? _a : null;
}
@@ -0,0 +1,10 @@
export var ActivationTypeEnum;
(function (ActivationTypeEnum) {
ActivationTypeEnum[ActivationTypeEnum["ACTION"] = 1] = "ACTION";
ActivationTypeEnum[ActivationTypeEnum["NO_ACTION"] = 2] = "NO_ACTION";
ActivationTypeEnum[ActivationTypeEnum["BONUS_ACTION"] = 3] = "BONUS_ACTION";
ActivationTypeEnum[ActivationTypeEnum["REACTION"] = 4] = "REACTION";
ActivationTypeEnum[ActivationTypeEnum["MINUTE"] = 6] = "MINUTE";
ActivationTypeEnum[ActivationTypeEnum["HOUR"] = 7] = "HOUR";
ActivationTypeEnum[ActivationTypeEnum["SPECIAL"] = 8] = "SPECIAL";
})(ActivationTypeEnum || (ActivationTypeEnum = {}));
@@ -0,0 +1,6 @@
import * as ActivationAccessors from './accessors';
import * as ActivationConstants from './constants';
import * as ActivationRenderers from './renderers';
export * from './constants';
export { ActivationAccessors, ActivationRenderers };
export default Object.assign(Object.assign(Object.assign({}, ActivationAccessors), ActivationConstants), ActivationRenderers);
@@ -0,0 +1,131 @@
import { FormatUtils } from '../Format';
import { RuleDataUtils } from '../RuleData';
import { getTime, getType } from './accessors';
import { ActivationTypeEnum } from './constants';
/**
*
* @param time
* @param type
*/
export function renderActivationPluralSuffix(time, type) {
let pluralSuffix = '';
if (time !== null && time !== 1) {
switch (type) {
case ActivationTypeEnum.REACTION:
case ActivationTypeEnum.ACTION:
case ActivationTypeEnum.HOUR:
case ActivationTypeEnum.MINUTE:
case ActivationTypeEnum.BONUS_ACTION:
pluralSuffix = 's';
break;
default:
// not implemented
}
}
return pluralSuffix;
}
/**
*
* @param activation
* @param ruleData
* @param defaultTime
*/
export function renderActivation(activation, ruleData, defaultTime = 1) {
const activationTime = getTime(activation);
const activationType = getType(activation);
if (!activationType) {
return '';
}
const activationTypeInfo = RuleDataUtils.getActivationTypeInfo(activationType, ruleData);
const activationTypeName = activationTypeInfo ? activationTypeInfo.name : '';
let time = activationTime === null ? defaultTime : activationTime;
if (activationType === ActivationTypeEnum.SPECIAL || activationType === ActivationTypeEnum.NO_ACTION) {
time = null;
}
return `${time ? `${time} ` : ''}${activationTypeName}${renderActivationPluralSuffix(time, activationType)}`;
}
/**
*
* @param activation
* @param additionalTime
* @param ruleData
*/
export function renderCastingTime(activation, additionalTime, ruleData) {
const activationTime = getTime(activation);
const activationType = getType(activation);
let activationTypeInfo = null;
if (activationType) {
activationTypeInfo = RuleDataUtils.getActivationTypeInfo(activationType, ruleData);
}
additionalTime = additionalTime ? additionalTime : 0;
let castingTimeString = '';
if (activationTime && activationTypeInfo) {
if (additionalTime > 0) {
if (activationType === ActivationTypeEnum.MINUTE) {
const totalTime = activationTime + additionalTime;
castingTimeString = `${totalTime} Minute${totalTime !== 1 ? 's' : ''}`;
}
else {
castingTimeString = `${activationTime} ${activationTypeInfo.name} + ${additionalTime} Minute${additionalTime !== 1 ? 's' : ''}`;
}
}
else {
castingTimeString = `${activationTime} ${activationTypeInfo.name}${renderActivationPluralSuffix(activationTime, activationType)}`;
}
}
else if (activationTypeInfo) {
castingTimeString = activationTypeInfo.name ? activationTypeInfo.name : '';
}
return FormatUtils.upperCaseFirstLetterOnly(castingTimeString);
}
/**
*
* @param activation
* @param additionalTime
*/
export function renderCastingTimeAbbreviation(activation, additionalTime = 0) {
const activationTime = getTime(activation);
const activationType = getType(activation);
let castingTimeString = '';
if (activationTime) {
if (additionalTime > 0) {
if (activationType === ActivationTypeEnum.MINUTE) {
const totalTime = activationTime + additionalTime;
castingTimeString = `${totalTime}${renderActivationAbbreviation(ActivationTypeEnum.MINUTE)}`;
}
else {
castingTimeString = `${activationTime}${renderActivationAbbreviation(activationType)} + ${additionalTime}${renderActivationAbbreviation(ActivationTypeEnum.MINUTE)}`;
}
}
else {
castingTimeString = `${activationTime}${renderActivationAbbreviation(activationType)}`;
}
}
else {
castingTimeString = renderActivationAbbreviation(activationType);
}
return castingTimeString;
}
/**
* Gets the abbreviation for the specified activation type
* @param activationType The activation type to abbreviate
*/
export function renderActivationAbbreviation(activationType) {
switch (activationType) {
case ActivationTypeEnum.BONUS_ACTION:
return 'BA';
case ActivationTypeEnum.ACTION:
return 'A';
case ActivationTypeEnum.REACTION:
return 'R';
case ActivationTypeEnum.SPECIAL:
return 'S';
case ActivationTypeEnum.HOUR:
return 'h';
case ActivationTypeEnum.MINUTE:
return 'm';
default:
// not implemented
}
return '';
}