mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-03-07 14:36:13 +01:00
Various fixes
This commit is contained in:
parent
3c9ef75645
commit
f65671f7ee
7 changed files with 34 additions and 14 deletions
|
|
@ -359,7 +359,9 @@ const updateAllRangeDependentEffects = async () => {
|
||||||
const effectsAutomation = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Automation).effects;
|
const effectsAutomation = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Automation).effects;
|
||||||
if (!effectsAutomation.rangeDependent) return;
|
if (!effectsAutomation.rangeDependent) return;
|
||||||
|
|
||||||
const tokens = canvas.scene.tokens;
|
const tokens = canvas.scene?.tokens;
|
||||||
|
if (!tokens) return;
|
||||||
|
|
||||||
if (game.user.character) {
|
if (game.user.character) {
|
||||||
// The character updates their character's token. There can be only one token.
|
// The character updates their character's token. There can be only one token.
|
||||||
const characterToken = tokens.find(x => x.actor === game.user.character);
|
const characterToken = tokens.find(x => x.actor === game.user.character);
|
||||||
|
|
|
||||||
|
|
@ -5,10 +5,7 @@ export default class DhSceneConfigSettings extends foundry.applications.sheets.S
|
||||||
super(options);
|
super(options);
|
||||||
|
|
||||||
Hooks.on(socketEvent.Refresh, ({ refreshType }) => {
|
Hooks.on(socketEvent.Refresh, ({ refreshType }) => {
|
||||||
if (refreshType === RefreshType.Scene) {
|
if (refreshType === RefreshType.Scene) this.render();
|
||||||
this.daggerheartFlag = new game.system.api.data.scenes.DHScene(this.document.flags.daggerheart);
|
|
||||||
this.render();
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -42,6 +39,8 @@ export default class DhSceneConfigSettings extends foundry.applications.sheets.S
|
||||||
|
|
||||||
async _preRender(context, options) {
|
async _preRender(context, options) {
|
||||||
await super._preFirstRender(context, options);
|
await super._preFirstRender(context, options);
|
||||||
|
|
||||||
|
if (!options.internalRefresh)
|
||||||
this.daggerheartFlag = new game.system.api.data.scenes.DHScene(this.document.flags.daggerheart);
|
this.daggerheartFlag = new game.system.api.data.scenes.DHScene(this.document.flags.daggerheart);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -52,7 +51,7 @@ export default class DhSceneConfigSettings extends foundry.applications.sheets.S
|
||||||
case 'dh':
|
case 'dh':
|
||||||
htmlElement.querySelector('#rangeMeasurementSetting')?.addEventListener('change', async event => {
|
htmlElement.querySelector('#rangeMeasurementSetting')?.addEventListener('change', async event => {
|
||||||
this.daggerheartFlag.updateSource({ rangeMeasurement: { setting: event.target.value } });
|
this.daggerheartFlag.updateSource({ rangeMeasurement: { setting: event.target.value } });
|
||||||
this.render();
|
this.render({ internalRefresh: true });
|
||||||
});
|
});
|
||||||
|
|
||||||
const dragArea = htmlElement.querySelector('.scene-environments');
|
const dragArea = htmlElement.querySelector('.scene-environments');
|
||||||
|
|
@ -69,7 +68,7 @@ export default class DhSceneConfigSettings extends foundry.applications.sheets.S
|
||||||
await this.daggerheartFlag.updateSource({
|
await this.daggerheartFlag.updateSource({
|
||||||
sceneEnvironments: [...this.daggerheartFlag.sceneEnvironments, data.uuid]
|
sceneEnvironments: [...this.daggerheartFlag.sceneEnvironments, data.uuid]
|
||||||
});
|
});
|
||||||
this.render();
|
this.render({ internalRefresh: true });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -92,7 +91,7 @@ export default class DhSceneConfigSettings extends foundry.applications.sheets.S
|
||||||
(_, index) => index !== Number.parseInt(button.dataset.index)
|
(_, index) => index !== Number.parseInt(button.dataset.index)
|
||||||
)
|
)
|
||||||
});
|
});
|
||||||
this.render();
|
this.render({ internalRefresh: true });
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @override */
|
/** @override */
|
||||||
|
|
|
||||||
|
|
@ -230,6 +230,14 @@ export class ItemBrowser extends HandlebarsApplicationMixin(ApplicationV2) {
|
||||||
result.flatMap(r => r),
|
result.flatMap(r => r),
|
||||||
'name'
|
'name'
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/* If any noticeable slowdown occurs, consider replacing with enriching description on clicking to expand descriptions */
|
||||||
|
for (const item of this.items) {
|
||||||
|
item.system.enrichedDescription =
|
||||||
|
(await item.system.getEnrichedDescription?.()) ??
|
||||||
|
(await foundry.applications.ux.TextEditor.implementation.enrichHTML(item.description));
|
||||||
|
}
|
||||||
|
|
||||||
this.fieldFilter = this._createFieldFilter();
|
this.fieldFilter = this._createFieldFilter();
|
||||||
|
|
||||||
if (this.presets?.filter) {
|
if (this.presets?.filter) {
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ export default class DhSceneNavigation extends foundry.applications.ui.SceneNavi
|
||||||
const environments = daggerheartInfo.sceneEnvironments.filter(
|
const environments = daggerheartInfo.sceneEnvironments.filter(
|
||||||
x => x && x.testUserPermission(game.user, 'LIMITED')
|
x => x && x.testUserPermission(game.user, 'LIMITED')
|
||||||
);
|
);
|
||||||
const hasEnvironments = environments.length > 0;
|
const hasEnvironments = environments.length > 0 && x.isView;
|
||||||
return {
|
return {
|
||||||
...x,
|
...x,
|
||||||
hasEnvironments,
|
hasEnvironments,
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,7 @@ export default class DHAttackAction extends DHDamageAction {
|
||||||
|
|
||||||
async use(event, options) {
|
async use(event, options) {
|
||||||
const result = await super.use(event, options);
|
const result = await super.use(event, options);
|
||||||
|
if (!result.message) return;
|
||||||
|
|
||||||
if (result.message.system.action.roll?.type === 'attack') {
|
if (result.message.system.action.roll?.type === 'attack') {
|
||||||
const { updateCountdowns } = game.system.api.applications.ui.DhCountdowns;
|
const { updateCountdowns } = game.system.api.applications.ui.DhCountdowns;
|
||||||
|
|
|
||||||
|
|
@ -67,7 +67,7 @@ export default class DhTooltipManager extends foundry.helpers.interaction.Toolti
|
||||||
if (item) {
|
if (item) {
|
||||||
const isAction = item instanceof game.system.api.models.actions.actionsTypes.base;
|
const isAction = item instanceof game.system.api.models.actions.actionsTypes.base;
|
||||||
const isEffect = item instanceof ActiveEffect;
|
const isEffect = item instanceof ActiveEffect;
|
||||||
await this.enrichText(item, isAction || isEffect);
|
await this.enrichText(item);
|
||||||
|
|
||||||
const type = isAction ? 'action' : isEffect ? 'effect' : item.type;
|
const type = isAction ? 'action' : isEffect ? 'effect' : item.type;
|
||||||
html = await foundry.applications.handlebars.renderTemplate(
|
html = await foundry.applications.handlebars.renderTemplate(
|
||||||
|
|
@ -202,10 +202,20 @@ export default class DhTooltipManager extends foundry.helpers.interaction.Toolti
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async enrichText(item, flatStructure) {
|
async enrichText(item) {
|
||||||
const { TextEditor } = foundry.applications.ux;
|
const { TextEditor } = foundry.applications.ux;
|
||||||
|
|
||||||
|
if (item.system?.metadata?.hasDescription) {
|
||||||
|
const enrichedValue =
|
||||||
|
(await item.system?.getEnrichedDescription?.()) ??
|
||||||
|
(await TextEditor.enrichHTML(item.system.description));
|
||||||
|
foundry.utils.setProperty(item, 'system.enrichedDescription', enrichedValue);
|
||||||
|
} else if (item.description) {
|
||||||
|
const enrichedValue = await TextEditor.enrichHTML(item.description);
|
||||||
|
foundry.utils.setProperty(item, 'enrichedDescription', enrichedValue);
|
||||||
|
}
|
||||||
|
|
||||||
const enrichPaths = [
|
const enrichPaths = [
|
||||||
{ path: flatStructure ? '' : 'system', name: 'description' },
|
|
||||||
{ path: 'system', name: 'features' },
|
{ path: 'system', name: 'features' },
|
||||||
{ path: 'system', name: 'actions' },
|
{ path: 'system', name: 'actions' },
|
||||||
{ path: 'system', name: 'customActions' }
|
{ path: 'system', name: 'customActions' }
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="item-desc extensible">
|
<div class="item-desc extensible">
|
||||||
<span class="wrapper">{{{system.description}}}</span>
|
<span class="wrapper">{{{system.enrichedDescription}}}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue