forked from public/foundryvtt-reve-de-dragon
#136 Ajout des connaissances
This commit is contained in:
212
module/actor.js
212
module/actor.js
@ -247,6 +247,21 @@ export class RdDActor extends Actor {
|
||||
getMeditation(id) {
|
||||
return this.data.items.find(item => item.type == 'meditation' && item._id == id);
|
||||
}
|
||||
getChant(id) {
|
||||
return this.data.items.find(item => item.type == 'chant' && item._id == id);
|
||||
}
|
||||
getDanse(id) {
|
||||
return this.data.items.find(item => item.type == 'danse' && item._id == id);
|
||||
}
|
||||
getMusique(id) {
|
||||
return this.data.items.find(item => item.type == 'musique' && item._id == id);
|
||||
}
|
||||
getJeu(id) {
|
||||
return this.data.items.find(item => item.type == 'jeu' && item._id == id);
|
||||
}
|
||||
getRecetteCuisine(id) {
|
||||
return this.data.items.find(item => item.type == 'recettecuisine' && item._id == id);
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getBestDraconic() {
|
||||
const list = this.getDraconicList().sort((a, b) => b.data.niveau - a.data.niveau);
|
||||
@ -1864,6 +1879,203 @@ export class RdDActor extends Actor {
|
||||
this.updateEmbeddedEntity("OwnedItem", rollData.tache);
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollChant( id ) {
|
||||
let chant = duplicate(this.getChant(id));
|
||||
let competence = duplicate(this.getCompetence("chant"));
|
||||
competence.data.defaut_carac = "ouie";
|
||||
let chantData = {
|
||||
competence: competence,
|
||||
chant: chant,
|
||||
diffLibre: -chant.data.niveau,
|
||||
diffConditions: 0,
|
||||
use: { libre: false, conditions: true, },
|
||||
carac: {}
|
||||
};
|
||||
chantData.carac["ouie"] = duplicate(this.data.data.carac["ouie"]);
|
||||
|
||||
console.log("rollChant !!!", chantData);
|
||||
|
||||
const dialog = await RdDRoll.create(this, chantData, { html: 'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-chant.html' }, {
|
||||
name: 'jet-chant',
|
||||
label: 'Chanter ' + chant.name,
|
||||
height: 600,
|
||||
callbacks: [
|
||||
this.createCallbackExperience(),
|
||||
{ action: r => this._chantResult(r) }
|
||||
]
|
||||
});
|
||||
dialog.render(true);
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
async _chantResult(chantData) {
|
||||
if ( chantData.rolled.isSuccess) {
|
||||
chantData.qualiteFinale = chantData.danse.data.niveau + chantData.rolled.ptQualite;
|
||||
} else {
|
||||
chantData.qualiteFinale = chantData.competence.data.niveau + chantData.rolled.ptQualite;
|
||||
}
|
||||
console.log("CHAN", chantData)
|
||||
RdDResolutionTable.displayRollData(chantData, this.name, 'chat-resultat-chant.html');
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollDanse( id ) {
|
||||
let danse = duplicate(this.getDanse(id));
|
||||
let competence = duplicate(this.getCompetence("danse"));
|
||||
let danseData = {
|
||||
competence: competence,
|
||||
danse: danse,
|
||||
diffLibre: -danse.data.niveau,
|
||||
diffConditions: 0,
|
||||
use: { libre: false, conditions: true, },
|
||||
forceCarac: {}
|
||||
};
|
||||
if ( danse.data.agilite) {
|
||||
competence.data.defaut_carac = "agilite";
|
||||
danseData.selectedCarac = duplicate(this.data.data.carac["agilite"]);
|
||||
danseData.forceCarac["agilite"] = duplicate(this.data.data.carac["agilite"]);
|
||||
}
|
||||
if ( danse.data.apparence) {
|
||||
competence.data.defaut_carac = "apparence";
|
||||
danseData.selectedCarac = duplicate(this.data.data.carac["apparence"]);
|
||||
danseData.forceCarac["apparence"] = duplicate(this.data.data.carac["apparence"]);
|
||||
}
|
||||
|
||||
console.log("rollDanse !!!", danseData);
|
||||
|
||||
const dialog = await RdDRoll.create(this, danseData, { html: 'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-danse.html' }, {
|
||||
name: 'jet-danse',
|
||||
label: 'Danser ' + danse.name,
|
||||
height: 600,
|
||||
callbacks: [
|
||||
this.createCallbackExperience(),
|
||||
{ action: r => this._danseResult(r) }
|
||||
]
|
||||
});
|
||||
dialog.render(true);
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
async _danseResult(danseData) {
|
||||
if ( danseData.rolled.isSuccess) {
|
||||
danseData.qualiteFinale = danseData.danse.data.niveau + danseData.rolled.ptQualite;
|
||||
} else {
|
||||
danseData.qualiteFinale = danseData.competence.data.niveau + danseData.rolled.ptQualite;
|
||||
}
|
||||
console.log("CHAN", danseData)
|
||||
RdDResolutionTable.displayRollData(danseData, this.name, 'chat-resultat-danse.html');
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollMusique( id ) {
|
||||
let musique = duplicate(this.getMusique(id));
|
||||
let competence = duplicate(this.getCompetence("musique"));
|
||||
competence.data.defaut_carac = "ouie";
|
||||
let musiqueData = {
|
||||
competence: competence,
|
||||
musique: musique,
|
||||
diffLibre: -musique.data.niveau,
|
||||
diffConditions: 0,
|
||||
use: { libre: false, conditions: true, },
|
||||
carac: {}
|
||||
};
|
||||
musiqueData.carac["ouie"] = duplicate(this.data.data.carac["ouie"]);
|
||||
|
||||
console.log("rollMusique !!!", musiqueData);
|
||||
|
||||
const dialog = await RdDRoll.create(this, musiqueData, { html: 'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-musique.html' }, {
|
||||
name: 'jet-musique',
|
||||
label: 'Jouer ' + musique.name,
|
||||
height: 600,
|
||||
callbacks: [
|
||||
this.createCallbackExperience(),
|
||||
{ action: r => this._musiqueResult(r) }
|
||||
]
|
||||
});
|
||||
dialog.render(true);
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
async _musiqueResult(musiqueData) {
|
||||
if ( musiqueData.rolled.isSuccess) {
|
||||
musiqueData.qualiteFinale = musiqueData.musique.data.niveau + musiqueData.rolled.ptQualite;
|
||||
} else {
|
||||
musiqueData.qualiteFinale = musiqueData.competence.data.niveau + musiqueData.rolled.ptQualite;
|
||||
}
|
||||
console.log("MUSIQUE", musiqueData)
|
||||
RdDResolutionTable.displayRollData(musiqueData, this.name, 'chat-resultat-musique.html');
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollJeu( id ) {
|
||||
let jeu = duplicate(this.getJeu(id));
|
||||
let competence = duplicate(this.getCompetence("jeu"));
|
||||
let jeuData = {
|
||||
competence: competence,
|
||||
jeu: jeu,
|
||||
diffLibre: 0,
|
||||
diffConditions: 0,
|
||||
use: { libre: true, conditions: true, },
|
||||
carac: {}
|
||||
};
|
||||
|
||||
console.log("rollJeu !!!", jeuData);
|
||||
|
||||
const dialog = await RdDRoll.create(this, jeuData, { html: 'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-jeu.html' }, {
|
||||
name: 'jet-jeu',
|
||||
label: 'Jeu ' + jeu.name,
|
||||
height: 600,
|
||||
callbacks: [
|
||||
this.createCallbackExperience(),
|
||||
{ action: r => this._jeuResult(r) }
|
||||
]
|
||||
});
|
||||
dialog.render(true);
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
async _jeuResult(jeudData) {
|
||||
console.log("JEU", jeudData)
|
||||
RdDResolutionTable.displayRollData(jeudData, this.name, 'chat-resultat-jeu.html');
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollRecetteCuisine( id ) {
|
||||
let cuisine = duplicate(this.getRecetteCuisine(id));
|
||||
let competence = duplicate(this.getCompetence("cuisine"));
|
||||
competence.data.defaut_carac = "odoratgout";
|
||||
let cuisineData = {
|
||||
competence: competence,
|
||||
cuisine: cuisine,
|
||||
diffLibre: -cuisine.data.niveau,
|
||||
diffConditions: 0,
|
||||
use: { libre: true, conditions: true, },
|
||||
carac: {}
|
||||
};
|
||||
cuisineData.carac["odoratgout"] = duplicate(this.data.data.carac["odoratgout"]);
|
||||
|
||||
console.log("rollRecetteCuisine !!!", cuisineData);
|
||||
|
||||
const dialog = await RdDRoll.create(this, cuisineData, { html: 'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-cuisine.html' }, {
|
||||
name: 'jet-jeu',
|
||||
label: 'Cuisiner ' + cuisine.name,
|
||||
height: 600,
|
||||
callbacks: [
|
||||
this.createCallbackExperience(),
|
||||
{ action: r => this._recetteCuisineResult(r) }
|
||||
]
|
||||
});
|
||||
dialog.render(true);
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
async _recetteCuisineResult(cuisineData) {
|
||||
if ( cuisineData.rolled.isSuccess) {
|
||||
cuisineData.qualiteFinale = cuisineData.cuisine.data.niveau + cuisineData.rolled.ptQualite;
|
||||
} else {
|
||||
cuisineData.qualiteFinale = cuisineData.competence.data.niveau + cuisineData.rolled.ptQualite;
|
||||
}
|
||||
console.log("Cuisine", cuisineData)
|
||||
RdDResolutionTable.displayRollData(cuisineData, this.name, 'chat-resultat-cuisine.html');
|
||||
}
|
||||
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollMeditation(id) {
|
||||
let meditation = duplicate(this.getMeditation(id));
|
||||
|
Reference in New Issue
Block a user