diff --git a/module/applications/dialogs/d20RollDialog.mjs b/module/applications/dialogs/d20RollDialog.mjs index 6f320152..4a4b1556 100644 --- a/module/applications/dialogs/d20RollDialog.mjs +++ b/module/applications/dialogs/d20RollDialog.mjs @@ -109,11 +109,17 @@ export default class D20RollDialog extends HandlebarsApplicationMixin(Applicatio context.roll = this.roll; context.rollType = this.roll?.constructor.name; context.rallyDie = this.roll.rallyChoices; - const experiences = this.config.data?.system?.experiences || {}; + + const actorExperiences = this.config.data?.system?.experiences || {}; + const companionExperiences = this.config.roll.companionRoll + ? (this.config.data?.companion?.system.experiences ?? {}) + : null; + const experiences = companionExperiences ?? actorExperiences; context.experiences = Object.keys(experiences).map(id => ({ id, ...experiences[id] })); + context.selectedExperiences = this.config.experiences; context.advantage = this.config.roll?.advantage; context.disadvantage = this.config.roll?.disadvantage; diff --git a/module/applications/sheets/actors/companion.mjs b/module/applications/sheets/actors/companion.mjs index 9b85f622..21f09f02 100644 --- a/module/applications/sheets/actors/companion.mjs +++ b/module/applications/sheets/actors/companion.mjs @@ -71,10 +71,10 @@ export default class DhCompanionSheet extends DHBaseActorSheet { title: `${game.i18n.localize('DAGGERHEART.GENERAL.Roll.action')}: ${this.actor.name}`, headerTitle: `Companion ${game.i18n.localize('DAGGERHEART.GENERAL.Roll.action')}`, roll: { - trait: partner.system.spellcastModifierTrait?.key + trait: partner.system.spellcastModifierTrait?.key, + companionRoll: true }, - hasRoll: true, - data: partner.getRollData() + hasRoll: true }; const result = await partner.diceRoll(config); diff --git a/module/data/actor/character.mjs b/module/data/actor/character.mjs index 47660da4..92e1e978 100644 --- a/module/data/actor/character.mjs +++ b/module/data/actor/character.mjs @@ -677,6 +677,8 @@ export default class DhCharacter extends BaseDataActor { } } } + + this.companion.system.attack.roll.bonus = this.traits.instinct.value; } this.resources.hope.value = Math.min(baseHope, this.resources.hope.max); diff --git a/module/dice/d20Roll.mjs b/module/dice/d20Roll.mjs index 3ddd8027..f117ff65 100644 --- a/module/dice/d20Roll.mjs +++ b/module/dice/d20Roll.mjs @@ -99,11 +99,14 @@ export default class D20Roll extends DHRoll { this.options.roll.modifiers = this.applyBaseBonus(); + const actorExperiences = this.options.roll.companionRoll + ? (this.options.data?.companion?.system.experiences ?? {}) + : (this.options.data.system?.experiences ?? {}); this.options.experiences?.forEach(m => { - if (this.options.data.system?.experiences?.[m]) + if (actorExperiences[m]) this.options.roll.modifiers.push({ - label: this.options.data.system.experiences[m].name, - value: this.options.data.system.experiences[m].value + label: actorExperiences[m].name, + value: actorExperiences[m].value }); });