#36 Gestion des taches et création à partir d'un livre

This commit is contained in:
2020-12-15 21:28:55 +01:00
parent dc67c36b0a
commit e64c350632
8 changed files with 77 additions and 21 deletions

View File

@ -1494,6 +1494,25 @@ export class RdDActor extends Actor {
dialog.render(true);
}
/* -------------------------------------------- */
async creerTacheDepuisLivre( item ) {
console.log("FROM ITEM", item);
let tache = { name: "Lire " + item.name, type: 'tache',
data: {
carac: 'intellect',
competence: 'Ecriture',
difficulte: item.data.data.difficulte,
periodicite: "60 minutes",
fatigue: 2,
points_de_tache: item.data.data.points_de_tache,
points_de_tache_courant: 0,
description: "Lecture du livre " + item.name +
" - XP : " + item.data.data.xp + " - Compétences : " + item.data.data.competence
}
}
await this.createOwnedItem( tache, { renderSheet: true } );
}
/* -------------------------------------------- */
getTache ( id ) {
return this.data.items.find( item => item._id == id );
@ -1523,24 +1542,33 @@ export class RdDActor extends Actor {
label: 'Jet de Tâche ' + tache.name,
callbacks: [
this.createCallbackExperience(),
{ action: this._tacheResult }
{ action: r => this._tacheResult(r) }
]
} );
dialog.render(true);
dialog.render(true);
}
/* -------------------------------------------- */
_tacheResult(rollData) {
// Mise à jour de la tache
rollData.tache.data.points_de_tache_courant += rollData.rolled.ptTache;
this.updateEmbeddedEntity( "OwnedItem", rollData.tache);
this.santeIncDec( "fatigue", -rollData.tache.data.fatigue);
// Message de résultat
ChatUtility.chatWithRollMode({
content: "<strong>Test de Tache : " + rollData.tache.name + " - " + rollData.selectedCarac.label + " / " + rollData.competence.name + "</strong>"
+ "<br>Difficultés <strong>libre : " + rollData.diffLibre + "</strong> / conditions : " + Misc.toSignedString(rollData.diffConditions) +" / état : " + rollData.etat
+ RdDResolutionTable.explain(rollData.rolled)
+ "<br>" + RdDResolutionTable.explain(rollData.rolled)
+ "<br>Points de taches : " + rollData.rolled.ptTache + ", ajustement qualité: " + rollData.rolled.ptQualite
}, this.name);
rollData.tache.data.points_de_tache_courant += rollData.rolled.ptTache;
rollData.actor.updateEmbeddedEntity( "OwnedItem", rollData.tache);
// Message spécifique de la tâche
ChatUtility.chatWithRollMode({
content: "Votre tâche <strong>" + rollData.tache.name + "</strong> a duré " + rollData.tache.data.periodicite + "."
+ "<br>Votre avancement est désormais de " + rollData.tache.data.points_de_tache_courant + " Points de Tache sur un objectif de "
+ rollData.tache.data.points_de_tache + "."
+ "<br>Et vous vous êtes fatigué de " + rollData.tache.data.fatigue + " cases."
}, this.name);
}
/* -------------------------------------------- */