diff --git a/module/data/fields/action/summonField.mjs b/module/data/fields/action/summonField.mjs index 6845d2ba..a2275fa5 100644 --- a/module/data/fields/action/summonField.mjs +++ b/module/data/fields/action/summonField.mjs @@ -1,4 +1,4 @@ -import { getWorldActor, itemAbleRollParse, triggerChatRollFx } from '../../../helpers/utils.mjs'; +import { itemAbleRollParse, triggerChatRollFx } from '../../../helpers/utils.mjs'; import FormulaField from '../formulaField.mjs'; const fields = foundry.data.fields; @@ -42,7 +42,7 @@ export default class DHSummonField extends fields.ArrayField { const count = roll.total; if (!roll.isDeterministic) rolls.push(roll); - const actor = await getWorldActor(await foundry.utils.fromUuid(summon.actorUUID)); + const actor = await DHSummonField.getWorldActor(await foundry.utils.fromUuid(summon.actorUUID)); /* Extending summon data in memory so it's available in actionField.toChat. Think it's harmless, but ugly. Could maybe find a better way. */ summon.actor = actor.toObject(); @@ -62,6 +62,19 @@ export default class DHSummonField extends fields.ArrayField { DHSummonField.handleSummon(summonData, this.actor); } + /* Check for any available instances of the actor present in the world if we're missing artwork in the compendium. If none exists, create one. */ + static async getWorldActor(baseActor) { + const dataType = game.system.api.data.actors[`Dh${baseActor.type.capitalize()}`]; + if (baseActor.inCompendium && dataType && baseActor.img === dataType.DEFAULT_ICON) { + const worldActorCopy = game.actors.find(x => x.name === baseActor.name); + if (worldActorCopy) return worldActorCopy; + + return await game.system.api.documents.DhpActor.create(baseActor.toObject()); + } + + return baseActor; + } + static async handleSummon(summonData, actionActor) { await CONFIG.ux.TokenManager.createTokensWithPreview(summonData, { elevation: actionActor.token?.elevation }); diff --git a/module/helpers/utils.mjs b/module/helpers/utils.mjs index cb79a76b..6467edd7 100644 --- a/module/helpers/utils.mjs +++ b/module/helpers/utils.mjs @@ -889,27 +889,4 @@ export async function triggerChatRollFx(rolls, options = { whisper: false, blind export function shouldUseHopeFearAutomation(options = { gmAsPlayer: true }) { const { hopeFear } = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Automation); return (!game.user.isGM || options.gmAsPlayer) ? hopeFear.players : hopeFear.gm; -} - -export async function getWorldActor(baseActor) { - if (baseActor.inCompendium) { - const worldActorCopy = game.actors.find(x => - x._stats.compendiumSource === baseActor.uuid && - (!x.prototypeToken.actorLink || x.name === baseActor.name) - ); - - if (worldActorCopy) - return worldActorCopy; - - const baseActorData = baseActor; - return await game.system.api.documents.DhpActor.create({ - ...baseActorData, - _stats: { - ...baseActorData._stats, - compendiumSource: baseActor.uuid - } - }); - } - - return baseActor; } \ No newline at end of file diff --git a/styles/less/global/global.less b/styles/less/global/global.less index 19a9e519..c0e7f3fc 100644 --- a/styles/less/global/global.less +++ b/styles/less/global/global.less @@ -12,9 +12,6 @@ } .daggerheart.dh-style { - /** Not an actual scrollbar width (it can't be configured on all browsers) but actually a compensation value for scrollbar gutter purposes */ - --scrollbar-width: 10px; - * { scrollbar-width: thin; scrollbar-color: light-dark(@dark-blue, @golden) transparent; diff --git a/styles/less/global/prose-mirror.less b/styles/less/global/prose-mirror.less index 27048ddf..fc8e49f9 100644 --- a/styles/less/global/prose-mirror.less +++ b/styles/less/global/prose-mirror.less @@ -1,6 +1,5 @@ @import '../utils/colors.less'; @import '../utils/fonts.less'; -@import '../utils/mixin.less'; .application.daggerheart { prose-mirror { @@ -13,7 +12,6 @@ background-color: transparent; } .editor-content { - .with-scroll-shadows(); h1 { font-size: var(--font-size-32); } @@ -44,7 +42,7 @@ ul { list-style: disc; } - } + } // Fixes centering and makes it not render over scrollbar &:hover button.toggle:enabled { display: flex; diff --git a/styles/less/sheets/actors/actor-sheet-shared.less b/styles/less/sheets/actors/actor-sheet-shared.less index 5eb5b43c..89617103 100644 --- a/styles/less/sheets/actors/actor-sheet-shared.less +++ b/styles/less/sheets/actors/actor-sheet-shared.less @@ -54,37 +54,6 @@ } } - .tab.notes.active { - padding: 0; - margin: 0; - margin-top: -10px; // will be removed once tab-navigation bottom margin is removed on all actor sheets - scrollbar-gutter: unset; - - // Add padding around top level level prosemirrors used for note tabs - > prose-mirror { - @right-padding: calc(16px - var(--scrollbar-width)); - .editor-content { - scrollbar-gutter: stable; - padding-right: @right-padding; - } - &.inactive { - button.toggle { - top: 16px; - } - .editor-content { - padding: 16px @right-padding 4px 16px; - } - } - &.active { - padding: 8px 0 4px 16px; - } - } - - .artist-attribution { - padding-left: 16px; - } - } - .search-section { display: flex; gap: 10px; diff --git a/templates/sheets/actors/adversary/notes.hbs b/templates/sheets/actors/adversary/notes.hbs index d329d318..a5c3f706 100644 --- a/templates/sheets/actors/adversary/notes.hbs +++ b/templates/sheets/actors/adversary/notes.hbs @@ -1,9 +1,13 @@
- {{formInput notes.field value=notes.value enriched=notes.enriched toggled=true}} +
+ {{localize tabs.notes.label}} + {{formInput notes.field value=notes.value enriched=notes.enriched toggled=true}} +
+ {{#if (and showAttribution document.system.attribution.artist)}} {{/if}} diff --git a/templates/sheets/actors/environment/notes.hbs b/templates/sheets/actors/environment/notes.hbs index 1acf0e93..4f6b131e 100644 --- a/templates/sheets/actors/environment/notes.hbs +++ b/templates/sheets/actors/environment/notes.hbs @@ -3,7 +3,10 @@ data-tab='{{tabs.notes.id}}' data-group='{{tabs.notes.group}}' > - {{formInput notes.field value=notes.value enriched=notes.value toggled=true}} +
+ {{localize tabs.notes.label}} + {{formInput notes.field value=notes.value enriched=notes.value toggled=true}} +
{{#if (and showAttribution document.system.attribution.artist)}} diff --git a/templates/sheets/actors/npc/notes.hbs b/templates/sheets/actors/npc/notes.hbs index 7dd5432d..bc9ac3cf 100644 --- a/templates/sheets/actors/npc/notes.hbs +++ b/templates/sheets/actors/npc/notes.hbs @@ -1,7 +1,7 @@
{{formInput notes.field value=notes.value enriched=notes.enriched toggled=true}} diff --git a/templates/sheets/actors/party/notes.hbs b/templates/sheets/actors/party/notes.hbs index af21b29f..663a484a 100644 --- a/templates/sheets/actors/party/notes.hbs +++ b/templates/sheets/actors/party/notes.hbs @@ -1,7 +1,10 @@
- {{formInput notes.field value=notes.value enriched=notes.value toggled=true}} +
+ {{localize tabs.notes.label}} + {{formInput notes.field value=notes.value enriched=notes.value toggled=true}} +
\ No newline at end of file