let tokens = [];
if (canvas.tokens.controlled.length > 0) {
tokens = canvas.tokens.controlled;
}
if (tokens.length > 0) {
main(tokens);
} else {
ui.notifications.error('Please select or target a token');
}
async function main(tokens) {
const currencies = ['Copper', 'Silver', 'Gold', 'Platinum'];
let template = '
| Actor | Currency |
';
const fmtOptions = {
minimumIntegerDigits: 1,
minimumFractionDigits: 2,
maximumFractionDigits: 2,
};
const fmt = Intl.NumberFormat('en-US', fmtOptions);
for (const token of tokens) {
const actor = token.actor;
let total = 0;
for (const item of actor.items.filter((i) => currencies.indexOf(i.name) > -1)) {
total += item.system.price * item.system.quantity;
}
template += `| ${actor.name} | ${fmt.format(total)} |
`;
}
template += '';
foundry.applications.api.DialogV2.prompt({
window: { title: 'Currency Totals' },
content: template,
});
}