Meilleure gestion blessures graves vs endurance
This commit is contained in:
@ -1541,10 +1541,9 @@ export class RdDActor extends Actor {
|
||||
}
|
||||
if ( this.type == 'personnage') {
|
||||
// Gestion blessure graves : -1 pt endurance
|
||||
let nbGraves = this.countBlessuresByName("graves");
|
||||
let nbGraves = this.countBlessuresNonSoigneeByName( 'graves');
|
||||
if ( nbGraves > 0) {
|
||||
await this.santeIncDec("endurance", -1 );
|
||||
ChatMessage.create({ content: `${this.name} a perdu 1 point d'Endurance à cause d'au moins une Blessure Grave` });
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1583,6 +1582,10 @@ export class RdDActor extends Actor {
|
||||
return this.countBlessures(Misc.templateData(this).blessures[name].liste);
|
||||
}
|
||||
|
||||
countBlessuresNonSoigneeByName(name) {
|
||||
let blessures = Misc.templateData(this).blessures[name].liste;
|
||||
return blessures.filter( b => b.active && b.premiers_soins < 0).length;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async testSiSonne(endurance) {
|
||||
|
@ -221,16 +221,33 @@ export class RdDCalendrier extends Application {
|
||||
this.updateDisplay();
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
checkMaladie( periode) {
|
||||
for (let actor of game.actors) {
|
||||
if (actor.type == 'personnage') {
|
||||
let maladies = actor.filterItems( item => (item.type == 'maladie' || item.type == 'poison') && item.data.periodicite.toLowerCase().includes(periode) );
|
||||
for (let maladie of maladies) {
|
||||
ChatMessage.create({ content: `${actor.name} souffre de ${maladie.name} (${maladie.type}): vérifiez que les effets ne se sont pas aggravés !` });
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async incrementTime(minutes = 0) {
|
||||
this.calendrier.minutesRelative += minutes;
|
||||
this.checkMaladie("round");
|
||||
this.checkMaladie("minute");
|
||||
if (this.calendrier.minutesRelative >= RDD_MINUTES_PAR_HEURES) {
|
||||
this.calendrier.minutesRelative -= RDD_MINUTES_PAR_HEURES;
|
||||
this.calendrier.heureRdD += 1;
|
||||
}
|
||||
this.checkMaladie("heure");
|
||||
}
|
||||
if (this.calendrier.heureRdD >= RDD_HEURES_PAR_JOUR) {
|
||||
this.calendrier.heureRdD -= RDD_HEURES_PAR_JOUR;
|
||||
await this.incrementerJour();
|
||||
this.checkMaladie("heure");
|
||||
this.checkMaladie("jour");
|
||||
}
|
||||
game.settings.set("foundryvtt-reve-de-dragon", "calendrier", duplicate(this.calendrier));
|
||||
// Notification aux joueurs
|
||||
|
@ -1328,9 +1328,9 @@ export class RdDCombat {
|
||||
isGrave: false,
|
||||
isCritique: false
|
||||
}
|
||||
if (actor.countBlessuresByName("critiques") > 0) { // Pour éviter le cumul grave + critique
|
||||
if (actor.countBlessuresNonSoigneeByName("critiques") > 0) { // Pour éviter le cumul grave + critique
|
||||
data.isCritique = true;
|
||||
} else if (actor.countBlessuresByName("graves") > 0) {
|
||||
} else if (actor.countBlessuresNonSoigneeByName("graves") > 0) {
|
||||
data.isGrave = true;
|
||||
}
|
||||
|
||||
|
@ -378,6 +378,9 @@ export class RdDUtility {
|
||||
formData.gemmes = this.checkNull(formData.itemsByType['gemme']);
|
||||
formData.recettescuisine = this.checkNull(formData.itemsByType['recettecuisine']);
|
||||
formData.recettesAlchimiques = this.checkNull(formData.itemsByType['recettealchimique']);
|
||||
formData.maladies = this.checkNull(formData.itemsByType['maladie']);
|
||||
formData.poisons = this.checkNull(formData.itemsByType['poison']);
|
||||
formData.maladiesPoisons = formData.maladies.concat( formData.poisons);
|
||||
formData.objets = formData.conteneurs.concat(formData.materiel)
|
||||
.concat(formData.armes)
|
||||
.concat(formData.armures)
|
||||
|
Reference in New Issue
Block a user