Difficultés attaque/défense sur appel à la chance

This commit is contained in:
2026-05-09 22:41:47 +02:00
parent 14a4b34bbd
commit f17996b1c8
6 changed files with 17 additions and 6 deletions

View File

@@ -5,6 +5,7 @@
- mise à jour de version foundry-cli - mise à jour de version foundry-cli
- correction des catégories de parades des compendiums - correction des catégories de parades des compendiums
- des ne pouvaient pas parer (exemple: le bouclier du guerrier sorde) - 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) - 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 ## 13.0.38 - L'urgence d'Illisys

View File

@@ -2134,13 +2134,13 @@ export class RdDActor extends RdDBaseActorSang {
{ {
onRollDone: (dialog, roll) => RollDialog.onRollDoneClose(dialog, roll), onRollDone: (dialog, roll) => RollDialog.onRollDoneClose(dialog, roll),
callbacks: [ 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) { if (rollData.rolled.isSuccess) {
await this.setFlag(SYSTEM_RDD, 'utilisationChance', true); await this.setFlag(SYSTEM_RDD, 'utilisationChance', true);
await this.chanceActuelleIncDec(-1); await this.chanceActuelleIncDec(-1);

View File

@@ -209,6 +209,7 @@ export default class ChatRollResult {
async onAppelChanceSuccess(roll, chatMessage) { async onAppelChanceSuccess(roll, chatMessage) {
roll.type.retry = true roll.type.retry = true
roll.type.appelChance = true
await this.updateChatMessage(chatMessage, roll) await this.updateChatMessage(chatMessage, roll)
const callbacks = [ChatUtility.remover(chatMessage)] const callbacks = [ChatUtility.remover(chatMessage)]

View File

@@ -187,7 +187,9 @@ export class RollPartAttaque extends RollPartSelect {
part.setDiff(rollData, { type: DIFF.DEFAUT }) part.setDiff(rollData, { type: DIFF.DEFAUT })
} }
else { 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 current.initialDiff = undefined
} }
break break

View File

@@ -47,8 +47,11 @@ export class RollPartComp extends RollPartSelect {
const current = this.getCurrent(rollData) const current = this.getCurrent(rollData)
const selectedCarac = RollPart.getSelectedPart(rollData, PART_CARAC) const selectedCarac = RollPart.getSelectedPart(rollData, PART_CARAC)
const selectedDiff = RollPart.getSelectedPart(rollData, PART_DIFF) const selectedDiff = RollPart.getSelectedPart(rollData, PART_DIFF)
this.rollPartCarac.selectByKey(rollData, selectedCarac?.key ?? current.comp.system.defaut_carac) if (!rollData.type.appelChance){
this.rollPartDiff.setDiff(rollData, selectedDiff?.value ?? current.comp.system.default_diffLibre) this.rollPartCarac.selectByKey(rollData, selectedCarac?.key ?? current.comp.system.defaut_carac)
this.rollPartDiff.setDiff(rollData, selectedDiff?.value ?? current.comp.system.default_diffLibre)
}
} }
} }

View File

@@ -131,7 +131,11 @@ export class RollPartDefense extends RollPartSelect {
switch (part.code) { switch (part.code) {
case PART_CARAC: return part.filterCaracs(rollData, refs.defenses.length > 0 ? [current.carac] : ['impossible']) 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_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) case PART_SIGN: return part.setArme(rollData, this.getArmeDisparate(rollData), current.forceRequise)
} }
} }