import { getCommandTarget, rollCommandToJSON } from '../helpers/utils.mjs'; export default function DhFateRollEnricher(match, _options) { const roll = rollCommandToJSON(match[1], match[0]); if (!roll) return match[0]; const fateTypeFromRoll = getFateType(roll?.type); if (fateTypeFromRoll == 'BAD') { ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.fateTypeParsing')); return; } return getFateMessage(roll.result, roll?.flavor); } export function getFateType(fateTypeValue) { const fateTypeFromValue = fateTypeValue ? fateTypeValue.toLowerCase() == 'fear' ? 'Fear' : fateTypeValue.toLowerCase() == 'hope' ? 'Hope' : 'BAD' : 'Hope'; return fateTypeFromValue; } function getFateMessage(roll, flavor) { const fateType = getFateType(roll?.type); if (fateType == 'BAD') { ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.fateTypeParsing')); return ''; } const fateTypeLocalized = fateType === 'Hope' ? game.i18n.localize('DAGGERHEART.GENERAL.hope') : game.i18n.localize('DAGGERHEART.GENERAL.fear'); const title = flavor ?? fateTypeLocalized + ' ' + game.i18n.localize('DAGGERHEART.GENERAL.fate') + ' ' + game.i18n.localize('DAGGERHEART.GENERAL.roll'); const dataLabel = game.i18n.localize('DAGGERHEART.GENERAL.fate'); const fateElement = document.createElement('span'); fateElement.innerHTML = ` `; return fateElement; } export const renderFateButton = async event => { const button = event.currentTarget, target = getCommandTarget({ allowNull: true }); console.log('button', button); const fateTypeFromButton = getFateType(button.dataset?.fatetype); if (fateTypeFromButton == 'BAD') { ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.fateTypeParsing')); return; } await enrichedFateRoll( { target, title: button.dataset.title, label: button.dataset.label, fateType: fateTypeFromButton }, event ); }; export const enrichedFateRoll = async ({ target, title, label, fateType }, event) => { const config = { event: event ?? {}, title: title, headerTitle: label, roll: {}, hasRoll: true, fateType: fateType }; config.data = { experiences: {}, traits: {}, fateType: fateType }; config.source = { actor: target?.uuid }; await CONFIG.Dice.daggerheart.FateRoll.build(config); return config; };