diff --git a/changelog.md b/changelog.md index 1fc8d720..80722d99 100644 --- a/changelog.md +++ b/changelog.md @@ -5,6 +5,7 @@ - mise à jour de version foundry-cli - correction des catégories de parades des compendiums - des ne pouvaient pas parer (exemple: le bouclier du guerrier sorde) +- les difficultés des jets d'attaque/défense après appel à la chance sont conservées - L'absence des compétences cuisine/jeu ne bloque plus l'accès à la fenêtre de jets (cas des invocations) ## 13.0.38 - L'urgence d'Illisys diff --git a/module/actor.js b/module/actor.js index 18915a20..5d02aebd 100644 --- a/module/actor.js +++ b/module/actor.js @@ -2134,13 +2134,13 @@ export class RdDActor extends RdDBaseActorSang { { onRollDone: (dialog, roll) => RollDialog.onRollDoneClose(dialog, roll), callbacks: [ - async roll => await this.$appelChanceResult(roll, onSuccess, onEchec) + async roll => await this.$onAppelChance(roll, onSuccess, onEchec) ] }) } /* -------------------------------------------- */ - async $appelChanceResult(rollData, onSuccess, onEchec) { + async $onAppelChance(rollData, onSuccess, onEchec) { if (rollData.rolled.isSuccess) { await this.setFlag(SYSTEM_RDD, 'utilisationChance', true); await this.chanceActuelleIncDec(-1); diff --git a/module/roll/chat-roll-result.mjs b/module/roll/chat-roll-result.mjs index 0c2e6bfc..425e1aaf 100644 --- a/module/roll/chat-roll-result.mjs +++ b/module/roll/chat-roll-result.mjs @@ -209,6 +209,7 @@ export default class ChatRollResult { async onAppelChanceSuccess(roll, chatMessage) { roll.type.retry = true + roll.type.appelChance = true await this.updateChatMessage(chatMessage, roll) const callbacks = [ChatUtility.remover(chatMessage)] diff --git a/module/roll/roll-part-attaque.mjs b/module/roll/roll-part-attaque.mjs index ecbb24d0..09dde226 100644 --- a/module/roll/roll-part-attaque.mjs +++ b/module/roll/roll-part-attaque.mjs @@ -187,7 +187,9 @@ export class RollPartAttaque extends RollPartSelect { part.setDiff(rollData, { type: DIFF.DEFAUT }) } else { - part.setDiff(rollData, { type: DIFF.ATTAQUE, diff: current.initialDiff }) + if (!rollData.type.appelChance){ + part.setDiff(rollData, { type: DIFF.ATTAQUE, diff: current.initialDiff }) + } current.initialDiff = undefined } break diff --git a/module/roll/roll-part-comp.mjs b/module/roll/roll-part-comp.mjs index e8c21cc5..4726035b 100644 --- a/module/roll/roll-part-comp.mjs +++ b/module/roll/roll-part-comp.mjs @@ -47,8 +47,11 @@ export class RollPartComp extends RollPartSelect { const current = this.getCurrent(rollData) const selectedCarac = RollPart.getSelectedPart(rollData, PART_CARAC) const selectedDiff = RollPart.getSelectedPart(rollData, PART_DIFF) - this.rollPartCarac.selectByKey(rollData, selectedCarac?.key ?? current.comp.system.defaut_carac) - this.rollPartDiff.setDiff(rollData, selectedDiff?.value ?? current.comp.system.default_diffLibre) + if (!rollData.type.appelChance){ + this.rollPartCarac.selectByKey(rollData, selectedCarac?.key ?? current.comp.system.defaut_carac) + this.rollPartDiff.setDiff(rollData, selectedDiff?.value ?? current.comp.system.default_diffLibre) + } + } } diff --git a/module/roll/roll-part-defense.mjs b/module/roll/roll-part-defense.mjs index f80fb4ba..55c34085 100644 --- a/module/roll/roll-part-defense.mjs +++ b/module/roll/roll-part-defense.mjs @@ -131,7 +131,11 @@ export class RollPartDefense extends RollPartSelect { switch (part.code) { case PART_CARAC: return part.filterCaracs(rollData, refs.defenses.length > 0 ? [current.carac] : ['impossible']) case PART_COMP: return part.filterComps(rollData, refs.defenses.length > 0 ? [current.comp?.name] : ['impossible']) - case PART_DIFF: return part.setDiff(rollData, this.getDiffDefense(rollData)) + case PART_DIFF: + if (!rollData.type.appelChance) { + return part.setDiff(rollData, this.getDiffDefense(rollData)) + } + return case PART_SIGN: return part.setArme(rollData, this.getArmeDisparate(rollData), current.forceRequise) } }