Combat séparé par actions

la classe RdDCombat a pour vocation de gérer les interactions entre
attaques, défenses, ...

Séparation de:
- attaque
- parades
- esquive
- encaisser

gestion des résultats de dés par actions

- _onAttaqueParticuliere
- _onAttaqueNormale
- _onAttaqueEchec
- _onAttaqueEchecTotal
- _onParadeParticuliere
- _onParadeNormale
- _onParadeEchec
- _onParadeEchecTotal
- _onEsquiveParticuliere
- _onEsquiveNormale
- _onEsquiveEchec
- _onEsquiveEchecTotal

Séparation de demiSurprise et de needSignificative

les callbacks des boutons dans le chat sont enregistrés cette classe

Par ailleurs:

- Fix mortel/non-mortel (coche puis décoche restait non-mortel)
- création de classes pour les armes, les compétences
- fix du recul (ne pouvait pas marcher)
This commit is contained in:
2020-12-12 21:58:44 +01:00
parent 59a54b8a90
commit 2bcc1a7ba3
9 changed files with 925 additions and 203 deletions

View File

@ -22,7 +22,7 @@ export class RdDRollDialog extends Dialog {
else {
myButtons = {
rollButton: { label: "Lancer", callback: html => this.actor.performRoll(this.rollData) }
};
};
}
// Common conf
@ -33,13 +33,17 @@ export class RdDRollDialog extends Dialog {
if (mode == "competence") {
dialogConf.title = "Test de compétence"
dialogOptions.height = 430
ui.notifications.warn("RdDRollDialog - Plus utilisé pour les compétences")
} else if (mode == "arme") {
dialogConf.title = "Test de combat/arme"
dialogOptions.height = 460
} else if (mode == "carac") {
ui.notifications.warn("RdDRollDialog - Plus utilisé pour les caractéristiques")
dialogConf.title = "Test de caractéristique"
dialogOptions.height = 420
} else if (mode == "sort") {
ui.notifications.warn("RdDRollDialog - Plus utilisé pour les sorts")
dialogConf.title = "Lancer un sort"
dialogOptions.height = 460
}
@ -146,19 +150,19 @@ export class RdDRollDialog extends Dialog {
updateRollResult(rollData);
});
html.find('#coupsNonMortels').change((event) => {
this.rollData.mortalite = event.currentTarget.checked ? "non-mortel" : "non-mortel";
});
this.rollData.mortalite = event.currentTarget.checked ? "non-mortel" : "mortel";
});
html.find('#isCharge').change((event) => {
this.rollData.isCharge = event.currentTarget.checked;
});
});
html.find('#surencMalusApply').change((event) => {
this.rollData.surencMalusApply = event.currentTarget.checked;
updateRollResult(rollData);
});
});
html.find('#useEncForNatation').change((event) => {
this.rollData.useEncForNatation = event.currentTarget.checked;
updateRollResult(rollData);
});
});
}
static _isIgnoreEtatGeneral(rollData) {