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,26 @@
|
||||
import { ItemAccessors } from '../Item';
|
||||
import { getItemRuleData } from './accessors';
|
||||
import { hack__itemCanBeAddedToInventory } from './hacks';
|
||||
import { validateItemByInfusionRules } from './validators';
|
||||
/**
|
||||
*
|
||||
* @param items
|
||||
* @param infusion
|
||||
* @param itemId
|
||||
* @param itemCanBeAddedLookup
|
||||
*/
|
||||
export function filterAvailableItems(items, infusion, itemId = null, itemCanBeAddedLookup = {}) {
|
||||
if (itemId !== null && !hack__itemCanBeAddedToInventory(infusion, itemId, itemCanBeAddedLookup)) {
|
||||
return items.filter((item) => itemId === ItemAccessors.getGroupedId(item));
|
||||
}
|
||||
const itemRuleData = getItemRuleData(infusion);
|
||||
if (itemRuleData === null) {
|
||||
return [];
|
||||
}
|
||||
let availableItems = [];
|
||||
const andRules = itemRuleData.itemRules !== null ? itemRuleData.itemRules : [];
|
||||
if (andRules.length) {
|
||||
availableItems = items.filter((item) => validateItemByInfusionRules(item, andRules));
|
||||
}
|
||||
return availableItems;
|
||||
}
|
||||
Reference in New Issue
Block a user