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,86 @@
|
||||
import { orderBy } from 'lodash';
|
||||
import { RuleDataUtils } from "../engine/RuleData";
|
||||
import { Constants } from "../index";
|
||||
import { getActionManager } from "./ActionManager";
|
||||
import { getActivatableManager } from "./ActivatableManager";
|
||||
import { getAttackManager } from "./AttackManager";
|
||||
import { MessageManager } from "./MessageManager";
|
||||
import { rulesEngineSelectors } from "../selectors";
|
||||
export var ActivationGroupKeyEnum;
|
||||
(function (ActivationGroupKeyEnum) {
|
||||
ActivationGroupKeyEnum["ACTIONS"] = "ACTIONS";
|
||||
ActivationGroupKeyEnum["BONUS_ACTIONS"] = "BONUS_ACTIONS";
|
||||
ActivationGroupKeyEnum["REACTIONS"] = "REACTIONS";
|
||||
ActivationGroupKeyEnum["OTHER"] = "OTHER";
|
||||
})(ActivationGroupKeyEnum || (ActivationGroupKeyEnum = {}));
|
||||
export class ActionsManager extends MessageManager {
|
||||
constructor(params) {
|
||||
super(params);
|
||||
this.params = params;
|
||||
}
|
||||
getActions() {
|
||||
const actions = rulesEngineSelectors.getActions(this.state);
|
||||
return actions.map((action) => getActionManager(Object.assign(Object.assign({}, this.params), { action })));
|
||||
}
|
||||
getCustomActions() {
|
||||
const customActions = rulesEngineSelectors.getCustomActions(this.state);
|
||||
return customActions.map((action) => getActionManager(Object.assign(Object.assign({}, this.params), { action })));
|
||||
}
|
||||
getAttacksPerActionInfo() {
|
||||
return rulesEngineSelectors.getAttacksPerActionInfo(this.state);
|
||||
}
|
||||
getAttackGroups() {
|
||||
const attackGroups = {};
|
||||
const attacks = rulesEngineSelectors.getAttacks(this.state);
|
||||
const attackManagers = attacks.map((attack) => getAttackManager(Object.assign(Object.assign({}, this.params), { attack })));
|
||||
attackGroups[ActivationGroupKeyEnum.ACTIONS] = attackManagers.filter((manager) => manager.isActionGroup());
|
||||
attackGroups[ActivationGroupKeyEnum.BONUS_ACTIONS] = attackManagers.filter((manager) => manager.isBonusActionGroup());
|
||||
attackGroups[ActivationGroupKeyEnum.REACTIONS] = attackManagers.filter((manager) => manager.isReactionGroup());
|
||||
attackGroups[ActivationGroupKeyEnum.OTHER] = attackManagers.filter((manager) => manager.isOtherGroup());
|
||||
return attackGroups;
|
||||
}
|
||||
getBasicActions() {
|
||||
const ruleData = rulesEngineSelectors.getRuleData(this.state);
|
||||
return ruleData.basicActions;
|
||||
}
|
||||
getBasicActionGroups() {
|
||||
const basicActionGroups = {};
|
||||
const ruleData = rulesEngineSelectors.getRuleData(this.state);
|
||||
const actionBasicActions = RuleDataUtils.getActivationTypeBasicActions(Constants.ActivationTypeEnum.ACTION, ruleData);
|
||||
const bonusBasicActions = RuleDataUtils.getActivationTypeBasicActions(Constants.ActivationTypeEnum.BONUS_ACTION, ruleData);
|
||||
const reactionBasicActions = RuleDataUtils.getActivationTypeBasicActions(Constants.ActivationTypeEnum.REACTION, ruleData);
|
||||
const otherBasicActions = [
|
||||
...RuleDataUtils.getActivationTypeBasicActions(Constants.ActivationTypeEnum.NO_ACTION, ruleData),
|
||||
...RuleDataUtils.getActivationTypeBasicActions(Constants.ActivationTypeEnum.MINUTE, ruleData),
|
||||
...RuleDataUtils.getActivationTypeBasicActions(Constants.ActivationTypeEnum.HOUR, ruleData),
|
||||
...RuleDataUtils.getActivationTypeBasicActions(Constants.ActivationTypeEnum.SPECIAL, ruleData),
|
||||
];
|
||||
basicActionGroups[ActivationGroupKeyEnum.ACTIONS] = ActionsManager.sortBasicActions(actionBasicActions);
|
||||
basicActionGroups[ActivationGroupKeyEnum.BONUS_ACTIONS] = ActionsManager.sortBasicActions(bonusBasicActions);
|
||||
basicActionGroups[ActivationGroupKeyEnum.REACTIONS] = ActionsManager.sortBasicActions(reactionBasicActions);
|
||||
basicActionGroups[ActivationGroupKeyEnum.OTHER] = ActionsManager.sortBasicActions(otherBasicActions);
|
||||
return basicActionGroups;
|
||||
}
|
||||
static sortBasicActions(basicActions) {
|
||||
return orderBy(basicActions, [(basicAction) => basicAction.name], ['asc']);
|
||||
}
|
||||
getActionGroups() {
|
||||
const actionGroups = {};
|
||||
const activatables = rulesEngineSelectors.getActivatables(this.state);
|
||||
const activatableManagers = activatables.map((activatable) => getActivatableManager(Object.assign(Object.assign({}, this.params), { activatable })));
|
||||
actionGroups[ActivationGroupKeyEnum.ACTIONS] = activatableManagers.filter((manager) => manager.isActionGroup());
|
||||
actionGroups[ActivationGroupKeyEnum.BONUS_ACTIONS] = activatableManagers.filter((manager) => manager.isBonusActionGroup());
|
||||
actionGroups[ActivationGroupKeyEnum.REACTIONS] = activatableManagers.filter((manager) => manager.isReactionGroup());
|
||||
actionGroups[ActivationGroupKeyEnum.OTHER] = activatableManagers.filter((manager) => manager.isOtherGroup());
|
||||
return actionGroups;
|
||||
}
|
||||
getRitualSpellGroups() {
|
||||
const ritualSpellGroups = {};
|
||||
const ritualSpells = rulesEngineSelectors.getRitualSpells(this.state);
|
||||
ritualSpellGroups[ActivationGroupKeyEnum.ACTIONS] = [];
|
||||
ritualSpellGroups[ActivationGroupKeyEnum.BONUS_ACTIONS] = [];
|
||||
ritualSpellGroups[ActivationGroupKeyEnum.REACTIONS] = [];
|
||||
ritualSpellGroups[ActivationGroupKeyEnum.OTHER] = ritualSpells;
|
||||
return ritualSpellGroups;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user