forked from public/foundryvtt-reve-de-dragon
Rework chant danse jeu
This commit is contained in:
@ -2315,15 +2315,17 @@ export class RdDActor extends Actor {
|
||||
/* -------------------------------------------- */
|
||||
async _rollArt(artData, selected, oeuvre, callBackResult = r => this._resultArt(r)) {
|
||||
const actorData = Misc.data(this);
|
||||
mergeObject(artData, {
|
||||
oeuvre: oeuvre,
|
||||
art: oeuvre.type,
|
||||
competence: Misc.data(this.getCompetence(oeuvre.data.competence ?? artData.art)),
|
||||
diffLibre: - (oeuvre.data.niveau ?? 0),
|
||||
diffConditions: 0,
|
||||
use: { libre: false, conditions: true },
|
||||
selectedCarac: duplicate(actorData.data.carac[selected])
|
||||
});
|
||||
mergeObject(artData,
|
||||
{
|
||||
oeuvre: oeuvre,
|
||||
art: oeuvre.type,
|
||||
competence: duplicate(Misc.data(this.getCompetence(oeuvre.data.competence ?? artData.art))),
|
||||
diffLibre: - (oeuvre.data.niveau ?? 0),
|
||||
diffConditions: 0,
|
||||
use: { libre: false, conditions: true },
|
||||
selectedCarac: duplicate(actorData.data.carac[selected])
|
||||
},
|
||||
{ overwrite: false });
|
||||
artData.competence.data.defaut_carac = selected;
|
||||
if (!artData.forceCarac) {
|
||||
artData.forceCarac = {};
|
||||
@ -2366,13 +2368,13 @@ export class RdDActor extends Actor {
|
||||
const actorData = Misc.data(this);
|
||||
const artData = { art: 'danse', verbe: 'Danser', forceCarac: {} };
|
||||
const oeuvre = duplicate(this.getItemOfType(id, artData.art));
|
||||
const selectedCarac = this._getCaracDanse(oeuvre);
|
||||
if (oeuvre.data.agilite) {
|
||||
artData.forceCarac['agilite'] = duplicate(actorData.data.carac.agilite);
|
||||
}
|
||||
if (oeuvre.data.apparence) {
|
||||
artData.forceCarac['apparence'] = duplicate(actorData.data.carac.apparence);
|
||||
}
|
||||
const selectedCarac = this._getCaracDanse(oeuvre);
|
||||
await this._rollArt(artData, selectedCarac, oeuvre);
|
||||
}
|
||||
|
||||
@ -2434,12 +2436,21 @@ export class RdDActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollJeu(id) {
|
||||
const actorData = Misc.data(this);
|
||||
const oeuvre = Misc.data(this.getJeu(id));
|
||||
|
||||
const listCarac = oeuvre.data.caraccomp.toLowerCase().split(/[.,:\/-]/).map(it => it.trim());
|
||||
const carac = listCarac.length > 0 ? listCarac[0] : 'chance'
|
||||
const artData = {
|
||||
art: 'jeu', verbe: 'Jeu',
|
||||
use: { libre: true, conditions: true, },
|
||||
competence: duplicate(Misc.data(this.getCompetence('jeu'))),
|
||||
forceCarac: {}
|
||||
};
|
||||
const oeuvre = duplicate(this.getJeu(id));
|
||||
await this._rollArt(artData, oeuvre.data?.caraccomp.toLowerCase() ?? 'chance', oeuvre);
|
||||
listCarac.forEach(c => artData.forceCarac[c] = actorData.data.carac[c]);
|
||||
artData.competence.data.niveauReel = artData.competence.data.niveau;
|
||||
artData.competence.data.niveau = Math.max(artData.competence.data.niveau, oeuvre.data.base);
|
||||
await this._rollArt(artData, carac, oeuvre);
|
||||
}
|
||||
|
||||
async rollOeuvre(id) {
|
||||
@ -2597,9 +2608,8 @@ export class RdDActor extends Actor {
|
||||
let xpComp = 0;
|
||||
if (competence) {
|
||||
xpComp = xp - xpCarac;
|
||||
competence = duplicate(competence);
|
||||
competence.data.xp = Misc.toInt(competence.data.xp) + xpComp;
|
||||
await this.updateEmbeddedDocuments('Item', [competence]);
|
||||
let update = { _id: competence.id, 'data.xp': Misc.toInt(competence.data.xp) + xpComp };
|
||||
await this.updateEmbeddedDocuments('Item', [update]);
|
||||
} else {
|
||||
xpCarac = Math.max(xpCarac, 1);
|
||||
}
|
||||
@ -3229,7 +3239,7 @@ export class RdDActor extends Actor {
|
||||
}
|
||||
}
|
||||
rollData.competence.data.defaut_carac = caracTache;
|
||||
|
||||
|
||||
const dialog = await RdDRoll.create(this, rollData,
|
||||
{
|
||||
html: 'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-alchimie.html',
|
||||
|
Reference in New Issue
Block a user