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,78 @@
|
||||
import { call, put, select } from 'redux-saga/effects';
|
||||
import { serviceDataActions } from '../../actions/serviceData';
|
||||
import { ApiHacks } from '../../api';
|
||||
import * as ApiAdapterUtils from '../../apiAdapter/utils';
|
||||
import { AccessTypeEnum } from '../../engine/Access';
|
||||
import { ClassAccessors } from '../../engine/Class';
|
||||
import { ClassFeatureAccessors } from '../../engine/ClassFeature';
|
||||
import { DefinitionPoolSimulators } from '../../engine/DefinitionPool';
|
||||
import { RaceAccessors } from '../../engine/Race';
|
||||
import { RacialTraitAccessors } from '../../engine/RacialTrait';
|
||||
import * as rulesEngineSelectors from '../../selectors/composite/engine';
|
||||
import { TypeScriptUtils } from '../../utils';
|
||||
/**
|
||||
*
|
||||
* same as handleLoadDefinitions but using the temporary characterService game-data requests
|
||||
*
|
||||
* @param definitionType
|
||||
* @param definitionIds
|
||||
*/
|
||||
export function* hack__handleLoadDefinitions(definitionType, definitionIds) {
|
||||
try {
|
||||
// make the requests from the definition ids
|
||||
const serviceResponse = yield call(ApiHacks.hack__characterServiceMakeGetIdsDefinitionTypeRequest(definitionType), {
|
||||
ids: definitionIds,
|
||||
});
|
||||
let responseData = ApiAdapterUtils.getResponseData(serviceResponse);
|
||||
if (responseData !== null) {
|
||||
// compile all the definition and accessType responses
|
||||
yield put(serviceDataActions.definitionPoolAdd(responseData.definitionData, responseData.accessTypes));
|
||||
}
|
||||
}
|
||||
catch (error) { }
|
||||
}
|
||||
/**
|
||||
*
|
||||
*/
|
||||
export function* hack__simulateOwnedDefinitionData() {
|
||||
const race = yield select(rulesEngineSelectors.getRace);
|
||||
if (race) {
|
||||
yield call(hack__simulateOwnedRacialTraitDefinitionData, race);
|
||||
}
|
||||
yield call(hack__simulateOwnedClassFeatureDefinitionData);
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param race
|
||||
*/
|
||||
export function* hack__simulateOwnedRacialTraitDefinitionData(race) {
|
||||
const racialTraitDefinitions = RaceAccessors.getDefinitionRacialTraits(race)
|
||||
.map((contract) => {
|
||||
var _a;
|
||||
return (_a = RacialTraitAccessors.getDefinition(contract)) !== null && _a !== void 0 ? _a : null;
|
||||
})
|
||||
.filter(TypeScriptUtils.isNotNullOrUndefined);
|
||||
const racialTraitAccessTypeLookup = DefinitionPoolSimulators.simulateAccessTypeLookup(racialTraitDefinitions, AccessTypeEnum.OWNED);
|
||||
if (racialTraitDefinitions.length) {
|
||||
yield put(serviceDataActions.definitionPoolAdd(racialTraitDefinitions, racialTraitAccessTypeLookup));
|
||||
}
|
||||
}
|
||||
/**
|
||||
*
|
||||
*/
|
||||
export function* hack__simulateOwnedClassFeatureDefinitionData() {
|
||||
const classes = yield select(rulesEngineSelectors.getClasses);
|
||||
const classFeatureDefinitions = [];
|
||||
classes.forEach((charClass) => {
|
||||
ClassAccessors.getDefinitionClassFeatures(charClass).forEach((featureContract) => {
|
||||
const definition = ClassFeatureAccessors.getDefinition(featureContract);
|
||||
if (definition !== null) {
|
||||
classFeatureDefinitions.push(definition);
|
||||
}
|
||||
});
|
||||
});
|
||||
const classFeatureAccessTypeLookup = DefinitionPoolSimulators.simulateAccessTypeLookup(classFeatureDefinitions, AccessTypeEnum.OWNED);
|
||||
if (classFeatureDefinitions.length) {
|
||||
yield put(serviceDataActions.definitionPoolAdd(classFeatureDefinitions, classFeatureAccessTypeLookup));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user