/** * Items for weighted rotation require an id and a weight. * @private */ /** * Because we need to modify weights, these will be created for each weighted item during * selection. Not exposed outside WeightedRotation.ts * @private */ /** * Selects an item from a list, using weighting and enforced rotation. * @param {WeightedItem[]} itemList The list of items to choose from. * @param {Function} validCheck Function to see if an individual item is valid. * @param {Object} [usedDict] Dictionary of used items, passed in by reference. If null, enforced * rotation is not used. * @private */ /** * Selects an item from a list, using weighting and enforced rotation (if usedDict is passed in). * Is not exposed otuside of WeightedRotation.ts * @param {WeightedItem[]} items The list of items to choose from. * @param {WeightedItem[]} usedItems List of already used items, to add to if needed * @param {Object} [usedDict] Dictionary of used items, passed in by reference. If null, enforced * rotation is not used. * @private */