forked from public/foundryvtt-reve-de-dragon
Gestion des maladies/poisons
This commit is contained in:
@ -536,7 +536,7 @@ export class RdDActor extends Actor {
|
||||
if (!retrograde) {
|
||||
return false;
|
||||
}
|
||||
mergeObject(retrograde, { "active": true, "premiers_soins": 0, "soins_complets": 0, "jours": 0, "loc": blessure.loc });
|
||||
mergeObject(retrograde, { "active": true, "psdone": blessure.psdone, "scdone": blessure.scdone, "premiers_soins": 0, "soins_complets": 0, "jours": 0, "loc": blessure.loc });
|
||||
}
|
||||
this._supprimerBlessure(blessure);
|
||||
return true;
|
||||
@ -544,7 +544,7 @@ export class RdDActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
_supprimerBlessure(blessure) {
|
||||
mergeObject(blessure, { "active": false, "premiers_soins": 0, "soins_complets": 0, "jours": 0, "loc": "" });
|
||||
mergeObject(blessure, { "active": false, "psdone": false, "scdone": false, "premiers_soins": 0, "soins_complets": 0, "jours": 0, "loc": "" });
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@ -1584,7 +1584,7 @@ export class RdDActor extends Actor {
|
||||
|
||||
countBlessuresNonSoigneeByName(name) {
|
||||
let blessures = Misc.templateData(this).blessures[name].liste;
|
||||
return blessures.filter( b => b.active && b.premiers_soins < 0).length;
|
||||
return blessures.filter( b => b.active && !b.psdone).length;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@ -1749,9 +1749,11 @@ export class RdDActor extends Actor {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async setDataBlessureFromSheet(gravite, index, psoins, pcomplets, jours, loc) {
|
||||
async setDataBlessureFromSheet(gravite, index, psoins, pcomplets, jours, loc, psdone, scdone) {
|
||||
let listBlessures = duplicate(Misc.templateData(this).blessures);
|
||||
let blessure = listBlessures[gravite + "s"].liste[index];
|
||||
blessure.psdone = psdone;
|
||||
blessure.scdone = scdone;
|
||||
blessure.premiers_soins = psoins;
|
||||
blessure.soins_complets = pcomplets;
|
||||
blessure.jours = jours;
|
||||
@ -3289,7 +3291,23 @@ export class RdDActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async jetEncaissement(rollData) {
|
||||
const roll = await RdDDice.roll("2d10", { showDice: true });
|
||||
let formula = "2d10";
|
||||
|
||||
// Chaque dé fait au minmum la difficulté libre
|
||||
if (ReglesOptionelles.isUsing('degat-minimum-malus-libre')) {
|
||||
if ( rollData.diffLibre < 0 ) {
|
||||
let valeurMin = Math.abs(rollData.diffLibre);
|
||||
formula += "min"+valeurMin;
|
||||
}
|
||||
}
|
||||
// Chaque dé fait au minmum la difficulté libre
|
||||
if (ReglesOptionelles.isUsing('degat-ajout-malus-libre')) {
|
||||
if ( rollData.diffLibre < 0 ) {
|
||||
let valeurMin = Math.abs(rollData.diffLibre);
|
||||
formula += "+"+valeurMin;
|
||||
}
|
||||
}
|
||||
let roll = await RdDDice.roll(formula, { showDice: true });
|
||||
|
||||
const armure = await this.computeArmure(rollData);
|
||||
const jetTotal = roll.total + rollData.dmg.total - armure;
|
||||
@ -3382,8 +3400,8 @@ export class RdDActor extends Actor {
|
||||
/* -------------------------------------------- */
|
||||
_setBlessure(blessure, encaissement) {
|
||||
blessure.active = true;
|
||||
blessure.premiers_soins = -1;
|
||||
blessure.soins_complets = -1;
|
||||
blessure.psdone = false;
|
||||
blessure.scdone = false;
|
||||
blessure.loc = encaissement.locName;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user