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

@ -33,19 +33,27 @@ export class RdDRoll extends Dialog {
ajustementsConditions: CONFIG.RDD.ajustementsConditions,
difficultesLibres: CONFIG.RDD.difficultesLibres,
etat: actor.data.data.compteurs.etat.value,
carac: actor.data.data.carac,
finalLevel: 0,
diffConditions: 0,
diffLibre: 0,
forceValue : actor.getForceValue(),
malusArmureValue: (actor.type == 'personnage ' && actor.data.data.attributs && actor.data.data.attributs.malusarmure) ? actor.data.data.attributs.malusarmure.value : 0,
surencMalusFlag: actor.type == 'personnage ' ? (actor.data.data.compteurs.surenc.value < 0) : false,
surencMalusValue: actor.type == 'personnage ' ? actor.data.data.compteurs.surenc.value : 0,
surencMalusApply: false,
isNatation: rollData.competence ? rollData.competence.name.toLowerCase().includes("natation") : false,
useEncForNatation: false,
encValueForNatation: actor.encombrementTotal ? Math.floor(actor.encombrementTotal) : 0,
ajustementAstrologique: actor.ajustementAstrologique()
encValueForNatation: actor.encombrementTotal ? Math.floor(actor.encombrementTotal) : 0
// ,
// ajustementAstrologique: actor.ajustementAstrologique()
},
{ overwrite: false });
if (actor.isEntiteCauchemar())
{
rollData.needSignificative = false;
}
}
/* -------------------------------------------- */
@ -181,7 +189,10 @@ export class RdDRoll 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;