diff --git a/module/data/activeEffect/changeTypes/armor.mjs b/module/data/activeEffect/changeTypes/armor.mjs index 713ef03d..f400d41b 100644 --- a/module/data/activeEffect/changeTypes/armor.mjs +++ b/module/data/activeEffect/changeTypes/armor.mjs @@ -44,8 +44,7 @@ export default class ArmorChange extends foundry.abstract.DataModel { label: 'Armor', defaultPriority: 20, handler: (actor, change, _options, _field, replacementData) => { - const baseParsedMax = itemAbleRollParse(change.value.max, actor, change.effect.parent); - const parsedMax = new Roll(baseParsedMax).evaluateSync().total; + const parsedMax = itemAbleRollParse(change.value.max, actor, change.effect.parent); game.system.api.documents.DhActiveEffect.applyChange( actor, { diff --git a/module/dice/dhRoll.mjs b/module/dice/dhRoll.mjs index aa4dd75f..e4a34bd4 100644 --- a/module/dice/dhRoll.mjs +++ b/module/dice/dhRoll.mjs @@ -246,7 +246,7 @@ export default class DHRoll extends Roll { return (this._formula = this.constructor.getFormula(this.terms)); } - /** + /** * Calculate total modifiers of any rolls, including non-dh rolls. * This exists because damage rolls still may receive base roll classes */ @@ -256,7 +256,7 @@ export default class DHRoll extends Roll { if (!roll.terms[i].isDeterministic) continue; const termTotal = roll.terms[i].total; if (typeof termTotal === 'number') { - const multiplier = roll.terms[i - 1]?.operator === ' - ' ? -1 : 1; + const multiplier = roll.terms[i - 1]?.operator === " - " ? -1 : 1; modifierTotal += multiplier * termTotal; } } @@ -272,7 +272,7 @@ export default class DHRoll extends Roll { const changeKeys = this.getActionChangeKeys(); return ( this.options.effects?.reduce((acc, effect) => { - if (effect.system.changes.some(x => changeKeys.some(key => x.key?.includes(key)))) { + if (effect.system.changes.some(x => changeKeys.some(key => x.key.includes(key)))) { acc[effect.id] = { id: effect.id, name: effect.name, diff --git a/module/dice/die/_module.mjs b/module/dice/die/_module.mjs index 19ca951a..ed892f6a 100644 --- a/module/dice/die/_module.mjs +++ b/module/dice/die/_module.mjs @@ -1,13 +1,9 @@ import DualityDie from './dualityDie.mjs'; -import HopeDie from './hopeDie.mjs'; -import FearDie from './fearDie.mjs'; import AdvantageDie from './advantageDie.mjs'; import DisadvantageDie from './disadvantageDie.mjs'; export const diceTypes = { DualityDie, - HopeDie, - FearDie, AdvantageDie, DisadvantageDie }; diff --git a/module/dice/die/dualityDie.mjs b/module/dice/die/dualityDie.mjs index 83229425..e9deb77f 100644 --- a/module/dice/die/dualityDie.mjs +++ b/module/dice/die/dualityDie.mjs @@ -43,10 +43,9 @@ export default class DualityDie extends foundry.dice.terms.Die { options: { appearance: {} } }; - const diceAppearance = await this.getDiceSoNiceAppearance(options.liveRoll.roll); - diceSoNiceRoll.dice[0].options.appearance = diceAppearance.appearance; - diceSoNiceRoll.dice[0].options.modelFile = diceAppearance.modelFile; - diceSoNiceRoll.dice[0].results = diceSoNiceRoll.dice[0].results.filter(x => x.active); + const preset = await getDiceSoNicePreset(diceSoNice[key], faces); + diceSoNiceRoll.dice[0].options.appearance = preset.appearance; + diceSoNiceRoll.dice[0].options.modelFile = preset.modelFile; await game.dice3d.showForRoll(diceSoNiceRoll, game.user, true); } else { @@ -60,11 +59,4 @@ export default class DualityDie extends foundry.dice.terms.Die { this.#updateResources(oldDuality, newDuality, options.liveRoll.actor); } } - - /** - * Overridden by extending classes HopeDie and FearDie - */ - async getDiceSoNiceAppearance() { - return {}; - } } diff --git a/module/dice/die/fearDie.mjs b/module/dice/die/fearDie.mjs deleted file mode 100644 index 2a09d432..00000000 --- a/module/dice/die/fearDie.mjs +++ /dev/null @@ -1,9 +0,0 @@ -import { getDiceSoNicePresets } from '../../config/generalConfig.mjs'; -import DualityDie from './dualityDie.mjs'; - -export default class FearDie extends DualityDie { - async getDiceSoNiceAppearance(roll) { - const { fear } = await getDiceSoNicePresets(roll, this.denomination, this.denomination); - return fear; - } -} diff --git a/module/dice/die/hopeDie.mjs b/module/dice/die/hopeDie.mjs deleted file mode 100644 index af5a4425..00000000 --- a/module/dice/die/hopeDie.mjs +++ /dev/null @@ -1,9 +0,0 @@ -import { getDiceSoNicePresets } from '../../config/generalConfig.mjs'; -import DualityDie from './dualityDie.mjs'; - -export default class HopeDie extends DualityDie { - async getDiceSoNiceAppearance(roll) { - const { hope } = await getDiceSoNicePresets(roll, this.denomination, this.denomination); - return hope; - } -} diff --git a/module/dice/dualityRoll.mjs b/module/dice/dualityRoll.mjs index f9a06d37..bc381f07 100644 --- a/module/dice/dualityRoll.mjs +++ b/module/dice/dualityRoll.mjs @@ -24,7 +24,7 @@ export default class DualityRoll extends D20Roll { } get dHope() { - if (!(this.dice[0] instanceof game.system.api.dice.diceTypes.HopeDie)) this.createBaseDice(); + if (!(this.dice[0] instanceof game.system.api.dice.diceTypes.DualityDie)) this.createBaseDice(); return this.dice[0]; } @@ -34,7 +34,7 @@ export default class DualityRoll extends D20Roll { } get dFear() { - if (!(this.dice[1] instanceof game.system.api.dice.diceTypes.FearDie)) this.createBaseDice(); + if (!(this.dice[1] instanceof game.system.api.dice.diceTypes.DualityDie)) this.createBaseDice(); return this.dice[1]; } @@ -68,8 +68,8 @@ export default class DualityRoll extends D20Roll { } get extraDice() { - const { HopeDie, FearDie, AdvantageDie, DisadvantageDie } = game.system.api.dice.diceTypes; - return this.dice.filter(x => ![HopeDie, FearDie, AdvantageDie, DisadvantageDie].some(die => x instanceof die)); + const { DualityDie, AdvantageDie, DisadvantageDie } = game.system.api.dice.diceTypes; + return this.dice.filter(x => ![DualityDie, AdvantageDie, DisadvantageDie].some(die => x instanceof die)); } setRallyChoices() { @@ -125,8 +125,8 @@ export default class DualityRoll extends D20Roll { /** @inheritDoc */ static fromData(data) { - data.terms[0].class = 'HopeDie'; - data.terms[2].class = 'FearDie'; + data.terms[0].class = 'DualityDie'; + data.terms[2].class = 'DualityDie'; if (data.options.roll.advantage?.type && data.terms[4]?.faces) { data.terms[4].class = data.options.roll.advantage.type === 1 ? 'AdvantageDie' : 'DisadvantageDie'; } @@ -135,18 +135,18 @@ export default class DualityRoll extends D20Roll { createBaseDice() { if ( - this.dice[0] instanceof game.system.api.dice.diceTypes.HopeDie && - this.dice[1] instanceof game.system.api.dice.diceTypes.FearDie + this.dice[0] instanceof game.system.api.dice.diceTypes.DualityDie && + this.dice[1] instanceof game.system.api.dice.diceTypes.DualityDie ) { this.terms = [this.terms[0], this.terms[1], this.terms[2]]; return; } - this.terms[0] = new game.system.api.dice.diceTypes.HopeDie({ + this.terms[0] = new game.system.api.dice.diceTypes.DualityDie({ faces: this.data.rules.dualityRoll?.defaultHopeDice ?? 12 }); this.terms[1] = new foundry.dice.terms.OperatorTerm({ operator: '+' }); - this.terms[2] = new game.system.api.dice.diceTypes.FearDie({ + this.terms[2] = new game.system.api.dice.diceTypes.DualityDie({ faces: this.data.rules.dualityRoll?.defaultFearDice ?? 12 }); } diff --git a/styles/less/global/prose-mirror.less b/styles/less/global/prose-mirror.less index 3523dc89..506fb8b7 100644 --- a/styles/less/global/prose-mirror.less +++ b/styles/less/global/prose-mirror.less @@ -4,7 +4,6 @@ .application.daggerheart { prose-mirror { height: 100% !important; - width: 100%; .editor-menu { background-color: transparent; diff --git a/styles/less/sheets/actors/party/resources.less b/styles/less/sheets/actors/party/resources.less index 68628295..4db254bf 100644 --- a/styles/less/sheets/actors/party/resources.less +++ b/styles/less/sheets/actors/party/resources.less @@ -155,26 +155,6 @@ body.game:is(.performance-low, .noblur) { } } - .stat-section { - position: relative; - display: flex; - gap: 10px; - background-color: light-dark(transparent, @dark-blue); - color: light-dark(@dark-blue, @golden); - padding: 5px 10px; - border: 1px solid light-dark(@dark-blue, @golden); - border-radius: 3px; - align-items: center; - width: fit-content; - - h4 { - font-size: var(--font-size-12); - font-weight: bold; - text-transform: uppercase; - color: light-dark(@dark-blue, @golden); - } - } - .threshold-section { display: flex; align-self: center; diff --git a/system.json b/system.json index 28d849b3..ea71aaba 100644 --- a/system.json +++ b/system.json @@ -2,7 +2,7 @@ "id": "daggerheart", "title": "Daggerheart", "description": "An unofficial implementation of the Daggerheart system", - "version": "2.0.3", + "version": "2.0.1", "compatibility": { "minimum": "14.359", "verified": "14.359", @@ -297,7 +297,7 @@ "background": "systems/daggerheart/assets/logos/FoundrybornBackgroundLogo.png", "primaryTokenAttribute": "resources.hitPoints", "secondaryTokenAttribute": "resources.stress", - "url": "https://github.com/Foundryborne/daggerheart", - "manifest": "https://raw.githubusercontent.com/Foundryborne/daggerheart/main/system.json", - "download": "https://github.com/Foundryborne/daggerheart/releases/download/2.0.3/system.zip" + "url": "https://your/hosted/system/repo/", + "manifest": "https://your/hosted/system/repo/system.json", + "download": "https://your/packaged/download/archive.zip" } diff --git a/templates/sheets/actors/party/resources.hbs b/templates/sheets/actors/party/resources.hbs index b53282ca..bfbfb578 100644 --- a/templates/sheets/actors/party/resources.hbs +++ b/templates/sheets/actors/party/resources.hbs @@ -87,12 +87,6 @@ {{/unless}} - {{#if (eq actor.type 'character')}} -