forked from public/foundryvtt-reve-de-dragon
#76 : Jets de dés assistés pour les méditations
This commit is contained in:
@ -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')
|
||||
|
Reference in New Issue
Block a user