Added effect enricher

This commit is contained in:
WBHarry 2025-07-19 22:19:55 +02:00
parent 6772a8fbd8
commit d3836fbeeb
8 changed files with 77 additions and 44 deletions

View file

@ -1,5 +1,3 @@
import { rollCommandToJSON } from '../helpers/utils.mjs';
export default function DhDamageEnricher(match, _options) {
const parts = match[1].split('|').map(x => x.trim());
@ -25,8 +23,7 @@ export default function DhDamageEnricher(match, _options) {
return getDamageMessage(value, type, match[0]);
}
export function getDamageMessage(damage, type, defaultElement) {
const dualityElement = document.createElement('span');
function getDamageMessage(damage, type, defaultElement) {
const typeIcons = type
.replace('[', '')
.replace(']', '')
@ -41,6 +38,7 @@ export function getDamageMessage(damage, type, defaultElement) {
const iconNodes = typeIcons.map(x => `<i class="fa-solid ${x}"></i>`).join('');
const dualityElement = document.createElement('span');
dualityElement.innerHTML = `
<button class="enriched-damage-button"
data-value="${damage}"

View file

@ -8,7 +8,7 @@ export default function DhDualityRollEnricher(match, _options) {
return getDualityMessage(roll);
}
export function getDualityMessage(roll) {
function getDualityMessage(roll) {
const traitLabel =
roll.trait && abilities[roll.trait]
? game.i18n.format('DAGGERHEART.GENERAL.check', {

View file

@ -0,0 +1,19 @@
export default async function DhEffectEnricher(match, _options) {
const effect = await foundry.utils.fromUuid(match[1]);
if (!effect) return match[0];
const dualityElement = document.createElement('span');
dualityElement.innerHTML = `
<a class="flexrow enriched-effect"
data-link
draggable="true"
data-uuid="${match[1]}"
data-tooltip="${game.i18n.localize('DAGGERHEART.UI.Tooltip.dragApplyEffect')}"
>
<img src="icons/svg/aura.svg" style="width: 24px;" />
<span>${effect.name}</span>
</a>
`;
return dualityElement;
}

View file

@ -1,8 +1,9 @@
import { default as DhDamageEnricher } from './DamageEnricher.mjs';
import { default as DhDualityRollEnricher } from './DualityRollEnricher.mjs';
import { default as DhTemplateEnricher } from './TemplateEnricher.mjs';
import { default as DhDamageEnricher, renderDamageButton } from './DamageEnricher.mjs';
import { default as DhDualityRollEnricher, renderDualityButton } from './DualityRollEnricher.mjs';
import { default as DhEffectEnricher } from './EffectEnricher.mjs';
import { default as DhTemplateEnricher, renderMeasuredTemplate } from './TemplateEnricher.mjs';
export { DhDamageEnricher, DhDualityRollEnricher, DhTemplateEnricher };
export { DhDamageEnricher, DhDualityRollEnricher, DhEffectEnricher, DhTemplateEnricher };
export const enricherConfig = [
{
@ -13,8 +14,30 @@ export const enricherConfig = [
pattern: /\[\[\/dr\s?(.*?)\]\]/g,
enricher: DhDualityRollEnricher
},
{
pattern: /^@Effect\[(.*)\]$/g,
enricher: DhEffectEnricher
},
{
pattern: /^@Template\[(.*)\]$/g,
enricher: DhTemplateEnricher
}
];
export const enricherRenderSetup = element => {
element
.querySelectorAll('.enriched-damage-button')
.forEach(element => element.addEventListener('click', renderDamageButton));
element
.querySelectorAll('.duality-roll-button')
.forEach(element => element.addEventListener('click', renderDualityButton));
element
.querySelectorAll('.measured-template-button')
.forEach(element => element.addEventListener('click', renderMeasuredTemplate));
// element
// .querySelectorAll('.enriched-effect')
// .forEach(element => element.addEventListener('dragstart', dragEnrichedEffect));
};