#76 : Jets de dés assistés pour les méditations

This commit is contained in:
2021-01-04 22:03:00 +01:00
parent 35ec95a176
commit 544c0ba94b
9 changed files with 181 additions and 4 deletions

View File

@ -1708,7 +1708,7 @@ export class RdDActor extends Actor {
}
/* -------------------------------------------- */
getTache ( id ) {
getTacheMeditation ( id ) {
return this.data.items.find( item => item._id == id );
}
@ -1757,6 +1757,60 @@ export class RdDActor extends Actor {
this.updateEmbeddedEntity( "OwnedItem", rollData.tache);
}
/* -------------------------------------------- */
async rollMeditation( id ) {
let meditation = duplicate( this.getTacheMeditation( id ) );
let competence = duplicate(this.getCompetence(meditation.data.competence));
competence.data.defaut_carac = "intellect"; // Meditation = tjs avec intellect
let meditationData = {
competence: competence,
meditation: meditation,
diffConditions: 0,
editLibre: false,
editConditions: true,
isHeure: false,
isVeture: false,
isComportement: false,
isPurification: false,
carac : { }
};
meditationData.carac["intellect"] = duplicate(this.data.data.carac["intellect"]);
console.log("rollMedittion !!!", meditationData);
const dialog = await RdDRoll.create(this, meditationData, {html: 'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-meditation.html'}, {
name: 'jet-meditation',
label: 'Jet de Meditation ' + meditation.name,
height: 600,
callbacks: [
this.createCallbackExperience(),
{ condition: r=> r.rolled.isETotal, action: r => this._meditationETotal(r)},
{ action: r => this._meditationResult(r) }
]
} );
dialog.render(true);
}
/* -------------------------------------------- */
async _meditationResult(meditationData) {
this.santeIncDec( "fatigue", 2);
meditationData.diffLecture = -7;
if (meditationData.rolled.isPart )
meditationData.diffLecture = 0;
else if (meditationData.rolled.isSign )
meditationData.diffLecture = -3;
RdDResolutionTable.displayRollData(meditationData, this.name, 'chat-resultat-meditation.html');
}
/* -------------------------------------------- */
_meditationETotal(meditationData) {
meditationData.meditation.data.malus--;
this.updateEmbeddedEntity( "OwnedItem", meditationData.meditation);
}
/* -------------------------------------------- */
async _competenceResult(rollData) {
RdDResolutionTable.displayRollData(rollData, this.name, 'chat-resultat-competence.html')