From 71a15e83c90cf72356b07966b28713160451eaee Mon Sep 17 00:00:00 2001 From: macniel Date: Mon, 26 Jan 2026 17:45:28 +0100 Subject: [PATCH] mini attack rolls now use the same chatty as the big boys. --- src/module/data/skill.mjs | 49 ++++++------------------------ src/module/documents/character.mjs | 11 ++++--- 2 files changed, 17 insertions(+), 43 deletions(-) diff --git a/src/module/data/skill.mjs b/src/module/data/skill.mjs index 63c4c2a5..0e28dbf9 100644 --- a/src/module/data/skill.mjs +++ b/src/module/data/skill.mjs @@ -81,49 +81,20 @@ export class SkillDataModel extends BaseItem { async #combatRoll(rollMode, mode) { const owner = this.parent.parent - const rollData = owner.getRollData() - - let targetNumber = 0 if (mode === this.SKILL_MODE.ATTACK) { - targetNumber = this.at + owner.system.at.basis + owner.rollAttack({ + skill: this.parent._id, + target: owner._id, + mod: 0, + penalty: 0, + actor: owner, + circumstance: 0, + targetNumber: this.at + owner.system.at.basis + }) } else { - targetNumber = this.pa + owner.system.pa.basis + //targetNumber = this.pa + owner.system.pa.basis } - - // TODO: Migrate to DSARoll - let roll1 = new Roll(`1d20cs<${targetNumber}`, owner.getRollData()); - - let evaluated1 = (await roll1.evaluate()) - - const rolledValue = evaluated1.terms[0].results[0].result - - if (rolledValue === 1 || rolledValue === 20) { // TODO: Modify this target - // fill with actual evaluation (targetNumber should be reduced by X and roll against that again) - } - - let message = "" - if (mode === this.SKILL_MODE.ATTACK) { - if (rolledValue <= targetNumber) { - message = `Würde treffen [${rolledValue}]` - } else { - message = `Verfehlt [${rolledValue}]` - } - } else { - if (rolledValue <= targetNumber) { - message = `Würde parrieren [${rolledValue}]` - } else { - message = `Verfehlt die parade [${rolledValue}]` - } - } - - evaluated1.toMessage({ - speaker: ChatMessage.getSpeaker({actor: owner}), - flavor: message, - rollMode, - }, { - }) - } async #talentRoll(rollMode) { diff --git a/src/module/documents/character.mjs b/src/module/documents/character.mjs index c471a5d6..e20e1506 100644 --- a/src/module/documents/character.mjs +++ b/src/module/documents/character.mjs @@ -500,9 +500,13 @@ export class Character extends Actor { async rollAttack(data) { const maneuver = data.manuever - const weapon = this.itemTypes["Equipment"].find(p => p._id === data.weapon) - const skill = this.itemTypes["Skill"].find(p => p._id === data.skill) - const target = game.actors.get(game.scenes.current.tokens.find(p => p._id === data.target).actorId) + const weapon = this.itemTypes["Equipment"].find(p => p._id === data.weapon) ?? this.itemTypes["Skill"].find(p => p._id === data.skill) + let target = 0 + try { + target = game.actors.get(game.scenes.current.tokens.find(p => p._id === data.target).actorId) + } catch (e) { + target = game.actors.get(data.target) + } let evaluated = await evaluateRoll("1d20", { value: data.targetNumber, @@ -514,7 +518,6 @@ export class Character extends Actor { const context = { weapon: weapon.name, maneuver, - skill: skill.name, target: target.name, attacker: this._id, mod: data.mod,