Nouvelle fenêtre: attaque/defense
quelques améliorations préparation pour gérer les messages de résultats en fonction du type de jet (attaque/compétence/...) quelques corrections (suppression du filtre de compétences quand on change de type de jet, astrologie, ..)
This commit is contained in:
@@ -19,7 +19,7 @@ import RollDialog from "./roll/roll-dialog.mjs";
|
||||
import { PART_DEFENSE } from "./roll/roll-part-defense.mjs";
|
||||
import { PART_ATTAQUE } from "./roll/roll-part-attaque.mjs";
|
||||
import { RollDialogAdapter } from "./roll/roll-dialog-adapter.mjs";
|
||||
import { ROLL_MODE_ATTAQUE, ROLL_MODE_DEFENSE } from "./roll/roll-constants.mjs";
|
||||
import { ROLL_TYPE_ATTAQUE, ROLL_TYPE_DEFENSE } from "./roll/roll-constants.mjs";
|
||||
|
||||
/* -------------------------------------------- */
|
||||
const premierRoundInit = [
|
||||
@@ -565,7 +565,7 @@ export class RdDCombat {
|
||||
// TODO: en cas de demi-surprise en défense, pas de changement à la règle de base
|
||||
return rollData.rolled.isETotal
|
||||
}
|
||||
if (rollData.mode == ROLL_MODE_ATTAQUE && rollData.surprise == 'demi'){
|
||||
if (rollData.mode == ROLL_TYPE_ATTAQUE && rollData.surprise == 'demi') {
|
||||
// échec normal à l'attaque en demi surprise
|
||||
return rollData.rolled.isEchec && rollData.rolled.code != 'notSign'
|
||||
}
|
||||
@@ -702,7 +702,7 @@ export class RdDCombat {
|
||||
/* -------------------------------------------- */
|
||||
_prepareAttaque(competence, arme) {
|
||||
let rollData = {
|
||||
mode: ROLL_MODE_ATTAQUE,
|
||||
mode: ROLL_TYPE_ATTAQUE,
|
||||
alias: this.attacker?.getAlias(),
|
||||
passeArme: foundry.utils.randomID(16),
|
||||
mortalite: arme?.system.mortalite,
|
||||
@@ -979,25 +979,20 @@ export class RdDCombat {
|
||||
opponentTokenId: this.attackerTokenId,
|
||||
opponentId: this.attackerId,
|
||||
},
|
||||
mode: {
|
||||
allowed: ['defense'],
|
||||
current: 'defense'
|
||||
},
|
||||
type: { allowed: ['defense'], current: 'defense' },
|
||||
attaque: RollDialogAdapter.mapActionAttaque(attackerRoll),
|
||||
passeArme: attackerRoll.passeArme,
|
||||
}
|
||||
|
||||
await RollDialog.create(rollData, {
|
||||
onRoll: (dialog) => {
|
||||
dialog.close()
|
||||
},
|
||||
onRollDone: (dialog) => { dialog.close() },
|
||||
customChatMessage: true,
|
||||
callbacks: [async (actor, rd) => {
|
||||
this.removeChatMessageActionsPasseArme(rd.passeArme)
|
||||
callbacks: [async (roll) => {
|
||||
this.removeChatMessageActionsPasseArme(roll.passeArme)
|
||||
// defense: esquive / arme de parade / competence de défense
|
||||
if (!RdDCombat.isParticuliere(rd))
|
||||
await rd.active.actor.incDecItemUse(rd.current[PART_DEFENSE].defense?.id,)
|
||||
await this._onDefense(rd)
|
||||
if (!RdDCombat.isParticuliere(roll))
|
||||
await roll.active.actor.incDecItemUse(roll.current[PART_DEFENSE].defense?.id,)
|
||||
await this._onDefense(roll)
|
||||
}]
|
||||
})
|
||||
}
|
||||
@@ -1006,7 +1001,7 @@ export class RdDCombat {
|
||||
/* -------------------------------------------- */
|
||||
_prepareParade(attackerRoll, armeParade, competenceParade) {
|
||||
let defenderRoll = {
|
||||
mode: ROLL_MODE_DEFENSE,
|
||||
mode: ROLL_TYPE_DEFENSE,
|
||||
alias: this.defender?.getAlias(),
|
||||
passeArme: attackerRoll.passeArme,
|
||||
diffLibre: attackerRoll.diffLibre,
|
||||
@@ -1037,7 +1032,7 @@ export class RdDCombat {
|
||||
}
|
||||
}
|
||||
else {
|
||||
await this._onDefenseEchec(rollData)
|
||||
await this._onDefenseEchec(dialog, rollData)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1155,7 +1150,7 @@ export class RdDCombat {
|
||||
/* -------------------------------------------- */
|
||||
_prepareEsquive(attackerRoll, competence) {
|
||||
let rollData = {
|
||||
mode: ROLL_MODE_DEFENSE,
|
||||
mode: ROLL_TYPE_DEFENSE,
|
||||
alias: this.defender.getAlias(),
|
||||
passeArme: attackerRoll.passeArme,
|
||||
diffLibre: attackerRoll.diffLibre,
|
||||
|
Reference in New Issue
Block a user