forked from public/foundryvtt-reve-de-dragon
Stress amélioré
Commande: /stress Ouvre une fenêtre pour gérer finement le stress (ou l'expérience) Commande: /stress <v> <motif> <nom> Stress donné à un acteur/joueur avec un nom proche Notifications des joueurs qui reçoivent du stress
This commit is contained in:
@ -1002,17 +1002,34 @@ export class RdDActor extends Actor {
|
||||
/* -------------------------------------------- */
|
||||
async updateCompteurValue(fieldName, fieldValue, raison = 'Inconnue') {
|
||||
await this.update({ [`data.compteurs.${fieldName}.value`]: fieldValue });
|
||||
if (fieldName == 'stress') {
|
||||
await this.updateExperienceLog('stress', fieldValue, raison);
|
||||
}
|
||||
await this.addStressExperienceLog(fieldName, fieldValue, 'forcé: '+raison);
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async addCompteurValue(fieldName, fieldValue, raison = 'Inconnue') {
|
||||
let oldValue = (Misc.templateData(this)).compteurs[fieldName].value;
|
||||
await this.update({ [`data.compteurs.${fieldName}.value`]: Number(oldValue) + Number(fieldValue) });
|
||||
if (fieldName == 'stress') {
|
||||
await this.updateExperienceLog('stress', fieldValue, raison);
|
||||
await this.addStressExperienceLog(fieldName, fieldValue, raison);
|
||||
}
|
||||
|
||||
async addStressExperienceLog(fieldName, fieldValue, raison) {
|
||||
switch (fieldName) {
|
||||
case 'stress': case 'experience':
|
||||
await this.updateExperienceLog(fieldName, fieldValue, raison);
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
distribuerStress(compteur, stress, motif) {
|
||||
if (game.user.isGM && this.hasPlayerOwner && this.isPersonnage()) {
|
||||
switch (compteur) {
|
||||
case 'stress': case 'experience':
|
||||
const message = `${this.name} a reçu ${stress} points ${compteur == 'stress' ? "de stress" : "d'expérience"} (raison : ${motif})`;
|
||||
this.addCompteurValue(compteur, stress, motif);
|
||||
ui.notifications.info(message);
|
||||
game.users.players.filter(player => player.active && player.character?.id == this.id)
|
||||
.forEach(player => ChatUtility.notifyUser(player.id, 'info', message));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user